diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 93a648ebe..cfd73b98d 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -55,6 +55,15 @@ Zola distinguishes resource types: Access with `get_page(path="donate/index.md")` or `get_section(path="news/_index.md")`. +### Donation Checkout + +The main donation page and focused `/donate/subscribe/` landing page include +`templates/_donate_form.html`. Both take localized labels from the subscribe +page's `extra.form`. The main page's Markdown contains `` +and `` exactly once, in that order; its template rejects +missing, duplicate or reordered markers. JavaScript enables currency selection +and scales presets together; without it, the form submits EUR consistently. + ### Translation Function Use `{{ trans(key='faq-menu-title', lang=lang) }}` to get localized strings from `config.toml` `[translations]` sections. @@ -67,6 +76,7 @@ Use `{{ trans(key='faq-menu-title', lang=lang) }}` to get localized strings from zola serve # Live preview at http://127.0.0.1:1111 zola build # Generate static site in public/ npm test # Offline translation, hook and Telegram regressions +npm run test:browser # Donation checkout regressions against public/ (build first) npm run format # Format MD + SCSS (stylelint + prettier + js-beautify) npm run upgrade # Update npm dependencies ``` @@ -75,6 +85,12 @@ Install Python dependencies from `tools/requirements-check.txt` for translation checks, or `tools/requirements-telegram.txt` (which includes the check dependencies) for Telegram publishing and the complete test suite. +For the browser tests, install Node dependencies with `npm ci`, then install +Chromium once with `npx playwright install chromium`. Run `zola build` before +`npm run test:browser`. The suite reads the rendered site and declared security +headers, mocks payment requests, and uses Zola to check invalid layout markers. +Set `ZOLA_BIN` when the Zola executable is not on `PATH`. + ### Where the tooling lives Every helper script is in `tools/`, and they are **run from the repository @@ -138,7 +154,7 @@ hook, the test suite — adds `tools/` to `sys.path` explicitly. 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 + - `translate_md.py` does not touch `extra:`, so all `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. @@ -160,7 +176,7 @@ hook, the test suite — adds `tools/` to `sys.path` explicitly. - Modular imports: `sass/_language_selector.scss`, `sass/_top_menu.scss` - Dark mode: `@media (prefers-color-scheme: dark)` blocks - RTL support: `dir="rtl"` on `` for RTL languages -- Responsive design: Mobile-first, uses flexbox for layout +- Responsive design: Flexbox and grid layouts with narrow-screen overrides ### Static Assets @@ -224,7 +240,13 @@ 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 (`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. +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 `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. + +Complete code blocks, comments and Tera expressions are protected before +segmentation, and formatting that crosses a soft line break stays in one valid +XML payload. Cleanup repairs prose and link labels while code, URLs, anchors +and component arguments remain protected. Link localization applies only to +Markdown link targets so examples inside code retain their literal contents. Two behaviours worth knowing, both established by measurement: @@ -285,16 +307,11 @@ python3 tools/translate_check.py content/news/2026-08-04/630/ # whole folder python3 tools/translate_check.py index.md index.ar.md ar # one file ``` -ERROR blocks publication — structural mismatch against the source (lines, bullets, headings, links, attributions, Tera expressions/components), leftover ``/`` tags, a link that lost its opening `[`, an attribution moved out of its bullet, a lost brand, or a word spliced from two alphabets. Warnings cover polish: register, straight quotes, `...`, quoted brands, and suffixes stranded outside a link. - -The Ukrainian donation page intentionally omits the RUB payment reference. It -declares that exact omission with `extra.translation_omits_refs`; the checker -rejects that field for every other language, reference, or page, and rejects it -once the reference is no longer missing. +ERROR blocks publication — structural mismatch against the source (lines, bullets, headings, links, attributions, Tera expressions/components), leftover ``/`` tags, a link that lost its opening `[`, an attribution moved out of its bullet, a lost brand, or a word spliced from two alphabets. Warnings cover polish: register in the body and reader-visible frontmatter, straight quotes, `...`, quoted brands, and suffixes stranded outside a link. A frontmatter string that is genuinely the same word in both languages — -Dutch and Italian "Privacy", German "Name (optional)" — declares itself the -same way, with `extra.translation_keeps_source: ["extra.menu_title"]`, pasting +Dutch and Italian "Privacy", German "Name (optional)" — declares it explicitly +with `extra.translation_keeps_source: ["extra.menu_title"]`, pasting the path out of the warning. It is verified rather than obeyed: naming a field the English source lacks, or one that is no longer identical, is an ERROR, so the declaration cannot outlive the situation it describes. Reach for it only diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 146b24edd..7b9201154 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -9,6 +9,7 @@ on: jobs: check: runs-on: ubuntu-latest + timeout-minutes: 10 environment: production name: Check Zola build steps: @@ -21,6 +22,21 @@ jobs: tar -zxvf zola.tar.gz ./zola build + - uses: actions/setup-node@v6 + with: + node-version: "24" + cache: npm + + - name: Install browser test dependencies + run: | + npm ci + npx playwright install --with-deps chromium + + - name: Donation checkout browser regressions + env: + ZOLA_BIN: ./zola + run: npm run test:browser + markdown: runs-on: ubuntu-latest name: Check markdown and translations diff --git a/content/donate/index.af.md b/content/donate/index.af.md index 027c61daa..dac1fbcfb 100644 --- a/content/donate/index.af.md +++ b/content/donate/index.af.md @@ -1,72 +1,41 @@ --- -title: Skenk om die ontwikkeling van Organic Maps te ondersteun -description: Jou geld betaal vir alle projekverwante uitgawes en motiveer ons om Organic Maps te verbeter. +template: donate.html +title: "Hou Organic Maps gratis vir almal" +description: "Jou donasie betaal vir kaartopdaterings, regstellings en onafhanklike ontwikkeling. Ondersteun Organic Maps met 'n maandelikse, jaarlikse of eenmalige donasie." weight: 10 extra: menu_title: Skenk preview_image: donate/donate.png + bank_transfer_title: "Bankoorplasing" + crypto_title: "Kripto" --- -Organic Maps is _gratis vir almal_ danksy jou **[skenkings][stripe]** in **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +Jou donasie betaal vir kaartopdaterings, regstellings en ontwikkeling. Help om Organic Maps vir almal gratis te hou. -- Geen advertensies -- Geen opspoorders -- Geen registrasie -- Geen stootkennisgewings -- Oopbron +**Geen advertensies. Geen opsporing. Oopbron.** -Klik op jou voorkeur betaalmetode-ikoon hieronder: + -{{ }} +## Wat jou skenking ondersteun -## Hoekom skenk aan Organic Maps? +- **Vars vanlynkaarte.** Help om gereelde kaartopdaterings wêreldwyd te lewer. +- **’n Beter app.** Ondersteun foutregstellings, navigasieverbeterings en nuwe funksies. +- **Onafhanklike ontwikkeling.** Hou Organic Maps gratis en oop vir almal. -1. Ons doel is om 'n privaatheid-gefokusde, vinnige en maklike alternatief vir Google Maps en Apple Maps te bied. -2. Om openbare kaartdata vir die talle webwerwe, apps en platforms wat OpenStreetMap gebruik te verbeter, en meer mense te betrek om kaartinligting by te dra, is ons ander doel. -3. Ons is afhanklik van jou skenkings om Organic Maps oop en gratis vir almal te hou. - En vry van advertensies. -4. Ons is lief vir wat ons doen, en ons is lief vir ons gebruikers ❤️. +Regelmatige skenkings help ons om langtermynverbeterings te beplan. Eenmalige skenkings word ook waardeer. -## Hoekom het 'n gratis projek geld nodig? + -1. In 2023 het Organic Maps sy eerste miljoen gebruikers gekry. - Ons bedieners verskaf gratis, vinnige en gereelde kaartopdaterings wêreldwyd. -2. Gebruikerondersteuning, foutoplossing en die publisering van kwaliteit app-opdaterings is ons hoogste prioriteite. - Daar is [~2000 foutverslae en kenmerkversoeke op GitHub][github issues], en hierdie getal groei daagliks. - AppStore, Google Play, en ondersteunings-e-posse is oorstroom met kommentaar en foute. Ons wil 'n hoë kwaliteit produk lewer. -3. Met genoeg geld kan nuwe kenmerke ontwikkel word. 'n Paar voorbeelde: - - Rugsteun en sinkroniseer boekmerke en roetes - - GPS-roete-opnemer met GPX-uitvoer - - Satellietbeelde - - Openbare vervoer - - Verkeers- en ongelukverslaggewing - - Foto's en resensies - - Kaartstyle vir verskillende aktiwiteite - - Heuwelskadu en 3D-terrein - - Meer gevorderde OpenStreetMap-redigeerder - - Beter vanlyn adressoektog, roetering en navigasie - - … en [baie ander][github issues] kenmerke wat jy wil hê en van hou +## Ander maniere om te skenk {#other-ways} -## Hoe om te skenk? +Kies 'n betaalroete wat vir jou werk. -Klik op jou voorkeur betaalmetode-ikoon hieronder: +{{ }} -{{ }} +{{ }} -Herhalende skenkings is die beste manier om 'n relatief stabiele inkomste vir die projek te verseker en ons te motiveer vir langtermyn take en doelwitte. Eenmalige skenkings word ook waardeer. +{{ }} -### Bankoorplasing +## Kan jy ons op enige ander manier help? -{{ }} - -### Kripto - -Oorweeg asseblief om jaarliks te skenk om totale fooie te verminder. - -{{ }} - -## Kan jy op enige ander manier help? - -Ja! Daar is baie maniere om Organic Maps te ondersteun. Sien asseblief die [Dra by](@/contribute/index.af.md) bladsy vir meer besonderhede. - -{{ }} +Ja! Daar is baie maniere om Organic Maps te ondersteun. Sien die [Bydraepagina](@/contribute/index.af.md) vir meer besonderhede. diff --git a/content/donate/index.ar.md b/content/donate/index.ar.md index d9f7efdbc..1429002c3 100644 --- a/content/donate/index.ar.md +++ b/content/donate/index.ar.md @@ -1,72 +1,41 @@ --- -title: تبرع لدعم تطوير Organic Maps -description: تساهم أموالك في تغطية جميع نفقات المشروع وتحفزنا على تحسين Organic Maps. +template: donate.html +title: "حافظوا على مجانية Organic Maps للجميع" +description: "تُخصص تبرعاتكم لتمويل تحديثات الخرائط وإصلاحاتها وأعمال التطوير المستقلة. ادعموا Organic Maps بتبرع شهري أو سنوي أو لمرة واحدة." weight: 10 extra: menu_title: تبرع preview_image: donate/donate.png + bank_transfer_title: "التحويل البنكي" + crypto_title: "العملات الرقمية" --- -تطبيق Organic Maps _مجاني للجميع_ بفضل **[تبرعاتكم][stripe]** بعملات **[اليورو][stripe_eur]، [الدولار][stripe_usd]، [الجنيه الإسترليني][stripe_GBP]، [الفرنك السويسري][stripe_chf]، [الزلوتي البولندي][stripe_pln]، [الروبل الروسي][stripe_rub]**: +تُستخدم تبرعاتكم في تمويل تحديثات الخرائط وإصلاحها وتطويرها. ساعدوا في الحفاظ على Organic Maps مجانيًا للجميع. -- بدون إعلانات -- بدون متعقبات -- بدون تسجيل -- بدون إشعارات دفع -- مفتوح المصدر +**بدون إعلانات. بدون أدوات تتبع. مفتوح المصدر.** -اضغط على أيقونة طريقة الدفع المفضلة أدناه: + -{{ }} +## ما الذي يدعمه تبرعك؟ -## لماذا تتبرع لـ Organic Maps؟ +- **خرائط حديثة دون اتصال.** ساعد في توفير تحديثات متكررة للخرائط حول العالم. +- **تطبيق أفضل.** ادعم إصلاح الأخطاء وتحسين الملاحة وإضافة ميزات جديدة. +- **تطوير مستقل.** ساعد في إبقاء Organic Maps مجانيًا ومفتوحًا للجميع. -1. هدفنا هو توفير بديل يركز على الخصوصية وسريع وسهل الاستخدام لـ Google Maps وApple Maps. -2. تحسين بيانات الخرائط العامة للعديد من المواقع والتطبيقات والمنصات التي تستخدم OpenStreetMap، وجذب المزيد من الأشخاص للمساهمة في معلومات الخرائط هو هدف آخر لنا. -3. نعتمد على تبرعاتكم للحفاظ على Organic Maps مفتوحًا ومجانيًا للجميع. - وخاليًا من الإعلانات. -4. نحن نحب ما نقوم به ونحب مستخدمينا ❤️. +تساعدنا التبرعات المنتظمة على التخطيط للتحسينات على المدى الطويل. ونحن نقدر أيضًا التبرعات لمرة واحدة. -## لماذا يحتاج المشروع المجاني إلى المال؟ + -1. في عام 2023، وصل Organic Maps إلى أول مليون مستخدم. - توفر خوادمنا تحديثات خرائط مجانية وسريعة ومتكررة حول العالم. -2. دعم المستخدمين، إصلاح الأخطاء ونشر تحديثات تطبيق عالية الجودة هي أولوياتنا القصوى. - هناك [~2000 تقرير أخطاء وطلبات ميزات على GitHub][github issues]، وهذا العدد يزداد يوميًا. - متجر التطبيقات، Google Play، ورسائل الدعم مليئة بالتعليقات والأخطاء. نريد تقديم منتج عالي الجودة. -3. مع توفر المال الكافي، يمكن تطوير ميزات جديدة. منها على سبيل المثال: - - نسخ احتياطي ومزامنة العلامات والمسارات - - مسجل مسارات GPS مع تصدير GPX - - صور الأقمار الصناعية - - النقل العام - - الإبلاغ عن الحوادث وحركة المرور - - الصور والمراجعات - - أنماط خرائط للأنشطة المختلفة - - تظليل التضاريس وثلاثي الأبعاد - - محرر OpenStreetMap أكثر تقدمًا - - بحث عناوين غير متصل وتحسين التوجيه والملاحة - - … و[العديد من الميزات الأخرى][github issues] التي تريدونها وتحبونها +## طرق أخرى للتبرع {#other-ways} -## كيف تتبرع؟ +اختر طريقة الدفع التي تناسبك. -اضغط على أيقونة طريقة الدفع المفضلة أدناه: +{{ }} -{{ }} +{{ }} -التبرعات المتكررة هي أفضل طريقة لضمان دخل مستقر نسبيًا للمشروع وتحفيزنا على المهام والأهداف طويلة الأمد. التبرعات لمرة واحدة أيضًا محل تقدير كبير. +{{ }} -### التحويل البنكي +## هل يمكنك مساعدتنا بأي طريقة أخرى؟ -{{ }} - -### العملات الرقمية - -يرجى التفكير في التبرع سنويًا لتقليل إجمالي الرسوم. - -{{ }} - -## هل يمكنك المساعدة بطرق أخرى؟ - -نعم! هناك العديد من الطرق لدعم Organic Maps. يرجى زيارة صفحة [المساهمة](@/contribute/index.ar.md) لمزيد من التفاصيل. - -{{ }} +نعم! هناك طرق عديدة لدعم Organic Maps. راجع صفحة [المساهمة](@/contribute/index.ar.md) لمزيد من التفاصيل. diff --git a/content/donate/index.ca.md b/content/donate/index.ca.md index 0d36b626d..325190442 100644 --- a/content/donate/index.ca.md +++ b/content/donate/index.ca.md @@ -1,68 +1,41 @@ --- -description: "Els teus diners paguen totes les despeses relacionades amb el projecte i ens motiven a millorar l’Organic Maps." +template: donate.html +description: "La teva donació finança les actualitzacions dels mapes, les correccions i el desenvolupament independent. Dona suport a Organic Maps amb una donació mensual, anual o puntual." extra: menu_title: "Fes una donació" preview_image: donate/donate.png -title: "Dona per a ajudar al desenvolupament de l'Organic Maps" + bank_transfer_title: "Transferència bancària" + crypto_title: "Criptomonedes" +title: "Mantén Organic Maps gratuït per a tothom" weight: 10 --- -L'Organic Maps és _gratis per a tothom_ gràcies a les teves **[donacions][stripe]** en **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]**: +La teva donació finança les actualitzacions dels mapes, les correccions i el desenvolupament. Ajuda a mantenir Organic Maps gratuït per a tothom. -- Sense anuncis -- Sense rastrejadors -- Sense registre -- Notificacions emergents -- Codi obert +**Sense anuncis. Sense rastrejadors. Codi obert.** -Fes clic a la icona de pagament preferit: + -{{ }} +## Què fa possible la teva donació -## Per què fer donatius a l’Organic Maps? +- **Mapes fora de línia actualitzats.** Ajuda a oferir actualitzacions freqüents dels mapes arreu del món. +- **Una aplicació millor.** Dona suport a la correcció d’errors, les millores de navegació i les noves funcions. +- **Desenvolupament independent.** Ajuda a mantenir Organic Maps gratuït i obert per a tothom. -1. El nostre objectiu és oferir una alternativa a Google Maps i Apple Maps centrada en la privacitat, ràpida i fàcil d'utilitzar. -2. Un altre dels nostres objectius és millorar les dades cartogràfiques públiques per als nombrosos llocs web, aplicacions i plataformes que utilitzen OpenStreetMap, i implicar més gent a contribuir amb informació cartogràfica. -3. Depenem dels teus donatius per a continuar amb la nostra missió de mantenir l'Organic Maps obert i gratuït. I lliure d'anuncis. -4. Ens encanta el que fem i estimem els nostres usuaris ❤️. +Les donacions periòdiques ens ajuden a planificar millores a llarg termini. També s'agraeixen les donacions puntuals. -## Per què un projecte gratuït necessita diners? + -1. El 2023, l'Organic Maps va assolir el seu primer milió d'usuaris. Els nostres servidors proporcionen actualitzacions de mapes gratuïtes, ràpides i freqüents arreu del món. -2. L'assistència als usuaris, correcció d'errors i millora d'estabilitat de l'aplicació són les nostres prioritats principals. Hi ha més de [2000 informes al GitHub][github issues] i, aquest número creix cada dia. L'AppStore, Google Play i els correus d'atenció estan inundats amb comentaris i informes. Volem lliurar un producte de qualitat. -3. Amb suficients diners, poden desenvolupar-se més ràpidament prestacions noves, com ara: - - Còpia de seguretat i sincronització de marcadors i recorreguts - - Gravadora GPS amb compatibilitat per a GPX - - Imatges satel·litals - - Transport públic - - Informació sobre trànsit i accidents - - Fotos i ressenyes - - Millors estils cartogràfics per a diferents activitats - - Ombreig de pujols i terreny 3D - - Editor OpenStreetMap més avançat - - Millor cerca de direccions sense connexió, encaminament i navegació - - … i [moltes altres][github issues] funcionalitats que vulguis +## Altres maneres de donar {#other-ways} -## Com donar? +Tria el mètode de pagament que et vagi millor. -Fes clic a la icona de pagament preferit: +{{ }} -{{ }} +{{ }} -Les donacions recurrents són la millor manera d'assegurar un ingrés periòdic per al projecte i ens motiva per a tasques i objectius a llarg termini. Però també pots fer donació una vegada. +{{ }} -### Transferència bancària +## Ens pots ajudar d'alguna altra manera? -{{ }} - -### Criptomonedes - -Si us plau, considera fer donacions anuals per a reduir les quotes totals. - -{{ }} - -## Vols ajudar-nos de cap altra forma? - -Perfecte! Hi ha diverses maneres d'ajudar a l'Organic Maps. Consulta la pàgina [Suport](@/contribute/index.ca.md) per a més informació. - -{{ }} +Sí! Hi ha moltes maneres de donar suport a Organic Maps. Consulta la pàgina [Contribueix](@/contribute/index.ca.md) per a més detalls. diff --git a/content/donate/index.cs.md b/content/donate/index.cs.md index ac7e88635..d4a8f2e3d 100644 --- a/content/donate/index.cs.md +++ b/content/donate/index.cs.md @@ -1,68 +1,41 @@ --- -description: "Z vašich peněz se hradí všechny výdaje spojené s projektem a motivují nás ke zlepšování Organic Maps." +template: donate.html +description: "Váš příspěvek slouží k financování aktualizací map, oprav a nezávislého vývoje. Podpořte Organic Maps měsíčním, ročním nebo jednorázovým příspěvkem." extra: menu_title: Přispějte preview_image: donate/donate.png -title: "Přispějte na podporu vývoje Organic Maps" + bank_transfer_title: "Bankovním převodem" + crypto_title: "Kryptoměna" +title: "Ať jsou Organic Maps i nadále zdarma pro všechny" weight: 10 --- -Aplikace Organic Maps je pro všechny _zdarma_ díky vašim **[darům][stripe]** v měnách **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]**: +Váš příspěvek přispívá k financování aktualizací map, oprav a dalšího vývoje. Pomozte nám zajistit, aby aplikace Organic Maps zůstala pro všechny zdarma. -- Bez reklam -- Žádné sledovací zařízení -- Žádná registrace -- Žádná vyskakovací oznámení -- Open source +**Žádné reklamy. Žádné sledovací nástroje. Otevřený zdrojový kód.** -Klikněte na ikonu preferovaného způsobu platby níže: + -{{ }} +## Co váš příspěvek podporuje -## Proč darovat Organic Maps? +- **Aktuální offline mapy.** Pomozte zajistit časté aktualizace map po celém světě. +- **Lepší aplikace.** Podpořte opravy chyb, vylepšení navigace a nové funkce. +- **Nezávislý vývoj.** Pomozte udržet Organic Maps bezplatné a otevřené pro všechny. -1. Naším cílem je poskytovat rychlou alternativu k Mapám Google a Apple Maps, která se jednoduše používá a bere ohled na vaše soukromí. -2. Naším druhým cílem je vylepšování mapových dat pro velké množství webů, aplikací a platform, které používají službu OpenStreetMap, a zapojit více lidí do přispívání informací do map. -3. Při plnění našeho poslání udržovat Organic Maps otevřené a svobodné spoléháme na vaše dary. A bez reklam. -4. Máme rádi to, co děláme, a máme rádi naše uživatele ❤️. +Pravidelné příspěvky nám pomáhají plánovat dlouhodobá vylepšení. Jednorázové příspěvky jsou rovněž vítány. -## Proč potřebuje bezplatný projekt peníze? + -1. V roce 2023 získaly Organic Maps první milion uživatelů. Naše servery poskytují bezplatné, rychlé a časté aktualizace map po celém světě. -2. Podpora uživatelů, oprava chyb a zlepšování stability aplikace jsou našimi hlavními prioritami. Na GitHubu je [2000+ issues][github issues] a toto číslo každým dnem roste. AppStore, Google Play a e-maily podpory jsou zaplaveny komentáři a chybami. Chceme dodávat vysoce kvalitní produkt. -3. S dostatkem peněz lze například rychleji vyvíjet nové funkce: - - Zálohování a synchronizace záložek a tras - - Záznamník stop GPS s podporou GPX - - Satelitní mapy - - Veřejná doprava - - Hlášení o dopravě a nehodách - - Fotky a recenze - - Lepší styly map pro různé činnosti - - Stínování kopců a 3D terén - - Vylepšení editoru OpenStreetMap - - Lepší offline vyhledávání adres, směrování a navigace - - … a [mnoho dalších][github issues] funkcí, které chcete a máte rádi +## Další způsoby, jak přispět {#other-ways} -## Jak darovat? +Vyberte si způsob platby, který vám vyhovuje. -Klikněte na ikonu preferovaného způsobu platby níže: +{{ }} -{{ }} +{{ }} -Opakované dary jsou nejlepším způsobem, jak zajistit relativně stabilní příjem projektu a motivovat nás k dlouhodobým úkolům a cílům. Můžete však přispět i jednorázově. +{{ }} -### Bankovním převodem +## Můžete nám pomoci nějakým jiným způsobem? -{{ }} - -### Kryptoměna - -Zvažte prosím možnost ročního příspěvku, abyste snížili celkové poplatky. - -{{ }} - -## Můžete nám pomoci i jinak? - -Ano! Existuje mnoho způsobů, jak podpořit Organic Maps. Více informací naleznete na stránce [Podpořte nás](@/contribute/index.cs.md). - -{{ }} +Ano! Existuje mnoho způsobů, jak podpořit Organic Maps. Další podrobnosti najdete na stránce [Přispějte](@/contribute/index.cs.md). diff --git a/content/donate/index.cy.md b/content/donate/index.cy.md index 0df067ae1..649ae5af0 100644 --- a/content/donate/index.cy.md +++ b/content/donate/index.cy.md @@ -1,72 +1,42 @@ --- -title: Rhodda i gefnogi datblygiad Organic Maps -description: Mae dy arian yn talu am bob cost sy'n gysylltiedig â'r prosiect ac yn ein cymell i wella Organic Maps. +template: donate.html +title: "Cadwa Organic Maps yn rhad ac am ddim i bawb" +description: "Mae dy rodd yn talu am ddiweddariadau mapiau, trwsio bygiau a datblygiad annibynnol. Cefnoga Organic Maps gyda rhodd fisol, flynyddol neu untro." weight: 10 extra: + translation_keeps_source: ["extra.crypto_title"] menu_title: Rhodda preview_image: donate/donate.png + bank_transfer_title: "Trosglwyddiad Banc" + crypto_title: "Crypto" --- -Mae ap Organic Maps yn _rhwydd i bawb_ diolch i dy **[rhoddion][stripe]** yn **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +Mae dy rodd yn talu am ddiweddariadau mapiau, trwsio bygiau a datblygu. Helpa i gadw Organic Maps yn rhad ac am ddim i bawb. -- Dim hysbysebion -- Dim traciwr -- Dim cofrestru -- Dim hysbysiadau gwthio -- Cod agored +**Dim hysbysebion. Dim olrhainwyr. Ffynhonnell agored.** -Clicia ar dy ddull talu dewisol isod: + -{{ }} +## Beth mae dy rodd yn ei gefnogi -## Pam rhoi i Organic Maps? +- **Mapiau all-lein cyfredol.** Helpa i ddarparu diweddariadau mapiau rheolaidd ledled y byd. +- **Ap gwell.** Cefnoga drwsio bygiau, gwella llywio a datblygu nodweddion newydd. +- **Datblygiad annibynnol.** Helpa i gadw Organic Maps yn rhad ac am ddim ac yn agored i bawb. -1. Ein nod yw darparu dewis amgen sy'n canolbwyntio ar breifatrwydd, yn gyflym ac yn hawdd i'w ddefnyddio i Google Maps ac Apple Maps. -2. Gwella data map cyhoeddus ar gyfer y nifer o wefannau, apiau a llwyfannau sy'n defnyddio OpenStreetMap, ac annog mwy o bobl i gyfrannu gwybodaeth map yw ein nod arall. -3. Rydym yn dibynnu ar dy roddion i gadw Organic Maps yn agored ac yn rhydd i bawb. - Ac yn rhydd o hysbysebion. -4. Rydym yn caru'r hyn rydym yn ei wneud, ac yn caru ein defnyddwyr ❤️. +Mae rhoddion rheolaidd yn ein helpu i gynllunio gwelliannau hirdymor. Rydym hefyd yn gwerthfawrogi rhoddion untro. -## Pam mae angen arian ar brosiect rhad ac am ddim? + -1. Yn 2023, cafodd Organic Maps ei filiwn cyntaf o ddefnyddwyr. - Mae ein gweinyddwyr yn darparu diweddariadau map rhad ac am ddim, cyflym ac aml ledled y byd. -2. Cefnogaeth defnyddwyr, trwsio bygiau a chyhoeddi diweddariadau ap o ansawdd yw ein blaenoriaeth uchaf. - Mae [~2000 adroddiad byg a chais nodwedd ar GitHub][github issues], ac mae'r nifer hwn yn cynyddu bob dydd. - Mae AppStore, Google Play, ac e-byst cymorth yn llawn sylwadau a bygiau. Rydym am ddarparu cynnyrch o ansawdd uchel. -3. Gyda digon o arian, gellir datblygu nodweddion newydd. Er enghraifft: - - Gwarchod a chysoni nodau tudalen a llwybrau - - Recordydd trac GPS gyda allforio GPX - - Delweddau lloeren - - Trafnidiaeth gyhoeddus - - Adrodd am draffig a damweiniau - - Lluniau ac adolygiadau - - Arddulliau map ar gyfer gwahanol weithgareddau - - Cysgodi bryniau a thirwedd 3D - - Golygydd OpenStreetMap mwy datblygedig - - Gwell chwilio cyfeiriad all-lein, llwybro a llywio - - … a [llawer o nodweddion eraill][github issues] rwyt ti eisiau ac yn eu caru +## Ffyrdd eraill i gyfrannu {#other-ways} -## Sut i roi? +Dewisa ddull talu sy’n gweithio i ti. -Clicia ar dy ddull talu dewisol isod: +{{ }} -{{ }} +{{ }} -Rhoddion ailadroddus yw'r ffordd orau o sicrhau incwm cymharol sefydlog i'r prosiect ac i'n cymell ar gyfer tasgau a nodau tymor hir. Mae rhoddion untro hefyd yn cael eu gwerthfawrogi. +{{ }} -### Trosglwyddiad Banc +## Alli di ein helpu mewn ffordd arall? -{{ }} - -### Crypto - -Ystyria roi'n flynyddol i leihau cyfanswm y ffioedd. - -{{ }} - -## Elli di helpu mewn unrhyw ffordd arall? - -Gelli! Mae sawl ffordd i gefnogi Organic Maps. Gweler y dudalen [Cyfrannu](@/contribute/index.cy.md) am fwy o fanylion. - -{{ }} +Oes! Mae llawer o ffyrdd i gefnogi Organic Maps. Gweler y dudalen [Cyfrannu](@/contribute/index.cy.md) am fwy o fanylion. diff --git a/content/donate/index.de.md b/content/donate/index.de.md index 8a05c5360..2cf965797 100644 --- a/content/donate/index.de.md +++ b/content/donate/index.de.md @@ -1,68 +1,41 @@ --- -description: "Dein Geld finanziert alle projektbezogenen Kosten und motiviert uns, Organic Maps zu verbessern." +template: donate.html +description: "Mit deiner Spende finanzieren wir Kartenaktualisierungen, Fehlerbehebungen und die eigenständige Weiterentwicklung. Unterstütze Organic Maps mit einer monatlichen, jährlichen oder einmaligen Spende." extra: menu_title: Spenden preview_image: donate/donate.png -title: "Spende, um die Entwicklung von Organic Maps zu unterstützen" + bank_transfer_title: "Banküberweisung" + crypto_title: "Krypto" +title: "Organic Maps soll für alle kostenlos bleiben" weight: 10 --- -Organic Maps ist _kostenlos für alle_ dank deiner **[Spenden][stripe]** in **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]**: +Mit deiner Spende finanzieren wir Kartenaktualisierungen, Fehlerbehebungen und die Weiterentwicklung. Hilf mit, dass Organic Maps für alle kostenlos bleibt. -- Keine Werbung -- Keine Tracker -- Keine Registrierung -- Keine Push-Benachrichtigungen -- Open Source +**Keine Werbung. Keine Tracker. Open Source.** -Klicke unten auf das Symbol einer bevorzugten Zahlungsmethode: + -{{ }} +## Was deine Spende ermöglicht -## Warum für Organic Maps spenden? +- **Aktuelle Offline-Karten.** Hilf uns, regelmäßige Kartenupdates weltweit bereitzustellen. +- **Eine bessere App.** Unterstütze Fehlerbehebungen, bessere Navigation und neue Funktionen. +- **Unabhängige Entwicklung.** Hilf, Organic Maps kostenlos und für alle offen zu halten. -1. Unser Ziel ist es, eine datenschutzorientierte, schnelle und benutzerfreundliche Alternative zu Google Maps und Apple Maps zu bieten. -2. Die Verbesserung öffentlicher Kartendaten für die zahlreichen Websites, Apps und Plattformen, die OpenStreetMap nutzen, und die Einbeziehung weiterer Personen in die Bereitstellung von Karteninformationen ist ein weiteres unserer Ziele. -3. Wir sind auf deine Spenden angewiesen, damit wir Organic Maps offen und kostenlos halten können. Und frei von Werbung. -4. Wir lieben was wir tun, und wir lieben unsere Nutzer ❤️. +Regelmäßige Spenden helfen uns dabei, langfristige Verbesserungen zu planen. Auch einmalige Spenden nehmen wir gerne entgegen. -## Warum ein kostenloses Projekt Geld braucht? + -1. Im Jahr 2023 hat Organic Maps seine ersten Millionen Nutzer. Unsere Server bieten kostenlose, schnelle und häufige Kartenaktualisierungen auf der ganzen Welt. -2. Benutzerunterstützung, Bugfixing und die Verbesserung der Stabilität der App stehen ganz oben auf unserer Prioritätenliste. Es gibt [~2000 Fehlerberichte und Funktionswünsche auf GitHub][github issues], und diese Zahl wächst täglich. AppStore, Google Play und Support-E-Mails werden mit Kommentaren und Fehlern überflutet. Wir wollen ein hochwertiges Produkt liefern. -3. Mit genügend Geld können neue Funktionen schneller entwickelt werden, zum Beispiel: - - Sichere und synchronisiere Lesezeichen und Strecken - - GPS-Kursaufzeichnung mit GPX-Unterstützung - - Satellitenbilder - - Öffentlicher Verkehr - - Verkehrs- und Unfallmeldung - - Fotos und Bewertungen - - Bessere Kartenstile für verschiedene Aktivitäten - - Hügelschattierung und 3D-Gelände - - Verbesserung des OpenStreetMap-Editors - - Bessere Offline-Adressensuche, Routing und Navigation - - … und [viele andere][github issues] Funktionen, die du haben willst und liebst +## Andere Möglichkeiten zu spenden {#other-ways} -## Wie kann man spenden? +Wähle eine Zahlungsroute, die zu dir passt. -Klicke unten auf das Symbol einer bevorzugten Zahlungsmethode: +{{ }} -{{ }} +{{ }} -Wiederkehrende Spenden sind der beste Weg, um ein relativ stabiles Einkommen für das Projekt zu sichern und uns für langfristige Aufgaben und Ziele zu motivieren. Du kannst aber auch gern einmalig spenden. +{{ }} -### Banküberweisung +## Kannst du uns noch irgendwie anders helfen? -{{ }} - -### Krypto - -Bitte ziehe es in Erwägung, jährlich zu spenden, um die enstehenden Gebühren zu reduzieren. - -{{ }} - -## Kannst du uns auf andere Weise helfen? - -Ja! Es gibt viele Möglichkeiten, Organic Maps zu unterstützen. Weitere Details findest du auf der [Beitragen](@/contribute/index.de.md) Seite. - -{{ }} +Ja! Es gibt viele Möglichkeiten, Organic Maps zu unterstützen. Weitere Informationen findest du auf der Seite [Mitwirken](@/contribute/index.de.md). diff --git a/content/donate/index.el.md b/content/donate/index.el.md index 906dbe93f..f2bb43fd9 100644 --- a/content/donate/index.el.md +++ b/content/donate/index.el.md @@ -1,68 +1,41 @@ --- -description: "Τα χρήματά σου καλύπτουν όλα τα έξοδα που σχετίζονται με το έργο και μας δίνουν κίνητρο να βελτιώσουμε τους Organic Maps." +template: donate.html +description: "Η δωρεά σου στηρίζει τις ενημερώσεις των χαρτών, τις διορθώσεις και την ανεξάρτητη ανάπτυξη. Στήριξε το Organic Maps με μια μηνιαία, ετήσια ή εφάπαξ δωρεά." extra: menu_title: Δώρισε preview_image: donate/donate.png -title: "Υποστήριξε την ανάπτυξη του Organic Maps" + bank_transfer_title: "Τραπεζικό έμβασμα" + crypto_title: "Κρυπτονόμισμα" +title: "Κράτησε το Organic Maps δωρεάν για όλους" weight: 10 --- -Η εφαρμογή Organic Maps είναι _δωρεάν για όλους_ χάρη στις **[δωρεές][stripe]** σου σε **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +Η δωρεά σου καλύπτει τις ενημερώσεις των χαρτών, τις διορθώσεις και την ανάπτυξη. Βοήθησε να παραμείνει το Organic Maps δωρεάν για όλους. -- Χωρίς διαφημίσεις -- Χωρίς ιχνηλάτες -- Χωρίς εγγραφή -- Χωρίς ειδοποιήσεις push -- Ανοικτού Κώδικα +**Χωρίς διαφημίσεις. Χωρίς προγράμματα παρακολούθησης. Ανοιχτού κώδικα.** -Κάνε κλικ στο εικονίδιο της προτιμώμενης μεθόδου πληρωμής παρακάτω: + -{{ }} +## Τι στηρίζει η δωρεά σου -## Γιατί να κάνεις δωρεά στο Organic Maps; +- **Ενημερωμένοι χάρτες εκτός σύνδεσης.** Βοήθησε να παρέχουμε συχνές ενημερώσεις χαρτών σε όλο τον κόσμο. +- **Μια καλύτερη εφαρμογή.** Στήριξε τις διορθώσεις σφαλμάτων, τις βελτιώσεις πλοήγησης και τις νέες λειτουργίες. +- **Ανεξάρτητη ανάπτυξη.** Βοήθησε να παραμείνει το Organic Maps δωρεάν και ανοιχτό για όλους. -1. Στόχος μας είναι να παρέχουμε μια γρήγορη και εύχρηστη εναλλακτική λύση για τους χάρτες Google και Apple Maps, με γνώμονα την προστασία της ιδιωτικής ζωής. -2. Ένας άλλος στόχος μας είναι η βελτίωση των δημόσιων δεδομένων χαρτών για τους πολυάριθμους ιστότοπους, εφαρμογές και πλατφόρμες που χρησιμοποιούν το OpenStreetMap και η συμμετοχή περισσότερων ανθρώπων στη συνεισφορά πληροφοριών χαρτών. -3. Βασιζόμαστε στις δωρεές σου για να διατηρήσουμε το Organic Maps ανοιχτό και δωρεάν για όλους. Και χωρίς διαφημίσεις. -4. Αγαπάμε αυτό που κάνουμε και αγαπάμε τους χρήστες μας ❤️. +Οι τακτικές δωρεές μας βοηθούν να προγραμματίζουμε μακροπρόθεσμες βελτιώσεις. Εκτιμούμε επίσης και τις εφάπαξ δωρεές. -## Γιατί ένα δωρεάν έργο χρειάζεται χρήματα; + -1. Το 2023, οι Organic Maps απέκτησαν το πρώτο εκατομμύριο χρηστών. Οι διακομιστές μας παρέχουν δωρεάν, γρήγορες και συχνές ενημερώσεις χαρτών σε όλο τον κόσμο. -2. Η υποστήριξη χρηστών, η διόρθωση σφαλμάτων και η δημοσίευση ποιοτικών ενημερώσεων εφαρμογών βρίσκονται στην κορυφή των προτεραιοτήτων μας. Υπάρχουν [~2000 αναφορές σφαλμάτων και αιτήματα χαρακτηριστικών στο GitHub][github issues], και ο αριθμός αυτός αυξάνεται καθημερινά. Το AppStore, το Google Play και τα μηνύματα ηλεκτρονικού ταχυδρομείου υποστήριξης κατακλύζονται από σχόλια και σφάλματα. Θέλουμε να παραδώσουμε ένα προϊόν υψηλής ποιότητας. -3. Με αρκετά χρήματα, μπορούν να αναπτυχθούν νέα χαρακτηριστικά. Για να αναφέρουμε μερικά: - - Δημιουργία αντιγράφων ασφαλείας και συγχρονισμός σελιδοδεικτών και κομματιών - - Καταγραφέας κομματιών GPS με εξαγωγή GPX - - Δορυφορικές εικόνες - - Δημόσια Συγκοινωνία - - Αναφορά κυκλοφορίας και ατυχημάτων - - Φωτογραφίες και κριτικές - - Στυλ χάρτη για διαφορετικές δραστηριότητες - - Σκίαση λόφων και τρισδιάστατο έδαφος - - Βελτίωσε τον επεξεργαστή του OpenStreetMap - - Καλύτερη αναζήτηση διευθύνσεων, δρομολόγηση και πλοήγηση χωρίς σύνδεση - - … και [πολλά άλλα][github issues] χαρακτηριστικά που θέλεις και αγαπάς +## Άλλοι τρόποι δωρεάς {#other-ways} -## Πώς να κάνεις δωρεά; +Διάλεξε τον τρόπο πληρωμής που σου ταιριάζει. -Κάνε κλικ στο εικονίδιο της προτιμώμενης μεθόδου πληρωμής παρακάτω: +{{ }} -{{ }} +{{ }} -Οι επαναλαμβανόμενες δωρεές είναι ο καλύτερος τρόπος για να εξασφαλίσουμε ένα σχετικά σταθερό εισόδημα για το έργο και να μας δώσουν κίνητρο για μακροπρόθεσμες εργασίες και στόχους. Οι εφάπαξ δωρεές είναι επίσης ευπρόσδεκτες. - -### Τραπεζικό έμβασμα - -{{ }} - -### Κρυπτονόμισμα - -Παρακαλώ σκέψου να κάνεις ετήσια δωρεά για να μειώσεις τα συνολικά τέλη. - -{{ }} +{{ }} ## Μπορείς να μας βοηθήσεις με άλλον τρόπο; -Ναι! Υπάρχουν πολλοί τρόποι για να υποστηρίξεις τους Organic Maps. Παρακαλούμε δες τη σελίδα [Υποστήριξε μας](@/contribute/index.el.md) για περισσότερες λεπτομέρειες. - -{{ }} +Ναι! Υπάρχουν πολλοί τρόποι να στηρίξεις το Organic Maps. Δες τη σελίδα [Συνεισφορά](@/contribute/index.el.md) για περισσότερες λεπτομέρειες. diff --git a/content/donate/index.es.md b/content/donate/index.es.md index f5c486552..eb85112cc 100644 --- a/content/donate/index.es.md +++ b/content/donate/index.es.md @@ -1,68 +1,41 @@ --- -description: "Tu dinero paga para todos los gastos relacionados con el proyecto y nos motiva a mejorar Organic Maps." +template: donate.html +description: "Tu donación sirve para financiar las actualizaciones de los mapas, las correcciones y el desarrollo independiente. Apoya a Organic Maps con una donación mensual, anual o puntual." extra: menu_title: Donar preview_image: donate/donate.png -title: "Dona para apoyar al desarrollo de Organic Maps" + bank_transfer_title: "Transferencia bancaria" + crypto_title: "Criptomonedas" +title: "Que Organic Maps siga siendo gratis para todo el mundo" weight: 10 --- -La aplicación Organic Maps es _gratuita para todos_ gracias a tus **[donaciones][stripe]** en **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +Tu donación se destina a financiar las actualizaciones, las correcciones y el desarrollo de Organic Maps. Ayúdanos a que Organic Maps siga siendo gratuito para todo el mundo. -- Sin anuncios -- Sin rastreadores -- Sin registro -- Sin notificaciones -- Software libre +**Sin anuncios. Sin rastreadores. Código abierto.** -Haz clic en el icono del método de pago que prefieras: + -{{ }} +## Qué hace posible tu donación -## ¿Por qué donar a Organic Maps? +- **Mapas sin conexión actualizados.** Ayuda a ofrecer actualizaciones frecuentes de los mapas en todo el mundo. +- **Una aplicación mejor.** Apoya la corrección de errores, las mejoras de navegación y las nuevas funciones. +- **Desarrollo independiente.** Ayuda a mantener Organic Maps gratis y abierto para todos. -1. Nuestro objetivo es ofrecer una alternativa a Google Maps y Apple Maps centrada en la privacidad, rápida y fácil de usar. -2. Otro de nuestros objetivos es mejorar los datos de los mapas públicos para las numerosas páginas web, aplicaciones y plataformas que utilizan OpenStreetMap, e implicar a más personas en la aportación de información para los mapas. -3. Dependemos de tus donativos para seguir con nuestra misión de mantener Organic Maps abierta y gratis. Y libre de anuncios. -4. Nos encanta lo que hacemos y queremos a nuestros usuarios ❤️. +Las donaciones periódicas nos ayudan a planificar mejoras a largo plazo. Las donaciones puntuales también son bienvenidas. -## ¿Por qué un proyecto gratuito necesita dinero? + -1. En 2023, Organic Maps consiguió su primer millón de usuarios. Nuestros servidores proporcionan actualizaciones de mapas gratuitas, rápidas y frecuentes en todo el mundo. -2. La asistencia a los usuarios, el arreglo de errores y la mejora de la estabilidad de la aplicación son nuestras principales prioridades. Hay más de [2000 informes en GitHub][github issues], y este número crece cada día. AppStore, Google Play y los correos de atención están inundados con comentarios e informes. Queremos entregar un producto de calidad. -3. Con suficiente dinero, pueden desarrollarse prestaciones nuevas más rápidamente, por ejemplo: - - Copia de seguridad y sincronización de favoritos y pistas - - Grabadora GPS con compatibilidad para GPX - - Imágenes por satélite - - Transporte público - - Información sobre tráfico y accidentes - - Fotos y reseñas - - Mejores estilos cartográficos para diferentes actividades - - Sombreado de colinas y terreno 3D - - Editor OpenStreetMap más avanzado - - Mejor búsqueda de direcciones sin conexión, enrutamiento y navegación - - … y [muchas otras][github issues] funcionalidades que deseas +## Otras formas de hacer donaciones {#other-ways} -## ¿Cómo donar? +Elige la forma de pago que más te convenga. -Haz clic en el icono del método de pago que prefieras: +{{ }} -{{ }} +{{ }} -Las donaciones recurrentes son la mejor manera de asegurar un ingreso periódico para el proyecto y nos motiva para tareas y objetivos a largo plazo. Pero también puedes donar una vez. +{{ }} -### Transferencia bancaria +## ¿Nos puedes ayudar de alguna otra forma? -{{ }} - -### Criptomonedas - -Considera donar anualmente para reducir las tarifas totales. - -{{ }} - -## ¿Puedes ayudarnos de alguna otra manera? - -¡Sí! Hay varias maneras de apoyar a Organic Maps. Consulta la página [Contribuir](@/contribute/index.es.md) para más detalles. - -{{ }} +¡Sí! Hay muchas formas de apoyar a Organic Maps. Echa un vistazo a la página [Colabora](@/contribute/index.es.md) para más detalles. diff --git a/content/donate/index.et.md b/content/donate/index.et.md index e4605bf72..fbbf50eb1 100644 --- a/content/donate/index.et.md +++ b/content/donate/index.et.md @@ -1,68 +1,41 @@ --- -description: "Sinu annetatud raha eest tasume projektikulusid ning see motiveerib meid Organic Mapsi edasi arendama." +template: donate.html +description: "Sinu annetus toetab kaardiuuendusi, veaparandusi ja sõltumatut arendust. Toeta Organic Mapsi igakuise, aastase või ühekordse annetusega." extra: menu_title: "Toeta rahaliselt" preview_image: donate/donate.png -title: "Toeta rahaliselt Organic Mapsi arendust" + bank_transfer_title: "Pangaülekanne" + crypto_title: "Krüptoraha" +title: "Aita hoida Organic Maps kõigile tasuta" weight: 10 --- -Organic Maps on _tasuta kõigi jaoks_ tänu sinu **[rahalisele toetusele][stripe]** neis vääringutes: **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +Sinu annetus toetab kaardiuuendusi, veaparandusi ja arendust. Aita hoida Organic Maps kõigile tasuta. -- Pole reklaame -- Pole jälitajaid -- Pole vaja registreeruda kasutajaks -- Pole tõuketeavitusi -- Põhineb avatud lähtekoodil +**Ilma reklaamideta. Ilma jälgimismooduliteta. Avatud lähtekoodiga.** -Palun vali alljärgnevast sobilik makseviis: + -{{ }} +## Mida sinu annetus toetab -## Miks peaksid Organic Mapsile annetama? +- **Värsked võrguühenduseta kaardid.** Aita pakkuda sagedasi kaardiuuendusi kogu maailmas. +- **Parem rakendus.** Toeta veaparandusi, paremat navigeerimist ja uusi funktsioone. +- **Sõltumatu arendus.** Aita hoida Organic Maps tasuta ja kõigile avatuna. -1. Meie eesmärgiks on pakkuda privaatsuskeskset, kiiret ja lihtsaltkasutatavat alternatiivi Google Mapsile ja Apple Mapsile. -2. Meie lisaeesmärgiks on kaardiandmete parandamine paljude veebisaitide, rakenduste ja platvormide jaoks, mis kasutavad OpenStreetMappi ning selleks uute huviliste kaasamine. -3. Et Organic Maps oleks vaba ja kõigi jaoks tasuta, on vaja sinu rahalist tuge. Ja loomulikult tagab see ka, et reklaame ei ole. -4. Meile meeldib see, mida me teeme ning loomulikult armastame oma kasutajaid ❤️. +Regulaarsed annetused aitavad meil planeerida pikaajalisi parendusi. Ka ühekordsed annetused on teretulnud. -## Miks üks tasuta projekt vajab raha? + -1. 2023. aastal jõudis Organic Maps miljoni kasutajani. Meie serverid jagavad tasuta, kiireid ja sagedasi kaardiuuendusi kõigile üle maailma. -2. Kasutajatugi, leitud vigade parandamine ning kvaliteetsete rakenduse uuenduste avaldamine on meie suurimad prioriteedid. [Githubis on ~2000 veateadet ja arendusideed][github issues] ja see arv kasvab iga päevaga. AppStore, Google Play ja kasutajatoe e-posti aadressid on kommentaaridega ja veakirjeldustega üle uputatud. Kõige selle keskel soovime, et meie toode oleks hea kvaliteediga. -3. Piisava rahastuse olemasolul suudame lisada ka uusi funktsionaalsusi, millest mõnes on sellised: - - Järjehoidjate ja radade varundus - - GPS-radade salvestaja koos eksporteriga GPX-failideks - - Satelliidifotode kasutamine - - Ühistransport - - Liiklusolude ja -õnnetuste teavitused - - Fotod ja arvustused - - Kaardistiilid erinevate tegevuste jaoks - - Künkavarjutused ja kolmemõõtmelised maastikud - - Võimekam OpenStreetMapi muutmisvaade - - Parem aadressiotsing, teekonna koostamine ja tee juhatamine võrguvabas olekus - - … ja [paljud muud funktsionaalsused][github issues], mis sulle meeldivad ja mida tahaksid näha +## Muud annetusvõimalused {#other-ways} -## Kuidas annetamine toimib? +Vali endale sobiv makseviis. -Palun vali alljärgnevast sobilik makseviis: +{{ }} -{{ }} +{{ }} -Korduvad annetused on parim viis projekti jaoks püsiva rahavoo tagamiseks ning meie motiveerimiseks pikaajaliste eesmärkide täitmise nimel. Ka ühekordsed annetused on suurepärased. +{{ }} -### Pangaülekanne +## Kas saad meid aidata ka muul viisil? -{{ }} - -### Krüptoraha - -Teenustasude vähendamiseks tee võimaluse korral krüptorahas annetusi korda aastas. - -{{ }} - -## Kas saan ka mõnel muul viisil aidata? - -Justnimelt! Organic Mapsi aitamiseks on palju muid viise. Lisateavet leiad [Kaastöö](@/contribute/index.et.md) lehelt. - -{{ }} +Jah! Organic Mapsi toetamiseks on palju võimalusi. Lisateavet leiad lehelt [Panusta](@/contribute/index.et.md). diff --git a/content/donate/index.eu.md b/content/donate/index.eu.md index 402f009d8..b45e943b3 100644 --- a/content/donate/index.eu.md +++ b/content/donate/index.eu.md @@ -1,72 +1,41 @@ --- -title: Eman Organic Maps garapena babesteko -description: Zure diruak proiektuarekin lotutako gastu guztiak ordaintzen ditu eta Organic Maps hobetzeko motibazioa ematen digu. +template: donate.html +title: "Mantendu Organic Maps denontzat doan" +description: "Zure dohaintzak mapen eguneratzeak, konponketak eta garapen independentea ordaintzen ditu. Egin Organic Maps-i hileroko, urteko edo behin-behineko dohaintza batekin." weight: 10 extra: menu_title: Eman preview_image: donate/donate.png + bank_transfer_title: "Banku transferentzia" + crypto_title: "Kriptomoneta" --- -Organic Maps aplikazioa _doakoa da guztiontzat_ zure **[emaitzak][stripe]** **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]** bidez: +Zure dohaintzak mapen eguneratzeak, konponketak eta garapena ordaintzen ditu. Lagundu Organic Maps denontzat doan izaten. -- Iragarkirik ez -- Jarraitzailerik ez -- Erregistrorik ez -- Push jakinarazpenik ez -- Kode irekia +**Ez iragarkirik. Ez jarraipenik. Iturri irekia.** -Klikatu zure ordainketa-metodo gustukoenaren ikonoan behean: + -{{ }} +## Zer babesten du zure dohaintzak -## Zergatik eman Organic Maps-i? +- **Lineaz kanpoko mapa eguneratuak.** Lagundu mundu osoan mapen eguneratzeak maiz eskaintzen. +- **Aplikazio hobea.** Babestu akatsen zuzenketak, nabigazioaren hobekuntzak eta funtzio berriak. +- **Garapen independentea.** Lagundu Organic Maps guztiontzat doan eta irekita mantentzen. -1. Gure helburua pribatutasunean oinarritutako, azkarra eta erabiltzeko erraza den alternatiba bat eskaintzea da Google Maps eta Apple Maps-entzat. -2. OpenStreetMap erabiltzen duten webgune, aplikazio eta plataformetarako mapa publikoen datuak hobetzea eta jende gehiago maparen informazioa ematera animatzea beste helburu bat da. -3. Zure emaitzak behar ditugu Organic Maps guztiontzat irekia eta doakoa izaten jarraitzeko. - Eta iragarkirik gabe. -4. Gure lana maite dugu, eta erabiltzaileak ere bai ❤️. +Ohiko dohaintzek epe luzerako hobekuntzak planifikatzen laguntzen digute. Behin-behineko dohaintzak ere eskertzen dira. -## Zergatik behar du dirua proiektu doako batek? + -1. 2023an, Organic Maps-ek bere lehen milioi erabiltzaile lortu zituen. - Gure zerbitzariek doako, azkar eta maiz eguneratzen dituzte mapak mundu osoan. -2. Erabiltzailearen laguntza, akatsen konponketa eta kalitatezko aplikazio eguneratzeak gure lehentasun nagusiak dira. - [~2000 akats-txosten eta funtzionalitate-eskaera daude GitHub-en][github issues], eta kopuru hori egunero hazten ari da. - AppStore, Google Play eta laguntza-emailak iruzkin eta akatsez gainezka daude. Kalitate handiko produktua eskaini nahi dugu. -3. Diru nahikoa izanez gero, funtzio berriak garatu daitezke. Adibidez: - - Laster-markak eta ibilbideak babestu eta sinkronizatu - - GPS ibilbide-erregistratzailea GPX esportazioarekin - - Satelite irudiak - - Garraio publikoa - - Trafiko eta istripuen berri ematea - - Argazkiak eta iritziak - - Jarduera desberdinetarako mapa estiloak - - Mendien itzaldura eta 3D lurraldea - - OpenStreetMap editore aurreratua - - Lineaz kanpoko helbide bilaketa, ibilbideak eta nabigazioa hobetua - - … eta [beste hainbat][github issues] funtzio nahi eta maite dituzunak +## Dohaintza egiteko beste modu batzuk {#other-ways} -## Nola eman? +Zuretzako egokia den ordainketa-bide bat hautatu. -Klikatu zure ordainketa-metodo gustukoenaren ikonoan behean: +{{ }} -{{ }} +{{ }} -Emaitza errepikakorrak dira proiektuaren diru-sarrera egonkorra bermatzeko eta epe luzeko zeregin eta helburuetarako motibazioa emateko modurik onena. Behin-behineko emaitzak ere eskertzen dira. +{{ }} -### Banku transferentzia +## Beste modu batean lagundu al gaitzakezu? -{{ }} - -### Kriptomoneta - -Mesedez, kontuan hartu urtero ematea, guztizko tasak murrizteko. - -{{ }} - -## Beste modu batean lagundu dezakezu? - -Bai! Organic Maps laguntzeko hainbat modu daude. Ikusi [Lagundu](@/contribute/index.eu.md) orria xehetasun gehiagorako. - -{{ }} +Bai! Organic Maps babesteko modu asko daude. Xehetasun gehiago jakiteko, ikusi [Ekarpen](@/contribute/index.eu.md) orria. diff --git a/content/donate/index.fa-IR.md b/content/donate/index.fa-IR.md index 9f90c39a4..966a2141c 100644 --- a/content/donate/index.fa-IR.md +++ b/content/donate/index.fa-IR.md @@ -1,72 +1,41 @@ --- -title: کمک مالی برای حمایت از توسعه Organic Maps -description: پول شما تمام هزینه‌های مربوط به پروژه را پرداخت می‌کند و ما را برای بهبود Organic Maps تشویق می‌کند. +template: donate.html +title: "Organic Maps را برای همه رایگان نگه دارید" +description: "اهداي شما هزينهٔ به‌روزرسانی نقشه‌ها، رفع اشکالات و توسعهٔ مستقل را تأمین می‌کند. Organic Maps را با اهداي ماهانه، سالانه يا یک‌باره حمایت کنید." weight: 10 extra: menu_title: کمک مالی preview_image: donate/donate.png + bank_transfer_title: "انتقال بانکی" + crypto_title: "رمزارز" --- -اپلیکیشن Organic Maps به لطف **[کمک‌های مالی شما][stripe]** در **[یورو][stripe_eur]، [دلار][stripe_usd]، [پوند][stripe_GBP]، [فرانک سوئیس][stripe_chf]، [زلوتی لهستان][stripe_pln]، [روبل روسیه][stripe_rub]** برای همه _رایگان_ است: +اهداي شما هزينهٔ به‌روزرساني، رفع اشکال و توسعهٔ نقشه‌ها را پرداخت می‌کند. کمک کنید تا Organic Maps برای همه رایگان باقی بماند. -- بدون تبلیغات -- بدون ردیاب -- بدون ثبت‌نام -- بدون اعلان‌های پوش -- متن‌باز +**بدون تبلیغات. بدون ردیاب. متن‌باز.** -روی آیکون روش پرداخت مورد علاقه خود در زیر کلیک کنید: + -{{ }} +## کمک مالی شما چه چیزی را پشتیبانی می‌کند؟ -## چرا به Organic Maps کمک مالی کنیم؟ +- **نقشه‌های آفلاین به‌روز.** به ارائهٔ به‌روزرسانی‌های منظم نقشه‌ها در سراسر جهان کمک کنید. +- **برنامه‌ای بهتر.** از رفع اشکال، بهبود مسیریابی و قابلیت‌های جدید پشتیبانی کنید. +- **توسعهٔ مستقل.** کمک کنید Organic Maps برای همه رایگان و باز بماند. -1. هدف ما ارائه جایگزینی متمرکز بر حریم خصوصی، سریع و آسان برای Google Maps و Apple Maps است. -2. بهبود داده‌های نقشه عمومی برای وب‌سایت‌ها، اپلیکیشن‌ها و پلتفرم‌های متعدد که از OpenStreetMap استفاده می‌کنند و مشارکت بیشتر افراد در اطلاعات نقشه، هدف دیگر ماست. -3. ما برای باز نگه داشتن و رایگان بودن Organic Maps برای همه به کمک‌های مالی شما وابسته‌ایم. - و بدون تبلیغات. -4. ما عاشق کاری که انجام می‌دهیم هستیم و کاربرانمان را دوست داریم ❤️. +اهداهای منظم به ما کمک می‌کنند تا بهبودهای بلندمدت را برنامه‌ریزی کنیم. اهداهای یک‌باره نیز مورد قدردانی هستند. -## چرا یک پروژه رایگان به پول نیاز دارد؟ + -1. در سال 2023، Organic Maps اولین میلیون کاربر خود را به دست آورد. - سرورهای ما به‌صورت رایگان، سریع و مکرر نقشه‌ها را در سراسر جهان به‌روزرسانی می‌کنند. -2. پشتیبانی کاربران، رفع باگ‌ها و انتشار به‌روزرسانی‌های باکیفیت اپلیکیشن در اولویت ماست. - [حدود 2000 گزارش باگ و درخواست ویژگی در GitHub][github issues] وجود دارد و این تعداد هر روز در حال افزایش است. - AppStore، Google Play و ایمیل‌های پشتیبانی پر از نظرات و باگ‌ها هستند. ما می‌خواهیم محصولی با کیفیت بالا ارائه دهیم. -3. با پول کافی، ویژگی‌های جدیدی می‌توان توسعه داد. برخی از آن‌ها: - - پشتیبان‌گیری و همگام‌سازی نشانک‌ها و مسیرها - - ضبط‌کننده مسیر GPS با خروجی GPX - - تصاویر ماهواره‌ای - - حمل و نقل عمومی - - گزارش ترافیک و تصادفات - - عکس‌ها و نظرات - - سبک‌های نقشه برای فعالیت‌های مختلف - - سایه‌زنی کوه‌ها و زمین سه‌بعدی - - ویرایشگر پیشرفته‌تر OpenStreetMap - - جستجوی آدرس آفلاین، مسیریابی و ناوبری بهتر - - … و [ویژگی‌های دیگر][github issues] که شما دوست دارید و می‌خواهید +## راه‌های دیگر برای اهداء {#other-ways} -## چگونه کمک مالی کنیم؟ +یک روش پرداخت را انتخاب کنید که برای شما مناسب باشد. -روی آیکون روش پرداخت مورد علاقه خود در زیر کلیک کنید: +{{ }} -{{ }} +{{ }} -کمک‌های مالی دوره‌ای بهترین راه برای تضمین درآمد نسبتاً پایدار برای پروژه و انگیزه دادن به ما برای وظایف و اهداف بلندمدت است. کمک‌های مالی یک‌باره نیز بسیار ارزشمند است. +{{ }} -### انتقال بانکی +## آیا می‌توانید به ما به روش دیگری کمک کنید؟ -{{ }} - -### رمزارز - -لطفاً برای کاهش کل کارمزدها، سالانه کمک مالی کنید. - -{{ }} - -## آیا می‌توانید به روش دیگری کمک کنید؟ - -بله! راه‌های زیادی برای حمایت از Organic Maps وجود دارد. لطفاً برای اطلاعات بیشتر صفحه [مشارکت](@/contribute/index.fa-IR.md) را ببینید. - -{{ }} +بله! راه‌های زیادی برای حمایت از Organic Maps وجود دارد. برای جزئیات بیشتر به صفحه [مشارکت](@/contribute/index.fa-IR.md) مراجعه کنید. diff --git a/content/donate/index.fr.md b/content/donate/index.fr.md index ad5347d81..58554bf23 100644 --- a/content/donate/index.fr.md +++ b/content/donate/index.fr.md @@ -1,68 +1,42 @@ --- -title: Fais un don pour soutenir le développement d'Organic Maps -description: "Ton argent permet de couvrir toutes les dépenses liées au projet et nous motive à améliorer Organic Maps." +template: donate.html +title: "Fais en sorte qu'Organic Maps reste gratuit pour tout le monde" +description: "Ton don permet de financer les mises à jour des cartes, les corrections et le développement indépendant. Soutiens Organic Maps avec un don mensuel, annuel ou ponctuel." weight: 10 extra: + translation_keeps_source: ["extra.crypto_title"] menu_title: Faire un don preview_image: donate/donate.png + bank_transfer_title: "Virement bancaire" + crypto_title: "Crypto" --- -L'application Organic Maps est _gratuite pour tout le monde_ grâce à tes **[donations][stripe]** en **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]** : +Ton don permet de financer les mises à jour, les corrections et le développement de la carte. Aide-nous à faire en sorte qu'Organic Maps reste gratuit pour tout le monde. -- Pas de publicité -- Pas de trackers -- Pas d'inscription -- Pas de notifications push -- Open-source +**Pas de pub. Pas de traceurs. Open source.** -Clique sur l'icône correspondant au mode de paiement de ton choix ci-dessous : + -{{ }} +## Ce que ton don finance -## Pourquoi faire un don à Organic Maps ? +- **Des cartes hors ligne à jour.** Aide-nous à fournir des mises à jour régulières dans le monde entier. +- **Une meilleure application.** Soutiens les corrections de bugs, les améliorations de la navigation et les nouvelles fonctionnalités. +- **Un développement indépendant.** Aide à garder Organic Maps gratuit et ouvert à tous. -1. Notre objectif est de proposer une alternative à Google Maps et Apple Maps qui soit respectueuse de la vie privée, rapide et facile à utiliser. -2. Notre autre objectif est d'améliorer les données cartographiques publiques pour les nombreux sites web, applications et plateformes qui utilisent OpenStreetMap, et d'inciter davantage de personnes à y contribuer. -3. Nous comptons sur tes dons pour garder Organic Maps ouvert et gratuit pour tout le monde. Et sans publicité. -4. Nous aimons ce que nous faisons, et nous aimons nos utilisateurs ❤️. +Les dons réguliers nous aident à planifier des améliorations à long terme. Les dons ponctuels sont également les bienvenus. -## A quoi servira l'argent ? + -1. En 2023, Organic Maps a franchi le cap du million d'utilisateurs. Nos serveurs fournissent des mises à jour de cartes gratuites, rapides et fréquentes partout dans le monde. -2. L'assistance aux utilisateurs, la correction des bogues et la publication de mises à jour de qualité sont en tête de nos priorités. Il y a [~2000 rapports de bogues et demandes de fonctionnalités sur GitHub][github issues], et ce nombre augmente chaque jour. L'AppStore, Google Play et les e-mails d'assistance sont inondés de commentaires et de bogues. Nous voulons livrer un produit de haute qualité. -3. Avec suffisamment d'argent, de nouvelles fonctionnalités peuvent être développées. Pour n'en citer que quelques-unes : - - Sauvegarde et synchronisation des signets et des traces - - Enregistreur de trace GPS avec export GPX - - Imagerie satellite - - Transports en commun - - Signalement du trafic et des accidents - - Photos et avis - - Styles de carte pour différentes activités - - Ombrage des reliefs et terrain en 3D - - Éditeur OpenStreetMap plus avancé - - Meilleure recherche d'adresses, calcul d'itinéraire et navigation hors ligne - - … et [beaucoup d'autres][github issues] fonctionnalités que tu veux et aimes +## Autres façons de faire un don {#other-ways} -## Comment faire un don ? +Choisis le mode de paiement qui te convient le mieux. -Clique sur l'icône correspondant au mode de paiement de ton choix ci-dessous : +{{ }} -{{ }} +{{ }} -Les dons récurrents sont le meilleur moyen d'assurer un revenu relativement stable pour le projet et de nous motiver pour les tâches et les objectifs à long terme. Mais tu peux également faire un don ponctuel. +{{ }} -### Virement bancaire +## Tu peux nous aider d'une autre manière ? -{{ }} - -### Crypto - -Merci d'envisager de faire un don annuel pour réduire les frais totaux. - -{{ }} - -## Peux-tu nous aider d'une autre manière ? - -Oui ! Il existe de nombreuses façons de soutenir Organic Maps. Merci de consulter la page [Contribuer](@/contribute/index.fr.md) pour plus de détails. - -{{ }} \ No newline at end of file +Oui ! Il y a plein de façons de soutenir Organic Maps. Rends-toi sur la page [Contribuer](@/contribute/index.fr.md) pour en savoir plus. diff --git a/content/donate/index.gl.md b/content/donate/index.gl.md index 88044b526..f034a40a1 100644 --- a/content/donate/index.gl.md +++ b/content/donate/index.gl.md @@ -1,68 +1,41 @@ --- -description: "O teu diñeiro paga todos os gastos relacionados co proxecto e motívanos a mellorar Organic Maps." +template: donate.html +description: "A túa doazón financia actualizacións de mapas, correccións e desenvolvemento independente. Apoia Organic Maps cunha doazón mensual, anual ou puntual." extra: menu_title: Doa preview_image: donate/donate.png -title: "Doa para apoiar o desenvolvemento de Organic Maps" + bank_transfer_title: "Transferencia bancaria" + crypto_title: "Cripto" +title: "Mantén Organic Maps gratuíto para todos" weight: 10 --- -A aplicación Organic Maps é _gratuíta para todos_ grazas ás túas **[doazóns][stripe]** en **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +A túa doazón paga as actualizacións dos mapas, as correccións e o desenvolvemento. Axuda a manter Organic Maps gratuíto para todos. -- Sen publicidade -- Sen rastreadores -- Sen rexistro -- Sen notificacións -- Código aberto +**Sen anuncios. Sen rastrexadores. Código aberto.** -Fai clic no icono do método de pago preferido a continuación: + -{{ }} +## Que fai posible a túa doazón -## ¿Por qué doar a Organic Maps? +- **Mapas sen conexión actualizados.** Axuda a ofrecer actualizacións frecuentes dos mapas en todo o mundo. +- **Unha aplicación mellor.** Apoia a corrección de erros, as melloras da navegación e as novas funcións. +- **Desenvolvemento independente.** Axuda a manter Organic Maps gratuíto e aberto para todos. -1. O noso obxectivo é ofrecer unha alternativa centrada na privacidade, rápida e fácil de usar a Google Maps e Apple Maps. -2. Outro dos nosos obxectivos é mellorar os datos dos mapas públicos para as numerosas páxinas web, aplicacións e plataformas que utilizan OpenStreetMap, e implicar a máis persoas na achega de información para os mapas. -3. Confiamos nas túas doazóns para levar a cabo a nosa misión de manter aberto e gratuíta Organic Maps. E libre de anuncios. -4. Adoramos o que facemos e adoramos os nosos usuarios ❤️. +As doazóns regulares axúdanos a planificar melloras a longo prazo. Tamén se agradecen as doazóns puntuais. -## Porque un proxecto gratuíto precisa de diñeiro? + -1. En 2023, o Organic Maps obtivo o seu primeiro millón de usuarios. Os nosos servidores fornecen actualizacións de mapas gratuítas, rápidas e frecuentes en todo o mundo. -2. A asistencia ao usuario, a corrección de erros e a mellora da estabilidade da aplicación están na parte superior das nosas prioridades. Hai [1200+ issues on GitHub][github issues], e este número crece cada día. Os correos electrónicos de AppStore, Google Play e de asistencia están sobrecargados de comentarios e erros. Queremos ofrecer un produto de alta calidade. -3. Con diñeiro suficiente, pódense desenvolver novas funcións máis rápido, por exemplo: - - Copia de seguranza e sincronización de marcadores e traxectos - - Gravador de rutas GPS con soporte GPX - - Imaxes de satélite - - Transporte Público - - Información sobre tráfico e accidentes - - Fotografías e avaliacións - - Mellores estilos de mapa para diferentes actividades - - Sombreado de outeiros e terreo 3D - - Editor de OpenStreetMap máis avanzado - - Mellor busca de enderezos sen conexión, enrutamento e navegación - - … e [many other][github issues] funcións que queres e que che gustan +## Outras formas de doar {#other-ways} -## ¿Como doar? +Escolle unha forma de pago que che funcione. -Fai clic no icono do método de pago preferido a continuación: +{{ }} -{{ }} +{{ }} -As doazóns recorrentes son a mellor forma de garantir uns ingresos relativamente estables para o proxecto e de motivarnos para tarefas e obxectivos a longo prazo. Pero tamén podes doar unha vez. +{{ }} -### Transferencia bancaria +## Podes axudarnos dalgún outro xeito? -{{ }} - -### Cripto - -Considera doar anualmente para reducir as taxas totais. - -{{ }} - -## ¿Podes axudarnos doutra maneira? - -Si! Hai moitas formas de admitir Organic Maps. Consulta a páxina [Contribuir](@/contribute/index.gl.md) para obter máis detalles. - -{{ }} +Si! Hai moitas maneiras de apoiar Organic Maps. Consulta a páxina [de Contribución](@/contribute/index.gl.md) para máis detalles. diff --git a/content/donate/index.he.md b/content/donate/index.he.md index aa41343f6..c5f2fcb0e 100644 --- a/content/donate/index.he.md +++ b/content/donate/index.he.md @@ -1,68 +1,41 @@ --- -title: תרמו לתמיכה בפיתוח Organic Maps -description: כספכם משלם עבור כל ההוצאות הקשורות לפרויקט ומניע אותנו לשפר את Organic Maps. +template: donate.html +title: "שמרו על Organic Maps חינמי לכולם" +description: "התרומה שלכם מממנת עדכוני מפות, תיקונים ופיתוח עצמאי. תמכו ב-Organic Maps באמצעות תרומה חודשית, שנתית או חד-פעמית." weight: 10 extra: menu_title: תרומה preview_image: donate/donate.png + bank_transfer_title: "העברה בנקאית" + crypto_title: "קריפטו" --- -אפליקציית Organic Maps היא _חופשית לכולם_ תודות ל-**[תרומות][stripe]** שלכם ב-**[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]**: +התרומה שלכם מממנת עדכונים, תיקונים ופיתוח של המפות. עזרו לנו לשמור על Organic Maps חינמי לכולם. -- ללא פרסומות -- ללא מעקבים -- ללא הרשמה -- ללא התראות דחיפה -- קוד פתוח +**ללא פרסומות. ללא מעקבים. קוד פתוח.** -לחצו על סמל אמצעי התשלום העדיף עליכם להלן: + -{{ }} +## מה התרומה שלך מאפשרת -## למה לתרום ל-Organic Maps? +- **מפות עדכניות ללא חיבור לאינטרנט.** תמיכה בעדכונים תכופים של מפות ברחבי העולם. +- **אפליקציה טובה יותר.** תמיכה בתיקוני באגים, שיפורי ניווט ותכונות חדשות. +- **פיתוח עצמאי.** עזרה בשמירה על Organic Maps חינמי ופתוח לכולם. -1. המטרה שלנו היא לספק חלופה המתמקדת בפרטיות, מהירה וקלה לשימוש ל-Google Maps ו-Apple Maps. -2. שיפור נתוני המפות הציבוריים עבור אתרים רבים, אפליקציות ופלטפורמות המשתמשות ב-OpenStreetMap, ושיתוף יותר אנשים בתרומת מידע למפות היא עוד אחת מהמטרות שלנו. -3. אנו מסתמכים על התרומות שלכם כדי לשמור על Organic Maps פתוח וחופשי לכולם. ונקי מפרסומות. -4. אנו אוהבים את מה שאנו עושים, ואנו אוהבים את המשתמשים שלנו ❤️. +תרומות קבועות עוזרות לנו לתכנן שיפורים לטווח ארוך. אנו מעריכים גם תרומות חד-פעמיות. -## למה פרויקט חינמי צריך כסף? + -1. בשנת 2023, Organic Maps השיגה את המיליון הראשון של משתמשים. השרתים שלנו מספקים מפות חינמיות, מהירות ומתעדכנות לכל העולם. -2. תמיכה במשתמשים, תיקון באגים ופרסום עדכוני אפליקציה איכותיים נמצאים בראש סדר העדיפויות שלנו. ישנם [~2000 דיווחי באגים ובקשות לתכונות ב-GitHub][github issues], ומספר זה גדל מדי יום. AppStore, Google Play וכתובות הדוא"ל לתמיכה מוצפים בתגובות ובאגים. אנו רוצים לספק מוצר באיכות גבוהה. -3. עם מספיק כסף, ניתן לפתח תכונות חדשות. למשל: - - גיבוי וסנכרון סימניות ומסלולים - - מקליט מסלולי GPS עם כלי לייצוא GPX - - צילומי לוויין - - תחבורה ציבורית - - דיווחי תנועה ותאונות - - תמונות וביקורות - - סגנונות מפה לפעילויות שונות - - הצללת גבעות ושטח תלת-ממדי - - עורך OpenStreetMap מתקדם יותר - - חיפוש כתובות אופליין, מסלולים וניווט טובים יותר - - … ו[תכונות רבות אחרות][github issues] שאתם רוצים ואוהבים +## דרכים נוספות לתרום {#other-ways} -## איך לתרום? +בחר את מסלול התשלום המתאים לך. -לחצו על סמל אמצעי התשלום העדיף עליכם להלן: +{{ }} -{{ }} +{{ }} -תרומות חוזרות הן הדרך הטובה ביותר להבטיח הכנסה יציבה יחסית לפרויקט ולהניע אותנו למשימות ויעדים ארוכי טווח. תרומות חד-פעמיות מוערכות גם כן. +{{ }} -### העברה בנקאית +## האם תוכלו לעזור לנו בדרך אחרת כלשהי? -{{ }} - -### קריפטו - -אנא שקלו לתרום מדי שנה כדי להפחית את סך העמלות. - -{{ }} - -## האם תוכלו לעזור לנו בדרך אחרת? - -כן! ישנן דרכים רבות לתמוך ב-Organic Maps. אנא ראו את דף [תרומה](@/contribute/index.he.md) לפרטים נוספים. - -{{ }} +כן! ישנן דרכים רבות לתמוך ב-Organic Maps. עיינו בדף [תרומות](@/contribute/index.he.md) לקבלת פרטים נוספים. diff --git a/content/donate/index.hi.md b/content/donate/index.hi.md index b0fb46f77..9c65eefe4 100644 --- a/content/donate/index.hi.md +++ b/content/donate/index.hi.md @@ -1,72 +1,41 @@ --- -title: Organic Maps के विकास का समर्थन करने के लिए दान करें -description: आपकी धनराशि सभी परियोजना-संबंधित खर्चों का भुगतान करती है और हमें Organic Maps को बेहतर बनाने के लिए प्रेरित करती है। +template: donate.html +title: "Organic Maps को सभी के लिए मुफ्त रखें" +description: "आपका दान नक्शा अपडेट, सुधार और स्वतंत्र विकास के लिए जाता है। मासिक, वार्षिक या एकमुश्त दान के साथ Organic Maps का समर्थन करें।" weight: 10 extra: menu_title: दान करें preview_image: donate/donate.png + bank_transfer_title: "बैंक ट्रांसफर" + crypto_title: "क्रिप्टो" --- -Organic Maps ऐप _सभी के लिए मुफ्त_ है, आपके **[दान][stripe]** के कारण **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +आपका दान नक्शे के अपडेट, सुधारों और विकास के लिए जाता है। Organic Maps को सभी के लिए मुफ्त बनाए रखने में मदद करें। -- कोई विज्ञापन नहीं -- कोई ट्रैकर नहीं -- कोई पंजीकरण नहीं -- कोई पुश नोटिफिकेशन नहीं -- ओपन सोर्स +**कोई विज्ञापन नहीं। कोई ट्रैकर नहीं। ओपन सोर्स।** -नीचे अपनी पसंदीदा भुगतान विधि की आइकन पर क्लिक करें: + -{{ }} +## आपका दान किस काम आता है -## Organic Maps को दान क्यों करें? +- **नवीनतम ऑफ़लाइन नक्शे।** दुनिया भर में नक्शों के नियमित अपडेट पहुँचाने में मदद करें। +- **एक बेहतर ऐप।** त्रुटियाँ ठीक करने, नेविगेशन सुधारने और नई सुविधाएँ जोड़ने में सहयोग करें। +- **स्वतंत्र विकास।** Organic Maps को सभी के लिए मुफ़्त और खुला रखने में मदद करें। -1. हमारा लक्ष्य Google Maps और Apple Maps के लिए एक गोपनीयता-केंद्रित, तेज़ और उपयोग में आसान विकल्प प्रदान करना है। -2. कई वेबसाइटों, ऐप्स और प्लेटफार्मों के लिए सार्वजनिक मानचित्र डेटा को बेहतर बनाना, जो OpenStreetMap का उपयोग करते हैं, और अधिक लोगों को मानचित्र जानकारी में योगदान देने के लिए प्रेरित करना हमारा दूसरा लक्ष्य है। -3. हम आपके दान पर निर्भर हैं ताकि Organic Maps सभी के लिए खुला और मुफ्त रह सके। - और विज्ञापनों से मुक्त रहे। -4. हम जो करते हैं उसे पसंद करते हैं, और अपने उपयोगकर्ताओं को भी ❤️। +नियमित दान हमें दीर्घकालिक सुधारों की योजना बनाने में मदद करते हैं। एकमुश्त दान की भी सराहना की जाती है। -## मुफ्त परियोजना को पैसे की आवश्यकता क्यों है? + -1. 2023 में, Organic Maps ने अपना पहला मिलियन उपयोगकर्ता प्राप्त किया। - हमारे सर्वर दुनिया भर में मुफ्त, तेज़ और बार-बार मानचित्र अपडेट प्रदान करते हैं। -2. उपयोगकर्ता सहायता, बग फिक्सिंग और गुणवत्ता ऐप अपडेट प्रकाशित करना हमारी सर्वोच्च प्राथमिकता है। - [GitHub पर ~2000 बग रिपोर्ट और फीचर अनुरोध][github issues] हैं, और यह संख्या हर दिन बढ़ रही है। - AppStore, Google Play, और समर्थन ईमेल टिप्पणियों और बग्स से भरे हुए हैं। हम उच्च गुणवत्ता वाला उत्पाद देना चाहते हैं। -3. पर्याप्त धनराशि के साथ, नई सुविधाएँ विकसित की जा सकती हैं। उदाहरण के लिए: - - बुकमार्क और ट्रैक का बैकअप और सिंक - - GPX निर्यात के साथ GPS ट्रैक रिकॉर्डर - - सैटेलाइट इमेजरी - - सार्वजनिक परिवहन - - ट्रैफिक और दुर्घटना रिपोर्टिंग - - फ़ोटो और समीक्षाएँ - - विभिन्न गतिविधियों के लिए मानचित्र शैलियाँ - - पहाड़ी छायांकन और 3D स्थलाकृति - - अधिक उन्नत OpenStreetMap संपादक - - बेहतर ऑफ़लाइन पता खोज, रूटिंग और नेविगेशन - - … और [कई अन्य][github issues] सुविधाएँ जो आप चाहते हैं और पसंद करते हैं +## दान करने के अन्य तरीके {#other-ways} -## दान कैसे करें? +अपने लिए उपयुक्त भुगतान मार्ग चुनें। -नीचे अपनी पसंदीदा भुगतान विधि की आइकन पर क्लिक करें: +{{ }} -{{ }} +{{ }} -नियमित दान परियोजना के लिए अपेक्षाकृत स्थिर आय सुनिश्चित करने और हमें दीर्घकालिक कार्यों और लक्ष्यों के लिए प्रेरित करने का सबसे अच्छा तरीका है। एक बार का दान भी सराहनीय है। +{{ }} -### बैंक ट्रांसफर +## क्या आप हमें किसी अन्य तरीके से मदद कर सकते हैं? -{{ }} - -### क्रिप्टो - -कृपया कुल शुल्क कम करने के लिए वार्षिक रूप से दान करने पर विचार करें। - -{{ }} - -## क्या आप किसी अन्य तरीके से मदद कर सकते हैं? - -हाँ! Organic Maps का समर्थन करने के कई तरीके हैं। अधिक जानकारी के लिए कृपया [योगदान करें](@/contribute/index.hi.md) पृष्ठ देखें। - -{{ }} +हाँ! Organic Maps का समर्थन करने के कई तरीके हैं। अधिक जानकारी के लिए [योगदान](@/contribute/index.hi.md) पृष्ठ देखें। diff --git a/content/donate/index.hu.md b/content/donate/index.hu.md index 70a0db5d3..aff965068 100644 --- a/content/donate/index.hu.md +++ b/content/donate/index.hu.md @@ -1,68 +1,41 @@ --- -description: "A pénzed fedezi a projekttel kapcsolatos összes kiadást, és motivál bennünket az Organic Maps jobbá tételéhez." +template: donate.html +description: "Adományoddal a térképfrissítéseket, a hibajavításokat és a független fejlesztést támogatod. Támogasd az Organic Maps-et havi, éves vagy egyszeri adománnyal." extra: menu_title: Adományozás preview_image: donate/donate.png -title: "Adományozz az Organic Maps fejlesztésének támogatására" + bank_transfer_title: "Banki átutalás" + crypto_title: "Kriptovaluta" +title: "Segíts, hogy az Organic Maps mindenki számára ingyenes maradjon" weight: 10 --- -Az Organic Maps alkalmazás _mindenki számára ingyenes_ az **[adományoknak][stripe]** köszönhetően, **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]** pénznemben: +Adományoddal hozzájárulsz a térképek frissítéséhez, hibajavításához és fejlesztéséhez. Segíts abban, hogy Organic Maps mindenki számára ingyenes maradjon! -- Nincsenek hirdetések -- Nincsenek nyomkövetők -- Nincs regisztráció -- Nincsenek leküldéses értesítések -- Nyílt forráskódú +**Nincs reklám. Nincs nyomkövető. Nyílt forráskódú.** -Kattints a kívánt fizetési mód ikonjára lentebb: + -{{ }} +## Mit támogat az adományod -## Miért adományozz az Organic Maps-nek? +- **Friss offline térképek.** Segíts a rendszeres térképfrissítések eljuttatásában a világ minden tájára. +- **Jobb alkalmazás.** Támogasd a hibajavításokat, a navigáció fejlesztését és az új funkciókat. +- **Független fejlesztés.** Segíts, hogy az Organic Maps mindenki számára ingyenes és nyílt maradjon. -1. Célunk, hogy egy adatvédelmi szempontokat figyelembe vevő, gyors és könnyen használható alternatíváját nyújtsuk a Google Maps és az Apple Maps helyett. -2. További célunk az OpenStreetMapet használó számos weboldal, alkalmazás és platform nyilvános térképadatainak javítása, valamint több ember bevonása a térképadatok szerkesztésébe. -3. Az adományaidra támaszkodunk, hogy teljesíteni tudjuk küldetésünket, hogy az Organic Maps nyitott és szabad maradjon. MIndezt hirdetések nélkül. -4. Szeretjük, amit csinálunk, és szeretjük a felhasználóinkat ❤️. +A rendszeres adományok segítenek nekünk a hosszú távú fejlesztések megtervezésében. Az egyszeri adományokat is nagyra értékeljük. -## Miért kell pénz egy ingyenes projekthez? + -1. 2023-ban az Organic Maps elérte az első egymillió regisztrált felhasználóját. Kiszolgálóink ingyenes, gyors és gyakori térképfrissítéseket biztosítanak a világ minden tájáról. -2. A felhasználói segítség, a hibajavítás és az alkalmazás stabilitásának javítása a prioritások között az első helyen áll. GitHubon [1800+ hibanapló van megnyitva][github issues], és ez a szám napról napra nő. Az AppStore, a Google Play és a támogatási e-maileket elárasztják a megjegyzések és a hibák. Minőségi terméket akarunk előállítani. -3. Elegendő pénzzel például gyorsabban tudunk új funkciókat fejleszteni, mint például: - - Biztonsági mentés, továbbá a könyvjelzők- és nyomvonalak szinkronizálása - - GPS-nyomvonalrögzítés GPX-támogatással - - Műholdképek - - Tömegközlekedés - - Forgalmi és baleseti jelentések - - Képek és vélemények - - Jobb térképtémák a különböző tevékenységekhez - - Domborzatárnyékolás és 3D terep - - Fejlettebb OpenStreetMap szerkesztő - - Jobb offline címkeresés, útvonaltervezés és navigáció - - … és még [sok más][github issues] funkciót, amit ismersz és szeretnél +## Egyéb adományozási lehetőségek {#other-ways} -## Hogyan adományozhatsz? +Válaszd a neked megfelelő fizetési módot. -Kattints a kívánt fizetési mód ikonjára lentebb: +{{ }} -{{ }} +{{ }} -Az ismétlődő adományok a legjobb módja annak, hogy viszonylag stabil bevételt biztosítsunk a projekt számára és motiváljanak minket a hosszú távú feladatok és célok megvalósításában. De egyszeri adományozásra is van lehetőség. +{{ }} -### Banki átutalás +## Tudsz más módon is segíteni? -{{ }} - -### Kriptovaluta - -Fontold meg az éves adományozást, hogy csökkentsd a teljes díjat. - -{{ }} - -## Tudsz más módon is segíteni nekünk? - -Igen! Sokféleképpen lehet támogatni az Organic Maps-et. További részletekért tekintsd meg a [Közreműködés](@/contribute/index.hu.md) oldalt. - -{{ }} +Igen! Számos módon támogathatod az Organic Maps-et. További részletekért nézd meg a [Közreműködés](@/contribute/index.hu.md) oldalt. diff --git a/content/donate/index.id.md b/content/donate/index.id.md index 9c8c8b000..a496786d8 100644 --- a/content/donate/index.id.md +++ b/content/donate/index.id.md @@ -1,68 +1,41 @@ --- -description: "Uang kamu membayar semua pengeluaran yang terkait dengan proyek dan memotivasi kami untuk meningkatkan Organic Maps." +template: donate.html +description: "Sumbangan kamu digunakan untuk membiayai pembaruan peta, perbaikan, dan pengembangan mandiri. Dukung Organic Maps dengan sumbangan bulanan, tahunan, atau sekali saja." extra: menu_title: Donasi preview_image: donate/donate.png -title: "Berdonasi untuk mendukung pengembangan Organic Maps" + bank_transfer_title: "Transfer Bank" + crypto_title: "Kripto" +title: "Jaga agar Organic Maps tetap gratis bagi semua orang" weight: 10 --- -Aplikasi Organic Maps _gratis untuk semua orang_ berkat **[donasi][stripe]** dalam **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]**: +Sumbangan kamu digunakan untuk membiayai pembaruan peta, perbaikan, dan pengembangan. Bantu jaga agar Organic Maps tetap gratis bagi semua orang. -- Tanpa iklan -- Tanpa pelacak -- Tanpa pendaftaran -- Tanpa pemberitahuan dorong -- Sumber terbuka +**Tanpa iklan. Tanpa pelacak. Sumber terbuka.** -Klik ikon metode pembayaran yang diinginkan di bawah ini: + -{{ }} +## Apa yang didukung donasimu -## Mengapa berdonasi ke Organic Maps? +- **Peta offline terbaru.** Bantu menyediakan pembaruan peta secara rutin di seluruh dunia. +- **Aplikasi yang lebih baik.** Dukung perbaikan bug, peningkatan navigasi, dan fitur baru. +- **Pengembangan mandiri.** Bantu menjaga Organic Maps tetap gratis dan terbuka untuk semua orang. -1. Misi kami adalah membuat alternatif Google Maps dan Apple Maps yang berfokus pada privasi, cepat, dan mudah untuk digunakan. -2. Meningkatkan data peta umum untuk berbagai situs web, aplikasi, dan platform yang menggunakan OpenStreetMap, dan mengajak orang-orang lain dalam berkontribusi informasi peta adalah misi tambahan kami. -3. Kami mengandalkan donasi kamu untuk menjalankan misi kami agar Organic Maps tetap terbuka dan bebas. Dan bebas dari iklan. -4. Kami mencintai apa yang kami lakukan, dan kami mencintai pengguna kami. ❤️ +Sumbangan rutin membantu kami merencanakan perbaikan jangka panjang. Sumbangan satu kali juga sangat kami hargai. -## Mengapa proyek yang bebas memerlukan dana? + -1. Di tahun 2023, Organic Maps mendapatkan sejuta pengguna pertama. Server kami menyediakan pembaruan peta yang gratis, cepat, dan terkini di seluruh dunia. -2. Dukungan pengguna, perbaikan kutu, dan peningkatan stabilitas aplikasi adalah prioritas utama kami. Ada [1800+ masalah di GitHub][github issues], dan jumlah ini terus bertambah setiap hari. App Store, Google Play, dan email dukungan dibanjiri dengan komentar dan kutu. Kami ingin memberikan produk berkualitas tinggi. -3. Dengan uang yang cukup, fitur baru bisa dikembangkan lebih cepat, misalnya: - - Cadangkan dan sinkron markah dan trek - - Perekam trek GPS dengan dukungan GPX - - Citra satelit - - Transportasi umum - - Pelaporan kemacetan dan kecelakaan - - Foto dan Ulasan - - Gaya peta yang lebih baik untuk aktivitas yang berbeda - - Bayangan bukit dan medan 3D - - Memperbaiki penyunting OpenStreetMap - - Pencarian alamat, perutean, dan navigasi luring yang lebih baik - - … dan [banyak fitur lain][github issues] yang kamu inginkan dan sukai +## Cara lain untuk berdonasi {#other-ways} -## Bagaimana cara berdonasi? +Pilihlah metode pembayaran yang sesuai dengan kebutuhan kamu. -Klik ikon metode pembayaran yang diinginkan di bawah ini: +{{ }} -{{ }} +{{ }} -Donasi berulang adalah cara terbaik untuk memastikan pendapatan yang relatif stabil untuk proyek dan memotivasi kami untuk tugas dan tujuan jangka panjang. Tetapi kamu juga dapat menyumbang satu kali. +{{ }} -### Transfer Bank +## Apakah kamu bisa membantu kami dengan cara lain? -{{ }} - -### Kripto - -Silakan pertimbangkan untuk menyumbang setiap tahun untuk mengurangi total biaya. - -{{ }} - -## Dapatkah kamu membantu kami dengan cara lain? - -Ya! Ada banyak cara untuk mendukung Organic Maps. Silakan lihat halaman [Dukung Kami](@/contribute/index.id.md) untuk lebih jelasnya. - -{{ }} +Ya! Ada banyak cara untuk mendukung Organic Maps. Lihat halaman [Berkontribusi](@/contribute/index.id.md) untuk detail lebih lanjut. diff --git a/content/donate/index.it.md b/content/donate/index.it.md index 986942dd1..88080253a 100644 --- a/content/donate/index.it.md +++ b/content/donate/index.it.md @@ -1,68 +1,41 @@ --- -title: "Fai una donazione per sostenere lo sviluppo di Organic Maps" -description: "I tuoi soldi coprono tutte le spese relative al progetto e ci spingono a migliorare Organic Maps." +template: donate.html +title: "Fai in modo che Organic Maps rimanga gratuito per tutti" +description: "La tua donazione serve a finanziare gli aggiornamenti delle mappe, le correzioni e lo sviluppo indipendente. Sostieni Organic Maps con una donazione mensile, annuale o una tantum." weight: 10 extra: menu_title: "Fai una donazione" preview_image: donate/donate.png + bank_transfer_title: "Bonifico bancario" + crypto_title: "Criptovalute" --- -L'app Organic Maps è _gratuita per tutti_ grazie alle tue **[donazioni][stripe]** in **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +La tua donazione serve a finanziare gli aggiornamenti, le correzioni e lo sviluppo delle mappe. Aiutaci a mantenere Organic Maps gratuito per tutti. -- Nessuna pubblicità -- Nessun tracker -- Non è richiesta la registrazione -- Nessuna notifica push -- Open source +**Niente pubblicità. Niente tracker. Open source.** -Clicca sull'icona del metodo di pagamento che preferisci qui sotto: + -{{ }} +## Cosa rende possibile la tua donazione -## Perché fare una donazione a Organic Maps? +- **Mappe offline aggiornate.** Aiutaci a fornire aggiornamenti frequenti delle mappe in tutto il mondo. +- **Un’app migliore.** Sostieni la correzione dei bug, i miglioramenti della navigazione e le nuove funzioni. +- **Sviluppo indipendente.** Aiuta a mantenere Organic Maps gratuito e aperto a tutti. -1. Il nostro obiettivo è offrire un'alternativa a Google Maps e Apple Maps che sia attenta alla privacy, veloce e facile da usare. -2. Un altro dei nostri obiettivi è migliorare i dati cartografici pubblici per i tanti siti web, app e piattaforme che usano OpenStreetMap, e coinvolgere più persone nel contribuire con informazioni cartografiche. -3. Contiamo sulle tue donazioni per mantenere Organic Maps attivo e gratuito per tutti. E senza pubblicità. -4. Adoriamo quello che facciamo e adoriamo i nostri utenti ❤️. +Le donazioni regolari ci aiutano a pianificare miglioramenti a lungo termine. Anche le donazioni una tantum sono ben accette. -## Perché un progetto gratuito ha bisogno di soldi? + -1. Nel 2023, Organic Maps ha raggiunto il suo primo milione di utenti. I nostri server offrono aggiornamenti delle mappe gratuiti, veloci e frequenti in tutto il mondo. -2. L'assistenza agli utenti, la correzione dei bug e la pubblicazione di aggiornamenti di qualità per l'app sono in cima alle nostre priorità. Su GitHub ci sono [circa 2000 segnalazioni di bug e richieste di nuove funzionalità][github issues], e questo numero cresce ogni giorno. L'App Store, Google Play e le email di assistenza sono sommersi da commenti e segnalazioni di bug. Vogliamo offrirti un prodotto di alta qualità. -3. Se ci sono abbastanza soldi, si possono sviluppare nuove funzionalità. Per citarne alcune: - - Esegui il backup e sincronizza i segnalibri e le tracce - - Registratore di tracciati GPS con esportazione in formato GPX - - Immagini satellitari - - Trasporto pubblico - - Notizie su traffico e incidenti - - Foto e recensioni - - Stili di mappa per diverse attività - - Ombreggiatura delle colline e terreno 3D - - Editor OpenStreetMap più avanzato - - Ricerca degli indirizzi, calcolo del percorso e navigazione offline migliorati - - … e [tante altre][github issues] funzionalità che desideri e che adori +## Altri modi per fare una donazione {#other-ways} -## Come fare una donazione? +Scegli il percorso di pagamento che fa per te. -Clicca sull'icona del metodo di pagamento che preferisci qui sotto: +{{ }} -{{ }} +{{ }} -Le donazioni ricorrenti sono il modo migliore per garantire un reddito relativamente stabile al progetto e darci la motivazione necessaria per affrontare compiti e obiettivi a lungo termine. Anche le donazioni una tantum sono ben accette. - -### Bonifico bancario - -{{ }} - -### Criptovalute - -Ti invitiamo a prendere in considerazione la possibilità di fare una donazione annuale per ridurre le spese complessive. - -{{ }} +{{ }} ## Puoi darci una mano in qualche altro modo? -Sì! Ci sono tanti modi per sostenere Organic Maps. Dai un’occhiata alla pagina [“Contribuisci”](@/contribute/index.it.md) per maggiori dettagli. - -{{ }} +Sì! Ci sono tanti modi per sostenere Organic Maps. Dai un’occhiata alla pagina [Contribuisci](@/contribute/index.it.md) per saperne di più. diff --git a/content/donate/index.ja.md b/content/donate/index.ja.md index 2416933b8..6527a3b4c 100644 --- a/content/donate/index.ja.md +++ b/content/donate/index.ja.md @@ -1,73 +1,41 @@ --- -title: Organic Maps の開発を支援するために寄付する -description: あなたの資金はプロジェクト関連のすべての費用を支払い、私たちが Organic Maps を改善する動機となります。 +template: donate.html +title: "Organic Mapsを誰もが無料で利用できるようにしよう" +description: "皆様からの寄付は、地図の更新、不具合の修正、および独立した開発に充てられる。Organic Mapsを、月額、年額、または単発の寄付で支援してほしい。" weight: 10 extra: menu_title: 寄付 preview_image: donate/donate.png + bank_transfer_title: "銀行振込" + crypto_title: "暗号通貨" --- -Organic Maps アプリは、あなたの **[寄付][stripe]** のおかげで **_[すべての人にとって無料]_** です (**[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]** に対応): +皆様からの寄付は、地図の更新、不具合の修正、および開発に充てられる。Organic Mapsを誰もが無料で利用できるよう、ご協力をお願いしたい。 -- 広告なし -- トラッカーなし -- 登録なし -- プッシュ通知なし -- オープンソース +**広告なし。トラッカーなし。オープンソース。** -お好みの支払い方法のアイコンをクリックしてください: + -{{ }} +## 寄付で支えられること -## なぜ Organic Maps に寄付するのですか? +- **最新のオフライン地図。**世界中に定期的な地図更新を届ける活動を支える。 +- **より使いやすいアプリ。**不具合の修正、ナビゲーションの改善、新機能の開発を支える。 +- **独立した開発。**Organic Mapsを誰もが無料で使える、開かれたアプリとして維持する。 -1. 私たちの目標は、プライバシー重視で高速かつ使いやすい Google マップ / Apple マップの代替を提供することです。 -2. OpenStreetMap を利用する多くのウェブサイト、アプリ、プラットフォームのために公開地図データを改善し、地図情報に貢献する人々を増やすことも私たちの目標です。 -3. Organic Maps を誰にとってもオープンで無料に保つため、あなたの寄付に頼っています。 - そして広告からも自由です。 -4. 私たちは自分の仕事を愛し、ユーザーを愛しています ❤️。 +定期的な寄付は、長期的な改善計画を立てる上で大きな助けとなる。一回限りの寄付も大歓迎だ。 -## なぜ無料プロジェクトに資金が必要なのか? + -1. 2023年、Organic Maps は最初の100万ユーザーを獲得しました。 - 私たちのサーバーは、世界中で高速で頻繁な地図更新を無料で提供しています。 -2. ユーザーサポート、バグ修正、品質の高いアプリ更新の公開が私たちの最優先事項です。 - [GitHub 上には約2000件のバグ報告と機能リクエスト][github issues] があり、この数は日々増加しています。 - AppStore、Google Play、そしてサポートメールにはコメントやバグが溢れています。私たちは高品質な製品を提供したいと考えています。 -3. 十分な資金があれば、新しい機能を開発できます。いくつか例を挙げると: - - ブックマークとトラックのバックアップと同期 - - GPX エクスポート付きの GPS トラックレコーダー - - 衛星画像 - - 公共交通機関 - - 交通情報と事故報告 - - 写真とレビュー - - アクティビティ別の地図スタイル - - ヒルシェーディングと 3D 地形 - - より高度な OpenStreetMap エディター - - より高度なオフライン住所検索、ルート案内、ナビゲーション - - … そしてお客様が望み、愛してやまない [他の多くの機能][github issues] +## その他の寄付方法 {#other-ways} -## 寄付の方法は? +ご自身に合った支払い方法を選んでください。 -お好みの支払い方法のアイコンをクリックしてください: +{{ }} -{{ }} +{{ }} -継続的な寄付は、プロジェクトにとって比較的安定した収入を確保し、長期的なタスクと目標に対する私たちの動機付けとなります。一度きりの寄付も大変ありがたく思います。 +{{ }} -### 銀行振込 +## 他に何かお手伝いできることはあるか? -{{ }} - -### 暗号通貨 - -手数料の総額を削減するため、年間での寄付をご検討ください。 - -{{ }} - -## 他に支援する方法はありますか? - -はい! Organic Maps を支援する方法はたくさんあります。詳細については -[貢献する](@/contribute/index.ja.md) ページをご覧ください。 - -{{ }} +もちろん!Organic Mapsを支援する方法はたくさんある。詳しくは[貢献](@/contribute/index.ja.md)のページを見てほしい。 diff --git a/content/donate/index.lt.md b/content/donate/index.lt.md index 273317b5b..46b724e43 100644 --- a/content/donate/index.lt.md +++ b/content/donate/index.lt.md @@ -1,68 +1,41 @@ --- -title: "Paaukokite, kad paremtumėte Organic Maps plėtrą" -description: "Jūsų pinigai padengia visas su projektu susijusias išlaidas ir skatina mus tobulinti Organic Maps." +template: donate.html +title: "Kad Organic Maps liktų nemokama visiems" +description: "Jūsų auka padeda finansuoti žemėlapių atnaujinimus, klaidų taisymą ir nepriklausomą plėtrą. Paremkite Organic Maps mėnesine, metine arba vienkartine auka." weight: 10 extra: menu_title: Paremkite preview_image: donate/donate.png + bank_transfer_title: "Bankinis pavedimas" + crypto_title: "Kriptovaliuta" --- -Organic Maps programa _visiems_ yra _nemokama_ dėka jūsų **[aukų][stripe]** **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]** valiutomis: +Jūsų auka padeda finansuoti žemėlapių atnaujinimus, klaidų taisymą ir tobulinimą. Padėkite užtikrinti, kad Organic Maps ir toliau būtų nemokama visiems. -- Be reklamų -- Jokių sekimo įrenginių -- Nereikia registruotis -- Nėra pranešimų -- Atvirojo kodo +**Be reklamų. Be sekimo programų. Atvirojo kodo.** -Spustelėkite žemiau esančią pageidaujamo mokėjimo būdo piktogramą: + -{{ }} +## Ką padeda finansuoti jūsų auka -## Kodėl verta paaukoti Organic Maps? +- **Aktualūs žemėlapiai be interneto ryšio.** Padėkite teikti dažnus žemėlapių atnaujinimus visame pasaulyje. +- **Geresnė programėlė.** Remkite klaidų taisymą, navigacijos tobulinimą ir naujas funkcijas. +- **Nepriklausomas vystymas.** Padėkite išlaikyti Organic Maps nemokamą ir atvirą visiems. -1. Mūsų tikslas – pasiūlyti į privatumą orientuotą, greitą ir patogią naudoti alternatyvą „Google Maps“ ir „Apple Maps“. -2. Kitas mūsų tikslas – tobulinti viešus žemėlapių duomenis daugybei interneto svetainių, programėlių ir platformų, kurios naudoja OpenStreetMap, bei įtraukti daugiau žmonių į žemėlapių informacijos teikimą. -3. Norėdami, kad Organic Maps ir toliau veiktų bei būtų nemokama visiems, mes remiamės jūsų aukomis. Be to, ji yra be reklamų. -4. Mums patinka tai, ką darome, ir mes mylime savo vartotojus ❤️. +Reguliarios aukos padeda mums planuoti ilgalaikius patobulinimus. Taip pat dėkojame už vienkartines aukas. -## Kodėl nemokamam projektui reikia pinigų? + -1. 2023 m. Organic Maps pasiekė pirmąjį milijoną vartotojų. Mūsų serveriai visame pasaulyje teikia nemokamus, greitus ir dažnus žemėlapių atnaujinimus. -2. Vartotojų palaikymas, klaidų taisymas ir kokybiškų programėlės atnaujinimų išleidimas yra mūsų pagrindiniai prioritetai. „GitHub“ yra [apie 2000 pranešimų apie klaidas ir pageidavimų dėl naujų funkcijų][github issues], o šis skaičius kasdien auga. App Store, Google Play ir palaikymo el. pašto dėžutės yra užtvindytos komentarais ir pranešimais apie klaidas. Norime pateikti aukštos kokybės produktą. -3. Turint pakankamai lėšų, galima kurti naujas funkcijas. Pateiksiu keletą pavyzdžių: - - Žymių ir trasų atsarginės kopijos kūrimas ir sinchronizavimas - - GPS maršruto įrašymo įrenginys su GPX eksporto funkcija - - Palydovinės nuotraukos - - Viešasis transportas - - Pranešimai apie eismo situaciją ir eismo įvykius - - Nuotraukos ir atsiliepimai - - Žemėlapių stiliai skirtingoms veikloms - - Reljefo šešėliavimas ir 3D reljefas - - Išplėstinis OpenStreetMap redaktorius - - Geresnė adresų paieška, maršrutų planavimas ir navigacija neprisijungus prie interneto - - … ir [daugybė kitų][github issues] funkcijų, kurių norite ir kurias mėgstate +## Kiti būdai paaukoti {#other-ways} -## Kaip paaukoti? +Pasirinkite jums tinkamą mokėjimo maršrutą. -Spustelėkite žemiau esančią pageidaujamo mokėjimo būdo piktogramą: +{{ }} -{{ }} +{{ }} -Reguliarios aukos – tai geriausias būdas užtikrinti palyginti stabilias projekto pajamas ir mus motyvuoti siekti ilgalaikių uždavinių bei tikslų. Taip pat dėkojame už vienkartines aukas. - -### Bankinis pavedimas - -{{ }} - -### Kriptovaliuta - -Prašome apsvarstyti galimybę kasmet aukoti, kad būtų sumažinti bendri mokesčiai. - -{{ }} +{{ }} ## Ar galėtumėte mums padėti kokiu nors kitu būdu? -Taip! Yra daug būdų, kaip paremti Organic Maps. Daugiau informacijos rasite puslapyje [„Prisidėkite“](@/contribute/index.lt.md). - -{{ }} +Taip! Yra daugybė būdų, kaip paremti Organic Maps. Daugiau informacijos rasite puslapyje [Prisidėkite](@/contribute/index.lt.md). diff --git a/content/donate/index.md b/content/donate/index.md index f1d3a0e85..09bc1e0a0 100644 --- a/content/donate/index.md +++ b/content/donate/index.md @@ -1,68 +1,41 @@ --- -title: Donate to support the development of Organic Maps -description: Your money pays for all project-related expenses and motivates us to improve Organic Maps. +title: Keep Organic Maps free for everyone +description: Your donation pays for map updates, fixes and independent development. Support Organic Maps with a monthly, yearly or one-time donation. +template: donate.html weight: 10 extra: menu_title: Donate preview_image: donate/donate.png + bank_transfer_title: Bank transfer + crypto_title: Crypto --- -Organic Maps app is _free for everyone_ thanks to your **[donations][stripe]** in **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +Your donation pays for map updates, fixes and development. Help keep Organic Maps free for everyone. -- No ads -- No trackers -- No registration -- No push notifications -- Open source +**No ads. No trackers. Open source.** -Click on your preferred payment method icon below: + -{{ }} +## What your donation supports -## Why donate to Organic Maps? +- **Fresh offline maps.** Help deliver frequent map updates around the world. +- **A better app.** Support bug fixes, navigation improvements and new features. +- **Independent development.** Keep Organic Maps free and open for everyone. -1. Our goal is to provide a privacy-focused, fast and easy-to-use alternative to Google Maps and Apple Maps. -2. Improving public map data for the numerous websites, apps and platforms which use OpenStreetMap, and involving more people in contributing map info is our another goal. -3. We rely on your donations to keep Organic Maps open and free for everyone. And free from ads. -4. We love what we do, and we love our users ❤️. +Regular donations help us plan long-term improvements. One-time donations are appreciated too. -## Why a free project needs money? + -1. In 2023, Organic Maps got its first million users. Our servers provide free, fast and frequent map updates all over the world. -2. User support, bugfixing and publishing quality app updates are at the top of our priorities. There are [~2000 bug reports and feature requests on GitHub][github issues], and this number is growing every day. AppStore, Google Play, and support emails are overflooded with comments and bugs. We want to deliver a high-quality product. -3. With enough money, new features can be developed. To name a few: - - Backup and sync bookmarks and tracks - - GPS track recorder with GPX export - - Satellite imagery - - Public Transport - - Traffic and accident reporting - - Photos and Reviews - - Map styles for different activities - - Hill shading and 3D terrain - - More advanced OpenStreetMap editor - - Better offline address search, routing, and navigation - - … and [many other][github issues] features you want and love +## Other ways to donate {#other-ways} -## How to donate? +Choose a payment route that works for you. -Click on your preferred payment method icon below: +{{ }} -{{ }} +{{ }} -Recurring donations are the best way to ensure a relatively stable income for the project and motivate us for long-term tasks and goals. One-time donations are appreciated too. - -### Bank Transfer - -{{ }} - -### Crypto - -Please consider donating annually to reduce total fees. - -{{ }} +{{ }} ## Can you help us in any other way? -Yes! There are many ways to support Organic Maps. Please see [Contribute](@/contribute/index.md) page for more details. - -{{ }} +Yes! There are many ways to support Organic Maps. See the [Contribute](@/contribute/index.md) page for more details. diff --git a/content/donate/index.ml.md b/content/donate/index.ml.md index 17a72fbb5..90ce61d9c 100644 --- a/content/donate/index.ml.md +++ b/content/donate/index.ml.md @@ -1,68 +1,41 @@ --- -title: Organic Maps ന്റെ വികസനത്തെ പിന്തുണയ്ക്കുക -description: നിങ്ങളുടെ പണം പദ്ധതിയുമായി ബന്ധപ്പെട്ട എല്ലാ ചെലവുകൾക്കും നൽകുകയും Organic Maps മെച്ചപ്പെടുത്താൻ ഞങ്ങളെ പ്രേരിപ്പിക്കുകയും ചെയ്യുന്നു. +template: donate.html +title: "Organic Maps എല്ലാവർക്കും സൗജന്യമായി നിലനിർത്തുക" +description: "നിങ്ങളുടെ സംഭാവന മാപ്പ് അപ്ഡേറ്റുകൾ, പരിഹാരങ്ങൾ, സ്വതന്ത്ര വികസനം എന്നിവയ്ക്ക് പണം നൽകുന്നു. പ്രതിമാസ, വാർഷിക അല്ലെങ്കിൽ ഒറ്റത്തവണ സംഭാവനയിലൂടെ Organic Maps-നെ പിന്തുണയ്ക്കുക." weight: 10 extra: menu_title: സംഭാവനചെയ്യുക preview_image: donate/donate.png + bank_transfer_title: "ബാങ്ക് കൈമാറ്റം" + crypto_title: "ക്രിപ്റ്റോ" --- -**[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]** എന്നിവയിലുള്ള നിങ്ങളുടെ **[സംഭാവനകൾ][stripe]** കൊണ്ടാണ് Organic Maps ആപ്പ് _എല്ലാവർക്കും സൗജന്യമായിരിക്കുന്നത്_: +നിങ്ങളുടെ സംഭാവന മാപ്പിന്റെ അപ്‌ഡേറ്റുകൾ, പരിഹാരങ്ങൾ, വികസനം എന്നിവയ്ക്ക് പണം നൽകുന്നു. Organic Maps എല്ലാവർക്കും സൗജന്യമായി നിലനിർത്താൻ സഹായിക്കുക. -- പരസ്യങ്ങളില്ല -- ട്രാക്കറുകളില്ല -- രജിസ്ട്രേഷനില്ല -- പുഷ് നോട്ടിഫിക്കേഷനുകളില്ല -- ഓപ്പൺ സോഴ്‌സ് +**പരസ്യങ്ങളില്ല. ട്രാക്കറുകളില്ല. ഓപ്പൺ സോഴ്സ്.** -താഴെ നിങ്ങളുടെ ഇഷ്ടപ്പെട്ട പേയ്‌മെന്റ് രീതിയുടെ ഐക്കണിൽ ക്ലിക്ക് ചെയ്യുക: + -{{ }} +## നിങ്ങളുടെ സംഭാവന എന്തെല്ലാം പിന്തുണയ്ക്കുന്നു -## എന്തുകൊണ്ട് Organic Maps-ന് സംഭാവന നൽകണം? +- **പുതിയ ഓഫ്‌ലൈൻ മാപ്പുകൾ.** ലോകമെമ്പാടും പതിവായി മാപ്പ് അപ്‌ഡേറ്റുകൾ എത്തിക്കാൻ സഹായിക്കുക. +- **മെച്ചപ്പെട്ട ആപ്പ്.** പിഴവുകൾ പരിഹരിക്കാനും നാവിഗേഷൻ മെച്ചപ്പെടുത്താനും പുതിയ സവിശേഷതകൾ വികസിപ്പിക്കാനും പിന്തുണ നൽകുക. +- **സ്വതന്ത്ര വികസനം.** Organic Maps എല്ലാവർക്കും സൗജന്യവും തുറന്നതുമായി നിലനിർത്താൻ സഹായിക്കുക. -1. Google Maps-നും Apple Maps-നും പകരമായി, സ്വകാര്യതയ്ക്ക് പ്രാധാന്യം നൽകുന്നതും വേഗതയേറിയതും ഉപയോഗിക്കാൻ എളുപ്പമുള്ളതുമായ ഒരു ബദൽ നൽകുക എന്നതാണ് ഞങ്ങളുടെ ലക്ഷ്യം. -2. OpenStreetMap ഉപയോഗിക്കുന്ന നിരവധി വെബ്‌സൈറ്റുകൾക്കും ആപ്പുകൾക്കും പ്ലാറ്റ്‌ഫോമുകൾക്കും വേണ്ടി പൊതു മാപ്പ് ഡാറ്റ മെച്ചപ്പെടുത്തുന്നതും, മാപ്പ് വിവരങ്ങൾ നൽകുന്നതിൽ കൂടുതൽ ആളുകളെ പങ്കാളികളാക്കുന്നതും ഞങ്ങളുടെ മറ്റൊരു ലക്ഷ്യമാണ്. -3. എല്ലാവർക്കുമായി Organic Maps തുറന്നതും സൗജന്യവുമായി നിലനിർത്താൻ ഞങ്ങൾ നിങ്ങളുടെ സംഭാവനകളെ ആശ്രയിക്കുന്നു. പരസ്യങ്ങളിൽ നിന്നും മുക്തമായി. -4. ഞങ്ങൾ ചെയ്യുന്നത് ഞങ്ങൾക്ക് ഇഷ്ടമാണ്, ഞങ്ങളുടെ ഉപയോക്താക്കളെയും ഞങ്ങൾക്ക് ഇഷ്ടമാണ് ❤️. +സ്ഥിരമായ സംഭാവനകൾ ദീർഘകാല മെച്ചപ്പെടുത്തലുകൾ ആസൂത്രണം ചെയ്യാൻ ഞങ്ങളെ സഹായിക്കുന്നു. ഒറ്റത്തവണ സംഭാവനകളും വിലമതിക്കപ്പെടുന്നു. -## ഒരു സൗജന്യ പദ്ധതിക്ക് എന്തിനാണ് പണം വേണ്ടത്? + -1. 2023-ൽ Organic Maps-ന് അതിന്റെ ആദ്യ ദശലക്ഷം ഉപയോക്താക്കളെ ലഭിച്ചു. ഞങ്ങളുടെ സെർവറുകൾ ലോകമെമ്പാടും സൗജന്യവും വേഗതയേറിയതും പതിവായതുമായ മാപ്പ് അപ്‌ഡേറ്റുകൾ നൽകുന്നു. -2. ഉപയോക്തൃ പിന്തുണ, ബഗ്ഗുകൾ പരിഹരിക്കൽ, ഗുണമേന്മയുള്ള ആപ്പ് അപ്‌ഡേറ്റുകൾ പ്രസിദ്ധീകരിക്കൽ എന്നിവയാണ് ഞങ്ങളുടെ പ്രധാന മുൻഗണനകൾ. [GitHub-ൽ ഏകദേശം 2000 ബഗ് റിപ്പോർട്ടുകളും സവിശേഷതകൾക്കുള്ള അഭ്യർത്ഥനകളും][github issues] ഉണ്ട്, ഈ എണ്ണം ഓരോ ദിവസവും വർദ്ധിച്ചുകൊണ്ടിരിക്കുന്നു. AppStore, Google Play, സപ്പോർട്ട് ഇമെയിലുകൾ എന്നിവ കമന്റുകളും ബഗ്ഗുകളും കൊണ്ട് നിറഞ്ഞിരിക്കുകയാണ്. ഉയർന്ന നിലവാരമുള്ള ഒരു ഉൽപ്പന്നം നൽകാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. -3. മതിയായ പണം ഉണ്ടെങ്കിൽ, പുതിയ സവിശേഷതകൾ വികസിപ്പിക്കാൻ കഴിയും. ചിലത് പറയാം: - - ബുക്ക്‌മാർക്കുകളും ട്രാക്കുകളും ബാക്കപ്പ് ചെയ്യലും സിങ്ക് ചെയ്യലും - - GPX എക്സ്പോർട്ട് ഉള്ള GPS ട്രാക്ക് റെക്കോർഡർ - - ഉപഗ്രഹ ചിത്രങ്ങൾ - - പൊതു ഗതാഗതം - - ഗതാഗതവും അപകടങ്ങളും റിപ്പോർട്ട് ചെയ്യൽ - - ഫോട്ടോകളും അവലോകനങ്ങളും - - വിവിധ പ്രവർത്തനങ്ങൾക്കുള്ള മാപ്പ് ശൈലികൾ - - മലനിരകളുടെ നിഴൽപ്പാടും 3D ഭൂപ്രദേശവും - - കൂടുതൽ നൂതനമായ OpenStreetMap എഡിറ്റർ - - മെച്ചപ്പെട്ട ഓഫ്‌ലൈൻ വിലാസ തിരയൽ, റൂട്ടിംഗ്, നാവിഗേഷൻ - - … നിങ്ങൾ ആഗ്രഹിക്കുകയും ഇഷ്ടപ്പെടുകയും ചെയ്യുന്ന [മറ്റ് നിരവധി][github issues] സവിശേഷതകളും +## ദാനം ചെയ്യാനുള്ള മറ്റ് വഴികൾ {#other-ways} -## എങ്ങനെ സംഭാവന ചെയ്യാം? +നിങ്ങൾക്ക് സൗകര്യപ്രദമായ ഒരു പേയ്‌മെൻ്റ് മാർഗ്ഗം തിരഞ്ഞെടുക്കുക. -താഴെ നിങ്ങളുടെ ഇഷ്ടപ്പെട്ട പേയ്‌മെന്റ് രീതിയുടെ ഐക്കണിൽ ക്ലിക്ക് ചെയ്യുക: +{{ }} -{{ }} +{{ }} -പദ്ധതിക്ക് താരതമ്യേന സ്ഥിരമായ വരുമാനം ഉറപ്പാക്കാനും ദീർഘകാല ജോലികൾക്കും ലക്ഷ്യങ്ങൾക്കുമായി ഞങ്ങളെ പ്രോത്സാഹിപ്പിക്കാനുമുള്ള ഏറ്റവും മികച്ച മാർഗം ആവർത്തന സംഭാവനകളാണ്. ഒറ്റത്തവണ സംഭാവനകളും ഞങ്ങൾ വിലമതിക്കുന്നു. +{{ }} -### ബാങ്ക് കൈമാറ്റം +## നിങ്ങൾക്ക് ഞങ്ങളെ മറ്റെന്തെങ്കിലും വിധത്തിൽ സഹായിക്കാൻ കഴിയുമോ? -{{ }} - -### ക്രിപ്റ്റോ - -മൊത്തം ഫീസ് കുറയ്ക്കാൻ വർഷം തോറും സംഭാവന നൽകുന്നത് പരിഗണിക്കുക. - -{{ }} - -## മറ്റേതെങ്കിലും വിധത്തിൽ ഞങ്ങളെ സഹായിക്കാമോ? - -അതെ! Organic Maps-നെ പിന്തുണയ്ക്കാൻ നിരവധി മാർഗങ്ങളുണ്ട്. കൂടുതൽ വിവരങ്ങൾക്ക് ദയവായി [ഞങ്ങളെ പിന്തുണയ്ക്കുക](@/contribute/index.ml.md) പേജ് കാണുക. - -{{ }} +അതെ! Organic Maps-നെ പിന്തുണയ്ക്കാൻ നിരവധി വഴികളുണ്ട്. കൂടുതൽ വിവരങ്ങൾക്കായി [കോൺട്രിബ്യൂട്ട്](@/contribute/index.ml.md) പേജ് കാണുക. diff --git a/content/donate/index.mr.md b/content/donate/index.mr.md index 7d3c18f09..b206d3fb3 100644 --- a/content/donate/index.mr.md +++ b/content/donate/index.mr.md @@ -1,72 +1,41 @@ --- -title: Organic Maps च्या विकासासाठी समर्थन द्या -description: तुमचे पैसे सर्व प्रकल्प-संबंधित खर्चासाठी वापरले जातात आणि आम्हाला Organic Maps सुधारण्यासाठी प्रेरणा मिळते. +template: donate.html +title: "Organic Maps सर्वांसाठी मोफत ठेवा" +description: "तुमची देणगी नकाशांची अद्यतने, दुरुस्त्या आणि स्वतंत्र विकासाला पाठिंबा देते. मासिक, वार्षिक किंवा एकवेळच्या देणगीद्वारे Organic Maps ला पाठिंबा द्या." weight: 10 extra: menu_title: समर्थन द्या preview_image: donate/donate.png + bank_transfer_title: "बँक ट्रान्सफर" + crypto_title: "क्रिप्टो" --- -Organic Maps अ‍ॅप _सर्वांसाठी मोफत_ आहे, तुमच्या **[दान][stripe]** मुळे **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +तुमच्या देणगीमुळे नकाशा अद्यतने, दुरुस्त्या आणि विकास यासाठी निधी उपलब्ध होतो. सर्वांसाठी Organic Maps मोफत ठेवण्यासाठी मदत करा. -- जाहिराती नाहीत -- ट्रॅकर्स नाहीत -- नोंदणी नाही -- पुश सूचना नाहीत -- मुक्त स्रोत +**कोणतेही जाहिराती नाहीत. कोणतेही ट्रॅकर्स नाहीत. मुक्त स्रोत.** -खाली तुमच्या आवडत्या पेमेंट पद्धतीच्या चिन्हावर क्लिक करा: + -{{ }} +## तुमच्या देणगीचा उपयोग -## Organic Maps ला समर्थन का द्यावे? +- **अद्ययावत ऑफलाइन नकाशे.** जगभरात नकाशांची नियमित अद्यतने पोहोचवण्यासाठी मदत करा. +- **अधिक चांगले अॅप.** त्रुटी दुरुस्त करणे, नेव्हिगेशन सुधारणे आणि नवीन वैशिष्ट्ये विकसित करणे यासाठी पाठिंबा द्या. +- **स्वतंत्र विकास.** Organic Maps सर्वांसाठी मोफत आणि खुले ठेवण्यासाठी मदत करा. -1. आमचे उद्दिष्ट म्हणजे Google Maps आणि Apple Maps साठी गोपनीयता-केंद्रित, जलद आणि वापरण्यास सोपे पर्याय उपलब्ध करणे. -2. OpenStreetMap वापरणाऱ्या अनेक वेबसाइट्स, अ‍ॅप्स आणि प्लॅटफॉर्मसाठी सार्वजनिक नकाशा डेटा सुधारणे आणि अधिक लोकांना नकाशा माहितीमध्ये योगदान देण्यासाठी प्रेरित करणे हे आमचे दुसरे उद्दिष्ट आहे. -3. Organic Maps सर्वांसाठी खुले आणि मोफत ठेवण्यासाठी आम्ही तुमच्या दानावर अवलंबून आहोत. - आणि जाहिरातींपासून मुक्त. -4. आम्ही आमचे काम आवडतो, आणि आमचे वापरकर्तेही ❤️. +नियमित देणग्या आम्हाला दीर्घकालीन सुधारणा आखण्यास मदत करतात. एकदाच दिल्या जाणाऱ्या देणग्यांचेही आम्ही कौतुक करतो. -## मोफत प्रकल्पाला पैसे का लागतात? + -1. 2023 मध्ये Organic Maps ने आपले पहिले एक मिलियन वापरकर्ते मिळवले. - आमचे सर्व्हर जगभरात मोफत, जलद आणि वारंवार नकाशा अद्यतने पुरवतात. -2. वापरकर्ता समर्थन, बग दुरुस्ती आणि दर्जेदार अ‍ॅप अद्यतने प्रकाशित करणे हे आमचे सर्वोच्च प्राधान्य आहे. - GitHub वर [~2000 बग अहवाल आणि फिचर विनंत्या][github issues] आहेत, आणि हा आकडा दररोज वाढत आहे. - AppStore, Google Play, आणि समर्थन ईमेल्समध्ये अनेक प्रतिक्रिया आणि बग्स आहेत. आम्हाला उच्च दर्जाचा उत्पादन द्यायचा आहे. -3. पुरेसा पैसा मिळाल्यास, नवीन वैशिष्ट्ये विकसित केली जाऊ शकतात. काही उदाहरणे: - - बुकमार्क्स आणि ट्रॅक्सचे बॅकअप आणि सिंक - - GPX निर्यातसह GPS ट्रॅक रेकॉर्डर - - उपग्रह प्रतिमा - - सार्वजनिक वाहतूक - - ट्रॅफिक आणि अपघात अहवाल - - फोटो आणि पुनरावलोकने - - विविध क्रियांसाठी नकाशा शैली - - डोंगर सावली आणि 3D भूभाग - - अधिक प्रगत OpenStreetMap संपादक - - अधिक चांगले ऑफलाइन पत्ता शोध, मार्गदर्शन आणि नेव्हिगेशन - - … आणि [अनेक इतर][github issues] वैशिष्ट्ये जी तुम्हाला हवी आहेत आणि आवडतात +## दान करण्याचे इतर मार्ग {#other-ways} -## समर्थन कसे द्यावे? +तुमच्यासाठी योग्य असलेला पेमेंट मार्ग निवडा. -खाली तुमच्या आवडत्या पेमेंट पद्धतीच्या चिन्हावर क्लिक करा: +{{ }} -{{ }} +{{ }} -नियमित दान हे प्रकल्पासाठी तुलनेने स्थिर उत्पन्न सुनिश्चित करण्याचा आणि आम्हाला दीर्घकालीन कार्ये आणि उद्दिष्टांसाठी प्रेरित करण्याचा सर्वोत्तम मार्ग आहे. एकदाच दिलेले दानही स्वागतार्ह आहे. +{{ }} -### बँक ट्रान्सफर +## तुम्ही आम्हाला इतर कोणत्याही प्रकारे मदत करू शकता का? -{{ }} - -### क्रिप्टो - -कृपया एकूण शुल्क कमी करण्यासाठी वार्षिक दान करण्याचा विचार करा. - -{{ }} - -## तुम्ही इतर कोणत्याही प्रकारे मदत करू शकता? - -होय! Organic Maps ला समर्थन देण्यासाठी अनेक मार्ग आहेत. अधिक माहितीसाठी कृपया [योगदान](@/contribute/index.mr.md) पृष्ठ पहा. - -{{ }} +होय! Organic Maps ला पाठिंबा देण्याचे अनेक मार्ग आहेत. अधिक तपशीलांसाठी [योगदान](@/contribute/index.mr.md) पृष्ठ पहा. diff --git a/content/donate/index.nl.md b/content/donate/index.nl.md index f212b00ab..ba7664b80 100644 --- a/content/donate/index.nl.md +++ b/content/donate/index.nl.md @@ -1,68 +1,42 @@ --- -description: "Je geld betaalt voor alle project-gerelateerde uitgaven en motiveert ons om Organic Maps te verbeteren." +template: donate.html +description: "Met jouw donatie worden kaartupdates, bugfixes en onafhankelijke ontwikkeling gefinancierd. Steun Organic Maps met een maandelijkse, jaarlijkse of eenmalige donatie." extra: + translation_keeps_source: ["extra.crypto_title"] menu_title: Doneer preview_image: donate/donate.png -title: "Doneer om de ontwikkeling van Organic Maps te ondersteunen" + bank_transfer_title: "Bankoverschrijving" + crypto_title: "Crypto" +title: "Zorg dat Organic Maps voor iedereen gratis blijft" weight: 10 --- -Organic Maps app is _gratis voor iedereen_ dankzij jullie **[donaties][stripe]** in **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]**: +Met jouw donatie worden kaartupdates, verbeteringen en verdere ontwikkeling gefinancierd. Help mee om Organic Maps voor iedereen gratis te houden. -- Geen advertenties -- Geen trackers -- Geen registratie -- Geen pushmeldingen -- Open source +**Geen advertenties. Geen trackers. Open source.** -Klik hieronder op het icoon van je voorkeurs-betalingsmethode: + -{{ }} +## Wat je donatie mogelijk maakt -## Waarom doneren aan Organic Maps? +- **Actuele offline kaarten.** Help regelmatige kaartupdates wereldwijd beschikbaar te maken. +- **Een betere app.** Steun het oplossen van bugs, betere navigatie en nieuwe functies. +- **Onafhankelijke ontwikkeling.** Help Organic Maps gratis en open te houden voor iedereen. -1. Ons doel is om een privacy-gefocust, snel en makkelijk te gebruiken alternatief voor Google Maps en Apple Maps te bieden. -2. Publieke kaartendata verbeteren voor de verschillende websites, apps en platforms die OpenStreetMap gebruiken, en meer mensen betrokken krijgen bij het bijdragen aan kaartendata is ons andere doel. -3. We zijn op jullie donaties aangewezen om onze missie te volbrengen om Organic Maps open en gratis te houden. En vrij van advertenties. -4. We houden van wat we doen, en we houden van onze gebruikers ❤️. +Regelmatige donaties helpen ons bij het plannen van verbeteringen op de lange termijn. Ook eenmalige donaties zijn van harte welkom. -## Waarom heeft een gratis project geld nodig? + -1. In 2023 kreeg Organic Maps zijn eerste miljoen gebruikers. Onze servers zorgen voor gratis, snelle en frequente kaartenupdates over de hele wereld. -2. Gebruikersondersteuning, bugs fixen, en de stabiliteit van de app verbeteren zijn onze topprioriteiten. Er zijn [1800+ issues op GitHub][github issues], en dit aantal neemt elke dag toe. De AppStore, Google Play, en support email-adressen worden overspoeld met reacties en fouten. We willen een product van een hoge kwaliteit leveren. -3. Met genoeg geld kunnen nieuwe functies sneller worden ontwikkeld, zoals: - - Backup en synchroniseer bladwijzers en routes - - GPS-pad-opnames met GPX ondersteuning - - Satellietbeelden - - Openbaar vervoer - - Verkeers- en ongelukkencontrole - - Foto's en beoordelingen - - Betere kaartenstijlen voor verschillende activiteiten - - Reliëfschaduwen en 3D-terreinen - - Verbetering van de OpenStreetMap-bewerker - - Betere offline adressen-zoekfunctie, routes, en navigatie - - … en [vele andere][github issues] functies die jullie willen en waar jullie van houden +## Andere manieren om te doneren {#other-ways} -## Hoe kan je doneren? +Kies een betaalroute die bij je past. -Klik hieronder op het icoon van je voorkeurs-betalingsmethode: +{{ }} -{{ }} +{{ }} -Terugkerende donaties zijn de beste manier om een relatief stabiel inkomen voor het project te verzorgen en motiveren ons voor lange termijn taken en doelen. Maar je kan ook eenmalig doneren. +{{ }} -### Bankoverschrijving +## Kun je ons nog op een andere manier helpen? -{{ }} - -### Crypto - -Overweeg alsjeblieft om jaarlijs te doneren om de totale kosten te reduceren. - -{{ }} - -## Kun je ons op een andere manier helpen? - -Ja! Er zijn vele manieren om Organic Maps te ondersteunen. Kijk alsjeblieft op de pagina [Steun ons](@/contribute/index.nl.md) voor meer details. - -{{ }} +Ja! Er zijn allerlei manieren om Organic Maps te steunen. Kijk op de pagina [Bijdragen](@/contribute/index.nl.md) voor meer info. diff --git a/content/donate/index.oc.md b/content/donate/index.oc.md index 6d66d6490..7fae5ff21 100644 --- a/content/donate/index.oc.md +++ b/content/donate/index.oc.md @@ -1,72 +1,41 @@ --- -title: Dona per sosténer lo desvolopament d’Organic Maps -description: Tos donatius pagon totas las despensas del projècte e nos motivan a melhorar Organic Maps. +template: donate.html +title: "Garda Organic Maps gratuit per totes" +description: "Ton don finança las actualizacions de las mapas, las correccions e lo desvolopament independent. Sosten Organic Maps amb un don mensual, anual o unic." weight: 10 extra: menu_title: Donar preview_image: donate/donate.png + bank_transfer_title: "Transferéncia bancària" + crypto_title: "Cripto" --- -L’aplicacion Organic Maps es _gratuita per totes_ gràcias a tos **[donatius][stripe]** en **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +Ton don finança las actualizacions de las mapas, las correccions e lo desvolopament. Ajuda a gardar Organic Maps gratuit per totes. -- Pas de publicitat -- Pas de traçadors -- Pas d’inscripcion -- Pas de notificacions push -- Còdi font liure +**Pas de publicitat. Pas de pistaires. Còdi font dubèrt.** -Clica sus l’icòna de ta metòde de pagament preferida çai jos: + -{{ }} +## Çò que ton don finança -## Perqué donar a Organic Maps? +- **Mapas fòra linha actualizadas.** Ajuda a provesir d’actualizacions frequentas de las mapas dins lo mond entièr. +- **Una aplicacion melhora.** Sosten las correccions d’errors, las melhoras de navigacion e las foncionalitats novèlas. +- **Desvolopament independent.** Ajuda a gardar Organic Maps gratuit e dobèrt a totes. -1. Nòstre objectiu es de provesir una alternativa centrada sus la confidencialitat, rapida e aisida d’utilizar a Google Maps e Apple Maps. -2. Melhorar las donadas publicas de mapas per los nombroses sites web, aplicacions e plataformas que utilizan OpenStreetMap, e implicar mai de monde dins la contribucion d’informacions de mapas es un autre objectiu. -3. Dependèm de tos donatius per manténer Organic Maps dobèrt e gratuit per totes. - E sens publicitat. -4. Aimam çò que fasèm, e aimam nòstres utilizaires ❤️. +Los dons regulars nos ajudan a planificar d'amelhoraments a long tèrme. Los dons unics son tanben apreciats. -## Perqué un projècte gratuit a besonh de moneda? + -1. En 2023, Organic Maps a agut son primièr milion d’utilizaires. - Nòstres servidors provesisson de mesas a jorn de mapas gratuitas, rapid e frequentas dins lo monde entièr. -2. Lo sosten als utilizaires, la correccion de bugs e la publicacion de mesas a jorn de qualitat son nòstras prioritats. - I a [~2000 rapòrts de bugs e demandas de foncionalitats sus GitHub][github issues], e aqueste nombre creis cada jorn. - AppStore, Google Play, e los emails de sosten son desbordats de comentaris e de bugs. Volèm provesir un produch de nauta qualitat. -3. Amb pro de moneda, de foncionalitats novèlas pòdon èsser desvolopadas. Per exemple: - - Sauvegarda e sincronizacion de marcapaginas e trajèctes - - Enregistrador de trajèctes GPS amb export GPX - - Imatges satellits - - Transpòrt public - - Rapòrt de trafec e d’accidents - - Fòtos e avis - - Estils de mapa per activitats diferentas - - Ombra de relèu e terren 3D - - Editor OpenStreetMap mai avançat - - Melhor recèrca d’adreça hors linha, itinerari e navigacion - - … e [mai d’autras][github issues] foncionalitats que vòles e aimas +## Autras manièras de donar {#other-ways} -## Cossí donar? +Causís lo mejan de pagament que te conven. -Clica sus l’icòna de ta metòde de pagament preferida çai jos: +{{ }} -{{ }} +{{ }} -Los donatius recurrents son lo melhor biais d’assegurar un revengut relativament estable pel projècte e nos motivar per de tascas e objectius a long tèrme. Los donatius ponctuals son tanben apreciats. +{{ }} -### Transferéncia bancària +## Nos pòdes ajudar d’un autre biais? -{{ }} - -### Cripto - -Mercé de considerar de donar annalament per redusir las taxas totalas. - -{{ }} - -## Pòdes ajudar d’un autre biais? - -Òc! I a mantun biais de sosténer Organic Maps. Consulta la pagina [Contribuir](@/contribute/index.oc.md) per mai de detalhs. - -{{ }} +Òc! I a fòrça biais de sosténer Organic Maps. Consulta la pagina [Contribuir](@/contribute/index.oc.md) per mai de detalhs. diff --git a/content/donate/index.pl.md b/content/donate/index.pl.md index 5948bac80..81431d94e 100644 --- a/content/donate/index.pl.md +++ b/content/donate/index.pl.md @@ -1,68 +1,41 @@ --- -description: "Twoje pieniądze pokrywają wszystkie wydatki związane z projektem i motywują nas do ulepszania Organic Maps." +template: donate.html +description: "Twoja darowizna pozwala nam finansować aktualizacje map, poprawki i niezależny rozwój aplikacji. Wesprzyj Organic Maps, przekazując darowiznę miesięczną, roczną lub jednorazową." extra: menu_title: "Wspomóż finansowo" preview_image: donate/donate.png -title: "Przekaż darowiznę, aby wesprzeć rozwój Organic Maps" + bank_transfer_title: "Przelew bankowy" + crypto_title: "Kryptowaluta" +title: "Niech Organic Maps pozostanie darmowe dla wszystkich" weight: 10 --- -Aplikacja Organic Maps jest _darmowa dla wszystkich_ dzięki Waszym **[donacjom][stripe]** w **[PLN][stripe_pln], [EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [RUB][stripe_rub]**: +Twoja darowizna pozwala na aktualizacje map, poprawki i dalszy rozwój. Pomóż nam, by Organic Maps pozostało darmowe dla wszystkich. -- Brak reklam -- Brak mechanizmów śledzących -- Brak rejestracji -- Brak wyskakujących powiadomień push -- Otwarte źródła +**Bez reklam. Bez modułów śledzących. Open source.** -Kliknij ikonę preferowanej metody płatności poniżej: + -{{ }} +## Co umożliwia twoja darowizna -## Dlaczego warto przekazać darowiznę na rzecz Organic Maps? +- **Aktualne mapy offline.** Pomóż udostępniać częste aktualizacje map na całym świecie. +- **Lepsza aplikacja.** Wspieraj poprawki błędów, ulepszenia nawigacji i nowe funkcje. +- **Niezależny rozwój.** Pomóż utrzymać Organic Maps jako aplikację darmową i otwartą dla wszystkich. -1. Naszym celem jest zapewnienie skoncentrowanej na prywatności, szybkiej i łatwej w użyciu alternatywy do Map Google i Apple Maps. -2. Kolejnym naszym celem jest ulepszanie publicznych danych mapowych dla wielu stron internetowych, aplikacji i platform, które korzystają z OpenStreetMap, oraz zachęcanie większej liczby osób do dzielenia się informacjami o mapach. -3. Polegamy na Twoich darowiznach, aby realizować naszą misję polegającą na utrzymaniu Organic Maps otwartymi i wolnymi. I wolnymi od reklam. -4. Kochamy to co robimy i kochamy naszych użytkowników ❤️. +Regularne darowizny pomagają nam planować długoterminowe ulepszenia. Jednorazowe darowizny też są mile widziane. -## Dlaczego darmowy projekt potrzebuje pieniędzy? + -1. W roku 2023 Organic Maps zyskało swój pierwszy milion użytkowników. Nasze serwery zapewniają darmowe, szybkie i częste aktualizacje map na całym świecie. -2. Wsparcie użytkowników, usuwanie błędów i poprawa stabilności aplikacji są na szczycie naszych priorytetów. Mamy [ponad 1800 zgłoszonych na GitHubie problemów do rozwiązania][github issues], a liczba ta rośnie każdego dnia. AppStore, Google Play i e-maile wsparcia są zalane komentarzami i błędami. Chcemy dostarczać produkt wysokiej jakości. -3. Mając wystarczająco dużo pieniędzy, można na przykład szybciej rozwijać nowe funkcje: - - Tworzenie kopii zapasowych i synchronizacja zakładek oraz tras - - Rejestrator śladów GPS z obsługą GPX - - Zdjęcia satelitarne - - Transport publiczny - - Raportowanie ruchu drogowego i wypadków - - Zdjęcia i opinie - - Lepsze style map dla różnych działań - - Cieniowanie wzgórz i teren 3D - - Bardziej zaawansowany edytor OpenStreetMap - - Lepsze wyszukiwanie adresów w trybie offline, wyznaczanie tras i nawigacja - - … i [wiele innych][github issues] funkcji, które chcesz i kochasz +## Inne sposoby przekazania darowizny {#other-ways} -## Jak przekazać darowiznę? +Wybierz sposób płatności, który Ci odpowiada. -Kliknij ikonę preferowanej metody płatności poniżej: +{{ }} -{{ }} +{{ }} -Powtarzające się darowizny to najlepszy sposób na zapewnienie względnie stabilnego dochodu dla projektu i zmotywowanie nas do realizacji długoterminowych zadań i celów. Ale możesz też przekazać darowiznę jednorazowo. +{{ }} -### Przelew bankowy +## Czy możesz nam pomóc w jakiś inny sposób? -{{ }} - -### Kryptowaluta - -Proszę rozważyć coroczną darowiznę, aby zmniejszyć całkowite opłaty. - -{{ }} - -## Czy można nam pomóc w jakiś inny sposób? - -Tak! Istnieje wiele sposobów na wsparcie Organic Maps. Więcej szczegółów znajdziesz na stronie [Wesprzyj nas](@/contribute/index.pl.md). - -{{ }} +Tak! Jest wiele sposobów, by wesprzeć Organic Maps. Więcej szczegółów znajdziesz na stronie [Współtwórz](@/contribute/index.pl.md). diff --git a/content/donate/index.pt-BR.md b/content/donate/index.pt-BR.md index 4e0238e41..f9575f173 100644 --- a/content/donate/index.pt-BR.md +++ b/content/donate/index.pt-BR.md @@ -1,68 +1,41 @@ --- -description: "Seu dinheiro paga por todas as despesas relacionadas ao projeto e nos motiva a melhorar o Organic Maps." +template: donate.html +description: "Sua doação ajuda a financiar atualizações de mapas, correções e desenvolvimento independente. Apoie Organic Maps com uma doação mensal, anual ou única." extra: menu_title: Doar preview_image: donate/donate.png -title: "Doe para apoiar o desenvolvimento do Organic Maps" + bank_transfer_title: "Transferência bancária" + crypto_title: "Criptomoeda" +title: "Mantenha o Organic Maps gratuito para todo mundo" weight: 10 --- -O app Organic Maps é _gratuito para todos_ graças às suas **[doações][stripe]** em **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]**: +Sua doação ajuda a financiar atualizações, correções e desenvolvimento dos mapas. Ajude a manter Organic Maps gratuito para todo mundo. -- Sem anúncios -- Sem rastreadores -- Sem registro -- Sem notificações push -- Código aberto +**Sem anúncios. Sem rastreadores. Código aberto.** -Clique no método preferido de pagamento abaixo: + -{{ }} +## O que sua doação apoia -## Por que doar para Organic Maps? +- **Mapas offline atualizados.** Ajude a oferecer atualizações frequentes dos mapas no mundo todo. +- **Um aplicativo melhor.** Apoie correções de erros, melhorias na navegação e novos recursos. +- **Desenvolvimento independente.** Ajude a manter o Organic Maps gratuito e aberto para todos. -1. Nosso objetivo é oferecer uma alternativa ao Google Maps e Apple Maps centrada na privacidade, rápida e fácil de usar. -2. Outro dos nossos objetivos é melhorar os dados dos mapas públicos para os vários sites, apps e plataformas que utilizam OpenStreetMap, e envolver mais pessoas na contribuição para os mapas. -3. Contamos com suas doações para cumprir nossa missão de manter o Organic Maps aberto e livre. E livre de anúncios. -4. A gente ama o que faz e amamos nossos usuários ❤️. +As doações regulares nos ajudam a planejar melhorias a longo prazo. As doações pontuais também são muito bem-vindas. -## Por que um projeto gratuito precisa de dinheiro? + -1. Em 2023, Organic Maps conseguiu seu primeiro milhão de usuários. Nossos servidores proporcionam atualizações de mapas gratuitas, rápidas e frequentes no mundo todo. -2. Suporte ao usuário, correção de erros e melhoria da estabilidade do app estão no topo de nossas prioridades. Existem [mais de 1800 problemas no GitHub][github issues], e este número está crescendo a cada dia. AppStore, Google Play, e e-mails de suporte estão sobrecarregados com comentários e erros. Queremos entregar um produto de alta qualidade. -3. Com dinheiro suficiente, novos recursos podem ser desenvolvidos mais rapidamente, por exemplo: - - Cópia de segurança e sincronização de favoritos e trilhas - - Gravador de trilhas GPS com suporte a GPX - - Imagens por satélite - - Transporte público - - Informação sobre tráfego e acidentes - - Fotos e avaliações - - Melhores estilos de mapas para diferentes atividades - - Relevo e terreno 3D - - Melhorar o editor do OpenStreetMap - - Melhor busca de endereços offline, roteamento e navegação - - … e [muitas outras][github issues] funcionalidades que você quer e ama +## Outras formas de doar {#other-ways} -## Como doar? +Escolha a forma de pagamento que for melhor pra você. -Clique no método preferido de pagamento abaixo: +{{ }} -{{ }} +{{ }} -Doações recorrentes são a melhor maneira de garantir uma renda relativamente estável para o projeto e nos motivar para tarefas e objetivos de longo prazo. Mas você também pode doar uma única vez. +{{ }} -### Transferência bancária +## Você pode nos ajudar de alguma outra forma? -{{ }} - -### Criptomoeda - -Por favor, considere a possibilidade de doar anualmente para reduzir o total das taxas. - -{{ }} - -## Você pode nos ajudar de qualquer outra forma? - -Sim! Há muitas maneiras de apoiar o Organic Maps. Por favor, consulte a página [Contribuir](@/contribute/index.pt-BR.md) para mais detalhes. - -{{ }} +É isso aí! Tem várias maneiras de apoiar o Organic Maps. Dá uma olhada na página [Contribua](@/contribute/index.pt-BR.md) pra saber mais. diff --git a/content/donate/index.pt.md b/content/donate/index.pt.md index 6a8766b5c..62ee6359a 100644 --- a/content/donate/index.pt.md +++ b/content/donate/index.pt.md @@ -1,68 +1,41 @@ --- -description: "O teu dinheiro paga todas as despesas relacionadas com o projeto e motiva-nos a melhorar o Organic Maps." +template: donate.html +description: "A tua doação ajuda a financiar atualizações de mapas, correções e desenvolvimento independente. Apoia Organic Maps com uma doação mensal, anual ou pontual." extra: menu_title: Doar preview_image: donate/donate.png -title: "Faz uma doação para apoiar o desenvolvimento do Organic Maps" + bank_transfer_title: "Transferência bancária" + crypto_title: "Criptomoeda" +title: "Mantém o Organic Maps gratuito para toda a gente" weight: 10 --- -O app Organic Maps é _gratuito para todos_ graças às tuas **[doações][stripe]** em **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln], [RUB][stripe_rub]**: +A tua doação ajuda a financiar as atualizações, correções e desenvolvimento dos mapas. Ajuda a manter Organic Maps gratuito para toda a gente. -- Sem anúncios -- Sem rastreadores -- Sem registo -- Sem notificações -- Código-fonte aberto +**Sem anúncios. Sem rastreadores. Código aberto.** -Clica no ícone do teu método de pagamento preferido abaixo: + -{{ }} +## O que o teu donativo apoia -## Porquê doar ao Organic Maps? +- **Mapas offline atualizados.** Ajuda a disponibilizar atualizações frequentes dos mapas em todo o mundo. +- **Uma aplicação melhor.** Apoia as correções de erros, as melhorias de navegação e as novas funcionalidades. +- **Desenvolvimento independente.** Ajuda a manter o Organic Maps gratuito e aberto a todos. -1. O nosso objetivo é fornecer uma alternativa ao Google Maps e ao Apple Maps centrada na privacidade, rápida e fácil de utilizar. -2. Melhorar os dados de mapas públicos para os inúmeros sítios web, aplicações e plataformas que utilizam o OpenStreetMap e envolver mais pessoas na contribuição de informações de mapas é outro dos nossos objetivos. -3. Contamos com os teus donativos para levar a cabo a nossa missão de manter o Organic Maps aberto e livre. E livre de anúncios. -4. Adoramos o que fazemos e adoramos os nossos utilizadores ❤️. +As doações regulares ajudam-nos a planear melhorias a longo prazo. As doações pontuais também são muito bem-vindas. -## Porque é que um projeto gratuito precisa de dinheiro? + -1. Em 2023, o Organic Maps obteve o seu primeiro milhão de utilizadores. Os nossos servidores fornecem atualizações de mapas gratuitas, rápidas e frequentes em todo o mundo. -2. O apoio ao utilizador, a correção de erros e a melhoria da estabilidade da aplicação estão no topo das nossas prioridades. Existem [mais de 1800 problemas no GitHub][github issues], e este número está a aumentar todos os dias. A AppStore, o Google Play e os e-mails de apoio estão inundados de comentários e erros. Queremos fornecer um produto de alta qualidade. -3. Com dinheiro suficiente, as novas funcionalidades podem ser desenvolvidas mais rapidamente, por exemplo: - - Cópia de segurança e sincronização de marcadores e trilhos - - Gravador de trajetos GPS com suporte de GPX - - Imagens de satélite - - Transporte público - - Informação sobre tráfego e acidentes - - Fotografias e avaliações - - Melhores estilos de mapas para diferentes atividades - - Sombreamento de colinas e terreno 3D - - Melhorar o editor do OpenStreetMap - - Melhor pesquisa de endereços offline, roteamento e navegação - - … e [muitas outras][github issues] funcionalidades que desejas e adoras +## Outras formas de fazer doações {#other-ways} -## Como fazer um donativo? +Escolhe a forma de pagamento que te for mais conveniente. -Clica no ícone do teu método de pagamento preferido abaixo: +{{ }} -{{ }} +{{ }} -Os donativos recorrentes são a melhor forma de garantir um rendimento relativamente estável para o projeto e de nos motivar para tarefas e objetivos a longo prazo. Mas também podes fazer um donativo único. +{{ }} -### Transferência bancária +## Podes ajudar-nos de alguma outra forma? -{{ }} - -### Criptomoeda - -Considera a possibilidade de efetuar um donativo anual para reduzir as taxas totais. - -{{ }} - -## Podes ajudar-nos de outra forma? - -Sim! Há muitas maneiras de apoiar o Organic Maps. Por favor, consulta a página [Contribuir](@/contribute/index.pt.md) para mais detalhes. - -{{ }} +Sim! Há muitas formas de apoiar o Organic Maps. Consulta a página [Contribuir](@/contribute/index.pt.md) para saberes mais. diff --git a/content/donate/index.ru.md b/content/donate/index.ru.md index cba8ee178..72b64fb5e 100644 --- a/content/donate/index.ru.md +++ b/content/donate/index.ru.md @@ -1,68 +1,41 @@ --- -title: Пожертвовать и поддержать Organic Maps деньгами -description: Помогите проекту финансово +template: donate.html +title: "Помогите сохранить бесплатный доступ к Organic Maps для всех" +description: "Ваше пожертвование идет на обновление карт, устранение ошибок и независимую разработку. Поддержите Organic Maps разовым, ежемесячным или ежегодным пожертвованием." weight: 10 extra: menu_title: Поддержать деньгами preview_image: donate/donate.png + bank_transfer_title: "Банковский перевод" + crypto_title: "Крипта" --- -Приложение Organic Maps _бесплатно для всех_ благодаря вашим **[пожертвованиям][stripe]** в **[RUB][stripe_rub]**, **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**: +Ваши пожертвования помогают нам обновлять карты, устранять ошибки, и добавлять новые возможности. Помогите сохранить бесплатный доступ к Organic Maps для всех. -- Без рекламы -- Без трекеров -- Без регистрации -- Без push-уведомлений -- Открытый исходный код +**Без рекламы. Без слежки. С открытым исходным кодом и с любовью к пользователям.** -Нажмите на иконку предпочитаемого способа оплаты ниже: + -{{ }} +## На что идут ваши пожертвования -## Зачем поддерживать Organic Maps деньгами? +- **Свежие офлайн-карты.** Помогите оплачивать наши серверы и регулярные обновления карт по всему миру. +- **Улучшение приложения.** Поддержите исправление ошибок, улучшение навигации и разработку новых функций. +- **Независимая разработка.** Помогите сохранить Organic Maps бесплатным и открытым для всех. -1. Наша цель — предоставить ориентированную на защиту конфиденциальности, быструю и удобную альтернативу Google Maps и Apple Maps. -2. Ещё одна наша цель — улучшать общедоступные картографические данные для многочисленных сайтов, приложений и платформ, использующих OpenStreetMap, и привлекать больше людей к их пополнению. -3. Мы рассчитываем на ваши пожертвования, чтобы Organic Maps оставались открытыми и бесплатными для всех. И без рекламы. -4. Мы любим то, что мы делаем, и любим наших пользователей ❤️. +Регулярные пожертвования помогают нам планировать долгосрочные улучшения. Мы также будем благодарны за разовые пожертвования. -## На что пойдут деньги? + -1. В 2023 году Organic Maps получили первый миллион пользователей. Наши серверы обеспечивают бесплатные, быстрые и частые обновления карт по всему миру. -2. Поддержка пользователей, исправление ошибок и выпуск качественных обновлений приложения — в числе наших наивысших приоритетов. Сейчас на GitHub около [2000 сообщений об ошибках и запросов новых функций][github issues], и это число растёт с каждым днём. AppStore, Google Play и наша электронная почта переполнены комментариями и сообщениями об ошибках. Мы хотим выпускать продукт высокого качества. -3. При наличии достаточного количества денег можно разработать новые функции. Назовём некоторые из них: - - Резервное копирование и синхронизация меток и треков - - Запись GPS-треков с экспортом в GPX - - Спутниковые снимки - - Общественный транспорт - - Сообщения о пробках и авариях - - Фотографии и отзывы - - Стили карт для разных видов активного отдыха - - Затенение рельефа и трёхмерный ландшафт - - Расширенный редактор OpenStreetMap - - Улучшенный офлайн-поиск адресов, прокладка маршрутов и навигация - - … и [многие другие][github issues] функции, которые вы хотите и любите +## Другие способы сделать пожертвование {#other-ways} -## Как сделать пожертвование? +Выберите удобный для вас способ оплаты. -Нажмите на иконку предпочитаемого способа оплаты ниже: +{{ }} -{{ }} +{{ }} -Регулярные пожертвования — это лучший способ обеспечить проекту относительно стабильный доход и мотивировать нас на решение долгосрочных задач и достижение целей. Мы также будем благодарны за разовые пожертвования. +{{ }} -### Банковский перевод +## Можно ли помочь другим способом? -{{ }} - -### Крипто - -Пожалуйста, рассмотрите возможность ежегодных пожертвований, чтобы снизить общую сумму комиссий. - -{{ }} - -## Как еще помочь? - -Да! Есть много способов поддержать Organic Maps. Подробности — на странице [Помочь проекту](@/contribute/index.ru.md). - -{{ }} +Да! Существует множество способов поддержать Organic Maps. Более подробную информацию вы найдёте на странице [Помочь проекту](@/contribute/index.ru.md). diff --git a/content/donate/index.sv.md b/content/donate/index.sv.md index aff6c9b65..9f1635c81 100644 --- a/content/donate/index.sv.md +++ b/content/donate/index.sv.md @@ -1,72 +1,41 @@ --- -title: Donera för att stödja utvecklingen av Organic Maps -description: Dina pengar betalar för alla projektkostnader och motiverar oss att förbättra Organic Maps. +template: donate.html +title: "Se till att Organic Maps förblir gratis för alla" +description: "Din donation finansierar kartuppdateringar, felkorrigeringar och oberoende utveckling. Stöd Organic Maps genom att ge en månatlig, årlig eller engångsdonation." weight: 10 extra: menu_title: Donera preview_image: donate/donate.png + bank_transfer_title: "Banköverföring" + crypto_title: "Kryptovaluta" --- -Organic Maps-appen är _gratis för alla_ tack vare dina **[donationer][stripe]** i **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]**: +Din donation finansierar kartuppdateringar, felkorrigeringar och vidareutveckling. Hjälp till att se till att Organic Maps förblir gratis för alla. -- Inga annonser -- Inga spårare -- Ingen registrering -- Inga push-notiser -- Öppen källkod +**Inga annonser. Inga spårningsverktyg. Öppen källkod.** -Klicka på din föredragna betalningsmetod nedan: + -{{ }} +## Vad din donation bidrar till -## Varför donera till Organic Maps? +- **Aktuella offlinekartor.** Hjälp oss att leverera regelbundna kartuppdateringar över hela världen. +- **En bättre app.** Stöd buggfixar, bättre navigering och nya funktioner. +- **Oberoende utveckling.** Hjälp oss att hålla Organic Maps gratis och öppet för alla. -1. Vårt mål är att erbjuda ett integritetsfokuserat, snabbt och lättanvänt alternativ till Google Maps och Apple Maps. -2. Att förbättra offentliga kartdata för de många webbplatser, appar och plattformar som använder OpenStreetMap, och att engagera fler människor i att bidra med kartinformation är ett annat mål. -3. Vi är beroende av dina donationer för att hålla Organic Maps öppet och gratis för alla. - Och fritt från annonser. -4. Vi älskar det vi gör, och vi älskar våra användare ❤️. +Regelbundna donationer hjälper oss att planera för långsiktiga förbättringar. Engångsdonationer är också välkomna. -## Varför behöver ett gratis projekt pengar? + -1. År 2023 fick Organic Maps sin första miljon användare. - Våra servrar tillhandahåller gratis, snabba och frekventa kartuppdateringar över hela världen. -2. Användarstöd, buggfixar och publicering av kvalitativa appuppdateringar är högsta prioritet. - Det finns [~2000 buggrapporter och funktionsförfrågningar på GitHub][github issues], och detta antal ökar varje dag. - AppStore, Google Play och supportmail är överfulla med kommentarer och buggar. Vi vill leverera en högkvalitativ produkt. -3. Med tillräckligt med pengar kan nya funktioner utvecklas. Några exempel: - - Säkerhetskopiera och synkronisera bokmärken och spår - - GPS-spårinspelare med GPX-export - - Satellitbilder - - Kollektivtrafik - - Trafik- och olycksrapportering - - Foton och recensioner - - Kartstilar för olika aktiviteter - - Höjdskuggning och 3D-terräng - - Mer avancerad OpenStreetMap-redigerare - - Bättre offline-adressökning, ruttplanering och navigation - - … och [många andra][github issues] funktioner du vill ha och älskar +## Andra sätt att donera {#other-ways} -## Hur donerar man? +Välj ett betalningssätt som passar dig. -Klicka på din föredragna betalningsmetod nedan: +{{ }} -{{ }} +{{ }} -Återkommande donationer är det bästa sättet att säkerställa en relativt stabil inkomst för projektet och motivera oss för långsiktiga uppgifter och mål. Engångsdonationer uppskattas också. +{{ }} -### Banköverföring - -{{ }} - -### Kryptovaluta - -Överväg att donera årligen för att minska totala avgifter. - -{{ }} - -## Kan du hjälpa till på något annat sätt? +## Kan du hjälpa oss på något annat sätt? Ja! Det finns många sätt att stödja Organic Maps. Se sidan [Bidra](@/contribute/index.sv.md) för mer information. - -{{ }} diff --git a/content/donate/index.te.md b/content/donate/index.te.md index 4eaf96bf0..4a024cf23 100644 --- a/content/donate/index.te.md +++ b/content/donate/index.te.md @@ -1,72 +1,41 @@ --- -title: Organic Maps అభివృద్ధిని మద్దతు ఇవ్వడానికి దానం చేయండి -description: మీ డబ్బు అన్ని ప్రాజెక్ట్-సంబంధిత ఖర్చులకు చెల్లించబడుతుంది మరియు Organic Maps ను మెరుగుపరచడానికి మాకు ప్రేరణ ఇస్తుంది. +template: donate.html +title: "Organic Mapsను అందరికీ ఉచితంగా ఉంచండి" +description: "మీ విరాళం మ్యాప్ నవీకరణలు, సవరణలు మరియు స్వతంత్ర అభివృద్ధికి సహాయపడుతుంది. నెలవారీ, సంవత్సరపు లేదా ఒకేసారి విరాళంతో Organic Mapsకు మద్దతు ఇవ్వండి." weight: 10 extra: menu_title: దానం చేయండి preview_image: donate/donate.png + bank_transfer_title: "బ్యాంక్ ట్రాన్స్‌ఫర్" + crypto_title: "క్రిప్టో" --- -Organic Maps యాప్ _ప్రతి ఒక్కరికీ ఉచితం_ మీ **[దానాలు][stripe]** **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]** ద్వారా: +మీ విరాళం మ్యాప్ అప్‌డేట్‌లు, సవరణలు మరియు అభివృద్ధికి సహాయపడుతుంది. ప్రతిఒక్కరికీ Organic Maps ఉచితంగా ఉండేలా సహాయం చేయండి. -- ప్రకటనలు లేవు -- ట్రాకర్లు లేవు -- నమోదు అవసరం లేదు -- పుష్ నోటిఫికేషన్లు లేవు -- ఓపెన్ సోర్స్ +**ప్రకటనలు లేవు. ట్రాకర్లు లేవు. ఓపెన్ సోర్స్.** -దయచేసి మీకు ఇష్టమైన చెల్లింపు విధాన ఐకాన్‌పై క్లిక్ చేయండి: + -{{ }} +## మీ విరాళం దేనికి ఉపయోగపడుతుంది -## Organic Maps కు ఎందుకు దానం చేయాలి? +- **తాజా ఆఫ్‌లైన్ మ్యాప్‌లు.** ప్రపంచవ్యాప్తంగా క్రమం తప్పకుండా మ్యాప్ అప్‌డేట్‌లను అందించడంలో సహాయపడండి. +- **మెరుగైన యాప్.** లోపాల పరిష్కారం, నావిగేషన్ మెరుగుదలలు, కొత్త ఫీచర్‌ల అభివృద్ధికి మద్దతు ఇవ్వండి. +- **స్వతంత్ర అభివృద్ధి.** Organic Maps అందరికీ ఉచితంగా, బహిరంగంగా ఉండేలా సహాయపడండి. -1. మా లక్ష్యం Google Maps మరియు Apple Maps కు గోప్యత-ఆధారిత, వేగవంతమైన మరియు ఉపయోగించడానికి సులభమైన ప్రత్యామ్నాయాన్ని అందించడం. -2. OpenStreetMap ఉపయోగించే అనేక వెబ్‌సైట్లు, యాప్‌లు మరియు ప్లాట్‌ఫారమ్‌ల కోసం పబ్లిక్ మ్యాప్ డేటాను మెరుగుపరచడం మరియు మరిన్ని మందిని మ్యాప్ సమాచారాన్ని అందించడానికి ప్రోత్సహించడం మా మరో లక్ష్యం. -3. Organic Maps ప్రతి ఒక్కరికీ ఓపెన్ మరియు ఉచితంగా ఉండేందుకు మేము మీ దానాలపై ఆధారపడుతున్నాము. - మరియు ప్రకటనలు లేవు. -4. మేము మా పని ప్రేమిస్తున్నాము, మరియు మా వినియోగదారులను కూడా ❤️. +క్రమమైన విరాళాలు దీర్ఘకాలిక మెరుగుదలలను ప్రణాళిక చేయడానికి మాకు సహాయపడతాయి. ఒకేసారి ఇచ్చే విరాళాలను కూడా మేము అభినందిస్తాము. -## ఉచిత ప్రాజెక్ట్‌కు డబ్బు ఎందుకు అవసరం? + -1. 2023లో Organic Maps తన మొదటి మిలియన్ వినియోగదారులను పొందింది. - మా సర్వర్లు ప్రపంచవ్యాప్తంగా ఉచిత, వేగవంతమైన మరియు తరచుగా మ్యాప్ నవీకరణలను అందిస్తాయి. -2. వినియోగదారు మద్దతు, బగ్ ఫిక్సింగ్ మరియు నాణ్యమైన యాప్ నవీకరణలను ప్రచురించడం మా ప్రాధాన్యత. - GitHub లో [~2000 బగ్ నివేదికలు మరియు ఫీచర్ అభ్యర్థనలు][github issues] ఉన్నాయి, మరియు ఈ సంఖ్య ప్రతి రోజు పెరుగుతోంది. - AppStore, Google Play, మరియు మద్దతు ఇమెయిల్స్ వ్యాఖ్యలు మరియు బగ్స్‌తో నిండిపోయాయి. మేము అధిక నాణ్యత గల ఉత్పత్తిని అందించాలనుకుంటున్నాము. -3. సరిపడా డబ్బు ఉంటే, కొత్త ఫీచర్లు అభివృద్ధి చేయవచ్చు. కొన్ని ఉదాహరణలు: - - బుక్‌మార్క్‌లు మరియు ట్రాక్‌ల బ్యాకప్ మరియు సింక్ - - GPX ఎగుమతితో GPS ట్రాక్ రికార్డర్ - - ఉపగ్రహ చిత్రాలు - - పబ్లిక్ ట్రాన్స్‌పోర్ట్ - - ట్రాఫిక్ మరియు ప్రమాద నివేదికలు - - ఫోటోలు మరియు సమీక్షలు - - వివిధ కార్యకలాపాలకు మ్యాప్ శైలులు - - కొండల నీడలు మరియు 3D భూభాగం - - మెరుగైన OpenStreetMap ఎడిటర్ - - మెరుగైన ఆఫ్‌లైన్ చిరునామా శోధన, రూటింగ్ మరియు నావిగేషన్ - - … మరియు [ఇంకా అనేక][github issues] మీరు కోరుకునే మరియు ప్రేమించే ఫీచర్లు +## విరాళం ఇవ్వడానికి ఇతర మార్గాలు {#other-ways} -## ఎలా దానం చేయాలి? +మీకు అనువైన చెల్లింపు మార్గాన్ని ఎంచుకోండి. -దయచేసి మీకు ఇష్టమైన చెల్లింపు విధాన ఐకాన్‌పై క్లిక్ చేయండి: +{{ }} -{{ }} +{{ }} -పునరావృత దానాలు ప్రాజెక్ట్‌కు సరిపడా స్థిర ఆదాయాన్ని నిర్ధారించడానికి మరియు దీర్ఘకాలిక పనులు మరియు లక్ష్యాలకు మాకు ప్రేరణ ఇవ్వడానికి ఉత్తమ మార్గం. ఒక్కసారి దానం చేసినా కూడా అభినందించబడుతుంది. +{{ }} -### బ్యాంక్ ట్రాన్స్‌ఫర్ +## మీరు మాకు మరే విధంగానైనా సహాయం చేయగలరా? -{{ }} - -### క్రిప్టో - -దయచేసి మొత్తం ఫీజులను తగ్గించడానికి వార్షికంగా దానం చేయాలని పరిగణించండి. - -{{ }} - -## మీరు మరే ఇతర విధంగా సహాయం చేయగలరా? - -అవును! Organic Maps ను మద్దతు ఇవ్వడానికి అనేక మార్గాలు ఉన్నాయి. మరిన్ని వివరాలకు దయచేసి [సహాయం చేయండి](@/contribute/index.te.md) పేజీని చూడండి. - -{{ }} +అవును! Organic Mapsకు మద్దతు ఇవ్వడానికి అనేక మార్గాలు ఉన్నాయి. మరిన్ని వివరాల కోసం [కంట్రిబ్యూట్](@/contribute/index.te.md) పేజీని చూడండి. diff --git a/content/donate/index.tr.md b/content/donate/index.tr.md index a6f030017..147341233 100644 --- a/content/donate/index.tr.md +++ b/content/donate/index.tr.md @@ -1,68 +1,41 @@ --- -title: Organic Maps'in gelişimini desteklemek için bağış yap -description: Paran, projeyle ilgili tüm masrafları karşılamamızı sağlıyor ve Organic Maps'i iyileştirmemiz için bizi motive ediyor. +template: donate.html +title: "Organic Maps’i herkes için ücretsiz tut" +description: "Bağışın harita güncellemelerini, düzeltmeleri ve bağımsız geliştirmeyi destekler. Organic Maps’i aylık, yıllık veya tek seferlik bir bağışla destekle." weight: 10 extra: menu_title: Bağış Yap preview_image: bağış.png + bank_transfer_title: "Banka Havalesi" + crypto_title: "Kripto" --- -Organic Maps, **[EUR][stripe_eur]**, **[USD][stripe_usd]**, **[GBP][stripe_GBP]**, **[CHF][stripe_chf]**, **[PLN][stripe_pln]**, **[RUB][stripe_rub]** cinsinden yaptığın **[bağışların][stripe]** sayesinde _herkes için ücretsizdir_: +Bağışın harita güncellemelerini, düzeltmeleri ve geliştirmeyi destekler. Organic Maps’in herkes için ücretsiz kalmasına yardım et. -- Reklam yok -- Takipçi yok -- Kayıt yok -- Push bildirimleri yok -- Açık kaynak +**Reklam yok. İzleme araçları yok. Açık kaynak.** -Aşağıda tercih ettiğin ödeme yönteminin simgesine tıkla: + -{{ }} +## Bağışın neleri destekler -## Neden Organic Maps'e bağış yapmalıyım? +- **Güncel çevrimdışı haritalar.** Dünyanın her yerine düzenli harita güncellemeleri ulaştırmamıza yardım et. +- **Daha iyi bir uygulama.** Hata düzeltmelerini, navigasyon iyileştirmelerini ve yeni özellikleri destekle. +- **Bağımsız geliştirme.** Organic Maps’in herkes için ücretsiz ve açık kalmasına yardım et. -1. Amacımız, Google Maps ve Apple Maps'e gizlilik odaklı, hızlı ve kullanımı kolay bir alternatif sunmak. -2. Bir diğer amacımız da OpenStreetMap kullanan sayısız web sitesi, uygulama ve platform için kamuya açık harita verilerini iyileştirmek ve daha fazla kişiyi harita bilgisi eklemeye teşvik etmek. -3. Organic Maps'i herkes için açık ve ücretsiz tutabilmek için bağışlarına güveniyoruz. Ve reklamsız. -4. Yaptığımız işi seviyoruz ve kullanıcılarımızı seviyoruz ❤️. +Düzenli bağışlar, uzun vadeli iyileştirmeler planlamamıza yardımcı olur. Tek seferlik bağışlar da memnuniyetle kabul edilir. -## Paralar ne için kullanılacak? + -1. 2023 yılında Organic Maps ilk milyon kullanıcısına ulaştı. Sunucularımız dünyanın her yerinde ücretsiz, hızlı ve sık harita güncellemeleri sunuyor. -2. Kullanıcı desteği, hata düzeltme ve kaliteli uygulama güncellemeleri yayınlamak önceliklerimizin başında geliyor. [GitHub'da yaklaşık 2000 hata raporu ve özellik isteği][github issues] var ve bu sayı her geçen gün artıyor. AppStore, Google Play ve destek e-postalarımız yorum ve hatalarla dolup taşıyor. Yüksek kaliteli bir ürün sunmak istiyoruz. -3. Yeterli para ile yeni özellikler geliştirilebilir. Bunlardan birkaçı: - - Yer imlerini ve izleri yedekleme ve senkronize etme - - GPX dışa aktarma özellikli GPS iz kaydedici - - Uydu görüntüleri - - Toplu taşıma - - Trafik ve kaza bildirimi - - Fotoğraflar ve yorumlar - - Farklı etkinlikler için harita stilleri - - Tepe gölgeleri ve 3B arazi görünümü - - Daha gelişmiş OpenStreetMap düzenleyicisi - - Daha iyi çevrimdışı adres arama, rota ve navigasyon - - … ve isteyeceğin ve seveceğin [diğer birçok][github issues] özellik +## Bağış yapmanın diğer yolları {#other-ways} -## Nasıl bağış yapabilirim? +Sana uygun ödeme yöntemini seç. -Aşağıda tercih ettiğin ödeme yönteminin simgesine tıkla: +{{ }} -{{ }} +{{ }} -Yinelenen bağışlar, nispeten istikrarlı bir gelir sağlamak için en iyi yoldur ve bizi uzun vadeli görevler ve hedefler için motive eder. Ancak tek seferlik bağış da yapabilirsin. +{{ }} -### Banka Havalesi +## Bize başka bir şekilde yardımcı olabilir misin? -{{ }} - -### Kripto - -Lütfen toplam ücretleri azaltmak için yıllık bağış yapmayı düşün. - -{{ }} - -## Bize başka bir şekilde yardım edebilir misin? - -Evet! Organic Maps'i desteklemenin birçok yolu var. Daha fazla detay için lütfen [Bizi Destekle](@/contribute/index.tr.md) sayfasına bak. - -{{ }} +Evet! Organic Maps’e destek olmanın birçok yolu var. Ayrıntılar için [Katkıda Bulun](@/contribute/index.tr.md) sayfasına göz at. diff --git a/content/donate/index.uk.md b/content/donate/index.uk.md index c15a82390..abf27e04f 100644 --- a/content/donate/index.uk.md +++ b/content/donate/index.uk.md @@ -1,69 +1,41 @@ --- -description: "Ваші гроші покривають усі витрати, пов'язані з проєктом, і мотивують нас вдосконалювати Organic Maps." +template: donate.html +description: "Ваш внесок іде на оновлення мап, виправлення помилок та незалежну розробку. Підтримайте Organic Maps, зробивши щомісячний, щорічний або одноразовий внесок." extra: menu_title: Пожертвувати preview_image: donate/donate.png - translation_omits_refs: ["stripe_rub"] -title: "Пожертвуйте, щоб підтримати розвиток Organic Maps" + bank_transfer_title: "Банківський переказ" + crypto_title: "Криптовалюта" +title: "Збережімо Organic Maps безкоштовним для всіх" weight: 10 --- -Organic Maps є _безкоштовним для всіх_ завдяки вашим **[пожертвам][stripe]** у **[EUR][stripe_eur], [USD][stripe_usd], [GBP][stripe_GBP], [CHF][stripe_chf], [PLN][stripe_pln]**: +Ваш внесок йде на оновлення, виправлення та розвиток мап. Допоможіть зберегти Organic Maps безкоштовною для всіх. -- Без реклами -- Без відстеження -- Без реєстрації -- Без push-повідомлень -- Відкритий початковий код +**Без реклами. Без трекерів. З відкритим кодом.** -Натисніть на зручний вам спосіб оплати нижче: + -{{ }} +## На що йдуть ваші пожертви -## Чому варто пожертвувати на Organic Maps? +- **Оновлені офлайн-мапи.** Допоможіть доставляти регулярні оновлення мап у всьому світі. +- **Покращення застосунку.** Підтримайте виправлення помилок, удосконалення навігації та розробку нових функцій. +- **Незалежна розробка.** Допоможіть зберегти Organic Maps безкоштовним і відкритим для всіх. -1. Наша мета – створити швидку та просту у використанні альтернативу Google Maps і Apple Maps, орієнтовану на приватність. -2. Ще однією нашою метою є покращення загальнодоступних даних мап для численних вебсайтів, застосунків і платформ, які використовують OpenStreetMap, і залучення більшої кількості людей для додавання інформації про мапу. -3. Ми покладаємося на ваші пожертви, щоб здійснювати нашу місію - тримати Organic Maps відкритим та безкоштовним. А також вільним від реклами. -4. Нам подобається те, що ми робимо, і ми любимо наших користувачів ❤️. +Регулярні пожертви допомагають нам планувати довгострокові покращення. Ми також вдячні за одноразові пожертви. -## Навіщо безплатному проєкту потрібні гроші? + -1. У 2023 році Organic Maps отримав свій перший мільйон користувачів. Наші сервери забезпечують безоплатне, швидке та часте оновлення мап по всьому світу. -2. Підтримка користувачів, виправлення помилок та покращення стабільності роботи застосунку є одними з наших пріоритетів. На GitHub існує [~2000 повідомлень про помилки та запитів на нові функції][github issues], і ця кількість зростає щодня. AppStore, Google Play та електронна пошта служби підтримки переповнені коментарями та помилками. Ми хочемо створювати якісний продукт. -3. Наприклад, маючи достатньо грошей, можна швидше розробляти нові функції: - - Резервне копіювання та синхронізація міток і маршрутів - - GPS реєстратор з підтримкою GPX - - Супутникові знімки - - Громадський транспорт - - Звітність про дорожній рух та аварії - - Фото та відгуки - - Кращі стилі мап для різних видів діяльності - - Затінення пагорбів і 3D-рельєф - - Досконаліший редактор OpenStreetMap - - Покращений пошук адрес, маршрутизація та навігація в автономному режимі - - … і [багато інших][github issues] функцій, які ви хочете і любите +## Інші способи пожертвувати {#other-ways} -## Як пожертвувати? +Оберіть зручний для вас спосіб оплати. -Натисніть на зручний вам спосіб оплати нижче: +{{ }} -{{ }} +{{ }} -Регулярні пожертви - найкращий спосіб забезпечити відносно стабільний дохід для проєкту і мотивувати нас на довгострокові завдання і цілі. Але ви також можете зробити одноразову пожертву. - -### Банківський переказ - -{{ }} - -### Криптовалюта - -Будь ласка, розгляньте можливість щорічних пожертв, щоб зменшити загальну суму зборів. - -{{ }} +{{ }} ## Чи можете ви допомогти нам ще якимось чином? -Так! Існує багато способів підтримати Organic Maps. Будь ласка, відвідайте сторінку [Підтримайте нас](@/contribute/index.uk.md) для отримання більш детальної інформації. - -{{ }} +Так! Існує багато способів підтримати Organic Maps. Детальніше дивіться на сторінці [Долучитися](@/contribute/index.uk.md). diff --git a/content/donate/index.zh-Hans.md b/content/donate/index.zh-Hans.md index 9c79195ef..68c320b07 100644 --- a/content/donate/index.zh-Hans.md +++ b/content/donate/index.zh-Hans.md @@ -1,72 +1,41 @@ --- -title: 捐赠以支持 Organic Maps 的开发 -description: 你的资金用于支付所有项目相关费用,并激励我们改进 Organic Maps。 +template: donate.html +title: "让 Organic Maps 继续对所有人免费" +description: "你的捐款将用于地图更新、错误修复和独立开发。你可以通过每月、每年或一次性捐款来支持 Organic Maps。" weight: 10 extra: menu_title: 捐赠 preview_image: donate/donate.png + bank_transfer_title: "银行转账" + crypto_title: "加密货币" --- -Organic Maps 应用因你的 **[捐赠][stripe]**(**[欧元][stripe_eur]、[美元][stripe_usd]、[英镑][stripe_GBP]、[瑞士法郎][stripe_chf]、[波兰兹罗提][stripe_pln]、[俄罗斯卢布][stripe_rub]**)而对所有人 _免费_: +你的捐款将用于地图的更新、修复和开发。请帮助我们让 Organic Maps 继续免费服务于所有人。 -- 无广告 -- 无跟踪器 -- 无注册 -- 无推送通知 -- 开源 +**无广告。无追踪器。开源。** -请点击下方你喜欢的支付方式图标: + -{{ }} +## 你的捐款支持什么 -## 为什么要捐赠给 Organic Maps? +- **最新的离线地图。**帮助我们向世界各地提供定期地图更新。 +- **更好用的应用。**支持修复问题、改进导航和开发新功能。 +- **独立开发。**帮助 Organic Maps 为所有人保持免费和开放。 -1. 我们的目标是为 Google Maps 和 Apple Maps 提供一个注重隐私、快速且易用的替代方案。 -2. 改善众多使用 OpenStreetMap 的网站、应用和平台的公共地图数据,并让更多人参与地图信息贡献也是我们的目标之一。 -3. 我们依靠你的捐赠让 Organic Maps 对所有人开放且免费。 - 并且无广告。 -4. 我们热爱我们的工作,也热爱我们的用户 ❤️。 +定期捐款有助于我们规划长期改进措施。我们也非常感谢你的单笔捐款。 -## 为什么免费项目需要资金? + -1. 2023 年,Organic Maps 获得了第一个百万用户。 - 我们的服务器为全球提供免费、快速且频繁的地图更新。 -2. 用户支持、修复 bug 和发布高质量应用更新是我们的首要任务。 - GitHub 上有约 [2000 个 bug 报告和功能请求][github issues],且每天都在增长。 - AppStore、Google Play 和支持邮箱充满了评论和 bug。我们希望提供高质量的产品。 -3. 有了足够的资金,可以开发新功能。例如: - - 书签和轨迹的备份与同步 - - 带 GPX 导出的 GPS 轨迹记录器 - - 卫星影像 - - 公共交通 - - 交通和事故报告 - - 照片和评论 - - 不同活动的地图样式 - - 山体阴影和 3D 地形 - - 更高级的 OpenStreetMap 编辑器 - - 更好的离线地址搜索、路线规划和导航 - - ……以及 [许多其他][github issues] 你想要和喜欢的功能 +## 其他捐赠方式 {#other-ways} -## 如何捐赠? +选择一种适合你的支付路线。 -请点击下方你喜欢的支付方式图标: +{{ }} -{{ }} +{{ }} -定期捐赠是确保项目有相对稳定收入并激励我们长期任务和目标的最佳方式。一次性捐赠也非常感谢。 +{{ }} -### 银行转账 +## 你还能以其他方式帮助我们吗? -{{ }} - -### 加密货币 - -请考虑每年捐赠以减少总费用。 - -{{ }} - -## 还有其他方式可以帮助我们吗? - -有!支持 Organic Maps 的方式有很多。详情请参见 [贡献](@/contribute/index.zh-Hans.md) 页面。 - -{{ }} +没错!支持 Organic Maps 的方式有很多。更多详情请参见[贡献](@/contribute/index.zh-Hans.md)页面。 diff --git a/content/donate/subscribe/index.af.md b/content/donate/subscribe/index.af.md index 168c6d9d2..7d6760e29 100644 --- a/content/donate/subscribe/index.af.md +++ b/content/donate/subscribe/index.af.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-pos (opsioneel)" + email_why: "Kry 'n bevestiging, herinnerings en 'n kansellasieskakel. Geen bemarking nie." + email_warning: "Sonder e-pos, kontak ons om jou herhalende skenking te kanselleer." name_label: Naam (opsioneel) name_why: Sodat ons jou in die dankie-e-pos kan aanspreek. submit: Gaan voort met veilige betaling @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Veilige betaling met Mollie. 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…) + other_ways: "Ander maniere om te skenk" + form_title: "Doen 'n skenking" + other_preset_label: "Ander" + email_why_once: "Vir 'n skenkingbevestiging. Geen bemarking." + recurrence_once: "{amount} · Eenmalig" + recurrence_month: "{amount} nou, daarna maandeliks totdat jy kanselleer." + recurrence_year: "{amount} nou, daarna jaarliks totdat jy kanselleer." + canceled_notice: "Jou betaling is gekanselleer. Jy kan weer probeer of 'n ander manier kies om te skenk." --- -Organic Maps is gratis vir almal danksy jou skenkings. Geen advertensies nie. Geen opsporing nie. Oopbron. \ No newline at end of file +Organic Maps is gratis vir almal danksy jou skenkings. Geen advertensies nie. Geen opsporing nie. Oopbron. diff --git a/content/donate/subscribe/index.ar.md b/content/donate/subscribe/index.ar.md index 0d2e36c7e..f83229385 100644 --- a/content/donate/subscribe/index.ar.md +++ b/content/donate/subscribe/index.ar.md @@ -13,9 +13,9 @@ extra: amount_label: المبلغ other_label: مبلغ آخر currency_label: العملة - email_label: البريد الإلكتروني (موصى به) - email_why: سنرسل إليك تأكيدًا، وسنذكرك قبل كل عملية خصم، وسنزودك برابط للإلغاء بنقرة واحدة. لا شيء غير ذلك — لا تسويق. - email_warning: بدون عنوان بريد إلكتروني، لا يمكننا إرسال تذكيرات بالدفع أو رابط الإلغاء — وسيتعين عليك الاتصال بنا لإلغاء التبرع. + email_label: "البريد الإلكتروني (اختياري)" + email_why: "احصل على رسالة تأكيد وتذكيرات ورابط للإلغاء. بدون رسائل تسويقية." + email_warning: "إذا تركت البريد الإلكتروني فارغًا، اتصل بنا لإلغاء تبرعك الدوري." name_label: الاسم (اختياري) name_why: حتى نتمكن من مخاطبتك في رسالة الشكر عبر البريد الإلكتروني. submit: المتابعة لإتمام عملية الدفع الآمنة @@ -23,10 +23,17 @@ extra: submit_month: تبرع بـ{amount} شهريًا submit_year: تبرع بـ{amount} سنويًا submit_loading: إعادة التوجيه إلى صفحة الدفع الآمنة… - secure_note: ستتم عملية الدفع عبر Mollie، مزود خدمات الدفع الذي نتعامل معه. لا تمر تفاصيل البطاقة أبدًا عبر خوادمنا. + secure_note: "الدفع الآمن عبر Mollie. لا تمر تفاصيل البطاقة عبر خوادمنا أبدًا." error_amount: يرجى إدخال مبلغ صحيح. error_amount_range: أدخل مبلغًا يتراوح بين {min} و{max}. - other_ways: طرق أخرى للتبرع (PayPal، التحويل المصرفي، العملات المشفرة…) + other_ways: "طرق أخرى للتبرع" + form_title: "تبرع" + other_preset_label: "أخرى" + email_why_once: "للحصول على تأكيد التبرع. بدون رسائل تسويقية." + recurrence_once: "{amount} · مرة واحدة" + recurrence_month: "{amount} الآن، ثم شهريًا حتى تلغي التبرع الدوري." + recurrence_year: "{amount} الآن، ثم سنويًا حتى تلغي التبرع الدوري." + canceled_notice: "تم إلغاء دفعتك. يمكنك المحاولة مرة أخرى أو اختيار طريقة أخرى للتبرع." --- -تطبيق Organic Maps مجاني للجميع بفضل تبرعاتك. خالٍ من الإعلانات. خالٍ من أدوات التتبع. مفتوح المصدر. \ No newline at end of file +تطبيق Organic Maps مجاني للجميع بفضل تبرعاتك. خالٍ من الإعلانات. خالٍ من أدوات التتبع. مفتوح المصدر. diff --git a/content/donate/subscribe/index.ca.md b/content/donate/subscribe/index.ca.md index 4055ed13d..8115b209f 100644 --- a/content/donate/subscribe/index.ca.md +++ b/content/donate/subscribe/index.ca.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "Correu electrònic (opcional)" + email_why: "Rebràs una confirmació, recordatoris i un enllaç per cancel·lar. Sense publicitat." + email_warning: "Si no indiques el correu electrònic, contacta amb nosaltres per cancel·lar la donació periòdica." name_label: Nom (opcional) name_why: Per poder adreçar-nos a tu al correu d’agraïment. submit: Continua al pagament segur @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Pagament segur amb Mollie. Les dades de la targeta mai no arriben als 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…) + other_ways: "Altres maneres de donar" + form_title: "Fes una donació" + other_preset_label: "Altra" + email_why_once: "Per a la confirmació de la donació. Sense màrqueting." + recurrence_once: "{amount} · Únic" + recurrence_month: "{amount} ara, i després cada mes fins que cancel·lis la donació." + recurrence_year: "{amount} ara, i després cada any fins que cancel·lis la donació." + canceled_notice: "El teu pagament s'ha cancel·lat. Pots tornar-ho a provar o triar una altra manera de fer una donació." --- 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 index 67aeaef89..d1c70dc99 100644 --- a/content/donate/subscribe/index.cs.md +++ b/content/donate/subscribe/index.cs.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-mail (volitelné)" + email_why: "Obdržíte potvrzení, upomínky a odkaz pro zrušení. Žádné marketingové zprávy." + email_warning: "Pokud e-mail neuvedete, pro zrušení pravidelného příspěvku nás kontaktujte." 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ě @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Bezpečná platba přes Mollie. Ú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…) + other_ways: "Další možnosti, jak přispět" + form_title: "Přispějte" + other_preset_label: "Ostatní" + email_why_once: "Pro potvrzení daru. Žádné marketingové účely." + recurrence_once: "{amount} · Jednorázově" + recurrence_month: "{amount} nyní, poté každý měsíc, dokud příspěvek nezrušíte." + recurrence_year: "{amount} nyní, poté každý rok, dokud příspěvek nezrušíte." + canceled_notice: "Vaše platba byla zrušena. Můžete to zkusit znovu nebo zvolit jiný způsob darování." --- 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 index d7b564d85..b5afff1f6 100644 --- a/content/donate/subscribe/index.cy.md +++ b/content/donate/subscribe/index.cy.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-bost (dewisol)" + email_why: "Cael cadarnhad, negeseuon atgoffa a dolen ganslo. Dim marchnata." + email_warning: "Heb e-bost, cysyllta â ni i ganslo dy rodd reolaidd." name_label: Enw (dewisol) name_why: Er mwyn i ni allu dy annerch yn yr e-bost diolch. submit: Parhau i dalu’n ddiogel @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Taliad diogel gyda Mollie. 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…) + other_ways: "Ffyrdd eraill o gyfrannu" + form_title: "Gwna rodd" + other_preset_label: "Arall" + email_why_once: "I gadarnhau rhodd. Dim marchnata." + recurrence_once: "{amount} · Un-tro" + recurrence_month: "{amount} nawr, yna bob mis nes i ti ganslo." + recurrence_year: "{amount} nawr, yna bob blwyddyn nes i ti ganslo." + canceled_notice: "Cafodd dy daliad ei ganslo. Galli di roi cynnig arall arni neu ddewis ffordd arall o gyfrannu." --- -Mae Organic Maps am ddim i bawb diolch i dy roddion. Dim hysbysebion. Dim olrhainwyr. Ffynhonnell agored. \ No newline at end of file +Mae Organic Maps am ddim i bawb diolch i dy roddion. Dim hysbysebion. Dim olrhainwyr. Ffynhonnell agored. diff --git a/content/donate/subscribe/index.de.md b/content/donate/subscribe/index.de.md index 8d1ac5d9b..30382aa6f 100644 --- a/content/donate/subscribe/index.de.md +++ b/content/donate/subscribe/index.de.md @@ -15,9 +15,9 @@ extra: 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. + email_label: "E-Mail (optional)" + email_why: "Bestätigung, Erinnerungen und Kündigungslink. Keine Werbung." + email_warning: "Ohne E-Mail-Adresse musst du uns zum Kündigen deiner regelmäßigen Spende kontaktieren." name_label: Name (optional) name_why: Damit wir dich in der Dankes-E-Mail ansprechen können. submit: Weiter zur sicheren Zahlung @@ -25,10 +25,17 @@ extra: 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. + secure_note: "Sichere Zahlung über Mollie. Deine Kartendaten werden niemals auf unseren Servern gespeichert." 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…) + other_ways: "Weitere Spendenmöglichkeiten" + form_title: "Jetzt spenden" + other_preset_label: "Andere" + email_why_once: "Für eine Spendenbestätigung. Keine Werbung." + recurrence_once: "{amount} · Einmalig" + recurrence_month: "{amount} jetzt, danach monatlich, bis du kündigst." + recurrence_year: "{amount} jetzt, danach jährlich, bis du kündigst." + canceled_notice: "Deine Zahlung wurde storniert. Du kannst es erneut versuchen oder eine andere Spendenmöglichkeit wählen." --- 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 index 80aed9d0b..6c76b4e76 100644 --- a/content/donate/subscribe/index.el.md +++ b/content/donate/subscribe/index.el.md @@ -13,9 +13,9 @@ extra: amount_label: Ποσό other_label: Άλλο ποσό currency_label: Νόμισμα - email_label: Email (συνιστάται) - email_why: Θα σου στείλουμε επιβεβαίωση, θα σου υπενθυμίσουμε πριν από κάθε χρέωση και θα σου δώσουμε έναν σύνδεσμο ακύρωσης με ένα κλικ. Τίποτα άλλο — χωρίς διαφημιστικά μηνύματα. - email_warning: Χωρίς διεύθυνση email δεν μπορούμε να στείλουμε υπενθυμίσεις πληρωμής ή σύνδεσμο ακύρωσης — θα πρέπει να επικοινωνήσεις μαζί μας για να ακυρώσεις τη δωρεά. + email_label: "Email (προαιρετικό)" + email_why: "Λάβε επιβεβαίωση, υπενθυμίσεις και σύνδεσμο ακύρωσης. Χωρίς διαφημιστικά μηνύματα." + email_warning: "Αν δεν δώσεις email, επικοινώνησε μαζί μας για να ακυρώσεις την τακτική δωρεά σου." name_label: Όνομα (προαιρετικό) name_why: Για να μπορέσουμε να σου απευθυνθούμε στο email ευχαριστίας. submit: Συνέχεια στην ασφαλή πληρωμή @@ -23,10 +23,17 @@ extra: submit_month: Κάνε μηνιαία δωρεά {amount} submit_year: Κάνε ετήσια δωρεά {amount} submit_loading: Ανακατεύθυνση σε ασφαλή πληρωμή… - secure_note: Θα ολοκληρώσεις την πληρωμή στη Mollie, τον πάροχο πληρωμών μας. Τα στοιχεία της κάρτας δεν φτάνουν ποτέ στους διακομιστές μας. + secure_note: "Ασφαλής πληρωμή μέσω του Mollie. Τα στοιχεία της κάρτας δεν αποθηκεύονται ποτέ στους διακομιστές μας." error_amount: Παρακαλώ πληκτρολόγησε ένα έγκυρο ποσό. error_amount_range: Πληκτρολόγησε ένα ποσό μεταξύ {min} και {max}. - other_ways: Άλλοι τρόποι δωρεάς (PayPal, τραπεζική μεταφορά, κρυπτονομίσματα…) + other_ways: "Άλλοι τρόποι δωρεάς" + form_title: "Κάνε μια δωρεά" + other_preset_label: "Άλλα" + email_why_once: "Για επιβεβαίωση δωρεάς. Χωρίς διαφημιστικά μηνύματα." + recurrence_once: "{amount} · Εφάπαξ" + recurrence_month: "{amount} τώρα και μετά κάθε μήνα, μέχρι να ακυρώσεις τη δωρεά." + recurrence_year: "{amount} τώρα και μετά κάθε χρόνο, μέχρι να ακυρώσεις τη δωρεά." + canceled_notice: "Η πληρωμή σου ακυρώθηκε. Μπορείς να δοκιμάσεις ξανά ή να επιλέξεις έναν άλλο τρόπο δωρεάς." --- -Το Organic Maps είναι δωρεάν για όλους χάρη στις δωρεές σου. Χωρίς διαφημίσεις. Χωρίς προγράμματα παρακολούθησης. Ανοιχτού κώδικα. \ No newline at end of file +Το Organic Maps είναι δωρεάν για όλους χάρη στις δωρεές σου. Χωρίς διαφημίσεις. Χωρίς προγράμματα παρακολούθησης. Ανοιχτού κώδικα. diff --git a/content/donate/subscribe/index.es.md b/content/donate/subscribe/index.es.md index c6a6f8b84..d1fb63999 100644 --- a/content/donate/subscribe/index.es.md +++ b/content/donate/subscribe/index.es.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "Correo electrónico (opcional)" + email_why: "Recibe una confirmación, recordatorios y un enlace para darte de baja. Sin publicidad." + email_warning: "Sin un correo electrónico, contáctanos para cancelar tu donación periódica." name_label: Nombre (opcional) name_why: Para dirigirnos a ti en el correo de agradecimiento. submit: Continuar al pago seguro @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Pago seguro con Mollie. Los datos de tu tarjeta nunca pasan por 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…) + other_ways: "Otras formas de hacer donaciones" + form_title: "Haz una donación" + other_preset_label: "Otro" + email_why_once: "Para recibir un recibo de tu donación. Sin publicidad." + recurrence_once: "{amount} · Única" + recurrence_month: "{amount} ahora y después cada mes, hasta que canceles la donación." + recurrence_year: "{amount} ahora y después cada año, hasta que canceles la donación." + canceled_notice: "Tu pago se ha cancelado. Puedes volver a intentarlo o elegir otra forma de hacer una donación." --- 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 index 0a6e74d5d..2258ef12e 100644 --- a/content/donate/subscribe/index.et.md +++ b/content/donate/subscribe/index.et.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-post (vabatahtlik)" + email_why: "Saad kinnituse, meeldetuletused ja tühistamislingi. Ei mingit reklaami." + email_warning: "Kui sa e-posti aadressi ei lisa, võta korduva annetuse tühistamiseks meiega ühendust." name_label: Nimi (valikuline) name_why: Et saaksime sinu poole tänukirjas nimepidi pöörduda. submit: Jätka turvalise makse sooritamisega @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Turvaline maksmine teenuse Mollie kaudu. 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…) + other_ways: "Muud annetusvõimalused" + form_title: "Tee annetus" + other_preset_label: "Muu" + email_why_once: "Annetuse kinnituse saamiseks. Ei mingit turundust." + recurrence_once: "{amount} · Ühekordne" + recurrence_month: "{amount} nüüd, seejärel iga kuu, kuni annetuse tühistad." + recurrence_year: "{amount} nüüd, seejärel igal aastal, kuni annetuse tühistad." + canceled_notice: "Sinu makse tühistati. Võid proovida uuesti või valida mõne muu annetamisviisi." --- -Tänu sinu annetustele on Organic Maps kõigile tasuta. Ilma reklaamideta. Ilma jälgijateta. Avatud lähtekoodiga. \ No newline at end of file +Tänu sinu annetustele on Organic Maps kõigile tasuta. Ilma reklaamideta. Ilma jälgijateta. Avatud lähtekoodiga. diff --git a/content/donate/subscribe/index.eu.md b/content/donate/subscribe/index.eu.md index 6bb54caf3..c4e4a08c6 100644 --- a/content/donate/subscribe/index.eu.md +++ b/content/donate/subscribe/index.eu.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "Posta elektronikoa (aukerakoa)" + email_why: "Jasoko duzu baieztapen bat, gogorarazpenak eta bertan behera uzteko esteka bat. Ez dago marketinerik." + email_warning: "Helbide elektronikorik gabe, jar zaitez gurekin harremanetan aldizkako dohaintza bertan behera uzteko." name_label: Izena (aukerakoa) name_why: Eskerrak emateko mezuan izenez zuzendu ahal izateko. submit: Jarraitu ordainketa segurura @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Mollie bidezko ordainketa segurua. Txartelaren xehetasunak inoiz ez dira gure zerbitzarietara iristen." 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…) + other_ways: "Doneatzeko beste modu batzuk" + form_title: "Egin dohaintza" + other_preset_label: "Besteak" + email_why_once: "Dohaintza-berrespenarako. Ez marketinerako." + recurrence_once: "{amount} · Behin bakarrik" + recurrence_month: "{amount} orain, eta gero hilero, dohaintza bertan behera utzi arte." + recurrence_year: "{amount} orain, eta gero urtero, dohaintza bertan behera utzi arte." + canceled_notice: "Zure ordainketa bertan behera utzi da. Berriro saiatu zaitezke edo beste modu bat aukeratu dohaintza egiteko." --- -Organic Maps doakoa da denontzat, zure dohaintzei esker. Iragarkirik gabe. Jarraipen-tresnarik gabe. Iturburu irekia. \ No newline at end of file +Organic Maps doakoa da denontzat, zure dohaintzei esker. Iragarkirik gabe. Jarraipen-tresnarik gabe. Iturburu irekia. diff --git a/content/donate/subscribe/index.fa-IR.md b/content/donate/subscribe/index.fa-IR.md index 35fad6ec8..d39d03da4 100644 --- a/content/donate/subscribe/index.fa-IR.md +++ b/content/donate/subscribe/index.fa-IR.md @@ -13,9 +13,9 @@ extra: amount_label: مبلغ other_label: مبلغ دیگر currency_label: واحد پول - email_label: ایمیل (توصیه می‌شود) - email_why: یک تأییدیه برایتان می‌فرستیم، پیش از هر برداشت به شما یادآوری می‌کنیم و یک لینک لغو یک‌کلیکی در اختیارتان می‌گذاریم. همین و بس — بدون بازاریابی. - email_warning: بدون ایمیل نمی‌توانیم یادآوری‌های پرداخت یا لینک لغو را برایتان بفرستیم — برای لغو باید با ما تماس بگیرید. + email_label: "ایمیل (اختیاری)" + email_why: "دریافت تأییدیه، یادآوری‌ها و لینک لغو. بدون بازاریابی." + email_warning: "اگر ایمیل را وارد نکنید، برای لغو کمک مالی دوره‌ای با ما تماس بگیرید." name_label: نام (اختیاری) name_why: تا بتوانیم در ایمیل تشکر شما را خطاب قرار دهیم. submit: ادامه به پرداخت امن @@ -23,10 +23,17 @@ extra: submit_month: اهدای ماهانهٔ {amount} submit_year: اهدای سالانهٔ {amount} submit_loading: در حال انتقال به پرداخت امن… - secure_note: پرداخت را در Mollie، ارائه‌دهندهٔ پرداخت ما، نهایی می‌کنید. اطلاعات کارت هرگز وارد سرورهای ما نمی‌شود. + secure_note: "پرداخت امن با Mollie. جزئیات کارت هرگز به سرورهای ما منتقل نمی‌شود." error_amount: لطفاً مبلغ معتبری وارد کنید. error_amount_range: مبلغی بین {min} و {max} وارد کنید. - other_ways: روش‌های دیگر کمک مالی (PayPal، انتقال بانکی، رمزارز…) + other_ways: "سایر روش‌های اهداء" + form_title: "کمک مالی" + other_preset_label: "دیگر" + email_why_once: "برای تأیید اهداء. بدون بازاریابی." + recurrence_once: "{amount} · یک‌باره" + recurrence_month: "{amount} اکنون، سپس هر ماه تا زمانی که کمک مالی را لغو کنید." + recurrence_year: "{amount} اکنون، سپس هر سال تا زمانی که کمک مالی را لغو کنید." + canceled_notice: "پرداخت شما لغو شد. می‌توانید دوباره تلاش کنید یا روش دیگری برای اهدای کمک انتخاب کنید." --- -Organic Maps به لطف کمک‌های شما برای همه رایگان است. بدون تبلیغات. بدون ردیاب. متن‌باز. \ No newline at end of file +Organic Maps به لطف کمک‌های شما برای همه رایگان است. بدون تبلیغات. بدون ردیاب. متن‌باز. diff --git a/content/donate/subscribe/index.fr.md b/content/donate/subscribe/index.fr.md index 9f2a2c06a..e953337c8 100644 --- a/content/donate/subscribe/index.fr.md +++ b/content/donate/subscribe/index.fr.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-mail (facultatif)" + email_why: "Tu recevras une confirmation, des rappels et un lien pour te désabonner. Pas de pub." + email_warning: "Sans adresse e-mail, contacte-nous pour annuler ton don régulier." name_label: Nom (facultatif) name_why: Pour pouvoir t’adresser le message de remerciement. submit: Continuer vers le paiement sécurisé @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Paiement sécurisé via Mollie. Les données de ta carte ne passent jamais par 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…) + other_ways: "Autres moyens de faire un don" + form_title: "Faire un don" + other_preset_label: "Autre" + email_why_once: "Pour recevoir une attestation de don. Pas de pub." + recurrence_once: "{amount} · Ponctuel" + recurrence_month: "{amount} maintenant, puis chaque mois jusqu’à l’annulation de ton don." + recurrence_year: "{amount} maintenant, puis chaque année jusqu’à l’annulation de ton don." + canceled_notice: "Ton paiement a été annulé. Tu peux réessayer ou choisir un autre moyen de faire un don." --- 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 index 5bda6f924..d665df95a 100644 --- a/content/donate/subscribe/index.gl.md +++ b/content/donate/subscribe/index.gl.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "Correo electrónico (opcional)" + email_why: "Recibe unha confirmación, recordatorios e un enlace de cancelación. Sen marketing." + email_warning: "Sen un enderezo de correo electrónico, contacta connosco para cancelar a túa doazón periódica." name_label: Nome (opcional) name_why: Para que poidamos dirixirnos a ti no correo electrónico de agradecemento. submit: Continuar co pago seguro @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Pago seguro con Mollie. Os datos da tarxeta nunca tocan os 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…) + other_ways: "Outras formas de doar" + form_title: "Fai unha doazón" + other_preset_label: "Outro" + email_why_once: "Para a confirmación da doazón. Sen marketing." + recurrence_once: "{amount} · Puntual" + recurrence_month: "{amount} agora, e despois cada mes ata que canceles a doazón." + recurrence_year: "{amount} agora, e despois cada ano ata que canceles a doazón." + canceled_notice: "O teu pago foi cancelado. Podes tentar de novo ou escoller outra forma de doar." --- -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 +Organic Maps é gratuíto para todos grazas ás túas doazóns. Sen anuncios. Sen rastrexadores. Código aberto. diff --git a/content/donate/subscribe/index.he.md b/content/donate/subscribe/index.he.md index 8dde5bc43..8f177e36e 100644 --- a/content/donate/subscribe/index.he.md +++ b/content/donate/subscribe/index.he.md @@ -13,9 +13,9 @@ extra: amount_label: סכום other_label: סכום אחר currency_label: מטבע - email_label: דוא״ל (מומלץ) - email_why: נשלח לכם אישור, נזכיר לכם לפני כל חיוב וניתן לכם קישור לביטול בלחיצה אחת. זה הכול — ללא שיווק. - email_warning: ללא כתובת דוא״ל לא נוכל לשלוח תזכורות תשלום או קישור לביטול — תצטרכו ליצור איתנו קשר כדי לבטל. + email_label: "דוא\"ל (לא חובה)" + email_why: "קבל אישור, תזכורות וקישור לביטול. ללא פרסומות." + email_warning: "ללא כתובת דוא״ל, אפשר לפנות אלינו כדי לבטל את התרומה הקבועה." name_label: שם (לא חובה) name_why: כדי שנוכל לפנות אליכם במייל התודה. submit: המשיכו לתשלום מאובטח @@ -23,10 +23,17 @@ extra: submit_month: תרמו {amount} מדי חודש submit_year: תרמו {amount} מדי שנה submit_loading: מפנים לתשלום מאובטח… - secure_note: את התשלום תשלימו ב-Mollie, ספק התשלומים שלנו. פרטי הכרטיס לעולם אינם מגיעים לשרתים שלנו. + secure_note: "תשלום מאובטח באמצעות Mollie. פרטי כרטיס האשראי אינם עוברים דרך השרתים שלנו בשום שלב." error_amount: אנא הזינו סכום תקין. error_amount_range: הזינו סכום בין {min} ל-{max}. - other_ways: דרכים נוספות לתרומה (PayPal, העברה בנקאית, קריפטו…) + other_ways: "דרכים נוספות לתרום" + form_title: "לתרום" + other_preset_label: "אחר" + email_why_once: "לקבלת אישור על התרומה. ללא פרסומות." + recurrence_once: "{amount} · חד-פעמית" + recurrence_month: "{amount} עכשיו, ואחר כך מדי חודש עד לביטול התרומה." + recurrence_year: "{amount} עכשיו, ואחר כך מדי שנה עד לביטול התרומה." + canceled_notice: "התשלום שלך בוטל. תוכל לנסות שוב או לבחור דרך אחרת לתרום." --- -Organic Maps זמין בחינם לכולם בזכות התרומות שלכם. ללא פרסומות. ללא רכיבי מעקב. קוד פתוח. \ No newline at end of file +Organic Maps זמין בחינם לכולם בזכות התרומות שלכם. ללא פרסומות. ללא רכיבי מעקב. קוד פתוח. diff --git a/content/donate/subscribe/index.hi.md b/content/donate/subscribe/index.hi.md index 92a877362..fd65c16f2 100644 --- a/content/donate/subscribe/index.hi.md +++ b/content/donate/subscribe/index.hi.md @@ -13,9 +13,9 @@ extra: amount_label: राशि other_label: अन्य राशि currency_label: मुद्रा - email_label: ईमेल (अनुशंसित) - email_why: हम एक पुष्टिकरण भेजेंगे, प्रत्येक चार्ज से पहले आपको याद दिलाएँगे, और एक-क्लिक रद्द करने का लिंक देंगे। बस इतना ही — कोई मार्केटिंग नहीं। - email_warning: ईमेल के बिना हम भुगतान की याद दिलाने वाले संदेश या रद्दीकरण लिंक नहीं भेज सकते — रद्द करने के लिए आपको हमसे संपर्क करना होगा। + email_label: "ईमेल (वैकल्पिक)" + email_why: "पुष्टि, अनुस्मारक और रद्द करने का लिंक प्राप्त करें। कोई मार्केटिंग नहीं।" + email_warning: "ईमेल न देने पर, नियमित दान रद्द करने के लिए हमसे संपर्क करें।" name_label: नाम (वैकल्पिक) name_why: ताकि हम धन्यवाद ईमेल में आपको संबोधित कर सकें। submit: सुरक्षित भुगतान के लिए आगे बढ़ें @@ -23,10 +23,17 @@ extra: submit_month: "{amount} मासिक दान करें" submit_year: "{amount} वार्षिक दान करें" submit_loading: सुरक्षित भुगतान की ओर पुनर्निर्देशित किया जा रहा है… - secure_note: आप भुगतान हमारे भुगतान प्रदाता Mollie पर पूरा करेंगे। कार्ड का विवरण कभी हमारे सर्वर तक नहीं पहुँचता। + secure_note: "Mollie के साथ सुरक्षित भुगतान करें। कार्ड विवरण कभी भी हमारे सर्वर पर नहीं पहुँचते।" error_amount: कृपया एक मान्य राशि दर्ज करें। error_amount_range: "{min} और {max} के बीच की राशि दर्ज करें।" - other_ways: दान करने के अन्य तरीके (PayPal, बैंक हस्तांतरण, क्रिप्टो…) + other_ways: "दान करने के अन्य तरीके" + form_title: "दान करें" + other_preset_label: "अन्य" + email_why_once: "दान की पुष्टि के लिए। कोई विपणन नहीं।" + recurrence_once: "{amount} · एकमुश्त" + recurrence_month: "{amount} अभी, फिर दान रद्द करने तक हर महीने।" + recurrence_year: "{amount} अभी, फिर दान रद्द करने तक हर साल।" + canceled_notice: "आपका भुगतान रद्द कर दिया गया है। आप फिर से प्रयास कर सकते हैं या दान करने का कोई अन्य तरीका चुन सकते हैं।" --- -Organic Maps आपके दान की बदौलत सभी के लिए मुफ़्त है। कोई विज्ञापन नहीं। कोई ट्रैकर नहीं। ओपन सोर्स। \ No newline at end of file +Organic Maps आपके दान की बदौलत सभी के लिए मुफ़्त है। कोई विज्ञापन नहीं। कोई ट्रैकर नहीं। ओपन सोर्स। diff --git a/content/donate/subscribe/index.hu.md b/content/donate/subscribe/index.hu.md index 6cbdec922..1f8cf4d67 100644 --- a/content/donate/subscribe/index.hu.md +++ b/content/donate/subscribe/index.hu.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-mail (opcionális)" + email_why: "Visszaigazolás, emlékeztetők és lemondási hivatkozás. Nincs marketing." + email_warning: "Ha nem adsz meg e-mail-címet, keress minket az ismétlődő adomány lemondásához." 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 @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Biztonságos fizetés a Mollie oldalon. A kártyaadatok soha nem kerülnek a szerverünkre." 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…) + other_ways: "Egyéb adományozási lehetőségek" + form_title: "Adományozz" + other_preset_label: "Egyéb" + email_why_once: "Adományozási visszaigazoláshoz. Nincs marketing." + recurrence_once: "{amount} · Egyszeri" + recurrence_month: "{amount} most, majd havonta, amíg le nem mondod az adományt." + recurrence_year: "{amount} most, majd évente, amíg le nem mondod az adományt." + canceled_notice: "A befizetésed törlésre került. Megpróbálhatod újra, vagy választhatsz egy másik adományozási módot." --- 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 index fee1aecdb..296844f70 100644 --- a/content/donate/subscribe/index.id.md +++ b/content/donate/subscribe/index.id.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "Email (opsional)" + email_why: "Dapatkan konfirmasi, pengingat, dan tautan pembatalan. Tanpa promosi." + email_warning: "Tanpa alamat email, hubungi kami untuk membatalkan donasi rutin kamu." name_label: Nama (opsional) name_why: Agar kami dapat menyapa kamu dalam email ucapan terima kasih. submit: Lanjutkan ke pembayaran aman @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Pembayaran aman melalui Mollie. Rincian kartu 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…) + other_ways: "Cara lain untuk berdonasi" + form_title: "Berikan donasi" + other_preset_label: "Lainnya" + email_why_once: "Untuk konfirmasi donasi. Tanpa promosi." + recurrence_once: "{amount} · Sekali saja" + recurrence_month: "{amount} sekarang, lalu setiap bulan sampai kamu membatalkan donasinya." + recurrence_year: "{amount} sekarang, lalu setiap tahun sampai kamu membatalkan donasinya." + canceled_notice: "Pembayaran kamu telah dibatalkan. Kamu dapat mencoba lagi atau memilih cara lain untuk berdonasi." --- -Organic Maps gratis untuk semua orang berkat donasi kamu. Tanpa iklan. Tanpa pelacak. Sumber terbuka. \ No newline at end of file +Organic Maps gratis untuk semua orang berkat donasi kamu. Tanpa iklan. Tanpa pelacak. Sumber terbuka. diff --git a/content/donate/subscribe/index.it.md b/content/donate/subscribe/index.it.md index 4535bdd50..57a97e60a 100644 --- a/content/donate/subscribe/index.it.md +++ b/content/donate/subscribe/index.it.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "Email (facoltativa)" + email_why: "Ricevi una conferma, dei promemoria e un link per annullare l’iscrizione. Niente pubblicità." + email_warning: "Senza un indirizzo e-mail, contattaci per annullare la tua donazione ricorrente." name_label: Nome (facoltativo) name_why: Per rivolgerci a te nell’e-mail di ringraziamento. submit: Continua al pagamento sicuro @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Pagamento sicuro con Mollie. I dati della carta non passano mai dai 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…) + other_ways: "Altri modi per donare" + form_title: "Fai una donazione" + other_preset_label: "Altro" + email_why_once: "Per ricevere la conferma della donazione. Nessuna comunicazione commerciale." + recurrence_once: "{amount} · Una tantum" + recurrence_month: "{amount} ora, poi ogni mese fino all’annullamento della donazione." + recurrence_year: "{amount} ora, poi ogni anno fino all’annullamento della donazione." + canceled_notice: "Il tuo pagamento è stato annullato. Puoi riprovare oppure scegliere un altro modo per fare una donazione." --- 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 index 94ec57a5c..d38585217 100644 --- a/content/donate/subscribe/index.ja.md +++ b/content/donate/subscribe/index.ja.md @@ -13,9 +13,9 @@ extra: amount_label: 金額 other_label: その他の金額 currency_label: 通貨 - email_label: メールアドレス(推奨) - email_why: 確認メールをお送りし、請求の前に毎回お知らせするとともに、ワンクリックで解約できるリンクをご案内します。それ以外のメール(マーケティングなど)はお送りしません。 - email_warning: メールアドレスをご入力いただかない場合、支払い前のお知らせや解約用リンクをお送りできません。解約するには、当プロジェクトへご連絡いただく必要があります。 + email_label: "メールアドレス(任意)" + email_why: "確認メール、リマインダー、およびキャンセル用リンクが届く。マーケティングメールは送られない。" + email_warning: "メールアドレスを入力しない場合、定期寄付を取り消すには連絡が必要。" name_label: 名前(任意) name_why: お礼のメールでお名前を添えるためです。 submit: 安全な決済に進む @@ -23,10 +23,17 @@ extra: submit_month: 毎月 {amount} を寄付する submit_year: 毎年 {amount} を寄付する submit_loading: 安全な決済ページに移動しています… - secure_note: 決済は、決済代行サービス Mollie のサイトで完了します。カード情報が当プロジェクトのサーバーを通ることはありません。 + secure_note: "Mollie による安全な決済。カード情報は当社のサーバーには一切保存されない。" error_amount: 有効な金額を入力してください。 error_amount_range: "{min} から {max} の範囲で金額を入力してください。" - other_ways: その他の寄付方法(PayPal、銀行振込、暗号資産など) + other_ways: "その他の寄付方法" + form_title: "寄付をする" + other_preset_label: "その他" + email_why_once: "寄付の確認用。営業目的ではない。" + recurrence_once: "{amount} · 1回限り" + recurrence_month: "{amount}を今寄付し、その後は取り消すまで毎月寄付。" + recurrence_year: "{amount}を今寄付し、その後は取り消すまで毎年寄付。" + canceled_notice: "お支払いはキャンセルされた。再度試すか、別の寄付方法を選択できる。" --- 皆さまの寄付により、Organic Maps は誰でも無料で利用できます。広告なし。トラッカーなし。オープンソース。 diff --git a/content/donate/subscribe/index.lt.md b/content/donate/subscribe/index.lt.md index 7e3eea3e0..6f4abe759 100644 --- a/content/donate/subscribe/index.lt.md +++ b/content/donate/subscribe/index.lt.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "El. paštas (neprivaloma)" + email_why: "Gausite patvirtinimą, priminimus ir nuorodą atšaukti. Jokių reklaminių pranešimų." + email_warning: "Nenurodę el. pašto, susisiekite su mumis dėl periodinės aukos atšaukimo." name_label: Vardas (nebūtina) name_why: Kad galėtume kreiptis į jus padėkos laiške. submit: Tęsti į saugų mokėjimą @@ -23,10 +23,17 @@ extra: 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ų. + secure_note: "Saugus mokėjimas naudojant Mollie. 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…) + other_ways: "Kiti būdai paaukoti" + form_title: "Paaukokite" + other_preset_label: "Kita" + email_why_once: "Norėdami gauti patvirtinimą apie auką. Jokių reklamos pranešimų." + recurrence_once: "{amount} · Vienkartinė" + recurrence_month: "{amount} dabar, vėliau kas mėnesį, kol auką atšauksite." + recurrence_year: "{amount} dabar, vėliau kasmet, kol auką atšauksite." + canceled_notice: "Jūsų mokėjimas buvo atšauktas. Galite pabandyti dar kartą arba pasirinkti kitą aukojimo būdą." --- 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 index 7d25d9360..68af949ef 100644 --- a/content/donate/subscribe/index.md +++ b/content/donate/subscribe/index.md @@ -6,16 +6,19 @@ weight: 110 extra: preview_image: donate/donate.png form: + form_title: Make a donation interval_label: How often? once: One-time monthly: Monthly yearly: Yearly amount_label: Amount other_label: Other amount + other_preset_label: Other 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. + email_label: Email (optional) + email_why: Get a confirmation, reminders and a cancel link. No marketing. + email_why_once: For a donation confirmation. No marketing. + email_warning: Without email, contact us to cancel your recurring donation. name_label: Name (optional) name_why: So we can address you in the thank-you email. submit: Continue to secure payment @@ -23,10 +26,14 @@ extra: 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. + secure_note: Secure payment with Mollie. 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…) + other_ways: Other ways to donate + recurrence_once: '{amount} · One-time' + recurrence_month: '{amount} now, then monthly until you cancel.' + recurrence_year: '{amount} now, then yearly until you cancel.' + canceled_notice: Your payment was canceled. You can try again or choose another way to donate. --- 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 index 44966dab7..c3138204c 100644 --- a/content/donate/subscribe/index.ml.md +++ b/content/donate/subscribe/index.ml.md @@ -13,9 +13,9 @@ extra: amount_label: തുക other_label: മറ്റൊരു തുക currency_label: കറൻസി - email_label: ഇമെയിൽ (ശുപാർശ ചെയ്യുന്നു) - email_why: ഞങ്ങൾ ഒരു സ്ഥിരീകരണം അയയ്‌ക്കും, ഓരോ ചാർജിനും മുമ്പായി നിങ്ങളെ ഓർമ്മിപ്പിക്കും, ഒറ്റ ക്ലിക്കിൽ റദ്ദാക്കാനുള്ള ഒരു ലിങ്ക് നൽകും. അത്രമാത്രം — വിപണന സന്ദേശങ്ങളൊന്നുമില്ല. - email_warning: ഇമെയിൽ ഇല്ലെങ്കിൽ ഞങ്ങൾക്ക് പണമടയ്ക്കാനുള്ള ഓർമ്മപ്പെടുത്തലുകളോ റദ്ദാക്കാനുള്ള ലിങ്കോ അയക്കാൻ കഴിയില്ല — റദ്ദാക്കുന്നതിന് നിങ്ങൾ ഞങ്ങളെ ബന്ധപ്പെടേണ്ടിവരും. + email_label: "ഇമെയിൽ (ഓപ്ഷണൽ)" + email_why: "സ്ഥിരീകരണവും ഓർമ്മപ്പെടുത്തലുകളും റദ്ദാക്കാനുള്ള ലിങ്കും ലഭിക്കും. മാർക്കറ്റിംഗില്ല." + email_warning: "ഇമെയിൽ നൽകുന്നില്ലെങ്കിൽ, ആവർത്തന സംഭാവന റദ്ദാക്കാൻ ഞങ്ങളെ ബന്ധപ്പെടുക." name_label: പേര് (ഓപ്ഷണൽ) name_why: നന്ദി അറിയിക്കുന്ന ഇമെയിലിൽ നിങ്ങളെ അഭിസംബോധന ചെയ്യാൻ വേണ്ടി. submit: സുരക്ഷിത പേയ്‌മെന്റിലേക്ക് തുടരുക @@ -23,10 +23,17 @@ extra: submit_month: പ്രതിമാസം {amount} സംഭാവന ചെയ്യുക submit_year: പ്രതിവർഷം {amount} സംഭാവന ചെയ്യുക submit_loading: സുരക്ഷിത പേയ്‌മെന്റിലേക്ക് മാറ്റുന്നു… - secure_note: ഞങ്ങളുടെ പേയ്‌മെന്റ് ദാതാവായ Mollie-യിൽ വെച്ചാണ് നിങ്ങൾ പണമടയ്ക്കൽ പൂർത്തിയാക്കുന്നത്. കാർഡ് വിവരങ്ങൾ ഒരിക്കലും ഞങ്ങളുടെ സെർവറുകളിൽ എത്തുന്നില്ല. + secure_note: "Mollie ഉപയോഗിച്ച് സുരക്ഷിതമായ പേയ്മെൻ്റ്. കാർഡ് വിവരങ്ങൾ ഒരിക്കലും ഞങ്ങളുടെ സെർവറുകളിൽ എത്തുന്നില്ല." error_amount: ദയവായി സാധുവായ ഒരു തുക നൽകുക. error_amount_range: "{min}-നും {max}-നും ഇടയിൽ ഒരു തുക നൽകുക." - other_ways: സംഭാവന നൽകാനുള്ള മറ്റ് വഴികൾ (PayPal, ബാങ്ക് ട്രാൻസ്ഫർ, ക്രിപ്റ്റോ…) + other_ways: "സംഭാവന നൽകാനുള്ള മറ്റ് വഴികൾ" + form_title: "സംഭാവന നൽകുക" + other_preset_label: "മറ്റുള്ളവ" + email_why_once: "സംഭാവനയുടെ സ്ഥിരീകരണത്തിനായി. വിപണനത്തിനായി അല്ല." + recurrence_once: "{amount} · ഒറ്റത്തവണ" + recurrence_month: "{amount} ഇപ്പോൾ, തുടർന്ന് സംഭാവന റദ്ദാക്കുന്നതുവരെ എല്ലാ മാസവും." + recurrence_year: "{amount} ഇപ്പോൾ, തുടർന്ന് സംഭാവന റദ്ദാക്കുന്നതുവരെ എല്ലാ വർഷവും." + canceled_notice: "നിങ്ങളുടെ പേയ്‌മെൻ്റ് റദ്ദാക്കപ്പെട്ടു. നിങ്ങൾക്ക് വീണ്ടും ശ്രമിക്കുകയോ സംഭാവന നൽകുന്നതിനായി മറ്റൊരു മാർഗ്ഗം തിരഞ്ഞെടുക്കുകയോ ചെയ്യാം." --- -നിങ്ങളുടെ സംഭാവനകൾക്ക് നന്ദി, Organic Maps എല്ലാവർക്കും സൗജന്യമാണ്. പരസ്യങ്ങളില്ല. ട്രാക്കറുകളില്ല. ഓപ്പൺ സോഴ്സ്. \ No newline at end of file +നിങ്ങളുടെ സംഭാവനകൾക്ക് നന്ദി, Organic Maps എല്ലാവർക്കും സൗജന്യമാണ്. പരസ്യങ്ങളില്ല. ട്രാക്കറുകളില്ല. ഓപ്പൺ സോഴ്സ്. diff --git a/content/donate/subscribe/index.mr.md b/content/donate/subscribe/index.mr.md index dddac6159..ea3bfcef3 100644 --- a/content/donate/subscribe/index.mr.md +++ b/content/donate/subscribe/index.mr.md @@ -13,9 +13,9 @@ extra: amount_label: रक्कम other_label: इतर रक्कम currency_label: चलन - email_label: ईमेल (शिफारस केलेले) - email_why: आम्ही पुष्टीकरण पाठवू, प्रत्येक चार्जपूर्वी तुम्हाला स्मरण करून देऊ, आणि एक-क्लिक रद्द करण्याची लिंक देऊ. इतकेच — कोणतेही मार्केटिंग नाही. - email_warning: ईमेलशिवाय आम्ही पेमेंट स्मरणपत्रे किंवा रद्द करण्याची लिंक पाठवू शकत नाही — रद्द करण्यासाठी तुम्हाला आमच्याशी संपर्क साधावा लागेल. + email_label: "ईमेल (ऐच्छिक)" + email_why: "पुष्टी, स्मरणपत्रे आणि रद्द करण्याचा दुवा मिळवा. कोणतेही विपणन नाही." + email_warning: "ईमेल न दिल्यास, नियमित देणगी रद्द करण्यासाठी आमच्याशी संपर्क साधा." name_label: नाव (ऐच्छिक) name_why: जेणेकरून आम्ही तुम्हाला धन्यवाद ईमेलमध्ये संबोधित करू शकू. submit: सुरक्षित पेमेंटकडे पुढे जा @@ -23,10 +23,17 @@ extra: submit_month: "{amount} मासिक देणगी द्या" submit_year: "{amount} वार्षिक देणगी द्या" submit_loading: सुरक्षित पेमेंटसाठी पुनर्निर्देशित करत आहे… - secure_note: तुम्ही आमचे पेमेंट प्रदाता Mollie वर पेमेंट पूर्ण कराल. कार्ड तपशील कधीही आमच्या सर्व्हरवर येत नाहीत. + secure_note: "Mollie सह सुरक्षित पेमेंट. कार्ड तपशील कधीही आमच्या सर्व्हरवर येत नाहीत." error_amount: कृपया वैध रक्कम प्रविष्ट करा. error_amount_range: "{min} ते {max} या दरम्यानची रक्कम प्रविष्ट करा." - other_ways: दान करण्याचे इतर मार्ग (PayPal, बँक हस्तांतरण, क्रिप्टो…) + other_ways: "दान करण्याचे इतर मार्ग" + form_title: "दान करा" + other_preset_label: "इतर" + email_why_once: "दान पुष्टीकरणासाठी. विपणनासाठी नाही." + recurrence_once: "{amount} · एकदाच" + recurrence_month: "{amount} आता, त्यानंतर देणगी रद्द करेपर्यंत दरमहा." + recurrence_year: "{amount} आता, त्यानंतर देणगी रद्द करेपर्यंत दरवर्षी." + canceled_notice: "तुमचे पेमेंट रद्द करण्यात आले आहे. तुम्ही पुन्हा प्रयत्न करू शकता किंवा देणगी देण्यासाठी दुसरा मार्ग निवडू शकता." --- -तुमच्या देणग्यांमुळे Organic Maps सर्वांसाठी मोफत आहे. कोणतीही जाहिरात नाही. कोणतेही ट्रॅकर नाहीत. मुक्त स्रोत. \ No newline at end of file +तुमच्या देणग्यांमुळे Organic Maps सर्वांसाठी मोफत आहे. कोणतीही जाहिरात नाही. कोणतेही ट्रॅकर नाहीत. मुक्त स्रोत. diff --git a/content/donate/subscribe/index.nl.md b/content/donate/subscribe/index.nl.md index 5a610c4b0..0ef8c90e5 100644 --- a/content/donate/subscribe/index.nl.md +++ b/content/donate/subscribe/index.nl.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-mail (optioneel)" + email_why: "Je krijgt een bevestiging, herinneringen en een link om af te melden. Geen marketing." + email_warning: "Zonder e-mailadres moet je contact met ons opnemen om je periodieke donatie stop te zetten." name_label: Naam (optioneel) name_why: Zodat we je persoonlijk kunnen bedanken in de e-mail. submit: Doorgaan naar veilige betaling @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Veilig betalen via Mollie. Je kaartgegevens komen nooit op onze servers terecht." 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…) + other_ways: "Andere manieren om te doneren" + form_title: "Doneer" + other_preset_label: "Overig" + email_why_once: "Voor een donatiebevestiging. Geen reclame." + recurrence_once: "{amount} · Eenmalig" + recurrence_month: "{amount} nu, daarna elke maand totdat je de donatie stopzet." + recurrence_year: "{amount} nu, daarna elk jaar totdat je de donatie stopzet." + canceled_notice: "Je betaling is geannuleerd. Je kunt het nog eens proberen of een andere manier kiezen om te doneren." --- 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 index 1953ac0da..451d133a8 100644 --- a/content/donate/subscribe/index.oc.md +++ b/content/donate/subscribe/index.oc.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "Corrièr electronic (opcional)" + email_why: "Recebràs una confirmacion, de rapèls e un ligam per anullar. Pas de publicitat." + email_warning: "Sens adreça de corrièr electronic, contacta-nos per anullar ton don regular." 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 @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Pagament segur amb Mollie. Los detalhs de la carta non tocan 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…) + other_ways: "Autras manièras de donar" + form_title: "Fai un don" + other_preset_label: "Autre" + email_why_once: "Per la confirmacion de la donacion. Pas de marketing." + recurrence_once: "{amount} · Un còp" + recurrence_month: "{amount} ara, puèi cada mes fins que tu anulles lo don." + recurrence_year: "{amount} ara, puèi cada an fins que tu anulles lo don." + canceled_notice: "Ton pagament es estat anullat. Pòdes tornar ensajar o causir una autra manièra de donar." --- -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 +Organic Maps es gratuit per totes gràcias a tas donacions. Pas de publicitat. Pas de traçaires. Còdi dobèrt. diff --git a/content/donate/subscribe/index.pl.md b/content/donate/subscribe/index.pl.md index f3dde2ba5..1154f154e 100644 --- a/content/donate/subscribe/index.pl.md +++ b/content/donate/subscribe/index.pl.md @@ -13,9 +13,9 @@ extra: 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ć. + email_label: "E-mail (opcjonalnie)" + email_why: "Otrzymasz potwierdzenie, przypomnienia i link do anulowania. Żadnych wiadomości marketingowych." + email_warning: "Bez adresu e-mail skontaktuj się z nami, aby anulować regularną darowiznę." 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 @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Bezpieczna płatność przez Mollie. 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…) + other_ways: "Inne sposoby przekazania darowizny" + form_title: "Przekaż darowiznę" + other_preset_label: "Inne" + email_why_once: "Potwierdzenie wpłaty. Żadnych wiadomości marketingowych." + recurrence_once: "{amount} · Jednorazowo" + recurrence_month: "{amount} teraz, potem co miesiąc, aż anulujesz darowiznę." + recurrence_year: "{amount} teraz, potem co rok, aż anulujesz darowiznę." + canceled_notice: "Twoja płatność została anulowana. Możesz spróbować jeszcze raz albo wybrać inną formę wpłaty." --- 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 index ecb0455c5..af9a261a0 100644 --- a/content/donate/subscribe/index.pt-BR.md +++ b/content/donate/subscribe/index.pt-BR.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-mail (opcional)" + email_why: "Receba uma confirmação, lembretes e um link para cancelar. Sem propaganda." + email_warning: "Sem endereço de e-mail, entre em contato conosco para cancelar sua doação recorrente." name_label: Nome (opcional) name_why: Assim, podemos nos dirigir a você no e-mail de agradecimento. submit: Continuar para o pagamento seguro @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Pagamento seguro com o Mollie. 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…) + other_ways: "Outras formas de doar" + form_title: "Faça uma doação" + other_preset_label: "Outro" + email_why_once: "Para receber uma confirmação da doação. Sem marketing." + recurrence_once: "{amount} · Única" + recurrence_month: "{amount} agora, depois todos os meses até você cancelar a doação." + recurrence_year: "{amount} agora, depois todos os anos até você cancelar a doação." + canceled_notice: "Seu pagamento foi cancelado. Você pode tentar de novo ou escolher outra forma de doar." --- -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 +Organic Maps é gratuito para todo mundo graças às suas doações. Sem anúncios. Sem rastreadores. Código aberto. diff --git a/content/donate/subscribe/index.pt.md b/content/donate/subscribe/index.pt.md index efe424fd2..18a2bcf46 100644 --- a/content/donate/subscribe/index.pt.md +++ b/content/donate/subscribe/index.pt.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-mail (opcional)" + email_why: "Recebe uma confirmação, lembretes e um link para cancelar. Sem publicidade." + email_warning: "Sem endereço de e-mail, contacta-nos para cancelar o teu donativo recorrente." name_label: Nome (opcional) name_why: Para nos dirigirmos a ti no e-mail de agradecimento. submit: Continuar para o pagamento seguro @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Pagamento seguro através do Mollie. Os dados do cartão nunca passam pelos 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…) + other_ways: "Outras formas de fazer uma doação" + form_title: "Faz uma doação" + other_preset_label: "Outro" + email_why_once: "Para receberes uma confirmação da doação. Sem publicidade." + recurrence_once: "{amount} · Única" + recurrence_month: "{amount} agora, depois todos os meses até cancelares o donativo." + recurrence_year: "{amount} agora, depois todos os anos até cancelares o donativo." + canceled_notice: "O teu pagamento foi cancelado. Podes tentar novamente ou escolher outra forma de fazer uma doação." --- 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 index f2dfeade5..dfc7638ab 100644 --- a/content/donate/subscribe/index.ru.md +++ b/content/donate/subscribe/index.ru.md @@ -13,9 +13,9 @@ extra: amount_label: Сумма other_label: Другая сумма currency_label: Валюта - email_label: Электронная почта (рекомендуется) - email_why: Мы отправим подтверждение, напомним перед каждым списанием и дадим ссылку для отмены в один клик. Ничего больше — никакого маркетинга. - email_warning: Без адреса электронной почты мы не сможем присылать напоминания о платежах и ссылку для отмены — вам придётся связаться с нами, чтобы отменить пожертвование. + email_label: "Электронная почта (необязательно)" + email_why: "Подтверждение, напоминания и ссылка для отмены. Без рекламы." + email_warning: "Без адреса почты для отмены регулярного пожертвования нужно связаться с нами." name_label: Имя (необязательно) name_why: Чтобы мы могли обратиться к вам по имени в благодарственном письме. submit: Перейти к безопасной оплате @@ -23,10 +23,17 @@ extra: submit_month: Пожертвовать {amount} ежемесячно submit_year: Пожертвовать {amount} ежегодно submit_loading: Перенаправление на страницу безопасной оплаты… - secure_note: Вы завершите оплату на стороне Mollie, нашего платёжного провайдера. Данные карты никогда не попадают на наши серверы. + secure_note: "Безопасная оплата через Mollie. Данные вашей карты никогда не попадают на наши серверы." error_amount: Пожалуйста, введите корректную сумму. error_amount_range: Введите сумму от {min} до {max}. - other_ways: Другие способы пожертвовать (PayPal, банковский перевод, криптовалюта…) + other_ways: "Другие способы сделать пожертвование" + form_title: "Сделайте пожертвование" + other_preset_label: "Другая" + email_why_once: "Для подтверждения пожертвования. Без рекламных рассылок." + recurrence_once: "{amount} · Разово" + recurrence_month: "{amount} сейчас, затем ежемесячно до отмены пожертвования." + recurrence_year: "{amount} сейчас, затем ежегодно до отмены пожертвования." + canceled_notice: "Ваш платёж был отменён. Вы можете повторить попытку или выбрать другой способ пожертвования." --- -Благодаря вашим пожертвованиям приложение Organic Maps доступно всем бесплатно. Без рекламы. Без слежки. С открытым исходным кодом. \ No newline at end of file +Благодаря вашим пожертвованиям приложение Organic Maps доступно всем бесплатно. Без рекламы. Без слежки. С открытым исходным кодом. diff --git a/content/donate/subscribe/index.sv.md b/content/donate/subscribe/index.sv.md index 2aae91e9b..c199c0800 100644 --- a/content/donate/subscribe/index.sv.md +++ b/content/donate/subscribe/index.sv.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-post (valfritt)" + email_why: "Få en bekräftelse, påminnelser och en länk för att avregistrera dig. Ingen marknadsföring." + email_warning: "Utan e-postadress behöver du kontakta oss för att avsluta din återkommande donation." name_label: Namn (valfritt) name_why: Så att vi kan tilltala dig i tackmejlet. submit: Fortsätt till säker betalning @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Säker betalning via Mollie. Kortuppgifterna lagras aldrig på 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…) + other_ways: "Andra sätt att donera" + form_title: "Gör en donation" + other_preset_label: "Annat" + email_why_once: "För en bekräftelse på din donation. Ingen marknadsföring." + recurrence_once: "{amount} · Engångsbelopp" + recurrence_month: "{amount} nu, sedan varje månad tills du avslutar donationen." + recurrence_year: "{amount} nu, sedan varje år tills du avslutar donationen." + canceled_notice: "Din betalning har avbrutits. Du kan försöka igen eller välja ett annat sätt att donera." --- 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 index 6ea49f0e3..1c0a435df 100644 --- a/content/donate/subscribe/index.te.md +++ b/content/donate/subscribe/index.te.md @@ -13,9 +13,9 @@ extra: amount_label: మొత్తం other_label: ఇతర మొత్తం currency_label: కరెన్సీ - email_label: ఇమెయిల్ (సిఫార్సు చేయబడింది) - email_why: మేము నిర్ధారణ ఇమెయిల్ పంపుతాము, ప్రతి ఛార్జీకి ముందు మీకు గుర్తు చేస్తాము, ఒకే క్లిక్‌తో రద్దు చేసుకునే లింక్‌ను ఇస్తాము. మరేమీ లేదు — మార్కెటింగ్ ఉండదు. - email_warning: ఇమెయిల్ లేకపోతే మేము చెల్లింపు రిమైండర్‌లు లేదా రద్దు లింక్‌ను పంపలేము — రద్దు చేయడానికి మీరు మమ్మల్ని సంప్రదించవలసి ఉంటుంది. + email_label: "ఇమెయిల్ (ఐచ్ఛికం)" + email_why: "ధృవీకరణ, రిమైండర్‌లు మరియు రద్దు లింక్‌ను పొందండి. మార్కెటింగ్ లేదు." + email_warning: "ఇమెయిల్ ఇవ్వకపోతే, పునరావృత విరాళాన్ని రద్దు చేయడానికి మమ్మల్ని సంప్రదించండి." name_label: పేరు (ఐచ్ఛికం) name_why: ధన్యవాదాల ఇమెయిల్‌లో మిమ్మల్ని సంబోధించడానికి. submit: సురక్షిత చెల్లింపునకు కొనసాగండి @@ -23,10 +23,17 @@ extra: submit_month: "ప్రతి నెలా {amount} విరాళం ఇవ్వండి" submit_year: "ప్రతి సంవత్సరం {amount} విరాళం ఇవ్వండి" submit_loading: సురక్షిత చెల్లింపునకు మళ్లించబడుతోంది… - secure_note: మీరు మా చెల్లింపు ప్రదాత అయిన Mollieలో చెల్లింపును పూర్తి చేస్తారు. కార్డు వివరాలు ఎప్పుడూ మా సర్వర్‌లను తాకవు. + secure_note: "Mollieతో సురక్షితమైన చెల్లింపు. కార్డ్ వివరాలు మా సర్వర్‌లను ఎప్పుడూ తాకవు." error_amount: దయచేసి చెల్లుబాటు అయ్యే మొత్తాన్ని నమోదు చేయండి. error_amount_range: "{min} మరియు {max} మధ్య మొత్తాన్ని నమోదు చేయండి." - other_ways: విరాళం ఇవ్వడానికి ఇతర మార్గాలు (PayPal, బ్యాంక్ బదిలీ, క్రిప్టో…) + other_ways: "విరాళం ఇవ్వడానికి ఇతర మార్గాలు" + form_title: "విరాళం ఇవ్వండి" + other_preset_label: "ఇతర" + email_why_once: "విరాళం నిర్ధారణ కోసం. మార్కెటింగ్ లేదు." + recurrence_once: "{amount} · ఒకసారి" + recurrence_month: "{amount} ఇప్పుడు, ఆపై విరాళాన్ని రద్దు చేసే వరకు ప్రతి నెల." + recurrence_year: "{amount} ఇప్పుడు, ఆపై విరాళాన్ని రద్దు చేసే వరకు ప్రతి సంవత్సరం." + canceled_notice: "మీ చెల్లింపు రద్దు చేయబడింది. మీరు మళ్ళీ ప్రయత్నించవచ్చు లేదా విరాళం ఇవ్వడానికి మరొక మార్గాన్ని ఎంచుకోవచ్చు." --- -మీ విరాళాల వల్ల Organic Maps అందరికీ ఉచితం. ప్రకటనలు లేవు. ట్రాకర్లు లేవు. ఓపెన్ సోర్స్. \ No newline at end of file +మీ విరాళాల వల్ల Organic Maps అందరికీ ఉచితం. ప్రకటనలు లేవు. ట్రాకర్లు లేవు. ఓపెన్ సోర్స్. diff --git a/content/donate/subscribe/index.tr.md b/content/donate/subscribe/index.tr.md index bf74f27ad..25d796c0e 100644 --- a/content/donate/subscribe/index.tr.md +++ b/content/donate/subscribe/index.tr.md @@ -13,9 +13,9 @@ extra: 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. + email_label: "E-posta (isteğe bağlı)" + email_why: "Onay, hatırlatmalar ve iptal bağlantısı al. Pazarlama mesajı yok." + email_warning: "E-posta adresi vermezsen düzenli bağışını iptal etmek için bizimle iletişime geç." 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 @@ -23,10 +23,17 @@ extra: 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. + secure_note: "Mollie ile güvenli ödeme. Kart bilgilerin sunucularımıza asla 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…) + other_ways: "Bağış yapmanın diğer yolları" + form_title: "Bağış yap" + other_preset_label: "Diğer" + email_why_once: "Bağış teyidi için. Pazarlama amaçlı değildir." + recurrence_once: "{amount} · Tek seferlik" + recurrence_month: "{amount} şimdi, ardından bağışı iptal edene kadar her ay." + recurrence_year: "{amount} şimdi, ardından bağışı iptal edene kadar her yıl." + canceled_notice: "Ödemen iptal edildi. Tekrar deneyebilir veya başka bir bağış yöntemi seçebilirsin." --- -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 +Organic Maps, bağışların sayesinde herkes için ücretsizdir. Reklam yok. İzleme araçları yok. Açık kaynak. diff --git a/content/donate/subscribe/index.uk.md b/content/donate/subscribe/index.uk.md index 5f37f830a..deac492d0 100644 --- a/content/donate/subscribe/index.uk.md +++ b/content/donate/subscribe/index.uk.md @@ -13,9 +13,9 @@ extra: amount_label: Сума other_label: Інша сума currency_label: Валюта - email_label: Електронна пошта (рекомендується) - email_why: Ми надішлемо підтвердження, нагадаємо вам перед кожним списанням коштів і надамо посилання для скасування одним кліком. І більше нічого — жодного маркетингу. - email_warning: Без адреси електронної пошти ми не зможемо надсилати нагадування про платежі або посилання для скасування — щоб скасувати, вам доведеться написати нам. + email_label: "Електронна пошта (не обов’язково)" + email_why: "Отримайте підтвердження, нагадування та посилання для скасування. Без реклами." + email_warning: "Без адреси пошти для скасування регулярної пожертви потрібно зв’язатися з нами." name_label: Ім’я (необов’язково) name_why: Щоб ми могли звернутися до вас у листі з подякою. submit: Перейти до безпечної оплати @@ -23,10 +23,17 @@ extra: submit_month: Пожертвувати {amount} щомісяця submit_year: Пожертвувати {amount} щорічно submit_loading: Перенаправлення на сторінку безпечної оплати… - secure_note: Оплату ви завершите на Mollie — у нашого платіжного провайдера. Дані картки ніколи не потрапляють на наші сервери. + secure_note: "Безпечна оплата через Mollie. Дані картки ніколи не потрапляють на наші сервери." error_amount: Будь ласка, введіть коректну суму. error_amount_range: Введіть суму в діапазоні від {min} до {max}. - other_ways: Інші способи пожертвувати (PayPal, банківський переказ, криптовалюта…) + other_ways: "Інші способи зробити пожертву" + form_title: "Зробити пожертву" + other_preset_label: "Інше" + email_why_once: "Для підтвердження пожертви. Без реклами." + recurrence_once: "{amount} · Одноразово" + recurrence_month: "{amount} зараз, потім щомісяця до скасування пожертви." + recurrence_year: "{amount} зараз, потім щороку до скасування пожертви." + canceled_notice: "Ваш платіж було скасовано. Ви можете спробувати ще раз або вибрати інший спосіб пожертвування." --- -Organic Maps є безкоштовним для всіх завдяки вашим пожертвам. Без реклами. Без трекерів. З відкритим кодом. \ No newline at end of file +Organic Maps є безкоштовним для всіх завдяки вашим пожертвам. Без реклами. Без трекерів. З відкритим кодом. diff --git a/content/donate/subscribe/index.zh-Hans.md b/content/donate/subscribe/index.zh-Hans.md index d3e01e1bf..0d9aec3ab 100644 --- a/content/donate/subscribe/index.zh-Hans.md +++ b/content/donate/subscribe/index.zh-Hans.md @@ -13,9 +13,9 @@ extra: amount_label: 金额 other_label: 其他金额 currency_label: 货币 - email_label: 电子邮件(推荐) - email_why: 我们会发送确认邮件,在每次扣款前提醒你,并提供一键取消链接。仅此而已——不做任何营销。 - email_warning: 如果没有电子邮件地址,我们就无法发送付款提醒或取消链接——你需要联系我们才能取消。 + email_label: "电子邮件(可选)" + email_why: "获取确认信息、提醒和取消链接。无营销内容。" + email_warning: "如果不填写电子邮件地址,请联系我们取消定期捐款。" name_label: 姓名(可选) name_why: 这样我们才能在感谢邮件中称呼你。 submit: 继续前往安全支付 @@ -23,10 +23,17 @@ extra: submit_month: 每月捐款 {amount} submit_year: 每年捐款 {amount} submit_loading: 正在跳转至安全支付页面…… - secure_note: 你将在我们的支付服务提供商 Mollie 上完成支付。银行卡信息绝不会经过我们的服务器。 + secure_note: "通过Mollie进行安全支付。你的信用卡信息绝不会存储在我们的服务器上。" error_amount: 请输入有效的金额。 error_amount_range: 请输入 {min} 至 {max} 之间的金额。 - other_ways: 其他捐赠方式(PayPal、银行转账、加密货币等) + other_ways: "其他捐赠方式" + form_title: "捐款" + other_preset_label: "其他" + email_why_once: "用于确认捐款。不进行营销。" + recurrence_once: "{amount} · 一次性" + recurrence_month: "现在捐赠 {amount},之后每月捐赠,直到你取消。" + recurrence_year: "现在捐赠 {amount},之后每年捐赠,直到你取消。" + canceled_notice: "你的付款已被取消。你可以重试,或选择其他捐赠方式。" --- -多亏了你的捐款,Organic Maps 对所有人免费开放。无广告。无追踪器。开源。 \ No newline at end of file +多亏了你的捐款,Organic Maps 对所有人免费开放。无广告。无追踪器。开源。 diff --git a/package-lock.json b/package-lock.json index 2377f20f4..cac02839b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,81 +9,71 @@ "version": "1.0.0", "license": "Apache-2.0", "devDependencies": { - "js-beautify": "^1.15.4", + "js-beautify": "^2.0.3", "node-html-markdown": "^2.0.0", - "node-html-parser": "^7.0.1", + "node-html-parser": "^9.0.6", + "playwright": "1.64.1", "postcss-scss": "^4.0.9", - "prettier": "^3.6.2", - "stylelint": "^16.25.0", - "stylelint-config-recommended": "^17.0.0", - "stylelint-config-standard": "^39.0.1", - "stylelint-scss": "^6.12.1" + "prettier": "^3.9.10", + "stylelint": "^17.16.0", + "stylelint-config-recommended": "^18.0.0", + "stylelint-config-standard": "^40.0.0", + "stylelint-scss": "^7.4.0" } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@cacheable/memory": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.5.tgz", - "integrity": "sha512-fkiAxCvssEyJZ5fxX4tcdZFRmW9JehSTGvvqmXn6rTzG5cH6V/3C4ad8yb01vOjp2xBydHkHrgpW0qeGtzt6VQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.2.0.tgz", + "integrity": "sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==", "dev": true, "license": "MIT", "dependencies": { - "@cacheable/utils": "^2.3.0", - "@keyv/bigmap": "^1.1.0", - "hookified": "^1.12.2", - "keyv": "^5.5.4" + "@cacheable/utils": "^2.5.0", + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0" } }, "node_modules/@cacheable/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-38NJXjIr4W1Sghun8ju+uYWD8h2c61B4dKwfnQHVDFpAJ9oS28RpfqZQJ6Dgd3RceGkILDY9YT+72HJR3LoeSQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz", + "integrity": "sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==", "dev": true, "license": "MIT", "dependencies": { - "hashery": "^1.2.0", - "keyv": "^5.5.4" + "hashery": "^1.5.1", + "keyv": "^5.6.0" } }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", - "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "node_modules/@csstools/css-calc": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.4.3.tgz", + "integrity": "sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA==", "dev": true, "funding": [ { @@ -96,18 +86,18 @@ } ], "license": "MIT", - "peer": true, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.2", + "@csstools/css-tokenizer": "^4.0.2" } }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", - "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.2.tgz", + "integrity": "sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA==", "dev": true, "funding": [ { @@ -120,15 +110,17 @@ } ], "license": "MIT", - "peer": true, "engines": { - "node": ">=18" + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.2" } }, - "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", - "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.16.tgz", + "integrity": "sha512-LsDbJPP/B8cPasUJyTA5S99F7C4G93ngW8hUluXz8CFeOaaRnBPtBiIlvgcPYU0HmHNz8CXg+1vwFrIB4F6Dgw==", "dev": true, "funding": [ { @@ -140,19 +132,20 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", - "engines": { - "node": ">=18" - }, + "license": "MIT-0", "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } } }, - "node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "node_modules/@csstools/css-tokenizer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.2.tgz", + "integrity": "sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw==", "dev": true, "funding": [ { @@ -164,112 +157,96 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz", - "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==", - "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/JounQin" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, "engines": { - "node": ">=12" + "node": ">=20.19.0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "node_modules/@csstools/media-query-list-parser": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-5.0.2.tgz", + "integrity": "sha512-qx19O8AbbLLbDSAcI6YOby/Vq8rV51psgIvlF5OZT/L8fQJDCyQifL6k+kYU4a8ySpzJ4RBzZkIs530bAn8y4Q==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "license": "MIT", "engines": { - "node": ">=12" + "node": ">=20.19.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.2", + "@csstools/css-tokenizer": "^4.0.2" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@csstools/selector-resolve-nested": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.2.tgz", + "integrity": "sha512-JpjNBJFA+4OnAHKRK4AMp8xrYyLhI9XapOeBlP2PhRU/IylSw+1ep3BFNTksBJnrTS3KT6kqKNVfpzLLwZUW5Q==", "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", "engines": { - "node": ">=12" + "node": ">=20.19.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss-selector-parser": "^7.1.1" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "node_modules/@csstools/selector-specificity": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-6.0.1.tgz", + "integrity": "sha512-MBuqFIIvqk4S593MGAskTkPpEUUzZNvGzh8mMxEwl3oHwjQlXmqHEDxNbN3Y0Tsh+xjmem4GZjeg7I0qkwBivg==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", "engines": { - "node": ">=12" + "node": ">=20.19.0" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "peerDependencies": { + "postcss-selector-parser": "^7.1.1" } }, "node_modules/@keyv/bigmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.0.tgz", - "integrity": "sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", "dev": true, "license": "MIT", "dependencies": { - "hashery": "^1.2.0", - "hookified": "^1.13.0" + "hashery": "^1.4.0", + "hookified": "^1.15.0" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "keyv": "^5.5.4" + "keyv": "^5.6.0" } }, "node_modules/@keyv/serialize": { @@ -284,6 +261,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -297,6 +275,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -306,6 +285,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -315,36 +295,39 @@ } }, "node_modules/@one-ini/wasm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", - "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", - "dev": true + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.2.1.tgz", + "integrity": "sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg==", + "dev": true, + "license": "MIT" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, "license": "MIT", - "optional": true, "engines": { - "node": ">=14" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-5.0.0.tgz", + "integrity": "sha512-/XrFJgzQQQHpti1raDJC6m4ws6aNktmjBlhk8Fdlk7LwCEuDoieEJJY9OFHjfiFJFFRM2tK+Ky/IsfbbmlMu1w==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", "dependencies": { @@ -386,16 +369,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "Python-2.0" }, "node_modules/astral-regex": { "version": "2.0.0", @@ -408,10 +383,14 @@ } }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/boolbase": { "version": "1.0.0", @@ -420,12 +399,16 @@ "dev": true }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" } }, "node_modules/braces": { @@ -433,6 +416,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -441,17 +425,17 @@ } }, "node_modules/cacheable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.2.0.tgz", - "integrity": "sha512-LEJxRqfeomiiRd2t0uON6hxAtgOoWDfY3fugebbz+J3vDLO+SkdfFChQcOHTZhj9SYa9iwE9MGYNX72dKiOE4w==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", + "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", "dev": true, "license": "MIT", "dependencies": { - "@cacheable/memory": "^2.0.5", - "@cacheable/utils": "^2.3.0", - "hookified": "^1.13.0", - "keyv": "^5.5.4", - "qified": "^0.5.2" + "@cacheable/memory": "^2.2.0", + "@cacheable/utils": "^2.5.0", + "hookified": "^1.15.0", + "keyv": "^5.6.0", + "qified": "^0.10.1" } }, "node_modules/callsites": { @@ -459,72 +443,11 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/chalk/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -544,18 +467,20 @@ "dev": true }, "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.10.0.tgz", + "integrity": "sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==", + "dev": true, + "license": "MIT" }, "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=20" } }, "node_modules/config-chain": { @@ -569,10 +494,11 @@ } }, "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", + "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -594,45 +520,14 @@ } } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/css-functions-list": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", - "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", + "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", "dev": true, "license": "MIT", "engines": { - "node": ">=12 || >=16" + "node": ">=12" } }, "node_modules/css-select": { @@ -652,14 +547,14 @@ } }, "node_modules/css-tree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", - "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "license": "MIT", "dependencies": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" @@ -708,18 +603,6 @@ } } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -775,44 +658,23 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, "node_modules/editorconfig": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-3.0.2.tgz", + "integrity": "sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA==", "dev": true, + "license": "MIT", "dependencies": { - "@one-ini/wasm": "0.1.1", - "commander": "^10.0.0", - "minimatch": "9.0.1", - "semver": "^7.5.3" + "@one-ini/wasm": "0.2.1", + "commander": "^14.0.3", + "minimatch": "~10.2.4", + "semver": "^7.7.4" }, "bin": { "editorconfig": "bin/editorconfig" }, "engines": { - "node": ">=14" - } - }, - "node_modules/editorconfig/node_modules/minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=20" } }, "node_modules/emoji-regex": { @@ -838,28 +700,21 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -885,10 +740,20 @@ } }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.9.tgz", + "integrity": "sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { @@ -901,22 +766,23 @@ } }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { - "version": "10.1.4", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.4.tgz", - "integrity": "sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA==", + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", + "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^6.1.13" + "flat-cache": "^6.1.23" } }, "node_modules/fill-range": { @@ -924,6 +790,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -932,57 +799,50 @@ } }, "node_modules/flat-cache": { - "version": "6.1.19", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.19.tgz", - "integrity": "sha512-l/K33newPTZMTGAnnzaiqSl6NnH7Namh8jBNjrgjprWxGmZUuxx/sJNIRaijOh3n7q7ESbhNZC+pvVZMFdeU4A==", + "version": "6.1.23", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", + "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", "dev": true, "license": "MIT", "dependencies": { - "cacheable": "^2.2.0", - "flatted": "^3.3.3", - "hookified": "^1.13.0" + "cacheable": "^2.5.0", + "flatted": "^3.4.2", + "hookified": "^1.15.0" } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", "dev": true, "license": "ISC" }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "node_modules/get-east-asian-width": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz", + "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==", "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -993,6 +853,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1027,20 +888,22 @@ } }, "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.4.tgz", + "integrity": "sha512-c8B/VNLmxRcmqqenRA9t+9IyOjf9+V6lTxPaUJLqOCONdQkWZ0ETYgX0qbtJqPsgCNusT9MZ5Jeidw8Eb9tn2g==", "dev": true, + "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "is-path-inside": "^4.0.0", + "micromatch": "^4.0.8", + "slash": "^5.1.0", + "unicorn-magic": "^0.4.0" }, "engines": { - "node": ">=10" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1053,23 +916,26 @@ "dev": true }, "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", + "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/hashery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.2.0.tgz", - "integrity": "sha512-43XJKpwle72Ik5Zpam7MuzRWyNdwwdf6XHlh8wCj2PggvWf+v/Dm5B0dxGZOmddidgeO6Ofu9As/o231Ti/9PA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", + "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", "dev": true, "license": "MIT", "dependencies": { - "hookified": "^1.13.0" + "hookified": "^1.15.0" }, "engines": { "node": ">=20" @@ -1085,38 +951,41 @@ } }, "node_modules/hookified": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.13.0.tgz", - "integrity": "sha512-6sPYUY8olshgM/1LDNW4QZQN0IqgKhtl/1C8koNZBJrKLBk3AZl6chQtNwpNztvfiApHMEwMHek5rv993PRbWw==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", + "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", "dev": true, "license": "MIT" }, "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz", + "integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=20.10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.14.tgz", + "integrity": "sha512-wCBiZ77u1tuWde6G/nfOtLaCTYcFDU5yCzARzK10y+rLhzYoL7a7yEemcopcc2Mzow7gZOIjnV2ym1NYmdiJOQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -1128,22 +997,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", "dev": true, - "engines": { - "node": ">=0.8.19" + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/ini": { @@ -1156,13 +1018,15 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1181,6 +1045,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1193,15 +1058,30 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1212,34 +1092,18 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/js-beautify": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", - "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-2.0.3.tgz", + "integrity": "sha512-cyFbh3tkPhknnTD/0bLf0T0yy2ZIbqL05mttzbt4y1Zfr7NxqXQZ62dkBLKs3oHH/lpjmDRAnciJiSUyOy8XwQ==", "dev": true, "license": "MIT", "dependencies": { "config-chain": "^1.1.13", - "editorconfig": "^1.0.4", - "glob": "^10.4.2", - "js-cookie": "^3.0.5", - "nopt": "^7.2.1" + "editorconfig": "^3.0.2", + "glob": "^13.0.6", + "js-cookie": "^3.0.8", + "nopt": "^10.0.1" }, "bin": { "css-beautify": "js/bin/css-beautify.js", @@ -1251,25 +1115,35 @@ } }, "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.8.tgz", + "integrity": "sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==", "dev": true, - "engines": { - "node": ">=14" - } + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -1281,7 +1155,8 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "1.0.0", @@ -1291,12 +1166,11 @@ "license": "MIT" }, "node_modules/keyv": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.4.tgz", - "integrity": "sha512-eohl3hKTiVyD1ilYdw9T0OiB4hnjef89e3dMYKz+mVKDzj+5IteTseASUsOB+EU9Tf6VNTCjDePcP6wkDGmLKQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -1321,7 +1195,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", @@ -1331,41 +1206,41 @@ "license": "MIT" }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": "20 || >=22" } }, "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz", + "integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/mdn-data": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", - "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "dev": true, "license": "CC0-1.0" }, "node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz", + "integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1376,6 +1251,7 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1395,27 +1271,27 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.8" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -1428,9 +1304,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", + "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==", "dev": true, "funding": [ { @@ -1471,30 +1347,43 @@ } }, "node_modules/node-html-parser": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.0.1.tgz", - "integrity": "sha512-KGtmPY2kS0thCWGK0VuPyOS+pBKhhe8gXztzA2ilAOhbUbxa9homF1bOyKvhGzMLXUoRds9IOmr/v5lr/lqNmA==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-9.0.6.tgz", + "integrity": "sha512-q3ETJ2gU+VlERyYbiJ5JQ6+mMVV1Bc6mZQ7MdJ30moq+h3oN0kQGj3rWDORaSX1SOLSkPbY/bN+sBzDlliVOBA==", "dev": true, "license": "MIT", "dependencies": { "css-select": "^5.1.0", - "he": "1.2.0" + "entities": "^8.0.0" + } + }, + "node_modules/node-html-parser/node_modules/entities": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", + "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-10.0.1.tgz", + "integrity": "sha512-df3sBr/6ax9hSGuC3CspvLlbnX8cP5L5nZwXF8cGN8l0zSWR6BvzmQ6jPUKjvo6+/xdpkNvEcucBNUdBeeV13g==", "dev": true, "license": "ISC", "dependencies": { - "abbrev": "^2.0.0" + "abbrev": "^5.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/normalize-path": { @@ -1518,18 +1407,12 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -1542,6 +1425,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -1555,49 +1439,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1606,10 +1464,11 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -1617,10 +1476,39 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/playwright": { + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz", + "integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.64.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/playwright-core": { + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", + "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.32.tgz", + "integrity": "sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g==", "dev": true, "funding": [ { @@ -1637,11 +1525,10 @@ } ], "license": "MIT", - "peer": true, "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.20", "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.2" }, "engines": { "node": "^10 || ^12 || >=14" @@ -1654,9 +1541,9 @@ "dev": true }, "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", - "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.7.tgz", + "integrity": "sha512-lFcugRCQXWManq7nyZ0dDtir52wc7gKYJfWpSuz4GxvnGc7dtlpXcZYX4A0asatzTuqpQ3ngDdyD+QG/szeXWw==", "dev": true, "license": "MIT" }, @@ -1714,12 +1601,11 @@ } }, "node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.7.tgz", + "integrity": "sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -1735,9 +1621,9 @@ "dev": true }, "node_modules/prettier": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", - "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.10.tgz", + "integrity": "sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==", "dev": true, "license": "MIT", "bin": { @@ -1757,18 +1643,25 @@ "dev": true }, "node_modules/qified": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/qified/-/qified-0.5.2.tgz", - "integrity": "sha512-7gJ6mxcQb9vUBOtbKm5mDevbe2uRcOEVp1g4gb/Q+oLntB3HY8eBhOYRxFI2mlDFlY1e4DOSCptzxarXRvzxCA==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", + "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", "dev": true, "license": "MIT", "dependencies": { - "hookified": "^1.13.0" + "hookified": "^2.1.1" }, "engines": { "node": ">=20" } }, + "node_modules/qified/node_modules/hookified": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", + "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", + "dev": true, + "license": "MIT" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -1787,7 +1680,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/require-from-string": { "version": "2.0.2", @@ -1800,19 +1694,21 @@ } }, "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -1837,18 +1733,17 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -1856,34 +1751,12 @@ "node": ">=10" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/signal-exit": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", - "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -1892,12 +1765,16 @@ } }, "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/slice-ansi": { @@ -1919,9 +1796,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -1942,22 +1819,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -1970,24 +1831,10 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/stylelint": { - "version": "16.25.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.25.0.tgz", - "integrity": "sha512-Li0avYWV4nfv1zPbdnxLYBGq4z8DVZxbRgx4Kn6V+Uftz1rMoF1qiEI3oL4kgWqyYgCgs7gT5maHNZ82Gk03vQ==", + "version": "17.16.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.16.0.tgz", + "integrity": "sha512-ejlWnbJ13x1GU32+zZXa6sYQJsKKkwSdv2B4rAdO3OWdEmvhSJKcXi5pOphQYSzyaj1kXpuGJr7pcMBNfDIuPw==", "dev": true, "funding": [ { @@ -2000,58 +1847,54 @@ } ], "license": "MIT", - "peer": true, - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3", - "@csstools/selector-specificity": "^5.0.0", - "@dual-bundle/import-meta-resolve": "^4.2.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", - "css-tree": "^3.1.0", + "dependencies": { + "@csstools/css-calc": "^3.3.0", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-syntax-patches-for-csstree": "^1.1.9", + "@csstools/css-tokenizer": "^4.0.0", + "@csstools/media-query-list-parser": "^5.0.0", + "@csstools/selector-resolve-nested": "^4.0.1", + "@csstools/selector-specificity": "^6.0.0", + "colord": "^2.10.0", + "cosmiconfig": "^9.0.2", + "css-functions-list": "^3.3.3", + "css-tree": "^3.2.1", "debug": "^4.4.3", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^10.1.4", + "file-entry-cache": "^11.1.5", "global-modules": "^2.0.0", - "globby": "^11.1.0", + "globby": "^16.2.4", "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^7.0.5", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", + "html-tags": "^5.1.0", + "ignore": "^7.0.6", + "import-meta-resolve": "^4.2.0", + "mathml-tag-names": "^4.0.0", + "meow": "^14.1.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.6", - "postcss-resolve-nested-selector": "^0.1.6", + "postcss": "^8.5.26", "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.0", + "postcss-selector-parser": "^7.1.5", "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "supports-hyperlinks": "^3.2.0", + "string-width": "^8.2.2", + "supports-hyperlinks": "^4.5.0", "svg-tags": "^1.0.0", "table": "^6.9.0", - "write-file-atomic": "^5.0.1" + "write-file-atomic": "^7.0.1" }, "bin": { "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.19.0" } }, "node_modules/stylelint-config-recommended": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-17.0.0.tgz", - "integrity": "sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-18.0.0.tgz", + "integrity": "sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==", "dev": true, "funding": [ { @@ -2065,16 +1908,16 @@ ], "license": "MIT", "engines": { - "node": ">=18.12.0" + "node": ">=20.19.0" }, "peerDependencies": { - "stylelint": "^16.23.0" + "stylelint": "^17.0.0" } }, "node_modules/stylelint-config-standard": { - "version": "39.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-39.0.1.tgz", - "integrity": "sha512-b7Fja59EYHRNOTa3aXiuWnhUWXFU2Nfg6h61bLfAb5GS5fX3LMUD0U5t4S8N/4tpHQg3Acs2UVPR9jy2l1g/3A==", + "version": "40.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-40.0.0.tgz", + "integrity": "sha512-EznGJxOUhtWck2r6dJpbgAdPATIzvpLdK9+i5qPd4Lx70es66TkBPljSg4wN3Qnc6c4h2n+WbUrUynQ3fanjHw==", "dev": true, "funding": [ { @@ -2088,93 +1931,112 @@ ], "license": "MIT", "dependencies": { - "stylelint-config-recommended": "^17.0.0" + "stylelint-config-recommended": "^18.0.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.19.0" }, "peerDependencies": { - "stylelint": "^16.23.0" + "stylelint": "^17.0.0" } }, "node_modules/stylelint-scss": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.1.tgz", - "integrity": "sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-7.4.0.tgz", + "integrity": "sha512-OvN+AestcvtB/IFvde1kpFLq2mpIsPaeB8E+Cjlxu7qjf0ja7NCoTrDW97tuNeXFlYGUdwqGq5cXaByLpNwuxA==", "dev": true, "license": "MIT", "dependencies": { - "css-tree": "^3.0.1", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.36.0", - "mdn-data": "^2.21.0", + "@csstools/css-calc": "^3.4.3", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-syntax-patches-for-csstree": "^1.1.15", + "@csstools/css-tokenizer": "^4.0.0", + "css-tree": "^3.2.1", + "is-plain-object": "^5.1.0", + "known-css-properties": "^0.37.0", "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-selector-parser": "^7.1.0", + "postcss-resolve-nested-selector": "^0.1.7", + "postcss-selector-parser": "^7.1.6", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.19.0" }, "peerDependencies": { - "stylelint": "^16.0.2" + "stylelint": "^16.8.2 || ^17.0.0" } }, - "node_modules/stylelint-scss/node_modules/known-css-properties": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz", - "integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/stylelint-scss/node_modules/mdn-data": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.25.0.tgz", - "integrity": "sha512-T2LPsjgUE/tgMmRXREVmwsux89DwWfNjiynOeXuLd2mX6jphGQ2YE3Ukz7LQ2VOFKiVZU/Ee1GqzHiipZCjymw==", + "node_modules/stylelint/node_modules/ansi-regex": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.5.0.tgz", + "integrity": "sha512-zhvbbbdt1kbw7EJ9OQoxmQcuaNR9P5kTj7e/YdmOSU10aHWbycofJxA6jKfoEy3vlLdctOF9ZHaxLtmSm998wQ==", "dev": true, - "license": "CC0-1.0" - }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } }, - "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "node_modules/stylelint/node_modules/string-width": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", "dev": true, "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, "engines": { - "node": ">= 4" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { + "node_modules/stylelint/node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/supports-hyperlinks": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", - "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.6.0.tgz", + "integrity": "sha512-FL/q/YePS4tFFTNiBOR+zPk2ZrKheqNtmTJ/9OUZ4e1wKHJofDbGQSmSsxS0XNnabSkqexryCaXGvEKz1vf9UQ==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "has-flag": "^5.0.1", + "supports-color": "^10.2.2" }, "engines": { - "node": ">=14.18" + "node": ">=20" }, "funding": { "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" @@ -2208,6 +2070,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2215,6 +2078,19 @@ "node": ">=8.0" } }, + "node_modules/unicorn-magic": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.1.tgz", + "integrity": "sha512-lzlXPoVB0Uy/FvTaUgX39RbixYiSKoc3JSoSf01+0c2B6FR3qdYIPN7Qjo/AV7n6sqLCk0509cT3LRj1oSZ1+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -2234,271 +2110,116 @@ "which": "bin/which" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz", + "integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==", "dev": true, + "license": "ISC", "dependencies": { - "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } }, "dependencies": { "@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "requires": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" } }, "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true }, - "@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, "@cacheable/memory": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.5.tgz", - "integrity": "sha512-fkiAxCvssEyJZ5fxX4tcdZFRmW9JehSTGvvqmXn6rTzG5cH6V/3C4ad8yb01vOjp2xBydHkHrgpW0qeGtzt6VQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.2.0.tgz", + "integrity": "sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==", "dev": true, "requires": { - "@cacheable/utils": "^2.3.0", - "@keyv/bigmap": "^1.1.0", - "hookified": "^1.12.2", - "keyv": "^5.5.4" + "@cacheable/utils": "^2.5.0", + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0" } }, "@cacheable/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-38NJXjIr4W1Sghun8ju+uYWD8h2c61B4dKwfnQHVDFpAJ9oS28RpfqZQJ6Dgd3RceGkILDY9YT+72HJR3LoeSQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz", + "integrity": "sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==", "dev": true, "requires": { - "hashery": "^1.2.0", - "keyv": "^5.5.4" + "hashery": "^1.5.1", + "keyv": "^5.6.0" } }, + "@csstools/css-calc": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.4.3.tgz", + "integrity": "sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA==", + "dev": true, + "requires": {} + }, "@csstools/css-parser-algorithms": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", - "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.2.tgz", + "integrity": "sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA==", "dev": true, - "peer": true, "requires": {} }, - "@csstools/css-tokenizer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", - "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.16.tgz", + "integrity": "sha512-LsDbJPP/B8cPasUJyTA5S99F7C4G93ngW8hUluXz8CFeOaaRnBPtBiIlvgcPYU0HmHNz8CXg+1vwFrIB4F6Dgw==", "dev": true, - "peer": true + "requires": {} + }, + "@csstools/css-tokenizer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.2.tgz", + "integrity": "sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw==", + "dev": true }, "@csstools/media-query-list-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", - "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-5.0.2.tgz", + "integrity": "sha512-qx19O8AbbLLbDSAcI6YOby/Vq8rV51psgIvlF5OZT/L8fQJDCyQifL6k+kYU4a8ySpzJ4RBzZkIs530bAn8y4Q==", "dev": true, "requires": {} }, - "@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "@csstools/selector-resolve-nested": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.2.tgz", + "integrity": "sha512-JpjNBJFA+4OnAHKRK4AMp8xrYyLhI9XapOeBlP2PhRU/IylSw+1ep3BFNTksBJnrTS3KT6kqKNVfpzLLwZUW5Q==", "dev": true, "requires": {} }, - "@dual-bundle/import-meta-resolve": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz", - "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "@csstools/selector-specificity": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-6.0.1.tgz", + "integrity": "sha512-MBuqFIIvqk4S593MGAskTkPpEUUzZNvGzh8mMxEwl3oHwjQlXmqHEDxNbN3Y0Tsh+xjmem4GZjeg7I0qkwBivg==", "dev": true, - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } + "requires": {} }, "@keyv/bigmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.0.tgz", - "integrity": "sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", "dev": true, "requires": { - "hashery": "^1.2.0", - "hookified": "^1.13.0" + "hashery": "^1.4.0", + "hookified": "^1.15.0" } }, "@keyv/serialize": { @@ -2534,28 +2255,27 @@ } }, "@one-ini/wasm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", - "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.2.1.tgz", + "integrity": "sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg==", "dev": true }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true + "@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true }, "abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-5.0.0.tgz", + "integrity": "sha512-/XrFJgzQQQHpti1raDJC6m4ws6aNktmjBlhk8Fdlk7LwCEuDoieEJJY9OFHjfiFJFFRM2tK+Ky/IsfbbmlMu1w==", "dev": true }, "ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.3", @@ -2585,12 +2305,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -2598,9 +2312,9 @@ "dev": true }, "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true }, "boolbase": { @@ -2610,12 +2324,12 @@ "dev": true }, "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, "requires": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" } }, "braces": { @@ -2628,16 +2342,16 @@ } }, "cacheable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.2.0.tgz", - "integrity": "sha512-LEJxRqfeomiiRd2t0uON6hxAtgOoWDfY3fugebbz+J3vDLO+SkdfFChQcOHTZhj9SYa9iwE9MGYNX72dKiOE4w==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", + "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", "dev": true, "requires": { - "@cacheable/memory": "^2.0.5", - "@cacheable/utils": "^2.3.0", - "hookified": "^1.13.0", - "keyv": "^5.5.4", - "qified": "^0.5.2" + "@cacheable/memory": "^2.2.0", + "@cacheable/utils": "^2.5.0", + "hookified": "^1.15.0", + "keyv": "^5.6.0", + "qified": "^0.10.1" } }, "callsites": { @@ -2646,58 +2360,6 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2714,15 +2376,15 @@ "dev": true }, "colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.10.0.tgz", + "integrity": "sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==", "dev": true }, "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "dev": true }, "config-chain": { @@ -2736,9 +2398,9 @@ } }, "cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", + "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", "dev": true, "requires": { "env-paths": "^2.2.1", @@ -2747,32 +2409,10 @@ "parse-json": "^5.2.0" } }, - "cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "css-functions-list": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", - "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", + "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", "dev": true }, "css-select": { @@ -2789,13 +2429,13 @@ } }, "css-tree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", - "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "requires": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" } }, "css-what": { @@ -2819,15 +2459,6 @@ "ms": "^2.1.3" } }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, "dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -2865,33 +2496,16 @@ "domhandler": "^5.0.1" } }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, "editorconfig": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-3.0.2.tgz", + "integrity": "sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA==", "dev": true, "requires": { - "@one-ini/wasm": "0.1.1", - "commander": "^10.0.0", - "minimatch": "9.0.1", - "semver": "^7.5.3" - }, - "dependencies": { - "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "@one-ini/wasm": "0.2.1", + "commander": "^14.0.3", + "minimatch": "~10.2.4", + "semver": "^7.7.4" } }, "emoji-regex": { @@ -2913,20 +2527,14 @@ "dev": true }, "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2947,9 +2555,9 @@ } }, "fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.9.tgz", + "integrity": "sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==", "dev": true }, "fastest-levenshtein": { @@ -2959,21 +2567,21 @@ "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", "dev": true, "requires": { "reusify": "^1.0.4" } }, "file-entry-cache": { - "version": "10.1.4", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.4.tgz", - "integrity": "sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA==", + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", + "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", "dev": true, "requires": { - "flat-cache": "^6.1.13" + "flat-cache": "^6.1.23" } }, "fill-range": { @@ -2986,44 +2594,37 @@ } }, "flat-cache": { - "version": "6.1.19", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.19.tgz", - "integrity": "sha512-l/K33newPTZMTGAnnzaiqSl6NnH7Namh8jBNjrgjprWxGmZUuxx/sJNIRaijOh3n7q7ESbhNZC+pvVZMFdeU4A==", + "version": "6.1.23", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", + "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", "dev": true, "requires": { - "cacheable": "^2.2.0", - "flatted": "^3.3.3", - "hookified": "^1.13.0" + "cacheable": "^2.5.0", + "flatted": "^3.4.2", + "hookified": "^1.15.0" } }, "flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", "dev": true }, - "foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - } + "get-east-asian-width": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz", + "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==", + "dev": true }, "glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" } }, "glob-parent": { @@ -3056,17 +2657,18 @@ } }, "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.4.tgz", + "integrity": "sha512-c8B/VNLmxRcmqqenRA9t+9IyOjf9+V6lTxPaUJLqOCONdQkWZ0ETYgX0qbtJqPsgCNusT9MZ5Jeidw8Eb9tn2g==", "dev": true, "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "is-path-inside": "^4.0.0", + "micromatch": "^4.0.8", + "slash": "^5.1.0", + "unicorn-magic": "^0.4.0" } }, "globjoin": { @@ -3076,18 +2678,18 @@ "dev": true }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", + "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", "dev": true }, "hashery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.2.0.tgz", - "integrity": "sha512-43XJKpwle72Ik5Zpam7MuzRWyNdwwdf6XHlh8wCj2PggvWf+v/Dm5B0dxGZOmddidgeO6Ofu9As/o231Ti/9PA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", + "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", "dev": true, "requires": { - "hookified": "^1.13.0" + "hookified": "^1.15.0" } }, "he": { @@ -3097,45 +2699,37 @@ "dev": true }, "hookified": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.13.0.tgz", - "integrity": "sha512-6sPYUY8olshgM/1LDNW4QZQN0IqgKhtl/1C8koNZBJrKLBk3AZl6chQtNwpNztvfiApHMEwMHek5rv993PRbWw==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", + "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", "dev": true }, "html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz", + "integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==", "dev": true }, "ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.14.tgz", + "integrity": "sha512-wCBiZ77u1tuWde6G/nfOtLaCTYcFDU5yCzARzK10y+rLhzYoL7a7yEemcopcc2Mzow7gZOIjnV2ym1NYmdiJOQ==", "dev": true }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", "dev": true }, "ini": { @@ -3153,7 +2747,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { @@ -3177,10 +2771,16 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true + }, "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.1.0.tgz", + "integrity": "sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==", "dev": true }, "isexe": { @@ -3189,33 +2789,23 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, "js-beautify": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", - "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-2.0.3.tgz", + "integrity": "sha512-cyFbh3tkPhknnTD/0bLf0T0yy2ZIbqL05mttzbt4y1Zfr7NxqXQZ62dkBLKs3oHH/lpjmDRAnciJiSUyOy8XwQ==", "dev": true, "requires": { "config-chain": "^1.1.13", - "editorconfig": "^1.0.4", - "glob": "^10.4.2", - "js-cookie": "^3.0.5", - "nopt": "^7.2.1" + "editorconfig": "^3.0.2", + "glob": "^13.0.6", + "js-cookie": "^3.0.8", + "nopt": "^10.0.1" } }, "js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.8.tgz", + "integrity": "sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==", "dev": true }, "js-tokens": { @@ -3225,9 +2815,9 @@ "dev": true }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", "dev": true, "requires": { "argparse": "^2.0.1" @@ -3246,11 +2836,10 @@ "dev": true }, "keyv": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.4.tgz", - "integrity": "sha512-eohl3hKTiVyD1ilYdw9T0OiB4hnjef89e3dMYKz+mVKDzj+5IteTseASUsOB+EU9Tf6VNTCjDePcP6wkDGmLKQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, - "peer": true, "requires": { "@keyv/serialize": "^1.1.1" } @@ -3280,30 +2869,27 @@ "dev": true }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "dev": true }, "mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz", + "integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==", "dev": true }, "mdn-data": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", - "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "dev": true }, "meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz", + "integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==", "dev": true }, "merge2": { @@ -3323,18 +2909,18 @@ } }, "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, "requires": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.8" } }, "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true }, "ms": { @@ -3344,9 +2930,9 @@ "dev": true }, "nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", + "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==", "dev": true }, "node-html-markdown": { @@ -3371,22 +2957,30 @@ } }, "node-html-parser": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.0.1.tgz", - "integrity": "sha512-KGtmPY2kS0thCWGK0VuPyOS+pBKhhe8gXztzA2ilAOhbUbxa9homF1bOyKvhGzMLXUoRds9IOmr/v5lr/lqNmA==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-9.0.6.tgz", + "integrity": "sha512-q3ETJ2gU+VlERyYbiJ5JQ6+mMVV1Bc6mZQ7MdJ30moq+h3oN0kQGj3rWDORaSX1SOLSkPbY/bN+sBzDlliVOBA==", "dev": true, "requires": { "css-select": "^5.1.0", - "he": "1.2.0" + "entities": "^8.0.0" + }, + "dependencies": { + "entities": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", + "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", + "dev": true + } } }, "nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-10.0.1.tgz", + "integrity": "sha512-df3sBr/6ax9hSGuC3CspvLlbnX8cP5L5nZwXF8cGN8l0zSWR6BvzmQ6jPUKjvo6+/xdpkNvEcucBNUdBeeV13g==", "dev": true, "requires": { - "abbrev": "^2.0.0" + "abbrev": "^5.0.0" } }, "normalize-path": { @@ -3404,12 +2998,6 @@ "boolbase": "^1.0.0" } }, - "package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3431,36 +3019,16 @@ "lines-and-columns": "^1.1.6" } }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - } + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" } }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, "picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -3468,21 +3036,35 @@ "dev": true }, "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true + }, + "playwright": { + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz", + "integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==", + "dev": true, + "requires": { + "playwright-core": "1.64.1" + } + }, + "playwright-core": { + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", + "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", "dev": true }, "postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.32.tgz", + "integrity": "sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g==", "dev": true, - "peer": true, "requires": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.20", "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.2" } }, "postcss-media-query-parser": { @@ -3492,9 +3074,9 @@ "dev": true }, "postcss-resolve-nested-selector": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", - "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.7.tgz", + "integrity": "sha512-lFcugRCQXWManq7nyZ0dDtir52wc7gKYJfWpSuz4GxvnGc7dtlpXcZYX4A0asatzTuqpQ3ngDdyD+QG/szeXWw==", "dev": true }, "postcss-safe-parser": { @@ -3512,11 +3094,10 @@ "requires": {} }, "postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.7.tgz", + "integrity": "sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g==", "dev": true, - "peer": true, "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3529,9 +3110,9 @@ "dev": true }, "prettier": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", - "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.10.tgz", + "integrity": "sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==", "dev": true }, "proto-list": { @@ -3541,12 +3122,20 @@ "dev": true }, "qified": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/qified/-/qified-0.5.2.tgz", - "integrity": "sha512-7gJ6mxcQb9vUBOtbKm5mDevbe2uRcOEVp1g4gb/Q+oLntB3HY8eBhOYRxFI2mlDFlY1e4DOSCptzxarXRvzxCA==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", + "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", "dev": true, "requires": { - "hookified": "^1.13.0" + "hookified": "^2.1.1" + }, + "dependencies": { + "hookified": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", + "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", + "dev": true + } } }, "queue-microtask": { @@ -3562,15 +3151,15 @@ "dev": true }, "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true }, "run-parallel": { @@ -3583,39 +3172,21 @@ } }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true }, "signal-exit": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", - "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true }, "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true }, "slice-ansi": { @@ -3630,9 +3201,9 @@ } }, "source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", "dev": true }, "string-width": { @@ -3646,17 +3217,6 @@ "strip-ansi": "^6.0.1" } }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -3666,139 +3226,125 @@ "ansi-regex": "^5.0.1" } }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "stylelint": { - "version": "16.25.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.25.0.tgz", - "integrity": "sha512-Li0avYWV4nfv1zPbdnxLYBGq4z8DVZxbRgx4Kn6V+Uftz1rMoF1qiEI3oL4kgWqyYgCgs7gT5maHNZ82Gk03vQ==", - "dev": true, - "peer": true, - "requires": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3", - "@csstools/selector-specificity": "^5.0.0", - "@dual-bundle/import-meta-resolve": "^4.2.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", - "css-tree": "^3.1.0", + "version": "17.16.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.16.0.tgz", + "integrity": "sha512-ejlWnbJ13x1GU32+zZXa6sYQJsKKkwSdv2B4rAdO3OWdEmvhSJKcXi5pOphQYSzyaj1kXpuGJr7pcMBNfDIuPw==", + "dev": true, + "requires": { + "@csstools/css-calc": "^3.3.0", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-syntax-patches-for-csstree": "^1.1.9", + "@csstools/css-tokenizer": "^4.0.0", + "@csstools/media-query-list-parser": "^5.0.0", + "@csstools/selector-resolve-nested": "^4.0.1", + "@csstools/selector-specificity": "^6.0.0", + "colord": "^2.10.0", + "cosmiconfig": "^9.0.2", + "css-functions-list": "^3.3.3", + "css-tree": "^3.2.1", "debug": "^4.4.3", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^10.1.4", + "file-entry-cache": "^11.1.5", "global-modules": "^2.0.0", - "globby": "^11.1.0", + "globby": "^16.2.4", "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^7.0.5", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", + "html-tags": "^5.1.0", + "ignore": "^7.0.6", + "import-meta-resolve": "^4.2.0", + "mathml-tag-names": "^4.0.0", + "meow": "^14.1.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.6", - "postcss-resolve-nested-selector": "^0.1.6", + "postcss": "^8.5.26", "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.0", + "postcss-selector-parser": "^7.1.5", "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "supports-hyperlinks": "^3.2.0", + "string-width": "^8.2.2", + "supports-hyperlinks": "^4.5.0", "svg-tags": "^1.0.0", "table": "^6.9.0", - "write-file-atomic": "^5.0.1" + "write-file-atomic": "^7.0.1" }, "dependencies": { - "balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "ansi-regex": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.5.0.tgz", + "integrity": "sha512-zhvbbbdt1kbw7EJ9OQoxmQcuaNR9P5kTj7e/YdmOSU10aHWbycofJxA6jKfoEy3vlLdctOF9ZHaxLtmSm998wQ==", "dev": true }, - "ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true + "string-width": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz", + "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==", + "dev": true, + "requires": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + } + }, + "strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "requires": { + "ansi-regex": "^6.2.2" + } } } }, "stylelint-config-recommended": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-17.0.0.tgz", - "integrity": "sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-18.0.0.tgz", + "integrity": "sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==", "dev": true, "requires": {} }, "stylelint-config-standard": { - "version": "39.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-39.0.1.tgz", - "integrity": "sha512-b7Fja59EYHRNOTa3aXiuWnhUWXFU2Nfg6h61bLfAb5GS5fX3LMUD0U5t4S8N/4tpHQg3Acs2UVPR9jy2l1g/3A==", + "version": "40.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-40.0.0.tgz", + "integrity": "sha512-EznGJxOUhtWck2r6dJpbgAdPATIzvpLdK9+i5qPd4Lx70es66TkBPljSg4wN3Qnc6c4h2n+WbUrUynQ3fanjHw==", "dev": true, "requires": { - "stylelint-config-recommended": "^17.0.0" + "stylelint-config-recommended": "^18.0.0" } }, "stylelint-scss": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.1.tgz", - "integrity": "sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-7.4.0.tgz", + "integrity": "sha512-OvN+AestcvtB/IFvde1kpFLq2mpIsPaeB8E+Cjlxu7qjf0ja7NCoTrDW97tuNeXFlYGUdwqGq5cXaByLpNwuxA==", "dev": true, "requires": { - "css-tree": "^3.0.1", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.36.0", - "mdn-data": "^2.21.0", + "@csstools/css-calc": "^3.4.3", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-syntax-patches-for-csstree": "^1.1.15", + "@csstools/css-tokenizer": "^4.0.0", + "css-tree": "^3.2.1", + "is-plain-object": "^5.1.0", + "known-css-properties": "^0.37.0", "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-selector-parser": "^7.1.0", + "postcss-resolve-nested-selector": "^0.1.7", + "postcss-selector-parser": "^7.1.6", "postcss-value-parser": "^4.2.0" - }, - "dependencies": { - "known-css-properties": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz", - "integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==", - "dev": true - }, - "mdn-data": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.25.0.tgz", - "integrity": "sha512-T2LPsjgUE/tgMmRXREVmwsux89DwWfNjiynOeXuLd2mX6jphGQ2YE3Ukz7LQ2VOFKiVZU/Ee1GqzHiipZCjymw==", - "dev": true - } } }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true }, "supports-hyperlinks": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", - "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.6.0.tgz", + "integrity": "sha512-FL/q/YePS4tFFTNiBOR+zPk2ZrKheqNtmTJ/9OUZ4e1wKHJofDbGQSmSsxS0XNnabSkqexryCaXGvEKz1vf9UQ==", "dev": true, "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "has-flag": "^5.0.1", + "supports-color": "^10.2.2" } }, "svg-tags": { @@ -3829,6 +3375,12 @@ "is-number": "^7.0.0" } }, + "unicorn-magic": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.1.tgz", + "integrity": "sha512-lzlXPoVB0Uy/FvTaUgX39RbixYiSKoc3JSoSf01+0c2B6FR3qdYIPN7Qjo/AV7n6sqLCk0509cT3LRj1oSZ1+A==", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -3844,83 +3396,14 @@ "isexe": "^2.0.0" } }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, "write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz", + "integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==", "dev": true, "requires": { - "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } } diff --git a/package.json b/package.json index 53b7a8013..480294760 100644 --- a/package.json +++ b/package.json @@ -7,15 +7,16 @@ "doc": "docs" }, "devDependencies": { - "js-beautify": "^1.15.4", + "js-beautify": "^2.0.3", "node-html-markdown": "^2.0.0", - "node-html-parser": "^7.0.1", + "node-html-parser": "^9.0.6", + "playwright": "1.64.1", "postcss-scss": "^4.0.9", - "prettier": "^3.6.2", - "stylelint": "^16.25.0", - "stylelint-config-recommended": "^17.0.0", - "stylelint-config-standard": "^39.0.1", - "stylelint-scss": "^6.12.1" + "prettier": "^3.9.10", + "stylelint": "^17.16.0", + "stylelint-config-recommended": "^18.0.0", + "stylelint-config-standard": "^40.0.0", + "stylelint-scss": "^7.4.0" }, "scripts": { "check": "python3 tools/translate_check.py --all --errors-only", @@ -23,6 +24,7 @@ "format": "stylelint --fix ./sass/*.scss && prettier --write \"*.md\" \"content/**/*.md\" && js-beautify -r templates/base.html", "hooks:install": "git config core.hooksPath .githooks", "test": "python3 tmp/test_tooling.py && python3 tmp/test_xml_roundtrip.py", + "test:browser": "node --test tools/donate_browser.test.cjs", "upgrade": "npx npm-check-updates -u && npm install" }, "repository": { diff --git a/sass/_donate_form.scss b/sass/_donate_form.scss index ca2c67988..53155e8bb 100644 --- a/sass/_donate_form.scss +++ b/sass/_donate_form.scss @@ -1,5 +1,5 @@ -// Donation subscribe/manage form (/donate/subscribe/, /donate/manage/). -// Mobile-first, logical properties for RTL, dark-mode block at the bottom. +// Shared donation checkout, focused landing page and donation management form. +// Responsive grid, 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 @@ -7,6 +7,78 @@ $donateAccent: #006c35; $donateAccentDark: #4caf50; +.donate-layout { + display: grid; + // The form spans both rows; its expansion must not stretch the intro row. + grid-template: + "intro form" min-content + "impact form" 1fr / minmax(0, 1.1fr) minmax(0, 1fr); + gap: 1.5rem 3rem; + align-items: start; + margin-block: 2rem 3rem; +} + +.donate-intro { + grid-area: intro; + + h1 { + font-size: 2.25rem; + line-height: 1.15; + border: 0; + padding: 0; + margin-block-start: 0; + } + + p { + color: #555; + } + + p:last-child { + font-size: 0.9rem; + color: $donateAccent; + margin-block-end: 0; + } +} + +.donate-impact { + grid-area: impact; + + h2 { + font-size: 1.25rem; + border: 0; + margin-block-start: 0; + } + + li { + margin-block-end: 1rem; + + &::marker { + color: $donateAccent; + } + + strong { + display: block; + } + } +} + +.donate-card { + grid-area: form; + min-width: 0; + padding: 1.5rem; + border: 1px solid #dce4dd; + border-radius: 16px; + background: #fbfdfb; + scroll-margin-block-start: 1rem; + + h2 { + font-size: 1.25rem; + border: 0; + padding: 0; + margin-block: 0 1rem; + } +} + .donate-form-page { max-width: 30rem; margin-inline: auto; @@ -20,13 +92,45 @@ $donateAccentDark: #4caf50; color: #555; } +.donate-focused-header { + display: flex; + justify-content: space-between; + align-items: center; + max-width: 30rem; + margin-inline: auto; + padding-block: 0.25rem 0.75rem; +} + +.donate-brand { + display: inline-flex; + align-items: center; + gap: 0.5rem; + font-weight: 600; + color: $donateAccent; + text-decoration: none; + + .top_menu_logo { + width: 28px; + height: 28px; + margin: 0; + } +} + +.donate-focused-page h1 { + border: 0; + padding: 0; + margin-block: 1rem 0.75rem; +} + .donate-form { margin-block-start: 1rem; + margin-block-end: 1rem; .donate-fieldset { border: 0; padding: 0; - margin: 0 0 1.1rem; + min-width: 0; + margin: 0 0 1rem; legend { font-weight: 600; @@ -35,19 +139,6 @@ $donateAccentDark: #4caf50; } } - .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 { @@ -61,8 +152,38 @@ $donateAccentDark: #4caf50; box-sizing: border-box; } - #amount-custom { - flex: 1 1 8rem; + .donate-amount-header { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 0.5rem; + margin-block-end: 0.6rem; + + > span { + font-weight: 600; + } + } + + .donate-currency { + display: inline-flex; + align-items: center; + gap: 0.4rem; + font-size: 0.8rem; + color: #555; + + select { + max-width: 8rem; + padding-inline: 0.35rem; + text-align: center; + } + } + + .donate-recurrence { + display: block; + font-size: 0.8rem; + color: #666; + margin-block-start: 0.5rem; } .donate-field { @@ -93,16 +214,18 @@ $donateAccentDark: #4caf50; input[type="radio"] { position: absolute; opacity: 0; - width: 0; - height: 0; + width: 1px; + height: 1px; + label { display: inline-block; - min-width: 3.2rem; - padding: 0.6rem 1rem; + min-width: 0; + min-height: 2.75rem; + box-sizing: border-box; + padding: 0.6rem 0.4rem; text-align: center; border: 1px solid #bbb; - border-radius: 999px; + border-radius: 9px; cursor: pointer; user-select: none; } @@ -117,14 +240,67 @@ $donateAccentDark: #4caf50; outline: 3px solid #{$donateAccent}; outline-offset: 2px; } + } + } + + .donate-pills.donate-amounts { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(4rem, 1fr)); + gap: 0.4rem; + + input[type="radio"] + label { + font-size: 0.95rem; + overflow-wrap: anywhere; + } + } + + .donate-pills.donate-intervals { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 0.25rem; + padding: 0.25rem; + background: #edf2ed; + border-radius: 10px; + + input[type="radio"] { + + label { + font-size: 0.9rem; + border-color: transparent; + overflow-wrap: anywhere; + } - &[hidden] + label, - + label[hidden] { - display: none; + &:checked + label { + background: #fff; + color: $donateAccent; + box-shadow: 0 1px 4px #00000014; + font-weight: 600; } } } + .donate-other { + min-width: 0; + min-height: 2.75rem; + padding: 0.6rem 0.4rem; + border: 1px solid #bbb; + border-radius: 9px; + background: #fff; + color: inherit; + font-size: 0.9rem; + overflow-wrap: anywhere; + + &[aria-pressed="true"] { + background: $donateAccent; + border-color: $donateAccent; + color: #fff; + } + + &:focus-visible { + outline: 3px solid #{$donateAccent}; + outline-offset: 2px; + } + } + .donate-warning { display: block; margin-block-start: 0.4rem; @@ -137,7 +313,7 @@ $donateAccentDark: #4caf50; font-size: 1.1rem; font-weight: 600; padding: 0.9rem 1rem; - margin-block-start: 1.2rem; + margin-block-start: 0.75rem; background: $donateAccent; color: #fff; border: 0; @@ -156,13 +332,144 @@ $donateAccentDark: #4caf50; } .donate-secure-note { - font-size: 0.85rem; + font-size: 0.8rem; + line-height: 1.4; color: #666; text-align: center; + margin-block: 0.6rem 0.75rem; } .donate-alt { text-align: center; + font-size: 0.9rem; + margin-block-end: 0; + } + + [hidden] { + display: none; + } +} + +.donate-manage-link { + font-size: 0.85rem; + text-align: center; + margin-block: 1rem 0; +} + +.donate-card .donate-form { + margin-block-start: 0; +} + +.donate-canceled { + padding: 0.75rem; + border-radius: 8px; + background: #edf2ed; +} + +.donate-alternatives { + border-top: 1px solid #dce4dd; + padding-block: 1rem 2rem; + + h2 { + font-size: 1.4rem; + border: 0; + scroll-margin-block-start: 1rem; + } +} + +.donate-methods { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); + gap: 0.75rem; + margin-block: 1.5rem; + + form { + margin: 0; + } + + a, + button { + display: flex; + align-items: center; + gap: 0.6rem; + width: 100%; + height: 100%; + min-height: 3rem; + box-sizing: border-box; + border: 1px solid #dce4dd; + border-radius: 9px; + padding: 0.5rem 0.75rem; + background: #fff; + color: inherit; + text-decoration: none; + font-size: 0.9rem; + cursor: pointer; + text-align: start; + + &:hover { + border-color: $donateAccent; + } + } + + img { + flex-shrink: 0; + width: 2rem; + height: 2rem; + object-fit: contain; + background: #fff; + border-radius: 4px; + } +} + +.donate-method-details { + border-top: 1px solid #dce4dd; + padding-block: 0.5rem; + scroll-margin-block-start: 1rem; + + summary:first-child { + min-height: 2.75rem; + box-sizing: border-box; + padding-block: 0.6rem; + font-weight: 600; + cursor: pointer; + } +} + +.donate-table-scroll { + overflow: auto; + max-width: 100%; + margin-block: 0.75rem; + + table { + min-width: 28rem; + width: 100%; + border-collapse: collapse; + text-align: start; + } + + td, + th { + padding: 0.5rem; + } +} + +@media (width <= 768px) { + .donate-layout { + grid-template: "intro" auto "form" auto "impact" auto / minmax(0, 1fr); + gap: 1.25rem; + margin-block: 1.5rem 2rem; + } + + .donate-intro h1 { + font-size: 1.75rem; + } + + .donate-card { + padding: 1rem; + + h2 { + display: none; + } } } @@ -180,11 +487,48 @@ $donateAccentDark: #4caf50; @media (prefers-color-scheme: dark) { .donate-form-intro, + .donate-intro p, + .donate-form .donate-currency, + .donate-form .donate-recurrence, .donate-form .donate-field small, .donate-form .donate-secure-note { color: #999; } + .donate-intro p:last-child, + .donate-brand, + .donate-impact li::marker { + color: $donateAccentDark; + } + + .donate-card { + background: #181c19; + border-color: #444; + } + + .donate-alternatives, + .donate-method-details { + border-color: #444; + } + + .donate-methods a, + .donate-methods button, + .donate-form .donate-other { + background: #1e1e1e; + border-color: #444; + } + + .donate-form .donate-other[aria-pressed="true"] { + background: $donateAccentDark; + border-color: $donateAccentDark; + color: #000; + } + + .donate-form .donate-pills.donate-intervals, + .donate-canceled { + background: #252c26; + } + .donate-form { .donate-pills input[type="radio"] { + label { @@ -221,5 +565,17 @@ $donateAccentDark: #4caf50; .donate-warning { color: #e8a06a; } + + .donate-pills.donate-intervals input[type="radio"] { + + label { + border-color: transparent; + } + + &:checked + label { + background: #171c18; + border-color: transparent; + color: $donateAccentDark; + } + } } } diff --git a/static/_headers b/static/_headers index 1cfec089d..b63b6bb24 100644 --- a/static/_headers +++ b/static/_headers @@ -10,11 +10,20 @@ https://:project.pages.dev/* # 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. +# Main donation pages also offer PayPal through donate_methods. Keep their policy separate +# so the focused checkout and management pages retain narrower form-action allowlists. # 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. +# cannot match zero segments, so English and localized paths need separate rules. +https://organicmaps.app/donate/ + 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 https://www.paypal.com; base-uri 'none'; frame-ancestors 'none' + Referrer-Policy: same-origin + X-Content-Type-Options: nosniff + +https://organicmaps.app/:lang/donate/ + 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 https://www.paypal.com; base-uri 'none'; frame-ancestors 'none' + Referrer-Policy: same-origin + X-Content-Type-Options: nosniff + 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 diff --git a/static/js/donate-subscribe.js b/static/js/donate-subscribe.js index 9ac310632..cb9ee26d2 100644 --- a/static/js/donate-subscribe.js +++ b/static/js/donate-subscribe.js @@ -1,4 +1,4 @@ -// Progressive enhancement for /donate/subscribe/. The form works without this file: +// Shared enhancement for /donate/ and /donate/subscribe/. The form works without this file: // plain POST to donate-api, which redirects to Mollie hosted checkout. (function () { 'use strict'; @@ -22,15 +22,22 @@ var pageLang = document.documentElement.lang || 'en'; var currencySelect = document.getElementById('currency'); + currencySelect.disabled = false; + document.getElementById('currency-fallback').disabled = true; var customInput = document.getElementById('amount-custom'); var emailInput = document.getElementById('email'); var nameInput = document.getElementById('donor-name'); + var otherButton = document.getElementById('amount-other'); + var customRow = document.getElementById('donate-custom-row'); + var recurrence = document.getElementById('donate-recurrence'); + var emailBenefits = document.getElementById('email-benefits'); 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"]'); + var customActive = customInput.value.trim() !== ''; var DRAFT_KEY = 'organicmaps-donate-checkout-draft-v2'; // This limits restoration, not browser storage retention: sessionStorage has no expiry. var DRAFT_RESTORE_WINDOW = 30 * 60 * 1000; @@ -42,7 +49,7 @@ } // 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] }; + var PRESETS = { once: [5, 10, 25, 50], month: [3, 5, 10, 20], year: [25, 35, 50, 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 @@ -213,20 +220,15 @@ 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; - } + var value = scalePreset(presets[i], currency); + input.value = String(value); + label.textContent = formatAmount(value, currency); } - // 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; + // Keep the donor's pick across currency/interval changes; otherwise use the default. + if (!customActive) { + presetInputs[keep >= 0 ? keep : 1].checked = true; + } else { + uncheckPresets(); } } @@ -245,14 +247,23 @@ var pattern = submitButton.getAttribute('data-label-' + selectedInterval()); submitButton.textContent = isNaN(num) || !pattern ? defaultSubmitLabel : pattern.replace('{amount}', formatAmount(num, currencySelect.value)); + var summary = recurrence.getAttribute('data-label-' + selectedInterval()); + recurrence.hidden = isNaN(num) || !summary; + recurrence.textContent = recurrence.hidden ? '' : summary.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'); + // The warning lives within the helper, rather than being referenced separately and + // announced twice. One-time donations only need a confirmation address. + emailBenefits.textContent = emailBenefits.getAttribute(selectedInterval() === 'once' ? 'data-once' : 'data-recurring'); + } + + function refreshCustomVisibility() { + otherButton.hidden = false; + otherButton.setAttribute('aria-pressed', customActive ? 'true' : 'false'); + customRow.hidden = !customActive; } function showAmountError(message) { @@ -296,6 +307,7 @@ refreshPlaceholder(); refreshSubmitLabel(); refreshEmailWarning(); + refreshCustomVisibility(); } function hasCurrency(code) { @@ -354,15 +366,20 @@ if (qAmount) { var preset = null; for (var i = 0; i < presetInputs.length; i++) { - if (!presetInputs[i].hidden && presetInputs[i].value === qAmount) preset = presetInputs[i]; + if (presetInputs[i].value === qAmount) preset = presetInputs[i]; } // Checking a radio clears the rest of its group, so one assignment covers either branch. - if (preset) preset.checked = true; - else { + if (preset) { + customInput.value = ''; + customActive = false; + preset.checked = true; + } else { customInput.value = qAmount; + customActive = true; uncheckPresets(); } refreshSubmitLabel(); + refreshCustomVisibility(); } if (returnDraft) { @@ -370,11 +387,14 @@ if (typeof returnDraft.name === 'string' && returnDraft.name) nameInput.value = returnDraft.name; refreshEmailWarning(); } + document.getElementById('donate-canceled').hidden = !canceledCheckout; function onPresetChange() { customInput.value = ''; + customActive = false; hideAmountError(); refreshSubmitLabel(); + refreshCustomVisibility(); } for (var i = 0; i < intervalInputs.length; i++) intervalInputs[i].addEventListener('change', refresh); @@ -385,16 +405,26 @@ if (!amountError.hidden) validateAmount(); }); customInput.addEventListener('input', function () { - if (customInput.value.trim() !== '') uncheckPresets(); - else if (checkedPreset() === -1) presetInputs[1].checked = true; // never leave nothing chosen + customActive = true; + uncheckPresets(); + hideAmountError(); + refreshSubmitLabel(); + }); + otherButton.addEventListener('click', function () { + customActive = true; + uncheckPresets(); hideAmountError(); + refreshCustomVisibility(); refreshSubmitLabel(); + customInput.focus(); }); emailInput.addEventListener('input', refreshEmailWarning); form.addEventListener('submit', function (event) { if (!validateAmount()) { event.preventDefault(); + customActive = true; + refreshCustomVisibility(); customInput.focus(); return; } @@ -426,4 +456,25 @@ refreshSubmitLabel(); } }); + + // A section fragment must reveal its target inside a collapsed disclosure. + function revealDonationSection() { + var target; + try { target = document.getElementById(decodeURIComponent(window.location.hash.substring(1))); } catch (e) {} + var section = target; + while (section && section.tagName.toLowerCase() !== 'details') section = section.parentElement; + if (!section || (' ' + section.className + ' ').indexOf(' donate-method-details ') === -1) return; + section.open = true; + target.scrollIntoView(); + } + revealDonationSection(); + window.addEventListener('hashchange', revealDonationSection); + // Clicking the same fragment again does not emit hashchange. Reopen a disclosure + // that the donor closed after following its payment-method shortcut. + var sectionLinks = document.querySelectorAll('.donate-methods a[href^="#"]'); + for (var i = 0; i < sectionLinks.length; i++) { + sectionLinks[i].addEventListener('click', function () { + if (this.getAttribute('href') === window.location.hash) revealDonationSection(); + }); + } })(); diff --git a/templates/_donate_form.html b/templates/_donate_form.html new file mode 100644 index 000000000..3471fa3f3 --- /dev/null +++ b/templates/_donate_form.html @@ -0,0 +1,101 @@ +{# Shared by the main donation page and the focused app/direct-link landing page. + f is the localized subscribe page's extra.form; return_to is an API enum, never a URL. #} + diff --git a/templates/base.html b/templates/base.html index d424553ae..598171a52 100644 --- a/templates/base.html +++ b/templates/base.html @@ -184,7 +184,9 @@
+ {% block header %} {% include 'top_menu.html' %} + {% endblock header %}
diff --git a/templates/donate-subscribe.html b/templates/donate-subscribe.html index b59b485d7..916393529 100644 --- a/templates/donate-subscribe.html +++ b/templates/donate-subscribe.html @@ -1,110 +1,23 @@ {% extends 'base.html' %} +{% block header %} + +{% endblock header %} + {% 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 %} -