Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .changeset/chatbot-build-panel-i18n-7388.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
"@object-ui/plugin-chatbot": patch
"@object-ui/i18n": patch
---

fix(plugin-chatbot): localize the build-progress panel, which was an English island (objectui#7388)

Every label the build panel is HANDED was already localized — the host passes
`openBuiltAppLabel`, `designBuiltAppLabel`, `previewDraftLabel` and the three
connection cues through its own `t()`. Every string the panel OWNED was a
literal in the component, so a fully Chinese conversation watched its app get
built under `Building your app…`, over `Objects` / `Views` / `Dashboards` /
`App` / `Sample data` row headings — one per row, on every build — and a
`+N more` overflow counter.

All of them now resolve through the console's pack as `chatbot.build.*`, added
to all ten locales. Behaviour for a known phase is unchanged in English, and
the unknown-artifact-type fallback still renders the raw type rather than a
raw i18n key.
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ const ar = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: "يتم عرض أول {{shown}} من أصل {{total}} سجل. ضيّق عامل التصفية.",
rowCeilingNoteUnknownTotal: "يتم عرض أول {{shown}} سجل. ضيّق عامل التصفية.",
},
Expand Down Expand Up @@ -3008,6 +3008,20 @@ const ar = {
countDashboards_one: "{{count}} لوحة معلومات",
countSeedData: "بيانات تجريبية",
},
build: {
building: "جارٍ إنشاء {{app}}…",
built: "تم إنشاء {{app}}",
appFallback: "تطبيقك",
addingSampleData: "جارٍ إضافة بيانات تجريبية",
group: {
object: "الكائنات",
view: "طرق العرض",
dashboard: "لوحات المعلومات",
app: "التطبيق",
seed: "بيانات تجريبية",
},
moreArtifacts: "+{{n}} أخرى",
},
},
chatbotError: {
title: "فشل الرد",
Expand Down
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,9 @@ const de = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: "Erste {{shown}} von {{total}} Datensätzen. Filter eingrenzen.",
rowCeilingNoteUnknownTotal: "Erste {{shown}} Datensätze. Filter eingrenzen.",
},
Expand Down Expand Up @@ -3001,6 +3001,20 @@ const de = {
countDashboards_one: "{{count}} Dashboard",
countSeedData: "Beispieldaten",
},
build: {
building: "{{app}} wird erstellt…",
built: "{{app}} wurde erstellt",
appFallback: "Ihre App",
addingSampleData: "Beispieldaten werden hinzugefügt",
group: {
object: "Objekte",
view: "Ansichten",
dashboard: "Dashboards",
app: "App",
seed: "Beispieldaten",
},
moreArtifacts: "+{{n}} weitere",
},
},
chatbotError: {
title: "Antwort fehlgeschlagen",
Expand Down
27 changes: 24 additions & 3 deletions packages/i18n/src/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,9 @@ const en = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: 'Showing the first {{shown}} of {{total}} records. Narrow the filter.',
rowCeilingNoteUnknownTotal: 'Showing the first {{shown}} records. Narrow the filter.',
},
Expand Down Expand Up @@ -3340,6 +3340,13 @@ const en = {
// `toolState.*` — the card-header badge + activity-chip vocabulary. ONE
// set for both surfaces (they used to carry separate
// tables and disagreed on casing).
// `build.*` — the apply_blueprint BUILD PANEL's own copy (objectui#7388).
// Everything else on that panel is fed by the host as an
// already-translated prop; these strings were literals in
// the component, so they stayed English in every language.
// `building`/`built` interpolate `appFallback` when the
// build has no app label, so each pack must keep BOTH
// frames in the one case/gender that noun phrase is in.
// `plan.*` — the "N objects · N views · N dashboards" strip. Plural
// FAMILIES (base key + `_one`): i18next resolves every
// CLDR category a pack does not enumerate to the base key,
Expand Down Expand Up @@ -3410,6 +3417,20 @@ const en = {
countDashboards_one: '{{count}} dashboard',
countSeedData: 'sample data',
},
build: {
building: 'Building {{app}}…',
built: 'Built {{app}}',
appFallback: 'your app',
addingSampleData: 'adding sample data',
group: {
object: 'Objects',
view: 'Views',
dashboard: 'Dashboards',
app: 'App',
seed: 'Sample data',
},
moreArtifacts: '+{{n}} more',
},
},
chatbotError: {
title: 'Response failed',
Expand Down
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ const es = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: "Mostrando los primeros {{shown}} de {{total}} registros. Acota el filtro.",
rowCeilingNoteUnknownTotal: "Mostrando los primeros {{shown}} registros. Acota el filtro.",
},
Expand Down Expand Up @@ -3005,6 +3005,20 @@ const es = {
countDashboards_one: "{{count}} panel",
countSeedData: "datos de ejemplo",
},
build: {
building: "Creando {{app}}…",
built: "Creación de {{app}} completada",
appFallback: "su aplicación",
addingSampleData: "añadiendo datos de ejemplo",
group: {
object: "Objetos",
view: "Vistas",
dashboard: "Paneles",
app: "Aplicación",
seed: "Datos de ejemplo",
},
moreArtifacts: "+{{n}} más",
},
},
chatbotError: {
title: "Error en la respuesta",
Expand Down
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,9 @@ const fr = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: "Affichage des {{shown}} premiers enregistrements sur {{total}}. Affinez le filtre.",
rowCeilingNoteUnknownTotal: "Affichage des {{shown}} premiers enregistrements. Affinez le filtre.",
},
Expand Down Expand Up @@ -3003,6 +3003,20 @@ const fr = {
countDashboards_one: "{{count}} tableau de bord",
countSeedData: "données d’exemple",
},
build: {
building: "Création de {{app}}…",
built: "Création de {{app}} terminée",
appFallback: "votre application",
addingSampleData: "ajout de données d’exemple",
group: {
object: "Objets",
view: "Vues",
dashboard: "Tableaux de bord",
app: "Application",
seed: "Données d’exemple",
},
moreArtifacts: "+{{n}} autres",
},
},
chatbotError: {
title: "Échec de la réponse",
Expand Down
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,9 @@ const ja = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: "{{total}} 件中、最初の {{shown}} 件を表示しています。フィルターを絞り込んでください。",
rowCeilingNoteUnknownTotal: "最初の {{shown}} 件を表示しています。フィルターを絞り込んでください。",
},
Expand Down Expand Up @@ -3003,6 +3003,20 @@ const ja = {
countDashboards_one: "{{count}} 件のダッシュボード",
countSeedData: "サンプルデータ",
},
build: {
building: "{{app}}を構築しています…",
built: "{{app}}を構築しました",
appFallback: "アプリ",
addingSampleData: "サンプルデータを追加中",
group: {
object: "オブジェクト",
view: "ビュー",
dashboard: "ダッシュボード",
app: "アプリ",
seed: "サンプルデータ",
},
moreArtifacts: "他 {{n}} 件",
},
},
chatbotError: {
title: "応答に失敗しました",
Expand Down
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,9 @@ const ko = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: "전체 {{total}}개 중 처음 {{shown}}개를 표시합니다. 필터를 좁히세요.",
rowCeilingNoteUnknownTotal: "처음 {{shown}}개를 표시합니다. 필터를 좁히세요.",
},
Expand Down Expand Up @@ -3000,6 +3000,20 @@ const ko = {
countDashboards_one: "대시보드 {{count}}개",
countSeedData: "샘플 데이터",
},
build: {
building: "{{app}} 빌드 중…",
built: "{{app}} 빌드 완료",
appFallback: "앱",
addingSampleData: "샘플 데이터 추가 중",
group: {
object: "오브젝트",
view: "뷰",
dashboard: "대시보드",
app: "앱",
seed: "샘플 데이터",
},
moreArtifacts: "외 {{n}}개",
},
},
chatbotError: {
title: "응답 실패",
Expand Down
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/pt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ const pt = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: "Mostrando os primeiros {{shown}} de {{total}} registros. Restrinja o filtro.",
rowCeilingNoteUnknownTotal: "Mostrando os primeiros {{shown}} registros. Restrinja o filtro.",
},
Expand Down Expand Up @@ -3000,6 +3000,20 @@ const pt = {
countDashboards_one: "{{count}} painel",
countSeedData: "dados de exemplo",
},
build: {
building: "Criando {{app}}…",
built: "Criação de {{app}} concluída",
appFallback: "seu aplicativo",
addingSampleData: "adicionando dados de exemplo",
group: {
object: "Objetos",
view: "Visões",
dashboard: "Painéis",
app: "Aplicativo",
seed: "Dados de exemplo",
},
moreArtifacts: "+{{n}} mais",
},
},
chatbotError: {
title: "Falha na resposta",
Expand Down
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,9 @@ const ru = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: "Показаны первые {{shown}} из {{total}} записей. Сузьте фильтр.",
rowCeilingNoteUnknownTotal: "Показаны первые {{shown}} записей. Сузьте фильтр.",
},
Expand Down Expand Up @@ -3014,6 +3014,20 @@ const ru = {
countDashboards_one: "{{count}} дашборд",
countSeedData: "демоданные",
},
build: {
building: "Создание {{app}}…",
built: "Создание {{app}} завершено",
appFallback: "вашего приложения",
addingSampleData: "добавление демоданных",
group: {
object: "Объекты",
view: "Представления",
dashboard: "Дашборды",
app: "Приложение",
seed: "Демоданные",
},
moreArtifacts: "ещё {{n}}",
},
},
chatbotError: {
title: "Ошибка ответа",
Expand Down
20 changes: 17 additions & 3 deletions packages/i18n/src/locales/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ const zh = {
// numbers, a missing one cannot name how many. Same split as
// `grid.grouping.partialNotice`. Kept terse deliberately — this copy is
// eagerly loaded, and since objectui#7399 these bytes are budgeted by the
// `i18n-locales` chunk, not `framework` — a ceiling set 8,924 B above the
// baseline it was measured from, about sixty short keys' worth across ten
// locales. `pnpm check:eager-closure` prints the figure in force.
// `i18n-locales` chunk, not `framework`. ⛔ That ceiling's headroom is
// deliberately NOT restated here — it moves on every re-baseline, and the
// figure that was here went stale. `pnpm check:eager-closure` prints it.
rowCeilingNote: '仅显示 {{total}} 条记录中的前 {{shown}} 条。请缩小筛选范围。',
rowCeilingNoteUnknownTotal: '仅显示前 {{shown}} 条记录。请缩小筛选范围。',
},
Expand Down Expand Up @@ -3138,6 +3138,20 @@ const zh = {
countDashboards_one: '{{count}} 个仪表板',
countSeedData: '示例数据',
},
build: {
building: '正在构建{{app}}…',
built: '已构建{{app}}',
appFallback: '你的应用',
addingSampleData: '正在添加示例数据',
group: {
object: '对象',
view: '视图',
dashboard: '仪表板',
app: '应用',
seed: '示例数据',
},
moreArtifacts: '+{{n}} 个',
},
},
chatbotError: {
title: '响应失败',
Expand Down
Loading
Loading