From 6ef3af73dfa1c72bb2001c86d898f2edf8ea4b10 Mon Sep 17 00:00:00 2001
From: Adam <2363879+adamdotdevin@users.noreply.github.com>
Date: Fri, 27 Feb 2026 09:45:00 -0600
Subject: [PATCH] chore(app): i18n sync (#15362)
---
.../src/components/dialog-release-notes.tsx | 10 +++---
.../app/src/components/dialog-select-file.tsx | 2 +-
.../src/components/session/session-header.tsx | 2 +-
.../app/src/components/settings-providers.tsx | 8 +++--
packages/app/src/context/global-sync.tsx | 10 +++++-
.../app/src/context/global-sync/bootstrap.ts | 17 +++++++--
packages/app/src/i18n/ar.ts | 14 ++++++++
packages/app/src/i18n/br.ts | 14 ++++++++
packages/app/src/i18n/bs.ts | 14 ++++++++
packages/app/src/i18n/da.ts | 14 ++++++++
packages/app/src/i18n/de.ts | 14 ++++++++
packages/app/src/i18n/en.ts | 16 +++++++++
packages/app/src/i18n/es.ts | 14 ++++++++
packages/app/src/i18n/fr.ts | 14 ++++++++
packages/app/src/i18n/ja.ts | 14 ++++++++
packages/app/src/i18n/ko.ts | 14 ++++++++
packages/app/src/i18n/no.ts | 14 ++++++++
packages/app/src/i18n/pl.ts | 14 ++++++++
packages/app/src/i18n/ru.ts | 14 ++++++++
packages/app/src/i18n/th.ts | 14 ++++++++
packages/app/src/i18n/tr.ts | 14 ++++++++
packages/app/src/i18n/zh.ts | 14 ++++++++
packages/app/src/i18n/zht.ts | 14 ++++++++
packages/app/src/utils/server-errors.ts | 27 +++++++++++---
packages/app/src/utils/time.ts | 18 +++++++---
packages/desktop/src/cli.ts | 30 +++++++++++++++-
packages/desktop/src/i18n/ar.ts | 33 +++++++++++++++++
packages/desktop/src/i18n/br.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/bs.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/da.ts | 33 +++++++++++++++++
packages/desktop/src/i18n/de.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/en.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/es.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/fr.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/ja.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/ko.ts | 33 +++++++++++++++++
packages/desktop/src/i18n/no.ts | 33 +++++++++++++++++
packages/desktop/src/i18n/pl.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/ru.ts | 34 ++++++++++++++++++
packages/desktop/src/i18n/zh.ts | 33 +++++++++++++++++
packages/desktop/src/i18n/zht.ts | 33 +++++++++++++++++
packages/desktop/src/index.tsx | 2 +-
packages/desktop/src/loading.tsx | 15 +++++---
packages/desktop/src/menu.ts | 36 +++++++++----------
packages/enterprise/src/app.tsx | 3 +-
packages/ui/src/components/message-part.tsx | 20 +++++++----
packages/ui/src/components/scroll-view.tsx | 4 ++-
packages/ui/src/components/session-review.tsx | 30 ++++++++--------
packages/ui/src/i18n/ar.ts | 11 ++++++
packages/ui/src/i18n/br.ts | 11 ++++++
packages/ui/src/i18n/bs.ts | 11 ++++++
packages/ui/src/i18n/da.ts | 11 ++++++
packages/ui/src/i18n/de.ts | 11 ++++++
packages/ui/src/i18n/en.ts | 13 ++++++-
packages/ui/src/i18n/es.ts | 11 ++++++
packages/ui/src/i18n/fr.ts | 11 ++++++
packages/ui/src/i18n/ja.ts | 11 ++++++
packages/ui/src/i18n/ko.ts | 11 ++++++
packages/ui/src/i18n/no.ts | 11 ++++++
packages/ui/src/i18n/pl.ts | 11 ++++++
packages/ui/src/i18n/ru.ts | 11 ++++++
packages/ui/src/i18n/th.ts | 11 ++++++
packages/ui/src/i18n/tr.ts | 11 ++++++
packages/ui/src/i18n/zh.ts | 11 ++++++
packages/ui/src/i18n/zht.ts | 11 ++++++
65 files changed, 1096 insertions(+), 71 deletions(-)
diff --git a/packages/app/src/components/dialog-release-notes.tsx b/packages/app/src/components/dialog-release-notes.tsx
index 2040009a8..d0a35b71b 100644
--- a/packages/app/src/components/dialog-release-notes.tsx
+++ b/packages/app/src/components/dialog-release-notes.tsx
@@ -2,6 +2,7 @@ import { createSignal } from "solid-js"
import { Dialog } from "@opencode-ai/ui/dialog"
import { Button } from "@opencode-ai/ui/button"
import { useDialog } from "@opencode-ai/ui/context/dialog"
+import { useLanguage } from "@/context/language"
import { useSettings } from "@/context/settings"
export type Highlight = {
@@ -16,6 +17,7 @@ export type Highlight = {
export function DialogReleaseNotes(props: { highlights: Highlight[] }) {
const dialog = useDialog()
+ const language = useLanguage()
const settings = useSettings()
const [index, setIndex] = createSignal(0)
@@ -83,16 +85,16 @@ export function DialogReleaseNotes(props: { highlights: Highlight[] }) {
{isLast() ? (
) : (
)}
@@ -128,7 +130,7 @@ export function DialogReleaseNotes(props: { highlights: Highlight[] }) {
{feature()!.media!.type === "image" ? (
) : (
diff --git a/packages/app/src/components/dialog-select-file.tsx b/packages/app/src/components/dialog-select-file.tsx
index 29a3666c0..b530aff53 100644
--- a/packages/app/src/components/dialog-select-file.tsx
+++ b/packages/app/src/components/dialog-select-file.tsx
@@ -449,7 +449,7 @@ export function DialogSelectFile(props: { mode?: DialogSelectFileMode; onOpenFil
- {getRelativeTime(new Date(item.updated!).toISOString())}
+ {getRelativeTime(new Date(item.updated!).toISOString(), language.t)}
diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx
index f3209c354..27b1b9cc0 100644
--- a/packages/app/src/components/session/session-header.tsx
+++ b/packages/app/src/components/session/session-header.tsx
@@ -430,7 +430,7 @@ export function SessionHeader() {
- Open
+ {language.t("common.open")}
{
when={canDisconnect(item)}
fallback={
- Connected from your environment variables
+ {language.t("settings.providers.connected.environmentDescription")}
}
>
@@ -229,10 +229,12 @@ export const SettingsProviders: Component = () => {
-
Custom provider
+
{language.t("provider.custom.title")}
{language.t("settings.providers.tag.custom")}
-
Add an OpenAI-compatible provider by base URL.
+
+ {language.t("settings.providers.custom.description")}
+