Skip to content

Fix the CI artifacts, the update endpoint and the translations - #811

Merged
JingMatrix merged 4 commits into
masterfrom
leftover-fixes
Jul 30, 2026
Merged

Fix the CI artifacts, the update endpoint and the translations#811
JingMatrix merged 4 commits into
masterfrom
leftover-fixes

Conversation

@JingMatrix

@JingMatrix JingMatrix commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Four unrelated fixes.

app/build/outputs/mapping has not existed since #796, and DEBUG_SYMBOLS_PATH resolves per module rather than to the root build/symbols the workflow read, so both artifacts have been silently empty. upload-artifact calls an unmatched path a success, which is why neither ever complained.

manager/tools/check_translations.py had no caller. It runs in CI over both resource trees now, and it fails on three real defects, fixed here: a zh-rTW line pasted into values-af, a literal "%d" Afrikaans users have been reading, and a stray %1$s in values-nl.

zygisk/update.json asks for Vector-v2.0-Release.zip where the release attaches Vector-v2.0-3021-Release.zip, so Magisk has offered the v2.0 update and then failed the install ever since it shipped. Fixed, along with the old repository paths there, in module.prop's updateJson and in the issue templates.

Then the daemon translations, read locale by locale rather than through the checker. The product name had been machine-translated in 18 of them -- Spanish "LSPosición de estado", Bulgarian "Предложен статус на LSP" with "posed" read as "proposed", Slovak "LSPonúkaný stav". Hebrew had three strings where the resource key was translated instead of the value, so the Approve button read "אישור_תחום". Hungarian and Turkish ran the user name into the following word with a spaceless %2$s, and values-zh-rHK held a Simplified string in a Traditional file. 152 strings in all, of which 116 are the wording: 39 locales said "Xposed module" where the source says just "module", and the manager says "module" everywhere, so the locales come to it.

Nine strings I left alone, listed in that commit. They need somebody who reads Bulgarian, Greek, Hungarian, Thai, Vietnamese, Hebrew, Kurdish or Slovak, and a guess there would be worse than the wart.

Two things to know before merging. update.json is served live from master, so that one reaches every v2.0 install on its next update check the moment it lands; nothing else here touches a device. And Crowdin owns the string files, so the translation changes want the same correction upstream or the next pull reverts them.

No tests, as usual. The translation check is its own proof -- put the defects back and it fails with exactly those.

app/build/outputs/mapping has not existed since #796, and DEBUG_SYMBOLS_PATH
resolves per module rather than to the root build/symbols the workflow read, so
both artifacts have been empty. upload-artifact calls an unmatched path a
success, which is why neither complained.
manager/tools/check_translations.py had no caller. It runs on both resource trees
now, before the build, since it needs only Python.

It compared indexed %1$-style arguments only, so a literal "%d" in values-af went
unseen. Bare %s and %d count now, maxed over a plurals element's items rather
than summed -- Polish has four forms where English has two.

Three defects fall out: a zh-rTW line pasted into values-af, that %d title, and
%1$s where the source has a bare %s in values-nl. The Afrikaans strings are
rewritten from vocabulary already in that file and want a native speaker's eye.
Crowdin owns all three, so they need the same correction upstream.
zygisk/update.json asks for Vector-v2.0-Release.zip; the release attaches
Vector-v2.0-3021-Release.zip. Magisk has offered the v2.0 update and failed the
install ever since.

The JingMatrix/LSPosed paths there, in module.prop's updateJson and in the issue
templates only redirect. The GPL headers and the README's upstream links stay.
Read all 42 locales against the source rather than only what a checker can see.

The product name had been machine-translated in 18 of them: Spanish
"LSPosición de estado", Bulgarian "Предложен статус на LSP" with "posed" read as
"proposed", Slovak "LSPonúkaný stav", Czech "LPosed načten"; Bengali, Hindi,
Korean, Sinhala and Urdu transliterated it and Vietnamese dropped it. 20 strings.

Hebrew had three where the resource key was translated instead of the value, so
the Approve button read "אישור_תחום". Arabic left "Scope Request" in English and
Kurdish "Scope Daxwaza". Hungarian and Turkish both wrote %2$s with no space
after it, running the user name into the next word. values-zh-rHK held a
Simplified string in a Traditional file. French had l\’arrêt, which is not an
Android escape, and "or" where the source says "and". Ukrainian called a scope
"обсяг робіт", which is the scope of a construction contract. Bulgarian's Approve
button ended in a preposition with nothing after it.

Then the wording. 39 locales said "Xposed module" where the source says just
"module", left from an older English string; the manager says "module" everywhere
and never "Xposed module", so the locales come to it. 116 strings, and not a
search and replace: German drops the hyphen and keeps its article, Greek keeps
"Το", Lithuanian loses the quotes that were around the name, Slovak keeps the
genitive in "Aktualizácia modulu", and the CJK and RTL locales lose the space
that joined it.

Nine strings are deliberately untouched and want somebody who reads the language.
The scope-request sentence in Bulgarian, Greek, Hungarian, Thai and Vietnamese --
it is not clear which participant is doing the asking, and Thai also has a
malformed vowel in "ผูัใช้". scope_deny in Hebrew currently means denying an
accusation rather than refusing a request. never_ask_again in Kurdish is still
literally "Never Ask". And the multi-user install line in Slovak. Eleven of the
strings that did change are sound but would still benefit from a reading, mostly
the Germanic determiner question and Kurdish.

Nothing to remove: all 17 keys have a caller, and no locale carries a key the
source does not.
@JingMatrix JingMatrix mentioned this pull request Jul 30, 2026
@JingMatrix
JingMatrix merged commit 61c89db into master Jul 30, 2026
1 check passed
JingMatrix added a commit that referenced this pull request Jul 30, 2026
Sixteen new strings across the eighteen languages the manager is translated
into. #811 made this a CI gate, and rightly: a screen that exists to be found
by someone who cannot find the app is no use half in English.

Terminology follows what each language already uses for "launcher" — 桌面 in
Simplified Chinese, מסך הבית in Hebrew, trình khởi chạy in Vietnamese — rather
than the English word.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant