summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-24 18:49:02 -0500
committerAdam <[email protected]>2026-03-25 05:59:05 -0500
commit0dbfefa08088270a000496cfe94e11b5bf3ce821 (patch)
tree022df9271b5825e7c8e1192f240d31de79904075 /packages/desktop/src
parentd1c49ba210315900b7d21a7d4926b739d8021c6e (diff)
downloadopencode-0dbfefa08088270a000496cfe94e11b5bf3ce821.tar.gz
opencode-0dbfefa08088270a000496cfe94e11b5bf3ce821.zip
Reapply "fix(app): startup efficiency (#18854)"
This reverts commit a379eb38673aad097e1f178307865ec40a5ac3ea.
Diffstat (limited to 'packages/desktop/src')
-rw-r--r--packages/desktop/src/index.tsx19
1 files changed, 17 insertions, 2 deletions
diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx
index e67795644..5fe88d501 100644
--- a/packages/desktop/src/index.tsx
+++ b/packages/desktop/src/index.tsx
@@ -6,6 +6,9 @@ import {
AppBaseProviders,
AppInterface,
handleNotificationClick,
+ loadLocaleDict,
+ normalizeLocale,
+ type Locale,
type Platform,
PlatformProvider,
ServerConnection,
@@ -414,6 +417,17 @@ void listenForDeepLinks()
render(() => {
const platform = createPlatform()
+ const loadLocale = async () => {
+ const current = await platform.storage?.("opencode.global.dat").getItem("language")
+ const legacy = current ? undefined : await platform.storage?.().getItem("language.v1")
+ const raw = current ?? legacy
+ if (!raw) return
+ const locale = raw.match(/"locale"\s*:\s*"([^"]+)"/)?.[1]
+ if (!locale) return
+ const next = normalizeLocale(locale)
+ if (next !== "en") await loadLocaleDict(next)
+ return next satisfies Locale
+ }
// Fetch sidecar credentials from Rust (available immediately, before health check)
const [sidecar] = createResource(() => commands.awaitInitialization(new Channel<InitStep>() as any))
@@ -423,6 +437,7 @@ render(() => {
if (url) return ServerConnection.key({ type: "http", http: { url } })
}),
)
+ const [locale] = createResource(loadLocale)
// Build the sidecar server connection once credentials arrive
const servers = () => {
@@ -465,8 +480,8 @@ render(() => {
return (
<PlatformProvider value={platform}>
- <AppBaseProviders>
- <Show when={!defaultServer.loading && !sidecar.loading}>
+ <AppBaseProviders locale={locale.latest}>
+ <Show when={!defaultServer.loading && !sidecar.loading && !locale.loading}>
{(_) => {
return (
<AppInterface