summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-26 14:02:01 -0500
committerGitHub <[email protected]>2026-03-26 14:02:01 -0500
commitb8fb75a94adbd9f0175e29403cd85fde55cc2793 (patch)
tree696c2e6764766a3cf4ac74e31c968c1236d66696 /packages/app/src
parent98a31e30ccc5efed528db5cb7afe9eb00f5aa2d2 (diff)
downloadopencode-b8fb75a94adbd9f0175e29403cd85fde55cc2793.tar.gz
opencode-b8fb75a94adbd9f0175e29403cd85fde55cc2793.zip
fix(app): don't bundle fonts (#19329)
Diffstat (limited to 'packages/app/src')
-rw-r--r--packages/app/src/components/settings-general.tsx98
-rw-r--r--packages/app/src/context/settings.tsx91
-rw-r--r--packages/app/src/i18n/ar.ts19
-rw-r--r--packages/app/src/i18n/br.ts19
-rw-r--r--packages/app/src/i18n/bs.ts19
-rw-r--r--packages/app/src/i18n/da.ts19
-rw-r--r--packages/app/src/i18n/de.ts19
-rw-r--r--packages/app/src/i18n/en.ts19
-rw-r--r--packages/app/src/i18n/es.ts19
-rw-r--r--packages/app/src/i18n/fr.ts19
-rw-r--r--packages/app/src/i18n/ja.ts19
-rw-r--r--packages/app/src/i18n/ko.ts19
-rw-r--r--packages/app/src/i18n/no.ts19
-rw-r--r--packages/app/src/i18n/pl.ts19
-rw-r--r--packages/app/src/i18n/ru.ts19
-rw-r--r--packages/app/src/i18n/th.ts19
-rw-r--r--packages/app/src/i18n/tr.ts19
-rw-r--r--packages/app/src/i18n/zh.ts19
-rw-r--r--packages/app/src/i18n/zht.ts19
19 files changed, 174 insertions, 338 deletions
diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx
index f4b8198e7..ec0614729 100644
--- a/packages/app/src/components/settings-general.tsx
+++ b/packages/app/src/components/settings-general.tsx
@@ -4,12 +4,21 @@ import { Button } from "@opencode-ai/ui/button"
import { Icon } from "@opencode-ai/ui/icon"
import { Select } from "@opencode-ai/ui/select"
import { Switch } from "@opencode-ai/ui/switch"
+import { TextField } from "@opencode-ai/ui/text-field"
import { Tooltip } from "@opencode-ai/ui/tooltip"
import { useTheme, type ColorScheme } from "@opencode-ai/ui/theme/context"
import { showToast } from "@opencode-ai/ui/toast"
import { useLanguage } from "@/context/language"
import { usePlatform } from "@/context/platform"
-import { useSettings, monoFontFamily } from "@/context/settings"
+import {
+ monoDefault,
+ monoFontFamily,
+ monoInput,
+ sansDefault,
+ sansFontFamily,
+ sansInput,
+ useSettings,
+} from "@/context/settings"
import { playSoundById, SOUND_OPTIONS } from "@/utils/sound"
import { Link } from "./link"
import { SettingsList } from "./settings-list"
@@ -25,13 +34,6 @@ type ThemeOption = {
name: string
}
-let font: Promise<typeof import("@opencode-ai/ui/font-loader")> | undefined
-
-function loadFont() {
- font ??= import("@opencode-ai/ui/font-loader")
- return font
-}
-
// To prevent audio from overlapping/playing very quickly when navigating the settings menus,
// delay the playback by 100ms during quick selection changes and pause existing sounds.
const stopDemoSound = () => {
@@ -149,25 +151,10 @@ export const SettingsGeneral: Component = () => {
})),
)
- const fontOptions = [
- { value: "ibm-plex-mono", label: "font.option.ibmPlexMono" },
- { value: "cascadia-code", label: "font.option.cascadiaCode" },
- { value: "fira-code", label: "font.option.firaCode" },
- { value: "hack", label: "font.option.hack" },
- { value: "inconsolata", label: "font.option.inconsolata" },
- { value: "intel-one-mono", label: "font.option.intelOneMono" },
- { value: "iosevka", label: "font.option.iosevka" },
- { value: "jetbrains-mono", label: "font.option.jetbrainsMono" },
- { value: "meslo-lgs", label: "font.option.mesloLgs" },
- { value: "roboto-mono", label: "font.option.robotoMono" },
- { value: "source-code-pro", label: "font.option.sourceCodePro" },
- { value: "ubuntu-mono", label: "font.option.ubuntuMono" },
- { value: "geist-mono", label: "font.option.geistMono" },
- ] as const
- const fontOptionsList = [...fontOptions]
-
const noneSound = { id: "none", label: "sound.option.none" } as const
const soundOptions = [noneSound, ...SOUND_OPTIONS]
+ const mono = () => monoInput(settings.appearance.font())
+ const sans = () => sansInput(settings.appearance.uiFont())
const soundSelectProps = (
enabled: () => boolean,
@@ -335,30 +322,49 @@ export const SettingsGeneral: Component = () => {
</SettingsRow>
<SettingsRow
+ title={language.t("settings.general.row.uiFont.title")}
+ description={language.t("settings.general.row.uiFont.description")}
+ >
+ <div class="w-full sm:w-[220px]">
+ <TextField
+ data-action="settings-ui-font"
+ label={language.t("settings.general.row.uiFont.title")}
+ hideLabel
+ type="text"
+ value={sans()}
+ onChange={(value) => settings.appearance.setUIFont(value)}
+ placeholder={sansDefault}
+ spellcheck={false}
+ autocorrect="off"
+ autocomplete="off"
+ autocapitalize="off"
+ class="text-12-regular"
+ style={{ "font-family": sansFontFamily(settings.appearance.uiFont()) }}
+ />
+ </div>
+ </SettingsRow>
+
+ <SettingsRow
title={language.t("settings.general.row.font.title")}
description={language.t("settings.general.row.font.description")}
>
- <Select
- data-action="settings-font"
- options={fontOptionsList}
- current={fontOptionsList.find((o) => o.value === settings.appearance.font())}
- value={(o) => o.value}
- label={(o) => language.t(o.label)}
- onHighlight={(option) => {
- void loadFont().then((x) => x.ensureMonoFont(option?.value))
- }}
- onSelect={(option) => option && settings.appearance.setFont(option.value)}
- variant="secondary"
- size="small"
- triggerVariant="settings"
- triggerStyle={{ "font-family": monoFontFamily(settings.appearance.font()), "min-width": "180px" }}
- >
- {(option) => (
- <span style={{ "font-family": monoFontFamily(option?.value) }}>
- {option ? language.t(option.label) : ""}
- </span>
- )}
- </Select>
+ <div class="w-full sm:w-[220px]">
+ <TextField
+ data-action="settings-code-font"
+ label={language.t("settings.general.row.font.title")}
+ hideLabel
+ type="text"
+ value={mono()}
+ onChange={(value) => settings.appearance.setFont(value)}
+ placeholder={monoDefault}
+ spellcheck={false}
+ autocorrect="off"
+ autocomplete="off"
+ autocapitalize="off"
+ class="text-12-regular"
+ style={{ "font-family": monoFontFamily(settings.appearance.font()) }}
+ />
+ </div>
</SettingsRow>
</SettingsList>
</div>
diff --git a/packages/app/src/context/settings.tsx b/packages/app/src/context/settings.tsx
index eddd752eb..679f3f86d 100644
--- a/packages/app/src/context/settings.tsx
+++ b/packages/app/src/context/settings.tsx
@@ -33,6 +33,7 @@ export interface Settings {
appearance: {
fontSize: number
font: string
+ uiFont: string
}
keybinds: Record<string, string>
permissions: {
@@ -42,6 +43,49 @@ export interface Settings {
sounds: SoundSettings
}
+export const monoDefault = "IBM Plex Mono"
+export const sansDefault = "Inter"
+
+const monoFallback =
+ 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
+const sansFallback = 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'
+
+const monoBase = `"${monoDefault}", "IBM Plex Mono Fallback", ${monoFallback}`
+const sansBase = `"${sansDefault}", "Inter Fallback", ${sansFallback}`
+const monoKey = "ibm-plex-mono"
+
+function input(font: string | undefined, key?: string) {
+ if (!font || font === key || !font.trim()) return ""
+ return font
+}
+
+function family(font: string) {
+ if (/^[\w-]+$/.test(font)) return font
+ return `"${font.replaceAll("\\", "\\\\").replaceAll('"', '\\"')}"`
+}
+
+function stack(font: string | undefined, base: string, key?: string) {
+ const value = input(font, key).trim()
+ if (!value) return base
+ return `${family(value)}, ${base}`
+}
+
+export function monoInput(font: string | undefined) {
+ return input(font, monoKey)
+}
+
+export function sansInput(font: string | undefined) {
+ return input(font)
+}
+
+export function monoFontFamily(font: string | undefined) {
+ return stack(font, monoBase, monoKey)
+}
+
+export function sansFontFamily(font: string | undefined) {
+ return stack(font, sansBase)
+}
+
const defaultSettings: Settings = {
general: {
autoSave: true,
@@ -56,7 +100,8 @@ const defaultSettings: Settings = {
},
appearance: {
fontSize: 14,
- font: "ibm-plex-mono",
+ font: "",
+ uiFont: "",
},
keybinds: {},
permissions: {
@@ -77,40 +122,10 @@ const defaultSettings: Settings = {
},
}
-const monoFallback =
- 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
-
-const monoFonts: Record<string, string> = {
- "ibm-plex-mono": `"IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "cascadia-code": `"Cascadia Code Nerd Font", "Cascadia Code NF", "Cascadia Mono NF", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "fira-code": `"Fira Code Nerd Font", "FiraMono Nerd Font", "FiraMono Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- hack: `"Hack Nerd Font", "Hack Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- inconsolata: `"Inconsolata Nerd Font", "Inconsolata Nerd Font Mono","IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "intel-one-mono": `"Intel One Mono Nerd Font", "IntoneMono Nerd Font", "IntoneMono Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- iosevka: `"Iosevka Nerd Font", "Iosevka Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "jetbrains-mono": `"JetBrains Mono Nerd Font", "JetBrainsMono Nerd Font Mono", "JetBrainsMonoNL Nerd Font", "JetBrainsMonoNL Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "meslo-lgs": `"Meslo LGS Nerd Font", "MesloLGS Nerd Font", "MesloLGM Nerd Font", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "roboto-mono": `"Roboto Mono Nerd Font", "RobotoMono Nerd Font", "RobotoMono Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "source-code-pro": `"Source Code Pro Nerd Font", "SauceCodePro Nerd Font", "SauceCodePro Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "ubuntu-mono": `"Ubuntu Mono Nerd Font", "UbuntuMono Nerd Font", "UbuntuMono Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
- "geist-mono": `"GeistMono Nerd Font", "GeistMono Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`,
-}
-
-export function monoFontFamily(font: string | undefined) {
- return monoFonts[font ?? defaultSettings.appearance.font] ?? monoFonts[defaultSettings.appearance.font]
-}
-
function withFallback<T>(read: () => T | undefined, fallback: T) {
return createMemo(() => read() ?? fallback)
}
-let font: Promise<typeof import("@opencode-ai/ui/font-loader")> | undefined
-
-function loadFont() {
- font ??= import("@opencode-ai/ui/font-loader")
- return font
-}
-
export const { use: useSettings, provider: SettingsProvider } = createSimpleContext({
name: "Settings",
init: () => {
@@ -118,11 +133,9 @@ export const { use: useSettings, provider: SettingsProvider } = createSimpleCont
createEffect(() => {
if (typeof document === "undefined") return
- const id = store.appearance?.font ?? defaultSettings.appearance.font
- if (id !== defaultSettings.appearance.font) {
- void loadFont().then((x) => x.ensureMonoFont(id))
- }
- document.documentElement.style.setProperty("--font-family-mono", monoFontFamily(id))
+ const root = document.documentElement
+ root.style.setProperty("--font-family-mono", monoFontFamily(store.appearance?.font))
+ root.style.setProperty("--font-family-sans", sansFontFamily(store.appearance?.uiFont))
})
return {
@@ -178,7 +191,11 @@ export const { use: useSettings, provider: SettingsProvider } = createSimpleCont
},
font: withFallback(() => store.appearance?.font, defaultSettings.appearance.font),
setFont(value: string) {
- setStore("appearance", "font", value)
+ setStore("appearance", "font", value.trim() ? value : "")
+ },
+ uiFont: withFallback(() => store.appearance?.uiFont, defaultSettings.appearance.uiFont),
+ setUIFont(value: string) {
+ setStore("appearance", "uiFont", value.trim() ? value : "")
},
},
keybinds: {
diff --git a/packages/app/src/i18n/ar.ts b/packages/app/src/i18n/ar.ts
index 6e40e0300..6c3f3bb55 100644
--- a/packages/app/src/i18n/ar.ts
+++ b/packages/app/src/i18n/ar.ts
@@ -564,8 +564,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "اختر ما إذا كان OpenCode يتبع سمة النظام أو الفاتح أو الداكن",
"settings.general.row.theme.title": "السمة",
"settings.general.row.theme.description": "تخصيص سمة OpenCode.",
- "settings.general.row.font.title": "الخط",
- "settings.general.row.font.description": "تخصيص الخط الأحادي المستخدم في كتل التعليمات البرمجية",
+ "settings.general.row.font.title": "خط الكود",
+ "settings.general.row.font.description": "خصّص الخط المستخدم في كتل التعليمات البرمجية والطرفيات",
+ "settings.general.row.uiFont.title": "خط الواجهة",
+ "settings.general.row.uiFont.description": "خصّص الخط المستخدم في الواجهة بأكملها",
"settings.general.row.followup.title": "سلوك المتابعة",
"settings.general.row.followup.description": "اختر ما إذا كانت طلبات المتابعة توجه فورًا أو تنتظر في قائمة انتظار",
"settings.general.row.followup.option.queue": "قائمة انتظار",
@@ -592,19 +594,6 @@ export const dict = {
"settings.updates.action.checking": "جارٍ التحقق...",
"settings.updates.toast.latest.title": "أنت على آخر إصدار",
"settings.updates.toast.latest.description": "أنت تستخدم أحدث إصدار من OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "بلا",
"sound.option.alert01": "تنبيه 01",
"sound.option.alert02": "تنبيه 02",
diff --git a/packages/app/src/i18n/br.ts b/packages/app/src/i18n/br.ts
index 3c7ef9d82..63880462a 100644
--- a/packages/app/src/i18n/br.ts
+++ b/packages/app/src/i18n/br.ts
@@ -571,8 +571,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "Escolha se o OpenCode segue o tema do sistema, claro ou escuro",
"settings.general.row.theme.title": "Tema",
"settings.general.row.theme.description": "Personalize como o OpenCode é tematizado.",
- "settings.general.row.font.title": "Fonte",
- "settings.general.row.font.description": "Personalize a fonte monoespaçada usada em blocos de código",
+ "settings.general.row.font.title": "Fonte de código",
+ "settings.general.row.font.description": "Personalize a fonte usada em blocos de código e terminais",
+ "settings.general.row.uiFont.title": "Fonte da interface",
+ "settings.general.row.uiFont.description": "Personalize a fonte usada em toda a interface",
"settings.general.row.followup.title": "Comportamento de acompanhamento",
"settings.general.row.followup.description":
"Escolha se os prompts de acompanhamento orientam imediatamente ou esperam na fila",
@@ -600,19 +602,6 @@ export const dict = {
"settings.updates.action.checking": "Verificando...",
"settings.updates.toast.latest.title": "Você está atualizado",
"settings.updates.toast.latest.description": "Você está usando a versão mais recente do OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Nenhum",
"sound.option.alert01": "Alerta 01",
"sound.option.alert02": "Alerta 02",
diff --git a/packages/app/src/i18n/bs.ts b/packages/app/src/i18n/bs.ts
index 15b73453b..2b589eb35 100644
--- a/packages/app/src/i18n/bs.ts
+++ b/packages/app/src/i18n/bs.ts
@@ -636,8 +636,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "Odaberi da li OpenCode prati sistemsku, svijetlu ili tamnu temu",
"settings.general.row.theme.title": "Tema",
"settings.general.row.theme.description": "Prilagodi temu OpenCode-a.",
- "settings.general.row.font.title": "Font",
- "settings.general.row.font.description": "Prilagodi monospace font koji se koristi u blokovima koda",
+ "settings.general.row.font.title": "Font za kod",
+ "settings.general.row.font.description": "Prilagodi font koji se koristi u blokovima koda i terminalima",
+ "settings.general.row.uiFont.title": "UI font",
+ "settings.general.row.uiFont.description": "Prilagodi font koji se koristi u cijelom interfejsu",
"settings.general.row.followup.title": "Ponašanje nadovezivanja",
"settings.general.row.followup.description": "Odaberi da li upiti nadovezivanja usmjeravaju odmah ili čekaju u redu",
"settings.general.row.followup.option.queue": "Red čekanja",
@@ -667,19 +669,6 @@ export const dict = {
"settings.updates.action.checking": "Provjera...",
"settings.updates.toast.latest.title": "Sve je ažurno",
"settings.updates.toast.latest.description": "Koristiš najnoviju verziju OpenCode-a.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Nijedan",
"sound.option.alert01": "Upozorenje 01",
"sound.option.alert02": "Upozorenje 02",
diff --git a/packages/app/src/i18n/da.ts b/packages/app/src/i18n/da.ts
index 55212facc..b096d87b4 100644
--- a/packages/app/src/i18n/da.ts
+++ b/packages/app/src/i18n/da.ts
@@ -631,8 +631,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "Vælg om OpenCode følger systemets, lyst eller mørkt tema",
"settings.general.row.theme.title": "Tema",
"settings.general.row.theme.description": "Tilpas hvordan OpenCode er temabestemt.",
- "settings.general.row.font.title": "Skrifttype",
- "settings.general.row.font.description": "Tilpas mono-skrifttypen brugt i kodeblokke",
+ "settings.general.row.font.title": "Kode-skrifttype",
+ "settings.general.row.font.description": "Tilpas skrifttypen, der bruges i kodeblokke og terminaler",
+ "settings.general.row.uiFont.title": "UI-skrifttype",
+ "settings.general.row.uiFont.description": "Tilpas skrifttypen, der bruges i hele brugerfladen",
"settings.general.row.followup.title": "Opfølgningsadfærd",
"settings.general.row.followup.description": "Vælg om opfølgende forespørgsler skal styre straks eller vente i kø",
"settings.general.row.followup.option.queue": "Kø",
@@ -662,19 +664,6 @@ export const dict = {
"settings.updates.toast.latest.title": "Du er opdateret",
"settings.updates.toast.latest.description": "Du kører den nyeste version af OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Ingen",
"sound.option.alert01": "Alarm 01",
"sound.option.alert02": "Alarm 02",
diff --git a/packages/app/src/i18n/de.ts b/packages/app/src/i18n/de.ts
index 552375f57..6dc0b0497 100644
--- a/packages/app/src/i18n/de.ts
+++ b/packages/app/src/i18n/de.ts
@@ -581,8 +581,10 @@ export const dict = {
"Wählen Sie, ob OpenCode dem System-, hellen oder dunklen Thema folgt",
"settings.general.row.theme.title": "Thema",
"settings.general.row.theme.description": "Das Thema von OpenCode anpassen.",
- "settings.general.row.font.title": "Schriftart",
- "settings.general.row.font.description": "Die in Codeblöcken verwendete Monospace-Schriftart anpassen",
+ "settings.general.row.font.title": "Code-Schriftart",
+ "settings.general.row.font.description": "Die in Codeblöcken und Terminals verwendete Schriftart anpassen",
+ "settings.general.row.uiFont.title": "UI-Schriftart",
+ "settings.general.row.uiFont.description": "Die im gesamten Interface verwendete Schriftart anpassen",
"settings.general.row.followup.title": "Verhalten bei Folgefragen",
"settings.general.row.followup.description":
"Wählen Sie, ob Folgefragen sofort steuern oder in einer Warteschlange warten",
@@ -611,19 +613,6 @@ export const dict = {
"settings.updates.action.checking": "Wird geprüft...",
"settings.updates.toast.latest.title": "Du bist auf dem neuesten Stand",
"settings.updates.toast.latest.description": "Du verwendest die aktuelle Version von OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Keine",
"sound.option.alert01": "Alarm 01",
"sound.option.alert02": "Alarm 02",
diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts
index dde092511..39317b8d6 100644
--- a/packages/app/src/i18n/en.ts
+++ b/packages/app/src/i18n/en.ts
@@ -729,8 +729,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "Choose whether OpenCode follows the system, light, or dark theme",
"settings.general.row.theme.title": "Theme",
"settings.general.row.theme.description": "Customise how OpenCode is themed.",
- "settings.general.row.font.title": "Font",
- "settings.general.row.font.description": "Customise the mono font used in code blocks",
+ "settings.general.row.font.title": "Code Font",
+ "settings.general.row.font.description": "Customise the font used in code blocks and terminals",
+ "settings.general.row.uiFont.title": "UI Font",
+ "settings.general.row.uiFont.description": "Customise the font used throughout the interface",
"settings.general.row.followup.title": "Follow-up behavior",
"settings.general.row.followup.description": "Choose whether follow-up prompts steer immediately or wait in a queue",
"settings.general.row.followup.option.queue": "Queue",
@@ -760,19 +762,6 @@ export const dict = {
"settings.updates.action.checking": "Checking...",
"settings.updates.toast.latest.title": "You're up to date",
"settings.updates.toast.latest.description": "You're running the latest version of OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "None",
"sound.option.alert01": "Alert 01",
"sound.option.alert02": "Alert 02",
diff --git a/packages/app/src/i18n/es.ts b/packages/app/src/i18n/es.ts
index 31fd71c04..c600232ef 100644
--- a/packages/app/src/i18n/es.ts
+++ b/packages/app/src/i18n/es.ts
@@ -639,8 +639,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "Elige si OpenCode sigue el tema del sistema, claro u oscuro",
"settings.general.row.theme.title": "Tema",
"settings.general.row.theme.description": "Personaliza el tema de OpenCode.",
- "settings.general.row.font.title": "Fuente",
- "settings.general.row.font.description": "Personaliza la fuente monoespaciada usada en bloques de código",
+ "settings.general.row.font.title": "Fuente de código",
+ "settings.general.row.font.description": "Personaliza la fuente usada en bloques de código y terminales",
+ "settings.general.row.uiFont.title": "Fuente de la interfaz",
+ "settings.general.row.uiFont.description": "Personaliza la fuente usada en toda la interfaz",
"settings.general.row.followup.title": "Comportamiento de seguimiento",
"settings.general.row.followup.description":
"Elige si los prompts de seguimiento se dirigen inmediatamente o esperan en una cola",
@@ -672,19 +674,6 @@ export const dict = {
"settings.updates.action.checking": "Buscando...",
"settings.updates.toast.latest.title": "Estás al día",
"settings.updates.toast.latest.description": "Estás usando la última versión de OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Ninguno",
"sound.option.alert01": "Alerta 01",
"sound.option.alert02": "Alerta 02",
diff --git a/packages/app/src/i18n/fr.ts b/packages/app/src/i18n/fr.ts
index e19282a76..a140c1e3a 100644
--- a/packages/app/src/i18n/fr.ts
+++ b/packages/app/src/i18n/fr.ts
@@ -578,8 +578,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "Choisissez si OpenCode suit le thème système, clair ou sombre",
"settings.general.row.theme.title": "Thème",
"settings.general.row.theme.description": "Personnaliser le thème d'OpenCode.",
- "settings.general.row.font.title": "Police",
- "settings.general.row.font.description": "Personnaliser la police mono utilisée dans les blocs de code",
+ "settings.general.row.font.title": "Police de code",
+ "settings.general.row.font.description": "Personnaliser la police utilisée dans les blocs de code et les terminaux",
+ "settings.general.row.uiFont.title": "Police de l'interface",
+ "settings.general.row.uiFont.description": "Personnaliser la police utilisée dans toute l'interface",
"settings.general.row.followup.title": "Comportement de suivi",
"settings.general.row.followup.description":
"Choisissez si les messages de suivi dirigent immédiatement ou attendent dans une file d'attente",
@@ -608,19 +610,6 @@ export const dict = {
"settings.updates.action.checking": "Vérification...",
"settings.updates.toast.latest.title": "Vous êtes à jour",
"settings.updates.toast.latest.description": "Vous utilisez la dernière version d'OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Aucun",
"sound.option.alert01": "Alerte 01",
"sound.option.alert02": "Alerte 02",
diff --git a/packages/app/src/i18n/ja.ts b/packages/app/src/i18n/ja.ts
index 52e4ab6ed..3da1c4b43 100644
--- a/packages/app/src/i18n/ja.ts
+++ b/packages/app/src/i18n/ja.ts
@@ -568,8 +568,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "OpenCodeがシステム、ライト、またはダークテーマに従うかを選択します",
"settings.general.row.theme.title": "テーマ",
"settings.general.row.theme.description": "OpenCodeのテーマをカスタマイズします。",
- "settings.general.row.font.title": "フォント",
- "settings.general.row.font.description": "コードブロックで使用する等幅フォントをカスタマイズします",
+ "settings.general.row.font.title": "コードフォント",
+ "settings.general.row.font.description": "コードブロックとターミナルで使用するフォントをカスタマイズします",
+ "settings.general.row.uiFont.title": "UIフォント",
+ "settings.general.row.uiFont.description": "インターフェース全体で使用するフォントをカスタマイズします",
"settings.general.row.followup.title": "フォローアップの動作",
"settings.general.row.followup.description":
"フォローアッププロンプトを即座に実行するか、キューで待機させるかを選択します",
@@ -597,19 +599,6 @@ export const dict = {
"settings.updates.action.checking": "確認中...",
"settings.updates.toast.latest.title": "最新です",
"settings.updates.toast.latest.description": "OpenCode は最新バージョンです。",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "なし",
"sound.option.alert01": "アラート 01",
"sound.option.alert02": "アラート 02",
diff --git a/packages/app/src/i18n/ko.ts b/packages/app/src/i18n/ko.ts
index 8d9efabb6..0f2f7647a 100644
--- a/packages/app/src/i18n/ko.ts
+++ b/packages/app/src/i18n/ko.ts
@@ -569,8 +569,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "OpenCode가 시스템, 라이트 또는 다크 테마를 따를지 선택하세요",
"settings.general.row.theme.title": "테마",
"settings.general.row.theme.description": "OpenCode 테마 사용자 지정",
- "settings.general.row.font.title": "글꼴",
- "settings.general.row.font.description": "코드 블록에 사용되는 고정폭 글꼴 사용자 지정",
+ "settings.general.row.font.title": "코드 글꼴",
+ "settings.general.row.font.description": "코드 블록과 터미널에 사용되는 글꼴을 사용자 지정",
+ "settings.general.row.uiFont.title": "UI 글꼴",
+ "settings.general.row.uiFont.description": "인터페이스 전반에 사용되는 글꼴을 사용자 지정",
"settings.general.row.followup.title": "후속 조치 동작",
"settings.general.row.followup.description": "후속 프롬프트를 즉시 실행할지 대기열에 넣을지 선택하세요",
"settings.general.row.followup.option.queue": "대기열",
@@ -597,19 +599,6 @@ export const dict = {
"settings.updates.action.checking": "확인 중...",
"settings.updates.toast.latest.title": "최신 상태입니다",
"settings.updates.toast.latest.description": "현재 최신 버전의 OpenCode를 사용 중입니다.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "없음",
"sound.option.alert01": "알림 01",
"sound.option.alert02": "알림 02",
diff --git a/packages/app/src/i18n/no.ts b/packages/app/src/i18n/no.ts
index 7342ec083..a0a968179 100644
--- a/packages/app/src/i18n/no.ts
+++ b/packages/app/src/i18n/no.ts
@@ -639,8 +639,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "Velg om OpenCode skal følge systemets, lyst eller mørkt tema",
"settings.general.row.theme.title": "Tema",
"settings.general.row.theme.description": "Tilpass hvordan OpenCode er tematisert.",
- "settings.general.row.font.title": "Skrift",
- "settings.general.row.font.description": "Tilpass mono-skriften som brukes i kodeblokker",
+ "settings.general.row.font.title": "Kodefont",
+ "settings.general.row.font.description": "Tilpass skrifttypen som brukes i kodeblokker og terminaler",
+ "settings.general.row.uiFont.title": "UI-skrift",
+ "settings.general.row.uiFont.description": "Tilpass skrifttypen som brukes i hele grensesnittet",
"settings.general.row.followup.title": "Oppfølgingsadferd",
"settings.general.row.followup.description": "Velg om oppfølgingsspørsmål skal kjøres umiddelbart eller vente i kø",
"settings.general.row.followup.option.queue": "Kø",
@@ -668,19 +670,6 @@ export const dict = {
"settings.updates.action.checking": "Sjekker...",
"settings.updates.toast.latest.title": "Du er oppdatert",
"settings.updates.toast.latest.description": "Du bruker den nyeste versjonen av OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Ingen",
"sound.option.alert01": "Varsel 01",
"sound.option.alert02": "Varsel 02",
diff --git a/packages/app/src/i18n/pl.ts b/packages/app/src/i18n/pl.ts
index d3a3d6266..88d209f11 100644
--- a/packages/app/src/i18n/pl.ts
+++ b/packages/app/src/i18n/pl.ts
@@ -570,8 +570,10 @@ export const dict = {
"Wybierz, czy OpenCode ma używać motywu systemowego, jasnego czy ciemnego",
"settings.general.row.theme.title": "Motyw",
"settings.general.row.theme.description": "Dostosuj motyw OpenCode.",
- "settings.general.row.font.title": "Czcionka",
- "settings.general.row.font.description": "Dostosuj czcionkę mono używaną w blokach kodu",
+ "settings.general.row.font.title": "Czcionka kodu",
+ "settings.general.row.font.description": "Dostosuj czcionkę używaną w blokach kodu i terminalach",
+ "settings.general.row.uiFont.title": "Czcionka interfejsu",
+ "settings.general.row.uiFont.description": "Dostosuj czcionkę używaną w całym interfejsie",
"settings.general.row.followup.title": "Zachowanie kontynuacji",
"settings.general.row.followup.description": "Wybierz, czy kontynuacja ma być natychmiastowa, czy czekać w kolejce",
"settings.general.row.followup.option.queue": "Kolejka",
@@ -598,19 +600,6 @@ export const dict = {
"settings.updates.action.checking": "Sprawdzanie...",
"settings.updates.toast.latest.title": "Masz najnowszą wersję",
"settings.updates.toast.latest.description": "Korzystasz z najnowszej wersji OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Brak",
"sound.option.alert01": "Alert 01",
"sound.option.alert02": "Alert 02",
diff --git a/packages/app/src/i18n/ru.ts b/packages/app/src/i18n/ru.ts
index ac02f8dbe..688289b7e 100644
--- a/packages/app/src/i18n/ru.ts
+++ b/packages/app/src/i18n/ru.ts
@@ -636,8 +636,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "Выберите, следует ли OpenCode системной, светлой или тёмной теме",
"settings.general.row.theme.title": "Тема",
"settings.general.row.theme.description": "Настройте оформление OpenCode.",
- "settings.general.row.font.title": "Шрифт",
- "settings.general.row.font.description": "Настройте моноширинный шрифт для блоков кода",
+ "settings.general.row.font.title": "Шрифт кода",
+ "settings.general.row.font.description": "Настройте шрифт, используемый в блоках кода и терминалах",
+ "settings.general.row.uiFont.title": "Шрифт интерфейса",
+ "settings.general.row.uiFont.description": "Настройте шрифт, используемый во всем интерфейсе",
"settings.general.row.followup.title": "Поведение уточняющих вопросов",
"settings.general.row.followup.description":
"Выберите, отправлять ли уточняющие вопросы сразу или помещать их в очередь",
@@ -668,19 +670,6 @@ export const dict = {
"settings.updates.action.checking": "Проверка...",
"settings.updates.toast.latest.title": "У вас последняя версия",
"settings.updates.toast.latest.description": "Вы используете последнюю версию OpenCode.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Нет",
"sound.option.alert01": "Alert 01",
"sound.option.alert02": "Alert 02",
diff --git a/packages/app/src/i18n/th.ts b/packages/app/src/i18n/th.ts
index 8d146123f..5decf3adb 100644
--- a/packages/app/src/i18n/th.ts
+++ b/packages/app/src/i18n/th.ts
@@ -630,8 +630,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "เลือกว่าจะให้ OpenCode ใช้ธีมตามระบบ สว่าง หรือมืด",
"settings.general.row.theme.title": "ธีม",
"settings.general.row.theme.description": "ปรับแต่งวิธีการที่ OpenCode มีธีม",
- "settings.general.row.font.title": "ฟอนต์",
- "settings.general.row.font.description": "ปรับแต่งฟอนต์โมโนที่ใช้ในบล็อกโค้ด",
+ "settings.general.row.font.title": "ฟอนต์โค้ด",
+ "settings.general.row.font.description": "ปรับแต่งฟอนต์ที่ใช้ในบล็อกโค้ดและเทอร์มินัล",
+ "settings.general.row.uiFont.title": "ฟอนต์ UI",
+ "settings.general.row.uiFont.description": "ปรับแต่งฟอนต์ที่ใช้ทั่วทั้งอินเทอร์เฟซ",
"settings.general.row.followup.title": "พฤติกรรมการติดตามผล",
"settings.general.row.followup.description": "เลือกว่าจะให้พร้อมท์ติดตามผลทำงานทันทีหรือรอในคิว",
"settings.general.row.followup.option.queue": "คิว",
@@ -659,19 +661,6 @@ export const dict = {
"settings.updates.toast.latest.title": "คุณเป็นเวอร์ชันล่าสุดแล้ว",
"settings.updates.toast.latest.description": "คุณกำลังใช้งาน OpenCode เวอร์ชันล่าสุด",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "ไม่มี",
"sound.option.alert01": "เสียงเตือน 01",
"sound.option.alert02": "เสียงเตือน 02",
diff --git a/packages/app/src/i18n/tr.ts b/packages/app/src/i18n/tr.ts
index fb3c0c26f..e50b40832 100644
--- a/packages/app/src/i18n/tr.ts
+++ b/packages/app/src/i18n/tr.ts
@@ -643,8 +643,10 @@ export const dict = {
"OpenCode'un sistem, açık veya koyu temayı takip etip etmeyeceğini seçin",
"settings.general.row.theme.title": "Tema",
"settings.general.row.theme.description": "OpenCode'un temasını özelleştirin.",
- "settings.general.row.font.title": "Yazı Tipi",
- "settings.general.row.font.description": "Kod bloklarında kullanılan monospace yazı tipini özelleştirin",
+ "settings.general.row.font.title": "Kod Yazı Tipi",
+ "settings.general.row.font.description": "Kod bloklarında ve terminallerde kullanılan yazı tipini özelleştirin",
+ "settings.general.row.uiFont.title": "Arayüz Yazı Tipi",
+ "settings.general.row.uiFont.description": "Arayüz genelinde kullanılan yazı tipini özelleştirin",
"settings.general.row.followup.title": "Takip davranışı",
"settings.general.row.followup.description":
"Takip komutlarının hemen yönlendirilmesini mi yoksa sırada beklemesini mi istediğinizi seçin",
@@ -677,19 +679,6 @@ export const dict = {
"settings.updates.toast.latest.title": "Güncelsiniz",
"settings.updates.toast.latest.description": "OpenCode'un en son sürümünü kullanıyorsunuz.",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "Yok",
"sound.option.alert01": "Uyarı 01",
diff --git a/packages/app/src/i18n/zh.ts b/packages/app/src/i18n/zh.ts
index 2a7ababb2..74f74513d 100644
--- a/packages/app/src/i18n/zh.ts
+++ b/packages/app/src/i18n/zh.ts
@@ -630,8 +630,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "选择 OpenCode 跟随系统、浅色或深色主题",
"settings.general.row.theme.title": "主题",
"settings.general.row.theme.description": "自定义 OpenCode 的主题。",
- "settings.general.row.font.title": "字体",
- "settings.general.row.font.description": "自定义代码块使用的等宽字体",
+ "settings.general.row.font.title": "代码字体",
+ "settings.general.row.font.description": "自定义代码块和终端使用的字体",
+ "settings.general.row.uiFont.title": "界面字体",
+ "settings.general.row.uiFont.description": "自定义整个界面使用的字体",
"settings.general.row.followup.title": "跟进消息行为",
"settings.general.row.followup.description": "选择跟进提示是立即引导还是在队列中等待",
"settings.general.row.followup.option.queue": "排队",
@@ -657,19 +659,6 @@ export const dict = {
"settings.updates.toast.latest.title": "已是最新版本",
"settings.updates.toast.latest.description": "你正在使用最新版本的 OpenCode。",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "无",
"sound.option.alert01": "警报 01",
diff --git a/packages/app/src/i18n/zht.ts b/packages/app/src/i18n/zht.ts
index 8ee29733e..4abdf5db5 100644
--- a/packages/app/src/i18n/zht.ts
+++ b/packages/app/src/i18n/zht.ts
@@ -625,8 +625,10 @@ export const dict = {
"settings.general.row.colorScheme.description": "選擇 OpenCode 要跟隨系統、淺色或深色主題",
"settings.general.row.theme.title": "主題",
"settings.general.row.theme.description": "自訂 OpenCode 的主題。",
- "settings.general.row.font.title": "字型",
- "settings.general.row.font.description": "自訂程式碼區塊使用的等寬字型",
+ "settings.general.row.font.title": "程式碼字型",
+ "settings.general.row.font.description": "自訂程式碼區塊和終端機使用的字型",
+ "settings.general.row.uiFont.title": "介面字型",
+ "settings.general.row.uiFont.description": "自訂整個介面使用的字型",
"settings.general.row.followup.title": "後續追問行為",
"settings.general.row.followup.description": "選擇後續追問提示是立即引導還是進入佇列等待",
"settings.general.row.followup.option.queue": "佇列",
@@ -654,19 +656,6 @@ export const dict = {
"settings.updates.toast.latest.title": "已是最新版本",
"settings.updates.toast.latest.description": "你正在使用最新版本的 OpenCode。",
- "font.option.ibmPlexMono": "IBM Plex Mono",
- "font.option.cascadiaCode": "Cascadia Code",
- "font.option.firaCode": "Fira Code",
- "font.option.hack": "Hack",
- "font.option.inconsolata": "Inconsolata",
- "font.option.intelOneMono": "Intel One Mono",
- "font.option.iosevka": "Iosevka",
- "font.option.jetbrainsMono": "JetBrains Mono",
- "font.option.mesloLgs": "Meslo LGS",
- "font.option.robotoMono": "Roboto Mono",
- "font.option.sourceCodePro": "Source Code Pro",
- "font.option.ubuntuMono": "Ubuntu Mono",
- "font.option.geistMono": "Geist Mono",
"sound.option.none": "無",
"sound.option.alert01": "警報 01",
"sound.option.alert02": "警報 02",