fix(i18n): restore zh-Hant locale labels

From PR #1323.

Co-authored-by: Dennis Soong <dso2ng@gmail.com>
This commit is contained in:
nesquena-hermesandDennis Soong committed 2026-04-30 15:24:31 +00:00
1 parent 5bde48bb6e
commit eb95c6a341
2 files changed
+51 -25

No files matched your search

+25 -25
View File
@@ -3028,7 +3028,7 @@ const LOCALES = {
diff_too_large: 'Patch 文件过大,无法内联显示',
tree_view: '树形',
raw_view: '原始',
parse_failed_note: '\u89e3\u6790\u5931\u8d25',
parse_failed_note: '解析失败',
you: '\u4f60',
mcp_servers_title: 'MCP 服务器',
mcp_servers_desc: '管理 config.yaml 中配置的 MCP 服务器。',
@@ -3756,32 +3756,32 @@ const LOCALES = {
diff_loading: '載入 diff',
diff_error: '無法載入 patch 檔案',
diff_too_large: 'Patch 檔案過大,無法內聯顯示',
tree_view: 'Дерево',
raw_view: 'Исходный',
parse_failed_note: '\u89e3\u6790\u5931\u8d25',
tree_view: '樹狀',
raw_view: '原始',
parse_failed_note: '解析失敗',
you: '\u4f60',
mcp_servers_title: 'MCP Серверы',
mcp_servers_desc: 'Управление серверами Model Context Protocol в config.yaml.',
mcp_no_servers: 'MCP серверы не настроены.',
mcp_add_server: '+ Добавить сервер',
mcp_field_name: 'Имя сервера',
mcp_transport_label: 'Тип транспорта',
mcp_field_command: 'Команда',
mcp_field_args: 'Аргументы (через запятую)',
mcp_servers_title: 'MCP 伺服器',
mcp_servers_desc: '管理 config.yaml 中設定的 MCP 伺服器。',
mcp_no_servers: '未設定 MCP 伺服器。',
mcp_add_server: '+ 新增伺服器',
mcp_field_name: '伺服器名稱',
mcp_transport_label: '傳輸類型',
mcp_field_command: '命令',
mcp_field_args: '參數(以逗號分隔)',
mcp_field_url: 'URL',
mcp_field_timeout: 'Таймаут (секунды)',
mcp_save: 'Сохранить',
mcp_cancel: 'Отмена',
mcp_name_required: 'Требуется имя сервера.',
mcp_url_required: 'URL обязателен для HTTP.',
mcp_command_required: 'Команда обязательна для stdio.',
mcp_saved: 'MCP сервер сохранён.',
mcp_save_failed: 'Не удалось сохранить.',
mcp_delete_confirm_title: 'Удалить MCP сервер',
mcp_delete_confirm_message: 'Удалить MCP сервер «{0}»? Это необратимо.',
mcp_deleted: 'MCP сервер удалён.',
mcp_delete_failed: 'Не удалось удалить.',
mcp_load_failed: 'Не удалось загрузить MCP серверы.',
mcp_field_timeout: '逾時(秒)',
mcp_save: '儲存',
mcp_cancel: '取消',
mcp_name_required: '伺服器名稱為必填。',
mcp_url_required: 'HTTP 傳輸需要 URL。',
mcp_command_required: 'stdio 傳輸需要命令。',
mcp_saved: 'MCP 伺服器已儲存。',
mcp_save_failed: '儲存 MCP 伺服器失敗。',
mcp_delete_confirm_title: '刪除 MCP 伺服器',
mcp_delete_confirm_message: '刪除 MCP 伺服器「{0}」?此操作無法復原。',
mcp_deleted: 'MCP 伺服器已刪除。',
mcp_delete_failed: '刪除 MCP 伺服器失敗。',
mcp_load_failed: '載入 MCP 伺服器失敗。',
thinking: '\u601d\u8003\u904e\u7a0b',
expand_all: '\u5168\u90e8\u5c55\u958b',
collapse_all: '\u5168\u90e8\u6298\u758a',
+26
View File
@@ -109,3 +109,29 @@ def test_chinese_locale_has_no_duplicate_keys():
keys = key_pattern.findall(extract_locale_block(src, "zh"))
duplicates = sorted(k for k, count in Counter(keys).items() if count > 1)
assert not duplicates, f"Chinese locale has duplicate keys: {duplicates}"
def test_traditional_chinese_mcp_and_tree_labels_are_not_cyrillic():
"""Regression for PR #1254/#1274 locale cross-paste fallout.
zh-Hant inherited Russian MCP/tree-view labels such as "MCP Серверы",
"Дерево", and "Исходный". Those labels show up under JSON/YAML code
block tree toggles and Settings → System → MCP Servers for zh-TW users.
"""
src = read(REPO / "static" / "i18n.js")
start = src.index(" 'zh-Hant': {")
end = src.index("\n pt:", start)
block = src[start:end]
expected = [
"tree_view: '樹狀'",
"raw_view: '原始'",
"parse_failed_note: '解析失敗'",
"mcp_servers_title: 'MCP 伺服器'",
"mcp_no_servers: '未設定 MCP 伺服器。'",
"mcp_add_server: '+ 新增伺服器'",
]
for entry in expected:
assert entry in block
assert not re.search(r"[\u0400-\u04FF]", block), "zh-Hant locale contains Cyrillic text"