diff --git a/.erb_lint.yml b/.erb_lint.yml index 25e2184f9..d9521ca07 100644 --- a/.erb_lint.yml +++ b/.erb_lint.yml @@ -40,4 +40,38 @@ linters: - 'border-gray-500' - 'border-gray-700' - 'border-gray-900' - - 'border-white' \ No newline at end of file + - 'border-white' + # Custom @utility tokens (bg-inverse, text-inverse, text-primary, etc.) do + # NOT support Tailwind's `/N` opacity modifier syntax — modifiers like + # `text-inverse/70` silently compile to nothing. Use `opacity-N` on the + # parent element, or migrate the token to `@theme --color-X` in + # design/tokens/sure.tokens.json so Tailwind auto-generates the + # color-mix pipeline. See #1653. + - suggestion: "Custom @utility tokens drop `/N` opacity modifiers silently. Use `opacity-N` instead, or migrate the token to @theme in design/tokens/sure.tokens.json (see #1653)." + deprecated: + - 'text-inverse\/\d+' + - 'bg-inverse\/\d+' + - 'bg-inverse-hover\/\d+' + - 'border-inverse\/\d+' + - 'text-primary\/\d+' + - 'text-secondary\/\d+' + - 'text-subdued\/\d+' + - 'border-primary\/\d+' + - 'border-secondary\/\d+' + - 'border-subdued\/\d+' + - 'border-destructive\/\d+' + - 'border-solid\/\d+' + - 'button-bg-primary\/\d+' + - 'button-bg-primary-hover\/\d+' + - 'button-bg-secondary\/\d+' + - 'button-bg-secondary-hover\/\d+' + - 'button-bg-secondary-strong\/\d+' + - 'button-bg-secondary-strong-hover\/\d+' + - 'button-bg-disabled\/\d+' + - 'button-bg-destructive\/\d+' + - 'button-bg-destructive-hover\/\d+' + - 'button-bg-ghost-hover\/\d+' + - 'button-bg-outline-hover\/\d+' + - 'tab-item-active\/\d+' + - 'tab-item-hover\/\d+' + - 'tab-bg-group\/\d+' diff --git a/.sure-version b/.sure-version index 11a626600..38d939e70 100644 --- a/.sure-version +++ b/.sure-version @@ -1 +1 @@ -0.7.1-alpha.8 +0.7.1-alpha.10 diff --git a/app/assets/tailwind/sure-design-system/_generated.css b/app/assets/tailwind/sure-design-system/_generated.css index 105b788e4..96a966b86 100644 --- a/app/assets/tailwind/sure-design-system/_generated.css +++ b/app/assets/tailwind/sure-design-system/_generated.css @@ -9,11 +9,22 @@ --font-mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; --color-white: #ffffff; --color-black: #0B0B0B; - --color-success: var(--color-green-600); + --color-success: var(--color-green-700); --color-warning: var(--color-yellow-600); --color-destructive: var(--color-red-600); --color-info: var(--color-blue-600); --color-shadow: --alpha(var(--color-black) / 6%); + --color-link: var(--color-blue-600); + --color-tertiary: var(--color-alpha-black-100); + --color-surface: var(--color-gray-50); + --color-surface-hover: var(--color-gray-100); + --color-surface-inset: var(--color-gray-100); + --color-surface-inset-hover: var(--color-gray-200); + --color-container: var(--color-white); + --color-container-hover: var(--color-gray-50); + --color-container-inset: var(--color-gray-50); + --color-container-inset-hover: var(--color-gray-100); + --color-nav-indicator: var(--color-black); --color-gray-25: #FAFAFA; --color-gray-50: #F7F7F7; --color-gray-100: #F0F0F0; @@ -197,11 +208,22 @@ @layer base { [data-theme="dark"] { - --color-success: var(--color-green-500); + --color-success: var(--color-green-400); --color-warning: var(--color-yellow-400); --color-destructive: var(--color-red-400); --color-info: var(--color-blue-500); --color-shadow: --alpha(var(--color-white) / 8%); + --color-link: var(--color-blue-500); + --color-tertiary: var(--color-alpha-white-200); + --color-surface: var(--color-black); + --color-surface-hover: var(--color-gray-800); + --color-surface-inset: var(--color-gray-800); + --color-surface-inset-hover: var(--color-gray-800); + --color-container: var(--color-gray-900); + --color-container-hover: var(--color-gray-800); + --color-container-inset: var(--color-gray-800); + --color-container-inset-hover: var(--color-gray-700); + --color-nav-indicator: var(--color-white); --budget-unused-fill: var(--color-gray-500); --budget-unallocated-fill: var(--color-gray-700); --shadow-xs: 0px 1px 2px 0px --alpha(var(--color-white) / 8%); @@ -212,70 +234,6 @@ } } -@utility bg-surface { - @apply bg-gray-50; - - @variant theme-dark { - @apply bg-black; - } -} - -@utility bg-surface-hover { - @apply bg-gray-100; - - @variant theme-dark { - @apply bg-gray-800; - } -} - -@utility bg-surface-inset { - @apply bg-gray-100; - - @variant theme-dark { - @apply bg-gray-800; - } -} - -@utility bg-surface-inset-hover { - @apply bg-gray-200; - - @variant theme-dark { - @apply bg-gray-800; - } -} - -@utility bg-container { - @apply bg-white; - - @variant theme-dark { - @apply bg-gray-900; - } -} - -@utility bg-container-hover { - @apply bg-gray-50; - - @variant theme-dark { - @apply bg-gray-800; - } -} - -@utility bg-container-inset { - @apply bg-gray-50; - - @variant theme-dark { - @apply bg-gray-800; - } -} - -@utility bg-container-inset-hover { - @apply bg-gray-100; - - @variant theme-dark { - @apply bg-gray-700; - } -} - @utility bg-inverse { @apply bg-gray-800; @@ -336,14 +294,6 @@ } } -@utility text-link { - @apply text-blue-600; - - @variant theme-dark { - @apply text-blue-500; - } -} - @utility shadow-border-xs { box-shadow: var(--shadow-xs), 0px 0px 0px 1px var(--color-alpha-black-50); @@ -400,14 +350,6 @@ } } -@utility border-tertiary { - @apply border-alpha-black-100; - - @variant theme-dark { - @apply border-alpha-white-200; - } -} - @utility border-divider { @apply border-tertiary; } @@ -555,11 +497,3 @@ @apply bg-alpha-black-700; } } - -@utility bg-nav-indicator { - @apply bg-black; - - @variant theme-dark { - @apply bg-white; - } -} diff --git a/app/assets/tailwind/sure-design-system/base.css b/app/assets/tailwind/sure-design-system/base.css index 991cfc4ef..522cdcf37 100644 --- a/app/assets/tailwind/sure-design-system/base.css +++ b/app/assets/tailwind/sure-design-system/base.css @@ -1,6 +1,10 @@ @layer base { button { - @apply cursor-pointer focus-visible:outline-gray-900; + @apply cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-alpha-black-300; + + @variant theme-dark { + @apply focus-visible:ring-alpha-white-300; + } } hr { diff --git a/app/components/DS/button.rb b/app/components/DS/button.rb index a253c04c7..ca5644225 100644 --- a/app/components/DS/button.rb +++ b/app/components/DS/button.rb @@ -22,7 +22,6 @@ class DS::Button < DS::Buttonish def merged_opts merged_opts = opts.dup || {} extra_classes = merged_opts.delete(:class) - href = merged_opts.delete(:href) data = merged_opts.delete(:data) || {} if confirm.present? @@ -33,6 +32,28 @@ class DS::Button < DS::Buttonish data = data.merge(turbo_frame: frame) end + # `content_tag(:button, ...)` defaults to `type="submit"` per the HTML + # spec — meaning a DS::Button rendered inside a form will steal Enter-key + # submission from the first text input. Default to `type="button"` so + # callers must opt into submit behavior explicitly. `button_to` (href + # branch) wraps the button in its own form, so submit there is correct + # and we leave its default alone. + if href.blank? + merged_opts[:type] ||= "button" + end + + # Icon-only buttons have no visible text node, so screen readers fall + # back to announcing "button" with no name. Derive a humanized fallback + # from the icon key so AT users hear *something* meaningful; explicit + # `aria: { label: }` on the caller still wins. + if icon_only? && icon.present? + aria = (merged_opts[:aria] || {}).symbolize_keys + if aria[:label].blank? && merged_opts[:"aria-label"].blank? + aria[:label] = icon.to_s.tr("-_", " ").capitalize + merged_opts[:aria] = aria + end + end + merged_opts.merge( class: class_names(container_classes, extra_classes), data: data diff --git a/app/components/DS/buttonish.rb b/app/components/DS/buttonish.rb index bd8894be6..f1e864511 100644 --- a/app/components/DS/buttonish.rb +++ b/app/components/DS/buttonish.rb @@ -10,7 +10,7 @@ class DS::Buttonish < DesignSystemComponent }, destructive: { container_classes: "text-inverse bg-red-500 theme-dark:bg-red-400 hover:bg-red-600 theme-dark:hover:bg-red-500 disabled:bg-red-200 theme-dark:disabled:bg-red-600", - icon_classes: "fg-white" + icon_classes: "text-inverse" }, outline: { container_classes: "text-primary border border-secondary bg-transparent hover:bg-surface-hover", @@ -43,13 +43,13 @@ class DS::Buttonish < DesignSystemComponent }, md: { container_classes: "px-3 py-2", - icon_container_classes: "inline-flex items-center justify-center w-9 h-9", + icon_container_classes: "inline-flex items-center justify-center w-11 h-11", radius_classes: "rounded-lg", text_classes: "text-sm" }, lg: { container_classes: "px-4 py-3", - icon_container_classes: "inline-flex items-center justify-center w-10 h-10", + icon_container_classes: "inline-flex items-center justify-center w-12 h-12", radius_classes: "rounded-xl", text_classes: "text-base" } diff --git a/app/components/DS/dialog.html.erb b/app/components/DS/dialog.html.erb index e6892b1ce..97bac18d6 100644 --- a/app/components/DS/dialog.html.erb +++ b/app/components/DS/dialog.html.erb @@ -1,5 +1,23 @@ <%= wrapper_element do %> - <%= tag.dialog class: "w-full h-full bg-transparent text-primary theme-dark:backdrop:bg-alpha-black-900 backdrop:bg-overlay pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)] #{(drawer? || responsive?) ? "lg:p-3" : "lg:p-1"}", **merged_opts do %> + <%# `role="dialog"` + `aria-modal="true"` is redundant with `
<%= t(".subtitle") %>
+| <%= t(".table.time") %> | +<%= t(".table.level") %> | +<%= t(".table.category") %> | +<%= t(".table.source") %> | +<%= t(".table.message") %> | +<%= t(".table.context") %> | +<%= t(".table.metadata") %> | +
|---|---|---|---|---|---|---|
| <%= l(entry.created_at, format: :long) %> | +<%= entry.level %> | +<%= entry.category %> | +<%= entry.source %> | +<%= entry.message %> | +
+ <%= t(".context.provider", value: entry.provider_key.presence || t(".missing_value")) %>
+ <%= t(".context.family", value: entry.family_id || t(".missing_value")) %>
+ <%= t(".context.account", value: entry.account_id || t(".missing_value")) %>
+ <%= t(".context.user", value: entry.user_id || t(".missing_value")) %>
+ <%= t(".context.account_provider", value: entry.account_provider_id || t(".missing_value")) %>
+ |
+
+ <% if entry.metadata.present? %>
+
+
+ <% else %>
+ <%= t(".missing_value") %>
+ <% end %>
+ <%= t(".table.view_metadata") %>+<%= JSON.pretty_generate(entry.metadata) %>+ |
+
Please note, we are still working on translations for various languages.
+<%= t(".translations_notice") %>
<% end %> <% end %> @@ -182,7 +182,7 @@<%= user.display_name %>
<%= user.role %>
+<%= t("users.roles.#{user.role}", default: user.role.humanize) %>
<%= t("mercury_items.provider_panel.sandbox_note_html").html_safe %>
Two-factor authentication is enabled
-Your account is protected with an additional layer of security.
+<%= t(".mfa_enabled_status_html") %>
+<%= t(".mfa_enabled_description") %>
<% else %> -Two-factor authentication is disabled
-Enable 2FA to add an extra layer of security to your account.
+<%= t(".mfa_disabled_status_html") %>
+<%= t(".mfa_disabled_description") %>
<% end %><%= @error_message %>
diff --git a/app/views/simplefin_items/new.html.erb b/app/views/simplefin_items/new.html.erb index ade7c448c..d0b3ffd9b 100644 --- a/app/views/simplefin_items/new.html.erb +++ b/app/views/simplefin_items/new.html.erb @@ -9,15 +9,20 @@<%= t("snaptrade_items.select_existing_account.no_accounts", default: "No unlinked SnapTrade accounts available.") %>
<%= t("snaptrade_items.select_existing_account.connect_hint", default: "You may need to connect a brokerage first.") %>
- <%= link_to t("snaptrade_items.select_existing_account.settings_link", default: "Go to Provider Settings"), settings_providers_path, class: "btn btn--primary btn--sm mt-4" %> + <%= render DS::Link.new( + text: t("snaptrade_items.select_existing_account.settings_link", default: "Go to Provider Settings"), + href: settings_providers_path, + variant: :primary, + size: :sm, + class: "mt-4" + ) %>transaction
+<%= t(".transaction") %>
diff --git a/app/views/transactions/_transfer_match.html.erb b/app/views/transactions/_transfer_match.html.erb index 53d05a4f4..f2d39531d 100644 --- a/app/views/transactions/_transfer_match.html.erb +++ b/app/views/transactions/_transfer_match.html.erb @@ -2,21 +2,21 @@En eliminar aquest compte, s'esborrarà l'historial @@ -97,9 +126,19 @@ ca: restaurar la informació del compte perquè hauràs d'afegir-lo com un compte nou.
" confirm_title: Vols eliminar el compte? + delete_account: Elimina el compte edit: Edita import: Importa transaccions + import_trades: Importa operacions + import_transactions: Importa transaccions manage: Gestiona els comptes + sharing: Compartició + statements: Extractes + tabs: + activity: Activitat + holdings: Posicions + overview: Resum + statements: Extractes sidebar: configure_providers: Configura els teus proveïdors aquí. missing_data: Falten dades històriques @@ -114,8 +153,26 @@ ca: all: Tots assets: Actius debts: Deutes + subtype_regions: + au: Austràlia + ca: Canadà + eu: Europa + generic: General + in: Índia + uk: Regne Unit + us: Estats Units sync_all: syncing: Sincronitzant comptes... + tax_treatment_descriptions: + tax_advantaged: Beneficis fiscals especials amb condicions + tax_deferred: Aportacions deduïbles, tributació en retirar + tax_exempt: Aportacions després d'impostos, guanys no tributats + taxable: Guanys tributats en realitzar-se + tax_treatments: + tax_advantaged: Amb avantatge fiscal + tax_deferred: Tributació diferida + tax_exempt: Exempt d'impostos + taxable: Subjecte a impostos types: credit_card: Targeta de crèdit crypto: Cripto @@ -123,12 +180,22 @@ ca: investment: Inversió loan: Préstec other_asset: Altre actiu - other_liability: Altra passiu + other_liability: Altre passiu property: Propietat vehicle: Vehicle + types_plural: + credit_card: Targetes de crèdit + crypto: Cripto + depository: Efectiu + investment: Inversions + loan: Préstecs + other_asset: Altres actius + other_liability: Altres passius + property: Propietats + vehicle: Vehicles unlink: - error: "No s'ha pogut desenllaçar el compte: %{error}" - generic_error: S'ha produït un error inesperat. Si us plau, torna-ho a intentar. + error: 'No s''ha pogut desenllaçar el compte: %{error}' + generic_error: S'ha produït un error inesperat. Torna-ho a intentar. not_linked: El compte no està enllaçat a cap proveïdor success: El compte s'ha desenllaçat correctament. Ara és un compte manual. update: diff --git a/config/locales/views/accounts/en.yml b/config/locales/views/accounts/en.yml index f927e3424..a18a3de41 100644 --- a/config/locales/views/accounts/en.yml +++ b/config/locales/views/accounts/en.yml @@ -142,6 +142,16 @@ en: credit_card: Credit Card loan: Loan other_liability: Other Liability + types_plural: + depository: Cash + investment: Investments + crypto: Crypto + property: Properties + vehicle: Vehicles + other_asset: Other Assets + credit_card: Credit Cards + loan: Loans + other_liability: Other Liabilities tax_treatments: taxable: Taxable tax_deferred: Tax-Deferred diff --git a/config/locales/views/accounts/hu.yml b/config/locales/views/accounts/hu.yml index 49d72fb98..6041d3d91 100644 --- a/config/locales/views/accounts/hu.yml +++ b/config/locales/views/accounts/hu.yml @@ -1,8 +1,13 @@ --- hu: + account: + entries: + destroy: + success: "Tétel sikeresen törölve." accounts: not_authorized: "Nincs jogosultságod ennek a számlának a kezeléséhez" account: + complete_setup: Beállítás befejezése edit: Szerkesztés link_lunchflow: Összekapcsolás a Lunch Flow-val link_provider: Összekapcsolás szolgáltatóval @@ -52,6 +57,10 @@ hu: syncing: "Számlák szinkronizálása..." new: import_accounts: Számlák importálása + container: + select: Kiválasztás + navigate: Navigálás + close: Bezárás method_selector: connected_entry: Számla összekapcsolása connected_entry_eu: EU-s számla összekapcsolása @@ -62,6 +71,11 @@ hu: title: Mit szeretnél hozzáadni? show: limited_fx_history_warning: "Az árfolyam-előzmények csak %{date} dátumtól érhetők el. Az ezt megelőző tranzakciókhoz közelítő árfolyamok kerülnek alkalmazásra – ez akkor fordulhat elő, ha a devizaárfolyam-szolgáltató csak korlátozott előzményadatokat kínál." + tabs: + activity: Tevékenység + holdings: Portfólió + overview: Áttekintés + statements: Kimutatások activity: amount: Összeg balance: Egyenleg @@ -80,20 +94,26 @@ hu: pending: Függőben lévő search: placeholder: Tételek keresése név alapján + search_placeholder: Tételek keresése név alapján status: Állapot title: Tevékenység chart: balance: Egyenleg owed: Tartozás összege + header: + complete_setup: Beállítás befejezése menu: confirm_accept: '"%{name}" törlése' confirm_body_html: "A számla törlésével törlöd az értéktörténetét is, ami hatással van az összesített fiókodra. Ez közvetlenül befolyásolja a nettó vagyonszámítást és a számlagrafikonokat.
A törlés után a számla adatait nem lehet visszaállítani – ha szükséges, új számlaként kell hozzáadni.
" confirm_title: Törlöd a számlát? + delete_account: Számla törlése edit: Szerkesztés import: Tranzakciók importálása import_trades: Ügyletek importálása import_transactions: Tranzakciók importálása manage: Számlák kezelése + sharing: Megosztás + statements: Kimutatások update: success: "%{type} számla frissítve" sidebar: @@ -102,9 +122,9 @@ hu: configure_providers: Konfiguráld itt a szolgáltatóidat. tabs: all: Összes - assets: Eszközök + assets: Vagyon debts: Kötelezettségek - new_asset: Új eszköz + new_asset: Új vagyonelem new_debt: Új kötelezettség new_account: Új számla new_account_group: "Új %{account_group}" @@ -114,10 +134,20 @@ hu: crypto: Kripto property: Ingatlan vehicle: Jármű - other_asset: Egyéb eszköz + other_asset: Egyéb vagyon credit_card: Hitelkártya loan: Hitel other_liability: Egyéb kötelezettség + types_plural: + depository: Készpénz + investment: Befektetések + crypto: Kripto + property: Ingatlanok + vehicle: Járművek + other_asset: Egyéb vagyon + credit_card: Hitelkártyák + loan: Hitelek + other_liability: Egyéb kötelezettségek tax_treatments: taxable: Adóköteles tax_deferred: Halasztott adózású @@ -134,6 +164,7 @@ hu: ca: Kanada au: Ausztrália eu: Európa + in: India generic: Általános confirm_unlink: title: Leválasztod a számlát a szolgáltatóról? diff --git a/config/locales/views/admin/invitations/ca.yml b/config/locales/views/admin/invitations/ca.yml new file mode 100644 index 000000000..0d12897a7 --- /dev/null +++ b/config/locales/views/admin/invitations/ca.yml @@ -0,0 +1,8 @@ +--- +ca: + admin: + invitations: + destroy: + success: Invitació eliminada. + destroy_all: + success: S'han eliminat totes les invitacions d'aquesta família. diff --git a/config/locales/views/admin/sso_providers/ca.yml b/config/locales/views/admin/sso_providers/ca.yml index 3906fd918..41ba67d6a 100644 --- a/config/locales/views/admin/sso_providers/ca.yml +++ b/config/locales/views/admin/sso_providers/ca.yml @@ -5,8 +5,8 @@ ca: create: success: El proveïdor SSO s'ha creat correctament. destroy: - confirm: Estàs segur que vols eliminar aquest proveïdor? Aquesta acció no es - pot desfer. + confirm: Segur que vols eliminar aquest proveïdor? Aquesta acció no es pot + desfer. success: El proveïdor SSO s'ha eliminat correctament. edit: description: Actualitza la configuració per a %{label} @@ -18,99 +18,130 @@ ca: cancel: Cancel·la client_id_help: ID del client OAuth del teu proveïdor d'identitat client_id_label: ID del client - client_id_placeholder: el-teu-id-client + client_id_placeholder: el-teu-id-de-client client_secret_help: Secret del client OAuth (xifrat a la base de dades) - client_secret_help_existing: " - deixa en blanc per mantenir l'existent" + client_secret_help_existing: Deixa-ho en blanc per mantenir el secret existent client_secret_label: Secret del client - client_secret_placeholder_existing: "••••••••••••••••" - client_secret_placeholder_new: el-teu-secret-client + client_secret_placeholder_existing: "••••••••" + client_secret_placeholder_new: el-teu-secret-de-client copy_button: Copia - default_role_help: Rol assignat als usuaris creats mitjançant aprovisionament + create_provider: Crea el proveïdor + default_role_help: Rol assignat als usuaris creats mitjançant l'aprovisionament de comptes SSO just-in-time (JIT). Per defecte és Membre. default_role_label: Rol per defecte per a nous usuaris - enabled_help: Els usuaris poden iniciar sessió amb aquest proveïdor quan està - habilitat - enabled_label: Habilita aquest proveïdor - errors_title: "%{count} error ha prohibit que aquest proveïdor s' desa:" - groups_help: Llista separada per comes dels noms de grups del IdP. Usa * per coincidir - amb tots els grups. - icon_help: Nom de la icona Lucide (opcional) - icon_label: Icona - icon_placeholder: p. ex., key, google, github - idp_cert_fingerprint: Emprempta del certificat (alternativa) + enabled_help: Els usuaris podran iniciar sessió amb aquest proveïdor quan + estigui activat + enabled_label: Activa aquest proveïdor + errors_title: + one: "%{count} error ha impedit desar aquest proveïdor:" + other: "%{count} errors han impedit desar aquest proveïdor:" + groups_help: Llista separada per comes amb els noms dels grups del IdP. Fes + servir * per fer coincidir tots els grups. + guest_groups: Grups de convidats + icon_help: Nom de la icona Lucide per al botó d'inici de sessió + icon_label: Icona (opcional) + icon_placeholder: p. ex., key, shield + idp_cert_fingerprint: Empremta del certificat (alternativa) idp_certificate: Certificat del IdP - idp_certificate_help: Certificat X.509 en format PEM. Obligatori si no s'utilitza - l'URL de metadades. + idp_certificate_help: Certificat X.509 en format PEM. Obligatori si no fas + servir l'URL de metadades. idp_metadata_url: URL de metadades del IdP - idp_metadata_url_help: URL a les metadades SAML del teu IdP. Si es proporciona, - altres configuracions SAML es configuraran automàticament. + idp_metadata_url_help: URL de les metadades SAML del teu IdP. Si la indiques, + la resta de paràmetres SAML es configuraran automàticament. idp_slo_url: URL SLO del IdP (opcional) idp_sso_url: URL SSO del IdP - issuer_help: URL emisor OIDC (validarà el punt final .well-known/openid-configuration) - issuer_label: Emisor - issuer_placeholder: https://accounts.google.com + issuer_help: URL de l'emissor OIDC (valida .well-known/openid-configuration) + issuer_label: URL de l'emissor + issuer_placeholder: https://el-teu-idp.exemple.com/realms/el-teu-realm label_help: Text del botó que es mostra als usuaris - label_label: Etiqueta + label_label: Etiqueta del botó label_placeholder: p. ex., Inicia sessió amb Keycloak - manual_saml_config: Configuració manual (si no s'utilitza l'URL de metadades) - manual_saml_help: Només utilitza aquesta configuració si el teu IdP no proporciona + manual_saml_config: Configuració manual (si no fas servir URL de metadades) + manual_saml_help: Fes servir aquesta configuració només si el teu IdP no proporciona una URL de metadades. member_groups: Grups de membres - name_help: Identificador únic (només minúscules, números, subratllats) + name_help: Identificador únic (només minúscules, números i guions baixos) name_id_email: Adreça de correu electrònic (per defecte) name_id_format: Format NameID name_id_persistent: Persistent name_id_transient: Transient name_id_unspecified: No especificat name_label: Nom - name_placeholder: p. ex., openid_connect, keycloak, authentik + name_placeholder: p. ex., keycloak, authentik oauth_configuration: Configuració OAuth/OIDC - prompt_consent: Força consentiment (autoritzar de nou) + prompt_consent: Força el consentiment (torna a autoritzar) prompt_default: Per defecte (decideix el IdP) - prompt_help: Controla com el IdP demana a l'usuari durant l'autenticació. - prompt_label: Prompt d'autenticació - prompt_login: Força inici de sessió (torna a autenticar) - prompt_none: Sense prompt (autenticació silenciosa) - prompt_select_account: Selecció de compte (triar compte) - provisioning_title: Proveïment d'usuaris - redirect_uri_help: URL de callback per configurar al teu proveïdor d'identitat - redirect_uri_label: URI de redirecció - redirect_uri_placeholder: https://teudomini.com/auth/openid_connect/callback + prompt_help: Controla com el IdP demana l'autenticació a l'usuari. + prompt_label: Indicador d'autenticació + prompt_login: Força l'inici de sessió (torna a autenticar) + prompt_none: Sense indicador (autenticació silenciosa) + prompt_select_account: Selecció de compte (tria el compte) + provisioning_title: Aprovisionament d'usuaris + redirect_uri_help: Configura aquesta URL al teu proveïdor d'identitat + redirect_uri_label: URL de retorn + redirect_uri_placeholder: https://elteudomini.com/auth/openid_connect/callback role_admin: Administrador - role_mapping_help: Mapa els grups/claims del IdP als rols de l'aplicació. Als usuaris - se'ls assigna el rol més alt que coincideix. Deixa en blanc per utilitzar el rol per defecte - de dalt. - role_mapping_title: Mapa de grups a rols (Opcional) + role_guest: Convidat + role_mapping_help: Mapeja els grups/claims del IdP als rols de l'aplicació. + Als usuaris se'ls assigna el rol més alt que coincideixi. Deixa-ho en blanc + per utilitzar el rol per defecte de dalt. + role_mapping_title: Mapatge de grups a rols (opcional) role_member: Membre role_super_admin: Super administrador saml_configuration: Configuració SAML - scopes_help: Llista separada per espais d'àmbits OIDC. Deixa en blanc per defecte - (openid email profile). Afegeix 'groups' per recuperar claims de grup. + saml_sp_callback_url_help: Configura aquesta URL com a URL del servei consumidor + d'assercions al teu IdP + saml_sp_callback_url_label: URL de retorn del SP (URL ACS) + scopes_help: Llista separada per espais amb els àmbits OIDC. Deixa-ho en blanc + per als valors per defecte (openid email profile). Afegeix 'groups' per + recuperar els claims de grup. scopes_label: Àmbits personalitzats - strategy_help: L'estratègia d'autenticació a utilitzar + strategy_github: GitHub + strategy_google_oauth2: Google OAuth2 + strategy_help: L'estratègia d'autenticació que cal utilitzar strategy_label: Estratègia + strategy_openid_connect: OpenID Connect + strategy_saml: SAML 2.0 submit: Desa el proveïdor super_admin_groups: Grups de super administradors test_connection: Prova la connexió + update_provider: Actualitza el proveïdor index: add_provider: Afegeix proveïdor - description: Gestiona proveïdors d'autenticació d'inici de sessió únic per a la teva instància + configuration_mode: Mode de configuració + configured_providers: Proveïdors configurats + db_backed_providers: Proveïdors basats en base de dades + db_backed_providers_description: Carrega els proveïdors des de la base de + dades en lloc de la configuració YAML + db_backed_providers_help_html: DefineixAUTH_PROVIDERS_SOURCE=db per activar els proveïdors
+ basats en base de dades. Això permet fer canvis sense reiniciar el servidor.
+ delete: Elimina
+ description: Gestiona proveïdors d'autenticació d'inici de sessió únic per
+ a la teva instància.
+ disable: Desactiva
+ disabled: Desactivat
+ edit: Edita
+ enable: Activa
+ enabled: Activat
env_configured: Entorn/YAML
legacy_providers_notice: Aquests proveïdors estan configurats mitjançant variables
- d'entorn o YAML i no es poden gestionar mitjançant aquesta interfície. Per gestionar-los
- aquí, migrant-los a proveïdors basats en base de dades activant AUTH_PROVIDERS_SOURCE=db
- i recreant-los a la interfície d'usuari.
- legacy_providers_title: Proveïdors configurats a l'entorn
- no_providers_message: Comença afegint el teu primer proveïdor SSO.
+ d'entorn o YAML i no es poden gestionar des d'aquesta interfície. Per gestionar-los
+ aquí, migra'ls a proveïdors basats en base de dades activant AUTH_PROVIDERS_SOURCE=db
+ i recreant-los a la interfície.
+ legacy_providers_title: Proveïdors configurats per entorn
+ no_providers_message: Encara no hi ha proveïdors SSO configurats.
no_providers_title: No hi ha proveïdors SSO
- note: Els canvis als proveïdors SSO requereixen un reinici del servidor per fer efecte.
- Alternativament, activa la bandera de característica AUTH_PROVIDERS_SOURCE=db per carregar
- proveïdors de la base de dades de manera dinàmica.
+ note: Els canvis als proveïdors SSO requereixen un reinici del servidor per
+ fer efecte. Alternativament, activa la bandera de característica AUTH_PROVIDERS_SOURCE=db
+ per carregar els proveïdors des de la base de dades de manera dinàmica.
+ page_title: Proveïdors SSO
+ restart_required: Els canvis requereixen un reinici del servidor per fer efecte.
table:
actions: Accions
disabled: Desactivat
- enabled: Actiu
- issuer: Emisor
+ enabled: Activat
+ issuer: Emissor
name: Nom
status: Estat
strategy: Estratègia
@@ -119,8 +150,8 @@ ca:
description: Configura un nou proveïdor d'autenticació d'inici de sessió únic
title: Afegeix proveïdor SSO
toggle:
- confirm_disable: Estàs segur que vols desactivar aquest proveïdor?
- confirm_enable: Estàs segur que vols activar aquest proveïdor?
+ confirm_disable: Segur que vols desactivar aquest proveïdor?
+ confirm_enable: Segur que vols activar aquest proveïdor?
success_disabled: El proveïdor SSO s'ha desactivat correctament.
success_enabled: El proveïdor SSO s'ha activat correctament.
update:
diff --git a/config/locales/views/admin/sso_providers/en.yml b/config/locales/views/admin/sso_providers/en.yml
index f563c38a7..bca7ac709 100644
--- a/config/locales/views/admin/sso_providers/en.yml
+++ b/config/locales/views/admin/sso_providers/en.yml
@@ -93,7 +93,9 @@ en:
submit: "Save Provider"
create_provider: "Create Provider"
update_provider: "Update Provider"
- errors_title: "%{count} error prohibited this provider from being saved:"
+ errors_title:
+ one: "An error prohibited this provider from being saved:"
+ other: "%{count} errors prohibited this provider from being saved:"
provisioning_title: "User Provisioning"
default_role_label: "Default Role for New Users"
default_role_help: "Role assigned to users created via just-in-time (JIT) SSO account provisioning. Defaults to Member."
diff --git a/config/locales/views/admin/sso_providers/hu.yml b/config/locales/views/admin/sso_providers/hu.yml
index c3f0d3497..e08bfcb7b 100644
--- a/config/locales/views/admin/sso_providers/hu.yml
+++ b/config/locales/views/admin/sso_providers/hu.yml
@@ -4,12 +4,25 @@ hu:
unauthorized: "Nincs jogosultságod ehhez a területhez."
sso_providers:
index:
+ page_title: "SSO-szolgáltatók"
title: "SSO-szolgáltatók"
description: "Az egyszeri bejelentkezési hitelesítési szolgáltatók kezelése a példányodhoz"
+ restart_required: "A módosítások érvénybe lépéséhez szerver-újraindítás szükséges."
+ configured_providers: "Konfigurált szolgáltatók"
add_provider: "Szolgáltató hozzáadása"
no_providers_title: "Nincsenek SSO-szolgáltatók"
no_providers_message: "Kezdd az első SSO-szolgáltató hozzáadásával."
note: "Az SSO-szolgáltatók módosításaihoz szerver-újraindítás szükséges. Alternatívaként engedélyezd az AUTH_PROVIDERS_SOURCE=db feature flag-et, hogy a szolgáltatók dinamikusan töltődjenek be az adatbázisból."
+ enabled: "Engedélyezve"
+ disabled: "Letiltva"
+ edit: "Szerkesztés"
+ enable: "Engedélyezés"
+ disable: "Letiltás"
+ delete: "Törlés"
+ configuration_mode: "Konfigurációs mód"
+ db_backed_providers: "Adatbázis-alapú szolgáltatók"
+ db_backed_providers_description: "Szolgáltatók betöltése az adatbázisból YAML konfiguráció helyett"
+ db_backed_providers_help_html: "Állítsd be az AUTH_PROVIDERS_SOURCE=db értéket az adatbázis-alapú szolgáltatók engedélyezéséhez. Ez lehetővé teszi a módosításokat szerver-újraindítás nélkül."
table:
name: "Név"
strategy: "Stratégia"
@@ -44,6 +57,10 @@ hu:
oauth_configuration: "OAuth/OIDC konfiguráció"
strategy_label: "Stratégia"
strategy_help: "A használandó hitelesítési stratégia"
+ strategy_openid_connect: "OpenID Connect"
+ strategy_saml: "SAML 2.0"
+ strategy_google_oauth2: "Google OAuth2"
+ strategy_github: "GitHub"
name_label: "Név"
name_placeholder: "pl.: openid_connect, keycloak, authentik"
name_help: "Egyedi azonosító (csak kisbetűk, számok és aláhúzás)"
@@ -69,9 +86,13 @@ hu:
redirect_uri_label: "Átirányítási URI"
redirect_uri_placeholder: "https://a-te-domainedet.com/auth/openid_connect/callback"
redirect_uri_help: "Visszahívási URL, amelyet konfigurálni kell az identitásszolgáltatódban"
+ saml_sp_callback_url_label: "SP visszahívási URL (ACS URL)"
+ saml_sp_callback_url_help: "Ezt az URL-t kell megadni az Assertion Consumer Service URL-ként az IdP-ben"
copy_button: "Másolás"
cancel: "Mégse"
submit: "Szolgáltató mentése"
+ create_provider: "Szolgáltató létrehozása"
+ update_provider: "Szolgáltató frissítése"
errors_title: "%{count} hiba akadályozta meg a szolgáltató mentését:"
provisioning_title: "Felhasználói kiépítés"
default_role_label: "Alapértelmezett szerepkör az új felhasználókhoz"
diff --git a/config/locales/views/admin/users/ca.yml b/config/locales/views/admin/users/ca.yml
index e0fa5149a..adb977c85 100644
--- a/config/locales/views/admin/users/ca.yml
+++ b/config/locales/views/admin/users/ca.yml
@@ -3,26 +3,58 @@ ca:
admin:
users:
index:
- description: Gestiona els rols d'usuari per a la teva instància. Els super administradors poden accedir
- a la configuració de proveïdors SSO i la gestió d'usuaris.
+ description: Gestiona els rols d'usuari per a la teva instància. Els super
+ administradors poden accedir a la configuració de proveïdors SSO i a la
+ gestió d'usuaris.
+ family_summary: "%{members} membres · %{accounts} comptes · %{transactions}
+ transaccions"
+ filters:
+ role: Rol
+ role_all: Tots els rols
+ submit: Filtra
+ trial_all: Tots
+ trial_expiring_soon: Caduca en 7 dies
+ trial_status: Estat de la prova
+ trial_trialing: En prova
+ invitations:
+ delete: Elimina
+ delete_all: Elimina-ho tot
+ expires: Caduca %{date}
+ pending_label: Convidat (pendent)
+ no_subscription: Sense subscripció
no_users: No s'han trobat usuaris.
+ not_available: n/d
role_descriptions:
- admin: Administrador familiar. Pot accedir a configuracions avançades com claus API,
- importacions i prompts d'IA.
+ admin: Administrador familiar. Pot accedir a configuracions avançades com
+ claus API, importacions i prompts d'IA.
+ guest: Experiència centrada en l'assistent amb permisos restringits intencionadament
+ per a fluxos d'introducció.
member: Accés bàsic d'usuari. Pot gestionar els seus propis comptes, transaccions
i configuracions.
- super_admin: Administrador d'instància. Pot gestionar proveïdors SSO, rols d'usuari
- i personificar usuaris per suport.
- role_descriptions_title: Descripcions de rols
+ super_admin: Administrador d'instància. Pot gestionar proveïdors SSO, rols
+ d'usuari i personificar usuaris per donar suport.
+ role_descriptions_title: Descripcions dels rols
roles:
admin: Administrador
+ guest: Convidat
member: Membre
super_admin: Super administrador
- section_title: Usuaris
+ section_title: Famílies / Grups
+ summary:
+ trials_expiring_7_days: Proves que caduquen en els pròxims 7 dies
+ table:
+ family_accounts: Comptes familiars
+ family_transactions: Transaccions familiars
+ last_login: Últim inici de sessió
+ never: Mai
+ role: Rol
+ session_count: Nombre de sessions
+ trial_ends_at: Fi de la prova
+ user: Usuari
title: Gestió d'usuaris
+ trial_ends_at: Fi de la prova
+ unnamed_family: Família/grup sense nom
you: "(Tu)"
- trial_ends_at: Fi de prova
- not_available: n/a
update:
failure: No s'ha pogut actualitzar el rol d'usuari.
- success: El rol d'usuari s'ha actualitzat correctament.
+ success: Rol d'usuari actualitzat correctament.
diff --git a/config/locales/views/beta/ca.yml b/config/locales/views/beta/ca.yml
new file mode 100644
index 000000000..9484728c3
--- /dev/null
+++ b/config/locales/views/beta/ca.yml
@@ -0,0 +1,5 @@
+---
+ca:
+ beta:
+ not_enabled: Aquesta funció està en beta. Activa les funcions beta a Configuració
+ → Preferències per provar-la.
diff --git a/config/locales/views/binance_items/ca.yml b/config/locales/views/binance_items/ca.yml
new file mode 100644
index 000000000..c33580047
--- /dev/null
+++ b/config/locales/views/binance_items/ca.yml
@@ -0,0 +1,81 @@
+---
+ca:
+ binance_item:
+ syncer:
+ accounts_need_setup:
+ one: "%{count} compte necessita configuració"
+ other: "%{count} comptes necessiten configuració"
+ calculating_balances: Calculant saldos...
+ checking_configuration: Comprovant la configuració del compte...
+ checking_credentials: Comprovant credencials...
+ credentials_invalid: Credencials de l'API no vàlides. Revisa la teva clau API
+ i el secret.
+ importing_accounts: Important comptes des de Binance...
+ processing_accounts: Processant dades del compte...
+ binance_items:
+ binance_item:
+ delete: Elimina
+ deletion_in_progress: Eliminant...
+ import_accounts_menu: Importa compte
+ no_accounts_message: El teu portafoli de Binance apareixerà aquí després de
+ sincronitzar.
+ no_accounts_title: No s'han trobat comptes
+ provider_name: Binance
+ reconnect: Les credencials necessiten actualització
+ setup_action: Importa compte
+ setup_description: Selecciona quins portafolis de Binance vols seguir.
+ setup_needed: Compte a punt per importar
+ stale_rate_warning: El saldo és aproximat — el tipus de canvi exacte per a %{date}
+ no estava disponible. S'actualitzarà a la propera sincronització.
+ status: Darrera sincronització fa %{timestamp}
+ status_never: Mai sincronitzat
+ status_with_summary: Darrera sincronització fa %{timestamp} - %{summary}
+ sync_status:
+ all_synced:
+ one: "%{count} compte sincronitzat"
+ other: "%{count} comptes sincronitzats"
+ no_accounts: No s'han trobat comptes
+ partial_sync: "%{linked_count} sincronitzats, %{unlinked_count} necessiten
+ configuració"
+ syncing: Sincronitzant...
+ update_credentials: Actualitza les credencials
+ complete_account_setup:
+ no_accounts: No hi ha comptes per importar
+ none_selected: No s'ha seleccionat cap compte
+ success:
+ one: S'ha importat %{count} compte
+ other: S'han importat %{count} comptes
+ create:
+ default_name: Binance
+ success: S'ha connectat correctament a Binance! El teu compte s'està sincronitzant.
+ destroy:
+ success: S'ha programat la connexió Binance per a la seva eliminació.
+ link_existing_account:
+ errors:
+ invalid_binance_account: Compte Binance no vàlid
+ only_manual: Només els comptes manuals es poden enllaçar a Binance
+ success: S'ha enllaçat correctament al compte Binance
+ select_existing_account:
+ cancel: Cancel·la
+ check_provider_health: Comprova que les teves credencials de l'API de Binance
+ siguin vàlides
+ currently_linked_to: 'Actualment enllaçat a: %{account_name}'
+ link: Enllaça
+ no_accounts_found: No s'han trobat comptes Binance.
+ title: Enllaça compte Binance
+ wait_for_sync: Espera que Binance acabi la sincronització
+ setup_accounts:
+ accounts_count:
+ one: "%{count} compte disponible"
+ other: "%{count} comptes disponibles"
+ cancel: Cancel·la
+ creating: Important...
+ import_selected: Importa els seleccionats
+ instructions: Selecciona els portafolis de Binance que vols importar. Només
+ es mostren els portafolis amb saldos.
+ no_accounts: Tots els comptes s'han importat.
+ select_all: Selecciona-ho tot
+ subtitle: Selecciona quins portafolis vols seguir
+ title: Importa compte Binance
+ update:
+ success: La configuració de Binance s'ha actualitzat correctament.
diff --git a/config/locales/views/brex_items/ca.yml b/config/locales/views/brex_items/ca.yml
new file mode 100644
index 000000000..cbe5595c7
--- /dev/null
+++ b/config/locales/views/brex_items/ca.yml
@@ -0,0 +1,308 @@
+---
+ca:
+ brex_items:
+ account_metadata:
+ provider: Brex
+ separator: " • "
+ api_error:
+ common_issues: 'Problemes habituals:'
+ expired_credentials: Genera un nou token API des de Brex.
+ expired_credentials_label: 'Credencials caducades:'
+ heading: No s'ha pogut connectar a Brex
+ invalid_token: Revisa el teu token API a la configuració del proveïdor.
+ invalid_token_label: 'Token API no vàlid:'
+ network: Comprova la teva connexió a internet.
+ network_label: 'Problema de xarxa:'
+ permissions: Assegura't que el teu token té els permisos necessaris només de
+ lectura per a comptes i transaccions.
+ permissions_label: 'Permisos insuficients:'
+ service: L'API de Brex pot estar temporalment no disponible.
+ service_label: 'Servei caigut:'
+ settings_link: Revisa la configuració del proveïdor
+ title: Error de connexió Brex
+ brex_item:
+ accounts_need_setup: Els comptes necessiten configuració
+ delete: Elimina la connexió
+ deletion_in_progress: eliminació en curs...
+ error: Error
+ no_accounts_description: Aquesta connexió encara no té comptes enllaçats.
+ no_accounts_title: No hi ha comptes
+ setup_action: Configura els nous comptes
+ setup_description: "%{linked} de %{total} comptes enllaçats. Tria els tipus
+ de compte per als teus nous comptes Brex importats."
+ setup_needed: Nous comptes a punt per configurar
+ status: Sincronitzat fa %{timestamp}
+ status_never: Mai sincronitzat
+ status_with_summary: Darrera sincronització fa %{timestamp} - %{summary}
+ syncing: Sincronitzant...
+ total: Total
+ unlinked: Sense enllaç
+ complete_account_setup:
+ all_skipped: S'han omès tots els comptes. No s'ha creat cap compte.
+ creation_failed: 'No s''han pogut crear els comptes: %{error}'
+ creation_failed_count: No s'han pogut crear %{count} compte(s).
+ no_accounts: No hi ha comptes per configurar.
+ partial_skipped: S'han creat correctament %{created_count} compte(s); s'han
+ omès %{skipped_count} compte(s).
+ partial_success: S'han creat correctament %{created_count} compte(s), però %{failed_count}
+ compte(s) han fallat.
+ success: S'han creat correctament %{count} compte(s).
+ unexpected_error: S'ha produït un error inesperat.
+ create:
+ success: La connexió Brex s'ha creat correctament
+ default_card_name: Targeta Brex
+ default_cash_name: Brex Cash %{id}
+ default_connection_name: Connexió Brex
+ destroy:
+ success: La connexió Brex s'ha eliminat
+ entries:
+ default_name: Transacció Brex
+ errors:
+ unexpected_error: S'ha produït un error inesperat. Torna-ho a provar més tard.
+ index:
+ title: Connexions Brex
+ institution_summary:
+ count:
+ one: "%{count} entitat"
+ other: "%{count} entitats"
+ none: No hi ha entitats connectades
+ one: "%{name}"
+ kinds:
+ card: Targeta
+ cash: Efectiu
+ link_accounts:
+ all_already_linked:
+ one: El compte seleccionat (%{names}) ja està enllaçat
+ other: 'Tots els %{count} comptes seleccionats ja estan enllaçats: %{names}'
+ api_error: 'Error de l''API: %{message}'
+ invalid_account_names:
+ one: No es pot enllaçar un compte sense nom
+ other: No es poden enllaçar %{count} comptes sense nom
+ invalid_account_type: Tipus de compte Brex no admès
+ link_failed: No s'han pogut enllaçar els comptes
+ no_accounts_selected: Selecciona almenys un compte
+ no_api_token: No s'ha trobat el token API de Brex. Configura'l a la configuració
+ del proveïdor.
+ partial_invalid: S'han enllaçat correctament %{created_count} compte(s), %{already_linked_count}
+ compte(s) ja estaven enllaçats, %{invalid_count} compte(s) tenien noms no
+ vàlids
+ partial_success: 'S''han enllaçat correctament %{created_count} compte(s). %{already_linked_count}
+ compte(s) ja estaven enllaçats: %{already_linked_names}'
+ select_connection: Tria una connexió Brex abans d'enllaçar comptes.
+ success:
+ one: S'ha enllaçat correctament %{count} compte
+ other: S'han enllaçat correctament %{count} comptes
+ link_existing_account:
+ account_already_linked: Aquest compte ja està enllaçat a un proveïdor
+ api_error: 'Error de l''API: %{message}'
+ invalid_account_name: No es pot enllaçar un compte sense nom
+ missing_parameters: Falten paràmetres obligatoris
+ no_account_specified: No s'ha especificat cap compte
+ no_api_token: No s'ha trobat el token API de Brex. Configura'l a la configuració
+ del proveïdor.
+ provider_account_already_linked: Aquest compte Brex ja està enllaçat a un altre
+ compte
+ provider_account_not_found: No s'ha trobat el compte Brex
+ select_connection: Tria una connexió Brex abans d'enllaçar comptes.
+ success: S'ha enllaçat correctament %{account_name} amb Brex
+ loading:
+ loading_message: Carregant comptes Brex...
+ loading_title: Carregant
+ provider_connection:
+ default_description: Connecta't al teu compte Brex
+ default_name: Brex
+ description: Connecta amb %{name}
+ name: Brex - %{name}
+ provider_panel:
+ accounts_link: Comptes
+ add_connection: Afegeix connexió Brex
+ base_url_label: URL base (opcional)
+ base_url_placeholder: https://api.brex.com
+ configured_html: Configurat i a punt per utilitzar. Visita la pestanya %{accounts_link}
+ per gestionar i configurar comptes.
+ connection_name_label: Nom de la connexió
+ connection_name_placeholder: Compte corrent d'empresa
+ default_connection_name: Connexió Brex
+ disconnect_confirm: Vols desconnectar %{name}?
+ disconnect_label: Desconnecta %{name}
+ encryption_warning:
+ message: Configura les claus de xifrat d'Active Record abans d'afegir tokens
+ de Brex en producció. Sense claus de xifrat, Sure emmagatzema les credencials
+ i les instantànies del proveïdor Brex en text pla com altres registres de
+ proveïdors.
+ title: El xifrat de la base de dades no està configurat
+ instructions:
+ copy_token_html: Copia el token i afegeix-lo com a connexió amb nom a continuació.
+ Sure emmagatzema el token només per sincronitzar aquesta família.
+ create_token: 'Crea un token API amb aquests permisos només de lectura: accounts.cash.readonly,
+ accounts.card.readonly, transactions.cash.readonly, transactions.card.readonly'
+ open_tokens: Ves a la configuració de tokens API/desenvolupador de Brex per
+ a l'empresa que vols connectar
+ sign_in_html: Visita %{link} i inicia sessió al compte que vols connectar
+ keep_token_placeholder: Deixa-ho en blanc per mantenir el token actual
+ not_configured: No configurat
+ sandbox_note_html: Utilitza una connexió amb nom separada per a cada empresa/token
+ API de Brex que vulguis sincronitzar. Deixa l'URL base en blanc per a producció.
+ El staging està limitat a les proves aprovades per Brex i no funciona amb tokens
+ de clients.
+ setup_accounts: Configura comptes
+ setup_title: 'Instruccions de configuració:'
+ sync: Sincronitza
+ token_label: Token
+ token_placeholder: Enganxa el token aquí
+ update_connection: Actualitza la connexió
+ select_accounts:
+ accounts_selected: comptes seleccionats
+ api_error: 'Error de l''API: %{message}'
+ cancel: Cancel·la
+ configure_name_in_brex: No es pot importar — configura el nom del compte a Brex
+ description: Selecciona els comptes que vols enllaçar al teu compte de %{product_name}.
+ link_accounts: Enllaça els comptes seleccionats
+ no_accounts_found: No s'han trobat comptes. Comprova la configuració del teu
+ token API.
+ no_api_token: No s'ha trobat el token API de Brex. Configura'l a la configuració
+ del proveïdor.
+ no_credentials_configured: Primer, configura el teu token API de Brex a la configuració
+ del proveïdor.
+ no_name_placeholder: "(Sense nom)"
+ select_connection: Tria una connexió Brex a la configuració del proveïdor.
+ title: Selecciona comptes Brex
+ unexpected_error: S'ha produït un error inesperat. Torna-ho a provar més tard.
+ select_existing_account:
+ account_already_linked: Aquest compte ja està enllaçat a un proveïdor
+ all_accounts_already_linked: Tots els comptes Brex ja estan enllaçats
+ api_error: 'Error de l''API: %{message}'
+ cancel: Cancel·la
+ configure_name_in_brex: No es pot importar — configura el nom del compte a Brex
+ description: Selecciona un compte Brex per enllaçar-lo amb aquest compte. Les
+ transaccions es sincronitzaran i deduplicaran automàticament.
+ link_account: Enllaça compte
+ no_account_specified: No s'ha especificat cap compte
+ no_accounts_found: No s'han trobat comptes Brex. Comprova la configuració del
+ teu token API.
+ no_api_token: No s'ha trobat el token API de Brex. Configura'l a la configuració
+ del proveïdor.
+ no_credentials_configured: Primer, configura el teu token API de Brex a la configuració
+ del proveïdor.
+ no_name_placeholder: "(Sense nom)"
+ select_connection: Tria una connexió Brex a la configuració del proveïdor.
+ title: Enllaça %{account_name} amb Brex
+ unexpected_error: S'ha produït un error inesperat. Torna-ho a provar més tard.
+ setup_accounts:
+ account_type_label: 'Tipus de compte:'
+ account_types:
+ credit_card: Targeta de crèdit
+ depository: Compte corrent o d'estalvis
+ investment: Compte d'inversió
+ loan: Préstec o hipoteca
+ other_asset: Altre actiu
+ skip: Omet aquest compte
+ all_accounts_linked: Tots els teus comptes Brex ja s'han configurat.
+ api_error: 'Error de l''API: %{message}'
+ balance: Saldo
+ cancel: Cancel·la
+ choose_account_type: 'Tria el tipus de compte correcte per a cada compte Brex:'
+ create_accounts: Crea comptes
+ creating_accounts: Creant comptes...
+ fetch_failed: No s'han pogut obtenir els comptes
+ historical_data_range: 'Rang de dades històriques:'
+ no_accounts_to_setup: No hi ha comptes per configurar
+ no_api_token: No s'ha trobat el token API de Brex. Configura'l a la configuració
+ del proveïdor.
+ subtitle: Tria els tipus de compte correctes per als teus comptes importats
+ subtype_labels:
+ credit_card: ''
+ depository: 'Subtipus de compte:'
+ investment: 'Tipus d''inversió:'
+ loan: 'Tipus de préstec:'
+ other_asset: ''
+ subtype_messages:
+ credit_card: Les targetes de crèdit es configuraran automàticament com a comptes
+ de targeta de crèdit.
+ other_asset: No calen opcions addicionals per a altres actius.
+ subtypes:
+ depository:
+ cd: Certificat de dipòsit
+ checking: Compte corrent
+ hsa: Compte d'estalvi per a salut
+ money_market: Mercat monetari
+ savings: Estalvis
+ investment:
+ 401k: 401(k)
+ 403b: 403(b)
+ 529_plan: Pla 529
+ angel: Inversió àngel
+ brokerage: Corredoria
+ hsa: Compte d'estalvi per a salut
+ ira: IRA tradicional
+ mutual_fund: Fons d'inversió
+ pension: Pensió
+ retirement: Jubilació
+ roth_401k: Roth 401(k)
+ roth_ira: IRA Roth
+ tsp: Pla d'estalvis de jubilació (TSP)
+ loan:
+ auto: Préstec d'automòbil
+ mortgage: Hipoteca
+ other: Altre préstec
+ student: Préstec d'estudis
+ sync_start_date_help: Selecciona fins on vols sincronitzar l'historial de transaccions.
+ Hi ha un màxim de 3 anys d'historial disponible.
+ sync_start_date_label: 'Comença a sincronitzar transaccions des de:'
+ title: Configura els teus comptes Brex
+ setup_required:
+ description: Abans d'enllaçar comptes Brex, has de configurar el teu token API
+ de Brex.
+ heading: Token API no configurat
+ settings_link: Ves a la configuració del proveïdor
+ setup_steps: 'Passos de configuració:'
+ steps:
+ enter_token: Introdueix el teu token API de Brex
+ find_section_html: Localitza la secció Brex
+ open_settings_html: Ves a Configuració > Proveïdors
+ return_to_link: Torna aquí per enllaçar els teus comptes
+ title: Cal configurar Brex
+ statuses:
+ ACTIVE: Actiu
+ CLOSED: Tancat
+ FROZEN: Congelat
+ active: Actiu
+ closed: Tancat
+ frozen: Congelat
+ subtype_select:
+ placeholder:
+ subtype: Selecciona el subtipus
+ type: Selecciona el tipus
+ sync:
+ success: Sincronització iniciada
+ sync_status:
+ all_synced:
+ one: "%{count} compte sincronitzat"
+ other: "%{count} comptes sincronitzats"
+ no_accounts: No s'han trobat comptes
+ partial_setup: "%{synced} sincronitzats, %{pending} necessiten configuració"
+ syncer:
+ account_processing_failed:
+ one: "%{count} compte Brex ha fallat durant el processament."
+ other: "%{count} comptes Brex han fallat durant el processament."
+ account_sync_failed:
+ one: "%{count} sincronització de compte Brex no s'ha pogut programar."
+ other: "%{count} sincronitzacions de compte Brex no s'han pogut programar."
+ accounts_failed:
+ one: "%{count} compte Brex no s'ha pogut importar."
+ other: "%{count} comptes Brex no s'han pogut importar."
+ accounts_need_setup:
+ one: "%{count} compte necessita configuració..."
+ other: "%{count} comptes necessiten configuració..."
+ calculating_balances: Calculant saldos...
+ checking_account_configuration: Comprovant la configuració dels comptes...
+ credentials_invalid: Token API de Brex no vàlid o permisos del compte incorrectes
+ failed: La sincronització ha fallat. Torna-ho a provar o contacta amb el suport.
+ import_failed: La importació de Brex ha fallat.
+ importing_accounts: Important comptes des de Brex...
+ processing_transactions: Processant transaccions...
+ transactions_failed:
+ one: "%{count} compte Brex ha tingut errors d'importació de transaccions."
+ other: "%{count} comptes Brex han tingut errors d'importació de transaccions."
+ update:
+ success: La connexió Brex s'ha actualitzat
diff --git a/config/locales/views/brex_items/hu.yml b/config/locales/views/brex_items/hu.yml
new file mode 100644
index 000000000..6d182321a
--- /dev/null
+++ b/config/locales/views/brex_items/hu.yml
@@ -0,0 +1,277 @@
+---
+hu:
+ brex_items:
+ default_connection_name: Brex kapcsolat
+ account_metadata:
+ provider: Brex
+ separator: " • "
+ kinds:
+ cash: Készpénz
+ card: Kártya
+ statuses:
+ ACTIVE: Aktív
+ active: Aktív
+ CLOSED: Lezárt
+ closed: Lezárt
+ frozen: Befagyasztott
+ FROZEN: Befagyasztott
+ create:
+ success: Brex kapcsolat sikeresen létrehozva
+ default_card_name: Brex kártya
+ default_cash_name: "Brex készpénz %{id}"
+ destroy:
+ success: Brex kapcsolat eltávolítva
+ index:
+ title: Brex kapcsolatok
+ institution_summary:
+ none: Nincs csatlakoztatott intézmény
+ one: "%{name}"
+ count:
+ one: "%{count} intézmény"
+ other: "%{count} intézmény"
+ sync_status:
+ no_accounts: Nem találhatók számlák
+ all_synced:
+ one: "%{count} számla szinkronizálva"
+ other: "%{count} számla szinkronizálva"
+ partial_setup: "%{synced} szinkronizálva, %{pending} beállítást igényel"
+ api_error:
+ common_issues: "Gyakori problémák:"
+ expired_credentials: Generálj új API-tokent a Brex-ből.
+ expired_credentials_label: "Lejárt hitelesítő adatok:"
+ heading: Nem sikerült csatlakozni a Brex-hez
+ invalid_token: Ellenőrizd az API-tokenedet a Szolgáltatói beállításokban.
+ invalid_token_label: "Érvénytelen API-token:"
+ network: Ellenőrizd az internetkapcsolatodat.
+ network_label: "Hálózati probléma:"
+ permissions: Győződj meg róla, hogy a token rendelkezik a szükséges csak olvasható fiók- és tranzakciós hatókörökkel.
+ permissions_label: "Elégtelen jogosultságok:"
+ service: A Brex API ideiglenesen nem elérhető.
+ service_label: "Szolgáltatás leállása:"
+ settings_link: Szolgáltatói beállítások ellenőrzése
+ title: Brex kapcsolódási hiba
+ errors:
+ unexpected_error: Váratlan hiba történt. Kérlek próbáld újra később.
+ entries:
+ default_name: Brex tranzakció
+ loading:
+ loading_message: Brex számlák betöltése...
+ loading_title: Betöltés
+ link_accounts:
+ all_already_linked:
+ one: "A kiválasztott számla (%{names}) már össze van kapcsolva"
+ other: "Mind a(z) %{count} kiválasztott számla már össze van kapcsolva: %{names}"
+ api_error: "API hiba: %{message}"
+ invalid_account_names:
+ one: "Nem lehet összekapcsolni üres nevű számlát"
+ other: "Nem lehet összekapcsolni %{count} üres nevű számlát"
+ invalid_account_type: Nem támogatott Brex számlatípus
+ link_failed: Nem sikerült összekapcsolni a számlákat
+ no_accounts_selected: Kérlek válassz legalább egy számlát
+ no_api_token: Brex API-token nem található. Kérlek állítsd be a Szolgáltatói beállításokban.
+ partial_invalid: "%{created_count} számla sikeresen összekapcsolva, %{already_linked_count} már össze volt kapcsolva, %{invalid_count} számla nevei érvénytelenek"
+ partial_success: "%{created_count} számla sikeresen összekapcsolva. %{already_linked_count} már össze volt kapcsolva: %{already_linked_names}"
+ select_connection: Válassz Brex kapcsolatot a számlák összekapcsolása előtt.
+ success:
+ one: "%{count} számla sikeresen összekapcsolva"
+ other: "%{count} számla sikeresen összekapcsolva"
+ brex_item:
+ accounts_need_setup: Számlák beállítást igényelnek
+ delete: Kapcsolat törlése
+ deletion_in_progress: törlés folyamatban...
+ error: Hiba
+ no_accounts_description: Ehhez a kapcsolathoz még nincsenek összekapcsolt számlák.
+ no_accounts_title: Nincsenek számlák
+ setup_action: Új számlák beállítása
+ setup_description: "%{linked} / %{total} számla összekapcsolva. Válaszd ki az újonnan importált Brex számlák típusait."
+ setup_needed: Új számlák beállításra várnak
+ status: "Szinkronizálva %{timestamp} ezelőtt"
+ status_never: Még nem szinkronizált
+ status_with_summary: "Utolsó szinkronizálás %{timestamp} ezelőtt - %{summary}"
+ syncing: Szinkronizálás...
+ total: Összesen
+ unlinked: Nincs összekapcsolva
+ provider_panel:
+ accounts_link: Számlák
+ add_connection: Brex kapcsolat hozzáadása
+ base_url_label: Alap URL (opcionális)
+ base_url_placeholder: https://api.brex.com
+ configured_html: "Konfigurálva és használatra kész. Látogass el a %{accounts_link} fülre a számlák kezeléséhez és beállításához."
+ connection_name_label: Kapcsolat neve
+ connection_name_placeholder: Üzleti folyószámla
+ default_connection_name: Brex kapcsolat
+ disconnect_label: "%{name} szétkapcsolása"
+ disconnect_confirm: "%{name} szétkapcsolása?"
+ encryption_warning:
+ title: Az adatbázis-titkosítás nincs konfigurálva
+ message: Állítsd be az Active Record titkosítási kulcsokat, mielőtt Brex tokeneket adsz hozzá az éles környezetben. Titkosítási kulcsok nélkül a Sure a Brex szolgáltatói hitelesítő adatokat és pillanatfelvételeket más szolgáltatói rekordokhoz hasonlóan titkosítatlanul tárolja.
+ instructions:
+ copy_token_html: "Másold ki a tokent és add hozzá alább megnevezett kapcsolatként. A Sure csak a token nevű szinkronizáláshoz tárolja azt ehhez a háztartáshoz."
+ create_token: "Hozz létre API-tokent ezekkel a csak olvasható hatókörökkel: accounts.cash.readonly, accounts.card.readonly, transactions.cash.readonly, transactions.card.readonly"
+ open_tokens: Menj a csatlakoztatni kívánt vállalat Brex fejlesztői/API-token beállításaiba
+ sign_in_html: "Látogass el ide: %{link}, és lépj be a csatlakoztatni kívánt fiókba"
+ keep_token_placeholder: Hagyd üresen az aktuális token megtartásához
+ not_configured: Nincs beállítva
+ sandbox_note_html: "Minden szinkronizálni kívánt Brex vállalathoz/API-tokenhez használj külön megnevezett kapcsolatot. Az Alap URL-t hagyd üresen az éles környezethez. A tesztkörnyezet csak a Brex által jóváhagyott tesztelésre korlátozódik, és nem működik ügyfél tokenekkel."
+ setup_accounts: Számlák beállítása
+ setup_title: "Beállítási utasítások:"
+ sync: Szinkronizálás
+ token_label: Token
+ token_placeholder: Illeszt be tokent ide
+ update_connection: Kapcsolat frissítése
+ provider_connection:
+ default_description: Csatlakozás Brex fiókhoz
+ default_name: Brex
+ description: "Csatlakozás ezzel: %{name}"
+ name: "Brex - %{name}"
+ select_accounts:
+ accounts_selected: kiválasztott számla
+ api_error: "API hiba: %{message}"
+ cancel: Mégse
+ configure_name_in_brex: Nem importálható — kérlek állítsd be a számla nevét a Brex-ben
+ description: "Válaszd ki azokat a számlákat, amelyeket össze szeretnél kapcsolni a(z) %{product_name} fiókkal."
+ link_accounts: Kiválasztott számlák összekapcsolása
+ no_accounts_found: Nem találhatók számlák. Kérlek ellenőrizd az API-token konfigurációdat.
+ no_api_token: Brex API-token nem található. Kérlek állítsd be a Szolgáltatói beállításokban.
+ no_credentials_configured: Kérlek előbb állítsd be a Brex API-tokenedet a Szolgáltatói beállításokban.
+ no_name_placeholder: "(Nincs név)"
+ select_connection: Válassz Brex kapcsolatot a Szolgáltatói beállításokban.
+ title: Brex számlák kiválasztása
+ unexpected_error: Váratlan hiba történt. Kérlek próbáld újra később.
+ select_existing_account:
+ account_already_linked: Ez a számla már össze van kapcsolva egy szolgáltatóval
+ all_accounts_already_linked: Minden Brex számla már össze van kapcsolva
+ api_error: "API hiba: %{message}"
+ cancel: Mégse
+ configure_name_in_brex: Nem importálható — kérlek állítsd be a számla nevét a Brex-ben
+ description: Válassz egy Brex számlát, amelyet ehhez a számlához szeretnél kapcsolni. A tranzakciók automatikusan szinkronizálásra és deduplikálásra kerülnek.
+ link_account: Számla összekapcsolása
+ no_account_specified: Nem lett megadva számla
+ no_accounts_found: Nem találhatók Brex számlák. Kérlek ellenőrizd az API-token konfigurációdat.
+ no_api_token: Brex API-token nem található. Kérlek állítsd be a Szolgáltatói beállításokban.
+ no_credentials_configured: Kérlek előbb állítsd be a Brex API-tokenedet a Szolgáltatói beállításokban.
+ no_name_placeholder: "(Nincs név)"
+ select_connection: Válassz Brex kapcsolatot a Szolgáltatói beállításokban.
+ title: "%{account_name} összekapcsolása a Brex-szel"
+ unexpected_error: Váratlan hiba történt. Kérlek próbáld újra később.
+ setup_required:
+ description: A Brex számlák összekapcsolása előtt be kell állítanod a Brex API-tokenedet.
+ heading: Az API-token nincs beállítva
+ settings_link: Szolgáltatói beállítások megnyitása
+ setup_steps: "Beállítási lépések:"
+ steps:
+ enter_token: Add meg a Brex API-tokenedet
+ find_section_html: "Keresd meg a Brex részt"
+ open_settings_html: "Menj a Beállítások > Szolgáltatók menübe"
+ return_to_link: Térj vissza ide a számlák összekapcsolásához
+ title: Brex beállítás szükséges
+ subtype_select:
+ placeholder:
+ subtype: Altípus kiválasztása
+ type: Típus kiválasztása
+ link_existing_account:
+ account_already_linked: Ez a számla már össze van kapcsolva egy szolgáltatóval
+ api_error: "API hiba: %{message}"
+ invalid_account_name: Nem lehet összekapcsolni üres nevű számlát
+ missing_parameters: Hiányzó kötelező paraméterek
+ no_account_specified: Nem lett megadva számla
+ no_api_token: Brex API-token nem található. Kérlek állítsd be a Szolgáltatói beállításokban.
+ provider_account_already_linked: Ez a Brex számla már össze van kapcsolva egy másik számlával
+ provider_account_not_found: Brex számla nem található
+ select_connection: Válassz Brex kapcsolatot a számlák összekapcsolása előtt.
+ success: "%{account_name} sikeresen összekapcsolva a Brex-szel"
+ setup_accounts:
+ account_type_label: "Számla típusa:"
+ all_accounts_linked: "Minden Brex számlád már be van állítva."
+ api_error: "API hiba: %{message}"
+ fetch_failed: "Nem sikerült lekérni a számlákat"
+ no_accounts_to_setup: "Nincs beállítandó számla"
+ no_api_token: Brex API-token nem található. Kérlek állítsd be a Szolgáltatói beállításokban.
+ account_types:
+ skip: Számla kihagyása
+ depository: Folyó- vagy megtakarítási számla
+ credit_card: Hitelkártya
+ investment: Befektetési számla
+ loan: Hitel vagy jelzálog
+ other_asset: Egyéb vagyon
+ subtype_labels:
+ depository: "Számla altípusa:"
+ credit_card: ""
+ investment: "Befektetés típusa:"
+ loan: "Hitel típusa:"
+ other_asset: ""
+ subtype_messages:
+ credit_card: "A hitelkártyák automatikusan hitelkártya számlákként lesznek beállítva."
+ other_asset: "Az egyéb vagyonelemekhez nincs szükség további beállításokra."
+ subtypes:
+ depository:
+ checking: Folyószámla
+ savings: Megtakarítási számla
+ hsa: Egészségügyi megtakarítási számla
+ cd: Lekötött betét
+ money_market: Pénzpiaci számla
+ investment:
+ brokerage: Brókeri számla
+ pension: Nyugdíjalap
+ retirement: Nyugdíj-megtakarítás
+ "401k": "401(k)"
+ roth_401k: "Roth 401(k)"
+ "403b": "403(b)"
+ tsp: Thrift Savings Plan
+ "529_plan": "529 Terv"
+ hsa: Egészségügyi megtakarítási számla
+ mutual_fund: Befektetési alap
+ ira: Hagyományos IRA
+ roth_ira: Roth IRA
+ angel: Angyal befektető
+ loan:
+ mortgage: Jelzálog
+ student: Diákhitel
+ auto: Autóhitel
+ other: Egyéb hitel
+ balance: Egyenleg
+ cancel: Mégse
+ choose_account_type: "Válaszd ki a megfelelő számlatípust minden Brex számlához:"
+ create_accounts: Számlák létrehozása
+ creating_accounts: Számlák létrehozása...
+ historical_data_range: "Előzmények időtartama:"
+ subtitle: Válaszd ki az importált számlák helyes típusait
+ sync_start_date_help: "Válaszd ki, milyen messzire szeretnél visszamenni a tranzakciós előzmények szinkronizálásában. Maximum 3 év előzmény érhető el."
+ sync_start_date_label: "Tranzakciók szinkronizálásának kezdete:"
+ title: Brex számlák beállítása
+ complete_account_setup:
+ all_skipped: "Minden számla ki lett hagyva. Nem jött létre számla."
+ creation_failed: "Nem sikerült létrehozni a számlákat: %{error}"
+ creation_failed_count: "%{count} számla létrehozása sikertelen."
+ no_accounts: "Nincs beállítandó számla."
+ partial_skipped: "%{created_count} számla sikeresen létrehozva; %{skipped_count} számla ki lett hagyva."
+ partial_success: "%{created_count} számla sikeresen létrehozva, de %{failed_count} számla sikertelen volt."
+ success: "%{count} számla sikeresen létrehozva."
+ unexpected_error: Váratlan hiba történt.
+ sync:
+ success: Szinkronizálás elindítva
+ syncer:
+ account_processing_failed:
+ one: "%{count} Brex számla feldolgozása sikertelen volt."
+ other: "%{count} Brex számla feldolgozása sikertelen volt."
+ account_sync_failed:
+ one: "%{count} Brex számla szinkronizálása nem ütemezható."
+ other: "%{count} Brex számla szinkronizálása nem ütemezható."
+ accounts_need_setup:
+ one: "%{count} számla beállítást igényel..."
+ other: "%{count} számla beállítást igényel..."
+ accounts_failed:
+ one: "%{count} Brex számla importálása sikertelen volt."
+ other: "%{count} Brex számla importálása sikertelen volt."
+ calculating_balances: Egyenlegek kiszámítása...
+ checking_account_configuration: Számlakonfiguráció ellenőrzése...
+ credentials_invalid: Érvénytelen Brex API-token vagy számlajogosultságok
+ failed: A szinkronizálás sikertelen volt. Kérlek próbáld újra, vagy lépj kapcsolatba a támogatással.
+ import_failed: Brex importálás sikertelen.
+ importing_accounts: Számlák importálása a Brex-ből...
+ processing_transactions: Tranzakciók feldolgozása...
+ transactions_failed:
+ one: "%{count} Brex számlánál tranzakciós importálási hibák léptek fel."
+ other: "%{count} Brex számlánál tranzakciós importálási hibák léptek fel."
+ update:
+ success: Brex kapcsolat frissítve
diff --git a/config/locales/views/budgets/ca.yml b/config/locales/views/budgets/ca.yml
index 6f3d53e3d..c1131fece 100644
--- a/config/locales/views/budgets/ca.yml
+++ b/config/locales/views/budgets/ca.yml
@@ -1,21 +1,102 @@
---
ca:
+ budget_categories:
+ allocation_progress:
+ budget_exceeded_html: 'Pressupost superat en %{amount}'
+ left_to_allocate: per assignar
+ over_set: "> 100 % assignat"
+ percent_set: "%{percent} assignat"
+ budget_category_form:
+ monthly_average: "%{amount}/mes (mitjana)"
+ shared_placeholder: Compartit
+ shared_title: Deixa-ho buit per compartir el pressupost de la categoria pare
+ confirm_button:
+ confirm: Confirma
+ index:
+ description: Ajusta els pressupostos per categoria per establir límits de despesa.
+ Els fons no assignats es marcaran automàticament com a sense categoritzar.
+ title: Edita els pressupostos per categoria
+ no_categories:
+ new_category: Nova categoria
+ no_categories_message: Encara no has creat ni assignat cap categoria de despesa
+ a les teves transaccions.
+ oops: Vaja!
+ use_defaults: Usa els valors per defecte (recomanat)
+ show:
+ budgeted: Pressupostat
+ category: Categoria
+ left: restant
+ monthly_average_spending: Despesa mensual mitjana
+ monthly_median_spending: Despesa mensual mediana
+ no_transactions: No s'han trobat transaccions per a aquest període pressupostari.
+ overspent: per sobre
+ overview: Resum
+ recent_transactions: Transaccions recents
+ spending: Despesa de %{date}
+ status: Estat
+ view_all_transactions: Veure totes les transaccions de la categoria
budgets:
+ actuals_summary:
+ expenses: Despeses
+ income: Ingressos
+ budget_donut:
+ new_budget: Nou pressupost
+ of_budget: de %{amount}
+ spent: Gastat
+ unused: Sense utilitzar
+ budget_header:
+ today: Avui
+ budget_nav:
+ categories: Categories
+ setup: Configuració
+ budgeted_summary:
+ budgeted: Pressupostat
+ earned: "%{amount} guanyats"
+ expected_income: Ingressos esperats
+ left: "%{amount} restants"
+ over: "%{amount} per sobre"
+ spent: "%{amount} gastats"
+ copy_previous:
+ already_initialized: Aquest pressupost ja s'ha configurat
+ no_source: No s'ha trobat cap pressupost anterior per copiar
+ success: Pressupost copiat de %{source_name}
+ copy_previous_prompt:
+ copy_button: Copia de %{source_name}
+ description: Pots copiar el teu pressupost de %{source_name} o començar de zero.
+ fresh_button: Comença de zero
+ title: Configura el teu pressupost
+ edit:
+ autosuggest_description: Es basarà en l'historial de transaccions. La IA pot
+ equivocar-se, verifica-ho abans de continuar.
+ autosuggest_title: Suggereix automàticament el pressupost d'ingressos i despeses
+ budgeted_spending: Despesa pressupostada
+ continue: Continua
+ expected_income: Ingressos esperats
+ setup_description: Introdueix els teus ingressos mensuals i la despesa planificada
+ a sota per configurar el teu pressupost.
+ setup_title: Configura el teu pressupost
+ name:
+ custom_range: "%{start} - %{end_date}"
+ month_year: "%{month}"
+ over_allocation_warning:
+ fix_allocations: Corregeix les assignacions
+ over_allocated_message: Has assignat per sobre del teu pressupost. Corregeix
+ les assignacions.
show:
categories:
- amount: Quantitat
+ amount: Import
edit: Edita
title: Categories
- on_track_categories:
- short_title: En bon cami
- title: En bon cami
- over_budget_categories:
- short_title: Sobre pressupost
- title: Sobre pressupost
filter:
all: Totes
- on_track: En bon cami
- over_budget: Sobre pressupost
+ on_track: Sota control
+ over_budget: Pressupost superat
+ on_track_categories:
+ short_title: Sota control
+ title: Sota control
+ over_budget_categories:
+ short_title: Pressupost superat
+ title: Pressupost superat
tabs:
actual: Real
budgeted: Pressupostat
diff --git a/config/locales/views/budgets/en.yml b/config/locales/views/budgets/en.yml
index af53f4f2f..04f745c61 100644
--- a/config/locales/views/budgets/en.yml
+++ b/config/locales/views/budgets/en.yml
@@ -8,6 +8,9 @@ en:
unused: "Unused"
budget_header:
today: "Today"
+ budget_nav:
+ categories: Categories
+ setup: Setup
over_allocation_warning:
over_allocated_message: "You have over-allocated your budget. Please fix your allocations."
fix_allocations: "Fix allocations"
@@ -60,6 +63,15 @@ en:
no_source: "No previous budget found to copy from"
already_initialized: "This budget has already been set up"
budget_categories:
+ allocation_progress:
+ budget_exceeded_html: 'Budget exceeded by %{amount}'
+ left_to_allocate: left to allocate
+ over_set: "> 100% set"
+ percent_set: "%{percent} set"
+ budget_category_form:
+ monthly_average: "%{amount}/m avg"
+ shared_placeholder: Shared
+ shared_title: Leave empty to share parent's budget
confirm_button:
confirm: "Confirm"
no_categories:
diff --git a/config/locales/views/budgets/hu.yml b/config/locales/views/budgets/hu.yml
index 109ca752a..0d0fc5312 100644
--- a/config/locales/views/budgets/hu.yml
+++ b/config/locales/views/budgets/hu.yml
@@ -1,6 +1,34 @@
---
hu:
budgets:
+ budget_donut:
+ spent: "Elköltve"
+ new_budget: "Új költségvetés"
+ of_budget: "%{amount}-ból/ből"
+ unused: "Felhasználatlan"
+ budget_header:
+ today: "Ma"
+ over_allocation_warning:
+ over_allocated_message: "Túllépted a költségvetési keretét. Kérjük, javítsd az elosztásokat."
+ fix_allocations: "Elosztások javítása"
+ actuals_summary:
+ income: "Bevétel"
+ expenses: "Kiadások"
+ budgeted_summary:
+ expected_income: "Várható bevétel"
+ budgeted: "Tervezett"
+ earned: "%{amount} megkeresve"
+ over: "%{amount} túllépve"
+ left: "%{amount} maradt"
+ spent: "%{amount} elköltve"
+ edit:
+ setup_title: "Állítsd be a költségvetésed"
+ setup_description: "Add meg a havi bevételeidet és tervezett kiadásaidat a költségvetés beállításához."
+ budgeted_spending: "Tervezett kiadások"
+ expected_income: "Várható bevétel"
+ autosuggest_title: "Bevételi és kiadási keret automatikus javaslata"
+ autosuggest_description: "Ez a tranzakcióelőzmények alapján készül. Az AI hibázhat, ellenőrizd folytatás előtt."
+ continue: "Folytatás"
name:
custom_range: "%{start} - %{end_date}"
month_year: "%{month}"
@@ -31,3 +59,27 @@ hu:
success: "Költségvetés átmásolva innen: %{source_name}"
no_source: "Nem található korábbi költségvetés a másoláshoz"
already_initialized: "Ez a költségvetés már be van állítva"
+ budget_categories:
+ confirm_button:
+ confirm: "Megerősítés"
+ no_categories:
+ oops: "Hoppá!"
+ no_categories_message: "Még nem hoztál létre kiadási kategóriákat, és nem rendeltél egyet sem a tranzakcióidhoz."
+ use_defaults: "Alapértelmezések használata (ajánlott)"
+ new_category: "Új kategória"
+ index:
+ title: "Kategóriakereteid szerkesztése"
+ description: "Állítsd be a kategóriakereteket a kiadási limitek meghatározásához. A fel nem osztott összegek automatikusan kategorizálatlanként kerülnek hozzárendelésre."
+ show:
+ category: "Kategória"
+ overview: "Áttekintés"
+ spending: "%{date} kiadásai"
+ status: "Állapot"
+ overspent: "túllépve"
+ left: "maradt"
+ budgeted: "Tervezett"
+ monthly_average_spending: "Havi átlagos kiadás"
+ monthly_median_spending: "Havi mediánkiadás"
+ recent_transactions: "Legutóbbi tranzakciók"
+ view_all_transactions: "Összes kategória tranzakció megtekintése"
+ no_transactions: "Nem találhatók tranzakciók erre a költségvetési időszakra."
diff --git a/config/locales/views/categories/ca.yml b/config/locales/views/categories/ca.yml
index 877e1c665..f57ac01e7 100644
--- a/config/locales/views/categories/ca.yml
+++ b/config/locales/views/categories/ca.yml
@@ -4,21 +4,31 @@ ca:
bootstrap:
success: Categories per defecte creades correctament
category:
- delete: Elimina categoria
- edit: Edita categoria
+ delete: Elimina la categoria
+ edit: Edita la categoria
create:
success: Categoria creada correctament
destroy:
success: Categoria eliminada correctament
+ destroy_all:
+ success: Totes les categories eliminades
edit:
- edit: Edita categoria
+ edit: Edita la categoria
form:
+ color: Color
+ icon: Icona
+ name_label: Nom
+ parent_category_label: Categoria pare (opcional)
placeholder: Nom de la categoria
+ auto_adjust: ajusta'l automàticament.
+ poor_contrast: Contrast insuficient; tria un color més fosc o
+ unassigned: "(sense assignar)"
index:
bootstrap: Utilitza les predeterminades (recomanat)
categories: Categories
categories_expenses: Categories de despesa
categories_incomes: Categories d'ingressos
+ delete_all: Elimina-les totes
empty: No s'han trobat categories
new: Nova categoria
menu:
@@ -27,8 +37,16 @@ ca:
new_category: Nova categoria
update:
success: Categoria actualitzada correctament
+ virtual:
+ payment: Pagament
+ trade: Operació
+ transfer: Transferència
category:
dropdowns:
show:
bootstrap: Genera categories per defecte
empty: No s'han trobat categories
+ expense: despesa
+ income: ingrés
+ match_transfer: Fes coincidir amb transferència/pagament
+ one_time: "%{type} puntual"
diff --git a/config/locales/views/categories/en.yml b/config/locales/views/categories/en.yml
index 37c8c2568..0422c07cf 100644
--- a/config/locales/views/categories/en.yml
+++ b/config/locales/views/categories/en.yml
@@ -19,7 +19,8 @@ en:
parent_category_label: "Parent category (optional)"
color: Color
icon: Icon
- poor_contrast: "Poor contrast, choose darker color or"
+ auto_adjust: auto-adjust.
+ poor_contrast: "Poor contrast, choose a darker color or"
destroy_all:
success: All categories deleted
index:
diff --git a/config/locales/views/categories/hu.yml b/config/locales/views/categories/hu.yml
index bff8ce2d6..a10c00072 100644
--- a/config/locales/views/categories/hu.yml
+++ b/config/locales/views/categories/hu.yml
@@ -14,11 +14,20 @@ hu:
edit: Kategória szerkesztése
form:
placeholder: Kategória neve
+ name_label: Név
+ unassigned: "(nincs hozzárendelve)"
+ parent_category_label: "Szülőkategória (nem kötelező)"
+ color: Szín
+ icon: Ikon
+ poor_contrast: "Gyenge kontraszt, válassz sötétebb színt vagy"
+ destroy_all:
+ success: Összes kategória törölve
index:
bootstrap: Alapértelmezések használata (ajánlott)
categories: Kategóriák
categories_expenses: Kiadás kategóriák
categories_incomes: Bevétel kategóriák
+ delete_all: Összes törlése
empty: Nem található kategória
new: Új kategória
menu:
@@ -27,8 +36,16 @@ hu:
new_category: Új kategória
update:
success: Kategória sikeresen frissítve
+ virtual:
+ transfer: Átutalás
+ payment: Fizetés
+ trade: Ügylet
category:
dropdowns:
show:
bootstrap: Alapértelmezett kategóriák létrehozása
empty: Nem található kategória
+ match_transfer: "Átutalás/fizetés párosítása"
+ one_time: "Egyszeri %{type}"
+ income: "bevétel"
+ expense: "kiadás"
diff --git a/config/locales/views/category/dropdowns/ca.yml b/config/locales/views/category/dropdowns/ca.yml
index c77fc6255..6cfdb1b6c 100644
--- a/config/locales/views/category/dropdowns/ca.yml
+++ b/config/locales/views/category/dropdowns/ca.yml
@@ -3,9 +3,9 @@ ca:
category:
dropdowns:
row:
- delete: Elimina categoria
- edit: Edita categoria
+ delete: Elimina la categoria
+ edit: Edita la categoria
show:
- clear: Neteja categoria
+ clear: Esborra la categoria
no_categories: No s'han trobat categories
search_placeholder: Cerca
diff --git a/config/locales/views/chats/ca.yml b/config/locales/views/chats/ca.yml
index 1e6971c16..e3d25e036 100644
--- a/config/locales/views/chats/ca.yml
+++ b/config/locales/views/chats/ca.yml
@@ -1,8 +1,54 @@
---
ca:
+ assistant_messages:
+ assistant_message:
+ assistant_reasoning: Raonament de l'assistent
+ tool_calls:
+ arguments: 'Arguments:'
+ function: 'Funció:'
+ tool_calls: Crides a eines
chats:
- demo_banner_message: "Estàs utilitzant un LLM Qwen3 de pesos oberts amb crèdits proporcionats
- per Cloudflare Workers AI. Els resultats poden variar ja que el codi es va provar
- principalment amb `gpt-4.1` però els teus tokens no van a cap altre lloc per ser entrenats! 🤖"
- demo_banner_title: Mode de demostració
- thinking: "Treballant ..."
+ ai_consent:
+ available_description: El xat amb IA pot respondre preguntes financeres i oferir-te
+ anàlisis basades en les teves dades. Per utilitzar aquesta funcionalitat l'has
+ d'activar explícitament.
+ disable_note: Desactiva-ho en qualsevol moment. Totes les dades enviades als
+ nostres proveïdors de LLM són anonimitzades.
+ enable_button: Activa els xats d'IA
+ title: Activa els xats d'IA
+ unavailable_description_html: Per utilitzar l'assistent d'IA, has d'establir
+ la variable d'entorn OPENAI_ACCESS_TOKEN o configurar-la a la configuració de self hosting
+ de la teva instància.
+ ai_greeting:
+ commands_hint_html: Pots utilitzar / per accedir a les ordres
+ evaluate_portfolio: Avalua la cartera d'inversió
+ greeting: Hola %{name}! Sóc una IA / model de llenguatge gran que et pot ajudar
+ amb les teves finances. Tinc accés al web i a les dades del teu compte.
+ questions_intro: 'Aquí tens algunes preguntes que pots fer:'
+ spending_insights: Mostra anàlisi de la despesa
+ there: ''
+ unusual_patterns: Troba patrons inusuals
+ chat:
+ delete_chat: Elimina el xat
+ edit_chat_title: Edita el títol del xat
+ chat_nav:
+ all_chats: Tots els xats
+ delete_chat: Elimina el xat
+ edit_chat_title: Edita el títol del xat
+ start_new_chat: Inicia un xat nou
+ demo_banner_message: "Estàs utilitzant LLM amb crèdits proporcionats per Cloudflare
+ Workers AI. Els resultats poden variar, ja que el codi s'ha provat amb `gpt-4.1`,
+ però els teus tokens no s'envien enlloc més per entrenar-los! 🤖"
+ demo_banner_title: Mode demostració actiu
+ destroy:
+ notice: Xat eliminat correctament
+ error:
+ retry: Torna-ho a provar
+ index:
+ chats: Xats
+ new_chat: Nou xat
+ thinking: Pensant...
+ update:
+ success: Xat actualitzat
diff --git a/config/locales/views/chats/hu.yml b/config/locales/views/chats/hu.yml
index 3995ec692..6e4830ac1 100644
--- a/config/locales/views/chats/hu.yml
+++ b/config/locales/views/chats/hu.yml
@@ -4,3 +4,41 @@ hu:
demo_banner_title: "Demo mód aktív"
demo_banner_message: "LLM-eket használsz a Cloudflare Workers AI által biztosított krediteken keresztül. Az eredmények változhatnak, mivel a kódot `gpt-4.1`-en tesztelték, de a tokenjeid nem kerülnek sehova tanítás céljából! 🤖"
thinking: "Gondolkodás..."
+ ai_greeting:
+ greeting: "Szia, %{name}! Egy AI/nagy nyelvi modell vagyok, aki segíthet pénzügyeid kezelésében. Hozzáférhetek az internethez és a fiókadataidhoz."
+ there: "ott"
+ commands_hint_html: "Használd a / jelet a parancsok eléréséhez"
+ questions_intro: "Íme néhány kérdés, amit feltehetsz:"
+ evaluate_portfolio: "Befektetési portfólió értékelése"
+ spending_insights: "Kiadási statisztikák megtekintése"
+ unusual_patterns: "Szokatlan minták keresése"
+ chat:
+ edit_chat_title: "Csevegés nevének szerkesztése"
+ delete_chat: "Csevegés törlése"
+ chat_nav:
+ all_chats: "Összes csevegés"
+ start_new_chat: "Új csevegés indítása"
+ edit_chat_title: "Csevegés nevének szerkesztése"
+ delete_chat: "Csevegés törlése"
+ error:
+ retry: "Újrapróbálás"
+ destroy:
+ notice: "A csevegés sikeresen törölve"
+ index:
+ chats: "Csevegések"
+ new_chat: "Új csevegés"
+ update:
+ success: "Csevegés frissítve"
+ ai_consent:
+ title: "AI-csevegések engedélyezése"
+ available_description: "Az AI-csevegés pénzügyi kérdésekre tud válaszolni és az adataid alapján elemzéseket nyújtani. A funkció használatához explicit engedélyezés szükséges."
+ unavailable_description_html: "Az AI-asszisztens használatához be kell állítanod az OPENAI_ACCESS_TOKEN környezeti változót, vagy konfigurálnod kell az önálló üzemeltetési beállításokban."
+ enable_button: "AI-csevegések engedélyezése"
+ disable_note: "Bármikor letiltható. Az LLM-szolgáltatóknak küldött összes adat anonimizált."
+ assistant_messages:
+ assistant_message:
+ assistant_reasoning: "Asszisztens gondolkodása"
+ tool_calls:
+ tool_calls: "Eszközhívások"
+ function: "Függvény:"
+ arguments: "Argumentumok:"
diff --git a/config/locales/views/coinbase_items/ca.yml b/config/locales/views/coinbase_items/ca.yml
new file mode 100644
index 000000000..2cdb8cf9d
--- /dev/null
+++ b/config/locales/views/coinbase_items/ca.yml
@@ -0,0 +1,83 @@
+---
+ca:
+ coinbase_item:
+ syncer:
+ accounts_need_setup:
+ one: "%{count} compte necessita configuració"
+ other: "%{count} comptes necessiten configuració"
+ calculating_balances: Calculant saldos...
+ checking_configuration: Comprovant la configuració del compte...
+ checking_credentials: Comprovant credencials...
+ credentials_invalid: Credencials de l'API no vàlides. Revisa la teva clau API
+ i el secret.
+ importing_accounts: Important comptes des de Coinbase...
+ processing_accounts: Processant dades del compte...
+ coinbase_items:
+ coinbase_item:
+ delete: Elimina
+ deletion_in_progress: Eliminant...
+ import_wallets_menu: Importa carteres
+ more_wallets_available:
+ one: "%{count} cartera més disponible per importar"
+ other: "%{count} carteres més disponibles per importar"
+ no_accounts_message: Les teves carteres de Coinbase apareixeran aquí després
+ de sincronitzar.
+ no_accounts_title: No s'han trobat comptes
+ provider_name: Coinbase
+ reconnect: Les credencials necessiten actualització
+ setup_action: Importa carteres
+ setup_description: Selecciona quines carteres de Coinbase vols seguir.
+ setup_needed: Carteres a punt per importar
+ status: Darrera sincronització fa %{timestamp}
+ status_never: Mai sincronitzat
+ status_with_summary: Darrera sincronització fa %{timestamp} - %{summary}
+ sync_status:
+ all_synced:
+ one: "%{count} compte sincronitzat"
+ other: "%{count} comptes sincronitzats"
+ no_accounts: No s'han trobat comptes
+ partial_sync: "%{linked_count} sincronitzats, %{unlinked_count} necessiten
+ configuració"
+ syncing: Sincronitzant...
+ update_credentials: Actualitza les credencials
+ complete_account_setup:
+ no_accounts: No hi ha carteres per importar
+ none_selected: No s'ha seleccionat cap cartera
+ success:
+ one: S'ha importat %{count} cartera
+ other: S'han importat %{count} carteres
+ create:
+ default_name: Coinbase
+ success: S'ha connectat correctament a Coinbase! Els teus comptes s'estan sincronitzant.
+ destroy:
+ success: S'ha programat la connexió Coinbase per a la seva eliminació.
+ link_existing_account:
+ errors:
+ invalid_coinbase_account: Compte Coinbase no vàlid
+ only_manual: Només els comptes manuals es poden enllaçar a Coinbase
+ success: S'ha enllaçat correctament al compte Coinbase
+ select_existing_account:
+ balance: Saldo
+ cancel: Cancel·la
+ check_provider_health: Comprova que les teves credencials de l'API de Coinbase
+ siguin vàlides
+ currently_linked_to: 'Actualment enllaçat a: %{account_name}'
+ link: Enllaça
+ no_accounts_found: No s'han trobat comptes Coinbase.
+ title: Enllaça compte Coinbase
+ wait_for_sync: Espera que Coinbase acabi la sincronització
+ setup_accounts:
+ accounts_count:
+ one: "%{count} cartera disponible"
+ other: "%{count} carteres disponibles"
+ cancel: Cancel·la
+ creating: Important...
+ import_selected: Importa les seleccionades
+ instructions: Selecciona les carteres que vols importar. Les carteres no seleccionades
+ quedaran disponibles si les vols afegir més tard.
+ no_accounts: Totes les carteres s'han importat.
+ select_all: Selecciona-ho tot
+ subtitle: Selecciona quines carteres vols seguir
+ title: Importa carteres Coinbase
+ update:
+ success: La configuració de Coinbase s'ha actualitzat correctament.
diff --git a/config/locales/views/coinstats_items/ca.yml b/config/locales/views/coinstats_items/ca.yml
index 66140452a..9694cfc41 100644
--- a/config/locales/views/coinstats_items/ca.yml
+++ b/config/locales/views/coinstats_items/ca.yml
@@ -3,59 +3,86 @@ ca:
coinstats_items:
coinstats_item:
delete: Elimina
- deletion_in_progress: S'estan esborrant les dades de la cartera de criptomonedes...
- no_wallets_message: Actualment no hi ha carteres de criptomonedes connectades a CoinStats.
- no_wallets_title: No hi ha carteres de criptomonedes connectades
+ deletion_in_progress: S'estan eliminant les dades de la cartera de cripto...
+ no_wallets_message: Actualment no hi ha carteres de cripto connectades a CoinStats.
+ no_wallets_title: No hi ha carteres de cripto connectades
provider_name: CoinStats
- reconnect: Torna a connectar
- status: Sincronitzat per última vegada %{timestamp} fa
+ reconnect: Reconnecta
+ status: Darrera sincronització fa %{timestamp}
status_never: Mai sincronitzat
- status_with_summary: Sincronitzat per última vegada %{timestamp} fa • %{summary}
+ status_with_summary: Darrera sincronització fa %{timestamp} • %{summary}
sync_status:
all_synced:
- one: "%{count} cartera de criptomonedes sincronitzada"
- other: "%{count} carteres de criptomonedes sincronitzades"
- no_accounts: No s'han trobat carteres de criptomonedes
- partial_sync: "%{linked_count} carteres de criptomonedes sincronitzades, %{unlinked_count} necessiten configuració"
+ one: "%{count} cartera de cripto sincronitzada"
+ other: "%{count} carteres de cripto sincronitzades"
+ no_accounts: No s'han trobat carteres de cripto
+ partial_sync: "%{linked_count} carteres de cripto sincronitzades, %{unlinked_count}
+ necessiten configuració"
syncing: Sincronitzant...
- update_api_key: Actualitzar clau API
+ update_api_key: Actualitza la clau API
create:
default_name: Connexió CoinStats
errors:
- validation_failed: "La validació ha fallat: %{message}."
+ validation_failed: 'La validació ha fallat: %{message}.'
success: La connexió amb el proveïdor CoinStats s'ha configurat correctament.
destroy:
- success: La connexió amb el proveïdor CoinStats està programada per a la seva eliminació.
+ success: La connexió amb el proveïdor CoinStats està programada per a la seva
+ eliminació.
+ link_exchange:
+ error: 'No s''ha pogut enllaçar l''exchange: %{message}.'
+ failed: No s'ha pogut enllaçar l'exchange.
+ invalid_exchange: L'exchange seleccionat ja no està admès.
+ missing_params: Cal l'exchange i les credencials.
+ success: S'ha enllaçat l'exchange %{name}.
link_wallet:
- error: "L'enllaç de la cartera de criptomonedes ha fallat: %{message}."
+ error: 'L''enllaç de la cartera de criptomonedes ha fallat: %{message}.'
failed: L'enllaç de la cartera de criptomonedes ha fallat.
- missing_params: "Falten els paràmetres requerits: adreça i blockchain."
+ missing_params: 'Falten els paràmetres requerits: adreça i blockchain.'
success: "%{count} cartera(s) de criptomonedes enllaçades correctament."
new:
address_label: Adreça
- address_placeholder: Requerit
+ address_placeholder: Obligatori
api_key_label: Clau API
- api_key_placeholder: Requerit
- blockchain_fetch_error: No s'han pogut carregar els Blockchains. Torna a intentar-ho més tard.
+ api_key_placeholder: Obligatori
+ blockchain_fetch_error: No s'han pogut carregar les blockchains. Torna-ho a
+ provar més tard.
blockchain_label: Blockchain
- blockchain_placeholder: Requerit
- blockchain_select_blank: Selecciona un Blockchain
+ blockchain_placeholder: Obligatori
+ blockchain_select_blank: Selecciona una blockchain
configure: Configura
default_name: Connexió CoinStats
- go_to_settings: Anar a la configuració del proveïdor
- link: Enllaça una cartera de criptomonedes
- not_configured_message: Per enllaçar una cartera de criptomonedes, primer has de configurar la connexió amb el proveïdor CoinStats.
+ exchange_label: Exchange
+ exchange_select_blank: Selecciona un exchange
+ go_to_settings: Ves a la configuració del proveïdor
+ link_exchange_description: Utilitza una clau API d'exchange només de lectura
+ perquè CoinStats pugui sincronitzar saldos i transaccions de Bitvavo, Binance
+ i altres exchanges admesos.
+ link_exchange_note: Si el teu exchange requereix activació de la clau API o
+ confirmació per correu, completa aquest pas abans d'enllaçar-lo aquí.
+ link_exchange_submit: Enllaça l'exchange
+ link_exchange_title: Enllaça l'API de l'exchange
+ link_wallet_description: Fes el seguiment d'una cartera autocustodiada o d'una
+ sola adreça on-chain a través de CoinStats.
+ link_wallet_submit: Enllaça la cartera de cripto
+ link_wallet_title: Enllaça l'adreça de la cartera
+ not_configured_message: Per enllaçar una cartera de cripto o un exchange, primer
+ has de configurar la connexió amb el proveïdor CoinStats.
not_configured_step1_html: Ves a Configuració → Proveïdors
not_configured_step2_html: Localitza el proveïdor CoinStats
- not_configured_step3_html: Segueix les instruccions de configuració proporcionades per completar la configuració del proveïdor
+ not_configured_step3_html: Segueix les instruccions de configuració
+ proporcionades per completar la configuració del proveïdor
not_configured_title: La connexió amb el proveïdor CoinStats no està configurada
- setup_instructions: "Instruccions de configuració:"
- step1_html: Ves al Panell de l'API Pública de CoinStats per obtenir una clau API.
+ setup_instructions: 'Instruccions de configuració:'
+ step1_html: Visita el panell de l'API pública de CoinStats
+ per obtenir una clau API.
step2: Introdueix la teva clau API a continuació i fes clic a Configura.
- step3_html: Després d'una connexió reeixida, ves a la pestanya Comptes per configurar les carteres de criptomonedes.
- title: Enllaça una cartera de criptomonedes amb CoinStats
- update_configuration: Torna a configurar
+ step3_html: Després d'una connexió correcta, ves a la pestanya Comptes per configurar els teus comptes
+ de cripto.
+ title: Enllaça cripto amb CoinStats
+ update_configuration: Reconfigura
update:
errors:
- validation_failed: "La validació ha fallat: %{message}."
- success: La connexió amb el proveïdor CoinStats s'ha actualitzat correctament.
\ No newline at end of file
+ validation_failed: 'La validació ha fallat: %{message}.'
+ success: La connexió amb el proveïdor CoinStats s'ha actualitzat correctament.
diff --git a/config/locales/views/components/ca.yml b/config/locales/views/components/ca.yml
index c5dcbeb11..adc046526 100644
--- a/config/locales/views/components/ca.yml
+++ b/config/locales/views/components/ca.yml
@@ -1,5 +1,98 @@
---
ca:
+ UI:
+ account:
+ activity_date:
+ balance_tooltip: Saldo al final del dia, després de totes les transaccions
+ i ajustos
+ no_balance_data: No hi ha dades de saldo per a aquesta data
+ activity_feed:
+ toggle_selection_checkboxes: Commuta la selecció
+ balance_reconciliation:
+ labels:
+ adjustments: Ajustos
+ buys: Compres
+ change_in_brokerage_cash: Variació de l'efectiu del broker
+ change_in_holdings_market: Variació de les posicions (preu de mercat)
+ change_in_holdings_trades: Variació de les posicions (compres/vendes)
+ charges: Càrrecs
+ end_balance: Saldo final
+ end_principal: Capital final
+ end_value: Valor final
+ final_balance: Saldo final del dia
+ final_principal: Capital final del dia
+ final_value: Valor final del dia
+ market_changes: Variacions de mercat
+ net_cash_flow: Flux net d'efectiu
+ net_principal_change: Variació neta del capital
+ net_value_change: Variació neta del valor
+ payments: Pagaments
+ sells: Vendes
+ start_balance: Saldo inicial
+ start_principal: Capital inicial
+ start_value: Valor inicial
+ tooltips:
+ adjustments: Conciliacions manuals o altres ajustos
+ adjustments_asset: Ajustos de valor manuals o taxacions
+ buys: Compres de cripto durant el dia
+ change_in_brokerage_cash: Variació neta de l'efectiu per dipòsits, retirades
+ i operacions
+ change_in_holdings_market: Variació del valor de les posicions per moviments
+ del preu de mercat
+ change_in_holdings_trades: Impacte sobre les posicions per compres i vendes
+ de valors
+ charges: Nous càrrecs realitzats durant el dia
+ end_balance: Saldo calculat després de totes les transaccions
+ end_balance_investment: Saldo calculat després de tota l'activitat
+ end_principal: Capital calculat després de totes les transaccions
+ end_value: Valor calculat després de tots els canvis
+ final_balance: Saldo final del compte del dia
+ final_balance_credit: Saldo deutor final del dia
+ final_balance_crypto: Valor final de les posicions cripto del dia
+ final_balance_investment: Valor final de la cartera del dia
+ final_principal: Capital final del préstec del dia
+ final_value: Valor final de l'actiu del dia
+ market_changes: Variacions de valor pels moviments del preu de mercat
+ net_cash_flow: Variació neta del saldo per totes les transaccions del dia
+ net_principal_change: Pagaments de capital i nous préstecs durant el dia
+ net_value_change: Totes les variacions de valor incloent millores i depreciació
+ payments: Pagaments fets a la targeta durant el dia
+ sells: Vendes de cripto durant el dia
+ start_balance: Saldo del compte a l'inici del dia
+ start_balance_credit: Saldo deutor a l'inici del dia
+ start_balance_crypto: Valor de les posicions cripto a l'inici del dia
+ start_balance_investment: Valor total de la cartera a l'inici del dia
+ start_principal: Saldo del capital a l'inici del dia
+ start_value: Valor de l'actiu a l'inici del dia
+ chart:
+ no_data_available: No hi ha dades disponibles
+ title:
+ balance: Saldo
+ cash_value: Valor de l'efectiu
+ debt_balance: Saldo del deute
+ estimated_property_value: Valor estimat de l'immoble
+ estimated_vehicle_value: Valor estimat del vehicle
+ holdings_value: Valor de les posicions
+ remaining_principal_balance: Capital pendent
+ total_account_value: Valor total del compte
+ views:
+ cash: Efectiu
+ holdings: Posicions
+ total_value: Valor total
+ vs_available_history: vs. historial disponible
+ ds:
+ alert:
+ variants:
+ destructive: Error
+ error: Error
+ info: Informació
+ success: Èxit
+ warning: Avís
+ dialog:
+ close: Tanca
+ pill:
+ aria_label: "%{label}"
+ default_label: Experimental
provider_sync_summary:
accounts:
institutions: 'Institucions: %{count}'
@@ -20,8 +113,8 @@ ca:
rate_limited: Sota límit de %{time_ago}
recently: recentment
stale_pending:
- one: "%{count} transacció pendent obsoleta (exclòs dels pressupostos)"
- other: "%{count} transaccions pendents obsoletes (exclòs dels pressupostos)"
+ one: "%{count} transacció pendent obsoleta (exclosa dels pressupostos)"
+ other: "%{count} transaccions pendents obsoletes (excloses dels pressupostos)"
stale_pending_count:
one: "%{count} transacció"
other: "%{count} transaccions"
@@ -34,6 +127,7 @@ ca:
title: Estat
view_data_quality: Veure detalls de qualitat de dades
view_duplicate_suggestions: Veure duplicades suggerides
+ view_error_details: Veure detalls de l'error
view_reconciled: Veure transaccions conciliades
view_stale_pending: Veure comptes afectats
view_stale_unmatched: Veure transaccions que necessiten revisió
@@ -42,10 +136,25 @@ ca:
processed: 'Processat: %{count}'
title: Posicions
last_sync: 'Última sincronització: fa %{time_ago}'
+ skip_reasons:
+ excluded: Excloses
+ import_locked: Importació CSV
+ protected: Protegides
+ user_modified: Modificades per l'usuari
title: Resum de sincronització
- transactions:
+ trades:
+ fetching: Recuperant activitats del broker...
imported: 'Importat: %{count}'
+ skipped: 'Omès: %{count}'
+ title: Operacions
+ transactions:
+ fetching: Recuperant del broker...
+ imported: 'Importat: %{count}'
+ protected:
+ one: "%{count} entrada protegida (no sobreescrita)"
+ other: "%{count} entrades protegides (no sobreescrites)"
seen: 'Vist: %{count}'
skipped: 'Omès: %{count}'
title: Transaccions
updated: 'Actualitzat: %{count}'
+ view_protected: Veure entrades protegides
diff --git a/config/locales/views/components/en.yml b/config/locales/views/components/en.yml
index 1f3bff829..e0dfca1ab 100644
--- a/config/locales/views/components/en.yml
+++ b/config/locales/views/components/en.yml
@@ -4,8 +4,75 @@ en:
account:
activity_feed:
toggle_selection_checkboxes: Toggle selection
+ balance_reconciliation:
+ labels:
+ adjustments: Adjustments
+ buys: Buys
+ change_in_brokerage_cash: Change in brokerage cash
+ change_in_holdings_market: Change in holdings (market price activity)
+ change_in_holdings_trades: Change in holdings (buys/sells)
+ charges: Charges
+ end_balance: End balance
+ end_principal: End principal
+ end_value: End value
+ final_balance: Final balance
+ final_principal: Final principal
+ final_value: Final value
+ market_changes: Market changes
+ net_cash_flow: Net cash flow
+ net_principal_change: Net principal change
+ net_value_change: Net value change
+ payments: Payments
+ sells: Sells
+ start_balance: Start balance
+ start_principal: Start principal
+ start_value: Start value
+ tooltips:
+ adjustments: Manual reconciliations or other adjustments
+ adjustments_asset: Manual value adjustments or appraisals
+ buys: Crypto purchases during the day
+ change_in_brokerage_cash: Net change in cash from deposits, withdrawals, and trades
+ change_in_holdings_market: Change in holdings value from market price movements
+ change_in_holdings_trades: Impact on holdings from buying and selling securities
+ charges: New charges made during the day
+ end_balance: The calculated balance after all transactions
+ end_balance_investment: The calculated balance after all activity
+ end_principal: The calculated principal after all transactions
+ end_value: The calculated value after all changes
+ final_balance: The final account balance for the day
+ final_balance_credit: The final balance owed for the day
+ final_balance_crypto: The final crypto holdings value for the day
+ final_balance_investment: The final portfolio value for the day
+ final_principal: The final principal balance for the day
+ final_value: The final asset value for the day
+ market_changes: Value changes from market price movements
+ net_cash_flow: Net change in balance from all transactions during the day
+ net_principal_change: Principal payments and new borrowing during the day
+ net_value_change: All value changes including improvements and depreciation
+ payments: Payments made to the card during the day
+ sells: Crypto sales during the day
+ start_balance: The account balance at the beginning of this day
+ start_balance_credit: The balance owed at the beginning of this day
+ start_balance_crypto: The crypto holdings value at the beginning of this day
+ start_balance_investment: The total portfolio value at the beginning of this day
+ start_principal: The principal balance at the beginning of this day
+ start_value: The asset value at the beginning of this day
chart:
no_data_available: "No data available"
+ title:
+ balance: Balance
+ cash_value: Cash value
+ debt_balance: Debt balance
+ estimated_property_value: Estimated property value
+ estimated_vehicle_value: Estimated vehicle value
+ holdings_value: Holdings value
+ remaining_principal_balance: Remaining principal balance
+ total_account_value: Total account value
+ views:
+ cash: Cash
+ holdings: Holdings
+ total_value: Total value
+ vs_available_history: vs. available history
activity_date:
balance_tooltip: "The end of day balance, after all transactions and adjustments"
no_balance_data: "No balance data available for this date"
@@ -17,8 +84,17 @@ en:
warning: Warning
error: Error
destructive: Error
+ pill:
+ aria_label: "%{label}"
+ default_label: Preview
dialog:
close: Close
+ popover:
+ avatar_default_label: Open menu
+ tooltip:
+ trigger_label: More info
+ link:
+ opens_in_new_tab: (opens in new tab)
provider_sync_summary:
title: Sync summary
last_sync: "Last sync: %{time_ago} ago"
diff --git a/config/locales/views/components/es.yml b/config/locales/views/components/es.yml
index 4587a0088..639beff3f 100644
--- a/config/locales/views/components/es.yml
+++ b/config/locales/views/components/es.yml
@@ -63,4 +63,8 @@ es:
other: "%{count} transacciones"
data_warnings: "Avisos de datos: %{count}"
notices: "Avisos: %{count}"
- view_data_quality: Ver detalles de calidad de datos
\ No newline at end of file
+ view_data_quality: Ver detalles de calidad de datos
+ ds:
+ pill:
+ aria_label: "%{label}"
+ default_label: Experimental
\ No newline at end of file
diff --git a/config/locales/views/components/hu.yml b/config/locales/views/components/hu.yml
index c0145c036..7eaea51d6 100644
--- a/config/locales/views/components/hu.yml
+++ b/config/locales/views/components/hu.yml
@@ -1,5 +1,24 @@
---
hu:
+ UI:
+ account:
+ activity_feed:
+ toggle_selection_checkboxes: Kijelölés be-/kikapcsolása
+ chart:
+ no_data_available: "Nincs elérhető adat"
+ activity_date:
+ balance_tooltip: "A nap végi egyenleg, az összes tranzakció és korrekció után"
+ no_balance_data: "Erre a dátumra nincs elérhető egyenlegadat"
+ ds:
+ alert:
+ variants:
+ info: Információ
+ success: Siker
+ warning: Figyelmeztetés
+ error: Hiba
+ destructive: Hiba
+ dialog:
+ close: Bezárás
provider_sync_summary:
title: Szinkronizálás összegzése
last_sync: "Utolsó szinkronizálás: %{time_ago} ezelőtt"
diff --git a/config/locales/views/credit_cards/ca.yml b/config/locales/views/credit_cards/ca.yml
index 9f6ad0003..6ac6a7515 100644
--- a/config/locales/views/credit_cards/ca.yml
+++ b/config/locales/views/credit_cards/ca.yml
@@ -20,6 +20,7 @@ ca:
annual_fee: Quota anual
apr: TAE
available_credit: Crèdit disponible
+ edit_account_details: Edita els detalls del compte
expiration_date: Data de caducitat
minimum_payment: Pagament mínim
unknown: Desconegut
diff --git a/config/locales/views/credit_cards/hu.yml b/config/locales/views/credit_cards/hu.yml
index e037fc0ee..be82b379d 100644
--- a/config/locales/views/credit_cards/hu.yml
+++ b/config/locales/views/credit_cards/hu.yml
@@ -20,6 +20,7 @@ hu:
annual_fee: Éves díj
apr: THM
available_credit: Rendelkezésre álló hitelkeret
+ edit_account_details: Számlaadatok szerkesztése
expiration_date: Lejárati dátum
minimum_payment: Minimális törlesztőrészlet
unknown: Ismeretlen
diff --git a/config/locales/views/cryptos/ca.yml b/config/locales/views/cryptos/ca.yml
index 597bd3cbe..fb41ce5bc 100644
--- a/config/locales/views/cryptos/ca.yml
+++ b/config/locales/views/cryptos/ca.yml
@@ -3,5 +3,20 @@ ca:
cryptos:
edit:
edit: Edita %{account}
+ form:
+ subtype_label: Tipus de compte
+ subtype_none: Cap
+ subtype_prompt: Selecciona el tipus de compte
+ tax_treatment_hint: La majoria de les criptomonedes es tenen en comptes subjectes
+ a impostos. Selecciona una altra opció si es tenen en un compte amb avantatges
+ fiscals.
+ tax_treatment_label: Tractament fiscal
new:
title: Introdueix el saldo del compte
+ subtypes:
+ exchange:
+ long: Exchange de cripto
+ short: Exchange
+ wallet:
+ long: Cartera de cripto
+ short: Cartera
diff --git a/config/locales/views/depositories/ca.yml b/config/locales/views/depositories/ca.yml
index 59d4cb0de..8f4327d69 100644
--- a/config/locales/views/depositories/ca.yml
+++ b/config/locales/views/depositories/ca.yml
@@ -8,3 +8,21 @@ ca:
subtype_prompt: Selecciona el tipus de compte
new:
title: Introdueix el saldo del compte
+ subtypes:
+ cd:
+ long: Certificat de dipòsit
+ short: CD
+ checking:
+ long: Corrent
+ short: Corrent
+ hsa:
+ long: Compte d'estalvi per a salut
+ short: HSA
+ money_market:
+ long: Mercat monetari
+ short: MM
+ savings:
+ long: Estalvis
+ short: Estalvis
+ types_plural:
+ depository: Comptes corrents i estalvis
diff --git a/config/locales/views/depositories/en.yml b/config/locales/views/depositories/en.yml
index 081d14679..99cc944d1 100644
--- a/config/locales/views/depositories/en.yml
+++ b/config/locales/views/depositories/en.yml
@@ -8,3 +8,19 @@ en:
subtype_prompt: Select account type
new:
title: Enter account balance
+ subtypes:
+ cd:
+ long: Certificate of Deposit
+ short: CD
+ checking:
+ long: Checking
+ short: Checking
+ hsa:
+ long: Health Savings Account
+ short: HSA
+ money_market:
+ long: Money Market
+ short: MM
+ savings:
+ long: Savings
+ short: Savings
diff --git a/config/locales/views/enable_banking_items/ca.yml b/config/locales/views/enable_banking_items/ca.yml
index a2ee3c9bf..432240782 100644
--- a/config/locales/views/enable_banking_items/ca.yml
+++ b/config/locales/views/enable_banking_items/ca.yml
@@ -2,52 +2,131 @@
ca:
enable_banking_items:
authorize:
- authorization_failed: No s'ha pogut iniciar l'autorització
- bank_required: Si us plau, selecciona un banc.
- invalid_redirect: L'URL d'autorització rebuta no és vàlida. Si us plau, torna-ho
- a provar o contacta amb l'assistència.
- redirect_uri_not_allowed: Redirecció no permesa. Si us plau, configura `%{callback_url}`
- a la configuració de l'aplicació Enable Banking.
- unexpected_error: S'ha produït un error inesperat. Si us plau, torna-ho a provar.
+ authorization_failed: 'No s''ha pogut iniciar l''autorització: %{message}'
+ bank_required: Selecciona un banc.
+ decoupled_not_supported: Aquest banc utilitza un mètode d'autenticació amb dispositiu
+ separat que encara no està admès. Afegeix aquest compte manualment.
+ invalid_redirect: L'URL d'autorització rebuda no és vàlida. Torna-ho a provar.
+ redirect_uri_not_allowed: Redirecció no permesa. Configura `%{callback_url}`
+ a la configuració de la teva aplicació Enable Banking.
+ unexpected_error: S'ha produït un error inesperat. Torna-ho a provar.
callback:
authorization_error: L'autorització ha fallat
invalid_callback: Paràmetres de callback no vàlids.
item_not_found: Connexió no trobada.
session_failed: No s'ha pogut completar l'autorització
- success: S'ha connectat correctament amb el teu banc. Les teves comptes s'estan sincronitzant.
- unexpected_error: S'ha produït un error inesperat. Si us plau, torna-ho a provar.
+ success: T'has connectat correctament al teu banc. Els teus comptes s'estan
+ sincronitzant.
+ unexpected_error: S'ha produït un error inesperat. Torna-ho a provar.
complete_account_setup:
- all_skipped: S'han omès tots els comptes. Pots configurar-los més tard a la pàgina
- de comptes.
+ all_skipped: S'han omès tots els comptes. Pots configurar-los més tard a la
+ pàgina de comptes.
no_accounts: No hi ha comptes disponibles per configurar.
success: S'han creat correctament %{count} comptes!
create:
success: La configuració d'Enable Banking s'ha fet amb èxit.
destroy:
success: La connexió d'Enable Banking s'ha posat a la cua per a l'eliminació.
+ enable_banking_item:
+ delete: Elimina
+ deletion_in_progress: Eliminació en curs
+ last_synced: Darrera sincronització fa %{time}
+ never_synced: Mai sincronitzat
+ no_accounts_found: No s'han trobat comptes
+ no_accounts_found_description: No s'han trobat comptes a Enable Banking. Torna
+ a sincronitzar.
+ provider_name: Enable Banking
+ reconnect: Reconnecta
+ set_up_accounts: Configura comptes
+ setup_needed: Cal configuració
+ setup_needed_description:
+ one: 1 compte importat d'Enable Banking necessita configuració
+ other: "%{count} comptes importats d'Enable Banking necessiten configuració"
+ syncing: Sincronitzant...
+ update: Actualitza
+ errors:
+ api_error: S'ha produït un error de comunicació amb el banc.
+ network_unreachable: El servei bancari està temporalment inaccessible. Torna-ho
+ a provar més tard.
+ session_invalid: La sessió ha caducat. Torna a connectar el teu banc.
+ unexpected: S'ha produït un error inesperat durant la sincronització.
link_accounts:
- already_linked: Els comptes seleccionats ja estan vinculats.
- link_failed: No s'ha pogut vincular els comptes
+ already_linked: Els comptes seleccionats ja estan enllaçats.
+ link_failed: No s'han pogut enllaçar els comptes
no_accounts_selected: No s'han seleccionat comptes.
- no_session: No hi ha connexió activa d'Enable Banking. Si us plau, connecta't a un banc primer.
- success: S'han vinculat correctament %{count} comptes.
+ no_session: No hi ha cap connexió activa d'Enable Banking. Primer connecta't
+ a un banc.
+ success: S'han enllaçat correctament %{count} comptes.
link_existing_account:
errors:
- invalid_enable_banking_account: S'ha seleccionat un compte d'Enable Banking no vàlid
- only_manual: Només es poden vincular comptes manuals
- success: Compte vinculat correctament a Enable Banking
+ invalid_enable_banking_account: S'ha seleccionat un compte d'Enable Banking
+ no vàlid
+ only_manual: Només els comptes manuals es poden enllaçar
+ success: El compte s'ha enllaçat correctament a Enable Banking
new:
- link_enable_banking_title: Vincula Enable Banking
+ add_connection: Afegeix connexió
+ configured: Configurat
+ connect_bank: Connecta el banc
+ connected_bank: Banc connectat
+ connection: Connexió
+ go_to_provider_settings: Ves a la configuració del proveïdor
+ link_enable_banking_title: Enllaça Enable Banking
+ not_configured: Connexió d'Enable Banking no configurada
+ not_configured_description: Abans d'enllaçar comptes d'Enable Banking, has de
+ configurar la teva connexió d'Enable Banking.
+ ready_to_connect: A punt per connectar un banc
+ reconnect: Reconnecta
+ remove: Elimina
+ remove_confirm: Segur que vols eliminar aquesta connexió?
+ session_expired: La sessió ha caducat — cal tornar a autoritzar
+ session_expires: La sessió caduca
+ setup_step_1_html: Ves a Configuració → Proveïdors
+ setup_step_2_html: Localitza la secció Enable Banking
+ setup_step_3: Introdueix les teves credencials d'Enable Banking
+ setup_step_4: Torna aquí per enllaçar els teus comptes
+ setup_steps_title: 'Passos de configuració:'
+ sync: Sincronitza
+ unknown: Desconegut
reauthorize:
- invalid_redirect: L'URL d'autorització rebuta no és vàlida. Si us plau, torna-ho
- a provar o contacta amb l'assistència.
+ invalid_redirect: L'URL d'autorització rebuda no és vàlida. Torna-ho a provar.
reauthorization_failed: La reautorització ha fallat
select_bank:
+ beta_label: Beta
cancel: Cancel·la
- check_country: Si us plau, revisa els teus codis de país.
- credentials_required: Si us plau, configura les teves credencials d'Enable Banking primer.
+ check_country: Revisa la configuració del codi de país.
+ credentials_required: Primer configura les teves credencials d'Enable Banking.
description: Selecciona el banc al qual vols connectar els teus comptes.
- no_banks: No hi ha bancs disponibles per aquest país/regió.
+ no_banks: No hi ha bancs disponibles per a aquest país/regió.
+ no_search_results: Cap banc coincideix amb la teva cerca.
+ search_label: Cerca el teu banc
+ search_placeholder: Cerca el teu banc...
title: Selecciona el teu banc
+ select_existing_account:
+ all_linked: Sembla que tots els comptes d'Enable Banking ja estan enllaçats.
+ balance: Saldo
+ cancel: Cancel·la
+ link: Enllaça
+ title: Enllaça compte d'Enable Banking
+ try_after_sync: Si acabes de connectar o sincronitzar, torna-ho a provar després
+ que la sincronització acabi.
+ unlink_to_move: Per enllaçar un compte diferent, primer desenllaça'l del menú
+ d'accions del compte.
+ setup_accounts:
+ account_type_label: 'Tipus de compte:'
+ balance: Saldo
+ cancel: Cancel·la
+ choose_account_type: 'Tria el tipus de compte correcte per a cada compte d''Enable
+ Banking:'
+ create_accounts: Crea comptes
+ creating_accounts: Creant comptes...
+ header_subtitle: Tria els tipus de compte correctes per als teus comptes importats
+ historical_data_range: 'Rang de dades històriques:'
+ psd2_savings_notice: 'Nota: alguns comptes d''estalvi regulats francesos (Livret
+ A, PEL, LEP, LDDS) tenen accés limitat o nul a través de l''Open Banking (PSD2).
+ Si manca un compte d''estalvi, pots afegir-lo manualment.'
+ sync_start_date_help: Selecciona fins on vols sincronitzar l'historial de transaccions.
+ Hi ha un màxim de 2 anys d'historial disponible.
+ sync_start_date_label: 'Comença a sincronitzar transaccions des de:'
+ title: Configura els teus comptes d'Enable Banking
update:
success: La configuració d'Enable Banking s'ha actualitzat.
diff --git a/config/locales/views/enable_banking_items/hu.yml b/config/locales/views/enable_banking_items/hu.yml
index d96307af5..79a3282f0 100644
--- a/config/locales/views/enable_banking_items/hu.yml
+++ b/config/locales/views/enable_banking_items/hu.yml
@@ -39,8 +39,53 @@ hu:
errors:
only_manual: Csak manuális számlákat lehet összekapcsolni
invalid_enable_banking_account: Érvénytelen Enable Banking-számla választva
+ enable_banking_item:
+ deletion_in_progress: Törlés folyamatban
+ provider_name: Enable Banking
+ syncing: Szinkronizálás...
+ reconnect: Újracsatlakozás
+ last_synced: Utoljára szinkronizálva %{time} ezelőtt
+ never_synced: Még nem szinkronizált
+ update: Frissítés
+ delete: Törlés
+ setup_needed: Beállítás szükséges
+ setup_needed_description:
+ one: 1 Enable Banking-ből importált számla beállítása szükséges
+ other: "%{count} Enable Banking-ből importált számla beállítása szükséges"
+ set_up_accounts: Számlák beállítása
+ no_accounts_found: Nem található számla
+ no_accounts_found_description: Nem található számla az Enable Banking-ből. Próbálj újra szinkronizálni.
+ select_existing_account:
+ title: Enable Banking-számla összekapcsolása
+ all_linked: Úgy tűnik, minden Enable Banking-számla már össze van kapcsolva.
+ try_after_sync: Ha most csatlakoztál vagy szinkronizáltál, próbálj újra a szinkronizálás befejezése után.
+ unlink_to_move: Másik számla összekapcsolásához először válaszd le a számlán a műveletek menüből.
+ balance: Egyenleg
+ link: Összekapcsolás
+ cancel: Mégse
new:
link_enable_banking_title: Enable Banking összekapcsolása
+ session_expired: A munkamenet lejárt – újraengedélyezés szükséges
+ connected_bank: Csatlakoztatott bank
+ session_expires: "Munkamenet lejárata"
+ unknown: Ismeretlen
+ connection: Kapcsolat
+ configured: Konfigurálva
+ ready_to_connect: Kész egy bank csatlakoztatására
+ sync: Szinkronizálás
+ reconnect: Újracsatlakozás
+ connect_bank: Bank csatlakoztatása
+ remove_confirm: Biztosan el szeretnéd távolítani ezt a kapcsolatot?
+ remove: Eltávolítás
+ add_connection: Kapcsolat hozzáadása
+ not_configured: Az Enable Banking kapcsolat nincs konfigurálva
+ not_configured_description: Mielőtt Enable Banking-számlákat kapcsolnál össze, konfigurálnod kell az Enable Banking kapcsolatot.
+ setup_steps_title: "Beállítási lépések:"
+ setup_step_1_html: "Menj a Beállítások → Szolgáltatók menübe"
+ setup_step_2_html: "Keresd meg az Enable Banking részt"
+ setup_step_3: Add meg az Enable Banking hitelesítő adatait
+ setup_step_4: Térj vissza ide a számlák összekapcsolásához
+ go_to_provider_settings: Ugrás a szolgáltató beállításaihoz
reauthorize:
invalid_redirect: A kapott engedélyezési URL érvénytelen. Kérjük, próbáld újra.
reauthorization_failed: Az újraengedélyezés sikertelen
@@ -56,6 +101,17 @@ hu:
search_placeholder: Keresd meg a bankod...
title: Válaszd ki a bankod
setup_accounts:
+ title: Enable Banking-számlák beállítása
+ header_subtitle: Válaszd ki a megfelelő számlatípusokat az importált számlákhoz
+ choose_account_type: "Válaszd ki az egyes Enable Banking-számlák megfelelő számlatípusát:"
+ historical_data_range: "Historikus adatok tartománya:"
+ sync_start_date_label: "Tranzakciók szinkronizálásának kezdete:"
+ sync_start_date_help: Válaszd meg, milyen messzire nyúljon vissza a tranzakciótörténet szinkronizálása. Legfeljebb 2 év előzmény érhető el.
+ account_type_label: "Számlatípus:"
+ balance: Egyenleg
+ create_accounts: Számlák létrehozása
+ creating_accounts: Számlák létrehozása...
+ cancel: Mégse
psd2_savings_notice: "Megjegyzés: Egyes szabályozott francia megtakarítási számlákhoz (Livret A, PEL, LEP, LDDS) korlátozott vagy semmilyen hozzáférés nem áll rendelkezésre az Open Banking (PSD2) révén. Ha egy megtakarítási számla hiányzik, manuálisan is hozzáadhatod."
update:
success: Az Enable Banking konfiguráció frissítve.
diff --git a/config/locales/views/entries/ca.yml b/config/locales/views/entries/ca.yml
index 4ece9e3aa..5e9e0d459 100644
--- a/config/locales/views/entries/ca.yml
+++ b/config/locales/views/entries/ca.yml
@@ -10,5 +10,16 @@ ca:
title: No s'han trobat entrades
loading:
loading: Carregant entrades...
+ protection:
+ description: Les teves edicions a aquesta entrada no se sobreescriuran amb la
+ sincronització del proveïdor.
+ locked_fields_label: 'Camps bloquejats:'
+ title: Protegida de la sincronització
+ tooltip: Protegida de la sincronització
+ unlock_button: Permet que la sincronització l'actualitzi
+ unlock_confirm: Vols permetre que la sincronització actualitzi aquesta entrada?
+ Els teus canvis es poden sobreescriure a la pròxima sincronització.
+ unlock:
+ success: Entrada desbloquejada. Pot ser actualitzada a la pròxima sincronització.
update:
success: Entrada actualitzada
diff --git a/config/locales/views/family_exports/ca.yml b/config/locales/views/family_exports/ca.yml
index 9056ea5c6..04a517f20 100644
--- a/config/locales/views/family_exports/ca.yml
+++ b/config/locales/views/family_exports/ca.yml
@@ -3,29 +3,46 @@ ca:
family_exports:
access_denied: Accés denegat
create:
- success: Exportació iniciada. Podràs descarregar-la aviat.
- delete_confirmation: Estàs segur que vols eliminar aquesta exportació? Aquesta acció no es pot desfer.
- delete_failed_confirmation: Estàs segur que vols eliminar aquesta exportació fallida?
+ success: Exportació iniciada. La podràs descarregar aviat.
+ delete_confirmation: Segur que vols eliminar aquesta exportació? Aquesta acció
+ no es pot desfer.
+ delete_failed_confirmation: Segur que vols eliminar aquesta exportació fallida?
destroy:
- success: Exportació eliminada amb èxit
- export_not_ready: L'exportació no està llesta per descarregar
+ success: Exportació eliminada correctament
+ export_not_ready: L'exportació no està a punt per descarregar
exporting: Exportant...
index:
- title: Exportacions
new: Nova exportació
- table:
title: Exportacions
+ new:
+ accounts_and_balances: Tots els comptes i saldos
+ cancel: Cancel·la
+ categories_tags_rules: Categories, etiquetes i regles
+ dialog_subtitle: Descarrega totes les teves dades financeres
+ dialog_title: Exporta les teves dades
+ export_data: Exporta les dades
+ investment_trades: Operacions d'inversió
+ note_description: Aquesta exportació inclou totes les teves dades, però només
+ se'n pot importar de nou una part mitjançant la funció d'importació CSV. Donem
+ suport a la importació de comptes, transaccions (amb categoria i etiquetes)
+ i operacions. La resta de dades del compte no es poden importar i són només
+ per als teus registres.
+ note_label: Nota
+ transaction_history: Historial de transaccions
+ whats_included: 'Què s''inclou:'
+ table:
+ empty: Encara no hi ha exportacions.
header:
+ actions: Accions
date: Data
filename: Nom del fitxer
status: Estat
- actions: Accions
row:
- status:
- in_progress: En curs
- complete: Completat
- failed: Error
actions:
delete: Elimina
- download: Descarregar
- empty: Encara no hi ha exportacions.
+ download: Descarrega
+ status:
+ complete: Completat
+ failed: Error
+ in_progress: En curs
+ title: Exportacions
diff --git a/config/locales/views/family_exports/hu.yml b/config/locales/views/family_exports/hu.yml
index 626a42e4e..35f49accb 100644
--- a/config/locales/views/family_exports/hu.yml
+++ b/config/locales/views/family_exports/hu.yml
@@ -10,6 +10,18 @@ hu:
success: Az export sikeresen törölve
export_not_ready: Az export még nem áll készen a letöltésre
exporting: Exportálás folyamatban...
+ new:
+ dialog_title: Adataid exportálása
+ dialog_subtitle: Töltsd le az összes pénzügyi adatodat
+ whats_included: "Mi kerül bele:"
+ accounts_and_balances: Összes számla és egyenleg
+ transaction_history: Tranzakciótörténet
+ investment_trades: Befektetési ügyletek
+ categories_tags_rules: Kategóriák, címkék és szabályok
+ note_label: Megjegyzés
+ note_description: Ez az export tartalmazza az összes adatodat, de csak egy részük importálható vissza a CSV importálás funkcióval. Számlák, tranzakciók (kategóriával és címkékkel) és kereskedések importálása támogatott. Más számlaadat nem importálható, csak nyilvántartás céljából szerepel.
+ cancel: Mégse
+ export_data: Adatok exportálása
index:
title: Exportok
new: Új export
diff --git a/config/locales/views/holdings/ca.yml b/config/locales/views/holdings/ca.yml
index ea6b8e0dd..899da5016 100644
--- a/config/locales/views/holdings/ca.yml
+++ b/config/locales/views/holdings/ca.yml
@@ -2,23 +2,28 @@
ca:
holdings:
cash:
- brokerage_cash: Efectiu de broker
+ brokerage_cash: Efectiu del broker
cost_basis_cell:
cancel: Cancel·la
- or_per_share_label: 'O entra per acció:'
+ or_per_share_label: 'O introdueix per acció:'
overwrite_confirm_body: Això reemplaçarà el cost base actual de %{current}.
overwrite_confirm_title: Reemplaça el cost base?
per_share: per acció
save: Desa
- set_cost_basis_header: Estableix el cost base per %{ticker} (%{qty} accions)
+ set: Estableix
+ set_cost_basis_header: Estableix el cost base per a %{ticker} (%{qty} accions)
total_cost_basis_label: Cost base total
unknown: "--"
cost_basis_sources:
- calculated: Des de les operacions
+ calculated: A partir de les operacions
manual: Establert per l'usuari
- provider: Des del proveïdor
+ provider: Del proveïdor
destroy:
+ cannot_delete: No pots eliminar aquesta posició
success: Posició eliminada
+ errors:
+ security_collision: 'No es pot reassignar: ja tens una posició per a %{ticker}
+ a %{date}.'
holding:
no_cost_basis: Sense cost base
per_share: per acció
@@ -28,38 +33,84 @@ ca:
average_cost: Cost mitjà
holdings: Posicions
name: Nom
- new_holding: Nova transacció
+ new_holding: Nova activitat
no_holdings: No hi ha posicions per mostrar.
return: Rendiment total
weight: Pes
missing_price_tooltip:
- description: Aquesta inversió té valors que falten i no hem pogut calcular-ne
- el rendiment o el valor.
+ description: Aquesta inversió té valors que falten i no se n'han pogut calcular
+ el rendiment ni el valor.
missing_data: Falten dades
+ remap_security:
+ security_not_found: No s'ha pogut trobar el valor seleccionat.
+ success: Valor actualitzat correctament.
+ reset_security:
+ success: Valor restablert al del proveïdor.
show:
avg_cost_label: Cost mitjà
- cost_basis_locked_description: El cost base establert manualment no canviarà
+ book_value_label: Valor comptable
+ cancel: Cancel·la
+ cost_basis_locked_description: El cost base establert manualment no es modificarà
amb les sincronitzacions.
cost_basis_locked_label: El cost base està bloquejat
current_market_price_label: Preu de mercat actual
delete: Elimina
delete_subtitle: Això eliminarà la posició i totes les operacions associades
d'aquest compte. Aquesta acció no es pot desfer.
- delete_title: Elimina posició
+ delete_title: Elimina la posició
+ edit_security: Edita el valor
history: Historial
+ last_price_update: Última actualització de preu
+ market_data_label: Dades de mercat
+ market_data_sync_button: Actualitza
+ market_value_label: Valor de mercat
+ never: Mai
+ no_security_provider: Proveïdor de valors no configurat. No es poden cercar
+ valors.
+ no_trade_history: No hi ha historial d'operacions per a aquesta posició.
+ originally: era %{ticker}
overview: Resum
- portfolio_weight_label: Pes al portafolis
+ portfolio_weight_label: Pes a la cartera
+ provider_disabled_warning: Actualitzacions de preu en pausa — el proveïdor %{provider}
+ està desactivat. Canvia a un altre proveïdor o torna'l a activar a Configuració.
+ provider_sent: 'El proveïdor ha enviat: %{ticker}'
+ remap_security: Desa
+ reset_confirm_body: Això canviarà el valor de %{current} a %{original} i mourà
+ totes les operacions associades.
+ reset_confirm_title: Restablir el valor al del proveïdor?
+ reset_to_provider: Restableix al del proveïdor
+ search_security: Cerca valor
+ search_security_placeholder: Cerca per símbol o nom
+ security_label: Valor
+ security_remapped_label: Valor reassignat
settings: Configuració
- ticker_label: Ticker
+ shares_label: Accions
+ switch_provider_button: Canvia
+ switch_provider_description: "%{provider} està desactivat. Cerca aquest valor
+ en un altre proveïdor activat."
+ switch_provider_label: Canvia de proveïdor
+ syncing: Sincronitzant...
+ ticker_label: Símbol
total_return_label: Rendiment total
trade_history_entry: "%{qty} accions de %{security} a %{price}"
+ truncated_history_warning: L'historial de preus només està disponible a partir
+ del %{date}. Les dates anteriors no tenen dades del proveïdor seleccionat
+ — això pot passar quan l'actiu es va llistar després de la data de l'operació,
+ o quan el proveïdor només ofereix una finestra històrica limitada al seu pla
+ actual.
unknown: Desconegut
- unlock_confirm_body: Això permetrà que el cost base s'actualitzi per sincronitzacions
- del proveïdor o càlculs d'operacions.
- unlock_confirm_title: Desbloqueja el cost base?
+ unlock_confirm_body: Això permetrà que el cost base s'actualitzi per les sincronitzacions
+ del proveïdor o pels càlculs d'operacions.
+ unlock_confirm_title: Desbloquejar el cost base?
unlock_cost_basis: Desbloqueja
+ sync_prices:
+ provider_error: No s'han pogut obtenir els preus més recents. Torna-ho a provar
+ d'aquí a uns minuts.
+ success: Dades de mercat sincronitzades correctament.
+ unavailable: La sincronització de dades de mercat no està disponible per a valors
+ sense connexió.
unlock_cost_basis:
- success: El cost base s'ha desbloquejat. Pot actualitzar-se en la següent sincronització.
+ success: Cost base desbloquejat. Pot actualitzar-se a la propera sincronització.
update:
error: Valor de cost base no vàlid.
success: Cost base desat.
diff --git a/config/locales/views/holdings/hu.yml b/config/locales/views/holdings/hu.yml
index d8b6067a4..c685e9803 100644
--- a/config/locales/views/holdings/hu.yml
+++ b/config/locales/views/holdings/hu.yml
@@ -5,6 +5,7 @@ hu:
brokerage_cash: Brókeri készpénz
destroy:
success: Pozíció törölve
+ cannot_delete: Ez a pozíció nem törölhető
update:
success: Bekerülési érték mentve.
error: Érvénytelen bekerülési érték.
@@ -27,6 +28,7 @@ hu:
provider: Szolgáltatótól
cost_basis_cell:
unknown: "--"
+ set: Megadás
set_cost_basis_header: "Bekerülési érték megadása: %{ticker} (%{qty} részvény)"
total_cost_basis_label: Teljes bekerülési érték
or_per_share_label: "Vagy add meg részvényenként:"
diff --git a/config/locales/views/ibkr_items/ca.yml b/config/locales/views/ibkr_items/ca.yml
new file mode 100644
index 000000000..7cf62c8ba
--- /dev/null
+++ b/config/locales/views/ibkr_items/ca.yml
@@ -0,0 +1,101 @@
+---
+ca:
+ ibkr_items:
+ complete_account_setup:
+ none_created: No s'ha creat cap compte.
+ none_selected: No s'ha seleccionat cap compte.
+ success:
+ one: S'ha creat correctament %{count} compte d'Interactive Brokers.
+ other: S'han creat correctament %{count} comptes d'Interactive Brokers.
+ create:
+ success: Interactive Brokers s'ha configurat correctament.
+ defaults:
+ name: Interactive Brokers
+ destroy:
+ success: S'ha programat la connexió Interactive Brokers per a la seva eliminació.
+ ibkr_item:
+ accounts_need_setup: Els comptes necessiten configuració
+ accounts_need_setup_description: Alguns comptes d'IBKR necessiten ser enllaçats
+ a comptes de Sure.
+ delete: Elimina
+ deletion_in_progress: Eliminació en curs
+ error: Error
+ flex_web_service: Flex Web Service
+ never_synced: Mai sincronitzat.
+ no_accounts_discovered: Encara no s'han descobert comptes d'IBKR.
+ no_accounts_discovered_description: Executa una sincronització després de configurar
+ la teva consulta Flex per descobrir comptes.
+ requires_update: Les credencials necessiten atenció
+ setup_accounts: Configura comptes
+ synced: Sincronitzat fa %{time}. %{summary}.
+ syncing: Sincronitzant
+ link_existing_account:
+ already_linked: Aquest compte d'Interactive Brokers ja està enllaçat.
+ failed: No s'ha pogut enllaçar el compte d'Interactive Brokers.
+ not_found: No s'ha trobat el compte o la configuració d'Interactive Brokers.
+ only_manual_investment: Només els comptes d'inversió manuals es poden enllaçar
+ a Interactive Brokers.
+ success: S'ha enllaçat correctament al compte d'Interactive Brokers.
+ select_accounts:
+ not_configured: Interactive Brokers no està configurat.
+ select_existing_account:
+ balance: Saldo
+ cancel: Cancel·la
+ link: Enllaça
+ no_accounts_available: Encara no hi ha comptes d'Interactive Brokers sense enllaçar
+ disponibles.
+ run_sync_hint: Executa una sincronització des de Configuració > Proveïdors després
+ d'actualitzar la teva consulta Flex.
+ title: Enllaça compte d'Interactive Brokers
+ wait_for_sync: Espera que la sincronització de descobriment de comptes acabi.
+ setup_accounts:
+ available_accounts:
+ account_id: 'ID del compte: %{account_id}'
+ account_summary: "%{account_type} • Saldo: %{balance}"
+ account_type_investment: Inversió
+ title: Comptes disponibles
+ buttons:
+ back_to_settings: Torna a la configuració
+ cancel: Cancel·la
+ create_selected_accounts: Crea els comptes seleccionats
+ done: Fet
+ link: Enllaça
+ refresh: Actualitza
+ dialog_title: Configura els teus comptes d'Interactive Brokers
+ info_box:
+ items:
+ item_1: Posicions amb preus i quantitats actuals
+ item_2: Cost base per posició
+ item_3: Operacions, dividends, comissions i dipòsits o retirades d'efectiu
+ title: Importació de la consulta Flex d'IBKR
+ warning: L'activitat històrica està limitada a la finestra de l'informe de
+ la consulta Flex
+ link_existing:
+ description: O enllaça un compte d'IBKR descobert a un compte d'inversió manual
+ existent.
+ manual_account_option: "%{name} (%{balance})"
+ select_prompt: Selecciona un compte...
+ linked_accounts:
+ linked_to_html: 'Enllaçat a: %{account}'
+ title: Ja enllaçats
+ page_title: Configura els comptes d'Interactive Brokers
+ status:
+ fetching_accounts: Obtenint comptes d'Interactive Brokers...
+ no_accounts_found_description: Sure no ha pogut trobar cap compte d'IBKR a
+ l'últim informe Flex.
+ no_accounts_found_title: No s'han trobat comptes.
+ subtitle: Selecciona quins comptes de broker d'IBKR vols enllaçar.
+ sync_status:
+ all_linked:
+ one: 1 compte enllaçat
+ other: "%{count} comptes enllaçats"
+ no_accounts: Encara no s'han descobert comptes d'IBKR
+ partial: "%{linked} enllaçats, %{unlinked} necessiten configuració"
+ update:
+ success: La configuració d'Interactive Brokers s'ha actualitzat correctament.
+ providers:
+ ibkr:
+ connection_description: Connecta un informe de Flex Web Service d'Interactive
+ Brokers
+ institution_name: Interactive Brokers
+ name: Interactive Brokers
diff --git a/config/locales/views/ibkr_items/hu.yml b/config/locales/views/ibkr_items/hu.yml
new file mode 100644
index 000000000..d24742859
--- /dev/null
+++ b/config/locales/views/ibkr_items/hu.yml
@@ -0,0 +1,92 @@
+---
+hu:
+ providers:
+ ibkr:
+ name: Interactive Brokers
+ connection_description: Csatlakozás egy Interactive Brokers Flex Web Service jelentéshez
+ institution_name: Interactive Brokers
+ ibkr_items:
+ defaults:
+ name: Interactive Brokers
+ ibkr_item:
+ deletion_in_progress: Törlés folyamatban
+ flex_web_service: Flex Web Service
+ syncing: Szinkronizálás
+ requires_update: A hitelesítő adatok figyelmet igényelnek
+ error: Hiba
+ synced: Szinkronizálva %{time} ezelőtt. %{summary}.
+ never_synced: Még nem szinkronizált.
+ setup_accounts: Számlák beállítása
+ delete: Törlés
+ accounts_need_setup: A számlák beállítást igényelnek
+ accounts_need_setup_description: Az IBKR-ből importált néhány számlát össze kell kapcsolni a Sure-számlákkal.
+ no_accounts_discovered: Még nem találhatók IBKR-számlák.
+ no_accounts_discovered_description: Futtass egy szinkronizálást a Flex-lekérdezés konfigurálása után a számlák felderítéséhez.
+ setup_accounts:
+ page_title: Interactive Brokers-számlák beállítása
+ dialog_title: Interactive Brokers-számlák beállítása
+ subtitle: Válaszd ki, melyik IBKR brókerszámlákat szeretnéd összekapcsolni.
+ info_box:
+ title: IBKR Flex Query importálás
+ items:
+ item_1: Pozíciók aktuális árakkal és mennyiségekkel
+ item_2: Bekerülési érték pozíciónként
+ item_3: Ügyletek, osztalékok, jutalékok és készpénzbefizetések vagy -kifizetések
+ warning: A historikus tevékenység a Flex Query jelentési ablakára korlátozódik
+ status:
+ fetching_accounts: Számlák lekérése az Interactive Brokers-től...
+ no_accounts_found_title: Nem található számla.
+ no_accounts_found_description: A Sure nem talált IBKR-számlákat a legutóbbi Flex-jelentésben.
+ available_accounts:
+ title: Elérhető számlák
+ account_type_investment: Befektetés
+ account_summary: "%{account_type} • Egyenleg: %{balance}"
+ account_id: "Számlaazonosító: %{account_id}"
+ link_existing:
+ description: Vagy kapcsolj össze egy felderített IBKR-számlát egy meglévő manuális befektetési számlával.
+ manual_account_option: "%{name} (%{balance})"
+ select_prompt: Válassz számlát...
+ linked_accounts:
+ title: Már összekapcsolt
+ linked_to_html: "Összekapcsolva: %{account}"
+ buttons:
+ refresh: Frissítés
+ cancel: Mégse
+ back_to_settings: Vissza a beállításokhoz
+ create_selected_accounts: Kijelölt számlák létrehozása
+ link: Összekapcsolás
+ done: Kész
+ sync_status:
+ no_accounts: Még nem találhatók IBKR-számlák
+ all_linked:
+ one: 1 számla összekapcsolva
+ other: "%{count} számla összekapcsolva"
+ partial: "%{linked} összekapcsolt, %{unlinked} beállítást igényel"
+ select_existing_account:
+ title: Interactive Brokers-számla összekapcsolása
+ no_accounts_available: Még nem érhető el összekapcsolatlan Interactive Brokers-számla.
+ run_sync_hint: "Futtass szinkronizálást a Beállítások > Szolgáltatók menüből a Flex-lekérdezés frissítése után."
+ wait_for_sync: Várd meg, amíg a számlafelderítési szinkronizálás befejeződik.
+ balance: Egyenleg
+ link: Összekapcsolás
+ cancel: Mégse
+ create:
+ success: Az Interactive Brokers sikeresen konfigurálva.
+ update:
+ success: Az Interactive Brokers konfigurációja sikeresen frissítve.
+ destroy:
+ success: Az Interactive Brokers kapcsolat törlési sorba került.
+ select_accounts:
+ not_configured: Az Interactive Brokers nincs konfigurálva.
+ link_existing_account:
+ not_found: A számla vagy az Interactive Brokers konfiguráció nem található.
+ only_manual_investment: Csak manuális befektetési számlák kapcsolhatók össze az Interactive Brokers-szel.
+ already_linked: Ez az Interactive Brokers-számla már össze van kapcsolva.
+ success: Sikeresen összekapcsolva az Interactive Brokers-számlával.
+ failed: Nem sikerült összekapcsolni az Interactive Brokers-számlával.
+ complete_account_setup:
+ success:
+ one: Sikeresen létrehozva %{count} Interactive Brokers-számla.
+ other: Sikeresen létrehozva %{count} Interactive Brokers-számla.
+ none_selected: Nem lett számla kijelölve.
+ none_created: Nem lett számla létrehozva.
diff --git a/config/locales/views/impersonation_sessions/ca.yml b/config/locales/views/impersonation_sessions/ca.yml
index ca1a23e07..71932d26d 100644
--- a/config/locales/views/impersonation_sessions/ca.yml
+++ b/config/locales/views/impersonation_sessions/ca.yml
@@ -13,3 +13,13 @@ ca:
success: Has sortit de la sessió
reject:
success: Sol·licitud rebutjada
+ super_admin_bar:
+ impersonating: Personificant
+ jobs: Tasques
+ join: Uneix-te
+ join_a_session: Uneix-te a una sessió
+ leave: Surt
+ request_impersonation: Sol·licita personificació
+ super_admin: Super administrador
+ terminate: Finalitza
+ uuid_placeholder: UUID
diff --git a/config/locales/views/impersonation_sessions/hu.yml b/config/locales/views/impersonation_sessions/hu.yml
index 17025d85f..d8a1a672d 100644
--- a/config/locales/views/impersonation_sessions/hu.yml
+++ b/config/locales/views/impersonation_sessions/hu.yml
@@ -13,3 +13,13 @@ hu:
success: Kilépés a munkamenetből megtörtént
reject:
success: Kérés elutasítva
+ super_admin_bar:
+ super_admin: Super Admin
+ jobs: Feladatok
+ impersonating: Megszemélyesítés
+ leave: Kilépés
+ terminate: Befejezés
+ join_a_session: Csatlakozás munkamenethez
+ join: Csatlakozás
+ uuid_placeholder: UUID
+ request_impersonation: Megszemélyesítés kérése
diff --git a/config/locales/views/imports/ca.yml b/config/locales/views/imports/ca.yml
index 8de803977..723d6471e 100644
--- a/config/locales/views/imports/ca.yml
+++ b/config/locales/views/imports/ca.yml
@@ -3,19 +3,51 @@ ca:
import:
cleans:
show:
+ all_rows: Totes les files
+ data_cleaned: Les teves dades s'han netejat
description: Edita les teves dades a la taula de sota. Les cel·les vermelles
són invàlides.
+ error_rows: Files amb errors
errors_notice: Hi ha errors a les teves dades. Passa el cursor per sobre de
l'error per veure'n els detalls.
errors_notice_mobile: Hi ha errors a les teves dades. Toca la icona d'error
per veure'n els detalls.
+ next_step: Pas següent
+ not_configured: Configura la teva importació abans de continuar.
title: Neteja les teves dades
configurations:
+ account_import:
+ apply_configuration: Aplica la configuració
+ balance: Saldo
+ balance_date: Data del saldo
+ currency: Divisa
+ date_format: Format de data
+ default: Per defecte
+ entity_type: Tipus d'entitat
+ leave_empty: Deixa-ho buit
+ name: Nom
+ select_format: Selecciona el format
+ actual_import:
+ account_label: Compte (opcional)
+ amount_label: Import
+ apply_configuration: Aplica la configuració
+ category_label: Categoria (opcional)
+ date_format_label: Format de data
+ date_label: Data
+ incomes_are_negative: Els ingressos són negatius
+ incomes_are_positive: Els ingressos són positius
+ leave_empty: Deixa-ho buit
+ name_label: Beneficiari (opcional)
+ notes_label: Notes (opcional)
+ preconfigured_notice: Hem preconfigurat la teva importació d'Actual Budget.
+ Continua al pas següent.
+ signage_convention_label: Convenció de signes
category_import:
button_label: Continua
description: Puja un fitxer CSV senzill (com el que generem quan exportes
les teves dades). Automàticament maparem les columnes per tu.
- instructions: Selecciona continuar per analitzar el teu CSV i passar al pas de neteja.
+ instructions: Selecciona continuar per analitzar el teu CSV i passar al pas
+ de neteja.
mint_import:
date_format_label: Format de data
rule_import:
@@ -28,13 +60,65 @@ ca:
description: Selecciona les columnes que corresponen a cada camp del teu CSV.
title: Configura la teva importació
trade_import:
+ account_label: Compte
+ apply_configuration: Aplica la configuració
+ buys_are_negative: Les compres tenen quantitat negativa
+ buys_are_positive: Les compres tenen quantitat positiva
+ currency_label: Divisa
date_format_label: Format de data
+ date_label: Data
+ default: Per defecte
+ format_label: Format
+ leave_empty: Deixa-ho buit
+ name_label: Nom
+ no_security_provider_warning: El proveïdor de preus de valors no està configurat.
+ Les teves importacions d'operacions funcionaran, però Sure no recuperarà
+ l'historial de preus. Ves a la configuració per configurar-ho.
+ note_label: Nota
+ price_label: Preu
+ quantity_label: Quantitat
+ select_column: Selecciona la columna
+ select_format: Selecciona el format
+ stock_exchange_code_label: Codi de borsa
+ ticker_label: Ticker
transaction_import:
+ account_label: Compte
+ amount_label: Import
+ amount_type_label: Tipus d'import
+ amount_type_strategy_label: Estratègia del tipus d'import
+ apply_configuration: Aplica la configuració
+ as_amount_type_column: com a columna del tipus d'import
+ as_identifier_value: com a valor identificador
+ category_label: Categoria
+ currency_label: Divisa
date_format_label: Format de data
+ date_label: Data
+ default: Per defecte
+ expense_outflow: Despesa (sortida)
+ format_label: Format
+ income_inflow: Ingrés (entrada)
+ incomes_are_negative: Els ingressos són negatius
+ incomes_are_positive: Els ingressos són positius
+ leave_empty: Deixa-ho buit
+ name_label: Nom
+ notes_label: Notes
+ rows_to_skip_label: Omet les primeres n files
+ select_column: Selecciona la columna
+ select_convention: Selecciona la convenció
+ select_format: Selecciona el format
+ select_strategy: Selecciona l'estratègia
+ select_type: Selecciona el tipus
+ select_value: Selecciona el valor
+ set: Estableix
+ tags_label: Etiquetes
+ treat_as_html: Tracta «%{value}» com a
+ update:
+ success: Importació configurada correctament.
confirms:
mappings:
create_account: Crea un compte
csv_mapping_label: "%{mapping} al CSV"
+ next: Següent
no_accounts: Encara no tens cap compte. Crea un compte que puguem utilitzar
per a les files (sense assignar) del teu CSV o torna al pas de Neteja i
proporciona un nom de compte que puguem utilitzar.
@@ -43,75 +127,347 @@ ca:
unassigned_account: Necessites crear un nou compte per a les files sense assignar?
show:
account_mapping_description: Assigna tots els comptes del teu fitxer importat
- als comptes existents de Maybe. També pots afegir nous comptes o deixar-los
+ als comptes existents. També pots afegir nous comptes o deixar-los
sense categoria.
account_mapping_title: Assigna els teus comptes
account_type_mapping_description: Assigna tots els tipus de compte del teu
- fitxer importat als de Maybe
+ fitxer importat als existents
account_type_mapping_title: Assigna els teus tipus de compte
category_mapping_description: Assigna totes les categories del teu fitxer
- importat a les categories existents de Maybe. També pots afegir-ne de noves
+ importat a les categories existents. També pots afegir-ne de noves
o deixar-les sense categoria.
category_mapping_title: Assigna les teves categories
+ invalid_data: Hi ha dades invàlides; edita-les fins que es resolguin tots
+ els errors
tag_mapping_description: Assigna totes les etiquetes del teu fitxer importat
- a les etiquetes existents de Maybe. També pots afegir-ne de noves o deixar-les
+ a les etiquetes existents. També pots afegir-ne de noves o deixar-les
sense categoria.
tag_mapping_title: Assigna les teves etiquetes
- uploads:
+ sure_import:
+ cancel: Cancel·la
+ description: Revisa les dades que s'importaran del teu fitxer d'exportació.
+ empty_summary: No s'han trobat registres importables en aquest fitxer. Pot
+ estar buit, o les línies no coincideixen amb el format d'exportació esperat
+ (cada línia ha de ser un objecte JSON amb les claus «type» i «data», amb
+ tipus admesos per aquesta importació).
+ publish_button: Inicia la importació
+ summary: Resum de la importació
+ title: Confirma la teva importació
+ qif_category_selections:
show:
+ categories_found:
+ one: 1 categoria trobada
+ other: "%{count} categories trobades"
+ categories_heading: Categories
+ category_name_col: Nom de la categoria
+ description: Revisa el format de data detectat i tria quines categories i
+ etiquetes del teu fitxer QIF vols importar a %{product_name}.
+ empty_state_primary: No s'han trobat categories ni etiquetes en aquest fitxer
+ QIF.
+ empty_state_secondary: Totes les transaccions s'importaran sense categories
+ ni etiquetes.
+ split_badge: dividida
+ split_warning_description: Aquest fitxer QIF conté transaccions dividides.
+ Les divisions encara no estan suportades, així que cada transacció dividida
+ s'importarà com una sola transacció amb el seu import complet i sense categoria.
+ El detall individual de cada divisió no es conservarà.
+ split_warning_title: Transaccions dividides detectades
+ submit: Continua per revisar
+ tag_name_col: Nom de l'etiqueta
+ tags_found:
+ one: 1 etiqueta trobada
+ other: "%{count} etiquetes trobades"
+ tags_heading: Etiquetes
+ title: Configura i selecciona
+ transactions_col: Transaccions
+ txn_count:
+ one: 1 trans.
+ other: "%{count} trans."
+ update:
+ success: Categories i etiquetes desades.
+ uploads:
+ handle_qif_upload:
+ qif_uploaded: Fitxer QIF pujat correctament.
+ show:
+ account_optional_label: Compte (opcional)
+ browse: Explora
+ copy_paste_tab: Copia i enganxa
+ csv_file_prompt: per afegir aquí el teu fitxer CSV
+ csv_invalid: Ha de ser un CSV vàlid amb capçaleres i com a mínim una fila
+ de dades
description: Enganxa o puja el teu fitxer CSV a continuació. Revisa les instruccions
de la taula abans de començar.
+ download_sample_csv: Descarrega un CSV d'exemple
+ drop_csv_subtitle: El teu fitxer es pujarà automàticament
+ drop_csv_title: Deixa anar el CSV per pujar-lo
instructions_1: A sota hi ha un exemple de CSV amb columnes disponibles per
importar.
instructions_2: El teu CSV ha de tenir una fila d'encapçalament
instructions_3: Pots posar el nom que vulguis a les columnes. Les maparàs
en un pas posterior.
instructions_4: Les columnes marcades amb un asterisc (*) són obligatòries.
- instructions_5: Sense comes, símbols de moneda ni parèntesis als números.
+ instructions_5: Sense comes, símbols de divisa ni parèntesis als números.
+ multi_account_import: Importació multicompte
+ paste_csv_placeholder: Enganxa aquí el contingut del teu fitxer CSV
+ qif_account_label: Compte
+ qif_account_placeholder: Selecciona un compte…
+ qif_description: Selecciona el compte al qual pertany aquest fitxer QIF i
+ puja la teva exportació .qif de Quicken.
+ qif_file_hint: només fitxers .qif
+ qif_file_prompt: per afegir aquí el teu fitxer QIF
+ qif_submit: Puja QIF
+ qif_title: Puja el fitxer QIF
title: Importa les teves dades
+ to_see_format: per veure el format CSV requerit
+ upload_csv_button: Puja CSV
+ upload_csv_tab: Puja CSV
+ sure_import:
+ browse: Explora
+ browse_hint: per afegir aquí el teu fitxer all.ndjson
+ description: Puja el fitxer all.ndjson de la teva exportació de dades per
+ restaurar els teus comptes, transaccions, categories i més.
+ drop_subtitle: El teu fitxer es pujarà automàticament
+ drop_title: Deixa anar el NDJSON per pujar-lo
+ hint_html: Puja el fitxer all.ndjson del teu ZIP d'exportació
+ de dades
+ ndjson_invalid: Ha de ser un NDJSON vàlid amb com a mínim un registre
+ title: Importa des d'una exportació
+ upload_button: Puja NDJSON
+ update:
+ qif_uploaded: Fitxer QIF pujat correctament.
imports:
+ apply_template:
+ no_template_found: No s'ha trobat cap plantilla; configura manualment la teva
+ importació.
+ template_applied: Plantilla aplicada.
+ column_labels:
+ account: Compte
+ amount: Import
+ category: Categoria
+ category_color: Color
+ category_icon: Icona Lucide
+ category_parent: Categoria pare
+ currency: Divisa
+ date: Data
+ entity_type: Tipus
+ exchange: Borsa
+ name: Nom
+ notes: Notes
+ price: Preu
+ qty: Quantitat
+ tags: Etiquetes
+ ticker: Ticker
+ create:
+ csv_uploaded: CSV pujat correctament.
+ document_provider_not_configured: No hi ha cap magatzem vectorial configurat per
+ a la pujada de documents.
+ document_too_large: El fitxer del document és massa gran. La mida màxima és
+ %{max_size}MB.
+ document_upload_failed: No hem pogut pujar el document al magatzem vectorial.
+ Torna-ho a provar.
+ document_uploaded: Document pujat correctament.
+ file_too_large: El fitxer és massa gran. La mida màxima és %{max_size}MB.
+ invalid_document_file_type: Tipus de fitxer de document no vàlid per a l'arxiu
+ vectorial actiu.
+ invalid_file_type: Tipus de fitxer no vàlid. Puja un fitxer CSV.
+ invalid_ndjson_file_type: Tipus o format de fitxer no vàlid. Puja un fitxer
+ d'exportació .ndjson o .json vàlid.
+ invalid_pdf: El fitxer pujat no és un PDF vàlid.
+ ndjson_uploaded: Fitxer NDJSON pujat correctament.
+ pdf_processing: El teu PDF s'està processant. Rebràs un correu electrònic quan
+ l'anàlisi estigui completa.
+ pdf_too_large: El fitxer PDF és massa gran. La mida màxima és %{max_size}MB.
+ date_format:
+ description: El format de data s'ha detectat automàticament del teu fitxer.
+ Canvia'l si les dates no es veuen correctament.
+ error_description: Cap dels formats de data suportats ha pogut analitzar les
+ dates d'aquest fitxer. Comprova que el fitxer contingui entrades de data vàlides.
+ error_title: No s'ha pogut detectar el format de data
+ heading: Format de data
+ preview: Primera data analitzada
+ destroy:
+ deleted: La teva importació s'ha eliminat.
+ document_types:
+ bank_statement: Extracte bancari
+ contract: Contracte
+ credit_card_statement: Extracte de targeta de crèdit
+ financial_document: Document financer
+ investment_statement: Extracte d'inversions
+ other: Altre document
+ unknown: Document desconegut
+ empty:
+ message: No s'ha trobat cap importació.
+ errors:
+ custom_column_requires_inflow: Les importacions amb columna personalitzada requereixen
+ seleccionar una columna d'entrada
+ failure:
+ description: Comprova el format del fitxer, els errors i que tots els camps
+ obligatoris estiguin omplerts, i torna-ho a provar.
+ title: Importació fallida
+ try_again: Torna-ho a provar
+ importing:
+ back_to_dashboard: Tornar al tauler
+ check_status: Comprova l'estat
+ description: La teva importació està en curs. Consulta el menú d'importacions
+ per veure l'estat o clica «Comprova l'estat» per actualitzar la pàgina. Pots
+ continuar utilitzant l'aplicació.
+ title: Importació en curs
index:
- title: Importacions
new: Nova importació
+ title: Importacions
+ mapping_labels:
+ account: Compte
+ account_type: Tipus de compte
+ category: Categoria
+ tag: Etiqueta
+ new:
+ coming_soon: Properament
+ description: Importa des d'una eina financera o puja fitxers de dades sense
+ processar.
+ import_accounts: Importa comptes
+ import_actual: Importa des d'Actual Budget
+ import_categories: Importa categories
+ import_file: Importa document
+ import_file_description: Anàlisi amb IA per a PDFs i pujada de fitxers cercables
+ import_mint: Importa des de Mint
+ import_portfolio: Importa inversions
+ import_qif: Importa des de Quicken (QIF)
+ import_rules: Importa regles
+ import_sure: Importa des de Sure
+ import_sure_description: Fitxer .ndjson d'exportació completa
+ import_transactions: Importa transaccions
+ import_ynab: Importa des de YNAB
+ requires_account: Importa comptes primer per desbloquejar aquesta opció.
+ resume: Reprèn %{type}
+ sources: Fonts
+ tab_financial_tools: Eines financeres i fitxers
+ tab_raw_data: Dades sense processar
+ title: Nova importació
+ pdf_import:
+ back_to_dashboard: Tornar al tauler
+ back_to_imports: Tornar a les importacions
+ check_status: Comprova l'estat
+ complete_description: Hem analitzat el teu PDF i això és el que hem trobat.
+ complete_title: Document analitzat
+ create_account: Crea un compte
+ delete_import: Elimina la importació
+ document_type_label: Tipus de document
+ email_sent_notice: T'hem enviat un correu electrònic amb els passos següents.
+ failed_description: No hem pogut processar el teu document PDF. Torna-ho a provar
+ o contacta amb el suport.
+ failed_title: El processament ha fallat
+ no_accounts: No hi ha comptes disponibles. Crea un compte primer.
+ processing_description: Estem analitzant el teu document amb IA. Pot trigar
+ un moment. Rebràs un correu electrònic quan l'anàlisi estigui completa.
+ processing_failed_generic: 'El processament ha fallat: %{error}'
+ processing_failed_with_message: "%{message}"
+ processing_title: Processant el teu PDF
+ publish_transactions:
+ one: Publica %{count} transacció
+ other: Publica %{count} transaccions
+ ready_for_review_description: Hem extret %{count} transaccions del teu extracte.
+ Revisa-les i publica-les per afegir-les al teu compte.
+ ready_for_review_title: A punt per revisar
+ review_transactions: Revisa les transaccions
+ save_account: Desa
+ select_account: Importa al compte
+ select_account_hint: Tria a quin compte vols importar aquestes transaccions.
+ select_account_placeholder: Selecciona un compte...
+ select_account_to_continue: Selecciona un compte a dalt per continuar.
+ summary_label: Resum
+ transactions_extracted: Transaccions extretes
+ transactions_extracted_count:
+ one: "%{count} transacció"
+ other: "%{count} transaccions"
+ try_again: Torna-ho a provar
+ unknown_document_type: Desconegut
+ unknown_state_description: Aquesta importació es troba en un estat inesperat.
+ Torna a les importacions.
+ unknown_state_title: Estat desconegut
+ publish:
+ max_rows_exceeded: La teva importació supera el límit màxim de %{max} files.
+ started: La teva importació s'ha iniciat en segon pla.
+ ready:
+ back_to_imports: Tornar a les importacions
+ description: Aquí tens un resum dels nous elements que s'afegiran al teu compte
+ un cop publiquis aquesta importació.
+ empty_summary: No s'han trobat registres importables en aquest fitxer. Pot estar
+ buit, o les línies no coincideixen amb el format d'exportació esperat (cada
+ línia ha de ser un objecte JSON amb les claus «type» i «data», amb tipus admesos
+ per aquesta importació).
+ publish_import: Publica la importació
+ summary_count_label: Quantitat
+ summary_item_label: Element
+ title: Confirma les teves dades d'importació
+ revert:
+ started: La importació s'està revertint en segon pla.
+ revert_failure:
+ description: Torna-ho a provar
+ title: La reversió de la importació ha fallat
+ try_again: Torna-ho a provar
+ show:
+ finalize_mappings: Finalitza els teus mapatges abans de continuar.
+ finalize_upload: Finalitza la pujada del fitxer.
+ steps:
+ clean: Neteja
+ configure: Configuració
+ confirm: Confirma
+ map: Mapatge
+ progress: Pas %{step} de %{total}
+ select: Selecciona
+ upload: Pujada
+ success:
+ back_to_dashboard: Tornar al tauler
+ description: Les teves dades importades s'han afegit correctament a l'aplicació
+ i ja es poden utilitzar.
+ title: Importació correcta
table:
- title: Imports
+ empty: Encara no hi ha importacions.
header:
+ actions: Accions
date: Data
operation: Operació
status: Estat
- actions: Accions
row:
+ actions:
+ confirm_revert: Això eliminarà les transaccions que s'han importat, però
+ encara podràs revisar i tornar a importar les teves dades en qualsevol
+ moment.
+ delete: Elimina
+ revert: Reverteix
+ view: Veure
status:
- in_progress: En curs
- uploading: Processant files
- reverting: Revertint
- revert_failed: Reversió fallida
complete: Completat
failed: Error
- actions:
- revert: Revertir
- confirm_revert: Això suprimirà les transaccions que s'han importat, però encara podràs revisar i tornar a importar les teves dades en qualsevol moment.
- delete: Elimina
- view: Veure
- empty: Encara no hi ha importacions.
- new:
- description: Pots importar manualment diversos tipus de dades via CSV o utilitzar
- una de les nostres plantilles d'importació com Mint.
- import_accounts: Importa comptes
- import_categories: Importa categories
- import_mint: Importa des de Mint
- import_portfolio: Importa inversions
- import_rules: Importa regles
- import_transactions: Importa transaccions
- resume: Reprèn %{type}
- sources: Fonts
- title: Nova importació CSV
- ready:
- description: Aquí tens un resum dels nous elements que s'afegiran al teu compte
- un cop publiquis aquesta importació.
- title: Confirma les teves dades d'importació
- summary_item_label: Element
- summary_count_label: Quantitat
- empty_summary: No s'han trobat registres importables en aquest fitxer. Pot estar buit, o les línies no coincideixen amb el format d'exportació esperat (cada línia ha de ser un objecte JSON amb les claus «type» i «data», amb tipus admesos per aquesta importació).
- publish_import: Publicar la importació
- back_to_imports: Tornar a les importacions
+ in_progress: En curs
+ revert_failed: Reversió fallida
+ reverting: Revertint
+ uploading: Processant files
+ type_labels:
+ account_import: Compte
+ actual_import: Actual
+ category_import: Categoria
+ document_import: Document
+ mint_import: Mint
+ pdf_import: PDF
+ qif_import: QIF
+ rule_import: Regla
+ sure_import: Sure
+ trade_import: Operació
+ transaction_import: Transacció
+ title: Importacions
+ type_labels:
+ account_import: Importació de comptes
+ actual_import: Importació d'Actual
+ category_import: Importació de categories
+ document_import: Importació de documents
+ mint_import: Importació de Mint
+ pdf_import: Importació PDF
+ qif_import: Importació QIF
+ rule_import: Importació de regles
+ sure_import: Importació Sure
+ trade_import: Importació d'operacions
+ transaction_import: Importació de transaccions
+ update:
+ account_saved: Compte desat.
+ invalid_account: No s'ha trobat el compte.
diff --git a/config/locales/views/imports/en.yml b/config/locales/views/imports/en.yml
index a45792793..270b7d2f6 100644
--- a/config/locales/views/imports/en.yml
+++ b/config/locales/views/imports/en.yml
@@ -112,6 +112,20 @@ en:
instructions: Select continue to parse your CSV and move on to the clean step.
mint_import:
date_format_label: Date format
+ actual_import:
+ preconfigured_notice: We have pre-configured your Actual Budget import for you. Please proceed to the next step.
+ leave_empty: Leave empty
+ date_label: Date
+ date_format_label: Date format
+ amount_label: Amount
+ signage_convention_label: Signage convention
+ incomes_are_negative: Incomes are negative
+ incomes_are_positive: Incomes are positive
+ account_label: Account (optional)
+ name_label: Payee (optional)
+ category_label: Category (optional)
+ notes_label: Notes (optional)
+ apply_configuration: Apply configuration
rule_import:
description: Configure your rule import. Rules will be created or updated based
on the CSV data.
@@ -203,6 +217,22 @@ en:
account: "Account"
category: "Category"
tag: "Tag"
+ dry_run_resources:
+ transactions: "Transactions"
+ balances: "Balances"
+ accounts: "Accounts"
+ categories: "Categories"
+ tags: "Tags"
+ rules: "Rules"
+ merchants: "Merchants"
+ recurring_transactions: "Recurring Transactions"
+ transfers: "Transfers"
+ rejected_transfers: "Rejected Transfers"
+ trades: "Trades"
+ holdings: "Holdings"
+ valuations: "Valuations"
+ budgets: "Budgets"
+ budget_categories: "Budget Categories"
column_labels:
date: "Date"
amount: "Amount"
@@ -241,6 +271,16 @@ en:
title: Import successful
description: Your imported data has been successfully added to the app and is now ready for use.
back_to_dashboard: Back to dashboard
+ verification:
+ title: Readback verification
+ checked: Checked
+ mismatches: Mismatches
+ status:
+ not_verified: Not verified
+ matched: Matched
+ mismatch: Mismatch
+ failed: Failed
+ reverted: Reverted
importing:
title: Import in progress
description: "Your import is in progress. Check the imports menu for status updates or click 'Check Status' to refresh the page for updates. Feel free to continue using the app."
@@ -261,6 +301,7 @@ en:
trade_import: "Trade import"
account_import: "Account import"
mint_import: "Mint import"
+ actual_import: "Actual import"
qif_import: "QIF import"
category_import: "Category import"
rule_import: "Rule import"
@@ -293,6 +334,7 @@ en:
trade_import: "Trade"
account_import: "Account"
mint_import: "Mint"
+ actual_import: "Actual"
qif_import: "QIF"
category_import: "Category"
rule_import: "Rule"
@@ -321,6 +363,7 @@ en:
import_accounts: Import accounts
import_categories: Import categories
import_mint: Import from Mint
+ import_actual: Import from Actual Budget
import_portfolio: Import investments
import_rules: Import rules
import_transactions: Import transactions
diff --git a/config/locales/views/imports/hu.yml b/config/locales/views/imports/hu.yml
index 4f0f11b7b..8221e18fe 100644
--- a/config/locales/views/imports/hu.yml
+++ b/config/locales/views/imports/hu.yml
@@ -2,6 +2,8 @@
hu:
import:
qif_category_selections:
+ update:
+ success: "Kategóriák és címkék mentve."
show:
title: "Konfigurálás és kiválasztás"
description: "Ellenőrizd az automatikusan felismert dátumformátumot, majd válaszd ki, mely kategóriákat és címkéket szeretnéd beimportálni a QIF fájlodból a %{product_name} alkalmazásba."
@@ -27,13 +29,80 @@ hu:
submit: Tovább az áttekintéshez
cleans:
show:
+ not_configured: "Kérjük, konfiguráld az importálást a folytatás előtt."
description: Szerkeszd az adatokat az alábbi táblázatban. A piros cellák érvénytelen adatokat tartalmaznak.
errors_notice: Hibák vannak az adataidban. Vidd az egeret a hiba fölé a részletekért.
errors_notice_mobile: Hibák vannak az adataidban. Koppints a hibajelzőre a részletekért.
title: Adatok megtisztítása
+ data_cleaned: Az adataid megtisztítva
+ next_step: Következő lépés
+ all_rows: Összes sor
+ error_rows: Hibasorok
configurations:
update:
success: Az importálás konfigurálása sikeresen megtörtént.
+ account_import:
+ leave_empty: Hagyd üresen
+ default: Alapértelmezett
+ entity_type: Entitástípus
+ name: Név
+ balance: Egyenleg
+ currency: Pénznem
+ balance_date: Egyenleg dátuma
+ date_format: Dátumformátum
+ select_format: Formátum kiválasztása
+ apply_configuration: Konfiguráció alkalmazása
+ transaction_import:
+ date_label: Dátum
+ select_column: Oszlop kiválasztása
+ select_format: Formátum kiválasztása
+ amount_label: Összeg
+ default: Alapértelmezett
+ currency_label: Pénznem
+ format_label: Formátum
+ amount_type_strategy_label: Összeg típusának stratégiája
+ select_strategy: Stratégia kiválasztása
+ set: Beállítás
+ as_amount_type_column: összeg típusa oszlopként
+ select_value: Érték kiválasztása
+ as_identifier_value: azonosítóértékként
+ treat_as_html: "Kezeld a \"%{value}\" értéket így:"
+ income_inflow: Bevétel (beérkező)
+ expense_outflow: Kiadás (kimenő)
+ select_type: Típus kiválasztása
+ leave_empty: Hagyd üresen
+ account_label: Számla
+ name_label: Név
+ category_label: Kategória
+ tags_label: Címkék
+ notes_label: Megjegyzések
+ apply_configuration: Konfiguráció alkalmazása
+ incomes_are_positive: A bevételek pozitívak
+ incomes_are_negative: A bevételek negatívak
+ amount_type_label: Összeg típusa
+ select_convention: Egyezmény kiválasztása
+ date_format_label: Dátumformátum
+ rows_to_skip_label: Első n sor kihagyása
+ trade_import:
+ select_column: Oszlop kiválasztása
+ date_label: Dátum
+ quantity_label: Mennyiség
+ buys_are_positive: A vételek pozitív mennyiségűek
+ buys_are_negative: A vételek negatív mennyiségűek
+ default: Alapértelmezett
+ currency_label: Pénznem
+ format_label: Formátum
+ select_format: Formátum kiválasztása
+ ticker_label: Tőzsdei szimbólum
+ leave_empty: Hagyd üresen
+ stock_exchange_code_label: Tőzsde kódja
+ price_label: Ár
+ account_label: Számla
+ name_label: Név
+ note_label: Megjegyzés
+ no_security_provider_warning: Az értékpapír-árszolgáltató nincs konfigurálva. Az ügyletek importálása működni fog, de a Sure nem tölti fel a korábbi árfolyamadatokat. Kérjük, menj a beállításokhoz és konfiguráld.
+ date_format_label: Dátumformátum
+ apply_configuration: Konfiguráció alkalmazása
category_import:
button_label: Folytatás
description: Tölts fel egy egyszerű CSV fájlt (például olyat, amit az adatexportáláskor generálunk). Az oszlopokat automatikusan leképezzük neked.
@@ -47,11 +116,6 @@ hu:
show:
description: Válaszd ki, melyik oszlopok felelnek meg a CSV egyes mezőinek.
title: Importálás konfigurálása
- trade_import:
- date_format_label: Dátumformátum
- transaction_import:
- date_format_label: Dátumformátum
- rows_to_skip_label: Első n sor kihagyása
confirms:
sure_import:
title: Importálás megerősítése
@@ -67,7 +131,9 @@ hu:
no_accounts: Még nincs egyetlen számlád sem. Kérjük, hozz létre egy számlát a CSV-ben nem hozzárendelt sorokhoz, vagy lépj vissza a Megtisztítás lépéshez, és adj meg egy használható számlanevet.
rows_label: Sorok
unassigned_account: Új számlát kell létrehoznod a nem hozzárendelt sorokhoz?
+ next: Tovább
show:
+ invalid_data: "Érvénytelen adatok találhatók, kérjük szerkeszd, amíg minden hibát ki nem javítasz"
account_mapping_description: Rendeld hozzá az importált fájl számláit a Maybe meglévő számláihoz. Új számlákat is hozzáadhatsz, vagy hagyhatod őket kategorizálatlanul.
account_mapping_title: Számlák hozzárendelése
account_type_mapping_description: Rendeld hozzá az importált fájl számlatípusait a Maybe típusaihoz.
@@ -77,7 +143,20 @@ hu:
tag_mapping_description: Rendeld hozzá az importált fájl címkéit a Maybe meglévő címkéihez. Új címkéket is hozzáadhatsz, vagy hagyhatod őket kategorizálatlanul.
tag_mapping_title: Címkék hozzárendelése
uploads:
+ update:
+ qif_uploaded: "QIF fájl sikeresen feltöltve."
show:
+ csv_invalid: "Érvényes CSV szükséges fejlécekkel és legalább egy adatsorral"
+ drop_csv_title: Húzd ide a CSV fájlt a feltöltéshez
+ drop_csv_subtitle: A fájl automatikusan feltöltődik
+ upload_csv_tab: CSV feltöltése
+ copy_paste_tab: Másolás és beillesztés
+ account_optional_label: Számla (nem kötelező)
+ multi_account_import: Több számlás importálás
+ upload_csv_button: CSV feltöltése
+ paste_csv_placeholder: Illeszd be ide a CSV fájl tartalmát
+ download_sample_csv: Minta CSV letöltése
+ to_see_format: a szükséges CSV formátum megtekintéséhez
qif_title: QIF fájl feltöltése
qif_description: Válaszd ki azt a számlát, amelyhez ez a QIF fájl tartozik, majd töltsd fel a Quickenből exportált .qif fájlodat.
qif_account_label: Számla
@@ -105,6 +184,58 @@ hu:
hint_html: Töltsd fel az all.ndjson fájlt az adatexport ZIP archívumból
ndjson_invalid: Érvényes NDJSON szükséges, legalább egy rekorddal
imports:
+ mapping_labels:
+ account_type: "Számlatípus"
+ account: "Számla"
+ category: "Kategória"
+ tag: "Címke"
+ column_labels:
+ date: "Dátum"
+ amount: "Összeg"
+ name: "Név"
+ currency: "Pénznem"
+ category: "Kategória"
+ tags: "Címkék"
+ account: "Számla"
+ notes: "Megjegyzések"
+ qty: "Mennyiség"
+ ticker: "Tőzsdei szimbólum"
+ exchange: "Tőzsde"
+ price: "Ár"
+ entity_type: "Típus"
+ category_parent: "Szülőkategória"
+ category_color: "Szín"
+ category_icon: "Lucide ikon"
+ update:
+ account_saved: "Számla mentve."
+ invalid_account: "Számla nem található."
+ publish:
+ started: "Az importálás a háttérben elindult."
+ max_rows_exceeded: "Az importálás meghaladja a maximális %{max} soros korlátot."
+ revert:
+ started: "Az importálás visszavonása a háttérben folyamatban van."
+ apply_template:
+ template_applied: "Sablon alkalmazva."
+ no_template_found: "Nem található sablon, kérjük konfiguráld manuálisan az importálást."
+ destroy:
+ deleted: "Az importálás törölve."
+ failure:
+ title: Az importálás sikertelen
+ description: Kérjük, ellenőrizd a fájlformátumot, az esetleges hibákat és hogy minden kötelező mező ki van töltve, majd próbáld újra.
+ try_again: Újrapróbálkozás
+ success:
+ title: Importálás sikeres
+ description: Az importált adatok sikeresen hozzáadásra kerültek az alkalmazáshoz, és most már használhatók.
+ back_to_dashboard: Vissza az irányítópultra
+ importing:
+ title: Importálás folyamatban
+ description: "Az importálás folyamatban van. Az állapotfrissítéseket az importálások menüben ellenőrizheted, vagy kattints az 'Állapot ellenőrzése' gombra az oldal frissítéséhez. Nyugodtan folytasd az alkalmazás használatát."
+ check_status: Állapot ellenőrzése
+ back_to_dashboard: Vissza az irányítópultra
+ revert_failure:
+ title: Az importálás visszavonása sikertelen
+ description: Kérjük, próbáld újra
+ try_again: Újrapróbálkozás
date_format:
heading: Dátumformátum
description: "A dátumformátum automatikusan lett felismerve a fájlból. Módosítsd, ha a dátumok helytelenül jelennek meg."
@@ -129,6 +260,9 @@ hu:
map: Leképezés
confirm: Megerősítés
select: Kiválasztás
+ progress: "%{step}. lépés / %{total}"
+ empty:
+ message: Nem található importálás.
index:
title: Importálások
new: Új importálás
@@ -239,3 +373,21 @@ hu:
unknown_state_description: Ez az importálás váratlan állapotban van. Kérjük, térj vissza az importálásokhoz.
processing_failed_with_message: "%{message}"
processing_failed_generic: "Feldolgozási hiba: %{error}"
+ ready_for_review_title: Felülvizsgálatra kész
+ ready_for_review_description: "%{count} tranzakciót vontunk ki a kimutatásodból. Ellenőrizd és tedd közzé, hogy hozzáadódjon a számládhoz."
+ transactions_extracted: Kinyert tranzakciók
+ transactions_extracted_count:
+ one: "%{count} tranzakció"
+ other: "%{count} tranzakció"
+ select_account: Importálás számlára
+ select_account_placeholder: Válassz számlát...
+ select_account_hint: Válaszd ki, melyik számlára szeretnéd importálni ezeket a tranzakciókat.
+ no_accounts: Nincs elérhető számla. Kérjük, először hozz létre egyet.
+ create_account: Számla létrehozása
+ save_account: Mentés
+ publish_transactions:
+ one: "%{count} tranzakció közzététele"
+ other: "%{count} tranzakció közzététele"
+ review_transactions: Tranzakciók áttekintése
+ select_account_to_continue: A folytatáshoz kérjük, válassz fentebb számlát.
+ unknown_document_type: Ismeretlen
diff --git a/config/locales/views/indexa_capital_items/ca.yml b/config/locales/views/indexa_capital_items/ca.yml
new file mode 100644
index 000000000..e8daf63ac
--- /dev/null
+++ b/config/locales/views/indexa_capital_items/ca.yml
@@ -0,0 +1,249 @@
+---
+ca:
+ indexa_capital_items:
+ complete_account_setup:
+ all_skipped: S'han omès tots els comptes. No s'ha creat cap compte.
+ creation_failed: 'No s''han pogut crear els comptes: %{error}'
+ no_accounts: No hi ha comptes per configurar.
+ success: S'han creat correctament %{count} compte(s).
+ create:
+ success: La connexió Indexa Capital s'ha creat correctament
+ destroy:
+ success: La connexió Indexa Capital s'ha eliminat
+ errors:
+ provider_not_configured: El proveïdor Indexa Capital no està configurat
+ index:
+ title: Connexions Indexa Capital
+ indexa_capital_item:
+ accounts_need_setup: Els comptes necessiten configuració
+ delete: Elimina la connexió
+ deletion_in_progress: eliminació en curs...
+ error: Error
+ more_accounts_available:
+ one: "%{count} compte més disponible"
+ other: "%{count} comptes més disponibles"
+ no_accounts_description: Aquesta connexió encara no té comptes enllaçats.
+ no_accounts_title: No hi ha comptes
+ provider_name: Indexa Capital
+ requires_update: La connexió necessita actualització
+ setup_action: Configura els nous comptes
+ setup_description: "%{linked} de %{total} comptes enllaçats. Tria els tipus
+ de compte per als teus nous comptes Indexa Capital importats."
+ setup_needed: Nous comptes a punt per configurar
+ status: Sincronitzat fa %{timestamp} — %{summary}
+ status_never: Mai sincronitzat
+ syncing: Sincronitzant...
+ total: Total
+ unlinked: Sense enllaç
+ update_credentials: Actualitza les credencials
+ institution_summary:
+ count:
+ one: "%{count} entitat"
+ other: "%{count} entitats"
+ none: No hi ha entitats connectades
+ link_accounts:
+ all_already_linked:
+ one: El compte seleccionat (%{names}) ja està enllaçat
+ other: 'Tots els %{count} comptes seleccionats ja estan enllaçats: %{names}'
+ api_error: 'Error de l''API: %{message}'
+ invalid_account_names:
+ one: No es pot enllaçar un compte sense nom
+ other: No es poden enllaçar %{count} comptes sense nom
+ link_failed: No s'han pogut enllaçar els comptes
+ no_accounts_selected: Selecciona almenys un compte
+ no_api_key: No s'han trobat les credencials d'Indexa Capital. Configura-les a
+ la configuració del proveïdor.
+ partial_invalid: S'han enllaçat correctament %{created_count} compte(s), %{already_linked_count}
+ ja estaven enllaçats, %{invalid_count} compte(s) tenien noms no vàlids
+ partial_success: 'S''han enllaçat correctament %{created_count} compte(s). %{already_linked_count}
+ compte(s) ja estaven enllaçats: %{already_linked_names}'
+ success:
+ one: S'ha enllaçat correctament %{count} compte
+ other: S'han enllaçat correctament %{count} comptes
+ link_existing_account:
+ account_already_linked: Aquest compte ja està enllaçat a un proveïdor
+ api_error: 'Error de l''API: %{message}'
+ invalid_account_name: No es pot enllaçar un compte sense nom
+ missing_parameters: Falten paràmetres obligatoris
+ no_api_key: No s'han trobat les credencials d'Indexa Capital. Configura-les a
+ la configuració del proveïdor.
+ provider_account_already_linked: Aquest compte Indexa Capital ja està enllaçat
+ a un altre compte
+ provider_account_not_found: No s'ha trobat el compte Indexa Capital
+ success: S'ha enllaçat correctament %{account_name} amb Indexa Capital
+ loading:
+ loading_message: Carregant comptes d'Indexa Capital...
+ loading_title: Carregant
+ panel:
+ alternative_auth: O utilitza l'autenticació amb nom d'usuari/contrasenya...
+ field_descriptions: 'Descripció dels camps:'
+ fields:
+ api_token:
+ description: El teu token API només de lectura del panell d'Indexa Capital
+ label: Token API
+ placeholder_new: Enganxa el teu token API aquí
+ placeholder_update: Introdueix un nou token API per actualitzar
+ document:
+ description: El teu document/ID d'Indexa Capital
+ label: ID del document
+ placeholder_new: Enganxa l'ID del document aquí
+ placeholder_update: Introdueix un nou ID de document per actualitzar
+ password:
+ description: La teva contrasenya d'Indexa Capital
+ label: Contrasenya
+ placeholder_new: Enganxa la contrasenya aquí
+ placeholder_update: Introdueix una nova contrasenya per actualitzar
+ username:
+ description: El teu nom d'usuari/correu electrònic d'Indexa Capital
+ label: Nom d'usuari
+ placeholder_new: Enganxa el nom d'usuari aquí
+ placeholder_update: Introdueix un nou nom d'usuari per actualitzar
+ optional: "(opcional)"
+ optional_with_default: "(opcional, per defecte %{default_value})"
+ required: "(obligatori)"
+ save_button: Desa la configuració
+ setup_instructions: 'Instruccions de configuració:'
+ step_1: Visita el teu panell d'Indexa Capital per generar un token API només
+ de lectura
+ step_2: Enganxa el teu token API a continuació i fes clic a Desa
+ step_3: Després d'una connexió correcta, ves a la pestanya Comptes per configurar
+ nous comptes
+ update_button: Actualitza la configuració
+ preload_accounts:
+ no_credentials_configured: Primer, configura les teves credencials d'Indexa Capital
+ a la configuració del proveïdor.
+ select_accounts:
+ accounts_selected: comptes seleccionats
+ api_error: 'Error de l''API: %{message}'
+ cancel: Cancel·la
+ configure_name_in_provider: No es pot importar — configura el nom del compte
+ a Indexa Capital
+ description: Selecciona els comptes que vols enllaçar al teu compte de %{product_name}.
+ link_accounts: Enllaça els comptes seleccionats
+ no_accounts_found: No s'han trobat comptes. Comprova les teves credencials d'Indexa Capital.
+ no_api_key: Les credencials d'Indexa Capital no estan configurades. Configura-les
+ a la configuració.
+ no_credentials_configured: Primer, configura les teves credencials d'Indexa Capital
+ a la configuració del proveïdor.
+ no_name_placeholder: "(Sense nom)"
+ title: Selecciona comptes Indexa Capital
+ select_existing_account:
+ account_already_linked: Aquest compte ja està enllaçat a un proveïdor
+ all_accounts_already_linked: Tots els comptes Indexa Capital ja estan enllaçats
+ api_error: 'Error de l''API: %{message}'
+ balance_label: 'Saldo:'
+ cancel: Cancel·la
+ cancel_button: Cancel·la
+ configure_name_in_provider: No es pot importar — configura el nom del compte
+ a Indexa Capital
+ connect_hint: Connecta un compte Indexa Capital per habilitar la sincronització
+ automàtica.
+ description: Selecciona un compte Indexa Capital per enllaçar-lo amb aquest compte.
+ Les transaccions es sincronitzaran i deduplicaran automàticament.
+ header: Enllaça amb Indexa Capital
+ link_account: Enllaça compte
+ link_button: Enllaça aquest compte
+ linking_to: 'Enllaçant a:'
+ no_account_specified: No s'ha especificat cap compte
+ no_accounts: No s'han trobat comptes Indexa Capital sense enllaçar.
+ no_accounts_found: No s'han trobat comptes Indexa Capital. Comprova les teves
+ credencials.
+ no_api_key: Les credencials d'Indexa Capital no estan configurades. Configura-les
+ a la configuració.
+ no_credentials_configured: Primer, configura les teves credencials d'Indexa Capital
+ a la configuració del proveïdor.
+ no_name_placeholder: "(Sense nom)"
+ settings_link: Ves a la configuració del proveïdor
+ subtitle: Tria un compte Indexa Capital
+ title: Enllaça %{account_name} amb Indexa Capital
+ setup_accounts:
+ account_type_label: 'Tipus de compte:'
+ account_types:
+ credit_card: Targeta de crèdit
+ crypto: Compte de criptomonedes
+ depository: Compte corrent o d'estalvis
+ investment: Compte d'inversió
+ loan: Préstec o hipoteca
+ other_asset: Altre actiu
+ skip: Omet aquest compte
+ accounts_count:
+ one: "%{count} compte disponible"
+ other: "%{count} comptes disponibles"
+ all_accounts_linked: Tots els teus comptes Indexa Capital ja s'han configurat.
+ api_error: 'Error de l''API: %{message}'
+ balance: Saldo
+ cancel: Cancel·la
+ choose_account_type: 'Tria el tipus de compte correcte per a cada compte Indexa Capital:'
+ create_accounts: Crea comptes
+ creating: Creant comptes...
+ creating_accounts: Creant comptes...
+ fetch_failed: No s'han pogut obtenir els comptes
+ historical_data_range: 'Rang de dades històriques:'
+ import_selected: Importa els comptes seleccionats
+ instructions: Selecciona els comptes que vols importar des d'Indexa Capital.
+ Pots triar diversos comptes.
+ no_accounts: No s'han trobat comptes sense enllaçar d'aquesta connexió Indexa Capital.
+ no_accounts_to_setup: No hi ha comptes per configurar
+ no_api_key: Les credencials d'Indexa Capital no estan configurades. Revisa la
+ configuració de la connexió.
+ select_all: Selecciona-ho tot
+ subtitle: Tria els tipus de compte correctes per als teus comptes importats
+ subtype_labels:
+ credit_card: ''
+ crypto: ''
+ depository: 'Subtipus de compte:'
+ investment: 'Tipus d''inversió:'
+ loan: 'Tipus de préstec:'
+ other_asset: ''
+ subtype_messages:
+ credit_card: Les targetes de crèdit es configuraran automàticament com a comptes
+ de targeta de crèdit.
+ crypto: Els comptes de criptomonedes es configuraran per fer el seguiment
+ de posicions i transaccions.
+ other_asset: No calen opcions addicionals per a altres actius.
+ subtypes:
+ depository:
+ cd: Certificat de dipòsit
+ checking: Compte corrent
+ hsa: Compte d'estalvi per a salut
+ money_market: Mercat monetari
+ savings: Estalvis
+ investment:
+ 401k: 401(k)
+ 403b: 403(b)
+ 529_plan: Pla 529
+ angel: Inversió àngel
+ brokerage: Corredoria
+ hsa: Compte d'estalvi per a salut
+ ira: IRA tradicional
+ mutual_fund: Fons d'inversió
+ pension: Pensió
+ retirement: Jubilació
+ roth_401k: Roth 401(k)
+ roth_ira: IRA Roth
+ tsp: Pla d'estalvis de jubilació (TSP)
+ loan:
+ auto: Préstec d'automòbil
+ mortgage: Hipoteca
+ other: Altre préstec
+ student: Préstec d'estudis
+ sync_start_date_help: Selecciona fins on vols sincronitzar l'historial de transaccions.
+ sync_start_date_label: 'Comença a sincronitzar transaccions des de:'
+ title: Configura els teus comptes Indexa Capital
+ sync:
+ status:
+ calculating: Calculant saldos...
+ checking_setup: Comprovant la configuració dels comptes...
+ importing: Important comptes des d'Indexa Capital...
+ importing_data: Important dades del compte...
+ needs_setup: "%{count} comptes necessiten configuració..."
+ processing: Processant posicions i activitats...
+ success: Sincronització iniciada
+ sync_status:
+ no_accounts: No s'han trobat comptes
+ synced:
+ one: "%{count} compte sincronitzat"
+ other: "%{count} comptes sincronitzats"
+ synced_with_setup: "%{linked} sincronitzats, %{unlinked} necessiten configuració"
+ update:
+ success: La connexió Indexa Capital s'ha actualitzat
diff --git a/config/locales/views/indexa_capital_items/hu.yml b/config/locales/views/indexa_capital_items/hu.yml
index be7bf5ff5..defbd74fe 100644
--- a/config/locales/views/indexa_capital_items/hu.yml
+++ b/config/locales/views/indexa_capital_items/hu.yml
@@ -180,7 +180,7 @@ hu:
investment: "Befektetési számla"
crypto: "Kriptovaluta számla"
loan: "Hitel vagy jelzálog"
- other_asset: "Egyéb eszköz"
+ other_asset: "Egyéb vagyon"
subtype_labels:
depository: "Számla altípusa:"
credit_card: ""
@@ -190,7 +190,7 @@ hu:
other_asset: ""
subtype_messages:
credit_card: "A hitelkártyák automatikusan hitelkártya számlákként lesznek beállítva."
- other_asset: "Az egyéb eszközökhöz nincs szükség további beállításokra."
+ other_asset: "Az egyéb vagyonelemekhez nincs szükség további beállításokra."
crypto: "A kriptovaluta számlák pozíciók és tranzakciók nyomon követésére lesznek beállítva."
subtypes:
depository:
diff --git a/config/locales/views/investments/ca.yml b/config/locales/views/investments/ca.yml
index a7a0cd9b9..3325ed665 100644
--- a/config/locales/views/investments/ca.yml
+++ b/config/locales/views/investments/ca.yml
@@ -10,9 +10,181 @@ ca:
title: Introdueix el saldo del compte
show:
chart_title: Valor total
+ subtypes:
+ 401k:
+ long: 401(k)
+ short: 401(k)
+ 403b:
+ long: 403(b)
+ short: 403(b)
+ 457b:
+ long: 457(b)
+ short: 457(b)
+ 529_plan:
+ long: Pla 529 d'estalvi per a l'educació
+ short: Pla 529
+ angel:
+ long: Inversió àngel
+ short: Àngel
+ apy:
+ long: Atal Pension Yojana
+ short: APY
+ brokerage:
+ long: Compte de broker
+ short: Broker
+ corporate_bond:
+ long: Bo corporatiu
+ short: Bo corporatiu
+ fd:
+ long: Dipòsit a termini fix
+ short: FD
+ g_sec:
+ long: Valors governamentals (G-Secs)
+ short: G-Sec
+ gold:
+ long: Or (físic o digital)
+ short: Or
+ gold_etf:
+ long: ETF d'or
+ short: ETF d'or
+ gold_mf:
+ long: Fons mutu d'or
+ short: MF d'or
+ hsa:
+ long: Compte d'estalvi sanitari
+ short: HSA
+ indian_equity:
+ long: Renda variable índia
+ short: Renda variable índia
+ indian_etf:
+ long: ETF indi
+ short: ETF indi
+ indian_stocks:
+ long: Accions índies (Demat)
+ short: Accions índies
+ infrastructure_bond:
+ long: Bo d'infraestructures
+ short: Bo d'infraestr.
+ ira:
+ long: IRA tradicional
+ short: IRA
+ isa:
+ long: Compte d'estalvi individual
+ short: ISA
+ kvp:
+ long: Kisan Vikas Patra
+ short: KVP
+ life_insurance:
+ long: Assegurança de vida
+ short: Assegurança de vida
+ lira:
+ long: Compte de jubilació bloquejat
+ short: LIRA
+ lisa:
+ long: ISA vitalícia
+ short: LISA
+ mutual_fund:
+ long: Fons d'inversió
+ short: Fons d'inversió
+ nps:
+ long: Sistema nacional de pensions
+ short: NPS
+ nsc:
+ long: Certificat nacional d'estalvi
+ short: NSC
+ other:
+ long: Altra inversió
+ short: Altres
+ pea:
+ long: Plan d'Épargne en Actions
+ short: PEA
+ pension:
+ long: Pensió
+ short: Pensió
+ pillar_3a:
+ long: Pensió privada (Pilar 3a)
+ short: Pilar 3a
+ pomis:
+ long: Pla mensual de l'oficina de correus
+ short: POMIS
+ ppf:
+ long: Fons provident públic
+ short: PPF
+ rd:
+ long: Dipòsit recurrent
+ short: RD
+ resp:
+ long: Pla registrat d'estalvi per a l'educació
+ short: RESP
+ retirement:
+ long: Compte de jubilació
+ short: Jubilació
+ riester:
+ long: Riester-Rente
+ short: Riester
+ roth_401k:
+ long: Roth 401(k)
+ short: Roth 401(k)
+ roth_ira:
+ long: Roth IRA
+ short: Roth IRA
+ rrif:
+ long: Fons registrat d'ingressos de jubilació
+ short: RRIF
+ rrsp:
+ long: Pla registrat d'estalvi per a la jubilació
+ short: RRSP
+ scss:
+ long: Pla d'estalvi per a gent gran
+ short: SCSS
+ sdl:
+ long: Préstecs de desenvolupament estatal (SDL)
+ short: SDL
+ sep_ira:
+ long: SEP IRA
+ short: SEP IRA
+ sgb:
+ long: Bo sobirà d'or
+ short: SGB
+ simple_ira:
+ long: SIMPLE IRA
+ short: SIMPLE IRA
+ sipp:
+ long: Pensió personal autoinvertida
+ short: SIPP
+ smsf:
+ long: Fons de superannuació autogestionat
+ short: SMSF
+ ssy:
+ long: Sukanya Samriddhi Yojana
+ short: SSY
+ super:
+ long: Superannuació
+ short: Super
+ tax_free_bond:
+ long: Bo exempt d'impostos
+ short: Bo exempt
+ tfsa:
+ long: Compte d'estalvi lliure d'impostos
+ short: TFSA
+ trust:
+ long: Fideïcomís
+ short: Fideïcomís
+ tsp:
+ long: Thrift Savings Plan
+ short: TSP
+ ugma:
+ long: Compte custodi UGMA
+ short: UGMA
+ utma:
+ long: Compte custodi UTMA
+ short: UTMA
+ workplace_pension_uk:
+ long: Pensió laboral
+ short: Pensió
value_tooltip:
cash: Efectiu
holdings: Posicions
- total: Saldo del portafolis
- total_value_tooltip: El saldo total del portafolis és la suma de l'efectiu de
+ total: Saldo de la cartera
+ total_value_tooltip: El saldo total de la cartera és la suma de l'efectiu del
broker (disponible per operar) i el valor de mercat actual de les teves posicions.
diff --git a/config/locales/views/investments/hu.yml b/config/locales/views/investments/hu.yml
index 90b4c0e63..7bca28675 100644
--- a/config/locales/views/investments/hu.yml
+++ b/config/locales/views/investments/hu.yml
@@ -107,6 +107,75 @@ hu:
angel:
short: Angyal
long: Angyal-befektetés
+ nps:
+ short: NPS
+ long: Nemzeti Nyugdíjrendszer
+ apy:
+ short: APY
+ long: Atal Pension Yojana
+ indian_stocks:
+ short: Indiai részvények
+ long: Indiai részvények (Demat)
+ indian_equity:
+ short: Indiai tőke
+ long: Indiai tőke
+ indian_etf:
+ short: Indiai ETF
+ long: Indiai ETF
+ life_insurance:
+ short: Életbiztosítás
+ long: Életbiztosítás
+ ppf:
+ short: PPF
+ long: Közszféra megtakarítási alap
+ ssy:
+ short: SSY
+ long: Sukanya Samriddhi Yojana
+ nsc:
+ short: NSC
+ long: Nemzeti megtakarítási igazolás
+ scss:
+ short: SCSS
+ long: Idősek megtakarítási rendszere
+ fd:
+ short: FD
+ long: Lekötött betét
+ rd:
+ short: RD
+ long: Ismétlődő betét
+ pomis:
+ short: POMIS
+ long: Postai havi jövedelmi program
+ kvp:
+ short: KVP
+ long: Kisan Vikas Patra
+ gold_etf:
+ short: Arany ETF
+ long: Arany ETF
+ gold_mf:
+ short: Arany befektetési alap
+ long: Arany befektetési alap
+ sgb:
+ short: SGB
+ long: Szuverén aranykötvény
+ g_sec:
+ short: G-Sec
+ long: Állampapírok
+ sdl:
+ short: SDL
+ long: Állami fejlesztési kötvények
+ corporate_bond:
+ short: Vállalati kötvény
+ long: Vállalati kötvény
+ infrastructure_bond:
+ short: Infrastrukturális kötvény
+ long: Infrastrukturális kötvény
+ tax_free_bond:
+ short: Adómentes kötvény
+ long: Adómentes kötvény
+ gold:
+ short: Arany
+ long: Arany (fizikai vagy digitális)
trust:
short: Bizalmi alap
long: Bizalmi alap
diff --git a/config/locales/views/invitation_mailer/ca.yml b/config/locales/views/invitation_mailer/ca.yml
index da59026b1..31f2f8295 100644
--- a/config/locales/views/invitation_mailer/ca.yml
+++ b/config/locales/views/invitation_mailer/ca.yml
@@ -3,6 +3,6 @@ ca:
invitation_mailer:
invite_email:
accept_button: Accepta la invitació
- body: "%{inviter} t'ha convidat a unir-te a la família %{family} a %{product_name}!"
+ body: "%{inviter} t'ha convidat a unir-te a %{family} (%{moniker}) a %{product_name}!"
expiry_notice: Aquesta invitació caducarà en %{days} dies
greeting: Benvingut/da a %{product_name}!
diff --git a/config/locales/views/invitations/ca.yml b/config/locales/views/invitations/ca.yml
index e065d17d4..5c11e701b 100644
--- a/config/locales/views/invitations/ca.yml
+++ b/config/locales/views/invitations/ca.yml
@@ -1,7 +1,14 @@
---
ca:
invitations:
+ accept_choice:
+ create_account: Crea un compte nou
+ joined_household: T'has unit a la llar.
+ message: "%{inviter} t'ha convidat a unir-te com a %{role}."
+ sign_in_existing: Ja tinc un compte
+ title: Uneix-te a %{family}
create:
+ existing_user_added: S'ha afegit l'usuari a la teva llar.
failure: No s'ha pogut enviar la invitació
success: Invitació enviada correctament
destroy:
@@ -12,8 +19,9 @@ ca:
email_label: Correu electrònic
email_placeholder: Introdueix el correu electrònic
role_admin: Administrador/a
+ role_guest: Convidat/da
role_label: Rol
role_member: Membre
- submit: Envia invitació
- subtitle: Envia una invitació per unir-te al teu compte familiar a %{product_name}
+ submit: Envia la invitació
+ subtitle: Envia una invitació perquè s'uneixi al teu compte de %{product_name}
title: Convida algú
diff --git a/config/locales/views/invite_codes/ca.yml b/config/locales/views/invite_codes/ca.yml
index e9485d61d..26633cd4f 100644
--- a/config/locales/views/invite_codes/ca.yml
+++ b/config/locales/views/invite_codes/ca.yml
@@ -1,6 +1,10 @@
---
ca:
invite_codes:
+ create:
+ success: Codi generat
+ destroy:
+ success: Codi eliminat
index:
invite_code_description: Genera un nou codi per veure'l aquí. Els codis generats
que s'hagin utilitzat ja no es mostraran.
diff --git a/config/locales/views/invite_codes/hu.yml b/config/locales/views/invite_codes/hu.yml
index 6f276d2a9..3474d5bd9 100644
--- a/config/locales/views/invite_codes/hu.yml
+++ b/config/locales/views/invite_codes/hu.yml
@@ -1,6 +1,10 @@
---
hu:
invite_codes:
+ create:
+ success: "Kód létrehozva"
+ destroy:
+ success: "Kód törölve"
index:
invite_code_description: Generálj új kódot, hogy az megjelenjen itt. A már felhasznált generált kódok nem jelennek meg tovább.
no_invite_codes: Nincs megjeleníthető kód
diff --git a/config/locales/views/kraken_items/ca.yml b/config/locales/views/kraken_items/ca.yml
new file mode 100644
index 000000000..1bbe2c645
--- /dev/null
+++ b/config/locales/views/kraken_items/ca.yml
@@ -0,0 +1,95 @@
+---
+ca:
+ kraken_item:
+ syncer:
+ accounts_need_setup:
+ one: "%{count} compte necessita configuració"
+ other: "%{count} comptes necessiten configuració"
+ calculating_balances: Calculant saldos...
+ checking_configuration: Comprovant la configuració del compte...
+ checking_credentials: Comprovant credencials...
+ credentials_invalid: Credencials de l'API de Kraken no vàlides. Revisa la teva
+ clau API i el secret.
+ importing_accounts: Important comptes des de Kraken...
+ processing_accounts: Processant dades del compte...
+ kraken_items:
+ complete_account_setup:
+ no_accounts: No hi ha comptes per importar
+ none_selected: No s'ha seleccionat cap compte
+ success:
+ one: S'ha importat %{count} compte
+ other: S'han importat %{count} comptes
+ create:
+ default_name: Kraken
+ success: S'ha connectat correctament a Kraken. El teu compte de l'exchange s'està
+ sincronitzant.
+ destroy:
+ success: S'ha programat la connexió Kraken per a la seva eliminació.
+ kraken_item:
+ delete: Elimina
+ deletion_in_progress: Eliminant...
+ import_accounts_menu: Importa compte
+ no_accounts_message: El teu compte de l'exchange Kraken apareixerà aquí després
+ de sincronitzar.
+ no_accounts_title: No s'han trobat comptes
+ provider_name: Kraken
+ reconnect: Les credencials necessiten actualització
+ setup_action: Importa compte
+ setup_description: Importa aquesta connexió Kraken com a compte d'exchange de
+ cripto.
+ setup_needed: Compte a punt per importar
+ stale_rate_warning: El saldo és aproximat perquè el tipus de canvi exacte per
+ a %{date} no estava disponible. S'actualitzarà a la propera sincronització.
+ status: Darrera sincronització fa %{timestamp}
+ status_never: Mai sincronitzat
+ status_with_summary: Darrera sincronització fa %{timestamp} - %{summary}
+ sync_status:
+ all_synced:
+ one: "%{count} compte sincronitzat"
+ other: "%{count} comptes sincronitzats"
+ no_accounts: No s'han trobat comptes
+ partial_sync: "%{linked_count} sincronitzats, %{unlinked_count} necessiten
+ configuració"
+ syncing: Sincronitzant...
+ link_accounts:
+ select_connection: Tria una connexió Kraken abans d'enllaçar comptes.
+ link_existing_account:
+ errors:
+ invalid_kraken_account: Compte Kraken no vàlid
+ kraken_account_already_linked: Aquest compte Kraken ja està enllaçat
+ only_manual: Només els comptes manuals d'exchange de cripto sense un enllaç
+ de proveïdor existent es poden enllaçar a Kraken
+ select_connection: Tria una connexió Kraken abans d'enllaçar comptes.
+ success: S'ha enllaçat correctament al compte Kraken
+ provider_connection:
+ default_description: Enllaça amb un compte de l'exchange Kraken
+ default_name: Kraken
+ description: Enllaça amb %{name}
+ name: Kraken - %{name}
+ select_accounts:
+ no_credentials_configured: Afegeix les credencials de l'API de Kraken abans
+ de configurar els comptes.
+ select_connection: Tria una connexió Kraken a la configuració del proveïdor.
+ select_existing_account:
+ cancel: Cancel·la
+ check_provider_health: Comprova que les teves credencials de l'API de Kraken
+ siguin vàlides.
+ link: Enllaça
+ no_accounts_found: No s'han trobat comptes Kraken.
+ title: Enllaça compte Kraken
+ wait_for_sync: Espera que Kraken acabi la sincronització.
+ setup_accounts:
+ accounts_count:
+ one: "%{count} compte disponible"
+ other: "%{count} comptes disponibles"
+ cancel: Cancel·la
+ creating: Important...
+ import_selected: Importa els seleccionats
+ instructions: Kraken importa un compte d'exchange de cripto combinat per a aquesta
+ connexió, només amb posicions i execucions d'operacions al comptat.
+ no_accounts: Tots els comptes Kraken s'han importat.
+ select_all: Selecciona-ho tot
+ subtitle: Selecciona el compte de l'exchange per fer-ne el seguiment
+ title: Importa compte Kraken
+ update:
+ success: La connexió Kraken s'ha actualitzat correctament.
diff --git a/config/locales/views/kraken_items/hu.yml b/config/locales/views/kraken_items/hu.yml
new file mode 100644
index 000000000..be4ef5d0f
--- /dev/null
+++ b/config/locales/views/kraken_items/hu.yml
@@ -0,0 +1,85 @@
+---
+hu:
+ kraken_items:
+ provider_connection:
+ default_name: Kraken
+ default_description: Kapcsolódás Kraken tőzsdei számlához
+ name: "Kraken - %{name}"
+ description: "Kapcsolódás ehhez: %{name}"
+ create:
+ default_name: Kraken
+ success: Sikeresen csatlakoztatva a Krakenhez. A tőzsdei számlád szinkronizálása folyamatban van.
+ update:
+ success: Kraken kapcsolat sikeresen frissítve.
+ destroy:
+ success: Kraken kapcsolat törlése ütemezve.
+ select_accounts:
+ select_connection: Válassz Kraken kapcsolatot a Szolgáltatói beállításokban.
+ no_credentials_configured: Add meg a Kraken API hitelesítő adatokat a számlák beállítása előtt.
+ link_accounts:
+ select_connection: Válassz Kraken kapcsolatot a számlák összekapcsolása előtt.
+ select_existing_account:
+ title: Kraken számla összekapcsolása
+ no_accounts_found: Nem találhatók Kraken számlák.
+ wait_for_sync: Várd meg, amíg a Kraken befejezi a szinkronizálást.
+ check_provider_health: Ellenőrizd, hogy a Kraken API hitelesítő adataid érvényesek-e.
+ link: Összekapcsolás
+ cancel: Mégse
+ link_existing_account:
+ success: Sikeresen összekapcsolva Kraken számlával
+ select_connection: Válassz Kraken kapcsolatot a számlák összekapcsolása előtt.
+ errors:
+ only_manual: Csak olyan manuális kriptopiaci számlák kapcsolhatók a Krakenhez, amelyekhez még nincs meglévő szolgáltatói kapcsolat
+ invalid_kraken_account: Érvénytelen Kraken számla
+ kraken_account_already_linked: Ez a Kraken számla már össze van kapcsolva
+ setup_accounts:
+ title: Kraken számla importálása
+ subtitle: Válaszd ki a nyomon követendő tőzsdei számlát
+ instructions: A Kraken egy kombinált kriptotőzsdei számlát importál ehhez a kapcsolathoz, csak portfólióelemekkel és azonnali ügyletteljesítésekkel.
+ no_accounts: Minden Kraken számla importálva lett.
+ accounts_count:
+ one: "%{count} elérhető számla"
+ other: "%{count} elérhető számla"
+ select_all: Összes kijelölése
+ import_selected: Kijelöltek importálása
+ cancel: Mégse
+ creating: Importálás...
+ complete_account_setup:
+ success:
+ one: "%{count} számla importálva"
+ other: "%{count} számla importálva"
+ none_selected: Nincs kijelölt számla
+ no_accounts: Nincs importálható számla
+ kraken_item:
+ provider_name: Kraken
+ syncing: Szinkronizálás...
+ reconnect: A hitelesítő adatok frissítést igényelnek
+ deletion_in_progress: Törlés folyamatban...
+ sync_status:
+ no_accounts: Nem találhatók számlák
+ all_synced:
+ one: "%{count} számla szinkronizálva"
+ other: "%{count} számla szinkronizálva"
+ partial_sync: "%{linked_count} szinkronizálva, %{unlinked_count} beállítást igényel"
+ status: "Utolsó szinkronizálás %{timestamp} ezelőtt"
+ status_with_summary: "Utolsó szinkronizálás %{timestamp} ezelőtt - %{summary}"
+ status_never: Még nem szinkronizált
+ delete: Törlés
+ no_accounts_title: Nem találhatók számlák
+ no_accounts_message: A Kraken tőzsdei számlád szinkronizálás után jelenik meg itt.
+ setup_needed: Számla importálásra kész
+ setup_description: Importáld ezt a Kraken kapcsolatot kriptotőzsdei számlaként.
+ setup_action: Számla importálása
+ import_accounts_menu: Számla importálása
+ stale_rate_warning: "Az egyenleg közelítő értékű, mert a(z) %{date} pontos árfolyama nem volt elérhető. A következő szinkronizáláskor frissül."
+ kraken_item:
+ syncer:
+ checking_credentials: Hitelesítő adatok ellenőrzése...
+ credentials_invalid: Érvénytelen Kraken API hitelesítő adatok. Kérlek ellenőrizd az API-kulcsodat és a titkos kulcsodat.
+ importing_accounts: Számlák importálása a Krakenből...
+ checking_configuration: Számlakonfiguráció ellenőrzése...
+ accounts_need_setup:
+ one: "%{count} számla beállítást igényel"
+ other: "%{count} számla beállítást igényel"
+ processing_accounts: Számlaadat-feldolgozás...
+ calculating_balances: Egyenlegek kiszámítása...
diff --git a/config/locales/views/layout/ca.yml b/config/locales/views/layout/ca.yml
index d2981ad51..f7bf5a2b4 100644
--- a/config/locales/views/layout/ca.yml
+++ b/config/locales/views/layout/ca.yml
@@ -2,24 +2,28 @@
ca:
layouts:
application:
- privacy_mode: Alternar mode de privadesa
- skip_to_main: Saltar al contingut principal
nav:
assistant: Assistent
budgets: Pressupostos
home: Inici
reports: Informes
transactions: Transaccions
+ privacy_mode: Commuta el mode de privadesa
+ skip_to_main: Salta al contingut principal
auth:
existing_account: Ja tens un compte?
- no_account: Nou a %{product_name}?
+ no_account: Ets nou a %{product_name}?
sign_in: Inicia sessió
sign_up: Crea un compte
shared:
+ confirm_dialog:
+ are_you_sure: Segur que vols continuar?
+ cannot_be_undone: Aquesta acció no es pot desfer.
+ confirm: Confirma
footer:
- privacy_policy: Política de privacitat
- terms_of_service: Termes del servei
+ privacy_policy: Política de privadesa
+ terms_of_service: Condicions del servei
trial:
- open_demo: Demo oberta
+ contribute: Contribueix
data_deleted_in_days: Les dades s'eliminaran en %{days} dies
- contribute: Contribuir
\ No newline at end of file
+ open_demo: Demostració oberta
diff --git a/config/locales/views/layout/hu.yml b/config/locales/views/layout/hu.yml
index 7a0d252b4..299aaac90 100644
--- a/config/locales/views/layout/hu.yml
+++ b/config/locales/views/layout/hu.yml
@@ -19,6 +19,10 @@ hu:
footer:
privacy_policy: Adatvédelmi irányelvek
terms_of_service: Felhasználási feltételek
+ confirm_dialog:
+ are_you_sure: Biztosan?
+ cannot_be_undone: Ez a művelet nem vonható vissza.
+ confirm: Megerősítés
trial:
open_demo: Demo megnyitása
data_deleted_in_days: Az adatok törlődnek %{days} nap múlva
diff --git a/config/locales/views/loans/ca.yml b/config/locales/views/loans/ca.yml
index 74a8f1a52..c22103a32 100644
--- a/config/locales/views/loans/ca.yml
+++ b/config/locales/views/loans/ca.yml
@@ -7,7 +7,10 @@ ca:
initial_balance: Saldo inicial del préstec
interest_rate: Tipus d'interès
interest_rate_placeholder: '5.25'
- rate_type: Tipus d'interès
+ none: Cap
+ rate_type: Modalitat del tipus
+ subtype_none: Cap
+ subtype_prompt: Selecciona el tipus de préstec
term_months: Termini (mesos)
term_months_placeholder: '360'
new:
@@ -23,6 +26,7 @@ ca:
unknown: Desconegut
tabs:
overview:
+ edit_loan_details: Edita els detalls del préstec
interest_rate: Tipus d'interès
monthly_payment: Quota mensual
not_applicable: No aplicable
diff --git a/config/locales/views/loans/hu.yml b/config/locales/views/loans/hu.yml
index 79cf3f8e2..3a2141329 100644
--- a/config/locales/views/loans/hu.yml
+++ b/config/locales/views/loans/hu.yml
@@ -10,6 +10,7 @@ hu:
rate_type: Kamat típusa
term_months: Futamidő (hónap)
term_months_placeholder: '360'
+ none: Nincs
subtype_prompt: Válassz hiteltípust
subtype_none: Nincs
new:
@@ -23,3 +24,14 @@ hu:
term: Futamidő
type: Típus
unknown: Ismeretlen
+ tabs:
+ overview:
+ interest_rate: Kamatláb
+ monthly_payment: Havi törlesztőrészlet
+ not_applicable: N/A
+ original_principal: Eredeti tőkeösszeg
+ remaining_principal: Fennmaradó tőkeösszeg
+ term: Futamidő
+ type: Típus
+ unknown: Ismeretlen
+ edit_loan_details: "Hitel adatainak szerkesztése"
diff --git a/config/locales/views/lunchflow_items/ca.yml b/config/locales/views/lunchflow_items/ca.yml
index 525e285ee..0df27fcba 100644
--- a/config/locales/views/lunchflow_items/ca.yml
+++ b/config/locales/views/lunchflow_items/ca.yml
@@ -1,9 +1,22 @@
---
ca:
lunchflow_items:
+ api_error:
+ check_provider_settings: Revisa la configuració del proveïdor
+ common_issues: 'Problemes habituals:'
+ expired_credentials_desc: Genera una nova clau API des de Lunch Flow
+ expired_credentials_label: Credencials caducades
+ invalid_api_key_desc: Revisa la teva clau API a la configuració del proveïdor
+ invalid_api_key_label: Clau API no vàlida
+ network_issue_desc: Comprova la teva connexió a internet
+ network_issue_label: Problema de xarxa
+ service_down_desc: L'API de Lunch Flow pot estar temporalment no disponible
+ service_down_label: Servei caigut
+ title: Error de connexió Lunch Flow
+ unable_to_connect: No s'ha pogut connectar a Lunch Flow
complete_account_setup:
all_skipped: S'han omès tots els comptes. No s'ha creat cap compte.
- creation_failed: "No s'han pogut crear els comptes: %{error}"
+ creation_failed: 'No s''han pogut crear els comptes: %{error}'
no_accounts: No hi ha comptes per configurar.
success: S'han creat correctament %{count} compte(s).
create:
@@ -15,80 +28,88 @@ ca:
link_accounts:
all_already_linked:
one: El compte seleccionat (%{names}) ja està enllaçat
- other: "Tots els %{count} comptes seleccionats ja estan enllaçats: %{names}"
- api_error: "Error d'API: %{message}"
+ other: 'Tots els %{count} comptes seleccionats ja estan enllaçats: %{names}'
+ api_error: 'Error de l''API: %{message}'
invalid_account_names:
one: No es pot enllaçar un compte sense nom
other: No es poden enllaçar %{count} comptes sense nom
link_failed: No s'han pogut enllaçar els comptes
- no_accounts_selected: Si us plau, selecciona almenys un compte
- no_api_key: No hi ha clau API
+ no_accounts_selected: Selecciona almenys un compte
+ no_api_key: La clau API de Lunch Flow no està configurada. Configura-la a la
+ configuració.
+ no_credentials_configured: Configura primer la teva clau API de Lunch Flow a
+ la configuració del proveïdor.
partial_invalid: S'han enllaçat correctament %{created_count} compte(s), %{already_linked_count}
ja estaven enllaçats, %{invalid_count} compte(s) tenien noms no vàlids
- partial_success: "S'han enllaçat correctament %{created_count} compte(s). %{already_linked_count}
- compte(s) ja estaven enllaçats: %{already_linked_names}"
+ partial_success: 'S''han enllaçat correctament %{created_count} compte(s). %{already_linked_count}
+ compte(s) ja estaven enllaçats: %{already_linked_names}'
success:
one: S'ha enllaçat correctament %{count} compte
other: S'han enllaçat correctament %{count} comptes
link_existing_account:
account_already_linked: Aquest compte ja està enllaçat a un proveïdor
- api_error: "Error d'API: %{message}"
+ api_error: 'Error de l''API: %{message}'
invalid_account_name: No es pot enllaçar un compte sense nom
lunchflow_account_already_linked: Aquest compte de Lunch Flow ja està enllaçat
a un altre compte
lunchflow_account_not_found: No s'ha trobat el compte de Lunch Flow
- missing_parameters: Falten els paràmetres requerits
- no_api_key: No hi ha clau API
+ missing_parameters: Falten paràmetres obligatoris
+ no_api_key: La clau API de Lunch Flow no està configurada. Configura-la a la
+ configuració.
success: S'ha enllaçat correctament %{account_name} amb Lunch Flow
loading:
loading_message: Carregant comptes de Lunch Flow...
loading_title: Carregant
lunchflow_item:
accounts_need_setup: Els comptes necessiten configuració
- delete: Eliminar connexió
- deletion_in_progress: s'està eliminant...
+ delete: Elimina la connexió
+ deletion_in_progress: eliminació en curs...
error: Error
no_accounts_description: Aquesta connexió encara no té comptes enllaçats.
no_accounts_title: No hi ha comptes
- setup_action: Configurar nous comptes
- setup_description: "%{linked} de %{total} comptes enllaçats. Tria els tipus de comptes
- per als teus comptes de Lunch Flow importats recentment."
- setup_needed: Nous comptes preparats per a la configuració
- status: Sincronitzat %{timestamp} fa
+ setup_action: Configura els nous comptes
+ setup_description: "%{linked} de %{total} comptes enllaçats. Tria els tipus
+ de compte per als teus nous comptes Lunch Flow importats."
+ setup_needed: Nous comptes a punt per configurar
+ status: Sincronitzat fa %{timestamp}
status_never: Mai sincronitzat
- status_with_summary: Sincronitzat per última vegada %{timestamp} fa • %{summary}
+ status_with_summary: Darrera sincronització fa %{timestamp} • %{summary}
syncing: Sincronitzant...
total: Total
unlinked: Sense enllaç
select_accounts:
accounts_selected: comptes seleccionats
- api_error: "Error d'API: %{message}"
+ api_error: 'Error de l''API: %{message}'
cancel: Cancel·la
- configure_name_in_lunchflow: No es pot importar - si us plau, configura el nom del compte a
- Lunchflow
- description: Selecciona els comptes que vols enllaçar amb el teu compte de %{product_name}.
+ configure_name_in_lunchflow: No es pot importar — configura el nom del compte
+ a Lunch Flow
+ description: Selecciona els comptes que vols enllaçar al teu compte de %{product_name}.
link_accounts: Enllaça els comptes seleccionats
- no_accounts_found: No s'han trobat comptes. Si us plau, comprova la configuració de la teva clau API.
- no_api_key: La clau API de Lunch Flow no està configurada. Configura-la a Configuració.
- no_credentials_configured: Primer, configura la teva clau API de Lunch Flow a
- Configuració de proveïdors.
+ no_accounts_found: No s'han trobat comptes. Comprova la configuració de la teva
+ clau API.
+ no_api_key: La clau API de Lunch Flow no està configurada. Configura-la a la
+ configuració.
+ no_credentials_configured: Configura primer la teva clau API de Lunch Flow a
+ la configuració del proveïdor.
no_name_placeholder: "(Sense nom)"
title: Selecciona comptes de Lunch Flow
select_existing_account:
account_already_linked: Aquest compte ja està enllaçat a un proveïdor
all_accounts_already_linked: Tots els comptes de Lunch Flow ja estan enllaçats
- api_error: "Error d'API: %{message}"
+ api_error: 'Error de l''API: %{message}'
cancel: Cancel·la
- configure_name_in_lunchflow: No es pot importar - si us plau, configura el nom del compte a
- Lunchflow
- description: Selecciona un compte de Lunch Flow per enllaçar-lo amb aquest compte. Les transaccions
- se sincronitzaran i deduplicaran automàticament.
+ configure_name_in_lunchflow: No es pot importar — configura el nom del compte
+ a Lunch Flow
+ description: Selecciona un compte de Lunch Flow per enllaçar-lo amb aquest compte.
+ Les transaccions es sincronitzaran i deduplicaran automàticament.
link_account: Enllaça compte
no_account_specified: No s'ha especificat cap compte
- no_accounts_found: No s'han trobat comptes de Lunch Flow. Si us plau, comprova la configuració de la teva clau API.
- no_api_key: La clau API de Lunch Flow no està configurada. Configura-la a Configuració.
- no_credentials_configured: Primer, configura la teva clau API de Lunch Flow a
- Configuració de proveïdors.
+ no_accounts_found: No s'han trobat comptes de Lunch Flow. Comprova la configuració
+ de la teva clau API.
+ no_api_key: La clau API de Lunch Flow no està configurada. Configura-la a la
+ configuració.
+ no_credentials_configured: Configura primer la teva clau API de Lunch Flow a
+ la configuració del proveïdor.
no_name_placeholder: "(Sense nom)"
title: Enllaça %{account_name} amb Lunch Flow
setup_accounts:
@@ -97,62 +118,75 @@ ca:
credit_card: Targeta de crèdit
depository: Compte corrent o d'estalvis
investment: Compte d'inversió
- loan: Prèstec o hipoteca
- other_asset: Alt actiu
+ loan: Préstec o hipoteca
+ other_asset: Altre actiu
skip: Omet aquest compte
all_accounts_linked: Tots els teus comptes de Lunch Flow ja s'han configurat.
- api_error: "Error d'API: %{message}"
+ api_error: 'Error de l''API: %{message}'
balance: Saldo
cancel: Cancel·la
- choose_account_type: 'Tria el tipus de compte correcte per a cada compte de Lunch Flow:'
- create_accounts: Crear comptes
+ choose_account_type: 'Tria el tipus de compte correcte per a cada compte de
+ Lunch Flow:'
+ create_accounts: Crea comptes
creating_accounts: Creant comptes...
fetch_failed: No s'han pogut obtenir els comptes
historical_data_range: 'Rang de dades històriques:'
no_accounts_to_setup: No hi ha comptes per configurar
- no_api_key: La clau API de Lunch Flow no està configurada. Si us plau, comprova la configuració
+ no_api_key: La clau API de Lunch Flow no està configurada. Revisa la configuració
de la connexió.
- subtitle: Tria els tipus de comptes correctes per als teus comptes importats
+ subtitle: Tria els tipus de compte correctes per als teus comptes importats
subtype_labels:
- credit_card: Targeta de crèdit
+ credit_card: ''
depository: 'Subtipus de compte:'
- investment: "Tipus d'inversió:"
- loan: "Tipus de préstec:"
- other_asset: Alt actiu
+ investment: 'Tipus d''inversió:'
+ loan: 'Tipus de préstec:'
+ other_asset: ''
subtype_messages:
- credit_card: Les targetes de crèdit es configuraran automàticament com a comptes de targeta de crèdit.
- other_asset: No calen opcions addicionals per als Altres Actius.
+ credit_card: Les targetes de crèdit es configuraran automàticament com a comptes
+ de targeta de crèdit.
+ other_asset: No calen opcions addicionals per a altres actius.
subtypes:
depository:
- cd: Certificat de Dipòsit
+ cd: Certificat de dipòsit
checking: Compte corrent
- hsa: Compte d'estalvis de salut
- money_market: Fons mercant
- savings: Compte d'estalvis
+ hsa: Compte d'estalvi per a salut
+ money_market: Mercat monetari
+ savings: Estalvis
investment:
401k: 401(k)
403b: 403(b)
529_plan: Pla 529
- angel: Àngel
+ angel: Inversió àngel
brokerage: Corredoria
- hsa: Compte d'estalvis de salut
+ hsa: Compte d'estalvi per a salut
ira: IRA tradicional
- mutual_fund: Fons comú d'inversió
- pension: Jubilació
+ mutual_fund: Fons d'inversió
+ pension: Pensió
retirement: Jubilació
- roth_401k: 401(k) Roth
+ roth_401k: Roth 401(k)
roth_ira: IRA Roth
- tsp: Pla d'estalvis de retirada (TSP)
+ tsp: Pla d'estalvis de jubilació (TSP)
loan:
- auto: Prèstec de vehicle
+ auto: Préstec d'automòbil
mortgage: Hipoteca
- other: Alt préstec
- student: Prèstec estudiantil
+ other: Altre préstec
+ student: Préstec d'estudis
sync_start_date_help: Selecciona fins on vols sincronitzar l'historial de transaccions.
- Està disponible un màxim de 3 anys d'historial.
- sync_start_date_label: 'Començar a sincronitzar transaccions des de:'
+ Hi ha un màxim de 3 anys d'historial disponible.
+ sync_start_date_label: 'Comença a sincronitzar transaccions des de:'
title: Configura els teus comptes de Lunch Flow
+ setup_required:
+ api_key_description: Abans d'enllaçar comptes Lunch Flow, has de configurar
+ la teva clau API de Lunch Flow.
+ api_key_not_configured: Clau API no configurada
+ go_to_provider_settings: Ves a la configuració del proveïdor
+ setup_step_1_html: Ves a Configuració → Proveïdors
+ setup_step_2_html: Localitza la secció Lunch Flow
+ setup_step_3: Introdueix la teva clau API de Lunch Flow
+ setup_step_4: Torna aquí per enllaçar els teus comptes
+ setup_steps_title: 'Passos de configuració:'
+ title: Cal configurar Lunch Flow
sync:
- success: S'ha iniciat la sincronització
+ success: Sincronització iniciada
update:
success: La connexió amb Lunch Flow s'ha actualitzat
diff --git a/config/locales/views/lunchflow_items/hu.yml b/config/locales/views/lunchflow_items/hu.yml
index 8527a8dc5..ebbc76dc2 100644
--- a/config/locales/views/lunchflow_items/hu.yml
+++ b/config/locales/views/lunchflow_items/hu.yml
@@ -1,6 +1,29 @@
---
hu:
lunchflow_items:
+ api_error:
+ title: Lunch Flow kapcsolódási hiba
+ unable_to_connect: Nem sikerült csatlakozni a Lunch Flow-hoz
+ common_issues: "Gyakori problémák:"
+ invalid_api_key_label: Érvénytelen API-kulcs
+ invalid_api_key_desc: Ellenőrizd az API-kulcsodat a Szolgáltatói beállításokban
+ expired_credentials_label: Lejárt hitelesítő adatok
+ expired_credentials_desc: Generálj új API-kulcsot a Lunch Flow-ban
+ network_issue_label: Hálózati probléma
+ network_issue_desc: Ellenőrizd az internetkapcsolatodat
+ service_down_label: Szolgáltatás leállása
+ service_down_desc: A Lunch Flow API ideiglenesen nem érhető el
+ check_provider_settings: Szolgáltatói beállítások ellenőrzése
+ setup_required:
+ title: Lunch Flow beállítás szükséges
+ api_key_not_configured: Az API-kulcs nincs beállítva
+ api_key_description: A Lunch Flow számlák összekapcsolása előtt be kell állítanod a Lunch Flow API-kulcsodat.
+ setup_steps_title: "Beállítási lépések:"
+ setup_step_1_html: "Menj a Beállítások → Szolgáltatók menübe"
+ setup_step_2_html: "Keresd meg a Lunch Flow részt"
+ setup_step_3: Add meg a Lunch Flow API-kulcsodat
+ setup_step_4: Térj vissza ide a számlák összekapcsolásához
+ go_to_provider_settings: Szolgáltatói beállítások megnyitása
create:
success: Lunch Flow kapcsolat sikeresen létrehozva
destroy:
@@ -86,7 +109,7 @@ hu:
credit_card: Hitelkártya
investment: Befektetési számla
loan: Hitel vagy jelzálog
- other_asset: Egyéb eszköz
+ other_asset: Egyéb vagyon
subtype_labels:
depository: "Számla altípusa:"
credit_card: ""
@@ -95,7 +118,7 @@ hu:
other_asset: ""
subtype_messages:
credit_card: "A hitelkártyák automatikusan hitelkártya számlákként lesznek beállítva."
- other_asset: "Az egyéb eszközökhöz nincs szükség további beállításokra."
+ other_asset: "Az egyéb vagyonelemekhez nincs szükség további beállításokra."
subtypes:
depository:
checking: Folyószámla
diff --git a/config/locales/views/merchants/ca.yml b/config/locales/views/merchants/ca.yml
index 96de7b12e..5ac3254f1 100644
--- a/config/locales/views/merchants/ca.yml
+++ b/config/locales/views/merchants/ca.yml
@@ -9,20 +9,37 @@ ca:
unlinked_success: El comerç s'ha eliminat de les teves transaccions
edit:
title: Edita el comerç
+ enhance:
+ already_running: La millora ja està en curs. Espera que acabi.
+ success: S'ha iniciat la millora de comerços del proveïdor. Aviat es milloraran
+ els comerços i es fusionaran els duplicats.
+ family_merchant:
+ delete: Elimina
+ edit: Edita
form:
name_placeholder: Nom del comerç
+ website_hint: Introdueix el lloc web del comerç per mostrar-ne automàticament
+ el logotip
+ website_placeholder: Lloc web (p. ex., starbucks.com)
index:
empty: Encara no hi ha comerços
- family_empty: Encara no hi ha comerços familiars
- family_title: Comerços familiars
+ enhance_button: Millora amb IA
+ enhance_info:
+ one: A %{count} comerç del proveïdor li falta informació del lloc web. Millora
+ amb IA per detectar llocs web, mostrar logotips i fusionar comerços duplicats.
+ other: A %{count} comerços del proveïdor els falta informació del lloc web.
+ Millora amb IA per detectar llocs web, mostrar logotips i fusionar comerços
+ duplicats.
+ family_empty: Encara no hi ha comerços
+ family_title: Els teus comerços
merge: Fusiona comerços
new: Nou comerç
- provider_empty: Encara no hi ha comerços del proveïdor vinculats a aquesta família
- provider_info: Aquests comerços es van detectar automàticament mitjançant les teves connexions
- bancàries o IA. Pots editar-los per crear la teva pròpia còpia, o eliminar-los per desvincular-los
- de les teves transaccions.
- provider_read_only: Els comerços del proveïdor se sincronitzen automàticament
- amb les institucions connectades. No es poden editar aquí.
+ provider_empty: Encara no hi ha comerços del proveïdor vinculats
+ provider_info: Aquests comerços es van detectar automàticament mitjançant les
+ teves connexions bancàries o l'IA. Pots editar-los per crear-ne una còpia
+ pròpia, o eliminar-los per desvincular-los de les teves transaccions.
+ provider_read_only: Els comerços del proveïdor se sincronitzen des de les teves
+ institucions connectades. No es poden editar aquí.
provider_title: Comerços del proveïdor
table:
actions: Accions
@@ -30,8 +47,9 @@ ca:
source: Origen
title: Comerços
unlinked_info: Aquests comerços s'han eliminat recentment de les teves transaccions.
- Desapareixeran d'aquesta llista després de 30 dies a menys que s'assignin novament a una transacció.
- unlinked_title: Recently unlinked
+ Desapareixeran d'aquesta llista al cap de 30 dies si no s'assignen novament
+ a una transacció.
+ unlinked_title: Desvinculats recentment
merchant:
confirm_accept: Elimina el comerç
confirm_body: Segur que vols eliminar aquest comerç? Si l'elimines, es desvincularan
@@ -40,29 +58,31 @@ ca:
delete: Elimina el comerç
edit: Edita el comerç
merge:
- description: Select a target merchant and the merchants to merge into it. All
- transactions from merged merchants will be reassigned to the target.
- select_target: Select target merchant...
- sources_hint: Selected merchants will be merged into the target. Family merchants
- will be deleted, provider merchants will be unlinked.
- sources_label: Merchants to merge
- submit: Merge selected
- target_label: Merge into (target)
- title: Merge merchants
+ description: Selecciona un comerç de destinació i els comerços que hi vols fusionar.
+ Totes les transaccions dels comerços fusionats es reassignaran a la destinació.
+ select_target: Selecciona el comerç de destinació...
+ sources_hint: Els comerços seleccionats es fusionaran amb el de destinació.
+ Els comerços de la família s'eliminaran, els del proveïdor es desvincularan.
+ sources_label: Comerços per fusionar
+ submit: Fusiona els seleccionats
+ target_label: Fusiona amb (destinació)
+ title: Fusiona comerços
new:
title: Nou comerç
perform_merge:
- invalid_merchants: Invalid merchants selected
- no_merchants_selected: No merchants selected to merge
- success: Successfully merged %{count} merchants
- target_not_found: Target merchant not found
+ invalid_merchants: Comerços seleccionats no vàlids
+ no_merchants_selected: No s'ha seleccionat cap comerç per fusionar
+ success:
+ one: S'ha fusionat correctament %{count} comerç
+ other: S'han fusionat correctament %{count} comerços
+ target_not_found: No s'ha trobat el comerç de destinació
provider_merchant:
- edit: Edit
- remove: Remove
- remove_confirm_body: Are you sure you want to remove %{name}? This will unlink
- all associated transactions from this merchant but will not delete the merchant
- itself.
- remove_confirm_title: Remove merchant?
+ edit: Edita
+ remove: Elimina
+ remove_confirm_body: Segur que vols eliminar %{name}? Això desvincularà totes
+ les transaccions associades d'aquest comerç, però no eliminarà el comerç en
+ si.
+ remove_confirm_title: Vols eliminar el comerç?
update:
- converted_success: Merchant converted and updated successfully
+ converted_success: Comerç convertit i actualitzat correctament
success: Comerç actualitzat correctament
diff --git a/config/locales/views/merchants/hu.yml b/config/locales/views/merchants/hu.yml
index 7d22880cb..f6979411c 100644
--- a/config/locales/views/merchants/hu.yml
+++ b/config/locales/views/merchants/hu.yml
@@ -34,6 +34,9 @@ hu:
merchant: Kereskedő
actions: Műveletek
source: Forrás
+ family_merchant:
+ edit: Szerkesztés
+ delete: Törlés
merchant:
confirm_accept: Kereskedő törlése
confirm_body: Biztosan törlöd ezt a kereskedőt? A törlés megszünteti az összes kapcsolódó tranzakció hozzárendelését, ami hatással lehet a jelentéseidre.
diff --git a/config/locales/views/mercury_items/ca.yml b/config/locales/views/mercury_items/ca.yml
new file mode 100644
index 000000000..0f8636dd4
--- /dev/null
+++ b/config/locales/views/mercury_items/ca.yml
@@ -0,0 +1,233 @@
+---
+ca:
+ mercury_items:
+ api_error:
+ check_provider_settings: Revisa la configuració del proveïdor
+ common_issues: 'Problemes habituals:'
+ expired_credentials_desc: Genera un nou token API des de Mercury
+ expired_credentials_label: Credencials caducades
+ insufficient_permissions_desc: Assegura't que el teu token té accés només de
+ lectura
+ insufficient_permissions_label: Permisos insuficients
+ invalid_api_token_desc: Revisa el teu token API a la configuració del proveïdor
+ invalid_api_token_label: Token API no vàlid
+ network_issue_desc: Comprova la teva connexió a internet
+ network_issue_label: Problema de xarxa
+ service_down_desc: L'API de Mercury pot estar temporalment no disponible
+ service_down_label: Servei caigut
+ title: Error de connexió Mercury
+ unable_to_connect: No s'ha pogut connectar a Mercury
+ complete_account_setup:
+ all_skipped: S'han omès tots els comptes. No s'ha creat cap compte.
+ creation_failed: 'No s''han pogut crear els comptes: %{error}'
+ no_accounts: No hi ha comptes per configurar.
+ success: S'han creat correctament %{count} compte(s).
+ create:
+ success: La connexió Mercury s'ha creat correctament
+ destroy:
+ success: La connexió Mercury s'ha eliminat
+ index:
+ title: Connexions Mercury
+ link_accounts:
+ all_already_linked:
+ one: El compte seleccionat (%{names}) ja està enllaçat
+ other: 'Tots els %{count} comptes seleccionats ja estan enllaçats: %{names}'
+ api_error: 'Error de l''API: %{message}'
+ invalid_account_names:
+ one: No es pot enllaçar un compte sense nom
+ other: No es poden enllaçar %{count} comptes sense nom
+ link_failed: No s'han pogut enllaçar els comptes
+ no_accounts_selected: Selecciona almenys un compte
+ no_api_token: No s'ha trobat el token API de Mercury. Configura'l a la configuració
+ del proveïdor.
+ partial_invalid: S'han enllaçat correctament %{created_count} compte(s), %{already_linked_count}
+ ja estaven enllaçats, %{invalid_count} compte(s) tenien noms no vàlids
+ partial_success: 'S''han enllaçat correctament %{created_count} compte(s). %{already_linked_count}
+ compte(s) ja estaven enllaçats: %{already_linked_names}'
+ select_connection: Tria una connexió Mercury abans d'enllaçar comptes.
+ success:
+ one: S'ha enllaçat correctament %{count} compte
+ other: S'han enllaçat correctament %{count} comptes
+ link_existing_account:
+ account_already_linked: Aquest compte ja està enllaçat a un proveïdor
+ api_error: 'Error de l''API: %{message}'
+ invalid_account_name: No es pot enllaçar un compte sense nom
+ mercury_account_already_linked: Aquest compte Mercury ja està enllaçat a un
+ altre compte
+ mercury_account_not_found: No s'ha trobat el compte Mercury
+ missing_parameters: Falten paràmetres obligatoris
+ no_api_token: No s'ha trobat el token API de Mercury. Configura'l a la configuració
+ del proveïdor.
+ select_connection: Tria una connexió Mercury abans d'enllaçar comptes.
+ success: S'ha enllaçat correctament %{account_name} amb Mercury
+ loading:
+ loading_message: Carregant comptes Mercury...
+ loading_title: Carregant
+ mercury_item:
+ accounts_need_setup: Els comptes necessiten configuració
+ delete: Elimina la connexió
+ deletion_in_progress: eliminació en curs...
+ error: Error
+ no_accounts_description: Aquesta connexió encara no té comptes enllaçats.
+ no_accounts_title: No hi ha comptes
+ setup_action: Configura els nous comptes
+ setup_description: "%{linked} de %{total} comptes enllaçats. Tria els tipus
+ de compte per als teus nous comptes Mercury importats."
+ setup_needed: Nous comptes a punt per configurar
+ status: Sincronitzat fa %{timestamp}
+ status_never: Mai sincronitzat
+ status_with_summary: Darrera sincronització fa %{timestamp} - %{summary}
+ syncing: Sincronitzant...
+ total: Total
+ unlinked: Sense enllaç
+ mercury_item_selection_error_payload:
+ select_connection: Tria una connexió Mercury abans de carregar comptes.
+ provider_connection:
+ default_description: Connecta't al teu banc a través de Mercury
+ default_name: Mercury
+ description: Connecta amb %{name}
+ name: Mercury - %{name}
+ provider_panel:
+ add_connection: Afegeix connexió Mercury
+ base_url_label: URL base (opcional)
+ base_url_placeholder: https://api.mercury.com/api/v1 (per defecte)
+ connection_name_label: Nom de la connexió
+ connection_name_placeholder: Compte corrent d'empresa
+ default_connection_name: Connexió Mercury
+ disconnect_confirm: Vols desconnectar %{name}?
+ instructions:
+ copy_token_html: Copia el token sencer (incloent el prefix
+ secret-token:) i afegeix-lo com a connexió amb nom a continuació
+ create_token: Crea un nou token API amb accés "només de lectura"
+ open_tokens: Ves a Configuració > Desenvolupador > Tokens API
+ sign_in_html: Visita %{link} i inicia sessió al compte que vols connectar
+ whitelist_ip_html: "Important: afegeix l'adreça IP del teu
+ servidor a la llista blanca del token"
+ keep_token_placeholder: Deixa-ho en blanc per mantenir el token actual
+ sandbox_note_html: Utilitza una connexió amb nom separada per a cada inici de
+ sessió/token API de Mercury que vulguis sincronitzar. Per a proves en sandbox,
+ utilitza https://api-sandbox.mercury.com/api/v1 com a URL base.
+ Mercury requereix llistes blanques d'IP — assegura't d'afegir la teva IP al
+ panell de Mercury.
+ setup_accounts: Configura comptes
+ setup_title: 'Instruccions de configuració:'
+ sync: Sincronitza
+ token_label: Token
+ token_placeholder: Enganxa el token aquí
+ update_connection: Actualitza la connexió
+ render_mercury_item_selection_failure:
+ no_credentials_configured: Primer, configura el teu token API de Mercury a la
+ configuració del proveïdor.
+ select_connection: Tria una connexió Mercury a la configuració del proveïdor.
+ select_accounts:
+ accounts_selected: comptes seleccionats
+ api_error: 'Error de l''API: %{message}'
+ cancel: Cancel·la
+ configure_name_in_mercury: No es pot importar — configura el nom del compte
+ a Mercury
+ description: Selecciona els comptes que vols enllaçar al teu compte de %{product_name}.
+ link_accounts: Enllaça els comptes seleccionats
+ no_accounts_found: No s'han trobat comptes. Comprova la configuració del teu
+ token API.
+ no_api_token: El token API de Mercury no està configurat. Configura'l a la configuració.
+ no_credentials_configured: Primer, configura el teu token API de Mercury a la
+ configuració del proveïdor.
+ no_name_placeholder: "(Sense nom)"
+ select_connection: Tria una connexió Mercury a la configuració del proveïdor.
+ title: Selecciona comptes Mercury
+ select_existing_account:
+ account_already_linked: Aquest compte ja està enllaçat a un proveïdor
+ all_accounts_already_linked: Tots els comptes Mercury ja estan enllaçats
+ api_error: 'Error de l''API: %{message}'
+ cancel: Cancel·la
+ configure_name_in_mercury: No es pot importar — configura el nom del compte
+ a Mercury
+ description: Selecciona un compte Mercury per enllaçar-lo amb aquest compte.
+ Les transaccions es sincronitzaran i deduplicaran automàticament.
+ link_account: Enllaça compte
+ no_account_specified: No s'ha especificat cap compte
+ no_accounts_found: No s'han trobat comptes Mercury. Comprova la configuració
+ del teu token API.
+ no_api_token: El token API de Mercury no està configurat. Configura'l a la configuració.
+ no_credentials_configured: Primer, configura el teu token API de Mercury a la
+ configuració del proveïdor.
+ no_name_placeholder: "(Sense nom)"
+ select_connection: Tria una connexió Mercury a la configuració del proveïdor.
+ title: Enllaça %{account_name} amb Mercury
+ setup_accounts:
+ account_type_label: 'Tipus de compte:'
+ account_types:
+ credit_card: Targeta de crèdit
+ depository: Compte corrent o d'estalvis
+ investment: Compte d'inversió
+ loan: Préstec o hipoteca
+ other_asset: Altre actiu
+ skip: Omet aquest compte
+ all_accounts_linked: Tots els teus comptes Mercury ja s'han configurat.
+ api_error: 'Error de l''API: %{message}'
+ balance: Saldo
+ cancel: Cancel·la
+ choose_account_type: 'Tria el tipus de compte correcte per a cada compte Mercury:'
+ create_accounts: Crea comptes
+ creating_accounts: Creant comptes...
+ fetch_failed: No s'han pogut obtenir els comptes
+ historical_data_range: 'Rang de dades històriques:'
+ no_accounts_to_setup: No hi ha comptes per configurar
+ no_api_token: El token API de Mercury no està configurat. Revisa la configuració
+ de la connexió.
+ subtitle: Tria els tipus de compte correctes per als teus comptes importats
+ subtype_labels:
+ credit_card: ''
+ depository: 'Subtipus de compte:'
+ investment: 'Tipus d''inversió:'
+ loan: 'Tipus de préstec:'
+ other_asset: ''
+ subtype_messages:
+ credit_card: Les targetes de crèdit es configuraran automàticament com a comptes
+ de targeta de crèdit.
+ other_asset: No calen opcions addicionals per a altres actius.
+ subtypes:
+ depository:
+ cd: Certificat de dipòsit
+ checking: Compte corrent
+ hsa: Compte d'estalvi per a salut
+ money_market: Mercat monetari
+ savings: Estalvis
+ investment:
+ 401k: 401(k)
+ 403b: 403(b)
+ 529_plan: Pla 529
+ angel: Inversió àngel
+ brokerage: Corredoria
+ hsa: Compte d'estalvi per a salut
+ ira: IRA tradicional
+ mutual_fund: Fons d'inversió
+ pension: Pensió
+ retirement: Jubilació
+ roth_401k: Roth 401(k)
+ roth_ira: IRA Roth
+ tsp: Pla d'estalvis de jubilació (TSP)
+ loan:
+ auto: Préstec d'automòbil
+ mortgage: Hipoteca
+ other: Altre préstec
+ student: Préstec d'estudis
+ sync_start_date_help: Selecciona fins on vols sincronitzar l'historial de transaccions.
+ Hi ha un màxim de 3 anys d'historial disponible.
+ sync_start_date_label: 'Comença a sincronitzar transaccions des de:'
+ title: Configura els teus comptes Mercury
+ setup_required:
+ api_token_description: Abans d'enllaçar comptes Mercury, has de configurar el
+ teu token API de Mercury.
+ api_token_not_configured: Token API no configurat
+ go_to_provider_settings: Ves a la configuració del proveïdor
+ setup_step_1_html: Ves a Configuració > Proveïdors
+ setup_step_2_html: Localitza la secció Mercury
+ setup_step_3: Introdueix el teu token API de Mercury
+ setup_step_4: Torna aquí per enllaçar els teus comptes
+ setup_steps_title: 'Passos de configuració:'
+ title: Cal configurar Mercury
+ sync:
+ success: Sincronització iniciada
+ update:
+ success: La connexió Mercury s'ha actualitzat
diff --git a/config/locales/views/mercury_items/hu.yml b/config/locales/views/mercury_items/hu.yml
index 8bf7271a7..011e8a4d7 100644
--- a/config/locales/views/mercury_items/hu.yml
+++ b/config/locales/views/mercury_items/hu.yml
@@ -1,6 +1,31 @@
---
hu:
mercury_items:
+ api_error:
+ title: Mercury kapcsolati hiba
+ unable_to_connect: Nem sikerült csatlakozni a Mercury-hoz
+ common_issues: "Gyakori problémák:"
+ invalid_api_token_label: Érvénytelen API token
+ invalid_api_token_desc: Ellenőrizd az API tokenedet a Szolgáltatói beállításokban
+ expired_credentials_label: Lejárt hitelesítő adatok
+ expired_credentials_desc: Generálj új API tokent a Mercury-ban
+ insufficient_permissions_label: Elégtelen jogosultságok
+ insufficient_permissions_desc: Győződj meg róla, hogy a tokened csak olvasási hozzáféréssel rendelkezik
+ network_issue_label: Hálózati hiba
+ network_issue_desc: Ellenőrizd az internetkapcsolatodat
+ service_down_label: Szolgáltatás nem elérhető
+ service_down_desc: A Mercury API átmenetileg nem elérhető
+ check_provider_settings: Szolgáltatói beállítások ellenőrzése
+ setup_required:
+ title: Mercury beállítás szükséges
+ api_token_not_configured: Az API token nincs beállítva
+ api_token_description: Mielőtt Mercury-számlákat kapcsolnál össze, be kell állítanod a Mercury API tokenedet.
+ setup_steps_title: "Beállítási lépések:"
+ setup_step_1_html: "Menj a Beállítások > Szolgáltatók menübe"
+ setup_step_2_html: "Keresd meg a Mercury részt"
+ setup_step_3: Add meg a Mercury API tokenedet
+ setup_step_4: Térj vissza ide a számlák összekapcsolásához
+ go_to_provider_settings: Ugrás a szolgáltatói beállításokhoz
create:
success: Mercury kapcsolat sikeresen létrehozva
destroy:
@@ -121,7 +146,7 @@ hu:
credit_card: Hitelkártya
investment: Befektetési számla
loan: Hitel vagy jelzálog
- other_asset: Egyéb eszköz
+ other_asset: Egyéb vagyon
subtype_labels:
depository: "Számla altípusa:"
credit_card: ""
@@ -130,7 +155,7 @@ hu:
other_asset: ""
subtype_messages:
credit_card: "A hitelkártyák automatikusan hitelkártya számlákként lesznek beállítva."
- other_asset: "Az egyéb eszközökhöz nincs szükség további beállításokra."
+ other_asset: "Az egyéb vagyonelemekhez nincs szükség további beállításokra."
subtypes:
depository:
checking: Folyószámla
@@ -176,3 +201,8 @@ hu:
success: Szinkronizálás elindítva
update:
success: Mercury kapcsolat frissítve
+ mercury_item_selection_error_payload:
+ select_connection: Válassz Mercury kapcsolatot a számlák betöltése előtt.
+ render_mercury_item_selection_failure:
+ select_connection: Válassz Mercury kapcsolatot a Szolgáltatói beállításokban.
+ no_credentials_configured: Kérlek előbb állítsd be a Mercury API tokenedet a Szolgáltatói beállításokban.
diff --git a/config/locales/views/messages/ca.yml b/config/locales/views/messages/ca.yml
new file mode 100644
index 000000000..1eaca20ef
--- /dev/null
+++ b/config/locales/views/messages/ca.yml
@@ -0,0 +1,6 @@
+---
+ca:
+ messages:
+ chat_form:
+ disclaimer: Les respostes de la IA són només informatives. No són consells financers!
+ placeholder: Pregunta el que vulguis ...
diff --git a/config/locales/views/messages/hu.yml b/config/locales/views/messages/hu.yml
new file mode 100644
index 000000000..df1edc25e
--- /dev/null
+++ b/config/locales/views/messages/hu.yml
@@ -0,0 +1,6 @@
+---
+hu:
+ messages:
+ chat_form:
+ placeholder: "Kérdezz bármit..."
+ disclaimer: "Az AI-válaszok csak tájékoztató jellegűek. Nem pénzügyi tanácsadás!"
diff --git a/config/locales/views/mfa/ca.yml b/config/locales/views/mfa/ca.yml
index 18cb4ffe5..e53541c1a 100644
--- a/config/locales/views/mfa/ca.yml
+++ b/config/locales/views/mfa/ca.yml
@@ -13,27 +13,36 @@ ca:
create:
invalid_code: Codi de verificació invàlid. Torna-ho a provar.
disable:
- success: L'autenticació en dos passos s'ha desactivat
+ success: L'autenticació de dos factors s'ha desactivat
new:
code_label: Codi de verificació
code_placeholder: Introdueix el codi de 6 dígits
- description: Millora la seguretat del teu compte activant l'autenticació en
- dos passos
- page_title: Configuració de l'autenticació en dos passos
+ description: Millora la seguretat del teu compte activant l'autenticació de
+ dos factors
+ page_title: Configuració de l'autenticació de dos factors
scan_description: Utilitza una app d'autenticació com Google Authenticator o
1Password per escanejar aquest codi QR
scan_title: 1. Escaneja el codi QR
secret_description: Si no pots escanejar el codi QR, introdueix aquesta clau
manualment a la teva app d'autenticació
secret_title: Codi d'entrada manual
- title: Activa l'autenticació en dos passos
+ title: Activa l'autenticació de dos factors
verify_button: Verifica i activa 2FA
verify_description: Introdueix el codi de 6 dígits de la teva app d'autenticació
verify_title: 2. Introdueix el codi de verificació
verify:
description: Introdueix el codi de la teva app d'autenticació per continuar
- page_title: Verifica l'autenticació en dos passos
- title: Autenticació en dos passos
+ or: o
+ page_title: Verifica l'autenticació de dos factors
+ title: Autenticació de dos factors
verify_button: Verifica
+ webauthn_button: Utilitza una clau d'accés o de seguretat
+ webauthn_unsupported: Aquest navegador no admet claus d'accés ni de seguretat.
verify_code:
invalid_code: Codi d'autenticació invàlid. Torna-ho a provar.
+ verify_webauthn:
+ invalid_credential: No s'ha pogut verificar aquesta clau d'accés o de seguretat.
+ Torna-ho a provar.
+ webauthn_options:
+ unavailable: No hi ha claus d'accés ni de seguretat disponibles per a aquest
+ compte.
diff --git a/config/locales/views/oidc_accounts/ca.yml b/config/locales/views/oidc_accounts/ca.yml
index 06ad64409..568f549a9 100644
--- a/config/locales/views/oidc_accounts/ca.yml
+++ b/config/locales/views/oidc_accounts/ca.yml
@@ -1,33 +1,49 @@
---
ca:
oidc_accounts:
+ create_link:
+ no_pending_oidc: No s'ha trobat cap autenticació OIDC pendent
+ create_user:
+ account_created: Benvingut/da! S'ha creat el teu compte.
+ account_creation_disabled: La creació de comptes SSO està desactivada. Contacta
+ amb un administrador.
+ no_pending_oidc: No s'ha trobat cap autenticació OIDC pendent
link:
- title_link: Enllaçar compte OIDC
- title_create: Crear compte
- verify_heading: Verificar la vostra identitat
- verify_description_html: "Per enllaçar el vostre compte %{provider}%{email_suffix}, verifiqueu la vostra identitat introduint la contrasenya."
- email_suffix_html: " (%{email})"
+ account_creation_disabled: La creació de nous comptes mitjançant inici de sessió
+ únic està desactivada. Contacta amb un administrador per crear el teu compte.
+ cancel: Cancel·la
+ create_description_html: No s'ha trobat cap compte amb el correu electrònic
+ %{email}. Fes clic a sota per crear un compte nou amb la
+ teva identitat de %{provider}.
+ create_heading: Crea un compte nou
email_label: Correu electrònic
- email_placeholder: Introduïu el vostre correu electrònic
+ email_placeholder: Introdueix el teu correu electrònic
+ email_suffix_html: " (%{email})"
+ info_email: 'Correu electrònic:'
+ info_name: 'Nom:'
+ no_pending_oidc: No s'ha trobat cap autenticació OIDC pendent
password_label: Contrasenya
- password_placeholder: Introduïu la vostra contrasenya
- verify_hint: Això garanteix que només vós pugueu enllaçar comptes externs al vostre perfil.
- submit_link: Enllaçar compte
- create_heading: Crear compte nou
- create_description_html: "No s'ha trobat cap compte amb el correu electrònic %{email}. Feu clic a baix per crear un compte nou amb la vostra identitat %{provider}."
- info_email: "Correu electrònic:"
- info_name: "Nom:"
- submit_create: Crear compte
- account_creation_disabled: La creació de comptes mitjançant l'inici de sessió únic està desactivada. Contacteu amb un administrador.
- cancel: Cancel·lar
+ password_placeholder: Introdueix la teva contrasenya
+ submit_accept_invitation: Accepta la invitació
+ submit_create: Crea el compte
+ submit_link: Enllaça el compte
+ title_create: Crea un compte
+ title_link: Enllaça el compte OIDC
+ verify_description_html: Per enllaçar el teu compte %{provider}%{email_suffix},
+ verifica la teva identitat introduint la contrasenya.
+ verify_heading: Verifica la teva identitat
+ verify_hint: Així garantim que només tu pots enllaçar comptes externs al teu
+ perfil.
new_user:
- title: Completar el compte
- heading: Crear el compte
- description: Confirmeu les vostres dades per completar la creació del compte amb la vostra identitat %{provider}.
+ cancel: Cancel·la
+ description: Confirma les teves dades per completar la creació del compte amb
+ la teva identitat de %{provider}.
email_label: Correu electrònic (del proveïdor SSO)
first_name_label: Nom
- first_name_placeholder: Introduïu el vostre nom
+ first_name_placeholder: Introdueix el teu nom
+ heading: Crea el teu compte
last_name_label: Cognom
- last_name_placeholder: Introduïu el vostre cognom
- submit: Crear compte
- cancel: Cancel·lar
\ No newline at end of file
+ last_name_placeholder: Introdueix el teu cognom
+ no_pending_oidc: No s'ha trobat cap autenticació OIDC pendent
+ submit: Crea el compte
+ title: Completa el teu compte
diff --git a/config/locales/views/oidc_accounts/hu.yml b/config/locales/views/oidc_accounts/hu.yml
index dd08ba7ed..90c9783f4 100644
--- a/config/locales/views/oidc_accounts/hu.yml
+++ b/config/locales/views/oidc_accounts/hu.yml
@@ -2,6 +2,7 @@
hu:
oidc_accounts:
link:
+ no_pending_oidc: Nem található függőben lévő OIDC-hitelesítés
title_link: OIDC-fiók összekapcsolása
title_create: Fiók létrehozása
verify_heading: Igazold az azonosságodat
@@ -21,7 +22,10 @@ hu:
submit_accept_invitation: Meghívó elfogadása
account_creation_disabled: Az egyszeri bejelentkezésen keresztüli új fiók létrehozása le van tiltva. Kérjük, lépj kapcsolatba egy rendszergazdával a fiókod létrehozásához.
cancel: Mégse
+ create_link:
+ no_pending_oidc: Nem található függőben lévő OIDC-hitelesítés
new_user:
+ no_pending_oidc: Nem található függőben lévő OIDC-hitelesítés
title: Fiókod véglegesítése
heading: Hozd létre a fiókodat
description: Kérjük, erősítsd meg az adataidat a fiókod létrehozásának befejezéséhez a(z) %{provider} azonosítóddal.
@@ -32,3 +36,7 @@ hu:
last_name_placeholder: Add meg a vezetéknevedet
submit: Fiók létrehozása
cancel: Mégse
+ create_user:
+ no_pending_oidc: Nem található függőben lévő OIDC-hitelesítés
+ account_creation_disabled: Az SSO-fiók létrehozása le van tiltva. Kérjük, lépj kapcsolatba egy rendszergazdával.
+ account_created: "Üdvözlünk! A fiókod sikeresen létrejött."
diff --git a/config/locales/views/onboardings/ca.yml b/config/locales/views/onboardings/ca.yml
index 9036a1efe..919d84017 100644
--- a/config/locales/views/onboardings/ca.yml
+++ b/config/locales/views/onboardings/ca.yml
@@ -1,61 +1,71 @@
---
ca:
onboardings:
+ goals:
+ ai_insights: Deixar que la IA m'ajudi a entendre les meves finances
+ budgeting: Gestionar plans financers i pressupostos
+ cashflow: Entendre el flux de caixa i les despeses
+ investments: Fer el seguiment d'inversions
+ optimization: Analitzar i optimitzar comptes
+ partner: Gestionar les finances amb la parella
+ reduce_stress: Reduir l'estrès o l'ansietat financera
+ submit: Següent
+ subtitle: Selecciona un o més objectius que tens amb %{product_name} com a eina
+ de finances personals.
+ title: Què t'ha portat aquí?
+ unified_accounts: Veure tots els meus comptes en un sol lloc
header:
- sign_out: Tancar sessió
- setup: Configuració
- preferences: Preferències
goals: Objectius
+ preferences: Preferències
+ setup: Configuració
+ sign_out: Tanca la sessió
start: Inici
logout:
- sign_out: Tancar sessió
+ sign_out: Tanca la sessió
+ preferences:
+ color_theme: Tema de color
+ currency: Divisa
+ date_format: Format de data
+ example: Compte d'exemple
+ locale: Idioma
+ preview: Previsualitza com es mostren les dades segons les preferències.
+ submit: Finalitza
+ subtitle: Configurem les teves preferències.
+ theme_dark: Fosc
+ theme_light: Clar
+ theme_system: Sistema
+ title: Configura les teves preferències
show:
- title: Configurem el teu compte
- subtitle: Primer de tot, completem el teu perfil.
+ country: País
first_name: Nom
first_name_placeholder: Nom
- last_name: Cognom
- last_name_placeholder: Cognom
+ group_name: Nom del grup
+ group_name_placeholder: Nom del grup
household_name: Nom de la llar
household_name_placeholder: Nom de la llar
- country: País
- submit: Continuar
- preferences:
- title: Configura les teves preferències
- subtitle: Configurem les teves preferències.
- example: Compte d'exemple
- preview: Previsualitza com es mostren les dades segons les preferències.
- color_theme: Tema de colors
- theme_system: Sistema
- theme_light: Clar
- theme_dark: Fosc
- locale: Idioma
- currency: Moneda
- date_format: Format de data
- submit: Completar
- goals:
- title: Què t'ha portat aquí?
- subtitle: Selecciona un o més objectius que tens amb %{product_name} com a eina de finances personals.
- unified_accounts: Veure tots els meus comptes en un sol lloc
- cashflow: Entendre el flux de caixa i les despeses
- budgeting: Gestionar plans financers i pressupostos
- partner: Gestionar finances amb la parella
- investments: Seguir les inversions
- ai_insights: Deixar que la IA m'ajudi a entendre les meves finances
- optimization: Analitzar i optimitzar comptes
- reduce_stress: Reduir l'estrès financer o l'ansietat
- submit: Següent
+ last_name: Cognom
+ last_name_placeholder: Cognom
+ moniker_family: Membres de la família (tu sol/a o amb la teva parella, fills,
+ etc.)
+ moniker_group: Grup de persones (empresa, club, associació, qualsevol altre
+ tipus)
+ moniker_prompt: Faràs servir %{product_name} amb...
+ submit: Continua
+ subtitle: Primer de tot, completem el teu perfil.
+ title: Configurem el teu compte
trial:
- title: Prova Sure durant 45 dies
+ continue_trial: Continua la prova
data_deletion: Les dades s'eliminaran després
- description_html: A partir d'avui pots provar el producte a fons.No podràs desfer aquesta acció
" cancel: Cancel·la title: Segur que vols continuar? - money_field: - label: Import + custom_confirm: + default_body: Aquesta acció no es pot desfer. + default_btn_text: Confirma + default_title: Segur que vols continuar? exchange_rate_tabs: calculate_rate_tab: Calcular la taxa FX convert_tab: Convertir amb la taxa FX destination_amount: Quantitat de destinació exchange_rate: Taxa de canvi - exchange_rate_help: Trieu com introduir la quantitat. + exchange_rate_help: Tria com introduir la quantitat. + family_moniker: + group_plural: Grups + group_singular: Grup + plural: Famílies + singular: Família + money_field: + label: Import + require_admin: Només els administradors poden fer aquesta acció syncing_notice: syncing: S'estan sincronitzant les dades dels comptes... transaction_tabs: diff --git a/config/locales/views/shared/en.yml b/config/locales/views/shared/en.yml index 75d0dff32..6acc96633 100644 --- a/config/locales/views/shared/en.yml +++ b/config/locales/views/shared/en.yml @@ -25,8 +25,10 @@ en: default_body: "This is not reversible." default_btn_text: "Confirm" family_moniker: - singular: Family + group_plural: Groups + group_singular: Group plural: Families + singular: Family trend_change: no_change: "no change" cancel: Cancel diff --git a/config/locales/views/shared/hu.yml b/config/locales/views/shared/hu.yml index d8896b0a4..8f0809e72 100644 --- a/config/locales/views/shared/hu.yml +++ b/config/locales/views/shared/hu.yml @@ -1,5 +1,8 @@ --- hu: + concerns: + self_hostable: + redis_configured: "A Redis most megfelelően van konfigurálva! Mostantól beállíthatod a Sure alkalmazásodat." shared: confirm_modal: accept: Megerősítés @@ -17,5 +20,17 @@ hu: syncing_notice: syncing: Számlák adatainak szinkronizálása... require_admin: "Ezt a műveletet csak adminisztrátorok hajthatják végre" + custom_confirm: + default_title: "Biztosan?" + default_body: "Ez a művelet nem vonható vissza." + default_btn_text: "Megerősítés" + family_moniker: + singular: Háztartás + plural: Háztartások trend_change: no_change: "nincs változás" + cancel: Mégse + transaction_tabs: + expense: Kiadás + income: Bevétel + transfer: Átutalás diff --git a/config/locales/views/simplefin_items/ca.yml b/config/locales/views/simplefin_items/ca.yml index addb9cb72..7e882f3e5 100644 --- a/config/locales/views/simplefin_items/ca.yml +++ b/config/locales/views/simplefin_items/ca.yml @@ -2,39 +2,59 @@ ca: simplefin_items: complete_account_setup: - all_skipped: S'han ignorat tots els comptes. No s'ha creat cap compte. + all_skipped: S'han omès tots els comptes. No s'ha creat cap compte. no_accounts: No hi ha comptes per configurar. stale_accounts_errors: - one: "L'acció del compte obsolet ha fallat: %{count}. Consulta els registres per a més detalls." - other: "Les accions dels comptes obsolets han fallat: %{count}. Consulta els registres per a més detalls." - stale_accounts_processed: 'Comptes obsolets: %{deleted} eliminats, %{moved} moguts.' - success: Els comptes SimpleFIN s'han configurat correctament! Les teves transaccions - i posicions s'estan important en segon pla. + one: "%{count} acció de compte obsolet ha fallat. Consulta els registres per + a més detalls." + other: "%{count} accions de comptes obsolets han fallat. Consulta els registres + per a més detalls." + stale_accounts_processed: 'Comptes obsolets: %{deleted} eliminats, %{moved} + moguts.' + success: + one: S'ha creat correctament %{count} compte SimpleFIN! Les teves transaccions + i posicions s'estan important en segon pla. + other: S'han creat correctament %{count} comptes SimpleFIN! Les teves transaccions + i posicions s'estan important en segon pla. create: errors: blank_token: Introdueix un token de configuració SimpleFIN. create_failed: 'No s''ha pogut connectar: %{message}' - invalid_token: Token de configuració invàlid. Comprova que has copiat el token - complet des de SimpleFIN Bridge. + invalid_token: Token de configuració no vàlid. Comprova que has copiat el + token complet des de SimpleFIN Bridge. token_compromised: El token de configuració pot estar compromès, caducat o ja utilitzat. Crea'n un de nou. - unexpected: S'ha produït un error inesperat. Torna-ho a provar o contacta - amb el suport. + unexpected: S'ha produït un error inesperat. Torna-ho a provar. success: Connexió SimpleFIN afegida correctament! Els teus comptes apareixeran en breu mentre es sincronitzen en segon pla. destroy: success: La connexió SimpleFIN s'eliminarà + dismiss_replacement_suggestion: + dismissed: Suggeriment de substitució descartat edit: + cancel: Cancel·la + connection_needs_update: 'La teva connexió SimpleFIN necessita actualització:' + header_subtitle: Obtén un nou token de configuració per reconnectar el teu compte + SimpleFIN setup_token: help_text: El token ha de ser una cadena llarga que comenci amb lletres i números label: 'Token de configuració SimpleFIN:' placeholder: Enganxa aquí el teu token de configuració SimpleFIN... + step_1_html: Visita SimpleFIN Bridge per crear un nou token de configuració + step_2: Copia el token i enganxa'l a continuació + step_3: Fes clic a "Actualitza" per restaurar l'accés + title: Actualitza la connexió SimpleFIN + update: Actualitza link_existing_account: errors: - invalid_simplefin_account: S'ha seleccionat un compte SimpleFIN invàlid - only_manual: Només es poden enllaçar comptes manuals - success: S'ha enllaçat el compte correctament amb SimpleFIN + different_provider: Aquest compte està enllaçat a un altre proveïdor. Desenllaça'l + primer d'aquell proveïdor i després enllaça'l a SimpleFIN. + invalid_simplefin_account: S'ha seleccionat un compte SimpleFIN no vàlid + only_manual: Només els comptes manuals es poden enllaçar + success: El compte s'ha enllaçat correctament a SimpleFIN new: cancel: Cancel·la connect: Connecta @@ -45,55 +65,117 @@ ca: message: one: "%{count} transacció pendent duplicada conciliada" other: "%{count} transaccions pendents duplicades conciliades" + replacement_prompt: + confirm_body: "“%{account_name}” s'enllaçarà a “%{new_name}”. El teu historial + de transaccions es manté; les transaccions futures vindran de la nova targeta." + confirm_title: Vols tornar a enllaçar a la nova targeta? + description: "“%{account_name}” està enllaçat a “%{old_name}”, que no ha tingut + activitat recent i té saldo zero. Una nova targeta, “%{new_name}”, està activa + a la mateixa entitat. Torna a enllaçar-la per mantenir l'historial intacte." + dismiss_aria: Descarta el suggeriment de substitució + relink: Torna a enllaçar a la nova targeta + title: La teva targeta de %{institution} pot haver estat substituïda select_existing_account: - all_accounts_already_linked: Sembla que ja s'han enllaçat tots els comptes de SimpleFIN. + all_accounts_already_linked: Sembla que tots els comptes SimpleFIN ja estan + enllaçats. cancel: Cancel·la - check_provider_health: Comprova l'estat del proveïdor + check_provider_health: Comprova que la teva connexió SimpleFIN està activa a + Configuració → Proveïdors. currently_linked_to: 'Actualment enllaçat a: %{account_name}' description: Selecciona un compte SimpleFIN per enllaçar-lo al teu compte existent link_account: Enllaça el compte - no_accounts_found: No s'han trobat comptes SimpleFIN per a aquesta família. + no_accounts_found: No s'han trobat comptes SimpleFIN per a %{moniker}. title: Enllaça %{account_name} amb SimpleFIN - unlink_to_move: Per moure un enllaç, primer des-enllaça'l del menú d'accions del compte. - wait_for_sync: Si acabes de connectar o sincronitzar, torna-ho a provar després que la sincronització completi. + unlink_to_move: Per moure un enllaç, primer desenllaça'l del menú d'accions + del compte. + wait_for_sync: Si acabes de connectar o sincronitzar, torna-ho a provar després + que la sincronització acabi. setup_accounts: + account_card: + balance: Saldo + account_type_checking_savings: Corrent o estalvis + account_type_checking_savings_desc: Comptes bancaris habituals + account_type_credit_card: Targeta de crèdit + account_type_credit_card_desc: Comptes de targeta de crèdit + account_type_investment: Inversió + account_type_investment_desc: Corredoria, comptes 401(k), IRA + account_type_label: 'Tipus de compte:' + account_type_loan: Préstec o hipoteca + account_type_loan_desc: Comptes de deute + account_type_other_asset: Altre actiu + account_type_other_asset_desc: Tota la resta + activity: + days_ago: + one: fa 1 dia + other: fa %{count} dies + dormant: Sense activitat en %{days} dies + empty: Encara no s'han importat transaccions + likely_closed: Sense activitat recent i saldo zero — pot ser una targeta tancada + o substituïda + recent: + one: 1 transacció • darrera %{when} + other: "%{count} transaccions • darrera %{when}" + today: avui + yesterday: ahir + cancel: Cancel·la + choose_account_type: 'Tria el tipus de compte correcte per a cada compte SimpleFIN:' + create_accounts: Crea comptes + creating_accounts: Creant comptes... + header_subtitle: Tria els tipus de compte correctes per als teus comptes importats stale_accounts: action_delete: Elimina el compte i totes les transaccions action_move: 'Mou les transaccions a:' action_prompt: Què vols fer? action_skip: Omet ara - description: Aquests comptes existeixen a la teva base de dades però ja no s'ofereixen - per SimpleFIN. Això pot passar quan les configuracions del compte canvien a nivell superior. + description: Aquests comptes existeixen a la teva base de dades, però ja no + els ofereix SimpleFIN. Això pot passar quan la configuració del compte canvia + al proveïdor. title: Comptes ja no disponibles a SimpleFIN transaction_count: one: "%{count} transacció" other: "%{count} transaccions" + title: Configura els teus comptes SimpleFIN + transaction_history_description_html: SimpleFIN normalment proporciona 60-90 + dies d'historial de transaccions, segons el teu banc. Després de + la configuració inicial, les noves transaccions es sincronitzaran automàticament. + La disponibilitat de les dades històriques varia segons l'entitat i el tipus + de compte. + transaction_history_title: 'Historial de transaccions:' simplefin_item: - add_new: Afegeix nova connexió + accounts_skipped_label: 'Omesos: %{count}' + accounts_skipped_tooltip: S'han omès alguns comptes per errors durant la sincronització + add_new: Afegeix una connexió nova confirm_accept: Elimina la connexió confirm_body: Això eliminarà permanentment tots els comptes d'aquest grup i totes les dades associades. confirm_title: Vols eliminar la connexió SimpleFIN? delete: Elimina deletion_in_progress: "(eliminació en curs...)" - duplicate_accounts_skipped: S'han omès alguns comptes perquè eren duplicats — utilitza 'Enllaça - comptes existents' per fusionar-los. + duplicate_accounts_skipped: S'han omès alguns comptes perquè eren duplicats + — utilitza 'Enllaça comptes existents' per fusionar-los. error: S'ha produït un error en sincronitzar les dades + more_accounts_available: + one: "%{count} compte més disponible per configurar" + other: "%{count} comptes més disponibles per configurar" no_accounts_description: Aquesta connexió encara no té cap compte sincronitzat. no_accounts_title: No s'han trobat comptes - reconciled_details_note: "(consulta el resum de la sincronització per a més detalls)" - requires_update: Cal tornar a autenticar - setup_action: Configura nous comptes + rate_limited_ago: Límit de velocitat aplicat (fa %{time}) + rate_limited_recently: Límit de velocitat aplicat recentment + reconciled_details_note: "(consulta el resum de la sincronització per a més + detalls)" + requires_update: Reconnecta + setup_accounts_menu: Configura comptes + setup_action: Configura els nous comptes setup_description: Tria els tipus de compte per als teus nous comptes SimpleFIN importats. - setup_needed: Nous comptes llestos per configurar + setup_needed: Nous comptes a punt per configurar stale_pending_accounts: 'a: %{accounts}' stale_pending_note: "(exclòs dels pressupostos)" status: Darrera sincronització fa %{timestamp} status_never: Mai sincronitzat status_with_summary: Darrera sincronització fa %{timestamp} • %{summary} syncing: Sincronitzant... - update: Actualitza la connexió + update: Actualitza stale_pending_status: message: one: "%{count} transacció pendent anterior a %{days} dies" @@ -101,12 +183,11 @@ ca: update: errors: blank_token: Introdueix un token de configuració SimpleFIN. - invalid_token: Token de configuració invàlid. Comprova que has copiat el token - complet des de SimpleFIN Bridge. + invalid_token: Token de configuració no vàlid. Comprova que has copiat el + token complet des de SimpleFIN Bridge. token_compromised: El token de configuració pot estar compromès, caducat o ja utilitzat. Crea'n un de nou. - unexpected: S'ha produït un error inesperat. Torna-ho a provar o contacta - amb el suport. + unexpected: S'ha produït un error inesperat. Torna-ho a provar. update_failed: 'No s''ha pogut actualitzar la connexió: %{message}' success: Connexió SimpleFIN actualitzada correctament! Els teus comptes s'estan tornant a connectar. diff --git a/config/locales/views/simplefin_items/hu.yml b/config/locales/views/simplefin_items/hu.yml index ff1fad2d3..c2d844bc9 100644 --- a/config/locales/views/simplefin_items/hu.yml +++ b/config/locales/views/simplefin_items/hu.yml @@ -30,7 +30,34 @@ hu: label: "SimpleFIN beállítási token:" placeholder: "Illeszd be ide a SimpleFIN beállítási tokenedet..." help_text: "A token egy betűkkel és számokkal kezdődő hosszú karakterlánc" + title: SimpleFIN kapcsolat frissítése + header_subtitle: Szerezz be egy új beállítási tokent a SimpleFIN-fiókod újracsatlakoztatásához + connection_needs_update: "A SimpleFIN kapcsolatodat frissíteni kell:" + step_1_html: "Látogass el a SimpleFIN Bridge oldalra egy új beállítási token létrehozásához" + step_2: Másold ki a tokent és illeszd be alább + step_3: "Kattints a \"Frissítés\" gombra a hozzáférés visszaállításához" + update: Frissítés + cancel: Mégse setup_accounts: + title: SimpleFIN számlák beállítása + header_subtitle: Válaszd ki az importált számlák helyes típusait + choose_account_type: "Válaszd ki a megfelelő számlatípust minden SimpleFIN számlához:" + account_type_checking_savings: Folyó- vagy megtakarítási + account_type_checking_savings_desc: Normál bankszámlák + account_type_credit_card: Hitelkártya + account_type_credit_card_desc: Hitelkártya számlák + account_type_investment: Befektetési + account_type_investment_desc: "Brókeri, 401(k), IRA számlák" + account_type_loan: Hitel vagy jelzálog + account_type_loan_desc: Adósságszámlák + account_type_other_asset: Egyéb vagyon + account_type_other_asset_desc: Minden más + transaction_history_title: "Tranzakciós előzmények:" + transaction_history_description_html: "A SimpleFIN általában 60-90 nap tranzakciós előzményt biztosít, a banktól függően. A kezdeti beállítás után az új tranzakciók automatikusan szinkronizálódnak. Az előzmények elérhetősége intézményenként és számlatípusonként változó." + account_type_label: "Számla típusa:" + create_accounts: Számlák létrehozása + creating_accounts: Számlák létrehozása... + cancel: Mégse account_card: balance: "Egyenleg" activity: diff --git a/config/locales/views/snaptrade_items/ca.yml b/config/locales/views/snaptrade_items/ca.yml new file mode 100644 index 000000000..d270af3cf --- /dev/null +++ b/config/locales/views/snaptrade_items/ca.yml @@ -0,0 +1,209 @@ +--- +ca: + providers: + snaptrade: + accounts_count: + one: "%{count} compte" + other: "%{count} comptes" + client_id_label: Client ID + client_id_placeholder: Introdueix el teu Client ID de SnapTrade + client_id_update_placeholder: Introdueix un nou Client ID per actualitzar + connect_button: Connecta un broker + connected_brokerages: 'Connectats:' + connection_description: Connecta't al teu broker a través de SnapTrade (25+ + brokers admesos) + connections_error: 'No s''han pogut carregar les connexions: %{message}' + consumer_key_label: Consumer Key + consumer_key_placeholder: Introdueix la teva Consumer Key de SnapTrade + consumer_key_update_placeholder: Introdueix un nou Consumer Key per actualitzar + delete_connection: Elimina + delete_connection_body: Això eliminarà permanentment la connexió de %{brokerage} + de SnapTrade. Tots els comptes d'aquest broker quedaran sense enllaçar. Hauràs + de reconnectar per sincronitzar aquests comptes de nou. + delete_connection_confirm: Elimina la connexió + delete_connection_title: Vols eliminar la connexió amb el broker? + delete_orphaned_user: Elimina + delete_orphaned_user_body: Això eliminarà permanentment aquest usuari orfe de + SnapTrade i totes les seves connexions de broker, alliberant places de connexió. + delete_orphaned_user_confirm: Elimina el registre + delete_orphaned_user_title: Vols eliminar el registre orfe? + description: SnapTrade connecta amb més de 25 brokers importants (Fidelity, + Vanguard, Schwab, Robinhood, etc.) i proporciona l'historial complet d'operacions + amb etiquetes d'activitat i cost base. + free_tier_warning: El nivell gratuït de SnapTrade cobreix 5 connexions de broker. + Per a més, amplia el teu pla a SnapTrade. + loading_connections: Carregant connexions... + manage_connections: Gestiona connexions + name: SnapTrade + needs_linking: necessita enllaç + needs_setup: + one: "%{count} necessita configuració" + other: "%{count} necessiten configuració" + no_connections: No s'han trobat connexions de broker. + orphaned_connection: Connexió orfe (no sincronitzada localment) + orphaned_user: Registre orfe + orphaned_users_description: Aquests són registres d'usuari de SnapTrade anteriors + que ocupen places de connexió. Elimina'ls per alliberar places. + orphaned_users_title: + one: "%{count} registre orfe" + other: "%{count} registres orfes" + save_button: Desa la configuració + setup_accounts_button: Configura comptes + setup_title: 'Instruccions de configuració:' + status_connected: + one: "%{count} compte de SnapTrade" + other: "%{count} comptes de SnapTrade" + status_needs_registration: Credencials desades. Finalitza la configuració per + connectar un broker. + status_ready: Llest per connectar brokers + step_1_html: Crea un compte a dashboard.snaptrade.com + step_2: Copia el teu Client ID i Consumer Key des del panell + step_3: Introdueix les teves credencials a continuació i fes clic a Desa + step_4: Ves a la pàgina de comptes i utilitza 'Connecta un altre broker' per + enllaçar els teus comptes d'inversió + update_button: Actualitza la configuració + snaptrade_item: + brokerage_summary: + count: + one: "%{count} broker" + other: "%{count} brokers" + none: No hi ha brokers connectats + institution_summary: + count: + one: "%{count} entitat" + other: "%{count} entitats" + none: No hi ha entitats connectades + sync_status: + no_accounts: No s'han trobat comptes + synced: + one: "%{count} compte sincronitzat" + other: "%{count} comptes sincronitzats" + synced_with_setup: "%{linked} sincronitzats, %{unlinked} necessiten configuració" + syncer: + activities_fetching_async: Les activitats s'estan obtenint en segon pla. Pot + trigar fins a un minut per a connexions de broker noves. + calculating: Calculant saldos... + checking_config: Comprovant la configuració dels comptes... + discovering: Descobrint comptes... + importing: Important comptes des de SnapTrade... + needs_setup: "%{count} comptes necessiten configuració..." + processing: Processant posicions i activitats... + snaptrade_items: + callback: + no_item: No s'ha trobat la configuració de SnapTrade. + success: Broker connectat! Selecciona quins comptes vols enllaçar. + complete_account_setup: + link_failed: 'No s''han pogut enllaçar els comptes: %{errors}' + no_accounts: No s'ha seleccionat cap compte per enllaçar. + partial_success: + one: S'ha enllaçat %{count} compte. %{failed_count} no s'han pogut enllaçar. + other: S'han enllaçat %{count} comptes. %{failed_count} no s'han pogut enllaçar. + success: + one: S'ha enllaçat correctament %{count} compte. + other: S'han enllaçat correctament %{count} comptes. + connect: + connection_failed: 'No s''ha pogut connectar a SnapTrade: %{message}' + decryption_failed: No s'han pogut llegir les credencials de SnapTrade. Elimina + aquesta connexió i torna-la a crear. + connections: + unknown_brokerage: Broker desconegut + create: + success: SnapTrade s'ha configurat correctament. + default_name: Connexió SnapTrade + delete_connection: + api_deletion_failed: No s'ha pogut eliminar la connexió de SnapTrade — falten + les credencials. La connexió encara pot existir al teu compte SnapTrade. + failed: 'No s''ha pogut eliminar la connexió: %{message}' + missing_authorization_id: Falta l'ID d'autorització + success: La connexió s'ha eliminat correctament. S'ha alliberat una plaça. + delete_orphaned_user: + failed: No s'ha pogut eliminar el registre orfe. + success: El registre orfe s'ha eliminat correctament. + destroy: + success: S'ha programat la connexió SnapTrade per a la seva eliminació. + link_accounts: + use_setup_flow: Utilitza en el seu lloc el flux de configuració de comptes + link_existing_account: + failed: 'No s''ha pogut enllaçar el compte: %{message}' + not_found: No s'ha trobat el compte. + success: S'ha enllaçat correctament al compte SnapTrade. + preload_accounts: + not_configured: SnapTrade no està configurat. + select_accounts: + not_configured: SnapTrade no està configurat. + select_existing_account: + balance_label: 'Saldo:' + cancel_button: Cancel·la + connect_hint: Pot ser que hagis de connectar primer un broker. + header: Enllaça un compte existent + link_button: Enllaça + linking_to: 'Enllaçant al compte:' + no_accounts: No hi ha comptes SnapTrade sense enllaçar disponibles. + not_found: No s'ha trobat el compte o la configuració de SnapTrade. + settings_link: Ves a la configuració del proveïdor + subtitle: Selecciona un compte SnapTrade per enllaçar + title: Enllaça amb un compte SnapTrade + setup_accounts: + account_number: 'Compte:' + available_accounts: Comptes disponibles + back_to_settings: Torna a la configuració + balance_label: 'Saldo:' + cancel_button: Cancel·la + create_button: Crea els comptes seleccionats + creating: Creant comptes... + done_button: Fet + free_tier_note: El nivell gratuït de SnapTrade permet 5 connexions de broker. + Revisa el teu panell de SnapTrade per veure l'ús actual. + header: Configura els teus comptes SnapTrade + info_activities: Historial d'operacions amb etiquetes d'activitat (Compra, Venda, + Dividend, etc.) + info_cost_basis: Cost base per posició (quan estigui disponible) + info_history: Fins a 3 anys d'historial de transaccions + info_holdings: Posicions amb preus i quantitats actuals + info_title: Dades d'inversió SnapTrade + link_button: Enllaça + linked_accounts: Ja enllaçats + linked_to: 'Enllaçat a:' + loading: Obtenint comptes des de SnapTrade... + loading_hint: Fes clic a Actualitza per comprovar si hi ha comptes. + no_accounts_message: No s'ha trobat cap compte de broker. Això pot passar si + has cancel·lat la connexió o si el teu broker no està admès. + no_accounts_title: No s'han trobat comptes + or_link_existing: 'O enllaça a un compte existent en lloc de crear-ne un de + nou:' + refresh: Actualitza + select_account: Selecciona un compte... + subtitle: Selecciona quins comptes de broker vols enllaçar + sync_start_date_help: Deixa-ho en blanc per a tot l'historial disponible + sync_start_date_label: 'Importa transaccions des de:' + syncing: Obtenint els teus comptes... + title: Configura comptes SnapTrade + try_again: Connecta un broker + snaptrade_item: + accounts_need_setup: + one: "%{count} compte necessita configuració" + other: "%{count} comptes necessiten configuració" + add_another_brokerage: Connecta un altre broker + connect_brokerage: Connecta un broker + delete: Elimina + deletion_in_progress: Eliminació en curs... + error: Error de sincronització + manage_connections: Gestiona connexions + more_accounts_available: + one: "%{count} compte més disponible per configurar" + other: "%{count} comptes més disponibles per configurar" + no_accounts_description: Connecta un broker per importar els teus comptes d'inversió. + no_accounts_title: No s'han descobert comptes + reconnect: Reconnecta + requires_update: La connexió necessita actualització + setup_accounts_menu: Configura comptes + setup_action: Configura comptes + setup_description: Alguns comptes de SnapTrade necessiten ser enllaçats a comptes + de Sure. + setup_needed: Els comptes necessiten configuració + status: Darrera sincronització fa %{timestamp} - %{summary} + status_never: Mai sincronitzat + syncing: Sincronitzant... + update: + success: La configuració de SnapTrade s'ha actualitzat correctament. diff --git a/config/locales/views/snaptrade_items/hu.yml b/config/locales/views/snaptrade_items/hu.yml index 424ba7ca3..dab3d05ce 100644 --- a/config/locales/views/snaptrade_items/hu.yml +++ b/config/locales/views/snaptrade_items/hu.yml @@ -2,6 +2,8 @@ hu: snaptrade_items: default_name: "SnapTrade kapcsolat" + link_accounts: + use_setup_flow: Használd helyette a számlabeállítási folyamatot create: success: "SnapTrade sikeresen beállítva." update: @@ -74,6 +76,8 @@ hu: available_accounts: "Elérhető számlák" balance_label: "Egyenleg:" account_number: "Számla:" + sync_start_date_label: "Tranzakciók importálása ettől:" + sync_start_date_help: "Hagyd üresen az összes elérhető előzményhez" create_button: "Kiválasztott számlák létrehozása" cancel_button: "Mégse" creating: "Számlák létrehozása..." @@ -133,6 +137,7 @@ hu: needs_setup: one: "%{count} beállítást igényel" other: "%{count} beállítást igényel" + status_needs_registration: "Hitelesítő adatok elmentve. Fejezd be a beállítást egy brókercég csatlakoztatásához." status_ready: "Készen áll brókercégek csatlakoztatásához" setup_accounts_button: "Számlák beállítása" connect_button: "Brókercég csatlakoztatása" diff --git a/config/locales/views/sophtron_items/ca.yml b/config/locales/views/sophtron_items/ca.yml new file mode 100644 index 000000000..3b5321b74 --- /dev/null +++ b/config/locales/views/sophtron_items/ca.yml @@ -0,0 +1,365 @@ +--- +ca: + sophtron_items: + api_error: + bad_credentials: 'Credencials bancàries: comprova que el nom d''usuari i la + contrasenya són correctes' + check_provider_settings: Revisa la configuració del proveïdor + common_issues_title: 'Problemes habituals:' + expired_credentials: 'Credencials caducades: genera un nou ID d''usuari i clau + d''accés des de Sophtron' + incorrect_user_id: 'ID d''usuari incorrecte: verifica el teu ID d''usuari a + la configuració del proveïdor' + institution_timeout: 'Temps esgotat de l''entitat: la pàgina d''inici de sessió + del banc no ha acabat a temps' + institution_unable_to_connect: No s'ha pogut connectar amb l'entitat + invalid_access_key: 'Clau d''accés no vàlida: revisa la teva clau d''accés a + la configuració del proveïdor' + network_issue: 'Problema de xarxa: comprova la teva connexió a internet' + service_down: 'Servei caigut: l''API de Sophtron pot estar temporalment no disponible' + title: Error de connexió amb Sophtron + try_again: Torna a intentar la connexió + unable_to_connect: No s'ha pogut connectar a Sophtron + unsupported_mfa: 'Compatibilitat MFA: Sophtron pot no donar suport al flux de + verificació actual d''aquesta entitat' + verification_code: 'Codi de verificació: assegura''t que has introduït l''últim + codi abans que caduqui' + complete_account_setup: + all_skipped: S'han omès tots els comptes. No s'ha creat cap compte. + api_error: Error de connexió amb l'API + creation_failed: No s'han pogut crear els comptes + no_accounts: No hi ha comptes per configurar. + success: S'han creat correctament %{count} compte(s). + unexpected_error: S'ha produït un error inesperat + connect: + cancel: Cancel·la + captcha: Captcha + connect: Connecta + institution_search_label: Entitat + institution_search_placeholder: Cerca pel nom del banc + no_institutions: No s'han trobat entitats coincidents. + password: Contrasenya + search: Cerca + search_too_short: Introdueix almenys dos caràcters per cercar. + title: Connecta una entitat Sophtron + username: Nom d'usuari + connect_institution: + api_error: 'La connexió Sophtron ha fallat: %{message}' + missing_parameters: Selecciona una entitat i introdueix les teves credencials + d'inici de sessió bancari. + connection_status: + api_error: 'Error de connexió amb l''API: %{message}' + attempt: Intent %{attempt} de %{max} + check_again: Torna a comprovar + failed: Sophtron no ha pogut completar la connexió amb aquesta entitat. + failed_timeout: Sophtron ha esgotat el temps mentre l'entitat completava l'inici + de sessió. + timeout: Sophtron no ha completat la connexió dins del temps previst. Pots tornar + a comprovar-ho o intentar reconnectar més tard. + title: Connectant Sophtron + waiting: Sophtron encara s'està connectant a la teva entitat. + create: + success: La connexió Sophtron s'ha creat correctament + defaults: + name: Connexió Sophtron + destroy: + success: La connexió Sophtron s'ha eliminat + edit: + access_key: + help_text: La clau d'accés ha de ser una cadena llarga que comenci amb lletres + i números + label: 'Clau d''accés de Sophtron:' + placeholder: Enganxa aquí la teva clau d'accés de Sophtron... + user_id: + help_text: L'ID d'usuari ha de ser una cadena llarga que comenci amb lletres + i números + label: 'ID d''usuari de Sophtron:' + placeholder: Enganxa aquí el teu ID d'usuari de Sophtron... + index: + title: Connexions Sophtron + link_accounts: + all_already_linked: + one: El compte seleccionat (%{names}) ja està enllaçat + other: 'Tots els %{count} comptes seleccionats ja estan enllaçats: %{names}' + api_error: Error de connexió amb l'API + invalid_account_names: + one: No es pot enllaçar un compte sense nom + other: No es poden enllaçar %{count} comptes sense nom + link_failed: No s'han pogut enllaçar els comptes + no_access_key: La clau d'accés de Sophtron no està configurada. Configura-la + a la configuració. + no_accounts_found: No s'han trobat comptes. Comprova la configuració de la teva + clau API. + no_accounts_selected: Selecciona almenys un compte + no_credentials_configured: Primer, configura el teu ID d'usuari i clau d'accés + de Sophtron a la configuració del proveïdor. + no_institution_connected: Primer connecta una entitat bancària amb Sophtron. + no_user_id: L'ID d'usuari de Sophtron no està configurat. Configura'l a la configuració. + partial_invalid: S'han enllaçat correctament %{created_count} compte(s), %{already_linked_count} + ja estaven enllaçats, %{invalid_count} compte(s) tenien noms no vàlids + partial_success: 'S''han enllaçat correctament %{created_count} compte(s). %{already_linked_count} + compte(s) ja estaven enllaçats: %{already_linked_names}' + success: + one: S'ha enllaçat correctament %{count} compte + other: S'han enllaçat correctament %{count} comptes + link_existing_account: + account_already_linked: Aquest compte ja està enllaçat a un proveïdor + api_error: Error de connexió amb l'API + invalid_account_name: No es pot enllaçar un compte sense nom + missing_parameters: Falten paràmetres obligatoris + no_institution_connected: Primer connecta una entitat bancària amb Sophtron. + sophtron_account_already_linked: Aquest compte Sophtron ja està enllaçat a un + altre compte + sophtron_account_not_found: No s'ha trobat el compte Sophtron + success: S'ha enllaçat correctament %{account_name} amb Sophtron + unexpected_error: S'ha produït un error inesperat + loading: + loading_message: Carregant comptes de Sophtron... + loading_title: Carregant + manual_sync_complete: + close: Tanca + description: Els saldos dels comptes acabaran d'actualitzar-se en segon pla. + message: S'han descarregat les transaccions després de la verificació de Sophtron. + title: Sincronització Sophtron iniciada + mfa: + captcha: Text del captcha + captcha_alt: Captcha de Sophtron + phone_confirmed: He confirmat per telèfon + submit: Envia + title: Verificació Sophtron + token: Codi de verificació + new: + access_key: Clau d'accés + access_key_placeholder: enganxa la teva clau d'accés de Sophtron + cancel: Cancel·la + connect: Connecta + title: Connecta Sophtron + user_id: ID d'usuari + user_id_placeholder: enganxa el teu ID d'usuari de Sophtron + preload_accounts: + api_error: Error de connexió amb l'API + no_access_key: La clau d'accés de Sophtron no està configurada. Configura-la + a la configuració. + no_accounts_found: No s'han trobat comptes. Comprova la configuració de la teva + clau API. + no_credentials_configured: Primer, configura el teu ID d'usuari i clau d'accés + de Sophtron a la configuració del proveïdor. + no_user_id: L'ID d'usuari de Sophtron no està configurat. Configura'l a la configuració. + preload_accounts: precarrega els comptes + unexpected_error: S'ha produït un error inesperat + redirect_after_account_link: + all_already_linked: + one: El compte seleccionat ja està enllaçat + other: Tots els %{count} comptes seleccionats ja estan enllaçats + invalid_account_names: + one: No es pot enllaçar %{count} compte sense nom + other: No es poden enllaçar %{count} comptes sense nom + link_failed: No s'han pogut enllaçar els comptes + partial_invalid: S'han enllaçat %{created_count} compte(s). %{already_linked_count} + ja estaven enllaçats, %{invalid_count} tenien noms no vàlids. + partial_success: S'han enllaçat %{created_count} compte(s). %{already_linked_count} + compte(s) ja estaven enllaçats. + success: + one: S'ha enllaçat correctament %{count} compte. + other: S'han enllaçat correctament %{count} comptes. + render_connection_timeout: + timeout: S'ha esgotat el temps de connexió. Torna-ho a provar. + select_accounts: + accounts_selected: comptes seleccionats + api_error: Error de connexió amb l'API + cancel: Cancel·la + configure_name_in_sophtron: No es pot importar — configura el nom del compte + a Sophtron + description: Selecciona els comptes que vols enllaçar al teu compte de %{product_name}. + link_accounts: Enllaça els comptes seleccionats + no_access_key: La clau d'accés de Sophtron no està configurada. Configura-la + a la configuració. + no_accounts_found: No s'han trobat comptes. Comprova la configuració de la teva + clau API. + no_credentials_configured: Primer, configura el teu ID d'usuari i clau d'accés + de Sophtron a la configuració del proveïdor. + no_institution_connected: Primer connecta una entitat bancària amb Sophtron. + no_name_placeholder: "(Sense nom)" + no_user_id: L'ID d'usuari de Sophtron no està configurat. Configura'l a la configuració. + title: Selecciona comptes Sophtron + unexpected_error: S'ha produït un error inesperat + select_existing_account: + account_already_linked: Aquest compte ja està enllaçat a un proveïdor + all_accounts_already_linked: Tots els comptes Sophtron ja estan enllaçats + api_error: Error de connexió amb l'API + cancel: Cancel·la + configure_name_in_sophtron: No es pot importar — configura el nom del compte + a Sophtron + description: Selecciona un compte Sophtron per enllaçar-lo amb aquest compte. + Les transaccions es sincronitzaran i deduplicaran automàticament. + link_account: Enllaça compte + no_access_key: La clau d'accés de Sophtron no està configurada. Configura-la + a la configuració. + no_account_specified: No s'ha especificat cap compte + no_accounts_found: No s'han trobat comptes Sophtron. Comprova la configuració + de la teva clau API. + no_institution_connected: Primer connecta una entitat bancària amb Sophtron. + no_name_placeholder: "(Sense nom)" + no_user_id: L'ID d'usuari de Sophtron no està configurat. Configura'l a la configuració. + title: Enllaça %{account_name} amb Sophtron + unexpected_error: S'ha produït un error inesperat + select_option: Selecciona %{type} + setup_accounts: + account_type_label: 'Tipus de compte:' + account_types: + credit_card: Targeta de crèdit + depository: Compte corrent o d'estalvis + investment: Compte d'inversió + loan: Préstec o hipoteca + other_asset: Altre actiu + skip: Omet aquest compte + all_accounts_linked: Tots els teus comptes Sophtron ja s'han configurat. + api_error: Error de connexió amb l'API + balance: Saldo + cancel: Cancel·la + choose_account_type: 'Tria el tipus de compte correcte per a cada compte Sophtron:' + create_accounts: Crea comptes + creating_accounts: Creant comptes... + fetch_failed: No s'han pogut obtenir els comptes + historical_data_range: 'Rang de dades històriques:' + no_access_key: La clau d'accés de Sophtron no està configurada. Revisa la configuració + de la connexió. + no_accounts_to_setup: No hi ha comptes per configurar + no_institution_connected: L'entitat Sophtron encara no està connectada. + no_user_id: L'ID d'usuari de Sophtron no està configurat. Revisa la configuració + de la connexió. + subtitle: Tria els tipus de compte correctes per als teus comptes importats + subtype_labels: + credit_card: '' + depository: 'Subtipus de compte:' + investment: 'Tipus d''inversió:' + loan: 'Tipus de préstec:' + other_asset: '' + subtype_messages: + credit_card: Les targetes de crèdit es configuraran automàticament com a comptes + de targeta de crèdit. + other_asset: No calen opcions addicionals per a altres actius. + sync_start_date_help: Selecciona fins on vols sincronitzar l'historial de transaccions. + Hi ha un màxim de 3 anys d'historial disponible. + sync_start_date_label: 'Comença a sincronitzar transaccions des de:' + title: Configura els teus comptes Sophtron + unexpected_error: S'ha produït un error inesperat + sophtron_entry: + processor: + unknown_transaction: Transacció desconeguda + sophtron_item: + accounts_need_setup: Els comptes necessiten configuració + automatic_sync: Utilitza la sincronització automàtica + automatic_sync_for: Utilitza la sincronització automàtica per a %{institution} + delete: Elimina la connexió + deletion_in_progress: eliminació en curs... + error: Error + manual_sync: Sincronització manual + manual_sync_action: Requereix sincronització manual + manual_sync_action_for: Requereix sincronització manual per a %{institution} + no_accounts_description: Aquesta connexió encara no té comptes enllaçats. + no_accounts_title: No hi ha comptes + setup_action: Configura els nous comptes + setup_description: "%{linked} de %{total} comptes enllaçats. Tria els tipus + de compte per als teus nous comptes Sophtron importats." + setup_needed: Nous comptes a punt per configurar + status: Sincronitzat fa %{timestamp} + status_never: Mai sincronitzat + status_with_summary: Darrera sincronització fa %{timestamp} • %{summary} + sync_now: Sincronitza ara + syncing: Sincronitzant... + total: Total + unlinked: Sense enllaç + sophtron_panel: + field_descriptions: + access_key_html: "Clau d'accés: la teva credencial de clau + d'accés de Sophtron" + base_url_html: "URL base: l'URL de l'endpoint de l'API de + Sophtron, normalment https://api.sophtron.com/api" + user_id_html: "ID d'usuari: la teva credencial d'ID d'usuari + de Sophtron" + field_descriptions_title: 'Descripció dels camps:' + fields: + access_key: + label: Clau d'accés + placeholder_edit: "••••••••" + placeholder_new: Enganxa la teva clau d'accés de Sophtron + base_url: + label: URL base + placeholder: https://api.sophtron.com/api + user_id: + label: ID d'usuari + placeholder_edit: "••••••••" + placeholder_new: Enganxa el teu ID d'usuari de Sophtron + save: Desa la configuració + setup_instructions: + step_1_html: Visita Sophtron per obtenir les teves credencials API + step_2: Copia el teu ID d'usuari i clau d'accés des de la configuració del + teu compte Sophtron + step_3: Enganxa les credencials a continuació i fes clic a Desa; Sure crearà + o reutilitzarà el teu ID de client de Sophtron automàticament + setup_instructions_title: 'Instruccions de configuració:' + update: Actualitza la configuració + sophtron_setup_required: + description: Abans d'enllaçar comptes Sophtron, has de configurar el teu ID + d'usuari i clau d'accés de Sophtron. + go_to_provider_settings: Ves a la configuració del proveïdor + heading: ID d'usuari i clau d'accés sense configurar + message: Per completar la configuració de la teva connexió Sophtron, ves a la + pàgina de configuració del proveïdor i segueix les instruccions per autoritzar + i configurar la teva connexió Sophtron. + setup_steps_title: 'Passos de configuració:' + step_1_html: Ves a Configuració → Proveïdors de sincronització bancària + step_2_html: Localitza la secció Sophtron + step_3_html: Introdueix el teu ID d'usuari i clau d'accés de Sophtron + step_4: Torna aquí per enllaçar els teus comptes + title: Cal configurar Sophtron + start_manual_sync: + already_running: Ja s'està executant una sincronització. + api_error: 'Error de l''API: %{message}' + no_linked_accounts: No hi ha comptes enllaçats disponibles per sincronitzar. + start_manual_sync_for_account: + failed: No s'ha pogut sincronitzar el compte + submit_mfa: + api_error: 'La verificació ha fallat: %{message}' + invalid_security_answers: Les respostes de seguretat falten o són massa llargues. + unknown_challenge: Pas de verificació Sophtron desconegut. + subtype: subtipus + sync: + already_running: La sincronització manual de Sophtron ja s'està executant. + api_error: 'La sincronització manual de Sophtron ha fallat: %{message}' + failed: La sincronització manual de Sophtron ha fallat + no_linked_accounts: Aquesta entitat Sophtron no té cap compte enllaçat per sincronitzar. + processing_failed: La sincronització manual de Sophtron no ha pogut processar + les transaccions actualitzades. + success: Sincronització iniciada + syncer: + accounts_need_setup: "%{count} compte(s) necessiten configuració" + calculating_balances: Calculant saldos per als comptes enllaçats... + checking_account_configuration: Comprovant la configuració dels comptes... + importing_accounts: Important comptes des de Sophtron... + manual_sync_required: Cal sincronització manual de Sophtron per a aquesta entitat; + els seus comptes s'ometen durant la sincronització automàtica. + processing_transactions: Processant transaccions per als comptes enllaçats... + toggle_manual_sync: + success_disabled: L'entitat Sophtron se sincronitzarà automàticament. + success_enabled: L'entitat Sophtron ara requereix sincronització manual. + type: tipus + update: + errors: + access_key_compromised: La clau d'accés pot estar compromesa, caducada o ja + utilitzada. Crea'n una de nova. + blank_access_key: Introdueix una clau d'accés de Sophtron. + blank_user_id: Introdueix un ID d'usuari de Sophtron. + invalid_access_key: Clau d'accés no vàlida. Comprova que has copiat la clau + d'accés completa des de Sophtron. + invalid_user_id: ID d'usuari no vàlid. Comprova que has copiat l'ID d'usuari + complet des de Sophtron. + unexpected: S'ha produït un error inesperat. Torna-ho a provar o contacta + amb el suport. + update_failed: 'No s''ha pogut actualitzar la connexió: %{message}' + user_id_compromised: L'ID d'usuari pot estar compromès, caducat o ja utilitzat. + Crea'n un de nou. + success: La connexió Sophtron s'ha actualitzat correctament! Els teus comptes + s'estan tornant a connectar. diff --git a/config/locales/views/sophtron_items/hu.yml b/config/locales/views/sophtron_items/hu.yml index a4cb2d375..c64f06715 100644 --- a/config/locales/views/sophtron_items/hu.yml +++ b/config/locales/views/sophtron_items/hu.yml @@ -59,6 +59,42 @@ hu: no_accounts_found: Nem találhatók számlák. Kérlek ellenőrizd az API-kulcs konfigurációdat. no_access_key: A Sophtron hozzáférési kulcs nincs beállítva. Kérlek állítsd be a Beállításokban. no_user_id: A Sophtron felhasználói azonosító nincs beállítva. Kérlek állítsd be a Beállításokban. + no_institution_connected: Kérlek először csatlakoztass egy banki intézményt a Sophtron-nal. + connect: + cancel: Mégse + captcha: Captcha + connect: Csatlakozás + institution_search_label: Intézmény + institution_search_placeholder: Keresés banknév szerint + no_institutions: Nem találhatók egyező intézmények. + password: Jelszó + search: Keresés + search_too_short: Legalább két karaktert adj meg a kereséshez. + title: Sophtron intézmény csatlakoztatása + username: Felhasználónév + connect_institution: + api_error: "Sophtron kapcsolódás sikertelen: %{message}" + missing_parameters: Válassz intézményt és add meg a banki bejelentkezési adataidat. + connection_status: + api_error: "API kapcsolódási hiba: %{message}" + attempt: "%{attempt}. kísérlet a(z) %{max}-ból" + check_again: Ellenőrzés újra + failed: A Sophtron nem tudta befejezni ezt az intézményi kapcsolatot. + failed_timeout: A Sophtron túllépte az időkorlátot, miközben az intézmény befejezi a bejelentkezést. + timeout: A Sophtron nem fejezte be a kapcsolódást a várt időn belül. Ellenőrizheted újra, vagy próbálkozz meg a kapcsolódással később. + title: Sophtron csatlakoztatása + waiting: A Sophtron még kapcsolódik az intézményedhez. + mfa: + captcha: Captcha szöveg + captcha_alt: Sophtron captcha + phone_confirmed: Telefonon megerősítettem + submit: Elküldés + title: Sophtron ellenőrzés + token: Ellenőrző kód + submit_mfa: + api_error: "Ellenőrzés sikertelen: %{message}" + invalid_security_answers: A biztonsági válaszok hiányoznak vagy túl hosszúak. + unknown_challenge: Ismeretlen Sophtron ellenőrzési lépés. sophtron_item: accounts_need_setup: Számlák beállítást igényelnek automatic_sync: Automatikus szinkronizálás használata @@ -102,6 +138,7 @@ hu: no_user_id: A Sophtron felhasználói azonosító nincs beállítva. Kérlek állítsd be a Beállításokban. no_credentials_configured: "Kérlek előbb állítsd be a Sophtron API felhasználói azonosítódat és hozzáférési kulcsodat a Szolgáltatói beállításokban." no_name_placeholder: "(Nincs név)" + no_institution_connected: Kérlek először csatlakoztass egy banki intézményt a Sophtron-nal. title: Sophtron számlák kiválasztása select_existing_account: account_already_linked: Ez a számla már össze van kapcsolva egy szolgáltatóval @@ -116,7 +153,9 @@ hu: no_access_key: A Sophtron hozzáférési kulcs nincs beállítva. Kérlek állítsd be a Beállításokban. no_user_id: A Sophtron felhasználói azonosító nincs beállítva. Kérlek állítsd be a Beállításokban. no_name_placeholder: "(Nincs név)" + no_institution_connected: Kérlek először csatlakoztass egy banki intézményt a Sophtron-nal. title: "%{account_name} összekapcsolása a Sophtron-nal" + unexpected_error: "Váratlan hiba történt" link_existing_account: account_already_linked: Ez a számla már össze van kapcsolva egy szolgáltatóval api_error: "API kapcsolódási hiba" @@ -125,6 +164,7 @@ hu: sophtron_account_already_linked: Ez a Sophtron számla már össze van kapcsolva egy másik számlával sophtron_account_not_found: Sophtron számla nem található missing_parameters: Hiányzó kötelező paraméterek + no_institution_connected: Kérlek először csatlakoztass egy banki intézményt a Sophtron-nal. success: "%{account_name} sikeresen összekapcsolva a Sophtron-nal" setup_accounts: account_type_label: "Számla típusa:" @@ -135,13 +175,14 @@ hu: no_accounts_to_setup: "Nincs beállítandó számla" no_access_key: "A Sophtron hozzáférési kulcs nincs beállítva. Kérlek ellenőrizd a kapcsolati beállításaidat." no_user_id: "A Sophtron felhasználói azonosító nincs beállítva. Kérlek ellenőrizd a kapcsolati beállításaidat." + no_institution_connected: "A Sophtron intézmény még nincs csatlakoztatva." account_types: skip: Számla kihagyása depository: Folyó- vagy megtakarítási számla credit_card: Hitelkártya investment: Befektetési számla loan: Hitel vagy jelzálog - other_asset: Egyéb eszköz + other_asset: Egyéb vagyon subtype_labels: depository: "Számla altípusa:" credit_card: "" @@ -150,7 +191,7 @@ hu: other_asset: "" subtype_messages: credit_card: "A hitelkártyák automatikusan hitelkártya számlákként lesznek beállítva." - other_asset: "Az egyéb eszközökhöz nincs szükség további beállításokra." + other_asset: "Az egyéb vagyonelemekhez nincs szükség további beállításokra." balance: Egyenleg cancel: Mégse choose_account_type: "Válaszd ki a megfelelő számlatípust minden Sophtron számlához:" @@ -198,13 +239,19 @@ hu: api_error: title: "Sophtron kapcsolódási hiba" unable_to_connect: "Nem sikerült csatlakozni a Sophtron-hoz" + institution_unable_to_connect: "Nem sikerült csatlakozni az intézményhez" common_issues_title: "Gyakori problémák:" incorrect_user_id: "Helytelen felhasználói azonosító: Ellenőrizd a felhasználói azonosítódat a Szolgáltatói beállításokban" invalid_access_key: "Érvénytelen hozzáférési kulcs: Ellenőrizd a hozzáférési kulcsodat a Szolgáltatói beállításokban" expired_credentials: "Lejárt hitelesítő adatok: Hozz létre új felhasználói azonosítót és hozzáférési kulcsot a Sophtron-ban" network_issue: "Hálózati probléma: Ellenőrizd az internetkapcsolatodat" service_down: "Szolgáltatás leállása: A Sophtron API ideiglenesen nem érhető el" + bad_credentials: "Banki bejelentkezési adatok: Ellenőrizd, hogy a felhasználónév és jelszó helyes-e" + verification_code: "Ellenőrző kód: Győződj meg róla, hogy a legújabb kódot adtad meg, mielőtt lejárt" + institution_timeout: "Intézményi időtúllépés: A bank bejelentkezési oldala nem fejezte be a folyamatot időben" + unsupported_mfa: "MFA-támogatás: A Sophtron esetleg nem támogatja az intézmény jelenlegi ellenőrzési folyamatát" check_provider_settings: "Szolgáltatói beállítások ellenőrzése" + try_again: "Próbálkozz újra a csatlakozással" select_option: "%{type} kiválasztása" subtype: "altípus" type: "típus" @@ -243,3 +290,24 @@ hu: sophtron_entry: processor: unknown_transaction: "Ismeretlen tranzakció" + render_connection_timeout: + timeout: "A kapcsolat túllépte az időkorlátot. Kérlek próbáld újra." + redirect_after_account_link: + invalid_account_names: + one: "%{count} számlát nem lehet összekapcsolni üres névvel" + other: "%{count} számlát nem lehet összekapcsolni üres névvel" + partial_invalid: "%{created_count} számla összekapcsolva. %{already_linked_count} már össze volt kapcsolva, %{invalid_count} érvénytelen névvel rendelkezik." + partial_success: "%{created_count} számla összekapcsolva. %{already_linked_count} számla már össze volt kapcsolva." + success: + one: "%{count} számla sikeresen összekapcsolva." + other: "%{count} számla sikeresen összekapcsolva." + all_already_linked: + one: "A kiválasztott számla már össze van kapcsolva" + other: "Mind a(z) %{count} kiválasztott számla már össze van kapcsolva" + link_failed: "Nem sikerült összekapcsolni a számlákat" + start_manual_sync: + already_running: "Már folyamatban van egy szinkronizálás." + no_linked_accounts: "Nincs elérhető összekapcsolt számla a szinkronizáláshoz." + api_error: "API hiba: %{message}" + start_manual_sync_for_account: + failed: "Nem sikerült szinkronizálni a számlát" diff --git a/config/locales/views/splits/ca.yml b/config/locales/views/splits/ca.yml new file mode 100644 index 000000000..437a7280d --- /dev/null +++ b/config/locales/views/splits/ca.yml @@ -0,0 +1,51 @@ +--- +ca: + splits: + child: + description: Aquesta entrada forma part d'una transacció dividida. + edit_split: Edita la divisió + title: Part d'una divisió + unsplit: Desfés la divisió + create: + not_splittable: Aquesta transacció no es pot dividir. + success: Transacció dividida correctament + destroy: + success: Divisió desfeta correctament + edit: + description: Modifica les entrades de la divisió d'aquesta transacció. + not_split: Aquesta transacció no està dividida. + submit: Actualitza la divisió + title: Edita la divisió + new: + add_row: Afegeix divisió + amount_label: Import + amounts_must_match: La suma dels imports de la divisió ha de ser igual a l'import + original de la transacció. + cancel: Cancel·la + category_label: Categoria + description: Divideix aquesta transacció en diverses entrades amb categories + i imports diferents. + name_label: Nom + name_placeholder: Nom de la divisió + original_amount: Import + original_date: 'Data:' + original_name: 'Nom:' + remaining: Restant + remove_row: Elimina + split_number: 'Divisió #%{number}' + submit: Divideix la transacció + title: Divideix la transacció + uncategorized: "(sense categoria)" + show: + button: Divideix + button_description: Divideix aquesta transacció en diverses entrades amb categories + i imports diferents. + button_title: Divideix la transacció + description: Aquesta transacció s'ha dividit en les entrades següents. + title: Entrades de la divisió + unsplit_button: Desfés la divisió + unsplit_confirm: Això eliminarà totes les entrades de la divisió i restaurarà + la transacció original. + unsplit_title: Desfés la divisió + update: + success: Divisió actualitzada correctament diff --git a/config/locales/views/subscriptions/ca.yml b/config/locales/views/subscriptions/ca.yml index eb162c4ca..521b8124b 100644 --- a/config/locales/views/subscriptions/ca.yml +++ b/config/locales/views/subscriptions/ca.yml @@ -1,14 +1,26 @@ --- ca: subscriptions: + create: + trial_already_used: Ja has començat o completat una prova. Actualitza per continuar. + welcome: Benvingut/da a Sure! self_hosted_alert: "%{product_name} no està disponible en mode autoallotjat." + success: + contribution_failed: Alguna cosa ha anat malament en processar la teva contribució. + Torna-ho a provar. + welcome_with_contribution: Benvingut/da a Sure! Agraïm la teva contribució. upgrade: - contribute_and_support_sure: "Contribuir i donar suport a Sure" - cta: "Continua donant suport al desenvolupament d'aquest codi!" + account_settings: Configuració del compte + already_contributing: Ja hi estàs contribuint. Gràcies! + contribute_and_support_sure: Contribueix i dona suport a Sure + cta: Continua donant suport al desenvolupament d'aquest codi! header: - support: "Suport" - sure: "Sure" - today: "avui" - redirect_to_stripe: "En el proper pas, se us redirigirà a Stripe, que gestiona les targetes de crèdit per nosaltres." - trialing: "Les teves dades s'eliminaran en %{days} dies" - trial_over: "El teu període de prova ha acabat" \ No newline at end of file + support: Dona suport a + sure: Sure + today: avui + page_title: Actualitza + redirect_to_stripe: Al pas següent, se't redirigirà a Stripe, que gestiona les + targetes de crèdit per a nosaltres. + sign_out: Tanca la sessió + trial_over: El teu període de prova ha acabat + trialing: Les teves dades s'eliminaran d'aquí %{days} dies diff --git a/config/locales/views/subscriptions/hu.yml b/config/locales/views/subscriptions/hu.yml index 996f3a56b..b2b70f03f 100644 --- a/config/locales/views/subscriptions/hu.yml +++ b/config/locales/views/subscriptions/hu.yml @@ -3,6 +3,10 @@ hu: subscriptions: self_hosted_alert: "%{product_name} önállóan üzemeltetett módban nem érhető el." upgrade: + already_contributing: Már hozzájárulsz. Köszönjük! + page_title: "Frissítés" + account_settings: "Fiókbeállítások" + sign_out: "Kijelentkezés" contribute_and_support_sure: "Járulj hozzá és támogasd a Sure-t" cta: "Folytasd ennek a kódbázisnak a fejlesztésének támogatását!" header: @@ -12,3 +16,9 @@ hu: redirect_to_stripe: "A következő lépésben átirányítunk a Stripe-ra, amely kezeli a bankkártyás fizetéseket." trialing: "Az adataid %{days} nap múlva törlésre kerülnek" trial_over: "A próbaidőszakod lejárt" + create: + welcome: "Üdvözlünk a Sure-ban!" + trial_already_used: "Már elindítottál vagy befejezted egy próbaidőszakot. A folytatáshoz kérlek frissítsd az előfizetésedet." + success: + welcome_with_contribution: "Üdvözlünk a Sure-ban! Köszönjük a hozzájárulásodat." + contribution_failed: "Hiba történt a hozzájárulás feldolgozása során. Kérlek próbáld újra." diff --git a/config/locales/views/tag/deletions/ca.yml b/config/locales/views/tag/deletions/ca.yml index 21559e806..e9e59777d 100644 --- a/config/locales/views/tag/deletions/ca.yml +++ b/config/locales/views/tag/deletions/ca.yml @@ -6,6 +6,7 @@ ca: deleted: Etiqueta eliminada new: delete_and_leave_uncategorized: Elimina "%{tag_name}" + delete_and_reassign: Elimina i reassigna delete_and_recategorize: Elimina "%{tag_name}" i assigna una nova etiqueta delete_tag: Vols eliminar l'etiqueta? explanation: "%{tag_name} s'eliminarà de les transaccions i altres entitats diff --git a/config/locales/views/tag/deletions/hu.yml b/config/locales/views/tag/deletions/hu.yml index c923f762f..f0a10847e 100644 --- a/config/locales/views/tag/deletions/hu.yml +++ b/config/locales/views/tag/deletions/hu.yml @@ -7,6 +7,7 @@ hu: new: delete_and_leave_uncategorized: '"%{tag_name}" törlése' delete_and_recategorize: '"%{tag_name}" törlése és új címke hozzárendelése' + delete_and_reassign: Törlés és újraosztás delete_tag: Törlöd a címkét? explanation: "%{tag_name} el lesz távolítva a tranzakciókból és egyéb, címkézett elemekből. Ahelyett, hogy címke nélkül maradnának, alább új címkét is hozzárendelhetsz." replacement_tag_prompt: Válassz címkét diff --git a/config/locales/views/tags/ca.yml b/config/locales/views/tags/ca.yml index c34489679..95a611a80 100644 --- a/config/locales/views/tags/ca.yml +++ b/config/locales/views/tags/ca.yml @@ -6,11 +6,14 @@ ca: error: 'Error en crear l''etiqueta: %{error}' destroy: deleted: Etiqueta eliminada + destroy_all: + all_deleted: Totes les etiquetes eliminades edit: edit: Edita l'etiqueta form: placeholder: Nom de l'etiqueta index: + delete_all: Elimina-les totes empty: Encara no hi ha etiquetes new: Nova etiqueta tags: Etiquetes diff --git a/config/locales/views/tags/hu.yml b/config/locales/views/tags/hu.yml index 0edff9b46..ee487af83 100644 --- a/config/locales/views/tags/hu.yml +++ b/config/locales/views/tags/hu.yml @@ -6,6 +6,8 @@ hu: error: 'Hiba a címke létrehozásakor: %{error}' destroy: deleted: Címke törölve + destroy_all: + all_deleted: Minden címke törölve edit: edit: Címke szerkesztése form: @@ -14,6 +16,7 @@ hu: empty: Még nincsenek címkék new: Új címke tags: Címkék + delete_all: Összes törlése new: new: Új címke tag: diff --git a/config/locales/views/trades/ca.yml b/config/locales/views/trades/ca.yml index ef908c4df..be167ae6d 100644 --- a/config/locales/views/trades/ca.yml +++ b/config/locales/views/trades/ca.yml @@ -5,15 +5,26 @@ ca: account: Compte de transferència (opcional) account_prompt: Cerca compte amount: Import + dividend_requires_security: El valor és obligatori per als dividends + fee: Comissió de la transacció holding: Símbol del valor + holding_optional: Símbol del valor (opcional) price: Preu per acció qty: Quantitat - submit: Afegeix transacció + submit: Afegeix la transacció ticker_placeholder: AAPL type: Tipus + type_buy: Compra + type_deposit: Dipòsit + type_dividend: Dividend + type_interest: Interès + type_sell: Venda + type_withdrawal: Retirada header: buy: Compra current_market_price_label: Preu de mercat actual + dividend: Dividend + interest: Interès overview: Resum purchase_price_label: Preu de compra purchase_qty_label: Quantitat comprada @@ -24,17 +35,25 @@ ca: title: Nova transacció show: additional: Addicional + amount_label: Import + buy: Compra category_label: Categoria cost_per_share_label: Cost per acció date_label: Data delete: Elimina delete_subtitle: Aquesta acció no es pot desfer - delete_title: Elimina operació + delete_title: Elimina l'operació details: Detalls - exclude_subtitle: Aquesta operació no s'inclourà en informes ni càlculs + exclude_subtitle: Aquesta operació no s'inclourà als informes ni als càlculs exclude_title: Exclou de l'analítica + fee_label: Comissió de la transacció no_category: Sense categoria note_label: Nota note_placeholder: Afegeix aquí qualsevol nota addicional... + provider_disabled_warning: Actualitzacions de preu en pausa — el proveïdor %{provider} + està desactivat. Torna a activar-lo a la configuració o reassigna la posició + a un altre proveïdor. quantity_label: Quantitat + sell: Venda settings: Configuració + type_label: Tipus diff --git a/config/locales/views/transactions/ca.yml b/config/locales/views/transactions/ca.yml index dc3b94981..e147de78d 100644 --- a/config/locales/views/transactions/ca.yml +++ b/config/locales/views/transactions/ca.yml @@ -1,6 +1,148 @@ --- ca: transactions: + activity_labels: + buy: Compra + contribution: Aportació + dividend: Dividend + exchange: Bescanvi + fee: Comissió + interest: Interès + other: Altres + reinvestment: Reinversió + sell: Venda + sweep_in: Sweep entrant + sweep_out: Sweep sortint + transfer: Transferència + withdrawal: Retirada + attachments: + attachment_deleted: Adjunt eliminat correctament + browse_to_add: Cerca per afegir fitxers + cannot_exceed: No es poden superar %{count} adjunts per transacció + delete_failed: No s'ha pogut eliminar l'adjunt. Torna-ho a provar o contacta + amb suport. + failed_delete: 'No s''ha pogut eliminar l''adjunt: %{error}' + failed_upload: 'No s''ha pogut pujar l''adjunt: %{error}' + files: + one: Fitxer (1) + other: Fitxers (%{count}) + max_reached: S'ha arribat al límit de fitxers (%{count}/%{max}). Elimina un + fitxer existent per pujar-ne un altre. + no_attachments: Encara no hi ha adjunts + no_files_selected: No s'ha seleccionat cap fitxer per pujar + select_up_to: Selecciona fins a %{count} fitxers (imatges o PDF, màx %{size}MB + cadascun) • %{used} d'%{count} utilitzats + upload: Puja + upload_failed: No s'ha pogut pujar l'adjunt. Torna-ho a provar o contacta amb + suport. + uploaded_many: "%{count} adjunts pujats correctament" + uploaded_one: Adjunt pujat correctament + bulk_updates: + new: + cancel: Cancel·la + category_label: Categoria + category_prompt: Selecciona una categoria + date_label: Data + header_title: Edita transaccions + merchant_label: Comerç + merchant_prompt: Selecciona un comerç + name_label: Nom + name_placeholder: Introdueix un nom que s'aplicarà a les transaccions seleccionades + none: "(cap)" + notes_label: Notes + notes_placeholder: Introdueix una nota que s'aplicarà a les transaccions seleccionades + overview: Resum + save: Desa + tags_label: Etiquetes + transactions_section: Transaccions + categorizes: + create: + categorized: + one: 1 transacció categoritzada + other: "%{count} transaccions categoritzades" + rule_creation_failed: Transaccions categoritzades, però no s'ha pogut crear + la regla (potser ja existeix). + entry_row: + assign_category_select: Assigna categoria per a %{name} + include_checkbox: Inclou %{name} + show: + all_done: Totes les transaccions estan categoritzades + assign_category: Assigna una categoria + assign_category_prompt: "→ assigna" + col_amount: Import + col_category: Categoria + col_date: Data + col_transaction: Transacció + create_rule_label: Crea regla de categorització + exit: Surt + filter_placeholder: Cerca categories... + no_categories: No hi ha categories coincidents + remaining: + one: Queda 1 transacció sense categoritzar + other: Queden %{count} transaccions sense categoritzar + rule_description_prefix: Les futures transaccions de tipus %{type} amb nom + que contingui + rule_description_suffix: també haurien de rebre aquesta categoria. + skip: Omet + transaction_count: + one: 1 transacció + other: "%{count} transaccions" + transactions_hint: Desmarca per excloure una transacció, o assigna-li una + categoria diferent directament a la seva fila. + type_expense: Despesa + type_income: Ingrés + convert_to_trade: + account_label: 'Compte:' + amount_label: 'Import:' + cancel: Cancel·la + conversion_note: 'Convertit de la transacció: %{original_name} (%{original_date})' + date_label: 'Data:' + description: Converteix aquesta transacció en una operació amb detalls de valor + errors: + already_converted: Aquesta transacció ja s'ha convertit o exclòs + conversion_failed: 'No s''ha pogut convertir la transacció: %{error}' + enter_qty_or_price: Introdueix la quantitat o el preu per acció. L'altre es + calcularà a partir de l'import de la transacció. + enter_ticker: Introdueix un símbol de cotització + invalid_qty_or_price: Quantitat o preu invàlids. Introdueix valors positius + vàlids. + not_investment_account: Només es poden convertir en operacions les transaccions + de comptes d'inversió + security_not_found: El valor seleccionat ja no existeix. Selecciona'n un altre. + select_security: Selecciona o introdueix un valor + unexpected_error: 'Error inesperat durant la conversió: %{error}' + exchange_hint: Deixa-ho en blanc per detectar-ho automàticament + exchange_label: Mercat (opcional) + exchange_placeholder: XNAS + price_hint: Preu per acció (%{currency}) + price_label: Preu per acció + price_mismatch_message: El teu preu (%{entered_price}/acció) difereix significativament + del preu de mercat actual de %{ticker} (%{market_price}). Si sembla incorrecte, + potser has seleccionat el valor equivocat — prova "Introdueix una cotització + personalitzada" per especificar el correcte. + price_mismatch_title: El preu pot no coincidir + price_placeholder: p. ex. 52,15 + qty_or_price_hint: Introdueix com a mínim la quantitat O el preu. L'altre es + calcularà a partir de l'import de la transacció (%{amount}). + quantity_hint: Nombre d'accions operades + quantity_label: Quantitat (accions) + quantity_placeholder: p. ex. 20 + security_custom: "+ Introdueix un ticker personalitzat" + security_label: Valor + security_not_listed_hint: No veus el teu valor? Selecciona "Introdueix un ticker + personalitzat" al final de la llista. + security_prompt: Selecciona un valor... + submit: Converteix en operació + success: Transacció convertida en operació + ticker_hint: Introdueix el símbol del valor (p. ex. AAPL, MSFT) + ticker_placeholder: AAPL + ticker_search_hint: Cerca per símbol o nom d'empresa, o escriu un símbol personalitzat + ticker_search_placeholder: Cerca un símbol... + title: Converteix en operació de valors + trade_type_hint: Compra o ven accions d'un valor + trade_type_label: Tipus d'operació + create: + created: Transacció creada dismiss_duplicate: failure: No s'ha pogut rebutjar la suggerència de duplicat success: Mantingudes com a transaccions separades @@ -9,6 +151,7 @@ ca: account_prompt: Selecciona un compte amount: Import category: Categoria + category_label: Categoria category_prompt: Selecciona una categoria date: Data description: Descripció @@ -16,6 +159,7 @@ ca: details: Detalls expense: Despesa income: Ingrés + merchant_label: Comerç none: "(cap)" note_label: Notes note_placeholder: Introdueix una nota @@ -25,25 +169,57 @@ ca: header: edit_categories: Edita categories edit_imports: Edita importacions - edit_merchants: Edita comerciants + edit_merchants: Edita comerços edit_tags: Edita etiquetes import: Importa index: + categorize_button: + one: Categoritza (1) + other: Categoritza (%{count}) + edit_categories: Edita categories + edit_imports: Edita importacions + edit_merchants: Edita comerços + edit_rules: Edita regles + edit_tags: Edita etiquetes import: Importa + new_rule: Nova regla + new_transaction: Nova transacció + title: Transaccions transaction: transacció transactions: transaccions + keep_both: 'No, mantén-les totes dues' + list: + drag_drop_subtitle: Puja transaccions directament + drag_drop_title: Deixa anar el CSV per importar + transaction: transacció + transactions: transaccions + mark_recurring: Marca com a recurrent + mark_recurring_subtitle: Segueix-ho com a transacció recurrent. La variància d'import + es calcula automàticament a partir dels últims 6 mesos de transaccions similars. + mark_recurring_title: Transacció recurrent merge_duplicate: failure: No s'han pogut fusionar les transaccions success: Les transaccions s'han fusionat correctament new: new_transaction: Nova transacció + pending_duplicate_merge: + confirm_title: Fusiona amb la transacció publicada (%{posted_amount}) + possible_duplicate: Duplicat? + possible_duplicate_short: Dup? + reject_title: Mantén com a transaccions separades + review_recommended: Revisa + review_recommended_short: Rev + potential_duplicate_description: Aquesta transacció pendent pot ser la mateixa + que la transacció publicada a sota. Si és així, fusiona-les per evitar comptabilitzar + dues vegades. + potential_duplicate_title: S'ha detectat un duplicat possible search: filters: account: Compte amount: Import category: Categoria date: Data - merchant: Comerciant + merchant: Comerç status: Estat tag: Etiqueta type: Tipus @@ -62,6 +238,9 @@ ca: on_or_before: el %{date} o abans pending: Pendent transfer: Transferència + date_filter: + end_date: Data de fi + start_date: Data d'inici status_filter: confirmed: Confirmada pending: Pendent @@ -70,6 +249,8 @@ ca: income: Ingrés transfer: Transferència form: + filter: Filtra + search_placeholder: Cerca transaccions... toggle_selection_checkboxes: Commuta totes les caselles menu: account_filter: Compte @@ -79,7 +260,7 @@ ca: category_filter: Categoria clear_filters: Neteja filtres date_filter: Data - merchant_filter: Comerciant + merchant_filter: Comerç status_filter: Estat tag_filter: Etiqueta type_filter: Tipus @@ -87,45 +268,102 @@ ca: equal_to: igual a greater_than: major que less_than: menor que + selection_bar: + duplicate: Duplica + edit: Edita + selected: seleccionades show: account_label: Compte + activity_type: Tipus d'activitat + activity_type_description: Tipus d'activitat d'inversió (compra, venda, dividend, + etc.). Detectat automàticament o establert manualment. + additional_details: Detalls addicionals amount: Import + attachments: Adjunts category_label: Categoria + convert: Converteix + convert_to_trade_button: Converteix en operació + convert_to_trade_description: Converteix aquesta transacció en una operació + de compra o venda amb detalls de valor per al seguiment de la cartera. + convert_to_trade_title: Converteix en operació de valors date_label: Data delete: Elimina delete_subtitle: Això eliminarà permanentment la transacció, afectarà els teus saldos històrics i no es podrà desfer. - delete_title: Eliminar transacció + delete_title: Elimina la transacció + description: Descripció details: Detalls - keep_both: No, mantenir ambdós - mark_recurring: Marcar com a recurrent - mark_recurring_subtitle: Segueix-ho com a transacció recurrent. La variància d'import - es calcula automàticament a partir dels últims 6 mesos de transaccions similars. + exclude: Exclou + exclude_description: Les transaccions excloses es retiraran dels càlculs i informes + de pressupost. + keep_both: 'No, mantén-les totes dues' + loan_payment: Pagament de préstec + mark_recurring: Marca com a recurrent + mark_recurring_subtitle: Segueix-ho com a transacció recurrent. La variància + d'import es calcula automàticament a partir dels últims 6 mesos de transaccions + similars. mark_recurring_title: Transacció recurrent - merchant_label: Comerciant + memo: Memo + merchant_label: Comerç merge_duplicate: Sí, fusiona-les name_label: Nom nature: Tipus none: "(cap)" note_label: Notes note_placeholder: Introdueix una nota + one_time_description: Les transaccions puntuals s'exclouran de determinats càlculs + i informes de pressupost per ajudar-te a veure el que realment és important. + one_time_title: "%{type} puntual" + open_matcher: Obre l'aparellador overview: Resum - potential_duplicate_description: Aquesta transacció pendent pot ser la mateixa que - la transacció publicada a sota. Si és així, fusiona-les per evitar comptabilitzar dues vegades. - potential_duplicate_title: S'ha detectat duplicat possible + payee: Beneficiari + pending_duplicate_merger_button: Obre el fusionador + pending_duplicate_merger_description: Fusiona manualment aquesta transacció + pendent amb la seva versió publicada. + pending_duplicate_merger_title: Duplicat d'una transacció publicada? + potential_duplicate_description: Aquesta transacció pendent pot ser la mateixa + que la transacció publicada a sota. Si és així, fusiona-les per evitar comptabilitzar + dues vegades. + potential_duplicate_title: S'ha detectat un duplicat possible + provider_extras: Extres del proveïdor settings: Configuració + tab_transactions: Transaccions + tab_upcoming: Properes tags_label: Etiquetes - uncategorized: "(sense categoritzar)" - loan_payment: Pagament de préstec transfer: Transferència + transfer_matcher_description: Connecta aquesta transacció amb la seva contrapart + en un altre compte. + transfer_or_debt_payment: Transferència o pagament de deute? + uncategorized: "(sense categoritzar)" + split_parent_row: + split_label: Divisió + transfer_match: + auto_matched: Aparellada + auto_matched_short: A/A + confirm_match: Confirma la coincidència + payment_confirmed: Pagament confirmat + reject_match: Rebutja la coincidència + transfer_confirmed: Transferència confirmada + summary: + expenses: Despeses + income: Ingressos + inflow: Entrada + outflow: Sortida + total_transactions: Total de transaccions toggle_recurring_section: Mostra/Amaga les transaccions recurrents properes transaction: + activity_type_tooltip: Tipus d'activitat d'inversió + linked_with_provider: Vinculat amb %{provider} pending: Pendent pending_tooltip: Transacció pendent — pot canviar quan es publiqui - linked_with_provider: Vinculat amb %{provider} possible_duplicate: Duplicat? potential_duplicate_tooltip: Això pot ser un duplicat d'una altra transacció review_recommended: Revisa review_recommended_tooltip: Diferència d'import important — es recomana revisar per comprovar si és un duplicat + split: Divisió + split_child_tooltip: Part d'una transacció dividida + split_tooltip: Aquesta transacció s'ha dividit en múltiples entrades unknown_name: Transacció desconeguda + update: + updated: Transacció actualitzada diff --git a/config/locales/views/transactions/en.yml b/config/locales/views/transactions/en.yml index 5cde05d72..d051ef130 100644 --- a/config/locales/views/transactions/en.yml +++ b/config/locales/views/transactions/en.yml @@ -3,12 +3,27 @@ en: transactions: bulk_updates: new: + cancel: Cancel + category_label: Category + category_prompt: Select a category + date_label: Date + header_title: Edit transactions + merchant_label: Merchant + merchant_prompt: Select a merchant name_label: Name name_placeholder: Enter a name that will be applied to selected transactions + none: "(none)" + notes_label: Notes + notes_placeholder: Enter a note that will be applied to selected transactions + overview: Overview + save: Save + tags_label: Tags + transactions_section: Transactions unknown_name: Unknown transaction selection_bar: duplicate: Duplicate edit: Edit + selected: selected form: details: Details account: Account @@ -111,6 +126,13 @@ en: keep_both: No, keep both split_parent_row: split_label: "Split" + transfer_match: + auto_matched: Auto-matched + auto_matched_short: A/M + confirm_match: Confirm match + payment_confirmed: Payment is confirmed + reject_match: Reject match + transfer_confirmed: Transfer is confirmed transaction: pending: Pending pending_tooltip: Pending transaction — may change when posted diff --git a/config/locales/views/transactions/hu.yml b/config/locales/views/transactions/hu.yml index ed516d633..bd12ab3c2 100644 --- a/config/locales/views/transactions/hu.yml +++ b/config/locales/views/transactions/hu.yml @@ -3,17 +3,34 @@ hu: transactions: bulk_updates: new: + cancel: Mégse + category_label: Kategória + category_prompt: Válassz kategóriát + date_label: Dátum + header_title: Tranzakciók szerkesztése + merchant_label: Kereskedő + merchant_prompt: Válassz kereskedőt name_label: Név name_placeholder: Add meg a kiválasztott tranzakciókra alkalmazandó nevet + none: "(egyik sem)" + notes_label: Megjegyzések + notes_placeholder: Add meg a kiválasztott tranzakciókra alkalmazandó megjegyzést + overview: Áttekintés + save: Mentés + tags_label: Címkék + transactions_section: Tranzakciók unknown_name: Ismeretlen tranzakció selection_bar: duplicate: Duplikálás edit: Szerkesztés + selected: kijelölve form: + details: Részletek account: Számla account_prompt: Válassz számlát amount: Összeg category: Kategória + category_label: Kategória category_prompt: Válassz kategóriát date: Dátum description: Leírás @@ -27,9 +44,22 @@ hu: submit: Tranzakció hozzáadása tags_label: Címkék transfer: Átutalás + create: + created: Tranzakció létrehozva + update: + updated: Tranzakció frissítve new: new_transaction: Új tranzakció show: + keep_both: Nem, mindkettőt tartsd meg + loan_payment: Hiteltörlesztés + mark_recurring: Ismétlődőként jelölés + mark_recurring_subtitle: Kövesd ezt ismétlődő tranzakcióként. Az összegeltérés automatikusan kiszámításra kerül az elmúlt 6 hónap hasonló tranzakcióiból. + mark_recurring_title: Ismétlődő tranzakció + merge_duplicate: Igen, egyesítsd őket + potential_duplicate_description: Ez a függőben lévő tranzakció megegyezhet az alábbi közzétett tranzakcióval. Ha igen, egyesítsd őket a kettős könyvelés elkerülése érdekében. + potential_duplicate_title: Lehetséges duplikátum észlelve + transfer: Átutalás account_label: Számla amount: Összeg category_label: Kategória @@ -64,6 +94,14 @@ hu: tab_transactions: Tranzakciók tab_upcoming: Közelgő uncategorized: "(kategorizálatlan)" + additional_details: "További részletek" + payee: "Kedvezményezett" + description: "Leírás" + memo: "Megjegyzés" + provider_extras: "Szolgáltatói kiegészítők" + transfer_or_debt_payment: "Átutalás vagy adósságtörlesztés?" + open_matcher: "Összevonó megnyitása" + convert: "Konvertálás" activity_labels: buy: Vétel sell: Eladás @@ -125,9 +163,17 @@ hu: edit_tags: Címkék szerkesztése import: Import index: + title: "Tranzakciók" transaction: tranzakció transactions: tranzakció import: Import + new_rule: "Új szabály" + edit_rules: "Szabályok szerkesztése" + edit_categories: "Kategóriák szerkesztése" + edit_tags: "Címkék szerkesztése" + edit_merchants: "Kereskedők szerkesztése" + edit_imports: "Importok szerkesztése" + new_transaction: "Új tranzakció" categorize_button: one: "Kategorizálás (1)" other: "Kategorizálás (%{count})" @@ -224,6 +270,9 @@ hu: unexpected_error: "Váratlan hiba a konverzió során: %{error}" searches: filters: + date_filter: + start_date: "Kezdő dátum" + end_date: "Záró dátum" amount_filter: equal_to: Egyenlő greater_than: Nagyobb, mint @@ -262,6 +311,8 @@ hu: less_than: kisebb, mint form: toggle_selection_checkboxes: Összes jelölőnégyzet be/ki + search_placeholder: "Tranzakciók keresése..." + filter: "Szűrő" attachments: cannot_exceed: "Tranzakciónként legfeljebb %{count} melléklet engedélyezett" uploaded_one: "Melléklet sikeresen feltöltve" diff --git a/config/locales/views/transfer_matches/ca.yml b/config/locales/views/transfer_matches/ca.yml new file mode 100644 index 000000000..b4890ec6e --- /dev/null +++ b/config/locales/views/transfer_matches/ca.yml @@ -0,0 +1,27 @@ +--- +ca: + transfer_matches: + create: + success: Transferència creada + matching_fields: + create_new_transaction: Crea una nova transacció + match_existing_recommended: Aparella amb una transacció existent (recomanat) + matching_method: Mètode d'aparellament + matching_transaction: Transacció coincident + no_matching_transactions: No s'ha trobat cap transacció que coincideixi amb + la dels teus altres comptes. Selecciona un compte i et crearem una nova transacció + d'entrada. + select_method: Selecciona un mètode per aparellar les teves transaccions. + target_account: Compte de destinació + new: + create_transfer_match: Crea l'aparellament de transferència + from_account: Compte d'origen + from_account_named: 'Compte d''origen: %{name}' + header: + subtitle: Aparella la transacció corresponent a un altre compte o crea'n una + de nova si no existeix. + title: Aparella la transferència o el pagament + inflow_transaction: Transacció d'entrada + outflow_transaction: Transacció de sortida + to_account: Compte de destinació + to_account_named: 'Compte de destinació: %{name}' diff --git a/config/locales/views/transfer_matches/hu.yml b/config/locales/views/transfer_matches/hu.yml index 0a6d73cc4..f4ac47f51 100644 --- a/config/locales/views/transfer_matches/hu.yml +++ b/config/locales/views/transfer_matches/hu.yml @@ -1,7 +1,24 @@ --- hu: transfer_matches: + create: + success: Átutalás létrehozva new: header: title: Átutalás vagy fizetés párosítása subtitle: Párosítsd a megfelelő tranzakciót egy másik számlán, vagy hozz létre újat, ha még nem létezik. + from_account: Forrásszámla + from_account_named: "Forrásszámla: %{name}" + to_account: Célszámla + to_account_named: "Célszámla: %{name}" + outflow_transaction: Kiáramlási tranzakció + inflow_transaction: Beáramlási tranzakció + create_transfer_match: Átutalás-egyezés létrehozása + matching_fields: + select_method: Válassz módszert a tranzakciók párosításához. + match_existing_recommended: Meglévő tranzakció párosítása (ajánlott) + create_new_transaction: Új tranzakció létrehozása + matching_method: Párosítási módszer + matching_transaction: Párosított tranzakció + target_account: Célszámla + no_matching_transactions: Nem találtunk párosítható tranzakciókat a többi számlán. Kérlek válassz számlát, és létrehozunk egy új beáramlási tranzakciót. diff --git a/config/locales/views/transfers/ca.yml b/config/locales/views/transfers/ca.yml index d94033ceb..dcce62762 100644 --- a/config/locales/views/transfers/ca.yml +++ b/config/locales/views/transfers/ca.yml @@ -7,25 +7,43 @@ ca: success: Transferència eliminada form: amount: Import + calculate_rate_tab: Calcula la taxa de canvi + convert_tab: Converteix amb la taxa de canvi date: Data + destination_amount: Import rebut + destination_amount_display: 'Import rebut: %{amount}' + exchange_rate: Taxa de canvi + exchange_rate_display: 'Taxa de canvi: %{rate}' + exchange_rate_help: Tria com introduir l'import de la transferència. expense: Despesa from: Des de income: Ingrés select_account: Selecciona un compte + source_amount: Import enviat submit: Crea transferència - to: Fins a + to: A transfer: Transferència new: title: Nova transferència show: + amount: Import + category: Categoria + date: Data delete: Elimina transferència - delete_subtitle: Això eliminarà la transferència. No s'eliminaran les transaccions + delete_subtitle: Això elimina la transferència. No s'eliminaran les transaccions associades. delete_title: Vols eliminar la transferència? details: Detalls + from: Des de + mark_recurring: Marca com a recurrent + mark_recurring_subtitle: Fes el seguiment d'aquesta transferència com a patró + recurrent al feed de properes i a la pàgina de recurrents. + mark_recurring_title: Marca la transferència com a recurrent note_label: Notes note_placeholder: Afegeix una nota a aquesta transferència overview: Resum settings: Configuració + to: A + uncategorized: Sense categoria update: success: Transferència actualitzada diff --git a/config/locales/views/transfers/hu.yml b/config/locales/views/transfers/hu.yml index de8535642..18df870c0 100644 --- a/config/locales/views/transfers/hu.yml +++ b/config/locales/views/transfers/hu.yml @@ -30,9 +30,18 @@ hu: delete_subtitle: Ez eltávolítja az átutalást. Az alapul szolgáló tranzakciókat nem törli. delete_title: Eltávolítja az átutalást? details: Részletek + mark_recurring: Ismétlődőként jelölés + mark_recurring_subtitle: Kövesd ezt az átutalást ismétlődő mintaként a közelgő eseménylistában és az ismétlődők oldalon. + mark_recurring_title: Átutalás ismétlődőként jelölése note_label: Megjegyzések note_placeholder: Adj meg egy megjegyzést ehhez az átutaláshoz overview: Áttekintés settings: Beállítások + from: Honnan + to: Hova + date: Dátum + amount: Összeg + category: Kategória + uncategorized: Kategorizálatlan update: success: Átutalás frissítve diff --git a/config/locales/views/users/ca.yml b/config/locales/views/users/ca.yml index fa1cef12c..972c53999 100644 --- a/config/locales/views/users/ca.yml +++ b/config/locales/views/users/ca.yml @@ -1,21 +1,31 @@ --- ca: - no_pending_change: No hi ha canvis pendents users: destroy: success: El teu compte s'ha eliminat. resend_confirmation_email: - no_pending_change: No hi ha canvi de correu electrònic actualment pendent! - success: S'ha posat a cua un nou correu electrònic de confirmació per ser enviat. + no_pending_change: Actualment no hi ha cap canvi de correu electrònic pendent! + success: S'ha posat a la cua un nou correu electrònic de confirmació per enviar-se. reset: success: El teu compte s'ha restablert. Les dades s'eliminaran en segon pla - en uns instants. - unauthorized: No estàs autoritzat/da per realitzar aquesta acció. + d'aquí a una estona. + unauthorized: No estàs autoritzat/da per fer aquesta acció reset_with_sample_data: success: El teu compte s'ha restablert i s'estan preparant dades de mostra. - Veureu dades de demostració en breu. + Veuràs les dades de demostració d'aquí a poc. update: email_change_failed: No s'ha pogut canviar l'adreça de correu electrònic. - email_change_initiated: Revisa el teu nou correu electrònic per instruccions + email_change_initiated: Revisa el teu nou correu electrònic per veure les instruccions de confirmació. success: El teu perfil s'ha actualitzat. + roles: + admin: Administrador/a + member: Membre + super_admin: Superadministrador/a + user_menu: + changelog: Registre de canvis + contact: Contacte + feedback: Comentaris + log_out: Tanca la sessió + settings: Configuració + version: Versió diff --git a/config/locales/views/users/en.yml b/config/locales/views/users/en.yml index a10da27c5..9537d57ba 100644 --- a/config/locales/views/users/en.yml +++ b/config/locales/views/users/en.yml @@ -16,7 +16,12 @@ en: unauthorized: You are not authorized to perform this action reset_with_sample_data: success: Your account has been reset and sample data is being prepared. You’ll see demo data shortly. + roles: + admin: Admin + member: Member + super_admin: Super admin user_menu: + aria_label: Open account menu version: Version settings: Settings changelog: Changelog diff --git a/config/locales/views/users/hu.yml b/config/locales/views/users/hu.yml index 8d0a73f82..6cc4bdb4b 100644 --- a/config/locales/views/users/hu.yml +++ b/config/locales/views/users/hu.yml @@ -15,3 +15,10 @@ hu: unauthorized: Nincs jogosultságod ezt a műveletet végrehajtani. reset_with_sample_data: success: A fiókod visszaállítva, és a mintaadatok előkészítése folyamatban van. Hamarosan megjelennek a demóadatok. + user_menu: + version: Verzió + settings: Beállítások + changelog: Változásnapló + feedback: Visszajelzés + contact: Kapcsolat + log_out: Kijelentkezés diff --git a/config/locales/views/valuations/ca.yml b/config/locales/views/valuations/ca.yml index c16d76481..a7e6b567d 100644 --- a/config/locales/views/valuations/ca.yml +++ b/config/locales/views/valuations/ca.yml @@ -1,6 +1,31 @@ --- ca: valuations: + confirmation_contents: + account_balance: saldo del compte + asset_value: valor de l'actiu + balance: saldo + brokerage_cash: Efectiu del compte de valors + change: canvi + credit_card_balance: saldo de la targeta de crèdit + crypto_balance: saldo de cripto + holdings_value: Valor de les posicions + liability_balance: saldo del passiu + loan_balance: saldo del préstec + 'on': el + property_value: valor de l'immoble + recalculate_notice: Totes les transaccions i saldos futurs es recalcularan segons + aquest %{change_or_update}. + this_will: Això %{action_verb} el valor del compte el + to: a + to_colon: 'a:' + total_account_value: Valor total del compte + update: actualització + vehicle_value: valor del vehicle + create: + account_updated: Compte actualitzat + errors: + amount_required: L'import és obligatori form: amount: Import submit: Afegeix actualització de saldo @@ -10,7 +35,7 @@ ca: change: canvi date: data new_entry: Nova entrada - no_valuations: Encara no hi ha valoracions per aquest compte + no_valuations: Encara no hi ha valoracions per a aquest compte valuations: Valor value: valor new: @@ -19,14 +44,20 @@ ca: title: Nou saldo show: amount: Import + amount_label: Valor del compte en la data date_label: Data delete: Elimina delete_subtitle: Aquesta acció no es pot desfer delete_title: Elimina entrada details: Detalls name_label: Nom - name_placeholder: Introdueix un nom per aquesta entrada + name_placeholder: Introdueix un nom per a aquesta entrada note_label: Notes note_placeholder: Afegeix qualsevol detall addicional sobre aquesta entrada + opening_balance: Saldo inicial overview: Resum settings: Configuració + update_value: Actualitza el valor + update: + account_updated: Compte actualitzat + entry_updated: Entrada actualitzada diff --git a/config/locales/views/valuations/hu.yml b/config/locales/views/valuations/hu.yml index 53ad3986b..f00a1cfa8 100644 --- a/config/locales/views/valuations/hu.yml +++ b/config/locales/views/valuations/hu.yml @@ -1,6 +1,33 @@ --- hu: valuations: + confirmation_contents: + this_will: "Ez %{action_verb} a számlaértéket" + to_colon: "erre:" + total_account_value: Számla teljes értéke + holdings_value: Portfólió értéke + brokerage_cash: Brókeri készpénz + account_balance: számlaegyenleg + credit_card_balance: hitelkártya-egyenleg + loan_balance: hitelegyenleg + property_value: ingatlan értéke + vehicle_value: jármű értéke + crypto_balance: kriptoegyenleg + asset_value: vagyonérték + liability_balance: kötelezettségegyenleg + balance: egyenleg + "on": "ezen:" + to: "erre:" + recalculate_notice: "Minden jövőbeli tranzakció és egyenleg újraszámításra kerül ezen %{change_or_update} alapján." + change: változás + update: frissítés + create: + account_updated: Számla frissítve + update: + account_updated: Számla frissítve + entry_updated: Bejegyzés frissítve + errors: + amount_required: Az összeg megadása kötelező form: amount: Összeg submit: Egyenlegfrissítés hozzáadása @@ -17,6 +44,7 @@ hu: title: Új egyenleg show: amount: Összeg + amount_label: Számlaérték a megadott napon date_label: Dátum delete: Törlés delete_subtitle: Ez a művelet nem vonható vissza @@ -28,3 +56,5 @@ hu: note_placeholder: Adj meg további részleteket erről a bejegyzésről overview: Áttekintés settings: Beállítások + opening_balance: "Nyitóegyenleg" + update_value: Érték frissítése diff --git a/config/locales/views/vehicles/ca.yml b/config/locales/views/vehicles/ca.yml index cda63ed3f..1f5d7d43e 100644 --- a/config/locales/views/vehicles/ca.yml +++ b/config/locales/views/vehicles/ca.yml @@ -23,4 +23,13 @@ ca: trend: Tendència unknown: Desconegut year: Any - + tabs: + overview: + current_price: Preu actual + edit_account_details: Edita els detalls del compte + make_model: Marca i model + mileage: Quilometratge + purchase_price: Preu de compra + trend: Tendència + unknown: Desconegut + year: Any diff --git a/config/locales/views/vehicles/hu.yml b/config/locales/views/vehicles/hu.yml index dfad86013..6ad9810c2 100644 --- a/config/locales/views/vehicles/hu.yml +++ b/config/locales/views/vehicles/hu.yml @@ -23,3 +23,13 @@ hu: trend: Tendencia unknown: Ismeretlen year: Évjárat + tabs: + overview: + current_price: Jelenlegi ár + make_model: Márka és modell + mileage: Kilométeróra-állás + purchase_price: Vételár + trend: Tendencia + unknown: Ismeretlen + year: Évjárat + edit_account_details: "Számlaadatok szerkesztése" diff --git a/config/routes.rb b/config/routes.rb index 656a6c285..7d5ec7e2c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -236,8 +236,9 @@ Rails.application.routes.draw do namespace :settings do resource :profile, only: [ :show, :destroy ] - resource :preferences, only: :show + resource :preferences, only: %i[show update] resource :appearance, only: %i[show update] + resource :debug, only: :show resource :hosting, only: %i[show update] do delete :clear_cache, on: :collection delete :disconnect_external_assistant, on: :collection @@ -656,8 +657,8 @@ Rails.application.routes.draw do get "up" => "rails/health#show", as: :rails_health_check # Render dynamic PWA files from app/views/pwa/* - get "service-worker" => "rails/pwa#service_worker", as: :pwa_service_worker - get "manifest" => "rails/pwa#manifest", as: :pwa_manifest + get "service-worker" => "pwa#service_worker", as: :pwa_service_worker, defaults: { format: :js } + get "manifest" => "pwa#manifest", as: :pwa_manifest, defaults: { format: :json } get "imports/:import_id/upload/sample_csv", to: "import/uploads#sample_csv", as: :import_upload_sample_csv diff --git a/config/schedule.yml b/config/schedule.yml index 3e1b0291a..6e1c8bb3a 100644 --- a/config/schedule.yml +++ b/config/schedule.yml @@ -31,6 +31,12 @@ clean_data: queue: "scheduled" description: "Cleans up old data (e.g., expired merchant associations, expired archived exports)" +clean_debug_log_entries: + cron: "30 3 * * *" # daily at 3:30 AM + class: "DebugLogCleanupJob" + queue: "scheduled" + description: "Deletes debug log entries older than 90 days" + clean_inactive_families: cron: "0 4 * * *" # daily at 4:00 AM class: "InactiveFamilyCleanerJob" diff --git a/db/migrate/20260517122500_create_debug_log_entries.rb b/db/migrate/20260517122500_create_debug_log_entries.rb new file mode 100644 index 000000000..34755fb5a --- /dev/null +++ b/db/migrate/20260517122500_create_debug_log_entries.rb @@ -0,0 +1,35 @@ +class CreateDebugLogEntries < ActiveRecord::Migration[7.2] + def up + create_table :debug_log_entries, id: :uuid do |t| + t.string :category, null: false + t.string :level, null: false + t.text :message, null: false + t.string :source, null: false + t.jsonb :metadata, null: false, default: {} + t.references :family, type: :uuid, foreign_key: { on_delete: :nullify }, null: true + t.references :account, type: :uuid, foreign_key: { on_delete: :nullify }, null: true + t.references :user, type: :uuid, foreign_key: { on_delete: :nullify }, null: true + t.references :account_provider, type: :uuid, foreign_key: { on_delete: :nullify }, null: true + t.string :provider_key + + t.timestamps + end + + add_check_constraint :debug_log_entries, + "level IN ('debug', 'info', 'warn', 'error')", + name: "chk_debug_log_entries_level" + + add_index :debug_log_entries, :created_at + add_index :debug_log_entries, :category + add_index :debug_log_entries, :level + add_index :debug_log_entries, :source + add_index :debug_log_entries, :provider_key + add_index :debug_log_entries, [ :category, :created_at ] + add_index :debug_log_entries, [ :provider_key, :created_at ] + end + + def down + remove_check_constraint :debug_log_entries, name: "chk_debug_log_entries_level", if_exists: true + drop_table :debug_log_entries + end +end diff --git a/db/migrate/20260519092118_rename_beta_features_enabled_preference.rb b/db/migrate/20260519092118_rename_beta_features_enabled_preference.rb new file mode 100644 index 000000000..6e9f36ea3 --- /dev/null +++ b/db/migrate/20260519092118_rename_beta_features_enabled_preference.rb @@ -0,0 +1,30 @@ +class RenameBetaFeaturesEnabledPreference < ActiveRecord::Migration[7.2] + # Renames the JSONB preference key `beta_features_enabled` to + # `preview_features_enabled` for every user that has the old key set. + # The gate was introduced in PR #1829 and never moved past the Goals + # rollout, so opt-in counts are small — but copying the value across keeps + # any early adopters opted in after the rename. + def up + execute(<<~SQL) + UPDATE users + SET preferences = (preferences - 'beta_features_enabled') + || jsonb_build_object( + 'preview_features_enabled', + COALESCE(preferences->'preview_features_enabled', preferences->'beta_features_enabled') + ) + WHERE preferences ? 'beta_features_enabled' + SQL + end + + def down + execute(<<~SQL) + UPDATE users + SET preferences = (preferences - 'preview_features_enabled') + || jsonb_build_object( + 'beta_features_enabled', + COALESCE(preferences->'beta_features_enabled', preferences->'preview_features_enabled') + ) + WHERE preferences ? 'preview_features_enabled' + SQL + end +end diff --git a/db/migrate/20260519100000_add_sure_import_verification_to_imports.rb b/db/migrate/20260519100000_add_sure_import_verification_to_imports.rb new file mode 100644 index 000000000..d73a24fd5 --- /dev/null +++ b/db/migrate/20260519100000_add_sure_import_verification_to_imports.rb @@ -0,0 +1,6 @@ +class AddSureImportVerificationToImports < ActiveRecord::Migration[7.2] + def change + add_column :imports, :expected_record_counts, :jsonb, null: false, default: {} + add_column :imports, :readback_verification, :jsonb, null: false, default: {} + end +end diff --git a/db/schema.rb b/db/schema.rb index 48a5ae2cc..3606b67e7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2026_05_14_120002) do +ActiveRecord::Schema[7.2].define(version: 2026_05_19_100000) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" enable_extension "plpgsql" @@ -476,6 +476,33 @@ ActiveRecord::Schema[7.2].define(version: 2026_05_14_120002) do t.index ["enrichable_type", "enrichable_id"], name: "index_data_enrichments_on_enrichable" end + create_table "debug_log_entries", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + t.string "category", null: false + t.string "level", null: false + t.text "message", null: false + t.string "source", null: false + t.jsonb "metadata", default: {}, null: false + t.uuid "family_id" + t.uuid "account_id" + t.uuid "user_id" + t.uuid "account_provider_id" + t.string "provider_key" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["account_id"], name: "index_debug_log_entries_on_account_id" + t.index ["account_provider_id"], name: "index_debug_log_entries_on_account_provider_id" + t.index ["category", "created_at"], name: "index_debug_log_entries_on_category_and_created_at" + t.index ["category"], name: "index_debug_log_entries_on_category" + t.index ["created_at"], name: "index_debug_log_entries_on_created_at" + t.index ["family_id"], name: "index_debug_log_entries_on_family_id" + t.index ["level"], name: "index_debug_log_entries_on_level" + t.index ["provider_key", "created_at"], name: "index_debug_log_entries_on_provider_key_and_created_at" + t.index ["provider_key"], name: "index_debug_log_entries_on_provider_key" + t.index ["source"], name: "index_debug_log_entries_on_source" + t.index ["user_id"], name: "index_debug_log_entries_on_user_id" + t.check_constraint "level::text = ANY (ARRAY['debug'::character varying, 'info'::character varying, 'warn'::character varying, 'error'::character varying]::text[])", name: "chk_debug_log_entries_level" + end + create_table "depositories", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.datetime "created_at", null: false t.datetime "updated_at", null: false @@ -944,6 +971,8 @@ ActiveRecord::Schema[7.2].define(version: 2026_05_14_120002) do t.text "ai_summary" t.string "document_type" t.jsonb "extracted_data" + t.jsonb "expected_record_counts", default: {}, null: false + t.jsonb "readback_verification", default: {}, null: false t.index ["family_id"], name: "index_imports_on_family_id" end @@ -1925,6 +1954,10 @@ ActiveRecord::Schema[7.2].define(version: 2026_05_14_120002) do add_foreign_key "coinbase_items", "families" add_foreign_key "coinstats_accounts", "coinstats_items" add_foreign_key "coinstats_items", "families" + add_foreign_key "debug_log_entries", "account_providers", on_delete: :nullify + add_foreign_key "debug_log_entries", "accounts", on_delete: :nullify + add_foreign_key "debug_log_entries", "families", on_delete: :nullify + add_foreign_key "debug_log_entries", "users", on_delete: :nullify add_foreign_key "enable_banking_accounts", "enable_banking_items" add_foreign_key "enable_banking_items", "families" add_foreign_key "entries", "accounts", on_delete: :cascade diff --git a/design/tokens/sure.tokens.json b/design/tokens/sure.tokens.json index 5d899749b..6e63b3b6b 100644 --- a/design/tokens/sure.tokens.json +++ b/design/tokens/sure.tokens.json @@ -18,12 +18,24 @@ "white": { "$value": "#ffffff", "$type": "color" }, "black": { "$value": "#0B0B0B", "$type": "color" }, - "success": { "$value": "{color.green.600}", "$type": "color", "$extensions": { "sure.dark": "{color.green.500}" } }, + "success": { "$value": "{color.green.700}", "$type": "color", "$extensions": { "sure.dark": "{color.green.400}" } }, "warning": { "$value": "{color.yellow.600}", "$type": "color", "$extensions": { "sure.dark": "{color.yellow.400}" } }, "destructive": { "$value": "{color.red.600}", "$type": "color", "$extensions": { "sure.dark": "{color.red.400}" } }, "info": { "$value": "{color.blue.600}", "$type": "color", "$extensions": { "sure.dark": "{color.blue.500}" } }, "shadow": { "$value": "{color.black|6%}", "$type": "color", "$extensions": { "sure.dark": "{color.white|8%}" } }, + "link": { "$value": "{color.blue.600}", "$type": "color", "$extensions": { "sure.dark": "{color.blue.500}" } }, + "tertiary": { "$value": "{color.alpha-black.100}", "$type": "color", "$extensions": { "sure.dark": "{color.alpha-white.200}" } }, + "surface": { "$value": "{color.gray.50}", "$type": "color", "$extensions": { "sure.dark": "{color.black}" } }, + "surface-hover": { "$value": "{color.gray.100}", "$type": "color", "$extensions": { "sure.dark": "{color.gray.800}" } }, + "surface-inset": { "$value": "{color.gray.100}", "$type": "color", "$extensions": { "sure.dark": "{color.gray.800}" } }, + "surface-inset-hover": { "$value": "{color.gray.200}", "$type": "color", "$extensions": { "sure.dark": "{color.gray.800}" } }, + "container": { "$value": "{color.white}", "$type": "color", "$extensions": { "sure.dark": "{color.gray.900}" } }, + "container-hover": { "$value": "{color.gray.50}", "$type": "color", "$extensions": { "sure.dark": "{color.gray.800}" } }, + "container-inset": { "$value": "{color.gray.50}", "$type": "color", "$extensions": { "sure.dark": "{color.gray.800}" } }, + "container-inset-hover": { "$value": "{color.gray.100}", "$type": "color", "$extensions": { "sure.dark": "{color.gray.700}" } }, + "nav-indicator": { "$value": "{color.black}", "$type": "color", "$extensions": { "sure.dark": "{color.white}" } }, + "gray": { "25": { "$value": "#FAFAFA", "$type": "color" }, "50": { "$value": "#F7F7F7", "$type": "color" }, @@ -253,14 +265,6 @@ }, "utility": { - "bg-surface": { "$type": "utility", "$value": "{color.gray.50}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.black}" } }, - "bg-surface-hover": { "$type": "utility", "$value": "{color.gray.100}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.800}" } }, - "bg-surface-inset": { "$type": "utility", "$value": "{color.gray.100}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.800}" } }, - "bg-surface-inset-hover": { "$type": "utility", "$value": "{color.gray.200}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.800}" } }, - "bg-container": { "$type": "utility", "$value": "{color.white}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.900}" } }, - "bg-container-hover": { "$type": "utility", "$value": "{color.gray.50}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.800}" } }, - "bg-container-inset": { "$type": "utility", "$value": "{color.gray.50}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.800}" } }, - "bg-container-inset-hover":{ "$type": "utility","$value": "{color.gray.100}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.700}" } }, "bg-inverse": { "$type": "utility", "$value": "{color.gray.800}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.white}" } }, "bg-inverse-hover": { "$type": "utility", "$value": "{color.gray.700}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.100}" } }, "bg-overlay": { @@ -280,7 +284,6 @@ "text-inverse": { "$type": "utility", "$value": "{color.white}", "$extensions": { "sure.utility": { "prefix": "text" }, "sure.dark": "{color.gray.900}" } }, "text-secondary": { "$type": "utility", "$value": "{color.gray.500}", "$extensions": { "sure.utility": { "prefix": "text" }, "sure.dark": "{color.gray.300}" } }, "text-subdued": { "$type": "utility", "$value": "{color.gray.400}", "$extensions": { "sure.utility": { "prefix": "text" }, "sure.dark": "{color.gray.500}" } }, - "text-link": { "$type": "utility", "$value": "{color.blue.600}", "$extensions": { "sure.utility": { "prefix": "text" }, "sure.dark": "{color.blue.500}" } }, "shadow-border-xs": { "$type": "utility", @@ -325,7 +328,6 @@ "border-primary": { "$type": "utility", "$value": "{color.alpha-black.300}", "$extensions": { "sure.utility": { "prefix": "border" }, "sure.dark": "{color.alpha-white.400}" } }, "border-secondary": { "$type": "utility", "$value": "{color.alpha-black.200}", "$extensions": { "sure.utility": { "prefix": "border" }, "sure.dark": "{color.alpha-white.300}" } }, - "border-tertiary": { "$type": "utility", "$value": "{color.alpha-black.100}", "$extensions": { "sure.utility": { "prefix": "border" }, "sure.dark": "{color.alpha-white.200}" } }, "border-divider": { "$type": "utility", "$value": "border-tertiary" }, "border-subdued": { "$type": "utility", "$value": "{color.alpha-black.50}", "$extensions": { "sure.utility": { "prefix": "border" }, "sure.dark": "{color.alpha-white.100}" } }, "border-solid": { "$type": "utility", "$value": "{color.black}", "$extensions": { "sure.utility": { "prefix": "border" }, "sure.dark": "{color.white}" } }, @@ -346,7 +348,6 @@ "tab-item-active": { "$type": "utility", "$value": "{color.white}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.700}" } }, "tab-item-hover": { "$type": "utility", "$value": "{color.gray.200}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.gray.800}" } }, - "tab-bg-group": { "$type": "utility", "$value": "{color.gray.50}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.alpha-black.700}" } }, - "bg-nav-indicator": { "$type": "utility", "$value": "{color.black}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.white}" } } + "tab-bg-group": { "$type": "utility", "$value": "{color.gray.50}", "$extensions": { "sure.utility": { "prefix": "bg" }, "sure.dark": "{color.alpha-black.700}" } } } } diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index ebc4c4425..456e7ffbf 100644 --- a/docs/api/openapi.yaml +++ b/docs/api/openapi.yaml @@ -1733,6 +1733,72 @@ components: unassigned_mappings_count: type: integer minimum: 0 + ImportVerificationReadback: + type: object + description: SureImport only. Expected NDJSON counts compared to family-scoped + database readback after publish. + properties: + status: + type: string + enum: + - not_verified + - matched + - mismatch + - failed + - reverted + checked_at: + type: string + format: date-time + nullable: true + expected_record_counts: + type: object + additionalProperties: + type: integer + before_counts: + type: object + additionalProperties: + type: integer + after_counts: + type: object + additionalProperties: + type: integer + actual_delta_counts: + type: object + additionalProperties: + type: integer + checked_counts: + type: object + additionalProperties: + type: integer + mismatches: + type: object + additionalProperties: + type: object + required: + - expected + - actual + properties: + expected: + type: integer + actual: + type: integer + error: + type: string + nullable: true + ImportVerification: + type: object + description: SureImport only. Captured at upload and completed after import + publish. + required: + - expected_record_counts + - readback + properties: + expected_record_counts: + type: object + additionalProperties: + type: integer + readback: + "$ref": "#/components/schemas/ImportVerificationReadback" ImportPreflightContent: type: object required: @@ -1802,6 +1868,7 @@ components: - TradeImport - AccountImport - MintImport + - ActualImport - CategoryImport - RuleImport - SureImport @@ -1889,6 +1956,7 @@ components: - TradeImport - AccountImport - MintImport + - ActualImport - CategoryImport - RuleImport - SureImport @@ -1941,6 +2009,7 @@ components: - TradeImport - AccountImport - MintImport + - ActualImport - CategoryImport - RuleImport - SureImport @@ -1972,6 +2041,8 @@ components: "$ref": "#/components/schemas/ImportConfiguration" stats: "$ref": "#/components/schemas/ImportStats" + verification: + "$ref": "#/components/schemas/ImportVerification" ImportCollection: type: object required: @@ -4482,6 +4553,7 @@ paths: - TradeImport - AccountImport - MintImport + - ActualImport - CategoryImport - RuleImport - SureImport @@ -4540,6 +4612,7 @@ paths: - TradeImport - AccountImport - MintImport + - ActualImport - CategoryImport - RuleImport - SureImport @@ -4646,6 +4719,7 @@ paths: - TradeImport - AccountImport - MintImport + - ActualImport - CategoryImport - RuleImport - SureImport @@ -4747,7 +4821,7 @@ paths: get: summary: Retrieve an import description: Retrieve detailed information about a specific import, including - configuration and row statistics. + configuration, row statistics, and SureImport readback verification when available. tags: - Imports security: @@ -4883,6 +4957,7 @@ paths: - TradeImport - AccountImport - MintImport + - ActualImport - CategoryImport - RuleImport - SureImport @@ -4993,6 +5068,7 @@ paths: - TradeImport - AccountImport - MintImport + - ActualImport - CategoryImport - RuleImport - SureImport diff --git a/docs/llm-guides/gating-a-preview-feature.md b/docs/llm-guides/gating-a-preview-feature.md new file mode 100644 index 000000000..008513ed3 --- /dev/null +++ b/docs/llm-guides/gating-a-preview-feature.md @@ -0,0 +1,128 @@ +# Gating a preview feature + +Sure ships preview features behind a single per-user toggle. Users opt in via Settings → Preferences. Opted-in users see your feature; everyone else doesn't. This guide is for hooking a new feature into the gate. + +The intent is to ship in-progress work without blocking smaller PRs on a "feels finished" bar. You gate the entry points (routes, nav, anything that links into your feature) and iterate behind them. Once stable, you remove the gate in a small follow-up PR. + +## How the gate works + +The state lives on `users.preferences["preview_features_enabled"]`, a key inside the existing JSONB column. It defaults to `false`. Reading it goes through `User#preview_features_enabled?`. + +`ApplicationController` includes the `PreviewGateable` concern, which exposes two methods to every controller: + +- `preview_features_enabled?`. Returns a boolean. `false` for logged-out callers. +- `require_preview_features!`. A `before_action` helper. Redirects users without preview access to `/` with a flash that points them at Settings → Preferences. + +The concern also registers `preview_features_enabled?` as a helper method, so views can call it directly. + +Key files: + +- `app/controllers/concerns/preview_gateable.rb`. The concern. +- `app/models/user.rb`. The `preview_features_enabled?` predicate. +- `app/views/settings/preferences/show.html.erb`. The toggle UI users see. +- `app/components/DS/pill.rb`. The `Preview` / `Canary` marker pill. +- `config/locales/views/preview/en.yml`. The redirect flash copy. + +## Gating a controller + +Add `require_preview_features!` as a `before_action`. That's it. + +```ruby +class GoalsController < ApplicationController + before_action :require_preview_features! +end +``` + +Routes stay defined; the gate runs per-request. Users without preview access hitting `/goals` get redirected with a flash. Preview users pass through. + +If only some actions are gated, scope the `before_action`: + +```ruby +class TransactionsController < ApplicationController + before_action :require_preview_features!, only: %i[forecast scenarios] +end +``` + +## Gating a view + +Wrap the relevant fragment in the helper: + +```erb +<% if preview_features_enabled? %> +