diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 14140a006..2d9666f46 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -136,6 +136,16 @@ hook, the test suite — adds `tools/` to `sys.path` explicitly. ``` 2. Create translated content files with `.XX.md` suffix 3. Add to RTL list in `base.html` if right-to-left language +4. If `content/donate/subscribe/index.XX.md` is one of them, two things do **not** + follow automatically: + - `translate_md.py` does not touch `extra:`, so all ~21 `extra.form.*` labels + must be translated by hand — `{amount}`, `{min}` and `{max}` are placeholders + the JS substitutes and must survive verbatim. `translate_check.py` warns on + any that are still English. + - `SITE_LANGS` in the sibling `donate-api/src/config.ts` must list `XX` too. + It is what `sitePathPrefix()` uses to build the return URLs, so a language + missing there sends the donor back to the English `/donate/thanks/` after + paying, with no error anywhere. ### Menu & Navigation @@ -207,7 +217,7 @@ python3 tools/translate_md.py content/news/2026-08-04/630/index.md --all python3 tools/translate_md.py post.md --langs ru --dry-run # cost, no API call ``` -It translates `title:` and `description:` **and nothing else in the frontmatter** — `extra:` is copied verbatim, so a page that keeps user-visible text there (a section's `extra.menu_title`, for instance) needs those translated by hand. `translate_check.py` warns when one is still identical to English. It leaves `date:`/`slug:`/`taxonomies:` verbatim, rewrites `@/…/index.md` links to the translated page when that page exists, applies the glossary below, and runs the tidy-up passes (native quotes, brand unquoting, ellipsis, link-label hygiene, register where DeepL supports it). **Output is a draft**: wording and the expected target-language register still need the proofreading pass. +It translates `title:` and `description:` **and nothing else in the frontmatter** — `extra:` is copied verbatim, so a page that keeps user-visible text there (`extra.menu_title`, the donation form's twenty-odd `extra.form.*` labels) needs those translated by hand. `translate_check.py` warns when one is still identical to English. It leaves `date:`/`slug:`/`taxonomies:` verbatim, rewrites `@/…/index.md` links to the translated page when that page exists, applies the glossary below, and runs the tidy-up passes (native quotes, brand unquoting, ellipsis, link-label hygiene, register where DeepL supports it). **Output is a draft**: wording and the expected target-language register still need the proofreading pass. Two behaviours worth knowing, both established by measurement: diff --git a/content/donate/manage/index.af.md b/content/donate/manage/index.af.md new file mode 100644 index 000000000..624bdcf6b --- /dev/null +++ b/content/donate/manage/index.af.md @@ -0,0 +1,14 @@ +--- +title: Bestuur jou skenking +description: Besigtig, verander of kanselleer jou herhalende skenking aan Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Die e-pos waarmee jy geskenk het + email_why: Ons stuur jou ’n nuwe bestuurskakel — sien jou skenking, verander die bedrag, dateer die betaalmetode op of kanselleer met een klik. + submit: Stuur vir my die bestuurskakel per e-pos +--- + +Elke e-pos oor jou herhalende skenking bevat ’n persoonlike bestuurskakel. Het jy dit verloor? Voer die e-posadres in waarmee jy geskenk het en ons stuur ’n nuwe een. \ No newline at end of file diff --git a/content/donate/manage/index.ar.md b/content/donate/manage/index.ar.md new file mode 100644 index 000000000..27afcba37 --- /dev/null +++ b/content/donate/manage/index.ar.md @@ -0,0 +1,14 @@ +--- +title: إدارة تبرعك +description: يمكنك الاطلاع على تبرعك المتكرر لـ Organic Maps أو تعديله أو إلغاؤه. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: البريد الإلكتروني الذي استخدمته للتبرع + email_why: سنرسل إليك رابط إدارة جديدًا — يمكنك من خلاله الاطلاع على تبرعك، أو تغيير المبلغ، أو تحديث طريقة الدفع، أو الإلغاء بنقرة واحدة. + submit: أرسل لي رابط الإدارة عبر البريد الإلكتروني +--- + +تحتوي كل رسالة بريد إلكتروني تتعلق بتبرعك المتكرر على رابط إدارة شخصي. هل فقدته؟ أدخل عنوان البريد الإلكتروني الذي استخدمته للتبرع وسنرسل لك رابطًا جديدًا. \ No newline at end of file diff --git a/content/donate/manage/index.ca.md b/content/donate/manage/index.ca.md new file mode 100644 index 000000000..59efd8a04 --- /dev/null +++ b/content/donate/manage/index.ca.md @@ -0,0 +1,14 @@ +--- +title: Gestiona la teva donació +description: Consulta, canvia o cancel·la la teva donació periòdica a Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: El correu electrònic amb què vas fer la donació + email_why: "T’enviarem un enllaç de gestió nou — consulta la teva donació, canvia’n l’import, actualitza el mètode de pagament o cancel·la-la amb un sol clic." + submit: Envia’m l’enllaç de gestió per correu +--- + +Cada correu electrònic sobre la teva donació periòdica conté un enllaç de gestió personal. L’has perdut? Introdueix l’adreça de correu electrònic amb què vas fer la donació i te n’enviarem un de nou. \ No newline at end of file diff --git a/content/donate/manage/index.cs.md b/content/donate/manage/index.cs.md new file mode 100644 index 000000000..511483440 --- /dev/null +++ b/content/donate/manage/index.cs.md @@ -0,0 +1,14 @@ +--- +title: Spravujte svůj příspěvek +description: Zobrazte, změňte nebo zrušte svůj pravidelný příspěvek na Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: E-mailová adresa, ze které jste přispěli + email_why: Zašleme vám nový odkaz pro správu – můžete si zde zobrazit svůj příspěvek, změnit částku, aktualizovat způsob platby nebo příspěvek zrušit jediným kliknutím. + submit: Pošlete mi e-mailem odkaz pro správu +--- + +Každý e-mail týkající se vašeho pravidelného příspěvku obsahuje osobní odkaz pro správu. Ztratili jste ho? Zadejte e-mailovou adresu, ze které jste přispěli, a my vám zašleme nový. \ No newline at end of file diff --git a/content/donate/manage/index.cy.md b/content/donate/manage/index.cy.md new file mode 100644 index 000000000..c60304166 --- /dev/null +++ b/content/donate/manage/index.cy.md @@ -0,0 +1,14 @@ +--- +title: Rheoli dy rodd +description: Gweld, newid neu ganslo dy rodd Organic Maps sy'n adnewyddu. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Yr e-bost y gwnest ti gyfrannu drwyddo + email_why: Byddwn yn anfon dolen rheoli newydd atat — gweld dy rodd, newid y swm, diweddaru'r dull talu, neu ganslo gydag un clic. + submit: Anfona'r ddolen rheoli ata i drwy e-bost +--- + +Mae pob e-bost am dy rodd reolaidd yn cynnwys dolen rheoli bersonol. Wedi'i golli? Rho'r cyfeiriad e-bost a ddefnyddiaist i roi, ac fe anfonwn ni un newydd. \ No newline at end of file diff --git a/content/donate/manage/index.de.md b/content/donate/manage/index.de.md new file mode 100644 index 000000000..0e822b0b4 --- /dev/null +++ b/content/donate/manage/index.de.md @@ -0,0 +1,14 @@ +--- +title: Verwalte deine Spende +description: Deine regelmäßige Spende an Organic Maps anzeigen, ändern oder kündigen. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Die E-Mail-Adresse, mit der du gespendet hast + email_why: Wir schicken dir einen neuen Verwaltungslink – dort kannst du deine Spende einsehen, den Betrag ändern, die Zahlungsmethode aktualisieren oder mit einem Klick kündigen. + submit: Schick mir den Verwaltungslink per E-Mail +--- + +Jede E-Mail zu deiner regelmäßigen Spende enthält einen persönlichen Verwaltungslink. Hast du ihn verloren? Gib die E-Mail-Adresse ein, mit der du gespendet hast, und wir schicken dir einen neuen Link. \ No newline at end of file diff --git a/content/donate/manage/index.el.md b/content/donate/manage/index.el.md new file mode 100644 index 000000000..83c511235 --- /dev/null +++ b/content/donate/manage/index.el.md @@ -0,0 +1,14 @@ +--- +title: Διαχείριση της δωρεάς σου +description: Δες, άλλαξε ή ακύρωσε την επαναλαμβανόμενη δωρεά σου στο Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Το email με το οποίο έκανες τη δωρεά + email_why: Θα σου στείλουμε έναν νέο σύνδεσμο διαχείρισης — δες τη δωρεά σου, άλλαξε το ποσό, ενημέρωσε τον τρόπο πληρωμής ή ακύρωσε τη δωρεά με ένα κλικ. + submit: Στείλε μου μέσω email τον σύνδεσμο διαχείρισης +--- + +Κάθε email σχετικά με την επαναλαμβανόμενη δωρεά σου περιέχει έναν προσωπικό σύνδεσμο διαχείρισης. Τον έχασες; Δώσε τη διεύθυνση email με την οποία έκανες τη δωρεά και θα σου στείλουμε έναν νέο. \ No newline at end of file diff --git a/content/donate/manage/index.es.md b/content/donate/manage/index.es.md new file mode 100644 index 000000000..d596b39a6 --- /dev/null +++ b/content/donate/manage/index.es.md @@ -0,0 +1,14 @@ +--- +title: Gestiona tu donación +description: Consulta, modifica o cancela tu donación periódica a Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: El correo electrónico con el que hiciste la donación + email_why: Te enviaremos un nuevo enlace de gestión — podrás ver tu donación, cambiar el importe, actualizar el método de pago o cancelarla con un solo clic. + submit: Envíame el enlace de gestión por correo electrónico +--- + +Todos los correos electrónicos sobre tu donación periódica incluyen un enlace personal de gestión. ¿Lo has perdido? Introduce la dirección de correo con la que hiciste la donación y te enviaremos uno nuevo. \ No newline at end of file diff --git a/content/donate/manage/index.et.md b/content/donate/manage/index.et.md new file mode 100644 index 000000000..171351bc6 --- /dev/null +++ b/content/donate/manage/index.et.md @@ -0,0 +1,14 @@ +--- +title: Halda oma annetust +description: Vaata, muuda või tühista oma korduv annetus Organic Mapsile. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: E-posti aadress, millega annetasid + email_why: Saadame sulle uue halduslingi – vaata oma annetust, muuda summat, uuenda makseviisi või tühista annetus ühe klõpsuga. + submit: Saada mulle halduslink e-postiga +--- + +Igas korduva annetuse kohta saadetud e-kirjas on isiklik halduslink. Oled selle kaotanud? Sisesta e-posti aadress, millega annetasid, ja me saadame sulle uue lingi. \ No newline at end of file diff --git a/content/donate/manage/index.eu.md b/content/donate/manage/index.eu.md new file mode 100644 index 000000000..41925cddd --- /dev/null +++ b/content/donate/manage/index.eu.md @@ -0,0 +1,14 @@ +--- +title: Kudeatu zure dohaintza +description: Ikusi, aldatu edo ezeztatu Organic Maps-erako zure aldizkako dohaintza. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Dohaintza egin zenuen posta elektronikoa + email_why: Kudeaketa-esteka berri bat bidaliko dizugu — zure dohaintza ikusteko, zenbatekoa aldatzeko, ordainketa-metodoa eguneratzeko edo klik bakar batez ezeztatzeko. + submit: Bidali iezadazu kudeaketa-esteka posta elektronikoz +--- + +Zure aldizkako dohaintzari buruzko mezu elektroniko bakoitzak kudeaketa-esteka pertsonal bat dakar. Galdu al duzu? Sartu dohaintza egin zenuen helbide elektronikoa eta berri bat bidaliko dizugu. \ No newline at end of file diff --git a/content/donate/manage/index.fa-IR.md b/content/donate/manage/index.fa-IR.md new file mode 100644 index 000000000..f7e1d684f --- /dev/null +++ b/content/donate/manage/index.fa-IR.md @@ -0,0 +1,14 @@ +--- +title: مدیریت کمک مالی شما +description: کمک مالی دوره‌ای خود به Organic Maps را مشاهده، تغییر یا لغو کنید. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: ایمیلی که با آن کمک مالی کرده‌اید + email_why: یک لینک مدیریت تازه برای شما ارسال می‌کنیم — کمک مالی خود را مشاهده کنید، مبلغ را تغییر دهید، روش پرداخت را به‌روزرسانی کنید یا با یک کلیک آن را لغو کنید. + submit: لینک مدیریت را برایم ایمیل کنید +--- + +هر ایمیلی که دربارهٔ کمک مالی دوره‌ای شما ارسال می‌شود، حاوی یک لینک مدیریت شخصی است. آن را گم کرده‌اید؟ ایمیلی را که با آن کمک مالی کرده‌اید وارد کنید تا لینک جدیدی برایتان ارسال کنیم. \ No newline at end of file diff --git a/content/donate/manage/index.fr.md b/content/donate/manage/index.fr.md new file mode 100644 index 000000000..9e66a0066 --- /dev/null +++ b/content/donate/manage/index.fr.md @@ -0,0 +1,14 @@ +--- +title: Gérer ton don +description: Consulte, modifie ou annule ton don récurrent à Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: L’adresse e-mail que tu as utilisée pour faire ton don + email_why: "On t’enverra un nouveau lien de gestion : tu pourras consulter ton don, modifier le montant, mettre à jour le mode de paiement ou annuler en un clic." + submit: Envoie-moi le lien de gestion par e-mail +--- + +Chaque e-mail concernant ton don récurrent contient un lien de gestion personnel. Tu l’as perdu ? Indique l’adresse e-mail que tu as utilisée pour faire ton don et on t’en enverra un nouveau. \ No newline at end of file diff --git a/content/donate/manage/index.gl.md b/content/donate/manage/index.gl.md new file mode 100644 index 000000000..6396ee8ee --- /dev/null +++ b/content/donate/manage/index.gl.md @@ -0,0 +1,14 @@ +--- +title: Xestionar a túa doazón +description: Ver, cambiar ou cancelar a túa doazón recorrente a Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: O correo electrónico co que doaches + email_why: Enviarémosche unha nova ligazón de xestión — ver a túa doazón, cambiar o importe, actualizar o método de pagamento ou cancelar cun só clic. + submit: Envíame a ligazón de xestión por correo +--- + +Cada correo electrónico sobre a túa doazón recorrente contén unha ligazón de xestión persoal. Perdíchela? Introduce o correo electrónico co que fixeches a doazón e enviarémosche unha nova. \ No newline at end of file diff --git a/content/donate/manage/index.he.md b/content/donate/manage/index.he.md new file mode 100644 index 000000000..ebcc43d6f --- /dev/null +++ b/content/donate/manage/index.he.md @@ -0,0 +1,14 @@ +--- +title: ניהול התרומה שלך +description: צפייה בתרומה החוזרת שלך ל-Organic Maps, שינויה או ביטולה. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: כתובת הדוא״ל שאיתה תרמת + email_why: נשלח לך קישור ניהול חדש — לצפייה בתרומה, לשינוי הסכום, לעדכון אמצעי התשלום או לביטול בלחיצה אחת. + submit: שלח לי את קישור הניהול בדוא״ל +--- + +כל הודעת דוא״ל בנוגע לתרומה החוזרת שלך כוללת קישור ניהול אישי. איבדת אותו? הזן את כתובת הדוא״ל שאיתה תרמת ונשלח לך קישור חדש. \ No newline at end of file diff --git a/content/donate/manage/index.hi.md b/content/donate/manage/index.hi.md new file mode 100644 index 000000000..e5d030a50 --- /dev/null +++ b/content/donate/manage/index.hi.md @@ -0,0 +1,14 @@ +--- +title: अपने दान का प्रबंधन करें +description: अपने आवर्ती Organic Maps दान को देखें, बदलें या रद्द करें। +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: वह ईमेल जिससे आपने दान किया था + email_why: हम आपको एक नया प्रबंधन लिंक भेजेंगे — अपना दान देखें, राशि बदलें, भुगतान विधि अपडेट करें, या एक क्लिक में रद्द करें। + submit: मुझे प्रबंधन लिंक ईमेल करें +--- + +आपके आवर्ती दान के बारे में भेजे गए प्रत्येक ईमेल में एक व्यक्तिगत प्रबंधन लिंक होता है। क्या वह खो गया है? जिस ईमेल से आपने दान किया था, उसे दर्ज करें और हम आपको एक नया लिंक भेज देंगे। \ No newline at end of file diff --git a/content/donate/manage/index.hu.md b/content/donate/manage/index.hu.md new file mode 100644 index 000000000..ed3527f1f --- /dev/null +++ b/content/donate/manage/index.hu.md @@ -0,0 +1,14 @@ +--- +title: Adományod kezelése +description: Az Organic Maps-nek nyújtott rendszeres adományod megtekintése, módosítása vagy lemondása. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Az az e-mail-cím, amellyel adományoztál + email_why: Küldünk neked egy új kezelési linket – megtekintheted az adományod, módosíthatod az összeget, frissítheted a fizetési módot, vagy egyetlen kattintással lemondhatod. + submit: Küldd el nekem e-mailben a kezelési linket +--- + +Minden, a rendszeres adományoddal kapcsolatos e-mail tartalmaz egy személyre szóló kezelési linket. Elvesztetted? Írd be azt az e-mail-címet, amellyel adományoztál, és küldünk neked egy újat. \ No newline at end of file diff --git a/content/donate/manage/index.id.md b/content/donate/manage/index.id.md new file mode 100644 index 000000000..374bf5781 --- /dev/null +++ b/content/donate/manage/index.id.md @@ -0,0 +1,14 @@ +--- +title: Kelola donasi kamu +description: Lihat, ubah, atau batalkan donasi berulang kamu untuk Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Alamat email yang kamu gunakan untuk berdonasi + email_why: Kami akan mengirimkan tautan pengelolaan baru kepada kamu — lihat donasi kamu, ubah jumlahnya, perbarui metode pembayaran, atau batalkan dengan satu klik. + submit: Kirimi saya tautan pengelolaan melalui email +--- + +Setiap email mengenai donasi berulang kamu berisi tautan pengelolaan pribadi. Tautannya hilang? Masukkan alamat email yang kamu gunakan saat berdonasi, dan kami akan mengirimkan tautan baru. \ No newline at end of file diff --git a/content/donate/manage/index.it.md b/content/donate/manage/index.it.md new file mode 100644 index 000000000..36bb7411b --- /dev/null +++ b/content/donate/manage/index.it.md @@ -0,0 +1,14 @@ +--- +title: Gestisci la tua donazione +description: Visualizza, modifica o annulla la tua donazione ricorrente a Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: L’indirizzo email che hai usato per la donazione + email_why: "Ti invieremo un nuovo link di gestione: potrai visualizzare la tua donazione, modificare l’importo, aggiornare il metodo di pagamento o annullarla con un solo clic." + submit: Inviami via email il link di gestione +--- + +Ogni email relativa alla tua donazione ricorrente contiene un link personale per la gestione. L’hai perso? Inserisci l’indirizzo email che hai usato per effettuare la donazione e te ne invieremo uno nuovo. \ No newline at end of file diff --git a/content/donate/manage/index.ja.md b/content/donate/manage/index.ja.md new file mode 100644 index 000000000..26994cfbe --- /dev/null +++ b/content/donate/manage/index.ja.md @@ -0,0 +1,14 @@ +--- +title: 定期寄付の管理 +description: Organic Maps への定期寄付を確認、変更、解約できます。 +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: 寄付に使用したメールアドレス + email_why: 新しい管理用リンクをお送りします。そのリンクから、寄付内容の確認、金額や支払い方法の変更、ワンクリックでの解約ができます。 + submit: 管理用リンクをメールで受け取る +--- + +定期寄付に関するすべてのメールには、個別の管理用リンクが記載されています。リンクが見つからない場合は、寄付に使用したメールアドレスを入力してください。新しいリンクをお送りします。 diff --git a/content/donate/manage/index.lt.md b/content/donate/manage/index.lt.md new file mode 100644 index 000000000..fc5e366fa --- /dev/null +++ b/content/donate/manage/index.lt.md @@ -0,0 +1,14 @@ +--- +title: Valdykite savo auką +description: Peržiūrėkite, pakeiskite arba atšaukite savo periodinę auką Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: El. pašto adresas, kuriuo atlikote auką + email_why: Atsiųsime jums naują valdymo nuorodą – galėsite peržiūrėti savo auką, pakeisti sumą, atnaujinti mokėjimo būdą arba vienu paspaudimu ją atšaukti. + submit: Atsiųsti man valdymo nuorodą el. paštu +--- + +Kiekviename el. laiške apie jūsų periodinę auką yra asmeninė valdymo nuoroda. Pametėte ją? Įveskite el. pašto adresą, kuriuo atlikote auką, ir mes atsiųsime naują. \ No newline at end of file diff --git a/content/donate/manage/index.md b/content/donate/manage/index.md new file mode 100644 index 000000000..a6bd57716 --- /dev/null +++ b/content/donate/manage/index.md @@ -0,0 +1,14 @@ +--- +title: Manage your donation +description: View, change or cancel your recurring Organic Maps donation. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: The email you donated with + email_why: We’ll send you a fresh management link — view your donation, change the amount, update the payment method, or cancel with one click. + submit: Email me the management link +--- + +Every email about your recurring donation contains a personal management link. Lost it? Enter the email you donated with and we’ll send a new one. diff --git a/content/donate/manage/index.ml.md b/content/donate/manage/index.ml.md new file mode 100644 index 000000000..def4ec27c --- /dev/null +++ b/content/donate/manage/index.ml.md @@ -0,0 +1,14 @@ +--- +title: നിങ്ങളുടെ സംഭാവന കൈകാര്യം ചെയ്യുക +description: നിങ്ങളുടെ ആവർത്തിച്ചുള്ള Organic Maps സംഭാവന കാണുക, മാറ്റുക അല്ലെങ്കിൽ റദ്ദാക്കുക. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: നിങ്ങൾ സംഭാവന നൽകിയ ഇമെയിൽ + email_why: ഞങ്ങൾ നിങ്ങൾക്ക് ഒരു പുതിയ മാനേജ്‌മെന്റ് ലിങ്ക് അയയ്ക്കും — നിങ്ങളുടെ സംഭാവന കാണാനും, തുക മാറ്റാനും, പേയ്‌മെന്റ് രീതി പുതുക്കാനും, ഒറ്റ ക്ലിക്കിൽ റദ്ദാക്കാനും ഇത് ഉപയോഗിക്കാം. + submit: മാനേജ്‌മെന്റ് ലിങ്ക് എനിക്ക് ഇമെയിൽ ചെയ്യുക +--- + +നിങ്ങളുടെ ആവർത്തിച്ചുള്ള സംഭാവനയെക്കുറിച്ചുള്ള ഓരോ ഇമെയിലിലും ഒരു വ്യക്തിഗത മാനേജ്‌മെന്റ് ലിങ്ക് അടങ്ങിയിരിക്കുന്നു. അത് നഷ്ടപ്പെട്ടോ? നിങ്ങൾ സംഭാവന നൽകിയ ഇമെയിൽ നൽകുക, ഞങ്ങൾ പുതിയൊരെണ്ണം അയച്ചുതരാം. \ No newline at end of file diff --git a/content/donate/manage/index.mr.md b/content/donate/manage/index.mr.md new file mode 100644 index 000000000..d6867b629 --- /dev/null +++ b/content/donate/manage/index.mr.md @@ -0,0 +1,14 @@ +--- +title: तुमची देणगी व्यवस्थापित करा +description: तुमची आवर्ती Organic Maps देणगी पहा, बदला किंवा रद्द करा. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: तुम्ही ज्या ईमेलने देणगी दिली तो ईमेल + email_why: आम्ही तुम्हाला एक नवीन व्यवस्थापन लिंक पाठवू — तुमची देणगी पहा, रक्कम बदला, पेमेंट पद्धत अद्ययावत करा किंवा एका क्लिकवर रद्द करा. + submit: मला व्यवस्थापन लिंक ईमेल करा +--- + +तुमच्या आवर्ती देणगीबद्दलच्या प्रत्येक ईमेलमध्ये एक वैयक्तिक व्यवस्थापन लिंक असते. ती हरवली आहे का? तुम्ही ज्या ईमेलने देणगी दिली होती तो ईमेल प्रविष्ट करा आणि आम्ही तुम्हाला नवीन लिंक पाठवू. \ No newline at end of file diff --git a/content/donate/manage/index.nl.md b/content/donate/manage/index.nl.md new file mode 100644 index 000000000..da2e3fda9 --- /dev/null +++ b/content/donate/manage/index.nl.md @@ -0,0 +1,14 @@ +--- +title: Beheer je donatie +description: Bekijk, wijzig of annuleer je terugkerende donatie aan Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Het e-mailadres waarmee je hebt gedoneerd + email_why: We sturen je een nieuwe beheerlink — bekijk je donatie, pas het bedrag aan, werk de betaalmethode bij of zeg je donatie op met één klik. + submit: Stuur me de beheerlink per e-mail +--- + +Elke e-mail over je periodieke donatie bevat een persoonlijke beheerlink. Ben je die kwijt? Vul dan het e-mailadres in waarmee je hebt gedoneerd, dan sturen we je een nieuwe link. diff --git a/content/donate/manage/index.oc.md b/content/donate/manage/index.oc.md new file mode 100644 index 000000000..f0ec7145a --- /dev/null +++ b/content/donate/manage/index.oc.md @@ -0,0 +1,14 @@ +--- +title: Gerir ta donacion +description: Vei, cambia o anulla ta donacion recurrenta a Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Lo corrièr electronic amb lo qual as donat + email_why: Te mandarem un ligam de gestion novèl — veire ta donacion, cambiar lo montant, metre a jorn lo metòde de pagament, o anullar amb un sol clic. + submit: Manda-me per corrièl lo ligam de gestion +--- + +Cada corrièl sus ta donacion recurrenta conten un ligam de gestion personal. L’as perdut? Introduís l’adreça de corrièl amb la quala as donat e te n’enviarem un de nòu. \ No newline at end of file diff --git a/content/donate/manage/index.pl.md b/content/donate/manage/index.pl.md new file mode 100644 index 000000000..e4a35b6cf --- /dev/null +++ b/content/donate/manage/index.pl.md @@ -0,0 +1,14 @@ +--- +title: Zarządzaj swoją darowizną +description: Wyświetl, zmień lub anuluj swoją cykliczną darowiznę na rzecz Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Adres e-mail podany przy darowiźnie + email_why: Wyślemy Ci nowy link do zarządzania – możesz sprawdzić swoją darowiznę, zmienić kwotę, zaktualizować metodę płatności lub anulować darowiznę jednym kliknięciem. + submit: Wyślij mi e-mailem link do zarządzania +--- + +Każdy e-mail dotyczący Twojej cyklicznej darowizny zawiera osobisty link do zarządzania darowizną. Nie możesz go znaleźć? Wpisz adres e-mail podany przy darowiźnie, a wyślemy Ci nowy link. \ No newline at end of file diff --git a/content/donate/manage/index.pt-BR.md b/content/donate/manage/index.pt-BR.md new file mode 100644 index 000000000..a9d99ab1d --- /dev/null +++ b/content/donate/manage/index.pt-BR.md @@ -0,0 +1,14 @@ +--- +title: Gerencie sua doação +description: Veja, altere ou cancele sua doação recorrente para o Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: O e-mail que você usou para fazer a doação + email_why: Vamos te enviar um novo link de gerenciamento — veja sua doação, altere o valor, atualize a forma de pagamento ou cancele com um clique. + submit: Me envie o link de gerenciamento por e-mail +--- + +Todo e-mail sobre sua doação recorrente contém um link pessoal de gerenciamento. Perdeu o link? Digite o e-mail que você usou para fazer a doação e enviaremos um novo. \ No newline at end of file diff --git a/content/donate/manage/index.pt.md b/content/donate/manage/index.pt.md new file mode 100644 index 000000000..ecb320eb8 --- /dev/null +++ b/content/donate/manage/index.pt.md @@ -0,0 +1,14 @@ +--- +title: Gere a tua doação +description: Vê, altera ou cancela a tua doação recorrente ao Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: O e-mail que usaste para fazer a doação + email_why: Vamos enviar-te um novo link de gestão — podes ver a tua doação, alterar o valor, atualizar a forma de pagamento ou cancelar com um clique. + submit: Envia-me o link de gestão por e-mail +--- + +Todos os e-mails sobre a tua doação recorrente contêm um link pessoal de gestão. Perdeste-o? Introduz o e-mail que usaste para fazer a doação e nós enviamos-te um novo. \ No newline at end of file diff --git a/content/donate/manage/index.ru.md b/content/donate/manage/index.ru.md new file mode 100644 index 000000000..b6d6b08e7 --- /dev/null +++ b/content/donate/manage/index.ru.md @@ -0,0 +1,14 @@ +--- +title: Управление вашим пожертвованием +description: Просмотрите, измените или отмените своё регулярное пожертвование в пользу Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Адрес электронной почты, с которого вы сделали пожертвование + email_why: Мы вышлем вам новую ссылку для управления — с ней вы сможете просмотреть пожертвование, изменить сумму, обновить способ оплаты или отменить его одним нажатием. + submit: Отправьте мне ссылку для управления на почту +--- + +Каждое письмо о вашем регулярном пожертвовании содержит персональную ссылку для управления. Потеряли её? Укажите адрес электронной почты, с которого вы сделали пожертвование, и мы пришлём новую. \ No newline at end of file diff --git a/content/donate/manage/index.sv.md b/content/donate/manage/index.sv.md new file mode 100644 index 000000000..b55203810 --- /dev/null +++ b/content/donate/manage/index.sv.md @@ -0,0 +1,14 @@ +--- +title: Hantera din donation +description: Visa, ändra eller avsluta din återkommande donation till Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Den e-postadress du använde när du donerade + email_why: Vi skickar dig en ny hanteringslänk – se din donation, ändra beloppet, uppdatera betalningssättet eller avsluta donationen med ett enda klick. + submit: Mejla mig hanteringslänken +--- + +Varje e-postmeddelande om din återkommande donation innehåller en personlig hanteringslänk. Har du tappat bort den? Ange den e-postadress du använde när du donerade, så skickar vi en ny. \ No newline at end of file diff --git a/content/donate/manage/index.te.md b/content/donate/manage/index.te.md new file mode 100644 index 000000000..b07957801 --- /dev/null +++ b/content/donate/manage/index.te.md @@ -0,0 +1,14 @@ +--- +title: మీ విరాళాన్ని నిర్వహించండి +description: మీ పునరావృత Organic Maps విరాళాన్ని వీక్షించండి, మార్చండి లేదా రద్దు చేయండి. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: మీరు విరాళం ఇచ్చిన ఇమెయిల్ + email_why: మేము మీకు కొత్త నిర్వహణ లింక్‌ను పంపుతాము — మీ విరాళాన్ని చూడండి, మొత్తాన్ని మార్చండి, చెల్లింపు పద్ధతిని నవీకరించండి లేదా ఒకే క్లిక్‌తో రద్దు చేయండి. + submit: నాకు నిర్వహణ లింక్‌ను ఇమెయిల్ చేయండి +--- + +మీ పునరావృత విరాళం గురించిన ప్రతి ఇమెయిల్‌లో వ్యక్తిగత నిర్వహణ లింక్ ఉంటుంది. దానిని పోగొట్టుకున్నారా? మీరు విరాళం ఇచ్చిన ఇమెయిల్‌ను నమోదు చేయండి, మేము కొత్త లింక్‌ను పంపుతాము. \ No newline at end of file diff --git a/content/donate/manage/index.tr.md b/content/donate/manage/index.tr.md new file mode 100644 index 000000000..c09f57009 --- /dev/null +++ b/content/donate/manage/index.tr.md @@ -0,0 +1,14 @@ +--- +title: Bağışını yönet +description: Organic Maps'e yaptığın düzenli bağışını görüntüle, değiştir veya iptal et. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Bağış yaptığın e-posta adresi + email_why: Sana yeni bir yönetim bağlantısı göndereceğiz — tek bir tıklamayla bağışını görüntüleyebilir, tutarı değiştirebilir, ödeme yöntemini güncelleyebilir veya iptal edebilirsin. + submit: Yönetim bağlantısını bana e-posta ile gönder +--- + +Düzenli bağışınla ilgili her e-postada kişisel bir yönetim bağlantısı bulunur. Bağlantıyı kaybettin mi? Bağış yaparken kullandığın e-posta adresini gir, sana yenisini gönderelim. \ No newline at end of file diff --git a/content/donate/manage/index.uk.md b/content/donate/manage/index.uk.md new file mode 100644 index 000000000..75e45f2fc --- /dev/null +++ b/content/donate/manage/index.uk.md @@ -0,0 +1,14 @@ +--- +title: Керуйте своєю пожертвою +description: Перегляньте, змініть або скасуйте свою регулярну пожертву на підтримку Organic Maps. +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: Електронна адреса, з якої ви зробили пожертву + email_why: Ми надішлемо вам нове посилання для керування — перегляньте свою пожертву, змініть суму, оновіть спосіб оплати або скасуйте її одним кліком. + submit: Надішліть мені електронною поштою посилання для керування +--- + +Кожен електронний лист щодо вашої регулярної пожертви містить особисте посилання для керування. Загубили його? Введіть адресу електронної пошти, з якої ви робили пожертву, і ми надішлемо нове посилання. \ No newline at end of file diff --git a/content/donate/manage/index.zh-Hans.md b/content/donate/manage/index.zh-Hans.md new file mode 100644 index 000000000..cfe7bb3b8 --- /dev/null +++ b/content/donate/manage/index.zh-Hans.md @@ -0,0 +1,14 @@ +--- +title: 管理你的捐款 +description: 查看、更改或取消你的 Organic Maps 定期捐款。 +template: donate-manage.html +weight: 120 +extra: + preview_image: donate/donate.png + form: + email_label: 你用于捐款的电子邮箱 + email_why: 我们会给你发送一个新的管理链接——你可以用它查看捐款、更改金额、更新支付方式,或一键取消。 + submit: 把管理链接发送到我的邮箱 +--- + +每封关于你定期捐款的电子邮件中都包含一个专属管理链接。找不到了吗?输入你用于捐款的电子邮箱,我们会给你发送一个新的。 \ No newline at end of file diff --git a/content/donate/subscribe/index.af.md b/content/donate/subscribe/index.af.md new file mode 100644 index 000000000..168c6d9d2 --- /dev/null +++ b/content/donate/subscribe/index.af.md @@ -0,0 +1,32 @@ +--- +title: Ondersteun Organic Maps +description: Stel ’n maandelikse, jaarlikse of eenmalige skenking in en hou Organic Maps gratis vir almal — geen advertensies, geen opsporing, oopbron. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Hoe gereeld? + once: Eenmalig + monthly: Maandeliks + yearly: Jaarliks + amount_label: Bedrag + other_label: Ander bedrag + currency_label: Geldeenheid + email_label: E-pos (aanbeveel) + email_why: Ons sal ’n bevestiging stuur, jou voor elke betaling herinner en jou ’n kansellasieskakel met een klik gee. Niks anders nie — geen bemarking nie. + email_warning: Sonder ’n e-pos kan ons nie betalingsherinnerings of ’n kansellasieskakel stuur nie — jy sal ons moet kontak om te kanselleer. + name_label: Naam (opsioneel) + name_why: Sodat ons jou in die dankie-e-pos kan aanspreek. + submit: Gaan voort met veilige betaling + submit_once: Skenk {amount} + submit_month: Skenk {amount} maandeliks + submit_year: Skenk {amount} jaarliks + submit_loading: Herlei na veilige betaling… + secure_note: Jy voltooi die betaling op Mollie, ons betalingsverskaffer. Kaartbesonderhede raak nooit ons bedieners nie. + error_amount: Voer asseblief ’n geldige bedrag in. + error_amount_range: Voer ’n bedrag tussen {min} en {max} in. + other_ways: Ander maniere om te skenk (PayPal, bankoordrag, kripto…) +--- + +Organic Maps is gratis vir almal danksy jou skenkings. Geen advertensies nie. Geen opsporing nie. Oopbron. \ No newline at end of file diff --git a/content/donate/subscribe/index.ar.md b/content/donate/subscribe/index.ar.md new file mode 100644 index 000000000..0d2e36c7e --- /dev/null +++ b/content/donate/subscribe/index.ar.md @@ -0,0 +1,32 @@ +--- +title: ادعم Organic Maps +description: قم بإعداد تبرع شهري أو سنوي أو لمرة واحدة، وساعد في الحفاظ على Organic Maps مجانية للجميع — بدون إعلانات، وبدون أدوات تتبع، ومفتوحة المصدر. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: كم مرة؟ + once: مرة واحدة + monthly: شهريًا + yearly: سنويًا + amount_label: المبلغ + other_label: مبلغ آخر + currency_label: العملة + email_label: البريد الإلكتروني (موصى به) + email_why: سنرسل إليك تأكيدًا، وسنذكرك قبل كل عملية خصم، وسنزودك برابط للإلغاء بنقرة واحدة. لا شيء غير ذلك — لا تسويق. + email_warning: بدون عنوان بريد إلكتروني، لا يمكننا إرسال تذكيرات بالدفع أو رابط الإلغاء — وسيتعين عليك الاتصال بنا لإلغاء التبرع. + name_label: الاسم (اختياري) + name_why: حتى نتمكن من مخاطبتك في رسالة الشكر عبر البريد الإلكتروني. + submit: المتابعة لإتمام عملية الدفع الآمنة + submit_once: تبرع بـ{amount} + submit_month: تبرع بـ{amount} شهريًا + submit_year: تبرع بـ{amount} سنويًا + submit_loading: إعادة التوجيه إلى صفحة الدفع الآمنة… + secure_note: ستتم عملية الدفع عبر Mollie، مزود خدمات الدفع الذي نتعامل معه. لا تمر تفاصيل البطاقة أبدًا عبر خوادمنا. + error_amount: يرجى إدخال مبلغ صحيح. + error_amount_range: أدخل مبلغًا يتراوح بين {min} و{max}. + other_ways: طرق أخرى للتبرع (PayPal، التحويل المصرفي، العملات المشفرة…) +--- + +تطبيق Organic Maps مجاني للجميع بفضل تبرعاتك. خالٍ من الإعلانات. خالٍ من أدوات التتبع. مفتوح المصدر. \ No newline at end of file diff --git a/content/donate/subscribe/index.ca.md b/content/donate/subscribe/index.ca.md new file mode 100644 index 000000000..4055ed13d --- /dev/null +++ b/content/donate/subscribe/index.ca.md @@ -0,0 +1,32 @@ +--- +title: Dona suport a Organic Maps +description: Configura un donatiu mensual, anual o únic i mantén Organic Maps gratuïta per a tothom — sense anuncis, sense rastrejadors, codi obert. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Amb quina freqüència? + once: Únic + monthly: Mensual + yearly: Anual + amount_label: Import + other_label: Un altre import + currency_label: Moneda + email_label: Correu electrònic (recomanat) + email_why: T’enviarem una confirmació, un recordatori abans de cada càrrec i un enllaç per cancel·lar amb un clic. Res més — sense màrqueting. + email_warning: Sense correu no podem enviar recordatoris de pagament ni un enllaç de cancel·lació — hauries de contactar-nos per cancel·lar. + name_label: Nom (opcional) + name_why: Per poder adreçar-nos a tu al correu d’agraïment. + submit: Continua al pagament segur + submit_once: Dona {amount} + submit_month: Dona {amount} al mes + submit_year: Dona {amount} a l’any + submit_loading: Redirigint al pagament segur… + secure_note: Completaràs el pagament a Mollie, el nostre proveïdor de pagaments. Les dades de la targeta mai no toquen els nostres servidors. + error_amount: Introdueix un import vàlid. + error_amount_range: Introdueix un import entre {min} i {max}. + other_ways: Altres maneres de donar (PayPal, transferència, cripto…) +--- + +L’aplicació Organic Maps és gratuïta per a tothom gràcies als teus donatius. Sense anuncis. Sense rastrejadors. Codi obert. diff --git a/content/donate/subscribe/index.cs.md b/content/donate/subscribe/index.cs.md new file mode 100644 index 000000000..67aeaef89 --- /dev/null +++ b/content/donate/subscribe/index.cs.md @@ -0,0 +1,32 @@ +--- +title: Podpořte Organic Maps +description: Nastavte si měsíční, roční nebo jednorázový dar a pomozte udržet Organic Maps zdarma pro všechny — bez reklam, bez sledování, open source. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Jak často? + once: Jednorázově + monthly: Měsíčně + yearly: Ročně + amount_label: Částka + other_label: Jiná částka + currency_label: Měna + email_label: E-mail (doporučeno) + email_why: Pošleme vám potvrzení, připomenutí před každou platbou a odkaz na zrušení jedním kliknutím. Nic víc — žádný marketing. + email_warning: Bez e-mailu nemůžeme posílat připomenutí plateb ani odkaz na zrušení — pro zrušení byste nás museli kontaktovat. + name_label: Jméno (nepovinné) + name_why: Abychom vás mohli oslovit v děkovném e-mailu. + submit: Pokračovat k bezpečné platbě + submit_once: Darovat {amount} + submit_month: Darovat {amount} měsíčně + submit_year: Darovat {amount} ročně + submit_loading: Přesměrování na bezpečnou platbu… + secure_note: Platbu dokončíte u Mollie, našeho poskytovatele plateb. Údaje o kartě se nikdy nedostanou na naše servery. + error_amount: Zadejte platnou částku. + error_amount_range: Zadejte částku mezi {min} a {max}. + other_ways: Další způsoby, jak přispět (PayPal, převod, kryptoměny…) +--- + +Aplikace Organic Maps je zdarma pro všechny díky vašim darům. Bez reklam. Bez sledování. Open source. diff --git a/content/donate/subscribe/index.cy.md b/content/donate/subscribe/index.cy.md new file mode 100644 index 000000000..d7b564d85 --- /dev/null +++ b/content/donate/subscribe/index.cy.md @@ -0,0 +1,32 @@ +--- +title: Cefnogi Organic Maps +description: Gosoda rodd fisol, flynyddol neu un-tro a chadwa Organic Maps yn rhad ac am ddim i bawb — dim hysbysebion, dim olrhainwyr, cod agored. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Pa mor aml? + once: Un-tro + monthly: Misol + yearly: Blynyddol + amount_label: Swm + other_label: Swm arall + currency_label: Arian cyfred + email_label: E-bost (argymhellir) + email_why: Byddwn yn anfon cadarnhad, yn dy atgoffa cyn pob tâl, ac yn rhoi dolen canslo un clic i ti. Dim byd arall — dim marchnata. + email_warning: Heb e-bost, ni allwn anfon nodiadau atgoffa am daliad na dolen canslo — byddai angen i ti gysylltu â ni i ganslo. + name_label: Enw (dewisol) + name_why: Er mwyn i ni allu dy annerch yn yr e-bost diolch. + submit: Parhau i dalu’n ddiogel + submit_once: Rhoi {amount} + submit_month: Rhoi {amount} yn fisol + submit_year: Rhoi {amount} yn flynyddol + submit_loading: Ailgyfeirio i dalu’n ddiogel… + secure_note: Byddi di’n cwblhau’r taliad ar Mollie, ein darparwr taliadau. Nid yw manylion dy gerdyn byth yn cyrraedd ein gweinyddion. + error_amount: Rho swm dilys. + error_amount_range: Rho swm rhwng {min} a {max}. + other_ways: Ffyrdd eraill o gyfrannu (PayPal, trosglwyddiad banc, crypto…) +--- + +Mae Organic Maps am ddim i bawb diolch i dy roddion. Dim hysbysebion. Dim olrhainwyr. Ffynhonnell agored. \ No newline at end of file diff --git a/content/donate/subscribe/index.de.md b/content/donate/subscribe/index.de.md new file mode 100644 index 000000000..8d1ac5d9b --- /dev/null +++ b/content/donate/subscribe/index.de.md @@ -0,0 +1,34 @@ +--- +title: Unterstütze Organic Maps +description: Richte eine monatliche, jährliche oder einmalige Spende ein und halte Organic Maps für alle kostenlos — keine Werbung, keine Tracker, Open Source. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + # "Name (optional)" is already German. + translation_keeps_source: ["extra.form.name_label"] + form: + interval_label: Wie oft? + once: Einmalig + monthly: Monatlich + yearly: Jährlich + amount_label: Betrag + other_label: Anderer Betrag + currency_label: Währung + email_label: E-Mail (empfohlen) + email_why: Wir senden dir eine Bestätigung, erinnern dich vor jeder Abbuchung und geben dir einen Abbrechen-Link mit einem Klick. Sonst nichts — kein Marketing. + email_warning: Ohne E-Mail können wir keine Zahlungserinnerungen und keinen Kündigungslink senden — zum Beenden müsstest du uns kontaktieren. + name_label: Name (optional) + name_why: Damit wir dich in der Dankes-E-Mail ansprechen können. + submit: Weiter zur sicheren Zahlung + submit_once: '{amount} spenden' + submit_month: '{amount} monatlich spenden' + submit_year: '{amount} jährlich spenden' + submit_loading: Weiterleitung zur sicheren Zahlung… + secure_note: Du schließt die Zahlung bei Mollie ab, unserem Zahlungsanbieter. Kartendaten erreichen unsere Server nie. + error_amount: Bitte gib einen gültigen Betrag ein. + error_amount_range: Bitte gib einen Betrag zwischen {min} und {max} ein. + other_ways: Weitere Spendenmöglichkeiten (PayPal, Überweisung, Krypto…) +--- + +Organic Maps ist dank deiner Spenden für alle kostenlos. Keine Werbung. Keine Tracker. Open Source. diff --git a/content/donate/subscribe/index.el.md b/content/donate/subscribe/index.el.md new file mode 100644 index 000000000..80aed9d0b --- /dev/null +++ b/content/donate/subscribe/index.el.md @@ -0,0 +1,32 @@ +--- +title: Υποστήριξε το Organic Maps +description: Κάνε μια μηνιαία, ετήσια ή εφάπαξ δωρεά και βοήθησε το Organic Maps να παραμείνει δωρεάν για όλους — χωρίς διαφημίσεις, χωρίς προγράμματα παρακολούθησης, ανοιχτού κώδικα. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Πόσο συχνά; + once: Εφάπαξ + monthly: Μηνιαία + yearly: Ετήσια + amount_label: Ποσό + other_label: Άλλο ποσό + currency_label: Νόμισμα + email_label: Email (συνιστάται) + email_why: Θα σου στείλουμε επιβεβαίωση, θα σου υπενθυμίσουμε πριν από κάθε χρέωση και θα σου δώσουμε έναν σύνδεσμο ακύρωσης με ένα κλικ. Τίποτα άλλο — χωρίς διαφημιστικά μηνύματα. + email_warning: Χωρίς διεύθυνση email δεν μπορούμε να στείλουμε υπενθυμίσεις πληρωμής ή σύνδεσμο ακύρωσης — θα πρέπει να επικοινωνήσεις μαζί μας για να ακυρώσεις τη δωρεά. + name_label: Όνομα (προαιρετικό) + name_why: Για να μπορέσουμε να σου απευθυνθούμε στο email ευχαριστίας. + submit: Συνέχεια στην ασφαλή πληρωμή + submit_once: Κάνε δωρεά {amount} + submit_month: Κάνε μηνιαία δωρεά {amount} + submit_year: Κάνε ετήσια δωρεά {amount} + submit_loading: Ανακατεύθυνση σε ασφαλή πληρωμή… + secure_note: Θα ολοκληρώσεις την πληρωμή στη Mollie, τον πάροχο πληρωμών μας. Τα στοιχεία της κάρτας δεν φτάνουν ποτέ στους διακομιστές μας. + error_amount: Παρακαλώ πληκτρολόγησε ένα έγκυρο ποσό. + error_amount_range: Πληκτρολόγησε ένα ποσό μεταξύ {min} και {max}. + other_ways: Άλλοι τρόποι δωρεάς (PayPal, τραπεζική μεταφορά, κρυπτονομίσματα…) +--- + +Το Organic Maps είναι δωρεάν για όλους χάρη στις δωρεές σου. Χωρίς διαφημίσεις. Χωρίς προγράμματα παρακολούθησης. Ανοιχτού κώδικα. \ No newline at end of file diff --git a/content/donate/subscribe/index.es.md b/content/donate/subscribe/index.es.md new file mode 100644 index 000000000..c6a6f8b84 --- /dev/null +++ b/content/donate/subscribe/index.es.md @@ -0,0 +1,32 @@ +--- +title: Apoya Organic Maps +description: Configura una donación mensual, anual o única y mantén Organic Maps gratis para todos — sin anuncios, sin rastreadores, código abierto. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: ¿Con qué frecuencia? + once: Única + monthly: Mensual + yearly: Anual + amount_label: Importe + other_label: Otro importe + currency_label: Moneda + email_label: Correo electrónico (recomendado) + email_why: Te enviaremos una confirmación, un recordatorio antes de cada cobro y un enlace para cancelar con un clic. Nada más — sin marketing. + email_warning: Sin correo no podemos enviar recordatorios de pago ni un enlace de cancelación — tendrías que contactarnos para cancelar. + name_label: Nombre (opcional) + name_why: Para dirigirnos a ti en el correo de agradecimiento. + submit: Continuar al pago seguro + submit_once: Donar {amount} + submit_month: Donar {amount} al mes + submit_year: Donar {amount} al año + submit_loading: Redirigiendo al pago seguro… + secure_note: Completarás el pago en Mollie, nuestro proveedor de pagos. Los datos de la tarjeta nunca tocan nuestros servidores. + error_amount: Introduce un importe válido. + error_amount_range: Introduce un importe entre {min} y {max}. + other_ways: Otras formas de donar (PayPal, transferencia, cripto…) +--- + +Organic Maps es gratis para todos gracias a tus donaciones. Sin anuncios. Sin rastreadores. Código abierto. diff --git a/content/donate/subscribe/index.et.md b/content/donate/subscribe/index.et.md new file mode 100644 index 000000000..0a6e74d5d --- /dev/null +++ b/content/donate/subscribe/index.et.md @@ -0,0 +1,32 @@ +--- +title: Toeta Organic Maps’i +description: Seadista igakuine, aastane või ühekordne annetus ja aita tagada, et Organic Maps jääks kõigile tasuta – ilma reklaamideta, ilma jälgijateta, avatud lähtekoodiga. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Kui tihti? + once: Ühekordne + monthly: Igakuine + yearly: Aastane + amount_label: Summa + other_label: Muu summa + currency_label: Valuuta + email_label: E-post (soovitatav) + email_why: Saadame sulle kinnituse, tuletame enne iga makset meelde ja anname ühe klõpsuga tühistamislingi. Ei midagi muud – mingit turundust. + email_warning: Ilma e-posti aadressita ei saa me saata maksemeeldetuletusi ega tühistamislinki – tühistamiseks peaksid meiega ühendust võtma. + name_label: Nimi (valikuline) + name_why: Et saaksime sinu poole tänukirjas nimepidi pöörduda. + submit: Jätka turvalise makse sooritamisega + submit_once: Anneta {amount} + submit_month: Anneta {amount} kuus + submit_year: Anneta {amount} aastas + submit_loading: Suunatakse edasi turvalisele maksele… + secure_note: Makse lõpetad meie maksevahendaja Mollie lehel. Kaardiandmed ei jõua kunagi meie serveritesse. + error_amount: Palun sisesta kehtiv summa. + error_amount_range: Sisesta summa vahemikus {min} kuni {max}. + other_ways: Muud annetusvõimalused (PayPal, pangaülekanne, krüptovaluuta…) +--- + +Tänu sinu annetustele on Organic Maps kõigile tasuta. Ilma reklaamideta. Ilma jälgijateta. Avatud lähtekoodiga. \ No newline at end of file diff --git a/content/donate/subscribe/index.eu.md b/content/donate/subscribe/index.eu.md new file mode 100644 index 000000000..6bb54caf3 --- /dev/null +++ b/content/donate/subscribe/index.eu.md @@ -0,0 +1,32 @@ +--- +title: Lagundu Organic Maps-i +description: Ezarri hileroko, urteroko edo behin bakarreko dohaintza bat eta mantendu Organic Maps doan denontzat — iragarkirik gabe, jarraipen-tresnarik gabe, iturburu irekia. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Zenbatero? + once: Behin bakarrik + monthly: Hilero + yearly: Urtero + amount_label: Zenbatekoa + other_label: Beste zenbateko bat + currency_label: Moneta + email_label: Posta elektronikoa (gomendatua) + email_why: Berrespen bat bidaliko dizugu, kobrantza bakoitzaren aurretik gogoraraziko dizugu eta klik bakarreko ezeztatzeko esteka bat emango dizugu. Beste ezer ez — marketinik gabe. + email_warning: Posta elektronikorik gabe ezin ditugu ordainketa-gogorarazpenak edo ezeztatzeko esteka bidali — ezeztatzeko gurekin harremanetan jarri beharko zenuke. + name_label: Izena (aukerakoa) + name_why: Eskerrak emateko mezuan izenez zuzendu ahal izateko. + submit: Jarraitu ordainketa segurura + submit_once: Eman {amount} + submit_month: Eman {amount} hilero + submit_year: Eman {amount} urtero + submit_loading: Ordainketa segurura birbideratzen… + secure_note: Ordainketa Mollie-n amaituko duzu, gure ordainketa-hornitzailean. Txartelaren datuak ez dira inoiz gure zerbitzarietatik pasatzen. + error_amount: Mesedez, sartu baliozko zenbateko bat. + error_amount_range: Sartu {min} eta {max} arteko zenbateko bat. + other_ways: Dohaintza egiteko beste modu batzuk (PayPal, banku-transferentzia, kriptoa…) +--- + +Organic Maps doakoa da denontzat, zure dohaintzei esker. Iragarkirik gabe. Jarraipen-tresnarik gabe. Iturburu irekia. \ No newline at end of file diff --git a/content/donate/subscribe/index.fa-IR.md b/content/donate/subscribe/index.fa-IR.md new file mode 100644 index 000000000..35fad6ec8 --- /dev/null +++ b/content/donate/subscribe/index.fa-IR.md @@ -0,0 +1,32 @@ +--- +title: از Organic Maps حمایت کنید +description: کمک مالی ماهانه، سالانه یا یک‌باره‌ای تنظیم کنید و Organic Maps را برای همه رایگان نگه دارید — بدون تبلیغات، بدون ردیاب، متن‌باز. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: هر چند وقت یک‌بار؟ + once: یک‌باره + monthly: ماهانه + yearly: سالانه + amount_label: مبلغ + other_label: مبلغ دیگر + currency_label: واحد پول + email_label: ایمیل (توصیه می‌شود) + email_why: یک تأییدیه برایتان می‌فرستیم، پیش از هر برداشت به شما یادآوری می‌کنیم و یک لینک لغو یک‌کلیکی در اختیارتان می‌گذاریم. همین و بس — بدون بازاریابی. + email_warning: بدون ایمیل نمی‌توانیم یادآوری‌های پرداخت یا لینک لغو را برایتان بفرستیم — برای لغو باید با ما تماس بگیرید. + name_label: نام (اختیاری) + name_why: تا بتوانیم در ایمیل تشکر شما را خطاب قرار دهیم. + submit: ادامه به پرداخت امن + submit_once: اهدای {amount} + submit_month: اهدای ماهانهٔ {amount} + submit_year: اهدای سالانهٔ {amount} + submit_loading: در حال انتقال به پرداخت امن… + secure_note: پرداخت را در Mollie، ارائه‌دهندهٔ پرداخت ما، نهایی می‌کنید. اطلاعات کارت هرگز وارد سرورهای ما نمی‌شود. + error_amount: لطفاً مبلغ معتبری وارد کنید. + error_amount_range: مبلغی بین {min} و {max} وارد کنید. + other_ways: روش‌های دیگر کمک مالی (PayPal، انتقال بانکی، رمزارز…) +--- + +Organic Maps به لطف کمک‌های شما برای همه رایگان است. بدون تبلیغات. بدون ردیاب. متن‌باز. \ No newline at end of file diff --git a/content/donate/subscribe/index.fr.md b/content/donate/subscribe/index.fr.md new file mode 100644 index 000000000..9f2a2c06a --- /dev/null +++ b/content/donate/subscribe/index.fr.md @@ -0,0 +1,32 @@ +--- +title: Soutiens Organic Maps +description: Mets en place un don mensuel, annuel ou ponctuel et garde Organic Maps gratuit pour tout le monde — pas de publicité, pas de trackers, open source. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: À quelle fréquence ? + once: Ponctuel + monthly: Mensuel + yearly: Annuel + amount_label: Montant + other_label: Autre montant + currency_label: Devise + email_label: E-mail (recommandé) + email_why: Nous t’enverrons une confirmation, un rappel avant chaque prélèvement et un lien d’annulation en un clic. Rien d’autre — pas de marketing. + email_warning: Sans e-mail, nous ne pouvons envoyer ni rappels de paiement ni lien d’annulation — tu devrais nous contacter pour annuler. + name_label: Nom (facultatif) + name_why: Pour pouvoir t’adresser le message de remerciement. + submit: Continuer vers le paiement sécurisé + submit_once: Donner {amount} + submit_month: Donner {amount} par mois + submit_year: Donner {amount} par an + submit_loading: Redirection vers le paiement sécurisé… + secure_note: Tu finaliseras le paiement chez Mollie, notre prestataire de paiement. Les données de carte ne touchent jamais nos serveurs. + error_amount: Saisis un montant valide. + error_amount_range: Saisis un montant entre {min} et {max}. + other_ways: Autres façons de donner (PayPal, virement, crypto…) +--- + +L’application Organic Maps est gratuite pour tout le monde grâce à tes dons. Pas de publicité. Pas de trackers. Open-source. diff --git a/content/donate/subscribe/index.gl.md b/content/donate/subscribe/index.gl.md new file mode 100644 index 000000000..5bda6f924 --- /dev/null +++ b/content/donate/subscribe/index.gl.md @@ -0,0 +1,32 @@ +--- +title: Apoia Organic Maps +description: Configura unha doazón mensual, anual ou puntual e mantén Organic Maps gratuíto para todos — sen anuncios, sen rastrexadores, código aberto. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Con que frecuencia? + once: Puntual + monthly: Mensual + yearly: Anual + amount_label: Importe + other_label: Outro importe + currency_label: Moeda + email_label: Correo electrónico (recomendado) + email_why: Enviaremos unha confirmación, lembrarémosche antes de cada cargo e ofrecerémosche un enlace de cancelación cun só clic. Nada máis — sen marketing. + email_warning: Sen un correo electrónico non podemos enviar recordatorios de pago nin un enlace de cancelación — terías que contactar connosco para cancelar. + name_label: Nome (opcional) + name_why: Para que poidamos dirixirnos a ti no correo electrónico de agradecemento. + submit: Continuar co pago seguro + submit_once: Doa {amount} + submit_month: Doa {amount} mensualmente + submit_year: Doa {amount} anualmente + submit_loading: Redirixindo ao pago seguro… + secure_note: Rematarás o pago en Mollie, o noso provedor de pagos. Os datos da tarxeta nunca chegan aos nosos servidores. + error_amount: Por favor, introduce un importe válido. + error_amount_range: Introduce un importe entre {min} e {max}. + other_ways: Outras formas de doar (PayPal, transferencia bancaria, criptomoedas…) +--- + +Organic Maps é gratuíto para todos grazas ás túas doazóns. Sen anuncios. Sen rastrexadores. Código aberto. \ No newline at end of file diff --git a/content/donate/subscribe/index.he.md b/content/donate/subscribe/index.he.md new file mode 100644 index 000000000..8dde5bc43 --- /dev/null +++ b/content/donate/subscribe/index.he.md @@ -0,0 +1,32 @@ +--- +title: תמכו ב-Organic Maps +description: הגדירו תרומה חודשית, שנתית או חד-פעמית ושמרו על Organic Maps חינמי לכולם — ללא פרסומות, ללא רכיבי מעקב, קוד פתוח. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: באיזו תדירות? + once: חד-פעמית + monthly: חודשית + yearly: שנתית + amount_label: סכום + other_label: סכום אחר + currency_label: מטבע + email_label: דוא״ל (מומלץ) + email_why: נשלח לכם אישור, נזכיר לכם לפני כל חיוב וניתן לכם קישור לביטול בלחיצה אחת. זה הכול — ללא שיווק. + email_warning: ללא כתובת דוא״ל לא נוכל לשלוח תזכורות תשלום או קישור לביטול — תצטרכו ליצור איתנו קשר כדי לבטל. + name_label: שם (לא חובה) + name_why: כדי שנוכל לפנות אליכם במייל התודה. + submit: המשיכו לתשלום מאובטח + submit_once: תרמו {amount} + submit_month: תרמו {amount} מדי חודש + submit_year: תרמו {amount} מדי שנה + submit_loading: מפנים לתשלום מאובטח… + secure_note: את התשלום תשלימו ב-Mollie, ספק התשלומים שלנו. פרטי הכרטיס לעולם אינם מגיעים לשרתים שלנו. + error_amount: אנא הזינו סכום תקין. + error_amount_range: הזינו סכום בין {min} ל-{max}. + other_ways: דרכים נוספות לתרומה (PayPal, העברה בנקאית, קריפטו…) +--- + +Organic Maps זמין בחינם לכולם בזכות התרומות שלכם. ללא פרסומות. ללא רכיבי מעקב. קוד פתוח. \ No newline at end of file diff --git a/content/donate/subscribe/index.hi.md b/content/donate/subscribe/index.hi.md new file mode 100644 index 000000000..92a877362 --- /dev/null +++ b/content/donate/subscribe/index.hi.md @@ -0,0 +1,32 @@ +--- +title: Organic Maps का समर्थन करें +description: मासिक, वार्षिक या एकमुश्त दान सेट करें और Organic Maps को सभी के लिए मुफ़्त बनाए रखें — कोई विज्ञापन नहीं, कोई ट्रैकर नहीं, ओपन सोर्स। +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: कितनी बार? + once: एकमुश्त + monthly: मासिक + yearly: वार्षिक + amount_label: राशि + other_label: अन्य राशि + currency_label: मुद्रा + email_label: ईमेल (अनुशंसित) + email_why: हम एक पुष्टिकरण भेजेंगे, प्रत्येक चार्ज से पहले आपको याद दिलाएँगे, और एक-क्लिक रद्द करने का लिंक देंगे। बस इतना ही — कोई मार्केटिंग नहीं। + email_warning: ईमेल के बिना हम भुगतान की याद दिलाने वाले संदेश या रद्दीकरण लिंक नहीं भेज सकते — रद्द करने के लिए आपको हमसे संपर्क करना होगा। + name_label: नाम (वैकल्पिक) + name_why: ताकि हम धन्यवाद ईमेल में आपको संबोधित कर सकें। + submit: सुरक्षित भुगतान के लिए आगे बढ़ें + submit_once: "{amount} दान करें" + submit_month: "{amount} मासिक दान करें" + submit_year: "{amount} वार्षिक दान करें" + submit_loading: सुरक्षित भुगतान की ओर पुनर्निर्देशित किया जा रहा है… + secure_note: आप भुगतान हमारे भुगतान प्रदाता Mollie पर पूरा करेंगे। कार्ड का विवरण कभी हमारे सर्वर तक नहीं पहुँचता। + error_amount: कृपया एक मान्य राशि दर्ज करें। + error_amount_range: "{min} और {max} के बीच की राशि दर्ज करें।" + other_ways: दान करने के अन्य तरीके (PayPal, बैंक हस्तांतरण, क्रिप्टो…) +--- + +Organic Maps आपके दान की बदौलत सभी के लिए मुफ़्त है। कोई विज्ञापन नहीं। कोई ट्रैकर नहीं। ओपन सोर्स। \ No newline at end of file diff --git a/content/donate/subscribe/index.hu.md b/content/donate/subscribe/index.hu.md new file mode 100644 index 000000000..6cbdec922 --- /dev/null +++ b/content/donate/subscribe/index.hu.md @@ -0,0 +1,32 @@ +--- +title: Támogasd az Organic Mapset +description: Állíts be havi, éves vagy egyszeri adományt, és tartsd az Organic Mapset ingyenesen mindenki számára — reklámok és nyomkövetés nélkül, nyílt forráskóddal. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Milyen gyakran? + once: Egyszeri + monthly: Havonta + yearly: Évente + amount_label: Összeg + other_label: Más összeg + currency_label: Pénznem + email_label: E-mail (ajánlott) + email_why: Küldünk visszaigazolást, minden terhelés előtt emlékeztetőt, és egy kattintással lemondható linket. Semmi mást — semmi marketing. + email_warning: E-mail nélkül nem tudunk fizetési emlékeztetőt és lemondó linket küldeni — a lemondáshoz kapcsolatba kellene lépned velünk. + name_label: Név (nem kötelező) + name_why: Hogy megszólíthassunk a köszönő e-mailben. + submit: Tovább a biztonságos fizetéshez + submit_once: '{amount} adományozása' + submit_month: '{amount} adományozása havonta' + submit_year: '{amount} adományozása évente' + submit_loading: Átirányítás a biztonságos fizetéshez… + secure_note: A fizetést a Mollie-nál, a fizetési szolgáltatónknál fejezed be. A kártyaadatok soha nem érintik a szervereinket. + error_amount: Adj meg érvényes összeget. + error_amount_range: Adj meg egy összeget {min} és {max} között. + other_ways: Más támogatási módok (PayPal, átutalás, kripto…) +--- + +Az Organic Maps mindenki számára ingyenes az adományodnak köszönhetően. Nincs reklám. Nincs nyomkövetés. Nyílt forráskódú. diff --git a/content/donate/subscribe/index.id.md b/content/donate/subscribe/index.id.md new file mode 100644 index 000000000..fee1aecdb --- /dev/null +++ b/content/donate/subscribe/index.id.md @@ -0,0 +1,32 @@ +--- +title: Dukung Organic Maps +description: Atur donasi bulanan, tahunan, atau sekali saja, dan jaga agar Organic Maps tetap gratis untuk semua orang — tanpa iklan, tanpa pelacak, sumber terbuka. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Seberapa sering? + once: Sekali saja + monthly: Bulanan + yearly: Tahunan + amount_label: Jumlah + other_label: Jumlah lain + currency_label: Mata uang + email_label: Email (disarankan) + email_why: Kami akan mengirimkan konfirmasi, mengingatkan kamu sebelum setiap penagihan, dan memberikan tautan pembatalan satu klik. Tidak ada yang lain — tanpa pemasaran. + email_warning: Tanpa alamat email, kami tidak dapat mengirimkan pengingat pembayaran atau tautan pembatalan — kamu harus menghubungi kami untuk membatalkannya. + name_label: Nama (opsional) + name_why: Agar kami dapat menyapa kamu dalam email ucapan terima kasih. + submit: Lanjutkan ke pembayaran aman + submit_once: Donasi {amount} + submit_month: Donasi {amount} setiap bulan + submit_year: Donasi {amount} setiap tahun + submit_loading: Sedang dialihkan ke halaman pembayaran yang aman… + secure_note: Kamu akan menyelesaikan pembayaran melalui Mollie, penyedia layanan pembayaran kami. Detail kartu kamu tidak pernah tersimpan di server kami. + error_amount: Silakan masukkan jumlah yang valid. + error_amount_range: Masukkan jumlah antara {min} dan {max}. + other_ways: Cara lain untuk berdonasi (PayPal, transfer bank, kripto…) +--- + +Organic Maps gratis untuk semua orang berkat donasi kamu. Tanpa iklan. Tanpa pelacak. Sumber terbuka. \ No newline at end of file diff --git a/content/donate/subscribe/index.it.md b/content/donate/subscribe/index.it.md new file mode 100644 index 000000000..4535bdd50 --- /dev/null +++ b/content/donate/subscribe/index.it.md @@ -0,0 +1,32 @@ +--- +title: Sostieni Organic Maps +description: Attiva una donazione mensile, annuale o una tantum e mantieni Organic Maps gratuita per tutti — niente pubblicità, niente tracker, open source. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Con quale frequenza? + once: Una tantum + monthly: Mensile + yearly: Annuale + amount_label: Importo + other_label: Altro importo + currency_label: Valuta + email_label: E-mail (consigliata) + email_why: Ti invieremo una conferma, un promemoria prima di ogni addebito e un link per annullare con un clic. Nient’altro — niente marketing. + email_warning: Senza e-mail non possiamo inviare promemoria di pagamento né un link di annullamento — per annullare dovresti contattarci. + name_label: Nome (facoltativo) + name_why: Per rivolgerci a te nell’e-mail di ringraziamento. + submit: Continua al pagamento sicuro + submit_once: Dona {amount} + submit_month: Dona {amount} al mese + submit_year: Dona {amount} all’anno + submit_loading: Reindirizzamento al pagamento sicuro… + secure_note: Completerai il pagamento su Mollie, il nostro fornitore di pagamenti. I dati della carta non toccano mai i nostri server. + error_amount: Inserisci un importo valido. + error_amount_range: Inserisci un importo tra {min} e {max}. + other_ways: Altri modi per donare (PayPal, bonifico, cripto…) +--- + +L’app Organic Maps è gratuita per tutti grazie alle tue donazioni. Nessuna pubblicità. Nessun tracker. Open-source. diff --git a/content/donate/subscribe/index.ja.md b/content/donate/subscribe/index.ja.md new file mode 100644 index 000000000..94ec57a5c --- /dev/null +++ b/content/donate/subscribe/index.ja.md @@ -0,0 +1,32 @@ +--- +title: Organic Maps を支援する +description: 毎月、毎年、または1回限りの寄付で、Organic Maps を誰もが無料で使い続けられるよう支援してください――広告もトラッカーもなく、オープンソースです。 +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: 寄付の頻度は? + once: 1回限り + monthly: 毎月 + yearly: 毎年 + amount_label: 金額 + other_label: その他の金額 + currency_label: 通貨 + email_label: メールアドレス(推奨) + email_why: 確認メールをお送りし、請求の前に毎回お知らせするとともに、ワンクリックで解約できるリンクをご案内します。それ以外のメール(マーケティングなど)はお送りしません。 + email_warning: メールアドレスをご入力いただかない場合、支払い前のお知らせや解約用リンクをお送りできません。解約するには、当プロジェクトへご連絡いただく必要があります。 + name_label: 名前(任意) + name_why: お礼のメールでお名前を添えるためです。 + submit: 安全な決済に進む + submit_once: "{amount} を寄付する" + submit_month: 毎月 {amount} を寄付する + submit_year: 毎年 {amount} を寄付する + submit_loading: 安全な決済ページに移動しています… + secure_note: 決済は、決済代行サービス Mollie のサイトで完了します。カード情報が当プロジェクトのサーバーを通ることはありません。 + error_amount: 有効な金額を入力してください。 + error_amount_range: "{min} から {max} の範囲で金額を入力してください。" + other_ways: その他の寄付方法(PayPal、銀行振込、暗号資産など) +--- + +皆さまの寄付により、Organic Maps は誰でも無料で利用できます。広告なし。トラッカーなし。オープンソース。 diff --git a/content/donate/subscribe/index.lt.md b/content/donate/subscribe/index.lt.md new file mode 100644 index 000000000..7e3eea3e0 --- /dev/null +++ b/content/donate/subscribe/index.lt.md @@ -0,0 +1,32 @@ +--- +title: Paremkite Organic Maps +description: Nustatykite mėnesinę, metinę ar vienkartinę auką ir padėkite Organic Maps likti nemokamai visiems — be reklamų, be sekimo, atviro kodo. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Kaip dažnai? + once: Vienkartinė + monthly: Kas mėnesį + yearly: Kasmet + amount_label: Suma + other_label: Kita suma + currency_label: Valiuta + email_label: El. paštas (rekomenduojama) + email_why: Atsiųsime patvirtinimą, priminimą prieš kiekvieną nurašymą ir atšaukimo nuorodą vienu paspaudimu. Nieko daugiau — jokios rinkodaros. + email_warning: Be el. pašto negalime siųsti mokėjimo priminimų ar atšaukimo nuorodos — norėdami atšaukti, turėtumėte susisiekti su mumis. + name_label: Vardas (nebūtina) + name_why: Kad galėtume kreiptis į jus padėkos laiške. + submit: Tęsti į saugų mokėjimą + submit_once: Paaukoti {amount} + submit_month: Aukoti {amount} kas mėnesį + submit_year: Aukoti {amount} kasmet + submit_loading: Nukreipiama į saugų mokėjimą… + secure_note: Mokėjimą užbaigsite Mollie — mūsų mokėjimų teikėjo — puslapyje. Kortelės duomenys niekada nepasiekia mūsų serverių. + error_amount: Įveskite tinkamą sumą. + error_amount_range: Įveskite sumą nuo {min} iki {max}. + other_ways: Kiti paramos būdai (PayPal, pavedimas, kriptovaliutos…) +--- + +Organic Maps programa nemokama visiems jūsų aukų dėka. Jokių reklamų. Jokių sekiklių. Atviras kodas. diff --git a/content/donate/subscribe/index.md b/content/donate/subscribe/index.md new file mode 100644 index 000000000..7d25d9360 --- /dev/null +++ b/content/donate/subscribe/index.md @@ -0,0 +1,32 @@ +--- +title: Support Organic Maps +description: Set up a monthly, yearly or one-time donation and keep Organic Maps free for everyone — no ads, no trackers, open source. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: How often? + once: One-time + monthly: Monthly + yearly: Yearly + amount_label: Amount + other_label: Other amount + currency_label: Currency + email_label: Email (recommended) + email_why: We’ll send a confirmation, remind you before each charge, and give you a one-click cancel link. Nothing else — no marketing. + email_warning: Without an email we can’t send payment reminders or a cancellation link — you would need to contact us to cancel. + name_label: Name (optional) + name_why: So we can address you in the thank-you email. + submit: Continue to secure payment + submit_once: Donate {amount} + submit_month: Donate {amount} monthly + submit_year: Donate {amount} yearly + submit_loading: Redirecting to secure payment… + secure_note: You’ll finish the payment on Mollie, our payment provider. Card details never touch our servers. + error_amount: Please enter a valid amount. + error_amount_range: Enter an amount between {min} and {max}. + other_ways: Other ways to donate (PayPal, bank transfer, crypto…) +--- + +Organic Maps is free for everyone thanks to your donations. No ads. No trackers. Open source. diff --git a/content/donate/subscribe/index.ml.md b/content/donate/subscribe/index.ml.md new file mode 100644 index 000000000..44966dab7 --- /dev/null +++ b/content/donate/subscribe/index.ml.md @@ -0,0 +1,32 @@ +--- +title: Organic Maps-നെ പിന്തുണയ്ക്കുക +description: പ്രതിമാസമോ, പ്രതിവർഷമോ, അല്ലെങ്കിൽ ഒറ്റത്തവണയോ സംഭാവന നൽകി Organic Maps എല്ലാവർക്കും സൗജന്യമായി നിലനിർത്തുക — പരസ്യങ്ങളില്ല, ട്രാക്കറുകളില്ല, ഓപ്പൺ സോഴ്സ്. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: എത്ര തവണ? + once: ഒറ്റത്തവണ + monthly: പ്രതിമാസം + yearly: പ്രതിവർഷം + amount_label: തുക + other_label: മറ്റൊരു തുക + currency_label: കറൻസി + email_label: ഇമെയിൽ (ശുപാർശ ചെയ്യുന്നു) + email_why: ഞങ്ങൾ ഒരു സ്ഥിരീകരണം അയയ്‌ക്കും, ഓരോ ചാർജിനും മുമ്പായി നിങ്ങളെ ഓർമ്മിപ്പിക്കും, ഒറ്റ ക്ലിക്കിൽ റദ്ദാക്കാനുള്ള ഒരു ലിങ്ക് നൽകും. അത്രമാത്രം — വിപണന സന്ദേശങ്ങളൊന്നുമില്ല. + email_warning: ഇമെയിൽ ഇല്ലെങ്കിൽ ഞങ്ങൾക്ക് പണമടയ്ക്കാനുള്ള ഓർമ്മപ്പെടുത്തലുകളോ റദ്ദാക്കാനുള്ള ലിങ്കോ അയക്കാൻ കഴിയില്ല — റദ്ദാക്കുന്നതിന് നിങ്ങൾ ഞങ്ങളെ ബന്ധപ്പെടേണ്ടിവരും. + name_label: പേര് (ഓപ്ഷണൽ) + name_why: നന്ദി അറിയിക്കുന്ന ഇമെയിലിൽ നിങ്ങളെ അഭിസംബോധന ചെയ്യാൻ വേണ്ടി. + submit: സുരക്ഷിത പേയ്‌മെന്റിലേക്ക് തുടരുക + submit_once: "{amount} സംഭാവന ചെയ്യുക" + submit_month: പ്രതിമാസം {amount} സംഭാവന ചെയ്യുക + submit_year: പ്രതിവർഷം {amount} സംഭാവന ചെയ്യുക + submit_loading: സുരക്ഷിത പേയ്‌മെന്റിലേക്ക് മാറ്റുന്നു… + secure_note: ഞങ്ങളുടെ പേയ്‌മെന്റ് ദാതാവായ Mollie-യിൽ വെച്ചാണ് നിങ്ങൾ പണമടയ്ക്കൽ പൂർത്തിയാക്കുന്നത്. കാർഡ് വിവരങ്ങൾ ഒരിക്കലും ഞങ്ങളുടെ സെർവറുകളിൽ എത്തുന്നില്ല. + error_amount: ദയവായി സാധുവായ ഒരു തുക നൽകുക. + error_amount_range: "{min}-നും {max}-നും ഇടയിൽ ഒരു തുക നൽകുക." + other_ways: സംഭാവന നൽകാനുള്ള മറ്റ് വഴികൾ (PayPal, ബാങ്ക് ട്രാൻസ്ഫർ, ക്രിപ്റ്റോ…) +--- + +നിങ്ങളുടെ സംഭാവനകൾക്ക് നന്ദി, Organic Maps എല്ലാവർക്കും സൗജന്യമാണ്. പരസ്യങ്ങളില്ല. ട്രാക്കറുകളില്ല. ഓപ്പൺ സോഴ്സ്. \ No newline at end of file diff --git a/content/donate/subscribe/index.mr.md b/content/donate/subscribe/index.mr.md new file mode 100644 index 000000000..dddac6159 --- /dev/null +++ b/content/donate/subscribe/index.mr.md @@ -0,0 +1,32 @@ +--- +title: Organic Maps ला समर्थन द्या +description: मासिक, वार्षिक किंवा एकवेळची देणगी सुरू करा आणि Organic Maps सर्वांसाठी मोफत ठेवा — कोणतीही जाहिरात नाही, कोणतेही ट्रॅकर नाहीत, मुक्त स्रोत. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: किती वेळा? + once: एकदाच + monthly: मासिक + yearly: वार्षिक + amount_label: रक्कम + other_label: इतर रक्कम + currency_label: चलन + email_label: ईमेल (शिफारस केलेले) + email_why: आम्ही पुष्टीकरण पाठवू, प्रत्येक चार्जपूर्वी तुम्हाला स्मरण करून देऊ, आणि एक-क्लिक रद्द करण्याची लिंक देऊ. इतकेच — कोणतेही मार्केटिंग नाही. + email_warning: ईमेलशिवाय आम्ही पेमेंट स्मरणपत्रे किंवा रद्द करण्याची लिंक पाठवू शकत नाही — रद्द करण्यासाठी तुम्हाला आमच्याशी संपर्क साधावा लागेल. + name_label: नाव (ऐच्छिक) + name_why: जेणेकरून आम्ही तुम्हाला धन्यवाद ईमेलमध्ये संबोधित करू शकू. + submit: सुरक्षित पेमेंटकडे पुढे जा + submit_once: "{amount} देणगी द्या" + submit_month: "{amount} मासिक देणगी द्या" + submit_year: "{amount} वार्षिक देणगी द्या" + submit_loading: सुरक्षित पेमेंटसाठी पुनर्निर्देशित करत आहे… + secure_note: तुम्ही आमचे पेमेंट प्रदाता Mollie वर पेमेंट पूर्ण कराल. कार्ड तपशील कधीही आमच्या सर्व्हरवर येत नाहीत. + error_amount: कृपया वैध रक्कम प्रविष्ट करा. + error_amount_range: "{min} ते {max} या दरम्यानची रक्कम प्रविष्ट करा." + other_ways: दान करण्याचे इतर मार्ग (PayPal, बँक हस्तांतरण, क्रिप्टो…) +--- + +तुमच्या देणग्यांमुळे Organic Maps सर्वांसाठी मोफत आहे. कोणतीही जाहिरात नाही. कोणतेही ट्रॅकर नाहीत. मुक्त स्रोत. \ No newline at end of file diff --git a/content/donate/subscribe/index.nl.md b/content/donate/subscribe/index.nl.md new file mode 100644 index 000000000..5a610c4b0 --- /dev/null +++ b/content/donate/subscribe/index.nl.md @@ -0,0 +1,32 @@ +--- +title: Steun Organic Maps +description: Stel een maandelijkse, jaarlijkse of eenmalige donatie in en houd Organic Maps gratis voor iedereen — geen advertenties, geen trackers, open source. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Hoe vaak? + once: Eenmalig + monthly: Maandelijks + yearly: Jaarlijks + amount_label: Bedrag + other_label: Ander bedrag + currency_label: Valuta + email_label: E-mail (aanbevolen) + email_why: We sturen je een bevestiging, herinneren je vóór elke afschrijving en geven je een opzeglink met één klik. Verder niets — geen marketing. + email_warning: Zonder e-mail kunnen we geen betalingsherinneringen of opzeglink sturen — om op te zeggen zou je contact met ons moeten opnemen. + name_label: Naam (optioneel) + name_why: Zodat we je persoonlijk kunnen bedanken in de e-mail. + submit: Doorgaan naar veilige betaling + submit_once: Doneer {amount} + submit_month: Doneer {amount} per maand + submit_year: Doneer {amount} per jaar + submit_loading: Doorsturen naar veilige betaling… + secure_note: Je rondt de betaling af bij Mollie, onze betaalprovider. Kaartgegevens bereiken onze servers nooit. + error_amount: Voer een geldig bedrag in. + error_amount_range: Voer een bedrag in tussen {min} en {max}. + other_ways: Andere manieren om te doneren (PayPal, overschrijving, crypto…) +--- + +De Organic Maps app is gratis voor iedereen dankzij je donaties. Geen advertenties. Geen trackers. Open-source. diff --git a/content/donate/subscribe/index.oc.md b/content/donate/subscribe/index.oc.md new file mode 100644 index 000000000..1953ac0da --- /dev/null +++ b/content/donate/subscribe/index.oc.md @@ -0,0 +1,32 @@ +--- +title: Sosten Organic Maps +description: Establís una donacion mensuala, anuala o unica e manten Organic Maps gratuit per totes — sens publicitat, sens traçaires, de còdi dobèrt. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: A quina frequéncia? + once: Un còp + monthly: Mensual + yearly: Anual + amount_label: Montant + other_label: Autre montant + currency_label: Moneda + email_label: Corrièr electronic (recomandat) + email_why: Te mandarem una confirmacion, te remembrarem abans cada prelevament, e te balharem un ligam d’anullacion amb un sol clic. Res mai — pas de marketing. + email_warning: Sens adreça de corrièr electronic, te podèm pas mandar de rapèls de pagament ni un ligam d’anullacion — caldriá que nos contactes per anullar. + name_label: Nom (opcional) + name_why: Per poder nos adreçar a tu dins lo corrièr electronic de mercejament. + submit: Contunhar cap al pagament securizat + submit_once: Dona {amount} + submit_month: Dona {amount} cada mes + submit_year: Dona {amount} cada an + submit_loading: Redireccion cap al pagament securizat… + secure_note: Acabaràs lo pagament sus Mollie, nòstre prestador de pagaments. Las informacions de ta carta tocan pas jamai nòstres servidors. + error_amount: Indica un montant valid. + error_amount_range: Indica un montant entre {min} e {max}. + other_ways: Autras manièras de donar (PayPal, transferiment bancari, criptomoneda…) +--- + +Organic Maps es gratuit per totes gràcias a tas donacions. Pas de publicitat. Pas de traçaires. Còdi dobèrt. \ No newline at end of file diff --git a/content/donate/subscribe/index.pl.md b/content/donate/subscribe/index.pl.md new file mode 100644 index 000000000..f3dde2ba5 --- /dev/null +++ b/content/donate/subscribe/index.pl.md @@ -0,0 +1,32 @@ +--- +title: Wesprzyj Organic Maps +description: Ustaw miesięczną, roczną lub jednorazową darowiznę i pomóż utrzymać Organic Maps darmowe dla wszystkich — bez reklam, bez śledzenia, open source. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Jak często? + once: Jednorazowo + monthly: Co miesiąc + yearly: Co rok + amount_label: Kwota + other_label: Inna kwota + currency_label: Waluta + email_label: E-mail (zalecany) + email_why: Wyślemy potwierdzenie, przypomnienie przed każdym obciążeniem i link do anulowania jednym kliknięciem. Nic więcej — żadnego marketingu. + email_warning: Bez adresu e-mail nie możemy wysyłać przypomnień o płatnościach ani linku do anulowania — aby zrezygnować, trzeba by się z nami skontaktować. + name_label: Imię (opcjonalnie) + name_why: Abyśmy mogli zwrócić się do Ciebie w wiadomości z podziękowaniem. + submit: Przejdź do bezpiecznej płatności + submit_once: Przekaż {amount} + submit_month: Przekazuj {amount} miesięcznie + submit_year: Przekazuj {amount} rocznie + submit_loading: Przekierowywanie do bezpiecznej płatności… + secure_note: Płatność dokończysz w Mollie, naszym operatorze płatności. Dane karty nigdy nie trafiają na nasze serwery. + error_amount: Podaj prawidłową kwotę. + error_amount_range: Podaj kwotę od {min} do {max}. + other_ways: Inne sposoby wsparcia (PayPal, przelew, kryptowaluty…) +--- + +Aplikacja Organic Maps jest darmowa dla wszystkich dzięki twoim darowiznom. Bez reklam. Bez śledzenia. Open source. diff --git a/content/donate/subscribe/index.pt-BR.md b/content/donate/subscribe/index.pt-BR.md new file mode 100644 index 000000000..ecb0455c5 --- /dev/null +++ b/content/donate/subscribe/index.pt-BR.md @@ -0,0 +1,32 @@ +--- +title: Apoie Organic Maps +description: Configure uma doação mensal, anual ou única e ajude a manter o Organic Maps gratuito para todo mundo — sem anúncios, sem rastreadores e de código aberto. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Com que frequência? + once: Única + monthly: Mensal + yearly: Anual + amount_label: Valor + other_label: Outro valor + currency_label: Moeda + email_label: E-mail (recomendado) + email_why: Vamos te enviar uma confirmação, te lembrar antes de cada cobrança e te dar um link para cancelar com um clique. Só isso — nada de marketing. + email_warning: Sem um e-mail, não podemos enviar lembretes de pagamento nem um link de cancelamento — você precisaria entrar em contato conosco para cancelar. + name_label: Nome (opcional) + name_why: Assim, podemos nos dirigir a você no e-mail de agradecimento. + submit: Continuar para o pagamento seguro + submit_once: Doar {amount} + submit_month: Doar {amount} por mês + submit_year: Doar {amount} por ano + submit_loading: Redirecionando para o pagamento seguro… + secure_note: Você vai concluir o pagamento no Mollie, nosso provedor de pagamentos. Os dados do cartão nunca passam pelos nossos servidores. + error_amount: Por favor, digite um valor válido. + error_amount_range: Digite um valor entre {min} e {max}. + other_ways: Outras formas de doar (PayPal, transferência bancária, criptomoedas…) +--- + +Organic Maps é gratuito para todo mundo graças às suas doações. Sem anúncios. Sem rastreadores. Código aberto. \ No newline at end of file diff --git a/content/donate/subscribe/index.pt.md b/content/donate/subscribe/index.pt.md new file mode 100644 index 000000000..efe424fd2 --- /dev/null +++ b/content/donate/subscribe/index.pt.md @@ -0,0 +1,32 @@ +--- +title: Apoia o Organic Maps +description: Configura uma doação mensal, anual ou única e mantém o Organic Maps gratuito para todos — sem anúncios, sem rastreadores, código aberto. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Com que frequência? + once: Única + monthly: Mensal + yearly: Anual + amount_label: Valor + other_label: Outro valor + currency_label: Moeda + email_label: E-mail (recomendado) + email_why: Enviaremos uma confirmação, um lembrete antes de cada cobrança e um link para cancelar com um clique. Nada mais — sem marketing. + email_warning: Sem e-mail não podemos enviar lembretes de pagamento nem um link de cancelamento — para cancelar terias de nos contactar. + name_label: Nome (opcional) + name_why: Para nos dirigirmos a ti no e-mail de agradecimento. + submit: Continuar para o pagamento seguro + submit_once: Doar {amount} + submit_month: Doar {amount} por mês + submit_year: Doar {amount} por ano + submit_loading: A redirecionar para o pagamento seguro… + secure_note: Concluirás o pagamento na Mollie, o nosso fornecedor de pagamentos. Os dados do cartão nunca tocam os nossos servidores. + error_amount: Introduz um valor válido. + error_amount_range: Introduz um valor entre {min} e {max}. + other_ways: Outras formas de doar (PayPal, transferência, cripto…) +--- + +A app Organic Maps é gratuita para todos graças às tuas doações. Sem anúncios. Sem rastreadores. Código aberto. diff --git a/content/donate/subscribe/index.ru.md b/content/donate/subscribe/index.ru.md new file mode 100644 index 000000000..f2dfeade5 --- /dev/null +++ b/content/donate/subscribe/index.ru.md @@ -0,0 +1,32 @@ +--- +title: Поддержите Organic Maps +description: Оформите ежемесячное, ежегодное или разовое пожертвование и помогите сохранить Organic Maps бесплатным для всех — без рекламы, без слежки, с открытым исходным кодом. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Как часто? + once: Разово + monthly: Ежемесячно + yearly: Ежегодно + amount_label: Сумма + other_label: Другая сумма + currency_label: Валюта + email_label: Электронная почта (рекомендуется) + email_why: Мы отправим подтверждение, напомним перед каждым списанием и дадим ссылку для отмены в один клик. Ничего больше — никакого маркетинга. + email_warning: Без адреса электронной почты мы не сможем присылать напоминания о платежах и ссылку для отмены — вам придётся связаться с нами, чтобы отменить пожертвование. + name_label: Имя (необязательно) + name_why: Чтобы мы могли обратиться к вам по имени в благодарственном письме. + submit: Перейти к безопасной оплате + submit_once: Пожертвовать {amount} + submit_month: Пожертвовать {amount} ежемесячно + submit_year: Пожертвовать {amount} ежегодно + submit_loading: Перенаправление на страницу безопасной оплаты… + secure_note: Вы завершите оплату на стороне Mollie, нашего платёжного провайдера. Данные карты никогда не попадают на наши серверы. + error_amount: Пожалуйста, введите корректную сумму. + error_amount_range: Введите сумму от {min} до {max}. + other_ways: Другие способы пожертвовать (PayPal, банковский перевод, криптовалюта…) +--- + +Благодаря вашим пожертвованиям приложение Organic Maps доступно всем бесплатно. Без рекламы. Без слежки. С открытым исходным кодом. \ No newline at end of file diff --git a/content/donate/subscribe/index.sv.md b/content/donate/subscribe/index.sv.md new file mode 100644 index 000000000..2aae91e9b --- /dev/null +++ b/content/donate/subscribe/index.sv.md @@ -0,0 +1,32 @@ +--- +title: Stöd Organic Maps +description: Sätt upp en månatlig, årlig eller engångsdonation och håll Organic Maps gratis för alla — inga annonser, inga spårare, öppen källkod. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Hur ofta? + once: Engångsbelopp + monthly: Månadsvis + yearly: Årsvis + amount_label: Belopp + other_label: Annat belopp + currency_label: Valuta + email_label: E-post (rekommenderas) + email_why: Vi skickar en bekräftelse, en påminnelse före varje dragning och en avslutslänk med ett klick. Inget annat — ingen marknadsföring. + email_warning: Utan e-post kan vi inte skicka betalningspåminnelser eller någon avslutslänk — du skulle behöva kontakta oss för att avsluta. + name_label: Namn (valfritt) + name_why: Så att vi kan tilltala dig i tackmejlet. + submit: Fortsätt till säker betalning + submit_once: Donera {amount} + submit_month: Donera {amount} per månad + submit_year: Donera {amount} per år + submit_loading: Omdirigerar till säker betalning… + secure_note: Du slutför betalningen hos Mollie, vår betalleverantör. Kortuppgifter når aldrig våra servrar. + error_amount: Ange ett giltigt belopp. + error_amount_range: Ange ett belopp mellan {min} och {max}. + other_ways: Andra sätt att donera (PayPal, banköverföring, krypto…) +--- + +Organic Maps är gratis för alla tack vare dina donationer. Inga annonser. Inga spårare. Öppen källkod. diff --git a/content/donate/subscribe/index.te.md b/content/donate/subscribe/index.te.md new file mode 100644 index 000000000..6ea49f0e3 --- /dev/null +++ b/content/donate/subscribe/index.te.md @@ -0,0 +1,32 @@ +--- +title: Organic Mapsకు మద్దతు ఇవ్వండి +description: నెలవారీ, వార్షిక లేదా ఒకేసారి ఇచ్చే విరాళాన్ని ఏర్పాటు చేసి, Organic Maps అందరికీ ఉచితంగా ఉండేలా చేయండి — ప్రకటనలు లేవు, ట్రాకర్లు లేవు, ఓపెన్ సోర్స్. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: ఎంత తరచుగా? + once: ఒకసారి + monthly: నెలవారీ + yearly: వార్షిక + amount_label: మొత్తం + other_label: ఇతర మొత్తం + currency_label: కరెన్సీ + email_label: ఇమెయిల్ (సిఫార్సు చేయబడింది) + email_why: మేము నిర్ధారణ ఇమెయిల్ పంపుతాము, ప్రతి ఛార్జీకి ముందు మీకు గుర్తు చేస్తాము, ఒకే క్లిక్‌తో రద్దు చేసుకునే లింక్‌ను ఇస్తాము. మరేమీ లేదు — మార్కెటింగ్ ఉండదు. + email_warning: ఇమెయిల్ లేకపోతే మేము చెల్లింపు రిమైండర్‌లు లేదా రద్దు లింక్‌ను పంపలేము — రద్దు చేయడానికి మీరు మమ్మల్ని సంప్రదించవలసి ఉంటుంది. + name_label: పేరు (ఐచ్ఛికం) + name_why: ధన్యవాదాల ఇమెయిల్‌లో మిమ్మల్ని సంబోధించడానికి. + submit: సురక్షిత చెల్లింపునకు కొనసాగండి + submit_once: "{amount} విరాళం ఇవ్వండి" + submit_month: "ప్రతి నెలా {amount} విరాళం ఇవ్వండి" + submit_year: "ప్రతి సంవత్సరం {amount} విరాళం ఇవ్వండి" + submit_loading: సురక్షిత చెల్లింపునకు మళ్లించబడుతోంది… + secure_note: మీరు మా చెల్లింపు ప్రదాత అయిన Mollieలో చెల్లింపును పూర్తి చేస్తారు. కార్డు వివరాలు ఎప్పుడూ మా సర్వర్‌లను తాకవు. + error_amount: దయచేసి చెల్లుబాటు అయ్యే మొత్తాన్ని నమోదు చేయండి. + error_amount_range: "{min} మరియు {max} మధ్య మొత్తాన్ని నమోదు చేయండి." + other_ways: విరాళం ఇవ్వడానికి ఇతర మార్గాలు (PayPal, బ్యాంక్ బదిలీ, క్రిప్టో…) +--- + +మీ విరాళాల వల్ల Organic Maps అందరికీ ఉచితం. ప్రకటనలు లేవు. ట్రాకర్లు లేవు. ఓపెన్ సోర్స్. \ No newline at end of file diff --git a/content/donate/subscribe/index.tr.md b/content/donate/subscribe/index.tr.md new file mode 100644 index 000000000..bf74f27ad --- /dev/null +++ b/content/donate/subscribe/index.tr.md @@ -0,0 +1,32 @@ +--- +title: Organic Maps’i Destekle +description: Aylık, yıllık veya tek seferlik bir bağış ayarla ve Organic Maps’in herkes için ücretsiz kalmasını sağla — reklam yok, izleme araçları yok, açık kaynak. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Ne sıklıkta? + once: Tek seferlik + monthly: Aylık + yearly: Yıllık + amount_label: Tutar + other_label: Başka bir tutar + currency_label: Para birimi + email_label: E-posta (önerilir) + email_why: Sana bir onay mesajı göndereceğiz, her ödeme öncesinde hatırlatma yapacağız ve tek tıklamayla iptal edebileceğin bir bağlantı sunacağız. Başka hiçbir şey yok — pazarlama yok. + email_warning: E-posta adresin olmadan ödeme hatırlatmaları veya iptal bağlantısı gönderemeyiz; iptal etmek için bizimle iletişime geçmen gerekir. + name_label: Ad (isteğe bağlı) + name_why: Böylece teşekkür e-postasında sana hitap edebiliriz. + submit: Güvenli ödemeye devam et + submit_once: "{amount} bağış yap" + submit_month: Aylık {amount} bağış yap + submit_year: Yıllık {amount} bağış yap + submit_loading: Güvenli ödeme sayfasına yönlendiriliyor… + secure_note: Ödeme işlemini ödeme sağlayıcımız olan Mollie üzerinden tamamlayacaksın. Kart bilgileri hiçbir zaman sunucularımıza ulaşmaz. + error_amount: Lütfen geçerli bir tutar gir. + error_amount_range: "{min} ile {max} arasında bir tutar gir." + other_ways: Bağış yapmanın diğer yolları (PayPal, banka havalesi, kripto para…) +--- + +Organic Maps, bağışların sayesinde herkes için ücretsizdir. Reklam yok. İzleme araçları yok. Açık kaynak. \ No newline at end of file diff --git a/content/donate/subscribe/index.uk.md b/content/donate/subscribe/index.uk.md new file mode 100644 index 000000000..5f37f830a --- /dev/null +++ b/content/donate/subscribe/index.uk.md @@ -0,0 +1,32 @@ +--- +title: Підтримайте Organic Maps +description: Налаштуйте щомісячний, щорічний або одноразовий внесок і допоможіть зберегти Organic Maps безкоштовним для всіх — без реклами, без трекерів, з відкритим кодом. +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: Як часто? + once: Одноразово + monthly: Щомісяця + yearly: Щорічно + amount_label: Сума + other_label: Інша сума + currency_label: Валюта + email_label: Електронна пошта (рекомендується) + email_why: Ми надішлемо підтвердження, нагадаємо вам перед кожним списанням коштів і надамо посилання для скасування одним кліком. І більше нічого — жодного маркетингу. + email_warning: Без адреси електронної пошти ми не зможемо надсилати нагадування про платежі або посилання для скасування — щоб скасувати, вам доведеться написати нам. + name_label: Ім’я (необов’язково) + name_why: Щоб ми могли звернутися до вас у листі з подякою. + submit: Перейти до безпечної оплати + submit_once: Пожертвувати {amount} + submit_month: Пожертвувати {amount} щомісяця + submit_year: Пожертвувати {amount} щорічно + submit_loading: Перенаправлення на сторінку безпечної оплати… + secure_note: Оплату ви завершите на Mollie — у нашого платіжного провайдера. Дані картки ніколи не потрапляють на наші сервери. + error_amount: Будь ласка, введіть коректну суму. + error_amount_range: Введіть суму в діапазоні від {min} до {max}. + other_ways: Інші способи пожертвувати (PayPal, банківський переказ, криптовалюта…) +--- + +Organic Maps є безкоштовним для всіх завдяки вашим пожертвам. Без реклами. Без трекерів. З відкритим кодом. \ No newline at end of file diff --git a/content/donate/subscribe/index.zh-Hans.md b/content/donate/subscribe/index.zh-Hans.md new file mode 100644 index 000000000..d3e01e1bf --- /dev/null +++ b/content/donate/subscribe/index.zh-Hans.md @@ -0,0 +1,32 @@ +--- +title: 支持 Organic Maps +description: 设置每月、每年或一次性捐款,让 Organic Maps 继续免费服务于所有人——无广告、无追踪器、开源。 +template: donate-subscribe.html +weight: 110 +extra: + preview_image: donate/donate.png + form: + interval_label: 多久一次? + once: 一次性 + monthly: 每月 + yearly: 每年 + amount_label: 金额 + other_label: 其他金额 + currency_label: 货币 + email_label: 电子邮件(推荐) + email_why: 我们会发送确认邮件,在每次扣款前提醒你,并提供一键取消链接。仅此而已——不做任何营销。 + email_warning: 如果没有电子邮件地址,我们就无法发送付款提醒或取消链接——你需要联系我们才能取消。 + name_label: 姓名(可选) + name_why: 这样我们才能在感谢邮件中称呼你。 + submit: 继续前往安全支付 + submit_once: 捐款 {amount} + submit_month: 每月捐款 {amount} + submit_year: 每年捐款 {amount} + submit_loading: 正在跳转至安全支付页面…… + secure_note: 你将在我们的支付服务提供商 Mollie 上完成支付。银行卡信息绝不会经过我们的服务器。 + error_amount: 请输入有效的金额。 + error_amount_range: 请输入 {min} 至 {max} 之间的金额。 + other_ways: 其他捐赠方式(PayPal、银行转账、加密货币等) +--- + +多亏了你的捐款,Organic Maps 对所有人免费开放。无广告。无追踪器。开源。 \ No newline at end of file diff --git a/sass/_donate_form.scss b/sass/_donate_form.scss new file mode 100644 index 000000000..ca2c67988 --- /dev/null +++ b/sass/_donate_form.scss @@ -0,0 +1,225 @@ +// Donation subscribe/manage form (/donate/subscribe/, /donate/manage/). +// Mobile-first, logical properties for RTL, dark-mode block at the bottom. + +// The brand greens. main.scss consumes them too (.thanks-card), which works because this +// partial is imported first. Interpolated as #{...} inside an `outline` shorthand: stylelint's +// value parser is plain CSS and rejects a bare SCSS variable there. +$donateAccent: #006c35; +$donateAccentDark: #4caf50; + +.donate-form-page { + max-width: 30rem; + margin-inline: auto; + + h1 { + font-size: 1.5rem; + } +} + +.donate-form-intro { + color: #555; +} + +.donate-form { + margin-block-start: 1rem; + + .donate-fieldset { + border: 0; + padding: 0; + margin: 0 0 1.1rem; + + legend { + font-weight: 600; + padding: 0; + margin-block-end: 0.4rem; + } + } + + .donate-custom-row { + display: flex; + align-items: center; + gap: 0.5rem; + flex-wrap: wrap; + margin-block: 0.8rem 0.2rem; + + label { + flex-basis: 100%; + font-weight: 600; + } + } + + input[type="text"], + input[type="email"], + select { + font-size: 1rem; + padding: 0.6rem 0.7rem; + border: 1px solid #bbb; + border-radius: 8px; + background: #fff; + color: inherit; + min-height: 2.75rem; + box-sizing: border-box; + } + + #amount-custom { + flex: 1 1 8rem; + } + + .donate-field { + margin-block: 1rem; + + label { + display: block; + font-weight: 600; + margin-block-end: 0.3rem; + } + + input { + width: 100%; + } + + small { + display: block; + margin-block-start: 0.3rem; + color: #666; + } + } + + .donate-pills { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + + input[type="radio"] { + position: absolute; + opacity: 0; + width: 0; + height: 0; + + + label { + display: inline-block; + min-width: 3.2rem; + padding: 0.6rem 1rem; + text-align: center; + border: 1px solid #bbb; + border-radius: 999px; + cursor: pointer; + user-select: none; + } + + &:checked + label { + background: $donateAccent; + border-color: $donateAccent; + color: #fff; + } + + &:focus-visible + label { + outline: 3px solid #{$donateAccent}; + outline-offset: 2px; + } + + &[hidden] + label, + + label[hidden] { + display: none; + } + } + } + + .donate-warning { + display: block; + margin-block-start: 0.4rem; + color: #a1440b; + } + + button[type="submit"] { + display: block; + width: 100%; + font-size: 1.1rem; + font-weight: 600; + padding: 0.9rem 1rem; + margin-block-start: 1.2rem; + background: $donateAccent; + color: #fff; + border: 0; + border-radius: 10px; + cursor: pointer; + + &:focus-visible { + outline: 3px solid #{$donateAccent}; + outline-offset: 2px; + } + + &:disabled { + opacity: 0.7; + cursor: progress; + } + } + + .donate-secure-note { + font-size: 0.85rem; + color: #666; + text-align: center; + } + + .donate-alt { + text-align: center; + } +} + +// Clipped rather than display:none — a honeypot that is not laid out is trivial for a bot to +// spot. Same pair as _language_selector.scss: clip for old browsers, clip-path for the rest. +.visually-hidden { + position: absolute !important; + width: 1px; + height: 1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); // stylelint-disable-line property-no-deprecated + clip-path: inset(50%); + white-space: nowrap; +} + +@media (prefers-color-scheme: dark) { + .donate-form-intro, + .donate-form .donate-field small, + .donate-form .donate-secure-note { + color: #999; + } + + .donate-form { + .donate-pills input[type="radio"] { + + label { + border-color: #444; + } + + &:checked + label { + background: $donateAccentDark; + border-color: $donateAccentDark; + color: #000; + } + + &:focus-visible + label { + outline-color: $donateAccentDark; + } + } + + input[type="text"], + input[type="email"], + select { + background: #1e1e1e; + border-color: #444; + } + + button[type="submit"] { + background: $donateAccentDark; + color: #000; + + &:focus-visible { + outline-color: $donateAccentDark; + } + } + + .donate-warning { + color: #e8a06a; + } + } +} diff --git a/sass/main.scss b/sass/main.scss index 930e669c1..803c8702d 100644 --- a/sass/main.scss +++ b/sass/main.scss @@ -1,5 +1,6 @@ @import "./language_selector"; @import "./top_menu"; +@import "./donate_form"; $darkBackgroundColor: #121212; $darkFontColor: #bbb; @@ -357,7 +358,7 @@ img.edit-github-icon { max-width: 640px; h1 { - color: #006c35; + color: $donateAccent; border-bottom: none; font-size: clamp(2rem, 5vw, 2.75rem); margin-top: 0; @@ -377,6 +378,6 @@ img.edit-github-icon { } .thanks-card h1 { - color: #4caf50; + color: $donateAccentDark; } } diff --git a/static/_headers b/static/_headers index 7c02bd6f3..c02c2045a 100644 --- a/static/_headers +++ b/static/_headers @@ -1,2 +1,39 @@ -https://*.pages.dev/* +# The production pages.dev alias duplicates the custom domain. Cloudflare adds noindex to +# preview deployments itself; this rule covers the production alias with one permitted splat. +https://:project.pages.dev/* X-Robots-Tag: noindex + +# Donation pages: lock down where forms can post and scripts can come from. +# Production host only: preview deployments reference production assets by absolute URL +# (get_url), which 'self' would block, leaving the preview unstyled and without the JS. +# 'unsafe-inline' covers the templates' small language/redirect scripts, JSON-LD, and existing +# inline styles; executable and visual resources otherwise stay same-origin. +# form-action: Chrome also applies it to the 303 after the POST, i.e. to Mollie's checkout +# host — hence the mollie.com wildcard rather than today's www.mollie.com. +# The paths stay narrow because /donate/* would cover /donate/ itself, whose donate_buttons +# shortcode posts to www.paypal.com, and this form-action would block that button. +# Cloudflare gives _headers no include mechanism and allows one wildcard per rule, and :lang +# cannot match zero segments — +# so the English and localized subscribe paths genuinely need two rules. +https://organicmaps.app/donate/subscribe/* + Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; manifest-src 'self'; connect-src https://donate-api.organicmaps.app; form-action 'self' https://donate-api.organicmaps.app https://*.mollie.com; base-uri 'none'; frame-ancestors 'none' + Referrer-Policy: same-origin + X-Content-Type-Options: nosniff + +https://organicmaps.app/:lang/donate/subscribe/* + Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; manifest-src 'self'; connect-src https://donate-api.organicmaps.app; form-action 'self' https://donate-api.organicmaps.app https://*.mollie.com; base-uri 'none'; frame-ancestors 'none' + Referrer-Policy: same-origin + X-Content-Type-Options: nosniff + +# manage never redirects to Mollie (it posts to /lost-link and gets HTML back), so its +# form-action deliberately omits the mollie.com wildcard the subscribe rules need. It needs +# the same two rules as subscribe for the same reason — :lang cannot match zero segments. +https://organicmaps.app/donate/manage/* + Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; manifest-src 'self'; connect-src https://donate-api.organicmaps.app; form-action 'self' https://donate-api.organicmaps.app; base-uri 'none'; frame-ancestors 'none' + Referrer-Policy: same-origin + X-Content-Type-Options: nosniff + +https://organicmaps.app/:lang/donate/manage/* + Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; manifest-src 'self'; connect-src https://donate-api.organicmaps.app; form-action 'self' https://donate-api.organicmaps.app; base-uri 'none'; frame-ancestors 'none' + Referrer-Policy: same-origin + X-Content-Type-Options: nosniff diff --git a/static/js/donate-subscribe.js b/static/js/donate-subscribe.js new file mode 100644 index 000000000..797895252 --- /dev/null +++ b/static/js/donate-subscribe.js @@ -0,0 +1,382 @@ +// Progressive enhancement for /donate/subscribe/. The form works without this file: +// plain POST to donate-api, which redirects to Mollie hosted checkout. +(function () { + 'use strict'; + + var form = document.getElementById('donate-form'); + if (!form) return; + + // URLSearchParams is unavailable in old Android browsers. + function queryParam(name) { + var query = window.location.search.substring(1).split('&'); + for (var i = 0; i < query.length; i++) { + var pair = query[i].split('='); + try { + if (decodeURIComponent(pair[0]) === name) return decodeURIComponent((pair[1] || '').replace(/\+/g, ' ')); + } catch (e) { + // Malformed percent-encoding: skip this parameter instead of aborting the enhancement. + } + } + return null; + } + + var pageLang = document.documentElement.lang || 'en'; + var currencySelect = document.getElementById('currency'); + var customInput = document.getElementById('amount-custom'); + var emailInput = document.getElementById('email'); + var emailWarning = document.getElementById('email-warning'); + var amountError = document.getElementById('amount-error'); + var submitButton = document.getElementById('donate-submit'); + var defaultSubmitLabel = submitButton.textContent; + var presetInputs = form.querySelectorAll('input[name="amount"]'); + var intervalInputs = form.querySelectorAll('input[name="interval"]'); + // The preset labels are static markup, so resolve them once instead of re-querying the form + // on every refresh (interval change, currency change, page load). + var presetLabels = []; + for (var i = 0; i < presetInputs.length; i++) { + presetLabels.push(form.querySelector('label[for="' + presetInputs[i].id + '"]')); + } + + // Preset amounts per interval, in EUR-equivalent units. Index 1 is the default. + var PRESETS = { once: [5, 10, 25, 50], month: [3, 5, 10], year: [25, 35, 70] }; + // Per-currency rules mirrored from donate-api config.ts (CURRENCIES): inclusive min/max in + // major units and the decimals Mollie accepts. `whole` marks a currency the donor may only + // enter in whole units — PayPal has no sub-unit for HUF or TWD, and Mollie rounds such an + // amount *up*, so a fraction would charge more than the form promised (TWD is PayPal-only, + // so there it is every donor). It is a separate flag from `decimals`, which stays 2 for + // both because that is what Mollie's `value` string carries. + // `factor` is a rough units-per-EUR that only scales the suggested presets — precision is + // irrelevant there, and it has no server counterpart. This is a convenience copy, never a + // second source of truth: donate-api validates every amount again, so drift here only makes + // the inline range message wrong. + var CURRENCIES = { + EUR: { factor: 1, min: 2, max: 10000, decimals: 2 }, + USD: { factor: 1, min: 2, max: 11000, decimals: 2 }, + GBP: { factor: 1, min: 2, max: 9000, decimals: 2 }, + CHF: { factor: 1, min: 2, max: 10000, decimals: 2 }, + AED: { factor: 4, min: 8, max: 40000, decimals: 2 }, + AUD: { factor: 1.5, min: 3, max: 17000, decimals: 2 }, + BRL: { factor: 6, min: 12, max: 60000, decimals: 2 }, + CAD: { factor: 1.5, min: 3, max: 15000, decimals: 2 }, + CZK: { factor: 25, min: 50, max: 250000, decimals: 2 }, + DKK: { factor: 7.5, min: 15, max: 75000, decimals: 2 }, + HKD: { factor: 8, min: 15, max: 85000, decimals: 2 }, + HUF: { factor: 400, min: 800, max: 4000000, decimals: 2, whole: true }, + ILS: { factor: 4, min: 8, max: 40000, decimals: 2 }, + ISK: { factor: 150, min: 300, max: 1500000, decimals: 0 }, + JPY: { factor: 150, min: 300, max: 1600000, decimals: 0 }, + MXN: { factor: 20, min: 40, max: 200000, decimals: 2 }, + MYR: { factor: 5, min: 10, max: 50000, decimals: 2 }, + NOK: { factor: 11, min: 20, max: 115000, decimals: 2 }, + NZD: { factor: 2, min: 3, max: 18000, decimals: 2 }, + PHP: { factor: 60, min: 120, max: 600000, decimals: 2 }, + PLN: { factor: 4, min: 8, max: 45000, decimals: 2 }, + RON: { factor: 5, min: 10, max: 50000, decimals: 2 }, + SEK: { factor: 11, min: 20, max: 115000, decimals: 2 }, + SGD: { factor: 1.5, min: 3, max: 15000, decimals: 2 }, + THB: { factor: 40, min: 75, max: 380000, decimals: 2 }, + TWD: { factor: 35, min: 70, max: 340000, decimals: 2, whole: true }, + ZAR: { factor: 20, min: 40, max: 200000, decimals: 2 } + }; + // Fallback formatting for engines without Intl.NumberFormat. '#' marks where the amount + // goes, so placement belongs to the currency rather than to a symbol several currencies + // share ('$' for USD/CAD/AUD/NZD, 'kr' for DKK/SEK/NOK/ISK). + var SYMBOLS = { + EUR: '€#', USD: '$#', GBP: '£#', PLN: '# zł', CAD: '$#', AUD: '$#', NZD: '$#', JPY: '¥#', + SGD: 'S$#', CZK: '# Kč', DKK: '# kr', SEK: '# kr', NOK: '# kr', ISK: '# kr', HUF: '# Ft', + RON: '# lei', ILS: '₪#', AED: '# AED', HKD: 'HK$#', MXN: 'MX$#', MYR: 'RM#', PHP: '₱#', + THB: '฿#', TWD: 'NT$#', ZAR: 'R#', BRL: 'R$#', CHF: '# CHF' + }; + // Default currency: ?currency=, else the region of the browser's primary language + // (en-US, de-CH, pt-BR, …), else what the page language implies, else EUR. + // An ISO 4217 code is its ISO 3166 region plus one letter, so this derives from CURRENCIES + // and a new currency gets region detection for free. EUR belongs to no single region; + // Liechtenstein is the one country that uses another's currency here. + var REGION_CURRENCY = { LI: 'CHF' }; + for (var cur in CURRENCIES) if (cur !== 'EUR') REGION_CURRENCY[cur.slice(0, 2)] = cur; + // Only where the language names exactly one country, and that country's currency is one + // Mollie takes. Deliberately absent: ar/de/en/es/fr/nl/pt span several, and the currencies + // uk/ru/tr/hi/id/fa-IR would imply are not on the list at all. + var LANG_CURRENCY = { af: 'ZAR', cs: 'CZK', cy: 'GBP', he: 'ILS', hu: 'HUF', ja: 'JPY', pl: 'PLN', sv: 'SEK' }; + + // Mirrors donate-api requiresWholeUnits(): zero-decimal currencies, plus the two PayPal + // rounds up. + function wholeUnitsOnly(info) { + return info.decimals === 0 || info.whole === true; + } + + function selectedInterval() { + for (var i = 0; i < intervalInputs.length; i++) if (intervalInputs[i].checked) return intervalInputs[i].value; + return 'once'; + } + + // The custom field wins when it is filled (same precedence as donate-api), so nothing else + // may stay selected. + function uncheckPresets() { + for (var i = 0; i < presetInputs.length; i++) presetInputs[i].checked = false; + } + + function checkedPreset() { + for (var i = 0; i < presetInputs.length; i++) if (presetInputs[i].checked) return i; + return -1; + } + + // The amount the form would submit: the custom field wins when filled (same precedence as + // donate-api), otherwise the checked preset. May be invalid text — see parseAmount(). + function selectedAmount() { + var custom = customInput.value.trim(); + if (custom !== '') return custom; + var i = checkedPreset(); + return i === -1 ? '' : presetInputs[i].value; + } + + // First code point of each digit block a donor of this site's languages might type: + // Arabic-Indic (ar), Extended Arabic-Indic (fa-IR), Devanagari (hi, mr), Telugu, Malayalam. + var DIGIT_ZEROS = [0x0660, 0x06f0, 0x0966, 0x0c66, 0x0d66]; + + // Rewrites any of those digits as 0-9. Intl formats the presets in the donor's own digits — + // fa-IR shows ۱۰, mr shows १० — so without this the figure on the button is one the custom + // field would reject. Mirrors latinizeDigits() in donate-api config.ts: the two must accept + // the same text, so change them together. All five blocks are BMP, hence charCodeAt. + function latinizeDigits(text) { + var out = ''; + for (var i = 0; i < text.length; i++) { + var cp = text.charCodeAt(i); + var digit = null; + for (var j = 0; j < DIGIT_ZEROS.length; j++) { + if (cp >= DIGIT_ZEROS[j] && cp <= DIGIT_ZEROS[j] + 9) { + digit = String(cp - DIGIT_ZEROS[j]); + break; + } + } + out += digit === null ? text.charAt(i) : digit; + } + return out; + } + + // Mirrors donate-api parseAmount(): "4.99", "4,99", "10", the same in the donor's own + // digits; NaN for anything else. U+066B is the Arabic decimal separator, the ٫ in ۷٫۵۰. + // Group separators stay rejected in every script, exactly as on the server. + function parseAmount(text) { + var cleaned = latinizeDigits(String(text).trim()).replace('\u066B', '.').replace(',', '.'); + return /^\d{1,7}(\.\d{1,2})?$/.test(cleaned) ? parseFloat(cleaned) : NaN; + } + + // Building an Intl.NumberFormat costs far more than formatting with one, and every visible + // preset plus the submit label is reformatted on each refresh — so keep one formatter per + // (currency, fraction digits). A cached null means this engine rejected that pair: the + // fallback below handles it and we never retry the constructor. + var formatters = {}; + + function formatAmount(num, currency) { + var whole = num % 1 === 0; + if (window.Intl && typeof window.Intl.NumberFormat === 'function') { + var key = currency + (whole ? '|0' : '|2'); + var formatter = formatters[key]; + if (formatter === undefined) { + try { + formatter = new window.Intl.NumberFormat(pageLang, { + style: 'currency', + currency: currency, + minimumFractionDigits: whole ? 0 : 2, + maximumFractionDigits: 2 + }); + } catch (e) { + formatter = null; // Locale or currency unknown to this engine. + } + formatters[key] = formatter; + } + if (formatter) return formatter.format(num); + } + var text = whole ? String(num) : num.toFixed(2); + return (SYMBOLS[currency] || '# ' + currency).replace('#', text); + } + + function scalePreset(base, currency) { + var factor = (CURRENCIES[currency] || CURRENCIES.EUR).factor; + var value = base * factor; + if (factor === 1) return value; + // Snap scaled presets to friendly figures. + if (value >= 1000) return Math.round(value / 100) * 100; + if (value >= 100) return Math.round(value / 10) * 10; + return Math.round(value); + } + + function refreshPresets() { + var presets = PRESETS[selectedInterval()]; + var currency = currencySelect.value; + var keep = checkedPreset(); + for (var i = 0; i < presetInputs.length; i++) { + var input = presetInputs[i]; + var label = presetLabels[i]; + var visible = i < presets.length; + input.hidden = !visible; + if (label) label.hidden = !visible; + if (visible) { + var value = scalePreset(presets[i], currency); + input.value = String(value); + if (label) label.textContent = formatAmount(value, currency); + } else { + input.checked = false; + } + } + // Keep the donor's pick across currency/interval changes; otherwise the middle preset. + if (customInput.value.trim() === '') { + presetInputs[keep >= 0 && keep < presets.length ? keep : 1].checked = true; + } + } + + function refreshPlaceholder() { + // scalePreset leaves 7.5 alone for the 1:1 currencies and snaps it to an integer elsewhere. + var example = scalePreset(7.5, currencySelect.value); + customInput.placeholder = example % 1 === 0 ? String(example) : example.toFixed(2); + // Offer the keyboard that matches what will be accepted: no decimal separator where a + // fraction would only be rejected. + var info = CURRENCIES[currencySelect.value] || CURRENCIES.EUR; + customInput.setAttribute('inputmode', wholeUnitsOnly(info) ? 'numeric' : 'decimal'); + } + + function refreshSubmitLabel() { + var num = parseAmount(selectedAmount()); + var pattern = submitButton.getAttribute('data-label-' + selectedInterval()); + submitButton.textContent = + isNaN(num) || !pattern ? defaultSubmitLabel : pattern.replace('{amount}', formatAmount(num, currencySelect.value)); + } + + function refreshEmailWarning() { + var show = selectedInterval() !== 'once' && emailInput.value.trim() === ''; + emailWarning.hidden = !show; + // Hidden elements referenced by aria-describedby are still read out, so only reference + // the warning while it is shown. + emailInput.setAttribute('aria-describedby', show ? 'email-why email-warning' : 'email-why'); + } + + function showAmountError(message) { + amountError.textContent = message; + amountError.hidden = false; + } + + // Emptied, not merely hidden: #amount-custom describes itself with this element, and a hidden + // element referenced by aria-describedby is still read out as the field's description — so a + // message left behind would follow the field around for the rest of the visit. + function hideAmountError() { + amountError.textContent = ''; + amountError.hidden = true; + } + + // Client-side mirror of donate-api's amount validation, so an out-of-range amount is reported + // inline instead of on the API's error page (which loses the form). + function validateAmount() { + var currency = currencySelect.value; + var info = CURRENCIES[currency] || CURRENCIES.EUR; + var num = parseAmount(selectedAmount()); + var invalid = amountError.getAttribute('data-invalid') || ''; + if (isNaN(num) || (wholeUnitsOnly(info) && num % 1 !== 0)) { + showAmountError(invalid); + return false; + } + if (num < info.min || num > info.max) { + showAmountError( + (amountError.getAttribute('data-range') || invalid) + .replace('{min}', formatAmount(info.min, currency)) + .replace('{max}', formatAmount(info.max, currency)) + ); + return false; + } + hideAmountError(); + return true; + } + + function refresh() { + refreshPresets(); + refreshPlaceholder(); + refreshSubmitLabel(); + refreshEmailWarning(); + } + + function hasCurrency(code) { + for (var i = 0; i < currencySelect.options.length; i++) if (currencySelect.options[i].value === code) return true; + return false; + } + + function regionCurrency() { + // Primary language only: the region of a secondary language says little about the donor. + var parts = String(navigator.language || '').split(/[-_]/); + // The region may follow a script subtag (zh-Hant-TW). + for (var i = 1; i < parts.length; i++) { + var code = parts[i].toUpperCase(); + if (code.length === 2 && REGION_CURRENCY[code]) return REGION_CURRENCY[code]; + } + return null; + } + + // Prefill from query parameters (the app's place-page buttons link with these). + var qInterval = queryParam('interval'); + // Public links may use the human-readable names; the form and API use month/year. + if (qInterval === 'monthly') qInterval = 'month'; + if (qInterval === 'yearly') qInterval = 'year'; + if (qInterval === 'month' || qInterval === 'year' || qInterval === 'once') { + for (var i = 0; i < intervalInputs.length; i++) intervalInputs[i].checked = intervalInputs[i].value === qInterval; + } + var qCurrency = (queryParam('currency') || '').toUpperCase(); + var defaultCurrency = hasCurrency(qCurrency) ? qCurrency : regionCurrency() || LANG_CURRENCY[pageLang] || 'EUR'; + // REGION_CURRENCY follows CURRENCIES, which mirrors the server, but the + + + + +{% endblock content %} diff --git a/templates/donate-subscribe.html b/templates/donate-subscribe.html new file mode 100644 index 000000000..d3105b503 --- /dev/null +++ b/templates/donate-subscribe.html @@ -0,0 +1,110 @@ +{% extends 'base.html' %} + +{% block content %} +{% set f = resource.extra.form %} +{# Same translated-page lookup as top_menu.html / bottom_menu.html, falling back to English. #} +{% set donate = get_page(path="donate/index.md") %} +{% set translated = [t for t in donate.translations if t.lang == lang] | first %} +{% if translated %}{% set donate = translated %}{% endif %} + + +{% endblock content %} diff --git a/tools/translate_review.py b/tools/translate_review.py index 6eb24f0af..4faa21a90 100755 --- a/tools/translate_review.py +++ b/tools/translate_review.py @@ -55,6 +55,11 @@ def build_prompt(src: str, out: str, lang: str) -> str: "target, a Tera expression/component (`{{ ... }}`), a `code span`, " "or a contributor name.", "2. Every `_(Name)_` attribution stays at the END of its bullet.", + "2b. A single-brace placeholder — `{amount}`, `{min}`, `{max}` — is " + "substituted at runtime by literal string replace. Reproduce it " + "character for character: never translate, inflect, space out or drop " + "one, and never wrap it in quotation marks. Word order around it is " + "free.", "3. Keep these product names in Latin script, unquoted: Organic Maps, " "OpenStreetMap, ID Editor, Android, iOS, Google Play, App Store, " "F-Droid.",