Skip to content

Dev Log · Vault Pure, Translation, Google Play, Quality

Vault Pure speaks 49 languages, and none of them lives here

Vault Pure speaks 49 languages, and none of them lives here

28 August 2026:

Vault Pure speaks 49 languages. None of them lives in our source folder.

Google Play translates uploaded apps itself, afresh for every bundle. The app ships
German and English, and Play attaches the rest. That is convenient, costs nothing,
and has a consequence you only notice when you write release notes.

The finding

The patch notes for 1.0.4 told the reader where the new function sits: "Advanced" in
English, "Réglages" in French, "Avansate" in Romanian. Those words came from our
source.

On the device it said something else. In Japanese the section is 詳細設定, in French
Paramètres, in Romanian Avansat. Three sets of patch notes were sending their readers
to a label that does not exist on their screen.

That was not found by thinking but by looking: the language packs Play generates can
be downloaded, and they say how the app is really labelled in that language. Since
then patch notes are checked against the package, not against the source.

Anyone reading in Taipei got English

Looking turned up a second fault, older than this release. There is exactly one
Chinese language pack, and it holds Simplified Chinese. The store listing, however,
was in Traditional.

Since Android 7, Traditional Chinese does not count as a match for Simplified
resources. Anyone with their phone set to Traditional, who read the store page in
Traditional and installed the app, most likely saw English.

First the store moved to match the app: rewritten, not character-swapped. Then the
app moved to match the store, because Play does not translate Traditional Chinese.

Three languages Play does not offer

Traditional Chinese, Filipino and Malay are on Google's list of excluded languages.
Google names Tagalog there explicitly, alongside Armenian, Romansh and Zulu. For
those, translating is our job or nobody's.

So it was done by hand: 367 strings and four plurals each, from the English original.
Not converted from the Simplified Chinese, and that is not cosmetic. 計算機 is a
pocket calculator in Taiwan and a computer on the mainland. Swapping characters
instead of translating writes mainland vocabulary in traditional script, and a reader
notices that immediately.

Three things keep it clean

A test fails the build when a shipped language is missing a string, when it carries
one the original has dropped, or when a placeholder does not survive translation.
That last case is the dangerous one: turning %1$d into %1$s crashes exactly when
the text appears, in that one language, on a device nobody here owns. The test was
checked by breaking a string on purpose.

The tool that reconciles the store texts now counts those three among the
hand-written languages. Without that it would have boiled a complete translation down
to the seven words needed for the store images.

And the language list writes zh-rTW, not zh-TW. The list goes to the tool that
packs the resources, and that takes Android notation, not standard language codes.
Hong Kong is covered anyway: since Android 7 it falls back to the Taiwanese version.

Checked inside the built package

Finally, proof rather than assumption. The built package contains 還原備份, Pulihkan
sandaran and I-restore ang backup, and it contains no 设置. Simplified Chinese still
comes from Play, exactly as it should.

Warm regards from the workshopDigitale Manufaktur Rudolstadt