mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
fix(ui): localize language selector and validate stored locale
- Add translation keys for language selector label and language names
- Update all locale files (en, pt-BR, zh-CN, zh-TW) with:
- overview.access.language key for selector label
- languages.* keys for language display names
- Localize language selector in overview.ts to react to locale changes
- Add validation for stored locale in app.ts to prevent invalid values
from causing silent failures in setLocale
Fixes issues identified in code review:
- Unlocalized language selector inconsistency
- Settings locale type drift risk
This commit is contained in:
committed by
Peter Steinberger
parent
a9c952b13a
commit
cf44a0c4c1
@@ -59,6 +59,7 @@ export const en: TranslationMap = {
|
||||
token: "Gateway Token",
|
||||
password: "Password (not stored)",
|
||||
sessionKey: "Default Session Key",
|
||||
language: "Language",
|
||||
connectHint: "Click Connect to apply connection changes.",
|
||||
},
|
||||
snapshot: {
|
||||
@@ -104,4 +105,10 @@ export const en: TranslationMap = {
|
||||
focusToggle: "Toggle focus mode (hide sidebar + page header)",
|
||||
onboardingDisabled: "Disabled during onboarding",
|
||||
},
|
||||
languages: {
|
||||
en: "English",
|
||||
zhCN: "简体中文 (Simplified Chinese)",
|
||||
zhTW: "繁體中文 (Traditional Chinese)",
|
||||
ptBR: "Português (Brazilian Portuguese)",
|
||||
},
|
||||
};
|
||||
|
||||
@@ -59,6 +59,7 @@ export const pt_BR: TranslationMap = {
|
||||
token: "Token do Gateway",
|
||||
password: "Senha (não armazenada)",
|
||||
sessionKey: "Chave de Sessão Padrão",
|
||||
language: "Idioma",
|
||||
connectHint: "Clique em Conectar para aplicar as alterações de conexão.",
|
||||
},
|
||||
snapshot: {
|
||||
@@ -104,4 +105,10 @@ export const pt_BR: TranslationMap = {
|
||||
focusToggle: "Alternar modo de foco (ocultar barra lateral + cabeçalho da página)",
|
||||
onboardingDisabled: "Desativado durante a integração",
|
||||
},
|
||||
languages: {
|
||||
en: "English",
|
||||
zhCN: "简体中文 (Chinês Simplificado)",
|
||||
zhTW: "繁體中文 (Chinês Tradicional)",
|
||||
ptBR: "Português (Português Brasileiro)",
|
||||
},
|
||||
};
|
||||
|
||||
@@ -59,6 +59,7 @@ export const zh_CN: TranslationMap = {
|
||||
token: "网关令牌",
|
||||
password: "密码 (不存储)",
|
||||
sessionKey: "默认会话密钥",
|
||||
language: "语言",
|
||||
connectHint: "点击连接以应用连接更改。",
|
||||
},
|
||||
snapshot: {
|
||||
@@ -104,4 +105,10 @@ export const zh_CN: TranslationMap = {
|
||||
focusToggle: "切换专注模式 (隐藏侧边栏 + 页面页眉)",
|
||||
onboardingDisabled: "引导期间禁用",
|
||||
},
|
||||
languages: {
|
||||
en: "English",
|
||||
zhCN: "简体中文 (简体中文)",
|
||||
zhTW: "繁體中文 (繁体中文)",
|
||||
ptBR: "Português (巴西葡萄牙语)",
|
||||
},
|
||||
};
|
||||
|
||||
@@ -55,6 +55,7 @@ export const zh_TW: TranslationMap = {
|
||||
token: "網關令牌",
|
||||
password: "密碼 (不存儲)",
|
||||
sessionKey: "默認會話密鑰",
|
||||
language: "語言",
|
||||
connectHint: "點擊連接以應用連接更改。",
|
||||
},
|
||||
snapshot: {
|
||||
@@ -100,4 +101,10 @@ export const zh_TW: TranslationMap = {
|
||||
focusToggle: "切換專注模式 (隱藏側邊欄 + 頁面頁眉)",
|
||||
onboardingDisabled: "引導期間禁用",
|
||||
},
|
||||
languages: {
|
||||
en: "English",
|
||||
zhCN: "简体中文 (簡體中文)",
|
||||
zhTW: "繁體中文 (繁體中文)",
|
||||
ptBR: "Português (巴西葡萄牙語)",
|
||||
},
|
||||
};
|
||||
|
||||
@@ -165,7 +165,7 @@ export function renderOverview(props: OverviewProps) {
|
||||
/>
|
||||
</label>
|
||||
<label class="field">
|
||||
<span>Language</span>
|
||||
<span>${t("overview.access.language")}</span>
|
||||
<select
|
||||
.value=${currentLocale}
|
||||
@change=${(e: Event) => {
|
||||
@@ -174,10 +174,10 @@ export function renderOverview(props: OverviewProps) {
|
||||
props.onSettingsChange({ ...props.settings, locale: v });
|
||||
}}
|
||||
>
|
||||
<option value="en">English</option>
|
||||
<option value="zh-CN">简体中文 (Simplified Chinese)</option>
|
||||
<option value="zh-TW">繁體中文 (Traditional Chinese)</option>
|
||||
<option value="pt-BR">Português (Brazilian Portuguese)</option>
|
||||
<option value="en">${t("languages.en")}</option>
|
||||
<option value="zh-CN">${t("languages.zhCN")}</option>
|
||||
<option value="zh-TW">${t("languages.zhTW")}</option>
|
||||
<option value="pt-BR">${t("languages.ptBR")}</option>
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user