Merge branch 'main' into i18n/zh-TW

This commit is contained in:
NightFeather
2026-01-12 15:55:44 +08:00
committed by GitHub
14 changed files with 1723 additions and 212 deletions

View File

@@ -5,6 +5,7 @@ import HttpBackend from 'i18next-http-backend';
// Supported languages
export const supportedLanguages = [
'en',
'fr',
'de',
'zh',
'zh-TW',
@@ -17,6 +18,7 @@ export type SupportedLanguage = (typeof supportedLanguages)[number];
export const languageNames: Record<SupportedLanguage, string> = {
en: 'English',
fr: 'Français',
de: 'Deutsch',
zh: '中文',
"zh-TW": '繁體中文(台灣)',
@@ -28,7 +30,7 @@ export const languageNames: Record<SupportedLanguage, string> = {
export const getLanguageFromUrl = (): SupportedLanguage => {
const path = window.location.pathname;
const langMatch = path.match(/^\/(en|de|zh|zh-TW|vi|tr|id|it)(?:\/|$)/);
const langMatch = path.match(/^\/(en|fr|de|zh|zh-TW|vi|tr|id|it)(?:\/|$)/);
if (
langMatch &&
supportedLanguages.includes(langMatch[1] as SupportedLanguage)
@@ -90,9 +92,9 @@ export const changeLanguage = (lang: SupportedLanguage): void => {
const currentLang = getLanguageFromUrl();
let newPath: string;
if (currentPath.match(/^\/(en|de|zh|zh-TW|vi|tr|id|it)\//)) {
newPath = currentPath.replace(/^\/(en|de|zh|zh-TW|vi|tr|id|it)\//, `/${lang}/`);
} else if (currentPath.match(/^\/(en|de|zh|zh-TW|vi|tr|id|it)$/)) {
if (currentPath.match(/^\/(en|fr|de|zh|zh-TW|vi|tr|id|it)\//)) {
newPath = currentPath.replace(/^\/(en|fr|de|zh|zh-TW|vi|tr|id|it)\//, `/${lang}/`);
} else if (currentPath.match(/^\/(en|fr|de|zh|zh-TW|vi|tr|id|it)$/)) {
newPath = `/${lang}`;
} else {
newPath = `/${lang}${currentPath}`;
@@ -156,7 +158,7 @@ export const rewriteLinks = (): void => {
return;
}
if (href.match(/^\/(en|de|zh|zh-TW|vi|tr|id|it)\//)) {
if (href.match(/^\/(en|fr|de|zh|zh-TW|vi|tr|id|it)\//)) {
return;
}
let newHref: string;