文案放进 locales/<模块>.yml,经 crate::i18n 的 t! / tn! 取用;启动时先按设置定语言, 改设置时实时切换并发出 UiLocale。守卫测试检查两种语言齐全、占位一致、没有遗漏和死键。 UI 测试夹具固定中文并隔离本线程的语言。共用件(shared/)先转换。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
文案放进 locales/<模块>.yml,经 crate::i18n 的 t! / tn! 取用;启动时先按设置定语言, 改设置时实时切换并发出 UiLocale。守卫测试检查两种语言齐全、占位一致、没有遗漏和死键。 UI 测试夹具固定中文并隔离本线程的语言。共用件(shared/)先转换。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>