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

+65 -22
View File
@@ -441,7 +441,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": []
},
@@ -467,7 +468,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -484,7 +486,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": []
},
@@ -514,6 +517,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js",
"src/ui/keyGuidance.js",
"src/ui/statusText.js",
@@ -534,7 +538,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": []
},
@@ -550,7 +555,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": []
},
@@ -570,6 +576,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js",
"src/ui/statusBadge.js"
],
@@ -596,6 +603,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/layerNames.js"
],
"external": []
@@ -630,6 +638,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js"
],
"external": ["cesium"]
@@ -646,6 +655,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js"
],
"external": []
@@ -801,6 +811,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js",
"src/ui/keyGuidance.js",
"src/ui/layerNames.js",
@@ -921,6 +932,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js"
],
"external": ["cesium"]
@@ -987,6 +999,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js"
],
"external": ["cesium"]
@@ -1033,7 +1046,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -1094,7 +1108,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -1124,6 +1139,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js",
"src/layers/recentImagery/display.js"
],
@@ -1153,7 +1169,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -1185,6 +1202,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js"
],
"external": ["cesium", "satellite.js"]
@@ -1217,7 +1235,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -1260,6 +1279,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/layers/installations/classLabel.js"
],
"external": ["cesium", "@mapbox/vector-tile", "pbf"]
@@ -1295,6 +1315,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js"
],
"external": ["cesium"]
@@ -1344,7 +1365,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium", "pbf", "@mapbox/vector-tile"]
},
@@ -1373,7 +1395,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -1421,7 +1444,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["hls.js", "cesium"]
},
@@ -1485,6 +1509,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/layers/streetLevel/providers/mapillary/policy.js"
],
"external": ["cesium", "pbf", "@mapbox/vector-tile", "mapillary-js"]
@@ -1513,7 +1538,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium", "@mapbox/vector-tile", "pbf"]
},
@@ -1553,7 +1579,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -1575,7 +1602,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -1631,7 +1659,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -1688,6 +1717,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/statusText.js",
"src/voice/providerCommands.js",
"src/voice/providerCapabilities.js",
@@ -2552,6 +2582,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js",
"src/layers/recentImagery/display.js",
"src/ui/keyGuidance.js",
@@ -3128,6 +3159,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js",
"src/layers/recentImagery/display.js",
"src/layers/installations/classLabel.js",
@@ -3235,6 +3267,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/i18n/index.js"
],
"external": ["cesium"]
@@ -3256,7 +3289,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": []
},
@@ -3291,7 +3325,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -3315,7 +3350,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": []
},
@@ -3407,6 +3443,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/unitLabels.js"
],
"external": ["cesium"]
@@ -3462,6 +3499,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/statusText.js",
"src/voice/providerCapabilities.js"
],
@@ -3715,7 +3753,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium", "egm96-universal", "pbf"]
},
@@ -3758,7 +3797,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium", "pbf"]
},
@@ -3811,7 +3851,8 @@
"src/i18n/locale.js",
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json"
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json"
],
"external": ["cesium"]
},
@@ -3828,6 +3869,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/statusText.js",
"src/ui/layerNames.js"
],
@@ -4021,6 +4063,7 @@
"src/i18n/locales/es.json",
"src/i18n/locales/ru.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-TW.json",
"src/ui/statusText.js",
"src/ui/layerNames.js"
],