Skip to content

Commit a3d4ea0

Browse files
committed
fix(app): locale error
1 parent 152df24 commit a3d4ea0

4 files changed

Lines changed: 31 additions & 9 deletions

File tree

packages/app/src/components/session-context-usage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export function SessionContextUsage(props: SessionContextUsageProps) {
3939

4040
const usd = createMemo(
4141
() =>
42-
new Intl.NumberFormat(language.locale(), {
42+
new Intl.NumberFormat(language.intl(), {
4343
style: "currency",
4444
currency: "USD",
4545
}),
@@ -77,7 +77,7 @@ export function SessionContextUsage(props: SessionContextUsageProps) {
7777
{(ctx) => (
7878
<>
7979
<div class="flex items-center gap-2">
80-
<span class="text-text-invert-strong">{ctx().total.toLocaleString(language.locale())}</span>
80+
<span class="text-text-invert-strong">{ctx().total.toLocaleString(language.intl())}</span>
8181
<span class="text-text-invert-base">{language.t("context.usage.tokens")}</span>
8282
</div>
8383
<div class="flex items-center gap-2">

packages/app/src/components/session/session-context-tab.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,15 +128,15 @@ export function SessionContextTab() {
128128

129129
const usd = createMemo(
130130
() =>
131-
new Intl.NumberFormat(language.locale(), {
131+
new Intl.NumberFormat(language.intl(), {
132132
style: "currency",
133133
currency: "USD",
134134
}),
135135
)
136136

137137
const metrics = createMemo(() => getSessionContextMetrics(messages(), sync.data.provider.all))
138138
const ctx = createMemo(() => metrics().context)
139-
const formatter = createMemo(() => createSessionContextFormatter(language.locale()))
139+
const formatter = createMemo(() => createSessionContextFormatter(language.intl()))
140140

141141
const cost = createMemo(() => {
142142
return usd().format(metrics().totalCost)
@@ -200,7 +200,7 @@ export function SessionContextTab() {
200200

201201
const stats = [
202202
{ label: "context.stats.session", value: () => info()?.title ?? params.id ?? "—" },
203-
{ label: "context.stats.messages", value: () => counts().all.toLocaleString(language.locale()) },
203+
{ label: "context.stats.messages", value: () => counts().all.toLocaleString(language.intl()) },
204204
{ label: "context.stats.provider", value: providerLabel },
205205
{ label: "context.stats.model", value: modelLabel },
206206
{ label: "context.stats.limit", value: () => formatter().number(ctx()?.limit) },
@@ -213,8 +213,8 @@ export function SessionContextTab() {
213213
label: "context.stats.cacheTokens",
214214
value: () => `${formatter().number(ctx()?.cacheRead)} / ${formatter().number(ctx()?.cacheWrite)}`,
215215
},
216-
{ label: "context.stats.userMessages", value: () => counts().user.toLocaleString(language.locale()) },
217-
{ label: "context.stats.assistantMessages", value: () => counts().assistant.toLocaleString(language.locale()) },
216+
{ label: "context.stats.userMessages", value: () => counts().user.toLocaleString(language.intl()) },
217+
{ label: "context.stats.assistantMessages", value: () => counts().assistant.toLocaleString(language.intl()) },
218218
{ label: "context.stats.totalCost", value: cost },
219219
{ label: "context.stats.sessionCreated", value: () => formatter().time(info()?.time.created) },
220220
{ label: "context.stats.lastActivity", value: () => formatter().time(ctx()?.message.time.created) },
@@ -307,7 +307,7 @@ export function SessionContextTab() {
307307
<div class="flex items-center gap-1 text-11-regular text-text-weak">
308308
<div class="size-2 rounded-sm" style={{ "background-color": BREAKDOWN_COLOR[segment.key] }} />
309309
<div>{breakdownLabel(segment.key)}</div>
310-
<div class="text-text-weaker">{segment.percent.toLocaleString(language.locale())}%</div>
310+
<div class="text-text-weaker">{segment.percent.toLocaleString(language.intl())}%</div>
311311
</div>
312312
)}
313313
</For>

packages/app/src/components/session/session-new-view.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export function NewSessionView(props: NewSessionViewProps) {
7070
{language.t("session.new.lastModified")}&nbsp;
7171
<span class="text-text-strong">
7272
{DateTime.fromMillis(project().time.updated ?? project().time.created)
73-
.setLocale(language.locale())
73+
.setLocale(language.intl())
7474
.toRelative()}
7575
</span>
7676
</div>

packages/app/src/context/language.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,26 @@ const LOCALES: readonly Locale[] = [
8484
"tr",
8585
]
8686

87+
const INTL: Record<Locale, string> = {
88+
en: "en",
89+
zh: "zh-Hans",
90+
zht: "zh-Hant",
91+
ko: "ko",
92+
de: "de",
93+
es: "es",
94+
fr: "fr",
95+
da: "da",
96+
ja: "ja",
97+
pl: "pl",
98+
ru: "ru",
99+
ar: "ar",
100+
no: "nb-NO",
101+
br: "pt-BR",
102+
th: "th",
103+
bs: "bs",
104+
tr: "tr",
105+
}
106+
87107
const LABEL_KEY: Record<Locale, keyof Dictionary> = {
88108
en: "language.en",
89109
zh: "language.zh",
@@ -197,6 +217,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont
197217
)
198218

199219
const locale = createMemo<Locale>(() => normalizeLocale(store.locale))
220+
const intl = createMemo(() => INTL[locale()])
200221

201222
const dict = createMemo<Dictionary>(() => DICT[locale()])
202223

@@ -213,6 +234,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont
213234
return {
214235
ready,
215236
locale,
237+
intl,
216238
locales: LOCALES,
217239
label,
218240
t,

0 commit comments

Comments
 (0)