All translations are broken
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
- The translation maintainer @liushuyu runs
lupdatewhich searches the code base for strings and generates an untranslatedtsfile. - That file is then pushed to Transifex using their command line tool.
- Translators can then translate all strings using the Transifex website.
- When a translation is done, the maintainer (or possibly a bot?) pulls down a translated
tsfile 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
-
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. -
Use a regex to change the
tsfiles. 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 translatedtsfiles to Transifex before they do the nextlupdate.
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.
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...