View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0009524 | Taler | libeufin-bank-ui (SPA) | public | 2025-02-07 18:33 | 2025-03-24 11:48 |
Reporter | Stefan | Assigned To | sebasjm | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | assigned | Resolution | open | ||
Product Version | git (master) | ||||
Target Version | 1.0 stretch goals | ||||
Summary | 0009524: String "payto://x-taler-bank/[bank-host]/[receiver-account]?message=[subject]&amount=[%1$s:X.Y]" needs clarification for i18n | ||||
Description | For the Bank SPA "payto://x-taler-bank/[bank-host]/[receiver-account]?message=[subject]&amount=[%1$s:X.Y]" (this is /packages/bank-ui/src/pages/PaytoWireTransferForm.tsx:622) it should be clarified what components of this concatenation need to be translated. Translators for Russian, Ukrainian and Spanish already found expressions for the variables 'bank-host', 'receiver-account'. Please clarify. | ||||
Tags | No tags attached. | ||||
|
I'm not sure if I understood correctly, but everything inside `[` and `]` should be translated to the target lang. For example, except for the amount, which I think is fairly international.. I may be wrong. EN: payto://x-taler-bank/[bank-host]/[receiver-account]?message=[subject]&amount=[%1$s:X.Y] ES: payto://x-taler-bank/[host-del-banco]/[cuenta-del-destinatario]?message=[asunto]&amount=[%1$s:X.Y] |
|
Yikes, I don't think so. RFCs are english only: https://www.rfc-editor.org/rfc/rfc8905.html > 'bank-host', 'receiver-account', and subject, but I assume only 'subject' should be translated, e.g. like "Payment of" as my recommendation for 'subject'. those are all parts of the payto RFC. That is never meant to be shown to or read by a human person, but parsed by the banking software executing the command. Here is an example what the iOS app puts into the sharing buffer when the user copies the payto: ``` payto://iban/DE159593?receiver-name=Sandcastle%20Echange%20Inc&amount=KUDOS%3A5&message=Taler%20MA4TQX01K22CE56FPKH8GNWP2077S7KG9C6BK2ED9GAZCCMHM6JG IBAN: DE159593 Receiver: Sandcastle Echange Inc Amount: 5,00 KUDOS Subject: MA4TQX01K22CE56FPKH8GNWP2077S7KG9C6BK2ED9GAZCCMHM6JG ``` Of course in the human readable part AFTER the payto the words "Receiver", "Amount", and "Subject" will get localized. |
|
Stefan is referring to the localized string "payto://x-taler-bank/[bank-host]/[receiver-account]?message=[subject]&amount=[%1$s:X.Y]", part of the UI description in the bank SPA. This is marked as "should be translated" and the translatable part is inside the squared brackets, this are clarifications. Subject in this case is "reason of the transfer that allows the receiver/sender identify the transfer", but inside the brackets we need to have small sentence of few words. |
|
OK, things are getting clearer now on my side. Let's turn to the real app now altogether. In the Bank SPA, on the page https://bank.demo.taler.net/webui/#/account/wire-transfer after activating the radiobutton at "Using a form" to "payto:// URI" I can find the string payto://x-taler-bank/[bank-host]/[receiver-account]?message=[subject]&amount=[%1$s:X.Y] displayed as a template message in grey color inside the box under "Payto URI: *": payto://iban/[receiver-iban]?message=[subject]&amount=[Kudos:X.Y] In German we might want to read: payto://iban/[IBAN des Empfängers]?message=[Buchungsvermerk]&amount=[Kudos:X.Y] The English original string is "payto://x-taler-bank/[bank-host]/[receiver-account]?message=[subject]&amount=[%1$s:X.Y]" though. So, how come that we see a different template string in the app? Please enlighten me. |
|
You should only ever see the IBAN strings for bank.demo.taler.net and bank.test.taler.net, since they simulate a bank with the well-known IBAN transfer method, to keep things simple for new users. Installations using our bank SPA (e.g. NETZBON) should configure the transfer method "x-taler-bank", to indicate that you cannot transfer this currency to real (ISO 4217 currency) bank accounts. |
|
You have 2 templates in weblate x-taler-bank: https://weblate.taler.net/translate/gnu-taler/taler-bank-spa/en/?checksum=b8154501bbcb8094 iban: https://weblate.taler.net/translate/gnu-taler/taler-bank-spa/en/?checksum=dbc6088dc9e7daa7 those are source EN strings, the translation to german are x-taler-bank: https://weblate.taler.net/translate/gnu-taler/taler-bank-spa/de/?checksum=b8154501bbcb8094 iban: https://weblate.taler.net/translate/gnu-taler/taler-bank-spa/de/?checksum=dbc6088dc9e7daa7 Bank server (libeufin) can be configured to only user IBAN or x-taler-bank. Bank UI (spa) take that configuration and show the correct template. Looking at the spanish transaltion: https://weblate.taler.net/translate/gnu-taler/taler-bank-spa/es/?checksum=b8154501bbcb8094 This is wrong, the source string has "payto://x-taler-bank/" but the translated version change it to "payto://iban/" |
|
Let's translate the text in square brackets then. I translated (see https://weblate.taler.net/translate/gnu-taler/taler-bank-spa/de/?checksum=dbc6088dc9e7daa7#translations): (1) EN: payto://iban/[receiver-iban]?message=[subject]&amount=[%1$s:X.Y] DE: payto://iban/[IBAN des Empfängers]?message=[Buchungsvermerk]&amount=[%1$s:X.Y] UK: payto://iban/[iban одержувача]?message=[причина платежу]&amount=[%1$s:X.Y] RU: payto://iban/[iban получателя]?message=[причина платежа]&amount=[%1$s:X.Y] ES: payto://iban/[iban-destinatario]?message=[asunto]&amount=[%1$s:X.Y] (still ugly for Spanish users because of the hyphen; don't you want to read "IBAN del destinatario" instead of "iban-destinatario"?) (2) EN: payto://x-taler-bank/[bank-host]/[receiver-account]?message=[subject]&amount=[%1$s:X.Y] DE: payto://x-taler-bank/[Bankbetreiber]/[Empfängerkonto]?message=[Buchungsvermerk]&amount=[%1$s:X.Y] UK: payto://x-taler-bank/[oператор банку]/[pахунок одержувача]?message=[причина_платежу]&amount=[%1$s:X.Y] RU: payto://x-taler-bank/[oператор банка]/[cчет получателя]?message=[причина платежа]&amount=[%1$s:X.Y] ES: payto://x-taler-bank/[operador bancario]/[cuenta bancaria del destinatario]?message=[asunto]&amount=[%1$s:X.Y] (see https://weblate.taler.net/translate/gnu-taler/taler-bank-spa/es/?checksum=b8154501bbcb8094#machinery) Note: The hyphens were eliminated. I also rectified the Ukrainian and the Russian versions as you can witness. The Spanish translation of the string should be correct now. Please correct me if I'm wrong. |
|
In chapter 6 of RFC8905 "Internationalization and Character Encoding" ( https://www.rfc-editor.org/rfc/rfc8905.html#name-internationalization-and-ch ) we can read about the internationalisation of the payto-scheme: Defining a generic way of tagging the language of option fields containing natural language text (such as "receiver-name", "sender-name", and "message) is out of the scope of this document, as internationalization must accommodate the restrictions and requirements of the underlying banking system of the payment target type. The internationalization concerns SHOULD be individually defined by each payment target type. As this is just a text template displayed to the user in a fake bank, we can end our discussion at this point and wait for rules in an upcoming Payment Services Directive that define the terms to be used. |
|
If we really want to be absolutely precise about the examples in the Bank SPA, we should first add [receiver-name] and [unit.fraction], secondly flip the order of [amount] and [message]: - payto://iban/DE75512108001245126199?amount=EUR:200.0&message=hello ( see RFC 8905 https://www.rfc-editor.org/rfc/rfc8905.html#name-examples ) - payto://iban/DE159593?receiver-name=Sandcastle%20Echange%20Inc&amount=KUDOS%3A5&message=Taler%20MA4TQX01K22CE56FPKH8GNWP2077S7KG9C6BK2ED9GAZCCMHM6JG ( see Marc's example https://bugs.gnunet.org/view.php?id=9524#c24272 ) which results in EN: payto://iban/[receiver-iban]?receiver-name=[name of the receiver]&amount=[currency]:[unit.fraction]&message=[subject] DE: payto://iban/[IBAN des Empfängers]?receiver-name=[Name des Empfängers]&amount=[Währungscode]:[Einheit.Untereinheit]&message=[Buchungsvermerk] ES: payto://iban/[iban del destinatario]?receiver-name=[nombre del destinatario]&amount=[código de la moneda]:[unidad de moneda.subunidad de moneda]&message=[asunto] |
|
I took the order from the sample of https://www.rfc-editor.org/rfc/rfc8905.html: payto://iban/DE75512108001245126199?amount=EUR:200.0&message=hello However rfc8905 also says: "Applications MUST accept URIs with options in any order". I added the receiver name between "iban" and "amount" since German banks always do this order. This might be different in other countries... |
|
Alright, you can close this ticket. I rectified the strings already in Weblate according to the existing English strings. I will care about how things evolve in banking and regulatory ecosystems in the next years (PSD3...). The image depicting the string is attached to this ticket here as well as to the English strings in Weblate. |
Date Modified | Username | Field | Change |
---|---|---|---|
2025-02-07 18:33 | Stefan | New Issue | |
2025-02-07 18:33 | Stefan | Status | new => assigned |
2025-02-07 18:33 | Stefan | Assigned To | => sebasjm |
2025-03-20 14:56 | sebasjm | Note Added: 0024257 | |
2025-03-20 14:57 | sebasjm | Assigned To | sebasjm => Stefan |
2025-03-20 14:57 | sebasjm | Status | assigned => feedback |
2025-03-20 15:18 | MarcS | Note Added: 0024260 | |
2025-03-20 15:21 | MarcS | Note Edited: 0024260 | |
2025-03-20 15:25 | MarcS | Note Edited: 0024260 | |
2025-03-20 17:20 | sebasjm | Note Added: 0024263 | |
2025-03-21 09:10 | Stefan | Note Added: 0024272 | |
2025-03-21 09:11 | Stefan | Assigned To | Stefan => sebasjm |
2025-03-21 10:18 | MarcS | Note Added: 0024273 | |
2025-03-21 11:41 | sebasjm | Note Added: 0024274 | |
2025-03-21 11:41 | sebasjm | Assigned To | sebasjm => Stefan |
2025-03-21 13:03 | Christian Grothoff | Target Version | git (master) => 1.0 stretch goals |
2025-03-22 12:43 | Stefan | Note Added: 0024281 | |
2025-03-22 12:44 | Stefan | Assigned To | Stefan => sebasjm |
2025-03-23 08:31 | Stefan | Note Added: 0024286 | |
2025-03-23 08:31 | Stefan | Status | feedback => assigned |
2025-03-23 23:16 | Stefan | Description Updated | |
2025-03-23 23:21 | Stefan | Note Added: 0024291 | |
2025-03-24 05:53 | MarcS | Note Added: 0024293 | |
2025-03-24 11:48 | Stefan | Note Added: 0024294 | |
2025-03-24 11:48 | Stefan | File Added: payto-scheme_template_translation_German.png |