diff --git a/.gitignore b/.gitignore index e2d67e58d..992c19357 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ next-env.d.ts .DS_Store *.pem .idea +.opencode # debug npm-debug.log* diff --git a/.opencode/package-lock.json b/.opencode/package-lock.json deleted file mode 100644 index abded7b2a..000000000 --- a/.opencode/package-lock.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "name": ".opencode", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "@opencode-ai/plugin": "1.4.3" - } - }, - "node_modules/@opencode-ai/plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.4.3.tgz", - "integrity": "sha512-Ob/3tVSIeuMRJBr2O23RtrnC5djRe01Lglx+TwGEmjrH9yDBJ2tftegYLnNEjRoMuzITgq9LD8168p4pzv+U/A==", - "license": "MIT", - "dependencies": { - "@opencode-ai/sdk": "1.4.3", - "zod": "4.1.8" - }, - "peerDependencies": { - "@opentui/core": ">=0.1.97", - "@opentui/solid": ">=0.1.97" - }, - "peerDependenciesMeta": { - "@opentui/core": { - "optional": true - }, - "@opentui/solid": { - "optional": true - } - } - }, - "node_modules/@opencode-ai/sdk": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.4.3.tgz", - "integrity": "sha512-X0CAVbwoGAjTY2iecpWkx2B+GAa2jSaQKYpJ+xILopeF/OGKZUN15mjqci+L7cEuwLHV5wk3x2TStUOVCa5p0A==", - "license": "MIT", - "dependencies": { - "cross-spawn": "7.0.6" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "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==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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==", - "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==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/zod": { - "version": "4.1.8", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/next-i18next.config.js b/next-i18next.config.js index b1c29aa5c..95b7d17b0 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -1,28 +1,22 @@ +// @ts-expect-error i18next-icu's CommonJS export has an invalid ambient module declaration. +import ICUModule from 'i18next-icu/cjs'; + +const ICU = ICUModule.default ?? ICUModule; + /** @type {import('next-i18next').UserConfig} */ const config = { i18n: { - defaultLocale: 'default', - locales: [ - 'default', - 'en', - 'de', - 'fr', - 'it', - 'cs', - 'nl', - 'pl', - 'pt-PT', - 'pt-BR', - 'sv', - 'es', - 'es-MX', - 'es-AR', - 'id', - 'hu', - ], + defaultLocale: 'en', + locales: ['en', 'it'], localeDetection: false, }, + defaultNS: 'common_icu', + fallbackLng: 'en', localePath: './public/locales', + onPreInitI18next: (i18n) => { + i18n.use(ICU); + }, + serializeConfig: false, }; export default config; diff --git a/package.json b/package.json index 8ef2a1e14..302f5a45f 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,9 @@ "i18next": "^25.10.10", "i18next-browser-languagedetector": "^8.2.1", "i18next-http-backend": "^3.0.6", + "i18next-icu": "^2.4.1", "input-otp": "^1.2.3", + "intl-messageformat": "^10.7.18", "lucide-react": "^0.544.0", "nanoid": "^5.0.6", "next": "15.5.18", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b86928770..54d0cbe49 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -97,9 +97,15 @@ importers: i18next-http-backend: specifier: ^3.0.6 version: 3.0.6 + i18next-icu: + specifier: ^2.4.1 + version: 2.4.4(intl-messageformat@10.7.18) input-otp: specifier: ^1.2.3 version: 1.4.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + intl-messageformat: + specifier: ^10.7.18 + version: 10.7.18 lucide-react: specifier: ^0.544.0 version: 0.544.0(react@19.2.1) @@ -664,6 +670,21 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + '@formatjs/ecma402-abstract@2.3.6': + resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} + + '@formatjs/fast-memoize@2.2.7': + resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} + + '@formatjs/icu-messageformat-parser@2.11.4': + resolution: {integrity: sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==} + + '@formatjs/icu-skeleton-parser@1.8.16': + resolution: {integrity: sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==} + + '@formatjs/intl-localematcher@0.6.2': + resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} + '@heroicons/react@2.2.0': resolution: {integrity: sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==} peerDependencies: @@ -3026,6 +3047,11 @@ packages: i18next-http-backend@3.0.6: resolution: {integrity: sha512-mBOqy8993jtqAoj6XaI1XeC/8/9v6EPS+681ziegrPvTB0DoaCY7PpTS0SpY56qLMoS4OI1TZEM2Zf59zNh05w==} + i18next-icu@2.4.4: + resolution: {integrity: sha512-yfYdGTftClNUnZAQG1cu0yHHLaMVsrqfcgQHHchGDufkunBLKHuw2wXTCDuE+8mWMMcdePl8UBR0EUUA/3+FDw==} + peerDependencies: + intl-messageformat: '>=10.3.3 <12.0.0' + i18next@25.10.10: resolution: {integrity: sha512-cqUW2Z3EkRx7NqSyywjkgCLK7KLCL6IFVFcONG7nVYIJ3ekZ1/N5jUsihHV6Bq37NfhgtczxJcxduELtjTwkuQ==} peerDependencies: @@ -3063,6 +3089,9 @@ packages: react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + intl-messageformat@10.7.18: + resolution: {integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -4779,6 +4808,32 @@ snapshots: '@floating-ui/utils@0.2.10': {} + '@formatjs/ecma402-abstract@2.3.6': + dependencies: + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/intl-localematcher': 0.6.2 + decimal.js: 10.5.0 + tslib: 2.8.1 + + '@formatjs/fast-memoize@2.2.7': + dependencies: + tslib: 2.8.1 + + '@formatjs/icu-messageformat-parser@2.11.4': + dependencies: + '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/icu-skeleton-parser': 1.8.16 + tslib: 2.8.1 + + '@formatjs/icu-skeleton-parser@1.8.16': + dependencies: + '@formatjs/ecma402-abstract': 2.3.6 + tslib: 2.8.1 + + '@formatjs/intl-localematcher@0.6.2': + dependencies: + tslib: 2.8.1 + '@heroicons/react@2.2.0(react@19.2.1)': dependencies: react: 19.2.1 @@ -7104,6 +7159,10 @@ snapshots: transitivePeerDependencies: - encoding + i18next-icu@2.4.4(intl-messageformat@10.7.18): + dependencies: + intl-messageformat: 10.7.18 + i18next@25.10.10(typescript@5.7.3): dependencies: '@babel/runtime': 7.29.2 @@ -7135,6 +7194,13 @@ snapshots: react: 19.2.1 react-dom: 19.2.1(react@19.2.1) + intl-messageformat@10.7.18: + dependencies: + '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/icu-messageformat-parser': 2.11.4 + tslib: 2.8.1 + is-arrayish@0.2.1: {} is-fullwidth-code-point@3.0.0: {} diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json deleted file mode 100644 index 0967ef424..000000000 --- a/public/locales/ca/common.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/public/locales/ca/home.json b/public/locales/ca/home.json deleted file mode 100644 index 0967ef424..000000000 --- a/public/locales/ca/home.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/public/locales/ca@valencia/common.json b/public/locales/ca@valencia/common.json deleted file mode 100644 index 0967ef424..000000000 --- a/public/locales/ca@valencia/common.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/public/locales/ca@valencia/home.json b/public/locales/ca@valencia/home.json deleted file mode 100644 index 0967ef424..000000000 --- a/public/locales/ca@valencia/home.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json deleted file mode 100644 index 176c777eb..000000000 --- a/public/locales/cs/common.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "account": { - "change_language": "Změnit jazyk", - "change_language_details": { - "messages": { - "language_changed": "Změna jazyka byla úspěšná" - }, - "placeholder": "Vyberte jazyk", - "title": "Vyberte jazyk" - }, - "debug_info": "Informace pro ladění", - "debug_info_details": { - "copy_failed": "Nepodařilo se zkopírovat informace o ladění do schránky", - "description": "Při vytváření požadavku na podporu zkopírujte následující informace:", - "git": "Git", - "new_version_available": "Je k dispozici nová verze:", - "title": "Informace pro ladění", - "user_agent": "UserAgent", - "version": "Verze" - }, - "download_app": "Stáhnout aplikaci", - "download_app_details": { - "download_as_pwa": "SplitPro si můžete stáhnout na domovskou obrazovku jako PWA.", - "title": "Stáhnout aplikaci", - "using_android": "Používáte-li Android, podívejte se zde", - "using_ios": "Používáte-li iOS, podívejte se zde", - "video": "video" - }, - "download_splitpro_data": "Stáhnout data SplitPro", - "edit_name": { - "placeholder": "Zadejte jméno", - "title": "Upravit jméno" - }, - "follow_on_x": "Sledujte nás na X", - "import_from_splitwise": "Import ze Splitwise", - "import_from_splitwise_details": { - "choose_file": "Vyberte soubor", - "export_splitwise_data_button": "Exportovat data ze Splitwise", - "follow_to_export_splitwise_data": "Klikněte na tento odkaz pro export dat ze splitwise", - "messages": { - "import_success": "Import byl úspěšný" - }, - "no_file_chosen": "Není vybrán žádný soubor", - "note": "Poznámka: V současnosti je podporován pouze import přátel a skupin. Transakce importovány nebudou. Pracujeme na tom." - }, - "logout": "Odhlásit se", - "messages": { - "submit_error": "Nepodařilo se odeslat zpětnou vazbu", - "submit_success": "Zpětná vazba odeslána" - }, - "notifications": { - "disable_notification": "Vypnout notifikace", - "enable_notification": "Zapnout notifikace", - "messages": { - "notification_granted": "Nyní budete dostávat notifikace" - } - }, - "star_on_github": "Ohodnoťte nás na GitHubu", - "submit_feedback": "Odeslat zpětnou vazbu", - "submit_feedback_details": { - "placeholder": "Zadejte vaši zpětnou vazbu", - "title": "Odeslat zpětnou vazbu" - }, - "support_us": "Podpořte nás", - "title": "Účet", - "write_review": "Napište recenzi" - }, - "actions": { - "add_expense": "Přidat výdaj", - "back": "Zpět", - "cancel": "Zrušit", - "close": "Zavřít", - "confirm": "Potvrdit", - "connect": "Připojit se", - "copy": "Kopírovat", - "create": "Vytvořit", - "edit_expense": "Upravit výdaj", - "export": "Exportovat", - "fetch": "Načíst", - "import": "Importovat", - "invite": "Pozvat", - "leave": "Opustit", - "next": "Další", - "reconnect": "Znovu připojit", - "save": "Uložit", - "settle_up": "Vyrovnat se", - "submit": "Odeslat" - }, - "actors": { - "all": "Vše", - "friends": "Přátelé", - "groups": "Skupiny", - "members": "Členové", - "owner": "Vlastník", - "you": "Vy", - "you_accusativus": "Vás", - "you_dativus": "Vám" - }, - "auth": { - "continue_with": "Pokračovat s {{provider}}", - "email_placeholder": "Zadejte váš email", - "no_providers_configured": "Není nastaven žádný poskytovatel přihlášení", - "no_providers_instructions": "Abyste se mohli přihlásit, nastavte prosím alespoň jednoho poskytovatele přihlášení. Pro více informací se podívejte na", - "otp_sent": "Poslali jsme vám email s jednorázovým heslem. Prosím zkontrolujte si přijatou poštu a klikněte na odkaz v emailu pro přihlášení.", - "send_magic_link": "Poslat magický odkaz", - "sending": "Odesílání...", - "setup_instructions": "Instrukce pro Docker", - "trouble_logging_in": "Potíže s přihlášením? Kontaktujte" - }, - "bank_transactions": { - "choose_bank_provider": "Vyberte poskytovatele bankovních služeb", - "no_bank_providers_found": "Nebyli nalezeni žádní poskytovatelé bankovních služeb", - "plaid": { - "bank_connected_successfully": "Banka úspěšně připojena", - "bank_connection_cancelled": "Spojení s bankou bylo zrušeno", - "bank_connection_failed": "S bankou se nepodařilo spojit" - }, - "search_bank": "Vyhledat banku", - "select_bank_provider": "Zvolte poskytovatele bankovních služeb", - "to_bank": "do banky" - }, - "currency_conversion": { - "amount_to_receive": "Částka k přijetí", - "description": "Převede částku do jiné měny.", - "exchange_rate": "Směnný kurz", - "fetching_rate": "Načítání kurzu...", - "rate": "Kurz", - "success_toast": "Převod měny úspěšně nastaven", - "title": "Převod měny" - }, - "errors": { - "currency_conversion_error": "Chyba při nastavování převodu měny", - "currency_conversion_failed": "Měny se nepodařilo převést", - "currency_conversion_malformed": "Data o převodu měny jsou poškozena", - "email_invalid": "Email není platný, prosím zkuste přihlášení zopakovat.", - "email_required": "Email je povinný", - "feedback_min_length": "Zpětná vazba musí mít alespoň 10 znaků", - "feedback_required": "Musí být vyplněna zpětná vazba", - "group_balances_malformed": "Data o zůstatcích skupiny jsou poškozena. Nahlašte prosím problém, nebo zkuste provést nový výpočet.", - "group_name_update_failed": "Chyba při aktualizaci jména skupiny", - "import_failed": "Chyba při importování souboru", - "invalid_cron_expression": "Neplatný cron výraz", - "invalid_currency_code": "Neplatný kód měny {{code}}", - "language_change_failed": "Chyba při změně jazyka", - "less_than": "Soubor by měl být menší než", - "name_required": "Musí být zadáno jméno", - "no_providers": "Chyba při načítání poskytovatelů ověření. Zkontrolujte prosím záznamy v backendu.", - "notification_not_supported": "Notifikace nejsou podporovány", - "otp_invalid": "Neplatný jednorázový kód", - "otp_required": "Je nutný jednorázový kód", - "recurrence_delete_failed": "Opakování se nepodařilo smazat", - "recurrence_update_failed": "Opakování se nepodařilo aktualizovat", - "request_error": "Chyba při požadavku na notifikace", - "saving_expense": "Chyba při ukládání výdaje", - "setting_update_failed": "Nastavení se nepodařilo aktualizovat", - "signin_error": "Při přihlašování došlo k chybě: ", - "signup_disabled": "Registrace nových účtů je v této instanci zakázána", - "something_went_wrong": "Něco se pokazilo", - "subscribe_error": "Nelze se přihlásit k odběru oznámení", - "unsubscribe_error": "Chyba při odhlášení odběru oznámení", - "upload_failed": "Soubor se nepodařilo nahrát", - "uploading_error": "Chyba při nahrávání souboru", - "valid_email": "Zadejte platný email" - }, - "expense_details": { - "add_expense": "Přidat výdaj", - "add_expense_details": { - "add_new_expense": "Přidat nový výdaj", - "amount_placeholder": "Zadejte částku", - "description_placeholder": "Zadejte popis", - "pick_a_date": "Vyberte datum", - "select_user_or_group": { - "add_to_split_pro": "Přidat do Split Pro", - "note": "Poznámka: odesílání pozvánek je prozatím vypnuto kvůli spamu", - "only_one_group_time": "Můžete mít jen jednu skupinu najednou", - "send_invite": "Odeslat uživateli pozvánku", - "warning": "Varování: Pokud email není platný, nepoužívejte odeslat pozvánku. Místo toho použijte přidat do Split Pro. Při zneužití této funkce bude váš účet zablokován" - }, - "split_type_section": { - "split_equally": "rozdělit rovnoměrně", - "split_unequally": "rozdělit nerovnoměrně", - "types": { - "adjustment": { - "remaining_to_split_equally": "Zbývá rozdělit rovnoměrně", - "title": "Úprava" - }, - "equal": { - "per_person": "na osobu", - "title": "Rovnoměrně" - }, - "exact": { - "remaining": "Zbývá", - "title": "Přesně" - }, - "percentage": { - "remaining": "Zbývá", - "title": "Procentuálně" - }, - "share": { - "shares": "Podíl(y)", - "title": "Podle podílu", - "total_shares": "Celkový podíl" - } - } - }, - "sponsor_us": "Podpořte nás", - "upload_file": { - "messages": { - "upload_success": "Soubor byl úspěšně nahrán" - } - }, - "user_input": { - "add_more_friends": "Vyhledat přátele, skupiny nebo přidat email", - "cannot_change_group": "Při upravování nelze změnit skupinu", - "remove_group": "Pro smazání skupiny stiskněte delete", - "search_friends": "Vyhledat přátele, skupiny nebo přidat email" - } - }, - "already_added": "Již přidáno", - "balance_list": { - "are_settled_up": "jsou vyrovnány", - "is_settled_up": "je vyrovnán", - "press_balance_info": "Stiskněte konkrétní zůstatek pro zahájení vypořádání" - }, - "bank_transactions": "Bankovní transakce", - "clear": "Smazat", - "delete_expense_details": { - "text": "Tato akce nemůže být vrácena. Výš výdaj bude nenávratně smazán.", - "title": "Jste si naprosto jistí?" - }, - "multiple_transactions": { - "add_all": "Přidat vše", - "add_one_by_one": "Přidat po jedné", - "description": "Vybrali jste více transakcí. Vyberte, zda-li chcete všechny přidat se současným nastavením rozdělení, nebo chcete nastavení upravit pro každou zvlášť.", - "title": "Přidat více transakcí" - }, - "no_transactions_yet": "Zatím žádné transakce", - "pending": "Čekající", - "submit_all": "Odeslat vše", - "title": "Přidat výdaj", - "title_mobile": "Přidat" - }, - "group_details": { - "add_members": "Přidat členy", - "copied": "Zkopírováno", - "create_group": { - "group_name_placeholder": "Název skupiny", - "title": "Vytvořit skupinu" - }, - "group_info": { - "actions": "Akce", - "archive_group": "Archivovat skupinu", - "archive_group_details": { - "can_archive": "Tato skupina bude archivována a skryta z hlavního seznamu vašich skupin. V budoucnu do skupiny stále budete mít přístup, bude-li to nutné.", - "cant_archive": "Není možné archivovat skupina která má nesplacené zůstatky. Všechny dluhy musí být nejdříve vyrovnány.", - "title": "Určitě chcete tuto skupinu archivovat?" - }, - "archived": "Archivováno", - "delete_group": "Smazat skupinu", - "delete_group_details": { - "can_delete": "Tuto akci nelze vzít zpět", - "cant_delete": "Skupina nemůže být smazána dokud všichni nevyrovnají dluh", - "title": "Jste si naprosto jisti?" - }, - "group_created": "Skupina vytvořena", - "leave_group": "Opustit skupinu", - "leave_group_details": { - "can_leave": "Tuto akci nelze vzít zpět", - "cant_leave": "Nemůžete opustit skupinu dokud nevyrovnáte svůj dluh", - "title": "Jste si zcela jisti?" - }, - "members": "Členové", - "recalculate_balances": "Přepočítat zůstatky", - "recalculate_balances_details": { - "description": "Pokud se zůstatky neshodují s výdaji, můžete je přepočítat. Pokud je počet výdajů vysoký, může to chvíli trvat. Zůstatky mimo skupinu nebudou ovlivněny.", - "title": "Jste si jisti?" - }, - "remove_member_details": { - "can_remove": "Chystáte se tohoto člena odstranit ze skupiny", - "cant_remove": "Člena nelze odstranit dokud nevyrovná své dluhy", - "title": "Jste si zcela jisti?" - }, - "simplify_debts": "Zjednodušte dluhy", - "title": "Informace o skupině" - }, - "group_statistics": { - "first_expense": "První výdaj", - "title": "Statistiky skupiny", - "total_expenses": "Celkové výdaje" - }, - "messages": { - "balances_recalculated": "Zůstatky byly úspěšně přepočítány", - "group_archived": "Skupina byla úspěšně archivována", - "group_name_updated": "Název skupiny byl aktualizován" - }, - "no_members": { - "add_members": "Přidat členy", - "add_members_details": { - "add_to_split_pro": "Přidat do Split Pro", - "note": "Poznámka: odesílání pozvánek emailem je vypnuto", - "placeholder": "Zadejte jméno nebo email", - "send_invite": "Odeslat uživateli pozvánku", - "title": "Přidat členy", - "warning": "Varování: Pokud email není platný, nepoužívejte odeslat pozvánku. Místo toho použijte přidat do Split Pro. Při zneužití této funkce bude váš účet zablokován" - }, - "invite_link": "Pozvánka", - "no_members": "Ve skupině zatím nejsou žádní členové." - }, - "tabs": { - "balances": "Dluhy", - "expenses": "Výdaje" - }, - "title": "Dluhy skupiny" - }, - "invite_message": { - "in_splitpro": "ve Splitpro", - "join_to": "Připojte se k", - "text": "Připojte se ke skupině a můžete přidávat a spravovat výdaje a sledovat své zůstatky" - }, - "meta": { - "application_name": "SplitPro", - "description": "Rozdělte si zdarma výdaje se svými přáteli", - "title": "SplitPro: Rozdělte si zdarma výdaje se svými přáteli" - }, - "navigation": { - "account": "Účet", - "activity": "Aktivita", - "add": "Přidat", - "add_expense": "Přidat výdaj", - "balances": "Zůstatky", - "groups": "Skupiny", - "recurring": "Opakované" - }, - "recurrence": { - "cron_expression": "Cronový výraz", - "days_of_month": "Dny v měsící", - "days_of_week": "Dny v týdnu", - "delete_description": "Toto zastaví vytváření dalších výdajů v budoucnu. Existující výdaje vytvořené tímto opakováním smazány nebudou.", - "delete_title": "Smazat opakování", - "derived_delete_warning": "Tento výdaj je součástí opakování. Smazán bude pouze tento konkrétní výdaj. Budoucí opakované výdaje budou pokračovat.", - "derived_edit_warning": "Tento výdaj je součastí opakování. Změny se projeví pouze v tomto záznamu, nikoliv ve všech opakovaných výdajích.", - "description": "Nastavte pro tento výdaj automatické opakování.", - "edit_confirmation_title": "Upravit opakovaný výdaj", - "edit_description": "Toto změní rozvrh pro budoucí výdaje. Existující výdaje upraveny nebudou.", - "edit_title": "Upravit opakování", - "empty": "Žádné výdaje zatím nejsou opakované", - "expense_for_the_amount_of": "Výdaj {{name}} za {{amount}} {{currency}}", - "last_day": "Poslední den", - "months": "Měsíce", - "never": "Není nastaven žádný plán", - "recurring": "Opakované", - "schedule_type": { - "custom": "Vlastní", - "day": "Denně", - "month": "Měsíčně", - "never": "Nikdy", - "week": "Týdně", - "year": "Ročně" - }, - "template_delete_warning": "Toto je šablona pro opakované výdaje. Jejím smazáním dojde k zastavení všech budoucích opakovaných výdajů.", - "template_edit_warning": "Toto je šablona pro opakované výdaje. Změny se projeví ve všech budoucích opakovaných výdajích.", - "time_of_day": "Čas dne", - "title": "Opakování", - "view_recurring_page": "Zobrazit stránku opakování" - }, - "ui": { - "added_by": "Přidáno", - "and": "a", - "balance": "zůstatek", - "balances": "zůstatky", - "delete": "Smazat", - "deleted_by": "Smazáno", - "edited_by": "Upraveno", - "expense": { - "for": "pro", - "from": "od", - "paid_by": "Zaplaceno", - "received_by": "Obdrženo", - "to": "komu", - "user": { - "deleted": "smazán/a", - "get": "dostane", - "lent": "půjčil/a", - "owe": "dluží", - "paid": "zaplatil/a", - "pay": "platí", - "received": "dostal/a" - }, - "you": { - "deleted": "smazal/a", - "get": "dostanete", - "lent": "půjčil/a jste", - "owe": "dlužíte", - "paid": "zaplatil/a jste", - "pay": "zaplatíte", - "received": "dostal/a jste" - } - }, - "expense_details": "Detaily výdaje", - "in_group": "Ve skupině", - "no_activity": "Zatím žádná aktivita", - "not_involved": "Nezúčastněn", - "not_set": "Nenastaveno", - "on": "zapnuto", - "or": "nebo", - "outstanding_balances": "Zbývající dluhy", - "select_balance": "Vyberte zůstatek", - "select_currency": "Vyberte měnu", - "settle_up_name": "Vyrovnat se", - "settled_up": "Vyrovnáno", - "settlement": "Vyrovnání", - "share_text": "Mrkni na SplitPro. Je to otevřená alternative ke Splitwise", - "show_all_currencies": "Zobrazit všechny měny", - "today": "Dnes", - "total_balance": "Celkový zůstatek" - } -} diff --git a/public/locales/cs/home.json b/public/locales/cs/home.json deleted file mode 100644 index 5dd99cde2..000000000 --- a/public/locales/cs/home.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Přidávejte výdaje rychleji díky integraci s API GoCardless nebo Plaid pro transakce na bankovním účtu", - "title": "Propojení s Bankou" - }, - "currency_conversion": { - "description": "Rychlý převod mezi měnami pomocí současných nebo historických směnných kurzů", - "title": "Převod Měny" - }, - "debt_simplification": { - "description": "Automaticky zjednodušte skupinové dluhy, abyste snížili počet potřebných transakcí mezi přáteli", - "title": "Zjednodušení Dluhu" - }, - "groups_and_friends": { - "description": "Můžete vytvořit více skupin nebo přidat zůstatek napřímo. Všechno bude konsolidováno", - "title": "Skupiny a Přátelé" - }, - "i18": { - "description": "Dostupné ve více jazycích, aby bylo dělení výdajů dostupné po celém světě", - "title": "Internacionalizace" - }, - "import_splitwise": { - "description": "Nemusíte migrovat zůstatky manuálně. Můžete importovat uživatele a skupiny ze splitwise", - "title": "Import ze splitwise" - }, - "multiple_currencies": { - "description": "Potřebujete pro jednoho uživatele přidat výdaje ve více měnách? Žádný problém!", - "title": "Více měn" - }, - "open_source": { - "description": "Což dost snižuje šanci na obrácení k temné straně. Snadné hostování na vlastním serveru", - "title": "Open source" - }, - "push_notifications": { - "description": "Nikdy nezmeškejte důležitá upozornění. Budete upozornění vždy, když někdo přidá výdaj nebo vyrovná účty", - "title": "Push notifikace" - }, - "pwa_support": { - "description": "Milujete mobilní aplikace? Tak to jste u nás správně. Nainstalujte si SplitPro jako PWA a nepoznáte rozdíl!", - "title": "Podpora PWA" - }, - "recurring_transactions": { - "description": "Nastavit automatické opakující se výdaje za nájem, předplatné nebo jakékoliv jiné pravidelné sdílené náklady", - "title": "Opakující se Transakce" - }, - "title": "Vlastnosti", - "unequal_split": { - "description": "Pokročilé možnosti dělení. Podle podílů, procent nebo přesných částek.", - "title": "Nerovnoměrné dělení" - }, - "upload_receipts": { - "description": "K výdajům můžete rovnou nahrát i účtenky", - "title": "Nahrajte účtenky" - } - }, - "footer": { - "built_by": "Vytvořeno" - }, - "hero": { - "add_expense_button": "Přidat výdaj", - "star_github_button": "Dejte nám hvězdu na githubu", - "subtitle_link": "open source", - "subtitle_part2": "alternative ke SplitWise", - "title_highlight": "zdarma", - "title_part1": "Rozdělte si výdaje s přáteli" - }, - "meta": { - "description": "SplitPro: Rozdělte si zdarma výdaje s přáteli", - "title": "SplitPro: Rozdělte si zdarma výdaje se svými přáteli" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Soukromí", - "terms": "Podmínky" - } -} diff --git a/public/locales/de/common.json b/public/locales/de/common.json deleted file mode 100644 index b86f6d65b..000000000 --- a/public/locales/de/common.json +++ /dev/null @@ -1,450 +0,0 @@ -{ - "account": { - "change_language": "Sprache ändern", - "change_language_details": { - "messages": { - "language_changed": "Sprache erfolgreich geändert" - }, - "no_language_found": "Sprache nicht gefunden", - "placeholder": "Sprache auswählen", - "title": "Sprache auswählen" - }, - "debug_info": "Debug-Informationen", - "debug_info_details": { - "copy_failed": "Debug-Informationen konnten nicht in die Zwischenablage kopiert werden", - "description": "Fügen Sie nachfolgend die Informationen ein, wenn Sie eine Supportanfrage erstellen:", - "git": "Git", - "new_version_available": "Eine neue Version ist verfügbar:", - "send_test_notification": "Testbenachrichtigung senden", - "test_notification_failed": "Testbenachrichtigung konnte nicht gesendet werden", - "test_notification_sent": "Testbenachrichtigung gesendet", - "title": "Fehlerbehebungsinformationen", - "user_agent": "Benutzeragent", - "version": "Version" - }, - "default_balance_currency": "Standardwährung", - "download_app": "App herunterladen", - "download_app_details": { - "download_as_pwa": "Du kannst SplitPro als App auf deinen Startbildschirm herunterladen.", - "title": "App herunterladen", - "using_android": "Wenn du Android benutzt, schau dir das an", - "using_ios": "Wenn du iOS benutzt, schau dir das an", - "video": "Video" - }, - "download_splitpro_data": "SplitPro-Daten herunterladen", - "edit_name": { - "apply_avatar": "Profilbild speichern", - "avatar_label": "Profilbild", - "avatar_preview": "Profilbildvorschau", - "placeholder": "Name eingeben", - "remove_avatar": "Profilbild entfernen", - "select_avatar": "Profilbild auswählen", - "title": "Details bearbeiten", - "zoom": "Zoom" - }, - "follow_on_x": "Folge uns auf X", - "import_from_splitwise": "Von Splitwise importieren", - "import_from_splitwise_details": { - "choose_file": "Datei auswählen", - "export_splitwise_data_button": "Splitwise-Daten exportieren", - "follow_to_export_splitwise_data": "Folge diesem Link, um Splitwise-Daten zu exportieren", - "messages": { - "import_success": "Import erfolgreich" - }, - "no_file_chosen": "Keine Datei ausgewählt", - "note": "Hinweis: Es werden derzeit nur Freunde und Gruppen importiert. Transaktionen werden nicht importiert. Wir arbeiten daran." - }, - "logout": "Abmelden", - "messages": { - "submit_error": "Fehler beim Aktualisieren deines Profils", - "submit_success": "Profil aktualisiert" - }, - "notifications": { - "disable_notification": "Benachrichtigung deaktivieren", - "enable_notification": "Benachrichtigung aktivieren", - "messages": { - "notification_granted": "Du erhältst jetzt Benachrichtigungen" - } - }, - "star_on_github": "Stern auf GitHub vergeben", - "submit_feedback": "Feedback senden", - "submit_feedback_details": { - "placeholder": "Dein Feedback eingeben", - "title": "Feedback senden" - }, - "support_us": "Unterstütze uns", - "title": "Konto", - "write_review": "Eine Bewertung schreiben" - }, - "actions": { - "add_expense": "Ausgabe hinzufügen", - "back": "Zurück", - "cancel": "Abbrechen", - "close": "Schließen", - "confirm": "Bestätigen", - "connect": "Verbinden", - "copy": "Kopieren", - "create": "Erstellen", - "edit_expense": "Ausgabe bearbeiten", - "export": "Exportieren", - "fetch": "Abrufen", - "import": "Importieren", - "invite": "Einladen", - "leave": "Verlassen", - "next": "Weiter", - "reconnect": "Wieder verbinden", - "save": "Speichern", - "settle_up": "Ausgleichen", - "submit": "Speichern" - }, - "actors": { - "all": "Alle", - "friends": "Freunde", - "groups": "Gruppen", - "members": "Mitglieder", - "owner": "Besitzer", - "you": "Du", - "you_accusativus": "Dich", - "you_dativus": "Dir" - }, - "auth": { - "continue_with": "Weiter mit {{provider}}", - "email_placeholder": "Mailadresse eingeben", - "no_providers_configured": "Keine Authentifizierungsanbieter konfiguriert", - "no_providers_instructions": "Bitte konfigurieren Sie mindestens einen Authentifizierungsanbieter, um sich anzumelden. Siehe die", - "otp_sent": "Wir haben dir eine Mail mit dem Einmalpasswort geschickt. Schau im Posteingang und folge dem Link in der Email um dich anzumelden.", - "send_magic_link": "Sende Magic Link", - "sending": "Senden...", - "setup_instructions": "Docker-Setup-Anleitung", - "trouble_logging_in": "Probleme beim anmelden? Kontakt" - }, - "balances": { - "default_split": { - "cleared": "Standardaufteilung zurückgesetzt", - "configure": "Standardaufteilung", - "updated": "Standardaufteilung aktualisiert" - }, - "user_preferences": { - "title": "Einstellungen" - } - }, - "bank_transactions": { - "choose_bank_provider": "Bankinstitut auswählen", - "no_bank_providers_found": "Keine Bankinstitute gefunden", - "plaid": { - "bank_connected_successfully": "Bankinstitut erfolgreich verknüpft", - "bank_connection_cancelled": "Verbindung zur Bank abgebrochen", - "bank_connection_failed": "Verbindung zur Bank gescheitert" - }, - "search_bank": "Bank suchen", - "select_bank_provider": "Bankinstitut auswählen", - "to_bank": "Zum Bankinstitut" - }, - "currency_conversion": { - "amount_to_receive": "Zu erhaltender Betrag", - "description": "Den Betrag in eine andere Währung umrechnen.", - "exchange_rate": "Wechselkurs", - "fetching_rate": "Kurs abrufen...", - "rate": "Kurs", - "success_toast": "Währungsumrechnung erfolgreich eingestellt", - "title": "Währungsumrechnung" - }, - "errors": { - "amount_required": "Betrag eingeben", - "currency_conversion_error": "Fehler beim Einstellen der Währungsumrechnung", - "currency_conversion_failed": "Währungsumrechnung fehlgeschlagen", - "currency_conversion_malformed": "Die Währungsumrechnungsdaten sind fehlerhaft", - "description_required": "Beschreibung eingeben", - "email_invalid": "Ungültige Mailadresse. Bitte starte den Anmeldevorgang neu.", - "email_required": "Email wird benötigt", - "feedback_min_length": "Feedback sollte mindestens 10 Zeichen lang sein", - "feedback_required": "Feedback ist erforderlich", - "group_balances_malformed": "Die Daten der Gruppenbilanz sind fehlerhaft. Bitte melden Sie das Problem oder versuchen Sie eine Neuberechnung.", - "group_name_update_failed": "Fehler beim Aktualisieren des Gruppennamens", - "group_required": "Gruppe eingeben", - "image_compression_failed": "Bildkomprimierung fehlgeschlagen, versuche Originaldatei hochzuladen", - "import_failed": "Fehler beim Importieren der Datei", - "invalid_cron_expression": "Ungültiger Cron-Ausdruck", - "invalid_currency_code": "Ungültiger Währungscode {{code}}", - "language_change_failed": "Fehler beim Ändern der Sprache", - "less_than": "Datei sollte kleiner als {{size}}MB sein", - "name_required": "Name ist erforderlich", - "no_providers": "Fehler beim Abrufen der Authentifizierungsanbieter. Bitte prüfen Sie die Backend-Logs.", - "notification_not_supported": "Benachrichtigungen werden nicht unterstützt", - "otp_invalid": "Ungültiges Einmalpassowrt", - "otp_required": "Einmalpasswort wird benötigt", - "recurrence_delete_failed": "Löschen der Wiederholung fehlgeschlagen", - "recurrence_update_failed": "Aktualisierung der Wiederholung fehlgeschlagen", - "request_error": "Fehler bei der Anfrage der Benachrichtigung", - "saving_expense": "Fehler beim Speichern der Ausgabe", - "setting_update_failed": "Einstellung konnte nicht aktualisiert werden", - "signin_error": "Beim Anmelden ist ein Fehler aufgetreten: ", - "signup_disabled": "Neuanmeldung ist in dieser Instanz deaktiviert", - "something_went_wrong": "Etwas ist schiefgelaufen", - "subscribe_error": "Fehler beim Abonnieren der Benachrichtigung", - "unsubscribe_error": "Fehler beim Abbestellen der Benachrichtigung", - "upload_failed": "Datei konnte nicht hochgeladen werden", - "uploading_error": "Fehler beim Hochladen der Datei", - "valid_email": "Gültige E-Mail-Adresse eingeben" - }, - "expense_details": { - "add_expense": "Ausgabe hinzufügen", - "add_expense_details": { - "add_new_expense": "Neue Ausgabe hinzufügen", - "amount_placeholder": "Betrag eingeben", - "description_placeholder": "Beschreibung eingeben", - "pick_a_date": "Datum wählen", - "select_user_or_group": { - "add_to_split_pro": "Nutzer hinzufügen", - "note": "Hinweis: Einladung senden ist momentan wegen Spam deaktiviert", - "only_one_group_time": "Du kannst jeweils nur eine Gruppe haben", - "send_invite": "Einladung an Nutzer senden", - "warning": "Warnung: Versende keine Einladungen an ungültige E-Mail-Adressen. Nutze stattdessen 'Zu Split Pro hinzufügen'. Dein Konto wird bei Missbrauch gesperrt" - }, - "split_type_section": { - "split_equally": "gleichmäßig verteilt", - "split_unequally": "nach Anteilen verteilt", - "types": { - "adjustment": { - "remaining_to_split_equally": "Verbleibend zum gleichen Teilen", - "title": "Anpassung" - }, - "equal": { - "per_person": "pro Person", - "title": "Gleich" - }, - "exact": { - "remaining": "Verbleibend", - "title": "Genau" - }, - "percentage": { - "remaining": "Verbleibend", - "title": "Prozentual" - }, - "share": { - "shares": "Anteil(e)", - "title": "Anteil", - "total_shares": "Gesamtanteile" - } - } - }, - "sponsor_us": "Unterstütze uns", - "upload_file": { - "messages": { - "upload_success": "Datei erfolgreich hochgeladen" - } - }, - "user_input": { - "add_more_friends": "Freunde, Gruppen suchen oder E-Mail hinzufügen", - "cannot_change_group": "Gruppe kann beim Bearbeiten nicht geändert werden", - "remove_group": "Drücke Löschen, um die Gruppe zu entfernen", - "search_friends": "Freunde, Gruppen suchen oder E-Mail hinzufügen" - } - }, - "already_added": "Bereits hinzugefügt", - "balance_list": { - "are_settled_up": "bist ausgeglichen", - "is_settled_up": "ist ausgeglichen", - "press_balance_info": "Drücke auf einen einzelnen Saldo, um die Abrechnung zu starten" - }, - "bank_transactions": "Banktransaktionen", - "clear": "Leeren", - "delete_expense_details": { - "text": "Diese Aktion kann nicht rückgängig gemacht werden. Diese Ausgabe wird dauerhaft gelöscht.", - "title": "Bist du dir absolut sicher?" - }, - "multiple_transactions": { - "add_all": "Alle hinzufügen", - "add_one_by_one": "Einzeln hinzufügen", - "description": "Du hast mehrere Transaktionen ausgewählt. Wähle aus, ob du diese alle zusammen entsprechend der aktuellen Aufteilungseinstellungen hinzufügen oder die Einstellungen einzeln anpassen möchtest.", - "title": "Mehrere Transaktionen hinzufügen" - }, - "no_transactions_yet": "Noch keine Transaktionen", - "pending": "Ausstehend", - "submit_all": "Alles absenden", - "title": "Ausgabe hinzufügen", - "title_mobile": "Hinzufügen" - }, - "group_details": { - "add_members": "Mitglieder hinzufügen", - "copied": "Kopiert", - "create_group": { - "group_name_placeholder": "Name der Gruppe", - "title": "Gruppe erstellen" - }, - "group_info": { - "actions": "Aktionen", - "archive_group": "Archiviere Gruppe", - "archive_group_details": { - "can_archive": "Diese Gruppe wird archiviert und aus deiner Hauptgruppen-Liste ausgeblendet. Du kannst später noch darauf zugreifen, falls nötig.", - "cant_archive": "Gruppe mit ausstehenden Salden kann nicht archiviert werden. Alle Salden müssen zuerst ausgeglichen werden.", - "title": "Bist du sicher, dass du diese Gruppe archivieren möchtest?" - }, - "archived": "Archiviert", - "configure_default_split": "Standardaufteilung bearbeiten", - "default_balance_currency": "Standardwährung für Saldo", - "default_split": "Standardaufteilung", - "delete_group": "Gruppe löschen", - "delete_group_details": { - "can_delete": "Diese Aktion kann nicht rückgängig gemacht werden", - "cant_delete": "Gruppe kann nicht gelöscht werden, bis alle Salden ausgeglichen sind", - "title": "Bist du dir absolut sicher?" - }, - "edit_group": "Gruppe bearbeiten", - "group_created": "Gruppe erstellt", - "leave_group": "Gruppe verlassen", - "leave_group_details": { - "can_leave": "Diese Aktion kann nicht rückgängig gemacht werden", - "cant_leave": "Gruppe kann nicht verlassen werden, bis dein ausstehender Saldo ausgeglichen ist", - "title": "Bist du dir absolut sicher?" - }, - "members": "Mitglieder", - "recalculate_balances": "Salden neu berechnen", - "recalculate_balances_details": { - "description": "Wenn die Salden nicht mit den Ausgaben übereinstimmen, kannst du sie neu berechnen. Das kann je nach Anzahl der Ausgaben etwas dauern. Salden außerhalb der Gruppe werden nicht beeinflusst.", - "title": "Bist du sicher?" - }, - "remove_member_details": { - "can_remove": "Du bist dabei, dieses Mitglied aus der Gruppe zu entfernen", - "cant_remove": "Mitglied kann nicht entfernt werden, bis dessen Saldo ausgeglichen ist", - "title": "Bist du dir absolut sicher?" - }, - "simplify_debts": "Schulden vereinfachen", - "title": "Gruppeninfo" - }, - "group_statistics": { - "first_expense": "Erste Ausgabe", - "title": "Gruppenstatistik", - "total_expenses": "Gesamtausgaben" - }, - "messages": { - "balances_recalculated": "Salden erfolgreich neu berechnet", - "default_balance_currency_cleared": "Standardwährung für Salden zurückgesetzt", - "default_balance_currency_updated": "Standardwährung für Salden aktualisiert", - "default_split_cleared": "Standardaufteilung zurückgesetzt", - "default_split_updated": "Standardaufteilung aktualisiert", - "group_archived": "Gruppe erfolgreich archiviert", - "group_name_updated": "Gruppeninfos aktualisiert" - }, - "no_members": { - "add_members": "Mitglied hinzufügen", - "add_members_details": { - "add_to_split_pro": "Benutzer hinzufügen", - "note": "Hinweis: Das Versenden von E-Mail-Einladungen ist deaktiviert", - "placeholder": "Name oder E-Mail eingeben", - "send_invite": "Einladung senden", - "title": "Mitglied hinzufügen", - "warning": "Warnung: Verwende 'Einladung senden' nicht bei ungültiger E-Mail. Nutze stattdessen 'Benutzer hinzufügen'. Dein Konto wird bei Missbrauch gesperrt" - }, - "invite_link": "Einladungs-Link", - "no_members": "Diese Gruppe hat noch keine Mitglieder." - }, - "tabs": { - "balances": "Salden", - "expenses": "Ausgaben" - }, - "title": "Ausstehende Gruppensalden" - }, - "invite_message": { - "in_splitpro": "in SplitPro", - "join_to": "Tritt bei", - "text": "Tritt der Gruppe bei und du kannst Ausgaben hinzufügen, verwalten und deine Salden verfolgen" - }, - "meta": { - "application_name": "SplitPro", - "description": "Ausgaben mit deinen Freunden kostenlos teilen", - "title": "SplitPro: Teile Ausgaben mit deinen Freunden. Kostenlos" - }, - "navigation": { - "account": "Konto", - "activity": "Aktivität", - "add": "Hinzufügen", - "add_expense": "Ausgabe hinzufügen", - "balances": "Salden", - "groups": "Gruppen", - "recurring": "Wiederkehrend" - }, - "recurrence": { - "cron_expression": "Cron-Ausdruck", - "days_of_month": "Tage des Monats", - "days_of_week": "Wochentage", - "delete_description": "Dadurch wird die Erstellung zukünftiger Ausgaben verhindert. Durch diese Wiederholung erstellte Ausgaben werden nicht gelöscht.", - "delete_title": "Wiederholung löschen", - "derived_delete_warning": "Diese Ausgabe ist Teil einer wiederkehrenden Ausgabe. Nur diese Ausgabe wird gelöscht. Zukünftige wiederkehrende Ausgaben bleiben bestehen.", - "derived_edit_warning": "Diese Ausgabe ist Teil einer wiederkehrenden Ausgabe. Änderungen wirken sich nur auf diese Ausgabe aus.", - "description": "Automatische Wiederholung für diese Ausgabe einrichten.", - "edit_confirmation_title": "Wiederkehrende Ausgaben bearbeiten", - "edit_description": "Dadurch ändert sich der Zeitplan für zukünftige Ausgaben. Bestehende Ausgaben werden nicht geändert.", - "edit_title": "Wiederholung bearbeiten", - "empty": "Noch keine wiederkehrenden Ausgaben", - "expense_for_the_amount_of": "Ausgabe {{name}} in Höhe von {{amount}} {{currency}}", - "last_day": "Letzter Tag", - "months": "Monate", - "never": "Kein Zeitplan festgelegt", - "recurring": "Wiederkehrend", - "schedule_type": { - "custom": "Benutzerdefiniert", - "day": "Täglich", - "month": "Monatlich", - "never": "Nie", - "week": "Wöchentlich", - "year": "Jährlich" - }, - "template_delete_warning": "Dies ist eine Vorlage für wiederkehrende Ausgaben. Durch das Löschen werden alle zukünftigen wiederkehrenden Ausgaben gestoppt.", - "template_edit_warning": "Dies ist eine Vorlage für wiederkehrende Ausgaben. Änderungen gelten für alle zukünftigen wiederkehrenden Ausgaben.", - "time_of_day": "Tageszeit", - "title": "Wiederholung", - "view_recurring_page": "Wiederkehrende Seite anzeigen" - }, - "ui": { - "added_by": "Hinzugefügt von", - "and": "und", - "balance": "Saldo", - "balances": "Salden", - "delete": "Löschen", - "deleted_by": "Gelöscht von", - "edited_by": "Bearbeitet von", - "expense": { - "for": "für", - "from": "von", - "paid_by": "Bezahlt von", - "received_by": "Erhalten von", - "to": "an", - "user": { - "deleted": "hat gelöscht", - "get": "bekommt", - "lent": "hat ausgegeben", - "owe": "schuldet", - "paid": "hat bezahlt", - "pay": "bezahlt", - "received": "hat erhalten" - }, - "you": { - "deleted": "hast gelöscht", - "get": "bekommst", - "lent": "hast ausgelegt", - "owe": "schuldest", - "paid": "hast bezahlt", - "pay": "bezahlst", - "received": "hast erhalten" - } - }, - "expense_details": "Ausgaben Details", - "in_group": "Grupiert", - "no_activity": "Noch keine Aktivitäten", - "not_involved": "Nicht beteiligt", - "not_set": "Nicht festgelegt", - "on": "am", - "or": "oder", - "outstanding_balances": "Ausstehende Salden", - "select_balance": "Guthaben auswählen", - "select_currency": "Währung auswählen", - "settle_up_name": "Ausgleichen", - "settled_up": "Ausgeglichen", - "settlement": "Ausgleich", - "share_text": "Schau dir SplitPro an, eine kostenlose Open-Source-Alternative zu Splitwise", - "show_all_currencies": "Alle Währungen anzeigen", - "today": "Heute", - "total_balance": "Gesamtguthaben" - } -} diff --git a/public/locales/de/home.json b/public/locales/de/home.json deleted file mode 100644 index 298faabd9..000000000 --- a/public/locales/de/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Füge Ausgaben schneller hinzu, dank einer Integration mit GoCardless oder der Plaid-API für Bankkontotransaktionen", - "title": "Bankverbindung" - }, - "currency_conversion": { - "description": "Schnelle Umrechnung zwischen verschiedenen Währungen unter Verwendung aktueller oder historischer Wechselkurse", - "title": "Währungsumrechnung" - }, - "debt_simplification": { - "description": "Vereinfache automatisch Gruppenschulden, um die Anzahl der notwendigen Transaktionen zwischen Freunden zu reduzieren", - "title": "Schuldenvereinfachung" - }, - "groups_and_friends": { - "description": "Du kannst mehrere Gruppen erstellen oder direkt Salden hinzufügen. Alles wird konsolidiert", - "title": "Gruppen und Freunde" - }, - "i18": { - "description": "Verfügbar in mehreren Sprachen, um das Teilen von Ausgaben weltweit zugänglich zu machen", - "title": "Internationalisierung" - }, - "import_splitwise": { - "description": "Du musst Salden nicht manuell migrieren. Du kannst Nutzer und Gruppen von Splitwise importieren", - "title": "Importiere von Splitwise" - }, - "multiple_currencies": { - "description": "Möchtest du Ausgaben in verschiedenen Währungen für denselben Nutzer hinzufügen? Kein Problem!", - "title": "Mehrere Währungen" - }, - "open_source": { - "description": "Das macht es schwer, böse zu werden. Einfach selbst zu hosten", - "title": "Open Source" - }, - "push_notifications": { - "description": "Verpasse keine wichtigen Benachrichtigungen. Erhalte Meldungen, wenn jemand eine Ausgabe hinzufügt oder ausgleicht", - "title": "Push-Benachrichtigungen" - }, - "pwa_support": { - "description": "Liebst du mobile Apps? Wir haben dich abgedeckt. Installiere es als PWA und du wirst es kaum merken!", - "title": "PWA Unterstützung" - }, - "recurring_transactions": { - "description": "Einrichtung automatischer wiederkehrender Ausgaben für Miete, Abonnements oder anderer regelmäßiger gemeinsamer Kosten", - "title": "Wiederkehrende Transaktionen" - }, - "title": "Funktionen", - "unequal_split": { - "description": "Erweiterte Aufteilungsoptionen. Nach Anteilen, Prozent oder exakten Beträgen.", - "title": "Ungleiche Aufteilung" - }, - "upload_receipts": { - "description": "Lade Belege zusammen mit der Ausgabe hoch", - "title": "Belege hochladen" - } - }, - "footer": { - "built_by": "Erstellt von" - }, - "hero": { - "add_expense_button": "Ausgabe hinzufügen", - "star_github_button": "Gib uns einen Stern auf Github", - "subtitle_link": "Open Source", - "subtitle_part1": "Eine", - "subtitle_part2": "Alternative zu SplitWise", - "title_highlight": "Kostenlos", - "title_part1": "Teile Ausgaben mit deinen Freunden" - }, - "meta": { - "description": "SplitPro: Teile Ausgaben kostenlos mit deinen Freunden", - "title": "SplitPro: Teile Ausgaben mit deinen Freunden. Kostenlos" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Datenschutz", - "terms": "Bedingungen" - } -} diff --git a/public/locales/el/common.json b/public/locales/el/common.json deleted file mode 100644 index 58ec7fff8..000000000 --- a/public/locales/el/common.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "account": { - "change_language": "Αλλαγή Γλώσσας", - "change_language_details": { - "messages": { - "language_changed": "Επιτυχής Αλλαγή Γλώσσας" - }, - "no_language_found": "Δεν βρέθηκε η γλώσσα.", - "placeholder": "Επιλογή Γλώσσας", - "title": "Επιλογή Γλώσσας" - }, - "debug_info": "Πληροφορίες εντοπισμού σφαλμάτων", - "debug_info_details": { - "git": "Git", - "title": "Πληροφορίες εντοπισμού σφαλμάτων", - "version": "Έκδοση" - }, - "default_balance_currency": "Προεπιλεγμένο Νόμισμα", - "download_app": "Κατέβασμα Εφαρμογής", - "download_app_details": { - "download_as_pwa": "Μπορείτε να κατεβάσετε το SplitPro ως PWA στην αρχική σας οθόνη.", - "title": "Κατέβασμα Εφαρμογής", - "using_android": "Αν χρησιμοποιείτε Android, κοιτάξτε εδώ", - "using_ios": "Αν χρησιμοποιείτε iOS, κοιτάξτε εδώ", - "video": "βίντεο" - }, - "download_splitpro_data": "Λήψη Δεδομένων SplitPro", - "edit_name": { - "apply_avatar": "Εφαρμογή Avatar", - "avatar_label": "Φωτογραφία Προφίλ", - "avatar_preview": "Προεπισκόπιση Avatar", - "placeholder": "Εισάγετε όνομα", - "remove_avatar": "Αφαίρεση Avatar", - "select_avatar": "Επιλέξτε φωτογραφία", - "title": "Επεξεργασία", - "zoom": "Ζουμ" - }, - "follow_on_x": "Ακολουθήστε μας στο X", - "import_from_splitwise": "Εισαγωγή από Splitwise", - "import_from_splitwise_details": { - "choose_file": "Επιλέξτε αρχείο", - "export_splitwise_data_button": "Εξαγωγή δεδομένων splitwise", - "follow_to_export_splitwise_data": "Ακολουθήστε το σύνδεσμο για να εξάγετε τα δεδομένα από το Splitwise", - "messages": { - "import_success": "Επιτυχής εισαγωγή" - }, - "no_file_chosen": "Δεν επιλέχθηκε αρχείο", - "note": "Σημείωση: Αυτή τη στιγμή υποστηρίζεται μόνο η εισαγωγή φίλων και γκρουπ. Δεν θα εισαχθούν συναλλαγές. Εργαζόμαστε πάνω σε αυτό." - }, - "logout": "Αποσύνδεση", - "messages": { - "submit_error": "Αποτυχία ενημέρωσης στοιχείων", - "submit_success": "Τα στοιχεία ενημερώθηκαν" - }, - "notifications": { - "disable_notification": "Απενεργοποίηση ειδοποιήσεων", - "enable_notification": "Ενεργοποίηση ειδοποιήσεων", - "messages": { - "notification_granted": "Θα λαμβάνετε ειδοποιήσεις" - } - }, - "star_on_github": "Δώστε μας ένα αστέρι στο GitHub", - "submit_feedback": "Υποβολή σχολίων", - "submit_feedback_details": { - "placeholder": "Εισαγωγή σχολίων", - "title": "Υποβολή σχολίων" - }, - "support_us": "Υποστηρίξτε μας", - "title": "Λογαριασμός", - "write_review": "Γράψτε μία αξιολόγηση" - }, - "actions": { - "add_expense": "Προσθήκη εξόδου", - "back": "Πίσω", - "cancel": "Ακύρωση", - "close": "Κλείσιμο", - "confirm": "Επιβεβαίωση", - "connect": "Σύνδεση", - "copy": "Αντιγραφή", - "create": "Δημιουργία", - "edit_expense": "Επεξεργασία εξόδου", - "export": "Εξαγωγή", - "import": "Εισαγωγή", - "invite": "Πρόσκληση", - "leave": "Αποχώρηση", - "next": "Επόμενο", - "reconnect": "Επανασύνδεση", - "save": "Αποθήκευση", - "submit": "Υποβολή" - }, - "actors": { - "all": "Όλοι", - "friends": "Φίλοι", - "groups": "Γκρουπ", - "members": "Μέλη", - "owner": "Ιδιοκτήτης", - "you": "Εσύ", - "you_accusativus": "Εσύ", - "you_dativus": "Εσύ" - }, - "auth": { - "continue_with": "Συνέχεια με {{provider}}" - }, - "expense_details": { - "add_expense": "Προσθήκη εξόδου", - "add_expense_details": { - "add_new_expense": "Προσθήκη νέου εξόδου", - "amount_placeholder": "Εισάγετε ποσό", - "description_placeholder": "Εισάγετε περιγραφή", - "pick_a_date": "Επιλέξτε ημερομηνία", - "select_user_or_group": { - "add_to_split_pro": "Προσθήκη στο Split Pro" - }, - "split_type_section": { - "types": { - "equal": { - "per_person": "ανά άτομο" - }, - "percentage": { - "title": "Ποσοστό" - } - } - } - } - } -} diff --git a/public/locales/el/home.json b/public/locales/el/home.json deleted file mode 100644 index 0967ef424..000000000 --- a/public/locales/el/home.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/public/locales/en/common.json b/public/locales/en/common_icu.json similarity index 71% rename from public/locales/en/common.json rename to public/locales/en/common_icu.json index 5ec3f196f..7d4356d2a 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common_icu.json @@ -43,8 +43,8 @@ }, "logout": "Logout", "messages": { - "submit_error": "Failed to update details", - "submit_success": "Details updated" + "update_error": "Failed to update details", + "update_success": "Details updated" }, "notifications": { "disable_notification": "Disable notification", @@ -56,6 +56,10 @@ "star_on_github": "Star us on GitHub", "submit_feedback": "Submit feedback", "submit_feedback_details": { + "messages": { + "submit_error": "Failed to send feedback", + "submit_success": "Feedback sent" + }, "placeholder": "Enter your feedback", "title": "Submit feedback" }, @@ -95,7 +99,8 @@ "settle_up": "Settle up", "submit": "Submit", "reconnect": "Reconnect", - "connect": "Connect" + "connect": "Connect", + "remind_later": "Remind me later" }, "actors": { "all": "All", @@ -103,12 +108,10 @@ "groups": "Groups", "members": "Members", "owner": "Owner", - "you": "You", - "you_accusativus": "You", - "you_dativus": "You" + "you": "You" }, "auth": { - "continue_with": "Continue with {{provider}}", + "continue_with": "Continue with {provider}", "email_placeholder": "Enter your email", "no_providers_configured": "No authentication providers configured", "no_providers_instructions": "Please configure at least one authentication provider to sign in. See the", @@ -119,6 +122,8 @@ "trouble_logging_in": "Trouble logging in? Contact" }, "currency_conversion": { + "amount_aria_label": "Amount", + "converted_amount_aria_label": "Converted amount", "amount_to_receive": "Amount to receive", "description": "Convert the amount to a different currency.", "exchange_rate": "Exchange rate", @@ -137,19 +142,25 @@ "add_member_failed": "Failed to add member to the group", "group_name_update_failed": "Error in updating group name", "import_failed": "Error importing file", - "invalid_currency_code": "Invalid currency code {{code}}", - "invalid_split": "Adjust who owes this expense before saving.", + "invalid_currency_code": "Invalid currency code {code}", "language_change_failed": "Error changing language", - "less_than": "File should be less than {{size}}MB", + "less_than": "File should be less than {size} MB", "image_compression_failed": "Image compression failed, trying to upload original file", "name_required": "Name is required", "notification_not_supported": "Notification is not supported", "otp_invalid": "Invalid OTP", "otp_required": "OTP is required", "request_error": "Error requesting notification", + "notification_request_failed": "Error requesting notification permission", + "notification_subscribe_failed": "Cannot subscribe to notifications", + "expense_submission_failed": "An unexpected error occurred while submitting the expense.", + "expense_deletion_failed": "An unexpected error occurred while deleting the expense.", + "expense_split_incomplete": "Adjust who owes this expense before saving.", + "friend_deletion_failed": "Failed to delete friend", "saving_expense": "Error while saving expense", "setting_update_failed": "Failed to update setting", - "signin_error": "An error occurred while signing in: ", + "signin_error": "An error occurred while signing in: {error}", + "signin_failed": "Sign-in failed. Please try again.", "signup_disabled": "Signup of new accounts is disabled on this instance", "something_went_wrong": "Something went wrong", "subscribe_error": "Cannot subscribe to notification", @@ -177,6 +188,12 @@ } }, "expense_details": { + "receipt": { + "title": "Expense receipt", + "thumbnail_alt": "Expense receipt thumbnail", + "image_alt": "Expense receipt" + }, + "empty_state_image_alt": "No expenses", "add_expense": "Add expense", "add_expense_details": { "add_new_expense": "Add new expense", @@ -184,6 +201,7 @@ "description_placeholder": "Enter description", "pick_a_date": "Pick a date", "select_user_or_group": { + "empty_image_alt": "No users found", "add_to_split_pro": "Add to Split Pro", "note": "Note: sending invite is disabled for now because of spam", "only_one_group_time": "You can have only one group at a time", @@ -192,12 +210,13 @@ }, "split_type_section": { "direction": { - "no_money_flow": "No one else owes anything", - "owes_payer": "{{debtor}} owes {{payer}}", - "owes_you": "{{debtor}} owes you", - "you_owe": "You owe {{payer}}" + "no_money_flow": "no one else owes anything", + "owes_payer": "{debtor} owes {payer}", + "owes_you": "{debtor} owes you", + "you_owe": "you owe {payer}" }, "split_equally": "split equally", + "split_equally_with_count": "split equally among {count, plural, one {# person} other {# people}}", "split_unequally": "split unequally", "types": { "adjustment": { @@ -237,8 +256,9 @@ } }, "balance_list": { - "are_settled_up": "are settled up", - "is_settled_up": "is settled up", + "settled": "{actor, select, you {You are settled up} other {{person} is settled up}}", + "lent": "{actor, select, you {You lent} other {{person} lent}}", + "owes": "{actor, select, you {You owe} other {{person} owes}}", "press_balance_info": "Press on individual balance to initiate settlement" }, "delete_expense_details": { @@ -260,6 +280,13 @@ "no_transactions_yet": "No transactions yet", "already_added": "Already added" }, + "friend": { + "delete_confirmation": { + "title": "Are you absolutely sure?", + "description": "Do you really want to continue?", + "outstanding_balance": "You cannot remove a friend with outstanding balances. Settle up first." + } + }, "group_details": { "add_members": "Add members", "copied": "Copied", @@ -350,6 +377,48 @@ "description": "Split Expenses with your friends for free", "title": "SplitPro: Split Expenses with your friends for free" }, + "activity": { + "you_paid_for_expense": "You paid {amount} for {expense}", + "you_received_for_expense": "You received {amount} for {expense}", + "user_paid_for_expense": "{user} paid {amount} for {expense}", + "user_received_for_expense": "{user} received {amount} for {expense}", + "user_deleted_expense": "{actor, select, you {You deleted {expense}} other {{user} deleted {expense}}}", + "you_paid_amount": "You paid {amount}", + "you_received_amount": "You received {amount}" + }, + "balance_summary": { + "friend_owes_you": "{friend} owes you {amount}", + "you_owe_friend": "You owe {friend} {amount}", + "more": "{count, plural, one {# more balance} other {# more balances}}" + }, + "balance_list": { + "pays": "{payerRole, select, you {You pay {amount} to {receiver}} other {{payer} pays {amount} to {receiverRole, select, you {you} other {{receiver}}}}}", + "gets": "{receiverRole, select, you {You get {amount} from {payer}} other {{receiver} gets {amount} from {payerRole, select, you {you} other {{payer}}}}}" + }, + "expense_participant": { + "gets": "{actor, select, you {You get {amount}} other {{person} gets {amount}}}", + "owes": "{actor, select, you {You owe {amount}} other {{person} owes {amount}}}" + }, + "group": { + "invite_title": "Join {group} in SplitPro" + }, + "bank_connection": { + "connect": "Connect to your bank", + "reconnect": "Reconnect to your bank" + }, + "expense_metadata": { + "edited_by": "{actor, select, you {Edited by you on {date}} other {Edited by {user} on {date}}}", + "deleted_by": "{actor, select, you {Deleted by you on {date}} other {Deleted by {user} on {date}}}", + "added_by": "{actor, select, you {Added by you on {date}} other {Added by {user} on {date}}}" + }, + "expense_list": { + "user_paid": "{actor, select, you {You paid {amount}} other {{user} paid {amount}}}", + "user_received": "{actor, select, you {You received {amount}} other {{user} received {amount}}}", + "you_lent": "You lent {amount}", + "you_owe": "You owe {amount}", + "settlement": "{payerRole, select, you {You paid {amount} to {receiver}} other {{receiverRole, select, you {{payer} paid you {amount}} other {{payer} paid {amount} to {receiver}}}}}", + "conversion_for_users": "Currency conversion for {payerRole, select, you {you} other {{payer}}} and {receiverRole, select, you {you} other {{receiver}}}" + }, "balances": { "user_preferences": { "title": "Preferences" @@ -369,7 +438,14 @@ "balances": "Balances", "groups": "Groups" }, + "notifications": { + "enable_title": "Enable notifications", + "enable_description": "Don't miss important events. Subscribe to receive notifications when expenses are added or updated.", + "permission_granted": "You will receive notifications now", + "subscribe": "Subscribe" + }, "recurrence": { + "toggle_options": "Toggle recurring expense options", "title": "Recurrence", "description": "Set up automatic recurrence for this expense.", "cron_expression": "Cron Expression", @@ -381,7 +457,7 @@ "never": "No schedule configured", "empty": "No recurring expenses yet", "recurring": "Recurring", - "expense_for_the_amount_of": "Expense {{name}} for the amount of {{amount}} {{currency}}", + "expense_for_the_amount_of": "{name} is scheduled for {amount} {currency}", "delete_title": "Delete Recurrence", "delete_description": "This will stop future expense creation. Existing expenses created by this recurrence will not be deleted.", "edit_title": "Edit Recurrence", @@ -413,6 +489,12 @@ "for": "for", "from": "from", "paid_by": "Paid by", + "payer": { + "current_user": "You" + }, + "recipient": { + "current_user": "You" + }, "received_by": "Received by", "to": "to", "user": { @@ -421,7 +503,6 @@ "lent": "lent", "owe": "owes", "paid": "paid", - "pay": "pays", "received": "received" }, "you": { @@ -432,9 +513,31 @@ "paid": "paid", "pay": "pay", "received": "received" + }, + "statements": { + "you_lent": "You lent", + "you_owe": "You owe", + "you_lent_amount": "You lent {amount}", + "you_owe_amount": "You owe {amount}", + "you_paid_amount": "You paid {amount}", + "you_received_amount": "You received {amount}", + "you_pay_user": "You pay {user}", + "user_pays_you": "{user} pays you", + "friend_owes_you": "{friend} owes you", + "you_owe_friend": "You owe {friend}", + "paid_for_beneficiary": "{beneficiaryRole, select, you {This expense is only for you} other {You are splitting this expense with {beneficiary}}}", + "user_paid_amount": "{user} paid {amount}", + "user_received_amount": "{user} received {amount}", + "user_paid_amount_to_user": "{payer} paid {amount} to {receiver}", + "user_received_amount_from_user": "{payer} received {amount} from {receiver}", + "you_paid_amount_to_user": "You paid {amount} to {receiver}", + "you_received_amount_from_user": "You received {amount} from {payer}", + "for_users": "for {payer} and {receiver}", + "user_pays_user": "{payer} pays {receiver}" } }, "expense_details": "Expense details", + "transfer": "{senderRole, select, you {You pay {receiver}} other {{receiverRole, select, you {{sender} pays you} other {{sender} pays {receiver}}}}}", "no_activity": "No activities yet", "not_involved": "Not involved", "not_set": "Not set", @@ -450,6 +553,7 @@ "share_text": "Check out SplitPro. It's an open source free alternative for Splitwise", "show_all_currencies": "Show all currencies", "today": "Today", - "in_group": "In group" + "in_group": "In group", + "remaining_balances": "{count, plural, =0 {No outstanding balances} one {# outstanding balance} other {# outstanding balances}}" } } diff --git a/public/locales/en/home.json b/public/locales/en/home_icu.json similarity index 92% rename from public/locales/en/home.json rename to public/locales/en/home_icu.json index b2d1b5e77..39b8bfa02 100644 --- a/public/locales/en/home.json +++ b/public/locales/en/home_icu.json @@ -58,13 +58,13 @@ "built_by": "Built by" }, "hero": { + "image_alt": "SplitPro app preview", "add_expense_button": "Add Expense", "star_github_button": "Star us on github", - "subtitle_link": "open source", - "subtitle_part1": "An", - "subtitle_part2": "alternative to SplitWise", + "title_before_highlight": "Split expenses with your friends for", "title_highlight": "free", - "title_part1": "Split Expenses with your friends for" + "title_after_highlight": ".", + "subtitle": "An open source alternative to SplitWise." }, "meta": { "description": "SplitPro: Split Expenses with your friends for free", diff --git a/public/locales/es-AR/common.json b/public/locales/es-AR/common.json deleted file mode 100644 index acb3038fd..000000000 --- a/public/locales/es-AR/common.json +++ /dev/null @@ -1,421 +0,0 @@ -{ - "account": { - "change_language": "Cambiar idioma", - "change_language_details": { - "messages": { - "language_changed": "Idioma cambiado exitosamente" - }, - "placeholder": "Seleccionar un idioma", - "title": "Seleccionar un idioma" - }, - "debug_info": "Info de depuración", - "debug_info_details": { - "copy_failed": "Error al copiar información de depuración al portapapeles", - "description": "Pegá la info de abajo cuando crees un pedido de soporte:", - "git": "Git", - "new_version_available": "Hay una nueva versión disponible:", - "title": "Info de depuración", - "user_agent": "UserAgent", - "version": "Versión" - }, - "download_app": "Descargar aplicación", - "download_app_details": { - "download_as_pwa": "Podés descargar SplitPro como una PWA a tu pantalla de inicio.", - "title": "Descargar aplicación", - "using_android": "Si usás Android, revisá este", - "using_ios": "Si usás iOS, revisá este", - "video": "video" - }, - "download_splitpro_data": "Descargar datos de SplitPro", - "edit_name": { - "placeholder": "Ingresá el nombre", - "title": "Editar nombre" - }, - "follow_on_x": "Seguinos en X", - "import_from_splitwise": "Importar desde Splitwise", - "import_from_splitwise_details": { - "choose_file": "Elegir archivo", - "export_splitwise_data_button": "Exportar datos de Splitwise", - "follow_to_export_splitwise_data": "Seguí este enlace para exportar datos de Splitwise", - "messages": { - "import_success": "Importación exitosa" - }, - "no_file_chosen": "Ningún archivo seleccionado", - "note": "Nota: Actualmente solo soporta la importación de amigos y grupos. No importará transacciones. Estamos trabajando en ello." - }, - "logout": "Cerrar sesión", - "messages": { - "submit_error": "Error al enviar los comentarios", - "submit_success": "Comentarios enviados" - }, - "notifications": { - "disable_notification": "Deshabilitar notificaciones", - "enable_notification": "Habilitar notificaciones", - "messages": { - "notification_granted": "Ahora recibirás notificaciones" - } - }, - "star_on_github": "Danos una estrella en GitHub", - "submit_feedback": "Enviar comentarios", - "submit_feedback_details": { - "placeholder": "Ingresá tus comentarios", - "title": "Enviar comentarios" - }, - "support_us": "Patrocinanos", - "title": "Cuenta", - "write_review": "Escribir una reseña" - }, - "actions": { - "add_expense": "Agregar gasto", - "back": "Volver", - "cancel": "Cancelar", - "close": "Cerrar", - "confirm": "Confirmar", - "connect": "Conectar", - "copy": "Copiar", - "create": "Crear", - "edit_expense": "Editar gasto", - "export": "Exportar", - "fetch": "Obtener", - "import": "Importar", - "invite": "Invitar", - "leave": "Salir", - "next": "Siguiente", - "reconnect": "Reconectar", - "save": "Guardar", - "settle_up": "Liquidar", - "submit": "Enviar" - }, - "actors": { - "all": "Todos", - "friends": "Amigos", - "groups": "Grupos", - "members": "Miembros", - "owner": "Propietario", - "you": "Vos", - "you_accusativus": "A vos", - "you_dativus": "A vos" - }, - "auth": { - "continue_with": "Continuar con {{provider}}", - "email_placeholder": "Ingresá tu correo electrónico", - "no_providers_configured": "No hay proveedores de autenticación configurados", - "no_providers_instructions": "Por favor, configurá al menos un proveedor de autenticación para iniciar sesión. Consultá las", - "otp_sent": "Hemos enviado un correo electrónico con el OTP. Por favor, revisá tu bandeja de entrada y hacé clic en el enlace del correo electrónico para iniciar sesión.", - "send_magic_link": "Enviar enlace mágico", - "sending": "Enviando...", - "setup_instructions": "instrucciones de configuración de Docker", - "trouble_logging_in": "¿Problemas para iniciar sesión? Contactá a" - }, - "bank_transactions": { - "choose_bank_provider": "Elegí proveedor bancario", - "no_bank_providers_found": "No se encontraron proveedores bancarios", - "plaid": { - "bank_connected_successfully": "Banco conectado exitosamente", - "bank_connection_cancelled": "Conexión con Banco cancelada", - "bank_connection_failed": "Fallo al conectar al banco" - }, - "search_bank": "Buscar banco", - "select_bank_provider": "Seleccioná proveedor bancario", - "to_bank": "al banco" - }, - "currency_conversion": { - "amount_to_receive": "Monto a recibir", - "description": "Convertir el monto a una moneda diferente.", - "exchange_rate": "Tipo de cambio", - "fetching_rate": "Obteniendo tipo...", - "rate": "Tipo", - "success_toast": "Conversión de moneda configurada exitosamente", - "title": "Conversión de moneda" - }, - "errors": { - "amount_required": "La cantidad es requerida", - "currency_conversion_error": "Error al configurar la conversión de moneda", - "currency_conversion_failed": "No se pudo convertir las monedas", - "currency_conversion_malformed": "Los datos de conversión de moneda están mal formados", - "email_invalid": "El correo electrónico no es válido, por favor, intentá el proceso de inicio de sesión de nuevo.", - "email_required": "El correo electrónico es obligatorio", - "feedback_min_length": "Los comentarios deben tener al menos 10 caracteres", - "feedback_required": "Los comentarios son obligatorios", - "group_balances_malformed": "Los datos de balance del grupo están mal formados. Por favor, reportá el problema o probá recalcular.", - "group_name_update_failed": "Error al actualizar el nombre del grupo", - "import_failed": "Error al importar el archivo", - "invalid_cron_expression": "Expresión cron inválida", - "invalid_currency_code": "Código de moneda inválido {{code}}", - "language_change_failed": "Error al cambiar el idioma", - "less_than": "El archivo debe ser menor que", - "name_required": "El nombre es requerido", - "no_providers": "Error al obtener los proveedores de autenticación. Por favor, revisá los logs del backend.", - "notification_not_supported": "Las notificaciones no son compatibles", - "otp_invalid": "OTP inválido", - "otp_required": "El OTP es obligatorio", - "recurrence_delete_failed": "No se pudo eliminar la recurrencia", - "recurrence_update_failed": "No se pudo actualizar la recurrencia", - "request_error": "Error al solicitar notificaciones", - "saving_expense": "Error al guardar el gasto", - "setting_update_failed": "Error al actualizar la configuración", - "signin_error": "Ocurrió un error al iniciar sesión: ", - "signup_disabled": "El registro de nuevas cuentas está deshabilitado en esta instancia", - "something_went_wrong": "Algo salió mal", - "subscribe_error": "No se puede suscribir a las notificaciones", - "unsubscribe_error": "Error al cancelar la suscripción a las notificaciones", - "upload_failed": "Error al subir el archivo", - "upload_file_less_than": "El archivo debe ser menor de", - "uploading_error": "Error al subir el archivo", - "valid_email": "Ingresá un correo electrónico válido" - }, - "expense_details": { - "add_expense": "Agregar gasto", - "add_expense_details": { - "add_new_expense": "Agregar nuevo gasto", - "amount_placeholder": "Ingresá la cantidad", - "description_placeholder": "Ingresá una descripción", - "pick_a_date": "Seleccionar una fecha", - "select_user_or_group": { - "add_to_split_pro": "Agregar a Split Pro", - "note": "Nota: el envío de invitaciones está deshabilitado por ahora debido al spam", - "only_one_group_time": "Solo podés tener un grupo a la vez", - "send_invite": "Enviar invitación al usuario", - "warning": "Advertencia: No uses enviar invitación si el correo electrónico no es válido. Usá agregar a Split Pro en su lugar. Tu cuenta será bloqueada si se abusa de esta función" - }, - "split_type_section": { - "split_equally": "dividir por igual", - "split_unequally": "dividir de forma desigual", - "types": { - "adjustment": { - "remaining_to_split_equally": "Restante para dividir por igual", - "title": "Ajuste" - }, - "equal": { - "per_person": "por persona", - "title": "Igual" - }, - "exact": { - "remaining": "Restante", - "title": "Exacto" - }, - "percentage": { - "remaining": "Restante", - "title": "Porcentaje" - }, - "share": { - "shares": "Cuota(s)", - "title": "Cuota", - "total_shares": "Total de cuotas" - } - } - }, - "sponsor_us": "Patrocinanos", - "upload_file": { - "messages": { - "upload_success": "Archivo subido exitosamente" - } - }, - "user_input": { - "add_more_friends": "Buscar amigos, grupos o agregar correo electrónico", - "cannot_change_group": "No se puede cambiar el grupo mientras se edita", - "remove_group": "Presioná eliminar para quitar el grupo", - "search_friends": "Buscar amigos, grupos o agregar correo electrónico" - } - }, - "already_added": "Ya agregado", - "balance_list": { - "are_settled_up": "están liquidados", - "is_settled_up": "está liquidado", - "press_balance_info": "Presioná en el saldo individual para iniciar la liquidación" - }, - "bank_transactions": "Transacciones bancarias", - "clear": "Limpiar", - "delete_expense_details": { - "text": "Esta acción no se puede deshacer. Esto eliminará permanentemente tu gasto.", - "title": "¿Estás absolutamente seguro?" - }, - "multiple_transactions": { - "add_all": "Agregar todas", - "add_one_by_one": "Agregar una por una", - "description": "Seleccionaste múltiples transacciones. Elegí si querés agregarlas todas juntas con la configuración de división actual o ajustar la configuración una por una.", - "title": "Agregar múltiples transacciones" - }, - "no_transactions_yet": "Sin transacciones aún", - "pending": "Pendiente", - "submit_all": "Enviar todo", - "title": "Agregar gasto", - "title_mobile": "Agregar" - }, - "group_details": { - "add_members": "Agregar miembros", - "copied": "Copiado", - "create_group": { - "group_name_placeholder": "Nombre de Grupo", - "title": "Crear un grupo" - }, - "group_info": { - "actions": "Acciones", - "archive_group": "Archivar grupo", - "archive_group_details": { - "can_archive": "Este grupo será archivado y ocultado de tu lista principal de grupos. Podrás acceder a él más tarde si es necesario.", - "cant_archive": "No se puede archivar el grupo con saldos pendientes. Todos los saldos deben liquidarse primero.", - "title": "¿Estás seguro de que querés archivar este grupo?" - }, - "archived": "Archivado", - "delete_group": "Eliminar grupo", - "delete_group_details": { - "can_delete": "Esta acción no se puede revertir", - "cant_delete": "No se puede eliminar el grupo hasta que todos liquiden el saldo", - "title": "¿Estás absolutamente seguro?" - }, - "group_created": "Grupo creado", - "leave_group": "Abandonar grupo", - "leave_group_details": { - "can_leave": "Esta acción no se puede revertir", - "cant_leave": "No se puede abandonar el grupo hasta que tu saldo pendiente esté liquidado", - "title": "¿Estás absolutamente seguro?" - }, - "members": "Miembros", - "recalculate_balances": "Recalcular saldos", - "recalculate_balances_details": { - "description": "Si los saldos no coinciden con los gastos, podés recalculalos. Tené en cuenta que puede llevar algún tiempo si la cantidad de gastos es grande. Los saldos fuera del grupo no se verán afectados.", - "title": "¿Estás seguro?" - }, - "remove_member_details": { - "can_remove": "Estás a punto de eliminar a este miembro del grupo", - "cant_remove": "No se puede eliminar al miembro hasta que su saldo pendiente esté liquidado", - "title": "¿Estás absolutamente seguro?" - }, - "simplify_debts": "Simplificar deudas", - "title": "Información del grupo" - }, - "group_statistics": { - "first_expense": "Primer gasto", - "title": "Estadísticas del grupo", - "total_expenses": "Gastos totales" - }, - "messages": { - "balances_recalculated": "Saldos recalculados exitosamente", - "group_archived": "Grupo archivado exitosamente", - "group_name_updated": "Nombre del grupo actualizado" - }, - "no_members": { - "add_members": "Agregar miembros", - "add_members_details": { - "add_to_split_pro": "Agregar a Split Pro", - "note": "Nota: el envío de invitaciones está deshabilitado por ahora debido al spam", - "placeholder": "Ingresá nombre o correo electrónico", - "send_invite": "Enviar invitación al usuario", - "title": "Agregar miembros", - "warning": "Advertencia: No uses enviar invitación si el correo electrónico no es válido. Usá agregar a Split Pro en su lugar. Tu cuenta será bloqueada si se abusa de esta función" - }, - "copied": "Copiado", - "invite_link": "Compartir enlace de invitación", - "no_members": "Aún no hay miembros en el grupo." - }, - "tabs": { - "balances": "Saldos", - "expenses": "Gastos" - }, - "title": "Saldos pendientes del grupo" - }, - "invite_message": { - "in_splitpro": "en Splitpro", - "join_to": "Unite a", - "text": "Unite al grupo y podrás agregar, gestionar gastos y seguir tus saldos" - }, - "meta": { - "application_name": "SplitPro", - "description": "Dividí gastos con tus amigos gratis", - "title": "SplitPro: Dividí gastos con tus amigos gratis" - }, - "navigation": { - "account": "Cuenta", - "activity": "Actividad", - "add": "Agregar", - "add_expense": "Agregar Gasto", - "app_name": "SplitPro", - "balances": "Saldos", - "groups": "Grupos", - "recurring": "Recurrente" - }, - "recurrence": { - "cron_expression": "Expresión Cron", - "days_of_month": "Días del mes", - "days_of_week": "Días de la semana", - "delete_description": "Esto detendrá la creación de gastos futuros. Los gastos existentes creados por esta recurrencia no se eliminarán.", - "delete_title": "Eliminar recurrencia", - "derived_delete_warning": "Este gasto forma parte de una recurrencia. Solo se eliminará este gasto. Los gastos recurrentes futuros continuarán.", - "derived_edit_warning": "Este gasto forma parte de una recurrencia. Los cambios solo afectarán a este gasto.", - "description": "Configurá una recurrencia automática para este gasto.", - "edit_confirmation_title": "Editar gasto recurrente", - "edit_description": "Esto cambiará el cronograma de los gastos futuros. Los gastos existentes no se modificarán.", - "edit_title": "Editar recurrencia", - "empty": "Sin gastos recurrentes aún", - "expense_for_the_amount_of": "Gasto {{name}} por el monto de {{amount}} {{currency}}", - "last_day": "Último día", - "months": "Meses", - "never": "Sin agenda configurada", - "recurring": "Recurrente", - "schedule_type": { - "custom": "Personalizado", - "day": "Diariamente", - "month": "Mensualmente", - "never": "Nunca", - "week": "Semanalmente", - "year": "Anualmente" - }, - "template_delete_warning": "Esta es una plantilla de gasto recurrente. Al eliminarla se detendrán todos los gastos recurrentes futuros.", - "template_edit_warning": "Esta es una plantilla de gasto recurrente. Los cambios se aplicarán a todos los gastos recurrentes futuros.", - "time_of_day": "Hora del día", - "title": "Recurrencia", - "view_recurring_page": "Ver página de recurrentes" - }, - "ui": { - "added_by": "Agregado por", - "and": "y", - "balance": "saldo", - "balances": "saldos", - "delete": "Eliminar", - "deleted_by": "Eliminado por", - "edited_by": "Editado por", - "expense": { - "for": "para", - "from": "de", - "paid_by": "Pagado por", - "received_by": "Recibido por", - "to": "a", - "user": { - "deleted": "eliminó", - "get": "recibe", - "lent": "prestó", - "owe": "debe", - "paid": "pagó", - "pay": "paga", - "received": "recibió" - }, - "you": { - "deleted": "eliminaste", - "get": "recibís", - "lent": "prestaste", - "owe": "debés", - "paid": "pagaste", - "pay": "pagar", - "received": "recibiste" - } - }, - "expense_details": "Detalles del gasto", - "in_group": "En grupo", - "no_activity": "Aún no hay actividades", - "not_involved": "No involucrado", - "not_set": "No establecido", - "on": "el", - "or": "o", - "outstanding_balances": "Saldos pendientes", - "select_balance": "Seleccionar balance", - "select_currency": "Seleccionar moneda", - "settle_up_name": "Liquidar", - "settled_up": "Liquidado", - "settlement": "Liquidación", - "share_text": "Echale un vistazo a SplitPro. Es una alternativa gratuita de código abierto a Splitwise", - "show_all_currencies": "Mostrar todas las monedas", - "today": "Hoy", - "total_balance": "Balance total" - } -} diff --git a/public/locales/es-AR/home.json b/public/locales/es-AR/home.json deleted file mode 100644 index 6f0555026..000000000 --- a/public/locales/es-AR/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Sumá gastos más rápido con una integración al API de transacciones bancarias de GoCardless o Plaid", - "title": "Conectar Banco" - }, - "currency_conversion": { - "description": "Convertí rápidamente entre distintas monedas usando cotizaciones actuales o históricas", - "title": "Conversión de moneda" - }, - "debt_simplification": { - "description": "Simplifica automáticamente las deudas del grupo para reducir el número de transacciones necesarias entre amigos", - "title": "Simplificación de Deudas" - }, - "groups_and_friends": { - "description": "Podés crear múltiples grupos o agregar saldo directamente. Todo se consolidará", - "title": "Grupos y Amigos" - }, - "i18": { - "description": "Disponible en múltiples idiomas para hacer que la división de gastos sea accesible en todo el mundo", - "title": "Internacionalización" - }, - "import_splitwise": { - "description": "No tenés que migrar saldos manualmente. Podés importar usuarios y grupos desde Splitwise", - "title": "Importar desde Splitwise" - }, - "multiple_currencies": { - "description": "¿Necesitás agregar un gasto con una moneda diferente para el mismo usuario? ¡No hay problema!", - "title": "Múltiples monedas" - }, - "open_source": { - "description": "Lo que hace difícil que se vuelva malvado. Fácil de autoalojar", - "title": "Código abierto" - }, - "push_notifications": { - "description": "Nunca te pierdas notificaciones importantes. Recibí notificaciones cuando alguien agrega un gasto o liquida", - "title": "Notificaciones push" - }, - "pwa_support": { - "description": "¿Te encantan las aplicaciones móviles? Te tenemos cubierto. ¡Instalala como una PWA y ni siquiera lo notarás!", - "title": "Soporte PWA" - }, - "recurring_transactions": { - "description": "Configurá gastos recurrentes automáticos para el alquiler, suscripciones o cualquier otro costo compartido regular", - "title": "Transacciones Recurrentes" - }, - "title": "Características", - "unequal_split": { - "description": "Opciones avanzadas de división. Por cuotas, porcentaje o cantidades exactas.", - "title": "División Desigual" - }, - "upload_receipts": { - "description": "Subí recibos junto con el gasto", - "title": "Subir Recibos" - } - }, - "footer": { - "built_by": "Construido por" - }, - "hero": { - "add_expense_button": "Agregar Gasto", - "star_github_button": "Danos una estrella en GitHub", - "subtitle_link": "código abierto", - "subtitle_part1": "Una alternativa de", - "subtitle_part2": "a SplitWise", - "title_highlight": "gratis", - "title_part1": "Dividí gastos con tus amigos" - }, - "meta": { - "description": "SplitPro: Dividí gastos con tus amigos gratis", - "title": "SplitPro: Dividí gastos con tus amigos gratis" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Privacidad", - "terms": "Términos" - } -} diff --git a/public/locales/es-MX/common.json b/public/locales/es-MX/common.json deleted file mode 100644 index f85f66b06..000000000 --- a/public/locales/es-MX/common.json +++ /dev/null @@ -1,420 +0,0 @@ -{ - "account": { - "change_language": "Cambiar idioma", - "change_language_details": { - "messages": { - "language_changed": "Idioma cambiado exitosamente" - }, - "placeholder": "Seleccionar un idioma", - "title": "Seleccionar un idioma" - }, - "debug_info": "Info de depuración", - "debug_info_details": { - "copy_failed": "No se pudo copiar la información de depuración al portapapeles", - "description": "Pega la información abajo cuando hagas una solicitud de soporte:", - "git": "Git", - "new_version_available": "Nueva versión disponible:", - "title": "Información de depuración", - "user_agent": "UserAgent", - "version": "Versión" - }, - "download_app": "Descargar aplicación", - "download_app_details": { - "download_as_pwa": "Puedes descargar SplitPro como una PWA a tu pantalla de inicio.", - "title": "Descargar aplicación", - "using_android": "Si usas Android, revisa este", - "using_ios": "Si usas iOS, revisa este", - "video": "video" - }, - "download_splitpro_data": "Descargar datos de SplitPro", - "edit_name": { - "placeholder": "Introduce el nombre", - "title": "Editar nombre" - }, - "follow_on_x": "Síguenos en X", - "import_from_splitwise": "Importar desde Splitwise", - "import_from_splitwise_details": { - "choose_file": "Elegir archivo", - "export_splitwise_data_button": "Exportar datos de Splitwise", - "follow_to_export_splitwise_data": "Sigue este enlace para exportar datos de Splitwise", - "messages": { - "import_success": "Importación exitosa" - }, - "no_file_chosen": "Ningún archivo seleccionado", - "note": "Nota: Actualmente solo soporta la importación de amigos y grupos. No importará transacciones. Estamos trabajando en ello." - }, - "logout": "Cerrar sesión", - "messages": { - "submit_error": "No se pudo enviar el comentario", - "submit_success": "Comentario enviado" - }, - "notifications": { - "disable_notification": "Deshabilitar notificaciones", - "enable_notification": "Habilitar notificaciones", - "messages": { - "notification_granted": "Ahora recibirás notificaciones" - } - }, - "star_on_github": "Danos una estrella en GitHub", - "submit_feedback": "Enviar comentarios", - "submit_feedback_details": { - "placeholder": "Introduce tus comentarios", - "title": "Enviar comentarios" - }, - "support_us": "Patrocínanos", - "title": "Cuenta", - "write_review": "Escribir una reseña" - }, - "actions": { - "add_expense": "Añadir gasto", - "back": "Volver", - "cancel": "Cancelar", - "close": "Cerrar", - "confirm": "Confirmar", - "connect": "Conectar", - "copy": "Copiar", - "create": "Crear", - "edit_expense": "Editar gasto", - "export": "Exportar", - "fetch": "Obtener", - "import": "Importar", - "invite": "Invitar", - "leave": "Salir", - "next": "", - "reconnect": "Reconectar", - "save": "Guardar", - "settle_up": "Liquidar", - "submit": "Enviar" - }, - "actors": { - "all": "Todos", - "friends": "Amigos", - "groups": "Grupos", - "members": "Miembros", - "owner": "Propietario", - "you": "Tú", - "you_accusativus": "A ti", - "you_dativus": "A ti" - }, - "auth": { - "continue_with": "Continuar con {{provider}}", - "email_placeholder": "Introduce tu correo electrónico", - "no_providers_configured": "No hay proveedores de autenticación configurados", - "no_providers_instructions": "Por favor, configure al menos un proveedor de autenticación para iniciar sesión. Consulte las", - "otp_sent": "Hemos enviado un correo electrónico con el OTP. Por favor, revisa tu bandeja de entrada y haz clic en el enlace del correo electrónico para iniciar sesión.", - "send_magic_link": "Enviar enlace mágico", - "sending": "Enviando...", - "setup_instructions": "instrucciones de configuración de Docker", - "trouble_logging_in": "¿Problemas para iniciar sesión? Contacta a" - }, - "bank_transactions": { - "choose_bank_provider": "Elige proveedor bancario", - "no_bank_providers_found": "No se encontraron proveedores bancarios", - "plaid": { - "bank_connected_successfully": "Banco conectado exitosamente", - "bank_connection_cancelled": "Conexión bancaria cancelada", - "bank_connection_failed": "No se pudo conectar banco" - }, - "search_bank": "Buscar banco", - "select_bank_provider": "Selecciona proveedor bancario", - "to_bank": "al banco" - }, - "currency_conversion": { - "amount_to_receive": "Monto a recibir", - "description": "Convierte el monto a una moneda diferente.", - "exchange_rate": "Tipo de cambio", - "fetching_rate": "Obteniendo tipo...", - "rate": "Tipo", - "success_toast": "Conversión de moneda establecida exitosamente", - "title": "Conversión de moneda" - }, - "errors": { - "currency_conversion_error": "Error al establecer la conversión de moneda", - "currency_conversion_failed": "Error al convertir monedas", - "currency_conversion_malformed": "El formato de la conversión de moneda es incorrecto", - "email_invalid": "El correo electrónico no es válido, por favor, intenta el proceso de inicio de sesión de nuevo.", - "email_required": "El correo electrónico es obligatorio", - "feedback_min_length": "Los comentarios deben tener al menos 10 caracteres", - "feedback_required": "Los comentarios son obligatorios", - "group_balances_malformed": "El formato de los datos de los saldos de grupo es incorrecto. Informe del problema o intente recalcular.", - "group_name_update_failed": "Error al actualizar el nombre del grupo", - "import_failed": "Error al importar el archivo", - "invalid_cron_expression": "Expresión cron inválida", - "invalid_currency_code": "Código de moneda inválido {{code}}", - "language_change_failed": "Error al cambiar el idioma", - "less_than": "El archivo debe ser menor que", - "name_required": "El nombre es requerido", - "no_providers": "Error al obtener los proveedores de autenticación. Compruebe los logs del servidor.", - "notification_not_supported": "Las notificaciones no son compatibles", - "otp_invalid": "OTP inválido", - "otp_required": "El OTP es obligatorio", - "recurrence_delete_failed": "", - "recurrence_update_failed": "", - "request_error": "Error al solicitar notificaciones", - "saving_expense": "Error al guardar el gasto", - "setting_update_failed": "Error al actualizar la configuración", - "signin_error": "Ocurrió un error al iniciar sesión: ", - "signup_disabled": "El registro de nuevas cuentas está deshabilitado en esta instancia", - "something_went_wrong": "Algo salió mal", - "submit_error": "Error al enviar los comentarios", - "subscribe_error": "No se puede suscribir a las notificaciones", - "unsubscribe_error": "Error al cancelar la suscripción a las notificaciones", - "upload_failed": "Error al subir el archivo", - "uploading_error": "Error al subir archivo", - "valid_email": "Introduce un correo electrónico válido" - }, - "expense_details": { - "add_expense": "Añadir gasto", - "add_expense_details": { - "add_new_expense": "Añadir nuevo gasto", - "amount_placeholder": "Introduce la cantidad", - "description_placeholder": "Introduce una descripción", - "pick_a_date": "Seleccionar una fecha", - "select_user_or_group": { - "add_to_split_pro": "Añadir a Split Pro", - "note": "Nota: el envío de invitaciones está deshabilitado por ahora debido al spam", - "only_one_group_time": "Solo puedes tener un grupo a la vez", - "send_invite": "Enviar invitación al usuario", - "warning": "Advertencia: No uses enviar invitación si el correo electrónico no es válido. Usa añadir a Split Pro en su lugar. Tu cuenta será bloqueada si se abusa de esta función" - }, - "split_type_section": { - "split_equally": "dividir por igual", - "split_unequally": "dividir de forma desigual", - "types": { - "adjustment": { - "remaining_to_split_equally": "Restante para dividir por igual", - "title": "Ajuste" - }, - "equal": { - "per_person": "por persona", - "title": "Igual" - }, - "exact": { - "remaining": "Restante", - "title": "Exacto" - }, - "percentage": { - "remaining": "Restante", - "title": "Porcentaje" - }, - "share": { - "shares": "Cuota(s)", - "title": "Cuota", - "total_shares": "Total de cuotas" - } - } - }, - "sponsor_us": "Patrocínanos", - "upload_file": { - "messages": { - "upload_success": "Archivo subido exitosamente" - } - }, - "user_input": { - "add_more_friends": "Buscar amigos, grupos o añadir correo electrónico", - "cannot_change_group": "No se puede cambiar el grupo mientras se edita", - "remove_group": "Pulsa eliminar para quitar el grupo", - "search_friends": "Buscar amigos, grupos o añadir correo electrónico" - } - }, - "already_added": "Ya agregado", - "balance_list": { - "are_settled_up": "están liquidados", - "is_settled_up": "está liquidado", - "press_balance_info": "Pulsa en el saldo individual para iniciar la liquidación" - }, - "bank_transactions": "Transacciones bancarias", - "clear": "Limpiar", - "delete_expense_details": { - "text": "Esta acción no se puede deshacer. Esto eliminará permanentemente tu gasto.", - "title": "¿Estás absolutamente seguro?" - }, - "multiple_transactions": { - "add_all": "Añadir todas", - "add_one_by_one": "Añadir una por una", - "description": "Has seleccionado varias transacciones. Elije si quieres añadirlas usando el ajuste de división actual o si quieres ajustar cada una por separado.", - "title": "Añadir multiples transacciones" - }, - "no_transactions_yet": "Aún sin transacciones", - "pending": "Pendiente", - "submit_all": "Enviar todo", - "title": "Añadir gasto", - "title_mobile": "Añadir" - }, - "group_details": { - "add_members": "Añadir miembros", - "copied": "Copiado", - "create_group": { - "group_name_placeholder": "Nombre del grupo", - "title": "Crear un grupo" - }, - "group_info": { - "actions": "Acciones", - "archive_group": "Archivar grupo", - "archive_group_details": { - "can_archive": "Este grupo será archivado y ocultado de tu lista principal de grupos. Podrás acceder a él más tarde si es necesario.", - "cant_archive": "No se puede archivar el grupo con saldos pendientes. Todos los saldos deben liquidarse primero.", - "title": "¿Estás seguro de que quieres archivar este grupo?" - }, - "archived": "Archivado", - "delete_group": "Eliminar grupo", - "delete_group_details": { - "can_delete": "Esta acción no se puede revertir", - "cant_delete": "No se puede eliminar el grupo hasta que todos liquiden el saldo", - "title": "¿Estás absolutamente seguro?" - }, - "group_created": "Grupo creado", - "leave_group": "Abandonar grupo", - "leave_group_details": { - "can_leave": "Esta acción no se puede revertir", - "cant_leave": "No se puede abandonar el grupo hasta que tu saldo pendiente esté liquidado", - "title": "¿Estás absolutamente seguro?" - }, - "members": "Miembros", - "recalculate_balances": "Recalcular saldos", - "recalculate_balances_details": { - "description": "Si los saldos no coinciden con los gastos, puedes recalculalos. Ten en cuenta que puede llevar algún tiempo si la cantidad de gastos es grande. Los saldos fuera del grupo no se verán afectados.", - "title": "¿Estás seguro?" - }, - "remove_member_details": { - "can_remove": "Estás a punto de eliminar a este miembro del grupo", - "cant_remove": "No se puede eliminar al miembro hasta que su saldo pendiente esté liquidado", - "title": "¿Estás absolutamente seguro?" - }, - "simplify_debts": "Simplificar deudas", - "title": "Información del grupo" - }, - "group_statistics": { - "first_expense": "Primer gasto", - "title": "Estadísticas del grupo", - "total_expenses": "Gastos totales" - }, - "messages": { - "balances_recalculated": "Saldos recalculados exitosamente", - "group_archived": "Grupo archivado exitosamente", - "group_name_updated": "Nombre del grupo actualizado" - }, - "no_members": { - "add_members": "Añadir miembros", - "add_members_details": { - "add_to_split_pro": "Añadir a Split Pro", - "note": "Nota: el envío de invitaciones está deshabilitado por ahora debido al spam", - "placeholder": "Introduce nombre o correo electrónico", - "send_invite": "Enviar invitación al usuario", - "title": "Añadir miembros", - "warning": "Advertencia: No uses enviar invitación si el correo electrónico no es válido. Usa añadir a Split Pro en su lugar. Tu cuenta será bloqueada si se abusa de esta función" - }, - "copied": "Copiado", - "invite_link": "Compartir enlace de invitación", - "no_members": "Aún no hay miembros en el grupo." - }, - "tabs": { - "balances": "Saldos", - "expenses": "Gastos" - }, - "title": "Saldos pendientes del grupo" - }, - "invite_message": { - "in_splitpro": "en Splitpro", - "join_to": "Únete a", - "text": "Únete al grupo y podrás añadir, gestionar gastos y seguir tus saldos" - }, - "meta": { - "application_name": "SplitPro", - "description": "Divide gastos con tus amigos gratis", - "title": "SplitPro: Divide gastos con tus amigos gratis" - }, - "navigation": { - "account": "Cuenta", - "activity": "Actividad", - "add": "Añadir", - "add_expense": "Añadir Gasto", - "app_name": "SplitPro", - "balances": "Saldos", - "groups": "Grupos", - "recurring": "Recurrente" - }, - "recurrence": { - "cron_expression": "Expresión Cron", - "days_of_month": "Día del mes", - "days_of_week": "Día de la semana", - "delete_description": "", - "delete_title": "", - "derived_delete_warning": "", - "derived_edit_warning": "", - "description": "Configurar una recurrencia automática para este gasto.", - "edit_confirmation_title": "", - "edit_description": "", - "edit_title": "", - "empty": "No hay gastos recurrentes aún", - "expense_for_the_amount_of": "Gasto {{name}} por la cantidad de {{amount}} {{currency}}", - "last_day": "", - "months": "Meses", - "never": "No hay horario configurado", - "recurring": "Recurrente", - "schedule_type": { - "custom": "Personalizado", - "day": "Diario", - "month": "Mensual", - "never": "Nunca", - "week": "Semanal", - "year": "Anual" - }, - "template_delete_warning": "", - "template_edit_warning": "", - "time_of_day": "Hora del día", - "title": "Recurrencia", - "view_recurring_page": "" - }, - "ui": { - "added_by": "Añadido por", - "and": "y", - "balance": "saldo", - "balances": "saldos", - "delete": "Eliminar", - "deleted_by": "Eliminado por", - "edited_by": "Editado por", - "expense": { - "for": "para", - "from": "de", - "paid_by": "Pagado por", - "received_by": "Recibido por", - "to": "a", - "user": { - "deleted": "eliminó", - "get": "recibe", - "lent": "prestó", - "owe": "debe", - "paid": "pagó", - "pay": "paga", - "received": "recibió" - }, - "you": { - "deleted": "eliminaste", - "get": "recibes", - "lent": "prestaste", - "owe": "debes", - "paid": "pagaste", - "pay": "pagar", - "received": "recibiste" - } - }, - "expense_details": "Detalles del gasto", - "in_group": "En grupo", - "no_activity": "Aún no hay actividades", - "not_involved": "No involucrado", - "not_set": "No establecido", - "on": "el", - "or": "o", - "outstanding_balances": "Saldos pendientes", - "select_balance": "", - "select_currency": "Seleccionar moneda", - "settle_up_name": "Liquidar", - "settled_up": "Liquidado", - "settlement": "Liquidación", - "share_text": "Echa un vistazo a SplitPro. Es una alternativa gratuita de código abierto a Splitwise", - "show_all_currencies": "Mostrar todas las monedas", - "today": "Hoy", - "total_balance": "Saldo total" - } -} diff --git a/public/locales/es-MX/home.json b/public/locales/es-MX/home.json deleted file mode 100644 index 2ef4222f6..000000000 --- a/public/locales/es-MX/home.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Agrega tus gastos más rápido con una integración al API de transacciones bancarias de GoCardless o Plaid", - "title": "Conexión con Banco" - }, - "currency_conversion": { - "description": "Convierte rápidamente entre diferentes monedas usando tipos de cambio actuales o históricos", - "title": "Conversión de moneda" - }, - "debt_simplification": { - "description": "Simplifica automáticamente las deudas del grupo para reducir el número de transacciones necesarias entre amigos", - "title": "Simplificación de Deudas" - }, - "groups_and_friends": { - "description": "Puedes crear múltiples grupos o añadir saldo directamente. Todo se consolidará", - "title": "Grupos y Amigos" - }, - "i18": { - "description": "Disponible en múltiples idiomas para hacer que la división de gastos sea accesible en todo el mundo", - "title": "Internacionalización" - }, - "import_splitwise": { - "description": "No tienes que migrar saldos manualmente. Puedes importar usuarios y grupos desde Splitwise", - "title": "Importar desde Splitwise" - }, - "multiple_currencies": { - "description": "¿Necesitas añadir un gasto con una moneda diferente para el mismo usuario? ¡No hay problema!", - "title": "Múltiples monedas" - }, - "open_source": { - "description": "Lo que hace difícil que se vuelva malvado. Fácil de autoalojar", - "title": "Código abierto" - }, - "push_notifications": { - "description": "Nunca te pierdas notificaciones importantes. Recibe notificaciones cuando alguien añade un gasto o liquida", - "title": "Notificaciones push" - }, - "pwa_support": { - "description": "¿Te encantan las aplicaciones móviles? Te tenemos cubierto. ¡Instálala como una PWA y ni siquiera lo notarás!", - "title": "Soporte PWA" - }, - "title": "Características", - "unequal_split": { - "description": "Opciones avanzadas de división. Por cuotas, porcentaje o cantidades exactas.", - "title": "División Desigual" - }, - "upload_receipts": { - "description": "Sube recibos junto con el gasto", - "title": "Subir Recibos" - } - }, - "footer": { - "built_by": "Construido por" - }, - "hero": { - "add_expense_button": "Añadir Gasto", - "star_github_button": "Danos una estrella en GitHub", - "subtitle_link": "código abierto", - "subtitle_part1": "Una alternativa de", - "subtitle_part2": "a SplitWise", - "title_highlight": "gratis", - "title_part1": "Divide gastos con tus amigos" - }, - "meta": { - "description": "SplitPro: Divide gastos con tus amigos gratis", - "title": "SplitPro: Divide gastos con tus amigos gratis" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Privacidad", - "terms": "Términos" - } -} diff --git a/public/locales/es/common.json b/public/locales/es/common.json deleted file mode 100644 index 720c3488f..000000000 --- a/public/locales/es/common.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "account": { - "change_language": "Modificar idioma", - "change_language_details": { - "messages": { - "language_changed": "Idioma modificado correctamente" - }, - "placeholder": "Seleccionar idioma", - "title": "Seleccionar idioma" - }, - "debug_info": "Información de depuración", - "debug_info_details": { - "copy_failed": "No se pudo copiar la información de depuración al portapapeles", - "description": "Copie la siguiente información cuando cree una solicitud de soporte:", - "git": "Git", - "new_version_available": "Hay una nueva versión disponible:", - "title": "Información de Depuración", - "user_agent": "UserAgent", - "version": "Versión" - }, - "download_app": "Descargar aplicación", - "download_app_details": { - "download_as_pwa": "Puedes descargar SplitPro como una PWA a tu pantalla de inicio.", - "title": "Descargar aplicación", - "using_android": "Si estás usando Android, comprueba lo siguiente", - "using_ios": "Si estás usando iOS, comprueba lo siguiente", - "video": "video" - }, - "download_splitpro_data": "Descargar datos de SplitPro", - "edit_name": { - "placeholder": "Nombre", - "title": "Editar nombre" - }, - "follow_on_x": "Síguenos en X", - "import_from_splitwise": "Importar Splitwise", - "import_from_splitwise_details": { - "choose_file": "Elegir archivo", - "export_splitwise_data_button": "Exportar datos de Splitwise", - "follow_to_export_splitwise_data": "Use este enlace para exportar los datos de Splitwise", - "messages": { - "import_success": "Importación completada" - }, - "no_file_chosen": "Ningún archivo seleccionado", - "note": "Nota: Actualmente solo está soportado importar amigos y grupos. La importación de transacciones aún está en desarrollo." - }, - "logout": "Cerrar sesión", - "messages": { - "submit_error": "Error al enviar comentario", - "submit_success": "Comentario enviado" - }, - "notifications": { - "disable_notification": "Desactivar notificaciones", - "enable_notification": "Activar notificaciones", - "messages": { - "notification_granted": "Ahora recibirás notificaciones" - } - }, - "star_on_github": "Danos una estrella en GitHub", - "submit_feedback": "Enviar comentario", - "submit_feedback_details": { - "placeholder": "Introduce tus comentarios", - "title": "Enviar comentarios" - }, - "support_us": "Patrocínanos", - "title": "Cuenta", - "write_review": "Escribir una reseña" - }, - "actions": { - "add_expense": "Añadir gasto", - "back": "Volver", - "cancel": "Cancelar", - "close": "Cerrar", - "confirm": "Confirmar", - "connect": "Conectar", - "copy": "Copiar", - "create": "Crear", - "edit_expense": "Editar gasto", - "export": "Exportar", - "fetch": "Obtener", - "import": "Importar", - "invite": "Invitar", - "leave": "Salir", - "next": "Siguiente", - "reconnect": "Reconectar", - "save": "Guardar", - "settle_up": "Liquidar deuda", - "submit": "Aplicar" - }, - "actors": { - "all": "Todos", - "friends": "Amigos", - "groups": "Grupos", - "members": "Miembros", - "owner": "Propietario", - "you": "Tú", - "you_accusativus": "A ti", - "you_dativus": "A ti" - }, - "auth": { - "continue_with": "Continuar con {{provider}}", - "email_placeholder": "Introduce tu correo electrónico", - "no_providers_configured": "No hay proveedores de autenticación configurados", - "no_providers_instructions": "Configure al menos un provedor de autenticación para iniciar sesión. Consulte las", - "otp_sent": "Hemos enviado un correo electrónico con el OTP. Por favor, revisa tu bandeja de entrada y haz clic en el enlace del correo electrónico para iniciar sesión.", - "send_magic_link": "Envair enlace mágico", - "sending": "Enviando...", - "setup_instructions": "intrucciones de configuración de Docker", - "trouble_logging_in": "¿Problemas para iniciar sesión? Contacta a" - }, - "bank_transactions": { - "choose_bank_provider": "Elija proveedor bancario", - "no_bank_providers_found": "No se encontraron proveedores bancarios", - "plaid": { - "bank_connected_successfully": "Banco conectado exitosamente", - "bank_connection_cancelled": "Conexión bancaria cancelada", - "bank_connection_failed": "No se pudo conectar al banco" - }, - "search_bank": "Buscar banco", - "select_bank_provider": "Seleccionar el proveedor bancario", - "to_bank": "al banco" - }, - "currency_conversion": { - "amount_to_receive": "Cantidad a recibir", - "description": "Convertir la cantidad a una moneda diferente.", - "exchange_rate": "Tipo de cambio", - "fetching_rate": "Obteniendo tipo de cambio...", - "rate": "Tipo", - "success_toast": "Conversión de moneda establecida exitosamente", - "title": "Conversión de moneda" - }, - "errors": { - "currency_conversion_error": "Error al establecer la conversión de moneda", - "currency_conversion_failed": "Error al convertir monedas", - "currency_conversion_malformed": "El formato de la conversión de moneda es incorrecto", - "email_invalid": "El correo electrónico no es válido, por favor, intenta el proceso de inicio de sesión de nuevo.", - "email_required": "El correo electrónico es obligatorio", - "feedback_min_length": "Los comentarios deben tener al menos 10 caracteres", - "feedback_required": "Los comentarios son obligatorios", - "group_balances_malformed": "El formato de los datos de los saldos de grupo es incorrecto. Informe del problema o intente recalcular.", - "group_name_update_failed": "Error al actualizar el nombre del grupo", - "import_failed": "Error al importar el archivo", - "invalid_cron_expression": "Expresión \"cron\" inválida", - "invalid_currency_code": "Código de moneda inválido {{code}}", - "language_change_failed": "Error al cambiar de idioma", - "less_than": "El archivo debe ser menor que", - "name_required": "El nombre es obligatorio", - "no_providers": "Error al obtener los proveedores de autenticación. Compruebe los logs del servidor.", - "notification_not_supported": "Las notificaciones no están soportadas", - "otp_invalid": "OTP inválido", - "otp_required": "El OTP es obligatorio", - "recurrence_delete_failed": "No fue posible eliminar la recurrencia", - "recurrence_update_failed": "No fue posible actualizar la recurrencia", - "request_error": "Error al solicitar notificaciones", - "saving_expense": "Error al guardar el gasto", - "setting_update_failed": "Error al actualizar los ajustes", - "signin_error": "Error al iniciar sesión: ", - "signup_disabled": "El registro de nuevas cuentas está deshabilitado", - "something_went_wrong": "Algo salió mal", - "subscribe_error": "No se pudo suscribir a la notificación", - "unsubscribe_error": "Error al cancelar la suscripción a la notificación", - "upload_failed": "Error al subir el archivo", - "uploading_error": "Error al subir el fichero", - "valid_email": "Introduce un correo electrónico válido" - }, - "expense_details": { - "add_expense": "Añadir gasto", - "add_expense_details": { - "add_new_expense": "Añadir nuevo gasto", - "amount_placeholder": "Cantidad", - "description_placeholder": "Descripción", - "pick_a_date": "Fecha", - "select_user_or_group": { - "add_to_split_pro": "Añadir a SplitPro", - "note": "Nota: el envío de invitaciones está deshabilitado por ahora debido al spam", - "only_one_group_time": "Solo puedes tener un grupo a la vez", - "send_invite": "Enviar invitación", - "warning": "Advertencia: No uses enviar invitación si el correo electrónico no es válido. Usa añadir a SplitPro en su lugar. Tu cuenta será bloqueada si se abusa de esta función" - }, - "split_type_section": { - "split_equally": "dividir por igual", - "split_unequally": "dividir de forma desigual", - "types": { - "adjustment": { - "remaining_to_split_equally": "Dividir por igual la cantidad restante", - "title": "Ajuste" - }, - "equal": { - "per_person": "por persona", - "title": "Igual" - }, - "exact": { - "remaining": "Restante", - "title": "Exacto" - }, - "percentage": { - "remaining": "Restante", - "title": "Porcentaje" - }, - "share": { - "shares": "Cuota(s)", - "title": "Cuota", - "total_shares": "Total de cuotas" - } - } - }, - "sponsor_us": "Patrocinanos", - "upload_file": { - "messages": { - "upload_success": "Archivo subido exitosamente" - } - }, - "user_input": { - "add_more_friends": "Buscar amigos, grupos o añadir correo electrónico", - "cannot_change_group": "No se puede cambiar el grupo mientras se edita", - "remove_group": "Pulsa eliminar para quitar el grupo", - "search_friends": "Buscar amigos, grupos o añadir correo electrónico" - } - }, - "already_added": "Ya se añadió", - "balance_list": { - "are_settled_up": "están liquidados", - "is_settled_up": "está liquidado", - "press_balance_info": "Pulsa en el saldo individual para iniciar la liquidación de deuda" - }, - "bank_transactions": "Transacciones bancarias", - "clear": "Limpiar", - "delete_expense_details": { - "text": "Esta acción no se puede deshacer. Esto eliminará permanentemente tu gasto.", - "title": "¿Estás seguro?" - }, - "multiple_transactions": { - "add_all": "Añadir todas", - "add_one_by_one": "Añadir una por una", - "description": "Has seleccionado varias transacciones. Elije si quieres añadirlas usando el ajuste de división actual o si quieres ajustar cada una por separado.", - "title": "Añadir multiples transacciones" - }, - "no_transactions_yet": "Sin transacciones", - "pending": "Pendiente", - "submit_all": "Enviar todo", - "title": "Añadir gasto", - "title_mobile": "Añadir" - }, - "group_details": { - "add_members": "Añadir miembros", - "copied": "Copiado", - "create_group": { - "group_name_placeholder": "Nombre del grupo", - "title": "Crear un grupo" - }, - "group_info": { - "actions": "Acciones", - "archive_group": "Archivar grupo", - "archive_group_details": { - "can_archive": "Este grupo será archivado y ocultado de tu lista principal de grupos. Podrás acceder a él más tarde si es necesario.", - "cant_archive": "No se puede archivar el grupo con saldos pendientes. Todos los saldos deben liquidarse primero.", - "title": "¿Seguro que quieres archivar este grupo?" - }, - "archived": "Archivado", - "delete_group": "Eliminar grupo", - "delete_group_details": { - "can_delete": "Esta acción no puede deshacerse", - "cant_delete": "No se puede eliminar el grupo hasta que todos liquiden el saldo", - "title": "¿Estás seguro?" - }, - "group_created": "Grupo creado", - "leave_group": "Abandonar grupo", - "leave_group_details": { - "can_leave": "Esta acción no se puede deshacer", - "cant_leave": "No se puede abandonar el grupo hasta que tu saldo pendiente esté liquidado", - "title": "¿Estás seguro?" - }, - "members": "Miembros", - "recalculate_balances": "Recalcular saldos", - "recalculate_balances_details": { - "description": "Si los saldos no coinciden con los gastos, puedes recalculalos. Ten en cuenta que puede llevar algún tiempo si la cantidad de gastos es grande. Los saldos fuera del grupo no se verán afectados.", - "title": "¿Estás seguro?" - }, - "remove_member_details": { - "can_remove": "Estás a punto de eliminar a este miembro del grupo", - "cant_remove": "No se puede eliminar al miembro hasta que su saldo pendiente esté liquidado", - "title": "¿Estás absolutamente seguro?" - }, - "simplify_debts": "Simplificar deudas", - "title": "Información del grupo" - }, - "group_statistics": { - "first_expense": "Primer gasto", - "title": "Estadísticas del grupo", - "total_expenses": "Gastos totales" - }, - "messages": { - "balances_recalculated": "Saldos recalculados", - "group_archived": "Grupo archivado", - "group_name_updated": "Nombre del grupo actualizado" - }, - "no_members": { - "add_members": "Añadir miembros", - "add_members_details": { - "add_to_split_pro": "Añadir a SplitPro", - "note": "Nota: el envío de invitaciones está deshabilitado", - "placeholder": "Nombre o correo electrónico", - "send_invite": "Enviar invitación", - "title": "Añadir miembros", - "warning": "Advertencia: No uses enviar invitación si el correo electrónico no es válido. Usa añadir a SplitPro en su lugar. Tu cuenta será bloqueada si se abusa de esta función" - }, - "invite_link": "Invitar miembros", - "no_members": "Aún no hay miembros en el grupo." - }, - "tabs": { - "balances": "Saldos", - "expenses": "Gastos" - }, - "title": "Saldos pendientes del grupo" - }, - "invite_message": { - "in_splitpro": "en SlipPro", - "join_to": "Únete a", - "text": "Únete al grupo y podrás añadir, gestionar gastos y seguir tus saldos" - }, - "meta": { - "application_name": "SplitPro", - "description": "Divide gastos con tus amigos gratis", - "title": "SplitPro: Divide gastos con tus amigos gratis" - }, - "navigation": { - "account": "Cuenta", - "activity": "Actividad", - "add": "Añadir", - "add_expense": "Añadir Gasto", - "balances": "Saldos", - "groups": "Grupos", - "recurring": "Recurrente" - }, - "recurrence": { - "cron_expression": "Expresión \"Cron\"", - "days_of_month": "Días del Mes", - "days_of_week": "Días de la Semana", - "delete_description": "Esto detendrá futuras creaciones de gastos. Los gastos existentes creados por esta recurrencia no serán eliminados.", - "delete_title": "Eliminar Recurrencia", - "derived_delete_warning": "Este gasto es parte de una recurrencia. Solamente este gasto será eliminado. Futuros gastos recurrentes continuarán.", - "derived_edit_warning": "Este gasto es parte de una recurrencia. Cambios solo afectarán este gasto.", - "description": "Configurar recurrencia para este gasto.", - "edit_confirmation_title": "Editar Gasto Recurrente", - "edit_description": "Esto modificará la programación de futuros gastos. Los gastos existentes no serán modificados.", - "edit_title": "Editar Recurrencia", - "empty": "Sin gastos recurrentes", - "expense_for_the_amount_of": "Gasto {{name}} por la cantidad de {{amount}} {{currency}}", - "last_day": "Último día", - "months": "Meses", - "never": "Sin recurrencia", - "recurring": "Recurrente", - "schedule_type": { - "custom": "Personalizado", - "day": "Diariamente", - "month": "Mensualmente", - "never": "Nunca", - "week": "Semanalmente", - "year": "Anualmente" - }, - "template_delete_warning": "Esto es una plantilla de un gasto recurrente. Eliminarlo detendrá todos los gastos recurrentes futuros.", - "template_edit_warning": "Esto es una plantilla de un gasto recurrente. Cambios serán aplicados a todos los gastos recurrentes futuros.", - "time_of_day": "Hora del Día", - "title": "Recurrencia", - "view_recurring_page": "Ver Página de Recurrencia" - }, - "ui": { - "added_by": "Añadido por", - "and": "y", - "balance": "saldo", - "balances": "saldos", - "delete": "Eliminar", - "deleted_by": "Eliminado por", - "edited_by": "Editado por", - "expense": { - "for": "para", - "from": "de", - "paid_by": "Pagado por", - "received_by": "Recibido por", - "to": "a", - "user": { - "deleted": "eliminó", - "get": "recibe", - "lent": "prestó", - "owe": "debe", - "paid": "pagó", - "pay": "paga", - "received": "recibió" - }, - "you": { - "deleted": "eliminaste", - "get": "recibes", - "lent": "prestaste", - "owe": "debes", - "paid": "pagaste", - "pay": "pagar", - "received": "recibiste" - } - }, - "expense_details": "Detalles del gasto", - "in_group": "En grupo", - "no_activity": "Sin actividad", - "not_involved": "No involucrado", - "not_set": "No establecido", - "on": "el", - "or": "o", - "outstanding_balances": "Saldos pendientes", - "select_balance": "Seleccionar balance", - "select_currency": "Seleccionar moneda", - "settle_up_name": "Liquidar deuda", - "settled_up": "Deuda liquidada", - "settlement": "Liquidación", - "share_text": "Echa un vistazo a SplitPro. Una alternativa gratuita de código abierto a Splitwise", - "show_all_currencies": "Mostrar todas las monedas", - "today": "Hoy", - "total_balance": "Saldo total" - } -} diff --git a/public/locales/es/home.json b/public/locales/es/home.json deleted file mode 100644 index 9e541db38..000000000 --- a/public/locales/es/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Añade tus gastos más rápido al integrar tu cuenta bancaria usando GoCardless o Plaid", - "title": "Conexión con Banco" - }, - "currency_conversion": { - "description": "Conversión rápida entre diferentes monedas utilizando tipos de cambio actuales o históricos", - "title": "Conversión de divisas" - }, - "debt_simplification": { - "description": "Simplifica automáticamente las deudas grupales para reducir el número de transacciones necesarias entre amigos", - "title": "Simplificación de Deudas" - }, - "groups_and_friends": { - "description": "Puedes crear múltiples grupos o añadir saldos directamente. Todo se consolidará", - "title": "Grupos y Amigos" - }, - "i18": { - "description": "Disponible en múltiples idiomas para hacer que la división de gastos sea accesible en todo el mundo", - "title": "Internazionalización" - }, - "import_splitwise": { - "description": "No es necesario que migres los saldos manualmente. Puedes importar directamente los usuarios y grupos desde Splitwise", - "title": "Importar desde Splitwise" - }, - "multiple_currencies": { - "description": "¿Necesitas añadir un gasto con una moneda diferente para el mismo usuario? ¡No hay problema!", - "title": "Múltiples monedas" - }, - "open_source": { - "description": "Para una mejor transparencia para todos. Tus datos, tu control", - "title": "Código abierto" - }, - "push_notifications": { - "description": "Nunca te pierdas notificaciones importantes. Recibe notificaciones cuando alguien añade un gasto o liquida una deuda", - "title": "Notificaciones push" - }, - "pwa_support": { - "description": "¿Te encantan las aplicaciones móviles? Te tenemos cubierto. ¡Instálala como una PWA y ni siquiera lo notarás!", - "title": "Soporte PWA" - }, - "recurring_transactions": { - "description": "Configura gastos recurrentes automáticos para renta, suscripciones, o cualquier costo común compartido", - "title": "Transacciones Recurrentes" - }, - "title": "Características", - "unequal_split": { - "description": "Opciones avanzadas de división. Por cuotas, porcentaje o cantidades exactas.", - "title": "División Desigual" - }, - "upload_receipts": { - "description": "Subir recibos junto con el gasto", - "title": "Subir Recibos" - } - }, - "footer": { - "built_by": "Creado por" - }, - "hero": { - "add_expense_button": "Añadir Gasto", - "star_github_button": "Danos una estrella en GitHub", - "subtitle_link": "código abierto", - "subtitle_part1": "Una alternativa", - "subtitle_part2": "a Splitwise", - "title_highlight": "gratuita", - "title_part1": "Divide gastos con tus amigos" - }, - "meta": { - "description": "SplitPro: Divide gastos con tus amigos gratis", - "title": "SplitPro: Divide gastos con tus amigos gratis" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Privacidad", - "terms": "Términos y condiciones" - } -} diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json deleted file mode 100644 index b0b63553b..000000000 --- a/public/locales/fr/common.json +++ /dev/null @@ -1,447 +0,0 @@ -{ - "account": { - "change_language": "Changer de langue", - "change_language_details": { - "messages": { - "language_changed": "La langue a été changée avec succès" - }, - "no_language_found": "Aucune langue trouvée.", - "placeholder": "Choisir une langue", - "title": "Choisir une langue" - }, - "debug_info": "Info de débug", - "debug_info_details": { - "copy_failed": "Échec de la copie des infos de débug", - "description": "Collez les informations suivantes lorsque que vous faites une demande au support :", - "git": "Git", - "new_version_available": "Une nouvelle version est disponible :", - "send_test_notification": "Envoyer une notification de test", - "test_notification_failed": "Impossible d'envoyer une notification de test", - "test_notification_sent": "Notification de test envoyée", - "title": "Informations de débogage", - "user_agent": "UserAgent", - "version": "Version" - }, - "default_balance_currency": "Monnaie par défaut des soldes", - "download_app": "Télécharger l'app", - "download_app_details": { - "download_as_pwa": "Tu peux télécharger SplitPro en tant que PWA (Aplication Web Progressive) sur ton écran d'accueil.", - "title": "Télécharger l'app", - "using_android": "Pour Android, regarder cette", - "using_ios": "Pour iOS, regarder cette", - "video": "vidéo" - }, - "download_splitpro_data": "Télécharger les données de SplitPro", - "edit_name": { - "apply_avatar": "Enregistrer l'avatar", - "avatar_label": "Image de profil", - "avatar_preview": "Aperçu de l'avatar", - "placeholder": "Choisis ton pseudo", - "remove_avatar": "Supprimer l'avatar", - "select_avatar": "Choisir une image", - "title": "Modifier ton profil", - "zoom": "Zoom" - }, - "follow_on_x": "Nous suivre sur X", - "import_from_splitwise": "Importer depuis Splitwise", - "import_from_splitwise_details": { - "choose_file": "Choisir un fichier", - "export_splitwise_data_button": "Exporter les données Splitwise", - "follow_to_export_splitwise_data": "Exporter les données de Splitwise via ce lien", - "messages": { - "import_success": "L'import a bien fonctionné" - }, - "no_file_chosen": "Aucun fichier choisi", - "note": "Note : l'import ne fonctionne actuellement que pour les ami⋅es et les groupes, mais pas pour les transactions. On y travaille !" - }, - "logout": "Déconnexion", - "messages": { - "submit_error": "Une erreur est survenue lors de la mise à jour de tes infos de profil", - "submit_success": "Profil enregistré" - }, - "notifications": { - "disable_notification": "Désactiver les notifications", - "enable_notification": "Activer les notifications", - "messages": { - "notification_granted": "Les notifications sont désormais activées" - } - }, - "star_on_github": "Soutenir sur GitHub", - "submit_feedback": "Faire un feedback", - "submit_feedback_details": { - "placeholder": "Faire des retours sur l'appli", - "title": "Faire un feedback" - }, - "support_us": "Faire un don", - "title": "Compte", - "write_review": "Écrire un avis" - }, - "actions": { - "add_expense": "Nouvelle dépense", - "back": "Retour", - "cancel": "Annuler", - "close": "Fermer", - "confirm": "Confirmer", - "connect": "Se connecter", - "copy": "Copier", - "create": "Créer", - "edit_expense": "Éditer la dépense", - "export": "Exporter", - "fetch": "Récupérer", - "import": "Importer", - "invite": "Inviter", - "leave": "Quitter", - "next": "Suivant", - "reconnect": "Se reconnecter", - "save": "Enregistrer", - "settle_up": "Rembourser", - "submit": "Valider" - }, - "actors": { - "all": "Toustes", - "friends": "Ami⋅es", - "groups": "Groupes", - "members": "Membres", - "owner": "Gestionnaire", - "you": "Tu", - "you_accusativus": "Toi", - "you_dativus": "Toi" - }, - "auth": { - "continue_with": "Continuer avec {{provider}}", - "email_placeholder": "Ton adresse mail", - "no_providers_configured": "Aucun fournisseur d'authentification configuré", - "no_providers_instructions": "Veuillez configurer au moins un fournisseur d'authentification pour vous connecter. Voir les", - "otp_sent": "Nous t'avons envoyé un mail avec un code OTP. Vérifie ta boîte de réception et clique sur le lien dans le mail pour te connecter.", - "send_magic_link": "Envoyer le lien de connexion", - "sending": "Envoi en cours…", - "setup_instructions": "instructions de configuration Docker", - "trouble_logging_in": "Un problème pour te connecter ? Contact" - }, - "balances": { - "default_split": { - "cleared": "Méthode de répartition par défaut réinitialisée", - "configure": "Méthode de répartition par défaut", - "updated": "Méthode de partage par défaut mise à jour" - }, - "user_preferences": { - "title": "Préférences" - } - }, - "bank_transactions": { - "choose_bank_provider": "Choix de la banque", - "no_bank_providers_found": "Aucune banque trouvée", - "plaid": { - "bank_connected_successfully": "Banque connectée avec succès", - "bank_connection_cancelled": "La connexion avec la banque a été annulée", - "bank_connection_failed": "Échec de la connexion avec la banque" - }, - "search_bank": "Rechercher une banque", - "select_bank_provider": "Sélectionner une banque", - "to_bank": "à la banque" - }, - "currency_conversion": { - "amount_to_receive": "Montant à recevoir", - "description": "Convertir le montant vers une autre devise.", - "exchange_rate": "Taux de change", - "fetching_rate": "Récupération du taux de change…", - "rate": "Taux", - "success_toast": "La conversion monétaire a bien été enregistrée", - "title": "Conversion monétaire" - }, - "errors": { - "currency_conversion_error": "Une erreur est survenue lors de l'enregistrement de la conversion monétaire", - "currency_conversion_failed": "Échec de la conversion des devises", - "currency_conversion_malformed": "Les données de conversion de devise sont corrompues", - "email_invalid": "Cette adresse mail est invalide, merci de recommencer le processus de connexion.", - "email_required": "L'adresse mail est requise", - "feedback_min_length": "Le texte doit faire au moins 10 caractères", - "feedback_required": "Fournis des informations", - "group_balances_malformed": "Les données des soldes de groupe sont erronées, merci d'essayer de relancer leur calcul ou de reporter une erreur sinon.", - "group_name_update_failed": "Une erreur est survenue lors de la mise à jour du nom du groupe", - "image_compression_failed": "Échec de compression de l'image, tentative d'envoi de l'image originale", - "import_failed": "Une erreur est survenue lors de l'import du fichier", - "invalid_cron_expression": "Expression cron invalide", - "invalid_currency_code": "Le code de devise {{code}} est invalide", - "language_change_failed": "Le changement de langage a échoué", - "less_than": "Le poids du fichier doit être inférieur à {{size}}Mo", - "name_required": "Un nom est requis", - "no_providers": "Une erreur est survenue lors du chargement des fournisseurs d'authentification. Vérifiez les logs du backend sur le serveur.", - "notification_not_supported": "Notification non supportée", - "otp_invalid": "Code OTP invalide", - "otp_required": "Le code OTP est requis", - "recurrence_delete_failed": "Une erreur est survenue lors de la suppression de la récurrence", - "recurrence_update_failed": "Une erreur est survenue lors de la mise à jour de la récurrence", - "request_error": "Une erreur est survenue lors du chargement des notifications", - "saving_expense": "Un erreur est survenue lors de l'enregistrement de la dépense", - "setting_update_failed": "Une erreur est survenue lors de la mise à jour des paramètres", - "signin_error": "Une erreur est survenue lors de la connexion : ", - "signup_disabled": "L'inscription de nouveaux comptes est désactivée sur cette instance", - "something_went_wrong": "Une erreur est survenue", - "subscribe_error": "Une erreur est survenue lors de l'abonnement aux notifications", - "unsubscribe_error": "Une erreur est survenue lors du désabonnement des notifications", - "upload_failed": "Échec de l'envoi du fichier", - "uploading_error": "Une erreur est survenue lors de l'envoi du fichier", - "valid_email": "Entre une adresse mail valide" - }, - "expense_details": { - "add_expense": "Nouvelle dépense", - "add_expense_details": { - "add_new_expense": "Ajouter une dépense", - "amount_placeholder": "Montant", - "description_placeholder": "Description de la dépense", - "pick_a_date": "Choisir une date", - "select_user_or_group": { - "add_to_split_pro": "Inviter sur SplitPro", - "note": "Note : l'envoi de mails d'invitation est désactivé pour le moment pour éviter le spam", - "only_one_group_time": "Une dépense ne peut concerner qu'un seul groupe à la fois", - "send_invite": "Envoyer une invitation", - "warning": "Attention : N'envoyez pas d'invitation à des adresses mail non enregistrées ici, utilisez plutôt la fonction « inviter sur SplitPro ». Votre compte sera bloqué si vous utilisez mal cette fonctionnalité" - }, - "split_type_section": { - "split_equally": "partagé à parts égales", - "split_unequally": "partagé inégalement", - "types": { - "adjustment": { - "remaining_to_split_equally": "Montant partagé à parts égales :", - "title": "Ajustement manuel" - }, - "equal": { - "per_person": "par personne", - "title": "Parts égales" - }, - "exact": { - "remaining": "Montant restant", - "title": "Montants" - }, - "percentage": { - "remaining": "Pourcentage restant :", - "title": "Pourcentages" - }, - "share": { - "shares": "Part(s)", - "title": "Par parts", - "total_shares": "Nombre total de parts :" - } - } - }, - "sponsor_us": "Nous faire un don", - "upload_file": { - "messages": { - "upload_success": "Fichier envoyé avec succès" - } - }, - "user_input": { - "add_more_friends": "Rechercher des ami⋅es, des groupes ou ajouter une adresse mail", - "cannot_change_group": "Impossible de changer de groupe en cours d'édition", - "remove_group": "Presse « Retour Arrière » pour supprimer le groupe", - "search_friends": "Rechercher des ami⋅es, des groupes ou ajouter une adresse mail" - } - }, - "already_added": "Déjà ajouté⋅e", - "balance_list": { - "are_settled_up": "es quitte", - "is_settled_up": "est quitte", - "press_balance_info": "Clique sur un solde pour effectuer un règlement" - }, - "bank_transactions": "Transactions bancaires", - "clear": "Effacer", - "delete_expense_details": { - "text": "Cette action n'est pas réversible. Ceci supprimera définitivement ta dépense.", - "title": "Confirmer la suppression définitive ?" - }, - "multiple_transactions": { - "add_all": "Tout ajouter", - "add_one_by_one": "Ajuster par transaction", - "description": "Pour les transactions multiples, il est possible de les ajouter toutes d'un coup avec les paramètres de partage actuels, ou bien d'ajuster ces paramètres pour chacune des transactions.", - "title": "Ajouter des transactions multiples" - }, - "no_transactions_yet": "Aucune transaction pour l'instant", - "pending": "En attente", - "submit_all": "Tout enregistrer", - "title": "Nouvelle dépense", - "title_mobile": "Ajouter" - }, - "group_details": { - "add_members": "Ajouter des membres", - "copied": "Lien copié", - "create_group": { - "group_name_placeholder": "Nom du groupe", - "title": "Créer un groupe" - }, - "group_info": { - "actions": "Actions", - "archive_group": "Archiver le groupe", - "archive_group_details": { - "can_archive": "Ce groupe sera archivé et caché de ta liste de groupes principale. Tu pourras toujours y accéder ultérieurement si besoin.", - "cant_archive": "Impossible d'archiver le groupe tant qu'il y a des soldes en cours. Tous les soldes doivent être préalablement réglés.", - "title": "Es-tu sûr⋅e de vouloir archiver ce groupe ?" - }, - "archived": "Archivé", - "configure_default_split": "Choisir la méthode de répartition par défaut", - "default_balance_currency": "Monnaie par défaut des soldes", - "default_split": "Méthode de répartition par défaut", - "delete_group": "Supprimer le groupe", - "delete_group_details": { - "can_delete": "Cette action est irréversible", - "cant_delete": "Impossible de supprimer le groupe tant que tous les soldes ne sont pas réglés", - "title": "Confirmer la suppression définitive du groupe ?" - }, - "edit_group": "Éditer le groupe", - "group_created": "Création du groupe :", - "leave_group": "Quitter ce groupe", - "leave_group_details": { - "can_leave": "Cette action est irréversible", - "cant_leave": "Impossible de quitter le groupe tant que tes soldes avec ses membres ne sont pas réglés", - "title": "Es-tu sûr⋅e de quitter ce groupe ?" - }, - "members": "Membres", - "recalculate_balances": "Recalculer les soldes", - "recalculate_balances_details": { - "description": "Si les soldes ne correspondent pas aux dépenses, il est possible de les recalculer. Cela peut prendre un moment s'il y a beaucoup de dépenses. Les soldes en dehors de ce groupe ne seront pas affectés.", - "title": "Confirmer le re-calcul des soldes  ?" - }, - "remove_member_details": { - "can_remove": "Tu es sur le point de retirer ce⋅tte membre du groupe", - "cant_remove": "Impossible de supprimer un⋅e membre tant que leur solde en cours n'est pas réglé", - "title": "Confirmer le retrait de ce⋅tte membre du groupe ?" - }, - "simplify_debts": "Simplifier les dettes", - "title": "Informations du groupe" - }, - "group_statistics": { - "first_expense": "Première dépense", - "title": "Statistiques du groupe", - "total_expenses": "Total des dépenses" - }, - "messages": { - "balances_recalculated": "Soldes recalculés avec succès", - "default_balance_currency_cleared": "Monnaie par défaut des soldes effacée", - "default_balance_currency_updated": "Monnaie par défaut des soldes mise à jour", - "default_split_cleared": "Méthode de répartition par défaut réinitialisée", - "default_split_updated": "Méthode de répartition par défaut mise à jour", - "group_archived": "Groupe archivé avec succès", - "group_name_updated": "Paramètres de groupe mis à jour" - }, - "no_members": { - "add_members": "Ajouter des membres", - "add_members_details": { - "add_to_split_pro": "Ajouter à ce groupe", - "note": "Note : l'envoi d'invitation par mail est désactivé", - "placeholder": "Entrer un pseudo ou un mail", - "send_invite": "Envoyer une invitation", - "title": "Ajouter des membres", - "warning": "Attention : N'envoyez pas d'invitation à des adresses mail non enregistrées ici, utilisez plutôt la fonction « inviter sur SplitPro ». Votre compte sera bloqué si vous utilisez mal cette fonctionnalité" - }, - "invite_link": "Lien d'invitation", - "no_members": "Aucun⋅e membre dans ce groupe pour l'instant." - }, - "tabs": { - "balances": "Soldes", - "expenses": "Dépenses" - }, - "title": "Soldes en cours du groupe" - }, - "invite_message": { - "in_splitpro": "sur SplitPro", - "join_to": "Rejoindre", - "text": "Rejoins le groupe pour ajouter et gérer tes dépenses, et suivre tes soldes auprès des autres" - }, - "meta": { - "application_name": "SplitPro", - "description": "Partagez gratuitement vos dépenses entre ami⋅es", - "title": "SplitPro : partagez gratuitement vos dépenses entre ami⋅es" - }, - "navigation": { - "account": "Compte", - "activity": "Activité", - "add": "Ajouter", - "add_expense": "Nouvelle dépense", - "balances": "Soldes", - "groups": "Groupes", - "recurring": "Récurrences" - }, - "recurrence": { - "cron_expression": "Expression « cron »", - "days_of_month": "Jours dans le mois", - "days_of_week": "Jours de la semaine", - "delete_description": "Ceci arrêtera la création de futures dépenses sur ce modèle récurrent, mais les dépenses déjà créées seront conservées.", - "delete_title": "Supprimer la récurrence", - "derived_delete_warning": "Cette dépense fait partie d'une récurrence. Ici, uniquement cette dépense particulière sera supprimée, et les futures dépenses récurrentes de ce modèle continueront d'être créées.", - "derived_edit_warning": "Cette dépense fait partie d'une récurrence. Les modifications apportées ici n'affecteront que cette dépense en particulier.", - "description": "Définir une récurrence automatique pour cette dépense.", - "edit_confirmation_title": "Modifier la dépense récurrente", - "edit_description": "Ceci changera la programmation des futures dépenses sur ce modèle, mais les dépenses déjà créées ne seront pas modifiées.", - "edit_title": "Modifier la récurrence", - "empty": "Aucune dépense récurrente pour l'instant", - "expense_for_the_amount_of": "Dépense {{name}} pour un montant de {{amount}}{{currency}}", - "last_day": "Dernier jour", - "months": "Mois", - "never": "Aucun programme planifié", - "recurring": "Récurrente", - "schedule_type": { - "custom": "Personnalisée", - "day": "Quotidienne", - "month": "Mensuelle", - "never": "Jamais", - "week": "Hebdomadaire", - "year": "Annuelle" - }, - "template_delete_warning": "Ceci est un modèle de dépense récurrente. Sa suppression arrêtera la génération de toutes les futures dépenses récurrentes.", - "template_edit_warning": "Ceci est un modèle de dépense récurrente. Les paramètres seront appliqués à toutes les futures dépenses récurrentes.", - "time_of_day": "Heure journalière", - "title": "Récurrence", - "view_recurring_page": "Afficher cette récurrence" - }, - "ui": { - "added_by": "Ajoutée par", - "and": "et", - "balance": "solde", - "balances": "soldes", - "delete": "Supprimer", - "deleted_by": "Supprimée par", - "edited_by": "Éditée par", - "expense": { - "for": "pour", - "from": "de", - "paid_by": "Payé par", - "received_by": "Reçu par", - "to": "à", - "user": { - "deleted": "a supprimé", - "get": "reçoit", - "lent": "a avancé", - "owe": "doit", - "paid": "a payé", - "pay": "doit", - "received": "a reçu" - }, - "you": { - "deleted": "as supprimé", - "get": "reçois", - "lent": "as avancé", - "owe": "dois", - "paid": "as payé", - "pay": "dois", - "received": "as reçu" - } - }, - "expense_details": "Détails de la dépense", - "in_group": "dans le groupe", - "no_activity": "Aucune activité pour l'instant", - "not_involved": "Non concerné⋅e", - "not_set": "Non défini", - "on": "le", - "or": "ou", - "outstanding_balances": "Soldes en cours", - "select_balance": "Choix du solde", - "select_currency": "Choix de la devise", - "settle_up_name": "Régler une dette", - "settled_up": "À l'équilibre", - "settlement": "Règlement de dette", - "share_text": "Jette un œil à SplitPro : c'est une alternative open source et gratuite à Splitwise", - "show_all_currencies": "Montrer toutes les devises", - "today": "Aujourd'hui", - "total_balance": "Solde global" - } -} diff --git a/public/locales/fr/home.json b/public/locales/fr/home.json deleted file mode 100644 index d035e7d43..000000000 --- a/public/locales/fr/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Ajoute tes dépenses plus rapidement grâce à l'intégration des services inter-bancaires GoCardless et Plaid", - "title": "Connexion à ta banque" - }, - "currency_conversion": { - "description": "Convertis rapidement les dépenses entre plusieurs devises, avec le taux de change actuel ou antérieur", - "title": "Conversion monétaire" - }, - "debt_simplification": { - "description": "Simplifie automatiquement les dettes des groupes et réduis le nombre de transactions à faire entre ami⋅es.", - "title": "Simplification des dettes" - }, - "groups_and_friends": { - "description": "Tu peux créer de multiples groupes, ou simplement gérer ton solde avec les autres. Tout sera regroupé sur ton tableau de bord !", - "title": "Groupes et ami⋅es" - }, - "i18": { - "description": "L'appli est disponible dans de multiples langues pour rendre le partage des dépenses accessible partout.", - "title": "International" - }, - "import_splitwise": { - "description": "Pas besoin de d'importer manuellement tous les soldes. Tu peux importer les membres et groupes de ton Splitwise.", - "title": "Import depuis Splitwise" - }, - "multiple_currencies": { - "description": "Besoin d'ajouter des dépenses avec des devises différentes pour une même personne ? Pas de problème !", - "title": "Devises multiples" - }, - "open_source": { - "description": "Pour te garantir le contrôle sur tes données : pas de mauvaise surprise ou de fonctionnalité payante ! Et c'est facile à auto-héberger.", - "title": "Open source" - }, - "push_notifications": { - "description": "Ne rate aucune info importante. Reçois une notification quand quelqu'un ajoute une dépense ou un règlement.", - "title": "Notifications push" - }, - "pwa_support": { - "description": "Tu aimes avoir l'app sur mobile ? Pas de souci : tu peux mettre un raccourci et ça fonctionne pareil !", - "title": "App PWA (Appli Web Progressive)" - }, - "recurring_transactions": { - "description": "Enregistre des dépenses récurrentes pour tes abonnements, ton loyer ou n'importe quelle dépense régulière à partager.", - "title": "Dépenses récurrentes" - }, - "title": "Fonctionnalités", - "unequal_split": { - "description": "Des options de répartition des dépenses avancée. Par parts, pourcentages, ou montants précis, avec possibilité d'ajustement manuel.", - "title": "Répartition des sommes" - }, - "upload_receipts": { - "description": "Ajoute tes factures et notes en pièce jointe sur tes dépenses", - "title": "Mets tes factures en ligne" - } - }, - "footer": { - "built_by": "Développé par" - }, - "hero": { - "add_expense_button": "Nouvelle dépense", - "star_github_button": "Soutiens-nous sur GitHub", - "subtitle_link": "open source", - "subtitle_part1": "Une alternative", - "subtitle_part2": "à Splitwise", - "title_highlight": "gratuitement", - "title_part1": "Répartissez vos dépenses entre ami⋅es" - }, - "meta": { - "description": "SplitPro : partagez gratuitement vos dépenses entre ami⋅es", - "title": "SplitPro : partagez gratuitement vos dépenses entre ami⋅es" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Données et vie privée", - "terms": "Conditions d'utilisation" - } -} diff --git a/public/locales/he/common.json b/public/locales/he/common.json deleted file mode 100644 index 3e06f0a7c..000000000 --- a/public/locales/he/common.json +++ /dev/null @@ -1,419 +0,0 @@ -{ - "account": { - "change_language": "שנה שפה", - "change_language_details": { - "messages": { - "language_changed": "השפה שונתה בהצלחה" - }, - "placeholder": "בחר שפה", - "title": "בחר שפה" - }, - "debug_info": "", - "debug_info_details": { - "copy_failed": "", - "description": "", - "git": "", - "new_version_available": "", - "title": "", - "user_agent": "", - "version": "גרסה" - }, - "default_balance_currency": "מטבע ברירת מחדל ליתרה", - "download_app": "הורד יישומון", - "download_app_details": { - "download_as_pwa": "ניתן להוריד את ספליט-פרו בתור PWA למסך הבית שלך.", - "title": "הורד יישומון", - "using_android": "", - "using_ios": "", - "video": "" - }, - "download_splitpro_data": "", - "edit_name": { - "avatar_label": "תמונת פרופיל", - "placeholder": "הכנס שם", - "select_avatar": "בחר תמונה", - "title": "ערוך פרטים" - }, - "follow_on_x": "עקבו אחרינו ב-X", - "import_from_splitwise": "יבוא מ-Splitwise", - "import_from_splitwise_details": { - "choose_file": "בחר קובץ", - "export_splitwise_data_button": "", - "follow_to_export_splitwise_data": "", - "messages": { - "import_success": "" - }, - "no_file_chosen": "", - "note": "" - }, - "logout": "התנתקות", - "messages": { - "submit_error": "", - "submit_success": "פרטים עודכנו" - }, - "notifications": { - "disable_notification": "בטל התראה", - "enable_notification": "אפשר התראה", - "messages": { - "notification_granted": "" - } - }, - "star_on_github": "שימו לנו כוכב ב-GitHub", - "submit_feedback": "", - "submit_feedback_details": { - "placeholder": "", - "title": "" - }, - "support_us": "", - "title": "חשבון", - "write_review": "" - }, - "actions": { - "add_expense": "", - "back": "", - "cancel": "", - "close": "", - "confirm": "", - "connect": "", - "copy": "", - "create": "", - "edit_expense": "", - "export": "", - "fetch": "", - "import": "", - "invite": "", - "leave": "", - "next": "", - "reconnect": "", - "save": "", - "settle_up": "", - "submit": "" - }, - "actors": { - "all": "", - "friends": "", - "groups": "", - "members": "", - "owner": "", - "you": "", - "you_accusativus": "", - "you_dativus": "" - }, - "auth": { - "continue_with": "", - "email_placeholder": "", - "no_providers_configured": "", - "no_providers_instructions": "", - "otp_sent": "", - "send_magic_link": "", - "sending": "", - "setup_instructions": "", - "trouble_logging_in": "" - }, - "bank_transactions": { - "choose_bank_provider": "", - "no_bank_providers_found": "", - "plaid": { - "bank_connected_successfully": "", - "bank_connection_cancelled": "", - "bank_connection_failed": "" - }, - "search_bank": "", - "select_bank_provider": "", - "to_bank": "" - }, - "currency_conversion": { - "amount_to_receive": "", - "description": "", - "exchange_rate": "", - "fetching_rate": "", - "rate": "", - "success_toast": "", - "title": "" - }, - "errors": { - "currency_conversion_error": "", - "currency_conversion_failed": "", - "currency_conversion_malformed": "", - "email_invalid": "", - "email_required": "", - "feedback_min_length": "", - "feedback_required": "", - "group_balances_malformed": "", - "group_name_update_failed": "", - "import_failed": "", - "invalid_cron_expression": "", - "invalid_currency_code": "", - "language_change_failed": "", - "less_than": "", - "name_required": "", - "no_providers": "", - "notification_not_supported": "", - "otp_invalid": "", - "otp_required": "", - "recurrence_delete_failed": "", - "recurrence_update_failed": "", - "request_error": "", - "saving_expense": "", - "setting_update_failed": "", - "signin_error": "", - "signup_disabled": "", - "something_went_wrong": "", - "subscribe_error": "", - "unsubscribe_error": "", - "upload_failed": "", - "uploading_error": "", - "valid_email": "" - }, - "expense_details": { - "add_expense": "", - "add_expense_details": { - "add_new_expense": "", - "amount_placeholder": "", - "description_placeholder": "", - "pick_a_date": "", - "select_user_or_group": { - "add_to_split_pro": "", - "note": "", - "only_one_group_time": "", - "send_invite": "", - "warning": "" - }, - "split_type_section": { - "split_equally": "", - "split_unequally": "", - "types": { - "adjustment": { - "remaining_to_split_equally": "", - "title": "" - }, - "equal": { - "per_person": "", - "title": "" - }, - "exact": { - "remaining": "", - "title": "" - }, - "percentage": { - "remaining": "", - "title": "" - }, - "share": { - "shares": "", - "title": "", - "total_shares": "" - } - } - }, - "sponsor_us": "", - "upload_file": { - "messages": { - "upload_success": "" - } - }, - "user_input": { - "add_more_friends": "", - "cannot_change_group": "", - "remove_group": "", - "search_friends": "" - } - }, - "already_added": "", - "balance_list": { - "are_settled_up": "", - "is_settled_up": "", - "press_balance_info": "" - }, - "bank_transactions": "", - "clear": "", - "delete_expense_details": { - "text": "", - "title": "" - }, - "multiple_transactions": { - "add_all": "", - "add_one_by_one": "", - "description": "", - "title": "" - }, - "no_transactions_yet": "", - "pending": "", - "submit_all": "", - "title": "", - "title_mobile": "" - }, - "group_details": { - "add_members": "", - "copied": "", - "create_group": { - "group_name_placeholder": "", - "title": "" - }, - "group_info": { - "actions": "", - "archive_group": "", - "archive_group_details": { - "can_archive": "", - "cant_archive": "", - "title": "" - }, - "archived": "", - "delete_group": "", - "delete_group_details": { - "can_delete": "", - "cant_delete": "", - "title": "" - }, - "group_created": "", - "leave_group": "", - "leave_group_details": { - "can_leave": "", - "cant_leave": "", - "title": "" - }, - "members": "", - "recalculate_balances": "", - "recalculate_balances_details": { - "description": "", - "title": "" - }, - "remove_member_details": { - "can_remove": "", - "cant_remove": "", - "title": "" - }, - "simplify_debts": "", - "title": "" - }, - "group_statistics": { - "first_expense": "", - "title": "", - "total_expenses": "" - }, - "messages": { - "balances_recalculated": "", - "group_archived": "", - "group_name_updated": "" - }, - "no_members": { - "add_members": "", - "add_members_details": { - "add_to_split_pro": "", - "note": "", - "placeholder": "", - "send_invite": "", - "title": "", - "warning": "" - }, - "invite_link": "", - "no_members": "" - }, - "tabs": { - "balances": "", - "expenses": "" - }, - "title": "" - }, - "invite_message": { - "in_splitpro": "", - "join_to": "", - "text": "" - }, - "meta": { - "application_name": "", - "description": "", - "title": "" - }, - "navigation": { - "account": "", - "activity": "", - "add": "", - "add_expense": "", - "balances": "", - "groups": "", - "recurring": "" - }, - "recurrence": { - "cron_expression": "", - "days_of_month": "", - "days_of_week": "", - "delete_description": "", - "delete_title": "", - "derived_delete_warning": "", - "derived_edit_warning": "", - "description": "", - "edit_confirmation_title": "", - "edit_description": "", - "edit_title": "", - "empty": "", - "expense_for_the_amount_of": "", - "last_day": "", - "months": "", - "never": "", - "recurring": "", - "schedule_type": { - "custom": "", - "day": "", - "month": "", - "never": "", - "week": "", - "year": "" - }, - "template_delete_warning": "", - "template_edit_warning": "", - "time_of_day": "", - "title": "", - "view_recurring_page": "" - }, - "ui": { - "added_by": "", - "and": "", - "balance": "", - "balances": "", - "delete": "", - "deleted_by": "", - "edited_by": "", - "expense": { - "for": "", - "from": "", - "paid_by": "", - "received_by": "", - "to": "", - "user": { - "deleted": "", - "get": "", - "lent": "", - "owe": "", - "paid": "", - "pay": "", - "received": "" - }, - "you": { - "deleted": "", - "get": "", - "lent": "", - "owe": "", - "paid": "", - "pay": "", - "received": "" - } - }, - "expense_details": "", - "in_group": "", - "no_activity": "", - "not_involved": "", - "not_set": "לא מוגדר", - "on": "", - "or": "", - "outstanding_balances": "", - "select_balance": "", - "settle_up_name": "", - "settled_up": "", - "settlement": "", - "share_text": "", - "show_all_currencies": "", - "today": "", - "total_balance": "" - } -} diff --git a/public/locales/he/home.json b/public/locales/he/home.json deleted file mode 100644 index 6b73d9ef4..000000000 --- a/public/locales/he/home.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "", - "title": "" - }, - "currency_conversion": { - "description": "", - "title": "" - }, - "debt_simplification": { - "description": "", - "title": "" - }, - "groups_and_friends": { - "description": "", - "title": "" - }, - "i18": { - "description": "", - "title": "" - }, - "import_splitwise": { - "description": "", - "title": "" - }, - "multiple_currencies": { - "description": "", - "title": "" - }, - "open_source": { - "description": "", - "title": "" - }, - "push_notifications": { - "description": "", - "title": "" - }, - "pwa_support": { - "description": "", - "title": "" - }, - "title": "", - "unequal_split": { - "description": "", - "title": "" - }, - "upload_receipts": { - "description": "", - "title": "" - } - }, - "footer": { - "built_by": "" - }, - "hero": { - "add_expense_button": "", - "star_github_button": "", - "subtitle_link": "", - "subtitle_part1": "", - "subtitle_part2": "", - "title_highlight": "", - "title_part1": "" - }, - "meta": { - "description": "", - "title": "" - }, - "nav": { - "app_name": "", - "privacy": "", - "terms": "" - } -} diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json deleted file mode 100644 index 535f973be..000000000 --- a/public/locales/hi/common.json +++ /dev/null @@ -1,416 +0,0 @@ -{ - "account": { - "change_language": "", - "change_language_details": { - "messages": { - "language_changed": "" - }, - "placeholder": "", - "title": "" - }, - "debug_info": "", - "debug_info_details": { - "copy_failed": "", - "description": "", - "git": "", - "new_version_available": "", - "title": "", - "user_agent": "", - "version": "" - }, - "download_app": "", - "download_app_details": { - "download_as_pwa": "", - "title": "", - "using_android": "", - "using_ios": "", - "video": "" - }, - "download_splitpro_data": "", - "edit_name": { - "placeholder": "", - "title": "" - }, - "follow_on_x": "", - "import_from_splitwise": "", - "import_from_splitwise_details": { - "choose_file": "", - "export_splitwise_data_button": "", - "follow_to_export_splitwise_data": "", - "messages": { - "import_success": "" - }, - "no_file_chosen": "", - "note": "" - }, - "logout": "", - "messages": { - "submit_error": "", - "submit_success": "" - }, - "notifications": { - "disable_notification": "", - "enable_notification": "", - "messages": { - "notification_granted": "" - } - }, - "star_on_github": "", - "submit_feedback": "", - "submit_feedback_details": { - "placeholder": "", - "title": "" - }, - "support_us": "", - "title": "", - "write_review": "" - }, - "actions": { - "add_expense": "", - "back": "", - "cancel": "", - "close": "", - "confirm": "", - "connect": "", - "copy": "", - "create": "", - "edit_expense": "", - "export": "", - "fetch": "", - "import": "", - "invite": "", - "leave": "", - "next": "", - "reconnect": "", - "save": "", - "settle_up": "", - "submit": "" - }, - "actors": { - "all": "", - "friends": "", - "groups": "", - "members": "", - "owner": "", - "you": "", - "you_accusativus": "", - "you_dativus": "" - }, - "auth": { - "continue_with": "", - "email_placeholder": "", - "no_providers_configured": "", - "no_providers_instructions": "", - "otp_sent": "", - "send_magic_link": "", - "sending": "", - "setup_instructions": "", - "trouble_logging_in": "" - }, - "bank_transactions": { - "choose_bank_provider": "", - "no_bank_providers_found": "", - "plaid": { - "bank_connected_successfully": "", - "bank_connection_cancelled": "", - "bank_connection_failed": "" - }, - "search_bank": "", - "select_bank_provider": "", - "to_bank": "" - }, - "currency_conversion": { - "amount_to_receive": "", - "description": "", - "exchange_rate": "", - "fetching_rate": "", - "rate": "", - "success_toast": "", - "title": "" - }, - "errors": { - "currency_conversion_error": "", - "currency_conversion_failed": "", - "currency_conversion_malformed": "", - "email_invalid": "", - "email_required": "", - "feedback_min_length": "", - "feedback_required": "", - "group_balances_malformed": "", - "group_name_update_failed": "", - "import_failed": "", - "invalid_cron_expression": "", - "invalid_currency_code": "", - "language_change_failed": "", - "less_than": "", - "name_required": "", - "no_providers": "", - "notification_not_supported": "", - "otp_invalid": "", - "otp_required": "", - "recurrence_delete_failed": "", - "recurrence_update_failed": "", - "request_error": "", - "saving_expense": "", - "setting_update_failed": "", - "signin_error": "", - "signup_disabled": "", - "something_went_wrong": "", - "subscribe_error": "", - "unsubscribe_error": "", - "upload_failed": "", - "uploading_error": "", - "valid_email": "" - }, - "expense_details": { - "add_expense": "", - "add_expense_details": { - "add_new_expense": "", - "amount_placeholder": "", - "description_placeholder": "", - "pick_a_date": "", - "select_user_or_group": { - "add_to_split_pro": "", - "note": "", - "only_one_group_time": "", - "send_invite": "", - "warning": "" - }, - "split_type_section": { - "split_equally": "", - "split_unequally": "", - "types": { - "adjustment": { - "remaining_to_split_equally": "", - "title": "" - }, - "equal": { - "per_person": "", - "title": "" - }, - "exact": { - "remaining": "", - "title": "" - }, - "percentage": { - "remaining": "", - "title": "" - }, - "share": { - "shares": "", - "title": "", - "total_shares": "" - } - } - }, - "sponsor_us": "", - "upload_file": { - "messages": { - "upload_success": "" - } - }, - "user_input": { - "add_more_friends": "", - "cannot_change_group": "", - "remove_group": "", - "search_friends": "" - } - }, - "already_added": "", - "balance_list": { - "are_settled_up": "", - "is_settled_up": "", - "press_balance_info": "" - }, - "bank_transactions": "", - "clear": "", - "delete_expense_details": { - "text": "", - "title": "" - }, - "multiple_transactions": { - "add_all": "", - "add_one_by_one": "", - "description": "", - "title": "" - }, - "no_transactions_yet": "", - "pending": "", - "submit_all": "", - "title": "", - "title_mobile": "" - }, - "group_details": { - "add_members": "", - "copied": "", - "create_group": { - "group_name_placeholder": "", - "title": "" - }, - "group_info": { - "actions": "", - "archive_group": "", - "archive_group_details": { - "can_archive": "", - "cant_archive": "", - "title": "" - }, - "archived": "", - "delete_group": "", - "delete_group_details": { - "can_delete": "", - "cant_delete": "", - "title": "" - }, - "group_created": "", - "leave_group": "", - "leave_group_details": { - "can_leave": "", - "cant_leave": "", - "title": "" - }, - "members": "", - "recalculate_balances": "", - "recalculate_balances_details": { - "description": "", - "title": "" - }, - "remove_member_details": { - "can_remove": "", - "cant_remove": "", - "title": "" - }, - "simplify_debts": "", - "title": "" - }, - "group_statistics": { - "first_expense": "", - "title": "", - "total_expenses": "" - }, - "messages": { - "balances_recalculated": "", - "group_archived": "", - "group_name_updated": "" - }, - "no_members": { - "add_members": "", - "add_members_details": { - "add_to_split_pro": "", - "note": "", - "placeholder": "", - "send_invite": "", - "title": "", - "warning": "" - }, - "invite_link": "", - "no_members": "" - }, - "tabs": { - "balances": "", - "expenses": "" - }, - "title": "" - }, - "invite_message": { - "in_splitpro": "", - "join_to": "", - "text": "" - }, - "meta": { - "application_name": "", - "description": "", - "title": "" - }, - "navigation": { - "account": "", - "activity": "", - "add": "", - "add_expense": "", - "balances": "", - "groups": "", - "recurring": "" - }, - "recurrence": { - "cron_expression": "", - "days_of_month": "", - "days_of_week": "", - "delete_description": "", - "delete_title": "", - "derived_delete_warning": "", - "derived_edit_warning": "", - "description": "", - "edit_confirmation_title": "", - "edit_description": "", - "edit_title": "", - "empty": "", - "expense_for_the_amount_of": "", - "last_day": "", - "months": "", - "never": "", - "recurring": "", - "schedule_type": { - "custom": "", - "day": "", - "month": "", - "never": "", - "week": "", - "year": "" - }, - "template_delete_warning": "", - "template_edit_warning": "", - "time_of_day": "", - "title": "", - "view_recurring_page": "" - }, - "ui": { - "added_by": "", - "and": "", - "balance": "", - "balances": "", - "delete": "", - "deleted_by": "", - "edited_by": "", - "expense": { - "for": "", - "from": "", - "paid_by": "", - "received_by": "", - "to": "", - "user": { - "deleted": "", - "get": "", - "lent": "", - "owe": "", - "paid": "", - "pay": "", - "received": "" - }, - "you": { - "deleted": "", - "get": "", - "lent": "", - "owe": "", - "paid": "", - "pay": "", - "received": "" - } - }, - "expense_details": "", - "in_group": "", - "no_activity": "", - "not_involved": "", - "not_set": "सेट नहीं", - "on": "", - "or": "", - "outstanding_balances": "", - "select_balance": "", - "settle_up_name": "", - "settled_up": "", - "settlement": "", - "share_text": "", - "show_all_currencies": "", - "today": "", - "total_balance": "" - } -} diff --git a/public/locales/hi/home.json b/public/locales/hi/home.json deleted file mode 100644 index 6b73d9ef4..000000000 --- a/public/locales/hi/home.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "", - "title": "" - }, - "currency_conversion": { - "description": "", - "title": "" - }, - "debt_simplification": { - "description": "", - "title": "" - }, - "groups_and_friends": { - "description": "", - "title": "" - }, - "i18": { - "description": "", - "title": "" - }, - "import_splitwise": { - "description": "", - "title": "" - }, - "multiple_currencies": { - "description": "", - "title": "" - }, - "open_source": { - "description": "", - "title": "" - }, - "push_notifications": { - "description": "", - "title": "" - }, - "pwa_support": { - "description": "", - "title": "" - }, - "title": "", - "unequal_split": { - "description": "", - "title": "" - }, - "upload_receipts": { - "description": "", - "title": "" - } - }, - "footer": { - "built_by": "" - }, - "hero": { - "add_expense_button": "", - "star_github_button": "", - "subtitle_link": "", - "subtitle_part1": "", - "subtitle_part2": "", - "title_highlight": "", - "title_part1": "" - }, - "meta": { - "description": "", - "title": "" - }, - "nav": { - "app_name": "", - "privacy": "", - "terms": "" - } -} diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json deleted file mode 100644 index 4613f3a1e..000000000 --- a/public/locales/hu/common.json +++ /dev/null @@ -1,454 +0,0 @@ -{ - "account": { - "change_language": "Nyelv módosítása", - "change_language_details": { - "messages": { - "language_changed": "A nyelv sikeresen megváltoztatva" - }, - "no_language_found": "Nem található nyelv.", - "placeholder": "Válassz nyelvet", - "title": "Válassz nyelvet" - }, - "debug_info": "Hibakeresési infó", - "debug_info_details": { - "copy_failed": "Nem sikerült a hibakeresési információkat a vágólapra másolni", - "description": "Illesszd be az alábbi információkat a támogatási kérelem létrehozásakor:", - "git": "Git", - "new_version_available": "Új verzió érhető el:", - "send_test_notification": "Tesztértesítés küldése", - "test_notification_failed": "Nem sikerült elküldeni a tesztértesítést", - "test_notification_sent": "Tesztértesítés elküldve", - "title": "Hibakeresési információ", - "user_agent": "Felhasználói ügynök", - "version": "Verzió" - }, - "default_balance_currency": "Egyenleg alapértelmezett pénzneme", - "download_app": "Alkalmazás letöltése", - "download_app_details": { - "download_as_pwa": "A SplitPro-t PWA-ként letöltheted a kezdőképernyődre.", - "title": "Alkalmazás letöltése", - "using_android": "Ha Androidot használsz, nézd meg ezt", - "using_ios": "Ha iOS-t használsz, nézd meg ezt", - "video": "videó" - }, - "download_splitpro_data": "SplitPro adatok letöltése", - "edit_name": { - "apply_avatar": "Avatar alkalmazása", - "avatar_label": "Profilkép", - "avatar_preview": "Avatar előnézete", - "placeholder": "Írd be a neved", - "remove_avatar": "Avatar eltávolítása", - "select_avatar": "Kép kiválasztása", - "title": "Részletek szerkesztése", - "zoom": "Közelítés" - }, - "follow_on_x": "Kövess minket az X-en", - "import_from_splitwise": "Importálás a Splitwise-ból", - "import_from_splitwise_details": { - "choose_file": "Fájl kiválasztása", - "export_splitwise_data_button": "Splitwise adatok exportálása", - "follow_to_export_splitwise_data": "Kövesd ezt a linket a Splitwise adatok exportálásához", - "messages": { - "import_success": "Importálás sikeres" - }, - "no_file_chosen": "Nincs kiválasztott fájl", - "note": "Megjegyzés: Jelenleg csak a barátok és csoportok importálását támogatja. Tranzakciókat nem fog importálni. Dolgozunk rajta." - }, - "logout": "Kijelentkezés", - "messages": { - "submit_error": "Nem sikerült frissíteni a részleteket", - "submit_success": "Részletek frissítve" - }, - "notifications": { - "disable_notification": "Értesítések letiltása", - "enable_notification": "Értesítések engedélyezése", - "messages": { - "notification_granted": "Mostantól értesítéseket fogsz kapni" - } - }, - "star_on_github": "Adj csillagot a GitHubon", - "submit_feedback": "Visszajelzés küldése", - "submit_feedback_details": { - "placeholder": "Írd be a visszajelzésed", - "title": "Visszajelzés küldése" - }, - "support_us": "Támogass minket", - "title": "Fiók", - "write_review": "Írj véleményt" - }, - "actions": { - "add_expense": "Költség hozzáadása", - "back": "Vissza", - "cancel": "Mégsem", - "close": "Bezárás", - "confirm": "Megerősítés", - "connect": "Csatlakozás", - "copy": "Másolás", - "create": "Létrehozás", - "edit_expense": "Költség szerkesztése", - "export": "Exportálás", - "fetch": "Lehívás", - "import": "Importálás", - "invite": "Meghívás", - "leave": "Kilépés", - "next": "Következő", - "reconnect": "Újracsatlakozás", - "save": "Mentés", - "settle_up": "Kiegyenlítés", - "submit": "Küldés" - }, - "actors": { - "all": "Mind", - "friends": "Barátok", - "groups": "Csoportok", - "members": "Tagok", - "owner": "Tulajdonos", - "you": "Te", - "you_accusativus": "Téged", - "you_dativus": "Neked" - }, - "auth": { - "continue_with": "Folytatás ezzel: {{provider}}", - "email_placeholder": "Add meg az e-mail címed", - "no_providers_configured": "Nincsenek konfigurált hitelesítési szolgáltatók", - "no_providers_instructions": "Kérjük, konfigurálj legalább egy hitelesítési szolgáltatót a bejelentkezéshez. Lásd a", - "otp_sent": "Elküldtünk egy e-mailt az OTP-vel. Kérjük, ellenőrizd a beérkező leveleidet, és kattints az e-mailben található linkre a bejelentkezéshez.", - "send_magic_link": "Magic Link küldése", - "sending": "Küldés...", - "setup_instructions": "Docker beállítási utasítások", - "trouble_logging_in": "Problémád van a bejelentkezéssel? Lépj kapcsolatba" - }, - "balances": { - "default_split": { - "cleared": "Alapértelmezett felosztás törölve", - "configure": "Alapértelmezett felosztás", - "updated": "Alapértelmezett felosztás frissítve" - }, - "user_preferences": { - "title": "Beállítások" - } - }, - "bank_transactions": { - "choose_bank_provider": "Válassz banki szolgáltatót", - "no_bank_providers_found": "Nem található banki szolgáltató", - "plaid": { - "bank_connected_successfully": "Bank sikeresen összekapcsolva", - "bank_connection_cancelled": "Banki kapcsolat megszakítva", - "bank_connection_failed": "Nem sikerült csatlakozni a bankhoz" - }, - "search_bank": "Bank keresése", - "select_bank_provider": "Banki szolgáltató kiválasztása", - "to_bank": "bankba" - }, - "currency_conversion": { - "amount_to_receive": "Esedékes összeg", - "description": "Váltsd át az összeget egy másik pénznemre.", - "exchange_rate": "Átváltási árfolyam", - "fetching_rate": "Árfolyam lekérése...", - "rate": "Valutaárfolyam", - "success_toast": "A pénznemváltás sikeresen beállítva", - "title": "Pénznemváltás" - }, - "errors": { - "currency_conversion_error": "Hiba a pénznemátváltás beállításakor", - "currency_conversion_failed": "Nem sikerült átváltani a pénznemet", - "currency_conversion_malformed": "A pénznemátváltási adatok hibásak", - "email_invalid": "Az e-mail cím érvénytelen, kérjük, próbáld újra a bejelentkezési folyamatot.", - "email_required": "E-mail cím megadása kötelező", - "feedback_min_length": "A visszajelzésnek legalább 10 karakterből kell állnia", - "feedback_required": "Visszajelzés szükséges", - "group_balances_malformed": "A csoportegyenlegek adatai hibásak, kérjük, jelentsd a problémát, vagy próbáld meg az újraszámolást.", - "group_name_update_failed": "Hiba a csoport nevének frissítésekor", - "image_compression_failed": "A képtömörítés sikertelen, eredeti fájl feltöltése", - "import_failed": "Hiba a fájl importálása során", - "invalid_cron_expression": "Érvénytelen cron kifejezés", - "invalid_currency_code": "Érvénytelen pénznemkód {{code}}", - "invalid_split": "Mentés előtt állítsd be, hogy ki tartozik ezzel a költséggel.", - "language_change_failed": "Hiba a nyelv módosításakor", - "less_than": "A fájl mérete nem haladhatja meg a {{size}} MB-ot", - "name_required": "Név megadása kötelező", - "no_providers": "Hiba történt a hitelesítési szolgáltatók lekérésekor. Kérjük, ellenőrizd a háttérnaplókat.", - "notification_not_supported": "Az értesítések nem támogatottak", - "otp_invalid": "Érvénytelen OTP", - "otp_required": "OTP megadása kötelező", - "recurrence_delete_failed": "Nem sikerült törölni az ismétlődést", - "recurrence_update_failed": "Nem sikerült frissíteni az ismétlődést", - "request_error": "Hiba az értesítés kérése során", - "saving_expense": "Hiba a költség mentése közben", - "setting_update_failed": "Nem sikerült frissíteni a beállítást", - "signin_error": "Hiba történt bejelentkezés közben: ", - "signup_disabled": "Új fiókok regisztrációja ebben az esetben le van tiltva", - "something_went_wrong": "Valami hiba történt", - "subscribe_error": "Nem lehet feliratkozni az értesítésekre", - "unsubscribe_error": "Hiba az értesítésekről történő leiratkozáskor", - "upload_failed": "Nem sikerült feltölteni a fájlt", - "uploading_error": "Nem sikerült feltölteni a fájlt", - "valid_email": "Adj meg érvényes e-mail címet" - }, - "expense_details": { - "add_expense": "Költség hozzáadása", - "add_expense_details": { - "add_new_expense": "Új költség hozzáadása", - "amount_placeholder": "Add meg az összeget", - "description_placeholder": "Írd be a leírást", - "pick_a_date": "Válassz egy dátumot", - "select_user_or_group": { - "add_to_split_pro": "Hozzáadás a SplitPro-hoz", - "note": "Megjegyzés: a meghívó küldése jelenleg le van tiltva a spam miatt", - "only_one_group_time": "Egyszerre csak egy csoportod lehet", - "send_invite": "Meghívó küldése felhasználónak", - "warning": "Figyelmeztetés: Ne használd a „meghívó küldése” funkciót, ha érvénytelen az e-mail cím. Helyette használd a „hozzáadás a SplitPro-hoz” funkciót. Fiókod blokkolásra kerül, ha ezt a funkciót nem rendeltetésszerűen használod" - }, - "split_type_section": { - "direction": { - "no_money_flow": "Senki sem tartozik semmivel", - "owes_payer": "{{debtor}} tartozik neki: {{payer}}", - "owes_you": "{{debtor}} tartozik neked", - "you_owe": "Te tartozol neki: {{payer}}" - }, - "split_equally": "egyenlően elosztva", - "split_unequally": "egyenlőtlenül oszlik meg", - "types": { - "adjustment": { - "remaining_to_split_equally": "Maradék, ami egyenlően oszlik meg", - "title": "Beállítás" - }, - "equal": { - "per_person": "személyenként", - "title": "Egyenlő" - }, - "exact": { - "remaining": "Maradék", - "title": "Pontos" - }, - "percentage": { - "remaining": "Maradék", - "title": "Százalék" - }, - "share": { - "shares": "Rész(ek)", - "title": "Rész", - "total_shares": "Összes rész" - } - } - }, - "sponsor_us": "Támogass minket", - "upload_file": { - "messages": { - "upload_success": "Fájl sikeresen feltöltve" - } - }, - "user_input": { - "add_more_friends": "Barátok, csoportok keresése vagy e-mail cím hozzáadása", - "cannot_change_group": "Szerkesztés közben nem lehet csoportot váltani", - "remove_group": "A csoport eltávolításához nyomd meg a törlés gombot", - "search_friends": "Barátok, csoportok keresése vagy e-mail cím hozzáadása" - } - }, - "already_added": "Már hozzáadva", - "balance_list": { - "are_settled_up": "kiegyenlítve", - "is_settled_up": "kiegyenlítve", - "press_balance_info": "Nyomj az egyéni egyenlegre az elszámolás indításához" - }, - "bank_transactions": "Banki tranzakciók", - "clear": "Kiürítés", - "delete_expense_details": { - "text": "Ez a művelet nem vonható vissza. Ezzel véglegesen törlöd a költséget.", - "title": "Teljesen biztos vagy benne?" - }, - "multiple_transactions": { - "add_all": "Összes hozzáadása", - "add_one_by_one": "Hozzáadás egyenként", - "description": "Több tranzakciót választottál ki. Válaszd ki, hogy az aktuális felosztási beállításokkal együtt szeretnéd-e hozzáadni őket, vagy egyenként módosítsd a beállításokat.", - "title": "Több tranzakció hozzáadása" - }, - "no_transactions_yet": "Még nincsenek tranzakciók", - "pending": "Függőben", - "submit_all": "Összes beküldése", - "title": "Költség hozzáadása", - "title_mobile": "Hozzáadás" - }, - "group_details": { - "add_members": "Tagok hozzáadása", - "copied": "Másolva", - "create_group": { - "group_name_placeholder": "Csoport neve", - "title": "Csoport létrehozása" - }, - "group_info": { - "actions": "Műveletek", - "archive_group": "Csoport archiválása", - "archive_group_details": { - "can_archive": "Ez a csoport archiválva lesz, és rejtve lesz a fő csoportok listájából. Szükség esetén később is hozzáférhetsz.", - "cant_archive": "Nem lehet archiválni a kiegyenlítetlen tartozással rendelkező csoportot. Előbb minden egyenleget rendezni kell.", - "title": "Biztosan archiválni szeretnéd ezt a csoportot?" - }, - "archived": "Archiválva", - "configure_default_split": "Alapértelmezett felosztás konfigurálása", - "default_balance_currency": "Egyenleg alapértelmezett pénzneme", - "default_split": "Alapértelmezett felosztás", - "delete_group": "Csoport törlése", - "delete_group_details": { - "can_delete": "Ez a művelet nem vonható vissza", - "cant_delete": "A csoportot nem lehet törölni, amíg van kiegyenlítetlen tartozás", - "title": "Teljesen biztos vagy benne?" - }, - "edit_group": "Csoport szerkesztése", - "group_created": "Csoport létrehozva", - "leave_group": "Kilépés a csoportból", - "leave_group_details": { - "can_leave": "Ez a művelet nem vonható vissza", - "cant_leave": "Nem hagyhatod el a csoportot, amíg a fennálló tartozást ki nem egyenlítetted", - "title": "Teljesen biztos vagy benne?" - }, - "members": "Tagok", - "recalculate_balances": "Egyenlegek újraszámítása", - "recalculate_balances_details": { - "description": "Ha az egyenlegek nem egyeznek meg a kiadásokkal, újraszámolhatod őket. Vedd figyelembe, hogy ez eltarthat egy ideig, ha a kiadások száma nagy. A csoporton kívüli egyenlegeket ez nem érinti.", - "title": "Biztos vagy benne?" - }, - "remove_member_details": { - "can_remove": "Arra készülsz, hogy eltávolítsd ezt a tagot a csoportból", - "cant_remove": "Nem lehet eltávolítani a tagot, amíg a fennálló tartozását ki nem egyenlítette", - "title": "Teljesen biztos vagy benne?" - }, - "simplify_debts": "Adósságok egyszerűsítése", - "title": "Csoportinformációk" - }, - "group_statistics": { - "first_expense": "Első kiadás", - "title": "Csoportstatisztikák", - "total_expenses": "Összes költség" - }, - "messages": { - "balances_recalculated": "Az egyenlegek újraszámítása sikeresen megtörtént", - "default_balance_currency_cleared": "Egyenleg alapértelmezett pénzneme törölve", - "default_balance_currency_updated": "Egyenleg alapértelmezett pénzneme frissítve", - "default_split_cleared": "Alapértelmezett felosztás törölve", - "default_split_updated": "Alapértelmezett felosztás frissítve", - "group_archived": "Csoport sikeresen archiválva", - "group_name_updated": "Csoport adatok frissítve" - }, - "no_members": { - "add_members": "Tagok hozzáadása", - "add_members_details": { - "add_to_split_pro": "Hozzáadás a SplitPro-hoz", - "note": "Megjegyzés: az e-mail meghívók küldése le van tiltva", - "placeholder": "Írd be a neved vagy az e-mail címed", - "send_invite": "Meghívó küldése felhasználónak", - "title": "Tagok hozzáadása", - "warning": "Figyelmeztetés: Ne használd a „meghívó küldése” funkciót, ha érvénytelen az e-mail cím. Helyette használd a „hozzáadás a SplitPro-hoz” funkciót. Fiókod blokkolásra kerül, ha ezt a funkciót nem rendeltetésszerűen használod" - }, - "invite_link": "Meghívólink", - "no_members": "Még nincsenek tagok a csoportban." - }, - "tabs": { - "balances": "Egyenlegek", - "expenses": "Költségek" - }, - "title": "Csoportszintű kintlévőségek" - }, - "invite_message": { - "in_splitpro": "a SplitPro-ban", - "join_to": "Csatlakozás", - "text": "Csatlakozz a csoporthoz, és hozzáadhatsz, kezelhetsz kiadásokat és nyomon követheted az egyenlegeidet" - }, - "meta": { - "application_name": "SplitPro", - "description": "Oszd meg költségeidet a barátaiddal ingyen", - "title": "SplitPro: Oszd meg költségeidet a barátaiddal ingyen" - }, - "navigation": { - "account": "Fiók", - "activity": "Tevékenység", - "add": "Hozzáadás", - "add_expense": "Költség hozzáadása", - "balances": "Egyenlegek", - "groups": "Csoportok", - "recurring": "Ismétlés" - }, - "recurrence": { - "cron_expression": "Cron kifejezés", - "days_of_month": "A hónap napjai", - "days_of_week": "A hét napjai", - "delete_description": "Ez leállítja a jövőbeli költségek létrehozását. Az ismétlődés által létrehozott meglévő költségek nem törlődnek.", - "delete_title": "Ismétlődés törlése", - "derived_delete_warning": "Ez a kiadás egy ismétlődő költség része. Csak ez a kiadás kerül törlésre. A jövőbeni ismétlődő költségek továbbra is fennállnak.", - "derived_edit_warning": "Ez a kiadás egy ismétlődő költség része. A változtatások csak ezt a költséget érintik.", - "description": "Állíts be automatikus ismétlődést ehhez a költséghez.", - "edit_confirmation_title": "Ismétlődő költség szerkesztése", - "edit_description": "Ez megváltoztatja a jövőbeli kiadások ütemezését. A meglévő kiadások nem módosulnak.", - "edit_title": "Ismétlődés szerkesztése", - "empty": "Még nincsenek ismétlődő költségek", - "expense_for_the_amount_of": "{{name}} kiadás {{amount}} {{currency}} összegben", - "last_day": "Utolsó nap", - "months": "Hónapok", - "never": "Nincs konfigurálva ütemezés", - "recurring": "Ismétlés", - "schedule_type": { - "custom": "Egyedi", - "day": "Naponta", - "month": "Havonta", - "never": "Soha", - "week": "Hetente", - "year": "Évente" - }, - "template_delete_warning": "Ez egy ismétlődő költségsablon. A törlése leállítja az összes jövőbeni ismétlődő költséget.", - "template_edit_warning": "Ez egy ismétlődő költségsablon. A változtatások minden jövőbeli ismétlődő költségre vonatkoznak.", - "time_of_day": "Napszak", - "title": "Ismétlődés", - "view_recurring_page": "Ismétlés oldal megtekintése" - }, - "ui": { - "added_by": "Hozzáadta", - "and": "és", - "balance": "egyenleg", - "balances": "egyenlegek", - "delete": "Törlés", - "deleted_by": "Törölte", - "edited_by": "Szerkesztette", - "expense": { - "for": "itt", - "from": "tőle", - "paid_by": "Fizette", - "received_by": "Megkapta", - "to": "neki", - "user": { - "deleted": "törölte", - "get": "kap", - "lent": "adott", - "owe": "tartozik", - "paid": "fizetett", - "pay": "fizet", - "received": "kapott" - }, - "you": { - "deleted": "törölted", - "get": "kapsz", - "lent": "adtál", - "owe": "tartozol", - "paid": "fizettél", - "pay": "fizetsz", - "received": "kaptál" - } - }, - "expense_details": "Költségadatok", - "in_group": "Csoportban", - "no_activity": "Még nincsenek tevékenységek", - "not_involved": "Nem vesz részt", - "not_set": "Nincs beállítva", - "on": "ekkor", - "or": "vagy", - "outstanding_balances": "Kiegyenlítetlen egyenlegek", - "select_balance": "Válassz egyenleget", - "select_currency": "Válassz pénznemet", - "settle_up_name": "Kiegyenlítés", - "settled_up": "Kiegyenlítve", - "settlement": "Elszámolás", - "share_text": "Nézd meg a SplitPro-t. Ez egy nyílt forráskódú, ingyenes alternatívája a Splitwise-nak", - "show_all_currencies": "Összes pénznem megjelenítése", - "today": "Ma", - "total_balance": "Összes egyenleg" - } -} diff --git a/public/locales/hu/home.json b/public/locales/hu/home.json deleted file mode 100644 index a2a44f8e8..000000000 --- a/public/locales/hu/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Gyorsabban hozzáadhatsz költségeket a GoCardless vagy a Plaid bankszámla-tranzakciók API-jához való integrációval", - "title": "Banki kapcsolat" - }, - "currency_conversion": { - "description": "Gyorsan válthatsz különböző pénznemek között naprakész vagy korábbi árfolyamok segítségével", - "title": "Pénznem átváltása" - }, - "debt_simplification": { - "description": "Csoport adósságainak automatikus egyszerűsítése a barátok közötti tranzakciók számának csökkentése érdekében", - "title": "Adósság egyszerűsítése" - }, - "groups_and_friends": { - "description": "Több csoportot is létrehozhatsz, vagy közvetlenül hozzáadhatod az egyenleget. Minden összevonásra kerül", - "title": "Csoportok és barátok" - }, - "i18": { - "description": "Több nyelven is elérhető, így a költségmegosztás világszerte elérhető", - "title": "Nemzetközivé válás" - }, - "import_splitwise": { - "description": "Nem kell manuálisan migrálni az egyenlegeket. Importálhatsz felhasználókat és csoportokat a Splitwise-ból", - "title": "Importálás a Splitwise-ból" - }, - "multiple_currencies": { - "description": "Különböző pénznemben kell hozzáadni a költséget ugyanahhoz a felhasználóhoz? Nem probléma!", - "title": "Több pénznem" - }, - "open_source": { - "description": "Ami megnehezíti a gonosszá válást. Könnyen telepíthető saját szerverre", - "title": "Nyílt forráskódú" - }, - "push_notifications": { - "description": "Soha ne maradj le a fontos értesítésekről. Értesítést kapsz, ha valaki hozzáad egy költséget vagy kiegyenlíti a tartozását", - "title": "Push értesítés" - }, - "pwa_support": { - "description": "Imádod a mobilalkalmazásokat? Mi segítünk. Telepítsd PWA-ként, és észre sem veszed!", - "title": "PWA támogatás" - }, - "recurring_transactions": { - "description": "Állíts be automatikus ismétlődő költségeket bérleti díjra, előfizetésekre vagy bármilyen rendszeres megosztott költségre", - "title": "Ismétlődő tranzakciók" - }, - "title": "Jellemzők", - "unequal_split": { - "description": "Speciális megosztási lehetőségek. Részesedések, százalékos arány vagy pontos összegek szerint.", - "title": "Egyenlőtlen megosztás" - }, - "upload_receipts": { - "description": "Töltsd fel a nyugtákat a költségekkel együtt", - "title": "Nyugták feltöltése" - } - }, - "footer": { - "built_by": "Készítette" - }, - "hero": { - "add_expense_button": "Költség hozzáadása", - "star_github_button": "Adj csillagot a GitHubon", - "subtitle_link": "nyílt forráskódú", - "subtitle_part1": "Egy", - "subtitle_part2": "Splitwise alternatíva", - "title_highlight": "ingyenes", - "title_part1": "Oszd meg költségeidet a barátaiddal" - }, - "meta": { - "description": "SplitPro: Oszd meg költségeidet a barátaiddal ingyen", - "title": "SplitPro: Oszd meg költségeidet a barátaiddal ingyen" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Adatvédelem", - "terms": "Feltételek" - } -} diff --git a/public/locales/id/common.json b/public/locales/id/common.json deleted file mode 100644 index 54c49e08b..000000000 --- a/public/locales/id/common.json +++ /dev/null @@ -1,447 +0,0 @@ -{ - "account": { - "change_language": "Ubah bahasa", - "change_language_details": { - "messages": { - "language_changed": "Bahasa berhasil diubah" - }, - "no_language_found": "Bahasa tidak ditemukan.", - "placeholder": "Pilih bahasa", - "title": "Pilih bahasa" - }, - "debug_info": "Info debug", - "debug_info_details": { - "copy_failed": "Gagal menyalin info debug ke papan klip", - "description": "Tempelkan informasi di bawah ini saat membuat permintaan bantuan:", - "git": "Git", - "new_version_available": "Versi baru telah tersedia:", - "send_test_notification": "Kirim notifikasi uji coba", - "test_notification_failed": "Tidak dapat mengirim notifikasi uji coba", - "test_notification_sent": "Notifikasi uji coba terkirim", - "title": "Informasi Debug", - "user_agent": "UserAgent", - "version": "Versi" - }, - "default_balance_currency": "Mata uang saldo bawaan", - "download_app": "Unduh aplikasi", - "download_app_details": { - "download_as_pwa": "Anda dapat mengunduh SplitPro sebagai PWA ke layar utama Anda.", - "title": "Unduh aplikasi", - "using_android": "Jika Anda menggunakan Android, lihat ini", - "using_ios": "Jika Anda menggunakan iOS, lihat ini", - "video": "video" - }, - "download_splitpro_data": "Unduh data SplitPro", - "edit_name": { - "apply_avatar": "Terapkan avatar", - "avatar_label": "Foto profil", - "avatar_preview": "Pratinjau avatar", - "placeholder": "Masukkan nama", - "remove_avatar": "Hapus avatar", - "select_avatar": "Pilih gambar", - "title": "Edit detail", - "zoom": "Zom" - }, - "follow_on_x": "Ikuti kami di X", - "import_from_splitwise": "Impor dari Splitwise", - "import_from_splitwise_details": { - "choose_file": "Pilih berkas", - "export_splitwise_data_button": "Ekspor data Splitwise", - "follow_to_export_splitwise_data": "Ikuti tautan ini untuk mengekspor data Splitwise", - "messages": { - "import_success": "Impor berhasil" - }, - "no_file_chosen": "Tidak ada berkas yang dipilih", - "note": "Catatan: Saat ini hanya mendukung pengimporan teman dan kelompok. Ini tidak akan mengimpor transaksi. Kami sedang mengerjakannya." - }, - "logout": "Keluar", - "messages": { - "submit_error": "Gagal memperbarui detail", - "submit_success": "Detail diperbarui" - }, - "notifications": { - "disable_notification": "Nonaktifkan notifikasi", - "enable_notification": "Aktifkan notifikasi", - "messages": { - "notification_granted": "Anda akan menerima notifikasi sekarang" - } - }, - "star_on_github": "Beri kami star di GitHub", - "submit_feedback": "Kirim masukan", - "submit_feedback_details": { - "placeholder": "Masukkan masukan Anda", - "title": "Kirim masukan" - }, - "support_us": "Sponsori kami", - "title": "Akun", - "write_review": "Tulis ulasan" - }, - "actions": { - "add_expense": "Tambah pengeluaran", - "back": "Kembali", - "cancel": "Batal", - "close": "Tutup", - "confirm": "Konfirmasi", - "connect": "Hubungkan", - "copy": "Salin", - "create": "Buat", - "edit_expense": "Edit pengeluaran", - "export": "Ekspor", - "fetch": "Ambil", - "import": "Impor", - "invite": "Undang", - "leave": "Keluar", - "next": "Lanjut", - "reconnect": "Hubungkan ulang", - "save": "Simpan", - "settle_up": "Lunasi", - "submit": "Kirim" - }, - "actors": { - "all": "Semua", - "friends": "Teman", - "groups": "Kelompok", - "members": "Anggota", - "owner": "Pemilik", - "you": "Anda", - "you_accusativus": "Anda", - "you_dativus": "Anda" - }, - "auth": { - "continue_with": "Lanjutkan dengan {{provider}}", - "email_placeholder": "Masukkan email Anda", - "no_providers_configured": "Tidak ada penyedia autentikasi yang dikonfigurasi", - "no_providers_instructions": "Harap konfigurasikan setidaknya satu penyedia autentikasi untuk masuk. Lihat", - "otp_sent": "Kami telah mengirimkan email berisi OTP. Harap periksa kotak masuk Anda dan klik tautan di dalam email untuk masuk.", - "send_magic_link": "Kirim magic link", - "sending": "Mengirim...", - "setup_instructions": "Petunjuk penyiapan Docker", - "trouble_logging_in": "Kendala saat masuk? Hubungi" - }, - "balances": { - "default_split": { - "cleared": "Pembagian bawaan dibersihkan", - "configure": "Pembagian bawaan", - "updated": "Pembagian bawaan diperbarui" - }, - "user_preferences": { - "title": "Preferensi" - } - }, - "bank_transactions": { - "choose_bank_provider": "Pilih penyedia bank", - "no_bank_providers_found": "Penyedia bank tidak ditemukan", - "plaid": { - "bank_connected_successfully": "Bank berhasil terhubung", - "bank_connection_cancelled": "Koneksi bank dibatalkan", - "bank_connection_failed": "Gagal terhubung ke bank" - }, - "search_bank": "Cari bank", - "select_bank_provider": "Pilih penyedia bank", - "to_bank": "ke bank" - }, - "currency_conversion": { - "amount_to_receive": "Jumlah yang diterima", - "description": "Konversikan jumlah tersebut ke mata uang yang berbeda.", - "exchange_rate": "Nilai tukar", - "fetching_rate": "Mengambil nilai tukar...", - "rate": "Nilai tukar", - "success_toast": "Konversi mata uang berhasil diatur", - "title": "Konversi mata uang" - }, - "errors": { - "currency_conversion_error": "Gagal saat mengatur konversi mata uang", - "currency_conversion_failed": "Gagal mengonversi mata uang", - "currency_conversion_malformed": "Data konversi mata uang cacat/rusak", - "email_invalid": "Email tidak valid, silakan coba alur masuk kembali.", - "email_required": "Email wajib diisi", - "feedback_min_length": "Masukan harus terdiri dari minimal 10 karakter", - "feedback_required": "Masukan wajib diisi", - "group_balances_malformed": "Data saldo kelompok cacat/rusak, silakan laporkan masalah atau coba hitung ulang.", - "group_name_update_failed": "Gagal memperbarui nama kelompok", - "image_compression_failed": "Kompresi gambar gagal, mencoba mengunggah berkas asli", - "import_failed": "Gagal mengimpor berkas", - "invalid_cron_expression": "Ekspresi cron tidak valid", - "invalid_currency_code": "Kode mata uang tidak valid {{code}}", - "language_change_failed": "Gagal mengubah bahasa", - "less_than": "Ukuran berkas harus kurang dari {{size}}MB", - "name_required": "Nama wajib diisi", - "no_providers": "Gagal saat mengambil penyedia autentikasi. Harap periksa log backend.", - "notification_not_supported": "Notifikasi tidak didukung", - "otp_invalid": "OTP tidak valid", - "otp_required": "OTP wajib diisi", - "recurrence_delete_failed": "Gagal menghapus pengulangan", - "recurrence_update_failed": "Gagal memperbarui pengulangan", - "request_error": "Gagal meminta notifikasi", - "saving_expense": "Gagal saat menyimpan pengeluaran", - "setting_update_failed": "Gagal memperbarui pengaturan", - "signin_error": "Terjadi kesalahan saat masuk: ", - "signup_disabled": "Pendaftaran akun baru dinonaktifkan pada instansi ini", - "something_went_wrong": "Ada yang salah", - "subscribe_error": "Tidak dapat berlangganan notifikasi", - "unsubscribe_error": "Gagal berhenti berlangganan notifikasi", - "upload_failed": "Gagal mengunggah berkas", - "uploading_error": "Gagal mengunggah berkas", - "valid_email": "Masukkan email yang valid" - }, - "expense_details": { - "add_expense": "Tambah pengeluaran", - "add_expense_details": { - "add_new_expense": "Tambah pengeluaran baru", - "amount_placeholder": "Masukkan jumlah", - "description_placeholder": "Masukkan deskripsi", - "pick_a_date": "Pilih tanggal", - "select_user_or_group": { - "add_to_split_pro": "Tambahkan ke Split Pro", - "note": "Catatan: pengiriman undangan dinonaktifkan untuk saat ini karena spam", - "only_one_group_time": "Anda hanya dapat memiliki satu kelompok dalam satu waktu", - "send_invite": "Kirim undangan ke pengguna", - "warning": "Peringatan: Jangan gunakan kirim undangan jika email tidak valid. Gunakan tambahkan ke Split Pro sebagai gantinya. Akun Anda akan diblokir jika fitur ini disalahgunakan" - }, - "split_type_section": { - "split_equally": "bagi rata", - "split_unequally": "bagi tidak sama rata", - "types": { - "adjustment": { - "remaining_to_split_equally": "Sisa yang akan dibagi rata", - "title": "Penyesuaian" - }, - "equal": { - "per_person": "per orang", - "title": "Sama rata" - }, - "exact": { - "remaining": "Sisa", - "title": "Pasti" - }, - "percentage": { - "remaining": "Sisa", - "title": "Persentase" - }, - "share": { - "shares": "Bagian", - "title": "Bagian", - "total_shares": "Total bagian" - } - } - }, - "sponsor_us": "Sponsori kami", - "upload_file": { - "messages": { - "upload_success": "Berkas berhasil diunggah" - } - }, - "user_input": { - "add_more_friends": "Cari teman, kelompok, atau tambah email", - "cannot_change_group": "Tidak dapat mengubah kelompok saat mengedit", - "remove_group": "Tekan hapus untuk menghapus kelompok", - "search_friends": "Cari teman, kelompok, atau tambah email" - } - }, - "already_added": "Sudah ditambahkan", - "balance_list": { - "are_settled_up": "sudah lunas", - "is_settled_up": "sudah lunas", - "press_balance_info": "Tekan pada saldo individu untuk memulai pelunasan" - }, - "bank_transactions": "Transaksi bank", - "clear": "Bersihkan", - "delete_expense_details": { - "text": "Tindakan ini tidak dapat dibatalkan. Ini akan menghapus pengeluaran Anda secara permanen.", - "title": "Apakah Anda benar-benar yakin?" - }, - "multiple_transactions": { - "add_all": "Tambah semua", - "add_one_by_one": "Tambah satu per satu", - "description": "Anda telah memilih beberapa transaksi. Pilih apakah Anda ingin semuanya ditambahkan sekaligus dengan pengaturan pembagian saat ini atau menyesuaikan pengaturannya satu per satu.", - "title": "Tambah beberapa transaksi" - }, - "no_transactions_yet": "Belum ada transaksi", - "pending": "Pending", - "submit_all": "Kirim semua", - "title": "Tambah pengeluaran", - "title_mobile": "Tambah" - }, - "group_details": { - "add_members": "Tambah anggota", - "copied": "Disalin", - "create_group": { - "group_name_placeholder": "Nama kelompok", - "title": "Buat kelompok" - }, - "group_info": { - "actions": "Tindakan", - "archive_group": "Arsipkan kelompok", - "archive_group_details": { - "can_archive": "Kelompok ini akan diarsipkan dan disembunyikan dari daftar kelompok utama Anda. Anda masih dapat mengaksesnya nanti jika diperlukan.", - "cant_archive": "Tidak dapat mengarsipkan kelompok yang masih memiliki saldo tertunggak. Semua saldo harus dilunasi terlebih dahulu.", - "title": "Apakah Anda yakin ingin mengarsipkan kelompok ini?" - }, - "archived": "Diarsipkan", - "configure_default_split": "Konfigurasikan pembagian bawaan", - "default_balance_currency": "Mata uang saldo bawaan", - "default_split": "Pembagian bawaan", - "delete_group": "Hapus kelompok", - "delete_group_details": { - "can_delete": "Tindakan ini tidak dapat dibatalkan", - "cant_delete": "Tidak dapat menghapus kelompok sampai semua orang melunasi saldonya", - "title": "Apakah Anda benar-benar yakin?" - }, - "edit_group": "Edit kelompok", - "group_created": "Kelompok berhasil dibuat", - "leave_group": "Tinggalkan kelompok", - "leave_group_details": { - "can_leave": "Tindakan ini tidak dapat dibatalkan", - "cant_leave": "Tidak dapat meninggalkan kelompok sampai saldo tertunggak Anda dilunasi", - "title": "Apakah Anda benar-benar yakin?" - }, - "members": "Anggota", - "recalculate_balances": "Hitung ulang saldo", - "recalculate_balances_details": { - "description": "Jika saldo tidak cocok dengan pengeluaran, Anda dapat menghitungnya kembali. Perhatikan bahwa ini mungkin memerlukan waktu jika jumlah pengeluaran banyak. Saldo di luar kelompok tidak akan terpengaruh.", - "title": "Apakah Anda yakin?" - }, - "remove_member_details": { - "can_remove": "Anda akan menghapus anggota ini dari kelompok", - "cant_remove": "Tidak dapat menghapus anggota sampai saldo tertunggak mereka dilunasi", - "title": "Apakah Anda benar-benar yakin?" - }, - "simplify_debts": "Sederhanakan utang", - "title": "Info kelompok" - }, - "group_statistics": { - "first_expense": "Pengeluaran pertama", - "title": "Statistik kelompok", - "total_expenses": "Total pengeluaran" - }, - "messages": { - "balances_recalculated": "Saldo berhasil dihitung ulang", - "default_balance_currency_cleared": "Mata uang saldo bawaan dibersihkan", - "default_balance_currency_updated": "Mata uang saldo bawaan diperbarui", - "default_split_cleared": "Pembagian bawaan dibersihkan", - "default_split_updated": "Pembagian bawaan diperbarui", - "group_archived": "Kelompok berhasil diarsipkan", - "group_name_updated": "Detail kelompok diperbarui" - }, - "no_members": { - "add_members": "Tambah anggota", - "add_members_details": { - "add_to_split_pro": "Tambahkan ke Split Pro", - "note": "Catatan: pengiriman undangan email dinonaktifkan", - "placeholder": "Masukkan nama atau email", - "send_invite": "Kirim undangan ke pengguna", - "title": "Tambah anggota", - "warning": "Peringatan: Jangan gunakan kirim undangan jika email tidak valid. Gunakan tambahkan ke Split Pro sebagai gantinya. Akun Anda akan diblokir jika fitur ini disalahgunakan" - }, - "invite_link": "Tautan undangan", - "no_members": "Belum ada anggota di kelompok ini." - }, - "tabs": { - "balances": "Saldo", - "expenses": "Pengeluaran" - }, - "title": "Saldo tertunggak kelompok" - }, - "invite_message": { - "in_splitpro": "di Splitpro", - "join_to": "Bergabung ke", - "text": "Bergabunglah ke kelompok dan Anda dapat menambahkan, mengelola pengeluaran, serta melacak saldo Anda" - }, - "meta": { - "application_name": "SplitPro", - "description": "Bagi Pengeluaran dengan teman-teman Anda secara gratis", - "title": "SplitPro: Bagi Pengeluaran dengan teman-teman Anda secara gratis" - }, - "navigation": { - "account": "Akun", - "activity": "Aktivitas", - "add": "Tambah", - "add_expense": "Tambah Pengeluaran", - "balances": "Saldo", - "groups": "Kelompok", - "recurring": "Berulang" - }, - "recurrence": { - "cron_expression": "Ekspresi Cron", - "days_of_month": "Hari dalam Sebulan", - "days_of_week": "Hari dalam Seminggu", - "delete_description": "Ini akan menghentikan pembuatan pengeluaran di masa mendatang. Pengeluaran yang sudah dibuat oleh pengulangan ini tidak akan dihapus.", - "delete_title": "Hapus Pengulangan", - "derived_delete_warning": "Pengeluaran ini adalah bagian dari pengulangan. Hanya pengeluaran ini yang akan dihapus. Pengeluaran berulang di masa mendatang akan tetap berlanjut.", - "derived_edit_warning": "Pengeluaran ini adalah bagian dari pengulangan. Perubahan hanya akan memengaruhi pengeluaran ini.", - "description": "Atur pengulangan otomatis untuk pengeluaran ini.", - "edit_confirmation_title": "Edit Pengeluaran Berulang", - "edit_description": "Ini akan mengubah jadwal untuk pengeluaran di masa mendatang. Pengeluaran yang ada tidak akan diubah.", - "edit_title": "Edit Pengulangan", - "empty": "Belum ada pengeluaran berulang", - "expense_for_the_amount_of": "Pengeluaran {{name}} sebesar {{amount}} {{currency}}", - "last_day": "Hari terakhir", - "months": "Bulan", - "never": "Tidak ada jadwal yang dikonfigurasi", - "recurring": "Berulang", - "schedule_type": { - "custom": "Kustom", - "day": "Harian", - "month": "Bulanan", - "never": "Tidak pernah", - "week": "Mingguan", - "year": "Tahunan" - }, - "template_delete_warning": "Ini adalah templat pengeluaran berulang. Menghapusnya akan menghentikan semua pengeluaran berulang di masa mendatang.", - "template_edit_warning": "Ini adalah templat pengeluaran berulang. Perubahan akan berlaku untuk semua pengeluaran berulang di masa mendatang.", - "time_of_day": "Waktu Hari", - "title": "Pengulangan", - "view_recurring_page": "Lihat halaman Berulang" - }, - "ui": { - "added_by": "Ditambahkan oleh", - "and": "dan", - "balance": "saldo", - "balances": "saldo", - "delete": "Hapus", - "deleted_by": "Dihapus oleh", - "edited_by": "Diedit oleh", - "expense": { - "for": "untuk", - "from": "dari", - "paid_by": "Dibayar oleh", - "received_by": "Diterima oleh", - "to": "kepada", - "user": { - "deleted": "dihapus", - "get": "mendapatkan", - "lent": "meminjamkan", - "owe": "berutang", - "paid": "membayar", - "pay": "membayar", - "received": "menerima" - }, - "you": { - "deleted": "dihapus", - "get": "mendapatkan", - "lent": "meminjamkan", - "owe": "berutang", - "paid": "membayar", - "pay": "membayar", - "received": "menerima" - } - }, - "expense_details": "Detail pengeluaran", - "in_group": "Dalam kelompok", - "no_activity": "Belum ada aktivitas", - "not_involved": "Tidak terlibat", - "not_set": "Belum diatur", - "on": "pada", - "or": "atau", - "outstanding_balances": "Saldo tertunggak", - "select_balance": "Pilih saldo", - "select_currency": "Pilih mata uang", - "settle_up_name": "Lunasi", - "settled_up": "Sudah dilunasi", - "settlement": "Pelunasan", - "share_text": "Coba SplitPro. Ini adalah alternatif gratis dan sumber terbuka untuk Splitwise", - "show_all_currencies": "Tampilkan semua mata uang", - "today": "Hari ini", - "total_balance": "Total saldo" - } -} diff --git a/public/locales/id/home.json b/public/locales/id/home.json deleted file mode 100644 index 8a696c2b9..000000000 --- a/public/locales/id/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Tambahkan pengeluaran lebih cepat dengan integrasi ke API transaksi akun bank GoCardless atau Plaid", - "title": "Koneksi bank" - }, - "currency_conversion": { - "description": "Konversikan berbagai mata uang secara cepat menggunakan nilai tukar terkini atau historis", - "title": "Konversi Mata Uang" - }, - "debt_simplification": { - "description": "Penyederhanaan utang kelompok secara otomatis untuk mengurangi jumlah transaksi yang diperlukan antar teman", - "title": "Penyederhanaan Utang" - }, - "groups_and_friends": { - "description": "Dapat membuat beberapa kelompok atau menambahkan saldo secara langsung. Semuanya akan dikonsolidasikan", - "title": "Kelompok dan Teman" - }, - "i18": { - "description": "Tersedia dalam berbagai bahasa untuk memudahkan pembagian pengeluaran di seluruh dunia", - "title": "Internasionalisasi" - }, - "import_splitwise": { - "description": "Tidak perlu memindahkan saldo secara manual. Anda dapat mengimpor pengguna dan kelompok dari Splitwise", - "title": "Impor dari Splitwise" - }, - "multiple_currencies": { - "description": "Perlu menambahkan pengeluaran dengan mata uang berbeda untuk pengguna yang sama? Tidak masalah!", - "title": "Berbagai mata uang" - }, - "open_source": { - "description": "Membuatnya sulit untuk berbuat curang. Mudah untuk di-self host", - "title": "Sumber terbuka" - }, - "push_notifications": { - "description": "Jangan pernah melewatkan pemberitahuan penting. Dapatkan pemberitahuan saat seseorang menambahkan pengeluaran atau melunasi utang", - "title": "Notifikasi push" - }, - "pwa_support": { - "description": "Suka aplikasi seluler? Kami siap membantu Anda. Pasang sebagai PWA dan Anda bahkan tidak akan menyadarinya!", - "title": "Dukungan PWA" - }, - "recurring_transactions": { - "description": "Atur pengeluaran berulang otomatis untuk sewa, langganan, atau biaya bersama rutin lainnya", - "title": "Transaksi Berulang" - }, - "title": "Fitur", - "unequal_split": { - "description": "Opsi pembagian tingkat lanjut. Berdasarkan bagian, persentase, atau jumlah pasti.", - "title": "Pembagian Tidak Sama Rata" - }, - "upload_receipts": { - "description": "Unggah resi bersama dengan pengeluaran", - "title": "Unggah Resi" - } - }, - "footer": { - "built_by": "Dibuat oleh" - }, - "hero": { - "add_expense_button": "Tambah Pengeluaran", - "star_github_button": "Beri kami star di GitHub", - "subtitle_link": "sumber terbuka", - "subtitle_part1": "Sebuah", - "subtitle_part2": "alternatif untuk Splitwise", - "title_highlight": "gratis", - "title_part1": "Bagi Pengeluaran dengan teman-teman Anda secara" - }, - "meta": { - "description": "SplitPro: Bagi Pengeluaran dengan teman-teman Anda secara gratis", - "title": "SplitPro: Bagi Pengeluaran dengan teman-teman Anda secara gratis" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Privasi", - "terms": "Syarat dan Ketentuan" - } -} diff --git a/public/locales/it/common.json b/public/locales/it/common_icu.json similarity index 64% rename from public/locales/it/common.json rename to public/locales/it/common_icu.json index 81c79e909..476f6b069 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common_icu.json @@ -5,19 +5,10 @@ "messages": { "language_changed": "Lingua cambiata con successo" }, + "no_language_found": "Nessuna lingua trovata.", "placeholder": "Seleziona una lingua", "title": "Seleziona una lingua" }, - "debug_info": "Informazioni di debug", - "debug_info_details": { - "copy_failed": "Errore nel copiare le informazioni di debug", - "description": "Incolla le informazioni qui sotto quando crei una richiesta di assistenza:", - "git": "Git", - "new_version_available": "È disponibile una nuova versione:", - "title": "Informazioni di Debug", - "user_agent": "UserAgent", - "version": "Versione" - }, "download_app": "Scarica l'app", "download_app_details": { "download_as_pwa": "Puoi scaricare SplitPro come PWA sulla tua home screen.", @@ -27,8 +18,15 @@ "video": "video" }, "download_splitpro_data": "Scarica i dati di SplitPro", + "default_balance_currency": "Valuta predefinita dei saldi", "edit_name": { + "apply_avatar": "Applica avatar", + "avatar_label": "Immagine del profilo", + "avatar_preview": "Anteprima dell'avatar", "placeholder": "Inserisci il nome", + "remove_avatar": "Rimuovi avatar", + "select_avatar": "Seleziona immagine", + "zoom": "Zoom", "title": "Modifica nome" }, "follow_on_x": "Seguici su X", @@ -45,8 +43,8 @@ }, "logout": "Esci", "messages": { - "submit_error": "Invio del feedback fallito", - "submit_success": "Feedback inviato" + "update_error": "Impossibile aggiornare i dettagli", + "update_success": "Dettagli aggiornati" }, "notifications": { "disable_notification": "Disabilita notifiche", @@ -58,21 +56,37 @@ "star_on_github": "Dacci una stella su GitHub", "submit_feedback": "Invia feedback", "submit_feedback_details": { + "messages": { + "submit_error": "Impossibile inviare il feedback", + "submit_success": "Feedback inviato" + }, "placeholder": "Inserisci il tuo feedback", "title": "Invia feedback" }, "support_us": "Supportaci", "title": "Account", - "write_review": "Scrivi una recensione" + "write_review": "Scrivi una recensione", + "debug_info": "Informazioni di debug", + "debug_info_details": { + "title": "Informazioni di Debug", + "description": "Incolla le informazioni qui sotto quando crei una richiesta di assistenza:", + "user_agent": "UserAgent", + "git": "Git", + "version": "Versione", + "new_version_available": "È disponibile una nuova versione:", + "copy_failed": "Errore nel copiare le informazioni di debug", + "send_test_notification": "Invia notifica di test", + "test_notification_sent": "Notifica di test inviata", + "test_notification_failed": "Impossibile inviare la notifica di test" + } }, "actions": { "add_expense": "Aggiungi spesa", "back": "Indietro", "cancel": "Annulla", "close": "Chiudi", - "confirm": "Conferma", - "connect": "Connettiti", "copy": "Copia", + "confirm": "Conferma", "create": "Crea", "edit_expense": "Modifica spesa", "export": "Esporta", @@ -81,10 +95,12 @@ "invite": "Invita", "leave": "Abbandona", "next": "Avanti", - "reconnect": "Riconnettiti", "save": "Salva", "settle_up": "Regola", - "submit": "Invia" + "submit": "Invia", + "reconnect": "Riconnettiti", + "connect": "Connettiti", + "remind_later": "Ricordamelo più tardi" }, "actors": { "all": "Tutti", @@ -92,36 +108,22 @@ "groups": "Gruppi", "members": "Membri", "owner": "Proprietario", - "you": "Tu", - "you_accusativus": "Tu", - "you_dativus": "Te" + "you": "Tu" }, "auth": { - "continue_with": "Continua con {{provider}}", + "continue_with": "Continua con {provider}", "email_placeholder": "Inserisci la tua email", "no_providers_configured": "Nessun provider di autenticazione configurato", "no_providers_instructions": "Si prega di configurare almeno un provider di autenticazione per accedere. Consulta le", - "or": "oppure", "otp_sent": "Abbiamo inviato un'e-mail con l'OTP. Controllare la posta in arrivo e fare clic sul link contenuto nell'e-mail per accedere.", "send_magic_link": "Invia link magico", "sending": "Invio in corso...", "setup_instructions": "istruzioni di configurazione Docker", - "submit": "Invia", "trouble_logging_in": "Problemi ad accedere? Contatta" }, - "bank_transactions": { - "choose_bank_provider": "Scegli il fornitore bancario", - "no_bank_providers_found": "Nessun fornitore bancario trovato", - "plaid": { - "bank_connected_successfully": "Connessione alla banca riuscita", - "bank_connection_cancelled": "Connessione alla banca annullata", - "bank_connection_failed": "Impossibile connettersi alla banca" - }, - "search_bank": "Ricerca banca", - "select_bank_provider": "Seleziona il fornitore bancario", - "to_bank": "alla banca" - }, "currency_conversion": { + "amount_aria_label": "Importo", + "converted_amount_aria_label": "Importo convertito", "amount_to_receive": "Importo da ricevere", "description": "Converti l'importo in una valuta diversa.", "exchange_rate": "Tasso di cambio", @@ -132,40 +134,66 @@ }, "errors": { "currency_conversion_error": "Errore durante l'impostazione della conversione valuta", - "currency_conversion_failed": "Impossibile convertire le valute", - "currency_conversion_malformed": "I dati relativi alla conversione valutaria sono errati", "email_invalid": "L'e-mail non è valida, si prega di riprovare l'accesso.", + "no_providers": "Errore durante lo scaricamento dei provider di autenticazione. Per favore controllare i log backend.", "email_required": "Email richiesta", "feedback_min_length": "Il feedback deve contenere almeno 10 caratteri", "feedback_required": "Il feedback è obbligatorio", - "group_balances_malformed": "I dati relativi ai saldi di gruppo sono errati, segnalare il problema o provare a ricalcolarli.", + "add_member_failed": "Impossibile aggiungere il membro al gruppo", "group_name_update_failed": "Errore nell'aggiornamento del nome del gruppo", "import_failed": "Errore durante l'importazione del file", - "invalid_cron_expression": "Espressione cron non valida", - "invalid_currency_code": "Codice valuta {{code}} non valido", + "invalid_currency_code": "Codice valuta {code} non valido", "language_change_failed": "Errore nel cambiare lingua", - "less_than": "Il file deve essere più piccolo di", + "less_than": "Il file deve essere più piccolo di {size} MB", + "image_compression_failed": "Compressione dell'immagine fallita, provo a caricare il file originale", "name_required": "Il nome è obbligatorio", - "no_providers": "Errore durante lo scaricamento dei provider di autenticazione. Per favore controllare i log backend.", "notification_not_supported": "Le notifiche non sono supportate", "otp_invalid": "OTP non valido", "otp_required": "OTP richiesto", - "recurrence_delete_failed": "Impossibile eliminare la ricorrenza", - "recurrence_update_failed": "Impossibile aggiornare la ricorrenza", "request_error": "Errore durante la richiesta delle notifiche", + "notification_request_failed": "Errore nella richiesta del permesso per le notifiche", + "notification_subscribe_failed": "Impossibile iscriversi alle notifiche", + "expense_submission_failed": "Si è verificato un errore imprevisto durante l'invio della spesa.", + "expense_deletion_failed": "Si è verificato un errore imprevisto durante l'eliminazione della spesa.", + "expense_split_incomplete": "Modifica chi deve pagare questa spesa prima di salvare.", + "friend_deletion_failed": "Impossibile eliminare l'amico", "saving_expense": "Errore durante il salvataggio della spesa", "setting_update_failed": "Errore nell'aggiornamento dell'impostazione", - "signin_error": "Si è verificato un errore durante l'accesso: ", + "signin_error": "Si è verificato un errore durante l’accesso: {error}", + "signin_failed": "Accesso non riuscito. Riprova.", "signup_disabled": "La registrazione di nuovi account è disabilitata in questa istanza", "something_went_wrong": "Qualcosa è andato storto", "subscribe_error": "Impossibile attivare le notifiche", "unsubscribe_error": "Errore durante la disattivazione delle notifiche", "upload_failed": "Caricamento file fallito", - "upload_file_less_than": "Il file deve essere inferiore a", "uploading_error": "Errore durante il caricamento del file", - "valid_email": "Inserisci un'email valida" + "valid_email": "Inserisci un'email valida", + "group_balances_malformed": "I dati relativi ai saldi di gruppo sono errati, segnalare il problema o provare a ricalcolarli.", + "currency_conversion_malformed": "I dati relativi alla conversione valutaria sono errati", + "invalid_cron_expression": "Espressione cron non valida", + "currency_conversion_failed": "Impossibile convertire le valute", + "recurrence_delete_failed": "Impossibile eliminare la ricorrenza", + "recurrence_update_failed": "Impossibile aggiornare la ricorrenza" + }, + "bank_transactions": { + "choose_bank_provider": "Scegli il fornitore bancario", + "select_bank_provider": "Seleziona il fornitore bancario", + "search_bank": "Ricerca banca", + "no_bank_providers_found": "Nessun fornitore bancario trovato", + "to_bank": "alla banca", + "plaid": { + "bank_connected_successfully": "Connessione alla banca riuscita", + "bank_connection_failed": "Impossibile connettersi alla banca", + "bank_connection_cancelled": "Connessione alla banca annullata" + } }, "expense_details": { + "receipt": { + "title": "Ricevuta della spesa", + "thumbnail_alt": "Miniatura della ricevuta della spesa", + "image_alt": "Ricevuta della spesa" + }, + "empty_state_image_alt": "Nessuna spesa", "add_expense": "Aggiungi spesa", "add_expense_details": { "add_new_expense": "Aggiungi nuova spesa", @@ -173,6 +201,7 @@ "description_placeholder": "Inserisci descrizione", "pick_a_date": "Scegli una data", "select_user_or_group": { + "empty_image_alt": "Nessun utente trovato", "add_to_split_pro": "Aggiungi a Split Pro", "note": "Nota: l'invio di inviti è disabilitato per ora a causa dello spam", "only_one_group_time": "Puoi operare su un solo gruppo alla volta", @@ -180,7 +209,14 @@ "warning": "Attenzione: non usare \"Invia invito\" se l'email non è valida. Usa invece \"Aggiungi a Split Pro\". Il tuo account verrà bloccato se questa funzione viene utilizzata in modo improprio" }, "split_type_section": { + "direction": { + "no_money_flow": "nessun altro deve nulla", + "owes_payer": "{debtor} deve dei soldi a {payer}", + "owes_you": "{debtor} ti deve dei soldi", + "you_owe": "devi dei soldi a {payer}" + }, "split_equally": "diviso equamente", + "split_equally_with_count": "dividi equamente tra {count, plural, one {# persona} other {# persone}}", "split_unequally": "diviso non equamente", "types": { "adjustment": { @@ -219,29 +255,37 @@ "search_friends": "Cerca amici, gruppi o aggiungi email" } }, - "already_added": "Già aggiunto", "balance_list": { - "are_settled_up": "siete pari", - "is_settled_up": "è pari", + "settled": "{actor, select, you {Sei in pari} other {{person} è in pari}}", + "lent": "{actor, select, you {Hai prestato} other {{person} ha prestato}}", + "owes": "{actor, select, you {Devi} other {{person} deve}}", "press_balance_info": "Premi sul saldo individuale per avviare il regolamento" }, - "bank_transactions": "Transazioni bancarie", - "clear": "Pulisci", "delete_expense_details": { "text": "Questa azione non può essere annullata. La spesa verrà eliminata definitivamente.", "title": "Sei sicuro di voler eliminare questa spesa?" }, "multiple_transactions": { - "add_all": "Aggiungi tutto", - "add_one_by_one": "Aggiungi uno alla volta", + "title": "Aggiungi più transazioni", "description": "Hai selezionato più transazioni. Scegli se desideri aggiungerle tutte insieme con le impostazioni di suddivisione correnti o modificare le impostazioni una per una.", - "title": "Aggiungi più transazioni" + "add_all": "Aggiungi tutto", + "add_one_by_one": "Aggiungi uno alla volta" }, - "no_transactions_yet": "Nessuna transazione ancora", - "pending": "In sospeso", - "submit_all": "Invia tutto", "title": "Aggiungi spesa", - "title_mobile": "Aggiungi" + "title_mobile": "Aggiungi", + "clear": "Pulisci", + "bank_transactions": "Transazioni bancarie", + "submit_all": "Invia tutto", + "pending": "In sospeso", + "no_transactions_yet": "Nessuna transazione ancora", + "already_added": "Già aggiunto" + }, + "friend": { + "delete_confirmation": { + "title": "Sei assolutamente sicuro?", + "description": "Vuoi davvero continuare?", + "outstanding_balance": "Non puoi rimuovere un amico con saldi in sospeso. Regola prima i saldi." + } }, "group_details": { "add_members": "Aggiungi membri", @@ -253,6 +297,10 @@ "group_info": { "actions": "Azioni", "archive_group": "Archivia gruppo", + "configure_default_split": "Configura divisione predefinita", + "default_split": "Divisione predefinita", + "default_balance_currency": "Valuta predefinita dei saldi", + "edit_group": "Modifica gruppo", "archive_group_details": { "can_archive": "Questo gruppo verrà archiviato e nascosto dalla tua lista principale dei gruppi. Potrai comunque accedervi più tardi se necessario.", "cant_archive": "Non è possibile archiviare un gruppo con saldi in sospeso. Tutti i saldi devono essere saldati prima.", @@ -292,6 +340,10 @@ "total_expenses": "Spese totali" }, "messages": { + "default_split_cleared": "Divisione predefinita rimossa", + "default_split_updated": "Divisione predefinita aggiornata", + "default_balance_currency_cleared": "Valuta predefinita dei saldi rimossa", + "default_balance_currency_updated": "Valuta predefinita dei saldi aggiornata", "balances_recalculated": "Saldi ricalcolati con successo", "group_archived": "Gruppo archiviato con successo", "group_name_updated": "Nome del gruppo aggiornato" @@ -306,7 +358,6 @@ "title": "Aggiungi membri", "warning": "Attenzione: non usare \"Invia invito\" se l'email non è valida. Usa invece \"Aggiungi a Split Pro\". Il tuo account verrà bloccato se questa funzione viene utilizzata in modo improprio" }, - "copied": "Copiato", "invite_link": "Condividi il link d'invito", "no_members": "Nessun membro nel gruppo ancora." }, @@ -317,7 +368,7 @@ "title": "Saldi in sospeso del gruppo" }, "invite_message": { - "in_splitpro": "in Splitpro", + "in_splitpro": "su SplitPro", "join_to": "Unisciti a", "text": "Unisciti al gruppo e potrai aggiungere, gestire spese e tracciare i tuoi saldi" }, @@ -326,46 +377,104 @@ "description": "Dividi le spese con i tuoi amici gratuitamente", "title": "SplitPro: Dividi le spese con i tuoi amici gratuitamente" }, + "activity": { + "you_paid_for_expense": "Hai pagato {amount} per {expense}", + "you_received_for_expense": "Hai ricevuto {amount} per {expense}", + "user_paid_for_expense": "{user} ha pagato {amount} per {expense}", + "user_received_for_expense": "{user} ha ricevuto {amount} per {expense}", + "user_deleted_expense": "{actor, select, you {Hai eliminato {expense}} other {{user} ha eliminato {expense}}}", + "you_paid_amount": "Hai pagato {amount}", + "you_received_amount": "Hai ricevuto {amount}" + }, + "balance_summary": { + "friend_owes_you": "{friend} ti deve {amount}", + "you_owe_friend": "Devi {amount} a {friend}", + "more": "{count, plural, one {# saldo in più} other {# saldi in più}}" + }, + "balance_list": { + "pays": "{payerRole, select, you {Paghi {amount} a {receiver}} other {{payer} paga {amount} a {receiverRole, select, you {te} other {{receiver}}}}}", + "gets": "{receiverRole, select, you {Ricevi {amount} da {payer}} other {{receiver} riceve {amount} da {payerRole, select, you {te} other {{payer}}}}}" + }, + "expense_participant": { + "gets": "{actor, select, you {Ricevi {amount}} other {{person} riceve {amount}}}", + "owes": "{actor, select, you {Devi {amount}} other {{person} deve {amount}}}" + }, + "group": { + "invite_title": "Unisciti a {group} su SplitPro" + }, + "bank_connection": { + "connect": "Collegati alla tua banca", + "reconnect": "Ricollegati alla tua banca" + }, + "expense_metadata": { + "edited_by": "{actor, select, you {Modificato da te il {date}} other {Modificato da {user} il {date}}}", + "deleted_by": "{actor, select, you {Eliminato da te il {date}} other {Eliminato da {user} il {date}}}", + "added_by": "{actor, select, you {Aggiunto da te il {date}} other {Aggiunto da {user} il {date}}}" + }, + "expense_list": { + "user_paid": "{actor, select, you {Hai pagato {amount}} other {{user} ha pagato {amount}}}", + "user_received": "{actor, select, you {Hai ricevuto {amount}} other {{user} ha ricevuto {amount}}}", + "you_lent": "Hai prestato {amount}", + "you_owe": "Devi {amount}", + "settlement": "{payerRole, select, you {Hai pagato {amount} a {receiver}} other {{receiverRole, select, you {{payer} ti ha pagato {amount}} other {{payer} ha pagato {amount} a {receiver}}}}}", + "conversion_for_users": "Conversione di valuta tra {payerRole, select, you {te} other {{payer}}} e {receiverRole, select, you {te} other {{receiver}}}" + }, + "balances": { + "user_preferences": { + "title": "Preferenze" + }, + "default_split": { + "cleared": "Divisione predefinita rimossa", + "configure": "Divisione predefinita", + "updated": "Divisione predefinita aggiornata" + } + }, "navigation": { "account": "Account", "activity": "Attività", "add": "Aggiungi", "add_expense": "Aggiungi spesa", - "app_name": "SplitPro", + "recurring": "Ricorrente", "balances": "Saldi", - "groups": "Gruppi", - "recurring": "Ricorrente" + "groups": "Gruppi" + }, + "notifications": { + "enable_title": "Abilita notifiche", + "enable_description": "Non perdere gli eventi importanti. Iscriviti per ricevere notifiche quando vengono aggiunte o aggiornate delle spese.", + "permission_granted": "Riceverai ora le notifiche", + "subscribe": "Iscriviti" }, "recurrence": { + "toggle_options": "Mostra o nascondi le opzioni della spesa ricorrente", + "title": "Ricorrenza", + "description": "Imposta una ricorrenza automatica per questa spesa.", "cron_expression": "Espressione Cron", + "time_of_day": "Ora del giorno", + "days_of_week": "Giorni della settimana", "days_of_month": "Giorni del mese", - "days_of_week": "Giorni della settima", - "delete_description": "Questo interromperà la creazione di spese future. Le spese già create da questa ricorrenza non saranno eliminate.", - "delete_title": "Elimina ricorrenza", - "derived_delete_warning": "Questa spesa fa parte di una ricorrenza. Verrà eliminata solo questa spesa. Le future spese ricorrenti continueranno.", - "derived_edit_warning": "Questa spesa fa parte di una ricorrenza. Le modifiche influenzeranno solo questa spesa.", - "description": "Imposta una ricorrenza automatica per questa spesa.", - "edit_confirmation_title": "Modifica spesa ricorrente", - "edit_description": "Questo cambierà il programma delle spese future. Le spese già create non saranno modificate.", - "edit_title": "Modifica ricorrenza", - "empty": "Ancora nessuna spesa ricorrente", - "expense_for_the_amount_of": "Spesa {{name}} di {{amount}} {{currency}}", - "last_day": "Ultimo giorno", "months": "Mesi", + "last_day": "Ultimo giorno", "never": "Nessuna pianificazione configurata", + "empty": "Ancora nessuna spesa ricorrente", "recurring": "Ricorrente", + "expense_for_the_amount_of": "{name} è programmata per {amount} {currency}", + "delete_title": "Elimina ricorrenza", + "delete_description": "Questo interromperà la creazione di spese future. Le spese già create da questa ricorrenza non saranno eliminate.", + "edit_title": "Modifica ricorrenza", + "edit_description": "Questo cambierà il programma delle spese future. Le spese già create non saranno modificate.", "schedule_type": { + "never": "Mai", "custom": "Personalizzata", "day": "Giornaliera", "month": "Mensile", - "never": "Mai", "week": "Settimanale", "year": "Annuale" }, - "template_delete_warning": "Questa è una spesa ricorrente modello. Eliminandola si interromperanno tutte le future spese ricorrenti.", + "edit_confirmation_title": "Modifica spesa ricorrente", "template_edit_warning": "Questa è una spesa ricorrente modello. Le modifiche si applicheranno a tutte le future spese ricorrenti.", - "time_of_day": "Ora del giorno", - "title": "Ricorrenza", + "derived_edit_warning": "Questa spesa fa parte di una ricorrenza. Le modifiche influenzeranno solo questa spesa.", + "template_delete_warning": "Questa è una spesa ricorrente modello. Eliminandola si interromperanno tutte le future spese ricorrenti.", + "derived_delete_warning": "Questa spesa fa parte di una ricorrenza. Verrà eliminata solo questa spesa. Le future spese ricorrenti continueranno.", "view_recurring_page": "Visualizza pagina ricorrenze" }, "ui": { @@ -380,6 +489,12 @@ "for": "per", "from": "da", "paid_by": "Pagato da", + "payer": { + "current_user": "Te" + }, + "recipient": { + "current_user": "Te" + }, "received_by": "Ricevuto da", "to": "a", "user": { @@ -388,7 +503,6 @@ "lent": "ha prestato", "owe": "deve", "paid": "ha pagato", - "pay": "paga", "received": "ha ricevuto" }, "you": { @@ -399,24 +513,47 @@ "paid": "hai pagato", "pay": "paga", "received": "hai ricevuto" + }, + "statements": { + "you_lent": "Hai prestato", + "you_owe": "Devi", + "you_lent_amount": "Hai prestato {amount}", + "you_owe_amount": "Devi {amount}", + "you_paid_amount": "Hai pagato {amount}", + "you_received_amount": "Hai ricevuto {amount}", + "you_pay_user": "Paghi {user}", + "user_pays_you": "{user} ti paga", + "friend_owes_you": "{friend} ti deve", + "you_owe_friend": "Devi {friend}", + "paid_for_beneficiary": "{beneficiaryRole, select, you {Questa spesa riguarda solo te} other {Stai dividendo questa spesa con {beneficiary}}}", + "user_paid_amount": "{user} ha pagato {amount}", + "user_received_amount": "{user} ha ricevuto {amount}", + "user_paid_amount_to_user": "{payer} ha pagato {amount} a {receiver}", + "user_received_amount_from_user": "{payer} ha ricevuto {amount} da {receiver}", + "you_paid_amount_to_user": "Hai pagato {amount} a {receiver}", + "you_received_amount_from_user": "Hai ricevuto {amount} da {payer}", + "for_users": "per {payer} e {receiver}", + "user_pays_user": "{payer} paga {receiver}" } }, "expense_details": "Dettagli spesa", - "in_group": "Nel gruppo", + "transfer": "{senderRole, select, you {Paghi {receiver}} other {{receiverRole, select, you {{sender} ti paga} other {{sender} paga {receiver}}}}}", "no_activity": "Nessuna attività ancora", "not_involved": "Non coinvolto", "not_set": "Non impostato", "on": "il", "or": "o", "outstanding_balances": "Saldi in sospeso", - "select_balance": "Seleziona saldo", + "total_balance": "Saldo totale", "select_currency": "Seleziona valuta", + "select_balance": "Seleziona saldo", "settle_up_name": "Regola", "settled_up": "Regolato", "settlement": "Regolamento", "share_text": "Dai un'occhiata a SplitPro. È un'alternativa gratuita e open source a Splitwise", "show_all_currencies": "Mostra tutte le valute", "today": "Oggi", - "total_balance": "Saldo totale" + "in_group": "Nel gruppo", + "remaining_balances": "{count, plural, =0 {Nessun saldo aperto} one {# saldo aperto} other {# saldi aperti}}" } } diff --git a/public/locales/it/home.json b/public/locales/it/home_icu.json similarity index 89% rename from public/locales/it/home.json rename to public/locales/it/home_icu.json index 93e51a9d4..126f59a79 100644 --- a/public/locales/it/home.json +++ b/public/locales/it/home_icu.json @@ -1,13 +1,13 @@ { "features": { - "bank_connection": { - "description": "Aggiungi spese più velocemente con un'integrazione alle API delle transazioni bancarie di GoCardless o Plaid", - "title": "Connessione bancaria" - }, "currency_conversion": { "description": "Converti rapidamente tra diverse valute utilizzando tassi di cambio aggiornati o storici", "title": "Conversione Valuta" }, + "recurring_transactions": { + "description": "Configura spese ricorrenti automatiche per affitto, abbonamenti o altri costi condivisi ricorrenti", + "title": "Spese ricorrenti" + }, "debt_simplification": { "description": "Semplifica automaticamente i debiti di gruppo per ridurre il numero di transazioni necessarie tra amici", "title": "Semplificazione Debiti" @@ -20,6 +20,10 @@ "description": "Disponibile in più lingue per rendere la divisione delle spese accessibile in tutto il mondo", "title": "Internazionalizzazione" }, + "bank_connection": { + "title": "Connessione bancaria", + "description": "Aggiungi spese più velocemente con un'integrazione alle API delle transazioni bancarie di GoCardless o Plaid" + }, "import_splitwise": { "description": "Non devi migrare manualmente i saldi. Puoi importare utenti e gruppi da Splitwise", "title": "Importa da Splitwise" @@ -40,10 +44,6 @@ "description": "Ami le app mobile? Abbiamo pensato anche a te. Installala come PWA e non ti accorgerai della differenza!", "title": "Supporto PWA" }, - "recurring_transactions": { - "description": "Configura spese ricorrenti automatiche per affitto, abbonamenti o altri costi condivisi ricorrenti", - "title": "Spese ricorrenti" - }, "title": "Funzionalità", "unequal_split": { "description": "Opzioni di divisione avanzate. Per quote, percentuale o importi esatti.", @@ -58,13 +58,13 @@ "built_by": "Creato da" }, "hero": { + "image_alt": "Anteprima dell'app SplitPro", "add_expense_button": "Aggiungi una spesa", "star_github_button": "Dacci una stella su github", - "subtitle_link": "open source", - "subtitle_part1": "Un'alternativa", - "subtitle_part2": "a SplitWise", - "title_highlight": "gratuitamente", - "title_part1": "Dividi le spese con i tuoi amici" + "title_before_highlight": "Dividi le spese con i tuoi amici", + "title_highlight": "gratis", + "title_after_highlight": ".", + "subtitle": "Un'alternativa open source a SplitWise." }, "meta": { "description": "SplitPro: Dividi le spese con i tuoi amici gratuitamente", @@ -72,7 +72,7 @@ }, "nav": { "app_name": "SplitPro", - "privacy": "Privacy", + "privacy": "Informativa sulla privacy", "terms": "Termini" } } diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json deleted file mode 100644 index 2f295fa6d..000000000 --- a/public/locales/ja/common.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "account": { - "change_language": "言語を変更", - "change_language_details": { - "messages": { - "language_changed": "言語を変更しました" - }, - "placeholder": "言語を選択", - "title": "言語を選択" - }, - "download_app": "アプリをダウンロード", - "download_app_details": { - "download_as_pwa": "SplitProをPWAとしてホーム画面に追加できます.", - "title": "アプリをダウンロード" - } - } -} diff --git a/public/locales/ja/home.json b/public/locales/ja/home.json deleted file mode 100644 index f58d5b77b..000000000 --- a/public/locales/ja/home.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "features": { - "currency_conversion": { - "description": "最新・過去のレートで通貨を換算" - } - } -} diff --git a/public/locales/ne/common.json b/public/locales/ne/common.json deleted file mode 100644 index 89a5bc85d..000000000 --- a/public/locales/ne/common.json +++ /dev/null @@ -1,442 +0,0 @@ -{ - "account": { - "change_language": "भाषा परिवर्तन गर्नुहोस्", - "change_language_details": { - "messages": { - "language_changed": "भाषा सफलतापूर्वक परिवर्तन भयो" - }, - "placeholder": "भाषा छान्नुहोस्", - "title": "भाषा छान्नुहोस्" - }, - "debug_info": "डिबग जानकारी", - "debug_info_details": { - "copy_failed": "प्रतिलिपि गर्न असफल भयो", - "description": "समस्या निवारणको लागि यो जानकारी प्रयोग गर्नुहोस्:", - "git": "Git कमिट", - "new_version_available": "नयाँ संस्करण उपलब्ध छ:", - "send_test_notification": "परीक्षण सूचना पठाउनुहोस्", - "test_notification_failed": "परीक्षण सूचना पठाउन सकिएन", - "test_notification_sent": "परीक्षण सूचना पठाइयो", - "title": "डिबग विवरण", - "user_agent": "प्रयोगकर्ता एजेन्ट", - "version": "संस्करण" - }, - "download_app": "एप डाउनलोड गर्नुहोस्", - "download_app_details": { - "download_as_pwa": "PWA को रूपमा डाउनलोड गर्नुहोस्।", - "title": "एप प्राप्त गर्नुहोस्", - "using_android": "एन्ड्रोइड प्रयोग गर्दै", - "using_ios": "आईओएस प्रयोग गर्दै", - "video": "भिडियो ट्यूटोरियल" - }, - "download_splitpro_data": "SplitPro डाटा डाउनलोड गर्नुहोस्", - "edit_name": { - "apply_avatar": "अभतार लागू गर्नुहोस्", - "avatar_label": "प्रोफाइल तस्वीर", - "avatar_preview": "अभतार पूर्वावलोकन", - "placeholder": "आफ्नो नाम प्रविष्ट गर्नुहोस्", - "remove_avatar": "अभतार हटाउनुहोस्", - "select_avatar": "अभतार छान्नुहोस्", - "title": "नाम सम्पादन गर्नुहोस्", - "zoom": "जुम" - }, - "follow_on_x": "X मा फलो गर्नुहोस्", - "import_from_splitwise": "Splitwise बाट आयात गर्नुहोस्", - "import_from_splitwise_details": { - "choose_file": "फाइल छान्नुहोस्", - "export_splitwise_data_button": "Splitwise डाटा निर्यात गर्नुहोस्", - "follow_to_export_splitwise_data": "डाटा निर्यात गर्न निर्देशनहरू पालना गर्नुहोस्", - "messages": { - "import_success": "आयात सफलतापूर्वक सम्पन्न भयो" - }, - "no_file_chosen": "कुनै फाइल छानिएको छैन", - "note": "द्रष्टव्य: हाल यसले साथीहरू र समूहहरू आयात गर्न मात्र समर्थन गर्दछ। यसले लेनदेनहरू (transactions) आयात गर्ने छैन। हामी यसमा काम गरिरहेका छौं।" - }, - "logout": "लगआउट", - "messages": { - "submit_error": "पेश गर्दा त्रुटि भयो", - "submit_success": "सफलतापूर्वक पेश भयो" - }, - "notifications": { - "disable_notification": "सूचनाहरू असक्षम गर्नुहोस्", - "enable_notification": "सूचनाहरू सक्षम गर्नुहोस्", - "messages": { - "notification_granted": "सूचनाको अनुमति प्राप्त भयो" - } - }, - "star_on_github": "GitHub मा स्टार दिनुहोस्", - "submit_feedback": "प्रतिक्रिया पठाउनुहोस्", - "submit_feedback_details": { - "placeholder": "यहाँ आफ्नो प्रतिक्रिया लेख्नुहोस्", - "title": "प्रतिक्रिया" - }, - "support_us": "हामीलाई सहयोग गर्नुहोस्", - "title": "खाता", - "write_review": "समीक्षा लेख्नुहोस्" - }, - "actions": { - "add_expense": "खर्च थप्नुहोस्", - "back": "फिर्ता", - "cancel": "रद्द गर्नुहोस्", - "close": "बन्द गर्नुहोस्", - "confirm": "पुष्टि गर्नुहोस्", - "connect": "जडान गर्नुहोस्", - "copy": "प्रतिलिपि गर्नुहोस्", - "create": "सिर्जना गर्नुहोस्", - "edit_expense": "खर्च सम्पादन गर्नुहोस्", - "export": "निर्यात गर्नुहोस्", - "fetch": "प्राप्त गर्नुहोस्", - "import": "आयात गर्नुहोस्", - "invite": "निमन्त्रणा गर्नुहोस्", - "leave": "छोड्नुहोस्", - "next": "अर्को", - "reconnect": "पुन: जडान गर्नुहोस्", - "save": "बचत गर्नुहोस्", - "settle_up": "हिसाब मिलान गर्नुहोस्", - "submit": "पेश गर्नुहोस्" - }, - "actors": { - "all": "सबै", - "friends": "साथीहरू", - "groups": "समूहहरू", - "members": "सदस्यहरू", - "owner": "मालिक", - "you": "तपाईं", - "you_accusativus": "तपाईंलाई", - "you_dativus": "तपाईंका लागि" - }, - "auth": { - "continue_with": "{{provider}} बाट अगाडि बढ्नुहोस्", - "email_placeholder": "इमेल ठेगाना", - "no_providers_configured": "कुनै प्रदायक कन्फिगर गरिएको छैन", - "no_providers_instructions": "कृपया लगइन प्रदायकहरू सेट अप गर्नुहोस्", - "otp_sent": "हामीले OTP सहितको इमेल पठाएका छौं। कृपया आफ्नो इनबक्स जाँच गर्नुहोस् र साइन इन गर्न इमेलमा रहेको लिङ्क थिच्नुहोस्।", - "send_magic_link": "म्याजिक लिङ्क पठाउनुहोस्", - "sending": "पठाउँदै...", - "setup_instructions": "सेटअप निर्देशनहरू", - "trouble_logging_in": "लगइन गर्न समस्या भयो? सम्पर्क गर्नुहोस्" - }, - "balances": { - "default_split": { - "cleared": "पूर्वनिर्धारित बाँडफाँड हटाइयो", - "configure": "पूर्वनिर्धारित बाँडफाँड", - "updated": "पूर्वनिर्धारित बाँडफाँड अद्यावधिक भयो" - }, - "user_preferences": { - "title": "प्राथमिकताहरू" - } - }, - "bank_transactions": { - "choose_bank_provider": "बैंक प्रदायक छान्नुहोस्", - "no_bank_providers_found": "कुनै बैंक प्रदायक फेला परेन", - "plaid": { - "bank_connected_successfully": "बैंक सफलतापूर्वक जडान भयो", - "bank_connection_cancelled": "बैंक जडान रद्द गरियो", - "bank_connection_failed": "बैंक जडान असफल भयो" - }, - "search_bank": "बैंक खोज्नुहोस्", - "select_bank_provider": "बैंक प्रदायक चयन गर्नुहोस्", - "to_bank": "बैंकमा" - }, - "currency_conversion": { - "amount_to_receive": "प्राप्त हुने रकम", - "description": "मुद्रा परिवर्तन गर्नुहोस्।", - "exchange_rate": "विनिमय दर", - "fetching_rate": "दर प्राप्त गर्दै...", - "rate": "दर", - "success_toast": "मुद्रा सफलतापूर्वक परिवर्तन भयो", - "title": "मुद्रा परिवर्तन" - }, - "errors": { - "currency_conversion_error": "मुद्रा परिवर्तनमा त्रुटि", - "currency_conversion_failed": "मुद्रा परिवर्तन असफल भयो", - "currency_conversion_malformed": "अमान्य मुद्रा डाटा", - "email_invalid": "इमेल अमान्य छ, कृपया साइन-इन प्रक्रिया फेरि प्रयास गर्नुहोस्।", - "email_required": "इमेल आवश्यक छ", - "feedback_min_length": "प्रतिक्रिया धेरै छोटो भयो", - "feedback_required": "प्रतिक्रिया आवश्यक छ", - "group_balances_malformed": "समूहको बाँकी हिसाब विवरण अमान्य छ, कृपया यसबारे जानकारी दिनुहोस् वा हिसाब पुन: गणना गर्ने प्रयास गर्नुहोस्।", - "group_name_update_failed": "समूहको नाम अपडेट गर्न असफल", - "image_compression_failed": "छवि कम्प्रेसन असफल भयो", - "import_failed": "आयात असफल भयो", - "invalid_cron_expression": "अमान्य क्रोन अभिव्यक्ति", - "invalid_currency_code": "अमान्य मुद्रा कोड {{code}}", - "language_change_failed": "भाषा परिवर्तन गर्न असफल", - "less_than": "File {{size}}MB भन्दा कम", - "name_required": "नाम आवश्यक छ", - "no_providers": "प्रमाणीकरण प्रदायकहरू (authentication providers) प्राप्त गर्दा त्रुटि भयो। कृपया ब्याकइन्ड लगहरू जाँच गर्नुहोस्।", - "notification_not_supported": "यो ब्राउजरमा सूचना समर्थन गर्दैन", - "otp_invalid": "अमान्य OTP", - "otp_required": "OTP आवश्यक छ", - "recurrence_delete_failed": "आवर्ती खर्च हटाउन असफल", - "recurrence_update_failed": "आवर्ती खर्च अपडेट गर्न असफल", - "request_error": "अनुरोधमा त्रुटि", - "saving_expense": "खर्च बचत गर्दा त्रुटि", - "setting_update_failed": "सेटिङ अपडेट गर्न असफल", - "signin_error": "साइन इन गर्दा त्रुटि ", - "signup_disabled": "साइन अप असक्षम गरिएको छ", - "something_went_wrong": "केही गलत भयो", - "subscribe_error": "सबस्क्राइब गर्दा त्रुटि", - "unsubscribe_error": "अनसबस्क्राइब गर्दा त्रुटि", - "upload_failed": "अपलोड असफल भयो", - "uploading_error": "अपलोड गर्दा त्रुटि", - "valid_email": "कृपया मान्य इमेल राख्नुहोस्" - }, - "expense_details": { - "add_expense": "खर्च थप्नुहोस्", - "add_expense_details": { - "add_new_expense": "नयाँ खर्च थप्नुहोस्", - "amount_placeholder": "रकम", - "description_placeholder": "विवरण (उदा: खाजा, भाडा)", - "pick_a_date": "मिति छान्नुहोस्", - "select_user_or_group": { - "add_to_split_pro": "Split Pro मा थप्नुहोस्", - "note": "नोट", - "only_one_group_time": "एक पटकमा एउटा मात्र समूह", - "send_invite": "निमन्त्रणा पठाउनुहोस्", - "warning": "चेतावनी" - }, - "split_type_section": { - "split_equally": "बराबर बाँड्नुहोस्", - "split_unequally": "असमान रूपमा बाँड्नुहोस्", - "types": { - "adjustment": { - "remaining_to_split_equally": "बराबर बाँड्न बाँकी", - "title": "समायोजन" - }, - "equal": { - "per_person": "प्रति व्यक्ति", - "title": "बराबर" - }, - "exact": { - "remaining": "बाँकी", - "title": "निश्चित रकम" - }, - "percentage": { - "remaining": "बाँकी प्रतिशत", - "title": "प्रतिशत" - }, - "share": { - "shares": "हिस्सा", - "title": "हिस्सा", - "total_shares": "कुल हिस्सा" - } - } - }, - "sponsor_us": "हामीलाई प्रायोजन गर्नुहोस्", - "upload_file": { - "messages": { - "upload_success": "फाइल सफलतापूर्वक अपलोड भयो" - } - }, - "user_input": { - "add_more_friends": "थप साथीहरू थप्नुहोस्", - "cannot_change_group": "समूह परिवर्तन गर्न सकिँदैन", - "remove_group": "समूह हटाउनुहोस्", - "search_friends": "साथीहरू खोज्नुहोस्" - } - }, - "already_added": "पहिले नै थपिएको छ", - "balance_list": { - "are_settled_up": "सबैको हिसाब मिलान भएको छ", - "is_settled_up": "हिसाब मिलान भएको छ", - "press_balance_info": "थप जानकारीको लागि ब्यालेन्समा थिच्नुहोस्" - }, - "bank_transactions": "बैंक लेनदेन", - "clear": "हटाउनुहोस्", - "delete_expense_details": { - "text": "यो कार्य फिर्ता गर्न सकिँदैन। यसले तपाईंको खर्च स्थायी रूपमा हटाउनेछ।", - "title": "के तपाईं पूर्ण रूपमा निश्चित हुनुहुन्छ?" - }, - "multiple_transactions": { - "add_all": "सबै थप्नुहोस्", - "add_one_by_one": "पालैपालो थप्नुहोस्", - "description": "तपाईंले धेरै लेनदेनहरू छान्नुभएको छ। तिनीहरूलाई हालकै सेटिङ अनुसार एकैसाथ थप्ने वा एक-एक गरी सेटिङ मिलाएर थप्ने, छान्नुहोस्।", - "title": "बहु लेनदेनहरू" - }, - "no_transactions_yet": "अहिलेसम्म कुनै लेनदेन छैन", - "pending": "बाँकी", - "submit_all": "सबै पेश गर्नुहोस्", - "title": "खर्च विवरण", - "title_mobile": "विवरण" - }, - "group_details": { - "add_members": "सदस्यहरू थप्नुहोस्", - "copied": "प्रतिलिपि गरियो", - "create_group": { - "group_name_placeholder": "समूहको नाम", - "title": "नयाँ समूह सिर्जना गर्नुहोस्" - }, - "group_info": { - "actions": "कार्यहरू", - "archive_group": "समूह अर्काइभ गर्नुहोस्", - "archive_group_details": { - "can_archive": "यो समूहलाई अर्काइभ गरिनेछ र तपाईंको मुख्य समूहहरूको सूचीबाट लुकाइनेछ। आवश्यक परेमा तपाईंले यसलाई पछि फेरि हेर्न सक्नुहुन्छ।", - "cant_archive": "बाँकी हिसाब भएको समूहलाई अर्काइभ गर्न सकिँदैन। पहिले सबै हिसाब मिलान हुनुपर्छ।", - "title": "के तपाईं पक्का यो समूहलाई अर्काइभ गर्न चाहनुहुन्छ?" - }, - "archived": "अर्काइभ गरिएको", - "configure_default_split": "पूर्वनिर्धारित बाँडफाँड मिलाउनुहोस्", - "default_split": "पूर्वनिर्धारित बाँडफाँड", - "delete_group": "समूह हटाउनुहोस्", - "delete_group_details": { - "can_delete": "तपाईं यो समूह हटाउन सक्नुहुन्छ", - "cant_delete": "हिसाब बाँकी भएकोले यो समूह हटाउन सकिँदैन", - "title": "के तपाईं पूर्ण रूपमा निश्चित हुनुहुन्छ?" - }, - "edit_group": "समूह सम्पादन गर्नुहोस्", - "group_created": "समूह सिर्जना गरियो", - "leave_group": "समूह छोड्नुहोस्", - "leave_group_details": { - "can_leave": "तपाईं यो समूह छोड्न सक्नुहुन्छ", - "cant_leave": "हिसाब बाँकी भएकोले समूह छोड्न मिल्दैन", - "title": "के तपाईं पूर्ण रूपमा निश्चित हुनुहुन्छ?" - }, - "members": "सदस्यहरू", - "recalculate_balances": "बाँकी हिसाब पुन: गणना गर्नुहोस्", - "recalculate_balances_details": { - "description": "यदि बाँकी हिसाब र खर्चको विवरण मिलेको छैन भने, तपाईंले त्यसलाई पुन: गणना (recalculate) गर्न सक्नुहुन्छ। ध्यान दिनुहोस् कि यदि खर्चहरूको संख्या धेरै छ भने यसले केही समय लिन सक्छ। समूह बाहिरका हिसाबहरूमा यसले कुनै असर गर्ने छैन।", - "title": "के तपाईं निश्चित हुनुहुन्छ?" - }, - "remove_member_details": { - "can_remove": "सदस्य हटाउनुहोस्", - "cant_remove": "बाँकी हिसाब भएको सदस्यलाई हटाउन मिल्दैन", - "title": "के तपाईं पूर्ण रूपमा निश्चित हुनुहुन्छ?" - }, - "simplify_debts": "ऋण सरल बनाउनुहोस्", - "title": "समूह जानकारी" - }, - "group_statistics": { - "first_expense": "पहिलो खर्च", - "title": "तथ्याङ्क", - "total_expenses": "कुल खर्च" - }, - "messages": { - "balances_recalculated": "हिसाब पुन: गणना गरियो", - "default_split_cleared": "पूर्वनिर्धारित बाँडफाँड हटाइयो", - "default_split_updated": "पूर्वनिर्धारित बाँडफाँड अद्यावधिक भयो", - "group_archived": "समूह अर्काइभ गरियो", - "group_name_updated": "समूहको नाम अपडेट भयो" - }, - "no_members": { - "add_members": "सदस्य थप्नुहोस्", - "add_members_details": { - "add_to_split_pro": "Split Pro मा थप्नुहोस्", - "note": "नोट", - "placeholder": "नाम वा इमेल", - "send_invite": "निमन्त्रणा पठाउनुहोस्", - "title": "सदस्य थप्नुहोस्", - "warning": "चेतावनी" - }, - "invite_link": "निमन्त्रणा लिङ्क", - "no_members": "समूहमा अहिलेसम्म कुनै सदस्यहरू छैनन्।" - }, - "tabs": { - "balances": "बाँकी हिसाब", - "expenses": "खर्चहरू" - }, - "title": "समूह विवरण" - }, - "invite_message": { - "in_splitpro": "SplitPro मा", - "join_to": "सामेल हुनुहोस्", - "text": "समूहमा सामेल हुनुहोस् र तपाईंले खर्चहरू थप्न, व्यवस्थापन गर्न र आफ्नो बाँकी हिसाब ट्र्याक गर्न सक्नुहुन्छ" - }, - "meta": { - "application_name": "SplitPro", - "description": "आफ्ना साथीहरूसँग नि:शुल्क खर्च बाँड्नुहोस्", - "title": "SplitPro - आफ्ना साथीहरूसँग नि:शुल्क खर्च बाँड्नुहोस्" - }, - "navigation": { - "account": "खाता", - "activity": "गतिविधि", - "add": "थप्नुहोस्", - "add_expense": "खर्च थप्नुहोस्", - "balances": "बाँकी हिसाब", - "groups": "समूहहरू", - "recurring": "आवर्ती" - }, - "recurrence": { - "cron_expression": "क्रोन अभिव्यक्ति", - "days_of_month": "महिनाका दिनहरू", - "days_of_week": "हप्ताका दिनहरू", - "delete_description": "यसले भविष्यमा हुने खर्चहरूको सिर्जनालाई रोक्नेछ। यो आवर्ती (recurrence) बाट पहिले नै सिर्जना भइसकेका खर्चहरू भने मेटिने छैनन्।", - "delete_title": "आवर्ती खर्च हटाउनुहोस्", - "derived_delete_warning": "यो खर्च एउटा आवर्ती (recurrence) प्रक्रियाको हिस्सा हो। केवल यही खर्च मात्र मेटिनेछ। भविष्यका आवर्ती खर्चहरू यथावत रहनेछन्।", - "derived_edit_warning": "यो खर्च एउटा आवर्ती (recurrence) प्रक्रियाको हिस्सा हो। परिवर्तनहरूले केवल यसै खर्चलाई मात्र असर गर्नेछन्।", - "description": "यो खर्चको लागि स्वचालित आवर्ती (automatic recurrence) सेट अप गर्नुहोस्।", - "edit_confirmation_title": "परिवर्तन पुष्टि गर्नुहोस्", - "edit_description": "यसले भविष्यका खर्चहरूको तालिका (schedule) परिवर्तन गर्नेछ। हाल भइरहेका खर्चहरूमा कुनै परिमार्जन हुने छैन।", - "edit_title": "आवर्ती खर्च सम्पादन गर्नुहोस्", - "empty": "कुनै आवर्ती खर्च छैन", - "expense_for_the_amount_of": "खर्च {{name}}, {{amount}} {{currency}} को रकमको लागि", - "last_day": "अन्तिम दिन", - "months": "महिनाहरू", - "never": "कहिल्यै पनि", - "recurring": "आवर्ती", - "schedule_type": { - "custom": "अनुकूल", - "day": "दैनिक", - "month": "मासिक", - "never": "कहिल्यै होइन", - "week": "साप्ताहिक", - "year": "वार्षिक" - }, - "template_delete_warning": "यो एक आवर्ती खर्च (recurring expense) टेम्पलेट हो। यसलाई हटाउनाले भविष्यका सबै आवर्ती खर्चहरू रोकिनेछन्।", - "template_edit_warning": "यो एक आवर्ती खर्च (recurring expense) टेम्पलेट हो। परिवर्तनहरू भविष्यका सबै आवर्ती खर्चहरूमा लागू हुनेछन्।", - "time_of_day": "दिनको समय", - "title": "आवर्ती खर्चहरू", - "view_recurring_page": "आवर्ती पृष्ठ हेर्नुहोस्" - }, - "ui": { - "added_by": "थप्ने व्यक्ति", - "and": "र", - "balance": "बाँकी", - "balances": "बाँकी हिसाबहरू", - "delete": "हटाउनुहोस्", - "deleted_by": "हटाउने व्यक्ति", - "edited_by": "सम्पादन गर्ने व्यक्ति", - "expense": { - "for": "को लागि", - "from": "बाट", - "paid_by": "तिर्ने व्यक्ति", - "received_by": "प्राप्त गर्ने व्यक्ति", - "to": "लाई", - "user": { - "deleted": "हटाए", - "get": "पाउनु पर्ने", - "lent": "सापटी दिए", - "owe": "तिर्नु पर्ने", - "paid": "तिरे", - "pay": "तिर्नुहोस्", - "received": "प्राप्त गरे" - }, - "you": { - "deleted": "तपाईंले हटाउनुभयो", - "get": "तपाईंले पाउनु पर्ने", - "lent": "तपाईंले सापटी दिनुभयो", - "owe": "तपाईंले तिर्नु पर्ने", - "paid": "तपाईंले तिर्नुभयो", - "pay": "तपाईंले तिर्नुहोस्", - "received": "तपाईंले प्राप्त गर्नुभयो" - } - }, - "expense_details": "खर्च विवरण", - "in_group": "समूहमा", - "no_activity": "कुनै गतिविधि छैन", - "not_involved": "संलग्न नभएको", - "not_set": "सेट गरिएको छैन", - "on": "मा", - "or": "वा", - "outstanding_balances": "बाँकी रहेका हिसाबहरू", - "select_balance": "बाँकी हिसाब छान्नुहोस्", - "select_currency": "मुद्रा चयन गर्नुहोस्", - "settle_up_name": "हिसाब मिलान", - "settled_up": "हिसाब मिलान भयो", - "settlement": "हिसाब मिलान", - "share_text": "बाँड्नुहोस्", - "show_all_currencies": "सबै मुद्राहरू देखाउनुहोस्", - "today": "आज", - "total_balance": "कुल बाँकी हिसाब" - } -} diff --git a/public/locales/ne/home.json b/public/locales/ne/home.json deleted file mode 100644 index 46a533f3a..000000000 --- a/public/locales/ne/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "सुरक्षित रूपमा आफ्नो बैंक खाता जडान गर्नुहोस् र कारोबारहरू स्वचालित रूपमा आयात गर्नुहोस्", - "title": "बैंक जडान" - }, - "currency_conversion": { - "description": "विदेशी मुद्राहरूलाई तुरुन्तै आफ्नो स्थानीय मुद्रामा रूपान्तरण गर्नुहोस्", - "title": "मुद्रा रूपान्तरण" - }, - "debt_simplification": { - "description": "जटिल ऋणहरूलाई कम भन्दा कम लेनदेनमा सरल बनाउनुहोस्", - "title": "ऋण सरलीकरण" - }, - "groups_and_friends": { - "description": "साथीहरू थप्नुहोस् र विभिन्न यात्रा वा कार्यक्रमहरूको लागि समूहहरू बनाउनुहोस्", - "title": "समूह र साथीहरू" - }, - "i18": { - "description": "आफ्नो मनपर्ने भाषामा एप प्रयोग गर्नुहोस्", - "title": "बहुभाषी समर्थन" - }, - "import_splitwise": { - "description": "आफ्नो पुरानो Splitwise डाटा सजिलै यहाँ सार्नुहोस्", - "title": "Splitwise बाट आयात" - }, - "multiple_currencies": { - "description": "एउटै प्रयोगकर्ताको लागि फरक मुद्रामा खर्च थप्नु पर्ने छ? कुनै समस्या छैन!", - "title": "विभिन्न मुद्राहरू" - }, - "open_source": { - "description": "जसले गर्दा यसलाई गलत नियन्त्रणमा जान गाह्रो बनाउँछ। आफैं होस्ट गर्न एकदमै सजिलो", - "title": "ओपन सोर्स" - }, - "push_notifications": { - "description": "महत्त्वपूर्ण सूचनाहरू कहिल्यै नछुटाउनुहोस्। कसैले खर्च थप्दा वा हिसाब मिलान गर्दा तुरुन्तै सूचना पाउनुहोस्", - "title": "पुश सूचनाहरू" - }, - "pwa_support": { - "description": "मोबाइल एपहरू मन पर्छ? हामी छौँ नि! यसलाई PWA को रूपमा इन्स्टल गर्नुहोस् र तपाईंले फरक नै थाहा पाउनुहुने छैन!", - "title": "PWA समर्थन" - }, - "recurring_transactions": { - "description": "मासिक भाडा वा सदस्यता जस्ता दोहोरिने खर्चहरू स्वचालित बनाउनुहोस्", - "title": "आवर्ती कारोबार" - }, - "title": "मुख्य विशेषताहरू", - "unequal_split": { - "description": "हिसावलाई प्रतिशत, हिस्सा वा निश्चित रकम अनुसार असमान रूपमा बाँड्नुहोस्।", - "title": "असमान विभाजन" - }, - "upload_receipts": { - "description": "प्रमाणको लागि बिल वा रसिदका फोटोहरू अपलोड गर्नुहोस्", - "title": "रसिद अपलोड" - } - }, - "footer": { - "built_by": "द्वारा निर्मित" - }, - "hero": { - "add_expense_button": "खर्च थप्नुहोस्", - "star_github_button": "GitHub मा स्टार दिनुहोस्", - "subtitle_link": "ओपन सोर्स", - "subtitle_part1": "एक शक्तिशाली र", - "subtitle_part2": "SplitWise को विकल्प", - "title_highlight": "सजिलो", - "title_part1": "साथीहरूसँग खर्च बाँड्न अब एकदमै" - }, - "meta": { - "description": "SplitPro - आफ्ना साथीहरूसँग नि:शुल्क खर्च बाँड्नुहोस्", - "title": "SplitPro - आफ्ना साथीहरूसँग नि:शुल्क खर्च बाँड्नुहोस्" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "गोपनीयता नीति", - "terms": "शर्तहरू" - } -} diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json deleted file mode 100644 index 3701cf232..000000000 --- a/public/locales/nl/common.json +++ /dev/null @@ -1,454 +0,0 @@ -{ - "account": { - "change_language": "Taal wijzigen", - "change_language_details": { - "messages": { - "language_changed": "Taal succesvol gewijzigd" - }, - "no_language_found": "Geen taal gevonden.", - "placeholder": "Selecteer een taal", - "title": "Selecteer een taal" - }, - "debug_info": "Foutopsporingsinformatie", - "debug_info_details": { - "copy_failed": "Foutopsporingsbericht naar klembord kopiëren mislukt", - "description": "Plak hieronder de informatie bij het aanmaken van een ondersteuningsaanvraag:", - "git": "Git", - "new_version_available": "Een nieuwere versie is beschikbaar:", - "send_test_notification": "Verstuur testnotificatie", - "test_notification_failed": "Niet gelukt om testnotificatie te versturen", - "test_notification_sent": "Testnotificatie verstuurd", - "title": "Foutopsporingsinformatie", - "user_agent": "UserAgent", - "version": "Versie" - }, - "default_balance_currency": "Standaard saldo munteenheid", - "download_app": "App downloaden", - "download_app_details": { - "download_as_pwa": "Je kan SplitPro downloaden naar je startscherm als PWA.", - "title": "App downloaden", - "using_android": "Als je Android gebruikt, kijk dan hier eens naar", - "using_ios": "Als je iOS gebruikt, kijk dan hier eens naar", - "video": "video" - }, - "download_splitpro_data": "SplitPro gegevens downloaden", - "edit_name": { - "apply_avatar": "Avatar toepassen", - "avatar_label": "Profielfoto", - "avatar_preview": "Voorvertoning avatar", - "placeholder": "Naam invoegen", - "remove_avatar": "Avatar verwijderen", - "select_avatar": "Selecteer foto", - "title": "Details bewerken", - "zoom": "Inzoomen" - }, - "follow_on_x": "Volg ons op X", - "import_from_splitwise": "Importeren vanuit Splitwise", - "import_from_splitwise_details": { - "choose_file": "Kies bestand", - "export_splitwise_data_button": "Exporteer Splitwise gegevens", - "follow_to_export_splitwise_data": "Volg deze link om de Splitwise gegevens te exporteren", - "messages": { - "import_success": "Succesvol geïmporteerd" - }, - "no_file_chosen": "Geen bestand gekozen", - "note": "Info: Momenteel importeert het enkel vrienden en groepen. Het importeert nog geen transacties. We werken er aan." - }, - "logout": "Uitloggen", - "messages": { - "submit_error": "Details updaten mislukt", - "submit_success": "Details bijgewerkt" - }, - "notifications": { - "disable_notification": "Notificatie uitschakelen", - "enable_notification": "Notificatie inschakelen", - "messages": { - "notification_granted": "Je zal vanaf nu notificaties ontvangen" - } - }, - "star_on_github": "Volg ons op GitHub", - "submit_feedback": "Feedback indienen", - "submit_feedback_details": { - "placeholder": "Vul jouw feedback in", - "title": "Feedback indienen" - }, - "support_us": "Sponsor ons", - "title": "Account", - "write_review": "Schrijf een recensie" - }, - "actions": { - "add_expense": "Uitgave toevoegen", - "back": "Terug", - "cancel": "Annuleren", - "close": "Sluiten", - "confirm": "Bevestigen", - "connect": "Verbinden", - "copy": "Kopiëren", - "create": "Aanmaken", - "edit_expense": "Uitgave bewerken", - "export": "Exporteren", - "fetch": "Ophalen", - "import": "Importeren", - "invite": "Uitnodigen", - "leave": "Verlaten", - "next": "Volgende", - "reconnect": "Opnieuw verbinden", - "save": "Opslaan", - "settle_up": "Vereffenen", - "submit": "Indienen" - }, - "actors": { - "all": "Alle", - "friends": "Vrienden", - "groups": "Groepen", - "members": "Leden", - "owner": "Eigenaar", - "you": "Jij", - "you_accusativus": "Jou", - "you_dativus": "Jou" - }, - "auth": { - "continue_with": "Doorgaan met {{provider}}", - "email_placeholder": "Voer je e-mailadres in", - "no_providers_configured": "Geen authenticatieproviders geconfigureerd", - "no_providers_instructions": "Configureer ten minste één authenticatieprovider om in te loggen. Zie de", - "otp_sent": "We hebben een e-mail met de OTP verzonden. Controleer je inbox en klik op de link in de e-mail om in te loggen.", - "send_magic_link": "Stuur magische link", - "sending": "Verzenden...", - "setup_instructions": "Docker installatie-instructies", - "trouble_logging_in": "Problemen met inloggen? Neem contact op" - }, - "balances": { - "default_split": { - "cleared": "Standaardsplitsing gewist", - "configure": "Standaardsplitsing", - "updated": "Standaardsplitsing bijgewerkt" - }, - "user_preferences": { - "title": "Voorkeuren" - } - }, - "bank_transactions": { - "choose_bank_provider": "Kies financiële instelling", - "no_bank_providers_found": "Geen financiële instelling gevonden", - "plaid": { - "bank_connected_successfully": "Bank succesvol verbonden", - "bank_connection_cancelled": "Verbinding met bank geannuleerd", - "bank_connection_failed": "Mislukt om te verbinden met de bank" - }, - "search_bank": "Zoek bank", - "select_bank_provider": "Selecteer financiële instelling", - "to_bank": "naar bank" - }, - "currency_conversion": { - "amount_to_receive": "Bedrag te ontvangen", - "description": "Converteer het bedrag naar een andere munteenheid.", - "exchange_rate": "Wisselkoers", - "fetching_rate": "Wisselkoers ophalen...", - "rate": "Koers", - "success_toast": "Valutaconversie succesvol ingesteld", - "title": "Valutaconversie" - }, - "errors": { - "currency_conversion_error": "Fout bij het instellen van de valutaconversie", - "currency_conversion_failed": "Het omrekenen van valuta mislukt", - "currency_conversion_malformed": "De gegevens voor de valutaconversie zijn onjuist", - "email_invalid": "E-mailadres is ongeldig, probeer het inlogproces opnieuw.", - "email_required": "E-mailadres is vereist", - "feedback_min_length": "Feedback moet ten minste 10 tekens hebben", - "feedback_required": "Feedback is vereist", - "group_balances_malformed": "De gegevens van de groepssaldo's zijn onjuist. Meld dit als een probleem of probeer de berekening opnieuw uit te voeren.", - "group_name_update_failed": "Fout bij het bijwerken van de groepsnaam", - "image_compression_failed": "Afbeeldingscompressie mislukt, origineel bestand wordt geüpload", - "import_failed": "Fout bij importeren bestand", - "invalid_cron_expression": "Ongeldige cron-uitdrukking", - "invalid_currency_code": "Ongeldige valutacode {{code}}", - "invalid_split": "Bepaal wie deze kosten moet betalen voordat je het opslaat.", - "language_change_failed": "Fout bij taalwijziging", - "less_than": "Bestand moet minder dan {{size}} MB zijn", - "name_required": "Naam is vereist", - "no_providers": "Fout bij het ophalen van authenticatieproviders. Controleer de backend-logbestanden.", - "notification_not_supported": "Notificaties worden niet ondersteund", - "otp_invalid": "Ongeldige OTP", - "otp_required": "OTP is vereist", - "recurrence_delete_failed": "Het verwijderen van de terugkerende betaling is mislukt", - "recurrence_update_failed": "Het bijwerken van de terugkerende betaling is mislukt", - "request_error": "Fout bij ophalen notificatie", - "saving_expense": "Fout tijdens het opslaan van de uitgave", - "setting_update_failed": "Instelling bijwerken mislukt", - "signin_error": "Een fout deed zich voor bij het inloggen: ", - "signup_disabled": "Het registreren van nieuwe accounts is uitgeschakeld op deze instantie", - "something_went_wrong": "Er is iets misgegaan", - "subscribe_error": "Aanmelden voor meldingen niet mogelijk", - "unsubscribe_error": "Fout bij het afmelden van meldingen", - "upload_failed": "Bestand uploaden mislukt", - "uploading_error": "Fout bij uploaden bestand", - "valid_email": "Voer een geldig e-mailadres in" - }, - "expense_details": { - "add_expense": "Uitgave toevoegen", - "add_expense_details": { - "add_new_expense": "Nieuwe uitgave toevoegen", - "amount_placeholder": "Bedrag invullen", - "description_placeholder": "Beschrijving invullen", - "pick_a_date": "Kies een datum", - "select_user_or_group": { - "add_to_split_pro": "Toevoegen aan SplitPro", - "note": "Info: uitnodigingen versturen is voorlopig uitgeschakeld omwille van spam", - "only_one_group_time": "Je kunt maar één groep tegelijk hebben", - "send_invite": "Uitnodiging naar gebruiker versturen", - "warning": "Waarschuwing: Gebruik de functie 'Uitnodiging versturen' niet als het e-mailadres ongeldig is. Gebruik in plaats daarvan 'Toevoegen aan SplitPro'. Je account wordt geblokkeerd als deze functie wordt misbruikt" - }, - "split_type_section": { - "direction": { - "no_money_flow": "Niemand anders is iets verschuldigd", - "owes_payer": "{{debtor}} is {{payer}} verschuldigd", - "owes_you": "{{debtor}} is je geld verschuldigd", - "you_owe": "Je bent {{payer}} geld verschuldigd" - }, - "split_equally": "gelijk verdelen", - "split_unequally": "ongelijk verdelen", - "types": { - "adjustment": { - "remaining_to_split_equally": "Resterend gelijk te verdelen", - "title": "Aanpassing" - }, - "equal": { - "per_person": "per persoon", - "title": "Gelijk" - }, - "exact": { - "remaining": "Resterend", - "title": "Exact" - }, - "percentage": { - "remaining": "Resterend", - "title": "Percentage" - }, - "share": { - "shares": "Delen", - "title": "Aandeel", - "total_shares": "Totaal aantal delen" - } - } - }, - "sponsor_us": "Sponsor ons", - "upload_file": { - "messages": { - "upload_success": "Bestand succesvol opgeladen" - } - }, - "user_input": { - "add_more_friends": "Zoek vrienden, groepen of voeg een e-mailadres toe", - "cannot_change_group": "Je kunt tijdens het bewerken niet van groep wisselen", - "remove_group": "Klik op delete om de groep te verwijderen", - "search_friends": "Zoek vrienden, groepen of voeg een e-mailadres toe" - } - }, - "already_added": "Al toegevoegd", - "balance_list": { - "are_settled_up": "zijn verrekend", - "is_settled_up": "is verrekend", - "press_balance_info": "Klik op de individuele balans om de afrekening te starten" - }, - "bank_transactions": "Banktransacties", - "clear": "Wissen", - "delete_expense_details": { - "text": "Deze actie kan niet ongedaan worden gemaakt. De uitgave wordt definitief verwijderd.", - "title": "Ben je absoluut zeker?" - }, - "multiple_transactions": { - "add_all": "Alles toevoegen", - "add_one_by_one": "Één per één toevoegen", - "description": "Je hebt meerdere transacties geselecteerd. Kies of je ze allemaal tegelijk wilt toevoegen met de huidige splitsinstellingen, of dat je de instellingen één voor één wilt aanpassen.", - "title": "Meerdere transacties toevoegen" - }, - "no_transactions_yet": "Nog geen transacties", - "pending": "In behandeling", - "submit_all": "Alles indienen", - "title": "Uitgave toevoegen", - "title_mobile": "Toevoegen" - }, - "group_details": { - "add_members": "Leden toevoegen", - "copied": "Gekopieerd", - "create_group": { - "group_name_placeholder": "Groepsnaam", - "title": "Groep aanmaken" - }, - "group_info": { - "actions": "Acties", - "archive_group": "Groep archiveren", - "archive_group_details": { - "can_archive": "Deze groep wordt gearchiveerd en verborgen in je groepslijst. Je kunt er later nog steeds bij.", - "cant_archive": "Kan geen groep archiveren met openstaande saldo's. Alle saldo's moeten eerst worden vereffend.", - "title": "Ben je zeker dat je deze groep wilt archiveren?" - }, - "archived": "Gearchiveerd", - "configure_default_split": "Standaardsplitsing instellen", - "default_balance_currency": "Standaard valuta", - "default_split": "Standaardsplitsing", - "delete_group": "Groep verwijderen", - "delete_group_details": { - "can_delete": "Deze handeling kan niet ongedaan worden gemaakt", - "cant_delete": "De groep kan pas worden verwijderd als iedereen zijn saldo heeft vereffend", - "title": "Ben je absoluut zeker?" - }, - "edit_group": "Groep bewerken", - "group_created": "Groep aangemaakt", - "leave_group": "Groep verlaten", - "leave_group_details": { - "can_leave": "Deze handeling kan niet ongedaan worden gemaakt", - "cant_leave": "Je kunt de groep pas verlaten als je openstaand saldo is vereffend", - "title": "Ben je absoluut zeker?" - }, - "members": "Leden", - "recalculate_balances": "Saldo's opnieuw berekenen", - "recalculate_balances_details": { - "description": "Als de saldo's niet overeenkomen met de uitgaven, kan je ze opnieuw berekenen. Dit kan even duren bij een groot aantal uitgaven. Saldo's buiten de groep worden niet beïnvloed.", - "title": "Ben je zeker?" - }, - "remove_member_details": { - "can_remove": "Je staat op het punt dit lid uit de groep te verwijderen", - "cant_remove": "Lid kan niet verwijderd worden zolang er een openstaand saldo is", - "title": "Ben je absoluut zeker?" - }, - "simplify_debts": "Schulden vereenvoudigen", - "title": "Groepsinfo" - }, - "group_statistics": { - "first_expense": "Eerste uitgave", - "title": "Groepsstatistieken", - "total_expenses": "Totale uitgaven" - }, - "messages": { - "balances_recalculated": "Saldo's succesvol herberekend", - "default_balance_currency_cleared": "Standaard saldo munteenheid gewist", - "default_balance_currency_updated": "Standaard saldo munteenheid bijgewerkt", - "default_split_cleared": "Standaardsplitsing gewist", - "default_split_updated": "Standaardsplitsing bijgewerkt", - "group_archived": "Groep succesvol gearchiveerd", - "group_name_updated": "Groepsgegevens bijgewerkt" - }, - "no_members": { - "add_members": "Leden toevoegen", - "add_members_details": { - "add_to_split_pro": "Toevoegen aan SplitPro", - "note": "Info: uitnodigingen per e-mail zijn uitgeschakeld", - "placeholder": "Naam of e-mailadres invoeren", - "send_invite": "Uitnodiging naar gebruiker versturen", - "title": "Leden toevoegen", - "warning": "Waarschuwing: Gebruik de functie 'Uitnodiging versturen' niet als het e-mailadres ongeldig is. Gebruik in plaats daarvan 'Toevoegen aan SplitPro'. Je account wordt geblokkeerd als deze functie wordt misbruikt" - }, - "invite_link": "Uitnodigingslink", - "no_members": "Nog geen leden in de groep." - }, - "tabs": { - "balances": "Saldo's", - "expenses": "Uitgaven" - }, - "title": "Openstaande groepssaldo's" - }, - "invite_message": { - "in_splitpro": "in SplitPro", - "join_to": "Doe mee met", - "text": "Word lid van de groep en voeg uitgaven toe, beheer ze en houd je saldo bij" - }, - "meta": { - "application_name": "SplitPro", - "description": "Deel uitgaven gratis met je vrienden", - "title": "SplitPro: Deel uitgaven gratis met je vrienden" - }, - "navigation": { - "account": "Account", - "activity": "Activiteit", - "add": "Toevoegen", - "add_expense": "Uitgave toevoegen", - "balances": "Saldo's", - "groups": "Groepen", - "recurring": "Terugkerend" - }, - "recurrence": { - "cron_expression": "Cron-uitdrukking", - "days_of_month": "Dagen van de maand", - "days_of_week": "Dagen van de week", - "delete_description": "Hierdoor worden er in de toekomst geen nieuwe uitgaven meer aangemaakt. Bestaande uitgaven die door deze terugkerende actie zijn aangemaakt, worden niet verwijderd.", - "delete_title": "Herhaling verwijderen", - "derived_delete_warning": "Deze uitgave maakt deel uit van een terugkerende post. Alleen deze uitgave wordt verwijderd. Toekomstige terugkerende uitgaven blijven bestaan.", - "derived_edit_warning": "Deze uitgave maakt deel uit van een reeks terugkerende uitgaven. Wijzigingen hebben alleen gevolgen voor deze uitgave.", - "description": "Stel automatische herhaling in voor deze uitgave.", - "edit_confirmation_title": "Terugkerende uitgave bewerken", - "edit_description": "Dit zal de planning voor toekomstige uitgaven veranderen. Bestaande uitgaven blijven ongewijzigd.", - "edit_title": "Herhaling bewerken", - "empty": "Nog geen terugkerende uitgaven", - "expense_for_the_amount_of": "Uitgave {{name}} voor het bedrag van {{amount}} {{currency}}", - "last_day": "Laatste dag", - "months": "Maanden", - "never": "Geen planning ingesteld", - "recurring": "Terugkerend", - "schedule_type": { - "custom": "Aangepast", - "day": "Dagelijks", - "month": "Maandelijks", - "never": "Nooit", - "week": "Wekelijks", - "year": "Jaarlijks" - }, - "template_delete_warning": "Dit is een sjabloon voor terugkerende uitgaven. Dit verwijderen zal alle toekomstige terugkerende uitgaven stoppen.", - "template_edit_warning": "Dit is een sjabloon voor terugkerende uitgaven. Wijzigingen worden toegepast op alle toekomstige terugkerende uitgaven.", - "time_of_day": "Tijdstip", - "title": "Herhaling", - "view_recurring_page": "Terugkerende uitgaven bekijken" - }, - "ui": { - "added_by": "Toegevoegd door", - "and": "en", - "balance": "saldo", - "balances": "saldo's", - "delete": "Verwijderen", - "deleted_by": "Verwijderd door", - "edited_by": "Aangepast door", - "expense": { - "for": "voor", - "from": "van", - "paid_by": "Betaald door", - "received_by": "Ontvangen door", - "to": "aan", - "user": { - "deleted": "verwijderde", - "get": "krijgt", - "lent": "heeft geleend", - "owe": "is verschuldigd", - "paid": "betaalde", - "pay": "betaalt", - "received": "ontving" - }, - "you": { - "deleted": "verwijderde", - "get": "krijgt", - "lent": "hebt geleend", - "owe": "bent verschuldigd", - "paid": "betaald", - "pay": "betaalt", - "received": "ontving" - } - }, - "expense_details": "Uitgavedetails", - "in_group": "In groep", - "no_activity": "Nog geen activiteit", - "not_involved": "Niet betrokken", - "not_set": "Niet ingesteld", - "on": "op", - "or": "of", - "outstanding_balances": "Openstaande saldo's", - "select_balance": "Saldo selecteren", - "select_currency": "Selecteer munteenheid", - "settle_up_name": "Vereffenen", - "settled_up": "Vereffend", - "settlement": "Schikking", - "share_text": "Bekijk SplitPro. Het is een gratis open source alternatief voor Splitwise", - "show_all_currencies": "Alle munteenheden tonen", - "today": "Vandaag", - "total_balance": "Totaal saldo" - } -} diff --git a/public/locales/nl/home.json b/public/locales/nl/home.json deleted file mode 100644 index b2b7129e4..000000000 --- a/public/locales/nl/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Voeg uitgaven sneller toe via een integratie met de api voor bankrekeningtransacties van GoCardless of Plaid", - "title": "Bank connectie" - }, - "currency_conversion": { - "description": "Zet snel om tussen verschillende valuta met behulp van actuele of historische wisselkoersen", - "title": "Valutaomrekening" - }, - "debt_simplification": { - "description": "Vereenvoudig automatisch groepsuitgaven om het aantal verrichtingen tussen vrienden te verminderen", - "title": "Vereenvoudig schulden" - }, - "groups_and_friends": { - "description": "Kan meerdere groepen creëren of meteen een saldo toevoegen. Alles wordt samengevoegd", - "title": "Groepen en Vrienden" - }, - "i18": { - "description": "Beschikbaar in meerdere talen zodat het delen van onkosten wereldwijd mogelijk is", - "title": "Internationalisering" - }, - "import_splitwise": { - "description": "Saldos hoeven niet handmatig gemigreerd te worden. Je kan gebruikers en groepen importeren van Splitwise", - "title": "Importeren van Splitwise" - }, - "multiple_currencies": { - "description": "Meerdere valuta aan dezelfde gebruiker toevoegen? Geen probleem!", - "title": "Meerdere valuta" - }, - "open_source": { - "description": "Wat het moeilijk maakt om slecht te worden. Gemakkelijk zelf te hosten", - "title": "Open source" - }, - "push_notifications": { - "description": "Mis nooit belangrijke notificaties. Krijg bericht zodra iemand een uitgave toevoegt of zijn schuld aflost", - "title": "Pushbericht" - }, - "pwa_support": { - "description": "Hou je van mobiele apps? We steunen je hierin. Installeer het als een PWA en je merkt geen verschil!", - "title": "PWA ondersteuning" - }, - "recurring_transactions": { - "description": "Stel automatisch terugkerende kosten in voor huur, abonnementen, of andere regelmatig gedeelde kosten", - "title": "Terugkerende transacties" - }, - "title": "Functies", - "unequal_split": { - "description": "Geavanceerde deelopties. Per deel, percentage of exacte bedragen.", - "title": "Oneven Verdeling" - }, - "upload_receipts": { - "description": "Upload ontvangstbewijzen samen met de uitgave", - "title": "Upload Ontvangstbewijzen" - } - }, - "footer": { - "built_by": "Gemaakt door" - }, - "hero": { - "add_expense_button": "Voeg Uitgave Toe", - "star_github_button": "Volg ons op github", - "subtitle_link": "open source", - "subtitle_part1": "Een", - "subtitle_part2": "alternatief voor SplitWise", - "title_highlight": "gratis", - "title_part1": "Deel uitgaven met je vrienden" - }, - "meta": { - "description": "SplitPro: Deel uitgaven gratis met je vrienden", - "title": "SplitPro: Deel uitgaven gratis met je vrienden" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Privacy", - "terms": "Voorwaarden" - } -} diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json deleted file mode 100644 index 99a648619..000000000 --- a/public/locales/pl/common.json +++ /dev/null @@ -1,459 +0,0 @@ -{ - "account": { - "change_language": "Zmień język", - "change_language_details": { - "messages": { - "language_changed": "Język zmieniony pomyślnie" - }, - "no_language_found": "Nie znaleziono języka.", - "placeholder": "Wybierz język", - "title": "Wybierz język" - }, - "debug_info": "Informacje dotyczące debugowania", - "debug_info_details": { - "copy_failed": "Nie udało się skopiować informacji debugowania do schowka", - "description": "Podczas tworzenia zgłoszenia do pomocy technicznej wklej poniższe informacje:", - "git": "Git", - "new_version_available": "Nowa wersja jest dostępna:", - "send_test_notification": "Wyślij powiadomienie testowe", - "test_notification_failed": "Nie udało się wysłać powiadomienia testowego", - "test_notification_sent": "Wysłano powiadomienie testowe", - "title": "Informacje dotyczące debugowania", - "user_agent": "Nagłówek UserAgent", - "version": "Wersja" - }, - "default_balance_currency": "Domyślna waluta bilansu", - "download_app": "Pobierz aplikację", - "download_app_details": { - "download_as_pwa": "Możesz pobrać SplitPro jako PWA na swój ekran główny.", - "title": "Pobierz aplikację", - "using_android": "Jeśli używasz Androida, sprawdź ten", - "using_ios": "Jeśli używasz iOS, sprawdź ten", - "video": "film" - }, - "download_splitpro_data": "Pobierz dane SplitPro", - "edit_name": { - "apply_avatar": "Zastosuj awatar", - "avatar_label": "Zdjęcie profilowe", - "avatar_preview": "Podgląd awatara", - "placeholder": "Wprowadź nazwę", - "remove_avatar": "Usuń awatar", - "select_avatar": "Wybierz obraz", - "title": "Edytuj szczegóły", - "zoom": "Przybliżenie" - }, - "follow_on_x": "Śledź nas na X", - "import_from_splitwise": "Importuj ze Splitwise", - "import_from_splitwise_details": { - "choose_file": "Wybierz plik", - "export_splitwise_data_button": "Eksportuj dane splitwise", - "follow_to_export_splitwise_data": "Kliknij ten link aby wyeksportować dane z splitwise", - "messages": { - "import_success": "Import zakończony pomyślnie" - }, - "no_file_chosen": "Nie wybrano pliku", - "note": "Uwaga: Obecnie obsługuje tylko importowanie znajomych i grup. Nie importuje transakcji. Pracujemy nad tym." - }, - "logout": "Wyloguj", - "messages": { - "submit_error": "Nie udało się zmienić szczegółów", - "submit_success": "Zaktualizowano szczegóły" - }, - "notifications": { - "disable_notification": "Wyłącz powiadomienia", - "enable_notification": "Włącz powiadomienia", - "messages": { - "notification_granted": "Będziesz teraz otrzymywać powiadomienia" - } - }, - "star_on_github": "Zostaw gwiazdkę na GitHub", - "submit_feedback": "Prześlij opinię", - "submit_feedback_details": { - "placeholder": "Wprowadź swoją opinię", - "title": "Prześlij opinię" - }, - "support_us": "Wesprzyj nas", - "title": "Konto", - "write_review": "Napisz recenzję" - }, - "actions": { - "add_expense": "Dodaj wydatek", - "back": "Wstecz", - "cancel": "Anuluj", - "close": "Zamknij", - "confirm": "Potwierdź", - "connect": "Połącz", - "copy": "Kopiuj", - "create": "Utwórz", - "edit_expense": "Edytuj wydatek", - "export": "Eksportuj", - "fetch": "Pobierz", - "import": "Importuj", - "invite": "Zaproś", - "leave": "Opuść", - "next": "Następny", - "reconnect": "Połącz ponownie", - "save": "Zapisz", - "settle_up": "Rozlicz", - "submit": "Zapisz" - }, - "actors": { - "all": "Wszyscy", - "friends": "Znajomi", - "groups": "Grupy", - "members": "Członkowie", - "owner": "Właściciel", - "you": "Ty", - "you_accusativus": "Tobie", - "you_dativus": "Ciebie" - }, - "auth": { - "continue_with": "Kontynuuj z {{provider}}", - "email_placeholder": "Wprowadź swój email", - "no_providers_configured": "Brak skonfigurowanych dostawców uwierzytelniania", - "no_providers_instructions": "Skonfiguruj przynajmniej jednego dostawcę uwierzytelniania, aby się zalogować. Zobacz", - "otp_sent": "Wysłaliśmy email z kodem OTP. Sprawdź swoją skrzynkę odbiorczą i kliknij link w emailu, aby się zalogować.", - "send_magic_link": "Wyślij magiczny link", - "sending": "Wysyłanie...", - "setup_instructions": "instrukcje konfiguracji Docker", - "trouble_logging_in": "Problemy z logowaniem? Skontaktuj się" - }, - "balances": { - "default_split": { - "cleared": "Wyczyszczono domyślny podział", - "configure": "Domyślny podział", - "updated": "Zmieniono domyślny podział" - }, - "user_preferences": { - "title": "Preferencje" - } - }, - "bank_transactions": { - "choose_bank_provider": "Wybierz bank", - "no_bank_providers_found": "Nie znaleziono żadnych dostawców usług bankowych", - "plaid": { - "bank_connected_successfully": "Bank połączony pomyślnie", - "bank_connection_cancelled": "Połączenie z bankiem zostało przerwane", - "bank_connection_failed": "Nie udało się połączyć z bankiem" - }, - "search_bank": "Wyszukaj bank", - "select_bank_provider": "Wybierz dostawcę usług bankowych", - "to_bank": "Do banku" - }, - "currency_conversion": { - "amount_to_receive": "Kwota do otrzymania", - "description": "Przelicz kwotę na inną walutę.", - "exchange_rate": "Kurs wymiany", - "fetching_rate": "Pobieranie kursu...", - "rate": "Kurs", - "success_toast": "Konwersja waluty ustawiona pomyślnie", - "title": "Konwersja waluty" - }, - "errors": { - "amount_required": "Kwota jest wymagana", - "currency_conversion_error": "Błąd podczas ustawiania konwersji waluty", - "currency_conversion_failed": "Nie udało się zamienić walut", - "currency_conversion_malformed": "Dane zamiany walut są nieprawidłowe", - "description_required": "Opis jest wymagany", - "email_invalid": "Email jest nieprawidłowy, spróbuj ponownie proces logowania.", - "email_required": "Email jest wymagany", - "feedback_min_length": "Opinia powinna mieć co najmniej 10 znaków", - "feedback_required": "Opinia jest wymagana", - "group_balances_malformed": "Dane dotyczące sald grupowych są nieprawidłowe. Proszę zgłosić problem lub spróbować ponownie wykonać obliczenia.", - "group_name_update_failed": "Błąd podczas aktualizacji nazwy grupy", - "group_required": "Grupa jest wymagana", - "image_compression_failed": "Kompresja obrazu nie powiodła się. Wczytuję oryginalny plik", - "import_failed": "Błąd podczas importowania pliku", - "invalid_cron_expression": "Błędne wyrażenie cron", - "invalid_currency_code": "Nieprawidłowy kod waluty {{code}}", - "language_change_failed": "Błąd podczas zmiany języka", - "less_than": "Plik powinien być mniejszy niż {{size}}MB", - "name_required": "Nazwa jest wymagana", - "no_providers": "Błąd podczas pobierania dostawców uwierzytelniania. Sprawdź logi.", - "notification_not_supported": "Powiadomienia nie są obsługiwane", - "otp_invalid": "Nieprawidłowy kod OTP", - "otp_required": "Kod OTP jest wymagany", - "recurrence_delete_failed": "Nie udało się usunąć cyklicznego wydatku", - "recurrence_update_failed": "Nie udało się zaktualizować cyklicznego wydatku", - "request_error": "Błąd podczas żądania powiadomienia", - "saving_expense": "Błąd podczas zapisywania wydatku", - "setting_update_failed": "Nie udało się zaktualizować ustawienia", - "signin_error": "Wystąpił błąd podczas logowania: ", - "signup_disabled": "Rejestracja nowych kont jest wyłączona w tej instancji", - "something_went_wrong": "Coś poszło nie tak", - "subscribe_error": "Nie można zasubskrybować powiadomień", - "unsubscribe_error": "Błąd podczas anulowania subskrypcji powiadomień", - "upload_failed": "Nie udało się przesłać pliku", - "uploading_error": "Błąd podczas przesyłania pliku", - "valid_email": "Wprowadź prawidłowy email" - }, - "expense_details": { - "add_expense": "Dodaj wydatek", - "add_expense_details": { - "add_new_expense": "Dodaj nowy wydatek", - "amount_placeholder": "Wprowadź kwotę", - "description_placeholder": "Wprowadź opis", - "pick_a_date": "Wybierz datę", - "select_user_or_group": { - "add_to_split_pro": "Dodaj do Split Pro", - "note": "Uwaga: wysyłanie zaproszeń jest obecnie wyłączone z powodu spamu", - "only_one_group_time": "Możesz mieć tylko jedną grupę naraz", - "send_invite": "Wyślij zaproszenie do użytkownika", - "warning": "Ostrzeżenie: Nie używaj wysyłania zaproszenia, jeśli to nieprawidłowy email. Zamiast tego użyj dodaj do Split Pro. Twoje konto zostanie zablokowane, jeśli ta funkcja będzie nadużywana" - }, - "split_type_section": { - "split_equally": "podzielone równo", - "split_unequally": "podzielone nierówno", - "types": { - "adjustment": { - "remaining_to_split_equally": "Pozostało do równego podziału", - "title": "Korekta" - }, - "equal": { - "per_person": "na osobę", - "title": "Równo" - }, - "exact": { - "remaining": "Pozostało", - "title": "Dokładnie" - }, - "percentage": { - "remaining": "Pozostało", - "title": "Procent" - }, - "share": { - "shares": "Udział(y)", - "title": "Udział", - "total_shares": "Całkowite udziały" - } - } - }, - "sponsor_us": "Wesprzyj nas", - "upload_file": { - "messages": { - "upload_success": "Plik przesłany pomyślnie" - } - }, - "user_input": { - "add_more_friends": "Szukaj znajomych, grup lub dodaj email", - "cannot_change_group": "Nie można zmienić grupy podczas edycji", - "remove_group": "Naciśnij delete aby usunąć grupę", - "search_friends": "Szukaj znajomych, grup lub dodaj email" - } - }, - "already_added": "Już istnieje", - "balance_list": { - "are_settled_up": "rozliczono", - "is_settled_up": "rozliczono", - "press_balance_info": "Naciśnij na poszczególne saldo aby rozpocząć rozliczenie" - }, - "bank_transactions": "Operacje bankowe", - "clear": "Wyczyść", - "delete_expense_details": { - "text": "Ta akcja nie może być cofnięta. To trwale usunie twój wydatek.", - "title": "Czy masz absolutną pewność?" - }, - "expense_list": { - "not_involved": "Nie uczestniczysz", - "you_lent": "Pożyczono", - "you_owe": "Masz do zapłacenia" - }, - "expense_page": { - "expense_details": "Szczegóły wydatku", - "title": "Zaległe salda" - }, - "multiple_transactions": { - "add_all": "Dodaj wszystkie", - "add_one_by_one": "Dodaj pojedynczo", - "description": "Wybrałeś wiele transakcji. Zdecyduj czy chcesz dodać je wszystkie z obecnymi ustawieniami podziału czy dostosować ustawienia pojedynczo.", - "title": "Dodaj wiele transakcji" - }, - "no_transactions_yet": "Brak transakcji", - "pending": "Oczekuje", - "submit_all": "Dodaj wszystko", - "title": "Dodaj wydatek", - "title_mobile": "Dodaj" - }, - "group_details": { - "add_members": "Dodaj członków", - "copied": "Skopiowano", - "create_group": { - "group_name_placeholder": "Nazwa grupy", - "title": "Utwórz grupę" - }, - "group_info": { - "actions": "Akcje", - "archive_group": "Zarchiwizuj grupę", - "archive_group_details": { - "can_archive": "Ta grupa zostanie zarchiwizowana i usunięta z głównej listy grup. Nadal będziesz mógł uzyskać do niej dostęp później, jeśli będzie to potrzebne.", - "cant_archive": "Nie można zarchiwizować grupy z zaległymi saldami. Wszystkie salda muszą być najpierw rozliczone.", - "title": "Na pewno chcesz zarchiwizować tę grupę?" - }, - "archived": "Zarchiwizowano", - "configure_default_split": "Skonfiguruj domyślny podział", - "default_balance_currency": "Domyślna waluta salda", - "default_split": "Domyślny podział", - "delete_group": "Usuń grupę", - "delete_group_details": { - "can_delete": "Ta akcja nie może być cofnięta", - "cant_delete": "Nie można usunąć grupy, dopóki wszyscy się nie rozliczą", - "title": "Na pewno?" - }, - "edit_group": "Edytuj grupę", - "group_created": "Grupa utworzona", - "leave_group": "Opuść grupę", - "leave_group_details": { - "can_leave": "Ta akcja nie może być cofnięta", - "cant_leave": "Nie możesz opuścić grupy, dopóki twoje zaległe saldo nie zostanie rozliczone", - "title": "Na pewno?" - }, - "members": "Członkowie", - "recalculate_balances": "Przelicz salda", - "recalculate_balances_details": { - "description": "Jeśli salda nie odpowiadają wydatkom, możesz je przeliczyć. Uwaga, że może to zająć trochę czasu, jeśli liczba wydatków jest duża. Salda poza grupą nie będą dotknięte.", - "title": "Na pewno?" - }, - "remove_member_details": { - "can_remove": "Zamierzasz usunąć tę osobę z grupy", - "cant_remove": "Nie można usunąć tej osoby, dopóki nie zostanie rozliczona", - "title": "Na pewno?" - }, - "simplify_debts": "Uprość długi", - "title": "Informacje o grupie" - }, - "group_statistics": { - "first_expense": "Pierwszy wydatek", - "title": "Statystyki grupy", - "total_expenses": "Całkowite wydatki" - }, - "messages": { - "balances_recalculated": "Salda przeliczone pomyślnie", - "default_balance_currency_cleared": "Wyczyszczono domyślną walutę salda", - "default_balance_currency_updated": "Zmieniono domyślną walutę salda", - "default_split_cleared": "Wyczyszczono domyślny podział", - "default_split_updated": "Zmieniono domyślny podział", - "group_archived": "Grupa została pomyślnie zarchiwizowana", - "group_name_updated": "Zaktualizowano szczegóły grupy" - }, - "no_members": { - "add_members": "Dodaj członków", - "add_members_details": { - "add_to_split_pro": "Dodaj do Split Pro", - "note": "Uwaga: wysyłanie zaproszeń jest obecnie wyłączone z powodu spamu", - "placeholder": "Wprowadź imię lub email", - "send_invite": "Wyślij zaproszenie do użytkownika", - "title": "Dodaj członków", - "warning": "Ostrzeżenie: Nie używaj wysyłania zaproszenia, jeśli to nieprawidłowy email. Zamiast tego użyj dodaj do Split Pro. Twoje konto zostanie zablokowane, jeśli ta funkcja będzie nadużywana" - }, - "invite_link": "Link do zaproszenia", - "no_members": "Brak członków w grupie." - }, - "tabs": { - "balances": "Salda", - "expenses": "Wydatki" - }, - "title": "Zaległe salda grupy" - }, - "invite_message": { - "in_splitpro": "w Splitpro", - "join_to": "Dołącz do", - "text": "Dołącz do grupy, a będziesz mógł dodawać i zarządzać wydatkami oraz śledzić swoje salda" - }, - "meta": { - "application_name": "SplitPro", - "description": "Dziel wydatki ze znajomymi za darmo", - "title": "SplitPro: Dziel wydatki ze znajomymi za darmo" - }, - "navigation": { - "account": "Konto", - "activity": "Aktywność", - "add": "Dodaj", - "add_expense": "Dodaj Wydatek", - "balances": "Salda", - "groups": "Grupy", - "recurring": "Cykliczność" - }, - "recurrence": { - "cron_expression": "Wyrażenie Cron", - "days_of_month": "Dni miesiąca", - "days_of_week": "Dni tygodnia", - "delete_description": "Spowoduje zatrzymanie cyklicznego tworzenia wydatków. Istniejące wydatki utworzone z wykorzystaniem cykliczności nie zostaną usunięte.", - "delete_title": "Usuń cykliczność", - "derived_delete_warning": "Ten wydatek jest częścią wydatku cyklicznego. Tylko obecne wystąpienie zostanie usunięty. Przyszłe wystąpienia wydatku cykliczne będą dalej tworzone.", - "derived_edit_warning": "Ten wydatek jest częścią wydatku cyklicznego. Zmiany zostaną zastosowany wyłącznie do obecnego wydatku.", - "description": "Ustaw cykliczne dodawanie nowych wystąpień tego wydatku.", - "edit_confirmation_title": "Edytuj cykliczne wydatki", - "edit_description": "Spowoduje zmianę harmonogramu przyszłych wydatków. Istniejące wydatki nie zostaną zmienione.", - "edit_title": "Edytuj cykliczność", - "empty": "Brak wydatków cyklicznych", - "expense_for_the_amount_of": "Wydatek {{name}} w wysokości {{amount}} {{currency}}", - "last_day": "Ostatni dzień", - "months": "Miesiące", - "never": "Brak harmonogramu", - "recurring": "Cykliczne", - "schedule_type": { - "custom": "Niestandardowy", - "day": "Dzienny", - "month": "Miesięczny", - "never": "Nigdy", - "week": "Tygodniowy", - "year": "Roczny" - }, - "template_delete_warning": "To jest szablon wydatku cyklicznego. Usunięcie spowoduje zaprzestanie tworzenia wydatków cyklicznych.", - "template_edit_warning": "To jest szablon cyklicznych wydatków. Zmiany zostaną zastosowany do wszystkich przyszłych wydatków cyklicznych.", - "time_of_day": "Godzina", - "title": "Wydatek cykliczny", - "view_recurring_page": "Wyświetl stronę: Cykliczność" - }, - "ui": { - "added_by": "Dodane przez", - "and": "i", - "balance": "saldo", - "balances": "salda", - "delete": "Usuń", - "deleted_by": "Usunięte przez", - "edited_by": "Edytowane przez", - "expense": { - "for": "za", - "from": "od", - "paid_by": "Zapłacone przez", - "received_by": "Otrzymane przez", - "to": "do", - "user": { - "deleted": "usuwa", - "get": "dostaje", - "lent": "odzyskuje", - "owe": "ma do oddania", - "paid": "płaci", - "pay": "płaci", - "received": "dostaje" - }, - "you": { - "deleted": "usuwasz", - "get": "dostajesz", - "lent": "odzyskujesz", - "owe": "masz do oddania", - "paid": "płacisz", - "pay": "płacisz", - "received": "dostajesz" - } - }, - "expense_details": "Szczegóły wydatku", - "in_group": "W grupie", - "no_activity": "Brak aktywności", - "not_involved": "Nie uczestniczy", - "not_set": "Nie ustawiono", - "on": "dnia", - "or": "lub", - "outstanding_balances": "Zaległe salda", - "select_balance": "Wybierz saldo", - "select_currency": "Wybierz walutę", - "settle_up_name": "Rozlicz", - "settled_up": "Rozliczone", - "settlement": "Rozliczenie", - "share_text": "Sprawdź SplitPro. To darmowa alternatywa open source dla Splitwise", - "show_all_currencies": "Pokaż wszystkie waluty", - "today": "Dzisiaj", - "total_balance": "Saldo końcowe" - } -} diff --git a/public/locales/pl/home.json b/public/locales/pl/home.json deleted file mode 100644 index 921f80809..000000000 --- a/public/locales/pl/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Dodawaj wydatki szybciej dzięki integracji z GoCardless lub API transakcji bankowych Plaid", - "title": "Połączenie z bankiem" - }, - "currency_conversion": { - "description": "Szybko przeliczaj różne waluty, korzystając z aktualnych lub historycznych kursów wymiany", - "title": "Przeliczanie walut" - }, - "debt_simplification": { - "description": "Automatycznie uprość długi grupowe, aby zmniejszyć liczbę transakcji potrzebnych między znajomymi", - "title": "Upraszczanie Długów" - }, - "groups_and_friends": { - "description": "Możesz tworzyć wiele grup lub dodać bezpośrednio saldo. Wszystko zostanie skonsolidowane", - "title": "Grupy i Znajomi" - }, - "i18": { - "description": "Dostępne w wielu językach, aby dzielenie wydatków było dostępne na całym świecie", - "title": "Internacjonalizacja" - }, - "import_splitwise": { - "description": "Nie musisz ręcznie migrować danych. Możesz importować użytkowników i grupy ze splitwise", - "title": "Import z splitwise" - }, - "multiple_currencies": { - "description": "Musisz dodać wydatek w różnej walucie dla tego samego użytkownika? Nie ma problemu!", - "title": "Wiele walut" - }, - "open_source": { - "description": "To co dostajesz, zawsze pozostanie darmowe. Łatwe do samodzielnego hostowania", - "title": "Open source" - }, - "push_notifications": { - "description": "Nigdy nie przegap ważnych powiadomień. Dowiesz się, gdy ktoś doda wydatek lub się rozliczy", - "title": "Powiadomienia push" - }, - "pwa_support": { - "description": "Kochasz aplikacje mobilne? Mamy cię na oku. Zainstaluj jako PWA i nawet tego nie zauważysz!", - "title": "Wsparcie PWA" - }, - "recurring_transactions": { - "description": "Stwórz wydatki cykliczne dla wydatków takich jak czynsz, subskrypcje lub inne stałe wydatki", - "title": "Wydatki cykliczne" - }, - "title": "Funkcje", - "unequal_split": { - "description": "Zaawansowane opcje podziału. Według udziałów, procentów lub dokładnych kwot.", - "title": "Nierówny podział" - }, - "upload_receipts": { - "description": "Przesyłaj paragony wraz z wydatkiem", - "title": "Przesyłanie paragonów" - } - }, - "footer": { - "built_by": "Zbudowane przez" - }, - "hero": { - "add_expense_button": "Dodaj Wydatek", - "star_github_button": "Zostaw gwiazdkę", - "subtitle_link": "open source", - "subtitle_part1": "Otwarta", - "subtitle_part2": "alternatywa dla SplitWise", - "title_highlight": "za darmo", - "title_part1": "Dziel wydatki ze znajomymi" - }, - "meta": { - "description": "SplitPro: Dziel wydatki ze znajomymi za darmo", - "title": "SplitPro: Dziel wydatki ze znajomymi za darmo" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Prywatność", - "terms": "Warunki" - } -} diff --git a/public/locales/pt-BR/common.json b/public/locales/pt-BR/common.json deleted file mode 100644 index 8302ea679..000000000 --- a/public/locales/pt-BR/common.json +++ /dev/null @@ -1,447 +0,0 @@ -{ - "account": { - "change_language": "Mudar idioma", - "change_language_details": { - "messages": { - "language_changed": "Idioma alterado" - }, - "no_language_found": "Nenhum idioma encontrado.", - "placeholder": "Selecione um idioma", - "title": "Selecionar idioma" - }, - "debug_info": "Info. de depuração", - "debug_info_details": { - "copy_failed": "Falha ao copiar info. de depuração", - "description": "Cole a informação abaixo ao criar uma solicitação de suporte:", - "git": "Git", - "new_version_available": "Uma nova versão está disponível:", - "send_test_notification": "Enviar notificação de teste", - "test_notification_failed": "Não foi possível enviar a notificação de teste", - "test_notification_sent": "Notificação de teste enviada", - "title": "Info. de Depuração", - "user_agent": "UserAgent", - "version": "Versão" - }, - "default_balance_currency": "Moeda de saldo padrão", - "download_app": "Instalar app", - "download_app_details": { - "download_as_pwa": "Você pode instalar o SplitPro como um PWA na sua tela inicial.", - "title": "Instalar app", - "using_android": "Se você estiver usando Android, veja este", - "using_ios": "Se você estiver usando iOS, veja este", - "video": "vídeo" - }, - "download_splitpro_data": "Baixar dados do SplitPro", - "edit_name": { - "apply_avatar": "Aplicar avatar", - "avatar_label": "Foto de perfil", - "avatar_preview": "Prévia do avatar", - "placeholder": "Insira o nome", - "remove_avatar": "Remover avatar", - "select_avatar": "Selecione a imagem", - "title": "Editar detalhes", - "zoom": "Zoom" - }, - "follow_on_x": "Siga-nos no X", - "import_from_splitwise": "Importar do Splitwise", - "import_from_splitwise_details": { - "choose_file": "Escolher arquivo", - "export_splitwise_data_button": "Exportar dados do Splitwise", - "follow_to_export_splitwise_data": "Siga este link para exportar os dados do Splitwise", - "messages": { - "import_success": "Importação realizada" - }, - "no_file_chosen": "Nenhum arquivo selecionado", - "note": "Aviso: Atualmente só é possível importar amigos e grupos. Transações não serão importadas. Estamos trabalhando nisso." - }, - "logout": "Fazer logout", - "messages": { - "submit_error": "Não foi possível atualizar os detalhes", - "submit_success": "Detalhe atualizado" - }, - "notifications": { - "disable_notification": "Desativar notificações", - "enable_notification": "Ativar notificações", - "messages": { - "notification_granted": "Você receberá notificações agora" - } - }, - "star_on_github": "Nos favorite no GitHub", - "submit_feedback": "Enviar feedback", - "submit_feedback_details": { - "placeholder": "Insira seu feedback", - "title": "Enviar feedback" - }, - "support_us": "Nos patrocine", - "title": "Conta", - "write_review": "Escreva uma avaliação" - }, - "actions": { - "add_expense": "Adicionar despesa", - "back": "Voltar", - "cancel": "Cancelar", - "close": "Fechar", - "confirm": "Confirmar", - "connect": "Conectar", - "copy": "Copiar", - "create": "Criar", - "edit_expense": "Editar despesa", - "export": "Exportar", - "fetch": "Buscar", - "import": "Importar", - "invite": "Convidar", - "leave": "Sair", - "next": "Próxima", - "reconnect": "Reconectar", - "save": "Salvar", - "settle_up": "Quitar despesas", - "submit": "Enviar" - }, - "actors": { - "all": "Todos", - "friends": "Amigos", - "groups": "Grupos", - "members": "Membros", - "owner": "Proprietário", - "you": "Você", - "you_accusativus": "Você", - "you_dativus": "Você" - }, - "auth": { - "continue_with": "Continuar com {{provider}}", - "email_placeholder": "Insira seu e-mail", - "no_providers_configured": "Nenhum provedor de autenticação configurado", - "no_providers_instructions": "Por favor, configure pelo menos um provedor de autenticação para fazer login. Consulte as", - "otp_sent": "Enviamos um e-mail para você com o código OTP. Por favor, confira sua caixa de entrada e clique no link contido no e-mail para entrar.", - "send_magic_link": "Enviar link mágico", - "sending": "Enviando...", - "setup_instructions": "instruções de configuração do Docker", - "trouble_logging_in": "Com dificuldades para fazer login? Entre em contato" - }, - "balances": { - "default_split": { - "cleared": "Divisão padrão desfeita", - "configure": "Divisão padrão", - "updated": "Divisão padrão atualizada" - }, - "user_preferences": { - "title": "Preferências" - } - }, - "bank_transactions": { - "choose_bank_provider": "Escolha o provedor bancário", - "no_bank_providers_found": "Nenhum provedor bancário encontrado", - "plaid": { - "bank_connected_successfully": "Banco conectado com êxito", - "bank_connection_cancelled": "Conexão bancária cancelada", - "bank_connection_failed": "Falha ao conectar-se ao banco" - }, - "search_bank": "Procurar banco", - "select_bank_provider": "Selecione o provedor bancário", - "to_bank": "para o banco" - }, - "currency_conversion": { - "amount_to_receive": "Quantia a receber", - "description": "Converta a quantia para uma moeda diferente.", - "exchange_rate": "Taxa de câmbio", - "fetching_rate": "Consultando cotação...", - "rate": "Cotação", - "success_toast": "Conversão monetária definida", - "title": "Conversão de moedas" - }, - "errors": { - "currency_conversion_error": "Erro ao definir conversão monetária", - "currency_conversion_failed": "Falha ao converter moedas", - "currency_conversion_malformed": "Os dados de conversão de moeda estão em formato inválido", - "email_invalid": "E-mail inválido, tente novamente.", - "email_required": "O e-mail é obrigatório", - "feedback_min_length": "O feedback deve conter pelo menos 10 caracteres", - "feedback_required": "O campo feedback é obrigatório", - "group_balances_malformed": "Dados sobre saldos do grupo estão corrompidos, por favor relate o problema ou tente recalcular.", - "group_name_update_failed": "Erro ao atualizar o nome do grupo", - "image_compression_failed": "A compressão da imagem falhou. Tentando enviar o arquivo original", - "import_failed": "Erro ao importar arquivo", - "invalid_cron_expression": "Expressão cron inválida", - "invalid_currency_code": "Moeda inválida com código {{code}}", - "language_change_failed": "Erro ao alterar idioma", - "less_than": "O arquivo deve ter menos de {{size}}MB", - "name_required": "O nome é obrigatório", - "no_providers": "Erro ao buscar provedores de autenticação. Verifique os logs do backend.", - "notification_not_supported": "Sem suporte a notificações", - "otp_invalid": "Código OTP inválido", - "otp_required": "Código OTP é obrigatório", - "recurrence_delete_failed": "Falha ao excluir recorrência", - "recurrence_update_failed": "Falha ao atualizar recorrência", - "request_error": "Erro ao solicitar notificação", - "saving_expense": "Erro ao salvar despesa", - "setting_update_failed": "Falha ao atualizar configuração", - "signin_error": "Erro ao fazer login: ", - "signup_disabled": "Esta instância não permite criação de novas contas", - "something_went_wrong": "Algo deu errado", - "subscribe_error": "Não foi possível inscrever-se nas notificações", - "unsubscribe_error": "Erro ao desinscrever-se das notificações", - "upload_failed": "Falha ao enviar arquivo", - "uploading_error": "Erro ao enviar arquivo", - "valid_email": "Insira um e-mail válido" - }, - "expense_details": { - "add_expense": "Adicionar despesa", - "add_expense_details": { - "add_new_expense": "Adicionar nova despesa", - "amount_placeholder": "Insira a quantia", - "description_placeholder": "Insira a descrição", - "pick_a_date": "Selecione uma data", - "select_user_or_group": { - "add_to_split_pro": "Adicionar ao Split Pro", - "note": "Aviso: o envio de convites está desabilitado para evitar spam", - "only_one_group_time": "Só é possível ter um grupo por vez", - "send_invite": "Enviar convite para usuário", - "warning": "Atenção: Não envie um convite se o e-mail for inválido. Use a opção de adicionar ao Split Pro em vez disso. O uso indevido dos convites resultará no bloqueio da sua conta" - }, - "split_type_section": { - "split_equally": "dividido igualmente", - "split_unequally": "dividido desigualmente", - "types": { - "adjustment": { - "remaining_to_split_equally": "Restante para dividir igualmente", - "title": "Por ajuste" - }, - "equal": { - "per_person": "por pessoa", - "title": "Igualmente" - }, - "exact": { - "remaining": "Falta(m)", - "title": "Por valor exato" - }, - "percentage": { - "remaining": "Falta(m)", - "title": "Porcentagem" - }, - "share": { - "shares": "Parte(s)", - "title": "Por partes", - "total_shares": "Total de partes" - } - } - }, - "sponsor_us": "Nos patrocine", - "upload_file": { - "messages": { - "upload_success": "Arquivo enviado" - } - }, - "user_input": { - "add_more_friends": "Procure amigos, grupos ou insira um e-mail", - "cannot_change_group": "Não é possível mudar o grupo durante a edição", - "remove_group": "Pressione \"apagar\" para remover grupo", - "search_friends": "Procure amigos, grupos ou insira um e-mail" - } - }, - "already_added": "Já adicionado", - "balance_list": { - "are_settled_up": "está(ão) quite(s)", - "is_settled_up": "está quite", - "press_balance_info": "Pressione no saldo individual para quitar os valores" - }, - "bank_transactions": "Transações bancárias", - "clear": "Limpar", - "delete_expense_details": { - "text": "Esta ação não pode ser desfeita. Sua despesa será apagada permanentemente.", - "title": "Tem certeza absoluta?" - }, - "multiple_transactions": { - "add_all": "Adicionar todas", - "add_one_by_one": "Adicionar uma a uma", - "description": "Você selecionou várias transações. Escolha se deseja adicioná-las todas juntas com as configurações de divisão atuais ou ajustar as configurações uma a uma.", - "title": "Adicionar várias transações" - }, - "no_transactions_yet": "Nenhuma transação ainda", - "pending": "Pendente", - "submit_all": "Submeter tudo", - "title": "Adicionar despesa", - "title_mobile": "Adicionar" - }, - "group_details": { - "add_members": "Adicionar membros", - "copied": "Copiado", - "create_group": { - "group_name_placeholder": "Nome do grupo", - "title": "Criar um grupo" - }, - "group_info": { - "actions": "Ações", - "archive_group": "Arquivar grupo", - "archive_group_details": { - "can_archive": "Este grupo será arquivado e oculto da lista principal de grupos. Você ainda pode acessá-lo depois se necessário.", - "cant_archive": "Não é possível arquivar grupos com saldos pendentes. Todos os saldos devem ser quitados primeiro.", - "title": "Tem certeza de que deseja arquivar este grupo?" - }, - "archived": "Arquivado", - "configure_default_split": "Configurar divisão padrão", - "default_balance_currency": "Moeda de saldo padrão", - "default_split": "Divisão padrão", - "delete_group": "Apagar grupo", - "delete_group_details": { - "can_delete": "Esta ação não pode ser revertida", - "cant_delete": "Não é possível remover um grupo até que todos quitem o saldo", - "title": "Tem certeza absoluta?" - }, - "edit_group": "Editar grupo", - "group_created": "Grupo criado", - "leave_group": "Sair do grupo", - "leave_group_details": { - "can_leave": "Esta ação não pode ser revertida", - "cant_leave": "Não é possível sair do grupo até que seu saldo pendente seja quitado", - "title": "Tem certeza absoluta?" - }, - "members": "Membros", - "recalculate_balances": "Recalcular saldos", - "recalculate_balances_details": { - "description": "Se os saldos não corresponderem às despesas, você pode recalculá-los. Note que isso pode levar um tempo caso haja uma lista grande de despesas. Saldos fora do grupo não serão afetados.", - "title": "Tem certeza?" - }, - "remove_member_details": { - "can_remove": "Você está prestes a remover este membro do grupo", - "cant_remove": "Não é possível remover um membro até que seu saldo pendente seja quitado", - "title": "Tem certeza absoluta?" - }, - "simplify_debts": "Simplificar dívidas", - "title": "Informação do grupo" - }, - "group_statistics": { - "first_expense": "Primeira despesa", - "title": "Estatísticas do grupo", - "total_expenses": "Despesas totais" - }, - "messages": { - "balances_recalculated": "Saldos recalculados com sucesso", - "default_balance_currency_cleared": "Moeda de saldo padrão zerada", - "default_balance_currency_updated": "Moeda de saldo padrão atualizada", - "default_split_cleared": "Divisão padrão desfeita", - "default_split_updated": "Divisão padrão atualizada", - "group_archived": "Grupo arquivado", - "group_name_updated": "Detalhes do grupo atualizados" - }, - "no_members": { - "add_members": "Adicionar membros", - "add_members_details": { - "add_to_split_pro": "Adicionar ao Split Pro", - "note": "Aviso: o envio de convites por e-mail está desativado", - "placeholder": "Insira nome ou e-mail", - "send_invite": "Enviar convite para usuário", - "title": "Adicionar membros", - "warning": "Atenção: Não envie um convite para um e-mail inválido. Em vez disso, use \"adicionar ao Split Pro\". O uso indevido de convites resultará no bloqueio da sua conta" - }, - "invite_link": "Link de convite", - "no_members": "Ainda não há membros no grupo." - }, - "tabs": { - "balances": "Saldos", - "expenses": "Despesas" - }, - "title": "Saldos pendentes do grupo" - }, - "invite_message": { - "in_splitpro": "no Splitpro", - "join_to": "Participar de", - "text": "Participe do grupo para adicionar e gerenciar despesas, e acompanhar seus saldos" - }, - "meta": { - "application_name": "SplitPro", - "description": "Divida despesas com seus amigos de graça", - "title": "SplitPro: Divida despesas com seus amigos de graça" - }, - "navigation": { - "account": "Conta", - "activity": "Atividade", - "add": "Adicionar", - "add_expense": "Adicionar despesa", - "balances": "Saldos", - "groups": "Grupos", - "recurring": "Recorrente" - }, - "recurrence": { - "cron_expression": "Expressão Cron", - "days_of_month": "Dias do Mês", - "days_of_week": "Dias da Semana", - "delete_description": "Isso interromperá a criação de despesas futuras. As despesas já criadas por essa recorrência não serão excluídas.", - "delete_title": "Deletar Recorrência", - "derived_delete_warning": "Esta despesa faz parte de uma recorrência. Apenas esta despesa será excluída. As despesas recorrentes futuras permanecem.", - "derived_edit_warning": "Esta despesa faz parte de uma recorrência. As alterações afetarão apenas esta despesa.", - "description": "Configure recorrência automática para esta despesa.", - "edit_confirmation_title": "Editar Despesa Recorrente", - "edit_description": "Isso vai mudar a programação das despesas futuras. As despesas existentes não serão modificadas.", - "edit_title": "Editar Recorrência", - "empty": "Nenhuma despesa recorrente ainda", - "expense_for_the_amount_of": "Despesa {{name}} pelo valor de {{amount}} {{currency}}", - "last_day": "Último dia", - "months": "Meses", - "never": "Nenhum pagamento recorrente configurado", - "recurring": "Recorrente", - "schedule_type": { - "custom": "Personalizado", - "day": "Diário", - "month": "Mensal", - "never": "Nunca", - "week": "Semanal", - "year": "Anual" - }, - "template_delete_warning": "Este é um modelo de despesa recorrente. Excluí-lo interromperá todas as despesas recorrentes futuras.", - "template_edit_warning": "Este é um modelo de despesa recorrente. As alterações serão aplicadas a todas as despesas recorrentes futuras.", - "time_of_day": "Hora do dia", - "title": "Recorrência", - "view_recurring_page": "Ver Página de Recorrências" - }, - "ui": { - "added_by": "Adicionado por", - "and": "e", - "balance": "saldo", - "balances": "saldos", - "delete": "Remover", - "deleted_by": "Removido por", - "edited_by": "Editado por", - "expense": { - "for": "para", - "from": "de", - "paid_by": "Pago por", - "received_by": "Recebido por", - "to": "para", - "user": { - "deleted": "removeu", - "get": "recebe", - "lent": "emprestou", - "owe": "deve", - "paid": "pagou", - "pay": "paga", - "received": "recebeu" - }, - "you": { - "deleted": "removeu", - "get": "recebe", - "lent": "emprestou", - "owe": "deve", - "paid": "pagou", - "pay": "paga", - "received": "recebeu" - } - }, - "expense_details": "Detalhes da despesa", - "in_group": "Em grupo", - "no_activity": "Nenhuma atividade ainda", - "not_involved": "Não está envolvido(a)", - "not_set": "Não definido", - "on": "em", - "or": "ou", - "outstanding_balances": "Saldos pendentes", - "select_balance": "Selecionar saldo", - "select_currency": "Selecionar moeda", - "settle_up_name": "Quitar", - "settled_up": "Quitado", - "settlement": "Quitação", - "share_text": "Confira o SplitPro. É uma alternativa grátis e de código aberto ao Splitwise", - "show_all_currencies": "Mostrar todas as moedas", - "today": "Hoje", - "total_balance": "Saldo total" - } -} diff --git a/public/locales/pt-BR/home.json b/public/locales/pt-BR/home.json deleted file mode 100644 index 681954c68..000000000 --- a/public/locales/pt-BR/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Adicione despesas mais rapidamente integrando uma conta bancária com GoCardless ou Plaid", - "title": "Conexão bancária" - }, - "currency_conversion": { - "description": "Converta moedas rapidamente usando taxas de câmbio atualizadas ou históricas", - "title": "Conversão de moedas" - }, - "debt_simplification": { - "description": "Simplifique automaticamente dívidas do grupo para reduzir o número de transações necessárias entre amigos", - "title": "Simplificação de dívidas" - }, - "groups_and_friends": { - "description": "Pode criar vários grupos ou adicionar saldos diretamente. Tudo será consolidado", - "title": "Grupos e amigos" - }, - "i18": { - "description": "Disponível em vários idiomas para facilitar a divisão de despesas no mundo todo", - "title": "Internacionalização" - }, - "import_splitwise": { - "description": "Não precisa migrar os saldos manualmente. É só importar usuários e grupos do Splitwise", - "title": "Importe do Splitwise" - }, - "multiple_currencies": { - "description": "Precisa adicionar despesas com diferentes moedas para o mesmo usuário? Sem problemas!", - "title": "Múltiplas moedas" - }, - "open_source": { - "description": "O que torna difícil sermos do mal. E fácil de hospedar por conta própria", - "title": "Código aberto" - }, - "push_notifications": { - "description": "Nunca perca uma notificação. Seja notificado quando alguém adicionar uma despesa ou quitar uma dívida", - "title": "Notificações push" - }, - "pwa_support": { - "description": "Gosta de apps? Deixa com a gente. Instale como um PWA: é só adicionar nosso site à sua tela inicial e ele funciona como um aplicativo. Você nem vai notar a diferença!", - "title": "Suporte a PWA" - }, - "recurring_transactions": { - "description": "Configure despesas recorrentes automáticas para aluguel, assinaturas ou outros custos compartilhados recorrentes", - "title": "Transações Recorrentes" - }, - "title": "Funcionalidades", - "unequal_split": { - "description": "Opções de divisão avançadas. Por partes, porcentagem ou quantias exatas.", - "title": "Divisão desigual" - }, - "upload_receipts": { - "description": "Envie recibos e notas fiscais junto às despesas", - "title": "Upload de recibos" - } - }, - "footer": { - "built_by": "Criado por" - }, - "hero": { - "add_expense_button": "Adicionar despesa", - "star_github_button": "Nos favorite no github", - "subtitle_link": "open source", - "subtitle_part1": "Uma alternativa", - "subtitle_part2": "ao SplitWise", - "title_highlight": "de graça", - "title_part1": "Divida despesas com seus amigos" - }, - "meta": { - "description": "SplitPro: Divida despesas com seus amigos de graça", - "title": "SplitPro: Divida despesas com seus amigos de graça" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Privacidade", - "terms": "Termos" - } -} diff --git a/public/locales/pt-PT/common.json b/public/locales/pt-PT/common.json deleted file mode 100644 index 38b09feb3..000000000 --- a/public/locales/pt-PT/common.json +++ /dev/null @@ -1,451 +0,0 @@ -{ - "account": { - "change_language": "Alterar idioma", - "change_language_details": { - "messages": { - "language_changed": "Idioma alterado com sucesso" - }, - "no_language_found": "Nenhum idioma encontrado.", - "placeholder": "Seleciona um idioma", - "title": "Seleciona um idioma" - }, - "debug_info": "Info de Depuração", - "debug_info_details": { - "copy_failed": "Falha ao copiar informação de depuração para a área de transferência", - "description": "Inclua a informação abaixo ao criar um pedido de suporte:", - "git": "Git", - "new_version_available": "Nova versão disponível:", - "send_test_notification": "Enviar notificação de teste", - "test_notification_failed": "Não foi possível enviar a notificação de teste", - "test_notification_sent": "Notificação de teste enviada", - "title": "Informação de Depuração", - "user_agent": "UserAgent", - "version": "Versão" - }, - "default_balance_currency": "Moeda de saldo padrão", - "download_app": "Descarregar app", - "download_app_details": { - "download_as_pwa": "Poderás descarregar o SplitPro como PWA.", - "title": "Descarregar app", - "using_android": "Se estás a usar Android, vê isto", - "using_ios": "Se estás a usar iOS, vê isto", - "video": "vídeo" - }, - "download_splitpro_data": "Descarregar dados do SplitPro", - "edit_name": { - "apply_avatar": "Aplicar avatar", - "avatar_label": "Foto de perfil", - "avatar_preview": "Prévia do avatar", - "placeholder": "Inserir nome", - "remove_avatar": "Remover avatar", - "select_avatar": "Selecione a imagem", - "title": "Editar pormenores", - "zoom": "Zoom" - }, - "follow_on_x": "Segue-nos no X", - "import_from_splitwise": "Importar do Splitwise", - "import_from_splitwise_details": { - "choose_file": "Selecionar ficheiro", - "export_splitwise_data_button": "Exportar dados do Splitwise", - "follow_to_export_splitwise_data": "Acede a este link para exportar os dados do Splitwise", - "messages": { - "import_success": "Importar com sucesso" - }, - "no_file_chosen": "Ficheiro não selecionado", - "note": "Nota: Ainda só temos suporte a importar amigos e grupos. A transações não serão importadas. Estamos a trabalhar nisso." - }, - "logout": "Terminar Sessão", - "messages": { - "submit_error": "Não foi possível atualizar os pormenores", - "submit_success": "Pormenor atualizado" - }, - "notifications": { - "disable_notification": "Desativar notificações", - "enable_notification": "Ativar notificações", - "messages": { - "notification_granted": "Irás receber notificações agora" - } - }, - "star_on_github": "Visita-nos no GitHub", - "submit_feedback": "Submeter feedback", - "submit_feedback_details": { - "placeholder": "Insere o teu feedback", - "title": "Submeter feedback" - }, - "support_us": "Patrocina-nos", - "title": "Conta", - "write_review": "Escreve uma review" - }, - "actions": { - "add_expense": "Adicionar despesa", - "back": "Voltar", - "cancel": "Cancelar", - "close": "Fechar", - "confirm": "Confirmar", - "connect": "Conectar", - "copy": "Copiar", - "create": "Criar", - "edit_expense": "Editar despesa", - "export": "Exportar", - "fetch": "Transferir", - "import": "Importar", - "invite": "Convidar", - "leave": "Sair", - "next": "Próxima", - "reconnect": "Reconectar", - "save": "Salvar", - "settle_up": "Acertar contas", - "submit": "Submeter" - }, - "actors": { - "all": "Todos", - "friends": "Amigos", - "groups": "Grupos", - "members": "Membros", - "owner": "Proprietário", - "you": "Tu", - "you_accusativus": "Tu", - "you_dativus": "Tu" - }, - "auth": { - "continue_with": "Continuar com {{provider}}", - "email_placeholder": "Inserir email", - "no_providers_configured": "Nenhum fornecedor de autenticação configurado", - "no_providers_instructions": "Por favor, configura pelo menos um fornecedor de autenticação para iniciar sessão. Consulta as", - "otp_sent": "Enviámos uma mensagem de email com o OTP. Por favor, verifica a tua caixa de entrada e clica no link no seu interior para te autenticares.", - "send_magic_link": "Enviar link mágico", - "sending": "A enviar...", - "setup_instructions": "instruções de configuração do Docker", - "trouble_logging_in": "Problemas com a autenticação? Contacta-nos" - }, - "balances": { - "default_split": { - "cleared": "Divisão padrão desfeita", - "configure": "Divisão padrão", - "updated": "Divisão padrão atualizada" - }, - "user_preferences": { - "title": "Preferências" - } - }, - "bank_transactions": { - "choose_bank_provider": "Escolha o fornecedor de dados do seu banco", - "no_bank_providers_found": "Nenhum fornecedor de dados de bancos encontrado", - "plaid": { - "bank_connected_successfully": "Banco ligado com sucesso", - "bank_connection_cancelled": "Ligação ao banco cancelada", - "bank_connection_failed": "Falha ao ligar ao banco" - }, - "search_bank": "Escolha o banco", - "select_bank_provider": "Escolha o fornecedor de dados do seu banco", - "to_bank": "para o banco" - }, - "currency_conversion": { - "amount_to_receive": "Valor a receber", - "description": "Converta o valor para uma moeda diferente.", - "exchange_rate": "Taxa de câmbio", - "fetching_rate": "Buscando taxa...", - "rate": "Taxa", - "success_toast": "Conversão de moeda definida com sucesso", - "title": "Conversão de moeda" - }, - "errors": { - "amount_required": "", - "currency_conversion_error": "Erro ao definir conversão de moeda", - "currency_conversion_failed": "Falha ao converter moedas", - "currency_conversion_malformed": "Dados de taxas de câmbio inválidos", - "email_invalid": "Endereço de Email inválido, por favor tenta novamente.", - "email_required": "Email é obrigatório", - "feedback_min_length": "Feedback deve conter pelo menos 10 caracteres", - "feedback_required": "Feedback é obrigatório", - "group_balances_malformed": "Dados de balanços do grupo inválidos, por favor reporte o problema ou tente recalcular.", - "group_name_update_failed": "Erro ao atualizar o nome do grupo", - "image_compression_failed": "A compressão da imagem falhou. Tentar a enviar o ficheiro original", - "import_failed": "Error ao importar ficheiro", - "invalid_cron_expression": "Expressão \"cron\" inválida", - "invalid_currency_code": "Código {{code}} de moeda inválido", - "language_change_failed": "Erro ao alterar idioma", - "less_than": "O ficheiro deve ter menos que {{size}}MB", - "name_required": "O nome é obrigatório", - "no_providers": "Ocorreu um erro ao transferir os fornecedores de autenticação. Por favor consulte os logs do backend.", - "notification_not_supported": "Notificação não suportada", - "otp_invalid": "OTP inválido", - "otp_required": "OTP é obrigatório", - "recurrence_delete_failed": "Falha ao apagar recorrência", - "recurrence_update_failed": "Falha ao atualizar recorrência", - "request_error": "Erro requisitando notificação", - "saving_expense": "Erro ao salvar despesa", - "setting_update_failed": "Falha ao atualizar a configuração", - "signin_error": "Ocorreu um erro durante a autenticação: ", - "signup_disabled": "Criação de novas contas encontra-se desativo para esta instância", - "something_went_wrong": "Algo deu errado", - "subscribe_error": "Não foi possivel subscrever notificações", - "unsubscribe_error": "Erro no cancelamento da subscrição da notificação", - "upload_failed": "Falha ao carregar o ficheiro", - "upload_file_less_than": "O ficheiro deve ter menos de", - "uploading_error": "Erro ao carregar o ficheiro", - "valid_email": "Insira um email válido" - }, - "expense_details": { - "add_expense": "Adicionar despesa", - "add_expense_details": { - "add_new_expense": "Adicionar nova despesa", - "amount_placeholder": "Insira o valor", - "description_placeholder": "Insira a descrição", - "pick_a_date": "Selecionar uma data", - "select_user_or_group": { - "add_to_split_pro": "Adicionar ao Split Pro", - "note": "Nota: opção de envio de convite está desativa para já devido ao spam", - "only_one_group_time": "Só podes ter um grupo de cada vez", - "send_invite": "Enviar convite para o utilizador", - "warning": "Atenção: Não envie um convite se o e-mail for inválido. Use a opção de adicionar ao Split Pro em vez disso. O uso indevido dos convites resultará no bloqueio da sua conta" - }, - "split_type_section": { - "split_equally": "dividir igualmente", - "split_unequally": "dividir desigualmente", - "types": { - "adjustment": { - "remaining_to_split_equally": "Restante para dividir igualmente", - "title": "Ajustes" - }, - "equal": { - "per_person": "por pessoa", - "title": "Igual" - }, - "exact": { - "remaining": "Restante", - "title": "Exato" - }, - "percentage": { - "remaining": "Restante", - "title": "Percentagem" - }, - "share": { - "shares": "quota(s)", - "title": "Quota", - "total_shares": "Total de quotas" - } - } - }, - "sponsor_us": "Patrocine-nos", - "upload_file": { - "messages": { - "upload_success": "Arquivo enviado com sucesso" - } - }, - "user_input": { - "add_more_friends": "Pesquisar amigos, grupos ou adicionar email", - "cannot_change_group": "Não é possível mudar de grupo enquanto edita", - "remove_group": "Pressione delete para remover o grupo", - "search_friends": "Pesquisar amigos, grupos ou adicionar email" - } - }, - "already_added": "Já adicionada", - "balance_list": { - "are_settled_up": "estão acertados", - "is_settled_up": "está acertado", - "press_balance_info": "Pressione o saldo individual para iniciar o acerto" - }, - "bank_transactions": "Transações do banco", - "clear": "Limpar", - "delete_expense_details": { - "text": "Esta ação não pode ser desfeita. Isto irá eliminar permanentemente a tua despesa.", - "title": "Tens mesmo a certeza?" - }, - "multiple_transactions": { - "add_all": "Adicionar todas", - "add_one_by_one": "Adicionar uma a uma", - "description": "Selecionou várias transações. Escolha se deseja adicioná-las todas juntas com as configurações de divisão atuais ou ajustar as configurações uma a uma.", - "title": "Adicionar várias transações" - }, - "no_transactions_yet": "Sem transações por enquanto", - "pending": "Pendente", - "submit_all": "Submeter todas", - "title": "Adicionar despesa", - "title_mobile": "Adicionar" - }, - "group_details": { - "add_members": "Adicionar membros", - "copied": "Copiado", - "create_group": { - "group_name_placeholder": "Nome do grupo", - "title": "Criar um grupo" - }, - "group_info": { - "actions": "Ações", - "archive_group": "Arquivar grupo", - "archive_group_details": { - "can_archive": "Este grupo será arquivado e ocultado da tua lista principal de grupos. Podes ainda aceder a ele mais tarde, se necessário.", - "cant_archive": "Não é possível arquivar um grupo com saldos em aberto. Todos os saldos devem ser liquidadas primeiro.", - "title": "Tens a certeza que queres arquivar este grupo?" - }, - "archived": "Arquivado", - "configure_default_split": "Configurar divisão padrão", - "default_balance_currency": "Moeda de saldo padrão", - "default_split": "Divisão padrão", - "delete_group": "Eliminar grupo", - "delete_group_details": { - "can_delete": "Esta ação não pode ser desfeita", - "cant_delete": "Não é possível eliminar o grupo até que todos acerte o saldo", - "title": "Tens a certeza?" - }, - "edit_group": "Editar grupo", - "group_created": "Grupo criado", - "leave_group": "Sair do grupo", - "leave_group_details": { - "can_leave": "Esta ação não pode ser desfeita", - "cant_leave": "Não é possível sair do grupo até que o seu saldo em aberto seja liquidado", - "title": "Tens mesmo a certeza?" - }, - "members": "Membros", - "recalculate_balances": "Recalcular saldos", - "recalculate_balances_details": { - "description": "Se os saldos não corresponderem às despesas, podes recalculá-los. Nota que pode demorar algum tempo se o número de despesas for grande. Os saldos fora do grupo não serão afetados.", - "title": "Tens a certeza?" - }, - "remove_member_details": { - "can_remove": "Estás prestes a remover este membro do grupo", - "cant_remove": "Não é possível remover o membro até que o seu saldo em aberto seja liquidado", - "title": "Tens mesmo a certeza?" - }, - "simplify_debts": "Simplificar dívidas", - "title": "Informações do grupo" - }, - "group_statistics": { - "first_expense": "Primeira despesa", - "title": "Estatísticas do grupo", - "total_expenses": "Total de despesas" - }, - "messages": { - "balances_recalculated": "Saldos recalculados com sucesso", - "default_balance_currency_cleared": "Moeda de saldo padrão zerada", - "default_balance_currency_updated": "Moeda de saldo padrão atualizada", - "default_split_cleared": "Divisão padrão desfeita", - "default_split_updated": "Divisão padrão atualizada", - "group_archived": "Grupo arquivado com sucesso", - "group_name_updated": "Pormenores do grupo atualizados" - }, - "no_members": { - "add_members": "Adicionar membros", - "add_members_details": { - "add_to_split_pro": "Adicionar ao Split Pro", - "note": "Nota: opção de envio de convite está desativa para já devido ao spam", - "placeholder": "Insira o nome ou email", - "send_invite": "Enviar convite para o utilizador", - "title": "Adicionar membros", - "warning": "Atenção: Não envie um convite para um e-mail inválido. Em vez disso, use adicionar ao Split Pro. O uso indevido de convites resultará no bloqueio da sua conta" - }, - "copied": "Copiado", - "invite_link": "Partilhar link de convite", - "no_members": "Não existem membros neste grupo." - }, - "tabs": { - "balances": "Saldos", - "expenses": "Despesas" - }, - "title": "Saldos em aberto do grupo" - }, - "invite_message": { - "in_splitpro": "no Splitpro", - "join_to": "Junte-se a", - "text": "Junte-se ao grupo e poderá adicionar, gerir despesas e acompanhar os seus saldos" - }, - "meta": { - "application_name": "SplitPro", - "description": "SplitPro: Divide as tuas despesas com os teus amigos gratuitamente", - "title": "SplitPro: Divide as tuas despesas com os teus amigos gratuitamente" - }, - "navigation": { - "account": "Conta", - "activity": "Atividade", - "add": "Adicionar", - "add_expense": "Adicionar Despesa", - "app_name": "SplitPro", - "balances": "Balancetes", - "groups": "Grupos", - "recurring": "Recorrente" - }, - "recurrence": { - "cron_expression": "Expressão \"Cron\"", - "days_of_month": "Dias do Mês", - "days_of_week": "Dias da Semana", - "delete_description": "Isto interromperá a criação de despesas futuras. As despesas já criadas por esta recorrência não serão apagadas.", - "delete_title": "Apagar Recorrência", - "derived_delete_warning": "Esta despesa faz parte de uma recorrência. Apenas esta despesa será apagada. As despesas recorrentes futuras permanecem.", - "derived_edit_warning": "Esta despesa faz parte de uma recorrência. As alterações afetarão apenas esta despesa.", - "description": "Configurar recorrência automática para esta despesa.", - "edit_confirmation_title": "Editar Despesa Recorrente", - "edit_description": "Isto vai mudar a programação das despesas futuras. As despesas existentes não serão modificadas.", - "edit_title": "Editar Recorrência", - "empty": "Nenhuma despesa recorrente ainda", - "expense_for_the_amount_of": "Despesa {{name}} pelo valor de {{amount}} {{currency}}", - "last_day": "Último dia", - "months": "Meses", - "never": "Nenhum pagamento recorrente configurado", - "recurring": "Recorrente", - "schedule_type": { - "custom": "Personalizado", - "day": "Diário", - "month": "Mensal", - "never": "Nunca", - "week": "Semanal", - "year": "Anual" - }, - "template_delete_warning": "Este é um modelo de despesa recorrente. Apagá-lo interromperá todas as despesas recorrentes futuras.", - "template_edit_warning": "Este é um modelo de despesa recorrente. As alterações serão aplicadas a todas as despesas recorrentes futuras.", - "time_of_day": "Hora do dia", - "title": "Recorrência", - "view_recurring_page": "Ver Página de Recorrências" - }, - "ui": { - "added_by": "Adicionado por", - "and": "e", - "balance": "saldo", - "balances": "saldos", - "delete": "Eliminar", - "deleted_by": "Eliminado por", - "edited_by": "Editado por", - "expense": { - "for": "por", - "from": "de", - "paid_by": "Pago por", - "received_by": "Recebido por", - "to": "para", - "user": { - "deleted": "apagou", - "get": "recebe", - "lent": "emprestou", - "owe": "deve", - "paid": "pagou", - "pay": "paga", - "received": "recebeu" - }, - "you": { - "deleted": "apagaste", - "get": "recebes", - "lent": "emprestaste", - "owe": "deves", - "paid": "pagaste", - "pay": "pagar", - "received": "recebeste" - } - }, - "expense_details": "Detalhes da despesa", - "in_group": "Em grupo", - "no_activity": "Ainda sem atividade", - "not_involved": "Não envolvido", - "not_set": "Não definido", - "on": "em", - "or": "ou", - "outstanding_balances": "Saldos em aberto", - "select_balance": "Selecionar saldo", - "select_currency": "Selecionar moeda", - "settle_up_name": "Acertar contas", - "settled_up": "Acertou contas", - "settlement": "Acerto de contas", - "share_text": "Testa o SplitPro. É uma alternativa gratuita ao Splitwise", - "show_all_currencies": "Mostrar todas as moedas", - "today": "Hoje", - "total_balance": "Saldo total" - } -} diff --git a/public/locales/pt-PT/home.json b/public/locales/pt-PT/home.json deleted file mode 100644 index 0723793cf..000000000 --- a/public/locales/pt-PT/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Adicione despesas mais depressa com integração com a API de transações bancárias da GoCardless ou da Plaid", - "title": "Ligação a Banco" - }, - "currency_conversion": { - "description": "Converter rapidamente entre várias moedas com informação atualizada ou histórica de taxas de câmbio", - "title": "Conversão de Moedas" - }, - "debt_simplification": { - "description": "Simplifica automaticamente as dívidas do grupo para reduzir o número de transações necessárias entre amigos", - "title": "Simplificação de Dívidas" - }, - "groups_and_friends": { - "description": "Podes adicionar multiplos grupos e adicionar despesas diretamente. Tudo será consolidado", - "title": "Grupos e Amigos" - }, - "i18": { - "description": "Disponível em múltiplas línguas para tornar a divisão de despesas acessível em todo o mundo", - "title": "Internacionalização" - }, - "import_splitwise": { - "description": "Não tens de migrar as despesas manualmente. Poderás importar utilizadores e grupos do splitwise", - "title": "Importar do splitwise" - }, - "multiple_currencies": { - "description": "Necessitas de adicionar despesas em várias moedas para o mesmo utilizador? Sem problema!", - "title": "Multiplas moedas" - }, - "open_source": { - "description": "Por uma maior transparência para todos. Fácil de usar como self host", - "title": "Código aberto" - }, - "push_notifications": { - "description": "Nunca percas notificações importantes. Sê notificado quando alguém adiciona uma despesa ou paga a sua dívida", - "title": "Notificações Push" - }, - "pwa_support": { - "description": "Adoras apps móveis? Nós tratámos disso. Instala como PWA e tu nem vais notar a diferença!", - "title": "Suporte a PWA" - }, - "recurring_transactions": { - "description": "Configura despesas recurrentes para renda, subscrições ou outros custos recurrentes partilhados", - "title": "Transações Recorrentes" - }, - "title": "Funcionalidades", - "unequal_split": { - "description": "Opções de divisão avançadas. Por quotas, percentagem ou montantes exatos.", - "title": "Divisão Costumizada" - }, - "upload_receipts": { - "description": "Anexa os recibos às despesas", - "title": "Carregar recibos" - } - }, - "footer": { - "built_by": "Construído por" - }, - "hero": { - "add_expense_button": "Adicionar Despesa", - "star_github_button": "Dá-nos uma estrela no GitHub", - "subtitle_link": "código aberto", - "subtitle_part1": "Um", - "subtitle_part2": "alternativa ao SplitWise", - "title_highlight": "gratuito", - "title_part1": "Divide Despesas com os teus amigos por" - }, - "meta": { - "description": "SplitPro: Divide as tuas despesas com os teus amigos gratuitamente", - "title": "SplitPro: Divide as tuas despesas com os teus amigos gratuitamente" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Privacidade", - "terms": "Termos" - } -} diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json deleted file mode 100644 index 5d1926524..000000000 --- a/public/locales/ru/common.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "account": { - "change_language": "Сменить язык", - "change_language_details": { - "messages": { - "language_changed": "Язык успешно сменен" - }, - "placeholder": "Выберите язык", - "title": "Выберите язык" - }, - "debug_info": "Дебаг инфо", - "debug_info_details": { - "copy_failed": "Ошибка при копировании дебаг информации", - "description": "При создании запроса в службу поддержки вставьте указанную ниже информацию:", - "git": "Git", - "new_version_available": "Новая версия доступна:", - "title": "Дебаг информация", - "user_agent": "UserAgent", - "version": "Версия" - }, - "download_app": "Скачать приложение", - "download_app_details": { - "download_as_pwa": "Вы можете установить SplitPro как PWA на свой рабочий стол.", - "title": "Загрузить приложение", - "using_android": "Если вы используете Android, посмотрите это", - "using_ios": "Если вы используете iOS, посмотрите это", - "video": "видео" - }, - "download_splitpro_data": "Скачать данные SplitPro", - "edit_name": { - "placeholder": "Введите имя", - "title": "Изменить имя" - }, - "follow_on_x": "Следите за нами в X", - "import_from_splitwise": "Импортировать из Splitwise", - "import_from_splitwise_details": { - "choose_file": "Выберите файл", - "export_splitwise_data_button": "Экспорт данных Splitwise", - "follow_to_export_splitwise_data": "Пройдите по ссылке для экспорта данных Splitwise", - "messages": { - "import_success": "Успешно импортировано" - }, - "no_file_chosen": "Файл не выбран", - "note": "Примечание: В настоящее время поддерживается только импорт друзей и групп. Импорт транзакций не работает. Мы работаем над этим." - }, - "logout": "Выйти", - "messages": { - "submit_error": "Ошибка при отправке фидбэка", - "submit_success": "Фидбэк отправлен" - }, - "notifications": { - "disable_notification": "Отключить уведомление", - "enable_notification": "Включить уведомление", - "messages": { - "notification_granted": "Теперь вы будете получать уведомления" - } - }, - "star_on_github": "Оцените нас на GitHub", - "submit_feedback": "Отправить фидбэк", - "submit_feedback_details": { - "placeholder": "Введите свой фидбэк", - "title": "Отправить фидбэк" - }, - "support_us": "Поддержите нас", - "title": "Аккаунт", - "write_review": "Оставить отзыв" - }, - "actions": { - "add_expense": "Добавить трату", - "back": "Назад", - "cancel": "Отменить", - "close": "Закрыть", - "confirm": "Подтвердить", - "connect": "Подключить", - "copy": "Скопировать", - "create": "Создать", - "edit_expense": "Редактировать трату", - "export": "Экспорт", - "import": "Импорт", - "invite": "Пригласить", - "leave": "Покинуть", - "next": "Следующая", - "reconnect": "Переподключить", - "save": "Сохранить", - "settle_up": "Рассчитаться", - "submit": "Утвердить" - }, - "actors": { - "all": "Все", - "friends": "Друзья", - "groups": "Группы", - "members": "Участники", - "owner": "Владелец", - "you": "Вы", - "you_accusativus": "Вы", - "you_dativus": "Вы" - }, - "auth": { - "continue_with": "Продолжить с {{provider}}", - "email_placeholder": "Введите свой имейл", - "no_providers_configured": "Провайдеры аутентификации не настроены", - "no_providers_instructions": "Пожалуйста, настройте хотя бы одного провайдера аутентификации для входа в систему. Смотрите", - "otp_sent": "Мы отправили вам электронное письмо с одноразовым паролем (OTP). Пожалуйста, проверьте свою почту и перейдите по ссылке в письме, чтобы войти.", - "send_magic_link": "Отправить волшебную ссылку", - "sending": "Отправляем...", - "setup_instructions": "Инструкции по настройке Docker", - "trouble_logging_in": "Проблемы со входом? Свяжитесь" - }, - "currency_conversion": { - "amount_to_receive": "Сумма к получению", - "description": "Конвертировать сумму в другую валюту.", - "exchange_rate": "Курс конвертации", - "fetching_rate": "Получение курса...", - "rate": "Курс", - "success_toast": "Конвертация валюты успешно выполнена", - "title": "Конвертация валюты" - }, - "errors": { - "currency_conversion_error": "Ошибка во время настройка конвертации валюты", - "email_invalid": "Адрес электронной почты недействителен. Пожалуйста, попробуйте войти в систему еще раз.", - "email_required": "Требуется имейл", - "feedback_min_length": "Отзыв должен содержать не менее 10 символов", - "feedback_required": "Требуется отзыв", - "group_name_update_failed": "Ошибка при обновлении названия группы", - "import_failed": "Ошибка при импорте файла", - "invalid_currency_code": "Неправильный код валюты {{code}}", - "language_change_failed": "Ошибка смены языка", - "no_providers": "Ошибка при получении данных о провадерах аутентификации. Пожалуйста, проверьте логи бэкэнда." - } -} diff --git a/public/locales/ru/home.json b/public/locales/ru/home.json deleted file mode 100644 index 3c52b09e5..000000000 --- a/public/locales/ru/home.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "features": { - "currency_conversion": { - "description": "Быстро конвертируйте суммы между различными валютами, используя актуальные или исторические курсы обмена" - }, - "debt_simplification": { - "title": "Упрощение долгов" - }, - "groups_and_friends": { - "description": "Можно создавать несколько групп или добавлять баланс напрямую. Все данные будут объединены", - "title": "Группы и друзья" - }, - "i18": { - "description": "Доступно на нескольких языках, чтобы обеспечить возможность разделения расходов по всему миру" - } - } -} diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json deleted file mode 100644 index e775b9af5..000000000 --- a/public/locales/sk/common.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "account": { - "change_language": "Zmeniť jazyk", - "change_language_details": { - "messages": { - "language_changed": "Jazyk bol zmenený úspešne" - }, - "placeholder": "Vyberte jazyk", - "title": "Vyberte jazyk" - }, - "debug_info": "Informácie na ladenie", - "debug_info_details": { - "copy_failed": "Zlyhalo kopírovanie informácii o ladení", - "description": "Vložte informácie nižšie, keď vytvárate žiadosť o podporu:", - "git": "Git", - "new_version_available": "Nová verzia je dostupná:", - "title": "Informácie na ladenie", - "user_agent": "UserAgent", - "version": "Verzia" - }, - "download_app": "Stiahnuť aplikáciu", - "download_app_details": { - "download_as_pwa": "Môžete si stiahnuť SplitPro ako PWA na svoju domovsku obrazovku.", - "title": "Stiahnuť aplikáciu", - "using_android": "Ak používaš Android, skús toto", - "using_ios": "Ak používaš iOS, skús toto", - "video": "video" - }, - "download_splitpro_data": "Stiahnuť SplitPro dáta", - "edit_name": { - "placeholder": "Zadaj meno", - "title": "Zmeň meno" - }, - "follow_on_x": "Sleduj nás na X", - "import_from_splitwise": "Importuj zo Splitwise", - "import_from_splitwise_details": { - "choose_file": "Vyber súbor", - "export_splitwise_data_button": "Exportuj splitwise dáta", - "follow_to_export_splitwise_data": "Klikni na tento link na exportovanie splitwise dát", - "messages": { - "import_success": "Import ból úspešný" - }, - "no_file_chosen": "Žiaden súbor nie je vybraný", - "note": "Poznámka: Aktuálne podporujeme len import priateľov a skupín. Neimportuje to žiadne transakcie. Pracujeme na tom." - }, - "logout": "Odhlásiť sa", - "messages": { - "submit_error": "Zlyhalo odoslanie spätnej väzby", - "submit_success": "Spätná väzba bola odoslaná" - }, - "notifications": { - "disable_notification": "Zakázať upozornenia", - "enable_notification": "Povoliť upozornenia", - "messages": { - "notification_granted": "Budete dostávať upozornenia" - } - }, - "star_on_github": "Dajte nám hviezdu na GitHub", - "submit_feedback": "Odoslať spätnú väzbu", - "submit_feedback_details": { - "placeholder": "Zadajte svoju spätnú väzbu", - "title": "Odoslať spätnú väzbu" - }, - "support_us": "Sponzorujte nás", - "title": "Účet", - "write_review": "Napíšte recenziu" - }, - "actions": { - "add_expense": "Pridať výdavok", - "back": "Späť", - "cancel": "Zrušiť", - "close": "Zavrieť", - "confirm": "Potvrdiť", - "connect": "Pripojiť", - "copy": "Kopírovať", - "create": "Vytvoriť", - "edit_expense": "Upraviť výdavok", - "export": "Exportovať", - "fetch": "Načítať", - "import": "Importovať", - "invite": "Pozvať", - "leave": "Odísť", - "next": "Ďalšie", - "reconnect": "Znovu sa pripojiť", - "save": "Uložiť", - "settle_up": "Vyrovnať sa", - "submit": "Odoslať" - }, - "actors": { - "all": "Všetky", - "friends": "Priatelia", - "groups": "Skupiny", - "members": "Členovia", - "owner": "Vlastník", - "you": "Ty", - "you_accusativus": "Teba", - "you_dativus": "Tebe" - }, - "auth": { - "continue_with": "Pokračuj s {{provider}}", - "email_placeholder": "Zadaj svoj e-mail", - "no_providers_configured": "Nie sú nakonfigurovaný žiadny poskytovatelia overovania", - "no_providers_instructions": "Prosím nakonfigurujte si aspoň jedného poskytovateľa overovania na prihlásenie. Pozrite si", - "otp_sent": "Poslali sme vám na e-mail jednorázové heslo. Skontrolujte si, prosím, doručenú poštu a kliknite na odkaz v e-maile pre prihlásenie.", - "send_magic_link": "Poslať magic link", - "sending": "Posielam...", - "setup_instructions": "Inštrukcie na nastavinie dockeru", - "trouble_logging_in": "Problém s prihlásením? Kontaktujte nás" - }, - "bank_transactions": { - "choose_bank_provider": "Vyberte si vašu banku", - "no_bank_providers_found": "Nenašla sa žiadna banka", - "plaid": { - "bank_connected_successfully": "Banka prepojená úspešne", - "bank_connection_cancelled": "Prepojenie s bankou zrušené", - "bank_connection_failed": "Zlyhalo prepojenie s bankou" - }, - "search_bank": "Vyhľadať banku", - "select_bank_provider": "Vybrať banku", - "to_bank": "do banky" - }, - "currency_conversion": { - "amount_to_receive": "Suma na prijatie", - "description": "Konvertovať sumu do inej meny.", - "exchange_rate": "Zmenný kurz", - "fetching_rate": "Načítavam kurz...", - "rate": "Kurz", - "success_toast": "Konverzia meny bola nastavená úspešne", - "title": "Konverzia meny" - }, - "errors": { - "currency_conversion_error": "Chyba pri nastavení konverzií meny", - "currency_conversion_failed": "Zlyhala konverzia meny", - "currency_conversion_malformed": "Údaje o konverzii meny sú nesprávne formátované", - "email_invalid": "E-mail je neplatný, skúste sa prihlásiť znova.", - "email_required": "E-mail je povinný", - "feedback_min_length": "Spätná väzba by mala mať aspoň 10 znakov", - "feedback_required": "Spätná väzba je povinná", - "group_balances_malformed": "Údaje o zostatkoch skupiny sú chybné, nahláste problém alebo skúste prepočítať.", - "group_name_update_failed": "Chyba pri zmene mena skupiny", - "import_failed": "Chyba pri importe súboru", - "invalid_cron_expression": "Neplatná cron výraz", - "invalid_currency_code": "Neplatný kód meny {{code}}", - "language_change_failed": "Chyba pri zmene jazyka", - "less_than": "Súbor by mal byť menší ako", - "name_required": "Meno je povinné", - "no_providers": "Chyba pri načítaní prihlasovacích poskytovateľov. Skontrolujte záznamy backendu.", - "notification_not_supported": "Upozornenia nie su podporované", - "otp_invalid": "Neplatný jednorázový kód", - "otp_required": "Jednorázový kód je povinný", - "recurrence_delete_failed": "Zlyhalo odstránenie opakovania", - "recurrence_update_failed": "Zlyhala zmena opakovania", - "request_error": "Chyba pri vyžiadaní upozornenia", - "saving_expense": "Chyba pri ukladaní výdavku", - "setting_update_failed": "Zlyhala zmena nastavení", - "signin_error": "Nastala chyba počas prihlasovania: ", - "signup_disabled": "Registrácia nových uživateľov je zakázaná", - "something_went_wrong": "Niečo sa pokazilo", - "subscribe_error": "Nedá sa prihlásiť na odber upozornení", - "unsubscribe_error": "Chyba pri odhlásení sa z odberu upozornení", - "upload_failed": "Zlyhalo nahrávanie súboru", - "uploading_error": "Chyba pri nahrávaní súboru", - "valid_email": "Zadajte platný e-mail" - }, - "expense_details": { - "add_expense": "Pridať výdavok", - "add_expense_details": { - "add_new_expense": "Pridať nový výdavok", - "amount_placeholder": "Zadajte sumu", - "description_placeholder": "Zadajte popis", - "pick_a_date": "Vyberte dátum", - "select_user_or_group": { - "add_to_split_pro": "Pridať do Split Pro", - "note": "Poznámka: posielanie pozvánok je zakázané kvôli spamu", - "only_one_group_time": "Môžete mať naraz iba jednu skupinu", - "send_invite": "Poslať pozvánku používateľovy", - "warning": "Upozornenie: Nepoužívajte funkciu odoslať pozvánku, ak je e-mail neplatný. Namiesto toho použite funkciu pridať do Split Pro. Ak túto funkciu budete zneužívať, váš účet bude zablokovaný" - }, - "split_type_section": { - "split_equally": "rozdeliť rovnomerne", - "split_unequally": "rozdeliť nerovnomerne", - "types": { - "adjustment": { - "remaining_to_split_equally": "Rozdeliť zostatok rovnakým dielom", - "title": "Úprava" - }, - "equal": { - "per_person": "za osobu", - "title": "Rovnosť" - }, - "exact": { - "remaining": "Zostatok", - "title": "Presne" - }, - "percentage": { - "remaining": "Zostatok", - "title": "Percento" - }, - "share": { - "shares": "Podiel/y", - "title": "Podiel", - "total_shares": "Celkový podiel" - } - } - }, - "sponsor_us": "Sponzorujte nás", - "upload_file": { - "messages": { - "upload_success": "Nahrávanie súboru bolo úspešné" - } - }, - "user_input": { - "add_more_friends": "Vyhľadajte priateľov, skupiny alebo pridajte e-mail", - "cannot_change_group": "Počas úpravy nie je možné zmeniť skupinu", - "remove_group": "Stlačením tlačidla odstrániť vymažete skupinu", - "search_friends": "Vyhľadajte priateľov, skupiny alebo pridajte e-mail" - } - }, - "already_added": "Už pridané", - "balance_list": { - "are_settled_up": "vyrovnané", - "is_settled_up": "vyrovnané", - "press_balance_info": "Stlačte individuálny zostatok pre spustenie vyrovnania" - }, - "bank_transactions": "Bankové transakcie", - "clear": "Vymazať", - "delete_expense_details": { - "text": "Túto akciu nie je možné vrátiť späť. Týmto sa váš výdavok natrvalo vymaže.", - "title": "Si si úplne istý/á?" - }, - "multiple_transactions": { - "add_all": "Pridať všetko", - "add_one_by_one": "Pridať jedno po druhom", - "description": "Vybrali ste viacero transakcií. Vyberte, či ich chcete pridať všetky spolu s aktuálnymi nastaveniami rozdelenia alebo upravte nastavenia jedno po druhom.", - "title": "Pridať viacero transakcií" - }, - "no_transactions_yet": "Zatiaľ žiadne transakcie", - "pending": "Čaká na spracovanie", - "submit_all": "Odoslať všetko", - "title": "Pridať výdavok", - "title_mobile": "Pridať" - }, - "group_details": { - "add_members": "Pridať členov", - "copied": "Skopírované", - "create_group": { - "group_name_placeholder": "Názov skupiny", - "title": "Vytvoriť skupinu" - }, - "group_info": { - "actions": "Akcie", - "archive_group": "Archivovať skupinu", - "archive_group_details": { - "can_archive": "Táto skupina bude archivovaná a skrytá v zozname hlavných skupín. V prípade potreby k nej budete mať prístup neskôr.", - "cant_archive": "Nemožno archivovať skupinu s neuhradenými zostatkami. Najprv je potrebné vyrovnať všetky zostatky.", - "title": "Naozaj chcete archivovať túto skupinu?" - }, - "archived": "Archivované", - "delete_group": "Vymazať skupinu", - "delete_group_details": { - "can_delete": "Túto akciu nie je možné vrátiť späť", - "cant_delete": "Skupinu nie je možné odstrániť, kým všetci nevyrovnajú zostatok", - "title": "Si si úplne istý/á?" - }, - "group_created": "Skupina vytvorená", - "leave_group": "Opustiť skupinu", - "leave_group_details": { - "can_leave": "Túto akciu nie je možné vrátiť späť", - "cant_leave": "Skupinu nemôžete opustiť, kým neuhradíte svoj zostatok", - "title": "Si si úplne istý/á?" - }, - "members": "Členovia", - "recalculate_balances": "Prepočítať zostatky", - "recalculate_balances_details": { - "description": "Ak sa zostatky nezhodujú s výdavkami, môžete ich prepočítať. Upozorňujeme, že ak je počet výdavkov vysoký, môže to chvíľu trvať. Zostatky mimo skupiny nebudú ovplyvnené.", - "title": "Si si istý/á?" - }, - "remove_member_details": { - "can_remove": "Idete odstrániť tohto člena zo skupiny", - "cant_remove": "Člena nie je možné odstrániť, kým nie je vyrovnaný jeho neuhradený zostatok", - "title": "Si si úplne istý/á?" - }, - "simplify_debts": "Zjednodušiť dlhy", - "title": "Info skupiny" - }, - "group_statistics": { - "first_expense": "Prvý výdavok", - "title": "Štatistiky skupiny", - "total_expenses": "Celkové výdavky" - }, - "messages": { - "balances_recalculated": "Zostatky boli úspešne prepočítané", - "group_archived": "Skupina bola úspešne archivovaná", - "group_name_updated": "Zmenení názov skupiny" - }, - "no_members": { - "add_members": "Pridať členov", - "add_members_details": { - "add_to_split_pro": "Pridať do Split Pro", - "note": "Poznámka: odosielanie e-mailových pozvánok je zakázané", - "placeholder": "Zadajte meno alebo e-mail", - "send_invite": "Poslať pozvánku používateľovi", - "title": "Pridať členov", - "warning": "Upozornenie: Nepoužívajte funkciu odoslať pozvánku na neplatný e-mail. Namiesto toho použite funkciu pridať do Split Pro. Ak budete túto funkciu zneužívať, váš účet bude zablokovaný" - }, - "invite_link": "Odkaz na pozvanie", - "no_members": "V skupine zatiaľ nie sú žiadni členovia." - }, - "tabs": { - "balances": "Zostatky", - "expenses": "Výdavky" - }, - "title": "Neuhradené zostatky skupiny" - }, - "invite_message": { - "in_splitpro": "v SplitPro", - "join_to": "Pridaj sa k", - "text": "Pridajte sa do skupiny a môžete pridávať, spravovať výdavky a sledovať svoje zostatky" - }, - "meta": { - "application_name": "SplitPro", - "description": "Rozdeľte si výdavky s priateľmi zadarmo", - "title": "SplitPro: Rozdeľte si výdavky s priateľmi zadarmo" - }, - "navigation": { - "account": "Účet", - "activity": "Aktivity", - "add": "Pridať", - "add_expense": "Pridať výdavok", - "balances": "Zostatky", - "groups": "Skupiny", - "recurring": "Opakujúce sa" - }, - "recurrence": { - "cron_expression": "Cron výraz", - "days_of_month": "Dni v mesiaci", - "days_of_week": "Dni v týždni", - "delete_description": "Týmto sa zastaví vytváranie budúcich výdavkov. Existujúce výdavky vytvorené týmto opakovaním nebudú vymazané.", - "delete_title": "Vymazať opakovanie", - "derived_delete_warning": "Tento výdavok je súčasťou opakovania. Vymaže sa iba tento výdavok. Budúce opakované výdavky budú pokračovať.", - "derived_edit_warning": "Tento výdavok je súčasťou opakovania. Zmeny ovplyvnia iba tento výdavok.", - "description": "Nastavte automatické opakovanie pre tento výdavok.", - "edit_confirmation_title": "Upraviť opakujúci sa výdavok", - "edit_description": "Týmto sa zmení rozvrh budúcich výdavkov. Existujúce výdavky sa neupravia.", - "edit_title": "Upraviť opakovanie", - "empty": "Zatiaľ nie sú žiadne opakujúce sa výdavky", - "expense_for_the_amount_of": "Výdavok {{name}} vo výške {{amount}} {{currency}}", - "last_day": "Posledný deň", - "months": "Mesiace", - "never": "Nie je nakonfigurovaný žiadny plán", - "recurring": "Opakujúce sa", - "schedule_type": { - "custom": "Vlastné", - "day": "Denne", - "month": "Mesačne", - "never": "Nikdy", - "week": "Týždenne", - "year": "Ročne" - }, - "template_delete_warning": "Toto je šablóna opakujúcich sa výdavkov. Jej odstránením sa zastavia všetky budúce opakujúce sa výdavky.", - "template_edit_warning": "Toto je šablóna opakujúcich sa výdavkov. Zmeny sa použijú na všetky budúce opakujúce sa výdavky.", - "time_of_day": "Čas", - "title": "Opakovanie", - "view_recurring_page": "Zobraziť opakujúcu sa stránku" - }, - "ui": { - "added_by": "Pridané používateľom", - "and": "a", - "balance": "zostatok", - "balances": "zostatky", - "delete": "Vymazať", - "deleted_by": "Vymazané použivateľom", - "edited_by": "Upravené použivateľom", - "expense": { - "for": "pre", - "from": "od", - "paid_by": "Zaplatené používateľom", - "received_by": "Prijaté používateľom", - "to": "k", - "user": { - "deleted": "vymazané", - "get": "dostane", - "lent": "požičal", - "owe": "dlhuje", - "paid": "zaplatil", - "pay": "platí", - "received": "prijaté" - }, - "you": { - "deleted": "vymazané", - "get": "dostať", - "lent": "dať", - "owe": "dlhovať", - "paid": "zaplatené", - "pay": "platiť", - "received": "prijaté" - } - }, - "expense_details": "Podrobnosti o výdavku", - "in_group": "V skupine", - "no_activity": "Zatiaľ žiadne aktivity", - "not_involved": "Nezúčastnil sa", - "not_set": "Nenastavené", - "on": "na", - "or": "alebo", - "outstanding_balances": "Neuhradené zostatky", - "select_balance": "Vyberte zostatok", - "select_currency": "Vyberte menu", - "settle_up_name": "Vyrovnať sa", - "settled_up": "Vyrovnané", - "settlement": "Vyrovnanie", - "share_text": "Pozrite si SplitPro. Je to open source bezplatná alternatíva k Splitwise", - "show_all_currencies": "Zobraziť všetky meny", - "today": "Dnes", - "total_balance": "Celkový zostatok" - } -} diff --git a/public/locales/sk/home.json b/public/locales/sk/home.json deleted file mode 100644 index cc714f916..000000000 --- a/public/locales/sk/home.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Pridávajte výdavky rýchlejšie vďaka integrácii s API pre transakcie bankových účtov GoCardless alebo Plaid", - "title": "Bankové prepojenie" - }, - "currency_conversion": { - "description": "Rýchlo konvertujte meny pomocou aktuálnych alebo historických kurzov", - "title": "Konverzia mien" - }, - "debt_simplification": { - "description": "Automatické zjednodušenie skupinových dlhov, aby sa znížil počet transakcií potrebných medzi priateľmi", - "title": "Zjednodušenie dlhu" - }, - "groups_and_friends": { - "description": "Môžete vytvoriť viacero skupín alebo priamo pridať zostatok. Všetko bude zlúčené", - "title": "Skupiny a priatelia" - }, - "i18": { - "description": "K dispozícii vo viacerých jazykoch, aby bolo rozdelenie výdavkov dostupné na celom svete", - "title": "Internacionalizácia" - }, - "import_splitwise": { - "description": "Nemusíte manuálne migrovať zostatky. Môžete importovať používateľov a skupiny zo služby SplitWise", - "title": "Importovať zo SplitWise" - }, - "multiple_currencies": { - "description": "Potrebujete pridať výdavky s inou menou pre toho istého používateľa? Žiadny problém!", - "title": "Viaceré meny" - }, - "open_source": { - "description": "Čo sťažuje stať sa zlým. Ľahko viete bežat svoju inštanciu", - "title": "Otvorený zdroj" - }, - "push_notifications": { - "description": "Nikdy nezmeškajte dôležité upozornenia. Dostávajte upozornenia, keď niekto pridá výdavok alebo vyrovná zostatok", - "title": "Push notifikácie" - }, - "pwa_support": { - "description": "Milujete mobilné aplikácie? Máme pre vás riešenie. Nainštalujte si ju ako PWA a ani si to nevšimnete!", - "title": "Podpora PWA" - }, - "recurring_transactions": { - "description": "Nastav si automatické opakované výdavky za nájom, predplatné alebo iné opakujúce sa zdiaľané výdavky", - "title": "Opakujúce sa transakcie" - }, - "title": "Funkcie", - "unequal_split": { - "description": "Rozšírené možnosti rozdelenia. Podľa podielov, percent alebo presných súm.", - "title": "Nerovné rozdelenie" - }, - "upload_receipts": { - "description": "Nahrajte bločky spolu s výdavkami", - "title": "Nahrať bloček" - } - }, - "footer": { - "built_by": "Vytvorené" - }, - "hero": { - "add_expense_button": "Pridať výdavok", - "star_github_button": "Dajte nám hviezdu na github", - "subtitle_link": "otvorený zdroj", - "subtitle_part2": "alternatíva k SplitWise", - "title_highlight": "zadarmo", - "title_part1": "Rozdeľte si výdavky s priateľmi za" - }, - "meta": { - "description": "SplitPro: Rozdeľte si výdavky s priateľmi zadarmo", - "title": "SplitPro: Rozdeľte si výdavky s priateľmi zadarmo" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Súkromie", - "terms": "Podmienky" - } -} diff --git a/public/locales/sq/common.json b/public/locales/sq/common.json deleted file mode 100644 index 8d611f632..000000000 --- a/public/locales/sq/common.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "account": { - "change_language": "Ndrysho Gjuhën", - "change_language_details": { - "messages": { - "language_changed": "Gjuha u ndryshua me sukses" - }, - "placeholder": "Zgjidhni gjuhën" - } - } -} diff --git a/public/locales/sq/home.json b/public/locales/sq/home.json deleted file mode 100644 index 5ccc6bd5f..000000000 --- a/public/locales/sq/home.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "features": { - "currency_conversion": { - "description": "Konvertim i shpejtë midis valutave, duke perdorur kurs këmbimi të përditësuar ose kurs historik", - "title": "Kursi Këmbimit" - } - } -} diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json deleted file mode 100644 index daf1314a9..000000000 --- a/public/locales/sv/common.json +++ /dev/null @@ -1,447 +0,0 @@ -{ - "account": { - "change_language": "Ändra språk", - "change_language_details": { - "messages": { - "language_changed": "Språk ändrat" - }, - "no_language_found": "Inget språk hittades.", - "placeholder": "Välj ett språk", - "title": "Välj ett språk" - }, - "debug_info": "Debug info", - "debug_info_details": { - "copy_failed": "Misslyckades med att kopiera felsökningsinformation till urklipp", - "description": "Klistra in informationen nedan när du skapar en supportförfrågan:", - "git": "Git", - "new_version_available": "En ny version finns tillgänglig:", - "send_test_notification": "Skicka test notifikation", - "test_notification_failed": "Kunde inte skicka test notifikation", - "test_notification_sent": "Test notifikation skickat", - "title": "Debug Information", - "user_agent": "Användaragent", - "version": "Version" - }, - "default_balance_currency": "Standardsaldovaluta", - "download_app": "Ladda ner app", - "download_app_details": { - "download_as_pwa": "Du kan ladda ner SplitPro som en PWA till din hemskärm.", - "title": "Ladda ner app", - "using_android": "Om du använder Android, kolla in denna", - "using_ios": "Om du använder iOS, kolla in denna", - "video": "video" - }, - "download_splitpro_data": "Ladda ner SplitPro data", - "edit_name": { - "apply_avatar": "Använd avatar", - "avatar_label": "Profil bild", - "avatar_preview": "Avatar förhandsvisning", - "placeholder": "Ange namn", - "remove_avatar": "Ta bort avatar", - "select_avatar": "Välj bild", - "title": "Redigera detaljer", - "zoom": "Zooma" - }, - "follow_on_x": "Följ oss på X", - "import_from_splitwise": "Importera från Splitwise", - "import_from_splitwise_details": { - "choose_file": "Välj fil", - "export_splitwise_data_button": "Exportera splitwise data", - "follow_to_export_splitwise_data": "Följ denna länk för att exportera splitwise data", - "messages": { - "import_success": "Import lyckades" - }, - "no_file_chosen": "Ingen fil vald", - "note": "Notera: Vi stödjer för närvarande endast import av vänner och grupper. Transaktioner kommer inte importeras. Vi arbetar på det." - }, - "logout": "Logga ut", - "messages": { - "submit_error": "Kunde inte uppdatera detaljer", - "submit_success": "Detaljer uppdaterad" - }, - "notifications": { - "disable_notification": "Inaktivera notifikationer", - "enable_notification": "Aktivera notifikationer", - "messages": { - "notification_granted": "Du kommer att få notifikationer nu" - } - }, - "star_on_github": "Betygsätt oss på GitHub", - "submit_feedback": "Skicka feedback", - "submit_feedback_details": { - "placeholder": "Skriv din feedback", - "title": "Skicka feedback" - }, - "support_us": "Sponsra oss", - "title": "Konto", - "write_review": "Skriv en recension" - }, - "actions": { - "add_expense": "Lägg till utgift", - "back": "Tillbaka", - "cancel": "Avbryt", - "close": "Stäng", - "confirm": "Bekräfta", - "connect": "Anslut", - "copy": "Kopiera", - "create": "Skapa", - "edit_expense": "Redigera utgift", - "export": "Exportera", - "fetch": "Hämta", - "import": "Importera", - "invite": "Bjud in", - "leave": "Lämna", - "next": "Nästa", - "reconnect": "Återanslut", - "save": "Spara", - "settle_up": "Gör kvitt", - "submit": "Skicka" - }, - "actors": { - "all": "Alla", - "friends": "Vänner", - "groups": "Grupper", - "members": "Medlemmar", - "owner": "Ägare", - "you": "Du", - "you_accusativus": "Dig", - "you_dativus": "Dig" - }, - "auth": { - "continue_with": "Fortsätt med {{provider}}", - "email_placeholder": "Ange din email", - "no_providers_configured": "Inga autentiseringsleverantörer konfigurerade", - "no_providers_instructions": "Vänligen konfigurera minst en autentiseringsleverantör för att logga in. Se", - "otp_sent": "Vi har skickat ett mail med OTP. Kontrollera din inkorg och klicka på länken i mailet för att logga in.", - "send_magic_link": "Skicka magisk länk", - "sending": "Skickar...", - "setup_instructions": "Docker-installationsinstruktioner", - "trouble_logging_in": "Problem med att logga in? Kontakta" - }, - "balances": { - "default_split": { - "cleared": "Standard delning rensad", - "configure": "Standard delning", - "updated": "Standard delning uppdaterad" - }, - "user_preferences": { - "title": "Egenskaper" - } - }, - "bank_transactions": { - "choose_bank_provider": "Välj bank", - "no_bank_providers_found": "Ingen bank hittades", - "plaid": { - "bank_connected_successfully": "Bank ansluten", - "bank_connection_cancelled": "Anslutning till banken blev avbruten", - "bank_connection_failed": "Kunde inte ansluta till banken" - }, - "search_bank": "Sök bank", - "select_bank_provider": "Välj bank", - "to_bank": "bank" - }, - "currency_conversion": { - "amount_to_receive": "Belopp att ta emot", - "description": "Konvertera beloppet till en annan valuta.", - "exchange_rate": "Växelkurs", - "fetching_rate": "Hämtar kurs...", - "rate": "Kurs", - "success_toast": "Valutaomvandling inställd", - "title": "Valutaomvandling" - }, - "errors": { - "currency_conversion_error": "Fel vid valutaomvandling", - "currency_conversion_failed": "Misslyckades med att konvertera valutor", - "currency_conversion_malformed": "Valutakonverteringsdata är felaktig", - "email_invalid": "Email är ogiltlig, försök igen.", - "email_required": "Email krävs", - "feedback_min_length": "Feedback måste vara minst 10 tecken", - "feedback_required": "Feedback krävs", - "group_balances_malformed": "Gruppens saldon är felaktiga. Vänligen rapportera ett problem eller försök räkna om.", - "group_name_update_failed": "Fel vid uppdatering av gruppnamn", - "image_compression_failed": "Bildkomprimering misslyckades, försöker ladda upp originalfilen", - "import_failed": "Fel vid import", - "invalid_cron_expression": "Ogiltigt cron‑uttryck", - "invalid_currency_code": "Ogiltig valutakod {{code}}", - "language_change_failed": "Fel vid ändring av språk", - "less_than": "Filen ska vara mindre än {{size}}MB", - "name_required": "Namn krävs", - "no_providers": "Fel vid hämtning av autentiseringsleverantörer. Kontrollera serverloggarna.", - "notification_not_supported": "Notifikationer stöds inte", - "otp_invalid": "Ogiltlig OTP", - "otp_required": "OTP krävs", - "recurrence_delete_failed": "Misslyckades med att ta bort återkommande händelse", - "recurrence_update_failed": "Misslyckades med att uppdatera återkommande händelse", - "request_error": "Fel vid begäran om notifikationer", - "saving_expense": "Fel vid sparande av utgift", - "setting_update_failed": "Misslyckades med att uppdatera inställning", - "signin_error": "Ett fel uppstod vid inloggning: ", - "signup_disabled": "Registrering av nya konton är inaktiverat", - "something_went_wrong": "Något gick fel", - "subscribe_error": "Kan inte prenumerera på notifikationer", - "unsubscribe_error": "Fel vid avslutning av prenumeration", - "upload_failed": "Uppladdning misslyckades", - "uploading_error": "Fel vid uppladdning av fil", - "valid_email": "Ange giltig e-post" - }, - "expense_details": { - "add_expense": "Lägg till utgift", - "add_expense_details": { - "add_new_expense": "Lägg till ny utgift", - "amount_placeholder": "Ange belopp", - "description_placeholder": "Ange beskrivning", - "pick_a_date": "Välj datum", - "select_user_or_group": { - "add_to_split_pro": "Lägg till i SplitPro", - "note": "Notera: Skicka inbjudan är för tillfället inaktiverat på grund av spam", - "only_one_group_time": "Du kan bara välja en grupp åt gången", - "send_invite": "Skicka inbjudan till användare", - "warning": "Varning: Skicka inte en inbjudan om det är ogiltig e-postadress. Använd istället lägg till i SplitPro. Ditt konto kommer att blockeras om denna funktion används felaktigt" - }, - "split_type_section": { - "split_equally": "dela lika", - "split_unequally": "dela ojämnt", - "types": { - "adjustment": { - "remaining_to_split_equally": "Kvar att dela lika", - "title": "Justering" - }, - "equal": { - "per_person": "per person", - "title": "Jämnt" - }, - "exact": { - "remaining": "Kvar", - "title": "Exakt" - }, - "percentage": { - "remaining": "Kvar", - "title": "Procent" - }, - "share": { - "shares": "Del(ar)", - "title": "Dela", - "total_shares": "Totala delningar" - } - } - }, - "sponsor_us": "Sponsra oss", - "upload_file": { - "messages": { - "upload_success": "Fil uppladdad" - } - }, - "user_input": { - "add_more_friends": "Sök vänner, grupper eller lägg till via email", - "cannot_change_group": "Kan inte ändra grupp medan du redigerar", - "remove_group": "Tryck på radera för att ta bort grupp", - "search_friends": "Sök vänner, grupper eller lägg till via email" - } - }, - "already_added": "Redan tillagd", - "balance_list": { - "are_settled_up": "är kvitt", - "is_settled_up": "är kvitt", - "press_balance_info": "Tryck på enskild saldo för att göra kvitt" - }, - "bank_transactions": "Transaktioner", - "clear": "Rensa", - "delete_expense_details": { - "text": "Denna åtgärd går inte att ångra. Denna utgift kommer att raderas permanent.", - "title": "Är du helt säker?" - }, - "multiple_transactions": { - "add_all": "Lägg till alla", - "add_one_by_one": "Lägg till en och en", - "description": "Du har valt flera transaktioner. Välj om du vill lägga till alla direkt med de nuvarande inställningar eller justera en och en.", - "title": "Lägg till flera transaktioner" - }, - "no_transactions_yet": "Inga transaktioner ännu", - "pending": "Reserverad", - "submit_all": "Skicka alla", - "title": "Lägg till utgift", - "title_mobile": "Lägg till" - }, - "group_details": { - "add_members": "Lägg till medlemmar", - "copied": "Kopierad", - "create_group": { - "group_name_placeholder": "Gruppnamn", - "title": "Skapa en grupp" - }, - "group_info": { - "actions": "Åtgärder", - "archive_group": "Arkivera grupp", - "archive_group_details": { - "can_archive": "Denna grupp kommer att arkiveras och döljas från din huvudlista över grupper. Du kan fortfarande komma åt den senare om det behövs.", - "cant_archive": "Kan inte arkivera grupp med utestående saldon. Alla saldon måste kvittas först.", - "title": "Är du säker på att du vill arkivera denna grupp?" - }, - "archived": "Arkiverad", - "configure_default_split": "Konfigurera standard delning", - "default_balance_currency": "Standardsaldovaluta", - "default_split": "Standard delning", - "delete_group": "Radera grupp", - "delete_group_details": { - "can_delete": "Denna åtgärd kan inte ångras", - "cant_delete": "Kan inte radera gruppen förrän alla har kvittat sina saldon", - "title": "Är du helt säker?" - }, - "edit_group": "Redigera grupp", - "group_created": "Grupp skapad", - "leave_group": "Lämna grupp", - "leave_group_details": { - "can_leave": "Denna åtgärd kan inte ångras", - "cant_leave": "Kan inte lämna gruppen förrän ditt saldo är kvittat", - "title": "Är du helt säker?" - }, - "members": "Medlemmar", - "recalculate_balances": "Räkna om saldon", - "recalculate_balances_details": { - "description": "Om saldon inte matchar utgifter, kan du räkna om dem. Notera att det kan ta tid om antalet utgifter är stort. Saldon utanför gruppen påverkas inte.", - "title": "Är du säker?" - }, - "remove_member_details": { - "can_remove": "Du är på väg att ta bort denna medlem från gruppen", - "cant_remove": "Kan inte ta bort medlem förrän deras utestående saldo är kvittat", - "title": "Är du helt säker?" - }, - "simplify_debts": "Förenkla skulder", - "title": "Gruppinfo" - }, - "group_statistics": { - "first_expense": "Första utgiften", - "title": "Gruppstatistik", - "total_expenses": "Totala utgifter" - }, - "messages": { - "balances_recalculated": "Saldon omräknade", - "default_balance_currency_cleared": "Standardsaldovaluta rensad", - "default_balance_currency_updated": "Standardsaldovaluta uppdaterad", - "default_split_cleared": "Standard delning rensad", - "default_split_updated": "Standard delning uppdaterad", - "group_archived": "Grupp arkiverad framgångsrikt", - "group_name_updated": "Uppdaterad gruppinformation" - }, - "no_members": { - "add_members": "Lägg till medlemmar", - "add_members_details": { - "add_to_split_pro": "Lägg till i Split Pro", - "note": "Notera: Skicka inbjudan är inaktiverat för tillfället på grund av skräppost", - "placeholder": "Ange namn eller email", - "send_invite": "Skicka inbjudan till användare", - "title": "Lägg till medlemmar", - "warning": "Varning: Skicka inte en inbjudan om det är ogiltlig email. Använd istället lägg till i Split Pro. Ditt konto kommer att blockeras om denna funktion används felaktigt" - }, - "invite_link": "Inbjudningslänk", - "no_members": "Inga medlemmar i gruppen ännu." - }, - "tabs": { - "balances": "Saldon", - "expenses": "Utgifter" - }, - "title": "Saldon" - }, - "invite_message": { - "in_splitpro": "i Splitpro", - "join_to": "Gå med", - "text": "Gå med i gruppen så kan du lägga till, hantera utgifter och följa dina saldon" - }, - "meta": { - "application_name": "SplitPro", - "description": "Dela utgifter med dina vänner gratis", - "title": "SplitPro: Dela utgifter med dina vänner gratis" - }, - "navigation": { - "account": "Konto", - "activity": "Aktivitet", - "add": "Lägg till", - "add_expense": "Lägg till utgift", - "balances": "Saldon", - "groups": "Grupper", - "recurring": "Återkommande" - }, - "recurrence": { - "cron_expression": "Cron‑uttryck", - "days_of_month": "Dagar i månaden", - "days_of_week": "Veckodagar", - "delete_description": "Detta kommer att stoppa skapandet av framtida utgifter. Befintliga utgifter som skapats av denna återkommande händelse kommer inte att tas bort.", - "delete_title": "Ta bort återkommande händelse", - "derived_delete_warning": "Denna utgift är en del av en återkommande händelse. Endast denna utgift kommer att tas bort. Framtida återkommande utgifter kommer att fortsätta.", - "derived_edit_warning": "Denna utgift är en del av en återkommande händelse. Ändringar kommer endast att påverka denna utgift.", - "description": "Ställ in automatisk återkommande händelse för denna utgift.", - "edit_confirmation_title": "Redigera återkommande utgift", - "edit_description": "Detta kommer att ändra schemat för framtida utgifter. Befintliga utgifter kommer inte att ändras.", - "edit_title": "Redigera återkommande händelse", - "empty": "Inga återkommande utgifter", - "expense_for_the_amount_of": "Utgift {{name}} på beloppet {{amount}} {{currency}}", - "last_day": "Sista dagen", - "months": "Månader", - "never": "Ingen schemaläggning är inställd", - "recurring": "Återkommande", - "schedule_type": { - "custom": "Anpassad", - "day": "Daglig", - "month": "Månatlig", - "never": "Aldrig", - "week": "Veckovis", - "year": "Årlig" - }, - "template_delete_warning": "Detta är en mall för återkommande utgifter. Att ta bort den kommer att stoppa alla framtida återkommande utgifter.", - "template_edit_warning": "Detta är en mall för återkommande utgifter. Ändringar kommer att gälla för alla framtida återkommande utgifter.", - "time_of_day": "Tid på dagen", - "title": "Upprepning", - "view_recurring_page": "Visa sidan för återkommande utgifter" - }, - "ui": { - "added_by": "Tillagd av", - "and": "och", - "balance": "saldo", - "balances": "saldon", - "delete": "Radera", - "deleted_by": "Raderad av", - "edited_by": "Redigerad av", - "expense": { - "for": "för", - "from": "från", - "paid_by": "Betald av", - "received_by": "Mottagen av", - "to": "till", - "user": { - "deleted": "raderade", - "get": "får", - "lent": "lånade ut", - "owe": "är skyldig", - "paid": "betalade", - "pay": "betalar", - "received": "fick" - }, - "you": { - "deleted": "raderade", - "get": "får", - "lent": "lånade ut", - "owe": "är skyldig", - "paid": "betalade", - "pay": "betala", - "received": "fick" - } - }, - "expense_details": "Utgiftsdetaljer", - "in_group": "I grupp", - "no_activity": "Inga aktiviteter än", - "not_involved": "Inte involverad", - "not_set": "Inte inställt", - "on": "på", - "or": "eller", - "outstanding_balances": "Saldon", - "select_balance": "Välj saldo", - "select_currency": "Välj valuta", - "settle_up_name": "Gör kvitt", - "settled_up": "Kvitt", - "settlement": "Kvittning", - "share_text": "Kolla in SplitPro. Det är ett gratis open source-alternativ till Splitwise", - "show_all_currencies": "Visa alla valutor", - "today": "Idag", - "total_balance": "Totalt saldo" - } -} diff --git a/public/locales/sv/home.json b/public/locales/sv/home.json deleted file mode 100644 index 78cce2524..000000000 --- a/public/locales/sv/home.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "Lägg till utgifter snabbare med en integration till GoCardless eller Plaid bank-API", - "title": "Bankanslutning" - }, - "currency_conversion": { - "description": "Konvertera snabbt mellan olika valutor med hjälp av aktuella eller historiska växelkurser", - "title": "Valutakonvertering" - }, - "debt_simplification": { - "description": "Förenkla automatiskt gruppskulder för att minska antalet transaktioner som behövs mellan vänner", - "title": "Skuldförenkling" - }, - "groups_and_friends": { - "description": "Kan skapa flera grupper eller lägga till saldo direkt. Allt kommer att räknas ut", - "title": "Grupper och vänner" - }, - "i18": { - "description": "Tillgänglig på flera språk för att göra utgiftsdelning tillgänglig över hela världen", - "title": "Internationalisering" - }, - "import_splitwise": { - "description": "Du behöver du inte manuellt migrera saldon. Du kan importera användare och grupper från splitwise", - "title": "Importera från splitwise" - }, - "multiple_currencies": { - "description": "Behöver du lägga till utgift med annan valuta? Inga problem!", - "title": "Flera valutor" - }, - "open_source": { - "description": "Vilket gör det enkelt att granska. Lätt att self-hosta", - "title": "Open source" - }, - "push_notifications": { - "description": "Missa aldrig viktiga notifikationer. Få meddelanden när någon lägger till en utgift eller kvittar", - "title": "Push-notifikationer" - }, - "pwa_support": { - "description": "Älskar du mobila appar? Inga problem. Installera det som en PWA och du kommer inte ens att märka!", - "title": "PWA support" - }, - "recurring_transactions": { - "description": "Skapa automatiska återkommande utgifter för hyra, prenumerationer eller andra regelbundna gemensamma kostnader", - "title": "Återkommande utgifter" - }, - "title": "Funktioner", - "unequal_split": { - "description": "Avancerade delningsalternativ. Efter andelar, procent eller exakta belopp.", - "title": "Ojämn delning" - }, - "upload_receipts": { - "description": "Ladda upp kvitton tillsammans med utgiften", - "title": "Ladda upp kvitton" - } - }, - "footer": { - "built_by": "Byggt av" - }, - "hero": { - "add_expense_button": "Lägg till utgift", - "star_github_button": "Betygsätt oss på github", - "subtitle_link": "open source", - "subtitle_part1": "Ett", - "subtitle_part2": "alternativ till SplitWise", - "title_highlight": "gratis", - "title_part1": "Dela utgifter med dina vänner helt" - }, - "meta": { - "description": "SplitPro: Dela utgifter med dina vänner gratis", - "title": "SplitPro: Dela utgifter med dina vänner gratis" - }, - "nav": { - "app_name": "SplitPro", - "privacy": "Integritet", - "terms": "Villkor" - } -} diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json deleted file mode 100644 index f7821ce4d..000000000 --- a/public/locales/zh-Hant/common.json +++ /dev/null @@ -1,416 +0,0 @@ -{ - "account": { - "change_language": "", - "change_language_details": { - "messages": { - "language_changed": "" - }, - "placeholder": "", - "title": "選擇語言" - }, - "debug_info": "", - "debug_info_details": { - "copy_failed": "", - "description": "", - "git": "", - "new_version_available": "", - "title": "", - "user_agent": "", - "version": "" - }, - "download_app": "", - "download_app_details": { - "download_as_pwa": "", - "title": "", - "using_android": "", - "using_ios": "", - "video": "" - }, - "download_splitpro_data": "", - "edit_name": { - "placeholder": "", - "title": "" - }, - "follow_on_x": "", - "import_from_splitwise": "", - "import_from_splitwise_details": { - "choose_file": "選擇檔案", - "export_splitwise_data_button": "", - "follow_to_export_splitwise_data": "", - "messages": { - "import_success": "" - }, - "no_file_chosen": "", - "note": "" - }, - "logout": "", - "messages": { - "submit_error": "", - "submit_success": "" - }, - "notifications": { - "disable_notification": "", - "enable_notification": "", - "messages": { - "notification_granted": "" - } - }, - "star_on_github": "", - "submit_feedback": "", - "submit_feedback_details": { - "placeholder": "", - "title": "" - }, - "support_us": "", - "title": "", - "write_review": "" - }, - "actions": { - "add_expense": "", - "back": "", - "cancel": "", - "close": "", - "confirm": "", - "connect": "", - "copy": "", - "create": "", - "edit_expense": "", - "export": "", - "fetch": "", - "import": "", - "invite": "", - "leave": "", - "next": "", - "reconnect": "", - "save": "", - "settle_up": "", - "submit": "" - }, - "actors": { - "all": "", - "friends": "", - "groups": "", - "members": "", - "owner": "", - "you": "", - "you_accusativus": "", - "you_dativus": "" - }, - "auth": { - "continue_with": "", - "email_placeholder": "", - "no_providers_configured": "", - "no_providers_instructions": "", - "otp_sent": "", - "send_magic_link": "", - "sending": "", - "setup_instructions": "", - "trouble_logging_in": "" - }, - "bank_transactions": { - "choose_bank_provider": "", - "no_bank_providers_found": "", - "plaid": { - "bank_connected_successfully": "", - "bank_connection_cancelled": "", - "bank_connection_failed": "" - }, - "search_bank": "", - "select_bank_provider": "", - "to_bank": "" - }, - "currency_conversion": { - "amount_to_receive": "", - "description": "", - "exchange_rate": "", - "fetching_rate": "", - "rate": "", - "success_toast": "", - "title": "" - }, - "errors": { - "currency_conversion_error": "", - "currency_conversion_failed": "", - "currency_conversion_malformed": "", - "email_invalid": "", - "email_required": "", - "feedback_min_length": "", - "feedback_required": "", - "group_balances_malformed": "", - "group_name_update_failed": "", - "import_failed": "", - "invalid_cron_expression": "", - "invalid_currency_code": "", - "language_change_failed": "", - "less_than": "", - "name_required": "", - "no_providers": "", - "notification_not_supported": "", - "otp_invalid": "", - "otp_required": "", - "recurrence_delete_failed": "", - "recurrence_update_failed": "", - "request_error": "", - "saving_expense": "", - "setting_update_failed": "", - "signin_error": "", - "signup_disabled": "", - "something_went_wrong": "", - "subscribe_error": "", - "unsubscribe_error": "", - "upload_failed": "", - "uploading_error": "", - "valid_email": "" - }, - "expense_details": { - "add_expense": "", - "add_expense_details": { - "add_new_expense": "", - "amount_placeholder": "", - "description_placeholder": "", - "pick_a_date": "", - "select_user_or_group": { - "add_to_split_pro": "", - "note": "", - "only_one_group_time": "", - "send_invite": "", - "warning": "" - }, - "split_type_section": { - "split_equally": "", - "split_unequally": "", - "types": { - "adjustment": { - "remaining_to_split_equally": "", - "title": "" - }, - "equal": { - "per_person": "", - "title": "" - }, - "exact": { - "remaining": "", - "title": "" - }, - "percentage": { - "remaining": "", - "title": "" - }, - "share": { - "shares": "", - "title": "", - "total_shares": "" - } - } - }, - "sponsor_us": "", - "upload_file": { - "messages": { - "upload_success": "" - } - }, - "user_input": { - "add_more_friends": "", - "cannot_change_group": "", - "remove_group": "", - "search_friends": "" - } - }, - "already_added": "", - "balance_list": { - "are_settled_up": "", - "is_settled_up": "", - "press_balance_info": "" - }, - "bank_transactions": "", - "clear": "", - "delete_expense_details": { - "text": "", - "title": "" - }, - "multiple_transactions": { - "add_all": "", - "add_one_by_one": "", - "description": "", - "title": "" - }, - "no_transactions_yet": "", - "pending": "", - "submit_all": "", - "title": "", - "title_mobile": "" - }, - "group_details": { - "add_members": "", - "copied": "", - "create_group": { - "group_name_placeholder": "", - "title": "" - }, - "group_info": { - "actions": "", - "archive_group": "", - "archive_group_details": { - "can_archive": "", - "cant_archive": "", - "title": "" - }, - "archived": "", - "delete_group": "", - "delete_group_details": { - "can_delete": "", - "cant_delete": "", - "title": "" - }, - "group_created": "", - "leave_group": "", - "leave_group_details": { - "can_leave": "", - "cant_leave": "", - "title": "" - }, - "members": "", - "recalculate_balances": "", - "recalculate_balances_details": { - "description": "", - "title": "" - }, - "remove_member_details": { - "can_remove": "", - "cant_remove": "", - "title": "" - }, - "simplify_debts": "", - "title": "" - }, - "group_statistics": { - "first_expense": "", - "title": "", - "total_expenses": "" - }, - "messages": { - "balances_recalculated": "", - "group_archived": "", - "group_name_updated": "" - }, - "no_members": { - "add_members": "", - "add_members_details": { - "add_to_split_pro": "", - "note": "", - "placeholder": "", - "send_invite": "", - "title": "", - "warning": "" - }, - "invite_link": "", - "no_members": "" - }, - "tabs": { - "balances": "", - "expenses": "" - }, - "title": "" - }, - "invite_message": { - "in_splitpro": "", - "join_to": "", - "text": "" - }, - "meta": { - "application_name": "", - "description": "", - "title": "" - }, - "navigation": { - "account": "", - "activity": "", - "add": "", - "add_expense": "", - "balances": "", - "groups": "", - "recurring": "" - }, - "recurrence": { - "cron_expression": "", - "days_of_month": "", - "days_of_week": "", - "delete_description": "", - "delete_title": "", - "derived_delete_warning": "", - "derived_edit_warning": "", - "description": "", - "edit_confirmation_title": "", - "edit_description": "", - "edit_title": "", - "empty": "", - "expense_for_the_amount_of": "", - "last_day": "", - "months": "", - "never": "", - "recurring": "", - "schedule_type": { - "custom": "", - "day": "", - "month": "", - "never": "", - "week": "", - "year": "" - }, - "template_delete_warning": "", - "template_edit_warning": "", - "time_of_day": "", - "title": "", - "view_recurring_page": "" - }, - "ui": { - "added_by": "", - "and": "", - "balance": "", - "balances": "", - "delete": "", - "deleted_by": "", - "edited_by": "", - "expense": { - "for": "", - "from": "", - "paid_by": "", - "received_by": "", - "to": "", - "user": { - "deleted": "", - "get": "", - "lent": "", - "owe": "", - "paid": "", - "pay": "", - "received": "" - }, - "you": { - "deleted": "", - "get": "", - "lent": "", - "owe": "", - "paid": "", - "pay": "", - "received": "" - } - }, - "expense_details": "", - "in_group": "", - "no_activity": "", - "not_involved": "", - "not_set": "未設定", - "on": "", - "or": "", - "outstanding_balances": "", - "select_balance": "", - "settle_up_name": "", - "settled_up": "", - "settlement": "", - "share_text": "", - "show_all_currencies": "", - "today": "", - "total_balance": "" - } -} diff --git a/public/locales/zh-Hant/home.json b/public/locales/zh-Hant/home.json deleted file mode 100644 index 6b73d9ef4..000000000 --- a/public/locales/zh-Hant/home.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "features": { - "bank_connection": { - "description": "", - "title": "" - }, - "currency_conversion": { - "description": "", - "title": "" - }, - "debt_simplification": { - "description": "", - "title": "" - }, - "groups_and_friends": { - "description": "", - "title": "" - }, - "i18": { - "description": "", - "title": "" - }, - "import_splitwise": { - "description": "", - "title": "" - }, - "multiple_currencies": { - "description": "", - "title": "" - }, - "open_source": { - "description": "", - "title": "" - }, - "push_notifications": { - "description": "", - "title": "" - }, - "pwa_support": { - "description": "", - "title": "" - }, - "title": "", - "unequal_split": { - "description": "", - "title": "" - }, - "upload_receipts": { - "description": "", - "title": "" - } - }, - "footer": { - "built_by": "" - }, - "hero": { - "add_expense_button": "", - "star_github_button": "", - "subtitle_link": "", - "subtitle_part1": "", - "subtitle_part2": "", - "title_highlight": "", - "title_part1": "" - }, - "meta": { - "description": "", - "title": "" - }, - "nav": { - "app_name": "", - "privacy": "", - "terms": "" - } -} diff --git a/src/components/Account/DebugInfo.tsx b/src/components/Account/DebugInfo.tsx index 6f097d27a..83c16f7e9 100644 --- a/src/components/Account/DebugInfo.tsx +++ b/src/components/Account/DebugInfo.tsx @@ -18,7 +18,7 @@ import { cn } from '~/lib/utils'; import { Button } from '../ui/button'; export const DebugInfo: React.FC = ({ children }) => { - const { t } = useTranslation('common'); + const { t } = useTranslation('common_icu'); const [newVersion, setNewVersion] = React.useState(null); const sendTestPushNotification = api.user.sendTestPushNotification.useMutation(); diff --git a/src/components/Account/SubmitFeedback.tsx b/src/components/Account/SubmitFeedback.tsx index abfe4c848..714d40113 100644 --- a/src/components/Account/SubmitFeedback.tsx +++ b/src/components/Account/SubmitFeedback.tsx @@ -36,10 +36,12 @@ export const SubmitFeedback: React.FC = () => { try { await submitFeedbackMutation.mutateAsync({ feedback: values.feedback }); feedbackForm.reset(); - toast.success(t('ui.messages.submit_success'), { duration: 1500 }); + toast.success(t('account.submit_feedback_details.messages.submit_success'), { + duration: 1500, + }); } catch (e) { console.info(e); - toast.error(t('ui.messages.submit_error')); + toast.error(t('account.submit_feedback_details.messages.submit_error')); } setFeedbackOpen(false); }, diff --git a/src/components/AddExpense/AddExpensePage.tsx b/src/components/AddExpense/AddExpensePage.tsx index 86eec7494..19ab15d4d 100644 --- a/src/components/AddExpense/AddExpensePage.tsx +++ b/src/components/AddExpense/AddExpensePage.tsx @@ -184,7 +184,7 @@ export const AddOrEditExpensePage: React.FC<{ if (error instanceof Error) { toast.error(error.message); } else { - toast.error('An unexpected error occurred while submitting the expense.'); + toast.error(t('errors.expense_submission_failed')); } } }, [ @@ -208,6 +208,7 @@ export const AddOrEditExpensePage: React.FC<{ cronExpression, multipleTransactions, setSingleTransaction, + t, update, ]); @@ -336,7 +337,9 @@ export const AddOrEditExpensePage: React.FC<{ className="text-primary h-8 max-w-full min-w-0 justify-start px-1.5 py-0 text-base sm:max-w-none" > - {displayName(paidBy, currentUser?.id, 'dativus')} + {paidBy?.id === currentUser?.id + ? t(`ui.expense.${isNegative ? 'recipient' : 'payer'}.current_user`) + : displayName(paidBy)} @@ -395,7 +398,7 @@ export const AddOrEditExpensePage: React.FC<{ 'size-6', )} /> - Toggle recurring expense options + {t('recurrence.toggle_options')} )} diff --git a/src/components/AddExpense/BankTransactions/BankingTransactionList.tsx b/src/components/AddExpense/BankTransactions/BankingTransactionList.tsx index afe022fbe..89c215d88 100644 --- a/src/components/AddExpense/BankTransactions/BankingTransactionList.tsx +++ b/src/components/AddExpense/BankTransactions/BankingTransactionList.tsx @@ -113,7 +113,7 @@ export const BankingTransactionList: React.FC<{ setMultipleTransactions( isInMultipleTransactions ? multipleTransactions.filter((cItem) => cItem.transactionId !== item.transactionId) - : [...multipleTransactions, transactionData as TransactionAddInputModel], + : [...multipleTransactions, transactionData], ); } else { if (alreadyAdded(item.transactionId)) { @@ -128,9 +128,9 @@ export const BankingTransactionList: React.FC<{ ); const setOpenClose = useCallback( - (open: boolean) => { - setOpen(open); - if (!open) { + (isOpen: boolean) => { + setOpen(isOpen); + if (!isOpen) { setMultipleTransactions([]); } }, diff --git a/src/components/AddExpense/CurrencyPicker.tsx b/src/components/AddExpense/CurrencyPicker.tsx index 4489670b3..c3e8737f1 100644 --- a/src/components/AddExpense/CurrencyPicker.tsx +++ b/src/components/AddExpense/CurrencyPicker.tsx @@ -62,7 +62,8 @@ function CurrencyPickerInner({ { code: '__CLEAR__' as const, label: - t('ui.not_set', { ns: 'common' }) ?? t('expense_details.clear', { ns: 'common' }), + t('ui.not_set', { ns: 'common_icu' }) ?? + t('expense_details.clear', { ns: 'common_icu' }), isClear: true, }, ...items, diff --git a/src/components/AddExpense/SelectUserOrGroup.tsx b/src/components/AddExpense/SelectUserOrGroup.tsx index 85ef2265b..a7a450932 100644 --- a/src/components/AddExpense/SelectUserOrGroup.tsx +++ b/src/components/AddExpense/SelectUserOrGroup.tsx @@ -213,7 +213,12 @@ export const SelectUserOrGroup: React.FC<{ {0 === filteredFriends?.length && 0 === filteredGroups?.length ? (
- empty user image + {t('expense_details.add_expense_details.select_user_or_group.empty_image_alt')}
) : null} diff --git a/src/components/AddExpense/SplitTypeSection.tsx b/src/components/AddExpense/SplitTypeSection.tsx index 768915577..aae79787f 100644 --- a/src/components/AddExpense/SplitTypeSection.tsx +++ b/src/components/AddExpense/SplitTypeSection.tsx @@ -306,7 +306,7 @@ const SplitSection: React.FC = (props) => {

{!canSplitScreenClosed ? (

- {t('errors.invalid_split')} + {t('errors.expense_split_incomplete')}

) : null} {isBoolean && ( diff --git a/src/components/Expense/BalanceList.tsx b/src/components/Expense/BalanceList.tsx index 311ab2992..a229a68eb 100644 --- a/src/components/Expense/BalanceList.tsx +++ b/src/components/Expense/BalanceList.tsx @@ -47,7 +47,7 @@ export const BalanceList: React.FC<{ total: {}, }; console.error('BalanceList: userId not found in users list', balance.userId); - toast.error(t('common:errors.group_balances_malformed')); + toast.error(t('errors.group_balances_malformed')); } if (!res[balance.userId]!.balances[balance.friendId]) { res[balance.userId]!.balances[balance.friendId] = {}; @@ -80,21 +80,20 @@ export const BalanceList: React.FC<{
- {displayName(user, userQuery.data?.id)} {Object.values(total).every((amount) => 0n === amount) ? ( - {' '} - {isCurrentUser - ? t('expense_details.balance_list.are_settled_up') - : t('expense_details.balance_list.is_settled_up')} + {t('expense_details.balance_list.settled', { + actor: isCurrentUser ? 'you' : 'other', + person: displayName(user), + })} ) : ( <> - {' '} - {t( - `ui.expense.${isCurrentUser ? 'you' : 'user'}.${0 < totalAmount[1] ? 'lent' : 'owe'}`, - )}{' '} + {t(`expense_details.balance_list.${0 < totalAmount[1] ? 'lent' : 'owes'}`, { + actor: isCurrentUser ? 'you' : 'other', + person: displayName(user), + })}{' '}
- {displayName(friend, userQuery.data?.id)} - - {' '} - {t( - `ui.expense.${friend.id === userQuery.data?.id ? 'you' : 'user'}.${0 > amount ? 'get' : 'pay'}`, - )}{' '} - - - {getCurrencyHelpersCached(currency).toUIString(BigMath.abs(amount))} - - - {' '} - {t(`ui.expense.${0 < amount ? 'to' : 'from'}`, { - ns: 'common', - })}{' '} - - - {displayName(user, userQuery.data?.id, 'accusativus')} - + {t(0 < amount ? 'balance_list.pays' : 'balance_list.gets', { + payerRole: + (0 < amount ? friend : user).id === userQuery.data?.id + ? 'you' + : 'other', + receiverRole: + (0 < amount ? user : friend).id === userQuery.data?.id + ? 'you' + : 'other', + payer: displayName(0 < amount ? friend : user), + receiver: displayName(0 < amount ? user : friend), + amount: getCurrencyHelpersCached(currency).toUIString( + BigMath.abs(amount), + ), + })}
diff --git a/src/components/Expense/DeleteExpense.tsx b/src/components/Expense/DeleteExpense.tsx index ea25baabd..1831df96c 100644 --- a/src/components/Expense/DeleteExpense.tsx +++ b/src/components/Expense/DeleteExpense.tsx @@ -38,15 +38,16 @@ export const DeleteExpense: React.FC = ({ expenseId, recurre await deleteExpenseMutation.mutateAsync({ expenseId }); } catch (error) { if (error instanceof Error) { - toast.error(`Error: ${error.message}`); + console.error(error); + toast.error(t('errors.expense_deletion_failed')); } else { console.error('Unexpected error:', error); - toast.error('An unexpected error occurred while deleting the expense.'); + toast.error(t('errors.expense_deletion_failed')); } return; } router.back(); - }, [expenseId, deleteExpenseMutation, router]); + }, [expenseId, deleteExpenseMutation, router, t]); const description = useMemo(() => { if (!isPartOfRecurrence) { diff --git a/src/components/Expense/EditRecurrenceDialog.tsx b/src/components/Expense/EditRecurrenceDialog.tsx index ae6f7708e..3dfdd81cd 100644 --- a/src/components/Expense/EditRecurrenceDialog.tsx +++ b/src/components/Expense/EditRecurrenceDialog.tsx @@ -84,6 +84,7 @@ export const EditRecurrenceDialog: React.FC = ({ = ({ user, expense }) => { ) : null} {expense.updatedByUser ? (

- {t('ui.edited_by')} {displayName(expense.updatedByUser, user.id, 'dativus')}{' '} - {t('ui.on')} {toUIDate(expense.updatedAt, { year: true })} + {t('expense_metadata.edited_by', { + actor: expense.updatedByUser.id === user.id ? 'you' : 'other', + user: displayName(expense.updatedByUser), + date: toUIDate(expense.updatedAt, { year: true }), + })}

) : null} {expense.deletedByUser ? (

- {t('ui.deleted_by')} {displayName(expense.deletedByUser, user.id, 'dativus')}{' '} - {t('ui.on')} {toUIDate(expense.deletedAt ?? expense.createdAt, { year: true })} + {t('expense_metadata.deleted_by', { + actor: expense.deletedByUser.id === user.id ? 'you' : 'other', + user: displayName(expense.deletedByUser), + date: toUIDate(expense.deletedAt ?? expense.createdAt, { year: true }), + })}

) : (

- {t('ui.added_by')} {displayName(expense.addedByUser, user.id, 'dativus')}{' '} - {t('ui.on')} {toUIDate(expense.createdAt, { year: true })} + {t('expense_metadata.added_by', { + actor: expense.addedByUser.id === user.id ? 'you' : 'other', + user: displayName(expense.addedByUser), + date: toUIDate(expense.createdAt, { year: true }), + })}

)} {expense.recurrence ? ( @@ -186,10 +196,13 @@ const ExpenseParticipantEntry: React.FC<{ {displayName(participant.user, userId)} - - {t(`ui.expense.${isCurrentUser ? 'you' : 'user'}.${isPositive ? 'get' : 'owe'}`)} + + {t(isPositive ? 'expense_participant.gets' : 'expense_participant.owes', { + actor: isCurrentUser ? 'you' : 'other', + person: displayName(participant.user), + amount: toUIString(participant.amount), + })} - {toUIString(participant.amount)}
); }; @@ -261,6 +274,7 @@ export const EditCurrencyConversion: React.FC<{ expense: ExpenseDetailsOutput }> export const EditSettlement: React.FC<{ expense: ExpenseDetailsOutput }> = ({ expense }) => { const { displayName, t, getCurrencyHelpersCached } = useTranslationWithUtils(); + const { data: session } = useSession(); const sender = expense.paidByUser; const receiver = expense.expenseParticipants.find((p) => p.userId !== expense.paidBy)?.user; @@ -352,7 +366,12 @@ export const EditSettlement: React.FC<{ expense: ExpenseDetailsOutput }> = ({ ex

- {displayName(sender)} {t('ui.expense.user.pay')} {displayName(receiver)} + {t('ui.transfer', { + senderRole: sender.id === session?.user.id ? 'you' : 'other', + receiverRole: receiver.id === session?.user.id ? 'you' : 'other', + sender: displayName(sender), + receiver: displayName(receiver), + })}

{expense.group ? (

{expense.group.name}

diff --git a/src/components/Expense/ExpenseList.tsx b/src/components/Expense/ExpenseList.tsx index f54b6e0d3..b593ad974 100644 --- a/src/components/Expense/ExpenseList.tsx +++ b/src/components/Expense/ExpenseList.tsx @@ -2,6 +2,7 @@ import { SplitType } from '@prisma/client'; import { type inferRouterOutputs } from '@trpc/server'; import Image from 'next/image'; import Link from 'next/link'; +import { useTranslation } from 'next-i18next'; import { useRouter } from 'next/router'; import React from 'react'; import { toast } from 'sonner'; @@ -111,8 +112,11 @@ const Expense: ExpenseComponent = ({ e, userId }) => {

{e.name}

- {displayName(e.paidByUser, userId)}{' '} - {t(`ui.expense.user.${e.amount < 0n ? 'received' : 'paid'}`)} {toUIString(e.amount)} + {t(e.amount < 0n ? 'expense_list.user_received' : 'expense_list.user_paid', { + actor: e.paidByUser.id === userId ? 'you' : 'other', + user: displayName(e.paidByUser), + amount: toUIString(e.amount), + })}

@@ -120,12 +124,9 @@ const Expense: ExpenseComponent = ({ e, userId }) => { {youPaid || 0n !== yourExpenseAmount ? ( <>
- {t('actors.you')} {t(`ui.expense.you.${youPaid ? 'lent' : 'owe'}`)} -
-
- {toUIString(yourExpenseAmount)} + {t(youPaid ? 'expense_list.you_lent' : 'expense_list.you_owe', { + amount: toUIString(yourExpenseAmount), + })}
) : ( @@ -154,9 +155,13 @@ const Settlement: ExpenseComponent = ({ e, userId }) => {

- {displayName(e.paidByUser, userId)}{' '} - {t(`ui.expense.user.${e.amount < 0n ? 'received' : 'paid'}`)} {toUIString(e.amount)}{' '} - {t('ui.expense.to')} {displayName(userDetails.data, userId)} + {t('expense_list.settlement', { + payerRole: e.paidByUser.id === userId ? 'you' : 'other', + receiverRole: receiverId === userId ? 'you' : 'other', + payer: displayName(e.paidByUser), + amount: toUIString(e.amount), + receiver: displayName(userDetails.data), + })}

@@ -192,16 +197,30 @@ const CurrencyConversion: ExpenseComponent = ({ e, userId }) => { }

- {t('ui.expense.for')} {displayName(e.paidByUser, userId)} {t('ui.and')}{' '} - {displayName(userDetails.data, userId)} + {t('expense_list.conversion_for_users', { + payerRole: e.paidByUser.id === userId ? 'you' : 'other', + receiverRole: receiverId === userId ? 'you' : 'other', + payer: displayName(e.paidByUser), + receiver: displayName(userDetails.data), + })}

); }; -const NoExpenses = () => ( -
- Empty -
-); +const NoExpenses = () => { + const { t } = useTranslation(); + + return ( +
+ {t('expense_details.empty_state_image_alt')} +
+ ); +}; diff --git a/src/components/Expense/Receipt.tsx b/src/components/Expense/Receipt.tsx index c0c2cba3b..77c6c74d1 100644 --- a/src/components/Expense/Receipt.tsx +++ b/src/components/Expense/Receipt.tsx @@ -1,6 +1,9 @@ +import { useTranslation } from 'next-i18next'; + import { AppDrawer } from '../ui/drawer'; export const Receipt = ({ fileKey }: { fileKey: string }) => { + const { t } = useTranslation(); const thumbKey = fileKey.replace('.webp', '-thumb.webp'); const thumbUrl = `/api/files/${thumbKey}`; const fullUrl = `/api/files/${fileKey}`; @@ -11,7 +14,7 @@ export const Receipt = ({ fileKey }: { fileKey: string }) => { // oxlint-disable-next-line next/no-img-element Expense receipt thumbnail { className="h-14 w-14 rounded-md object-cover object-center data-[loaded=false]:animate-pulse data-[loaded=false]:bg-gray-100/10" /> } - leftAction="Close" - title="Expense Receipt" + leftAction={t('actions.close')} + title={t('expense_details.receipt.title')} className="h-[98vh]" >
@@ -29,7 +32,7 @@ export const Receipt = ({ fileKey }: { fileKey: string }) => { src={fullUrl} width={300} height={800} - alt="Expense receipt" + alt={t('expense_details.receipt.image_alt')} data-loaded="false" onLoad={setDataLoaded} className="h-full w-full rounded-2xl object-cover data-[loaded=false]:animate-pulse data-[loaded=false]:bg-gray-100/10" diff --git a/src/components/Friend/CurrencyConversion.tsx b/src/components/Friend/CurrencyConversion.tsx index b58974a3d..0b4e0503e 100644 --- a/src/components/Friend/CurrencyConversion.tsx +++ b/src/components/Friend/CurrencyConversion.tsx @@ -199,7 +199,7 @@ export const CurrencyConversion: React.FC<{
{t('currency_conversion.rate')}
= ({ friendId, disabled }) => { + const { t } = useTranslation(); const router = useRouter(); const deleteFriendMutation = api.user.deleteFriend.useMutation(); @@ -22,7 +24,7 @@ export const DeleteFriend: React.FC<{ await deleteFriendMutation.mutateAsync({ friendId }); } catch (e) { console.error('Failed to delete friend', e); - toast.error('Failed to delete user'); + toast.error(t('errors.friend_deletion_failed')); return; } utils.expense.getBalances.invalidate().catch(console.error); @@ -32,11 +34,11 @@ export const DeleteFriend: React.FC<{ return ( = ({ 'Settlement', ]; - const { getCurrencyHelpersCached } = useTranslationWithUtils('common'); + const { getCurrencyHelpersCached, t } = useTranslationWithUtils('common_icu'); const exportToCSV = () => { const csvHeaders = headers.join(','); @@ -87,7 +87,7 @@ export const Export: React.FC = ({ return ( ); }; diff --git a/src/components/Friend/FriendBalance.tsx b/src/components/Friend/FriendBalance.tsx index aa462ab86..0d0ba4b13 100644 --- a/src/components/Friend/FriendBalance.tsx +++ b/src/components/Friend/FriendBalance.tsx @@ -27,7 +27,7 @@ export const FriendBalance: React.FC<{
- {t('actors.you')} {isPositive ? t('ui.expense.you.lent') : t('ui.expense.you.owe')} + {t(`ui.expense.statements.${isPositive ? 'you_lent' : 'you_owe'}`)}
{toUIString(balance.amount)} diff --git a/src/components/Friend/GroupSettleup.tsx b/src/components/Friend/GroupSettleup.tsx index 3e8a34d63..0fb3b1bdf 100644 --- a/src/components/Friend/GroupSettleup.tsx +++ b/src/components/Friend/GroupSettleup.tsx @@ -40,8 +40,20 @@ export const GroupSettleUp: React.FC<{ const addExpenseMutation = api.expense.addOrEditExpense.useMutation(); const utils = api.useUtils(); - const sender = 0 > _amount ? user : friend; - const receiver = 0 > _amount ? friend : user; + const isUserPaying = 0 > _amount; + const sender = isUserPaying ? user : friend; + const receiver = isUserPaying ? friend : user; + const payerRole = sender.id === data?.user.id ? 'you' : 'other'; + const receiverRole = receiver.id === data?.user.id ? 'you' : 'other'; + const paymentText = + payerRole === 'you' + ? t('ui.expense.statements.you_pay_user', { user: displayName(receiver) }) + : receiverRole === 'you' + ? t('ui.expense.statements.user_pays_you', { user: displayName(sender) }) + : t('ui.expense.statements.user_pays_user', { + payer: displayName(sender), + receiver: displayName(receiver), + }); const saveExpense = React.useCallback(() => { if (!amount) { @@ -98,11 +110,7 @@ export const GroupSettleUp: React.FC<{
-

- {displayName(sender, data?.user.id)}{' '} - {t(`ui.expense.${sender.id === data?.user.id ? 'you' : 'user'}.pay`)}{' '} - {displayName(receiver, data?.user.id)} -

+

{paymentText}

{isCurrentUserPaying - ? `${t('actors.you')} ${t('ui.expense.you.pay')} ${displayName(friend)}` - : `${displayName(friend)} ${t('ui.expense.user.pay')} ${t('actors.you')}`} + ? t('ui.expense.statements.you_pay_user', { user: displayName(friend) }) + : t('ui.expense.statements.user_pays_you', { user: displayName(friend) })}

{balanceToSettle.groupName ? (

{balanceToSettle.groupName}

diff --git a/src/components/NotificationModal.tsx b/src/components/NotificationModal.tsx index 09934d8c9..35331351a 100644 --- a/src/components/NotificationModal.tsx +++ b/src/components/NotificationModal.tsx @@ -1,5 +1,6 @@ import { Bell } from 'lucide-react'; import React, { useEffect, useState } from 'react'; +import { useTranslation } from 'next-i18next'; import { toast } from 'sonner'; import { useAppStore } from '~/store/appStore'; @@ -33,6 +34,7 @@ const NOTIFICATION_DISMISSED_TIME = 'notification_dismissed_time'; const NOTIFICATION_DISMISSED_TIME_THRESHOLD = 1000 * 60 * 60 * 24 * 30; // 14 days export const NotificationModal: React.FC = () => { + const { t } = useTranslation(); const updatePushSubscription = api.user.updatePushNotification.useMutation(); const webPushPublicKey = useAppStore((s) => s.webPushPublicKey); @@ -40,7 +42,7 @@ export const NotificationModal: React.FC = () => { useEffect(() => { if ('undefined' !== typeof window && 'serviceWorker' in navigator) { - // run only in browser + // Run only in browser navigator.serviceWorker.ready .then((reg) => { reg.pushManager @@ -66,7 +68,7 @@ export const NotificationModal: React.FC = () => { try { const result = await Notification.requestPermission(); if ('granted' === result) { - toast.success('You will receive notifications now'); + toast.success(t('notifications.permission_granted')); navigator.serviceWorker.ready .then(async (reg) => { if (!webPushPublicKey) { @@ -80,13 +82,13 @@ export const NotificationModal: React.FC = () => { updatePushSubscription.mutate({ subscription: JSON.stringify(sub) }); }) .catch((e) => { - toast.error('Cannot subscribe to notification'); + toast.error(t('errors.notification_subscribe_failed')); console.error(e); }); setModalOpen(false); } } catch (e) { - toast.error('Error requesting notification'); + toast.error(t('errors.notification_request_failed')); console.error(e); } } @@ -104,16 +106,14 @@ export const NotificationModal: React.FC = () => { - Enable notifications - - Don't miss on important events. Subscribe to get notification for added expenses - + {t('notifications.enable_title')} + {t('notifications.enable_description')} - Remind later + {t('actions.remind_later')} - Subscribe + {t('notifications.subscribe')} diff --git a/src/components/SimpleConfirmationDialog.tsx b/src/components/SimpleConfirmationDialog.tsx index 16076a547..4509e7425 100644 --- a/src/components/SimpleConfirmationDialog.tsx +++ b/src/components/SimpleConfirmationDialog.tsx @@ -1,5 +1,5 @@ import { type VariantProps } from 'class-variance-authority'; -import { useCallback, useState } from 'react'; +import { type FormEvent, useCallback, useState } from 'react'; import { useTranslation } from 'next-i18next'; import { @@ -14,35 +14,60 @@ import { } from './ui/alert-dialog'; import { Button, type buttonVariants } from './ui/button'; +type SimpleConfirmationDialogProps = { + title: string; + onCancel?: () => void; + description: React.ReactNode; + hasPermission: boolean; + onConfirm: () => void | Promise; + loading: boolean; + children?: React.ReactNode; +} & VariantProps; + +type ControlledSimpleConfirmationDialogProps = SimpleConfirmationDialogProps & { + open: boolean; + onOpenChange: (open: boolean) => void; +}; + +type UncontrolledSimpleConfirmationDialogProps = SimpleConfirmationDialogProps & { + open?: never; + onOpenChange?: never; +}; + export const SimpleConfirmationDialog: React.FC< - { - title: string; - open?: boolean; - onOpenChange?: (open: boolean) => void; - onCancel?: () => void; - description: React.ReactNode; - hasPermission: boolean; - onConfirm: () => void | Promise; - loading: boolean; - children?: React.ReactNode; - } & VariantProps -> = ({ - open: controlledOpen, - onOpenChange: controlledOnOpenChange, - onCancel, - title, - description, - hasPermission, - onConfirm, - loading, - variant, - children, -}) => { + ControlledSimpleConfirmationDialogProps | UncontrolledSimpleConfirmationDialogProps +> = (props) => { + const { onCancel, title, description, hasPermission, onConfirm, loading, variant, children } = + props; const { t } = useTranslation(); const [internalOpen, setInternalOpen] = useState(false); - const isControlled = typeof controlledOpen === 'boolean'; - const open = isControlled ? controlledOpen! : internalOpen; - const setOpen = isControlled ? controlledOnOpenChange! : setInternalOpen; + const controlledOpen = 'open' in props ? props.open : undefined; + const controlledOnOpenChange = 'onOpenChange' in props ? props.onOpenChange : undefined; + const isControlled = 'boolean' === typeof controlledOpen; + const open = isControlled ? controlledOpen : internalOpen; + const setOpen = useCallback( + (nextOpen: boolean) => { + if (isControlled) { + if ('function' !== typeof controlledOnOpenChange) { + return; + } + + controlledOnOpenChange(nextOpen); + return; + } + + setInternalOpen(nextOpen); + }, + [controlledOnOpenChange, isControlled], + ); + const handleSubmit = useCallback( + async (event: FormEvent) => { + event.preventDefault(); + await onConfirm(); + setOpen(false); + }, + [onConfirm, setOpen], + ); return ( @@ -55,13 +80,7 @@ export const SimpleConfirmationDialog: React.FC< {t('actions.cancel')} {hasPermission && ( -
{ - e.preventDefault(); - await onConfirm(); - setOpen(false); - }} - > +