feat(i18n): ④ l10n 漂移闸 + codegen 改纯 node 确定性输出
- gen_l10n_dart.mjs 去掉 dart format:其输出依赖包解析状态、跨环境不稳(首次 4 空格、 重跑 8 空格),会让漂移闸误报。改为确定性终态格式(list 单行 const [])。 analyze 不校验格式,不影响;gen 现零 dart 依赖、纯 node 确定。 - ci/check-codegen-drift.sh 增 l10n 段:重生成 strings_*.dart → git diff 非空即 fail (与 token 段同法,纯 node)。 - 验证:往返无损、重生成零 diff(闸稳定)、flutter analyze 0 issue、244 测试全绿。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A79VtQA1BwTuQN1ThpvYpo
This commit is contained in:
@@ -175,8 +175,7 @@ class StringsZh extends AppText {
|
||||
@override
|
||||
String get devForceLogoutConfirm => '将吊销该设备的登录会话,它会被踢下线、需重新登录。设备仍保留在列表中。';
|
||||
@override
|
||||
String get devClearLoginConfirm =>
|
||||
'将从设备列表彻底移除此设备,并吊销其登录会话与数据面凭证。该设备需重新登录才能再次使用。';
|
||||
String get devClearLoginConfirm => '将从设备列表彻底移除此设备,并吊销其登录会话与数据面凭证。该设备需重新登录才能再次使用。';
|
||||
@override
|
||||
String get devCancel => '取消';
|
||||
@override
|
||||
@@ -506,26 +505,11 @@ class StringsZh extends AppText {
|
||||
@override
|
||||
List<String> get days7 => const ['一', '二', '三', '四', '五', '六', '日'];
|
||||
@override
|
||||
List<String> get featsFree => const [
|
||||
'仅 1 个基础节点',
|
||||
'每日 10 分钟时长',
|
||||
'使用前观看广告',
|
||||
'注册享 7 天免费试用',
|
||||
];
|
||||
List<String> get featsFree => const ['仅 1 个基础节点', '每日 10 分钟时长', '使用前观看广告', '注册享 7 天免费试用'];
|
||||
@override
|
||||
List<String> get featsPro => const [
|
||||
'80+ 全球节点',
|
||||
'无限流量 · 极速',
|
||||
'5 台设备同时在线',
|
||||
'流媒体优化',
|
||||
];
|
||||
List<String> get featsPro => const ['80+ 全球节点', '无限流量 · 极速', '5 台设备同时在线', '流媒体优化'];
|
||||
@override
|
||||
List<String> get featsTeam => const [
|
||||
'专业版全部功能',
|
||||
'10 个成员席位',
|
||||
'集中计费与管理',
|
||||
'优先客服',
|
||||
];
|
||||
List<String> get featsTeam => const ['专业版全部功能', '10 个成员席位', '集中计费与管理', '优先客服'];
|
||||
@override
|
||||
String adRewarded(int minutes) => '已加 $minutes 分钟';
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user