diff options
| author | Adam <[email protected]> | 2026-01-20 15:00:46 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-01-20 17:58:06 -0600 |
| commit | b13c269162e6c858acbce6cc792636cd4cb921a9 (patch) | |
| tree | d4e81f96109919ce41b36c175bd8da9aba5506ee /packages/app/src/app.tsx | |
| parent | ef36af0e55d814dc80893af923886ccff40f46e5 (diff) | |
| download | opencode-b13c269162e6c858acbce6cc792636cd4cb921a9.tar.gz opencode-b13c269162e6c858acbce6cc792636cd4cb921a9.zip | |
wip(app): i18n
Diffstat (limited to 'packages/app/src/app.tsx')
| -rw-r--r-- | packages/app/src/app.tsx | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx index 0ceebcce3..c59cbe898 100644 --- a/packages/app/src/app.tsx +++ b/packages/app/src/app.tsx @@ -6,6 +6,7 @@ import { Font } from "@opencode-ai/ui/font" import { MarkedProvider } from "@opencode-ai/ui/context/marked" import { DiffComponentProvider } from "@opencode-ai/ui/context/diff" import { CodeComponentProvider } from "@opencode-ai/ui/context/code" +import { I18nProvider } from "@opencode-ai/ui/context" import { Diff } from "@opencode-ai/ui/diff" import { Code } from "@opencode-ai/ui/code" import { ThemeProvider } from "@opencode-ai/ui/theme" @@ -21,7 +22,7 @@ import { FileProvider } from "@/context/file" import { NotificationProvider } from "@/context/notification" import { DialogProvider } from "@opencode-ai/ui/context/dialog" import { CommandProvider } from "@/context/command" -import { LanguageProvider } from "@/context/language" +import { LanguageProvider, useLanguage } from "@/context/language" import { Logo } from "@opencode-ai/ui/logo" import Layout from "@/pages/layout" import DirectoryLayout from "@/pages/directory-layout" @@ -33,6 +34,11 @@ const Home = lazy(() => import("@/pages/home")) const Session = lazy(() => import("@/pages/session")) const Loading = () => <div class="size-full" /> +function UiI18nBridge(props: ParentProps) { + const language = useLanguage() + return <I18nProvider value={{ locale: language.locale, t: language.t }}>{props.children}</I18nProvider> +} + declare global { interface Window { __OPENCODE__?: { updaterEnabled?: boolean; serverPassword?: string } @@ -45,15 +51,17 @@ export function AppBaseProviders(props: ParentProps) { <Font /> <ThemeProvider> <LanguageProvider> - <ErrorBoundary fallback={(error) => <ErrorPage error={error} />}> - <DialogProvider> - <MarkedProvider> - <DiffComponentProvider component={Diff}> - <CodeComponentProvider component={Code}>{props.children}</CodeComponentProvider> - </DiffComponentProvider> - </MarkedProvider> - </DialogProvider> - </ErrorBoundary> + <UiI18nBridge> + <ErrorBoundary fallback={(error) => <ErrorPage error={error} />}> + <DialogProvider> + <MarkedProvider> + <DiffComponentProvider component={Diff}> + <CodeComponentProvider component={Code}>{props.children}</CodeComponentProvider> + </DiffComponentProvider> + </MarkedProvider> + </DialogProvider> + </ErrorBoundary> + </UiI18nBridge> </LanguageProvider> </ThemeProvider> </MetaProvider> |
