Repository navigation
fix(i18n): add the Phase 3 orchestration keys to the nine EU locales - #13294
Merged
Merged
Conversation
The EU-language batch (#13044) landed 51 locales a few hours after the Phase 3 canvas work measured 42, so el/et/ga/hr/lt/lv/mt/sl/sr never received the eleven keys that Phase 3 added — the whole compare-runs panel plus the noMatches empty state rendered without text in those languages. The i18n coverage gate cannot catch this class: it enforces an 80% floor per locale, and eleven missing keys out of ~13,000 leaves coverage at 99.9%. What would catch it is a per-feature check, not a per-locale percentage. Each value is translated against the neighbouring keys in its own file so the wording for run/filter/skill matches what the locale already uses. Refs #12392 #12378 #12639
…nk text An absent key is not rendered blank: deepMergeFallback in src/i18n/request.ts substitutes the English value when targetValue === undefined, so the nine EU locales showed the compare panel untranslated rather than empty. The fix is unchanged; the description of what users saw was wrong.
…ase3-i18n-eu-locales
Githab-capibara
added a commit
to Githab-capibara/OmniRoute
that referenced
this pull request
Sep 17, 2026
…iegosouzapw#13294) Merged as part of the owner batch of 2026-09-11. This PR had a live worktree in another session, so it sat outside the main 39. Merged on your explicit call, validated first rather than taken on trust: boarded with the other 10 worktree-held PRs into a consolidated worktree off `release/v3.8.51`. - ESLint over every changed file: no errors - `typecheck:core` clean; `check:dashboard-typecheck` OK; `check:changelog-integrity` OK - complexity 2821 / baseline 3218 and cognitive-complexity 1272 / baseline 1437 - 203 of 208 assertions green. The 5 remaining (`guide-settings-route` ×4, `hard-session-lease-bypass-inventory` ×1) reproduce on the pure tip with nothing from this batch applied. - `imageGeneration.ts` rebaselined 3259 → 3293 for diegosouzapw#12945's image-only-model guard, landed separately in diegosouzapw#13392 so nothing was pushed onto a live branch.⚠️ base-red inherited: diegosouzapw#12732 — provider count 356 vs 358 and `open-sse/utils/stream.ts` 3115 > frozen 3098, both reproducing on the pure tip.
muhamadgalihsaputra
pushed a commit
to niyatna/NiyatnaRoute
that referenced
this pull request
Sep 27, 2026
…iegosouzapw#13294) Merged as part of the owner batch of 2026-09-11. This PR had a live worktree in another session, so it sat outside the main 39. Merged on your explicit call, validated first rather than taken on trust: boarded with the other 10 worktree-held PRs into a consolidated worktree off `release/v3.8.51`. - ESLint over every changed file: no errors - `typecheck:core` clean; `check:dashboard-typecheck` OK; `check:changelog-integrity` OK - complexity 2821 / baseline 3218 and cognitive-complexity 1272 / baseline 1437 - 203 of 208 assertions green. The 5 remaining (`guide-settings-route` ×4, `hard-session-lease-bypass-inventory` ×1) reproduce on the pure tip with nothing from this batch applied. - `imageGeneration.ts` rebaselined 3259 → 3293 for diegosouzapw#12945's image-only-model guard, landed separately in diegosouzapw#13392 so nothing was pushed onto a live branch.⚠️ base-red inherited: diegosouzapw#12732 — provider count 356 vs 358 and `open-sse/utils/stream.ts` 3115 > frozen 3098, both reproducing on the pure tip.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fecha um gap deixado pela Fase 3 do Orchestration Canvas.
O que aconteceu
O lote de idiomas da UE (#13044) trouxe o repositório de 42 para 51 locales poucas horas depois de a Fase 3 ter traduzido suas chaves contra os 42 existentes. Resultado:
el,et,ga,hr,lt,lv,mt,slesrficaram sem todas as 11 chaves que a Fase 3 introduziu.Na prática, nesses nove idiomas o painel de comparação de execuções e o empty-state "nenhuma execução corresponde a estes filtros" apareciam em inglês. Correção de uma afirmação anterior minha: eu havia dito "sem texto", o que está errado —
deepMergeFallbackemsrc/i18n/request.tssubstitui pelo valor em inglês quandotargetValue === undefined, então nada renderizava em branco, renderizava sem tradução. O gap é real; a gravidade que descrevi não era.Por que nenhum gate pegou
i18n:check-ui-coverageimpõe um piso de 80% por locale. Onze chaves faltando em ~13.000 deixa a cobertura em 99,9% — passa folgado. O gate mede percentual por idioma, não presença por funcionalidade, então uma feature inteira pode nascer sem tradução num locale novo sem acionar nada.Vale registrar como limitação conhecida: o que pegaria esta classe é uma checagem por feature, não por percentual.
O que foi feito
As 11 chaves (
compareMode,compareExit,compareHint,compareTitle,compareDetailFailed,compareDifferentIdentity,compareDuration,compareCost,compareEvents,compareDeltaLegend,noMatches) traduzidas de verdade em cada um dos nove idiomas, calibradas contra as chaves vizinhas do próprio arquivo — para que o vocabulário de "execução", "filtro" e "habilidade" case com o que aquele locale já usa.Diff cirúrgico: 12 linhas adicionadas e 1 reposicionada por arquivo, nada mais.
Verificação
__MISSING__.i18n:check-ui-coveragePASS ·i18n:check-glossaryPASS ·i18n:check-value-driftPASS.Refs #12392 #12378 #12639