feat(i18n): ③ 原型接单源 — I18N 块由 strings.json 生成,消除重复翻译
原型 design/prototype/screens/{ui-desktop,ui-mobile}.html 的 I18N 数据块不再手写,
改由 strings.json 生成(marker 包裹、生成器唯一写):
- alias.json:protoKey → flutterKey(产品串取单源 zh/en,单源赢);desktop 130 / mobile 143。
- overlay.json:原型专属(开发挡板 + app 没有的串,zh/en);desktop 98 / mobile 104。
- new-strings.json:4 个新产品串(分流规则/自定义/局域网直连/强制),6 语,已并入
strings.json + app_text.dart 抽象声明 + 重生成 6 份 strings_*.dart。
- gen_proto_i18n.mjs:strings.json+alias+overlay → 两份 HTML 的 I18N 块;--check 只比对
marker 块(unrelated HTML 编辑不误报)。
- check-proto-i18n.mjs:两份 HTML 所有 data-i18n key 的 zh/en 必须 resolve。
- ci/check-codegen-drift.sh:加原型 i18n 段(--check 漂移 + resolution 验收)。
同带入之前路由原型 WIP 的 i18n 收口:私有服务内置行→局域网/私网直连行、rr.* 接 data-i18n
(rr.lan→routingLanDirect 等)。路由页其余 UI(段选/添加规则页)仍为独立后续。
验收(自复核全绿):生成器跑通、data-i18n 0 unresolved、两生成器重生成零 diff、
flutter analyze lib/l10n 0 issue、flutter test 244 全绿、new-strings 无红线词。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A79VtQA1BwTuQN1ThpvYpo
This commit is contained in:
@@ -1968,6 +1968,38 @@
|
||||
"ko": "정가",
|
||||
"ru": "Было",
|
||||
"es": "Antes"
|
||||
},
|
||||
"routingRulesTitle": {
|
||||
"zh": "分流规则",
|
||||
"en": "Routing rules",
|
||||
"ja": "ルーティングルール",
|
||||
"ko": "라우팅 규칙",
|
||||
"ru": "Правила маршрутизации",
|
||||
"es": "Reglas de enrutamiento"
|
||||
},
|
||||
"routingRulesSub": {
|
||||
"zh": "自定义直连 / 走隧道 / 拒绝",
|
||||
"en": "Custom direct / tunnel / reject",
|
||||
"ja": "直接接続 / トンネル / 拒否をカスタム",
|
||||
"ko": "직접 연결 / 터널 / 거부 사용자 지정",
|
||||
"ru": "Настройка: напрямую / туннель / отклонить",
|
||||
"es": "Personalizar: directo / túnel / rechazar"
|
||||
},
|
||||
"routingLanDirect": {
|
||||
"zh": "局域网 / 私网直连",
|
||||
"en": "LAN & private direct",
|
||||
"ja": "LAN・プライベート直接接続",
|
||||
"ko": "LAN / 사설망 직접 연결",
|
||||
"ru": "Локальная и частная сеть напрямую",
|
||||
"es": "LAN y red privada directas"
|
||||
},
|
||||
"routingLanForced": {
|
||||
"zh": "强制,不可关",
|
||||
"en": "Always on",
|
||||
"ja": "常時オン",
|
||||
"ko": "항상 켜짐",
|
||||
"ru": "Всегда включено",
|
||||
"es": "Siempre activo"
|
||||
}
|
||||
},
|
||||
"lists": {
|
||||
|
||||
Reference in New Issue
Block a user