/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ export const supportedLanguages = [ 'zh-CN', 'zh-TW', 'en', 'fr', 'ru', 'ja', 'vi', ]; export const normalizeLanguage = (language) => { if (!language) { return language; } const normalized = language.trim().replace(/_/g, '-'); const lower = normalized.toLowerCase(); if ( lower === 'zh' || lower === 'zh-cn' || lower === 'zh-sg' || lower.startsWith('zh-hans') ) { return 'zh-CN'; } if ( lower === 'zh-tw' || lower === 'zh-hk' || lower === 'zh-mo' || lower.startsWith('zh-hant') ) { return 'zh-TW'; } const matchedLanguage = supportedLanguages.find( (supportedLanguage) => supportedLanguage.toLowerCase() === lower, ); return matchedLanguage || normalized; };