Skip to content

[finding] After #3878 merged the two ellipsis groups, Loading… is one 10-key group and de renders it four ways (ko two, ar two) — #3880's "two-key typo" no longer describes it #5972

Description

@yinlianghui

Filed from the #3880 dispatch (PR #5971). Unassigned, and deliberately not a re-file of #3880's de half — the shape it described no longer exists, and what replaced it is a different decision.

What changed under the card

#3880 recorded a two-key de typo: common.loadingWird geladen... against detail.loadingLaden..., both with an ASCII ellipsis, and its 2026-08-09 triage queued exactly those two values while fencing off "every U+2026 variant" as #3878's territory.

#3878 then landed (PR #4378) and converged all ten packs on U+2026. Both of those keys are named in that pass's own census — CONVERGED_KEYS in packages/i18n/src/__tests__/ellipsis-glyph-3878.test.ts — and there is now no ASCII ... in any value of any pack (that test gates it repo-wide).

The side effect nobody re-measured: the ASCII group and the U+2026 group merged. The en value Loading… was 8 keys; it is now 10, and the two keys #3880 named are inside it. So the card's fence ("fix the ASCII pair, leave the U+2026 variants alone") no longer partitions anything — the pair is U+2026 variants now.

Measured on main @ 2aff580b5

Every key whose en value is byte-identically Loading…, grouped by flattening all ten packs and comparing exact values:

keydekoar
lookup.loadingWird geladen…로딩 중…جارٍ التحميل…
common.loadingWird geladen…로딩 중…جاري التحميل…
fields.recipient.loadingWird geladen…불러오는 중…جارٍ التحميل…
grid.import.historyLoadingWird geladen…불러오는 중…جارٍ التحميل…
grid.bulk.loadingWird geladen…불러오는 중…جارٍ التحميل…
detail.loadingLaden…로딩 중…جاري التحميل…
report.loadingLaden…로딩 중…جارٍ التحميل…
dashboard.loadingWird geladen…로딩 중…جارٍ التحميل…
auth.device.loadingLade…로딩 중…جارٍ التحميل…
approvalsInbox.loadingMoreLädt…불러오는 중…جارٍ التحميل…

Tallies:

  • de — four spellings: Wird geladen… ×6 · Laden… ×2 · Lade… ×1 · Lädt… ×1
  • ko — two: 로딩 중… ×6 · 불러오는 중… ×4
  • ar — two: جارٍ التحميل… ×8 · جاري التحميل… ×2 (a diacritic difference — جارٍ vs جاري — on common.loading and detail.loading, which may be a third, separate class)
  • es, fr, pt, ru, ja, zh: unanimous ×10

Why this was not fixed under #3880

Fixing only detail.loading, the key the card named, would leave report.loading — the identical German spelling at an equally same-context site — untouched. That is an arbitrary half-pass over a group the 2026-08-09 adjudication never saw.

And the argument that settles #3880's Done group cleanly does not transfer here. There, all four call sites were the same dialog-footer button and all nine other packs were unanimous, so a 3:1 majority vote was safe. Here six packs are unanimous but three split three different ways, which is much weaker evidence of a typo, and at least one member has a plausible genuine context:

  • approvalsInbox.loadingMore — the key name says "loading more" (a continuation load, not an initial one) even though its en value is plain Loading…. de Lädt… and ko 불러오는 중… may be deliberate for that. Whether the en value is the real defect here — an initial-load string reused for a continuation — is worth deciding before touching any translation.
  • auth.device.loading — de Lade… (first person) is a distinct register from Wird geladen… (passive) and may be intentional on a device-pairing screen.

That is exactly the trap #3880 exists to record: 58% of shared en strings in this repo are translated differently per key on purpose, so a sweep is the wrong default. This one needs a decision per member, not a majority vote.

Suggested disposition

Triage as one decision covering the whole 10-key group, in this order:

  1. Decide whether approvalsInbox.loadingMore's en value should stay Loading… or become its own string (Loading more…). If it changes, it leaves this group and check-i18n-en-drift.mjs will ask the nine packs to follow.
  2. Decide whether auth.device.loading's register is intentional.
  3. Only then converge the remainder — de, ko and ar — on their majority.

Doing 3 before 1 and 2 bakes in whatever the answer turns out to be.

Related

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions