界面设置模块(uiSettings.ts)

模块路径:web_rviz/src/uiSettings.ts

用途

管理界面语言与主题的持久化偏好,并负责应用静态文案翻译。

公开接口

Language

  • en

  • zh

ThemeMode

  • dark

  • light

TranslationKey

由内置英文翻译表推导出的合法翻译键联合类型。

loadLanguage(): Language / saveLanguage(language): void

localStorage 读取或保存当前界面语言。

loadTheme(): ThemeMode / saveTheme(theme): void

localStorage 读取或保存当前界面主题。

t(language, key, vars = {})

返回 key 对应的翻译文本,并使用 vars{name} 形式的占位符做替换。

applyStaticTranslations(language): void

更新 document.documentElement.langdocument.title,以及所有带有 data-i18n 的元素文本。

applyTheme(theme): void

把当前主题写入 document.documentElement.dataset.theme,供 CSS 主题选择器使用。

行为说明

  • 未保存历史偏好时,默认语言为 zh

  • 未保存历史偏好时,默认主题为 light

  • t() 会优先回退到英文翻译,其次回退到原始 key。

  • applyStaticTranslations() 只负责静态标签;运行时动态文本仍应在渲染时显式调用 t()