From 739dd78b61022ae7ad10163e50d2fcc6dffd8ecd Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 22 Aug 2026 12:29:14 +0000 Subject: [PATCH] fix(i18n): `console.ai.pendingDrafts` lands in the eight remaining locale packs (#5705) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The standing unpublished-changes bar's five strings existed only in `en` and `zh`, so `all-locales-key-parity` was red on `main` and on every PR whose diff touched source. `ar`, `ru`, `pt`, `es`, `fr`, `de`, `ko` and `ja` had no `console.ai.pendingDrafts` block at all — eight packs x five keys. objectui#5696 landed the feature `en`-only; objectui#5697, titled for the locale packs, reached `zh` only. Source-free diffs skip the shard that runs the parity test, which is why the breakage survived several merges. Each pack keeps its own conventions rather than `en`'s: all eight quote with `"`, `ru` puts the number last (`...: {{count}}`) as it already does for the sibling `home.pendingDrafts` counts, and `ja` takes the full-width `:` before `{{detail}}` because that value is a runtime message rather than a single token. Both deviations carry an in-pack note. Terminology comes from each pack's existing publish-bar vocabulary so the two banners read alike. Both interpolations survive verbatim everywhere - `{{count}}` in `count`, `{{detail}}` in `publishedWithFindings` - checked against the evaluated packs rather than by eye. The unrelated `home.pendingDrafts` block (`message` / `cta`) is a different node and is untouched. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_012u2pRjcqAYtoEjgr3wwhnK --- .../pending-drafts-bar-locale-parity-5705.md | 27 +++++++++++++++++++ packages/i18n/src/locales/ar.ts | 7 +++++ packages/i18n/src/locales/de.ts | 7 +++++ packages/i18n/src/locales/es.ts | 7 +++++ packages/i18n/src/locales/fr.ts | 7 +++++ packages/i18n/src/locales/ja.ts | 9 +++++++ packages/i18n/src/locales/ko.ts | 7 +++++ packages/i18n/src/locales/pt.ts | 7 +++++ packages/i18n/src/locales/ru.ts | 9 +++++++ 9 files changed, 87 insertions(+) create mode 100644 .changeset/pending-drafts-bar-locale-parity-5705.md diff --git a/.changeset/pending-drafts-bar-locale-parity-5705.md b/.changeset/pending-drafts-bar-locale-parity-5705.md new file mode 100644 index 000000000..6bafb8435 --- /dev/null +++ b/.changeset/pending-drafts-bar-locale-parity-5705.md @@ -0,0 +1,27 @@ +--- +'@object-ui/i18n': patch +--- + +`console.ai.pendingDrafts` — the standing unpublished-changes bar's five strings — +now exists in all ten locale packs. It previously existed only in `en` and `zh`, so +`ar`, `ru`, `pt`, `es`, `fr`, `de`, `ko` and `ja` rendered the English defaults and +`all-locales-key-parity` failed on `main` (objectui#5705). + +The feature landed `en`-only in objectui#5696; the follow-up in objectui#5697 was +titled for the locale packs but reached only `zh`, so eight packs × five keys stayed +missing and the parity assertion — which carries no allowlist — was red on `main` and +on every PR whose diff touched source. Source-free diffs skip the shard that runs it, +which is why the breakage survived several merges. + +Each pack keeps its own conventions rather than `en`'s: the eight all quote with `"`, +`ru` puts the number last (`…: {{count}}`) as it already does for the sibling +`home.pendingDrafts` counts, and `ja` uses the full-width `:` before `{{detail}}` +because that value is a runtime message rather than a single token — both choices +carry an in-pack note. Terminology is taken from each pack's existing publish-bar +vocabulary (`home.pendingDrafts`, `console.ai.seedWarn`) so the two banners read +alike. + +Both interpolations survive verbatim in every pack — `{{count}}` in `count` and +`{{detail}}` in `publishedWithFindings` — asserted mechanically against the evaluated +packs, not by eye. The unrelated `home.pendingDrafts` block (`message` / `cta`) is a +different node and is untouched. diff --git a/packages/i18n/src/locales/ar.ts b/packages/i18n/src/locales/ar.ts index e4445561e..ac2e8eb18 100644 --- a/packages/i18n/src/locales/ar.ts +++ b/packages/i18n/src/locales/ar.ts @@ -1420,6 +1420,13 @@ const ar = { passwordsDownload: "تنزيل ملف CSV", }, ai: { + pendingDrafts: { + count: "هناك {{count}} من التغييرات لم تُنشر بعد — لا يمكن للمستخدمين رؤيتها.", + publish: "نشر", + published: "جميع التغييرات المعلّقة فعّالة الآن.", + failed: "فشل النشر.", + publishedWithFindings: "تم النشر، لكن مجسّات وقت التشغيل أبلغت عن مشكلات: {{detail}}", + }, usage: { title: "استخدام الذكاء الاصطناعي", meterBuild: "الإنشاء", diff --git a/packages/i18n/src/locales/de.ts b/packages/i18n/src/locales/de.ts index eab3e48f6..d37e2517a 100644 --- a/packages/i18n/src/locales/de.ts +++ b/packages/i18n/src/locales/de.ts @@ -1413,6 +1413,13 @@ const de = { passwordsDownload: "CSV herunterladen", }, ai: { + pendingDrafts: { + count: "{{count}} Änderung(en) sind noch nicht veröffentlicht — Benutzer können sie nicht sehen.", + publish: "Veröffentlichen", + published: "Alle ausstehenden Änderungen sind live.", + failed: "Veröffentlichen fehlgeschlagen.", + publishedWithFindings: "Veröffentlicht, aber die Laufzeitprüfungen haben Probleme gemeldet: {{detail}}", + }, usage: { title: "KI-Nutzung", meterBuild: "Erstellen", diff --git a/packages/i18n/src/locales/es.ts b/packages/i18n/src/locales/es.ts index 23c733338..075df1405 100644 --- a/packages/i18n/src/locales/es.ts +++ b/packages/i18n/src/locales/es.ts @@ -1417,6 +1417,13 @@ const es = { passwordsDownload: "Descargar CSV", }, ai: { + pendingDrafts: { + count: "{{count}} cambio(s) aún no se han publicado — los usuarios no pueden verlos.", + publish: "Publicar", + published: "Todos los cambios pendientes están activos.", + failed: "Error al publicar.", + publishedWithFindings: "Publicado, pero las comprobaciones en tiempo de ejecución detectaron problemas: {{detail}}", + }, usage: { title: "Uso de IA", meterBuild: "Crear", diff --git a/packages/i18n/src/locales/fr.ts b/packages/i18n/src/locales/fr.ts index cc50cf93b..4710d0f72 100644 --- a/packages/i18n/src/locales/fr.ts +++ b/packages/i18n/src/locales/fr.ts @@ -1415,6 +1415,13 @@ const fr = { passwordsDownload: "Télécharger le CSV", }, ai: { + pendingDrafts: { + count: "{{count}} modification(s) ne sont pas encore publiée(s) — les utilisateurs ne peuvent pas les voir.", + publish: "Publier", + published: "Toutes les modifications en attente sont actives.", + failed: "Échec de la publication.", + publishedWithFindings: "Publié, mais les contrôles d'exécution ont signalé des problèmes : {{detail}}", + }, usage: { title: "Utilisation de l'IA", meterBuild: "Créer", diff --git a/packages/i18n/src/locales/ja.ts b/packages/i18n/src/locales/ja.ts index 7c9713593..28e5d09b7 100644 --- a/packages/i18n/src/locales/ja.ts +++ b/packages/i18n/src/locales/ja.ts @@ -1413,6 +1413,15 @@ const ja = { passwordsDownload: "CSV をダウンロード", }, ai: { + pendingDrafts: { + // {{detail}} はランタイムが返すメッセージ列なので、中間コロンは全角 + // (exportFailed などと同じ。単一トークンの値なら半角)。 + count: "未公開の変更が {{count}} 件あります — ユーザーには表示されません。", + publish: "公開", + published: "保留中の変更はすべて反映されています。", + failed: "公開に失敗しました。", + publishedWithFindings: "公開しましたが、ランタイムプローブが問題を報告しました:{{detail}}", + }, usage: { title: "AI 使用状況", meterBuild: "ビルド", diff --git a/packages/i18n/src/locales/ko.ts b/packages/i18n/src/locales/ko.ts index e9b459cde..3e951162d 100644 --- a/packages/i18n/src/locales/ko.ts +++ b/packages/i18n/src/locales/ko.ts @@ -1413,6 +1413,13 @@ const ko = { passwordsDownload: "CSV 다운로드", }, ai: { + pendingDrafts: { + count: "게시되지 않은 변경이 {{count}}건 있습니다 — 사용자에게는 보이지 않습니다.", + publish: "게시", + published: "대기 중인 변경 사항이 모두 반영되었습니다.", + failed: "게시에 실패했습니다.", + publishedWithFindings: "게시했지만 런타임 프로브에서 문제가 보고되었습니다: {{detail}}", + }, usage: { title: "AI 사용량", meterBuild: "빌드", diff --git a/packages/i18n/src/locales/pt.ts b/packages/i18n/src/locales/pt.ts index 841597015..87e742586 100644 --- a/packages/i18n/src/locales/pt.ts +++ b/packages/i18n/src/locales/pt.ts @@ -1412,6 +1412,13 @@ const pt = { passwordsDownload: "Baixar CSV", }, ai: { + pendingDrafts: { + count: "{{count}} alteração(ões) ainda não publicada(s) — os usuários não conseguem vê-las.", + publish: "Publicar", + published: "Todas as alterações pendentes estão ativas.", + failed: "Falha ao publicar.", + publishedWithFindings: "Publicado, mas as verificações de tempo de execução relataram problemas: {{detail}}", + }, usage: { title: "Uso de IA", meterBuild: "Criar", diff --git a/packages/i18n/src/locales/ru.ts b/packages/i18n/src/locales/ru.ts index caebefc22..56828d81c 100644 --- a/packages/i18n/src/locales/ru.ts +++ b/packages/i18n/src/locales/ru.ts @@ -1423,6 +1423,15 @@ const ru = { passwordsDownload: "Скачать CSV", }, ai: { + pendingDrafts: { + // Число вынесено в конец («…: {{count}}») — так этот пак пишет + // количества, как в home.pendingDrafts.publishedVerified. + count: "Ещё не опубликовано изменений: {{count}} — пользователи их не видят.", + publish: "Опубликовать", + published: "Все ожидающие изменения вступили в силу.", + failed: "Не удалось опубликовать.", + publishedWithFindings: "Опубликовано, но проверки среды выполнения выявили проблемы: {{detail}}", + }, usage: { title: "Использование ИИ", meterBuild: "Сборка",