summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/app.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-20 15:00:46 -0600
committerAdam <[email protected]>2026-01-20 17:58:06 -0600
commitb13c269162e6c858acbce6cc792636cd4cb921a9 (patch)
treed4e81f96109919ce41b36c175bd8da9aba5506ee /packages/app/src/app.tsx
parentef36af0e55d814dc80893af923886ccff40f46e5 (diff)
downloadopencode-b13c269162e6c858acbce6cc792636cd4cb921a9.tar.gz
opencode-b13c269162e6c858acbce6cc792636cd4cb921a9.zip
wip(app): i18n
Diffstat (limited to 'packages/app/src/app.tsx')
-rw-r--r--packages/app/src/app.tsx28
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>