i18n: register 10 locales (framework + scaffold); ro/el partial

This commit is contained in:
SkateSpots 2026-10-08 14:59:27 +07:00
parent 1dd23c1549
commit feac9f764b
94 changed files with 7885 additions and 2 deletions

View file

@ -130,7 +130,7 @@ async function main() {
const jaCoverage = en.size ? Math.round(((en.size - missingJa) / en.size) * 100) : 100;
// 5. Additional partial locales (same rules as th/ja).
const extraLocales = ['pt', 'fr', 'de', 'it', 'nl', 'pl', 'ru', 'ko'];
const extraLocales = ['pt', 'fr', 'de', 'it', 'nl', 'pl', 'ru', 'ko', 'zh-CN', 'zh-TW', 'uk', 'tr', 'vi', 'id', 'sv', 'cs', 'ro', 'el'];
const extraStats = [];
for (const lang of extraLocales) {
const dict = flatten(await loadTranslations(join(SRC, `i18n/${lang}/index.ts`)));

View file

@ -34,6 +34,18 @@ function detectLanguage(): Language {
if (tags.some((t) => t.startsWith('nl'))) return 'nl';
if (tags.some((t) => t.startsWith('pl'))) return 'pl';
if (tags.some((t) => t.startsWith('ru'))) return 'ru';
if (tags.some((t) => t.startsWith('ko'))) return 'ko';
if (tags.some((t) => t.startsWith('zh'))) {
return tags.some((t) => /^zh-(tw|hk|hant)/.test(t)) ? 'zh-TW' : 'zh-CN';
}
if (tags.some((t) => t.startsWith('uk'))) return 'uk';
if (tags.some((t) => t.startsWith('tr'))) return 'tr';
if (tags.some((t) => t.startsWith('vi'))) return 'vi';
if (tags.some((t) => t.startsWith('id'))) return 'id';
if (tags.some((t) => t.startsWith('sv'))) return 'sv';
if (tags.some((t) => t.startsWith('cs'))) return 'cs';
if (tags.some((t) => t.startsWith('ro'))) return 'ro';
if (tags.some((t) => t.startsWith('el'))) return 'el';
if (tags.some((t) => t.startsWith('es'))) return 'es';
return 'en';
}

View file

@ -7,7 +7,7 @@ import en from '@/i18n/en';
* `react-refresh/only-export-components` rule.
*/
export type Language = 'en' | 'es' | 'th' | 'ja' | 'pt' | 'fr' | 'de' | 'it' | 'nl' | 'pl' | 'ru' | 'ko' | 'ko-KP';
export type Language = 'en' | 'es' | 'th' | 'ja' | 'pt' | 'fr' | 'de' | 'it' | 'nl' | 'pl' | 'ru' | 'ko' | 'ko-KP' | 'zh-CN' | 'zh-TW' | 'uk' | 'tr' | 'vi' | 'id' | 'sv' | 'cs' | 'ro' | 'el';
type TranslationKey = string;
type TranslationValue = string | { [key: string]: TranslationValue };
@ -51,6 +51,16 @@ export const LANGUAGE_LOADERS: Record<Language, () => Promise<Translations>> = {
ko: () => import('@/i18n/ko').then((m) => m.default),
// North Korean option reuses the same Korean dictionary (mutually intelligible).
'ko-KP': () => import('@/i18n/ko').then((m) => m.default),
'zh-CN': () => import('@/i18n/zh-CN').then((m) => m.default),
'zh-TW': () => import('@/i18n/zh-TW').then((m) => m.default),
uk: () => import('@/i18n/uk').then((m) => m.default),
tr: () => import('@/i18n/tr').then((m) => m.default),
vi: () => import('@/i18n/vi').then((m) => m.default),
id: () => import('@/i18n/id').then((m) => m.default),
sv: () => import('@/i18n/sv').then((m) => m.default),
cs: () => import('@/i18n/cs').then((m) => m.default),
ro: () => import('@/i18n/ro').then((m) => m.default),
el: () => import('@/i18n/el').then((m) => m.default),
};
/** Get a nested value from an object using dot notation (`nav.home`). */

4
src/i18n/cs/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** cs — batch 1. Filled by the translation pass; empty until then. */
const csBatch1 = {};
export default csBatch1;

4
src/i18n/cs/batch2.ts Normal file
View file

@ -0,0 +1,4 @@
/** cs — batch 2. Filled by the translation pass; empty until then. */
const csBatch2 = {};
export default csBatch2;

4
src/i18n/cs/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** cs — batch 3. Filled by the translation pass; empty until then. */
const csBatch3 = {};
export default csBatch3;

4
src/i18n/cs/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** cs — batch 4. Filled by the translation pass; empty until then. */
const csBatch4 = {};
export default csBatch4;

4
src/i18n/cs/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** cs — batch 5. Filled by the translation pass; empty until then. */
const csBatch5 = {};
export default csBatch5;

4
src/i18n/cs/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** cs — batch 6. Filled by the translation pass; empty until then. */
const csBatch6 = {};
export default csBatch6;

4
src/i18n/cs/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** cs — batch 7. Filled by the translation pass; empty until then. */
const csBatch7 = {};
export default csBatch7;

4
src/i18n/cs/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** cs — batch 8. Filled by the translation pass; empty until then. */
const csBatch8 = {};
export default csBatch8;

21
src/i18n/cs/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const cs = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default cs;

4
src/i18n/el/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** el — batch 1. Filled by the translation pass; empty until then. */
const elBatch1 = {};
export default elBatch1;

1652
src/i18n/el/batch2.ts Normal file

File diff suppressed because it is too large Load diff

4
src/i18n/el/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** el — batch 3. Filled by the translation pass; empty until then. */
const elBatch3 = {};
export default elBatch3;

4
src/i18n/el/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** el — batch 4. Filled by the translation pass; empty until then. */
const elBatch4 = {};
export default elBatch4;

1597
src/i18n/el/batch5.ts Normal file

File diff suppressed because it is too large Load diff

4
src/i18n/el/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** el — batch 6. Filled by the translation pass; empty until then. */
const elBatch6 = {};
export default elBatch6;

4
src/i18n/el/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** el — batch 7. Filled by the translation pass; empty until then. */
const elBatch7 = {};
export default elBatch7;

4
src/i18n/el/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** el — batch 8. Filled by the translation pass; empty until then. */
const elBatch8 = {};
export default elBatch8;

21
src/i18n/el/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const el = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default el;

4
src/i18n/id/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** id — batch 1. Filled by the translation pass; empty until then. */
const idBatch1 = {};
export default idBatch1;

4
src/i18n/id/batch2.ts Normal file
View file

@ -0,0 +1,4 @@
/** id — batch 2. Filled by the translation pass; empty until then. */
const idBatch2 = {};
export default idBatch2;

4
src/i18n/id/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** id — batch 3. Filled by the translation pass; empty until then. */
const idBatch3 = {};
export default idBatch3;

4
src/i18n/id/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** id — batch 4. Filled by the translation pass; empty until then. */
const idBatch4 = {};
export default idBatch4;

4
src/i18n/id/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** id — batch 5. Filled by the translation pass; empty until then. */
const idBatch5 = {};
export default idBatch5;

4
src/i18n/id/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** id — batch 6. Filled by the translation pass; empty until then. */
const idBatch6 = {};
export default idBatch6;

4
src/i18n/id/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** id — batch 7. Filled by the translation pass; empty until then. */
const idBatch7 = {};
export default idBatch7;

4
src/i18n/id/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** id — batch 8. Filled by the translation pass; empty until then. */
const idBatch8 = {};
export default idBatch8;

21
src/i18n/id/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const id = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default id;

4
src/i18n/ro/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** ro — batch 1. Filled by the translation pass; empty until then. */
const roBatch1 = {};
export default roBatch1;

1653
src/i18n/ro/batch2.ts Normal file

File diff suppressed because it is too large Load diff

1294
src/i18n/ro/batch3.ts Normal file

File diff suppressed because it is too large Load diff

1115
src/i18n/ro/batch4.ts Normal file

File diff suppressed because it is too large Load diff

4
src/i18n/ro/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** ro — batch 5. Filled by the translation pass; empty until then. */
const roBatch5 = {};
export default roBatch5;

4
src/i18n/ro/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** ro — batch 6. Filled by the translation pass; empty until then. */
const roBatch6 = {};
export default roBatch6;

4
src/i18n/ro/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** ro — batch 7. Filled by the translation pass; empty until then. */
const roBatch7 = {};
export default roBatch7;

4
src/i18n/ro/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** ro — batch 8. Filled by the translation pass; empty until then. */
const roBatch8 = {};
export default roBatch8;

21
src/i18n/ro/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const ro = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default ro;

4
src/i18n/sv/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** sv — batch 1. Filled by the translation pass; empty until then. */
const svBatch1 = {};
export default svBatch1;

4
src/i18n/sv/batch2.ts Normal file
View file

@ -0,0 +1,4 @@
/** sv — batch 2. Filled by the translation pass; empty until then. */
const svBatch2 = {};
export default svBatch2;

4
src/i18n/sv/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** sv — batch 3. Filled by the translation pass; empty until then. */
const svBatch3 = {};
export default svBatch3;

4
src/i18n/sv/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** sv — batch 4. Filled by the translation pass; empty until then. */
const svBatch4 = {};
export default svBatch4;

4
src/i18n/sv/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** sv — batch 5. Filled by the translation pass; empty until then. */
const svBatch5 = {};
export default svBatch5;

4
src/i18n/sv/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** sv — batch 6. Filled by the translation pass; empty until then. */
const svBatch6 = {};
export default svBatch6;

4
src/i18n/sv/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** sv — batch 7. Filled by the translation pass; empty until then. */
const svBatch7 = {};
export default svBatch7;

4
src/i18n/sv/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** sv — batch 8. Filled by the translation pass; empty until then. */
const svBatch8 = {};
export default svBatch8;

21
src/i18n/sv/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const sv = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default sv;

4
src/i18n/tr/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** tr — batch 1. Filled by the translation pass; empty until then. */
const trBatch1 = {};
export default trBatch1;

4
src/i18n/tr/batch2.ts Normal file
View file

@ -0,0 +1,4 @@
/** tr — batch 2. Filled by the translation pass; empty until then. */
const trBatch2 = {};
export default trBatch2;

4
src/i18n/tr/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** tr — batch 3. Filled by the translation pass; empty until then. */
const trBatch3 = {};
export default trBatch3;

4
src/i18n/tr/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** tr — batch 4. Filled by the translation pass; empty until then. */
const trBatch4 = {};
export default trBatch4;

4
src/i18n/tr/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** tr — batch 5. Filled by the translation pass; empty until then. */
const trBatch5 = {};
export default trBatch5;

4
src/i18n/tr/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** tr — batch 6. Filled by the translation pass; empty until then. */
const trBatch6 = {};
export default trBatch6;

4
src/i18n/tr/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** tr — batch 7. Filled by the translation pass; empty until then. */
const trBatch7 = {};
export default trBatch7;

4
src/i18n/tr/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** tr — batch 8. Filled by the translation pass; empty until then. */
const trBatch8 = {};
export default trBatch8;

21
src/i18n/tr/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const tr = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default tr;

4
src/i18n/uk/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** uk — batch 1. Filled by the translation pass; empty until then. */
const ukBatch1 = {};
export default ukBatch1;

4
src/i18n/uk/batch2.ts Normal file
View file

@ -0,0 +1,4 @@
/** uk — batch 2. Filled by the translation pass; empty until then. */
const ukBatch2 = {};
export default ukBatch2;

4
src/i18n/uk/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** uk — batch 3. Filled by the translation pass; empty until then. */
const ukBatch3 = {};
export default ukBatch3;

4
src/i18n/uk/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** uk — batch 4. Filled by the translation pass; empty until then. */
const ukBatch4 = {};
export default ukBatch4;

4
src/i18n/uk/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** uk — batch 5. Filled by the translation pass; empty until then. */
const ukBatch5 = {};
export default ukBatch5;

4
src/i18n/uk/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** uk — batch 6. Filled by the translation pass; empty until then. */
const ukBatch6 = {};
export default ukBatch6;

4
src/i18n/uk/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** uk — batch 7. Filled by the translation pass; empty until then. */
const ukBatch7 = {};
export default ukBatch7;

4
src/i18n/uk/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** uk — batch 8. Filled by the translation pass; empty until then. */
const ukBatch8 = {};
export default ukBatch8;

21
src/i18n/uk/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const uk = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default uk;

4
src/i18n/vi/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** vi — batch 1. Filled by the translation pass; empty until then. */
const viBatch1 = {};
export default viBatch1;

4
src/i18n/vi/batch2.ts Normal file
View file

@ -0,0 +1,4 @@
/** vi — batch 2. Filled by the translation pass; empty until then. */
const viBatch2 = {};
export default viBatch2;

4
src/i18n/vi/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** vi — batch 3. Filled by the translation pass; empty until then. */
const viBatch3 = {};
export default viBatch3;

4
src/i18n/vi/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** vi — batch 4. Filled by the translation pass; empty until then. */
const viBatch4 = {};
export default viBatch4;

4
src/i18n/vi/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** vi — batch 5. Filled by the translation pass; empty until then. */
const viBatch5 = {};
export default viBatch5;

4
src/i18n/vi/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** vi — batch 6. Filled by the translation pass; empty until then. */
const viBatch6 = {};
export default viBatch6;

4
src/i18n/vi/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** vi — batch 7. Filled by the translation pass; empty until then. */
const viBatch7 = {};
export default viBatch7;

4
src/i18n/vi/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** vi — batch 8. Filled by the translation pass; empty until then. */
const viBatch8 = {};
export default viBatch8;

21
src/i18n/vi/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const vi = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default vi;

4
src/i18n/zh-CN/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-CN — batch 1. Filled by the translation pass; empty until then. */
const zhCNBatch1 = {};
export default zhCNBatch1;

4
src/i18n/zh-CN/batch2.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-CN — batch 2. Filled by the translation pass; empty until then. */
const zhCNBatch2 = {};
export default zhCNBatch2;

4
src/i18n/zh-CN/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-CN — batch 3. Filled by the translation pass; empty until then. */
const zhCNBatch3 = {};
export default zhCNBatch3;

4
src/i18n/zh-CN/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-CN — batch 4. Filled by the translation pass; empty until then. */
const zhCNBatch4 = {};
export default zhCNBatch4;

4
src/i18n/zh-CN/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-CN — batch 5. Filled by the translation pass; empty until then. */
const zhCNBatch5 = {};
export default zhCNBatch5;

4
src/i18n/zh-CN/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-CN — batch 6. Filled by the translation pass; empty until then. */
const zhCNBatch6 = {};
export default zhCNBatch6;

4
src/i18n/zh-CN/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-CN — batch 7. Filled by the translation pass; empty until then. */
const zhCNBatch7 = {};
export default zhCNBatch7;

4
src/i18n/zh-CN/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-CN — batch 8. Filled by the translation pass; empty until then. */
const zhCNBatch8 = {};
export default zhCNBatch8;

21
src/i18n/zh-CN/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const zhCN = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default zhCN;

4
src/i18n/zh-TW/batch1.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-TW — batch 1. Filled by the translation pass; empty until then. */
const zhTWBatch1 = {};
export default zhTWBatch1;

4
src/i18n/zh-TW/batch2.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-TW — batch 2. Filled by the translation pass; empty until then. */
const zhTWBatch2 = {};
export default zhTWBatch2;

4
src/i18n/zh-TW/batch3.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-TW — batch 3. Filled by the translation pass; empty until then. */
const zhTWBatch3 = {};
export default zhTWBatch3;

4
src/i18n/zh-TW/batch4.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-TW — batch 4. Filled by the translation pass; empty until then. */
const zhTWBatch4 = {};
export default zhTWBatch4;

4
src/i18n/zh-TW/batch5.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-TW — batch 5. Filled by the translation pass; empty until then. */
const zhTWBatch5 = {};
export default zhTWBatch5;

4
src/i18n/zh-TW/batch6.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-TW — batch 6. Filled by the translation pass; empty until then. */
const zhTWBatch6 = {};
export default zhTWBatch6;

4
src/i18n/zh-TW/batch7.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-TW — batch 7. Filled by the translation pass; empty until then. */
const zhTWBatch7 = {};
export default zhTWBatch7;

4
src/i18n/zh-TW/batch8.ts Normal file
View file

@ -0,0 +1,4 @@
/** zh-TW — batch 8. Filled by the translation pass; empty until then. */
const zhTWBatch8 = {};
export default zhTWBatch8;

21
src/i18n/zh-TW/index.ts Normal file
View file

@ -0,0 +1,21 @@
import batch1 from './batch1';
import batch2 from './batch2';
import batch3 from './batch3';
import batch4 from './batch4';
import batch5 from './batch5';
import batch6 from './batch6';
import batch7 from './batch7';
import batch8 from './batch8';
const zhTW = {
...batch1,
...batch2,
...batch3,
...batch4,
...batch5,
...batch6,
...batch7,
...batch8,
};
export default zhTW;

View file

@ -32,6 +32,16 @@ import {
pl as plLocale,
ru as ruLocale,
ko as koLocale,
zhCN as zhCNLocale,
zhTW as zhTWLocale,
uk as ukLocale,
tr as trLocale,
vi as viLocale,
id as idLocale,
sv as svLocale,
cs as csLocale,
ro as roLocale,
el as elLocale,
} from 'date-fns/locale';
import type { Locale } from 'date-fns';
import type { Language } from '@/contexts/language';
@ -74,6 +84,36 @@ export function setDateLocale(language: Language): void {
} else if (language === 'ko' || language === 'ko-KP') {
activeLocale = koLocale;
activeCode = 'ko-KR';
} else if (language === 'zh-CN') {
activeLocale = zhCNLocale;
activeCode = 'zh-CN';
} else if (language === 'zh-TW') {
activeLocale = zhTWLocale;
activeCode = 'zh-TW';
} else if (language === 'uk') {
activeLocale = ukLocale;
activeCode = 'uk-UA';
} else if (language === 'tr') {
activeLocale = trLocale;
activeCode = 'tr-TR';
} else if (language === 'vi') {
activeLocale = viLocale;
activeCode = 'vi-VN';
} else if (language === 'id') {
activeLocale = idLocale;
activeCode = 'id-ID';
} else if (language === 'sv') {
activeLocale = svLocale;
activeCode = 'sv-SE';
} else if (language === 'cs') {
activeLocale = csLocale;
activeCode = 'cs-CZ';
} else if (language === 'ro') {
activeLocale = roLocale;
activeCode = 'ro-RO';
} else if (language === 'el') {
activeLocale = elLocale;
activeCode = 'el-GR';
} else {
activeLocale = enUS;
activeCode = 'en-US';