View Issue Details

IDProjectCategoryView StatusLast Update
0010420Talerwallet (Android App)public2025-09-29 12:25
ReporterStefan Assigned Toavalos  
PrioritynormalSeveritytextReproducibilityalways
Status feedbackResolutionopen 
Product Version1.0 
Target Version1.1 
Summary0010420: Variables should not be translated on Weblate
DescriptionFor 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 ReproduceLook into https://weblate.gnunet.org/translate/gnu-taler/wallet-android/en/?checksum=3f0518f73d0b67ba or on the screenshot.
Additional InformationPlease correct me if I am wrong.
Thank you for your work in advance.
TagsNo tags attached.
Attached Files

Activities

Stefan

2025-09-17 22:21

developer   ~0025939

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.

avalos

2025-09-27 21:25

developer   ~0026046

Last edited: 2025-09-27 21:27

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?

Stefan

2025-09-29 11:54

developer   ~0026062

Last edited: 2025-09-29 12:25

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.

Issue History

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