diff options
| author | Adam <[email protected]> | 2026-01-21 04:16:55 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-01-21 05:24:38 -0600 |
| commit | 118b4f65da3c98b2dc16c498fc51e6e71421f5e8 (patch) | |
| tree | b045ea250f129e7a0d606a57d88f904e271b324c /packages/app/src/context | |
| parent | e6438aa3f68cfc8d6a5b7b4f6e77042b0ab01049 (diff) | |
| download | opencode-118b4f65da3c98b2dc16c498fc51e6e71421f5e8.tar.gz opencode-118b4f65da3c98b2dc16c498fc51e6e71421f5e8.zip | |
feat(app): german translations
Diffstat (limited to 'packages/app/src/context')
| -rw-r--r-- | packages/app/src/context/language.tsx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/packages/app/src/context/language.tsx b/packages/app/src/context/language.tsx index 3fd35183c..d2e8c077a 100644 --- a/packages/app/src/context/language.tsx +++ b/packages/app/src/context/language.tsx @@ -6,16 +6,18 @@ import { Persist, persisted } from "@/utils/persist" import { dict as en } from "@/i18n/en" import { dict as zh } from "@/i18n/zh" import { dict as ko } from "@/i18n/ko" +import { dict as de } from "@/i18n/de" import { dict as uiEn } from "@opencode-ai/ui/i18n/en" import { dict as uiZh } from "@opencode-ai/ui/i18n/zh" import { dict as uiKo } from "@opencode-ai/ui/i18n/ko" +import { dict as uiDe } from "@opencode-ai/ui/i18n/de" -export type Locale = "en" | "zh" | "ko" +export type Locale = "en" | "zh" | "ko" | "de" type RawDictionary = typeof en & typeof uiEn type Dictionary = i18n.Flatten<RawDictionary> -const LOCALES: readonly Locale[] = ["en", "zh", "ko"] +const LOCALES: readonly Locale[] = ["en", "zh", "ko", "de"] function detectLocale(): Locale { if (typeof navigator !== "object") return "en" @@ -25,6 +27,7 @@ function detectLocale(): Locale { if (!language) continue if (language.toLowerCase().startsWith("zh")) return "zh" if (language.toLowerCase().startsWith("ko")) return "ko" + if (language.toLowerCase().startsWith("de")) return "de" } return "en" @@ -43,6 +46,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont const locale = createMemo<Locale>(() => { if (store.locale === "zh") return "zh" if (store.locale === "ko") return "ko" + if (store.locale === "de") return "de" return "en" }) @@ -56,6 +60,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont const dict = createMemo<Dictionary>(() => { if (locale() === "en") return base if (locale() === "zh") return { ...base, ...i18n.flatten({ ...zh, ...uiZh }) } + if (locale() === "de") return { ...base, ...i18n.flatten({ ...de, ...uiDe }) } return { ...base, ...i18n.flatten({ ...ko, ...uiKo }) } }) @@ -65,6 +70,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont en: "language.en", zh: "language.zh", ko: "language.ko", + de: "language.de", } const label = (value: Locale) => t(labelKey[value]) |
