diff --git a/Gemfile b/Gemfile index 7d9d05496..de23ef7d8 100644 --- a/Gemfile +++ b/Gemfile @@ -69,6 +69,7 @@ gem "faraday-multipart" gem "inline_svg" gem "octokit" gem "pagy" +gem "rails-i18n" gem "rails-settings-cached" gem "tzinfo-data", platforms: %i[windows jruby] gem "csv" diff --git a/Gemfile.lock b/Gemfile.lock index 7489b5e36..6770a8e66 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -839,6 +839,7 @@ DEPENDENCIES rack-cors rack-mini-profiler rails (~> 7.2.2) + rails-i18n rails-settings-cached rchardet redcarpet diff --git a/app/controllers/snaptrade_items_controller.rb b/app/controllers/snaptrade_items_controller.rb index c16eeb011..f02d5a155 100644 --- a/app/controllers/snaptrade_items_controller.rb +++ b/app/controllers/snaptrade_items_controller.rb @@ -221,8 +221,9 @@ class SnaptradeItemsController < ApplicationController if errors.any? # Partial success - some linked, some failed - redirect_to accounts_path, notice: t(".partial_success", linked: linked_count, failed: errors.size, - default: "Linked #{linked_count} account(s). #{errors.size} failed to link.") + redirect_to accounts_path, + notice: t(".partial_success", count: linked_count, failed_count: errors.size, + default: "Linked #{linked_count} account(s). #{errors.size} failed to link.") else redirect_to accounts_path, notice: t(".success", count: linked_count, default: "Successfully linked #{linked_count} account(s).") end diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index 0320033c7..6f451d4a4 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -155,18 +155,19 @@ module LanguagesHelper # Locales with complete/extensive translations SUPPORTED_LOCALES = [ - "en", # English - 71 translation files - "fr", # French - 61 translation files - "de", # German - 62 translation files - "es", # Spanish - 61 translation files - "tr", # Turkish - 58 translation files - "nb", # Norwegian Bokmål - 57 translation files - "ca", # Catalan - 57 translation files - "ro", # Romanian - 62 translation files - "pt-BR", # Brazilian Portuguese - 60 translation files - "zh-CN", # Chinese (Simplified) - 59 translation files - "zh-TW", # Chinese (Traditional) - 63 translation files - "nl" # Dutch - 73 translation files + "en", # English + "fr", # French + "de", # German + "es", # Spanish + "tr", # Turkish + "nb", # Norwegian Bokmål + "ca", # Catalan + "ro", # Romanian + "pl", # Polish + "pt-BR", # Brazilian Portuguese + "zh-CN", # Chinese (Simplified) + "zh-TW", # Chinese (Traditional) + "nl" # Dutch ].freeze COUNTRY_MAPPING = { diff --git a/app/views/import/confirms/show.html.erb b/app/views/import/confirms/show.html.erb index e8fe1a47c..269aca93e 100644 --- a/app/views/import/confirms/show.html.erb +++ b/app/views/import/confirms/show.html.erb @@ -55,7 +55,7 @@ <%= t(".#{step_mapping_class.name.demodulize.underscore}_title", import_type: @import.type.underscore.humanize) %>

- <%= t(".#{step_mapping_class.name.demodulize.underscore}_description", import_type: @import.type.underscore.humanize, product_name: product_name) %> + <%= t(".#{step_mapping_class.name.demodulize.underscore}_description", import_type: @import.type.underscore.humanize, product: product_name) %>

diff --git a/app/views/subscriptions/upgrade.html.erb b/app/views/subscriptions/upgrade.html.erb index e0c86ec6b..0c600cf99 100644 --- a/app/views/subscriptions/upgrade.html.erb +++ b/app/views/subscriptions/upgrade.html.erb @@ -25,7 +25,7 @@ <%= image_tag "logo-color.png", class: "w-16 mb-6" %> <% if Current.family.trialing? %> -

<%= t("subscriptions.upgrade.trialing", days: Current.family.days_left_in_trial) %>

+

<%= t("subscriptions.upgrade.trialing", count: Current.family.days_left_in_trial, days: Current.family.days_left_in_trial) %>

<% else %>

<%= t("subscriptions.upgrade.trial_over") %>

<% end %> diff --git a/config/locales/breadcrumbs/pl.yml b/config/locales/breadcrumbs/pl.yml new file mode 100644 index 000000000..5d4755451 --- /dev/null +++ b/config/locales/breadcrumbs/pl.yml @@ -0,0 +1,6 @@ +--- +pl: + breadcrumbs: + exports: Eksporty + home: Strona główna + imports: Importy diff --git a/config/locales/doorkeeper.pl.yml b/config/locales/doorkeeper.pl.yml new file mode 100644 index 000000000..a561c3b7d --- /dev/null +++ b/config/locales/doorkeeper.pl.yml @@ -0,0 +1,153 @@ +pl: + activerecord: + attributes: + doorkeeper/application: + name: "Nazwa" + redirect_uri: "URI przekierowania" + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: "nie może zawierać fragmentu." + invalid_uri: "musi być poprawnym URI." + unspecified_scheme: "musi określać schemat." + relative_uri: "musi być bezwzględnym URI." + secured_uri: "musi być URI HTTPS/SSL." + forbidden_uri: "jest zabronione przez serwer." + scopes: + not_match_configured: "nie odpowiada zakresom skonfigurowanym na serwerze." + + doorkeeper: + applications: + confirmations: + destroy: "Czy na pewno?" + buttons: + edit: "Edytuj" + destroy: "Usuń" + submit: "Zapisz" + cancel: "Anuluj" + authorize: "Autoryzuj" + form: + error: "Ups! Sprawdź formularz pod kątem możliwych błędów" + help: + confidential: "Aplikacja będzie używana tam, gdzie sekret klienta może pozostać poufny. Natywne aplikacje mobilne i aplikacje Single Page App są uznawane za niepoufne." + redirect_uri: "Użyj jednej linii dla każdego URI" + blank_redirect_uri: "Pozostaw puste, jeśli skonfigurowano dostawcę do użycia Client Credentials, Resource Owner Password Credentials lub innego typu grant, który nie wymaga URI przekierowania." + scopes: "Oddzielaj zakresy spacjami. Pozostaw puste, aby użyć domyślnych zakresów." + edit: + title: "Edytuj aplikację" + index: + title: "Twoje aplikacje" + new: "Nowa aplikacja" + name: "Nazwa" + callback_url: "URL callback" + confidential: "Poufna?" + actions: "Akcje" + confidentiality: + "yes": "Tak" + "no": "Nie" + new: + title: "Nowa aplikacja" + show: + title: "Aplikacja: %{name}" + application_id: "UID" + secret: "Sekret" + secret_hashed: "Zahaszowany sekret" + scopes: "Zakresy" + confidential: "Poufna" + callback_urls: "URL-e callback" + actions: "Akcje" + not_defined: "Nie zdefiniowano" + + authorizations: + buttons: + authorize: "Autoryzuj" + deny: "Odmów" + error: + title: "Wystąpił błąd" + new: + title: "Wymagana autoryzacja" + prompt: "Zezwolić aplikacji %{client_name} na użycie Twojego konta?" + able_to: "Ta aplikacja będzie mogła" + show: + title: "Kod autoryzacyjny" + form_post: + title: "Wyślij ten formularz" + + authorized_applications: + confirmations: + revoke: "Czy na pewno?" + buttons: + revoke: "Cofnij" + index: + title: "Twoje autoryzowane aplikacje" + application: "Aplikacja" + created_at: "Utworzono" + date_format: "%Y-%m-%d %H:%M:%S" + + pre_authorization: + status: "Wstępna autoryzacja" + + errors: + messages: + invalid_request: + unknown: "Żądanie nie zawiera wymaganego parametru, zawiera nieobsługiwaną wartość parametru lub jest nieprawidłowo sformułowane." + missing_param: "Brakuje wymaganego parametru: %{value}." + request_not_authorized: "Żądanie wymaga autoryzacji. Wymagany parametr autoryzacji jest brakujący lub nieprawidłowy." + invalid_code_challenge: "Code challenge jest wymagany." + invalid_redirect_uri: "Żądany URI przekierowania jest nieprawidłowy lub nie zgadza się z URI przekierowania klienta." + unauthorized_client: "Klient nie ma uprawnień do wykonania tego żądania tą metodą." + access_denied: "Właściciel zasobu lub serwer autoryzacji odrzucił żądanie." + invalid_scope: "Żądany zakres jest nieprawidłowy, nieznany lub błędnie sformułowany." + invalid_code_challenge_method: + zero: "Serwer autoryzacji nie obsługuje PKCE, ponieważ brak akceptowanych wartości code_challenge_method." + one: "code_challenge_method musi mieć wartość %{challenge_methods}." + few: "code_challenge_method musi mieć jedną z wartości: %{challenge_methods}." + many: "code_challenge_method musi mieć jedną z wartości: %{challenge_methods}." + other: "code_challenge_method musi mieć jedną z wartości: %{challenge_methods}." + server_error: "Serwer autoryzacji napotkał nieoczekiwany warunek, który uniemożliwił realizację żądania." + temporarily_unavailable: "Serwer autoryzacji jest chwilowo niedostępny z powodu przeciążenia lub prac serwisowych." + + credential_flow_not_configured: "Przepływ Resource Owner Password Credentials zakończył się niepowodzeniem, ponieważ Doorkeeper.configure.resource_owner_from_credentials nie jest skonfigurowany." + resource_owner_authenticator_not_configured: "Wyszukiwanie właściciela zasobu zakończyło się niepowodzeniem, ponieważ Doorkeeper.configure.resource_owner_authenticator nie jest skonfigurowany." + admin_authenticator_not_configured: "Dostęp do panelu administratora jest zabroniony, ponieważ Doorkeeper.configure.admin_authenticator nie jest skonfigurowany." + + unsupported_response_type: "Serwer autoryzacji nie obsługuje tego typu odpowiedzi." + unsupported_response_mode: "Serwer autoryzacji nie obsługuje tego trybu odpowiedzi." + + invalid_client: "Uwierzytelnienie klienta nie powiodło się z powodu nieznanego klienta, braku uwierzytelnienia klienta lub nieobsługiwanej metody uwierzytelnienia." + invalid_grant: "Podany grant autoryzacyjny jest nieprawidłowy, wygasł, został cofnięty, nie odpowiada URI przekierowania użytemu w żądaniu autoryzacji lub został wydany innemu klientowi." + unsupported_grant_type: "Typ grantu autoryzacyjnego nie jest obsługiwany przez serwer autoryzacji." + + invalid_token: + revoked: "Token dostępu został cofnięty" + expired: "Token dostępu wygasł" + unknown: "Token dostępu jest nieprawidłowy" + revoke: + unauthorized: "Nie masz uprawnień do cofnięcia tego tokenu" + + forbidden_token: + missing_scope: "Dostęp do tego zasobu wymaga zakresu \"%{oauth_scopes}\"." + + flash: + applications: + create: + notice: "Aplikacja została utworzona." + destroy: + notice: "Aplikacja została usunięta." + update: + notice: "Aplikacja została zaktualizowana." + authorized_applications: + destroy: + notice: "Autoryzacja aplikacji została cofnięta." + + layouts: + admin: + title: "Doorkeeper" + nav: + oauth2_provider: "Dostawca OAuth2" + applications: "Aplikacje" + home: "Strona główna" + application: + title: "Wymagana autoryzacja OAuth" \ No newline at end of file diff --git a/config/locales/mailers/invitation_mailer/pl.yml b/config/locales/mailers/invitation_mailer/pl.yml new file mode 100644 index 000000000..ff833bd77 --- /dev/null +++ b/config/locales/mailers/invitation_mailer/pl.yml @@ -0,0 +1,5 @@ +--- +pl: + invitation_mailer: + invite_email: + subject: "%{inviter} zaprosił(a) Cię do dołączenia do swojego gospodarstwa domowego w %{product_name}!" diff --git a/config/locales/mailers/pdf_import_mailer/pl.yml b/config/locales/mailers/pdf_import_mailer/pl.yml new file mode 100644 index 000000000..713401ee8 --- /dev/null +++ b/config/locales/mailers/pdf_import_mailer/pl.yml @@ -0,0 +1,5 @@ +--- +pl: + pdf_import_mailer: + next_steps: + subject: "Twój dokument PDF został przeanalizowany - %{product_name}" diff --git a/config/locales/models/account/pl.yml b/config/locales/models/account/pl.yml new file mode 100644 index 000000000..885e5830a --- /dev/null +++ b/config/locales/models/account/pl.yml @@ -0,0 +1,23 @@ +--- +pl: + activerecord: + attributes: + account: + balance: Saldo + currency: Waluta + family: "%{moniker}" + family_id: "%{moniker}" + name: Nazwa + subtype: Podtyp + models: + account: Konto + account/bond: Obligacje + account/credit_card: Karta kredytowa + account/crypto: Kryptowaluty + account/depository: Konto bankowe + account/investment: Inwestycje + account/loan: Pożyczka + account/other_asset: Inne aktywa + account/other_liability: Inne zobowiązania + account/property: Nieruchomość + account/vehicle: Pojazd diff --git a/config/locales/models/address/pl.yml b/config/locales/models/address/pl.yml new file mode 100644 index 000000000..babc3e590 --- /dev/null +++ b/config/locales/models/address/pl.yml @@ -0,0 +1,11 @@ +--- +pl: + address: + attributes: + country: Kraj + line1: Ulica i numer + line2: Numer mieszkania (opcjonalnie) + locality: Miejscowość + postal_code: Kod pocztowy + region: Województwo/Region + format: "%{line1} %{line2}, %{locality}, %{region} %{postal_code} %{country}" diff --git a/config/locales/models/category/pl.yml b/config/locales/models/category/pl.yml new file mode 100644 index 000000000..da69aeae9 --- /dev/null +++ b/config/locales/models/category/pl.yml @@ -0,0 +1,7 @@ +--- +pl: + models: + category: + uncategorized: Bez kategorii + other_investments: Inne inwestycje + investment_contributions: Wpłaty inwestycyjne diff --git a/config/locales/models/coinbase_account/pl.yml b/config/locales/models/coinbase_account/pl.yml new file mode 100644 index 000000000..52c5f099f --- /dev/null +++ b/config/locales/models/coinbase_account/pl.yml @@ -0,0 +1,5 @@ +--- +pl: + coinbase: + processor: + paid_via: Zapłacono przez %{method} diff --git a/config/locales/models/coinstats_item/pl.yml b/config/locales/models/coinstats_item/pl.yml new file mode 100644 index 000000000..08b2f9105 --- /dev/null +++ b/config/locales/models/coinstats_item/pl.yml @@ -0,0 +1,14 @@ +--- +pl: + models: + coinstats_item: + syncer: + importing_wallets: Importowanie portfeli z CoinStats... + checking_configuration: Sprawdzanie konfiguracji portfela... + wallets_need_setup: + one: "%{count} portfel wymaga konfiguracji..." + few: "%{count} portfele wymagają konfiguracji..." + many: "%{count} portfeli wymaga konfiguracji..." + other: "%{count} portfela wymaga konfiguracji..." + processing_holdings: Przetwarzanie posiadanych aktywów... + calculating_balances: Obliczanie sald... diff --git a/config/locales/models/entry/pl.yml b/config/locales/models/entry/pl.yml new file mode 100644 index 000000000..a6b6c19b9 --- /dev/null +++ b/config/locales/models/entry/pl.yml @@ -0,0 +1,9 @@ +--- +pl: + activerecord: + errors: + models: + entry: + attributes: + base: + invalid_sell_quantity: nie można sprzedać %{sell_qty} udziałów %{ticker}, ponieważ posiadasz tylko %{current_qty} udziałów diff --git a/config/locales/models/import/pl.yml b/config/locales/models/import/pl.yml new file mode 100644 index 000000000..2c10762b6 --- /dev/null +++ b/config/locales/models/import/pl.yml @@ -0,0 +1,13 @@ +--- +pl: + activerecord: + attributes: + import: + currency: Waluta + number_format: Format liczby + errors: + models: + import: + attributes: + raw_file_str: + invalid_csv_format: nie jest prawidłowym formatem CSV diff --git a/config/locales/models/provider_warnings/pl.yml b/config/locales/models/provider_warnings/pl.yml new file mode 100644 index 000000000..89fa5c9aa --- /dev/null +++ b/config/locales/models/provider_warnings/pl.yml @@ -0,0 +1,4 @@ +--- +pl: + provider_warnings: + limited_investment_data: Dane inwestycyjne od tego dostawcy są ograniczone. Etykiety transakcji (Kupno, Sprzedaż, Dywidenda) są niedostępne, co może wpłynąć na dokładność budżetu. Rozważ tworzenie reguł wykluczenia lub kategoryzacji transakcji inwestycyjnych. diff --git a/config/locales/models/time_series/value/pl.yml b/config/locales/models/time_series/value/pl.yml new file mode 100644 index 000000000..c63b9ca38 --- /dev/null +++ b/config/locales/models/time_series/value/pl.yml @@ -0,0 +1,9 @@ +--- +pl: + activemodel: + errors: + models: + time_series/value: + attributes: + value: + must_be_a_money_or_numeric: musi być typu Money lub Numeric diff --git a/config/locales/models/transaction/pl.yml b/config/locales/models/transaction/pl.yml new file mode 100644 index 000000000..ec6c6304a --- /dev/null +++ b/config/locales/models/transaction/pl.yml @@ -0,0 +1,11 @@ +--- +pl: + activerecord: + errors: + models: + transaction: + attributes: + attachments: + too_many: nie może przekraczać %{max} plików na transakcję + too_large: plik %{index} jest zbyt duży (maksymalnie %{max_mb}MB) + invalid_format: plik %{index} ma nieobsługiwany format (%{file_format}) diff --git a/config/locales/models/transfer/pl.yml b/config/locales/models/transfer/pl.yml new file mode 100644 index 000000000..b61fe86a5 --- /dev/null +++ b/config/locales/models/transfer/pl.yml @@ -0,0 +1,18 @@ +--- +pl: + activerecord: + errors: + models: + transfer: + attributes: + base: + inflow_cannot_be_in_multiple_transfers: Transakcja wpływu nie może być częścią wielu przelewów + must_be_from_different_accounts: Przelew musi dotyczyć różnych kont + must_be_from_same_family: Przelew musi być w ramach tego samego gospodarstwa domowego + must_be_within_date_range: Daty transakcji przelewu muszą być w ciągu 4 dni od siebie + must_have_opposite_amounts: Transakcje przelewu muszą mieć przeciwne kwoty + must_have_single_currency: Przelew musi być w jednej walucie + outflow_cannot_be_in_multiple_transfers: Transakcja wypływu nie może być częścią wielu przelewów + transfer: + name: Przelew do %{to_account} + payment_name: Płatność do %{to_account} diff --git a/config/locales/models/trend/pl.yml b/config/locales/models/trend/pl.yml new file mode 100644 index 000000000..221d4c262 --- /dev/null +++ b/config/locales/models/trend/pl.yml @@ -0,0 +1,13 @@ +--- +pl: + activemodel: + errors: + models: + trend: + attributes: + current: + must_be_of_the_same_type_as_previous: musi być tego samego typu co poprzednia wartość + must_be_of_type_money_numeric_or_nil: musi być typu Money, Numeric lub nil + previous: + must_be_of_the_same_type_as_current: musi być tego samego typu co aktualna wartość + must_be_of_type_money_numeric_or_nil: musi być typu Money, Numeric lub nil diff --git a/config/locales/models/user/pl.yml b/config/locales/models/user/pl.yml new file mode 100644 index 000000000..2a696f2f6 --- /dev/null +++ b/config/locales/models/user/pl.yml @@ -0,0 +1,20 @@ +--- +pl: + activerecord: + attributes: + user: + email: Email + family: "%{moniker}" + family_id: "%{moniker}" + first_name: Imię + last_name: Nazwisko + password: Hasło + password_confirmation: Potwierdzenie hasła + errors: + models: + user: + attributes: + base: + cannot_deactivate_admin_with_other_users: Administrator nie może usunąć konta, gdy obecni są inni użytkownicy. Najpierw usuń wszystkich członków. + profile_image: + invalid_file_size: rozmiar pliku nie może przekraczać %{max_megabytes}MB diff --git a/config/locales/views/account_sharings/pl.yml b/config/locales/views/account_sharings/pl.yml new file mode 100644 index 000000000..010b2b54b --- /dev/null +++ b/config/locales/views/account_sharings/pl.yml @@ -0,0 +1,31 @@ +--- +pl: + account_sharings: + show: + title: Udostępnianie konta + subtitle: Zarządzaj tym, kto może przeglądać i używać tego konta + member: Członek + permission: Uprawnienie + shared: Udostępnione + no_members: Brak innych członków w Twoim %{moniker}, którym można udostępnić + permissions: + full_control: Pełna kontrola + full_control_description: Może przeglądać, edytować i zarządzać transakcjami + read_write: Odczyt i zapis + read_write_description: Może kategoryzować, tagować i dodawać notatki + read_only: Tylko podgląd + read_only_description: Może tylko przeglądać dane konta + save: Zapisz ustawienia udostępniania + owner_label: 'Właściciel: %{name}' + shared_with_count: + one: Udostępniono 1 członkowi + few: Udostępniono %{count} członkom + many: Udostępniono %{count} członkom + other: Udostępniono %{count} członkom + include_in_finances: Uwzględniaj w moich budżetach i raportach + exclude_from_finances: Wykluczaj z moich budżetów i raportów + finance_toggle_description: Uwzględniaj to konto w majątku netto, budżetach i raportach + update: + success: Zaktualizowano ustawienia udostępniania + not_owner: Tylko właściciel konta może zarządzać udostępnianiem + finance_toggle_success: Zaktualizowano preferencję uwzględniania w finansach diff --git a/config/locales/views/accounts/pl.yml b/config/locales/views/accounts/pl.yml new file mode 100644 index 000000000..88418d805 --- /dev/null +++ b/config/locales/views/accounts/pl.yml @@ -0,0 +1,158 @@ +--- +pl: + accounts: + not_authorized: Nie masz uprawnień do zarządzania tym kontem + account: + edit: Edytuj + link_lunchflow: Połącz z Lunch Flow + link_provider: Połącz z dostawcą + unlink_provider: Odłącz od dostawcy + troubleshoot: Rozwiąż problem + enable: Włącz konto + disable: Wyłącz konto + set_default: Ustaw jako domyślne + remove_default: Usuń status domyślnego + default_label: Domyślne + delete: Usuń konto + sharing: Udostępnianie + chart: + data_not_available: Dane niedostępne dla wybranego okresu + create: + success: Utworzono konto %{type} + set_default: + depository_only: Tylko konta gotówkowe i karty kredytowe mogą być ustawione jako domyślne. + destroy: + success: Zaplanowano usunięcie konta %{type} + cannot_delete_linked: Nie można usunąć połączonego konta. Najpierw je odłącz. + empty: + empty_message: Dodaj konto przez połączenie, import lub ręczne wprowadzenie. + new_account: Nowe konto + no_accounts: Brak kont + form: + balance: 'Saldo na dzień:' + opening_balance_date_label: Data salda początkowego + name_label: Nazwa konta + name_placeholder: Przykładowa nazwa konta + additional_details: Dodatkowe informacje + institution_name_label: Nazwa instytucji + institution_name_placeholder: np. PKO Bank Polski + institution_domain_label: Domena instytucji + institution_domain_placeholder: np. pkobp.pl + notes_label: Notatki + notes_placeholder: Zapisz dodatkowe informacje, takie jak numery kont, kody rozliczeniowe, IBAN, numery routingowe itp. + index: + accounts: Konta + manual_accounts: + other_accounts: Inne konta + new_account: Nowe konto + sync: Synchronizuj wszystko + sync_all: + syncing: Trwa synchronizacja kont... + new: + import_accounts: Importuj konta + method_selector: + connected_entry: Połącz konto + connected_entry_eu: Połącz konto z UE + link_with_provider: Połącz z %{provider} + lunchflow_entry: Połącz konto Lunch Flow + manual_entry: Wprowadź saldo konta + title: Jak chcesz je dodać? + title: Co chcesz dodać? + show: + activity: + amount: Kwota + balance: Saldo + confirmed: Potwierdzone + date: Data + entries: wpisy + entry: wpis + filter: Filtr + new: Nowy + new_activity: Nowa aktywność + new_balance: Nowe saldo + new_trade: Nowa transakcja giełdowa + new_transaction: Nowa transakcja + new_transfer: Nowy przelew + no_entries: Nie znaleziono wpisów + pending: Oczekujące + search: + placeholder: Szukaj wpisów po nazwie + status: Status + title: Aktywność + chart: + balance: Saldo + owed: Kwota zadłużenia + menu: + confirm_accept: Usuń "%{name}" + confirm_body_html: "

Usuwając to konto, usuniesz jego historię wartości, co wpłynie na różne aspekty Twojego ogólnego bilansu. Ta akcja będzie miała bezpośredni wpływ na obliczenia majątku netto i wykresy konta.


Po usunięciu nie będzie możliwości przywrócenia informacji o koncie, ponieważ trzeba będzie dodać je ponownie jako nowe konto.

" + confirm_title: Usunąć konto? + edit: Edytuj + import: Importuj transakcje + import_trades: Importuj transakcje giełdowe + import_transactions: Importuj transakcje + manage: Zarządzaj kontami + update: + success: Zaktualizowano konto %{type} + sidebar: + missing_data: Brak danych historycznych + missing_data_description: "%{product} używa zewnętrznych dostawców do pobierania historycznych kursów walut, cen papierów wartościowych i innych danych. Te dane są wymagane do dokładnego obliczania historycznych sald kont." + configure_providers: Skonfiguruj tutaj swoich dostawców. + tabs: + all: Wszystkie + assets: Aktywa + debts: Zobowiązania + new_asset: Nowe aktywo + new_debt: Nowe zobowiązanie + new_account: Nowe konto + new_account_group: Nowe %{account_group} + types: + depository: Gotówka + investment: Inwestycje + crypto: Kryptowaluty + property: Nieruchomość + vehicle: Pojazd + bond: Obligacje + other_asset: Inne aktywo + credit_card: Karta kredytowa + loan: Pożyczka + other_liability: Inne zobowiązanie + tax_treatments: + taxable: Opodatkowane + tax_deferred: Odroczony podatek + tax_exempt: Zwolnione z podatku + tax_advantaged: Preferencyjne podatkowo + tax_treatment_descriptions: + taxable: Zyski opodatkowane przy realizacji + tax_deferred: Wpłaty odliczalne, opodatkowanie przy wypłacie + tax_exempt: Wpłaty po opodatkowaniu, zyski nieopodatkowane + tax_advantaged: Specjalne korzyści podatkowe pod pewnymi warunkami + subtype_regions: + us: Stany Zjednoczone + uk: Wielka Brytania + ca: Kanada + au: Australia + eu: Europa + generic: Ogólne + confirm_unlink: + title: Odłączyć konto od dostawcy? + description_html: Zaraz odłączysz %{account_name} od %{provider_name}. Konto zostanie przekształcone w konto ręczne. + warning_title: Co to oznacza + warning_no_sync: Konto nie będzie już synchronizować się automatycznie z dostawcą + warning_manual_updates: Trzeba będzie ręcznie dodawać transakcje i aktualizować salda + warning_transactions_kept: Wszystkie istniejące transakcje i salda zostaną zachowane + warning_can_delete: Po odłączeniu będzie można usunąć konto, jeśli zajdzie taka potrzeba + confirm_button: Potwierdź i odłącz + unlink: + success: Konto zostało pomyślnie odłączone. Teraz jest kontem ręcznym. + not_linked: Konto nie jest połączone z dostawcą + error: 'Nie udało się odłączyć konta: %{error}' + generic_error: Wystąpił nieoczekiwany błąd. Spróbuj ponownie. + select_provider: + title: Wybierz dostawcę do połączenia + description: Wybierz dostawcę, którego chcesz użyć do połączenia %{account_name} + already_linked: Konto jest już połączone z dostawcą + no_providers: Obecnie nie skonfigurowano żadnych dostawców + email_confirmations: + new: + invalid_token: Nieprawidłowy lub wygasły link potwierdzający. + success_login: Twój adres e-mail został potwierdzony. Zaloguj się przy użyciu nowego adresu e-mail. diff --git a/config/locales/views/admin/invitations/pl.yml b/config/locales/views/admin/invitations/pl.yml new file mode 100644 index 000000000..162ac466e --- /dev/null +++ b/config/locales/views/admin/invitations/pl.yml @@ -0,0 +1,8 @@ +--- +pl: + admin: + invitations: + destroy: + success: Zaproszenie zostało usunięte. + destroy_all: + success: Wszystkie zaproszenia dla tej rodziny zostały usunięte. diff --git a/config/locales/views/admin/sso_providers/pl.yml b/config/locales/views/admin/sso_providers/pl.yml new file mode 100644 index 000000000..65bb18051 --- /dev/null +++ b/config/locales/views/admin/sso_providers/pl.yml @@ -0,0 +1,115 @@ +--- +pl: + admin: + unauthorized: Nie masz uprawnień do dostępu do tego obszaru. + sso_providers: + index: + title: Dostawcy SSO + description: Zarządzaj dostawcami uwierzytelniania jednokrotnego logowania dla swojej instancji + add_provider: Dodaj dostawcę + no_providers_title: Brak dostawców SSO + no_providers_message: Zacznij od dodania pierwszego dostawcy SSO. + note: Zmiany dostawców SSO wymagają ponownego uruchomienia serwera, aby weszły w życie. Alternatywnie włącz flagę AUTH_PROVIDERS_SOURCE=db, aby dynamicznie ładować dostawców z bazy danych. + table: + name: Nazwa + strategy: Strategia + status: Status + issuer: Wystawca + actions: Akcje + enabled: Włączony + disabled: Wyłączony + legacy_providers_title: Dostawcy skonfigurowani przez zmienne środowiskowe + legacy_providers_notice: Ci dostawcy są skonfigurowani przez zmienne środowiskowe lub YAML i nie można nimi zarządzać przez ten interfejs. Aby zarządzać nimi tutaj, przenieś ich do dostawców opartych na bazie danych, włączając AUTH_PROVIDERS_SOURCE=db i odtwarzając ich w interfejsie. + env_configured: Środowisko/YAML + new: + title: Dodaj dostawcę SSO + description: Skonfiguruj nowego dostawcę uwierzytelniania jednokrotnego logowania + edit: + title: Edytuj dostawcę SSO + description: Zaktualizuj konfigurację dla %{label} + create: + success: Dostawca SSO został pomyślnie utworzony. + update: + success: Dostawca SSO został pomyślnie zaktualizowany. + destroy: + success: Dostawca SSO został pomyślnie usunięty. + confirm: Czy na pewno chcesz usunąć tego dostawcę? Tej akcji nie można cofnąć. + toggle: + success_enabled: Dostawca SSO został pomyślnie włączony. + success_disabled: Dostawca SSO został pomyślnie wyłączony. + confirm_enable: Czy na pewno chcesz włączyć tego dostawcę? + confirm_disable: Czy na pewno chcesz wyłączyć tego dostawcę? + form: + basic_information: Podstawowe informacje + oauth_configuration: Konfiguracja OAuth/OIDC + strategy_label: Strategia + strategy_help: Strategia uwierzytelniania do użycia + name_label: Nazwa + name_placeholder: np. openid_connect, keycloak, authentik + name_help: Unikalny identyfikator (tylko małe litery, cyfry i podkreślenia) + label_label: Etykieta + label_placeholder: np. Zaloguj przez Keycloak + label_help: Tekst przycisku widoczny dla użytkowników + icon_label: Ikona + icon_placeholder: np. key, google, github + icon_help: Nazwa ikony Lucide (opcjonalne) + enabled_label: Włącz tego dostawcę + enabled_help: Użytkownicy mogą logować się przez tego dostawcę, gdy jest włączony + issuer_label: Wystawca + issuer_placeholder: https://accounts.google.com + issuer_help: URL wystawcy OIDC (waliduje endpoint .well-known/openid-configuration) + client_id_label: ID klienta + client_id_placeholder: twoj-client-id + client_id_help: ID klienta OAuth od Twojego dostawcy tożsamości + client_secret_label: Sekret klienta + client_secret_placeholder_new: twoj-client-secret + client_secret_placeholder_existing: "zapisany-sekret" + client_secret_help: Sekret klienta OAuth (zaszyfrowany w bazie danych) + client_secret_help_existing: " - pozostaw puste, aby zachować istniejący" + redirect_uri_label: URI przekierowania + redirect_uri_placeholder: https://yourdomain.com/auth/openid_connect/callback + redirect_uri_help: URL zwrotny do skonfigurowania u Twojego dostawcy tożsamości + copy_button: Kopiuj + cancel: Anuluj + submit: Zapisz dostawcę + errors_title: "%{count} błąd uniemożliwia zapisanie tego dostawcy:" + provisioning_title: Udostępnianie użytkowników + default_role_label: Domyślna rola dla nowych użytkowników + default_role_help: "Rola przypisywana użytkownikom tworzonymi przez SSO just-in-time (JIT). Domyślnie: Członek." + role_guest: Gość + role_member: Członek + role_admin: Administrator + role_super_admin: Superadministrator + role_mapping_title: Mapowanie grup na role (opcjonalne) + role_mapping_help: Mapuj grupy/claims IdP na role aplikacji. Użytkownicy otrzymują najwyższą pasującą rolę. Pozostaw puste, aby używać domyślnej roli powyżej. + super_admin_groups: Grupy Super Admina + admin_groups: Grupy Admina + guest_groups: Grupy Gościa + member_groups: Grupy Członka + groups_help: Lista nazw grup IdP oddzielona przecinkami. Użyj *, aby pasować do wszystkich grup. + advanced_title: Zaawansowane ustawienia OIDC + scopes_label: Własne zakresy + scopes_help: Lista zakresów OIDC oddzielona spacjami. Pozostaw puste dla wartości domyślnych (openid email profile). Dodaj 'groups', aby pobrać claims grup. + prompt_label: Monit uwierzytelniania + prompt_default: Domyślny (decyduje IdP) + prompt_login: Wymuś logowanie (ponowne uwierzytelnienie) + prompt_consent: Wymuś zgodę (ponowna autoryzacja) + prompt_select_account: Wybór konta (wybierz konto) + prompt_none: Bez monitu (uwierzytelnienie ciche) + prompt_help: Określa, w jaki sposób IdP wyświetla monity użytkownikowi podczas uwierzytelniania. + test_connection: Testuj połączenie + saml_configuration: Konfiguracja SAML + idp_metadata_url: URL metadanych IdP + idp_metadata_url_help: URL do metadanych SAML Twojego IdP. Jeśli podany, inne ustawienia SAML zostaną skonfigurowane automatycznie. + manual_saml_config: Konfiguracja ręczna (jeśli nie używasz adresu URL metadanych) + manual_saml_help: Używaj tych ustawień tylko wtedy, gdy Twój IdP nie udostępnia adresu URL metadanych. + idp_sso_url: URL SSO IdP + idp_slo_url: IdP SLO URL (opcjonalne) + idp_certificate: Certyfikat IdP + idp_certificate_help: Certyfikat X.509 w formacie PEM. Wymagany, jeśli nie używasz adresu URL metadanych. + idp_cert_fingerprint: Odcisk cyfrowy certyfikatu (alternatywa) + name_id_format: Format identyfikatora nazwy + name_id_email: Adres e-mail (domyślny) + name_id_persistent: Trwały + name_id_transient: Przejściowy + name_id_unspecified: Nieokreślony diff --git a/config/locales/views/admin/users/pl.yml b/config/locales/views/admin/users/pl.yml new file mode 100644 index 000000000..f618ebcc3 --- /dev/null +++ b/config/locales/views/admin/users/pl.yml @@ -0,0 +1,53 @@ +--- +pl: + admin: + users: + index: + title: Zarządzanie użytkownikami + description: Zarządzaj rolami użytkowników w swojej instancji. Superadministratorzy mają dostęp do ustawień dostawców SSO i zarządzania użytkownikami. + section_title: Rodziny / Grupy + you: "(Ty)" + trial_ends_at: Koniec okresu próbnego + not_available: brak danych + no_users: Nie znaleziono użytkowników. + unnamed_family: Nienazwana rodzina/grupa + no_subscription: Brak subskrypcji + family_summary: "%{members} członków · %{accounts} kont · %{transactions} transakcji" + filters: + role: Rola + role_all: Wszystkie role + trial_status: Status okresu próbnego + trial_all: Wszystkie + trial_expiring_soon: Wygasa za 7 dni + trial_trialing: W okresie próbnym + submit: Filtruj + summary: + trials_expiring_7_days: Okresy próbne wygasające w ciągu 7 dni + table: + user: Użytkownik + trial_ends_at: Koniec okresu próbnego + family_accounts: Konta rodziny + family_transactions: Transakcje rodziny + last_login: Ostatnie logowanie + session_count: Liczba sesji + never: Nigdy + role: Rola + role_descriptions_title: Opisy ról + roles: + guest: Gość + member: Członek + admin: Administrator + super_admin: Superadministrator + role_descriptions: + guest: Tryb skupiony na Asystencie z celowo ograniczonymi uprawnieniami dla przepływów wprowadzających. + member: Podstawowy dostęp użytkownika. Może zarządzać własnymi kontami, transakcjami i ustawieniami. + admin: Administrator rodziny. Ma dostęp do ustawień zaawansowanych, takich jak klucze API, importy i prompty AI. + super_admin: Administrator instancji. Może zarządzać dostawcami SSO, rolami użytkowników i wcielać się w użytkowników na potrzeby wsparcia. + invitations: + pending_label: Zaproszony (oczekuje) + expires: Wygasa %{date} + delete: Usuń + delete_all: Usuń wszystkie + update: + success: Rola użytkownika została pomyślnie zaktualizowana. + failure: Nie udało się zaktualizować roli użytkownika. diff --git a/config/locales/views/application/pl.yml b/config/locales/views/application/pl.yml new file mode 100644 index 000000000..80b45673a --- /dev/null +++ b/config/locales/views/application/pl.yml @@ -0,0 +1,10 @@ +--- +pl: + number: + currency: + format: + delimiter: " " + format: "%n %u" + precision: 2 + separator: "," + unit: "zł" diff --git a/config/locales/views/bonds/pl.yml b/config/locales/views/bonds/pl.yml new file mode 100644 index 000000000..c4af32682 --- /dev/null +++ b/config/locales/views/bonds/pl.yml @@ -0,0 +1,153 @@ +--- +pl: + bonds: + edit: + edit: Edytuj %{account} + form: + initial_balance: Początkowe saldo obligacji + tax_wrapper: Otoczka podatkowa + auto_buy_new_issues: Automatycznie kupuj nowe emisje obligacji + auto_buy_new_issues_hint: Po rozliczeniu zapadalności automatycznie kup kolejną emisję z dostępnych środków dla kont IKE/IKZE. + subtypes: + eod: + short: EOD + long: 10-letnia obligacja oszczędnościowa Skarbu Państwa + rod: + short: ROD + long: 12-letnia rodzinna obligacja oszczędnościowa + other_bond: + short: Inna + long: Inna obligacja + new: + title: Wprowadź dane obligacji + tabs: + positions: + positions: Pozycje obligacji + new_activity: Nowa aktywność + name: Nazwa + weight: Udział + rate: Oprocentowanie + holdings: Stan + maturity: Zapadalność + total_return: Łączny zwrot + no_purchases: Nie dodano jeszcze żadnych zakupów. + closed: + closed: Zamknięte partie obligacji + name: Nazwa + weight: Udział + rate: Oprocentowanie + holdings: Stan + maturity: Zapadalność + total_return: Łączny zwrot + no_closed_lots: Brak zamkniętych partii obligacji. + closed_lots: Zamknięte partie obligacji + closed_lot_meta: "Zakupiono %{purchased}, zamknięto %{closed}" + settled_net: Rozliczono netto + cash_holding: + cash_position: Gotówka z obligacji + purchase_holding: + unknown: Nieznane + update_needed: Wymagana aktualizacja + purchased: "Zakupiono %{date}" + term_months: + one: "%{count} miesiąc" + few: "%{count} miesiące" + many: "%{count} miesięcy" + other: "%{count} miesiąca" + principal_term: "Kapitał, %{term}" + bond_meta: "%{rate_type} / %{coupon}" + inflation_meta_gus: "%{inflation} inflacji + %{margin} marży (GUS SDP %{indicator})" + inflation_meta_manual: "%{inflation} inflacji + %{margin} marży (ręcznie)" + first_period_fixed_rate: Stałe oprocentowanie pierwszego okresu + maturity: "Zapada %{date}" + maturity_label: Data zapadalności + since_purchase: Od zakupu + projected_to_maturity: Prognoza do zapadalności + pending_review: Oczekiwanie na zaktualizowane stawki emisji + edit: Edytuj + remove: Usuń + confirm_remove: Usunąć ten zakup? + + bond_lots: + not_bond_account: "To konto nie jest kontem obligacji." + new: + title: Dodaj zakup dla %{account} + edit: + title: Edytuj zakup dla %{account} + show: + settings: Ustawienia + history: Historia + no_history: Brak historii kapitalizacji. + overview_principal: Kapitał + overview_settlement: Kwota rozliczenia + overview_maturity: Data zapadalności + overview_closed_on: Zamknięto + history_period: "Okres %{period}: %{start} - %{end}" + history_balance: "Saldo %{opening} -> %{closing}" + history_interest: "Odsetki %{interest} przy %{rate}" + history_capitalized: Skapitalizowano + history_partial: Okres częściowy + history_inflation_gus: "Użyta inflacja: %{inflation} + %{margin} marży (GUS SDP %{indicator}, odn. %{reference})" + history_inflation_manual: "Użyta inflacja: %{inflation} + %{margin} marży (założenie ręczne)" + history_inflation_first_period: "Stała stopa pierwszego okresu" + unknown: Nieznane + purchased: "Zakupiono %{date}" + delete_title: Usuń zakup + delete_subtitle: Usuń ten zakup i powiązany wpis aktywności. + delete: Usuń + delete_confirm: Usunąć ten zakup? + create: + success: Dodano zakup obligacji + update: + success: Zaktualizowano zakup obligacji + destroy: + success: Usunięto zakup obligacji + form: + purchased_on: Data zakupu + issue_date: Data emisji + amount: Kwota kapitału + units: Jednostki + nominal_per_unit: Nominał na jednostkę + term_months: Okres (miesiące) + subtype: Typ obligacji + rate_type: Typ oprocentowania + coupon_frequency: Częstotliwość kuponu + interest_rate: Oprocentowanie + interest_rate_placeholder: "4.25" + first_period_rate: Oprocentowanie pierwszego okresu (%) + inflation_margin: Marża inflacyjna (%) + auto_fetch_inflation: Pobieraj inflację automatycznie z GUS + auto_fetch_disabled_hint: Automatyczny import CPI jest globalnie wyłączony w ustawieniach self-hosting. Wprowadź inflację ręcznie. + inflation_rate_assumption: Założenie CPI (%) + cpi_lag_months: Opóźnienie CPI (miesiące) + early_redemption_fee: Opłata za wcześniejszy wykup + auto_close_on_maturity: Automatycznie zamknij w dniu zapadalności + auto_close_on_maturity_hint: Automatycznie rozlicz tę partię w dniu zapadalności i przeksięguj środki na gotówkę konta. + tax_strategy: Obsługa podatku przy zapadalności + tax_rate: Stawka podatku (%) + tax_strategies: + standard: Podatek standardowy + reduced: Podatek obniżony + exempt: Zwolnione z podatku (IKE/IKZE) + rate_types: + fixed: Stałe + variable: Zmienne + coupon_frequencies: + monthly: Miesięcznie + quarterly: Kwartalnie + semi_annual: Półrocznie + annual: Rocznie + at_maturity: W terminie zapadalności + submit: Dodaj zakup + update: Zaktualizuj zakup + activity: + purchase_name: "Zakup obligacji: %{subtype}" + maturity_settlement_name: "Rozliczenie zapadalności obligacji: %{subtype}" + maturity_settlement_notes_with_tax: "Kwota zakupu: %{purchase_amount}\nŁączne odsetki: %{interest_amount}\nPotrącony podatek: %{tax_withheld_amount}" + maturity_settlement_notes_without_tax: "Kwota zakupu: %{purchase_amount}\nŁączne odsetki: %{interest_amount}\nPotrącony podatek: brak" + + closed_purchase_holding: + closed_meta: "Zakupiono %{purchased}, zamknięto %{closed}" + closed_rate_meta: "%{periods} okresów kapitalizacji" + settled_net: "Rozliczono netto %{net}" + history_meta: "Odsetki %{interest}, podatek %{tax}" diff --git a/config/locales/views/budgets/pl.yml b/config/locales/views/budgets/pl.yml new file mode 100644 index 000000000..ab3dc9828 --- /dev/null +++ b/config/locales/views/budgets/pl.yml @@ -0,0 +1,19 @@ +--- +pl: + budgets: + name: + custom_range: "%{start} do %{end_date}" + month_year: "%{month}" + show: + tabs: + actual: Rzeczywiste + budgeted: Zaplanowane + copy_previous_prompt: + title: "Skonfiguruj swój budżet" + description: "Możesz skopiować budżet z %{source_name} lub zacząć od zera." + copy_button: "Kopiuj z %{source_name}" + fresh_button: "Zacznij od zera" + copy_previous: + success: "Skopiowano budżet z %{source_name}" + no_source: "Nie znaleziono poprzedniego budżetu do skopiowania" + already_initialized: "Ten budżet został już skonfigurowany" diff --git a/config/locales/views/categories/pl.yml b/config/locales/views/categories/pl.yml new file mode 100644 index 000000000..85720c432 --- /dev/null +++ b/config/locales/views/categories/pl.yml @@ -0,0 +1,34 @@ +--- +pl: + categories: + bootstrap: + success: Domyślne kategorie zostały pomyślnie utworzone + category: + delete: Usuń kategorię + edit: Edytuj kategorię + create: + success: Kategoria została pomyślnie utworzona + destroy: + success: Kategoria została pomyślnie usunięta + edit: + edit: Edytuj kategorię + form: + placeholder: Nazwa kategorii + index: + bootstrap: Użyj domyślnych (zalecane) + categories: Kategorie + categories_expenses: Kategorie wydatków + categories_incomes: Kategorie przychodów + empty: Nie znaleziono kategorii + new: Nowa kategoria + menu: + loading: Ładowanie... + new: + new_category: Nowa kategoria + update: + success: Kategoria została pomyślnie zaktualizowana + category: + dropdowns: + show: + bootstrap: Wygeneruj domyślne kategorie + empty: Nie znaleziono kategorii diff --git a/config/locales/views/category/deletions/pl.yml b/config/locales/views/category/deletions/pl.yml new file mode 100644 index 000000000..c4561efc3 --- /dev/null +++ b/config/locales/views/category/deletions/pl.yml @@ -0,0 +1,13 @@ +--- +pl: + category: + deletions: + create: + success: Kategoria transakcji została usunięta + new: + category: Kategoria + delete_and_leave_uncategorized: Usuń "%{category_name}" i pozostaw bez kategorii + delete_and_recategorize: Usuń "%{category_name}" i przypisz nową kategorię + delete_category: Usunąć kategorię? + explanation: Po usunięciu tej kategorii każda transakcja przypisana do "%{category_name}" będzie bez kategorii. Zamiast pozostawiać je bez kategorii, możesz poniżej przypisać nową kategorię. + replacement_category_prompt: Wybierz kategorię diff --git a/config/locales/views/category/dropdowns/pl.yml b/config/locales/views/category/dropdowns/pl.yml new file mode 100644 index 000000000..74380bb48 --- /dev/null +++ b/config/locales/views/category/dropdowns/pl.yml @@ -0,0 +1,11 @@ +--- +pl: + category: + dropdowns: + row: + delete: Usuń kategorię + edit: Edytuj kategorię + show: + clear: Wyczyść kategorię + no_categories: Nie znaleziono kategorii + search_placeholder: Szukaj diff --git a/config/locales/views/chats/pl.yml b/config/locales/views/chats/pl.yml new file mode 100644 index 000000000..588542fce --- /dev/null +++ b/config/locales/views/chats/pl.yml @@ -0,0 +1,5 @@ +--- +pl: + chats: + demo_banner_title: "Aktywny tryb demo" + demo_banner_message: "Używasz modelu open-weights Qwen3 LLM z kredytami udostępnionymi przez Cloudflare Workers AI. Wyniki mogą się różnić, ponieważ kod aplikacji był głównie testowany na `gpt-4.1`, ale Twoje tokeny nie są nigdzie dalej wykorzystywane do trenowania! 🤖" diff --git a/config/locales/views/coinbase_items/pl.yml b/config/locales/views/coinbase_items/pl.yml new file mode 100644 index 000000000..644cff0ca --- /dev/null +++ b/config/locales/views/coinbase_items/pl.yml @@ -0,0 +1,88 @@ +--- +pl: + coinbase_items: + create: + default_name: Coinbase + success: Pomyślnie połączono z Coinbase! Twoje konta są synchronizowane. + update: + success: Pomyślnie zaktualizowano konfigurację Coinbase. + destroy: + success: Zaplanowano usunięcie połączenia Coinbase. + setup_accounts: + title: Importuj portfele Coinbase + subtitle: Wybierz portfele do śledzenia + instructions: Wybierz portfele, które chcesz zaimportować. Niewybrane portfele pozostaną dostępne, jeśli zechcesz dodać je później. + no_accounts: Wszystkie portfele zostały zaimportowane. + accounts_count: + one: "Dostępny %{count} portfel" + few: "Dostępne %{count} portfele" + many: "Dostępnych %{count} portfeli" + other: "Dostępne %{count} portfeli" + select_all: Wybierz wszystkie + import_selected: Importuj wybrane + cancel: Anuluj + creating: Importowanie... + complete_account_setup: + success: + one: Zaimportowano %{count} portfel + few: Zaimportowano %{count} portfele + many: Zaimportowano %{count} portfeli + other: Zaimportowano %{count} portfeli + none_selected: Nie wybrano portfeli + no_accounts: Brak portfeli do importu + coinbase_item: + provider_name: Coinbase + syncing: Synchronizacja... + reconnect: Dane uwierzytelniające wymagają aktualizacji + deletion_in_progress: Usuwanie... + sync_status: + no_accounts: Nie znaleziono kont + all_synced: + one: "%{count} konto zsynchronizowane" + few: "%{count} konta zsynchronizowane" + many: "%{count} kont zsynchronizowanych" + other: "%{count} kont zsynchronizowanych" + partial_sync: "%{linked_count} zsynchronizowanych, %{unlinked_count} wymaga konfiguracji" + status: Ostatnia synchronizacja %{timestamp} temu + status_with_summary: Ostatnia synchronizacja %{timestamp} temu - %{summary} + status_never: Nigdy nie synchronizowano + update_credentials: Zaktualizuj dane uwierzytelniające + delete: Usuń + no_accounts_title: Nie znaleziono kont + no_accounts_message: Twoje portfele Coinbase pojawią się tutaj po synchronizacji. + setup_needed: Portfele gotowe do importu + setup_description: Wybierz portfele Coinbase, które chcesz śledzić. + setup_action: Importuj portfele + import_wallets_menu: Importuj portfele + more_wallets_available: + one: "Jeszcze %{count} portfel do zaimportowania" + few: "Jeszcze %{count} portfele do zaimportowania" + many: "Jeszcze %{count} portfeli do zaimportowania" + other: "Jeszcze %{count} portfeli do zaimportowania" + select_existing_account: + title: Połącz konto Coinbase + no_accounts_found: Nie znaleziono kont Coinbase. + wait_for_sync: Poczekaj, aż Coinbase zakończy synchronizację + check_provider_health: Sprawdź, czy dane API Coinbase są prawidłowe + balance: Saldo + currently_linked_to: 'Aktualnie połączone z: %{account_name}' + link: Połącz + cancel: Anuluj + link_existing_account: + success: Pomyślnie połączono z kontem Coinbase + errors: + only_manual: Z Coinbase można łączyć tylko konta manualne + invalid_coinbase_account: Nieprawidłowe konto Coinbase + coinbase_item: + syncer: + checking_credentials: Sprawdzanie danych uwierzytelniających... + credentials_invalid: Nieprawidłowe dane API. Sprawdź klucz i sekret API. + importing_accounts: Importowanie kont z Coinbase... + checking_configuration: Sprawdzanie konfiguracji kont... + accounts_need_setup: + one: "%{count} konto wymaga konfiguracji" + few: "%{count} konta wymagają konfiguracji" + many: "%{count} kont wymaga konfiguracji" + other: "%{count} kont wymaga konfiguracji" + processing_accounts: Przetwarzanie danych kont... + calculating_balances: Obliczanie sald... diff --git a/config/locales/views/coinstats_items/pl.yml b/config/locales/views/coinstats_items/pl.yml new file mode 100644 index 000000000..968c9aa0b --- /dev/null +++ b/config/locales/views/coinstats_items/pl.yml @@ -0,0 +1,69 @@ +--- +pl: + coinstats_items: + create: + success: Połączenie z dostawcą CoinStats zostało pomyślnie skonfigurowane. + default_name: Połączenie CoinStats + errors: + validation_failed: 'Walidacja nie powiodła się: %{message}.' + update: + success: Połączenie z dostawcą CoinStats zostało pomyślnie zaktualizowane. + errors: + validation_failed: 'Walidacja nie powiodła się: %{message}.' + destroy: + success: Połączenie z dostawcą CoinStats zostało zaplanowane do usunięcia. + link_wallet: + success: + one: "Pomyślnie połączono %{count} portfel kryptowalutowy." + few: "Pomyślnie połączono %{count} portfele kryptowalutowe." + many: "Pomyślnie połączono %{count} portfeli kryptowalutowych." + other: "Pomyślnie połączono %{count} portfela kryptowalutowego." + missing_params: 'Brak wymaganych parametrów: address i blockchain.' + failed: Łączenie portfela kryptowalutowego nie powiodło się. + error: 'Łączenie portfela kryptowalutowego nie powiodło się: %{message}.' + new: + title: Połącz portfel kryptowalutowy z CoinStats + blockchain_fetch_error: Nie udało się wczytać blockchainów. Spróbuj ponownie później. + address_label: Adres + address_placeholder: Wymagane + blockchain_label: Blockchain + blockchain_placeholder: Wymagane + blockchain_select_blank: Wybierz blockchain + link: Połącz portfel kryptowalutowy + not_configured_title: Połączenie z dostawcą CoinStats nie jest skonfigurowane + not_configured_message: Aby połączyć portfel kryptowalutowy, najpierw skonfiguruj połączenie z dostawcą CoinStats. + not_configured_step1_html: Przejdź do Ustawienia → Dostawcy + not_configured_step2_html: Znajdź dostawcę CoinStats + not_configured_step3_html: Postępuj zgodnie z podanymi instrukcjami konfiguracji, aby ukończyć konfigurację dostawcy + go_to_settings: Przejdź do ustawień dostawców + setup_instructions: 'Instrukcje konfiguracji:' + step1_html: Odwiedź panel publicznego API CoinStats, aby uzyskać klucz API. + step2: Wprowadź poniżej swój klucz API i kliknij Skonfiguruj. + step3_html: Po udanym połączeniu przejdź do zakładki Konta, aby skonfigurować portfele kryptowalutowe. + api_key_label: Klucz API + api_key_placeholder: Wymagane + configure: Skonfiguruj + update_configuration: Skonfiguruj ponownie + default_name: Połączenie CoinStats + status_configured_html: Gotowe do użycia + status_not_configured: Nieskonfigurowane + coinstats_item: + deletion_in_progress: Trwa usuwanie danych portfela kryptowalutowego… + provider_name: CoinStats + syncing: Synchronizacja… + sync_status: + no_accounts: Nie znaleziono portfeli kryptowalutowych + all_synced: + one: "Zsynchronizowano %{count} portfel kryptowalutowy" + few: "Zsynchronizowano %{count} portfele kryptowalutowe" + many: "Zsynchronizowano %{count} portfeli kryptowalutowych" + other: "Zsynchronizowano %{count} portfeli kryptowalutowych" + partial_sync: "Zsynchronizowano %{linked_count} portfeli kryptowalutowych, %{unlinked_count} wymaga konfiguracji" + reconnect: Połącz ponownie + status: Ostatnia synchronizacja %{timestamp} temu + status_never: Nigdy nie synchronizowano + status_with_summary: Ostatnia synchronizacja %{timestamp} temu • %{summary} + update_api_key: Zaktualizuj klucz API + delete: Usuń + no_wallets_title: Brak połączonych portfeli kryptowalutowych + no_wallets_message: Obecnie żadne portfele kryptowalutowe nie są połączone z CoinStats. diff --git a/config/locales/views/components/pl.yml b/config/locales/views/components/pl.yml new file mode 100644 index 000000000..3c55c50f6 --- /dev/null +++ b/config/locales/views/components/pl.yml @@ -0,0 +1,81 @@ +--- +pl: + provider_sync_summary: + title: Podsumowanie synchronizacji + last_sync: 'Ostatnia synchronizacja: %{time_ago} temu' + accounts: + title: Konta + total: 'Łącznie: %{count}' + linked: 'Połączone: %{count}' + unlinked: 'Niepołączone: %{count}' + institutions: 'Instytucje: %{count}' + transactions: + title: Transakcje + seen: 'Wykryte: %{count}' + imported: 'Zaimportowane: %{count}' + updated: 'Zaktualizowane: %{count}' + skipped: 'Pominięte: %{count}' + fetching: Pobieranie z biura maklerskiego... + protected: + one: "%{count} wpis chroniony (nie nadpisano)" + few: "%{count} wpisy chronione (nie nadpisano)" + many: "%{count} wpisów chronionych (nie nadpisano)" + other: "%{count} wpisów chronionych (nie nadpisano)" + view_protected: Zobacz chronione wpisy + skip_reasons: + excluded: Wykluczone + user_modified: Zmodyfikowane przez użytkownika + import_locked: Import z CSV + protected: Chronione + holdings: + title: Pozycje + found: 'Znalezione: %{count}' + processed: 'Przetworzone: %{count}' + trades: + title: Transakcje giełdowe + imported: 'Zaimportowane: %{count}' + skipped: 'Pominięte: %{count}' + fetching: Pobieranie aktywności z biura maklerskiego... + health: + title: Kondycja + view_error_details: Zobacz szczegóły błędów + rate_limited: Ograniczenie limitu %{time_ago} + recently: niedawno + errors: 'Błędy: %{count}' + pending_reconciled: + one: "Uzgodniono %{count} zduplikowaną transakcję oczekującą" + few: "Uzgodniono %{count} zduplikowane transakcje oczekujące" + many: "Uzgodniono %{count} zduplikowanych transakcji oczekujących" + other: "Uzgodniono %{count} zduplikowanych transakcji oczekujących" + view_reconciled: Zobacz uzgodnione transakcje + duplicate_suggestions: + one: "%{count} możliwy duplikat wymaga przeglądu" + few: "%{count} możliwe duplikaty wymagają przeglądu" + many: "%{count} możliwych duplikatów wymaga przeglądu" + other: "%{count} możliwe duplikaty wymagają przeglądu" + view_duplicate_suggestions: Zobacz sugerowane duplikaty + stale_pending: + one: "%{count} przestarzała transakcja oczekująca (wykluczona z budżetów)" + few: "%{count} przestarzałe transakcje oczekujące (wykluczone z budżetów)" + many: "%{count} przestarzałych transakcji oczekujących (wykluczonych z budżetów)" + other: "%{count} przestarzałych transakcji oczekujących (wykluczonych z budżetów)" + view_stale_pending: Zobacz dotknięte konta + stale_pending_count: + one: "%{count} transakcja" + few: "%{count} transakcje" + many: "%{count} transakcji" + other: "%{count} transakcji" + stale_unmatched: + one: "%{count} transakcja oczekująca wymaga ręcznego przeglądu" + few: "%{count} transakcje oczekujące wymagają ręcznego przeglądu" + many: "%{count} transakcji oczekujących wymaga ręcznego przeglądu" + other: "%{count} transakcji oczekujących wymaga ręcznego przeglądu" + view_stale_unmatched: Zobacz transakcje wymagające przeglądu + stale_unmatched_count: + one: "%{count} transakcja" + few: "%{count} transakcje" + many: "%{count} transakcji" + other: "%{count} transakcji" + data_warnings: 'Ostrzeżenia danych: %{count}' + notices: 'Powiadomienia: %{count}' + view_data_quality: Zobacz szczegóły jakości danych diff --git a/config/locales/views/credit_cards/pl.yml b/config/locales/views/credit_cards/pl.yml new file mode 100644 index 000000000..2b5a0fa81 --- /dev/null +++ b/config/locales/views/credit_cards/pl.yml @@ -0,0 +1,25 @@ +--- +pl: + credit_cards: + edit: + edit: Edytuj %{account} + form: + annual_fee: Opłata roczna + annual_fee_placeholder: '99' + apr: RRSO + apr_placeholder: '15.99' + available_credit: Dostępny limit kredytowy + available_credit_placeholder: '10000' + expiration_date: Data ważności + minimum_payment: Minimalna spłata + minimum_payment_placeholder: '100' + new: + title: Wprowadź dane karty kredytowej + overview: + amount_owed: Kwota zadłużenia + annual_fee: Opłata roczna + apr: RRSO + available_credit: Dostępny limit kredytowy + expiration_date: Data ważności + minimum_payment: Minimalna spłata + unknown: Nieznane diff --git a/config/locales/views/cryptos/pl.yml b/config/locales/views/cryptos/pl.yml new file mode 100644 index 000000000..6dc0cfe87 --- /dev/null +++ b/config/locales/views/cryptos/pl.yml @@ -0,0 +1,20 @@ +--- +pl: + cryptos: + edit: + edit: Edytuj %{account} + form: + subtype_label: Typ konta + subtype_prompt: Wybierz typ... + subtype_none: Nie określono + tax_treatment_label: Sposób opodatkowania + tax_treatment_hint: Większość kryptowalut jest utrzymywana na kontach opodatkowanych. Wybierz inną opcję, jeśli środki są trzymane na koncie uprzywilejowanym podatkowo, np. samodzielnie prowadzonym IRA. + new: + title: Wprowadź saldo konta + subtypes: + wallet: + short: Portfel + long: Portfel kryptowalutowy + exchange: + short: Giełda + long: Giełda kryptowalut diff --git a/config/locales/views/depositories/pl.yml b/config/locales/views/depositories/pl.yml new file mode 100644 index 000000000..5f526fb2b --- /dev/null +++ b/config/locales/views/depositories/pl.yml @@ -0,0 +1,10 @@ +--- +pl: + depositories: + edit: + edit: Edytuj %{account} + form: + none: Brak + subtype_prompt: Wybierz typ konta + new: + title: Wprowadź saldo konta diff --git a/config/locales/views/email_confirmation_mailer/pl.yml b/config/locales/views/email_confirmation_mailer/pl.yml new file mode 100644 index 000000000..6f086bd37 --- /dev/null +++ b/config/locales/views/email_confirmation_mailer/pl.yml @@ -0,0 +1,9 @@ +--- +pl: + email_confirmation_mailer: + confirmation_email: + body: Niedawno poproszono o zmianę Twojego adresu e-mail. Kliknij przycisk poniżej, aby potwierdzić tę zmianę. + cta: Potwierdź zmianę e-maila + expiry_notice: Ten link wygaśnie za %{hours} godzin. + greeting: Cześć! + subject: "%{product_name}: potwierdź zmianę adresu e-mail" diff --git a/config/locales/views/enable_banking_items/pl.yml b/config/locales/views/enable_banking_items/pl.yml new file mode 100644 index 000000000..596febecb --- /dev/null +++ b/config/locales/views/enable_banking_items/pl.yml @@ -0,0 +1,57 @@ +--- +pl: + enable_banking_items: + authorize: + authorization_failed: Nie udało się rozpocząć autoryzacji + bank_required: Wybierz bank. + invalid_redirect: Otrzymany adres URL autoryzacji jest nieprawidłowy. Spróbuj ponownie. + redirect_uri_not_allowed: Przekierowanie niedozwolone. Skonfiguruj `%{callback_url}` w ustawieniach aplikacji Enable Banking. + unexpected_error: Wystąpił nieoczekiwany błąd. Spróbuj ponownie. + callback: + authorization_error: Autoryzacja nie powiodła się + invalid_callback: Nieprawidłowe parametry callback. + item_not_found: Nie znaleziono połączenia. + session_failed: Nie udało się zakończyć autoryzacji + success: Pomyślnie połączono z bankiem. Twoje konta są synchronizowane. + unexpected_error: Wystąpił nieoczekiwany błąd. Spróbuj ponownie. + complete_account_setup: + all_skipped: Wszystkie konta zostały pominięte. Możesz skonfigurować je później na stronie kont. + no_accounts: Brak kont dostępnych do konfiguracji. + success: + one: Pomyślnie utworzono %{count} konto! + few: Pomyślnie utworzono %{count} konta! + many: Pomyślnie utworzono %{count} kont! + other: Pomyślnie utworzono %{count} konta! + create: + success: Konfiguracja Enable Banking zakończona pomyślnie. + destroy: + success: Połączenie Enable Banking zostało dodane do kolejki usuwania. + link_accounts: + already_linked: Wybrane konta są już połączone. + link_failed: Nie udało się połączyć kont + no_accounts_selected: Nie wybrano żadnych kont. + no_session: Brak aktywnego połączenia Enable Banking. Najpierw połącz się z bankiem. + success: + one: Pomyślnie połączono %{count} konto. + few: Pomyślnie połączono %{count} konta. + many: Pomyślnie połączono %{count} kont. + other: Pomyślnie połączono %{count} konta. + link_existing_account: + success: Konto zostało pomyślnie połączone z Enable Banking + errors: + only_manual: Można połączyć tylko konta manualne + invalid_enable_banking_account: Wybrano nieprawidłowe konto Enable Banking + new: + link_enable_banking_title: Połącz Enable Banking + reauthorize: + invalid_redirect: Otrzymany adres URL autoryzacji jest nieprawidłowy. Spróbuj ponownie. + reauthorization_failed: Ponowna autoryzacja nie powiodła się + select_bank: + cancel: Anuluj + check_country: Sprawdź ustawienia kodu kraju. + credentials_required: Najpierw skonfiguruj dane uwierzytelniające Enable Banking. + description: Wybierz bank, który chcesz połączyć ze swoimi kontami. + no_banks: Brak dostępnych banków dla tego kraju/regionu. + title: Wybierz swój bank + update: + success: Konfiguracja Enable Banking została zaktualizowana. diff --git a/config/locales/views/entries/pl.yml b/config/locales/views/entries/pl.yml new file mode 100644 index 000000000..fc2f0a03b --- /dev/null +++ b/config/locales/views/entries/pl.yml @@ -0,0 +1,23 @@ +--- +pl: + entries: + create: + success: Wpis został utworzony + destroy: + success: Wpis został usunięty + empty: + description: Spróbuj dodać wpis, zmienić filtry lub doprecyzować wyszukiwanie + title: Nie znaleziono wpisów + loading: + loading: Ładowanie wpisów... + update: + success: Wpis został zaktualizowany + unlock: + success: Wpis został odblokowany. Może zostać zaktualizowany podczas następnej synchronizacji. + protection: + tooltip: Chronione przed synchronizacją + title: Chronione przed synchronizacją + description: Twoje zmiany w tym wpisie nie zostaną nadpisane przez synchronizację z dostawcą. + locked_fields_label: "Zablokowane pola:" + unlock_button: Zezwól synchronizacji na aktualizację + unlock_confirm: Zezwolić synchronizacji na aktualizację tego wpisu? Twoje zmiany mogą zostać nadpisane przy następnej synchronizacji. diff --git a/config/locales/views/family_exports/pl.yml b/config/locales/views/family_exports/pl.yml new file mode 100644 index 000000000..cdde24b00 --- /dev/null +++ b/config/locales/views/family_exports/pl.yml @@ -0,0 +1,31 @@ +--- +pl: + family_exports: + access_denied: Brak dostępu + create: + success: Eksport został rozpoczęty. Wkrótce będzie można go pobrać. + delete_confirmation: Czy na pewno chcesz usunąć ten eksport? Tej akcji nie można cofnąć. + delete_failed_confirmation: Czy na pewno chcesz usunąć ten nieudany eksport? + destroy: + success: Eksport został pomyślnie usunięty + export_not_ready: Eksport nie jest jeszcze gotowy do pobrania + exporting: Trwa eksportowanie... + index: + title: Eksporty + new: Nowy eksport + table: + title: Eksporty + header: + date: Data + filename: Nazwa pliku + status: Status + actions: Akcje + row: + status: + in_progress: W trakcie + complete: Zakończony + failed: Nieudany + actions: + delete: Usuń + download: Pobierz + empty: Brak eksportów. diff --git a/config/locales/views/holdings/pl.yml b/config/locales/views/holdings/pl.yml new file mode 100644 index 000000000..c9e364c13 --- /dev/null +++ b/config/locales/views/holdings/pl.yml @@ -0,0 +1,94 @@ +--- +pl: + holdings: + cash: + brokerage_cash: Gotówka maklerska + destroy: + success: Pozycja została usunięta + update: + success: Koszt bazowy został zapisany. + error: Nieprawidłowa wartość kosztu bazowego. + unlock_cost_basis: + success: Odblokowano koszt bazowy. Może zostać zaktualizowany przy następnej synchronizacji. + remap_security: + success: Papier wartościowy został pomyślnie zaktualizowany. + security_not_found: Nie udało się znaleźć wybranego papieru wartościowego. + reset_security: + success: Zresetowano papier wartościowy do wartości od dostawcy. + sync_prices: + success: Dane rynkowe zostały pomyślnie zsynchronizowane. + unavailable: Synchronizacja danych rynkowych nie jest dostępna dla papierów offline. + provider_error: Nie udało się pobrać najnowszych cen. Spróbuj ponownie za kilka minut. + errors: + security_collision: 'Nie można zmienić mapowania: masz już pozycję dla %{ticker} z dnia %{date}.' + cost_basis_sources: + manual: Ustawione przez użytkownika + calculated: Z transakcji giełdowych + provider: Od dostawcy + cost_basis_cell: + unknown: "--" + set_cost_basis_header: Ustaw koszt bazowy dla %{ticker} (%{qty} akcji) + total_cost_basis_label: Łączny koszt bazowy + or_per_share_label: 'Lub wpisz na akcję:' + per_share: na akcję + cancel: Anuluj + save: Zapisz + overwrite_confirm_title: Nadpisać koszt bazowy? + overwrite_confirm_body: Spowoduje to zastąpienie aktualnego kosztu bazowego wynoszącego %{current}. + holding: + per_share: na akcję + shares: "%{qty} akcji" + unknown: "--" + no_cost_basis: Brak kosztu bazowego + index: + average_cost: Średni koszt + holdings: Pozycje + name: Nazwa + new_holding: Nowa aktywność + no_holdings: Brak pozycji do wyświetlenia. + return: Łączny zwrot + weight: Udział + missing_price_tooltip: + description: Ta inwestycja ma brakujące wartości i nie mogliśmy obliczyć jej zwrotów ani wartości. + missing_data: Brakujące dane + show: + avg_cost_label: Średni koszt + current_market_price_label: Aktualna cena rynkowa + delete: Usuń + delete_subtitle: Spowoduje to usunięcie pozycji i wszystkich powiązanych transakcji na tym koncie. Tej akcji nie można cofnąć. + delete_title: Usuń pozycję + edit_security: Edytuj papier wartościowy + history: Historia + no_trade_history: Brak historii transakcji dla tej pozycji. + overview: Przegląd + portfolio_weight_label: Udział w portfelu + settings: Ustawienia + security_label: Papier wartościowy + originally: wcześniej %{ticker} + search_security: Wyszukaj papier wartościowy + search_security_placeholder: Szukaj po tickerze lub nazwie + cancel: Anuluj + remap_security: Zapisz + no_security_provider: Dostawca papierów wartościowych nie jest skonfigurowany. Nie można wyszukiwać papierów wartościowych. + security_remapped_label: Papier wartościowy zmieniony + provider_sent: 'Dostawca przesłał: %{ticker}' + reset_to_provider: Przywróć wartość od dostawcy + reset_confirm_title: Przywrócić papier wartościowy do wartości od dostawcy? + reset_confirm_body: Spowoduje to zmianę papieru wartościowego z %{current} z powrotem na %{original} i przeniesienie wszystkich powiązanych transakcji. + ticker_label: Symbol ticker + trade_history_entry: "%{qty} akcji %{security} po %{price}" + total_return_label: Łączny zwrot + unknown: Nieznane + cost_basis_locked_label: Podstawa kosztowa jest zablokowana + cost_basis_locked_description: Ręcznie ustawiona podstawa kosztowa nie będzie zmieniana przez synchronizacje. + unlock_cost_basis: Odblokuj + unlock_confirm_title: Odblokować podstawę kosztową? + unlock_confirm_body: To pozwoli aktualizować podstawę kosztową przez synchronizacje dostawcy lub obliczenia transakcji. + shares_label: Akcje + book_value_label: Wartość księgowa + market_value_label: Wartość rynkowa + market_data_label: Dane rynkowe + market_data_sync_button: Odśwież + last_price_update: Ostatnia aktualizacja ceny + syncing: Synchronizacja... + never: Nigdy diff --git a/config/locales/views/impersonation_sessions/pl.yml b/config/locales/views/impersonation_sessions/pl.yml new file mode 100644 index 000000000..3bc49a92b --- /dev/null +++ b/config/locales/views/impersonation_sessions/pl.yml @@ -0,0 +1,15 @@ +--- +pl: + impersonation_sessions: + approve: + success: Wniosek został zatwierdzony + complete: + success: Sesja została zakończona + create: + success: Wniosek został wysłany do użytkownika. Oczekiwanie na zatwierdzenie. + join: + success: Dołączono do sesji + leave: + success: Opuszczono sesję + reject: + success: Wniosek został odrzucony diff --git a/config/locales/views/imports/pl.yml b/config/locales/views/imports/pl.yml new file mode 100644 index 000000000..af8db190c --- /dev/null +++ b/config/locales/views/imports/pl.yml @@ -0,0 +1,241 @@ +--- +pl: + import: + qif_category_selections: + show: + title: Wybierz kategorie i tagi + description: Wybierz, które kategorie i tagi z pliku QIF chcesz zaimportować do Sure. Odznaczone elementy zostaną usunięte z tych transakcji. + categories_heading: Kategorie + categories_found: + one: Znaleziono 1 kategorię + few: Znaleziono %{count} kategorie + many: Znaleziono %{count} kategorii + other: Znaleziono %{count} kategorii + category_name_col: Nazwa kategorii + transactions_col: Transakcje + tags_heading: Tagi + tags_found: + one: Znaleziono 1 tag + few: Znaleziono %{count} tagi + many: Znaleziono %{count} tagów + other: Znaleziono %{count} tagów + tag_name_col: Nazwa tagu + txn_count: + one: 1 transakcja + few: "%{count} transakcje" + many: "%{count} transakcji" + other: "%{count} transakcji" + split_warning_title: Wykryto transakcje dzielone + split_warning_description: Ten plik QIF zawiera transakcje dzielone. Podziały nie są jeszcze obsługiwane, więc każda taka transakcja zostanie zaimportowana jako pojedyncza transakcja z pełną kwotą i bez kategorii. Szczegółowy podział nie zostanie zachowany. + split_badge: podział + empty_state_primary: W tym pliku QIF nie znaleziono kategorii ani tagów. + empty_state_secondary: Wszystkie transakcje zostaną zaimportowane bez kategorii i tagów. + submit: Przejdź do podsumowania + cleans: + show: + description: Edytuj swoje dane w tabeli poniżej. Czerwone komórki są nieprawidłowe. + errors_notice: Masz błędy w danych. Najedź na błąd, aby zobaczyć szczegóły. + errors_notice_mobile: Masz błędy w danych. Dotknij dymku błędu, aby zobaczyć szczegóły. + title: Wyczyść dane + configurations: + update: + success: Import został pomyślnie skonfigurowany. + category_import: + button_label: Dalej + description: Prześlij prosty plik CSV, taki jak ten generowany podczas eksportu danych. Kolumny zostaną automatycznie zmapowane. + instructions: Wybierz Dalej, aby przeanalizować plik CSV i przejść do etapu czyszczenia. + mint_import: + date_format_label: Format daty + rule_import: + description: Skonfiguruj import reguł. Reguły zostaną utworzone lub zaktualizowane na podstawie danych z CSV. + process_button: Przetwórz reguły + process_help: Kliknij poniższy przycisk, aby przetworzyć CSV i wygenerować wiersze reguł. + show: + description: Wybierz kolumny odpowiadające poszczególnym polom w pliku CSV. + title: Skonfiguruj import + trade_import: + date_format_label: Format daty + transaction_import: + date_format_label: Format daty + rows_to_skip_label: Pomiń pierwsze n wierszy + confirms: + sure_import: + title: Potwierdź import + description: Przejrzyj dane, które zostaną zaimportowane z pliku eksportu. + summary: Podsumowanie importu + empty_summary: Nie udało się znaleźć w tym pliku żadnych rekordów nadających się do importu. Plik może być pusty albo jego wiersze nie pasują do oczekiwanego formatu eksportu. Każdy wiersz powinien być obiektem JSON z kluczami "type" i "data" oraz typami obsługiwanymi przez ten import. + publish_button: Rozpocznij import + cancel: Anuluj + mappings: + create_account: Utwórz konto + csv_mapping_label: "%{mapping} w CSV" + sure_mapping_label: "%{mapping} w %{product_name}" + no_accounts: Nie masz jeszcze żadnych kont. Utwórz konto, którego można użyć dla nieprzypisanych wierszy w CSV, albo wróć do etapu czyszczenia i podaj nazwę konta, której można użyć. + rows_label: Wiersze + unassigned_account: Chcesz utworzyć nowe konto dla nieprzypisanych wierszy? + show: + account_mapping_description: Przypisz wszystkie konta z importowanego pliku do istniejących kont %{product}. Możesz też dodać nowe konta lub zostawić je bez przypisania. + account_mapping_title: Przypisz konta + account_type_mapping_description: Przypisz wszystkie typy kont z importowanego pliku do typów używanych w %{product}. + account_type_mapping_title: Przypisz typy kont + category_mapping_description: Przypisz wszystkie kategorie z importowanego pliku do istniejących kategorii %{product}. Możesz też dodać nowe kategorie lub zostawić je bez przypisania. + category_mapping_title: Przypisz kategorie + tag_mapping_description: Przypisz wszystkie tagi z importowanego pliku do istniejących tagów %{product}. Możesz też dodać nowe tagi lub zostawić je bez przypisania. + tag_mapping_title: Przypisz tagi + uploads: + show: + qif_title: Prześlij plik QIF + qif_description: Wybierz konto, do którego należy ten plik QIF, a następnie prześlij eksport .qif z Quicken. + qif_account_label: Konto + qif_account_placeholder: Wybierz konto… + qif_file_prompt: aby dodać tutaj plik QIF + qif_file_hint: tylko pliki .qif + qif_submit: Prześlij QIF + browse: Przeglądaj + csv_file_prompt: aby dodać tutaj plik CSV + description: Wklej lub prześlij poniżej swój plik CSV. Przed rozpoczęciem zapoznaj się z instrukcjami w tabeli poniżej. + instructions_1: Poniżej znajduje się przykładowy plik CSV z kolumnami dostępnymi do importu. + instructions_2: Twój plik CSV musi zawierać wiersz nagłówka. + instructions_3: Możesz nazwać kolumny dowolnie. Zmapujesz je na późniejszym etapie. + instructions_4: Kolumny oznaczone gwiazdką (*) są wymagane. + instructions_5: W liczbach nie używaj przecinków, symboli walut ani nawiasów. + title: Zaimportuj dane + sure_import: + title: Importuj z eksportu + description: Prześlij plik all.ndjson z eksportu danych, aby przywrócić konta, transakcje, kategorie i inne dane. + drop_title: Upuść plik NDJSON, aby go przesłać + drop_subtitle: Plik zostanie przesłany automatycznie + browse: Przeglądaj + browse_hint: aby dodać tutaj plik all.ndjson + upload_button: Prześlij NDJSON + hint_html: Prześlij plik all.ndjson z archiwum ZIP eksportu danych + ndjson_invalid: Plik musi być poprawnym NDJSON i zawierać co najmniej jeden rekord + imports: + type_labels: + transaction_import: Import transakcji + trade_import: Import transakcji giełdowych + account_import: Import kont + mint_import: Import z Mint + qif_import: Import QIF + category_import: Import kategorii + rule_import: Import reguł + pdf_import: Import PDF + document_import: Import dokumentu + sure_import: Import z Sure + steps: + upload: Przesyłanie + configure: Konfiguracja + clean: Czyszczenie + map: Mapowanie + confirm: Potwierdzenie + select: Wybór + index: + title: Importy + new: Nowy import + table: + title: Importy + header: + date: Data + operation: Operacja + status: Status + actions: Akcje + row: + type_labels: + transaction_import: Transakcja + trade_import: Transakcja giełdowa + account_import: Konto + mint_import: "Mint" + qif_import: "QIF" + category_import: Kategoria + rule_import: Reguła + pdf_import: "PDF" + document_import: Dokument + sure_import: "Sure" + status: + in_progress: W toku + uploading: Przetwarzanie wierszy + reverting: Cofanie + revert_failed: Nie udało się cofnąć + complete: Zakończono + failed: Niepowodzenie + actions: + revert: Cofnij + confirm_revert: To usunie zaimportowane transakcje, ale nadal będzie można w każdej chwili przejrzeć i ponownie zaimportować dane. + delete: Usuń + view: Zobacz + empty: Brak importów. + new: + description: Importuj dane z narzędzia finansowego lub prześlij surowe pliki danych. + tab_financial_tools: Narzędzia i pliki finansowe + tab_raw_data: Surowe dane + coming_soon: Wkrótce + import_ynab: Importuj z YNAB + import_accounts: Importuj konta + import_categories: Importuj kategorie + import_mint: Importuj z Mint + import_portfolio: Importuj inwestycje + import_rules: Importuj reguły + import_transactions: Importuj transakcje + import_qif: Importuj z Quicken (QIF) + import_sure: Importuj z Sure + import_sure_description: Pełny plik eksportu .ndjson + import_file: Importuj dokument + import_file_description: Analiza PDF wspierana przez AI oraz przesyłanie przeszukiwalnych plików + requires_account: Najpierw zaimportuj konta, aby odblokować tę opcję. + resume: Wznów %{type} + sources: Źródła + title: Nowy import + create: + file_too_large: Plik jest zbyt duży. Maksymalny rozmiar to %{max_size} MB. + invalid_file_type: Nieprawidłowy typ pliku. Prześlij plik CSV. + csv_uploaded: Plik CSV został pomyślnie przesłany. + ndjson_uploaded: Plik NDJSON został pomyślnie przesłany. + pdf_too_large: Plik PDF jest zbyt duży. Maksymalny rozmiar to %{max_size} MB. + pdf_processing: Twój plik PDF jest przetwarzany. Po zakończeniu analizy otrzymasz wiadomość e-mail. + invalid_pdf: Przesłany plik nie jest prawidłowym plikiem PDF. + document_too_large: Plik dokumentu jest zbyt duży. Maksymalny rozmiar to %{max_size} MB. + invalid_document_file_type: Nieprawidłowy typ pliku dokumentu dla aktywnego magazynu wektorowego. + document_uploaded: Dokument został pomyślnie przesłany. + document_upload_failed: Nie udało się przesłać dokumentu do magazynu wektorowego. Spróbuj ponownie. + invalid_ndjson_file_type: Nieprawidłowy typ lub format pliku. Prześlij poprawny plik eksportu .ndjson lub .json. + document_provider_not_configured: Nie skonfigurowano magazynu wektorowego dla przesyłania dokumentów. + show: + finalize_upload: Dokończ przesyłanie pliku. + finalize_mappings: Dokończ mapowanie przed przejściem dalej. + ready: + description: Oto podsumowanie nowych elementów, które zostaną dodane do konta po opublikowaniu tego importu. + title: Potwierdź dane importu + summary_item_label: Element + summary_count_label: Liczba + empty_summary: Nie udało się znaleźć w tym pliku żadnych rekordów nadających się do importu. Plik może być pusty albo jego wiersze nie pasują do oczekiwanego formatu eksportu. Każdy wiersz powinien być obiektem JSON z kluczami "type" i "data" oraz typami obsługiwanymi przez ten import. + publish_import: Opublikuj import + back_to_imports: Wróć do importów + errors: + custom_column_requires_inflow: Import niestandardowych kolumn wymaga wybrania kolumny wpływu + document_types: + bank_statement: Wyciąg bankowy + credit_card_statement: Wyciąg z karty kredytowej + investment_statement: Wyciąg inwestycyjny + financial_document: Dokument finansowy + contract: Umowa + other: Inny dokument + unknown: Nieznany dokument + pdf_import: + processing_title: Przetwarzanie PDF + processing_description: Analizujemy Twój dokument przy użyciu AI. Może to chwilę potrwać. Po zakończeniu analizy otrzymasz wiadomość e-mail. + check_status: Sprawdź status + back_to_dashboard: Wróć do pulpitu + failed_title: Przetwarzanie nie powiodło się + failed_description: Nie udało się przetworzyć dokumentu PDF. Spróbuj ponownie lub skontaktuj się ze wsparciem. + try_again: Spróbuj ponownie + delete_import: Usuń import + complete_title: Dokument przeanalizowany + complete_description: Przeanalizowaliśmy Twój plik PDF. Oto, co znaleźliśmy. + document_type_label: Typ dokumentu + summary_label: Podsumowanie + email_sent_notice: Wysłano do Ciebie wiadomość e-mail z dalszymi krokami. + back_to_imports: Wróć do importów + unknown_state_title: Nieznany stan + unknown_state_description: Ten import jest w nieoczekiwanym stanie. Wróć do listy importów. + processing_failed_with_message: "%{message}" + processing_failed_generic: "Przetwarzanie nie powiodło się: %{error}" diff --git a/config/locales/views/indexa_capital_items/pl.yml b/config/locales/views/indexa_capital_items/pl.yml new file mode 100644 index 000000000..abab63caa --- /dev/null +++ b/config/locales/views/indexa_capital_items/pl.yml @@ -0,0 +1,247 @@ +--- +pl: + indexa_capital_items: + sync_status: + no_accounts: Nie znaleziono kont + synced: + one: Zsynchronizowano %{count} konto + few: Zsynchronizowano %{count} konta + many: Zsynchronizowano %{count} kont + other: Zsynchronizowano %{count} konta + synced_with_setup: Zsynchronizowano %{linked}, %{unlinked} wymaga konfiguracji + institution_summary: + none: Nie połączono żadnych instytucji + count: + one: "%{count} instytucja" + few: "%{count} instytucje" + many: "%{count} instytucji" + other: "%{count} instytucji" + errors: + provider_not_configured: Dostawca IndexaCapital nie jest skonfigurowany + sync: + status: + importing: Importowanie kont z IndexaCapital... + processing: Przetwarzanie pozycji i aktywności... + calculating: Obliczanie sald... + importing_data: Importowanie danych konta... + checking_setup: Sprawdzanie konfiguracji kont... + needs_setup: "%{count} kont wymaga konfiguracji..." + success: Synchronizacja rozpoczęta + panel: + setup_instructions: 'Instrukcje konfiguracji:' + step_1: Wejdź do panelu Indexa Capital, aby wygenerować token API tylko do odczytu + step_2: Wklej poniżej token API i kliknij Zapisz + step_3: Po pomyślnym połączeniu przejdź do zakładki Konta, aby skonfigurować nowe konta + field_descriptions: 'Opisy pól:' + optional: "(opcjonalne)" + required: "(wymagane)" + optional_with_default: "(opcjonalne, domyślnie %{default_value})" + alternative_auth: Lub użyj uwierzytelniania loginem i hasłem... + save_button: Zapisz konfigurację + update_button: Zaktualizuj konfigurację + status_configured_html: Skonfigurowano i gotowe do użycia. Przejdź do zakładki Konta, aby zarządzać kontami i je konfigurować. + status_not_configured: Nie skonfigurowano + fields: + api_token: + label: Token API + description: Twój token API tylko do odczytu z panelu Indexa Capital + placeholder_new: Wklej tutaj swój token API + placeholder_update: Wprowadź nowy token API, aby zaktualizować + username: + label: Nazwa użytkownika + description: Twoja nazwa użytkownika lub e-mail w Indexa Capital + placeholder_new: Wklej tutaj nazwę użytkownika + placeholder_update: Wprowadź nową nazwę użytkownika, aby zaktualizować + document: + label: ID dokumentu + description: Twój dokument lub identyfikator w Indexa Capital + placeholder_new: Wklej tutaj identyfikator dokumentu + placeholder_update: Wprowadź nowy identyfikator dokumentu, aby zaktualizować + password: + label: Hasło + description: Twoje hasło do Indexa Capital + placeholder_new: Wklej tutaj hasło + placeholder_update: Wprowadź nowe hasło, aby zaktualizować + create: + success: Połączenie IndexaCapital zostało pomyślnie utworzone + update: + success: Połączenie IndexaCapital zostało zaktualizowane + destroy: + success: Połączenie IndexaCapital zostało usunięte + index: + title: Połączenia IndexaCapital + loading: + loading_message: Ładowanie kont IndexaCapital... + loading_title: Ładowanie + link_accounts: + all_already_linked: + one: Wybrane konto (%{names}) jest już połączone + few: 'Wszystkie %{count} wybrane konta są już połączone: %{names}' + many: 'Wszystkie %{count} wybranych kont są już połączone: %{names}' + other: 'Wszystkie %{count} wybrane konta są już połączone: %{names}' + api_error: 'Błąd API: %{message}' + invalid_account_names: + one: Nie można połączyć konta bez nazwy + few: Nie można połączyć %{count} kont bez nazw + many: Nie można połączyć %{count} kont bez nazw + other: Nie można połączyć %{count} kont bez nazw + link_failed: Nie udało się połączyć kont + no_accounts_selected: Wybierz co najmniej jedno konto + no_api_key: Nie znaleziono danych logowania IndexaCapital. Skonfiguruj je w ustawieniach dostawców. + partial_invalid: Pomyślnie połączono %{created_count} kont, %{already_linked_count} było już połączonych, a %{invalid_count} miało nieprawidłowe nazwy + partial_success: 'Pomyślnie połączono %{created_count} kont. %{already_linked_count} było już połączonych: %{already_linked_names}' + success: + one: Pomyślnie połączono %{count} konto + few: Pomyślnie połączono %{count} konta + many: Pomyślnie połączono %{count} kont + other: Pomyślnie połączono %{count} konta + indexa_capital_item: + accounts_need_setup: Konta wymagają konfiguracji + delete: Usuń połączenie + deletion_in_progress: trwa usuwanie... + error: Błąd + more_accounts_available: + one: Dostępne jest jeszcze %{count} konto + few: Dostępne są jeszcze %{count} konta + many: Dostępnych jest jeszcze %{count} kont + other: Dostępnych jest jeszcze %{count} konta + no_accounts_description: To połączenie nie ma jeszcze żadnych połączonych kont. + no_accounts_title: Brak kont + provider_name: IndexaCapital + requires_update: Połączenie wymaga aktualizacji + setup_action: Skonfiguruj nowe konta + setup_description: Połączono %{linked} z %{total} kont. Wybierz typy dla nowo zaimportowanych kont IndexaCapital. + setup_needed: Nowe konta gotowe do konfiguracji + status: Zsynchronizowano %{timestamp} temu — %{summary} + status_never: Nigdy nie synchronizowano + syncing: Trwa synchronizacja... + total: Łącznie + unlinked: Niepołączone + update_credentials: Zaktualizuj dane uwierzytelniające + select_accounts: + accounts_selected: wybrano konta + api_error: 'Błąd API: %{message}' + cancel: Anuluj + configure_name_in_provider: Nie można importować. Skonfiguruj nazwę konta w IndexaCapital. + description: Wybierz konta, które chcesz połączyć ze swoim kontem %{product_name}. + link_accounts: Połącz wybrane konta + no_accounts_found: Nie znaleziono kont. Sprawdź dane logowania IndexaCapital. + no_api_key: Dane logowania IndexaCapital nie są skonfigurowane. Skonfiguruj je w Ustawieniach. + no_credentials_configured: Najpierw skonfiguruj dane logowania IndexaCapital w ustawieniach dostawców. + no_name_placeholder: "(Brak nazwy)" + title: Wybierz konta IndexaCapital + select_existing_account: + account_already_linked: To konto jest już połączone z dostawcą + all_accounts_already_linked: Wszystkie konta IndexaCapital są już połączone + api_error: 'Błąd API: %{message}' + balance_label: 'Saldo:' + cancel: Anuluj + cancel_button: Anuluj + configure_name_in_provider: Nie można importować. Skonfiguruj nazwę konta w IndexaCapital. + connect_hint: Połącz konto IndexaCapital, aby włączyć automatyczną synchronizację. + description: Wybierz konto IndexaCapital, które chcesz połączyć z tym kontem. Transakcje będą synchronizowane i automatycznie deduplikowane. + header: Połącz z IndexaCapital + link_account: Połącz konto + link_button: Połącz to konto + linking_to: 'Łączenie z:' + no_account_specified: Nie wskazano konta + no_accounts: Nie znaleziono niepołączonych kont IndexaCapital. + no_accounts_found: Nie znaleziono kont IndexaCapital. Sprawdź dane logowania. + no_api_key: Dane logowania IndexaCapital nie są skonfigurowane. Skonfiguruj je w Ustawieniach. + no_credentials_configured: Najpierw skonfiguruj dane logowania IndexaCapital w ustawieniach dostawców. + no_name_placeholder: "(Brak nazwy)" + settings_link: Przejdź do ustawień dostawców + subtitle: Wybierz konto IndexaCapital + title: Połącz %{account_name} z IndexaCapital + link_existing_account: + account_already_linked: To konto jest już połączone z dostawcą + api_error: 'Błąd API: %{message}' + invalid_account_name: Nie można połączyć konta bez nazwy + provider_account_already_linked: To konto IndexaCapital jest już połączone z innym kontem + provider_account_not_found: Nie znaleziono konta IndexaCapital + missing_parameters: Brakuje wymaganych parametrów + no_api_key: Nie znaleziono danych logowania IndexaCapital. Skonfiguruj je w ustawieniach dostawców. + success: Pomyślnie połączono %{account_name} z IndexaCapital + setup_accounts: + account_type_label: 'Typ konta:' + accounts_count: + one: Dostępne %{count} konto + few: Dostępne %{count} konta + many: Dostępnych %{count} kont + other: Dostępnych %{count} konta + all_accounts_linked: Wszystkie Twoje konta IndexaCapital zostały już skonfigurowane. + api_error: 'Błąd API: %{message}' + creating: Tworzenie kont... + fetch_failed: Nie udało się pobrać kont + import_selected: Importuj wybrane konta + instructions: Wybierz konta, które chcesz zaimportować z IndexaCapital. Możesz wybrać wiele kont. + no_accounts: Nie znaleziono niepołączonych kont dla tego połączenia IndexaCapital. + no_accounts_to_setup: Brak kont do skonfigurowania + no_api_key: Dane logowania IndexaCapital nie są skonfigurowane. Sprawdź ustawienia połączenia. + select_all: Zaznacz wszystkie + account_types: + skip: Pomiń to konto + depository: Konto bieżące lub oszczędnościowe + credit_card: Karta kredytowa + investment: Konto inwestycyjne + crypto: Konto kryptowalutowe + loan: Pożyczka lub hipoteka + other_asset: Inne aktywo + subtype_labels: + depository: 'Podtyp konta:' + credit_card: '' + investment: 'Typ inwestycji:' + crypto: '' + loan: 'Typ pożyczki:' + other_asset: '' + subtype_messages: + credit_card: Karty kredytowe zostaną automatycznie skonfigurowane jako konta kart kredytowych. + other_asset: Dla innych aktywów nie są potrzebne dodatkowe opcje. + crypto: Konta kryptowalutowe zostaną skonfigurowane do śledzenia pozycji i transakcji. + subtypes: + depository: + checking: Bieżące + savings: Oszczędnościowe + hsa: Konto oszczędnościowe na cele zdrowotne + cd: Lokata terminowa + money_market: Rynek pieniężny + investment: + brokerage: Maklerskie + pension: Emerytalne + retirement: Emerytalne + 401k: 401(k) + roth_401k: Roth 401(k) + 403b: 403(b) + tsp: Plan oszczędnościowy TSP + 529_plan: Plan 529 + hsa: Konto oszczędnościowe na cele zdrowotne + mutual_fund: Fundusz inwestycyjny + ira: Tradycyjne IRA + roth_ira: Roth IRA + angel: Inwestycja anielska + loan: + mortgage: Hipoteka + student: Pożyczka studencka + auto: Kredyt samochodowy + other: Inna pożyczka + balance: Saldo + cancel: Anuluj + choose_account_type: 'Wybierz poprawny typ konta dla każdego konta IndexaCapital:' + create_accounts: Utwórz konta + creating_accounts: Tworzenie kont... + historical_data_range: 'Zakres danych historycznych:' + subtitle: Wybierz poprawne typy dla importowanych kont + sync_start_date_help: Wybierz, jak daleko wstecz chcesz synchronizować historię transakcji. + sync_start_date_label: 'Rozpocznij synchronizację transakcji od:' + title: Skonfiguruj konta IndexaCapital + complete_account_setup: + all_skipped: Wszystkie konta zostały pominięte. Nie utworzono żadnych kont. + creation_failed: 'Nie udało się utworzyć kont: %{error}' + no_accounts: Brak kont do skonfigurowania. + success: + one: Pomyślnie utworzono %{count} konto. + few: Pomyślnie utworzono %{count} konta. + many: Pomyślnie utworzono %{count} kont. + other: Pomyślnie utworzono %{count} konta. + preload_accounts: + no_credentials_configured: Najpierw skonfiguruj dane logowania IndexaCapital w ustawieniach dostawców. diff --git a/config/locales/views/investments/pl.yml b/config/locales/views/investments/pl.yml new file mode 100644 index 000000000..94ab55f34 --- /dev/null +++ b/config/locales/views/investments/pl.yml @@ -0,0 +1,120 @@ +--- +pl: + investments: + edit: + edit: Edytuj %{account} + form: + none: Brak + subtype_prompt: Wybierz typ inwestycji + new: + title: Wprowadź saldo konta + show: + chart_title: Łączna wartość + subtypes: + brokerage: + short: Maklerskie + long: Konto maklerskie + 401k: + short: 401(k) + long: 401(k) + roth_401k: + short: Roth 401(k) + long: Roth 401(k) + 403b: + short: 403(b) + long: 403(b) + 457b: + short: 457(b) + long: 457(b) + tsp: + short: TSP + long: Plan oszczędnościowy Thrift + ira: + short: IRA + long: Tradycyjne IRA + roth_ira: + short: Roth IRA + long: Roth IRA + sep_ira: + short: SEP IRA + long: SEP IRA + simple_ira: + short: SIMPLE IRA + long: SIMPLE IRA + 529_plan: + short: 529 Plan + long: Edukacyjny plan oszczędnościowy 529 + hsa: + short: HSA + long: Konto oszczędnościowe na cele zdrowotne + ugma: + short: UGMA + long: Powiernicze konto UGMA + utma: + short: UTMA + long: Powiernicze konto UTMA + isa: + short: ISA + long: Indywidualne konto oszczędnościowe + lisa: + short: LISA + long: Dożywotnie konto ISA + sipp: + short: SIPP + long: Indywidualna emerytura samodzielnie inwestowana + workplace_pension_uk: + short: Emerytalne + long: Emerytura pracownicza + rrsp: + short: RRSP + long: Zarejestrowany emerytalny plan oszczędnościowy + tfsa: + short: TFSA + long: Konto oszczędnościowe zwolnione z podatku + resp: + short: RESP + long: Zarejestrowany edukacyjny plan oszczędnościowy + lira: + short: LIRA + long: Zablokowane konto emerytalne + rrif: + short: RRIF + long: Zarejestrowany fundusz dochodu emerytalnego + super: + short: Super + long: Fundusz emerytalny + smsf: + short: SMSF + long: Samodzielnie zarządzany fundusz emerytalny + pea: + short: PEA + long: Plan oszczędnościowy w akcjach (PEA) + pillar_3a: + short: Pillar 3a + long: Prywatna emerytura (Filar 3a) + riester: + short: Riester + long: Riester-Rente + pension: + short: Emerytalne + long: Emerytalne + retirement: + short: Emerytalne + long: Konto emerytalne + mutual_fund: + short: Fundusz + long: Fundusz inwestycyjny + angel: + short: Anioł + long: Inwestycja anielska + trust: + short: Trust + long: Trust + other: + short: Inne + long: Inna inwestycja + value_tooltip: + cash: Gotówka + holdings: Pozycje + total: Saldo portfela + total_value_tooltip: Łączne saldo portfela to suma gotówki maklerskiej (dostępnej do handlu) oraz aktualnej wartości rynkowej Twoich pozycji. diff --git a/config/locales/views/invitation_mailer/pl.yml b/config/locales/views/invitation_mailer/pl.yml new file mode 100644 index 000000000..dadffa0a8 --- /dev/null +++ b/config/locales/views/invitation_mailer/pl.yml @@ -0,0 +1,8 @@ +--- +pl: + invitation_mailer: + invite_email: + accept_button: Zaakceptuj zaproszenie + body: "%{inviter} zaprosił(a) Cię do dołączenia do %{family} %{moniker} w %{product_name}!" + expiry_notice: To zaproszenie wygaśnie za %{days} dni + greeting: Witamy w %{product_name}! diff --git a/config/locales/views/invitations/pl.yml b/config/locales/views/invitations/pl.yml new file mode 100644 index 000000000..61e18dc0b --- /dev/null +++ b/config/locales/views/invitations/pl.yml @@ -0,0 +1,27 @@ +--- +pl: + invitations: + accept_choice: + create_account: Utwórz nowe konto + joined_household: Dołączono do gospodarstwa domowego. + message: "%{inviter} zaprosił(a) Cię jako %{role}." + sign_in_existing: Mam już konto + title: Dołącz do %{family} + create: + existing_user_added: Użytkownik został dodany do Twojego gospodarstwa domowego. + failure: Nie udało się wysłać zaproszenia + success: Zaproszenie zostało wysłane + destroy: + failure: Wystąpił problem podczas usuwania zaproszenia. + not_authorized: Nie masz uprawnień do zarządzania zaproszeniami. + success: Zaproszenie zostało pomyślnie usunięte. + new: + email_label: Adres e-mail + email_placeholder: Wpisz adres e-mail + role_admin: Administrator + role_guest: Gość + role_label: Rola + role_member: Członek + submit: Wyślij zaproszenie + subtitle: Wyślij zaproszenie do dołączenia do Twojego konta %{moniker} w %{product_name} + title: Zaproś kogoś diff --git a/config/locales/views/invite_codes/pl.yml b/config/locales/views/invite_codes/pl.yml new file mode 100644 index 000000000..ef9108f60 --- /dev/null +++ b/config/locales/views/invite_codes/pl.yml @@ -0,0 +1,6 @@ +--- +pl: + invite_codes: + index: + invite_code_description: Wygeneruj nowy kod, aby zobaczyć go tutaj. Wykorzystane kody nie są już wyświetlane. + no_invite_codes: Brak kodów do wyświetlenia diff --git a/config/locales/views/layout/pl.yml b/config/locales/views/layout/pl.yml new file mode 100644 index 000000000..fe70cadf6 --- /dev/null +++ b/config/locales/views/layout/pl.yml @@ -0,0 +1,24 @@ +--- +pl: + layouts: + application: + privacy_mode: Przełącz tryb prywatności + nav: + assistant: Asystent + budgets: Budżety + home: Strona główna + reports: Raporty + transactions: Transakcje + auth: + existing_account: Masz już konto? + no_account: Nowy użytkownik w %{product_name}? + sign_in: Zaloguj się + sign_up: Załóż konto + shared: + footer: + privacy_policy: Polityka prywatności + terms_of_service: Warunki korzystania + trial: + open_demo: Otwórz demo + data_deleted_in_days: Dane zostaną usunięte za %{days} dni + contribute: Wesprzyj diff --git a/config/locales/views/loans/pl.yml b/config/locales/views/loans/pl.yml new file mode 100644 index 000000000..2ea423f2d --- /dev/null +++ b/config/locales/views/loans/pl.yml @@ -0,0 +1,23 @@ +--- +pl: + loans: + edit: + edit: Edytuj %{account} + form: + interest_rate: Oprocentowanie + interest_rate_placeholder: '5.25' + initial_balance: Początkowe saldo pożyczki + rate_type: Typ oprocentowania + term_months: Okres (miesiące) + term_months_placeholder: '360' + new: + title: Wprowadź dane pożyczki + overview: + interest_rate: Oprocentowanie + monthly_payment: Rata miesięczna + not_applicable: Nie dotyczy + original_principal: Kapitał początkowy + remaining_principal: Pozostały kapitał + term: Okres + type: Typ + unknown: Nieznane diff --git a/config/locales/views/lunchflow_items/pl.yml b/config/locales/views/lunchflow_items/pl.yml new file mode 100644 index 000000000..8d243a3f9 --- /dev/null +++ b/config/locales/views/lunchflow_items/pl.yml @@ -0,0 +1,153 @@ +--- +pl: + lunchflow_items: + create: + success: Połączenie Lunch Flow zostało pomyślnie utworzone + destroy: + success: Połączenie Lunch Flow zostało usunięte + index: + title: Połączenia Lunch Flow + loading: + loading_message: Ładowanie kont Lunch Flow... + loading_title: Ładowanie + link_accounts: + all_already_linked: + one: Wybrane konto (%{names}) jest już połączone + few: 'Wszystkie %{count} wybrane konta są już połączone: %{names}' + many: 'Wszystkie %{count} wybranych kont jest już połączonych: %{names}' + other: 'Wszystkie %{count} wybrane konta są już połączone: %{names}' + api_error: 'Błąd API: %{message}' + invalid_account_names: + one: Nie można połączyć konta bez nazwy + few: Nie można połączyć %{count} kont bez nazwy + many: Nie można połączyć %{count} kont bez nazwy + other: Nie można połączyć %{count} kont bez nazwy + link_failed: Nie udało się połączyć kont + no_accounts_selected: Wybierz co najmniej jedno konto + partial_invalid: Pomyślnie połączono %{created_count} konto(a), %{already_linked_count} było już połączonych, %{invalid_count} konto(a) miało nieprawidłowe nazwy + partial_success: 'Pomyślnie połączono %{created_count} konto(a). %{already_linked_count} konto(a) było już połączonych: %{already_linked_names}' + success: + one: Pomyślnie połączono %{count} konto + few: Pomyślnie połączono %{count} konta + many: Pomyślnie połączono %{count} kont + other: Pomyślnie połączono %{count} kont + lunchflow_item: + accounts_need_setup: Konta wymagają konfiguracji + delete: Usuń połączenie + deletion_in_progress: usuwanie w toku... + error: Błąd + no_accounts_description: To połączenie nie ma jeszcze żadnych połączonych kont. + no_accounts_title: Brak kont + setup_action: Skonfiguruj nowe konta + setup_description: "%{linked} z %{total} kont połączonych. Wybierz typy kont dla nowo zaimportowanych kont Lunch Flow." + setup_needed: Nowe konta gotowe do konfiguracji + status: Zsynchronizowano %{timestamp} temu + status_never: Nigdy nie synchronizowano + status_with_summary: Ostatnia synchronizacja %{timestamp} temu • %{summary} + syncing: Synchronizacja... + total: Łącznie + unlinked: Niepodłączone + select_accounts: + accounts_selected: wybranych kont + api_error: 'Błąd API: %{message}' + cancel: Anuluj + configure_name_in_lunchflow: Nie można zaimportować — skonfiguruj nazwę konta w Lunchflow + description: Wybierz konta, które chcesz połączyć z kontem %{product_name}. + link_accounts: Połącz wybrane konta + no_accounts_found: Nie znaleziono kont. Sprawdź konfigurację klucza API. + no_api_key: Klucz API Lunch Flow nie jest skonfigurowany. Skonfiguruj go w Ustawieniach. + no_name_placeholder: "(Brak nazwy)" + title: Wybierz konta Lunch Flow + select_existing_account: + account_already_linked: To konto jest już połączone z dostawcą + all_accounts_already_linked: Wszystkie konta Lunch Flow są już połączone + api_error: 'Błąd API: %{message}' + cancel: Anuluj + configure_name_in_lunchflow: Nie można zaimportować — skonfiguruj nazwę konta w Lunchflow + description: Wybierz konto Lunch Flow do połączenia z tym kontem. Transakcje będą synchronizowane i deduplikowane automatycznie. + link_account: Połącz konto + no_account_specified: Nie podano konta + no_accounts_found: Nie znaleziono kont Lunch Flow. Sprawdź konfigurację klucza API. + no_api_key: Klucz API Lunch Flow nie jest skonfigurowany. Skonfiguruj go w Ustawieniach. + no_name_placeholder: "(Brak nazwy)" + title: Połącz %{account_name} z Lunch Flow + link_existing_account: + account_already_linked: To konto jest już połączone z dostawcą + api_error: 'Błąd API: %{message}' + invalid_account_name: Nie można połączyć konta bez nazwy + lunchflow_account_already_linked: To konto Lunch Flow jest już połączone z innym kontem + lunchflow_account_not_found: Nie znaleziono konta Lunch Flow + missing_parameters: Brak wymaganych parametrów + success: Pomyślnie połączono %{account_name} z Lunch Flow + setup_accounts: + account_type_label: 'Typ konta:' + all_accounts_linked: Wszystkie Twoje konta Lunch Flow są już skonfigurowane. + api_error: 'Błąd API: %{message}' + fetch_failed: Nie udało się pobrać kont + no_accounts_to_setup: Brak kont do konfiguracji + no_api_key: Klucz API Lunch Flow nie jest skonfigurowany. Sprawdź ustawienia połączenia. + account_types: + skip: Pomiń to konto + depository: Konto bieżące lub oszczędnościowe + credit_card: Karta kredytowa + investment: Konto inwestycyjne + loan: Pożyczka lub kredyt hipoteczny + other_asset: Inne aktywa + subtype_labels: + depository: 'Podtyp konta:' + credit_card: 'Podtyp karty kredytowej:' + investment: 'Typ inwestycji:' + loan: 'Typ pożyczki:' + other_asset: 'Podtyp aktywa:' + subtype_messages: + credit_card: Karty kredytowe zostaną automatycznie skonfigurowane jako konta kart kredytowych. + other_asset: Dla innych aktywów nie są potrzebne dodatkowe opcje. + subtypes: + depository: + checking: Konto bieżące + savings: Oszczędnościowe + hsa: Konto oszczędnościowe na cele zdrowotne + cd: Lokata terminowa + money_market: Rynek pieniężny + investment: + brokerage: Maklerskie + pension: Emerytura + retirement: Emerytalne + 401k: 401(k) + roth_401k: Roth 401(k) + 403b: 403(b) + tsp: Plan oszczędnościowy Thrift + 529_plan: 529 Plan + hsa: Konto oszczędnościowe na cele zdrowotne + mutual_fund: Fundusz inwestycyjny + ira: Tradycyjne IRA + roth_ira: Roth IRA + angel: Anielska + loan: + mortgage: Kredyt hipoteczny + student: Pożyczka studencka + auto: Pożyczka na samochód + other: Inna pożyczka + balance: Saldo + cancel: Anuluj + choose_account_type: 'Wybierz poprawny typ dla każdego konta Lunch Flow:' + create_accounts: Utwórz konta + creating_accounts: Tworzenie kont... + historical_data_range: 'Zakres danych historycznych:' + subtitle: Wybierz poprawne typy dla importowanych kont + sync_start_date_help: Wybierz, jak daleko wstecz chcesz synchronizować historię transakcji. Dostępne są maksymalnie 3 lata historii. + sync_start_date_label: 'Synchronizuj transakcje od:' + title: Skonfiguruj swoje konta Lunch Flow + complete_account_setup: + all_skipped: Wszystkie konta zostały pominięte. Nie utworzono żadnych kont. + creation_failed: 'Nie udało się utworzyć kont: %{error}' + no_accounts: Brak kont do skonfigurowania. + success: + one: Pomyślnie utworzono %{count} konto. + few: Pomyślnie utworzono %{count} konta. + many: Pomyślnie utworzono %{count} kont. + other: Pomyślnie utworzono %{count} konta. + sync: + success: Rozpoczęto synchronizację + update: + success: Połączenie Lunch Flow zostało zaktualizowane diff --git a/config/locales/views/merchants/pl.yml b/config/locales/views/merchants/pl.yml new file mode 100644 index 000000000..c95e40896 --- /dev/null +++ b/config/locales/views/merchants/pl.yml @@ -0,0 +1,70 @@ +--- +pl: + family_merchants: + create: + error: 'Błąd podczas tworzenia kontrahenta: %{error}' + success: Nowy kontrahent został pomyślnie utworzony + destroy: + success: Kontrahent został pomyślnie usunięty + unlinked_success: Kontrahent został odłączony od Twoich transakcji + edit: + title: Edytuj kontrahenta + form: + name_placeholder: Nazwa kontrahenta + website_placeholder: Strona internetowa (np. starbucks.com) + website_hint: Wprowadź stronę internetową kontrahenta, aby automatycznie wyświetlać jego logo + index: + empty: Brak kontrahentów + new: Nowy kontrahent + merge: Scal kontrahentów + title: Kontrahenci + family_title: "Kontrahenci %{moniker}" + family_empty: Brak kontrahentów %{moniker} + provider_title: Kontrahenci od dostawcy + provider_empty: Brak kontrahentów dostawcy połączonych z tym %{moniker} + provider_read_only: Kontrahenci dostawcy są synchronizowani z połączonych instytucji. Nie można ich tutaj edytować. + provider_info: Ci kontrahenci zostali automatycznie wykryci przez połączenia bankowe lub AI. Możesz ich edytować, aby utworzyć własną kopię, albo usunąć, aby odłączyć ich od transakcji. + enhance_info: + one: "%{count} kontrahentowi dostawcy brakuje informacji o stronie internetowej. Ulepsz dane z pomocą AI, aby wykryć strony, wyświetlić loga i scalić duplikaty kontrahentów." + few: "%{count} kontrahentom dostawcy brakuje informacji o stronie internetowej. Ulepsz dane z pomocą AI, aby wykryć strony, wyświetlić loga i scalić duplikaty kontrahentów." + many: "%{count} kontrahentom dostawcy brakuje informacji o stronie internetowej. Ulepsz dane z pomocą AI, aby wykryć strony, wyświetlić loga i scalić duplikaty kontrahentów." + other: "%{count} kontrahentom dostawcy brakuje informacji o stronie internetowej. Ulepsz dane z pomocą AI, aby wykryć strony, wyświetlić loga i scalić duplikaty kontrahentów." + enhance_button: Ulepsz z pomocą AI + unlinked_title: Ostatnio odłączone + unlinked_info: Ci kontrahenci zostali niedawno odłączeni od Twoich transakcji. Znikną z tej listy po 30 dniach, chyba że zostaną ponownie przypisani do transakcji. + table: + merchant: Kontrahent + actions: Akcje + source: Źródło + merchant: + confirm_accept: Usuń kontrahenta + confirm_body: Czy na pewno chcesz usunąć tego kontrahenta? Usunięcie odłączy wszystkie powiązane transakcje i może wpłynąć na raporty. + confirm_title: Usunąć kontrahenta? + delete: Usuń kontrahenta + edit: Edytuj kontrahenta + merge: + title: Scal kontrahentów + description: Wybierz kontrahenta docelowego i kontrahentów do scalenia z nim. Wszystkie transakcje scalonych kontrahentów zostaną przypisane do celu. + target_label: Scal do (docelowy) + select_target: Wybierz kontrahenta docelowego... + sources_label: Kontrahenci do scalenia + sources_hint: Wybrani kontrahenci zostaną scaleni z celem. Kontrahenci rodziny zostaną usunięci, a kontrahenci dostawcy odłączeni. + submit: Scal wybrane + new: + title: Nowy kontrahent + perform_merge: + success: Pomyślnie scalono %{count} kontrahentów + no_merchants_selected: Nie wybrano kontrahentów do scalenia + target_not_found: Nie znaleziono kontrahenta docelowego + invalid_merchants: Wybrano nieprawidłowych kontrahentów + provider_merchant: + edit: Edytuj + remove: Usuń + remove_confirm_title: Usunąć kontrahenta? + remove_confirm_body: Czy na pewno chcesz usunąć %{name}? To odłączy wszystkie powiązane transakcje od tego kontrahenta, ale nie usunie samego kontrahenta. + enhance: + success: Rozpoczęto ulepszanie kontrahentów dostawcy. Kontrahenci zostaną ulepszeni, a duplikaty wkrótce scalone. + already_running: Ulepszanie już trwa. Poczekaj na zakończenie. + update: + success: Kontrahent został pomyślnie zaktualizowany + converted_success: Kontrahent został pomyślnie przekonwertowany i zaktualizowany diff --git a/config/locales/views/mercury_items/pl.yml b/config/locales/views/mercury_items/pl.yml new file mode 100644 index 000000000..4fd424428 --- /dev/null +++ b/config/locales/views/mercury_items/pl.yml @@ -0,0 +1,157 @@ +--- +pl: + mercury_items: + create: + success: Połączenie Mercury zostało pomyślnie utworzone + destroy: + success: Połączenie Mercury zostało usunięte + index: + title: Połączenia Mercury + loading: + loading_message: Ładowanie kont Mercury... + loading_title: Ładowanie + link_accounts: + all_already_linked: + one: Wybrane konto (%{names}) jest już połączone + few: 'Wszystkie %{count} wybrane konta są już połączone: %{names}' + many: 'Wszystkie %{count} wybranych kont jest już połączonych: %{names}' + other: 'Wszystkie %{count} wybrane konta są już połączone: %{names}' + api_error: 'Błąd API: %{message}' + invalid_account_names: + one: Nie można połączyć konta bez nazwy + few: Nie można połączyć %{count} kont bez nazwy + many: Nie można połączyć %{count} kont bez nazwy + other: Nie można połączyć %{count} kont bez nazwy + link_failed: Nie udało się połączyć kont + no_accounts_selected: Wybierz co najmniej jedno konto + no_api_token: Nie znaleziono tokenu API Mercury. Skonfiguruj go w Ustawieniach dostawcy. + partial_invalid: Pomyślnie połączono %{created_count} konto(a), %{already_linked_count} było już połączonych, %{invalid_count} konto(a) miało nieprawidłowe nazwy + partial_success: 'Pomyślnie połączono %{created_count} konto(a). %{already_linked_count} konto(a) było już połączonych: %{already_linked_names}' + success: + one: Pomyślnie połączono %{count} konto + few: Pomyślnie połączono %{count} konta + many: Pomyślnie połączono %{count} kont + other: Pomyślnie połączono %{count} kont + mercury_item: + accounts_need_setup: Konta wymagają konfiguracji + delete: Usuń połączenie + deletion_in_progress: usuwanie w toku... + error: Błąd + no_accounts_description: To połączenie nie ma jeszcze żadnych połączonych kont. + no_accounts_title: Brak kont + setup_action: Skonfiguruj nowe konta + setup_description: "%{linked} z %{total} kont połączonych. Wybierz typy kont dla nowo zaimportowanych kont Mercury." + setup_needed: Nowe konta gotowe do konfiguracji + status: Zsynchronizowano %{timestamp} temu + status_never: Nigdy nie synchronizowano + status_with_summary: Ostatnia synchronizacja %{timestamp} temu - %{summary} + syncing: Synchronizacja... + total: Łącznie + unlinked: Niepodłączone + select_accounts: + accounts_selected: wybranych kont + api_error: 'Błąd API: %{message}' + cancel: Anuluj + configure_name_in_mercury: Nie można zaimportować — skonfiguruj nazwę konta w Mercury + description: Wybierz konta, które chcesz połączyć z kontem %{product_name}. + link_accounts: Połącz wybrane konta + no_accounts_found: Nie znaleziono kont. Sprawdź konfigurację tokenu API. + no_api_token: Token API Mercury nie jest skonfigurowany. Skonfiguruj go w Ustawieniach. + no_credentials_configured: Skonfiguruj token API Mercury najpierw w Ustawieniach dostawcy. + no_name_placeholder: "(Brak nazwy)" + title: Wybierz konta Mercury + select_existing_account: + account_already_linked: To konto jest już połączone z dostawcą + all_accounts_already_linked: Wszystkie konta Mercury są już połączone + api_error: 'Błąd API: %{message}' + cancel: Anuluj + configure_name_in_mercury: Nie można zaimportować — skonfiguruj nazwę konta w Mercury + description: Wybierz konto Mercury do połączenia z tym kontem. Transakcje będą synchronizowane i deduplikowane automatycznie. + link_account: Połącz konto + no_account_specified: Nie podano konta + no_accounts_found: Nie znaleziono kont Mercury. Sprawdź konfigurację tokenu API. + no_api_token: Token API Mercury nie jest skonfigurowany. Skonfiguruj go w Ustawieniach. + no_credentials_configured: Skonfiguruj token API Mercury najpierw w Ustawieniach dostawcy. + no_name_placeholder: "(Brak nazwy)" + title: Połącz %{account_name} z Mercury + link_existing_account: + account_already_linked: To konto jest już połączone z dostawcą + api_error: 'Błąd API: %{message}' + invalid_account_name: Nie można połączyć konta bez nazwy + mercury_account_already_linked: To konto Mercury jest już połączone z innym kontem + mercury_account_not_found: Nie znaleziono konta Mercury + missing_parameters: Brak wymaganych parametrów + no_api_token: Nie znaleziono tokenu API Mercury. Skonfiguruj go w Ustawieniach dostawcy. + success: Pomyślnie połączono %{account_name} z Mercury + setup_accounts: + account_type_label: 'Typ konta:' + all_accounts_linked: Wszystkie Twoje konta Mercury są już skonfigurowane. + api_error: 'Błąd API: %{message}' + fetch_failed: Nie udało się pobrać kont + no_accounts_to_setup: Brak kont do konfiguracji + no_api_token: Token API Mercury nie jest skonfigurowany. Sprawdź ustawienia połączenia. + account_types: + skip: Pomiń to konto + depository: Konto bieżące lub oszczędnościowe + credit_card: Karta kredytowa + investment: Konto inwestycyjne + loan: Pożyczka lub kredyt hipoteczny + other_asset: Inne aktywa + subtype_labels: + depository: 'Podtyp konta:' + credit_card: 'Podtyp karty kredytowej:' + investment: 'Typ inwestycji:' + loan: 'Typ pożyczki:' + other_asset: 'Podtyp aktywa:' + subtype_messages: + credit_card: Karty kredytowe zostaną automatycznie skonfigurowane jako konta kart kredytowych. + other_asset: Dla innych aktywów nie są potrzebne dodatkowe opcje. + subtypes: + depository: + checking: Konto bieżące + savings: Oszczędnościowe + hsa: Konto oszczędnościowe na cele zdrowotne + cd: Lokata terminowa + money_market: Rynek pieniężny + investment: + brokerage: Maklerskie + pension: Emerytura + retirement: Emerytalne + 401k: 401(k) + roth_401k: Roth 401(k) + 403b: 403(b) + tsp: Plan oszczędnościowy Thrift + 529_plan: 529 Plan + hsa: Konto oszczędnościowe na cele zdrowotne + mutual_fund: Fundusz inwestycyjny + ira: Tradycyjne IRA + roth_ira: Roth IRA + angel: Anielska + loan: + mortgage: Kredyt hipoteczny + student: Pożyczka studencka + auto: Pożyczka na samochód + other: Inna pożyczka + balance: Saldo + cancel: Anuluj + choose_account_type: 'Wybierz poprawny typ dla każdego konta Mercury:' + create_accounts: Utwórz konta + creating_accounts: Tworzenie kont... + historical_data_range: 'Zakres danych historycznych:' + subtitle: Wybierz poprawne typy dla importowanych kont + sync_start_date_help: Wybierz, jak daleko wstecz chcesz synchronizować historię transakcji. Dostępne są maksymalnie 3 lata historii. + sync_start_date_label: 'Synchronizuj transakcje od:' + title: Skonfiguruj swoje konta Mercury + complete_account_setup: + all_skipped: Wszystkie konta zostały pominięte. Nie utworzono żadnych kont. + creation_failed: 'Nie udało się utworzyć kont: %{error}' + no_accounts: Brak kont do skonfigurowania. + success: + one: Pomyślnie utworzono %{count} konto. + few: Pomyślnie utworzono %{count} konta. + many: Pomyślnie utworzono %{count} kont. + other: Pomyślnie utworzono %{count} konta. + sync: + success: Rozpoczęto synchronizację + update: + success: Połączenie Mercury zostało zaktualizowane diff --git a/config/locales/views/mfa/pl.yml b/config/locales/views/mfa/pl.yml new file mode 100644 index 000000000..4e2b6f868 --- /dev/null +++ b/config/locales/views/mfa/pl.yml @@ -0,0 +1,34 @@ +--- +pl: + mfa: + backup_codes: + backup_codes_description: Każdy kod można użyć tylko raz. Przechowuj je bezpiecznie. + backup_codes_title: Twoje kody zapasowe + continue: Przejdź do ustawień bezpieczeństwa + description: Przechowuj te kody zapasowe w bezpiecznym miejscu — będą potrzebne, jeśli utracisz dostęp do aplikacji uwierzytelniającej + page_title: Kody zapasowe + title: Zapisz swoje kody zapasowe + create: + invalid_code: Nieprawidłowy kod weryfikacyjny. Spróbuj ponownie. + disable: + success: Uwierzytelnianie dwuskładnikowe zostało wyłączone + new: + code_label: Kod weryfikacyjny + code_placeholder: Wpisz 6-cyfrowy kod + description: Zwiększ bezpieczeństwo konta, konfigurując uwierzytelnianie dwuskładnikowe + page_title: Konfiguracja uwierzytelniania dwuskładnikowego + scan_description: Użyj aplikacji uwierzytelniającej, np. Google Authenticator lub 1Password, aby zeskanować ten kod QR + scan_title: 1. Zeskanuj kod QR + secret_description: Jeśli nie możesz zeskanować kodu QR, wpisz ręcznie ten klucz tajny w aplikacji uwierzytelniającej + secret_title: Kod do ręcznego wpisania + title: Skonfiguruj uwierzytelnianie dwuskładnikowe + verify_button: Zweryfikuj i włącz 2FA + verify_description: Wpisz 6-cyfrowy kod z aplikacji uwierzytelniającej + verify_title: 2. Wprowadź kod weryfikacyjny + verify: + description: Wpisz kod z aplikacji uwierzytelniającej, aby kontynuować + page_title: Zweryfikuj uwierzytelnianie dwuskładnikowe + title: Uwierzytelnianie dwuskładnikowe + verify_button: Zweryfikuj + verify_code: + invalid_code: Nieprawidłowy kod uwierzytelniający. Spróbuj ponownie. diff --git a/config/locales/views/oidc_accounts/pl.yml b/config/locales/views/oidc_accounts/pl.yml new file mode 100644 index 000000000..8b24b8217 --- /dev/null +++ b/config/locales/views/oidc_accounts/pl.yml @@ -0,0 +1,34 @@ +--- +pl: + oidc_accounts: + link: + title_link: Połącz konto OIDC + title_create: Utwórz konto + verify_heading: Zweryfikuj swoją tożsamość + verify_description_html: "Aby połączyć konto %{provider}%{email_suffix}, zweryfikuj tożsamość, wpisując hasło." + email_suffix_html: " (adres: %{email})" + email_label: E-mail + email_placeholder: Wpisz e-mail + password_label: Hasło + password_placeholder: Wpisz hasło + verify_hint: To pomaga upewnić się, że tylko Ty możesz łączyć zewnętrzne konta ze swoim profilem. + submit_link: Połącz konto + create_heading: Utwórz nowe konto + create_description_html: "Nie znaleziono konta dla adresu %{email}. Kliknij poniżej, aby utworzyć nowe konto używając tożsamości %{provider}." + info_email: "E-mail:" + info_name: "Imię i nazwisko:" + submit_create: Utwórz konto + submit_accept_invitation: Zaakceptuj zaproszenie + account_creation_disabled: Tworzenie nowych kont przez logowanie jednokrotne jest wyłączone. Skontaktuj się z administratorem, aby utworzyć konto. + cancel: Anuluj + new_user: + title: Dokończ tworzenie konta + heading: Utwórz swoje konto + description: Potwierdź swoje dane, aby dokończyć tworzenie konta przy użyciu tożsamości %{provider}. + email_label: E-mail (od dostawcy SSO) + first_name_label: Imię + first_name_placeholder: Wpisz imię + last_name_label: Nazwisko + last_name_placeholder: Wpisz nazwisko + submit: Utwórz konto + cancel: Anuluj diff --git a/config/locales/views/onboardings/pl.yml b/config/locales/views/onboardings/pl.yml new file mode 100644 index 000000000..f62cf790c --- /dev/null +++ b/config/locales/views/onboardings/pl.yml @@ -0,0 +1,66 @@ +--- +pl: + onboardings: + header: + sign_out: Wyloguj się + setup: Konfiguracja + preferences: Preferencje + goals: Cele + start: Początek + logout: + sign_out: Wyloguj się + show: + title: Skonfigurujmy Twoje konto + subtitle: Na początek skonfigurujmy Twój profil. + first_name: Imię + first_name_placeholder: Imię + last_name: Nazwisko + last_name_placeholder: Nazwisko + group_name: Nazwa grupy + group_name_placeholder: Nazwa grupy + household_name: Nazwa gospodarstwa domowego + household_name_placeholder: Nazwa gospodarstwa domowego + moniker_prompt: Będę używać %{product_name} z ... + moniker_family: Członkami rodziny (tylko sobą lub z partnerem, nastolatkami itd.) + moniker_group: Grupą osób (firma, klub, stowarzyszenie lub inny typ) + country: Kraj + submit: Dalej + preferences: + title: Skonfiguruj swoje preferencje + subtitle: Skonfigurujmy Twoje preferencje. + example: Przykładowe konto + preview: Podgląd sposobu wyświetlania danych na podstawie preferencji. + color_theme: Motyw kolorystyczny + theme_system: Systemowy + theme_light: Jasny + theme_dark: Ciemny + locale: Język + currency: Waluta + date_format: Format daty + submit: Zakończ + goals: + title: Co Cię tutaj sprowadza? + subtitle: Wybierz jeden lub więcej celów, które chcesz osiągnąć, używając %{product_name} do zarządzania finansami osobistymi. + unified_accounts: Widzieć wszystkie moje konta w jednym miejscu + cashflow: Lepiej rozumieć przepływy pieniężne i wydatki + budgeting: Zarządzać planami finansowymi i budżetem + partner: Zarządzać finansami z partnerem + investments: Śledzić inwestycje + ai_insights: Korzystać z AI do lepszego zrozumienia moich finansów + optimization: Analizować i optymalizować konta + reduce_stress: Zmniejszyć stres lub niepokój związany z finansami + submit: Dalej + trial: + title: Wypróbuj Sure przez 45 dni + data_deletion: Dane zostaną wtedy usunięte + description_html: Od dziś możesz dokładnie przetestować produkt.
Jeśli Ci się spodoba, uruchom go samodzielnie lub wesprzyj projekt, aby dalej korzystać tutaj. + try_button: Wypróbuj Sure przez 45 dni + continue_trial: Kontynuuj okres próbny + upgrade: Ulepsz + how_it_works: Jak to tutaj działa + today: Dziś + today_description: Otrzymasz bezpłatny dostęp do Sure na 45 dni na naszym AWS. + in_40_days: Za 40 dni (%{date}) + in_40_days_description: Wyślemy Ci przypomnienie o eksporcie danych. + in_45_days: Za 45 dni (%{date}) + in_45_days_description: Usuwamy dane — wesprzyj projekt, aby dalej korzystać z Sure tutaj! diff --git a/config/locales/views/other_assets/pl.yml b/config/locales/views/other_assets/pl.yml new file mode 100644 index 000000000..3e27ea98e --- /dev/null +++ b/config/locales/views/other_assets/pl.yml @@ -0,0 +1,9 @@ +--- +pl: + other_assets: + edit: + edit: Edytuj %{account} + balance_tracking_info: Inne aktywa są śledzone poprzez ręczne wyceny za pomocą opcji „Nowe saldo”, a nie transakcje. Przepływy pieniężne nie wpływają na saldo konta. + new: + title: Wprowadź dane aktywa + balance_tracking_info: Inne aktywa są śledzone poprzez ręczne wyceny za pomocą opcji „Nowe saldo”, a nie transakcje. Przepływy pieniężne nie wpływają na saldo konta. diff --git a/config/locales/views/other_liabilities/pl.yml b/config/locales/views/other_liabilities/pl.yml new file mode 100644 index 000000000..b6ef16a55 --- /dev/null +++ b/config/locales/views/other_liabilities/pl.yml @@ -0,0 +1,7 @@ +--- +pl: + other_liabilities: + edit: + edit: Edytuj %{account} + new: + title: Wprowadź dane zobowiązania diff --git a/config/locales/views/pages/pl.yml b/config/locales/views/pages/pl.yml new file mode 100644 index 000000000..bdf2c9713 --- /dev/null +++ b/config/locales/views/pages/pl.yml @@ -0,0 +1,79 @@ +--- +pl: + pages: + changelog: + title: Co nowego + privacy: + title: Polityka prywatności + heading: Polityka prywatności + placeholder: Treść polityki prywatności będzie wyświetlana tutaj. + terms: + title: Warunki korzystania z usługi + heading: Warunki korzystania z usługi + placeholder: Treść warunków korzystania z usługi będzie wyświetlana tutaj. + dashboard: + welcome: Witaj ponownie, %{name} + subtitle: Zobacz, co dzieje się z Twoimi finansami + new: Nowe + bond_rate_review_notice: + one: "1 partia obligacji wymaga aktualizacji stopy emisji (%{accounts})." + few: "%{count} partie obligacji wymagają aktualizacji stopy emisji (%{accounts})." + many: "%{count} partii obligacji wymaga aktualizacji stopy emisji (%{accounts})." + other: "%{count} partii obligacji wymaga aktualizacji stopy emisji (%{accounts})." + drag_to_reorder: Przeciągnij, aby zmienić kolejność sekcji + toggle_section: Przełącz widoczność sekcji + net_worth_chart: + data_not_available: Dane niedostępne dla wybranego okresu + title: Majątek netto + no_account_empty_state: + new_account: Nowe konto + no_account_subtitle: Ponieważ nie dodano jeszcze żadnych kont, nie ma danych do wyświetlenia. Dodaj pierwsze konto, aby zacząć przeglądać dane pulpitu. + no_account_title: Brak kont + balance_sheet: + title: Bilans + no_items: Brak %{name} + add_accounts: Dodaj konta %{name}, aby zobaczyć pełny podział + cashflow_sankey: + title: Przepływy pieniężne + no_data_title: Brak danych o przepływach pieniężnych dla tego okresu + no_data_description: Dodaj transakcje, aby wyświetlić dane o przepływach pieniężnych, albo poszerz zakres czasu + add_transaction: Dodaj transakcję + no_accounts: + title: Brak kont + description: Dodaj konta, aby wyświetlić dane o majątku netto + add_account: Dodaj konto + outflows_donut: + title: Wydatki + total_outflows: Łączne wydatki + categories: Kategorie + value: Wartość + weight: Udział + investment_summary: + title: Inwestycje + total_return: Łączny zwrot + holding: Pozycja + weight: Udział + value: Wartość + return: Zwrot + period_activity: Aktywność za %{period} + contributions: Wpłaty + withdrawals: Wypłaty + trades: Transakcje giełdowe + no_investments: Brak kont inwestycyjnych + add_investment: Dodaj konto inwestycyjne, aby śledzić swój portfel + bond_summary: + title: Obligacje + total_return: Łączny zwrot + bond: Obligacja + rate: Oprocentowanie + principal: Kapitał + maturity: Zapadalność + maturity_label: Data zapadalności + principal_term: Kapitał, %{term} + term_months: + one: 1 miesiąc + few: "%{count} miesiące" + many: "%{count} miesięcy" + other: "%{count} miesiąca" + no_bonds: Brak kont obligacji + account_wrapper: "%{account} • %{wrapper}" diff --git a/config/locales/views/password_mailer/pl.yml b/config/locales/views/password_mailer/pl.yml new file mode 100644 index 000000000..f9144cf1f --- /dev/null +++ b/config/locales/views/password_mailer/pl.yml @@ -0,0 +1,8 @@ +--- +pl: + password_mailer: + password_reset: + cta: Zresetuj hasło + ignore_if_not_requested: Jeśli to nie Ty wysłałeś(aś) to żądanie, zignoruj tę wiadomość. + request_made: Otrzymaliśmy prośbę o reset hasła do %{product_name}. Kliknij link, aby je zresetować. + subject: "%{product_name}: zresetuj hasło" diff --git a/config/locales/views/password_resets/pl.yml b/config/locales/views/password_resets/pl.yml new file mode 100644 index 000000000..6ee9f6368 --- /dev/null +++ b/config/locales/views/password_resets/pl.yml @@ -0,0 +1,15 @@ +--- +pl: + password_resets: + disabled: Resetowanie hasła przez Sure jest wyłączone. Zresetuj hasło przez swojego dostawcę tożsamości. + sso_only_user: Twoje konto używa SSO do uwierzytelniania. Skontaktuj się z administratorem, aby zarządzać danymi logowania. + edit: + title: Zresetuj hasło + new: + requested: Sprawdź swoją skrzynkę e-mail, aby zresetować hasło. + submit: Zresetuj hasło + title: Zresetuj hasło + back: Wróć + update: + invalid_token: Nieprawidłowy token. + success: Twoje hasło zostało zresetowane. diff --git a/config/locales/views/passwords/pl.yml b/config/locales/views/passwords/pl.yml new file mode 100644 index 000000000..19c1cef79 --- /dev/null +++ b/config/locales/views/passwords/pl.yml @@ -0,0 +1,10 @@ +--- +pl: + passwords: + edit: + password: Nowe hasło + password_challenge: Obecne hasło + submit: Zresetuj hasło + title: Zaktualizuj hasło + update: + success: Twoje hasło zostało zresetowane. diff --git a/config/locales/views/pdf_import_mailer/pl.yml b/config/locales/views/pdf_import_mailer/pl.yml new file mode 100644 index 000000000..7881fcf32 --- /dev/null +++ b/config/locales/views/pdf_import_mailer/pl.yml @@ -0,0 +1,17 @@ +--- +pl: + pdf_import_mailer: + next_steps: + greeting: "Cześć %{name}," + intro: "Zakończyliśmy analizę dokumentu PDF przesłanego do %{product}." + document_type_label: Typ dokumentu + summary_label: Podsumowanie AI + transactions_note: Ten dokument wygląda na zawierający transakcje. Możesz je teraz wyodrębnić i przejrzeć. + document_stored_note: Ten dokument został zapisany do Twojego wglądu. Może służyć jako kontekst w przyszłych rozmowach z AI. + next_steps_label: Co dalej? + next_steps_intro: "Masz kilka opcji:" + option_extract_transactions: Wyodrębnij transakcje z tego wyciągu + option_keep_reference: Zachowaj dokument jako materiał referencyjny do przyszłych rozmów z AI + option_delete: Usuń ten import, jeśli nie jest już potrzebny + view_import_button: Zobacz szczegóły importu + footer_note: To wiadomość automatyczna. Prosimy nie odpowiadać bezpośrednio na ten e-mail. diff --git a/config/locales/views/pending_duplicate_merges/pl.yml b/config/locales/views/pending_duplicate_merges/pl.yml new file mode 100644 index 000000000..17051288b --- /dev/null +++ b/config/locales/views/pending_duplicate_merges/pl.yml @@ -0,0 +1,14 @@ +--- +pl: + pending_duplicate_merges: + new: + title: Połącz z zaksięgowaną transakcją + warning_title: Ręczne łączenie duplikatów + warning_description: Użyj tej opcji, aby ręcznie połączyć transakcję oczekującą z jej zaksięgowaną wersją. Transakcja oczekująca zostanie usunięta, a pozostanie tylko zaksięgowana. + pending_transaction: Transakcja oczekująca + select_posted: Wybierz zaksięgowaną transakcję do połączenia + showing_range: "Wyświetlane %{start} - %{end}" + previous: "← Poprzednie 10" + next: "Następne 10 →" + no_candidates: Nie znaleziono zaksięgowanych transakcji na tym koncie. + submit_button: Połącz transakcje diff --git a/config/locales/views/plaid_items/pl.yml b/config/locales/views/plaid_items/pl.yml new file mode 100644 index 000000000..d72409f10 --- /dev/null +++ b/config/locales/views/plaid_items/pl.yml @@ -0,0 +1,28 @@ +--- +pl: + plaid_items: + create: + success: Konto zostało pomyślnie połączone. Poczekaj na synchronizację kont. + destroy: + success: Konta zostały zaplanowane do usunięcia. + plaid_item: + add_new: Dodaj nowe połączenie + confirm_accept: Usuń instytucję + confirm_body: To trwale usunie wszystkie konta w tej grupie oraz wszystkie powiązane dane. + confirm_title: Usunąć instytucję? + connection_lost: Utracono połączenie + connection_lost_description: To połączenie nie jest już prawidłowe. Aby kontynuować synchronizację danych, usuń je i dodaj ponownie. + delete: Usuń + error: Wystąpił błąd podczas synchronizacji danych + no_accounts_description: Nie udało się wczytać żadnych kont z tej instytucji finansowej. + no_accounts_title: Nie znaleziono kont + requires_update: Połącz ponownie + status: Ostatnia synchronizacja %{timestamp} temu + status_never: Wymaga synchronizacji danych + syncing: Synchronizacja... + update: Aktualizuj + select_existing_account: + title: Połącz %{account_name} z Plaid + description: Wybierz konto Plaid, aby połączyć je z istniejącym kontem + cancel: Anuluj + link_account: Połącz konto diff --git a/config/locales/views/properties/pl.yml b/config/locales/views/properties/pl.yml new file mode 100644 index 000000000..efa8e4528 --- /dev/null +++ b/config/locales/views/properties/pl.yml @@ -0,0 +1,32 @@ +--- +pl: + properties: + edit: + edit: Edytuj %{account} + form: + address_line1: Adres + address_line1_placeholder: 123 Main St + area: Powierzchnia użytkowa + area_placeholder: '2000' + area_unit: Jednostka miary + country: Kraj + country_placeholder: US + locality: Miasto + locality_placeholder: San Francisco + none: Brak + postal_code: Kod pocztowy + postal_code_placeholder: '94105' + region: Województwo/Region + region_placeholder: CA + subtype_prompt: Wybierz typ nieruchomości + year_built: Rok budowy + year_built_placeholder: '2000' + new: + title: Wprowadź dane nieruchomości + overview: + living_area: Powierzchnia użytkowa + market_value: Wartość rynkowa + purchase_price: Cena zakupu + trend: Trend + unknown: Nieznane + year_built: Rok budowy diff --git a/config/locales/views/recurring_transactions/pl.yml b/config/locales/views/recurring_transactions/pl.yml new file mode 100644 index 000000000..3825ffc41 --- /dev/null +++ b/config/locales/views/recurring_transactions/pl.yml @@ -0,0 +1,54 @@ +--- +pl: + recurring_transactions: + title: Transakcje cykliczne + upcoming: Nadchodzące transakcje cykliczne + projected: Prognozowane + recurring: Cykliczne + expected_today: Oczekiwane dziś + expected_in: + one: Oczekiwane za %{count} dzień + few: Oczekiwane za %{count} dni + many: Oczekiwane za %{count} dni + other: Oczekiwane za %{count} dni + day_of_month: Dzień %{day} miesiąca + identify_patterns: Wykryj wzorce + cleanup_stale: Wyczyść nieaktualne + settings: + enable_label: Włącz transakcje cykliczne + enable_description: Automatycznie wykrywaj wzorce transakcji cyklicznych i pokazuj nadchodzące prognozowane transakcje. + settings_updated: Ustawienia transakcji cyklicznych zostały zaktualizowane + info: + title: Automatyczne wykrywanie wzorców + manual_description: Możesz ręcznie wykryć wzorce lub wyczyścić nieaktualne transakcje cykliczne przy użyciu przycisków powyżej. + automatic_description: 'Automatyczne wykrywanie uruchamia się także po:' + triggers: + - zakończeniu importu CSV (transakcje, transakcje giełdowe, konta itd.) + - zakończeniu synchronizacji dowolnego dostawcy (Plaid, SimpleFIN itd.) + identified: Wykryto %{count} wzorców transakcji cyklicznych + cleaned_up: Wyczyszczono %{count} nieaktualnych transakcji cyklicznych + marked_inactive: Transakcję cykliczną oznaczono jako nieaktywną + marked_active: Transakcję cykliczną oznaczono jako aktywną + deleted: Transakcja cykliczna została usunięta + confirm_delete: Czy na pewno chcesz usunąć tę transakcję cykliczną? + marked_as_recurring: Transakcja została oznaczona jako cykliczna + already_exists: Dla tego wzorca istnieje już ręcznie utworzona transakcja cykliczna + creation_failed: Nie udało się utworzyć transakcji cyklicznej. Sprawdź szczegóły transakcji i spróbuj ponownie. + unexpected_error: Wystąpił nieoczekiwany błąd podczas tworzenia transakcji cyklicznej + amount_range: 'Zakres: %{min} do %{max}' + empty: + title: Nie znaleziono transakcji cyklicznych + description: Kliknij „Wykryj wzorce”, aby automatycznie wykryć transakcje cykliczne na podstawie historii transakcji. + table: + merchant: Nazwa + amount: Kwota + expected_day: Oczekiwany dzień + next_date: Następna data + last_occurrence: Ostatnie wystąpienie + status: Status + actions: Akcje + status: + active: Aktywna + inactive: Nieaktywna + badges: + manual: Ręczna diff --git a/config/locales/views/registrations/pl.yml b/config/locales/views/registrations/pl.yml new file mode 100644 index 000000000..c8cf9bac6 --- /dev/null +++ b/config/locales/views/registrations/pl.yml @@ -0,0 +1,31 @@ +--- +pl: + helpers: + label: + user: + invite_code: Kod zaproszenia + submit: + user: + create: Kontynuuj + registrations: + closed: Rejestracja jest obecnie zamknięta. + create: + failure: Wystąpił problem podczas rejestracji. + invalid_invite_code: Nieprawidłowy kod zaproszenia, spróbuj ponownie. + success: Rejestracja zakończyła się pomyślnie. + new: + invitation_message: "%{inviter} zaprosił(a) Cię do dołączenia jako %{role}" + join_family_title: Dołącz do %{family} %{moniker} + role_admin: administrator + role_guest: gość + role_member: członek + submit: Utwórz konto + title: Utwórz swoje konto + welcome_body: Aby rozpocząć, musisz zarejestrować nowe konto. Następnie będzie można skonfigurować dodatkowe ustawienia w aplikacji. + welcome_title: Witamy w Self Hosted %{product_name}! + password_placeholder: Wpisz hasło + password_requirements: + length: Minimum 8 znaków + case: Wielkie i małe litery + number: Liczba (0-9) + special: "Znak specjalny (!, @, #, $, %, itp.)" diff --git a/config/locales/views/reports/pl.yml b/config/locales/views/reports/pl.yml new file mode 100644 index 000000000..3158c8c17 --- /dev/null +++ b/config/locales/views/reports/pl.yml @@ -0,0 +1,236 @@ +--- +pl: + reports: + index: + title: Raporty + subtitle: Kompleksowy wgląd w kondycję Twoich finansów + export: Eksportuj CSV + print_report: Drukuj raport + drag_to_reorder: Przeciągnij, aby zmienić kolejność sekcji + toggle_section: Przełącz widoczność sekcji + periods: + monthly: Miesięcznie + quarterly: Kwartalnie + ytd: Od początku roku + last_6_months: Ostatnie 6 miesięcy + custom: Własny zakres + date_range: + from: Od + to: Do + showing_period: Wyświetlanie danych od %{start} do %{end} + invalid_date_range: Data końcowa nie może być wcześniejsza niż data początkowa. Daty zostały zamienione. + summary: + total_income: Łączne przychody + total_expenses: Łączne wydatki + net_savings: Saldo oszczędności + budget_performance: Realizacja budżetu + vs_previous: względem poprzedniego okresu + income_minus_expenses: Przychody minus wydatki + of_budget_used: wykorzystanego budżetu + no_budget_data: Brak danych budżetowych dla tego okresu + budget_performance: + title: Realizacja budżetu + spent: Wydano + budgeted: Zaplanowano + remaining: Pozostało + over_by: Przekroczono o + shared: współdzielony + suggested_daily: "Sugerowane %{amount} dziennie przez pozostałe %{days} dni" + no_budgets: Nie skonfigurowano kategorii budżetowych na ten miesiąc + status: + good: Zgodnie z planem + warning: Blisko limitu + over: Przekroczono budżet + trends: + title: Trendy i wnioski + monthly_breakdown: Podział miesięczny + month: Miesiąc + income: Przychody + expenses: Wydatki + net: Saldo + savings_rate: Stopa oszczędzania + current: bieżący + avg_monthly_income: Śr. miesięczny przychód + avg_monthly_expenses: Śr. miesięczne wydatki + avg_monthly_savings: Śr. miesięczne oszczędności + no_data: Brak danych trendu + spending_patterns: Wzorce wydatków + weekday_spending: Wydatki w dni robocze + weekend_spending: Wydatki w weekendy + total: Łącznie + avg_per_transaction: Śr. na transakcję + transactions: Transakcje + insight_title: Wniosek + insight_higher_weekend: W weekendy wydajesz o %{percent}% więcej na transakcję niż w dni robocze + insight_higher_weekday: W dni robocze wydajesz o %{percent}% więcej na transakcję niż w weekendy + insight_similar: Twoje wydatki na transakcję są podobne w dni robocze i weekendy + no_spending_data: Brak danych o wydatkach dla tego okresu + empty_state: + title: Brak danych + description: Zacznij śledzić swoje finanse, dodając transakcje lub łącząc konta, aby zobaczyć pełne raporty + add_transaction: Dodaj transakcję + add_account: Dodaj konto + transactions_breakdown: + title: Podział aktywności + no_transactions: Brak aktywności dla wybranego okresu i filtrów + filters: + title: Filtry + category: Kategoria + account: Konto + tag: Tag + amount_min: Min. kwota + amount_max: Maks. kwota + date_range: Zakres dat + all_categories: Wszystkie kategorie + all_accounts: Wszystkie konta + all_tags: Wszystkie tagi + apply: Zastosuj filtry + clear: Wyczyść filtry + sort: + label: Sortuj według + date_desc: Data (od najnowszych) + amount_desc: Kwota (malejąco) + amount_asc: Kwota (rosnąco) + export: + label: Eksport + csv: CSV + excel: Excel + pdf: PDF + google_sheets: Otwórz w Google Sheets + table: + category: Kategoria + amount: Kwota + type: Typ + expense: Wydatki + income: Przychody + uncategorized: Bez kategorii + entries: + one: "%{count} wpis" + few: "%{count} wpisy" + many: "%{count} wpisów" + other: "%{count} wpisu" + percentage: "% całości" + pagination: + showing: + one: Wyświetlono %{count} wpis + few: Wyświetlono %{count} wpisy + many: Wyświetlono %{count} wpisów + other: Wyświetlono %{count} wpisu + previous: Poprzednia + next: Następna + net_worth: + title: Majątek netto + current_net_worth: Bieżący majątek netto + period_change: Zmiana w okresie + assets_vs_liabilities: Aktywa vs zobowiązania + total_assets: Aktywa + total_liabilities: Zobowiązania + no_assets: Brak aktywów + no_liabilities: Brak zobowiązań + investment_performance: + title: Wyniki inwestycji + portfolio_value: Wartość portfela + total_return: Łączny zwrot + contributions: Wpłaty w okresie + withdrawals: Wypłaty w okresie + top_holdings: Największe pozycje + holding: Pozycja + weight: Udział + value: Wartość + return: Zwrot + accounts: Konta inwestycyjne + gains_by_tax_treatment: Zyski według rodzaju opodatkowania + unrealized_gains: Niezrealizowane zyski + realized_gains: Zrealizowane zyski + total_gains: Łączne zyski + taxable_realized_note: Te zyski mogą podlegać opodatkowaniu + no_data: "-" + view_details: Zobacz szczegóły + holdings_count: + one: "%{count} pozycja" + few: "%{count} pozycje" + many: "%{count} pozycji" + other: "%{count} pozycji" + sells_count: + one: "%{count} sprzedaż" + few: "%{count} sprzedaże" + many: "%{count} sprzedaży" + other: "%{count} sprzedaży" + holdings: Pozycje + sell_trades: Transakcje sprzedaży + and_more: "+%{count} więcej" + investment_flows: + title: Przepływy inwestycyjne + description: Śledź środki wpływające i wypływające z kont inwestycyjnych + contributions: Wpłaty + withdrawals: Wypłaty + net_flow: Przepływ netto + google_sheets_instructions: + title_with_key: Skopiuj URL do Google Sheets + title_no_key: Wymagany klucz API + ready: Twój URL CSV (z kluczem API) jest gotowy. + steps: |- + Aby zaimportować do Google Sheets: + 1. Utwórz nowy arkusz Google + 2. W komórce A1 wpisz formułę pokazaną poniżej + 3. Naciśnij Enter + security_warning: Ten URL zawiera Twój klucz API. Przechowuj go bezpiecznie. + need_key: Aby importować dane do Google Sheets, potrzebujesz klucza API. + step1: Przejdź do Ustawienia → Klucze API + step2: Utwórz nowy klucz API z uprawnieniem "read" + step3: Skopiuj klucz API + step4: 'Dodaj go do tego URL-a tak: ?api_key=YOUR_KEY' + example: Przykład + then_use: Następnie użyj pełnego URL-a z =IMPORTDATA() w Google Sheets. + open_sheets: Otwórz Google Sheets + go_to_api_keys: Przejdź do kluczy API + close: Rozumiem + print: + document_title: Raport finansowy + title: Raport finansowy + generated_on: Wygenerowano %{date} + summary: + title: Podsumowanie + income: Przychody + expenses: Wydatki + net_savings: Saldo oszczędności + budget: Budżet + vs_prior: "%{percent}% względem poprzedniego" + of_income: "%{percent}% przychodu" + used: wykorzystano + net_worth: + title: Majątek netto + current_balance: Bieżące saldo + this_period: w tym okresie + assets: Aktywa + liabilities: Zobowiązania + no_liabilities: Brak zobowiązań + trends: + title: Trendy miesięczne + month: Miesiąc + income: Przychody + expenses: Wydatki + net: Saldo + savings_rate: Stopa oszczędzania + average: Średnia + current_month_note: "* Bieżący miesiąc (dane częściowe)" + investments: + title: Inwestycje + portfolio_value: Wartość portfela + total_return: Łączny zwrot + contributions: Wpłaty + withdrawals: Wypłaty + this_period: w tym okresie + top_holdings: Największe pozycje + holding: Pozycja + weight: Udział + value: Wartość + return: Zwrot + spending: + title: Wydatki według kategorii + income: Przychody + expenses: Wydatki + category: Kategoria + amount: Kwota + percent: "%" + more_categories: "+ %{count} więcej kategorii" diff --git a/config/locales/views/rules/pl.yml b/config/locales/views/rules/pl.yml new file mode 100644 index 000000000..a891c5627 --- /dev/null +++ b/config/locales/views/rules/pl.yml @@ -0,0 +1,52 @@ +--- +pl: + rules: + no_action: Brak akcji + no_condition: Brak warunku + actions: + value_placeholder: Wprowadź wartość + apply_all: + button: Zastosuj wszystkie + confirm_title: Zastosować wszystkie reguły + confirm_message: Za chwilę zastosujesz %{count} reguł wpływających na %{transactions} unikalnych transakcji. Potwierdź, jeśli chcesz kontynuować. + confirm_button: Potwierdź i zastosuj wszystkie + success: Wszystkie reguły zostały dodane do kolejki wykonania + ai_cost_title: Szacowanie kosztu AI + ai_cost_message: To użyje AI do kategoryzacji maksymalnie %{transactions} transakcji. + estimated_cost: 'Szacowany koszt: ~$%{cost}' + cost_unavailable_model: Szacowanie kosztu niedostępne dla modelu "%{model}". + cost_unavailable_no_provider: Szacowanie kosztu niedostępne (brak skonfigurowanego dostawcy LLM). + cost_warning: Mogą zostać naliczone koszty, sprawdź u dostawcy modelu aktualny cennik. + view_usage: Zobacz historię użycia + recent_runs: + title: Ostatnie uruchomienia + description: Zobacz historię wykonania reguł, w tym status powodzenia/niepowodzenia oraz liczbę transakcji. + unnamed_rule: Reguła bez nazwy + columns: + date_time: Data/godzina + execution_type: Typ + status: Status + rule_name: Nazwa reguły + transactions_counts: + queued: W kolejce + processed: Przetworzone + modified: Zmodyfikowane + execution_types: + manual: Ręczne + scheduled: Zaplanowane + statuses: + pending: Oczekujące + success: Pomyślnie + failed: Błąd + clear_ai_cache: + button: Zresetuj cache AI + confirm_title: Zresetować cache AI? + confirm_body: Czy na pewno chcesz zresetować cache AI? Umożliwi to regułom AI ponowne przetworzenie wszystkich transakcji. Może to wygenerować dodatkowe koszty API. + confirm_button: Zresetuj cache + success: Trwa czyszczenie cache AI. To może potrwać chwilę. + condition_filters: + transaction_type: + income: Przychód + expense: Wydatek + transfer: Przelew + equal_to: Równe diff --git a/config/locales/views/securities/pl.yml b/config/locales/views/securities/pl.yml new file mode 100644 index 000000000..5a3d8655d --- /dev/null +++ b/config/locales/views/securities/pl.yml @@ -0,0 +1,6 @@ +--- +pl: + securities: + combobox: + display: "%{symbol} - %{name} (%{exchange})" + exchange_label: "%{symbol} (%{exchange})" diff --git a/config/locales/views/sessions/pl.yml b/config/locales/views/sessions/pl.yml new file mode 100644 index 000000000..7fac5305f --- /dev/null +++ b/config/locales/views/sessions/pl.yml @@ -0,0 +1,33 @@ +--- +pl: + sessions: + create: + invalid_credentials: Nieprawidłowy adres e-mail lub hasło. + local_login_disabled: Logowanie lokalnym hasłem jest wyłączone. Użyj logowania jednokrotnego (SSO). + destroy: + logout_successful: Zostałeś(aś) pomyślnie wylogowany(a). + post_logout: + logout_successful: Zostałeś(aś) pomyślnie wylogowany(a). + openid_connect: + account_linked: "Konto zostało pomyślnie połączone z %{provider}" + failed: Nie udało się uwierzytelnić przez OpenID Connect. + failure: + failed: Nie udało się uwierzytelnić. + sso_provider_unavailable: "Dostawca SSO jest obecnie niedostępny. Spróbuj ponownie później lub skontaktuj się z administratorem." + sso_invalid_response: "Otrzymano nieprawidłową odpowiedź od dostawcy SSO. Spróbuj ponownie." + sso_failed: "Uwierzytelnianie SSO nie powiodło się. Spróbuj ponownie." + new: + email: Adres e-mail + email_placeholder: ty@example.com + forgot_password: Nie pamiętasz hasła? + password: Hasło + submit: Zaloguj się + title: Sure + password_placeholder: Wpisz hasło + openid_connect: Zaloguj się przez OpenID Connect + oidc: Zaloguj się przez OpenID Connect + google_auth_connect: Zaloguj się przez Google + local_login_admin_only: Logowanie lokalne jest ograniczone do administratorów. + no_auth_methods_enabled: Obecnie nie włączono żadnej metody uwierzytelniania. Skontaktuj się z administratorem. + demo_banner_title: "Aktywny tryb demo" + demo_banner_message: "To jest środowisko demonstracyjne. Dane logowania zostały wstępnie uzupełnione dla wygody. Nie wprowadzaj prawdziwych ani wrażliwych informacji." diff --git a/config/locales/views/settings/api_keys/pl.yml b/config/locales/views/settings/api_keys/pl.yml new file mode 100644 index 000000000..bef95529c --- /dev/null +++ b/config/locales/views/settings/api_keys/pl.yml @@ -0,0 +1,76 @@ +--- +pl: + settings: + api_keys_controller: + success: Twój klucz API został pomyślnie utworzony + revoked_successfully: Klucz API został pomyślnie unieważniony + revoke_failed: Nie udało się unieważnić klucza API + scope_descriptions: + read_accounts: Podgląd kont + read_transactions: Podgląd transakcji + read_balances: Podgląd sald + write_transactions: Tworzenie transakcji + api_keys: + show: + title: Zarządzanie kluczami API + no_api_key: + title: Klucz API + heading: Uzyskaj programowy dostęp do danych konta + description: Uzyskaj programowy dostęp do danych Sure za pomocą bezpiecznego klucza API. + what_you_can_do: 'Co możesz zrobić przez API:' + feature_1: Uzyskiwać programowy dostęp do danych konta + feature_2: Budować własne integracje i aplikacje + feature_3: Automatyzować pobieranie i analizę danych + security_note_title: Bezpieczeństwo przede wszystkim + security_note: Twój klucz API będzie miał ograniczone uprawnienia zależne od wybranych zakresów. Jednocześnie możesz mieć tylko jeden aktywny klucz API. + create_api_key: Utwórz klucz API + current_api_key: + title: Twój klucz API + description: Twój aktywny klucz API jest gotowy do użycia. Przechowuj go bezpiecznie i nigdy nie udostępniaj publicznie. + active: Aktywny + key_name: Nazwa + created_at: Utworzono + last_used: Ostatnie użycie + expires: Wygasa + ago: temu + never_used: Nigdy nie użyto + never_expires: Nigdy nie wygasa + permissions: Uprawnienia + usage_instructions_title: Jak używać klucza API + usage_instructions: 'Dołącz klucz API w nagłówku X-Api-Key podczas wysyłania żądań do API Maybe:' + regenerate_key: Utwórz nowy klucz + revoke_key: Unieważnij klucz + revoke_confirmation: Czy na pewno chcesz unieważnić ten klucz API? Tej akcji nie można cofnąć, a wszystkie aplikacje używające tego klucza zostaną natychmiast wyłączone. + new: + title: Utwórz klucz API + create_new_key: Utwórz nowy klucz API + description: Skonfiguruj nowy klucz API, nadając mu opisową nazwę i odpowiednie uprawnienia. + name_label: Nazwa klucza API + name_placeholder: np. Aplikacja produkcyjna, Dashboard analityczny + name_help: Wybierz opisową nazwę, aby łatwo rozpoznać przeznaczenie tego klucza. + permissions_label: Uprawnienia + permissions_help: Wybierz uprawnienia potrzebne dla klucza API. Zawsze możesz utworzyć nowy klucz z innymi uprawnieniami. + scope_details: + read_accounts: Podgląd informacji o kontach, sald i danych na poziomie konta + read_transactions: Podgląd danych transakcyjnych, kategorii i szczegółów transakcji + read_balances: Podgląd historycznych danych salda i trendów wartości kont + write_transactions: Tworzenie i aktualizacja rekordów transakcji (wkrótce) + security_warning_title: Ważna informacja o bezpieczeństwie + security_warning: Klucz API zostanie wyświetlony tylko raz po utworzeniu. Przechowuj go bezpiecznie i nigdy nie udostępniaj publicznie. Jeśli go zgubisz, trzeba będzie utworzyć nowy. + create_key: Utwórz klucz API + cancel: Anuluj + created: + title: Klucz API utworzony + success_title: Klucz API został pomyślnie utworzony + success_description: Twój nowy klucz API jest gotowy do użycia. Skopiuj go teraz, ponieważ później nie będzie już widoczny. + your_api_key: Twój klucz API + key_name: Nazwa + permissions: Uprawnienia + critical_warning_title: "⚠️ Ważne: zapisz klucz API teraz" + critical_warning_1: To jedyny moment, kiedy zobaczysz klucz API w postaci jawnej. + critical_warning_2: Skopiuj go i przechowuj bezpiecznie w menedżerze haseł lub aplikacji. + critical_warning_3: Jeśli zgubisz ten klucz, trzeba będzie utworzyć nowy. + usage_instructions_title: Szybki start + usage_instructions: 'Użyj klucza API, dodając go w nagłówku X-Api-Key:' + copy_key: Skopiuj klucz API + continue: Przejdź do ustawień klucza API diff --git a/config/locales/views/settings/hostings/pl.yml b/config/locales/views/settings/hostings/pl.yml new file mode 100644 index 000000000..95b449e35 --- /dev/null +++ b/config/locales/views/settings/hostings/pl.yml @@ -0,0 +1,155 @@ +--- +pl: + settings: + hostings: + invite_code_settings: + description: Kontroluj, jak nowe osoby rejestrują się w Twojej instancji %{product}. + email_confirmation_description: Gdy opcja jest włączona, użytkownicy muszą potwierdzić adres e-mail przy jego zmianie. + email_confirmation_title: Wymagaj potwierdzenia e-mail + default_family_title: Domyślna rodzina dla nowych użytkowników + default_family_description: Dodaj nowych użytkowników do tej rodziny/grupy tylko wtedy, gdy nie mają zaproszenia. + default_family_none: Brak (utwórz nową rodzinę) + generate_tokens: Wygeneruj nowy kod + generated_tokens: Wygenerowane kody + title: Onboarding + states: + open: Otwarty + closed: Zamknięty + invite_only: Tylko na zaproszenie + show: + general: Ustawienia ogólne + ai_assistant: Asystent AI + financial_data_providers: Dostawcy danych finansowych + sync_settings: Ustawienia synchronizacji + invites: Kody zaproszeń + title: Self-Hosting + danger_zone: Strefa ryzyka + clear_cache: Wyczyść pamięć podręczną danych + clear_cache_warning: Wyczyszczenie pamięci podręcznej danych usunie wszystkie kursy walut, ceny papierów wartościowych, salda kont i inne dane. Nie usunie to kont, transakcji, kategorii ani innych danych należących do użytkownika. + confirm_clear_cache: + title: Wyczyścić pamięć podręczną danych? + body: Czy na pewno chcesz wyczyścić pamięć podręczną danych? Spowoduje to usunięcie wszystkich kursów walut, cen papierów wartościowych, sald kont i innych danych. Tej akcji nie można cofnąć. + provider_selection: + title: Wybór dostawcy + description: Wybierz usługę do pobierania kursów walut i cen papierów wartościowych. Yahoo Finance jest darmowe i nie wymaga klucza API. Twelve Data wymaga darmowego klucza API, ale może oferować szersze pokrycie danych. + exchange_rate_provider_label: Dostawca kursów walut + securities_provider_label: Dostawca papierów wartościowych (cen akcji) + env_configured_message: Wybór dostawcy jest wyłączony, ponieważ ustawiono zmienne środowiskowe (EXCHANGE_RATE_PROVIDER lub SECURITIES_PROVIDER). Aby włączyć wybór tutaj, usuń te zmienne z konfiguracji. + providers: + twelve_data: Twelve Data + yahoo_finance: Yahoo Finance + assistant_settings: + title: Asystent AI + description: Wybierz, jak odpowiada asystent czatu. Wbudowany asystent korzysta bezpośrednio ze skonfigurowanego dostawcy LLM. Zewnętrzny deleguje zapytania do zdalnego agenta AI, który może korzystać z narzędzi finansowych Sure przez MCP. + type_label: Typ asystenta + type_builtin: Wbudowany (bezpośredni LLM) + type_external: Zewnętrzny (zdalny agent) + external_status: Endpoint zewnętrznego asystenta + external_configured: Skonfigurowany + external_not_configured: Nieskonfigurowany. Wprowadź poniżej URL i token albo ustaw zmienne środowiskowe EXTERNAL_ASSISTANT_URL i EXTERNAL_ASSISTANT_TOKEN. + env_notice: Typ asystenta jest zablokowany na '%{type}' przez zmienną środowiskową ASSISTANT_TYPE. + env_configured_external: Pomyślnie skonfigurowano przez zmienne środowiskowe. + url_label: URL endpointu + url_placeholder: https://your-agent-host/v1/chat + url_help: Pełny URL endpointu API Twojego agenta. Otrzymasz go od dostawcy agenta. + token_label: Token API + token_placeholder: Wprowadź token od dostawcy agenta + token_help: Token uwierzytelniający dostarczony przez zewnętrznego agenta. Jest wysyłany jako token Bearer z każdym żądaniem. + agent_id_label: ID agenta (opcjonalne) + agent_id_placeholder: main (domyślnie) + agent_id_help: Kieruje do konkretnego agenta, gdy dostawca hostuje ich wiele. Pozostaw puste, aby użyć domyślnego. + disconnect_title: Połączenie zewnętrzne + disconnect_description: Usuń połączenie z zewnętrznym asystentem i przełącz z powrotem na asystenta wbudowanego. + disconnect_button: Rozłącz + confirm_disconnect: + title: Rozłączyć zewnętrznego asystenta? + body: To usunie zapisany URL, token i ID agenta oraz przełączy na asystenta wbudowanego. Możesz połączyć ponownie później, podając nowe dane. + brand_fetch_settings: + description: Wprowadź Client ID otrzymany od Brand Fetch + label: Client ID + placeholder: Wprowadź tutaj swój Client ID + title: Ustawienia Brand Fetch + high_res_label: Włącz logotypy o wysokiej rozdzielczości + high_res_description: Gdy włączone, logotypy będą pobierane w rozdzielczości 120x120 zamiast 40x40. Zapewnia to ostrzejsze obrazy na ekranach o wysokim DPI. + openai_settings: + description: Wprowadź token dostępu i opcjonalnie skonfiguruj niestandardowego dostawcę zgodnego z OpenAI + env_configured_message: Pomyślnie skonfigurowano przez zmienne środowiskowe. + access_token_label: Token dostępu + access_token_placeholder: Wprowadź tutaj token dostępu + uri_base_label: Bazowy URL API (opcjonalne) + uri_base_placeholder: https://api.openai.com/v1 (domyślnie) + model_label: Model (opcjonalne) + model_placeholder: gpt-4.1 (domyślnie) + json_mode_label: Tryb JSON + json_mode_auto: Auto (zalecane) + json_mode_strict: Ścisły (najlepszy dla modeli rozumujących) + json_mode_none: Brak (najlepszy dla modeli standardowych) + json_mode_json_object: Obiekt JSON + json_mode_help: Tryb ścisły najlepiej działa z modelami rozumującymi (qwen-thinking, deepseek-reasoner). Tryb brak najlepiej działa z modelami standardowymi (llama, mistral, gpt-oss). + title: OpenAI + yahoo_finance_settings: + title: Yahoo Finance + description: Yahoo Finance zapewnia bezpłatny dostęp do cen akcji, kursów walut i danych finansowych bez potrzeby klucza API. + status_active: Yahoo Finance jest aktywne i działa + status_inactive: Połączenie z Yahoo Finance nie powiodło się + connection_failed: Nie można połączyć z Yahoo Finance + troubleshooting: Sprawdź połączenie internetowe i ustawienia zapory. Yahoo Finance może być tymczasowo niedostępne. + twelve_data_settings: + api_calls_used: "%{used} / %{limit} wykorzystanych dziennych wywołań API (%{percentage})" + description: Wprowadź klucz API otrzymany od Twelve Data + env_configured_message: Pomyślnie skonfigurowano przez zmienną środowiskową TWELVE_DATA_API_KEY. + label: Klucz API + placeholder: Wprowadź tutaj klucz API + plan: "plan %{plan}" + plan_upgrade_warning_title: Niektóre tickery wymagają płatnego planu + plan_upgrade_warning_description: Poniższych tickerów w Twoim portfelu nie można synchronizować przy Twoim aktualnym planie Twelve Data. + requires_plan: wymaga planu %{plan} + view_pricing: Zobacz cennik Twelve Data + title: Twelve Data + gus_sdp_settings: + title: GUS SDP (Inflacja) + description: Opcjonalny klucz API do danych inflacyjnych GUS SDP. Pozostaw puste, aby korzystać z bezpłatnego poziomu anonimowego. + env_configured_message: Pomyślnie skonfigurowano przez zmienną środowiskową GUS_SDP_API_KEY. + configured_in_settings_message: Klucz API skonfigurowany w ustawieniach. + configured_via_env: Klucz API jest skonfigurowany przez zmienną środowiskową GUS_SDP_API_KEY. + free_default_message: Brak skonfigurowanego klucza API. Domyślnie używany jest bezpłatny dostęp anonimowy. + clear_api_key: Wyczyść zapisany klucz API + clear_api_key_confirm: Usunąć zapisany klucz API GUS? + label: Klucz API + placeholder: Wprowadź klucz API GUS SDP + import_enabled_label: Włącz automatyczny import CPI GUS + import_enabled_help: Domyślnie wyłączone. Włącz tylko, jeśli chcesz automatycznie importować stawki CPI do obliczeń EOD/ROD. + import_enabled_env_locked: To ustawienie jest zablokowane przez zmienną środowiskową GUS_INFLATION_IMPORT_ENABLED. + start_year: Rok początkowy + end_year: Rok końcowy + import_now: Importuj historię CPI teraz + last_import: Ostatni import + last_range: Ostatni zakres + last_count: Zaimportowane rekordy + last_error: Ostatni błąd + stored_records: Zapisane rekordy + stored_range: Zapisany zakres + never: Nigdy + import_gus_inflation_rates: + import_enqueued: Import CPI został dodany do kolejki. + import_disabled: Import CPI jest wyłączony. Najpierw włącz go w ustawieniach. + invalid_import_range: Nieprawidłowy zakres lat dla importu CPI. + update: + failure: Nieprawidłowa wartość ustawienia + success: Ustawienia zostały zaktualizowane + invalid_onboarding_state: Nieprawidłowy stan onboardingu + invalid_sync_time: Nieprawidłowy format czasu synchronizacji. Użyj formatu HH:MM (np. 02:30). + scheduler_sync_failed: Ustawienia zapisano, ale nie udało się zaktualizować harmonogramu synchronizacji. Spróbuj ponownie lub sprawdź logi serwera. + disconnect_external_assistant: + external_assistant_disconnected: Zewnętrzny asystent został rozłączony + clear_cache: + cache_cleared: Pamięć podręczna danych została wyczyszczona. Zakończenie operacji może zająć chwilę. + not_authorized: Nie masz uprawnień do wykonania tej akcji + sync_settings: + auto_sync_label: Włącz automatyczną synchronizację + auto_sync_description: Gdy włączone, wszystkie konta będą automatycznie synchronizowane codziennie o wskazanej godzinie. + auto_sync_time_label: Czas synchronizacji (HH:MM) + auto_sync_time_description: Określ godzinę dnia, o której ma odbywać się automatyczna synchronizacja. + include_pending_label: Uwzględniaj transakcje oczekujące + include_pending_description: Gdy włączone, transakcje oczekujące (niezaksięgowane) będą importowane i automatycznie uzgadniane po zaksięgowaniu. Wyłącz, jeśli Twój bank dostarcza niewiarygodne dane oczekujące. + env_configured_message: To ustawienie jest wyłączone, ponieważ ustawiono zmienną środowiskową dostawcy (SIMPLEFIN_INCLUDE_PENDING lub PLAID_INCLUDE_PENDING). Usuń ją, aby włączyć to ustawienie. diff --git a/config/locales/views/settings/pl.yml b/config/locales/views/settings/pl.yml new file mode 100644 index 000000000..9962be6a7 --- /dev/null +++ b/config/locales/views/settings/pl.yml @@ -0,0 +1,192 @@ +--- +pl: + views: + settings: + payments: + renewal: Twoje wsparcie będzie kontynuowane %{date}. + cancellation: Twoje wsparcie kończy się %{date}. + settings: + ai_prompts: + show: + page_title: Prompty AI + openai_label: OpenAI + disable_ai: Wyłącz asystenta AI + prompt_instructions: Instrukcje promptów + main_system_prompt: + title: Główny prompt systemowy + subtitle: Podstawowe instrukcje definiujące, jak asystent AI zachowuje się we wszystkich rozmowach + transaction_categorizer: + title: Kategoryzator transakcji + subtitle: AI automatycznie kategoryzuje Twoje transakcje na podstawie zdefiniowanych kategorii + merchant_detector: + title: Wykrywanie sprzedawcy + subtitle: AI identyfikuje i wzbogaca dane transakcji o informacje o sprzedawcy + payments: + show: + page_title: Płatności + subscription_subtitle: Zaktualizuj dane swojej karty kredytowej + subscription_title: Zarządzaj wpłatami + appearances: + show: + page_title: Wygląd + theme_title: Motyw + theme_subtitle: Wybierz preferowany motyw aplikacji + theme_dark: Ciemny + theme_light: Jasny + theme_system: Systemowy + transactions_title: Transakcje + transactions_subtitle: Dostosuj sposób wyświetlania transakcji + dashboard_title: Pulpit + dashboard_subtitle: Dostosuj sposób wyświetlania pulpitu + dashboard_two_column_title: Układ dwukolumnowy + dashboard_two_column_description: Wyświetlaj widżety pulpitu w dwóch kolumnach na dużych ekranach. Gdy opcja jest wyłączona, widżety układają się w jednej kolumnie. + split_grouped_title: Grupuj podzielone transakcje + split_grouped_description: Pokazuj podzielone transakcje zgrupowane pod transakcją nadrzędną na liście transakcji. Gdy opcja jest wyłączona, pozycje podrzędne pojawiają się jako osobne wiersze. + preferences: + show: + country: Kraj + currency: Waluta + date_format: Format daty + general_subtitle: Skonfiguruj swoje preferencje + general_title: Ogólne + default_period: Domyślny okres + default_account_order: Domyślna kolejność kont + language: Język + language_auto: Język przeglądarki + page_title: Preferencje + timezone: Strefa czasowa + month_start_day: Miesiąc budżetowy zaczyna się + month_start_day_hint: Ustaw, kiedy zaczyna się Twój miesiąc budżetowy (np. dzień wypłaty) + month_start_day_warning: Twoje budżety i obliczenia MTD będą używać tego niestandardowego dnia startowego zamiast 1. dnia każdego miesiąca. + sharing_title: "Udostępnianie %{moniker}" + sharing_subtitle: Kontroluj, jak konta są udostępniane w Twoim %{moniker} + sharing_default_label: Domyślne udostępnianie dla nowych kont + sharing_shared: Udostępnij wszystkim członkom + sharing_private: Domyślnie ustaw jako prywatne + profiles: + destroy: + cannot_remove_self: Nie możesz usunąć siebie z konta. + member_removal_failed: Wystąpił problem podczas usuwania członka. + member_removed: Członek został pomyślnie usunięty. + not_authorized: Nie masz uprawnień do usuwania członków. + show: + confirm_delete: + body: Czy na pewno chcesz trwale usunąć swoje konto? Tej akcji nie można cofnąć. + title: Usunąć konto? + confirm_reset: + body: Czy na pewno chcesz zresetować swoje konto? Spowoduje to usunięcie wszystkich kont, kategorii, sprzedawców, tagów i innych danych. Tej akcji nie można cofnąć. + title: Zresetować konto? + confirm_reset_with_sample_data: + body: Czy na pewno chcesz zresetować swoje konto i załadować przykładowe dane? Spowoduje to usunięcie istniejących danych i zastąpienie ich danymi demonstracyjnymi, aby bezpiecznie poznawać Sure. + title: Zresetować konto i załadować przykładowe dane? + confirm_remove_invitation: + body: Czy na pewno chcesz usunąć zaproszenie dla %{email}? + title: Usuń zaproszenie + confirm_remove_member: + body: Czy na pewno chcesz usunąć %{name} ze swojego konta? + title: Usuń członka + danger_zone_title: Strefa ryzyka + delete_account: Usuń konto + delete_account_warning: Usunięcie konta trwale usunie wszystkie Twoje dane i nie można tego cofnąć. + reset_account: Zresetuj konto + reset_account_warning: Reset konta usunie wszystkie konta, kategorie, sprzedawców, tagi i inne dane, ale pozostawi Twoje konto użytkownika. + reset_account_with_sample_data: Zresetuj i załaduj dane + reset_account_with_sample_data_warning: Usuń wszystkie istniejące dane i załaduj nowe dane przykładowe, aby poznawać aplikację na gotowym środowisku. + email: E-mail + first_name: Imię + group_form_input_placeholder: Wprowadź nazwę grupy + group_form_label: Nazwa grupy + group_title: Członkowie grupy + household_form_input_placeholder: Wprowadź nazwę gospodarstwa domowego + household_form_label: Nazwa gospodarstwa domowego + household_subtitle: Zaproszone osoby mogą zalogować się do Twojego konta %{moniker} i uzyskać dostęp do współdzielonych zasobów. + household_title: Gospodarstwo domowe + invitation_link: Odnośnik do zaproszenia + invite_member: Dodaj członka + last_name: Nazwisko + page_title: Informacje profilowe + pending: Oczekujące + profile_subtitle: Dostosuj sposób, w jaki wyświetlasz się w %{product_name} + profile_title: Dane osobiste + remove_invitation: Usuń zaproszenie + remove_member: Usuń członka + save: Zapisz + securities: + show: + page_title: Bezpieczeństwo + mfa_title: Uwierzytelnianie dwuskładnikowe + mfa_description: Dodaj dodatkową warstwę bezpieczeństwa do konta, wymagając kodu z aplikacji uwierzytelniającej podczas logowania + enable_mfa: Włącz 2FA + disable_mfa: Wyłącz 2FA + disable_mfa_confirm: Czy na pewno chcesz wyłączyć uwierzytelnianie dwuskładnikowe? + sso_title: Połączone konta + sso_subtitle: Zarządzaj połączeniami kont jednokrotnego logowania + sso_disconnect: Odłącz + sso_last_used: Ostatnio używane + sso_never: Nigdy + sso_no_email: Brak adresu e-mail + sso_no_identities: Brak połączonych kont SSO + sso_connect_hint: Wyloguj się i zaloguj przez dostawcę SSO, aby połączyć konto. + sso_confirm_title: Odłączyć konto? + sso_confirm_body: Czy na pewno chcesz odłączyć konto %{provider}? Możesz je połączyć ponownie później, logując się ponownie przez tego dostawcę. + sso_confirm_button: Odłącz + sso_warning_message: To jest Twoja jedyna metoda logowania. Przed odłączeniem ustaw hasło w ustawieniach bezpieczeństwa, w przeciwnym razie możesz utracić dostęp do konta. + settings_nav: + accounts_label: Konta + advanced_section_title: Zaawansowane + ai_prompts_label: Prompty AI + api_key_label: Klucz API + payment_label: Płatności + categories_label: Kategorie + feedback_label: Opinie + general_section_title: Ogólne + imports_label: Importy + exports_label: Eksporty + logout: Wyloguj + merchants_label: Sprzedawcy + guides_label: Przewodniki + other_section_title: Więcej + preferences_label: Preferencje + profile_label: Informacje profilowe + recurring_transactions_label: Cykliczne + rules_label: Reguły + security_label: Bezpieczeństwo + self_hosting_label: Hosting własny + tags_label: Tagi + transactions_section_title: Transakcje + whats_new_label: Co nowego + api_keys_label: Klucz API + appearance_label: Wygląd + bank_sync_label: Synchronizacja banku + settings_nav_link_large: + next: Dalej + previous: Wstecz + user_avatar_field: + accepted_formats: JPG lub PNG. Maks. 5 MB. + choose: Prześlij zdjęcie + choose_label: "(opcjonalne)" + change: Zmień zdjęcie + providers: + show: + coinbase_title: Coinbase + encryption_error: + title: Wymagana konfiguracja szyfrowania + message: Klucze szyfrowania Active Record nie są skonfigurowane. Upewnij się, że dane uwierzytelniające szyfrowania (active_record_encryption.primary_key, active_record_encryption.deterministic_key oraz active_record_encryption.key_derivation_salt) są poprawnie ustawione w poświadczeniach Rails lub zmiennych środowiskowych przed użyciem dostawców synchronizacji. + coinbase_panel: + setup_instructions: 'Aby połączyć Coinbase:' + step1_html: Przejdź do Ustawień API Coinbase + step2: Utwórz nowy klucz API z uprawnieniami tylko do odczytu (podgląd kont, podgląd transakcji) + step3: Skopiuj klucz API i sekret API, a następnie wklej je poniżej + api_key_label: Klucz API + api_key_placeholder: Wprowadź klucz API Coinbase + api_secret_label: Sekret API + api_secret_placeholder: Wprowadź sekret API Coinbase + connect_button: Połącz Coinbase + syncing: Synchronizacja... + sync: Synchronizuj + disconnect_confirm: Czy na pewno chcesz odłączyć to połączenie Coinbase? Twoje zsynchronizowane konta staną się kontami ręcznymi. + status_connected: Coinbase jest połączony i synchronizuje Twoje zasoby kryptowalutowe. + status_not_connected: Brak połączenia. Wprowadź powyżej dane API, aby rozpocząć. + enable_banking_panel: + callback_url_instruction: Dla URL callback użyj %{callback_url}. + connection_error: Błąd połączenia diff --git a/config/locales/views/settings/securities/pl.yml b/config/locales/views/settings/securities/pl.yml new file mode 100644 index 000000000..57ff230a2 --- /dev/null +++ b/config/locales/views/settings/securities/pl.yml @@ -0,0 +1,10 @@ +--- +pl: + settings: + securities: + show: + disable_mfa: Wyłącz 2FA + disable_mfa_confirm: Czy na pewno chcesz wyłączyć uwierzytelnianie dwuskładnikowe? To obniży poziom bezpieczeństwa konta. + enable_mfa: Włącz 2FA + mfa_description: Dodaj dodatkową warstwę bezpieczeństwa, wymagając kodu z aplikacji uwierzytelniającej podczas logowania + mfa_title: Uwierzytelnianie dwuskładnikowe diff --git a/config/locales/views/settings/sso_identities/pl.yml b/config/locales/views/settings/sso_identities/pl.yml new file mode 100644 index 000000000..ddc23496a --- /dev/null +++ b/config/locales/views/settings/sso_identities/pl.yml @@ -0,0 +1,7 @@ +--- +pl: + settings: + sso_identities: + destroy: + cannot_unlink_last: Nie można odłączyć ostatniej tożsamości + success: Tożsamość została odłączona diff --git a/config/locales/views/shared/pl.yml b/config/locales/views/shared/pl.yml new file mode 100644 index 000000000..03b5a73bf --- /dev/null +++ b/config/locales/views/shared/pl.yml @@ -0,0 +1,15 @@ +--- +pl: + shared: + confirm_modal: + accept: Potwierdź + body_html: "

Nie będzie można cofnąć tej decyzji

" + cancel: Anuluj + title: Czy na pewno? + money_field: + label: Kwota + syncing_notice: + syncing: Synchronizowanie danych kont... + require_admin: "Tę akcję mogą wykonać tylko administratorzy" + trend_change: + no_change: "bez zmian" diff --git a/config/locales/views/simplefin_items/pl.yml b/config/locales/views/simplefin_items/pl.yml new file mode 100644 index 000000000..6a54341d3 --- /dev/null +++ b/config/locales/views/simplefin_items/pl.yml @@ -0,0 +1,119 @@ +--- +pl: + simplefin_items: + new: + title: Połącz SimpleFIN + setup_token: Token konfiguracji + setup_token_placeholder: wklej token konfiguracji SimpleFIN + connect: Połącz + cancel: Anuluj + create: + success: Połączenie SimpleFIN zostało pomyślnie dodane! Twoje konta pojawią się wkrótce po synchronizacji w tle. + errors: + blank_token: Wprowadź token konfiguracji SimpleFIN. + invalid_token: Nieprawidłowy token konfiguracji. Sprawdź, czy skopiowano pełny token z SimpleFIN Bridge. + token_compromised: Token konfiguracji może być naruszony, wygasły albo już użyty. Utwórz nowy. + create_failed: 'Nie udało się połączyć: %{message}' + unexpected: Wystąpił nieoczekiwany błąd. Spróbuj ponownie. + destroy: + success: Połączenie SimpleFIN zostanie usunięte + update: + success: Połączenie SimpleFIN zostało pomyślnie zaktualizowane! Trwa ponowne łączenie kont. + errors: + blank_token: Wprowadź token konfiguracji SimpleFIN. + invalid_token: Nieprawidłowy token konfiguracji. Sprawdź, czy skopiowano pełny token z SimpleFIN Bridge. + token_compromised: Token konfiguracji może być naruszony, wygasły albo już użyty. Utwórz nowy. + update_failed: 'Nie udało się zaktualizować połączenia: %{message}' + unexpected: Wystąpił nieoczekiwany błąd. Spróbuj ponownie. + edit: + setup_token: + label: 'Token konfiguracji SimpleFIN:' + placeholder: Wklej tutaj token konfiguracji SimpleFIN... + help_text: Token powinien być długim ciągiem znaków zaczynającym się od liter i cyfr + setup_accounts: + stale_accounts: + title: Konta, których nie ma już w SimpleFIN + description: Te konta istnieją w bazie danych, ale nie są już dostarczane przez SimpleFIN. Może się to zdarzyć przy zmianie konfiguracji kont po stronie dostawcy. + action_prompt: Co chcesz zrobić? + action_delete: Usuń konto i wszystkie transakcje + action_move: 'Przenieś transakcje do:' + action_skip: Pomiń na razie + transaction_count: + one: "%{count} transakcja" + few: "%{count} transakcje" + many: "%{count} transakcji" + other: "%{count} transakcji" + complete_account_setup: + all_skipped: Wszystkie konta zostały pominięte. Nie utworzono żadnych kont. + no_accounts: Brak kont do skonfigurowania. + success: + one: Pomyślnie utworzono %{count} konto SimpleFIN! Twoje transakcje i pozycje są importowane w tle. + few: Pomyślnie utworzono %{count} konta SimpleFIN! Twoje transakcje i pozycje są importowane w tle. + many: Pomyślnie utworzono %{count} kont SimpleFIN! Twoje transakcje i pozycje są importowane w tle. + other: Pomyślnie utworzono %{count} kont SimpleFIN! Twoje transakcje i pozycje są importowane w tle. + stale_accounts_processed: 'Przestarzałe konta: %{deleted} usuniętych, %{moved} przeniesionych.' + stale_accounts_errors: + one: "%{count} akcja dla przestarzałego konta nie powiodła się. Sprawdź logi." + few: "%{count} akcje dla przestarzałych kont nie powiodły się. Sprawdź logi." + many: "%{count} akcji dla przestarzałych kont nie powiodło się. Sprawdź logi." + other: "%{count} akcji dla przestarzałych kont nie powiodło się. Sprawdź logi." + simplefin_item: + add_new: Dodaj nowe połączenie + confirm_accept: Usuń połączenie + confirm_body: Spowoduje to trwałe usunięcie wszystkich kont w tej grupie i wszystkich powiązanych danych. + confirm_title: Usunąć połączenie SimpleFIN? + delete: Usuń + deletion_in_progress: "(usuwanie w toku...)" + error: Wystąpił błąd podczas synchronizacji danych + no_accounts_description: To połączenie nie ma jeszcze żadnych zsynchronizowanych kont. + no_accounts_title: Nie znaleziono kont + requires_update: Połącz ponownie + setup_needed: Nowe konta gotowe do konfiguracji + setup_description: Wybierz typy kont dla nowo zaimportowanych kont SimpleFIN. + setup_action: Skonfiguruj nowe konta + setup_accounts_menu: Skonfiguruj konta + more_accounts_available: + one: "%{count} dodatkowe konto do skonfigurowania" + few: "%{count} dodatkowe konta do skonfigurowania" + many: "%{count} dodatkowych kont do skonfigurowania" + other: "%{count} dodatkowych kont do skonfigurowania" + accounts_skipped_tooltip: Niektóre konta zostały pominięte z powodu błędów podczas synchronizacji + accounts_skipped_label: 'Pominięte: %{count}' + rate_limited_ago: Ograniczenie limitu (%{time} temu) + rate_limited_recently: Ostatnio ograniczono limitem + status: Ostatnia synchronizacja %{timestamp} temu + status_never: Nigdy nie synchronizowano + status_with_summary: Ostatnia synchronizacja %{timestamp} temu • %{summary} + syncing: Synchronizacja... + update: Aktualizuj + stale_pending_note: "(wykluczone z budżetów)" + stale_pending_accounts: 'w: %{accounts}' + reconciled_details_note: "(szczegóły w podsumowaniu synchronizacji)" + duplicate_accounts_skipped: Niektóre konta zostały pominięte jako duplikaty — użyj opcji „Połącz istniejące konta”, aby je scalić. + select_existing_account: + title: Połącz %{account_name} z SimpleFIN + description: Wybierz konto SimpleFIN do połączenia z istniejącym kontem + cancel: Anuluj + link_account: Połącz konto + no_accounts_found: Nie znaleziono kont SimpleFIN dla tej/tego %{moniker}. + wait_for_sync: Jeśli właśnie połączyłeś lub zsynchronizowałeś, spróbuj ponownie po zakończeniu synchronizacji. + unlink_to_move: Aby przenieść połączenie, najpierw odłącz je z menu akcji konta. + all_accounts_already_linked: Wszystkie konta SimpleFIN są już połączone. + currently_linked_to: 'Aktualnie połączone z: %{account_name}' + link_existing_account: + success: Konto zostało pomyślnie połączone z SimpleFIN + errors: + only_manual: Można połączyć tylko konta manualne + invalid_simplefin_account: Wybrano nieprawidłowe konto SimpleFIN + reconciled_status: + message: + one: "%{count} oczekująca zduplikowana transakcja została uzgodniona" + few: "%{count} oczekujące zduplikowane transakcje zostały uzgodnione" + many: "%{count} oczekujących zduplikowanych transakcji zostało uzgodnionych" + other: "%{count} oczekujących zduplikowanych transakcji zostało uzgodnionych" + stale_pending_status: + message: + one: "%{count} oczekująca transakcja starsza niż %{days} dni" + few: "%{count} oczekujące transakcje starsze niż %{days} dni" + many: "%{count} oczekujących transakcji starszych niż %{days} dni" + other: "%{count} oczekujących transakcji starszych niż %{days} dni" diff --git a/config/locales/views/snaptrade_items/de.yml b/config/locales/views/snaptrade_items/de.yml index d50ae7bb6..c0f0cd22c 100644 --- a/config/locales/views/snaptrade_items/de.yml +++ b/config/locales/views/snaptrade_items/de.yml @@ -18,7 +18,9 @@ de: success: one: "%{count} Konto erfolgreich verknüpft." other: "%{count} Konten erfolgreich verknüpft." - partial_success: "%{linked} Konto/Konten verknüpft. %{failed} Verknüpfung(en) fehlgeschlagen." + partial_success: + one: "%{count} Konto verknüpft. %{failed_count} Verknüpfung(en) fehlgeschlagen." + other: "%{count} Konten verknüpft. %{failed_count} Verknüpfung(en) fehlgeschlagen." link_failed: "Konten konnten nicht verknüpft werden: %{errors}" no_accounts: "Es wurden keine Konten zur Verknüpfung ausgewählt." preload_accounts: diff --git a/config/locales/views/snaptrade_items/en.yml b/config/locales/views/snaptrade_items/en.yml index 63b70a28c..e9cdfd250 100644 --- a/config/locales/views/snaptrade_items/en.yml +++ b/config/locales/views/snaptrade_items/en.yml @@ -17,7 +17,9 @@ en: success: one: "Successfully linked %{count} account." other: "Successfully linked %{count} accounts." - partial_success: "Linked %{linked} account(s). %{failed} failed to link." + partial_success: + one: "Linked %{count} account. %{failed_count} failed to link." + other: "Linked %{count} accounts. %{failed_count} failed to link." link_failed: "Failed to link accounts: %{errors}" no_accounts: "No accounts were selected for linking." preload_accounts: diff --git a/config/locales/views/snaptrade_items/es.yml b/config/locales/views/snaptrade_items/es.yml index d7456076e..47a6ca609 100644 --- a/config/locales/views/snaptrade_items/es.yml +++ b/config/locales/views/snaptrade_items/es.yml @@ -18,7 +18,9 @@ es: success: one: "Se ha vinculado %{count} cuenta correctamente." other: "Se han vinculado %{count} cuentas correctamente." - partial_success: "Se han vinculado %{linked} cuenta(s). %{failed} han fallado." + partial_success: + one: "Se ha vinculado %{count} cuenta. %{failed_count} ha fallado." + other: "Se han vinculado %{count} cuentas. %{failed_count} han fallado." link_failed: "Error al vincular las cuentas: %{errors}" no_accounts: "No se ha seleccionado ninguna cuenta para vincular." preload_accounts: diff --git a/config/locales/views/snaptrade_items/pl.yml b/config/locales/views/snaptrade_items/pl.yml new file mode 100644 index 000000000..ba3eb7058 --- /dev/null +++ b/config/locales/views/snaptrade_items/pl.yml @@ -0,0 +1,210 @@ +--- +pl: + snaptrade_items: + default_name: Połączenie SnapTrade + create: + success: Pomyślnie skonfigurowano SnapTrade. + update: + success: Pomyślnie zaktualizowano konfigurację SnapTrade. + destroy: + success: Zaplanowano usunięcie połączenia SnapTrade. + connect: + decryption_failed: Nie można odczytać danych uwierzytelniających SnapTrade. Usuń i utwórz ponownie to połączenie. + connection_failed: 'Nie udało się połączyć z SnapTrade: %{message}' + callback: + success: Biuro maklerskie zostało połączone! Wybierz konta do połączenia. + no_item: Nie znaleziono konfiguracji SnapTrade. + complete_account_setup: + success: + one: Pomyślnie połączono %{count} konto. + few: Pomyślnie połączono %{count} konta. + many: Pomyślnie połączono %{count} kont. + other: Pomyślnie połączono %{count} konta. + partial_success: + one: "Połączono %{count} konto. Nie udało się połączyć %{failed_count}." + few: "Połączono %{count} konta. Nie udało się połączyć %{failed_count}." + many: "Połączono %{count} kont. Nie udało się połączyć %{failed_count}." + other: "Połączono %{count} konta. Nie udało się połączyć %{failed_count}." + link_failed: 'Nie udało się połączyć kont: %{errors}' + no_accounts: Nie wybrano żadnych kont do połączenia. + preload_accounts: + not_configured: SnapTrade nie jest skonfigurowane. + select_accounts: + not_configured: SnapTrade nie jest skonfigurowane. + select_existing_account: + not_found: Konto lub konfiguracja SnapTrade nie zostało znalezione. + title: Połącz z kontem SnapTrade + header: Połącz istniejące konto + subtitle: Wybierz konto SnapTrade do połączenia + no_accounts: Brak niepołączonych kont SnapTrade. + connect_hint: Może najpierw musisz połączyć biuro maklerskie. + settings_link: Przejdź do ustawień dostawcy + linking_to: 'Łączenie z kontem:' + balance_label: 'Saldo:' + link_button: Połącz + cancel_button: Anuluj + link_existing_account: + success: Pomyślnie połączono z kontem SnapTrade. + failed: 'Nie udało się połączyć konta: %{message}' + not_found: Konto nie zostało znalezione. + connections: + unknown_brokerage: Nieznane biuro maklerskie + delete_connection: + success: Połączenie zostało pomyślnie usunięte. Zwolniono jedno miejsce. + failed: 'Nie udało się usunąć połączenia: %{message}' + missing_authorization_id: Brak identyfikatora autoryzacji + api_deletion_failed: Nie można usunąć połączenia z SnapTrade — brak danych uwierzytelniających. Połączenie może nadal istnieć na koncie SnapTrade. + delete_orphaned_user: + success: Osierocona rejestracja została usunięta pomyślnie. + failed: Nie udało się usunąć osieroconej rejestracji. + setup_accounts: + title: Skonfiguruj konta SnapTrade + header: Skonfiguruj swoje konta SnapTrade + subtitle: Wybierz konta maklerskie do połączenia + syncing: Pobieranie kont... + loading: Pobieranie kont z SnapTrade... + loading_hint: Kliknij Odśwież, aby sprawdzić konta. + refresh: Odśwież + info_title: Dane inwestycyjne SnapTrade + info_holdings: Aktywa z aktualnymi cenami i ilościami + info_cost_basis: Podstawa kosztowa na pozycję (gdy dostępna) + info_activities: Historia transakcji z etykietami aktywności (Kupno, Sprzedaż, Dywidenda itp.) + info_history: Do 3 lat historii transakcji + free_tier_note: Plan bezpłatny SnapTrade umożliwia 5 połączeń z biurami maklerskimi. Sprawdź swój pulpit SnapTrade, aby zobaczyć bieżące użycie. + no_accounts_title: Nie znaleziono kont + no_accounts_message: Nie znaleziono kont maklerskich. Może to nastąpić, jeśli anulowałeś połączenie lub Twoje biuro maklerskie nie jest obsługiwane. + try_again: Połącz biuro maklerskie + back_to_settings: Powrót do ustawień + available_accounts: Dostępne konta + balance_label: 'Saldo:' + account_number: 'Konto:' + create_button: Utwórz wybrane konta + cancel_button: Anuluj + creating: Tworzenie kont... + done_button: Gotowe + or_link_existing: 'Lub połącz z istniejącym kontem zamiast tworzyć nowe:' + select_account: Wybierz konto... + link_button: Połącz + linked_accounts: Już połączone + linked_to: 'Połączono z:' + snaptrade_item: + accounts_need_setup: + one: "%{count} konto wymaga konfiguracji" + few: "%{count} konta wymagają konfiguracji" + many: "%{count} kont wymaga konfiguracji" + other: "%{count} kont wymaga konfiguracji" + deletion_in_progress: Usuwanie w toku... + syncing: Synchronizacja... + requires_update: Połączenie wymaga aktualizacji + error: Błąd synchronizacji + status: Ostatnia synchronizacja %{timestamp} temu — %{summary} + status_never: Nigdy nie synchronizowano + reconnect: Połącz ponownie + connect_brokerage: Połącz biuro maklerskie + add_another_brokerage: Połącz kolejne biuro maklerskie + delete: Usuń + setup_needed: Konta wymagają konfiguracji + setup_description: Niektóre konta z SnapTrade muszą zostać połączone z kontami Sure. + setup_action: Konfiguruj konta + setup_accounts_menu: Skonfiguruj konta + manage_connections: Zarządzaj połączeniami + more_accounts_available: + one: "%{count} dodatkowe konto dostępne do konfiguracji" + few: "%{count} dodatkowe konta dostępne do konfiguracji" + many: "%{count} dodatkowych kont dostępnych do konfiguracji" + other: "%{count} dodatkowych kont dostępnych do konfiguracji" + no_accounts_title: Nie wykryto kont + no_accounts_description: Połącz biuro maklerskie, aby zaimportować swoje konta inwestycyjne. + providers: + snaptrade: + name: SnapTrade + connection_description: Połącz się ze swoim biurem maklerskim przez SnapTrade (obsługuje 25+ brokerów) + description: SnapTrade łączy się z ponad 25 głównymi biurami maklerskimi (Fidelity, Vanguard, Schwab, Robinhood itp.) i udostępnia pełną historię transakcji z etykietami aktywności oraz podstawą kosztową. + setup_title: 'Instrukcje konfiguracji:' + step_1_html: Utwórz konto na dashboard.snaptrade.com + step_2: Skopiuj swój Client ID i Consumer Key z pulpitu nawigacyjnego + step_3: Wprowadź swoje dane uwierzytelniające poniżej i kliknij Zapisz + step_4: Przejdź do strony Konta i użyj opcji „Połącz kolejne biuro maklerskie", aby połączyć swoje konta inwestycyjne + free_tier_warning: Plan bezpłatny obejmuje 5 połączeń z biurami maklerskimi. Dodatkowe połączenia wymagają płatnego planu SnapTrade. + client_id_label: Client ID + client_id_placeholder: Wprowadź Client ID SnapTrade + client_id_update_placeholder: Wprowadź nowy Client ID, aby zaktualizować + consumer_key_label: Consumer Key + consumer_key_placeholder: Wprowadź Consumer Key SnapTrade + consumer_key_update_placeholder: Wprowadź nowy Consumer Key, aby zaktualizować + save_button: Zapisz konfigurację + update_button: Zaktualizuj konfigurację + status_connected: + one: "%{count} konto z SnapTrade" + few: "%{count} konta z SnapTrade" + many: "%{count} kont z SnapTrade" + other: "%{count} konta z SnapTrade" + needs_setup: + one: "%{count} wymaga konfiguracji" + few: "%{count} wymagają konfiguracji" + many: "%{count} wymaga konfiguracji" + other: "%{count} wymaga konfiguracji" + status_ready: Gotowe do połączenia z biurami maklerskimi + status_needs_registration: Dane uwierzytelniające zapisane. Przejdź do strony Konta, aby połączyć biura maklerskie. + status_not_configured: Nieskonfigurowane + setup_accounts_button: Konfiguruj konta + connect_button: Połącz biuro maklerskie + connected_brokerages: 'Połączone:' + manage_connections: Zarządzaj połączeniami + connection_limit_info: Plan bezpłatny SnapTrade umożliwia 5 połączeń z biurami maklerskimi. Usuń nieużywane połączenia, aby zwolnić miejsca. + loading_connections: Ładowanie połączeń... + connections_error: 'Nie udało się załadować połączeń: %{message}' + accounts_count: + one: "%{count} konto" + few: "%{count} konta" + many: "%{count} kont" + other: "%{count} kont" + orphaned_connection: Osierocone połączenie (niezsynchronizowane lokalnie) + needs_linking: wymaga połączenia + no_connections: Nie znaleziono połączeń z biurami maklerskimi. + delete_connection: Usuń + delete_connection_title: Usunąć połączenie z biurem maklerskim? + delete_connection_body: Spowoduje to trwałe usunięcie połączenia %{brokerage} z SnapTrade. Wszystkie konta tego biura maklerskiego zostaną odłączone. Będziesz musiał ponownie się połączyć, aby synchronizować te konta. + delete_connection_confirm: Usuń połączenie + orphaned_users_title: + one: "%{count} osierocona rejestracja" + few: "%{count} osierocone rejestracje" + many: "%{count} osieroconych rejestracji" + other: "%{count} osieroconych rejestracji" + orphaned_users_description: Są to poprzednie rejestracje użytkowników SnapTrade, które zajmują Twoje miejsca połączeń. Usuń je, aby zwolnić miejsca. + orphaned_user: Osierocona rejestracja + delete_orphaned_user: Usuń + delete_orphaned_user_title: Usunąć osieroconą rejestrację? + delete_orphaned_user_body: Spowoduje to trwałe usunięcie tej osieroconej rejestracji użytkownika SnapTrade i wszystkich jego połączeń z biurami maklerskimi, zwalniając miejsca połączeń. + delete_orphaned_user_confirm: Usuń rejestrację + snaptrade_item: + sync_status: + no_accounts: Nie znaleziono kont + synced: + one: "%{count} konto zsynchronizowane" + few: "%{count} konta zsynchronizowane" + many: "%{count} kont zsynchronizowanych" + other: "%{count} kont zsynchronizowanych" + synced_with_setup: "%{linked} zsynchronizowane, %{unlinked} wymagają konfiguracji" + institution_summary: + none: Brak połączonych instytucji + count: + one: "%{count} instytucja" + few: "%{count} instytucje" + many: "%{count} instytucji" + other: "%{count} instytucji" + brokerage_summary: + none: Brak połączonych biur maklerskich + count: + one: "%{count} biuro maklerskie" + few: "%{count} biura maklerskie" + many: "%{count} biur maklerskich" + other: "%{count} biur maklerskich" + syncer: + discovering: Odnajdywanie kont... + importing: Importowanie kont z SnapTrade... + processing: Przetwarzanie aktywów i aktywności... + calculating: Obliczanie sald... + checking_config: Sprawdzanie konfiguracji konta... + needs_setup: "%{count} kont wymaga konfiguracji..." + activities_fetching_async: Aktywności są pobierane w tle. Może to potrwać do minuty dla nowych połączeń z biurami maklerskimi. diff --git a/config/locales/views/splits/pl.yml b/config/locales/views/splits/pl.yml new file mode 100644 index 000000000..01e4cb19c --- /dev/null +++ b/config/locales/views/splits/pl.yml @@ -0,0 +1,47 @@ +--- +pl: + splits: + new: + title: Podziel transakcję + description: Podziel tę transakcję na wiele wpisów z różnymi kategoriami i kwotami. + submit: Podziel transakcję + cancel: Anuluj + add_row: Dodaj podział + remove_row: Usuń + remaining: Pozostało + amounts_must_match: Kwoty podziału muszą być równe kwocie oryginalnej transakcji. + name_label: Nazwa + name_placeholder: Nazwa podziału + amount_label: Kwota + category_label: Kategoria + uncategorized: "(bez kategorii)" + original_name: 'Nazwa:' + original_date: 'Data:' + original_amount: Kwota + split_number: 'Podział nr %{number}' + create: + success: Transakcja została pomyślnie podzielona + not_splittable: Tej transakcji nie można podzielić. + destroy: + success: Podział transakcji został pomyślnie cofnięty + show: + title: Podzielone wpisy + description: Ta transakcja została podzielona na poniższe wpisy. + button_title: Podziel transakcję + button_description: Podziel tę transakcję na wiele wpisów z różnymi kategoriami i kwotami. + button: Podziel + unsplit_title: Cofnij podział transakcji + unsplit_button: Cofnij podział + unsplit_confirm: To usunie wszystkie wpisy podziału i przywróci oryginalną transakcję. + edit: + title: Edytuj podział + description: Zmodyfikuj wpisy podziału dla tej transakcji. + submit: Zaktualizuj podział + not_split: Ta transakcja nie jest podzielona. + update: + success: Podział został pomyślnie zaktualizowany + child: + title: Część podziału + description: Ten wpis jest częścią podzielonej transakcji. + edit_split: Edytuj podział + unsplit: Cofnij podział diff --git a/config/locales/views/subscriptions/pl.yml b/config/locales/views/subscriptions/pl.yml new file mode 100644 index 000000000..d40212625 --- /dev/null +++ b/config/locales/views/subscriptions/pl.yml @@ -0,0 +1,18 @@ +--- +pl: + subscriptions: + self_hosted_alert: "%{product_name} nie jest dostępny w trybie self-hosted." + upgrade: + contribute_and_support_sure: "Wspieraj i rozwijaj Sure" + cta: "Wesprzyj dalszy rozwój tej bazy kodu!" + header: + support: "Wesprzyj" + sure: "Sure" + today: "już dziś" + redirect_to_stripe: "W kolejnym kroku nastąpi przekierowanie do Stripe, który obsługuje płatności kartą." + trialing: + one: "Twoje dane zostaną usunięte za %{count} dzień" + few: "Twoje dane zostaną usunięte za %{count} dni" + many: "Twoje dane zostaną usunięte za %{count} dni" + other: "Twoje dane zostaną usunięte za %{count} dnia" + trial_over: "Okres próbny dobiegł końca" diff --git a/config/locales/views/tag/deletions/pl.yml b/config/locales/views/tag/deletions/pl.yml new file mode 100644 index 000000000..0b29e4ca1 --- /dev/null +++ b/config/locales/views/tag/deletions/pl.yml @@ -0,0 +1,13 @@ +--- +pl: + tag: + deletions: + create: + deleted: Tag został usunięty + new: + delete_and_leave_uncategorized: Usuń "%{tag_name}" + delete_and_recategorize: Usuń "%{tag_name}" i przypisz nowy tag + delete_tag: Usunąć tag? + explanation: "%{tag_name} zostanie usunięty z transakcji i innych obiektów oznaczonych tagami. Zamiast pozostawiać je bez tagu, możesz poniżej przypisać nowy tag." + replacement_tag_prompt: Wybierz tag + tag: Tag diff --git a/config/locales/views/tags/pl.yml b/config/locales/views/tags/pl.yml new file mode 100644 index 000000000..af9624452 --- /dev/null +++ b/config/locales/views/tags/pl.yml @@ -0,0 +1,23 @@ +--- +pl: + tags: + create: + created: Tag został utworzony + error: 'Błąd podczas tworzenia tagu: %{error}' + destroy: + deleted: Tag został usunięty + edit: + edit: Edytuj tag + form: + placeholder: Nazwa tagu + index: + empty: Brak tagów + new: Nowy tag + tags: Tagi + new: + new: Nowy tag + tag: + delete: Usuń + edit: Edytuj + update: + updated: Tag został zaktualizowany diff --git a/config/locales/views/trades/pl.yml b/config/locales/views/trades/pl.yml new file mode 100644 index 000000000..44e16cd9d --- /dev/null +++ b/config/locales/views/trades/pl.yml @@ -0,0 +1,56 @@ +--- +pl: + trades: + form: + account: Konto transferowe (opcjonalnie) + account_prompt: Wyszukaj konto + amount: Kwota + fee: Opłata transakcyjna + holding: Symbol ticker + holding_optional: Symbol ticker (opcjonalnie) + price: Cena za akcję + qty: Ilość + submit: Dodaj transakcję + ticker_placeholder: AAPL + type: Typ + type_buy: Kupno + type_sell: Sprzedaż + type_deposit: Wpłata + type_withdrawal: Wypłata + type_dividend: Dywidenda + type_interest: Odsetki + dividend_requires_security: Dla dywidend wymagany jest papier wartościowy + header: + buy: Kupno + sell: Sprzedaż + dividend: Dywidenda + interest: Odsetki + current_market_price_label: Aktualna cena rynkowa + overview: Przegląd + purchase_price_label: Cena zakupu + purchase_qty_label: Ilość zakupu + symbol_label: Symbol + total_return_label: Niezrealizowany zysk/strata + new: + title: Nowa transakcja + show: + additional: Dodatkowe + amount_label: Kwota + buy: Kupno + category_label: Kategoria + cost_per_share_label: Koszt za akcję + date_label: Data + delete: Usuń + fee_label: Opłata transakcyjna + delete_subtitle: Tej akcji nie można cofnąć + delete_title: Usuń transakcję giełdową + details: Szczegóły + exclude_subtitle: Ta transakcja giełdowa nie będzie uwzględniana w raportach i obliczeniach + exclude_title: Wyklucz z analityki + no_category: Brak kategorii + note_label: Notatka + note_placeholder: Dodaj tutaj dodatkowe notatki... + quantity_label: Ilość + sell: Sprzedaż + settings: Ustawienia + type_label: Typ diff --git a/config/locales/views/transactions/pl.yml b/config/locales/views/transactions/pl.yml new file mode 100644 index 000000000..9ae58f25e --- /dev/null +++ b/config/locales/views/transactions/pl.yml @@ -0,0 +1,242 @@ +--- +pl: + transactions: + unknown_name: Nieznana transakcja + selection_bar: + duplicate: Duplikat + edit: Edytuj + form: + account: Konto + account_prompt: Wybierz konto + amount: Kwota + category: Kategoria + category_prompt: Wybierz kategorię + date: Data + description: Opis + description_placeholder: Opisz transakcję + expense: Wydatek + income: Przychód + merchant_label: Kontrahent + none: "(brak)" + note_label: Notatki + note_placeholder: Wprowadź notatkę + submit: Dodaj transakcję + tags_label: Tagi + transfer: Przelew + new: + new_transaction: Nowa transakcja + show: + account_label: Konto + amount: Kwota + category_label: Kategoria + date_label: Data + delete: Usuń + delete_subtitle: To trwale usuwa transakcję, wpływa na historyczne salda i nie może zostać cofnięte. + delete_title: Usuń transakcję + details: Szczegóły + attachments: Załączniki + exclude: Wyklucz + exclude_description: Wykluczone transakcje zostaną usunięte z obliczeń budżetowych i raportów. + activity_type: Typ aktywności + activity_type_description: Typ aktywności inwestycyjnej (kupno, sprzedaż, dywidenda itp.). Wykrywany automatycznie lub ustawiany ręcznie. + one_time_title: Jednorazowe %{type} + one_time_description: Jednorazowe transakcje będą wykluczone z części obliczeń budżetowych i raportów, aby łatwiej było zobaczyć to, co naprawdę istotne. + convert_to_trade_title: Zamień na transakcję papieru wartościowego + convert_to_trade_description: Zamień tę transakcję na zlecenie kupna lub sprzedaży z danymi papieru wartościowego do śledzenia portfela. + convert_to_trade_button: Zamień na transakcję giełdową + pending_duplicate_merger_title: Duplikat zaksięgowanej transakcji? + pending_duplicate_merger_description: Ręcznie połącz tę oczekującą transakcję z jej zaksięgowaną wersją. + pending_duplicate_merger_button: Otwórz łączenie + merchant_label: Kontrahent + name_label: Nazwa + nature: Typ + none: "(brak)" + note_label: Notatki + note_placeholder: Wprowadź notatkę + overview: Przegląd + settings: Ustawienia + tags_label: Tagi + tab_transactions: Transakcje + tab_upcoming: Nadchodzące + uncategorized: "(bez kategorii)" + activity_labels: + buy: Kupno + sell: Sprzedaż + sweep_in: Transfer przychodzący + sweep_out: Transfer wychodzący + dividend: Dywidenda + reinvestment: Reinwestycja + interest: Odsetki + fee: Opłata + transfer: Przelew + contribution: Wpłata + withdrawal: Wypłata + exchange: Wymiana + other: Inne + mark_recurring: Oznacz jako cykliczną + mark_recurring_subtitle: Śledź to jako transakcję cykliczną. Różnica kwoty jest automatycznie obliczana na podstawie ostatnich 6 miesięcy podobnych transakcji. + mark_recurring_title: Transakcja cykliczna + potential_duplicate_title: Wykryto możliwy duplikat + potential_duplicate_description: Ta oczekująca transakcja może być tą samą transakcją co zaksięgowana transakcja poniżej. Jeśli tak, połącz je, aby uniknąć podwójnego liczenia. + merge_duplicate: + success: Pomyślnie połączono transakcje + failure: Nie udało się połączyć transakcji + keep_both: Nie, zachowaj obie + split_parent_row: + split_label: Podział + transaction: + pending: Oczekująca + pending_tooltip: Transakcja oczekująca — może się zmienić po zaksięgowaniu + linked_with_provider: Połączono z %{provider} + activity_type_tooltip: Typ aktywności inwestycyjnej + possible_duplicate: Duplikat? + potential_duplicate_tooltip: To może być duplikat innej transakcji + review_recommended: Sprawdź + review_recommended_tooltip: Duża różnica kwoty — zalecana weryfikacja, aby sprawdzić, czy to duplikat + split: Podział + split_tooltip: Ta transakcja została podzielona na wiele wpisów + split_child_tooltip: Część transakcji dzielonej + dismiss_duplicate: + success: Pozostawiono jako oddzielne transakcje + failure: Nie udało się odrzucić sugestii duplikatu + pending_duplicate_merge: + possible_duplicate: Duplikat? + possible_duplicate_short: Dupl.? + review_recommended: Sprawdź + review_recommended_short: Weryf. + confirm_title: Połącz z zaksięgowaną transakcją (%{posted_amount}) + reject_title: Zachowaj jako oddzielne transakcje + summary: + total_transactions: Łącznie transakcji + income: Przychody + expenses: Wydatki + inflow: Wpływy + outflow: Wypływy + header: + edit_categories: Edytuj kategorie + edit_imports: Edytuj importy + edit_merchants: Edytuj kontrahentów + edit_tags: Edytuj tagi + import: Importuj + index: + transaction: transakcja + transactions: transakcje + import: Importuj + list: + drag_drop_title: Upuść plik CSV, aby zaimportować + drag_drop_subtitle: Prześlij transakcje bezpośrednio + transaction: transakcja + transactions: transakcje + toggle_recurring_section: Przełącz nadchodzące transakcje cykliczne + search: + filters: + account: Konto + date: Data + type: Typ + status: Status + amount: Kwota + category: Kategoria + tag: Tag + merchant: Kontrahent + convert_to_trade: + title: Zamień na transakcję papieru wartościowego + description: Zamień tę transakcję na transakcję giełdową z danymi papieru wartościowego + date_label: 'Data:' + account_label: 'Konto:' + amount_label: 'Kwota:' + security_label: Papier wartościowy + security_prompt: Wybierz papier wartościowy... + security_custom: "+ Wprowadź własny ticker" + security_not_listed_hint: Nie widzisz swojego papieru? Wybierz na dole listy opcję „Wprowadź własny ticker”. + ticker_placeholder: AAPL + ticker_hint: Wprowadź symbol giełdowy akcji lub ETF-u, np. AAPL lub MSFT + ticker_search_placeholder: Szukaj tickera... + ticker_search_hint: Szukaj po symbolu, nazwie spółki lub wpisz własny ticker + price_mismatch_title: Cena może się nie zgadzać + price_mismatch_message: Twoja cena (%{entered_price}/akcję) znacznie różni się od bieżącej ceny rynkowej %{ticker} (%{market_price}). Jeśli to wygląda nieprawidłowo, mogłeś wybrać zły papier wartościowy — spróbuj użyć opcji „Wprowadź własny ticker”, aby wskazać poprawny. + quantity_label: Ilość (akcji) + quantity_placeholder: np. 20 + quantity_hint: Liczba akcji objętych transakcją + price_label: Cena za akcję + price_placeholder: np. 52.15 + price_hint: Cena za akcję (%{currency}) + qty_or_price_hint: Wprowadź przynajmniej ilość albo cenę. Druga wartość zostanie obliczona z kwoty transakcji (%{amount}). + trade_type_label: Typ transakcji giełdowej + trade_type_hint: Kupno lub sprzedaż akcji papieru wartościowego + exchange_label: Giełda (opcjonalne) + exchange_placeholder: XNAS + exchange_hint: Pozostaw puste, aby wykryć automatycznie + cancel: Anuluj + submit: Zamień na transakcję giełdową + success: Transakcja została zamieniona na transakcję giełdową + conversion_note: 'Przekształcono z transakcji: %{original_name} (%{original_date})' + errors: + not_investment_account: Tylko transakcje na kontach inwestycyjnych można zamieniać na transakcje giełdowe + already_converted: Ta transakcja została już przekształcona albo wykluczona + enter_ticker: Wprowadź symbol tickera + security_not_found: Wybrany papier wartościowy już nie istnieje. Wybierz inny. + select_security: Wybierz albo wpisz papier wartościowy + enter_qty_or_price: Wprowadź ilość albo cenę za akcję. Druga wartość zostanie obliczona z kwoty transakcji. + invalid_qty_or_price: Nieprawidłowa ilość lub cena. Wprowadź poprawne dodatnie wartości. + conversion_failed: 'Nie udało się przekształcić transakcji: %{error}' + unexpected_error: 'Wystąpił nieoczekiwany błąd podczas przekształcania: %{error}' + searches: + filters: + amount_filter: + equal_to: Równe + greater_than: Większe niż + less_than: Mniejsze niż + placeholder: '0' + badge: + expense: Wydatek + income: Przychód + on_or_after: od %{date} + on_or_before: do %{date} + transfer: Przelew + confirmed: Potwierdzone + pending: Oczekujące + type_filter: + expense: Wydatek + income: Przychód + transfer: Przelew + status_filter: + confirmed: Potwierdzone + pending: Oczekujące + menu: + account_filter: Konto + amount_filter: Kwota + apply: Zastosuj + cancel: Anuluj + category_filter: Kategoria + clear_filters: Wyczyść filtry + date_filter: Data + merchant_filter: Kontrahent + status_filter: Status + tag_filter: Tag + type_filter: Typ + search: + equal_to: równe + greater_than: większe niż + less_than: mniejsze niż + form: + toggle_selection_checkboxes: Przełącz wszystkie pola wyboru + attachments: + cannot_exceed: Nie można przekroczyć %{count} załączników na transakcję + uploaded_one: Załącznik został pomyślnie przesłany + uploaded_many: "Pomyślnie przesłano %{count} załączników" + failed_upload: 'Nie udało się przesłać załącznika: %{error}' + no_files_selected: Nie wybrano plików do przesłania + attachment_deleted: Załącznik został pomyślnie usunięty + failed_delete: 'Nie udało się usunąć załącznika: %{error}' + upload_failed: Nie udało się przesłać załącznika. Spróbuj ponownie lub skontaktuj się ze wsparciem. + delete_failed: Nie udało się usunąć załącznika. Spróbuj ponownie lub skontaktuj się ze wsparciem. + upload: Prześlij + no_attachments: Brak załączników + select_up_to: Wybierz maksymalnie %{count} plików (obrazy lub PDF, maks. %{size} MB każdy) • wykorzystano %{used} z %{count} + files: + one: Plik (1) + few: Pliki (%{count}) + many: Plików (%{count}) + other: Plików (%{count}) + browse_to_add: Przeglądaj, aby dodać pliki + max_reached: Osiągnięto maksymalny limit plików (%{count}/%{max}). Usuń istniejący plik, aby przesłać kolejny. diff --git a/config/locales/views/transfers/pl.yml b/config/locales/views/transfers/pl.yml new file mode 100644 index 000000000..8f01f23ad --- /dev/null +++ b/config/locales/views/transfers/pl.yml @@ -0,0 +1,30 @@ +--- +pl: + transfers: + create: + success: Przelew został utworzony + destroy: + success: Przelew został usunięty + form: + amount: Kwota + date: Data + expense: Wydatek + from: Z + income: Przychód + select_account: Wybierz konto + submit: Utwórz przelew + to: Do + transfer: Przelew + new: + title: Nowy przelew + show: + delete: Usuń przelew + delete_subtitle: Ta operacja usuwa przelew. Nie usunie transakcji źródłowych. + delete_title: Usunąć przelew? + details: Szczegóły + note_label: Notatki + note_placeholder: Dodaj notatkę do tego przelewu + overview: Przegląd + settings: Ustawienia + update: + success: Przelew został zaktualizowany diff --git a/config/locales/views/users/pl.yml b/config/locales/views/users/pl.yml new file mode 100644 index 000000000..d4d9690f7 --- /dev/null +++ b/config/locales/views/users/pl.yml @@ -0,0 +1,17 @@ +--- +pl: + users: + destroy: + success: Twoje konto zostało usunięte. + update: + email_change_failed: Nie udało się zmienić adresu e-mail. + email_change_initiated: Sprawdź nowy adres e-mail, aby dokończyć potwierdzenie zmiany. + success: Twój profil został zaktualizowany. + resend_confirmation_email: + success: Nowa wiadomość potwierdzająca została dodana do kolejki wysyłki. + no_pending_change: Brak oczekującej zmiany adresu e-mail! + reset: + success: Twoje konto zostało zresetowane. Dane zostaną usunięte w tle za jakiś czas. + unauthorized: Nie masz uprawnień do wykonania tej akcji + reset_with_sample_data: + success: Twoje konto zostało zresetowane, a dane przykładowe są przygotowywane. Dane demo pojawią się wkrótce. diff --git a/config/locales/views/valuations/pl.yml b/config/locales/views/valuations/pl.yml new file mode 100644 index 000000000..b99fa06ff --- /dev/null +++ b/config/locales/views/valuations/pl.yml @@ -0,0 +1,30 @@ +--- +pl: + valuations: + form: + amount: Kwota + submit: Dodaj aktualizację salda + header: + balance: Saldo + index: + change: zmiana + date: data + new_entry: Nowy wpis + no_valuations: Brak wycen dla tego konta + valuations: Wartość + value: wartość + new: + title: Nowe saldo + show: + amount: Kwota + date_label: Data + delete: Usuń + delete_subtitle: Tej akcji nie można cofnąć + delete_title: Usuń wpis + details: Szczegóły + name_label: Nazwa + name_placeholder: Wprowadź nazwę tego wpisu + note_label: Notatki + note_placeholder: Dodaj dodatkowe szczegóły dotyczące tego wpisu + overview: Przegląd + settings: Ustawienia diff --git a/config/locales/views/vehicles/pl.yml b/config/locales/views/vehicles/pl.yml new file mode 100644 index 000000000..1f53f8d63 --- /dev/null +++ b/config/locales/views/vehicles/pl.yml @@ -0,0 +1,25 @@ +--- +pl: + vehicles: + edit: + edit: Edytuj %{account} + form: + make: Marka + make_placeholder: Toyota + mileage: Przebieg + mileage_placeholder: '15000' + mileage_unit: Jednostka + model: Model + model_placeholder: Camry + year: Rok + year_placeholder: '2023' + new: + title: Wprowadź dane pojazdu + overview: + current_price: Aktualna cena + make_model: Marka i model + mileage: Przebieg + purchase_price: Cena zakupu + trend: Trend + unknown: Nieznane + year: Rok diff --git a/test/lib/money_test.rb b/test/lib/money_test.rb index 1a43c8e8e..5c18105aa 100644 --- a/test/lib/money_test.rb +++ b/test/lib/money_test.rb @@ -161,7 +161,7 @@ class MoneyTest < ActiveSupport::TestCase test "all supported locales can format money without errors" do # Ensure all supported locales from LanguagesHelper::SUPPORTED_LOCALES work - supported_locales = %w[en fr de es tr nb ca ro pt-BR zh-CN zh-TW nl] + supported_locales = LanguagesHelper::SUPPORTED_LOCALES supported_locales.each do |locale| locale_sym = locale.to_sym diff --git a/test/lib/polish_pluralization_test.rb b/test/lib/polish_pluralization_test.rb new file mode 100644 index 000000000..b614f8888 --- /dev/null +++ b/test/lib/polish_pluralization_test.rb @@ -0,0 +1,27 @@ +require "test_helper" +require "securerandom" + +class PolishPluralizationTest < ActiveSupport::TestCase + test "uses rails i18n plural rules for polish" do + translation_key = "test_pluralization_#{SecureRandom.hex(6)}" + + I18n.backend.store_translations(:pl, translation_key => { + sample: { + one: "one", + few: "few", + many: "many", + other: "other" + } + }) + + path = "#{translation_key}.sample" + + assert_equal "many", I18n.t(path, locale: :pl, count: 0) + assert_equal "one", I18n.t(path, locale: :pl, count: 1) + assert_equal "few", I18n.t(path, locale: :pl, count: 2) + assert_equal "many", I18n.t(path, locale: :pl, count: 5) + assert_equal "many", I18n.t(path, locale: :pl, count: 12) + assert_equal "few", I18n.t(path, locale: :pl, count: 22) + assert_equal "many", I18n.t(path, locale: :pl, count: 25) + end +end