i18n: add Traditional Chinese (zh-TW)

Add a complete Taiwan Traditional Chinese catalog, locale selection,
Chinese readout formatting, translation notes and regression coverage.
Seed translations from #724 and #652 and adapt the zh-CN catalog.

Co-authored-by: caxer <[email protected]>
Co-authored-by: tbdavid2019 <[email protected]>
Co-authored-by: Enzo Abyie <[email protected]>
Co-authored-by: EDIT-Aeterna <[email protected]>
This commit is contained in:
committed 2026-10-23 22:52:48 +04:00
1 parent 8cdd184a90
commit 6b3e8bada3
16 files changed
+3070 -47

No files matched your search

+7 -3
View File
@@ -35,12 +35,16 @@ test('normalizeLocale folds regional variants and rejects unshipped tags', () =>
assert.equal(normalizeLocale(' RU '), 'ru');
assert.equal(normalizeLocale('en_GB'), 'en');
assert.equal(normalizeLocale('xx'), null);
// Simplified Chinese by default; Traditional tags wait for zh-TW.
// Explicit script tags take precedence over regional defaults.
assert.equal(normalizeLocale('zh'), 'zh-CN');
assert.equal(normalizeLocale('zh-CN'), 'zh-CN');
assert.equal(normalizeLocale('zh-Hans-SG'), 'zh-CN');
assert.equal(normalizeLocale('zh-TW'), null);
assert.equal(normalizeLocale('zh-Hant-HK'), null);
assert.equal(normalizeLocale('zh-TW'), 'zh-TW');
assert.equal(normalizeLocale('zh-Hant-HK'), 'zh-TW');
assert.equal(normalizeLocale('zh-Hans-TW'), 'zh-CN');
assert.equal(normalizeLocale('zh-Hant-CN'), 'zh-TW');
assert.equal(normalizeLocale('zh_HK'), 'zh-TW');
assert.equal(normalizeLocale('zh-MO'), 'zh-TW');
assert.equal(normalizeLocale(undefined), null);
});