From 555cd455a66c8a10a056570edab3a9ff6ae74c1b Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sun, 17 Aug 2025 20:48:41 +0200 Subject: [PATCH 01/10] =?UTF-8?q?=F0=9F=87=B9=F0=9F=87=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index 52e735c..38ab7c4 100644 --- a/index.html +++ b/index.html @@ -165,6 +165,9 @@ + + + From 748e5b3da443e967c6cef7427eeb8f7599c103b9 Mon Sep 17 00:00:00 2001 From: Bruno Ranieri Date: Mon, 18 Aug 2025 00:33:39 +0200 Subject: [PATCH 02/10] italiano --- index.html | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/index.html b/index.html index 38ab7c4..316a803 100644 --- a/index.html +++ b/index.html @@ -166,63 +166,73 @@ - From e0cb477939aadb5d5b6980ee8171eb546d6cfd67 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Mon, 18 Aug 2025 00:48:03 +0200 Subject: [PATCH 03/10] =?UTF-8?q?=F0=9F=87=AE=F0=9F=87=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 ++-- js/index.js | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 316a803..29ac5bc 100644 --- a/index.html +++ b/index.html @@ -214,7 +214,7 @@ "en": "Amount", "de": "Betrag", "tr": "Miktar", - "it", "Somma" + "it": "Somma" }, "purpose": { "en": "Purpose", @@ -232,7 +232,7 @@ "en": "The source code is licensed under MIT, you can find it here.
This site doesn't store any data outside your browser, not even cookies. The \"Remember data\" function stores your data in your browsers local storage.
This site doesn't provide any financial services. It is a simple QR code generator.", "de": "Der Quellcode ist lizensiert unter MIT, du kannst ihn hier finden.
Diese Seite speichert keine Daten außerhalb deines Browsers, noch nicht einmal Cookies. Die \"Daten merken\" Funktion speichert Daten im Local Storage des Browsers.
Diese Seite bietet keine Finanzdienstleistungen an. Sie ist lediglich ein QR Code Generator.", "tr": "Kaynak kodu MIT lisansı altındadır, buradan ulaşabilirsiniz.
Bu site, tarayıcınız dışında hiçbir veri, hatta Cookies bile saklamaz. “Verileri hatırla” işlevi, verileri tarayıcının \"Local Storage\" alanında saklar.
Bu site finansal hizmetler sunmaz. Sadece bir QR Kod Oluşturucu'dur.", - "it": "Il codice sorgente è concesso in licenza MIT, lo puoi trovare qui.
Questo sito non memorizza dati al di fuori del tuo browser, nemmeno i cookie. La funzione “Ricorda dati” memorizza i dati nella memoria locale del browser. Questo sito non offre servizi finanziari. È solo un generatore di codici QR." + "it": "Il codice sorgente è concesso in licenza MIT, lo puoi trovare qui.
Questo sito non memorizza dati al di fuori del tuo browser, nemmeno i cookie. La funzione “Ricorda dati” memorizza i dati nella memoria locale del browser.
Questo sito non offre servizi finanziari. È solo un generatore di codici QR." } } diff --git a/js/index.js b/js/index.js index 32a520c..c21e554 100644 --- a/js/index.js +++ b/js/index.js @@ -40,11 +40,13 @@ for (const l of i18nSupported) { changeLanguage = (l) => { const lang = i18nSupported.includes(l) ? l : "en"; + console.log(`Switching language to ${lang}`); document.querySelectorAll("[data-i18n]").forEach(el => { el.innerHTML = i18n[el.dataset.i18n][lang]; }); document.getElementById("current-language").innerHTML = `${i18n._flags[lang]} ${lang.toUpperCase()}`; - console.log(`Switching language to ${lang}`); + document.documentElement.lang = lang; + saveFormData(); }; saveFormData = () => { From fe7212f66869b1a8338005928e4c0b71254ef3a0 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Mon, 18 Aug 2025 18:39:22 +0200 Subject: [PATCH 04/10] more lang --- i18n.json | 145 ++++++++++++++++++++++++++++++++++++ index.html | 211 ++++++++++++++++++++++++++++++++++++---------------- js/index.js | 1 + 3 files changed, 291 insertions(+), 66 deletions(-) create mode 100644 i18n.json diff --git a/i18n.json b/i18n.json new file mode 100644 index 0000000..342bffd --- /dev/null +++ b/i18n.json @@ -0,0 +1,145 @@ +{ + "_flags": { + "de": "🇩🇪", + "en": "🇬🇧", + "es": "🇪🇸", + "gr": "🇬🇷", + "it": "🇮🇹", + "pl": "🇵🇱" + }, + "subtitle": { + "de": "Geld überweisen ohne Drittanbieter", + "en": "Transfer money without any 3rd parties", + "es": "Transfiere dinero sin intermediarios", + "gr": "Μεταφορά χρημάτων χωρίς τη μεσολάβηση τρίτων", + "it": "Inviare denaro senza ricorrere a servizi terzi", + "pl": "Przelewaj pieniądze bez pośredników", + "tr": "Üçüncü taraflar olmadan para transferi yapın" + }, + "explain": { + "de": "Trag deine Daten ein und scanne den QR Code einfach mit deiner Banking-App. Probier es aus!", + "en": "Simply fill in your details and scan the QR code with your banking app. Give it a try!", + "es": "Rellena el formulario con tus datos y escanea el código QR con la app de tu banco. ¡Prueba!", + "gr": "Απλά συμπληρώστε τα στοιχεία σας και σκανάρετε τον QR κωδικό μέσω της eBanking εφαρμογής σας. Δοκιμάστε το!", + "it": "Inserisci i tuoi dati e scansiona il codice QR con la tua app bancaria. Provalo!", + "pl": "Po prostu wprowadź swoje dane i zeskanuj kod QR aplikacją bankową. Spróbuj!", + "tr": "Verilerini gir ve QR kodunu bankacılık uygulamanla kolayca tara. Dene!" + }, + "name": { + "de": "Empfänger Name", + "en": "Receiver Name", + "es": "Nombre del beneficiario", + "gr": "Όνομα Δικαιούχου", + "it": "Nome del destinatario", + "pl": "Nazwa odbiorcy", + "tr": "Alıcının adı" + }, + "iban": { + "de": "Empfänger IBAN", + "en": "Receiver IBAN", + "es": "IBAN del beneficiario", + "gr": "IBAN Δικαιούχου", + "it": "Codice IBAN del destinatario", + "pl": "IBAN odbiorcy", + "tr": "Alıcının IBAN numarası" + }, + "bic": { + "de": "Empfänger BIC", + "en": "Receiver BIC", + "es": "BIC del beneficiario", + "gr": "BIC Δικαιούχου", + "it": "Codice BIC del destinatario", + "pl": "BIC odbiorcy", + "tr": "Alıcının BIC kodu" + }, + "bic-help": { + "de": "Nur nötig wenn Sender oder Empfänger IBAN außerhalb der EU ist", + "en": "Only needed if the Sender or Receiver IBAN is outside the EU", + "es": "Solo es necesario si el IBAN del beneficiario o del remitente no pertenece a la UE", + "gr": "Χρειάζεται μόνο όταν ο Εντολέας ή ο Δικαιούχος βρίσκονται εκτός της Ε.Ε.", + "it": "Necessario solo se l'IBAN del mittente o del destinatario è al di fuori dell'UE.", + "pl": "Wymagane tylko, jeśli IBAN nadawcy lub odbiorcy znajduje się poza UE", + "tr": "Sadece gönderenin veya alıcının IBAN'ı AB dışındaysa gereklidir" + }, + "amount": { + "de": "Betrag", + "en": "Amount", + "es": "Cantidad", + "gr": "Ποσό", + "it": "Somma", + "pl": "Kwota", + "tr": "Miktar" + }, + "purpose": { + "de": "Verwendungszweck", + "en": "Purpose", + "es": "Concepto", + "gr": "Αιτιολογία", + "it": "Causale", + "pl": "Tytuł przelewu", + "tr": "kullanım amacı" + }, + "purpose-example": { + "de": "Bierchen!", + "en": "Beers!", + "es": "Tapas!", + "gr": "Τσιπουρομεζέδες!", + "it": "Pizza!", + "pl": "", + "tr": "" + }, + "remember": { + "de": "Daten merken", + "en": "Remember data", + "es": "Recordar datos", + "gr": "Απομνημόνευση στοιχείων", + "it": "Ricorda dati", + "pl": "Zapamiętaj dane", + "tr": "Verileri hatırla" + }, + "disclaimer": { + "de": "Der Quellcode ist lizensiert unter MIT, du kannst ihn hier finden.
Diese Seite speichert keine Daten außerhalb deines Browsers, noch nicht einmal Cookies. Die \"Daten merken\" Funktion speichert Daten im Local Storage des Browsers.
Diese Seite bietet keine Finanzdienstleistungen an. Sie ist lediglich ein QR Code Generator.", + "en": "The source code is licensed under MIT, you can find it here.
This site doesn't store any data outside your browser, not even cookies. The \"Remember data\" function stores your data in your browsers local storage.
This site doesn't provide any financial services. It is a simple QR code generator.", + "es": "El código fuente tiene licencia MIT, puede encontrar detalles aquí.
Esta página no guarda ningún dato fuera del navegador o en las cookies. La función \"Recordar datos\" guarda los datos en el almacenamiento local del navegador (local storage).
Esta página web no proporciona servicios financieros. Es un simple generador de códigos QR.", + "gr": "Ο πηγαίος κώδικας διατίθεται με άδεια χρήσης MIT και μπορείτε να τον βρείτε εδώ.
Αυτός ο ιστότοπος δεν αποθηκεύει κανένα δεδομένο εκτός του προγράμματος περιήγησής σας, ούτε καν cookies. Η λειτουργία «Απομνημόνευση στοιχείων» αποθηκεύει τα δεδομένα σας στον τοπικό χώρο αποθήκευσης του προγράμματος περιήγησής σας.
Ο ιστότοπος αυτός δεν παρέχει καμία χρηματοπιστωτική υπηρεσία. Πρόκειται για μια απλή γεννήτρια QR κωδικών.", + "it": "Il codice sorgente è concesso in licenza MIT, lo puoi trovare qui.
Questo sito non memorizza dati al di fuori del tuo browser, nemmeno i cookie. La funzione “Ricorda dati” memorizza i dati nella memoria locale del browser.
Questo sito non offre servizi finanziari. È solo un generatore di codici QR.", + "pl": "Kod źródłowy jest objęty licencją MIT, możesz go znaleźć tutaj.
Ta strona nie przechowuje żadnych danych poza Twoją przeglądarką, nawet plików cookie. Funkcja „Zapamiętaj dane” zapisuje dane w pamięci lokalnej przeglądarki.
Ta strona nie świadczy usług finansowych. To tylko prosty generator kodów QR.", + "tr": "Kaynak kodu MIT lisansı altındadır, buradan ulaşabilirsiniz.
Bu site, tarayıcınız dışında hiçbir veri, hatta Cookies bile saklamaz. “Verileri hatırla” işlevi, verileri tarayıcının \"Local Storage\" alanında saklar.
Bu site finansal hizmetler sunmaz. Sadece bir QR Kod Oluşturucu'dur." + }, + "help-name": { + "de": "Namen dürfen maximal 70 Zeichen lang sein.", + "en": "Name can have 70 characters max.", + "es": "El nombre puede tener hasta un máximo de 70 caracteres", + "gr": "Το πεδίο «Όνομα» μπορεί να περιέχει έως 70 χαρακτήρες.", + "it": "", + "pl": "Nazwa może mieć maksymalnie 70 znaków.", + "tr": "" + }, + "help-bic": { + "de": "BIC ist ungültig.", + "en": "BIC is invalid.", + "es": "BIC inválido.", + "gr": "Το πεδίο «BIC» είναι εσφαλμένο.", + "it": "", + "pl": "BIC jest nieprawidłowy.", + "tr": "" + }, + "help-iban": { + "de": "IBAN ist ungültig.", + "en": "IBAN is invalid.", + "es": "IBAN inválido.", + "gr": "Το πεδίο «IBAN» είναι εσφαλμένο.", + "it": "", + "pl": "IBAN jest nieprawidłowy.", + "tr": "" + }, + "help-purpose": { + "de": "Verwendungszweck darf maximal 140 Zeichen lang sein und nur die Zeichen A-Z, a-z, 0-9, /?:().,'+- und Leerzeichen enthalten.", + "en": "Purpose can have 140 characters max and only include A-Z, a-z, 0-9, /?:().,'+- and spaces.", + "es": "El concepto puede tener hasta un máximo de 140 caracteres y solo puede incluir letras, símbolos y espacios: A-Z, a-z, 0-9, /?:().,'+-", + "gr": "Το πεδίο «Αιτιολογία» μπορεί να περιέχει έως και 140 χαρακτήρες και να περιέχει μόνο τα γράμματα: A-Z, a-z, αριθμούς: 0-9, τα σύμβολα: /?:().,'+- καθώς και κενά.", + "it": "", + "pl": "Tytuł przelewu może mieć maksymalnie 140 znaków i może zawierać tylko znaki A-Z, a-z, 0-9, /?:().,'+- oraz spacje.", + "tr": "" + } +} diff --git a/index.html b/index.html index 29ac5bc..d017928 100644 --- a/index.html +++ b/index.html @@ -97,7 +97,7 @@
- +
@@ -169,73 +169,152 @@ + diff --git a/js/index.js b/js/index.js index c21e554..9f92b2c 100644 --- a/js/index.js +++ b/js/index.js @@ -45,6 +45,7 @@ changeLanguage = (l) => { el.innerHTML = i18n[el.dataset.i18n][lang]; }); document.getElementById("current-language").innerHTML = `${i18n._flags[lang]} ${lang.toUpperCase()}`; + document.getElementById("input-purpose").placeholder = i18n["purpose-example"][lang]; document.documentElement.lang = lang; saveFormData(); }; From b491e492b62ed995dfc0fb564131a845d31fa291 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Wed, 20 Aug 2025 12:18:41 +0200 Subject: [PATCH 05/10] gen index.html from html and json parts --- .gitignore | 1 + Makefile | 5 +- i18n.json | 23 ++-- index.html | 320 ------------------------------------------------ index.html.post | 5 + index.html.pre | 169 +++++++++++++++++++++++++ 6 files changed, 191 insertions(+), 332 deletions(-) delete mode 100644 index.html create mode 100644 index.html.post create mode 100644 index.html.pre diff --git a/.gitignore b/.gitignore index 0378edf..9e07f7a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ tmp/ +index.html # Created by https://www.toptal.com/developers/gitignore/api/linux,windows,macos,direnv,vim,webstorm+all # Edit at https://www.toptal.com/developers/gitignore?templates=linux,windows,macos,direnv,vim,webstorm+all diff --git a/Makefile b/Makefile index 71177ec..9d578cc 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,10 @@ qr-creator: curl -Lsf https://unpkg.com/qr-creator@1.0.0/dist/qr-creator.min.js -o js/qr-creator.min.js curl -Lsf https://unpkg.com/qr-creator@1.0.0/dist/qr-creator.min.js.map -o js/qr-creator.min.js.map -.PHONY: install +index.html: + cat index.html.pre i18n.json index.html.post > index.html + +.PHONY: install index.html install: rsync -var --progress ./img ./css ./js ./index.html ./site.webmanifest ./sticker.png mariko:/srv/www/bezahlbrudi.jetzt/ diff --git a/i18n.json b/i18n.json index 342bffd..1ca9903 100644 --- a/i18n.json +++ b/i18n.json @@ -5,7 +5,8 @@ "es": "🇪🇸", "gr": "🇬🇷", "it": "🇮🇹", - "pl": "🇵🇱" + "pl": "🇵🇱", + "tr": "🇹🇷" }, "subtitle": { "de": "Geld überweisen ohne Drittanbieter", @@ -85,8 +86,8 @@ "es": "Tapas!", "gr": "Τσιπουρομεζέδες!", "it": "Pizza!", - "pl": "", - "tr": "" + "pl": "Kawa!", + "tr": "Çay!" }, "remember": { "de": "Daten merken", @@ -111,35 +112,35 @@ "en": "Name can have 70 characters max.", "es": "El nombre puede tener hasta un máximo de 70 caracteres", "gr": "Το πεδίο «Όνομα» μπορεί να περιέχει έως 70 χαρακτήρες.", - "it": "", + "it": "Il nome può avere al massimo 70 caratteri.", "pl": "Nazwa może mieć maksymalnie 70 znaków.", - "tr": "" + "tr": "Ad en fazla 70 karakter olabilir." }, "help-bic": { "de": "BIC ist ungültig.", "en": "BIC is invalid.", "es": "BIC inválido.", "gr": "Το πεδίο «BIC» είναι εσφαλμένο.", - "it": "", + "it": "Il BIC non è valido.", "pl": "BIC jest nieprawidłowy.", - "tr": "" + "tr": "BIC geçersiz." }, "help-iban": { "de": "IBAN ist ungültig.", "en": "IBAN is invalid.", "es": "IBAN inválido.", "gr": "Το πεδίο «IBAN» είναι εσφαλμένο.", - "it": "", + "it": "L'IBAN non è valido.", "pl": "IBAN jest nieprawidłowy.", - "tr": "" + "tr": "IBAN geçersiz." }, "help-purpose": { "de": "Verwendungszweck darf maximal 140 Zeichen lang sein und nur die Zeichen A-Z, a-z, 0-9, /?:().,'+- und Leerzeichen enthalten.", "en": "Purpose can have 140 characters max and only include A-Z, a-z, 0-9, /?:().,'+- and spaces.", "es": "El concepto puede tener hasta un máximo de 140 caracteres y solo puede incluir letras, símbolos y espacios: A-Z, a-z, 0-9, /?:().,'+-", "gr": "Το πεδίο «Αιτιολογία» μπορεί να περιέχει έως και 140 χαρακτήρες και να περιέχει μόνο τα γράμματα: A-Z, a-z, αριθμούς: 0-9, τα σύμβολα: /?:().,'+- καθώς και κενά.", - "it": "", + "it": "La causale può avere al massimo 140 caratteri e può includere solo i caratteri A-Z, a-z, 0-9, /?:().,'+- e spazi.", "pl": "Tytuł przelewu może mieć maksymalnie 140 znaków i może zawierać tylko znaki A-Z, a-z, 0-9, /?:().,'+- oraz spacje.", - "tr": "" + "tr": "Kullanım amacı en fazla 140 karakter olabilir ve yalnızca A-Z, a-z, 0-9, /?:().,'+- ve boşluk içerebilir." } } diff --git a/index.html b/index.html deleted file mode 100644 index d017928..0000000 --- a/index.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BezahlBrudi - - - - - - - - -
-
-

🦸 BezahlBrudi

-

-

-
-
- -
-
-
-
-
- -
- - -
-
- -
- -
- - -
-
- -
- -
- - -
-

-
- -
- -
- - € - -
-
- -
- -
- - -
-
- -
- -
-
- -
-
-
-
-
-
-
-
- -
-
-

- BezahlBrudi v1.2.0 by XenGi. - - The source code is licensed under MIT, you can find it here. -
- This site doesn't store any data outside your browser, not even cookies. The "Remember data" function stores your data in your browsers local storage. This site doesn't provide any financial services. It is a simple QR code generator.
-

-
-
- - - - - - - - diff --git a/index.html.post b/index.html.post new file mode 100644 index 0000000..05cad62 --- /dev/null +++ b/index.html.post @@ -0,0 +1,5 @@ + + + + + diff --git a/index.html.pre b/index.html.pre new file mode 100644 index 0000000..ea0cecf --- /dev/null +++ b/index.html.pre @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BezahlBrudi + + + + + + + + +
+
+

🦸 BezahlBrudi

+

+

+
+
+ +
+
+
+
+
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+

+
+ +
+ +
+ + € + +
+
+ +
+ +
+ + +
+
+ +
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+
+

+ BezahlBrudi v1.2.0 by XenGi. + + The source code is licensed under MIT, you can find it here. +
+ This site doesn't store any data outside your browser, not even cookies. The "Remember data" function stores your data in your browsers local storage. This site doesn't provide any financial services. It is a simple QR code generator.
+

+
+
+ + +