View Issue Details

IDProjectCategoryView StatusLast Update
0009524Talerlibeufin-bank-ui (SPA)public2025-03-24 11:48
ReporterStefan Assigned Tosebasjm  
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Product Versiongit (master) 
Target Version1.0 stretch goals 
Summary0009524: String "payto://x-taler-bank/[bank-host]/[receiver-account]?message=[subject]&amount=[%1$s:X.Y]" needs clarification for i18n
DescriptionFor 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.
TagsNo tags attached.

Activities

sebasjm

2025-03-20 14:56

developer   ~0024257

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]

MarcS

2025-03-20 15:18

developer   ~0024260

Last edited: 2025-03-20 15:25

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.

sebasjm

2025-03-20 17:20

developer   ~0024263

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.

Stefan

2025-03-21 09:10

developer   ~0024272

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.

MarcS

2025-03-21 10:18

developer   ~0024273

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.

sebasjm

2025-03-21 11:41

developer   ~0024274

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/"

Stefan

2025-03-22 12:43

developer   ~0024281

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.

Stefan

2025-03-23 08:31

developer   ~0024286

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.

Stefan

2025-03-23 23:21

developer   ~0024291

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]

MarcS

2025-03-24 05:53

developer   ~0024293

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...

Stefan

2025-03-24 11:48

developer   ~0024294

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.

Issue History

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