lmms icon indicating copy to clipboard operation
lmms copied to clipboard

All translations are broken

Open allejok96 opened this issue 7 months ago • 1 comments

When the lmms:: namespace was introduced in #6174, most translated strings broke. The correct translations remained for a while in the ts files, and those files could have been fixed by a regex (see #6541), but that would eventually have gotten overwritten anyway since these files are autogenerated. And that is exactly what happened in #7529.

This is my shallow understanding of the translation process

  1. The translation maintainer @liushuyu runs lupdate which searches the code base for strings and generates an untranslated ts file.
  2. That file is then pushed to Transifex using their command line tool.
  3. Translators can then translate all strings using the Transifex website.
  4. When a translation is done, the maintainer (or possibly a bot?) pulls down a translated ts file from Transifex and adds it to the project.

If a class is renamed, lupdate thinks the strings are new

... because each string is tied to a "context", which is the full class name. So when a class name has changed, it will look like it's been added a new string that needs translating. Transifex remembers old translations and offers them as suggestions, but the translator still needs to manually go though each "new" string and click the correct translation.

The Korean, Polish, and Slovenian translators seem to have done this already. Good on you.

There are two ways to fix translations after a class rename

  1. Enable auto translating in Transifex. If it remembers a translation from before, it automatically adds it. This may lead to incorrect translations though. After a class has been renamed, the translations will remain broken until the maintainer has run lupdate, pushed to Transifex and pulled down the autogenerated translations.

  2. Use a regex to change the ts files. This is something the coder will have to do after renaming a class. It fixes the translations in the git repo instantly. The translation maintainer will then need to push the translated ts files to Transifex before they do the next lupdate.

Time has made it worse

It has been 3 years since the translations broke and 8 months since they were pushed/pulled from Transifex. We still have the old translations lying around, and we could patch them up and push them to Transifex, but that would potentially overwrite any good translation work that has been happening there in the past 3 years. I don't know if we could merge the old translations in some nice way. It's hard to say when you don't understand a word 😁

We should get this fixed some way or another before a 1.3 release.

allejok96 avatar Jun 10 '25 18:06 allejok96

This table show how may strings that can potentially be recovered and restored to Transifex.

language strings broken by namespace PR
cs 1988
de 1426
es 1485
eu 379
fr 1366
hu_HU 1910
id 1242
it 2004
ja 1292
ko 947
nl 2057
pl 778
pt 1172
ru 1304
sl 89
sv 2189
tr 219
uk 1447
zh_CN 1179
zh_TW 931

To see which languages has been fixed, checkout #8010 and also their translation status on Transifex...

allejok96 avatar Jun 10 '25 19:06 allejok96