feat(i18n): complete Catalan translations + extract residual hardcoded strings (#1836)

* feat(i18n): complete Catalan translations + extract residual hardcoded strings

CA coverage
- All view/model/breadcrumb/doorkeeper/mailer locale files for ca: 0 missing
  keys (was ~3,400). Translations follow informal "tu" register, sentence case,
  domain glossary (Compte/Saldo/Transacció/Posició/Operació/Pressupost/...).
- Catalan pluralization test: ca uses one/other; mirrors
  test/lib/polish_pluralization_test.rb.
- 8 LanguageTool-flagged grammar fixes applied (Connexió òrfena, Secret de
  l'API, comma-pero, apostrophe elisions, etc).

Hardcoded string extraction (also fixes EN parity)
- UI::Account::Chart#title + chart.html.erb view tabs -> UI.account.chart.*
- UI::Account::BalanceReconciliation labels + tooltips ->
  UI.account.balance_reconciliation.{labels,tooltips}.*
- transactions/_transfer_match.html.erb (Auto-matched, A/M, Confirm/Reject
  match, Payment/Transfer is confirmed) -> transactions.transfer_match.*
- AccountOrder labels (Name/Balance asc/desc) -> account_order.* keys with
  fallback to existing hardcoded labels.
- Depository::SUBTYPES surface in account list -> depositories.subtypes.*.*
- User role badge -> users.roles.* (admin / member / super_admin).
- 110+ country names -> countries.* (config/locales/countries.ca.yml).

Breadcrumb locale fix
- Breadcrumbable was a before_action that ran before Localize's around_action
  switched I18n.locale, so default crumbs rendered in EN even when locale=ca.
- Convert to helper_method that defers translation to render-time (when
  I18n.locale is already correct). Add all missing breadcrumb keys to ca + en.
- Layouts switched from @breadcrumbs to breadcrumbs helper.

Locale-aware helpers / formatters
- ApplicationHelper#localized_ordinal: ordinalize that respects ca
  (1r/2n/3r/4t/Nè). Wired into preferences month_start_day select.
- Family#moniker_label / moniker_label_plural: translate the default "Family"/
  "Group" monikers via shared.family_moniker.* with fallback to the family's
  custom override.
- Budget#name: use I18n.l for month_year/short/long instead of strftime("%B %Y")
  so the budget header date follows the active locale.

Tooling
- script/lt_check_ca.rb: batched LanguageTool checker (premium endpoint when
  LT_USERNAME/LT_API_KEY are set, free fallback otherwise), picky mode,
  motherTongue=en for false-friend detection.
- lib/tasks/i18n_screenshot.rake: dev-only rake to set user.locale=ca and
  role=super_admin on the demo user so the i18n surfaces can be walked.

Out of scope (pre-existing, not introduced here)
- Native browser file input "Choose Files / No file chosen" (browser locale).
- D3.js client-side chart x-axis dates (JS-side Intl.DateTimeFormat needed).
- Sankey/donut labels = seed category names (data, not i18n).
- 2 rails-i18n datetime/errors interpolation warnings inherited from
  config/locales/defaults/ca.yml.

* fix(i18n): apply idiomatic Catalan review (3-agent + native review)

Three parallel review agents flagged 203 findings (31 high / 73 medium / 99 low)
across all 111 ca.yml files. This commit applies the high-severity bugs plus a
curated subset of medium-impact fixes.

Grammar / agreement
- provider_sync_summary.health.stale_pending: `(exclòs)` -> `(exclosa/excloses)`
  to agree with feminine `transacció(s)`.
- accounts.confirm_unlink.warning_no_sync: added reflexive `es` -
  `el compte ja no es sincronitzarà`.
- sophtron_setup_required.heading: `no configurats` -> `sense configurar`
  (avoids broken agreement across "ID" masc. + "clau" fem.).
- admin.sso_providers.form.errors_title: split into one/other pluralization
  keys (en + ca); singular `ha impedit` was wrong for count > 1.

Brand consistency
- IndexaCapital -> Indexa Capital (37 occurrences across one file).
- Lunchflow -> Lunch Flow in two remaining places.

Anglicisms / domain mistranslations
- kraken_items setup_accounts.instructions: `ompliments d'operacions`
  (lit. dental/food fillings) -> `execucions d'operacions`.
- settings kraken_panel.read_only_title: `Sincronització d'intercanvi`
  (swap/trade) -> `Sincronització només de lectura amb l'exchange`.
- transactions convert_to_trade.security_custom + security_not_listed_hint:
  `cotització` (price quote) -> `ticker` (the EN field IS a ticker symbol).
- loans.form.rate_type: `Tipus d'interès` collided with sibling
  interest_rate -> `Modalitat del tipus`.
- brex_items.provider_panel.sandbox_note_html: `L'staging` (broken
  contraction) -> `el staging`.

Idiom traps
- coinbase/binance/kraken wait_for_sync: `acabi de sincronitzar` is
  ambiguous in CA (`acabar de + inf` reads as "has just done X") ->
  `acabi la sincronització`.
- chats.ai_greeting.there: `a tothom` -> `''` (the EN fallback "Hey there"
  is singular; literal CA `tothom` is plural and wrong for 1:1 chat).
- transactions.split_parent_row.split_label: `Divideix` (imperative) is
  wrong as a status badge -> `Divisió` (noun).
- transactions.keep_both (2 occurrences): infinitive `mantenir ambdues` ->
  imperative `mantén-les totes dues` to match the sibling Yes/No buttons.
- rules.clear_ai_cache: `Reinicia` (restart) -> `Buida` (empty/clear),
  which matches the success notice (`s'està netejant`).

Moniker gender breakage (cross-file)
%{moniker} is interpolated downcased from family.moniker_label and may
resolve to feminine `família`/`llar` or masculine `grup`. Strings that
hard-code a gendered article ('al teu %{moniker}', 'aquesta %{moniker}',
'aquest/a %{moniker}') broke on at least one branch. Restructured the
affected sentences to drop the gendered determiner:

- account_sharings.show.no_members
- merchants.family_empty / family_title / provider_empty
- registrations.new.join_family_title
- settings.preferences.show.currencies_subtitle / sharing_subtitle
- simplefin_items.select_existing_account.no_accounts_found
- invitations.new.subtitle
- invitation_mailer.invite_email.subject (mailers/) + body (views/)
- snaptrade_items.providers.snaptrade.free_tier_warning

Terminology consistency
- models/account_statement/ca.yml attributes aligned with view-side
  forms: `Saldo d'obertura`/`Saldo de tancament` ->
  `Saldo inicial`/`Saldo final`; `Suggeriment de...` -> `Pista de...`.
- account_statements.coverage.status.not_expected:
  `No s'esperava` -> `No previst` (status label, not past action).
- account_statements.index.empty_unmatched: aligned with the section's
  own label `Safata sense aparellar`.
- imports.create.document_provider_not_configured + document_upload_failed:
  `arxiu vectorial` -> `magatzem vectorial` (correct TermCat term).
- coinstats_items blockchain gender: `els blockchains` / `un blockchain` ->
  `les blockchains` / `una blockchain` (feminine per TermCat).
- accounts.account.remove_default: `Treu el predeterminat` ->
  `Treu com a predeterminat` (pairs with sibling `Estableix com a
  predeterminat`).
- accounts.tax_treatments.tax_deferred: `Diferit fiscalment` (lit. calque)
  -> `Tributació diferida` (standard CA tax-accounting term).
- settings.payments.show.currently_on_plan: `Actualment al` ->
  `Actualment al pla:` (was a fragment).

Out of scope (review flagged, not applied here)
- LOW-severity stylistic preferences (Veure vs Mostra, etc).
- `models/category/ca.yml` default category names — seeded at family
  creation, not via I18n at runtime, so changes wouldn't affect existing
  families.
- `models/period/ca.yml` short labels mixing EN (MTD/YTD) and CA (STD/MA)
  — needs a one-convention decision separately.

* fix(i18n,ca): drop gendered article in period_activity + tighten cash-flow terms

- pages.dashboard.investment_summary.period_activity: 'Activitat del
  %{period}' contracted 'del' = 'de el' (masc.sg.). %{period} resolves
  to mixed forms ('Setmana en curs' fem, 'Últims 30 dies' pl., 'Any en
  curs' apostrophe), so hard-coded 'del' was wrong on most labels.
  Replaced with 'Activitat — %{period}' (em-dash) to skip the
  contraction entirely.
- pages.dashboard.outflows_donut.title / total_outflows: switched from
  bare 'Sortides' / 'Total de sortides' to 'Sortides de caixa' /
  'Total de sortides de caixa' to match TermCat's precise term
  ('sortida de caixa' = cash outflow).

* fix(i18n,ca): rephrase transfer source/destination amount labels

'Import d'origen' / 'Import de destinació' were literal calques of
'Source amount' / 'Destination amount'. In a multi-currency transfer
form (sender/receiver in different currencies) the natural CA pair is
'Import enviat' / 'Import rebut'.

* fix(i18n,ca): 'Dades en brut' -> 'Dades sense processar'

The literal calque of 'Raw data' read as too technical for personal-
finance UI. 'Dades sense processar' is the more natural Catalan
equivalent for raw/unprocessed data files.

* fix(i18n): localize Import col_sep label + separator options

The CSV upload form rendered 'Col sep' (the auto-humanized attribute
name) plus hardcoded English 'Comma (,)' / 'Semicolon (;)' options
from Import::SEPARATORS.

- activerecord.attributes.import.col_sep added (en + ca: 'Column
  separator' / 'Separador de columnes').
- Import.separator_options class method returns translated tuples;
  view switched from Import::SEPARATORS to Import.separator_options.
- activerecord.attributes.import.col_seps.{comma,semicolon} added so
  the option labels follow the active locale.

* fix(i18n,ca): drop moniker apposition in sharing/currencies section titles

- sharing_title 'Compartició de %{moniker}' rendered as 'Compartició
  de Família' (a noun-noun apposition that's odd in CA) -> 'Compartició
  de comptes'.
- sharing_subtitle replaced '%{moniker}' with 'entre els membres' so
  the sentence reads naturally and doesn't depend on moniker gender.
- currencies_title 'Divises de %{moniker}' had the same apposition
  -> 'Divises'. Subtitle no longer references moniker either.

* fix(i18n,ca): keep 'Self Hosting' untranslated

Reverted 'Autoallotjament' / 'autoallotjada' / 'autoallotjats' usages
to the original English 'Self Hosting' (sidebar label, breadcrumbs,
hostings page title, chat assistant settings hint, redis configuration
subheading, LLM usages cost-estimates description).

The brand-style term reads more naturally in EN for technical users
configuring their own deployment.

* fix(i18n,ca): lowercase 'self hosting' (sentence case in labels)

* fix(i18n): extract budget_categories stepper + allocation_progress strings

Hardcoded English strings on the budget category editor:
- 'Setup' / 'Categories' stepper labels in budgets/_budget_nav.html.erb
- 'X% set' / '> 100% set' / 'left to allocate' / 'Budget exceeded by ...'
  in budget_categories/_allocation_progress.erb
- '/m avg' caption + 'Shared' placeholder + 'Leave empty to share
  parent's budget' tooltip in budget_categories/_budget_category_form
  and _uncategorized_budget_category_form

Extracted to:
- budgets.budget_nav.{setup,categories}
- budget_categories.allocation_progress.{percent_set,over_set,left_to_allocate,budget_exceeded_html}
- budget_categories.budget_category_form.{monthly_average,shared_placeholder,shared_title}

CA translations added; EN keys mirror the prior literals.

* chore(i18n): drop translation tooling from PR

These were dev-only helpers used during the Catalan translation pass:

- script/lt_check_ca.rb: LanguageTool API checker (premium/free
  endpoint, picky mode, batching). Useful for ongoing locale QA but
  shouldn't ship in this feature PR.
- lib/tasks/i18n_screenshot.rake: rake task that flips user.locale and
  role on the demo user for walking the i18n surfaces locally.

Both stay available locally; pulled out of the PR scope.

* fix(i18n): apply PR review feedback (CodeRabbit + Codex)

- balance_reconciliation crypto_items: use :end_balance_crypto tooltip
  (was :end_balance_investment). Added new UI.account.balance_reconciliation.tooltips.end_balance_crypto key in en + ca.
- doorkeeper.ca.yml confidentiality.no: was YAML boolean false, now string 'No'.
- views/categories: 'Poor contrast, choose darker color or' continued with hardcoded 'auto-adjust.' button text; extracted to categories.form.auto_adjust key (en + ca).
- imports.create.document_upload_failed: 'a l'magatzem' was broken
  contraction -> 'al magatzem'.
- invitation_mailer body + mailer subject: 'unir-se' -> 'unir-te' (was
  3rd person, should be 2nd to match the rest of the copy).
- 7 strings across mercury_items / sophtron_items / simplefin_items /
  lunchflow_items / brex_items / indexa_capital_items / other_assets:
  'se sincronitzaran' -> 'es sincronitzaran', 'se segueixen' ->
  'es segueixen' (correct reflexive pronoun before consonants).
- settings.providers.status: key was 'false' (YAML-coerced), now 'off'
  to match settings/en.yml status.off used in view lookups.
- sophtron_items.sophtron_setup_required.message: stripped trailing
  blank line from the quoted scalar.
- settings/profiles/show.html.erb: switched 'family_moniker ==
  "Group"' branch checks to 'Current.family&.moniker == "Group"'.
  After Family#moniker_label started returning translated values,
  callers using the display label for branching would render the
  household copy for group families in ca. Compare the stored sentinel
  instead.
- Did not apply CodeRabbit's webauthn 'eliminada' -> 'desada' suggestion:
  the key is wired to the destroy action (verified at
  settings/webauthn_credentials_controller.rb:55), so 'eliminada' is
  correct.
This commit is contained in:
Guillem Arias Fauste
2026-05-19 13:37:10 +02:00
committed by GitHub
parent bc9f13059a
commit 1ddd8bd040
139 changed files with 6232 additions and 874 deletions

View File

@@ -27,105 +27,108 @@ class UI::Account::BalanceReconciliation < ApplicationComponent
private
def t_label(key)
I18n.t("UI.account.balance_reconciliation.labels.#{key}")
end
def t_tooltip(key)
I18n.t("UI.account.balance_reconciliation.tooltips.#{key}")
end
def default_items
items = [
{ label: "Start balance", value: balance.start_balance_money, tooltip: "The account balance at the beginning of this day", style: :start },
{ label: "Net cash flow", value: net_cash_flow, tooltip: "Net change in balance from all transactions during the day", style: :flow }
{ label: t_label(:start_balance), value: balance.start_balance_money, tooltip: t_tooltip(:start_balance), style: :start },
{ label: t_label(:net_cash_flow), value: net_cash_flow, tooltip: t_tooltip(:net_cash_flow), style: :flow }
]
if has_adjustments?
items << { label: "End balance", value: end_balance_before_adjustments, tooltip: "The calculated balance after all transactions", style: :subtotal }
items << { label: "Adjustments", value: total_adjustments, tooltip: "Manual reconciliations or other adjustments", style: :adjustment }
items << { label: t_label(:end_balance), value: end_balance_before_adjustments, tooltip: t_tooltip(:end_balance), style: :subtotal }
items << { label: t_label(:adjustments), value: total_adjustments, tooltip: t_tooltip(:adjustments), style: :adjustment }
end
items << { label: "Final balance", value: balance.end_balance_money, tooltip: "The final account balance for the day", style: :final }
items << { label: t_label(:final_balance), value: balance.end_balance_money, tooltip: t_tooltip(:final_balance), style: :final }
items
end
def credit_card_items
items = [
{ label: "Start balance", value: balance.start_balance_money, tooltip: "The balance owed at the beginning of this day", style: :start },
{ label: "Charges", value: balance.cash_outflows_money, tooltip: "New charges made during the day", style: :flow },
{ label: "Payments", value: balance.cash_inflows_money * -1, tooltip: "Payments made to the card during the day", style: :flow }
{ label: t_label(:start_balance), value: balance.start_balance_money, tooltip: t_tooltip(:start_balance_credit), style: :start },
{ label: t_label(:charges), value: balance.cash_outflows_money, tooltip: t_tooltip(:charges), style: :flow },
{ label: t_label(:payments), value: balance.cash_inflows_money * -1, tooltip: t_tooltip(:payments), style: :flow }
]
if has_adjustments?
items << { label: "End balance", value: end_balance_before_adjustments, tooltip: "The calculated balance after all transactions", style: :subtotal }
items << { label: "Adjustments", value: total_adjustments, tooltip: "Manual reconciliations or other adjustments", style: :adjustment }
items << { label: t_label(:end_balance), value: end_balance_before_adjustments, tooltip: t_tooltip(:end_balance), style: :subtotal }
items << { label: t_label(:adjustments), value: total_adjustments, tooltip: t_tooltip(:adjustments), style: :adjustment }
end
items << { label: "Final balance", value: balance.end_balance_money, tooltip: "The final balance owed for the day", style: :final }
items << { label: t_label(:final_balance), value: balance.end_balance_money, tooltip: t_tooltip(:final_balance_credit), style: :final }
items
end
def investment_items
items = [
{ label: "Start balance", value: balance.start_balance_money, tooltip: "The total portfolio value at the beginning of this day", style: :start }
{ label: t_label(:start_balance), value: balance.start_balance_money, tooltip: t_tooltip(:start_balance_investment), style: :start }
]
# Change in brokerage cash (includes deposits, withdrawals, and cash from trades)
items << { label: "Change in brokerage cash", value: net_cash_flow, tooltip: "Net change in cash from deposits, withdrawals, and trades", style: :flow }
# Change in holdings from trading activity
items << { label: "Change in holdings (buys/sells)", value: net_non_cash_flow, tooltip: "Impact on holdings from buying and selling securities", style: :flow }
# Market price changes
items << { label: "Change in holdings (market price activity)", value: balance.net_market_flows_money, tooltip: "Change in holdings value from market price movements", style: :flow }
items << { label: t_label(:change_in_brokerage_cash), value: net_cash_flow, tooltip: t_tooltip(:change_in_brokerage_cash), style: :flow }
items << { label: t_label(:change_in_holdings_trades), value: net_non_cash_flow, tooltip: t_tooltip(:change_in_holdings_trades), style: :flow }
items << { label: t_label(:change_in_holdings_market), value: balance.net_market_flows_money, tooltip: t_tooltip(:change_in_holdings_market), style: :flow }
if has_adjustments?
items << { label: "End balance", value: end_balance_before_adjustments, tooltip: "The calculated balance after all activity", style: :subtotal }
items << { label: "Adjustments", value: total_adjustments, tooltip: "Manual reconciliations or other adjustments", style: :adjustment }
items << { label: t_label(:end_balance), value: end_balance_before_adjustments, tooltip: t_tooltip(:end_balance_investment), style: :subtotal }
items << { label: t_label(:adjustments), value: total_adjustments, tooltip: t_tooltip(:adjustments), style: :adjustment }
end
items << { label: "Final balance", value: balance.end_balance_money, tooltip: "The final portfolio value for the day", style: :final }
items << { label: t_label(:final_balance), value: balance.end_balance_money, tooltip: t_tooltip(:final_balance_investment), style: :final }
items
end
def loan_items
items = [
{ label: "Start principal", value: balance.start_balance_money, tooltip: "The principal balance at the beginning of this day", style: :start },
{ label: "Net principal change", value: net_non_cash_flow, tooltip: "Principal payments and new borrowing during the day", style: :flow }
{ label: t_label(:start_principal), value: balance.start_balance_money, tooltip: t_tooltip(:start_principal), style: :start },
{ label: t_label(:net_principal_change), value: net_non_cash_flow, tooltip: t_tooltip(:net_principal_change), style: :flow }
]
if has_adjustments?
items << { label: "End principal", value: end_balance_before_adjustments, tooltip: "The calculated principal after all transactions", style: :subtotal }
items << { label: "Adjustments", value: balance.non_cash_adjustments_money, tooltip: "Manual reconciliations or other adjustments", style: :adjustment }
items << { label: t_label(:end_principal), value: end_balance_before_adjustments, tooltip: t_tooltip(:end_principal), style: :subtotal }
items << { label: t_label(:adjustments), value: balance.non_cash_adjustments_money, tooltip: t_tooltip(:adjustments), style: :adjustment }
end
items << { label: "Final principal", value: balance.end_balance_money, tooltip: "The final principal balance for the day", style: :final }
items << { label: t_label(:final_principal), value: balance.end_balance_money, tooltip: t_tooltip(:final_principal), style: :final }
items
end
def asset_items # Property/Vehicle
def asset_items
items = [
{ label: "Start value", value: balance.start_balance_money, tooltip: "The asset value at the beginning of this day", style: :start },
{ label: "Net value change", value: net_total_flow, tooltip: "All value changes including improvements and depreciation", style: :flow }
{ label: t_label(:start_value), value: balance.start_balance_money, tooltip: t_tooltip(:start_value), style: :start },
{ label: t_label(:net_value_change), value: net_total_flow, tooltip: t_tooltip(:net_value_change), style: :flow }
]
if has_adjustments?
items << { label: "End value", value: end_balance_before_adjustments, tooltip: "The calculated value after all changes", style: :subtotal }
items << { label: "Adjustments", value: total_adjustments, tooltip: "Manual value adjustments or appraisals", style: :adjustment }
items << { label: t_label(:end_value), value: end_balance_before_adjustments, tooltip: t_tooltip(:end_value), style: :subtotal }
items << { label: t_label(:adjustments), value: total_adjustments, tooltip: t_tooltip(:adjustments_asset), style: :adjustment }
end
items << { label: "Final value", value: balance.end_balance_money, tooltip: "The final asset value for the day", style: :final }
items << { label: t_label(:final_value), value: balance.end_balance_money, tooltip: t_tooltip(:final_value), style: :final }
items
end
def crypto_items
items = [
{ label: "Start balance", value: balance.start_balance_money, tooltip: "The crypto holdings value at the beginning of this day", style: :start }
{ label: t_label(:start_balance), value: balance.start_balance_money, tooltip: t_tooltip(:start_balance_crypto), style: :start }
]
items << { label: "Buys", value: balance.cash_outflows_money * -1, tooltip: "Crypto purchases during the day", style: :flow } if balance.cash_outflows != 0
items << { label: "Sells", value: balance.cash_inflows_money, tooltip: "Crypto sales during the day", style: :flow } if balance.cash_inflows != 0
items << { label: "Market changes", value: balance.net_market_flows_money, tooltip: "Value changes from market price movements", style: :flow } if balance.net_market_flows != 0
items << { label: t_label(:buys), value: balance.cash_outflows_money * -1, tooltip: t_tooltip(:buys), style: :flow } if balance.cash_outflows != 0
items << { label: t_label(:sells), value: balance.cash_inflows_money, tooltip: t_tooltip(:sells), style: :flow } if balance.cash_inflows != 0
items << { label: t_label(:market_changes), value: balance.net_market_flows_money, tooltip: t_tooltip(:market_changes), style: :flow } if balance.net_market_flows != 0
if has_adjustments?
items << { label: "End balance", value: end_balance_before_adjustments, tooltip: "The calculated balance after all activity", style: :subtotal }
items << { label: "Adjustments", value: total_adjustments, tooltip: "Manual reconciliations or other adjustments", style: :adjustment }
items << { label: t_label(:end_balance), value: end_balance_before_adjustments, tooltip: t_tooltip(:end_balance_crypto), style: :subtotal }
items << { label: t_label(:adjustments), value: total_adjustments, tooltip: t_tooltip(:adjustments), style: :adjustment }
end
items << { label: "Final balance", value: balance.end_balance_money, tooltip: "The final crypto holdings value for the day", style: :final }
items << { label: t_label(:final_balance), value: balance.end_balance_money, tooltip: t_tooltip(:final_balance_crypto), style: :final }
items
end

View File

@@ -21,7 +21,7 @@
<div class="flex items-center gap-2">
<% if account.investment? %>
<%= form.select :chart_view,
[["Total value", "balance"], ["Holdings", "holdings_balance"], ["Cash", "cash_balance"]],
[[t(".views.total_value"), "balance"], [t(".views.holdings"), "holdings_balance"], [t(".views.cash"), "cash_balance"]],
{ selected: view },
class: "bg-container border border-secondary rounded-lg text-sm pr-7 cursor-pointer text-primary focus:outline-hidden focus:ring-0",
data: { "auto-submit-form-target": "auto" } %>

View File

@@ -31,20 +31,22 @@ class UI::Account::Chart < ApplicationComponent
when "Investment", "Crypto"
case view
when "balance"
"Total account value"
I18n.t("UI.account.chart.title.total_account_value")
when "holdings_balance"
"Holdings value"
I18n.t("UI.account.chart.title.holdings_value")
when "cash_balance"
"Cash value"
I18n.t("UI.account.chart.title.cash_value")
end
when "Property", "Vehicle"
"Estimated #{account.accountable_type.humanize.downcase} value"
when "Property"
I18n.t("UI.account.chart.title.estimated_property_value")
when "Vehicle"
I18n.t("UI.account.chart.title.estimated_vehicle_value")
when "CreditCard", "OtherLiability"
"Debt balance"
I18n.t("UI.account.chart.title.debt_balance")
when "Loan"
"Remaining principal balance"
I18n.t("UI.account.chart.title.remaining_principal_balance")
else
"Balance"
I18n.t("UI.account.chart.title.balance")
end
end
@@ -79,7 +81,7 @@ class UI::Account::Chart < ApplicationComponent
return period.comparison_label if start_date.blank?
if start_date > period.start_date
"vs. available history"
I18n.t("UI.account.chart.vs_available_history")
else
period.comparison_label
end

View File

@@ -2,12 +2,21 @@ module Breadcrumbable
extend ActiveSupport::Concern
included do
before_action :set_breadcrumbs
helper_method :breadcrumbs
end
private
# The default, unless specific controller or action explicitly overrides
def set_breadcrumbs
@breadcrumbs = [ [ t("breadcrumbs.home"), root_path ], [ t("breadcrumbs.#{controller_name}", default: controller_name.titleize), nil ] ]
# Render-time helper so I18n.locale (set by Localize's around_action) is
# already in effect when the breadcrumb labels are translated.
# Controllers can still override by assigning @breadcrumbs in their action.
def breadcrumbs
@breadcrumbs || default_breadcrumbs
end
def default_breadcrumbs
[
[ I18n.t("breadcrumbs.home"), root_path ],
[ I18n.t("breadcrumbs.#{controller_name}", default: controller_name.titleize), nil ]
]
end
end

View File

@@ -14,6 +14,24 @@ module ApplicationHelper
form_with(**options, &block)
end
# Locale-aware ordinal label for integers.
# English falls through to Ruby's ordinalize ("1st"); Catalan returns "1r"/"2n"/...
def localized_ordinal(number)
case I18n.locale
when :ca
n = number.to_i
suffix = case n
when 1, 3 then "r"
when 2 then "n"
when 4 then "t"
else "è"
end
"#{n}#{suffix}"
else
number.to_i.ordinalize
end
end
def icon(key, size: "md", color: "default", custom: false, as_button: false, **opts)
extra_classes = opts.delete(:class)
sizes = { xs: "w-3 h-3", sm: "w-4 h-4", md: "w-5 h-5", lg: "w-6 h-6", xl: "w-7 h-7", "2xl": "w-8 h-8" }

View File

@@ -371,7 +371,12 @@ module LanguagesHelper
}.freeze
def country_options
COUNTRY_MAPPING.keys.map { |key| [ COUNTRY_MAPPING[key], key ] }
COUNTRY_MAPPING.keys.map do |key|
english = COUNTRY_MAPPING[key]
emoji, name = english.split(" ", 2)
label = I18n.t("countries.#{key}", default: name)
[ "#{emoji} #{label}", key ]
end
end
def language_options

View File

@@ -33,11 +33,11 @@ class AccountOrder
end
def label
ORDERS.dig(key, :label)
I18n.t("account_order.#{key}.label", default: ORDERS.dig(key, :label))
end
def label_short
ORDERS.dig(key, :label_short)
I18n.t("account_order.#{key}.label_short", default: ORDERS.dig(key, :label_short))
end
def sql_order

View File

@@ -130,11 +130,11 @@ class Budget < ApplicationRecord
if family.uses_custom_month_start?
I18n.t(
"budgets.name.custom_range",
start: start_date.strftime("%b %d"),
end_date: end_date.strftime("%b %d, %Y")
start: I18n.l(start_date, format: :short),
end_date: I18n.l(end_date, format: :long)
)
else
I18n.t("budgets.name.month_year", month: start_date.strftime("%B %Y"))
I18n.t("budgets.name.month_year", month: I18n.l(start_date, format: :month_year))
end
end

View File

@@ -83,11 +83,25 @@ class Family < ApplicationRecord
def moniker_label
moniker.presence || "Family"
case moniker.presence
when nil, "Family"
I18n.t("shared.family_moniker.singular", default: "Family")
when "Group"
I18n.t("shared.family_moniker.group_singular", default: "Group")
else
moniker
end
end
def moniker_label_plural
moniker_label == "Group" ? "Groups" : "Families"
case moniker.presence
when nil, "Family"
I18n.t("shared.family_moniker.plural", default: "Families")
when "Group"
I18n.t("shared.family_moniker.group_plural", default: "Groups")
else
"#{moniker}s"
end
end
def share_all_by_default?

View File

@@ -14,6 +14,13 @@ class Import < ApplicationRecord
SIGNAGE_CONVENTIONS = %w[inflows_positive inflows_negative]
SEPARATORS = [ [ "Comma (,)", "," ], [ "Semicolon (;)", ";" ] ].freeze
def self.separator_options
[
[ I18n.t("activerecord.attributes.import.col_seps.comma"), "," ],
[ I18n.t("activerecord.attributes.import.col_seps.semicolon"), ";" ]
]
end
NUMBER_FORMATS = {
"1,234.56" => { separator: ".", delimiter: "," }, # US/UK/Asia
"1.234,56" => { separator: ",", delimiter: "." }, # Most of Europe

View File

@@ -9,10 +9,10 @@
<% end %>
<% if budget.available_to_allocate.negative? %>
<p class="text-primary text-sm">&gt; 100% set</p>
<p class="text-primary text-sm"><%= t("budget_categories.allocation_progress.over_set") %></p>
<% else %>
<p class="text-secondary text-sm">
<%= number_to_percentage(budget.allocated_percent, precision: 0) %> set
<%= t("budget_categories.allocation_progress.percent_set", percent: number_to_percentage(budget.allocated_percent, precision: 0)) %>
</p>
<% end %>
@@ -34,11 +34,11 @@
<div class="text-sm">
<% if budget.available_to_allocate.negative? %>
<p class="text-secondary">
Budget exceeded by <span class="text-red-500 privacy-sensitive"><%= format_money(budget.available_to_allocate_money.abs) %></span>
<%= t("budget_categories.allocation_progress.budget_exceeded_html", amount: format_money(budget.available_to_allocate_money.abs)).html_safe %>
</p>
<% else %>
<span class="text-primary privacy-sensitive"><%= format_money(budget.available_to_allocate_money) %></span>
<span class="text-secondary">left to allocate</span>
<span class="text-secondary"><%= t("budget_categories.allocation_progress.left_to_allocate") %></span>
<% end %>
</div>
</div>

View File

@@ -8,7 +8,7 @@
<div class="text-sm mr-3">
<p class="text-primary font-medium mb-0.5"><%= budget_category.category.name %></p>
<p class="text-secondary privacy-sensitive"><%= budget_category.median_monthly_expense_money.format(precision: 0) %>/m avg</p>
<p class="text-secondary privacy-sensitive"><%= t("budget_categories.budget_category_form.monthly_average", amount: budget_category.median_monthly_expense_money.format(precision: 0)) %></p>
</div>
<div class="ml-auto">
@@ -18,12 +18,12 @@
<span class="text-secondary text-sm mr-2"><%= currency.symbol %></span>
<%= f.number_field :budgeted_spending,
class: "form-field__input text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",
placeholder: budget_category.subcategory? ? "Shared" : "0",
placeholder: budget_category.subcategory? ? t("budget_categories.budget_category_form.shared_placeholder") : "0",
step: currency.step,
id: dom_id(budget_category, :budgeted_spending),
min: 0,
data: { auto_submit_form_target: "auto" },
title: budget_category.subcategory? ? "Leave empty to share parent's budget" : nil %>
title: budget_category.subcategory? ? t("budget_categories.budget_category_form.shared_title") : nil %>
</div>
</div>
<% end %>

View File

@@ -7,7 +7,7 @@
<div class="text-sm mr-3">
<p class="text-primary font-medium mb-0.5"><%= budget_category.category.name %></p>
<p class="text-secondary privacy-sensitive"><%= budget_category.avg_monthly_expense_money.format(precision: 0) %>/m avg</p>
<p class="text-secondary privacy-sensitive"><%= t("budget_categories.budget_category_form.monthly_average", amount: budget_category.avg_monthly_expense_money.format(precision: 0)) %></p>
</div>
<div class="ml-auto">

View File

@@ -35,7 +35,7 @@
</div>
<div data-category-target="validationMessage" class="hidden self-start flex gap-1 items-center text-xs text-destructive ">
<span><%= t(".poor_contrast") %></span>
<button type="button" class="underline cursor-pointer" data-action="category#autoAdjust">auto-adjust.</button>
<button type="button" class="underline cursor-pointer" data-action="category#autoAdjust"><%= t(".auto_adjust") %></button>
</div>
</div>
</div>

View File

@@ -109,7 +109,7 @@
<% tabs.with_panel(tab_id: "csv-upload") do %>
<%= styled_form_with model: @import, scope: :import, url: import_upload_path(@import), multipart: true, class: "space-y-2", data: { drag_and_drop_import_target: "form" } do |form| %>
<%= form.select :col_sep, Import::SEPARATORS, label: true %>
<%= form.select :col_sep, Import.separator_options, label: true %>
<% if @import.type == "TransactionImport" || @import.type == "TradeImport" %>
<%= form.select :account_id, @import.family.accounts.visible.alphabetically.pluck(:name, :id), { label: t(".account_optional_label"), include_blank: t(".multi_account_import"), selected: @import.account_id } %>
@@ -141,7 +141,7 @@
<% tabs.with_panel(tab_id: "csv-paste") do %>
<%= styled_form_with model: @import, scope: :import, url: import_upload_path(@import), multipart: true, class: "space-y-2" do |form| %>
<%= form.select :col_sep, Import::SEPARATORS, label: true %>
<%= form.select :col_sep, Import.separator_options, label: true %>
<% if @import.type == "TransactionImport" || @import.type == "TradeImport" %>
<%= form.select :account_id, @import.family.accounts.visible.alphabetically.pluck(:name, :id), { label: t(".account_optional_label"), include_blank: t(".multi_account_import"), selected: @import.account_id } %>

View File

@@ -151,7 +151,7 @@ end %>
<% if content_for?(:breadcrumbs) %>
<%= yield :breadcrumbs %>
<% else %>
<%= render "layouts/shared/breadcrumbs", breadcrumbs: @breadcrumbs %>
<%= render "layouts/shared/breadcrumbs", breadcrumbs: breadcrumbs %>
<% end %>
</div>

View File

@@ -16,7 +16,7 @@
<% if content_for?(:breadcrumbs) %>
<%= yield :breadcrumbs %>
<% else %>
<%= render "layouts/shared/breadcrumbs", breadcrumbs: @breadcrumbs %>
<%= render "layouts/shared/breadcrumbs", breadcrumbs: breadcrumbs %>
<% end %>
<div class="flex items-center justify-between gap-4 mt-1.5 min-h-9">

View File

@@ -25,7 +25,7 @@
{ label: t(".country") },
{ data: { auto_submit_form_target: "auto" } } %>
<%= family_form.select :month_start_day,
(1..28).map { |day| [day.ordinalize, day] },
(1..28).map { |day| [localized_ordinal(day), day] },
{ label: t(".month_start_day"), hint: t(".month_start_day_hint") },
{ data: { auto_submit_form_target: "auto" } } %>
<% if @user.family.uses_custom_month_start? %>
@@ -33,7 +33,7 @@
<%= t(".month_start_day_warning") %>
</div>
<% end %>
<p class="text-xs italic pl-2 text-secondary">Please note, we are still working on translations for various languages.</p>
<p class="text-xs italic pl-2 text-secondary"><%= t(".translations_notice") %></p>
<% end %>
<% end %>
</div>

View File

@@ -26,12 +26,12 @@
<% end %>
<% unless Current.user.ui_layout_intro? %>
<%= settings_section title: family_moniker == "Group" ? t(".group_title", default: "Group") : t(".household_title"), subtitle: t(".household_subtitle", moniker_plural: family_moniker_plural_downcase, moniker: family_moniker_downcase) do %>
<%= settings_section title: Current.family&.moniker == "Group" ? t(".group_title", default: "Group") : t(".household_title"), subtitle: t(".household_subtitle", moniker_plural: family_moniker_plural_downcase, moniker: family_moniker_downcase) do %>
<div class="space-y-4">
<%= styled_form_with model: Current.user, class: "space-y-4", data: { controller: "auto-submit-form" } do |form| %>
<%= form.fields_for :family do |family_fields| %>
<% name_label = family_moniker == "Group" ? t(".group_form_label", default: "Group name") : t(".household_form_label") %>
<% name_placeholder = family_moniker == "Group" ? t(".group_form_input_placeholder", default: "Enter group name") : t(".household_form_input_placeholder") %>
<% name_label = Current.family&.moniker == "Group" ? t(".group_form_label", default: "Group name") : t(".household_form_label") %>
<% name_placeholder = Current.family&.moniker == "Group" ? t(".group_form_input_placeholder", default: "Enter group name") : t(".household_form_input_placeholder") %>
<%= family_fields.text_field :name,
placeholder: name_placeholder,
label: name_label,
@@ -50,7 +50,7 @@
</div>
<p class="text-primary font-medium text-sm"><%= user.display_name %></p>
<div class="rounded-md bg-surface px-1.5 py-0.5">
<p class="uppercase text-secondary font-medium text-xs"><%= user.role %></p>
<p class="uppercase text-secondary font-medium text-xs"><%= t("users.roles.#{user.role}", default: user.role.humanize) %></p>
</div>
<% if Current.user.admin? && user != Current.user %>
<div class="ml-auto">

View File

@@ -2,21 +2,21 @@
<div id="<%= dom_id(transaction, "transfer_match") %>" class="flex items-center gap-1">
<% if transaction.transfer.confirmed? %>
<span title="<%= transaction.transfer.payment? ? "Payment" : "Transfer" %> is confirmed">
<span title="<%= transaction.transfer.payment? ? t("transactions.transfer_match.payment_confirmed") : t("transactions.transfer_match.transfer_confirmed") %>">
<%= icon "link-2", size: "sm", class: "text-secondary" %>
</span>
<% elsif transaction.transfer.pending? %>
<span class="hidden lg:inline-flex items-center rounded-full bg-surface-inset px-2 py-0.5 text-xs font-medium text-secondary">
Auto-matched
<%= t("transactions.transfer_match.auto_matched") %>
</span>
<span class="inline-flex lg:hidden items-center rounded-full bg-surface-inset px-2 py-0.5 text-xs font-medium text-secondary">
A/M
<%= t("transactions.transfer_match.auto_matched_short") %>
</span>
<%= button_to transfer_path(transaction.transfer, transfer: { status: "confirmed" }),
method: :patch,
class: "text-secondary flex items-center justify-center cursor-pointer",
title: "Confirm match" do %>
title: t("transactions.transfer_match.confirm_match") do %>
<%= icon "check", size: "sm", class: "text-secondary hover:text-primary" %>
<% end %>
@@ -24,7 +24,7 @@
method: :patch,
data: { turbo: false },
class: "text-secondary hover:text-primary flex items-center justify-center cursor-pointer",
title: "Reject match" do %>
title: t("transactions.transfer_match.reject_match") do %>
<%= icon "x", size: "sm", class: "text-subdued hover:text-primary" %>
<% end %>
<% end %>

View File

@@ -1,6 +1,87 @@
---
ca:
breadcrumbs:
account_sharings: Compartició de comptes
account_statements: Arxiu d'extractes
accounts: Comptes
ai_prompts: Prompts d'IA
api_key: Clau API
api_keys: Claus API
appearance: Aparença
appearances: Aparença
bank_sync: Sincronització bancària
binance_items: Binance
brex_items: Brex
budget_categories: Categories del pressupost
budgets: Pressupostos
categories: Categories
categorize: Categoritza
chats: Xats
coinbase_items: Coinbase
coinstats_items: CoinStats
credit_cards: Targetes de crèdit
cryptos: Cripto
dashboard: Tauler
debug: Depuració
debugs: Depuració
depositories: Comptes d'efectiu
enable_banking_items: Enable Banking
exports: Exportacions
family_exports: Exportacions
family_merchants: Comerços
guides: Guies
holdings: Posicions
home: Inici
hostings: Self hosting
ibkr_items: Interactive Brokers
impersonation_sessions: Suplantacions
imports: Importacions
indexa_capital_items: Indexa Capital
intro: Introducció
investments: Inversions
invitations: Invitacions
invite_codes: Codis d'invitació
kraken_items: Kraken
llm_usage: Ús d'LLM
llm_usages: Ús d'LLM
loans: Préstecs
lunchflow_items: Lunch Flow
merchants: Comerços
mercury_items: Mercury
messages: Missatges
mfa: Autenticació de dos factors
oidc_accounts: Comptes SSO
onboardings: Configuració inicial
other_assets: Altres actius
other_liabilities: Altres passius
payments: Pagaments
pending_duplicate_merges: Revisió de duplicats
plaid_items: Plaid
preferences: Preferències
profile: Informació del perfil
profiles: Informació del perfil
properties: Propietats
providers: Proveïdors
recurring_transactions: Recurrents
registrations: Registre
reports: Informes
rules: Regles
securities: Seguretat
security: Seguretat
self_hosting: Self hosting
sessions: Inici de sessió
simplefin_items: SimpleFIN
snaptrade_items: SnapTrade
sophtron_items: Sophtron
splits: Divisió
sso_identities: Connexions SSO
sso_providers: Proveïdors SSO
subscriptions: Subscripció
tags: Etiquetes
trades: Operacions
transactions: Transaccions
transfer_matches: Coincidències de transferències
transfers: Transferències
users: Usuaris
valuations: Valoracions
vehicles: Vehicles

View File

@@ -1,21 +1,87 @@
---
en:
breadcrumbs:
account_sharings: Account sharing
account_statements: Statement vault
accounts: Accounts
ai_prompts: AI Prompts
api_key: API Key
api_keys: API Keys
appearance: Appearance
appearances: Appearance
bank_sync: Bank Sync
binance_items: Binance
brex_items: Brex
budget_categories: Budget categories
budgets: Budgets
categories: Categories
categorize: Categorize
chats: Chats
coinbase_items: Coinbase
coinstats_items: CoinStats
credit_cards: Credit cards
cryptos: Crypto
dashboard: Dashboard
debug: Debug
debugs: Debug
depositories: Cash accounts
enable_banking_items: Enable Banking
exports: Exports
family_exports: Exports
family_merchants: Merchants
guides: Guides
holdings: Holdings
home: Home
hostings: Self-Hosting
ibkr_items: Interactive Brokers
impersonation_sessions: Impersonations
imports: Imports
indexa_capital_items: Indexa Capital
intro: Intro
investments: Investments
invitations: Invitations
invite_codes: Invite codes
kraken_items: Kraken
llm_usage: LLM Usage
llm_usages: LLM Usage
loans: Loans
lunchflow_items: Lunch Flow
merchants: Merchants
mercury_items: Mercury
messages: Messages
mfa: Two-factor authentication
oidc_accounts: SSO accounts
onboardings: Onboarding
other_assets: Other assets
other_liabilities: Other liabilities
payments: Payments
pending_duplicate_merges: Duplicate review
plaid_items: Plaid
preferences: Preferences
profile: Profile Info
profiles: Profile Info
properties: Properties
providers: Providers
recurring_transactions: Recurring
registrations: Sign up
reports: Reports
rules: Rules
securities: Security
security: Security
self_hosting: Self-Hosting
sessions: Sign in
simplefin_items: SimpleFIN
snaptrade_items: SnapTrade
sophtron_items: Sophtron
splits: Split
sso_identities: SSO connections
sso_providers: SSO providers
subscriptions: Subscription
tags: Tags
trades: Trades
transactions: Transactions
transfer_matches: Transfer matches
transfers: Transfers
users: Users
valuations: Valuations
vehicles: Vehicles

View File

@@ -0,0 +1,121 @@
---
ca:
countries:
AD: Andorra
AE: Emirats Àrabs Units
AF: Afganistan
AL: Albània
AM: Armènia
AO: Angola
AR: Argentina
AT: Àustria
AU: Austràlia
BA: Bòsnia i Hercegovina
BD: Bangla Desh
BE: Bèlgica
BG: Bulgària
BO: Bolívia
BR: Brasil
BY: Bielorússia
CA: Canadà
CD: República Democràtica del Congo
CG: República del Congo
CH: Suïssa
CI: Costa d'Ivori
CL: Xile
CM: Camerun
CN: Xina
CO: Colòmbia
CR: Costa Rica
CU: Cuba
CY: Xipre
CZ: República Txeca
DE: Alemanya
DK: Dinamarca
DO: República Dominicana
DZ: Algèria
EC: Equador
EE: Estònia
EG: Egipte
ES: Espanya
ET: Etiòpia
FI: Finlàndia
FR: França
GB: Regne Unit
GE: Geòrgia
GH: Ghana
GR: Grècia
GT: Guatemala
HK: Hong Kong
HN: Hondures
HR: Croàcia
HT: Haití
HU: Hongria
ID: Indonèsia
IE: Irlanda
IL: Israel
IN: Índia
IQ: Iraq
IR: Iran
IS: Islàndia
IT: Itàlia
JM: Jamaica
JO: Jordània
JP: Japó
KE: Kenya
KH: Cambodja
KP: Corea del Nord
KR: Corea del Sud
KW: Kuwait
KZ: Kazakhstan
LB: Líban
LT: Lituània
LU: Luxemburg
LV: Letònia
MA: Marroc
MD: Moldàvia
ME: Montenegro
MG: Madagascar
MK: Macedònia del Nord
MM: Myanmar (Birmània)
MN: Mongòlia
MT: Malta
MX: Mèxic
MY: Malàisia
NG: Nigèria
NI: Nicaragua
NL: Països Baixos
'NO': Noruega
NP: Nepal
NZ: Nova Zelanda
PA: Panamà
PE: Perú
PH: Filipines
PK: Pakistan
PL: Polònia
PR: Puerto Rico
PT: Portugal
PY: Paraguai
QA: Qatar
RO: Romania
RS: Sèrbia
RU: Rússia
SA: Aràbia Saudita
SE: Suècia
SG: Singapur
SI: Eslovènia
SK: Eslovàquia
SV: El Salvador
SY: Síria
TH: Tailàndia
TN: Tunísia
TR: Turquia
TW: Taiwan
UA: Ucraïna
UG: Uganda
US: Estats Units
UY: Uruguai
VE: Veneçuela
VN: Vietnam
ZA: Sud-àfrica
ZW: Zimbàbue

View File

@@ -41,7 +41,9 @@ ca:
formats:
default: "%d-%m-%Y"
long: "%d de %B de %Y"
month_year: "%B de %Y"
short: "%d de %b"
short_month_year: "%b de %Y"
month_names:
-
- Gener
@@ -83,7 +85,7 @@ ca:
other: menys de %{count} segons
over_x_years:
one: més d'%{count} any
other: més de %{count} anys
other: més d'%{count} anys
x_days:
one: "%{count} dia"
other: "%{count} dies"
@@ -108,6 +110,8 @@ ca:
year: any
defaults:
brand_name: "%{brand_name}"
common:
close: Tanca
product_name: "%{product_name}"
errors:
format: "%{attribute} %{message}"
@@ -122,7 +126,7 @@ ca:
greater_than: ha de ser més gran que %{count}
greater_than_or_equal_to: ha de ser més gran o igual a %{count}
in: ha d'estar entre %{count}
inclusion: no està inclós a la llista
inclusion: no està inclòs a la llista
invalid: no és vàlid
less_than: ha de ser menor que %{count}
less_than_or_equal_to: ha de ser menor o igual a %{count}
@@ -148,13 +152,17 @@ ca:
header:
one: No s'ha pogut desar aquest/a %{model} perquè hi ha %{count} error
other: No s'ha pogut desar aquest/a %{model} perquè hi ha hagut %{count} errors
global:
expand: Desplega
helpers:
select:
prompt: Si us plau tria
default_label: Selecciona...
prompt: Tria
search_placeholder: Cerca
submit:
create: Crear %{model}
submit: Guardar %{model}
update: Actualitzar %{model}
create: Crea %{model}
submit: Desa %{model}
update: Actualitza %{model}
number:
currency:
format:

View File

@@ -46,7 +46,7 @@ ca:
callback_url: URL de retorn
confidential: Confidencial?
confidentiality:
'no': No
'no': 'No'
'yes':
name: Nom
new: Nova aplicació
@@ -68,6 +68,7 @@ ca:
authorize: Autoritza
deny: Denega
error:
go_back: Torna enrere
title: S'ha produït un error
form_post:
title: Envia aquest formulari
@@ -76,6 +77,8 @@ ca:
prompt: Autoritzes %{client_name} a utilitzar el teu compte?
title: Autorització requerida
show:
authorization_code_label: 'Codi d''autorització:'
copy_instructions: Copia aquest codi i enganxa'l a l'aplicació.
title: Codi d'autorització
authorized_applications:
buttons:

View File

@@ -2,4 +2,4 @@
ca:
invitation_mailer:
invite_email:
subject: "%{inviter} t'ha convidat a unir-te al seu grup familiar a %{product_name}!"
subject: "%{inviter} t'ha convidat a unir-te al seu compte de %{product_name}!"

View File

@@ -0,0 +1,5 @@
---
ca:
pdf_import_mailer:
next_steps:
subject: S'ha analitzat el teu document PDF - %{product_name}

View File

@@ -1,12 +1,25 @@
---
ca:
account_order:
balance_asc:
label: Saldo (de menor a major)
label_short: Saldo ↑
balance_desc:
label: Saldo (de major a menor)
label_short: Saldo ↓
name_asc:
label: Nom (A-Z)
label_short: Nom ↑
name_desc:
label: Nom (Z-A)
label_short: Nom ↓
activerecord:
attributes:
account:
balance: Saldo
currency: Moneda
family: Família
family_id: Família
currency: Divisa
family: "%{moniker}"
family_id: "%{moniker}"
name: Nom
subtype: Subtipus
models:
@@ -15,8 +28,7 @@ ca:
account/depository: Compte bancari
account/investment: Inversió
account/loan: Préstec
account/other_asset: Altres actius
account/other_liability: Altres passius
account/other_asset: Altre actiu
account/other_liability: Altre passiu
account/property: Immoble
account/vehicle: Vehicle

View File

@@ -1,5 +1,18 @@
---
en:
account_order:
balance_asc:
label: Balance (Low to High)
label_short: Balance ↑
balance_desc:
label: Balance (High to Low)
label_short: Balance ↓
name_asc:
label: Name (A-Z)
label_short: Name ↑
name_desc:
label: Name (Z-A)
label_short: Name ↓
activerecord:
attributes:
account:

View File

@@ -0,0 +1,30 @@
---
ca:
activerecord:
attributes:
account_statement:
account: Compte
account_last4_hint: Quatre últims dígits del compte
account_name_hint: Pista del nom del compte
closing_balance: Saldo final
content_sha256: Resum del contingut
currency: Divisa
filename: Nom del fitxer
institution_name_hint: Pista de la institució
opening_balance: Saldo inicial
original_file: Fitxer de l'extracte
period_end_on: Final del període
period_start_on: Inici del període
errors:
models:
account_statement:
attributes:
checksum:
duplicate_statement_file: ja s'ha pujat per a aquesta família
content_sha256:
duplicate_statement_file: ja s'ha pujat per a aquesta família
original_file:
invalid_format: ha de ser un fitxer PDF, CSV o XLSX
too_large: és massa gran. La mida màxima és %{max_mb}MB
period_end_on:
on_or_after_start: ha de ser igual o posterior a l'inici del període

View File

@@ -9,4 +9,3 @@ ca:
postal_code: Codi postal
region: Regió
format: "%{line1} %{line2}, %{locality}, %{region} %{postal_code} %{country}"

View File

@@ -0,0 +1,8 @@
---
ca:
activerecord:
errors:
models:
api_key:
cannot_destroy_demo_key: No es pot eliminar la clau API de monitoratge de
demostració

View File

@@ -0,0 +1,14 @@
---
ca:
activerecord:
attributes:
brex_item:
base_url: URL base
name: Nom de la connexió
token: Token
errors:
models:
brex_item:
attributes:
base_url:
official_hosts_only: ha de ser buit, https://api.brex.com o https://api-staging.brex.com

View File

@@ -2,6 +2,28 @@
ca:
models:
category:
defaults:
entertainment: Oci
fees: Comissions
food_and_drink: Menjar i begudes
gifts_and_donations: Regals i donacions
groceries: Alimentació
healthcare: Salut
home_improvement: Millora de la llar
income: Ingressos
insurance: Assegurances
loan_payments: Pagaments de préstecs
mortgage_rent: Hipoteca / Lloguer
personal_care: Cura personal
savings_and_investments: Estalvis i inversions
services: Serveis
shopping: Compres
sports_and_fitness: Esport i fitness
subscriptions: Subscripcions
taxes: Impostos
transportation: Transport
travel: Viatges
utilities: Subministraments
investment_contributions: Contribucions d'inversió
other_investments: Altres inversions
uncategorized: Sense categoria
investment_contributions: Contribucions d'inversió

View File

@@ -0,0 +1,8 @@
---
ca:
activerecord:
errors:
models:
category_import:
missing_columns: 'Falten columnes obligatòries: %{columns}'
own_parent: La categoria '%{name}' no pot ser el seu propi pare

View File

@@ -0,0 +1,11 @@
---
ca:
chat:
errors:
default: No s'ha pogut generar una resposta. Torna-ho a provar.
misconfigured: El proveïdor d'IA no està configurat correctament. Contacta amb
el teu administrador.
rate_limited: El proveïdor d'IA té un límit de peticions ara mateix. Torna-ho
a provar d'aquí a uns minuts.
temporarily_unavailable: El proveïdor d'IA no està disponible temporalment.
Torna-ho a provar d'aquí a uns minuts.

View File

@@ -0,0 +1,5 @@
---
ca:
coinbase:
processor:
paid_via: Pagat amb %{method}

View File

@@ -4,7 +4,7 @@ ca:
coinstats_item:
syncer:
calculating_balances: S'estan calculant els saldos...
checking_configuration: S'està comprovant la configuració del moneder...
importing_wallets: S'estan important moneders de CoinStats...
processing_holdings: S'estan processant les participacions...
wallets_need_setup: "%{count} moneders necessiten configuració..."
checking_configuration: S'està comprovant la configuració del compte de CoinStats...
importing_wallets: S'estan important comptes de cripto des de CoinStats...
processing_holdings: S'estan processant les posicions...
wallets_need_setup: "%{count} comptes de cripto necessiten configuració..."

View File

@@ -3,7 +3,11 @@ ca:
activerecord:
attributes:
import:
currency: Moneda
col_sep: Separador de columnes
col_seps:
comma: Coma (,)
semicolon: Punt i coma (;)
currency: Divisa
number_format: Format numèric
errors:
models:
@@ -11,4 +15,5 @@ ca:
attributes:
raw_file_str:
invalid_csv_format: no és un format CSV vàlid
duplicate_headers: 'Les capçaleres del CSV es normalitzen en columnes duplicades:
%{columns}'

View File

@@ -3,6 +3,10 @@ en:
activerecord:
attributes:
import:
col_sep: Column separator
col_seps:
comma: Comma (,)
semicolon: Semicolon (;)
currency: Currency
number_format: Number Format
errors:

View File

@@ -0,0 +1,8 @@
---
ca:
activerecord:
errors:
models:
indexa_capital_item:
credentials_required: Cal la variable d'entorn INDEXA_API_TOKEN o bé les
credencials d'usuari/document/contrasenya

View File

@@ -0,0 +1,54 @@
---
ca:
period:
all_time:
comparison_label: vs. inici
label: Sempre
label_short: Tot
current_month:
comparison_label: vs. inici de mes
label: Mes en curs
label_short: MTD
current_week:
comparison_label: vs. inici de setmana
label: Setmana en curs
label_short: STD
current_year:
comparison_label: vs. inici d'any
label: Any en curs
label_short: YTD
custom:
label: Període personalitzat
label_short: Personalitzat
last_10_years:
comparison_label: vs. fa 10 anys
label: Últims 10 anys
label_short: 10A
last_30_days:
comparison_label: vs. últims 30 dies
label: Últims 30 dies
label_short: 30D
last_365_days:
comparison_label: vs. fa 1 any
label: Últims 365 dies
label_short: 365D
last_5_years:
comparison_label: vs. fa 5 anys
label: Últims 5 anys
label_short: 5A
last_7_days:
comparison_label: vs. setmana anterior
label: Últims 7 dies
label_short: 7D
last_90_days:
comparison_label: vs. trimestre anterior
label: Últims 90 dies
label_short: 90D
last_day:
comparison_label: vs. ahir
label: Últim dia
label_short: 1D
last_month:
comparison_label: vs. mes anterior
label: Mes anterior
label_short: MA

View File

@@ -0,0 +1,7 @@
---
ca:
activerecord:
errors:
models:
plaid_account:
no_balance: El compte de Plaid ha de tenir un saldo actual o disponible

View File

@@ -1,4 +1,7 @@
---
ca:
provider_warnings:
limited_investment_data: "Les dades d'inversió d'aquest proveïdor són limitades. Les etiquetes d'activitat (Compra, Venda, Dividend) no estan disponibles, cosa que pot afectar la precisió del pressupost. Considereu crear regles per excloure o categoritzar les transaccions d'inversió."
limited_investment_data: Les dades d'inversió d'aquest proveïdor són limitades.
Les etiquetes d'activitat (Compra, Venda, Dividend) no estan disponibles, cosa
que pot afectar la precisió del pressupost. Considera crear regles per excloure
o categoritzar les transaccions d'inversió.

View File

@@ -0,0 +1,7 @@
---
ca:
activerecord:
errors:
models:
recurring_transaction:
merchant_or_name_required: Cal indicar un comerç o un nom

View File

@@ -0,0 +1,9 @@
---
ca:
activerecord:
errors:
models:
rule:
duplicate_actions: La regla no pot tenir accions duplicades %{types}
min_actions: ha de tenir com a mínim una acció
nested_conditions: Les condicions compostes no es poden imbricar

View File

@@ -0,0 +1,9 @@
---
ca:
activerecord:
errors:
models:
rule_import:
invalid_json: 'JSON no vàlid a les condicions o accions: %{message}'
min_actions: La regla ha de tenir com a mínim una acció
unsupported_resource_type: 'Tipus de recurs no compatible: %{resource_type}'

View File

@@ -0,0 +1,7 @@
---
ca:
activerecord:
errors:
models:
simplefin_account:
no_balance: El compte de SimpleFIN ha de tenir un saldo actual o disponible

View File

@@ -0,0 +1,7 @@
---
ca:
activerecord:
errors:
models:
sophtron_account:
no_balance: El compte de Sophtron ha de tenir un saldo actual o disponible

View File

@@ -0,0 +1,14 @@
---
ca:
activerecord:
errors:
models:
sso_provider:
attributes:
settings:
metadata_url_invalid: L'URL de metadades de l'IdP ha de ser un URL vàlid
saml_cert_required: Cal el certificat de l'IdP o l'empremta del certificat
quan no s'utilitza l'URL de metadades
saml_url_required: Per als proveïdors SAML cal l'URL de metadades de
l'IdP o l'URL d'SSO de l'IdP
sso_url_invalid: L'URL d'SSO de l'IdP ha de ser un URL vàlid

View File

@@ -7,4 +7,3 @@ ca:
attributes:
value:
must_be_a_money_or_numeric: ha de ser un Money o un valor numèric

View File

@@ -0,0 +1,11 @@
---
ca:
activerecord:
errors:
models:
transaction:
attributes:
attachments:
invalid_format: el fitxer %{index} té un format no compatible (%{file_format})
too_large: el fitxer %{index} és massa gran (màxim %{max_mb}MB)
too_many: no es poden superar %{max} fitxers per transacció

View File

@@ -15,9 +15,13 @@ ca:
han d'estar dins d'un marge de 4 dies
must_have_opposite_amounts: Les transaccions de transferència han de
tenir imports oposats
must_have_single_currency: La transferència ha de tenir una sola moneda
must_have_single_currency: La transferència ha de tenir una sola divisa
outflow_cannot_be_in_multiple_transfers: La transacció de sortida no
pot formar part de múltiples transferències
different_accounts: Han de ser de comptes diferents
opposite_amounts: Han de tenir imports oposats
same_family: Han de ser de la mateixa família
within_days: Han d'estar dins de %{count} dies
transfer:
name: Transferència a %{to_account}
payment_name: Pagament a %{to_account}

View File

@@ -4,8 +4,8 @@ ca:
attributes:
user:
email: Correu electrònic
family: Família
family_id: Família
family: "%{moniker}"
family_id: "%{moniker}"
first_name: Nom
last_name: Cognom
password: Contrasenya
@@ -16,7 +16,6 @@ ca:
attributes:
base:
cannot_deactivate_admin_with_other_users: L'administrador no pot eliminar
el compte mentre hi hagi altres usuaris. Elimina tots els membres
primer.
el compte mentre hi hagi altres usuaris. Elimina primer tots els membres.
profile_image:
invalid_file_size: la mida del fitxer ha de ser inferior a %{max_megabytes}MB

View File

@@ -0,0 +1,30 @@
---
ca:
account_sharings:
show:
exclude_from_finances: Exclou dels meus pressupostos i informes
finance_toggle_description: Compta aquest compte al teu patrimoni net, pressupostos
i informes
include_in_finances: Inclou als meus pressupostos i informes
member: Membre
no_members: Encara no hi ha altres membres amb qui compartir aquest compte
owner_label: 'Propietari: %{name}'
permission: Permís
permissions:
full_control: Control total
full_control_description: Pot veure, editar i gestionar transaccions
read_only: Només visualització
read_only_description: Només pot veure les dades del compte
read_write: Pot anotar
read_write_description: Pot categoritzar, etiquetar i afegir notes
save: Desa la configuració de compartició
shared: Compartit
shared_with_count:
one: Compartit amb 1 membre
other: Compartit amb %{count} membres
subtitle: Controla qui pot veure i interactuar amb aquest compte
title: Compartició de comptes
update:
finance_toggle_success: Preferència d'inclusió a les finances actualitzada
not_owner: Només el propietari del compte pot gestionar la compartició
success: Configuració de compartició actualitzada

View File

@@ -0,0 +1,119 @@
---
ca:
account_statements:
account_tab:
coverage_description: Mesos històrics coberts amb extractes pujats i comprovacions
de saldo.
coverage_range: "%{start} - %{end}"
coverage_title: Cobertura d'extractes
empty: Encara no hi ha extractes enllaçats a aquest compte.
open_inbox: Safata d'entrada
statements_title: Extractes
year_label: Any de cobertura
balance:
unknown: Desconegut
coverage:
status:
ambiguous: Ambigu
covered: Cobert
duplicate: Duplicat
mismatched: No coincideix
missing: Falta
not_expected: No previst
create:
duplicates:
one: S'ha omès 1 extracte duplicat.
other: S'han omès %{count} extractes duplicats.
invalid_file_type: Puja un extracte en PDF, CSV o XLSX dins del límit de mida.
no_files: Selecciona com a mínim un fitxer d'extracte.
success:
one: 1 extracte pujat.
other: "%{count} extractes pujats."
destroy:
failure: No s'ha pogut eliminar l'extracte.
success: Extracte eliminat.
form:
account_upload: Puja l'extracte
files_hint: PDF, CSV o XLSX. Màxim %{max_size}MB per fitxer.
files_label: Fitxers d'extracte
inbox_upload: Puja
index:
account_label: Compte
confidence: Coincidència %{confidence}
empty_linked: Encara no hi ha extractes enllaçats.
empty_unmatched: La safata sense aparellar està buida.
leave_unmatched: Deixa sense aparellar
linked_title: Extractes enllaçats
no_suggestion: Sense suggeriment
storage_used: Emmagatzematge utilitzat
title: Arxiu d'extractes
unmatched_title: Safata sense aparellar
upload_description: Puja extractes a la safata, o tria un compte per enllaçar-los
immediatament.
upload_title: Puja extractes
link:
no_account: Tria un compte abans d'enllaçar aquest extracte.
success: Extracte enllaçat a %{account}.
period:
unknown: Període desconegut
reconciliation:
checks:
closing_balance: Saldo final
opening_balance: Saldo inicial
period_movement: Moviment del període
unknown_check: Comprovació desconeguda
matched: Coincideix
mismatched: No coincideix
unavailable: No comprovat
reject:
success: Coincidència d'extracte rebutjada.
show:
account_label: Compte
account_last4_hint: Últims quatre dígits del compte
account_name_hint: Pista del nom del compte
closing_balance: Saldo final
currency: Divisa
delete: Elimina
difference: Diferència
download: Descarrega
institution_name_hint: Pista de la institució
ledger_amount: Llibre de Sure
link_suggestion: Suggeriment d'enllaç
linked_to: Enllaçat a %{account}.
linking_title: Enllaç del compte
metadata_title: Metadades de l'extracte
no_suggestion: Encara no hi ha cap suggeriment de compte.
opening_balance: Saldo inicial
period_end_on: Final del període
period_start_on: Inici del període
reconciliation_title: Conciliació
reconciliation_unavailable: Afegeix un període d'extracte i un saldo inicial
o final, i comprova que Sure tingui historial de saldos per a aquestes dates.
reject: Rebutja
save: Desa l'extracte
statement_amount: Extracte
suggested_account: El compte suggerit és %{account} (confiança %{confidence}).
title: Extracte
unknown_value: Desconegut
unlink: Desenllaça
unmatched_account: Safata sense aparellar
status:
linked: Enllaçat
rejected: Rebutjat
unmatched: Sense aparellar
table:
account: Compte
actions: Accions
download: Descarrega
file: Fitxer
link_suggestion: Suggeriment d'enllaç
period: Període
reconciliation: Conciliació
reject: Rebutja el suggeriment
suggestion: Suggeriment
unlink: Desenllaça
view: Visualitza
unlink:
success: Extracte mogut de nou a la safata sense aparellar.
update:
success: Extracte actualitzat.

View File

@@ -3,31 +3,41 @@ ca:
account:
entries:
destroy:
success: Èxit
success: Entrada eliminada correctament.
accounts:
account:
change_simplefin_account: Canvia el compte de SimpleFIN
complete_setup: Completa la configuració
default_label: Per defecte
delete: Elimina el compte
disable: Desactiva el compte
edit: Edita
enable: Activa el compte
link_lunchflow: Enllaça amb Lunch Flow
link_provider: Enllaça amb proveïdor
remove_default: Treu com a predeterminat
set_default: Estableix com a predeterminat
sharing: Compartició
troubleshoot: Resolució de problemes
unlink_provider: Desenllaça del proveïdor
chart:
data_not_available: Dades no disponibles per al període seleccionat
confirm_unlink:
confirm_button: Confirma i desenllaça
description_html: Estàs a punt de desenllaçar <strong>%{account_name}</strong> de
<strong>%{provider_name}</strong>. Això el convertirà en un compte manual.
description_html: Estàs a punt de desenllaçar <strong>%{account_name}</strong>
de <strong>%{provider_name}</strong>. Això el convertirà en un compte manual.
title: Vols desenllaçar el compte del proveïdor?
warning_can_delete: Després de desenllaçar-lo, podràs eliminar el compte
si és necessari
warning_manual_updates: Hauràs d'afegir transaccions i actualitzar saldos
manualment
warning_no_sync: El compte ja no sincronitzarà automàticament amb el teu proveïdor
warning_can_delete: Després de desenllaçar-lo, podràs eliminar el compte si
és necessari
warning_manual_updates: Hauràs d'afegir transaccions i actualitzar saldos manualment
warning_no_sync: El compte ja no es sincronitzarà automàticament amb el teu proveïdor
warning_title: Això significa
warning_transactions_kept: Totes les transaccions i saldos existents es conservaran
create:
success: Compte %{type} creat
destroy:
cannot_delete_linked: No es pot eliminar un compte enllaçat. Si us plau, desenllaça'l primer.
cannot_delete_linked: No es pot eliminar un compte enllaçat. Desenllaça'l primer.
failed: No s'ha pogut eliminar el recurs. Torna-ho a provar més tard.
success: El compte %{type} s'ha programat per a l'eliminació
empty:
empty_message: Afegeix un compte mitjançant connexió, importació o introducció
@@ -36,16 +46,17 @@ ca:
no_accounts: Encara no hi ha cap compte
form:
additional_details: Detalls addicionals
balance: Saldo actual
institution_domain_label: Domini de l'institució
balance: 'Saldo a la data:'
institution_domain_label: Domini de la institució
institution_domain_placeholder: p. ex., chase.com
institution_name_label: Nom de l'institució
institution_name_label: Nom de la institució
institution_name_placeholder: p. ex., Chase Bank
name_label: Nom del compte
name_placeholder: Exemple de nom de compte
notes_label: Notes
notes_placeholder: Emmagatzema informació addicional com números de compte, codis de sortida,
IBAN, números de ruta, etc.
notes_placeholder: Emmagatzema informació addicional com números de compte,
codis de sortida, IBAN, números de ruta, etc.
opening_balance_date_label: Data del saldo inicial
index:
accounts: Comptes
manual_accounts:
@@ -53,6 +64,10 @@ ca:
new_account: Nou compte
sync: Sincronitza-ho tot
new:
container:
close: Tanca
navigate: Navega
select: Selecciona
import_accounts: Importa comptes
method_selector:
connected_entry: Enllaça el compte
@@ -62,11 +77,15 @@ ca:
manual_entry: Introdueix el saldo del compte
title: Com vols afegir-lo?
title: Què vols afegir?
not_authorized: No tens permís per gestionar aquest compte
select_provider:
already_linked: Aquest compte ja està enllaçat a un proveïdor
description: Tria quin proveïdor vols utilitzar per enllaçar %{account_name}
no_providers: Actualment no hi ha cap proveïdor configurat
title: Selecciona un proveïdor per enllaçar
set_default:
depository_only: Només els comptes d'efectiu i de targeta de crèdit es poden
establir com a predeterminats.
show:
activity:
amount: Import
@@ -77,17 +96,27 @@ ca:
entry: entrada
filter: Filtra
new: Nou
new_activity: Nova activitat
new_balance: Nou saldo
new_trade: Nova operació
new_transaction: Nova transacció
new_transfer: Nova transferència
no_entries: No s'han trobat entrades
pending: Pendent
search:
placeholder: Cerca entrades per nom
search_placeholder: Cerca entrades per nom
status: Estat
title: Activitat
chart:
balance: Saldo
owed: Import degut
header:
complete_setup: Completa la configuració
limited_fx_history_warning: L'historial de tipus de canvi només està disponible
a partir del %{date}. Les transaccions anteriors a aquesta data utilitzen
conversions de divisa aproximades — això pot passar quan el proveïdor de FX
només ofereix una finestra històrica limitada.
menu:
confirm_accept: Elimina "%{name}"
confirm_body_html: "<p>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.</p>"
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:

View File

@@ -0,0 +1,8 @@
---
ca:
admin:
invitations:
destroy:
success: Invitació eliminada.
destroy_all:
success: S'han eliminat totes les invitacions d'aquesta família.

View File

@@ -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: Provment 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: Defineix <code class="bg-surface px-1 py-0.5
rounded text-xs">AUTH_PROVIDERS_SOURCE=db</code> 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:

View File

@@ -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: "%{count} 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."

View File

@@ -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.

View File

@@ -0,0 +1,5 @@
---
ca:
beta:
not_enabled: Aquesta funció està en beta. Activa les funcions beta a Configuració
→ Preferències per provar-la.

View File

@@ -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.

View File

@@ -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ó <strong>Brex</strong>
open_settings_html: Ves a <strong>Configuració > Proveïdors</strong>
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

View File

@@ -1,21 +1,102 @@
---
ca:
budget_categories:
allocation_progress:
budget_exceeded_html: 'Pressupost superat en <span class="text-red-500 privacy-sensitive">%{amount}</span>'
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

View File

@@ -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 <span class="text-red-500 privacy-sensitive">%{amount}</span>'
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:

View File

@@ -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"

View File

@@ -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:

View File

@@ -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

View File

@@ -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 <code class="bg-surface-inset px-1 py-0.5 rounded font-mono
text-xs">OPENAI_ACCESS_TOKEN</code> o configurar-la a la configuració de self hosting
de la teva instància.
ai_greeting:
commands_hint_html: Pots utilitzar <span class="bg-container border border-secondary
px-1.5 py-0.5 rounded font-mono text-xs">/</span> 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

View File

@@ -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.

View File

@@ -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 <strong>Configuració → Proveïdors</strong>
not_configured_step2_html: Localitza el proveïdor <strong>CoinStats</strong>
not_configured_step3_html: Segueix les <strong>instruccions de configuració</strong> proporcionades per completar la configuració del proveïdor
not_configured_step3_html: Segueix les <strong>instruccions de configuració</strong>
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 <a href="https://openapi.coinstats.app/" class="link" target="_blank" rel="noopener noreferrer">Panell de l'API Pública de CoinStats</a> per obtenir una clau API.
setup_instructions: 'Instruccions de configuració:'
step1_html: Visita el <a href="https://openapi.coinstats.app/" class="link"
target="_blank" rel="noopener noreferrer">panell de l'API pública de CoinStats</a>
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 <a href="%{accounts_url}" class="link" data-turbo-frame="_top">Comptes</a> 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 <a href="%{accounts_url}"
class="link" data-turbo-frame="_top">Comptes</a> 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.
validation_failed: 'La validació ha fallat: %{message}.'
success: La connexió amb el proveïdor CoinStats s'ha actualitzat correctament.

View File

@@ -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: Beta
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

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 <strong>Configuració → Proveïdors</strong>
setup_step_2_html: Localitza la secció <strong>Enable Banking</strong>
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.

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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 «<span class="font-medium">%{value}</span>» 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 <strong>all.ndjson</strong> 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.

View File

@@ -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

View File

@@ -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.

View File

@@ -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}!

View File

@@ -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ú

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
open_demo: Demostració oberta

View File

@@ -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

View File

@@ -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: Jubilac
mutual_fund: Fons d'inversió
pension: Pens
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 <strong>Configuració → Proveïdors</strong>
setup_step_2_html: Localitza la secció <strong>Lunch Flow</strong>
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

View File

@@ -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

View File

@@ -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 <strong>token sencer</strong> (incloent el prefix
<code>secret-token:</code>) 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: "<strong>Important:</strong> 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 <code>https://api-sandbox.mercury.com/api/v1</code> 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 <strong>Configuració > Proveïdors</strong>
setup_step_2_html: Localitza la secció <strong>Mercury</strong>
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

View File

@@ -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 ...

View File

@@ -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.

View File

@@ -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: " (<strong>%{email}</strong>)"
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
<strong>%{email}</strong>. 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: " (<strong>%{email}</strong>)"
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 <strong>%{email}</strong>. 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
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

View File

@@ -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.<br/>Si t'agrada, allotja'l tu mateix o contribueix per continuar usant-lo aquí.
try_button: Provar Sure durant 45 dies
continue_trial: Continuar la prova
upgrade: Actualitzar
how_it_works: Com funciona
description_html: A partir d'avui pots fer una bona ullada al producte.<br/>Si
t'agrada, autoallotja'l o contribueix per continuar fent-lo servir aquí.
how_it_works: Com funcionen les coses aquí
in_40_days: D'aquí 40 dies (%{date})
in_40_days_description: T'avisarem perquè recordis exportar les teves dades.
in_45_days: D'aquí 45 dies (%{date})
in_45_days_description: Eliminarem les teves dades — contribueix per continuar
fent servir Sure aquí!
title: Prova Sure durant 45 dies
today: Avui
today_description: Tindràs accés gratuït a Sure durant 45 dies al nostre AWS.
in_40_days: En 40 dies (%{date})
in_40_days_description: Et notificarem per recordar-te d'exportar les teves dades.
in_45_days: En 45 dies (%{date})
in_45_days_description: Eliminarem les teves dades — contribueix per continuar usant Sure aquí!
try_button: Prova Sure durant 45 dies
upgrade: Actualitza

Some files were not shown because too many files have changed in this diff Show More