View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0010420 | Taler | wallet (Android App) | public | 2025-09-17 21:48 | 2025-10-26 16:55 |
| Reporter | Stefan | Assigned To | avalos | ||
| Priority | normal | Severity | text | Reproducibility | always |
| Status | assigned | Resolution | open | ||
| Product Version | 1.0 | ||||
| Target Version | 1.3 | ||||
| Summary | 0010420: Variables should not be translated on Weblate | ||||
| Description | For the Android wallet app, we find the two variables %1$s × %2$s in a string to translate on Weblate (see https://weblate.gnunet.org/translate/gnu-taler/wallet-android/en/?checksum=3f0518f73d0b67ba). The result is going to get stored in the translation files under wallet/src/main/res/values-*/strings.xml as string 167. Normally, those variables should not be internationalised as they are not meant to be translated. They stay the same in any language, right? So, please take down the tags in the code-base that indicate for translation - before some over-eager translators try to find their own interpretations of what to translate here for %1$s × %2$s and do a mess out of the app. Only if there are alt texts or explanatations of variables like e.g. the source string description (here: <quantity> × <price>) that need to be translated an i18n would make sense. | ||||
| Steps To Reproduce | Look into https://weblate.gnunet.org/translate/gnu-taler/wallet-android/en/?checksum=3f0518f73d0b67ba or on the screenshot. | ||||
| Additional Information | Please correct me if I am wrong. Thank you for your work in advance. | ||||
| Tags | No tags attached. | ||||
| Attached Files | |||||
|
|
Same applies to https://weblate.gnunet.org/translate/gnu-taler/wallet-android/en/?checksum=baf2c5eb3055f3ab with %1$d × %2$s representing <quantity> × <token name> (wallet/src/main/res/values-*/strings.xml, string 173). Translators have no clue what to do with %1$d × %2$s, if they are clever enough they leave the string as is but that's not always expectable. Even in languages with writing direction right-to-left those variables make no sense to translate. |
|
|
This is incorrect, this can indeed change based on language, e.g. RTL languages such as Arabic and Hebrew. Besides, who knows if some language has its own quantity indicator other than "×". Also, any incorrect translation of a string with placeholders (regarding correct syntax) should be detected during review, right? |
|
|
The argument that variables in strings should be object for translations is definitely right in a case like https://weblate.gnunet.org/translate/gnu-taler/taler-bank-spa/en/?checksum=dbc6088dc9e7daa7 where payto://iban/[receiver-iban]?message=[subject]&amount=[%1$s:X.Y] contains some expressions to translate like in German payto://iban/[IBAN des Empfängers]?message=[Buchungsvermerk]&amount=[%1$s:X.Y]. We had this case already discussed in https://bugs.gnunet.org/view.php?id=9524 a long time ago. In Spanish, the translation was a bit awkward until today with payto://iban/[iban-destinatario]?message=[asunto]&amount=[%1$s:X.Y] which I changed to payto://iban/[IBAN del destinatario]?message=[asunto]&amount=[%1$s:X.Y] in https://weblate.gnunet.org/translate/gnu-taler/taler-bank-spa/es/?&offset=51. Please go for a quick review, if I may please you. Thanks. Otherwise, we MUST avoid translations of variables in Weblate. In the given two cases https://weblate.gnunet.org/translate/gnu-taler/wallet-android/en/?checksum=3f0518f73d0b67ba#translations (%1$s × %2$s which stands for <quantity> × <price>) and https://weblate.gnunet.org/translate/gnu-taler/wallet-android/he/?checksum=baf2c5eb3055f3ab (%1$d × %2$s which stands for <quantity> × <token name>) the necessity to translate %1$d × %2$s is none as there is nothing to translate maybe except for the mathematical operand × which might be displayed in a different way across languages like e.g. Japanese, Korean, Chinese... (where deepl renders a big cross instead of an x). Indeed, in some really weird dialects like Ethiopian an operand like the multiplier x could somehow be written in a very strange way, though. If you look on the Hebrew translation done by a mother-tongue speaker, you will find out that he left the order of variables unchanged in https://weblate.gnunet.org/translate/gnu-taler/wallet-android/he/?checksum=baf2c5eb3055f3ab and https://weblate.gnunet.org/translate/gnu-taler/wallet-android/en/?checksum=3f0518f73d0b67ba, even though Hebrew is an RTL language! Anyways, the actual string deals with a multiplication. It seems superfluous to argue in which order the variables appear in a multiplication. A different case would be the one mentioned above. In the cases with %1$s × %2$s, the × should be described on Weblate as a mathematical operand so that translators know what the x is meant to be. But I tend to avoid those two translations. |
|
|
I asked our Hebrew translator to look in the actual wallet app he is committing his internationalisation to. He replied with apologies to he is busy right at the moment, but that he is also going to resume his work soon and get back to us with his insight in which order the variables are rendered in Hebrew, a right-to-left language. |
|
|
I am so very sorry for the great delay in my response, many things happened in my country and to me all at once. As for the question above, I'll try to shed some light on the subject. I am the Hebrew translator of Taler. I am indeed a native Hebrew speaker as Stefan introduced me. I decided to translate the strings of multiplication as they are for several reasons: 1. In Hebrew, an RTL language, Math is still written LTR. 2. I assumed there is no real difference in the order of the numbers even if they represent different things. What I mean is – since I can't know how Taler would implement RTL UI I can't tell what number would appear before the other. And since order doesn't matter in multiplication, I do not find it crucial to keep a certain order. 3. I couldn't find the string in Taler and assumed that if I find out in the future I mistranslated it, I can always correct the translation. Accordingly, if there are languages where Math isn't written LTR (I tried to read about Arabic and it seems to me that it varies a lot (source a)) and if there is a meaning to the order of the multiplication, then there is a need for the strings to be translateable. Otherwise, not. If possible, I'd want to hear from an Arabic translator about the possibilities in different Arabic Math writings. Source a: https://www.reddit.com/r/learn_arabic/comments/ilzot2/math_equations_in_arabic_are_they_left_to_right/ Source b: https://he.wikipedia.org/wiki/%D7%A0%D7%99%D7%AA%D7%95%D7%97_%D7%A9%D7%95%D7%A0%D7%95%D7%AA (where you can see Hebrew writings with Math equations in between) |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2025-09-17 21:48 | Stefan | New Issue | |
| 2025-09-17 21:48 | Stefan | Status | new => assigned |
| 2025-09-17 21:48 | Stefan | Assigned To | => sebasjm |
| 2025-09-17 21:48 | Stefan | File Added: Weblate_variables_wallet_Android.png | |
| 2025-09-17 22:21 | Stefan | Note Added: 0025939 | |
| 2025-09-17 22:41 | sebasjm | Assigned To | sebasjm => avalos |
| 2025-09-27 21:25 | avalos | Note Added: 0026046 | |
| 2025-09-27 21:27 | avalos | Note Edited: 0026046 | |
| 2025-09-27 21:27 | avalos | Assigned To | avalos => Stefan |
| 2025-09-27 21:27 | avalos | Status | assigned => feedback |
| 2025-09-29 11:54 | Stefan | Note Added: 0026062 | |
| 2025-09-29 11:55 | Stefan | Assigned To | Stefan => avalos |
| 2025-09-29 12:25 | Stefan | Note Edited: 0026062 | |
| 2025-10-08 21:10 | Christian Grothoff | Target Version | 1.1 => 1.3 |
| 2025-10-09 11:31 | Stefan | Note Added: 0026122 | |
| 2025-10-09 11:31 | Stefan | Status | feedback => assigned |
| 2025-10-26 16:55 | Kurpaph | Note Added: 0026253 |