-
v1.0.0-Beta.13
Pre-releasereleased this
2026-09-02 12:18:15 +02:00 | 23 commits to main since this releaseTwenty languages that do not guess who you are
Added
-
The plural forms for the fourteen languages that were still missing them —
616 strings, written by hand. Every language is now at 100%: Arabic with all
five of its categories including the dual, Polish and Russian with three
each, and eleven more with their singular.This is the thing the base keys could not do. A count of one rendered the
plural — "1 series", "1 sesji", "1 подходов" — on the screen of anybody who
trained once in a month, and no test catches a sentence that is merely wrong
in a language nobody on the team reads. -
bun i18n:stale, the check the other three could not make: a translation of
an English string that has since been rewritten. It is a complete, correct
sentence in the right language, so nothing missing, nothing left in English
and nothing empty all pass — and what is on screen answers a question that was
asked a version ago. It reads git: if English moved after a language did, that
language is behind. An acknowledgement inscripts/i18n-stale-ok.jsonnames
the English commit it was made against, so a cosmetic rewrite can be signed
off without silencing the next real one.
Changed
-
Five strings are back to their natural wording, and on record in
scripts/i18n-identical.jsonas legitimately identical to English: the Dutch
and Turkish singular of a set, and the Italian singular of a file. All three
languages take the English loanword there, so the honest translation is the
English word — and padding it out to get past the audit is answering the tool
rather than the reader. That file exists for exactly this. -
Every empty screen now speaks in the other eighteen languages. The bin, the
photographs, the month with nothing in it, the session that recorded no sets,
the progress screen before the first workout — all of them had been rewritten
in English and Spanish and left as captions everywhere else, so a character
drawn on the screen stood over a sentence describing a table. 321 strings
across eighteen files.
Fixed
-
Ten languages assumed the reader is a man. English says "you trained" and asks
nothing about who you are; Arabic, Bengali, French, Greek, Hindi, Italian,
Polish, Portuguese, Russian and Urdu cannot say it without agreement, and each
had picked masculine and left it there. Every one is rewritten so the sentence
no longer needs the agreement — never with a slash, which is a typographic
apology rather than a fix. -
The first screen of a new server greeted her as a man.
Bem-vindoand
Benvenutoon the account-creation screen, before there is an account with a
gender to assume. Spanish had solved this long ago with "Te damos la
bienvenida"; the other two now do the same, with the agreement on the noun. -
lastgym benchmeasured every query on the progress screen except the one
with a promise attached. The load path — the band the screen draws above
everything else, and the only thing on it whose closing criterion names a
number — was not in the list, so the command reported a comfortable total for
a screen it had not finished timing. -
The photographs screen blamed a photograph when the connection was what had
failed. With no network the list never arrives, and the screen said "that
photograph could not be loaded" — about a picture nobody had asked for yet. It
now says what is actually true, which is a decision and not an accident:
photographs live on the server and are never copied to the device, because
they are fetched with credentials and drawn from a blob URL revoked as soon as
they are on screen, so nothing of anybody's body lands in a cache on a phone.
Seeing them needs a connection, and the screen says so. -
The audit log read backwards in Arabic. Not the words — the direction. The
screen substituted the two account names into the translation itself instead
of lettingtdo it, which skipped the bidi isolatestputs around every
value, and a Latin username inside an Arabic sentence then dragged the
punctuation to the wrong side. Rows starting with a name anchored left while
rows starting with an Arabic word anchored right, in the same list. Six other
screens were substituting a date, a number orlastgym userthe same way; all
of them go throughtnow, and a test refuses the second interpolator rather
than any particular string. -
Persian and Urdu addressed one reader in two registers. Five strings in
Persian and nine in Urdu used the formal شما and آپ while the fifty-odd around
them used تو and تم — the same handful of keys in both files, and the same
ones Bengali had, so one translation pass carried the register in. On the
privacy screen the heading and its own first line disagreed. -
The audit log named a gender for everyone in it. "{actor} opened the account
{subject}" has no gender in English, and none in Spanish, Portuguese, German,
Dutch, Hindi or Urdu either — their past tenses do not mark it. Arabic, Polish
and Russian conjugate it, and Greek was writing "Ο/Η {actor}", the slash this
work exists to avoid. Those four logs now read as events rather than sentences
about people: "{actor}: opening of account {subject}". The register was already
in each file — a refused sign-in has no actor to conjugate, so that one row had
been written in the passive from the start. -
Thirty-nine other strings assumed the gender of somebody who is not the
reader: the coach, the administrator, the account being deleted. German said
"Er hat keine Möglichkeit" of an administrator it has never met, French asked
"mon coach a-t-il regardé ?", Urdu had the coach putting a routine in your
account as a man. English uses singular "they" throughout and the translations
had not followed.Role nouns are deliberately left as they are — Trainer, προπονητής, منتظم. A
role noun is a language's unmarked word for the job, and the only ways to
neutralise every one of them are doublets, which is the slash, or coinages
nobody uses. That is a different question and it is not this one. -
Arabic put plurals after a hundred. In Arabic 11 and above take the singular,
so "{days} أيام" was wrong at every number the plural form exists to cover —
twenty-two strings said "100 days" the way no Arabic speaker writes it.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-