From 54656c943ae118d691569566063d34cb7e38d54e Mon Sep 17 00:00:00 2001 From: ErNobyl <107060111+ErNobyl-1@users.noreply.github.com> Date: Fri, 14 Nov 2025 13:38:16 +0100 Subject: [PATCH] added german translation (de) (#208) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * added german translation consistently added all translation yml files for german language * Correct quotation and syntax errors in new de locale files Corrected misplaced or missing quotation marks in YAML * Updated German translations Added missing files, fixed for customizable branding * corrected yml formatting added missing "" when : where used in the string * Interpolation errors * More interpolation issues * Last round of interpolation errors? * Add German to supported locales * Still a few more interpolations --------- Signed-off-by: Juan José Mata Co-authored-by: Juan José Mata --- app/helpers/languages_helper.rb | 1 + .../invitation_mailer/invite_email.html.erb | 2 +- app/views/invitations/new.html.erb | 2 +- app/views/layouts/auth.html.erb | 2 +- .../lunchflow_items/select_accounts.html.erb | 2 +- app/views/registrations/new.html.erb | 2 +- app/views/settings/profiles/show.html.erb | 2 +- config/locales/defaults/de.yml | 8 +- config/locales/doorkepper.de.yml | 155 ++++++++++++++++++ .../locales/mailers/invitation_mailer/de.yml | 5 + config/locales/models/account/de.yml | 21 +++ config/locales/models/address/de.yml | 11 ++ config/locales/models/entry/de.yml | 9 + config/locales/models/import/de.yml | 13 ++ .../locales/models/time_series/value/de.yml | 9 + config/locales/models/transfer/de.yml | 18 ++ config/locales/models/trend/de.yml | 13 ++ config/locales/models/user/de.yml | 21 +++ config/locales/views/accounts/de.yml | 84 ++++++++++ config/locales/views/application/de.yml | 10 ++ config/locales/views/categories/de.yml | 35 ++++ .../locales/views/category/deletions/de.yml | 14 ++ .../locales/views/category/dropdowns/de.yml | 11 ++ config/locales/views/credit_cards/de.yml | 25 +++ config/locales/views/cryptos/de.yml | 7 + config/locales/views/depositories/de.yml | 10 ++ .../views/email_confirmation_mailer/de.yml | 9 + config/locales/views/entries/de.yml | 14 ++ config/locales/views/family_exports/de.yml | 7 + config/locales/views/holdings/de.yml | 35 ++++ .../views/impersonation_sessions/de.yml | 15 ++ config/locales/views/imports/de.yml | 78 +++++++++ config/locales/views/investments/de.yml | 17 ++ config/locales/views/invitation_mailer/de.yml | 8 + config/locales/views/invitation_mailer/tr.yml | 2 +- config/locales/views/invitations/ca.yml | 2 +- config/locales/views/invitations/de.yml | 19 +++ config/locales/views/invitations/en.yml | 2 +- config/locales/views/invitations/tr.yml | 2 +- config/locales/views/invite_codes/de.yml | 6 + config/locales/views/layout/de.yml | 13 ++ config/locales/views/layout/tr.yml | 2 +- config/locales/views/loans/de.yml | 23 +++ config/locales/views/lunchflow_items/de.yml | 62 +++++++ config/locales/views/lunchflow_items/en.yml | 2 +- config/locales/views/merchants/de.yml | 26 +++ config/locales/views/mfa/de.yml | 34 ++++ config/locales/views/onboardings/de.yml | 27 +++ config/locales/views/other_assets/de.yml | 7 + config/locales/views/other_liabilities/de.yml | 7 + config/locales/views/pages/de.yml | 31 ++++ config/locales/views/password_mailer/de.yml | 8 + config/locales/views/password_resets/de.yml | 13 ++ config/locales/views/passwords/de.yml | 10 ++ config/locales/views/plaid_items/de.yml | 23 +++ config/locales/views/properties/de.yml | 32 ++++ .../views/recurring_transactions/de.yml | 37 +++++ config/locales/views/registrations/ca.yml | 2 +- config/locales/views/registrations/de.yml | 24 +++ config/locales/views/registrations/en.yml | 2 +- config/locales/views/registrations/es.yml | 2 +- config/locales/views/registrations/tr.yml | 2 +- config/locales/views/reports/de.yml | 137 ++++++++++++++++ config/locales/views/sessions/de.yml | 21 +++ config/locales/views/settings/api_keys/de.yml | 76 +++++++++ config/locales/views/settings/ca.yml | 2 +- config/locales/views/settings/de.yml | 120 ++++++++++++++ config/locales/views/settings/en.yml | 2 +- config/locales/views/settings/es.yml | 2 +- config/locales/views/settings/hostings/de.yml | 63 +++++++ .../locales/views/settings/securities/de.yml | 10 ++ config/locales/views/shared/de.yml | 14 ++ config/locales/views/simplefin_items/de.yml | 47 ++++++ config/locales/views/subscriptions/de.yml | 4 + config/locales/views/tag/deletions/de.yml | 13 ++ config/locales/views/tags/de.yml | 23 +++ config/locales/views/trades/de.yml | 38 +++++ config/locales/views/transactions/de.yml | 82 +++++++++ config/locales/views/transfers/de.yml | 30 ++++ config/locales/views/users/de.yml | 17 ++ config/locales/views/valuations/de.yml | 30 ++++ config/locales/views/vehicles/de.yml | 25 +++ 82 files changed, 1832 insertions(+), 21 deletions(-) create mode 100644 config/locales/doorkepper.de.yml create mode 100644 config/locales/mailers/invitation_mailer/de.yml create mode 100644 config/locales/models/account/de.yml create mode 100644 config/locales/models/address/de.yml create mode 100644 config/locales/models/entry/de.yml create mode 100644 config/locales/models/import/de.yml create mode 100644 config/locales/models/time_series/value/de.yml create mode 100644 config/locales/models/transfer/de.yml create mode 100644 config/locales/models/trend/de.yml create mode 100644 config/locales/models/user/de.yml create mode 100644 config/locales/views/accounts/de.yml create mode 100644 config/locales/views/application/de.yml create mode 100644 config/locales/views/categories/de.yml create mode 100644 config/locales/views/category/deletions/de.yml create mode 100644 config/locales/views/category/dropdowns/de.yml create mode 100644 config/locales/views/credit_cards/de.yml create mode 100644 config/locales/views/cryptos/de.yml create mode 100644 config/locales/views/depositories/de.yml create mode 100644 config/locales/views/email_confirmation_mailer/de.yml create mode 100644 config/locales/views/entries/de.yml create mode 100644 config/locales/views/family_exports/de.yml create mode 100644 config/locales/views/holdings/de.yml create mode 100644 config/locales/views/impersonation_sessions/de.yml create mode 100644 config/locales/views/imports/de.yml create mode 100644 config/locales/views/investments/de.yml create mode 100644 config/locales/views/invitation_mailer/de.yml create mode 100644 config/locales/views/invitations/de.yml create mode 100644 config/locales/views/invite_codes/de.yml create mode 100644 config/locales/views/layout/de.yml create mode 100644 config/locales/views/loans/de.yml create mode 100644 config/locales/views/lunchflow_items/de.yml create mode 100644 config/locales/views/merchants/de.yml create mode 100644 config/locales/views/mfa/de.yml create mode 100644 config/locales/views/onboardings/de.yml create mode 100644 config/locales/views/other_assets/de.yml create mode 100644 config/locales/views/other_liabilities/de.yml create mode 100644 config/locales/views/pages/de.yml create mode 100644 config/locales/views/password_mailer/de.yml create mode 100644 config/locales/views/password_resets/de.yml create mode 100644 config/locales/views/passwords/de.yml create mode 100644 config/locales/views/plaid_items/de.yml create mode 100644 config/locales/views/properties/de.yml create mode 100644 config/locales/views/recurring_transactions/de.yml create mode 100644 config/locales/views/registrations/de.yml create mode 100644 config/locales/views/reports/de.yml create mode 100644 config/locales/views/sessions/de.yml create mode 100644 config/locales/views/settings/api_keys/de.yml create mode 100644 config/locales/views/settings/de.yml create mode 100644 config/locales/views/settings/hostings/de.yml create mode 100644 config/locales/views/settings/securities/de.yml create mode 100644 config/locales/views/shared/de.yml create mode 100644 config/locales/views/simplefin_items/de.yml create mode 100644 config/locales/views/subscriptions/de.yml create mode 100644 config/locales/views/tag/deletions/de.yml create mode 100644 config/locales/views/tags/de.yml create mode 100644 config/locales/views/trades/de.yml create mode 100644 config/locales/views/transactions/de.yml create mode 100644 config/locales/views/transfers/de.yml create mode 100644 config/locales/views/users/de.yml create mode 100644 config/locales/views/valuations/de.yml create mode 100644 config/locales/views/vehicles/de.yml diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index e068398d5..614317ffe 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -156,6 +156,7 @@ module LanguagesHelper # Locales with complete/extensive translations SUPPORTED_LOCALES = [ "en", # English - 61 translation files + "de", # German - 62 translation files "es", # Spanish - 60 translation files "tr", # Turkish - 57 translation files "nb", # Norwegian Bokmål - 56 translation files diff --git a/app/views/invitation_mailer/invite_email.html.erb b/app/views/invitation_mailer/invite_email.html.erb index 0f45f9d44..b6741f236 100644 --- a/app/views/invitation_mailer/invite_email.html.erb +++ b/app/views/invitation_mailer/invite_email.html.erb @@ -5,7 +5,7 @@ ".body", inviter: @invitation.inviter.display_name, family: @invitation.family.name, - product: product_name + product_name: product_name ).html_safe %>

diff --git a/app/views/invitations/new.html.erb b/app/views/invitations/new.html.erb index 9dfebe959..31c2a8add 100644 --- a/app/views/invitations/new.html.erb +++ b/app/views/invitations/new.html.erb @@ -1,5 +1,5 @@ <%= render DS::Dialog.new do |dialog| %> - <% dialog.with_header(title: t(".title"), subtitle: t(".subtitle", product: product_name)) %> + <% dialog.with_header(title: t(".title"), subtitle: t(".subtitle", product_name: product_name)) %> <% dialog.with_body do %> <%= styled_form_with model: @invitation, class: "space-y-4", data: { turbo: false } do |form| %> diff --git a/app/views/layouts/auth.html.erb b/app/views/layouts/auth.html.erb index 5622cf46a..2cf1df595 100644 --- a/app/views/layouts/auth.html.erb +++ b/app/views/layouts/auth.html.erb @@ -26,7 +26,7 @@ <% end %> <% if controller_name == "sessions" %> <% elsif controller_name == "registrations" %>

- <%= t(".description") %> + <%= t(".description", product_name: product_name) %>

diff --git a/app/views/registrations/new.html.erb b/app/views/registrations/new.html.erb index 6d63d0cbb..f1fb414ae 100644 --- a/app/views/registrations/new.html.erb +++ b/app/views/registrations/new.html.erb @@ -4,7 +4,7 @@ <% if self_hosted_first_login? %>
-

<%= t(".welcome_title") %>

+

<%= t(".welcome_title", product_name: product_name) %>

<%= t(".welcome_body") %>

<% elsif @invitation %> diff --git a/app/views/settings/profiles/show.html.erb b/app/views/settings/profiles/show.html.erb index f9f4077f0..ccdeefb2b 100644 --- a/app/views/settings/profiles/show.html.erb +++ b/app/views/settings/profiles/show.html.erb @@ -1,6 +1,6 @@ <%= content_for :page_title, t(".page_title") %> -<%= settings_section title: t(".profile_title"), subtitle: t(".profile_subtitle", product: product_name) do %> +<%= settings_section title: t(".profile_title"), subtitle: t(".profile_subtitle", product_name: product_name) do %> <%= styled_form_with model: @user, url: user_path(@user), class: "space-y-4" do |form| %> <%= render "settings/user_avatar_field", form: form, user: @user %> diff --git a/config/locales/defaults/de.yml b/config/locales/defaults/de.yml index 2232857a7..1d0f1af64 100644 --- a/config/locales/defaults/de.yml +++ b/config/locales/defaults/de.yml @@ -1,5 +1,8 @@ --- de: + defaults: + brand_name: "%{brand_name}" + product_name: "%{product_name}" activerecord: errors: messages: @@ -116,9 +119,10 @@ de: empty: muss ausgefüllt werden equal_to: muss genau %{count} sein even: muss gerade sein - exclusion: ist nicht verfügbar + exclusion: ist reserviert greater_than: muss größer als %{count} sein greater_than_or_equal_to: muss größer oder gleich %{count} sein + in: muss in %{count} sein inclusion: ist kein gültiger Wert invalid: ist nicht gültig less_than: muss kleiner als %{count} sein @@ -207,7 +211,7 @@ de: percentage: format: delimiter: '' - format: "%n %" + format: "%n%" precision: format: delimiter: '' diff --git a/config/locales/doorkepper.de.yml b/config/locales/doorkepper.de.yml new file mode 100644 index 000000000..4c6cf9fcb --- /dev/null +++ b/config/locales/doorkepper.de.yml @@ -0,0 +1,155 @@ +de: + activerecord: + attributes: + doorkeeper/application: + name: 'Name' + redirect_uri: 'Weiterleitungs-URI' + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: 'darf keinen Fragment-Teil enthalten.' + invalid_uri: 'muss eine gültige URI sein.' + unspecified_scheme: 'muss ein Schema angeben.' + relative_uri: 'muss eine absolute URI sein.' + secured_uri: 'muss eine HTTPS/SSL-URI sein.' + forbidden_uri: 'ist vom Server verboten.' + scopes: + not_match_configured: 'stimmt nicht mit der Serverkonfiguration überein.' + + doorkeeper: + applications: + confirmations: + destroy: 'Bist du sicher?' + buttons: + edit: 'Bearbeiten' + destroy: 'Löschen' + submit: 'Speichern' + cancel: 'Abbrechen' + authorize: 'Autorisieren' + form: + error: 'Hoppla! Bitte überprüfe das Formular auf mögliche Fehler.' + help: + confidential: 'Die Anwendung wird in Umgebungen verwendet, in denen das Client-Geheimnis vertraulich aufbewahrt werden kann. Native Mobile-Apps und Single-Page-Apps gelten als nicht vertraulich.' + redirect_uri: 'Eine URI pro Zeile angeben.' + blank_redirect_uri: 'Leer lassen, wenn dein Anbieter den Client-Credentials-Flow, Resource-Owner-Password-Flow oder einen anderen Flow verwendet, der keine Redirect-URI benötigt.' + scopes: 'Scopes durch Leerzeichen trennen. Leer lassen, um die Standard-Scopes zu verwenden.' + edit: + title: 'Anwendung bearbeiten' + index: + title: 'Deine Anwendungen' + new: 'Neue Anwendung' + name: 'Name' + callback_url: 'Callback-URL' + confidential: 'Vertraulich?' + actions: 'Aktionen' + confidentiality: + 'yes': 'Ja' + 'no': 'Nein' + new: + title: 'Neue Anwendung' + show: + title: 'Anwendung: %{name}' + application_id: 'UID' + secret: 'Geheimnis' + secret_hashed: 'Geheimnis (gehasht)' + scopes: 'Scopes' + confidential: 'Vertraulich' + callback_urls: 'Callback-URLs' + actions: 'Aktionen' + not_defined: 'Nicht definiert' + + authorizations: + buttons: + authorize: 'Autorisieren' + deny: 'Ablehnen' + error: + title: 'Ein Fehler ist aufgetreten' + new: + title: 'Autorisierung erforderlich' + prompt: '%{client_name} Zugriff auf dein Konto erlauben?' + able_to: 'Diese Anwendung kann Folgendes tun' + show: + title: 'Autorisierungscode' + form_post: + title: 'Dieses Formular absenden' + + authorized_applications: + confirmations: + revoke: 'Bist du sicher?' + buttons: + revoke: 'Zugriff widerrufen' + index: + title: 'Deine autorisierten Anwendungen' + application: 'Anwendung' + created_at: 'Erstellt am' + date_format: '%Y-%m-%d %H:%M:%S' + + pre_authorization: + status: 'Vorab-Autorisierung' + + errors: + messages: + # Common error messages + invalid_request: + unknown: 'Die Anfrage fehlt ein erforderlicher Parameter, enthält einen nicht unterstützten Wert oder ist fehlerhaft aufgebaut.' + missing_param: 'Fehlender erforderlicher Parameter: %{value}.' + request_not_authorized: 'Die Anfrage muss autorisiert werden. Ein erforderlicher Parameter zur Autorisierung fehlt oder ist ungültig.' + invalid_code_challenge: 'Ein Code-Challenge ist erforderlich.' + invalid_redirect_uri: 'Die angegebene Redirect-URI ist fehlerhaft oder stimmt nicht mit der registrierten URI überein.' + unauthorized_client: 'Der Client ist nicht berechtigt, diese Anfrage mit dieser Methode auszuführen.' + access_denied: 'Der Ressourceninhaber oder der Autorisierungsserver hat die Anfrage abgelehnt.' + invalid_scope: 'Der angeforderte Scope ist ungültig, unbekannt oder fehlerhaft.' + invalid_code_challenge_method: + zero: 'Der Autorisierungsserver unterstützt PKCE nicht, da keine gültigen code_challenge_method-Werte vorhanden sind.' + one: 'Die code_challenge_method muss %{challenge_methods} sein.' + other: 'Die code_challenge_method muss eine der folgenden sein: %{challenge_methods}.' + server_error: 'Der Autorisierungsserver hat einen unerwarteten Fehler festgestellt und konnte die Anfrage nicht ausführen.' + temporarily_unavailable: 'Der Autorisierungsserver ist vorübergehend überlastet oder wird gewartet.' + + # Configuration error messages + credential_flow_not_configured: 'Der Resource-Owner-Password-Flow ist fehlgeschlagen, weil Doorkeeper.configure.resource_owner_from_credentials nicht konfiguriert ist.' + resource_owner_authenticator_not_configured: 'Das Finden des Resource-Owners ist fehlgeschlagen, weil Doorkeeper.configure.resource_owner_authenticator nicht konfiguriert ist.' + admin_authenticator_not_configured: 'Zugriff auf das Admin-Panel ist verboten, weil Doorkeeper.configure.admin_authenticator nicht konfiguriert ist.' + + # Access grant errors + unsupported_response_type: 'Der Autorisierungsserver unterstützt diesen Antworttyp nicht.' + unsupported_response_mode: 'Der Autorisierungsserver unterstützt diesen Antwortmodus nicht.' + + # Access token errors + invalid_client: 'Die Client-Authentifizierung ist fehlgeschlagen (unbekannter Client, fehlende Authentifizierung oder nicht unterstützte Methode).' + invalid_grant: 'Der bereitgestellte Authorization-Grant ist ungültig, abgelaufen, widerrufen oder passt nicht zur Redirect-URI der Anfrage.' + unsupported_grant_type: 'Der angeforderte Grant-Typ wird vom Autorisierungsserver nicht unterstützt.' + + invalid_token: + revoked: 'Das Zugriffstoken wurde widerrufen.' + expired: 'Das Zugriffstoken ist abgelaufen.' + unknown: 'Das Zugriffstoken ist ungültig.' + revoke: + unauthorized: 'Du bist nicht berechtigt, dieses Token zu widerrufen.' + + forbidden_token: + missing_scope: 'Der Zugriff auf diese Ressource erfordert den Scope "%{oauth_scopes}".' + + flash: + applications: + create: + notice: 'Anwendung erstellt.' + destroy: + notice: 'Anwendung gelöscht.' + update: + notice: 'Anwendung aktualisiert.' + authorized_applications: + destroy: + notice: 'Anwendung widerrufen.' + + layouts: + admin: + title: 'Doorkeeper' + nav: + oauth2_provider: 'OAuth2-Provider' + applications: 'Anwendungen' + home: 'Startseite' + application: + title: 'OAuth-Autorisierung erforderlich' diff --git a/config/locales/mailers/invitation_mailer/de.yml b/config/locales/mailers/invitation_mailer/de.yml new file mode 100644 index 000000000..b90ebb142 --- /dev/null +++ b/config/locales/mailers/invitation_mailer/de.yml @@ -0,0 +1,5 @@ +--- +de: + invitation_mailer: + invite_email: + subject: "%{inviter} hat dich eingeladen, dem Haushalt von %{inviter} auf %{product_name} beizutreten!" diff --git a/config/locales/models/account/de.yml b/config/locales/models/account/de.yml new file mode 100644 index 000000000..484d6e673 --- /dev/null +++ b/config/locales/models/account/de.yml @@ -0,0 +1,21 @@ +--- +de: + activerecord: + attributes: + account: + balance: Kontostand + currency: Währung + family: Familie + family_id: Familie + name: Name + subtype: Untertyp + models: + account: Konto + account/credit: Kreditkarte + account/depository: Bankkonto + account/investment: Investition + account/loan: Darlehen + account/other_asset: Sonstiges Vermögen + account/other_liability: Sonstige Verbindlichkeit + account/property: Immobilie + account/vehicle: Fahrzeug diff --git a/config/locales/models/address/de.yml b/config/locales/models/address/de.yml new file mode 100644 index 000000000..5d1e0ee84 --- /dev/null +++ b/config/locales/models/address/de.yml @@ -0,0 +1,11 @@ +--- +de: + address: + attributes: + country: Land + line1: Adresszeile 1 + line2: Adresszeile 2 + locality: Ort + postal_code: Postleitzahl + region: Region + format: "%{line1} %{line2}, %{locality}, %{region} %{postal_code} %{country}" \ No newline at end of file diff --git a/config/locales/models/entry/de.yml b/config/locales/models/entry/de.yml new file mode 100644 index 000000000..af75ace75 --- /dev/null +++ b/config/locales/models/entry/de.yml @@ -0,0 +1,9 @@ +--- +de: + activerecord: + errors: + models: + entry: + attributes: + base: + invalid_sell_quantity: Du kannst keine %{sell_qty} Anteile von %{ticker} verkaufen, da du nur %{current_qty} Anteile besitzt. diff --git a/config/locales/models/import/de.yml b/config/locales/models/import/de.yml new file mode 100644 index 000000000..97fcc834b --- /dev/null +++ b/config/locales/models/import/de.yml @@ -0,0 +1,13 @@ +--- +de: + activerecord: + attributes: + import: + currency: Währung + number_format: Zahlenformat + errors: + models: + import: + attributes: + raw_file_str: + invalid_csv_format: ist kein gültiges CSV-Format diff --git a/config/locales/models/time_series/value/de.yml b/config/locales/models/time_series/value/de.yml new file mode 100644 index 000000000..f5f73f304 --- /dev/null +++ b/config/locales/models/time_series/value/de.yml @@ -0,0 +1,9 @@ +--- +de: + activemodel: + errors: + models: + time_series/value: + attributes: + value: + must_be_a_money_or_numeric: muss ein Geld- oder numerischer Wert sein diff --git a/config/locales/models/transfer/de.yml b/config/locales/models/transfer/de.yml new file mode 100644 index 000000000..f404a8605 --- /dev/null +++ b/config/locales/models/transfer/de.yml @@ -0,0 +1,18 @@ +--- +de: + activerecord: + errors: + models: + transfer: + attributes: + base: + inflow_cannot_be_in_multiple_transfers: Eingangstransaktion kann nicht Teil mehrerer Überweisungen sein + must_be_from_different_accounts: Überweisungen müssen zwischen unterschiedlichen Konten erfolgen + must_be_from_same_family: Überweisungen müssen innerhalb derselben Familie erfolgen + must_be_within_date_range: Die Buchungsdaten der Überweisungen müssen innerhalb von 4 Tagen liegen + must_have_opposite_amounts: Überweisungen müssen entgegengesetzte Beträge aufweisen + must_have_single_currency: Überweisungen müssen in einer einzigen Währung erfolgen + outflow_cannot_be_in_multiple_transfers: Ausgangstransaktion kann nicht Teil mehrerer Überweisungen sein + transfer: + name: Überweisung an %{to_account} + payment_name: Zahlung an %{to_account} diff --git a/config/locales/models/trend/de.yml b/config/locales/models/trend/de.yml new file mode 100644 index 000000000..ecc86eae4 --- /dev/null +++ b/config/locales/models/trend/de.yml @@ -0,0 +1,13 @@ +--- +de: + activemodel: + errors: + models: + trend: + attributes: + current: + must_be_of_the_same_type_as_previous: muss vom gleichen Typ sein wie vorheriger + must_be_of_type_money_numeric_or_nil: muss vom Typ Geld, Zahl oder nil sein + previous: + must_be_of_the_same_type_as_current: muss vom gleichen Typ sein wie aktueller + must_be_of_type_money_numeric_or_nil: muss vom Typ Geld, Zahl oder nil sein diff --git a/config/locales/models/user/de.yml b/config/locales/models/user/de.yml new file mode 100644 index 000000000..5e3474af0 --- /dev/null +++ b/config/locales/models/user/de.yml @@ -0,0 +1,21 @@ +--- +de: + activerecord: + attributes: + user: + email: E-Mail + family: Familie + family_id: Familie + first_name: Vorname + last_name: Nachname + password: Passwort + password_confirmation: Passwortbestätigung + errors: + models: + user: + attributes: + base: + cannot_deactivate_admin_with_other_users: Admin kann das Konto nicht löschen, solange noch andere Benutzer vorhanden sind Bitte zuerst alle Mitglieder löschen + profile_image: + invalid_file_size: Dateigröße muss kleiner als %{max_megabytes}MB sein + diff --git a/config/locales/views/accounts/de.yml b/config/locales/views/accounts/de.yml new file mode 100644 index 000000000..08afc4999 --- /dev/null +++ b/config/locales/views/accounts/de.yml @@ -0,0 +1,84 @@ +de: + accounts: + account: + link_lunchflow: Mit Lunch Flow verknüpfen + troubleshoot: Fehlerbehebung + chart: + data_not_available: Für den ausgewählten Zeitraum sind keine Daten verfügbar + create: + success: "%{type}-Konto erstellt" + destroy: + success: "%{type}-Konto zur Löschung vorgemerkt" + empty: + empty_message: Füge ein Konto über eine Verbindung, einen Import oder manuell hinzu + new_account: Neues Konto + no_accounts: Noch keine Konten vorhanden + form: + balance: Aktueller Kontostand + name_label: Kontoname + name_placeholder: Beispielkontoname + index: + accounts: Konten + manual_accounts: + other_accounts: Andere Konten + new_account: Neues Konto + sync: Alle synchronisieren + new: + import_accounts: Konten importieren + method_selector: + connected_entry: Konto verknüpfen + connected_entry_eu: EU-Konto verknüpfen + manual_entry: Kontostand manuell eingeben + title: Wie möchtest du es hinzufügen + title: Was möchtest du hinzufügen + show: + activity: + amount: Betrag + balance: Kontostand + date: Datum + entries: Buchungen + entry: Buchung + new: Neu + new_balance: Neuer Kontostand + new_transaction: Neue Transaktion + no_entries: Keine Buchungen gefunden + title: Aktivität + chart: + balance: Kontostand + owed: Geschuldeter Betrag + menu: + confirm_accept: "%{name} löschen" + confirm_body_html: "

Wenn du dieses Konto löschst, werden dessen Wertverläufe gelöscht, was sich auf verschiedene Bereiche deines Gesamtvermögens auswirkt Diese Aktion beeinflusst direkt deine Nettovermögensberechnung und die Kontodiagramme


Nach dem Löschen kann das Konto nicht wiederhergestellt werden Du müsstest es als neues Konto hinzufügen

" + confirm_title: Konto löschen + edit: Bearbeiten + import: Transaktionen importieren + manage: Konten verwalten + update: + success: "%{type}-Konto aktualisiert" + sidebar: + missing_data: Fehlende historische Daten + missing_data_description: "%{product} verwendet Drittanbieter, um historische Wechselkurse, Wertpapierpreise und weitere Daten abzurufen. Diese Daten sind erforderlich, um genaue historische Kontostände zu berechnen." + configure_providers: Konfiguriere deine Anbieter hier + tabs: + all: Alle + assets: Vermögen + debts: Schulden + new_asset: Neues Vermögen + new_debt: Neue Verbindlichkeit + new_account: Neues Konto + new_account_group: "Neue %{account_group}" + types: + depository: Bargeld + investment: Investition + crypto: Krypto + property: Immobilie + vehicle: Fahrzeug + other_asset: Sonstiges Vermögen + credit_card: Kreditkarte + loan: Darlehen + other_liability: Sonstige Verbindlichkeit + + email_confirmations: + new: + invalid_token: Ungültiger oder abgelaufener Bestätigungslink + success_login: Deine E-Mail-Adresse wurde bestätigt Bitte melde dich mit deiner neuen Adresse an diff --git a/config/locales/views/application/de.yml b/config/locales/views/application/de.yml new file mode 100644 index 000000000..e1499b12d --- /dev/null +++ b/config/locales/views/application/de.yml @@ -0,0 +1,10 @@ +--- +de: + number: + currency: + format: + delimiter: "." + format: "%n %u" + precision: 2 + separator: "," + unit: "€" \ No newline at end of file diff --git a/config/locales/views/categories/de.yml b/config/locales/views/categories/de.yml new file mode 100644 index 000000000..0ca11c663 --- /dev/null +++ b/config/locales/views/categories/de.yml @@ -0,0 +1,35 @@ +--- +de: + categories: + bootstrap: + success: Standardkategorien erfolgreich erstellt + category: + delete: Kategorie löschen + edit: Kategorie bearbeiten + create: + success: Kategorie erfolgreich erstellt + destroy: + success: Kategorie erfolgreich gelöscht + edit: + edit: Kategorie bearbeiten + form: + placeholder: Kategoriename + index: + bootstrap: Standard verwenden (empfohlen) + categories: Kategorien + categories_expenses: Ausgabenkategorien + categories_incomes: Einnahmekategorien + empty: Keine Kategorien gefunden + new: Neue Kategorie + menu: + loading: Wird geladen... + new: + new_category: Neue Kategorie + update: + success: Kategorie erfolgreich aktualisiert + category: + dropdowns: + show: + bootstrap: Standardkategorien erstellen + empty: Keine Kategorien gefunden + diff --git a/config/locales/views/category/deletions/de.yml b/config/locales/views/category/deletions/de.yml new file mode 100644 index 000000000..ffe5b9c98 --- /dev/null +++ b/config/locales/views/category/deletions/de.yml @@ -0,0 +1,14 @@ +--- +de: + category: + deletions: + create: + success: Transaktionskategorie erfolgreich gelöscht + new: + category: Kategorie + delete_and_leave_uncategorized: "%{category_name} löschen und ohne Kategorie lassen" + delete_and_recategorize: "%{category_name} löschen und neue Kategorie zuweisen" + delete_category: Kategorie löschen? + explanation: Durch das Löschen dieser Kategorie werden alle Transaktionen mit der Kategorie "%{category_name}" ohne Kategorie angezeigt Statt sie ohne Kategorie zu lassen, kannst du unten eine neue Kategorie zuweisen. + replacement_category_prompt: Kategorie auswählen + diff --git a/config/locales/views/category/dropdowns/de.yml b/config/locales/views/category/dropdowns/de.yml new file mode 100644 index 000000000..1e1d79fdd --- /dev/null +++ b/config/locales/views/category/dropdowns/de.yml @@ -0,0 +1,11 @@ +--- +de: + category: + dropdowns: + row: + delete: Kategorie löschen + edit: Kategorie bearbeiten + show: + clear: Kategorie löschen + no_categories: Keine Kategorien gefunden + search_placeholder: Suchen diff --git a/config/locales/views/credit_cards/de.yml b/config/locales/views/credit_cards/de.yml new file mode 100644 index 000000000..8a33d3e6c --- /dev/null +++ b/config/locales/views/credit_cards/de.yml @@ -0,0 +1,25 @@ +--- +de: + credit_cards: + edit: + edit: "%{account} bearbeiten" + form: + annual_fee: Jahresgebühr + annual_fee_placeholder: '99' + apr: Effektiver Jahreszins + apr_placeholder: '15,99' + available_credit: Verfügbarer Kreditrahmen + available_credit_placeholder: '10000' + expiration_date: Ablaufdatum + minimum_payment: Mindestzahlung + minimum_payment_placeholder: '100' + new: + title: Kreditkartendaten eingeben + overview: + amount_owed: Geschuldeter Betrag + annual_fee: Jahresgebühr + apr: Effektiver Jahreszins + available_credit: Verfügbarer Kreditrahmen + expiration_date: Ablaufdatum + minimum_payment: Mindestzahlung + unknown: Unbekannt diff --git a/config/locales/views/cryptos/de.yml b/config/locales/views/cryptos/de.yml new file mode 100644 index 000000000..06039fa62 --- /dev/null +++ b/config/locales/views/cryptos/de.yml @@ -0,0 +1,7 @@ +--- +de: + cryptos: + edit: + edit: "%{account} bearbeiten" + new: + title: Kontostand eingeben diff --git a/config/locales/views/depositories/de.yml b/config/locales/views/depositories/de.yml new file mode 100644 index 000000000..1ca93239a --- /dev/null +++ b/config/locales/views/depositories/de.yml @@ -0,0 +1,10 @@ +--- +de: + depositories: + edit: + edit: "%{account} bearbeiten" + form: + none: Keine + subtype_prompt: Kontotyp auswählen + new: + title: Kontostand eingeben diff --git a/config/locales/views/email_confirmation_mailer/de.yml b/config/locales/views/email_confirmation_mailer/de.yml new file mode 100644 index 000000000..43b2b1877 --- /dev/null +++ b/config/locales/views/email_confirmation_mailer/de.yml @@ -0,0 +1,9 @@ +--- +de: + email_confirmation_mailer: + confirmation_email: + body: Du hast kürzlich beantragt, deine E-Mail-Adresse zu ändern. Klicke auf die Schaltfläche unten, um diese Änderung zu bestätigen. + cta: E-Mail-Änderung bestätigen + expiry_notice: Dieser Link läuft in %{hours} Stunden ab. + greeting: Hallo! + subject: "%{product_name}: E-Mail-Änderung bestätigen" \ No newline at end of file diff --git a/config/locales/views/entries/de.yml b/config/locales/views/entries/de.yml new file mode 100644 index 000000000..4b08c0138 --- /dev/null +++ b/config/locales/views/entries/de.yml @@ -0,0 +1,14 @@ +--- +de: + entries: + create: + success: Buchung erstellt + destroy: + success: Buchung gelöscht + empty: + description: Versuche eine Buchung hinzuzufügen, Filter anzupassen oder deine Suche zu verfeinern + title: Keine Buchungen gefunden + loading: + loading: Buchungen werden geladen... + update: + success: Buchung aktualisiert diff --git a/config/locales/views/family_exports/de.yml b/config/locales/views/family_exports/de.yml new file mode 100644 index 000000000..28cfb0bb6 --- /dev/null +++ b/config/locales/views/family_exports/de.yml @@ -0,0 +1,7 @@ +--- +de: + family_exports: + list: + in_progress: Wird ausgeführt + complete: Abgeschlossen + failed: Fehlgeschlagen diff --git a/config/locales/views/holdings/de.yml b/config/locales/views/holdings/de.yml new file mode 100644 index 000000000..0d5bb4219 --- /dev/null +++ b/config/locales/views/holdings/de.yml @@ -0,0 +1,35 @@ +--- +de: + holdings: + cash: + brokerage_cash: Depotguthaben + destroy: + success: Position gelöscht + holding: + per_share: pro Anteil + shares: "%{qty} Anteile" + index: + average_cost: Durchschnittlicher Einstandspreis + holdings: Positionen + name: Name + new_holding: Neue Transaktion + no_holdings: Keine Positionen vorhanden + return: Gesamtrendite + weight: Gewichtung + missing_price_tooltip: + description: Diese Investition enthält fehlende Werte, daher konnten Rendite und Wert nicht berechnet werden + missing_data: Fehlende Daten + show: + avg_cost_label: Durchschnittlicher Einstandspreis + current_market_price_label: Aktueller Marktpreis + delete: Löschen + delete_subtitle: Dadurch wird die Position und alle zugehörigen Trades auf diesem Konto gelöscht Diese Aktion kann nicht rückgängig gemacht werden + delete_title: Position löschen + history: Verlauf + overview: Übersicht + portfolio_weight_label: Portfolio-Gewichtung + settings: Einstellungen + ticker_label: Ticker + trade_history_entry: "%{qty} Anteile von %{security} zu %{price}" + total_return_label: Gesamtrendite + unknown: Unbekannt diff --git a/config/locales/views/impersonation_sessions/de.yml b/config/locales/views/impersonation_sessions/de.yml new file mode 100644 index 000000000..e1d8457f2 --- /dev/null +++ b/config/locales/views/impersonation_sessions/de.yml @@ -0,0 +1,15 @@ +--- +de: + impersonation_sessions: + approve: + success: Anfrage genehmigt + complete: + success: Sitzung abgeschlossen + create: + success: Anfrage an Benutzer gesendet Warte auf Bestätigung + join: + success: Sitzung beigetreten + leave: + success: Sitzung verlassen + reject: + success: Anfrage abgelehnt diff --git a/config/locales/views/imports/de.yml b/config/locales/views/imports/de.yml new file mode 100644 index 000000000..0498c92bb --- /dev/null +++ b/config/locales/views/imports/de.yml @@ -0,0 +1,78 @@ +--- +de: + import: + cleans: + show: + description: Bearbeite deine Daten in der Tabelle unten. Rote Zellen sind ungültig. + errors_notice: Deine Daten enthalten Fehler. Fahre mit der Maus über den Fehler, um Details zu sehen. + errors_notice_mobile: Deine Daten enthalten Fehler. Tippe auf den Fehler-Tooltip, um Details zu sehen. + title: Daten bereinigen + configurations: + mint_import: + date_format_label: Datumsformat + show: + description: Wähle die Spalten aus, die den jeweiligen Feldern in deiner CSV entsprechen. + title: Import konfigurieren + trade_import: + date_format_label: Datumsformat + transaction_import: + date_format_label: Datumsformat + confirms: + mappings: + create_account: Konto erstellen + csv_mapping_label: "%{mapping} in CSV" + sure_mapping_label: "%{mapping} in %{product_name}" + no_accounts: Du hast noch keine Konten. Bitte erstelle ein Konto, das wir für nicht zugewiesene Zeilen in deiner CSV verwenden können, oder gehe zurück zum Bereinigungsschritt und gib dort einen Kontonamen an. + rows_label: Zeilen + unassigned_account: Neues Konto für nicht zugewiesene Zeilen erstellen? + show: + account_mapping_description: Weise alle Konten aus deiner importierten Datei den bestehenden Konten in %{product_name} zu. Du kannst auch neue Konten hinzufügen oder sie ohne Kategorie lassen. + account_mapping_title: Konten zuweisen + account_type_mapping_description: Weise alle Kontotypen aus deiner importierten Datei den Kontotypen in %{product_name} zu. + account_type_mapping_title: Kontotypen zuweisen + category_mapping_description: Weise alle Kategorien aus deiner importierten Datei den bestehenden Kategorien in %{product_name} zu. Du kannst auch neue Kategorien hinzufügen oder sie ohne Kategorie lassen. + category_mapping_title: Kategorien zuweisen + tag_mapping_description: Weise alle Tags aus deiner importierten Datei den bestehenden Tags in %{product_name} zu. Du kannst auch neue Tags hinzufügen oder sie ohne Kategorie lassen. + tag_mapping_title: Tags zuweisen + uploads: + show: + description: Füge unten deine CSV-Datei ein oder lade sie hoch. Bitte lies die Anweisungen in der Tabelle unten, bevor du beginnst. + instructions_1: Unten siehst du ein Beispiel einer CSV-Datei mit verfügbaren Spalten für den Import. + instructions_2: Deine CSV muss eine Kopfzeile enthalten. + instructions_3: Du kannst deine Spalten beliebig benennen. Die Zuordnung erfolgt in einem späteren Schritt. + instructions_4: Spalten mit einem Sternchen (*) sind Pflichtfelder. + instructions_5: Keine Kommas, Währungssymbole oder Klammern in Zahlen verwenden. + title: Daten importieren + imports: + empty: + message: Noch keine Importe vorhanden. + new: Neuer Import + import: + complete: Abgeschlossen + delete: Löschen + failed: Fehlgeschlagen + in_progress: Wird ausgeführt + label: "%{type}: %{datetime}" + revert_failed: Rückgängig machen fehlgeschlagen + reverting: Wird rückgängig gemacht + uploading: Zeilen werden verarbeitet + view: Anzeigen + index: + imports: Importe + new: Neuer Import + title: Import/Export + exports: Exporte + new_export: Neuer Export + no_exports: Noch keine Exporte vorhanden. + new: + description: Du kannst verschiedene Datentypen manuell über CSV importieren oder eine unserer Importvorlagen wie Mint verwenden. + import_accounts: Konten importieren + import_mint: Von Mint importieren + import_portfolio: Investitionen importieren + import_transactions: Transaktionen importieren + resume: "%{type} fortsetzen" + sources: Quellen + title: Neuer CSV-Import + ready: + description: Hier ist eine Zusammenfassung der neuen Elemente, die deinem Konto hinzugefügt werden, sobald du diesen Import veröffentlichst. + title: Importdaten bestätigen diff --git a/config/locales/views/investments/de.yml b/config/locales/views/investments/de.yml new file mode 100644 index 000000000..b7ba4e403 --- /dev/null +++ b/config/locales/views/investments/de.yml @@ -0,0 +1,17 @@ +--- +de: + investments: + edit: + edit: "%{account} bearbeiten" + form: + none: Keine + subtype_prompt: Investmenttyp auswählen + new: + title: Kontostand eingeben + show: + chart_title: Gesamtwert + value_tooltip: + cash: Bargeld + holdings: Positionen + total: Portfoliostand + total_value_tooltip: Der gesamte Portfoliostand setzt sich aus dem verfügbaren Depotguthaben zum Handel und dem aktuellen Marktwert deiner Positionen zusammen diff --git a/config/locales/views/invitation_mailer/de.yml b/config/locales/views/invitation_mailer/de.yml new file mode 100644 index 000000000..674ac4d53 --- /dev/null +++ b/config/locales/views/invitation_mailer/de.yml @@ -0,0 +1,8 @@ +--- +de: + invitation_mailer: + invite_email: + accept_button: Einladung annehmen + body: "%{inviter} hat dich eingeladen, der Familie %{family} auf %{product_name} beizutreten." + expiry_notice: Diese Einladung läuft in %{days} Tagen ab. + greeting: Willkommen bei %{product_name}! diff --git a/config/locales/views/invitation_mailer/tr.yml b/config/locales/views/invitation_mailer/tr.yml index e832d2fcc..159094177 100644 --- a/config/locales/views/invitation_mailer/tr.yml +++ b/config/locales/views/invitation_mailer/tr.yml @@ -5,4 +5,4 @@ tr: accept_button: Daveti Kabul Et body: "%{inviter}, sizi %{family} ailesine Maybe üzerinden katılmaya davet etti!" expiry_notice: Bu davet %{days} gün içinde geçerliliğini yitirecek - greeting: Maybe'ye Hoş Geldiniz! \ No newline at end of file + greeting: "%{product_name}'ye Hoş Geldiniz!" \ No newline at end of file diff --git a/config/locales/views/invitations/ca.yml b/config/locales/views/invitations/ca.yml index 4bb751e5f..6f4599b5f 100644 --- a/config/locales/views/invitations/ca.yml +++ b/config/locales/views/invitations/ca.yml @@ -15,6 +15,6 @@ ca: role_label: Rol role_member: Membre submit: Envia invitació - subtitle: Envia una invitació per unir-te al teu compte familiar a Maybe + subtitle: Envia una invitació per unir-te al teu compte familiar a %{product_name} title: Convida algú diff --git a/config/locales/views/invitations/de.yml b/config/locales/views/invitations/de.yml new file mode 100644 index 000000000..759899268 --- /dev/null +++ b/config/locales/views/invitations/de.yml @@ -0,0 +1,19 @@ +--- +de: + invitations: + create: + failure: Einladung konnte nicht gesendet werden. + success: Einladung erfolgreich gesendet. + destroy: + failure: Beim Entfernen der Einladung ist ein Problem aufgetreten. + not_authorized: Du bist nicht berechtigt, Einladungen zu verwalten. + success: Einladung erfolgreich entfernt. + new: + email_label: E-Mail-Adresse + email_placeholder: E-Mail-Adresse eingeben + role_admin: Administrator + role_label: Rolle + role_member: Mitglied + submit: Einladung senden + subtitle: Sende eine Einladung, um deinem Familienkonto auf %{product_name} beizutreten. + title: Jemanden einladen diff --git a/config/locales/views/invitations/en.yml b/config/locales/views/invitations/en.yml index 894b98234..54ea455f3 100644 --- a/config/locales/views/invitations/en.yml +++ b/config/locales/views/invitations/en.yml @@ -15,5 +15,5 @@ en: role_label: Role role_member: Member submit: Send Invitation - subtitle: Send an invitation to join your family account on Maybe + subtitle: Send an invitation to join your family account on %{product_name} title: Invite Someone diff --git a/config/locales/views/invitations/tr.yml b/config/locales/views/invitations/tr.yml index eac55353b..d6fa3a78f 100644 --- a/config/locales/views/invitations/tr.yml +++ b/config/locales/views/invitations/tr.yml @@ -15,5 +15,5 @@ tr: role_label: Rol role_member: Üye submit: Davet Gönder - subtitle: Maybe'de aile hesabınıza katılmaları için bir davetiye gönderin + subtitle: "%{product_name}'de aile hesabınıza katılmaları için bir davetiye gönderin" title: Birini Davet Et \ No newline at end of file diff --git a/config/locales/views/invite_codes/de.yml b/config/locales/views/invite_codes/de.yml new file mode 100644 index 000000000..97fbc5bd6 --- /dev/null +++ b/config/locales/views/invite_codes/de.yml @@ -0,0 +1,6 @@ +--- +de: + invite_codes: + index: + invite_code_description: Erstelle einen neuen Code damit er hier angezeigt wird Bereits verwendete Codes werden nicht mehr angezeigt + no_invite_codes: Keine Codes vorhanden diff --git a/config/locales/views/layout/de.yml b/config/locales/views/layout/de.yml new file mode 100644 index 000000000..16b76665b --- /dev/null +++ b/config/locales/views/layout/de.yml @@ -0,0 +1,13 @@ +--- +de: + layouts: + auth: + existing_account: Du hast bereits ein Konto? + no_account: Neu bei %{product_name}? + sign_in: Anmelden + sign_up: Konto erstellen + your_account: Dein Konto + shared: + footer: + privacy_policy: Datenschutzrichtlinie + terms_of_service: Nutzungsbedingungen \ No newline at end of file diff --git a/config/locales/views/layout/tr.yml b/config/locales/views/layout/tr.yml index 1b2a7dcf6..fe2b6634b 100644 --- a/config/locales/views/layout/tr.yml +++ b/config/locales/views/layout/tr.yml @@ -3,7 +3,7 @@ tr: layouts: auth: existing_account: Zaten bir hesabınız var mı? - no_account: Maybe'ye yeni misiniz? + no_account: "%{product_name}'ye yeni misiniz?" sign_in: Giriş yap sign_up: Hesap oluştur your_account: Hesabınız diff --git a/config/locales/views/loans/de.yml b/config/locales/views/loans/de.yml new file mode 100644 index 000000000..97bc80660 --- /dev/null +++ b/config/locales/views/loans/de.yml @@ -0,0 +1,23 @@ +--- +de: + loans: + edit: + edit: "%{account} bearbeiten" + form: + interest_rate: Zinssatz + interest_rate_placeholder: '5,25' + initial_balance: Ursprünglicher Kreditbetrag + rate_type: Zinssatztyp + term_months: Laufzeit (Monate) + term_months_placeholder: '360' + new: + title: Kreditdetails eingeben + overview: + interest_rate: Zinssatz + monthly_payment: Monatliche Zahlung + not_applicable: Nicht zutreffend + original_principal: Ursprünglicher Kreditbetrag + remaining_principal: Verbleibender Kreditbetrag + term: Laufzeit + type: Typ + unknown: Unbekannt diff --git a/config/locales/views/lunchflow_items/de.yml b/config/locales/views/lunchflow_items/de.yml new file mode 100644 index 000000000..e25330471 --- /dev/null +++ b/config/locales/views/lunchflow_items/de.yml @@ -0,0 +1,62 @@ +de: + lunchflow_items: + create: + success: Lunch-Flow-Verbindung erfolgreich erstellt + destroy: + success: Lunch-Flow-Verbindung entfernt + index: + title: Lunch-Flow-Verbindungen + loading: + loading_message: Lunch-Flow-Konten werden geladen... + loading_title: Wird geladen + link_accounts: + all_already_linked: + one: "Das ausgewählte Konto (%{names}) ist bereits verknüpft" + other: "Alle %{count} ausgewählten Konten sind bereits verknüpft: %{names}" + api_error: "API-Fehler: %{message}" + link_failed: Konten konnten nicht verknüpft werden + no_accounts_selected: Bitte wähle mindestens ein Konto aus + partial_success: "%{created_count} Konto/Konten erfolgreich verknüpft. %{already_linked_count} Konto/Konten waren bereits verknüpft: %{already_linked_names}" + success: + one: "%{count} Konto erfolgreich verknüpft" + other: "%{count} Konten erfolgreich verknüpft" + lunchflow_item: + delete: Verbindung löschen + deletion_in_progress: Löschung wird durchgeführt... + error: Fehler + no_accounts_description: Diese Verbindung enthält derzeit keine verknüpften Konten. + no_accounts_title: Keine Konten + status: "Vor %{timestamp} synchronisiert" + status_never: Noch nie synchronisiert + syncing: Wird synchronisiert... + select_accounts: + accounts_selected: Konten ausgewählt + api_error: "API-Fehler: %{message}" + cancel: Abbrechen + description: Wähle die Konten aus, die du mit deinem %{product_name}-Konto verknüpfen möchtest. + link_accounts: Ausgewählte Konten verknüpfen + no_accounts_found: Keine Konten gefunden. Bitte überprüfe deine API-Key-Konfiguration. + no_api_key: Lunch-Flow-API-Schlüssel ist nicht konfiguriert. Bitte konfiguriere ihn in den Einstellungen. + title: Lunch-Flow-Konten auswählen + select_existing_account: + account_already_linked: Dieses Konto ist bereits mit einem Anbieter verknüpft + all_accounts_already_linked: Alle Lunch-Flow-Konten sind bereits verknüpft + api_error: "API-Fehler: %{message}" + cancel: Abbrechen + description: Wähle ein Lunch-Flow-Konto aus, um es mit diesem Konto zu verknüpfen. Transaktionen werden automatisch synchronisiert und doppelte Einträge entfernt. + link_account: Konto verknüpfen + no_account_specified: Kein Konto angegeben + no_accounts_found: Keine Lunch-Flow-Konten gefunden. Bitte überprüfe deine API-Key-Konfiguration. + no_api_key: Lunch-Flow-API-Schlüssel ist nicht konfiguriert. Bitte konfiguriere ihn in den Einstellungen. + title: "%{account_name} mit Lunch Flow verknüpfen" + link_existing_account: + account_already_linked: Dieses Konto ist bereits mit einem Anbieter verknüpft + api_error: "API-Fehler: %{message}" + lunchflow_account_already_linked: Dieses Lunch-Flow-Konto ist bereits mit einem anderen Konto verknüpft + lunchflow_account_not_found: Lunch-Flow-Konto nicht gefunden + missing_parameters: Erforderliche Parameter fehlen + success: "%{account_name} erfolgreich mit Lunch Flow verknüpft" + sync: + success: Synchronisierung gestartet + update: + success: Lunch-Flow-Verbindung aktualisiert diff --git a/config/locales/views/lunchflow_items/en.yml b/config/locales/views/lunchflow_items/en.yml index 894feb891..68b34df7f 100644 --- a/config/locales/views/lunchflow_items/en.yml +++ b/config/locales/views/lunchflow_items/en.yml @@ -39,7 +39,7 @@ en: api_error: "API error: %{message}" cancel: Cancel configure_name_in_lunchflow: Cannot import - please configure account name in Lunchflow - description: Select the accounts you want to link to your Sure account. + description: Select the accounts you want to link to your %{product_name} account. link_accounts: Link selected accounts no_accounts_found: No accounts found. Please check your API key configuration. no_api_key: Lunch Flow API key is not configured. Please configure it in Settings. diff --git a/config/locales/views/merchants/de.yml b/config/locales/views/merchants/de.yml new file mode 100644 index 000000000..a3dafb8c8 --- /dev/null +++ b/config/locales/views/merchants/de.yml @@ -0,0 +1,26 @@ +--- +de: + family_merchants: + create: + error: Fehler beim Erstellen des Händlers %{error} + success: Neuer Händler erfolgreich erstellt + destroy: + success: Händler erfolgreich gelöscht + edit: + title: Händler bearbeiten + form: + name_placeholder: Händlername + index: + empty: Noch keine Händler vorhanden + new: Neuer Händler + title: Händler + merchant: + confirm_accept: Händler löschen + confirm_body: Bist du sicher dass du diesen Händler löschen möchtest Das Entfernen dieses Händlers wird alle zugehörigen Transaktionen trennen und kann deine Auswertungen beeinflussen + confirm_title: Händler löschen + delete: Händler löschen + edit: Händler bearbeiten + new: + title: Neuer Händler + update: + success: Händler erfolgreich aktualisiert diff --git a/config/locales/views/mfa/de.yml b/config/locales/views/mfa/de.yml new file mode 100644 index 000000000..254e7e2fc --- /dev/null +++ b/config/locales/views/mfa/de.yml @@ -0,0 +1,34 @@ +--- +de: + mfa: + backup_codes: + backup_codes_description: Jeder Code kann nur einmal verwendet werden Bewahre diese Codes sicher auf + backup_codes_title: Deine Backup-Codes + continue: Weiter zu den Sicherheitseinstellungen + description: Bewahre diese Backup-Codes an einem sicheren Ort auf Du benötigst sie falls du den Zugriff auf deine Authenticator-App verlierst + page_title: Backup-Codes + title: Backup-Codes speichern + create: + invalid_code: Ungültiger Bestätigungscode Bitte versuche es erneut + disable: + success: Zwei-Faktor-Authentifizierung wurde deaktiviert + new: + code_label: Bestätigungscode + code_placeholder: 6-stelligen Code eingeben + description: Erhöhe die Sicherheit deines Kontos durch Aktivierung der Zwei-Faktor-Authentifizierung + page_title: Einrichtung der Zwei-Faktor-Authentifizierung + scan_description: Verwende eine Authenticator-App wie Google Authenticator oder 1Password um diesen QR-Code zu scannen + scan_title: 1. QR-Code scannen + secret_description: Wenn du den QR-Code nicht scannen kannst gib diesen geheimen Schlüssel manuell in deiner Authenticator-App ein + secret_title: Manueller Eingabecode + title: Zwei-Faktor-Authentifizierung einrichten + verify_button: Code überprüfen und 2FA aktivieren + verify_description: Gib den 6-stelligen Code aus deiner Authenticator-App ein + verify_title: 2. Bestätigungscode eingeben + verify: + description: Gib den Code aus deiner Authenticator-App ein um fortzufahren + page_title: Zwei-Faktor-Authentifizierung überprüfen + title: Zwei-Faktor-Authentifizierung + verify_button: Überprüfen + verify_code: + invalid_code: Ungültiger Authentifizierungscode Bitte versuche es erneut diff --git a/config/locales/views/onboardings/de.yml b/config/locales/views/onboardings/de.yml new file mode 100644 index 000000000..79c46bcee --- /dev/null +++ b/config/locales/views/onboardings/de.yml @@ -0,0 +1,27 @@ +--- +de: + onboardings: + header: + sign_out: Abmelden + preferences: + currency: Währung + date_format: Datumsformat + example: Beispielkonto + locale: Sprache + preview: Vorschau wie deine Daten basierend auf den Einstellungen angezeigt werden + submit: Abschließen + subtitle: Lass uns deine Einstellungen konfigurieren + title: Einstellungen konfigurieren + profile: + country: Land + first_name: Vorname + household_name: Haushaltsname + last_name: Nachname + profile_image: Profilbild + submit: Weiter + subtitle: Lass uns dein Profil vervollständigen + title: Lass uns die Grundlagen einrichten + show: + message: Wir freuen uns sehr dass du hier bist Im nächsten Schritt stellen wir dir ein paar Fragen um dein Profil zu vervollständigen und alles für dich einzurichten + setup: Konto einrichten + title: Willkommen bei %{product_name} diff --git a/config/locales/views/other_assets/de.yml b/config/locales/views/other_assets/de.yml new file mode 100644 index 000000000..969e44f52 --- /dev/null +++ b/config/locales/views/other_assets/de.yml @@ -0,0 +1,7 @@ +--- +de: + other_assets: + edit: + edit: "%{account} bearbeiten" + new: + title: Vermögenswertdetails eingeben diff --git a/config/locales/views/other_liabilities/de.yml b/config/locales/views/other_liabilities/de.yml new file mode 100644 index 000000000..addf03b70 --- /dev/null +++ b/config/locales/views/other_liabilities/de.yml @@ -0,0 +1,7 @@ +--- +de: + other_liabilities: + edit: + edit: "%{account} bearbeiten" + new: + title: Verbindlichkeitsdetails eingeben diff --git a/config/locales/views/pages/de.yml b/config/locales/views/pages/de.yml new file mode 100644 index 000000000..4df171506 --- /dev/null +++ b/config/locales/views/pages/de.yml @@ -0,0 +1,31 @@ +--- +de: + pages: + changelog: + title: Was ist neu + dashboard: + welcome: "Willkommen zurück, %{name}" + subtitle: "Hier siehst du, was in deinen Finanzen passiert." + new: "Neu" + net_worth_chart: + data_not_available: Für den ausgewählten Zeitraum sind keine Daten verfügbar. + title: Nettovermögen + no_account_empty_state: + new_account: Neues Konto + no_account_subtitle: Da noch keine Konten hinzugefügt wurden, gibt es keine Daten anzuzeigen. Füge dein erstes Konto hinzu, um Dashboard-Daten zu sehen. + no_account_title: Noch keine Konten vorhanden + balance_sheet: + no_items: "Noch keine %{name}" + add_accounts: "Füge deine %{name}-Konten hinzu, um eine vollständige Übersicht zu erhalten." + cashflow_sankey: + title: "Cashflow" + no_data_title: "Keine Cashflow-Daten für diesen Zeitraum" + no_data_description: "Füge Transaktionen hinzu, um Cashflow-Daten anzuzeigen, oder erweitere den Zeitraum." + add_transaction: "Transaktion hinzufügen" + no_accounts: + title: "Noch keine Konten vorhanden" + description: "Füge Konten hinzu, um Daten zum Nettovermögen anzuzeigen." + add_account: "Konto hinzufügen" + outflows_donut: + title: "Ausgaben" + total_outflows: "Gesamtausgaben" diff --git a/config/locales/views/password_mailer/de.yml b/config/locales/views/password_mailer/de.yml new file mode 100644 index 000000000..ad5a1b3a4 --- /dev/null +++ b/config/locales/views/password_mailer/de.yml @@ -0,0 +1,8 @@ +--- +de: + password_mailer: + password_reset: + cta: Passwort zurücksetzen + ignore_if_not_requested: Wenn du diese Anfrage nicht gestellt hast kannst du diese E-Mail ignorieren + request_made: Es wurde eine Anfrage zum Zurücksetzen deines %{product_name}-Passworts gestellt Klicke auf den Link um es zurückzusetzen + subject: "%{product_name} Passwort zurücksetzen" diff --git a/config/locales/views/password_resets/de.yml b/config/locales/views/password_resets/de.yml new file mode 100644 index 000000000..01d03288d --- /dev/null +++ b/config/locales/views/password_resets/de.yml @@ -0,0 +1,13 @@ +--- +de: + password_resets: + edit: + title: Passwort zurücksetzen + new: + requested: Bitte überprüfe deine E-Mails auf einen Link zum Zurücksetzen deines Passworts. + submit: Passwort zurücksetzen + title: Passwort zurücksetzen + back: Zurück + update: + invalid_token: Ungültiger Token. + success: Dein Passwort wurde zurückgesetzt. diff --git a/config/locales/views/passwords/de.yml b/config/locales/views/passwords/de.yml new file mode 100644 index 000000000..34bcd712e --- /dev/null +++ b/config/locales/views/passwords/de.yml @@ -0,0 +1,10 @@ +--- +de: + passwords: + edit: + password: Neues Passwort + password_challenge: Aktuelles Passwort + submit: Passwort zurücksetzen + title: Passwort aktualisieren + update: + success: Dein Passwort wurde zurückgesetzt diff --git a/config/locales/views/plaid_items/de.yml b/config/locales/views/plaid_items/de.yml new file mode 100644 index 000000000..01371319d --- /dev/null +++ b/config/locales/views/plaid_items/de.yml @@ -0,0 +1,23 @@ +--- +de: + plaid_items: + create: + success: Konto erfolgreich verknüpft Bitte warte bis die Konten synchronisiert sind + destroy: + success: Konten zur Löschung vorgemerkt + plaid_item: + add_new: Neue Verbindung hinzufügen + confirm_accept: Institut löschen + confirm_body: Dadurch werden alle Konten dieser Gruppe und alle zugehörigen Daten dauerhaft gelöscht + confirm_title: Institut löschen + connection_lost: Verbindung verloren + connection_lost_description: Diese Verbindung ist nicht mehr gültig Du musst sie löschen und erneut hinzufügen um die Datensynchronisierung fortzusetzen + delete: Löschen + error: Beim Synchronisieren der Daten ist ein Fehler aufgetreten + no_accounts_description: Es konnten keine Konten von diesem Finanzinstitut geladen werden + no_accounts_title: Keine Konten gefunden + requires_update: Erneute Authentifizierung erforderlich + status: Zuletzt vor %{timestamp} synchronisiert + status_never: Synchronisierung erforderlich + syncing: Wird synchronisiert... + update: Verbindung aktualisieren diff --git a/config/locales/views/properties/de.yml b/config/locales/views/properties/de.yml new file mode 100644 index 000000000..8725f85ba --- /dev/null +++ b/config/locales/views/properties/de.yml @@ -0,0 +1,32 @@ +--- +de: + properties: + edit: + edit: "%{account} bearbeiten" + form: + address_line1: Straßenadresse + address_line1_placeholder: Musterstraße 123 + area: Wohnfläche + area_placeholder: '2000' + area_unit: Maßeinheit + country: Land + country_placeholder: DE + locality: Stadt + locality_placeholder: München + none: Keine + postal_code: Postleitzahl + postal_code_placeholder: '80331' + region: Bundesland + region_placeholder: BY + subtype_prompt: Immobilientyp auswählen + year_built: Baujahr + year_built_placeholder: '2000' + new: + title: Immobiliendetails eingeben + overview: + living_area: Wohnfläche + market_value: Marktwert + purchase_price: Kaufpreis + trend: Entwicklung + unknown: Unbekannt + year_built: Baujahr diff --git a/config/locales/views/recurring_transactions/de.yml b/config/locales/views/recurring_transactions/de.yml new file mode 100644 index 000000000..305e2461f --- /dev/null +++ b/config/locales/views/recurring_transactions/de.yml @@ -0,0 +1,37 @@ +de: + recurring_transactions: + title: Wiederkehrende Transaktionen + upcoming: Anstehende wiederkehrende Transaktionen + projected: Prognostiziert + recurring: Wiederkehrend + expected_on: Erwartet am %{date} + day_of_month: Tag %{day} des Monats + identify_patterns: Muster erkennen + cleanup_stale: Alte Einträge bereinigen + info: + title: Automatische Mustererkennung + manual_description: Du kannst Muster manuell erkennen oder alte wiederkehrende Transaktionen mit den obigen Schaltflächen bereinigen. + automatic_description: "Die automatische Erkennung wird außerdem ausgeführt nach:" + triggers: + - Abschluss von CSV-Importen (Transaktionen, Trades, Konten usw.) + - Abschluss einer Anbieter-Synchronisierung (Plaid, SimpleFIN usw.) + identified: "%{count} wiederkehrende Transaktionsmuster erkannt" + cleaned_up: "%{count} alte wiederkehrende Transaktionen bereinigt" + marked_inactive: Wiederkehrende Transaktion als inaktiv markiert + marked_active: Wiederkehrende Transaktion als aktiv markiert + deleted: Wiederkehrende Transaktion gelöscht + confirm_delete: Bist du sicher, dass du diese wiederkehrende Transaktion löschen möchtest? + empty: + title: Keine wiederkehrenden Transaktionen gefunden + description: Klicke auf „Muster erkennen“, um automatisch wiederkehrende Transaktionen aus deinem Verlauf zu erkennen. + table: + merchant: Händler + amount: Betrag + expected_day: Erwarteter Tag + next_date: Nächstes Datum + last_occurrence: Letztes Auftreten + status: Status + actions: Aktionen + status: + active: Aktiv + inactive: Inaktiv diff --git a/config/locales/views/registrations/ca.yml b/config/locales/views/registrations/ca.yml index 748c25185..87ed0855f 100644 --- a/config/locales/views/registrations/ca.yml +++ b/config/locales/views/registrations/ca.yml @@ -20,6 +20,6 @@ ca: submit: Crea el compte title: Crea el teu compte welcome_body: Per començar, has de registrar un compte nou. Després podràs configurar opcions addicionals dins l'aplicació. - welcome_title: Benvingut/da a Self Hosted Maybe! + welcome_title: Benvingut/da a Self Hosted %{product_name}! password_placeholder: Introdueix la teva contrasenya diff --git a/config/locales/views/registrations/de.yml b/config/locales/views/registrations/de.yml new file mode 100644 index 000000000..8fc0e85b1 --- /dev/null +++ b/config/locales/views/registrations/de.yml @@ -0,0 +1,24 @@ +--- +de: + helpers: + label: + user: + invite_code: Einladungscode + submit: + user: + create: Weiter + registrations: + create: + failure: Beim Registrieren ist ein Problem aufgetreten + invalid_invite_code: Ungültiger Einladungscode bitte versuche es erneut + success: Du hast dich erfolgreich registriert + new: + invitation_message: "%{inviter} hat dich eingeladen als %{role} beizutreten" + join_family_title: "%{family} beitreten" + role_admin: Administrator + role_member: Mitglied + submit: Konto erstellen + title: Erstelle dein Konto + welcome_body: Um zu beginnen musst du ein neues Konto erstellen Danach kannst du zusätzliche Einstellungen in der App konfigurieren + welcome_title: Willkommen bei Self Hosted %{product_name} + password_placeholder: Passwort eingeben diff --git a/config/locales/views/registrations/en.yml b/config/locales/views/registrations/en.yml index 86b1fb192..6b6d4f2ec 100644 --- a/config/locales/views/registrations/en.yml +++ b/config/locales/views/registrations/en.yml @@ -22,5 +22,5 @@ en: title: Create your account welcome_body: To get started, you must sign up for a new account. You will then be able to configure additional settings within the app. - welcome_title: Welcome to Self Hosted Maybe! + welcome_title: Welcome to Self Hosted %{product_name}! password_placeholder: Enter your password diff --git a/config/locales/views/registrations/es.yml b/config/locales/views/registrations/es.yml index d451fef35..b9d3b885c 100644 --- a/config/locales/views/registrations/es.yml +++ b/config/locales/views/registrations/es.yml @@ -22,5 +22,5 @@ es: title: Crea tu cuenta welcome_body: Para comenzar, debes registrarte para obtener una nueva cuenta. Luego podrás configurar ajustes adicionales dentro de la aplicación. - welcome_title: ¡Bienvenido a Self Hosted Maybe! + welcome_title: ¡Bienvenido a Self Hosted %{product_name}! password_placeholder: Introduce tu contraseña diff --git a/config/locales/views/registrations/tr.yml b/config/locales/views/registrations/tr.yml index dbc067a0e..df236371d 100644 --- a/config/locales/views/registrations/tr.yml +++ b/config/locales/views/registrations/tr.yml @@ -21,5 +21,5 @@ tr: submit: Hesap oluştur title: Hesabınızı oluşturun welcome_body: Başlamak için yeni bir hesap oluşturmalısınız. Daha sonra uygulama içinde ek ayarları yapılandırabileceksiniz. - welcome_title: Self Hosted Maybe'ye Hoş Geldiniz! + welcome_title: Self Hosted %{product_name}'ye Hoş Geldiniz! password_placeholder: Şifrenizi girin diff --git a/config/locales/views/reports/de.yml b/config/locales/views/reports/de.yml new file mode 100644 index 000000000..9ecb1d093 --- /dev/null +++ b/config/locales/views/reports/de.yml @@ -0,0 +1,137 @@ +--- +de: + reports: + index: + title: Berichte + subtitle: Umfassende Einblicke in deine finanzielle Situation + export: CSV exportieren + periods: + monthly: Monatlich + quarterly: Vierteljährlich + ytd: Jahr bis heute + last_6_months: Letzte 6 Monate + custom: Benutzerdefinierter Zeitraum + date_range: + from: Von + to: Bis + showing_period: "Zeitraum: %{start} bis %{end}" + summary: + total_income: Gesamteinnahmen + total_expenses: Gesamtausgaben + net_savings: Nettoersparnis + budget_performance: Budgetleistung + vs_previous: im Vergleich zum vorherigen Zeitraum + income_minus_expenses: Einnahmen minus Ausgaben + of_budget_used: des Budgets genutzt + no_budget_data: Keine Budgetdaten für diesen Zeitraum + comparison: + title: Zeitraumvergleich + currency: "Währung: %{symbol}" + income: Einnahmen + expenses: Ausgaben + net_savings: Nettoersparnis + current: Aktueller Zeitraum + previous: Vorheriger Zeitraum + no_data: Keine Daten verfügbar + status: + improved: Verbessert + decreased: Verringert + reduced: Reduziert + increased: Gestiegen + budget_performance: + title: Budgetleistung + spent: Ausgegeben + budgeted: Budgetiert + remaining: Verbleibend + over_by: Überschritten um + suggested_daily: "%{amount} pro Tag empfohlen für %{days} verbleibende Tage" + no_budgets: Keine Budgetkategorien für diesen Monat eingerichtet + status: + good: Im Plan + warning: Nahe am Limit + over: Budget überschritten + trends: + title: Trends & Einblicke + monthly_breakdown: Monatliche Aufschlüsselung + month: Monat + income: Einnahmen + expenses: Ausgaben + net: Netto + savings_rate: Sparquote + current: aktuell + avg_monthly_income: Durchschnittliche Monatseinnahmen + avg_monthly_expenses: Durchschnittliche Monatsausgaben + avg_monthly_savings: Durchschnittliche monatliche Ersparnis + no_data: Keine Trenddaten verfügbar + spending_patterns: Ausgabemuster + weekday_spending: Ausgaben unter der Woche + weekend_spending: Ausgaben am Wochenende + total: Gesamt + avg_per_transaction: Durchschnitt pro Transaktion + transactions: Transaktionen + insight_title: Erkenntnis + insight_higher_weekend: "Du gibst %{percent}% mehr pro Transaktion am Wochenende als unter der Woche aus" + insight_higher_weekday: "Du gibst %{percent}% mehr pro Transaktion unter der Woche als am Wochenende aus" + insight_similar: "Deine Ausgaben pro Transaktion sind an Wochentagen und Wochenenden ähnlich" + no_spending_data: Keine Ausgabendaten für diesen Zeitraum verfügbar + empty_state: + title: Keine Daten verfügbar + description: Erfasse deine Finanzen, indem du Transaktionen hinzufügst oder deine Konten verbindest, um umfassende Berichte zu sehen + add_transaction: Transaktion hinzufügen + add_account: Konto hinzufügen + transactions_breakdown: + title: Transaktionsübersicht + no_transactions: Keine Transaktionen für den ausgewählten Zeitraum und Filter gefunden + filters: + title: Filter + category: Kategorie + account: Konto + tag: Tag + amount_min: Mindestbetrag + amount_max: Höchstbetrag + date_range: Zeitraum + all_categories: Alle Kategorien + all_accounts: Alle Konten + all_tags: Alle Tags + apply: Filter anwenden + clear: Filter zurücksetzen + sort: + label: Sortieren nach + date_desc: Datum (neueste zuerst) + amount_desc: Betrag (hoch zu niedrig) + amount_asc: Betrag (niedrig zu hoch) + export: + label: Exportieren + csv: CSV + excel: Excel + pdf: PDF + google_sheets: In Google Sheets öffnen + table: + category: Kategorie + amount: Betrag + type: Typ + expense: Ausgaben + income: Einnahmen + uncategorized: Ohne Kategorie + transactions: Transaktionen + percentage: "% des Gesamtbetrags" + pagination: + showing: Zeige %{count} Transaktionen + previous: Zurück + next: Weiter + google_sheets_instructions: + title_with_key: "✅ URL für Google Sheets kopieren" + title_no_key: "⚠️ API-Schlüssel erforderlich" + ready: Deine CSV-URL (mit API-Schlüssel) ist bereit. + steps: "So importierst du in Google Sheets:\n1. Erstelle ein neues Google Sheet\n2. Gib in Zelle A1 die unten angezeigte Formel ein\n3. Drücke Enter" + security_warning: "Diese URL enthält deinen API-Schlüssel. Bewahre sie sicher auf!" + need_key: Um Daten in Google Sheets zu importieren, benötigst du einen API-Schlüssel. + step1: "Gehe zu Einstellungen → API-Schlüssel" + step2: "Erstelle einen neuen API-Schlüssel mit Lesezugriff" + step3: Kopiere den API-Schlüssel + step4: "Füge ihn an diese URL an: ?api_key=DEIN_SCHLÜSSEL" + example: Beispiel + then_use: Verwende dann die vollständige URL mit =IMPORTDATA() in Google Sheets. + open_sheets: Google Sheets öffnen + go_to_api_keys: Zu den API-Schlüsseln + close: Verstanden diff --git a/config/locales/views/sessions/de.yml b/config/locales/views/sessions/de.yml new file mode 100644 index 000000000..99b95fa05 --- /dev/null +++ b/config/locales/views/sessions/de.yml @@ -0,0 +1,21 @@ +--- +de: + sessions: + create: + invalid_credentials: Ungültige E-Mail-Adresse oder falsches Passwort. + destroy: + logout_successful: Du hast dich erfolgreich abgemeldet. + openid_connect: + failed: Anmeldung über OpenID Connect fehlgeschlagen. + failure: + failed: Anmeldung fehlgeschlagen. + new: + email: E-Mail-Adresse + email_placeholder: du@beispiel.de + forgot_password: Passwort vergessen? + password: Passwort + submit: Anmelden + title: Melde dich bei deinem Konto an + password_placeholder: Passwort eingeben + openid_connect: Mit OpenID Connect anmelden + google_auth_connect: Mit Google anmelden diff --git a/config/locales/views/settings/api_keys/de.yml b/config/locales/views/settings/api_keys/de.yml new file mode 100644 index 000000000..04b1448b6 --- /dev/null +++ b/config/locales/views/settings/api_keys/de.yml @@ -0,0 +1,76 @@ +--- +de: + settings: + api_keys_controller: + success: Dein API-Schlüssel wurde erfolgreich erstellt. + revoked_successfully: API-Schlüssel wurde erfolgreich widerrufen. + revoke_failed: API-Schlüssel konnte nicht widerrufen werden. + scope_descriptions: + read_accounts: Konten anzeigen + read_transactions: Transaktionen anzeigen + read_balances: Kontostände anzeigen + write_transactions: Transaktionen erstellen + api_keys: + show: + title: API-Schlüsselverwaltung + no_api_key: + title: API-Schlüssel + heading: Greife programmatisch auf deine Kontodaten zu + description: Erhalte programmatischen Zugriff auf deine Sure-Daten mit einem sicheren API-Schlüssel. + what_you_can_do: "Was du mit der API tun kannst:" + feature_1: Greife programmatisch auf deine Kontodaten zu. + feature_2: Erstelle eigene Integrationen und Anwendungen. + feature_3: Automatisiere Datenabrufe und Analysen. + security_note_title: Sicherheit zuerst + security_note: Dein API-Schlüssel erhält eingeschränkte Berechtigungen basierend auf den ausgewählten Scopes. Du kannst immer nur einen aktiven API-Schlüssel gleichzeitig haben. + create_api_key: API-Schlüssel erstellen + current_api_key: + title: Dein API-Schlüssel + description: Dein aktiver API-Schlüssel ist einsatzbereit. Bewahre ihn sicher auf und teile ihn niemals öffentlich. + active: Aktiv + key_name: Name + created_at: Erstellt + last_used: Zuletzt verwendet + expires: Läuft ab + ago: her + never_used: Noch nie verwendet + never_expires: Läuft nie ab + permissions: Berechtigungen + usage_instructions_title: Verwendung deines API-Schlüssels + usage_instructions: "Füge deinen API-Schlüssel im X-Api-Key-Header ein, wenn du Anfragen an die Sure-API sendest:" + regenerate_key: Neuen Schlüssel erstellen + revoke_key: Schlüssel widerrufen + revoke_confirmation: Bist du sicher, dass du diesen API-Schlüssel widerrufen möchtest? Diese Aktion kann nicht rückgängig gemacht werden und deaktiviert sofort alle Anwendungen, die diesen Schlüssel verwenden. + new: + title: API-Schlüssel erstellen + create_new_key: Neuen API-Schlüssel erstellen + description: Konfiguriere deinen neuen API-Schlüssel mit einem aussagekräftigen Namen und den passenden Berechtigungen. + name_label: Name des API-Schlüssels + name_placeholder: z. B. Produktions-App, Analyse-Dashboard + name_help: Wähle einen aussagekräftigen Namen, um den Zweck dieses Schlüssels leichter zu erkennen. + permissions_label: Berechtigungen + permissions_help: Wähle die Berechtigungen, die dein API-Schlüssel benötigt. Du kannst jederzeit einen neuen Schlüssel mit anderen Berechtigungen erstellen. + scope_details: + read_accounts: Zeigt Kontoinformationen, Kontostände und kontobezogene Daten an. + read_transactions: Zeigt Transaktionsdaten, Kategorien und Transaktionsdetails an. + read_balances: Zeigt historische Kontostände und Wertentwicklungen an. + write_transactions: Erstellt und aktualisiert Transaktionsdatensätze (demnächst verfügbar). + security_warning_title: Wichtiger Sicherheitshinweis + security_warning: Dein API-Schlüssel wird nur einmal nach der Erstellung angezeigt. Bewahre ihn sicher auf und teile ihn niemals öffentlich. Wenn du ihn verlierst, musst du einen neuen erstellen. + create_key: API-Schlüssel erstellen + cancel: Abbrechen + created: + title: API-Schlüssel erstellt + success_title: API-Schlüssel erfolgreich erstellt + success_description: Dein neuer API-Schlüssel ist einsatzbereit. Kopiere ihn jetzt, da er später nicht mehr angezeigt wird. + your_api_key: Dein API-Schlüssel + key_name: Name + permissions: Berechtigungen + critical_warning_title: "⚠️ Wichtig: Speichere deinen API-Schlüssel jetzt" + critical_warning_1: Dies ist das einzige Mal, dass dein API-Schlüssel im Klartext angezeigt wird. + critical_warning_2: Kopiere ihn und speichere ihn sicher in deinem Passwort-Manager oder deiner Anwendung. + critical_warning_3: Wenn du diesen Schlüssel verlierst, musst du einen neuen erstellen. + usage_instructions_title: Schnellstart + usage_instructions: "Verwende deinen API-Schlüssel, indem du ihn im X-Api-Key-Header einfügst:" + copy_key: API-Schlüssel kopieren + continue: Weiter zu den API-Schlüssel-Einstellungen diff --git a/config/locales/views/settings/ca.yml b/config/locales/views/settings/ca.yml index fd03b4f2b..e59662de9 100644 --- a/config/locales/views/settings/ca.yml +++ b/config/locales/views/settings/ca.yml @@ -78,7 +78,7 @@ ca: last_name: Cognom page_title: Informació del perfil pending: Pendent - profile_subtitle: Personalitza com apareixes a %{product} + profile_subtitle: Personalitza com apareixes a %{product_name} profile_title: Personal remove_invitation: Elimina invitació remove_member: Elimina membre diff --git a/config/locales/views/settings/de.yml b/config/locales/views/settings/de.yml new file mode 100644 index 000000000..e38d21d0d --- /dev/null +++ b/config/locales/views/settings/de.yml @@ -0,0 +1,120 @@ +de: + settings: + ai_prompts: + show: + page_title: KI-Eingabeaufforderungen + openai_label: OpenAI + disable_ai: KI-Assistent deaktivieren + prompt_instructions: Prompt-Anweisungen + main_system_prompt: + title: Hauptsystem-Prompt + subtitle: Zentrale Anweisungen, die definieren, wie sich der KI-Assistent in allen Chat-Gesprächen verhält + transaction_categorizer: + title: Transaktionskategorisierung + subtitle: Die KI kategorisiert deine Transaktionen automatisch basierend auf deinen definierten Kategorien + merchant_detector: + title: Händlererkennung + subtitle: Die KI identifiziert und ergänzt Transaktionsdaten mit Händlerinformationen + billings: + show: + page_title: Abrechnung + subscription_subtitle: Aktualisiere dein Abonnement und deine Rechnungsdetails + subscription_title: Abonnement verwalten + preferences: + show: + country: Land + currency: Währung + date_format: Datumsformat + general_subtitle: Konfiguriere deine Einstellungen + general_title: Allgemein + default_period: Standardzeitraum + default_account_order: Standardreihenfolge der Konten + language: Sprache + page_title: Einstellungen + theme_dark: Dunkel + theme_light: Hell + theme_subtitle: Wähle ein bevorzugtes Design für die App + theme_system: System + theme_title: Design + timezone: Zeitzone + profiles: + destroy: + cannot_remove_self: Du kannst dich nicht selbst aus dem Konto entfernen. + member_removal_failed: Beim Entfernen des Mitglieds ist ein Problem aufgetreten. + member_removed: Mitglied wurde erfolgreich entfernt. + not_authorized: Du bist nicht berechtigt, Mitglieder zu entfernen. + show: + confirm_delete: + body: Bist du sicher, dass du dein Konto dauerhaft löschen möchtest? Diese Aktion ist unwiderruflich. + title: Konto löschen? + confirm_reset: + body: Bist du sicher, dass du dein Konto zurücksetzen möchtest? Dadurch werden alle Konten, Kategorien, Händler, Tags und andere Daten gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. + title: Konto zurücksetzen? + confirm_reset_with_sample_data: + body: Bist du sicher, dass du dein Konto zurücksetzen und Beispieldaten laden möchtest? Dadurch werden deine vorhandenen Daten gelöscht und durch Demo-Daten ersetzt, sodass du Sure sicher erkunden kannst. + title: Konto zurücksetzen und Beispieldaten laden? + confirm_remove_invitation: + body: Bist du sicher, dass du die Einladung für %{email} entfernen möchtest? + title: Einladung entfernen + confirm_remove_member: + body: Bist du sicher, dass du %{name} aus deinem Konto entfernen möchtest? + title: Mitglied entfernen + danger_zone_title: Gefahrenbereich + delete_account: Konto löschen + delete_account_warning: Das Löschen deines Kontos entfernt dauerhaft alle deine Daten und kann nicht rückgängig gemacht werden. + reset_account: Konto zurücksetzen + reset_account_warning: Das Zurücksetzen deines Kontos löscht alle Konten, Kategorien, Händler, Tags und andere Daten, behält aber dein Benutzerkonto bei. + reset_account_with_sample_data: Zurücksetzen und Beispieldaten laden + reset_account_with_sample_data_warning: Löscht alle vorhandenen Daten und lädt anschließend neue Beispieldaten, um eine vorbefüllte Umgebung zu erkunden. + email: E-Mail + first_name: Vorname + household_form_input_placeholder: Haushaltsnamen eingeben + household_form_label: Haushaltsname + household_subtitle: Lade Familienmitglieder, Partner oder andere Personen ein. Eingeladene können sich in deinen Haushalt einloggen und auf gemeinsame Konten zugreifen. + household_title: Haushalt + invitation_link: Einladungslink + invite_member: Mitglied hinzufügen + last_name: Nachname + page_title: Profilinformationen + pending: Ausstehend + profile_subtitle: Passe an, wie du in %{product_name} erscheinst. + profile_title: Persönlich + remove_invitation: Einladung entfernen + remove_member: Mitglied entfernen + save: Speichern + securities: + show: + page_title: Sicherheit + settings_nav: + accounts_label: Konten + advanced_section_title: Erweitert + ai_prompts_label: KI-Eingabeaufforderungen + api_key_label: API-Schlüssel + billing_label: Abrechnung + categories_label: Kategorien + feedback_label: Feedback + general_section_title: Allgemein + imports_label: Import/Export + logout: Abmelden + merchants_label: Händler + guides_label: Anleitungen + other_section_title: Mehr + preferences_label: Einstellungen + profile_label: Profilinformationen + recurring_transactions_label: Wiederkehrend + rules_label: Regeln + security_label: Sicherheit + self_hosting_label: Self-Hosting + tags_label: Tags + transactions_section_title: Transaktionen + whats_new_label: Was ist neu + api_keys_label: API-Schlüssel + bank_sync_label: Banksynchronisierung + settings_nav_link_large: + next: Weiter + previous: Zurück + user_avatar_field: + accepted_formats: JPG oder PNG, maximal 5 MB + choose: Foto hochladen + choose_label: (optional) + change: Foto ändern diff --git a/config/locales/views/settings/en.yml b/config/locales/views/settings/en.yml index 62cd778ee..567310cc8 100644 --- a/config/locales/views/settings/en.yml +++ b/config/locales/views/settings/en.yml @@ -81,7 +81,7 @@ en: last_name: Last Name page_title: Profile Info pending: Pending - profile_subtitle: Customize how you appear on %{product} + profile_subtitle: Customize how you appear on %{product_name} profile_title: Personal remove_invitation: Remove Invitation remove_member: Remove Member diff --git a/config/locales/views/settings/es.yml b/config/locales/views/settings/es.yml index d6c0b7738..0079aa1d2 100644 --- a/config/locales/views/settings/es.yml +++ b/config/locales/views/settings/es.yml @@ -78,7 +78,7 @@ es: last_name: Apellido page_title: Información del Perfil pending: Pendiente - profile_subtitle: Personaliza cómo apareces en %{product} + profile_subtitle: Personaliza cómo apareces en %{product_name} profile_title: Personal remove_invitation: Eliminar Invitación remove_member: Eliminar Miembro diff --git a/config/locales/views/settings/hostings/de.yml b/config/locales/views/settings/hostings/de.yml new file mode 100644 index 000000000..cef56500f --- /dev/null +++ b/config/locales/views/settings/hostings/de.yml @@ -0,0 +1,63 @@ +--- +de: + settings: + hostings: + invite_code_settings: + description: Lege fest, wie sich neue Benutzer für deine %{product}-Instanz registrieren können. + email_confirmation_description: Wenn aktiviert, müssen Benutzer ihre E-Mail-Adresse bestätigen, wenn sie diese ändern. + email_confirmation_title: E-Mail-Bestätigung erforderlich + generate_tokens: Neue Codes generieren + generated_tokens: Generierte Codes + title: Onboarding + states: + open: Offen + closed: Geschlossen + invite_only: Nur mit Einladung + show: + general: Allgemeine Einstellungen + financial_data_providers: Finanzdatenanbieter + invites: Einladungscodes + title: Self-Hosting + danger_zone: Gefahrenbereich + clear_cache: Daten-Cache leeren + clear_cache_warning: Das Leeren des Daten-Caches entfernt alle Wechselkurse, Wertpapierpreise, Kontostände und andere zwischengespeicherte Daten. Dies löscht keine Konten, Transaktionen, Kategorien oder andere benutzereigenen Daten. + confirm_clear_cache: + title: Daten-Cache leeren? + body: Bist du sicher, dass du den Daten-Cache leeren möchtest? Dadurch werden alle Wechselkurse, Wertpapierpreise, Kontostände und andere Daten entfernt. Diese Aktion kann nicht rückgängig gemacht werden. + brand_fetch_settings: + description: Gib die von Brand Fetch bereitgestellte Client-ID ein. + label: Client-ID + placeholder: Gib hier deine Client-ID ein + title: Brand Fetch Einstellungen + openai_settings: + description: Gib dein Zugriffstoken ein und konfiguriere optional einen benutzerdefinierten, OpenAI-kompatiblen Anbieter. + env_configured_message: Erfolgreich über Umgebungsvariablen konfiguriert. + access_token_label: Zugriffstoken + access_token_placeholder: Gib hier dein Zugriffstoken ein + uri_base_label: API-Basis-URL (optional) + uri_base_placeholder: "https://api.openai.com/v1 (Standard)" + model_label: Modell (optional) + model_placeholder: "gpt-4.1 (Standard)" + title: OpenAI + yahoo_finance_settings: + title: Yahoo Finance + description: Yahoo Finance bietet kostenlosen Zugriff auf Aktienkurse, Wechselkurse und Finanzdaten – ganz ohne API-Schlüssel. + status_active: Yahoo Finance ist aktiv und funktionsfähig + status_inactive: Verbindung zu Yahoo Finance fehlgeschlagen + connection_failed: Verbindung zu Yahoo Finance konnte nicht hergestellt werden + troubleshooting: Überprüfe deine Internetverbindung und Firewall-Einstellungen. Yahoo Finance könnte vorübergehend nicht verfügbar sein. + twelve_data_settings: + api_calls_used: "%{used} / %{limit} API-Aufrufe heute genutzt (%{percentage})" + description: Gib den von Twelve Data bereitgestellten API-Schlüssel ein. + env_configured_message: Erfolgreich über die Umgebungsvariable TWELVE_DATA_API_KEY konfiguriert. + label: API-Schlüssel + placeholder: Gib hier deinen API-Schlüssel ein + plan: "%{plan}-Tarif" + title: Twelve Data + update: + failure: Ungültiger Einstellungswert + success: Einstellungen aktualisiert + invalid_onboarding_state: Ungültiger Onboarding-Status + clear_cache: + cache_cleared: Daten-Cache wurde geleert. Dies kann einige Augenblicke dauern. + not_authorized: Du bist nicht berechtigt, diese Aktion auszuführen. diff --git a/config/locales/views/settings/securities/de.yml b/config/locales/views/settings/securities/de.yml new file mode 100644 index 000000000..499b3d8bb --- /dev/null +++ b/config/locales/views/settings/securities/de.yml @@ -0,0 +1,10 @@ +--- +de: + settings: + securities: + show: + disable_mfa: 2FA deaktivieren + disable_mfa_confirm: Bist du sicher dass du die Zwei-Faktor-Authentifizierung deaktivieren möchtest Dadurch wird dein Konto weniger sicher + enable_mfa: 2FA aktivieren + mfa_description: Füge deinem Konto eine zusätzliche Sicherheitsebene hinzu indem du beim Anmelden einen Code aus deiner Authenticator-App eingibst + mfa_title: Zwei-Faktor-Authentifizierung diff --git a/config/locales/views/shared/de.yml b/config/locales/views/shared/de.yml new file mode 100644 index 000000000..1b0cfb1bf --- /dev/null +++ b/config/locales/views/shared/de.yml @@ -0,0 +1,14 @@ +--- +de: + shared: + confirm_modal: + accept: Bestätigen + body_html: "

Diese Entscheidung kann nicht rückgängig gemacht werden

" + cancel: Abbrechen + title: Bist du sicher + money_field: + label: Betrag + syncing_notice: + syncing: Kontodaten werden synchronisiert... + trend_change: + no_change: keine Änderung diff --git a/config/locales/views/simplefin_items/de.yml b/config/locales/views/simplefin_items/de.yml new file mode 100644 index 000000000..b75cb84d8 --- /dev/null +++ b/config/locales/views/simplefin_items/de.yml @@ -0,0 +1,47 @@ +--- +de: + simplefin_items: + create: + success: SimpleFin-Verbindung erfolgreich hinzugefügt! Deine Konten werden in Kürze angezeigt, sobald sie im Hintergrund synchronisiert wurden. + errors: + blank_token: Bitte gib ein SimpleFin-Setup-Token ein. + invalid_token: Ungültiges Setup-Token. Bitte überprüfe, ob du das vollständige Token aus der SimpleFin Bridge kopiert hast. + token_compromised: Das Setup-Token ist möglicherweise kompromittiert, abgelaufen oder wurde bereits verwendet. Bitte erstelle ein neues. + create_failed: "Verbindung konnte nicht hergestellt werden: %{message}" + unexpected: Ein unerwarteter Fehler ist aufgetreten. Bitte versuche es erneut oder kontaktiere den Support. + destroy: + success: SimpleFin-Verbindung wird entfernt. + update: + success: SimpleFin-Verbindung erfolgreich aktualisiert! Deine Konten werden neu verbunden. + errors: + blank_token: Bitte gib ein SimpleFin-Setup-Token ein. + invalid_token: Ungültiges Setup-Token. Bitte überprüfe, ob du das vollständige Token aus der SimpleFin Bridge kopiert hast. + token_compromised: Das Setup-Token ist möglicherweise kompromittiert, abgelaufen oder wurde bereits verwendet. Bitte erstelle ein neues. + update_failed: "Verbindung konnte nicht aktualisiert werden: %{message}" + unexpected: Ein unerwarteter Fehler ist aufgetreten. Bitte versuche es erneut oder kontaktiere den Support. + edit: + setup_token: + label: "SimpleFin-Setup-Token:" + placeholder: "Füge hier dein SimpleFin-Setup-Token ein..." + help_text: "Das Token sollte eine lange Zeichenfolge aus Buchstaben und Zahlen sein." + complete_account_setup: + success: SimpleFin-Konten wurden erfolgreich eingerichtet! Deine Transaktionen und Positionen werden im Hintergrund importiert. + simplefin_item: + add_new: Neue Verbindung hinzufügen + confirm_accept: Verbindung löschen + confirm_body: Dadurch werden alle Konten dieser Gruppe und alle zugehörigen Daten dauerhaft gelöscht. + confirm_title: SimpleFin-Verbindung löschen? + delete: Löschen + deletion_in_progress: "(Löschung läuft...)" + error: Beim Synchronisieren der Daten ist ein Fehler aufgetreten. + no_accounts_description: Diese Verbindung enthält noch keine synchronisierten Konten. + no_accounts_title: Keine Konten gefunden + requires_update: Erneute Authentifizierung erforderlich + setup_needed: Neue Konten bereit zur Einrichtung + setup_description: Wähle die Kontotypen für deine neu importierten SimpleFin-Konten aus. + setup_action: Neue Konten einrichten + status: Zuletzt vor %{timestamp} synchronisiert + status_never: Noch nie synchronisiert + status_with_summary: "Zuletzt vor %{timestamp} synchronisiert • %{summary}" + syncing: Wird synchronisiert... + update: Verbindung aktualisieren diff --git a/config/locales/views/subscriptions/de.yml b/config/locales/views/subscriptions/de.yml new file mode 100644 index 000000000..ecd8ada7b --- /dev/null +++ b/config/locales/views/subscriptions/de.yml @@ -0,0 +1,4 @@ +--- +de: + subscriptions: + self_hosted_alert: "%{product_name} ist im Self-Hosting-Modus nicht verfügbar." diff --git a/config/locales/views/tag/deletions/de.yml b/config/locales/views/tag/deletions/de.yml new file mode 100644 index 000000000..e90ffdfdd --- /dev/null +++ b/config/locales/views/tag/deletions/de.yml @@ -0,0 +1,13 @@ +--- +de: + tag: + deletions: + create: + deleted: Tag gelöscht + new: + delete_and_leave_uncategorized: "%{tag_name} löschen" + delete_and_recategorize: "%{tag_name} löschen und neuen Tag zuweisen" + delete_tag: Tag löschen? + explanation: "%{tag_name} wird aus Transaktionen und anderen getaggten Elementen entfernt. Statt sie ungetaggt zu lassen, kannst du unten einen neuen Tag zuweisen." + replacement_tag_prompt: Tag auswählen + tag: Tag diff --git a/config/locales/views/tags/de.yml b/config/locales/views/tags/de.yml new file mode 100644 index 000000000..f43cce5fb --- /dev/null +++ b/config/locales/views/tags/de.yml @@ -0,0 +1,23 @@ +--- +de: + tags: + create: + created: Tag erstellt + error: Fehler beim Erstellen des Tags %{error} + destroy: + deleted: Tag gelöscht + edit: + edit: Tag bearbeiten + form: + placeholder: Tag-Name + index: + empty: Noch keine Tags vorhanden + new: Neuer Tag + tags: Tags + new: + new: Neuer Tag + tag: + delete: Löschen + edit: Bearbeiten + update: + updated: Tag aktualisiert diff --git a/config/locales/views/trades/de.yml b/config/locales/views/trades/de.yml new file mode 100644 index 000000000..51417c1f9 --- /dev/null +++ b/config/locales/views/trades/de.yml @@ -0,0 +1,38 @@ +--- +de: + trades: + form: + account: Überweisungskonto (optional) + account_prompt: Konto suchen + amount: Betrag + holding: Tickersymbol + price: Preis pro Anteil + qty: Menge + submit: Transaktion hinzufügen + ticker_placeholder: AAPL + type: Typ + header: + buy: Kaufen + current_market_price_label: Aktueller Marktpreis + overview: Übersicht + purchase_price_label: Kaufpreis + purchase_qty_label: Kaufmenge + sell: Verkaufen + symbol_label: Symbol + total_return_label: Nicht realisierter Gewinn/Verlust + new: + title: Neue Transaktion + show: + additional: Zusätzlich + cost_per_share_label: Kosten pro Anteil + date_label: Datum + delete: Löschen + delete_subtitle: Diese Aktion kann nicht rückgängig gemacht werden + delete_title: Trade löschen + details: Details + exclude_subtitle: Dieser Trade wird nicht in Berichten und Berechnungen berücksichtigt + exclude_title: Von Analysen ausschließen + note_label: Notiz + note_placeholder: Füge hier zusätzliche Notizen hinzu … + quantity_label: Menge + settings: Einstellungen diff --git a/config/locales/views/transactions/de.yml b/config/locales/views/transactions/de.yml new file mode 100644 index 000000000..3d4ab2bf2 --- /dev/null +++ b/config/locales/views/transactions/de.yml @@ -0,0 +1,82 @@ +--- +de: + transactions: + form: + account: Konto + account_prompt: Konto auswählen + amount: Betrag + category: Kategorie + category_prompt: Kategorie auswählen + date: Datum + description: Beschreibung + description_placeholder: Transaktion beschreiben + expense: Ausgabe + income: Einnahme + none: (keine) + note_label: Notizen + note_placeholder: Notiz eingeben + submit: Transaktion hinzufügen + tags_label: Tags + transfer: Überweisung + new: + new_transaction: Neue Transaktion + show: + account_label: Konto + amount: Betrag + category_label: Kategorie + date_label: Datum + delete: Löschen + delete_subtitle: Diese Aktion löscht die Transaktion dauerhaft, beeinflusst deine bisherigen Kontostände und kann nicht rückgängig gemacht werden. + delete_title: Transaktion löschen + details: Details + merchant_label: Händler + name_label: Name + nature: Typ + none: (keine) + note_label: Notizen + note_placeholder: Notiz eingeben + overview: Übersicht + settings: Einstellungen + tags_label: Tags + uncategorized: (ohne Kategorie) + header: + edit_categories: Kategorien bearbeiten + edit_imports: Importe bearbeiten + edit_merchants: Händler bearbeiten + edit_tags: Tags bearbeiten + import: Importieren + index: + transaction: Transaktion + transactions: Transaktionen + searches: + filters: + amount_filter: + equal_to: Gleich + greater_than: Größer als + less_than: Kleiner als + placeholder: '0' + badge: + expense: Ausgabe + income: Einnahme + on_or_after: am oder nach %{date} + on_or_before: am oder vor %{date} + transfer: Überweisung + type_filter: + expense: Ausgabe + income: Einnahme + transfer: Überweisung + menu: + account_filter: Konto + amount_filter: Betrag + apply: Anwenden + cancel: Abbrechen + category_filter: Kategorie + clear_filters: Filter löschen + date_filter: Datum + merchant_filter: Händler + tag_filter: Tag + type_filter: Typ + search: + equal_to: gleich + greater_than: größer als + less_than: kleiner als diff --git a/config/locales/views/transfers/de.yml b/config/locales/views/transfers/de.yml new file mode 100644 index 000000000..7b458c02b --- /dev/null +++ b/config/locales/views/transfers/de.yml @@ -0,0 +1,30 @@ +--- +de: + transfers: + create: + success: Überweisung erstellt + destroy: + success: Überweisung entfernt + form: + amount: Betrag + date: Datum + expense: Ausgabe + from: Von + income: Einnahme + select_account: Konto auswählen + submit: Überweisung erstellen + to: An + transfer: Überweisung + new: + title: Neue Überweisung + show: + delete: Überweisung entfernen + delete_subtitle: Dadurch wird die Überweisung entfernt. Die zugrunde liegenden Transaktionen bleiben erhalten. + delete_title: Überweisung entfernen? + details: Details + note_label: Notizen + note_placeholder: Füge dieser Überweisung eine Notiz hinzu … + overview: Übersicht + settings: Einstellungen + update: + success: Überweisung aktualisiert diff --git a/config/locales/views/users/de.yml b/config/locales/views/users/de.yml new file mode 100644 index 000000000..da1a3928c --- /dev/null +++ b/config/locales/views/users/de.yml @@ -0,0 +1,17 @@ +--- +de: + users: + destroy: + success: Dein Konto wurde gelöscht. + update: + email_change_failed: E-Mail-Adresse konnte nicht geändert werden. + email_change_initiated: Bitte überprüfe deine neue E-Mail-Adresse auf Bestätigungsanweisungen. + success: Dein Profil wurde aktualisiert. + resend_confirmation_email: + success: Eine neue Bestätigungs-E-Mail wurde zum Versand vorgemerkt. + no_pending_change: Derzeit ist keine E-Mail-Änderung ausstehend! + reset: + success: Dein Konto wurde zurückgesetzt. Die Daten werden im Hintergrund in einiger Zeit gelöscht. + unauthorized: Du bist nicht berechtigt, diese Aktion auszuführen. + reset_with_sample_data: + success: Dein Konto wurde zurückgesetzt, und Beispieldaten werden vorbereitet. In Kürze wirst du Demodaten sehen. diff --git a/config/locales/views/valuations/de.yml b/config/locales/views/valuations/de.yml new file mode 100644 index 000000000..cf7a48000 --- /dev/null +++ b/config/locales/views/valuations/de.yml @@ -0,0 +1,30 @@ +--- +de: + valuations: + form: + amount: Betrag + submit: Kontostand aktualisieren + header: + balance: Kontostand + index: + change: Änderung + date: Datum + new_entry: Neuer Eintrag + no_valuations: Für dieses Konto sind noch keine Bewertungen vorhanden + valuations: Wert + value: Wert + new: + title: Neuer Kontostand + show: + amount: Betrag + date_label: Datum + delete: Löschen + delete_subtitle: Diese Aktion kann nicht rückgängig gemacht werden + delete_title: Eintrag löschen + details: Details + name_label: Name + name_placeholder: Gib einen Namen für diesen Eintrag ein + note_label: Notizen + note_placeholder: Füge zusätzliche Details zu diesem Eintrag hinzu + overview: Übersicht + settings: Einstellungen diff --git a/config/locales/views/vehicles/de.yml b/config/locales/views/vehicles/de.yml new file mode 100644 index 000000000..f4966108e --- /dev/null +++ b/config/locales/views/vehicles/de.yml @@ -0,0 +1,25 @@ +--- +de: + vehicles: + edit: + edit: "%{account} bearbeiten" + form: + make: Marke + make_placeholder: Toyota + mileage: Kilometerstand + mileage_placeholder: '15000' + mileage_unit: Einheit + model: Modell + model_placeholder: Camry + year: Baujahr + year_placeholder: '2023' + new: + title: Fahrzeugdetails eingeben + overview: + current_price: Aktueller Preis + make_model: Marke und Modell + mileage: Kilometerstand + purchase_price: Kaufpreis + trend: Entwicklung + unknown: Unbekannt + year: Baujahr