GitHub user glaterza added a comment to the discussion: Proposal: a translation 
guide, with shared principles and per-language conventions

Both PRs are up, and the drift has its own issue.

**#44395 — the `msgcat` fix.** Option 1, as you suggested: the one-line repair 
(`--sort-output` plus
`|| exit 1`) in the first commit, and the 2209-line reformat as its own second 
commit so it reads as
tool output rather than as part of the change.

Every figure in that PR's body is re-verified against current master rather 
than carried over from
the measurements above: 473 wrapped entries → 38, 5117 messages before and 
after, identical msgid
set, zero entries with a changed extracted comment or flag, and `msgfmt 
--check-format` clean.

Worth noting, since it is the argument for the reformat commit existing at all: 
within hours of
opening, #44395 picked up a conflict because #44091 touched `messages.pot`. I 
have rebased and
re-normalized against current master, and re-verified every figure above on the 
new base. But that
is exactly the "2209 lines land on whoever next runs `babel_update.sh`" case, 
and it will recur for
as long as the template is published unnormalized.

**#44397 — the `--add-comments=i18n:` change.** Independent of #44395, and the 
two can land in
either order: they change different parts of `babel_update.sh`, and the four 
`#. i18n:` comments
apply to the template exactly as committed. Whichever merges second wants 
`babel_update.sh` re-run
to regenerate the template — tool output, not a hand edit.

Verified end to end: the four comments extract from Python, TS and TSX and 
reach all 30 catalogs,
four per catalog, with untagged comments next to a translatable string 
correctly not published.

One correction to carry forward: a full run stamps **24** `do-not-translate` 
markers, not the 27 I
mentioned earlier. `pivoted_xlsx`, `step-after` and `step-before` are still 
listed in
`do-not-translate.txt` but are no longer extractable from source. That belongs 
to the drift below,
not to either PR.

**The template drift — #44403**, as you invited.

I re-measured rather than reusing the figure above: **428 strings in source but 
missing from the
template, 109 in the template but gone from source**, at `c426186a2e`. Raw 
429/110, with
whitespace-only variants excluded by the same method as before. It was 416/109 
when I posted that
table — the template has not been regenerated since 2026-09-02, so the gap 
widens with every PR that
adds a translatable string. The issue writes up why CI does not catch it, and 
sketches the options;
happy to open the PR for whichever direction you prefer.

A docs PR with the Translation Guide follows once #44397 lands, since it links 
a heading that PR
adds to `howtos.md`.

---

**A question rather than a finding**, because I cannot tell whether it is 
deliberate.

`superset-frontend/scripts/po2json.sh` passes `--fuzzy` when building the 
frontend language packs,
so entries flagged `#, fuzzy` are published to the UI. The Python side does the 
opposite:
`pybabel compile` drops fuzzy entries unless explicitly told to keep them. Same 
catalogs, opposite
policies.

On master that covers a lot of ground — 26 of the 30 catalogs contain fuzzy 
entries, and **34,617 of
them carry a non-empty translation**, so they render rather than falling back 
to English. Some
catalogs are almost entirely in that state: `th` 4863 of 5107 messages, `fi` 
4862, `ko` 4603. It is
long-standing rather than new; Thai was already at 4823 before this year's 
backfills.

Fuzzy means machine-matched and unreviewed, not necessarily wrong, and the 
entries I sampled in Thai
read fine. But the failure mode is real: in 6.1.0 the Italian connection form 
renders `Port` as
*Importa* ("Import"), `Password` as *Porta Broker* ("Broker Port"), `Username` 
as *Ricerca Query*,
and `SSL` as *CSS*, all four flagged fuzzy. Italian has since been cleaned to 
zero on master.

The flag was added in #34118, whose subject is a frontend crash fix, with no 
note on the translation
implications — which is why I am asking rather than filing. If publishing fuzzy 
entries is
intended, then marking a translation "needs review" has no bearing on what 
users see, and it would
be worth saying so somewhere. If it is not, removing the flag would revert 
roughly 34k strings to
English across 26 languages, which is a call for you rather than a patch from 
me.


GitHub link: 
https://github.com/apache/superset/discussions/43562#discussioncomment-18488991

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: 
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to