diff --git a/locales/cs.yml b/locales/cs.yml new file mode 100644 index 0000000..5c6848d --- /dev/null +++ b/locales/cs.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminalovy trenazer psani' + adaptive_drill: 'Adaptivni cviceni' + adaptive_drill_desc: 'Foneticka slova s adaptivnim odemykanim pismen' + code_drill: 'Cviceni kodu' + code_drill_desc: 'Procvicuj psani syntaxe kodu' + passage_drill: 'Cviceni textu' + passage_drill_desc: 'Opisuj pasaze z knih' + skill_tree: 'Strom dovednosti' + skill_tree_desc: 'Zobraz vetev postupu a spust cviceni' + keyboard: 'Klavesnice' + keyboard_desc: 'Prozkoumej rozlozeni klaves a statistiky' + statistics: 'Statistiky' + statistics_desc: 'Zobraz sve statistiky psani' + settings: 'Nastaveni' + settings_desc: 'Konfiguruj keydr' + day_streak: ' | %{days} dni v rade' + key_progress: ' Postup klaves %{unlocked}/%{total} (%{mastered} zvladnutych) | Cil %{target} WPM%{streak}' + hint_start: '[1-3] Spustit' + hint_skill_tree: '[t] Strom' + hint_keyboard: '[b] Klavesnice' + hint_stats: '[s] Statistiky' + hint_settings: '[c] Nastaveni' + hint_quit: '[q] Konec' + +# Drill screen +drill: + title: ' Cviceni ' + mode_adaptive: 'Adaptivni' + mode_code: 'Kod (bez hodnoceni)' + mode_passage: 'Text (bez hodnoceni)' + focus_char: 'Zamereni: ''%{ch}''' + focus_bigram: 'Zamereni: "%{bigram}"' + focus_both: 'Zamereni: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Presn' + header_err: 'Chyb' + code_source: ' Zdroj kodu ' + passage_source: ' Zdroj textu ' + footer: '[ESC] Ukoncit cviceni [Backspace] Smazat' + keys_reenabled: 'Klavesy obnoveny za %{ms}ms' + hint_end: '[ESC] Ukoncit cviceni' + hint_backspace: '[Backspace] Smazat' + +# Dashboard / drill result +dashboard: + title: ' Cviceni dokonceno ' + results: 'Vysledky' + unranked_note_prefix: ' (Bez hodnoceni' + unranked_note_suffix: ' nepocita se do stromu dovednosti)' + speed: ' Rychlost: ' + accuracy_label: ' Presnost: ' + time_label: ' Cas: ' + errors_label: ' Chyby: ' + correct_detail: ' (%{correct}/%{total} spravne)' + input_blocked: ' Vstup docasne zablokovany ' + input_blocked_ms: '(%{ms}ms zbyva)' + hint_continue: '[c/Enter/Space] Pokracovat' + hint_retry: '[r] Znovu' + hint_menu: '[q] Menu' + hint_stats: '[s] Statistiky' + hint_delete: '[x] Smazat' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistiky ' + wpm: 'WPM: ' + target: 'Cil: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Presnost: ' + progress: 'Postup: ' + correct: 'Spravne: ' + errors: 'Chyby: ' + time: 'Cas: ' + last_drill: ' Posledni cviceni ' + vs_avg: ' vs prum: ' + +# Statistics dashboard +stats: + title: ' Statistiky ' + empty: 'Zadna cviceni dosud. Zacni psat!' + tab_dashboard: '[1] Prehled' + tab_history: '[2] Historie' + tab_activity: '[3] Aktivita' + tab_accuracy: '[4] Presnost' + tab_timing: '[5] Casovani' + tab_ngrams: '[6] N-gramy' + hint_back: '[ESC] Zpet' + hint_next_tab: '[Tab] Dalsi karta' + hint_switch_tab: '[1-6] Prepnout kartu' + hint_navigate: '[j/k] Navigovat' + hint_page: '[PgUp/PgDn] Stranka' + hint_delete: '[x] Smazat' + summary_title: ' Souhrn ' + drills: ' Cviceni: ' + avg_wpm: ' Prum WPM: ' + best_wpm: ' Nejlepsi WPM: ' + accuracy_label: ' Presnost: ' + total_time: ' Celkovy cas: ' + wpm_chart_title: ' WPM na cviceni (poslednich 20, cil: %{target}) ' + accuracy_chart_title: ' Presnost %% (poslednich 50 cviceni) ' + chart_drill: 'Cvic #' + chart_accuracy_pct: 'Presnost %%' + sessions_title: ' Posledni relace ' + session_header: ' # WPM Raw Presn%% Cas Datum/Cas Rezim Hodnocen Castecny' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Smazat relaci #%{idx}? (a/n)' + confirm_title: ' Potvrzeni ' + yes: 'ano' + no: 'ne' + keyboard_accuracy_title: ' Presnost klavesnice %% ' + keyboard_timing_title: ' Casovani klavesnice (ms) ' + slowest_keys_title: ' Nejpomalejsi klavesy (ms) ' + fastest_keys_title: ' Nejrychlejsi klavesy (ms) ' + worst_accuracy_title: ' Nejhorsi presnost (%%) ' + best_accuracy_title: ' Nejlepsi presnost (%%) ' + not_enough_data: ' Nedostatek dat' + streaks_title: ' Serie ' + current_streak: ' Aktualni: ' + best_streak: ' Nejlepsi: ' + active_days: ' Aktivni dny: ' + top_days_none: ' Nejlepsi dny: zadne' + top_days: ' Nejlepsi dny: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Presn: %{pct}%%' + keys_label: ' Klavesy: %{unlocked}/%{total} (%{mastered} zvladnutych)' + ngram_empty: 'Dokonci adaptivni cviceni pro zobrazeni dat n-gramu' + ngram_header_speed_narrow: ' Bgrm Rychl Ocek Anom%' + ngram_header_error_narrow: ' Bgrm Chyb Vzrk Mira Ocek Anom%' + ngram_header_speed: ' Bigram Rychlost Ocekav Vzorky Anom%' + ngram_header_error: ' Bigram Chyby Vzorky Mira Ocekav Anom%' + focus_title: ' Aktivni zamereni ' + focus_char_label: ' Zamereni: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'chyba' + anomaly_speed: 'rychlost' + focus_detail_both: ' Znak ''%{ch}'': nejslabsi klavesa | Bigram %{label}: anomalie %{type} %{pct}%%' + focus_detail_char_only: ' Znak ''%{ch}'': nejslabsi klavesa, zadne potvrzene anomalie bigramu' + focus_detail_bigram_only: ' (anomalie %{type}: %{pct}%%)' + focus_empty: ' Dokonci adaptivni cviceni pro zobrazeni dat zamereni' + error_anomalies_title: ' Anomalie chyb (%{count}) ' + no_error_anomalies: ' Nebyly detekovany anomalie chyb' + speed_anomalies_title: ' Anomalie rychlosti (%{count}) ' + no_speed_anomalies: ' Nebyly detekovany anomalie rychlosti' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Vah: >%{ms}ms' + gain_label: ' | Zisk: %{value}' + gain_interval: ' (kazdych 50)' + focus_char_value: 'Znak ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Denni aktivita (relace za den) ' + jan: 'Led' + feb: 'Uno' + mar: 'Bre' + apr: 'Dub' + may: 'Kve' + jun: 'Cer' + jul: 'Cvc' + aug: 'Srp' + sep: 'Zar' + oct: 'Rij' + nov: 'Lis' + dec: 'Pro' + +# Chart +chart: + wpm_over_time: ' WPM v case ' + drill_number: 'Cvic #' + +# Settings +settings: + title: ' Nastaveni ' + subtitle: 'Sipkami naviguj, Enter/vpravo zmeni, ESC ulozi a zavre' + target_wpm: 'Cilovy WPM' + theme: 'Motiv' + word_count: 'Pocet slov' + ui_language: 'Jazyk rozhrani' + dictionary_language: 'Jazyk slovniku' + keyboard_layout: 'Rozlozeni klaves' + code_language: 'Programovaci jazyk' + code_downloads: 'Stahovani kodu' + on: 'Zapnuto' + off: 'Vypnuto' + code_download_dir: 'Adresar stahovani kodu' + snippets_per_repo: 'Fragmenty na repo' + unlimited: 'Bez limitu' + download_code_now: 'Stahnout kod nyni' + run_downloader: 'Spustit stahovani' + passage_downloads: 'Stahovani textu' + passage_download_dir: 'Adresar stahovani textu' + paragraphs_per_book: 'Odstavce na knihu' + whole_book: 'Cela kniha' + download_passages_now: 'Stahnout texty nyni' + export_path: 'Cesta exportu' + export_data: 'Exportovat data' + export_now: 'Exportovat nyni' + import_path: 'Cesta importu' + import_data: 'Importovat data' + import_now: 'Importovat nyni' + hint_save_back: '[ESC] Ulozit a zpet' + hint_change_value: '[Enter/sipky] Zmenit hodnotu' + hint_edit_path: '[Enter na ceste] Upravit' + hint_move: '[←→] Posunout' + hint_tab_complete: '[Tab] Doplnit (na konci)' + hint_confirm: '[Enter] Potvrdit' + hint_cancel: '[Esc] Zrusit' + success_title: ' Uspech ' + error_title: ' Chyba ' + press_any_key: 'Stiskni libovolnou klavesu' + file_exists_title: ' Soubor existuje ' + file_exists: 'Na teto ceste jiz soubor existuje.' + overwrite_rename: '[d] Prepsat [r] Prejmenovat [Esc] Zrusit' + erase_warning: 'Toto smaze vase aktualni data.' + export_first: 'Nejprve exportujte, pokud je chcete zachovat.' + proceed_yn: 'Pokracovat? (a/n)' + confirm_import_title: ' Potvrdit import ' + +# Selection screens +select: + dictionary_language_title: ' Vybrat jazyk slovniku ' + keyboard_layout_title: ' Vybrat rozlozeni klaves ' + code_language_title: ' Vybrat programovaci jazyk ' + passage_source_title: ' Vybrat zdroj textu ' + ui_language_title: ' Vybrat jazyk rozhrani ' + more_above: '... %{count} vice vyse ...' + more_below: '... %{count} vice nize ...' + current: ' (aktualni)' + disabled: ' (vypnuto)' + enabled_default: ' (zapnuto, vychozi: %{layout})' + enabled: ' (zapnuto)' + disabled_blocked: ' (vypnuto: zablokovano)' + built_in: ' (vestaveny)' + cached: ' (v pameti)' + disabled_download: ' (vypnuto: nutne stahnout)' + download_required: ' (nutne stahnout)' + hint_navigate: '[Nahoru/Dolu/PgUp/PgDn] Navigovat' + hint_confirm: '[Enter] Potvrdit' + hint_back: '[ESC] Zpet' + language_resets_layout: 'Vyber jazyka obnovi rozlozeni klaves na vychozi pro dany jazyk.' + layout_no_language_change: 'Zmena rozlozeni nemeni jazyk slovniku.' + disabled_network_notice: 'Nektere jazyky jsou vypnute: povolte sitove stahovani v nastaveni.' + disabled_sources_notice: 'Nektere zdroje jsou vypnute: povolte sitove stahovani v nastaveni.' + passage_all: 'Vse (vestavene + vsechny knihy)' + passage_builtin: 'Pouze vestavene texty' + passage_book_prefix: 'Kniha: %{title}' + +# Progress +progress: + overall_key_progress: 'Celkovy postup klaves' + unlocked_mastered: '%{unlocked}/%{total} odemcenych (%{mastered} zvladnutych)' + +# Skill tree +skill_tree: + title: ' Strom dovednosti ' + locked: 'Zamceny' + unlocked: 'odemceny' + mastered: 'zvladnuty' + in_progress: 'probihajici' + complete: 'dokonceny' + locked_status: 'zamceny' + locked_notice: 'Dokonci %{count} zakladnich pismen pro odemknuti vetvi' + branches_separator: 'Vetve (dostupne po %{count} zakladnich pismenech)' + unlocked_letters: 'Odemceno %{unlocked}/%{total} pismen' + level: 'Uroven %{current}/%{total}' + level_zero: 'Uroven 0/%{total}' + in_focus: ' v zamereni' + hint_navigate: '[↑↓/jk] Navigovat' + hint_scroll: '[PgUp/PgDn nebo Ctrl+U/Ctrl+D] Rolovat' + hint_back: '[q] Zpet' + hint_unlock: '[Enter] Odemknout' + hint_start_drill: '[Enter] Spustit cviceni' + unlock_msg_1: 'Po odemknuti bude vychozi adaptivni cviceni zahrovat klavesy z teto vetve.' + unlock_msg_2: 'Pokud se chces zamerit jen na tuto vetev, spust cviceni primo ze stromu.' + confirm_unlock: 'Odemknout %{branch}?' + confirm_yn: '[y] Odemknout [n/ESC] Zrusit' + lvl_prefix: 'Ur' + branch_primary_letters: 'Zakladni pismena' + branch_capital_letters: 'Velka pismena' + branch_numbers: 'Cislice 0-9' + branch_prose_punctuation: 'Interpunkce' + branch_whitespace: 'Bile znaky' + branch_code_symbols: 'Symboly kodu' + level_frequency_order: 'Poradi cetnosti' + level_common_sentence_capitals: 'Bezna velka pismena vet' + level_name_capitals: 'Velka pismena jmen' + level_remaining_capitals: 'Zbyvajici velka pismena' + level_common_digits: 'Bezne cislice' + level_all_digits: 'Vsechny cislice' + level_essential: 'Zakladni' + level_common: 'Bezne' + level_expressive: 'Expresivni' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/odsazeni' + level_arithmetic_assignment: 'Aritmetika a prirazeni' + level_grouping: 'Seskupovani' + level_logic_reference: 'Logika a reference' + level_special: 'Specialni' + +# Milestones +milestones: + unlock_title: ' Klavesa odemcena! ' + mastery_title: ' Klavesa zvladnuta! ' + branches_title: ' Nove vetve dostupne! ' + branch_complete_title: ' Vetev dokoncena! ' + all_unlocked_title: ' Vsechny klavesy odemceny! ' + all_mastered_title: ' Uplne zvladnuti klavesnice! ' + unlocked: 'odemcena' + mastered: 'zvladnuta' + use_finger: 'Pouzij %{finger}' + hold_right_shift: 'Drz pravy Shift (pravy malicek)' + hold_left_shift: 'Drz levy Shift (levy malicek)' + congratulations_all_letters: 'Gratulujeme! Zvladl jsi vsech %{count} zakladnich pismen' + new_branches_available: 'Nove vetve dovednosti jsou nyni dostupne:' + visit_skill_tree: 'Navstiv strom dovednosti pro odemknuti nove vetve' + and_start_training: 'a zacni trenovat!' + open_skill_tree: 'Stiskni [t] pro otevreni stromu dovednosti' + branch_complete_msg: 'Dokoncil jsi vetev %{branch}!' + all_levels_mastered: 'Vsech %{count} urovni zvladnuto.' + all_keys_confident: 'Kazda klavesa v teto vetvi je na plne jistote.' + all_unlocked_msg: 'Odemkl jsi kazdou klavesu na klavesnici!' + all_unlocked_desc: 'Kazdy znak, symbol a modifikator je nyni dostupny ve tvych cvicenich.' + keep_practicing_mastery: 'Pokracuj v cviceni pro budovani zbehlosti — az kazda klavesa dosahne plne' + confidence_complete: 'jistoty, dosahnes uplneho zvladnuti klavesnice!' + all_mastered_msg: 'Gratulujeme — dosahl jsi uplneho zvladnuti klavesnice!' + all_mastered_desc: 'Kazda klavesa na klavesnici je na maximalni jistote.' + mastery_takes_practice: 'Zbehlost neni cil — vyzaduje prubezne cviceni.' + keep_drilling: 'Pokracuj v cviceni pro udrzeni sve urovne.' + hint_skill_tree_continue: '[t] Otevrit strom [Jina klavesa] Pokracovat' + hint_any_key: 'Stiskni libovolnou klavesu pro pokracovani' + input_blocked: 'Vstup docasne zablokovany (%{ms}ms zbyva)' + unlock_msg_1: 'Skvela prace! Pokracuj v rozvoji svych dovednosti.' + unlock_msg_2: 'Dalsi klavesa ve tvem arsenalu!' + unlock_msg_3: 'Tvoje klavesnice roste! Tak drzet.' + unlock_msg_4: 'O krok bliz k uplnemu zvladnuti klavesnice!' + mastery_msg_1: 'Tato klavesa je nyni na plne jistote!' + mastery_msg_2: 'Tuto klavesu mas v malicku!' + mastery_msg_3: 'Svalova pamet uzamcena!' + mastery_msg_4: 'Dalsi klavesa pokorena!' + +# Keyboard explorer +keyboard: + title: ' Klavesnice ' + subtitle: 'Stiskni libovolnou klavesu nebo klikni na klavesu' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigovat' + hint_back: '[q/ESC] Zpet' + key_label: 'Klavesa: ' + finger_label: 'Prst: ' + hand_left: 'Levy' + hand_right: 'Pravy' + finger_index: 'Ukazovacek' + finger_middle: 'Prostrednicek' + finger_ring: 'Prstenik' + finger_pinky: 'Malicek' + finger_thumb: 'Palec' + overall_accuracy: ' Celkova presnost: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Hodnocena presnost: %{correct}/%{total} (%{pct}%%)' + confidence: 'Jistota: ' + no_data: 'Zatim zadna data' + no_data_short: 'Zadna data' + key_details: ' Detaily klavesy ' + key_details_char: ' Detaily klavesy: ''%{ch}'' ' + key_details_name: ' Detaily klavesy: %{name} ' + press_key_hint: 'Stiskni klavesu pro zobrazeni detailu' + shift_label: 'Shift: ' + shift_no: 'Ne' + overall_avg_time: 'Prumerny cas: ' + overall_best_time: 'Nejlepsi cas: ' + overall_samples: 'Vzorky: ' + overall_accuracy_label: 'Celkova presnost: ' + branch_label: 'Vetev: ' + level_label: 'Uroven: ' + built_in_key: 'Vestavena klavesa' + unlocked_label: 'Odemcena: ' + yes: 'Ano' + no: 'Ne' + in_focus_label: 'V zamereni?: ' + mastery_label: 'Zbehlost: ' + mastery_locked: 'Zamcena' + ranked_avg_time: 'Hodnoceny prum cas: ' + ranked_best_time: 'Hodnoceny nejl cas: ' + ranked_samples: 'Hodnocene vzorky: ' + ranked_accuracy_label: 'Hodnocena presnost: ' + +# Intro dialogs +intro: + passage_title: ' Nastaveni stahovani textu ' + code_title: ' Nastaveni stahovani kodu ' + enable_downloads: 'Povolit sitove stahovani' + download_dir: 'Adresar stahovani' + paragraphs_per_book: 'Odstavce na knihu (0 = cela)' + whole_book: 'cela kniha' + snippets_per_repo: 'Fragmenty na repo (0 = bez limitu)' + unlimited: 'bez limitu' + start_passage_drill: 'Spustit cviceni textu' + start_code_drill: 'Spustit cviceni kodu' + confirm: 'Potvrdit' + hint_navigate: '[Nahoru/Dolu] Navigovat' + hint_adjust: '[Vlevo/Vpravo] Upravit' + hint_edit: '[Pis/Backspace] Editovat' + hint_confirm: '[Enter] Potvrdit' + hint_cancel: '[ESC] Zrusit' + preparing_download: 'Pripravuji stahovani...' + download_passage_title: ' Stahuji zdroj textu ' + download_code_title: ' Stahuji zdroj kodu ' + book_label: ' Kniha: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bajtu' + downloaded_bytes: 'Stazeno: %{bytes} bajtu' + downloading_book_progress: 'Stahuji knihu: [%{bar}] %{downloaded}/%{total} bajtu' + downloading_book_bytes: 'Stahuji knihu: %{bytes} bajtu' + downloading_code_progress: 'Stahuji: [%{bar}] %{downloaded}/%{total} bajtu' + downloading_code_bytes: 'Stahuji: %{bytes} bajtu' + current_book: 'Aktualni: %{name} (kniha %{done}/%{total})' + current_repo: 'Aktualni: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr muze stahovat texty z Project Gutenberg pro cviceni psani.' + passage_instructions_2: 'Knihy se stahuji jednou a ukladaji lokalne.' + passage_instructions_3: 'Nastav moznosti stahovani nize a pak spust cviceni textu.' + code_instructions_1: 'keydr muze stahovat open-source kod z GitHubu pro cviceni psani.' + code_instructions_2: 'Kod se stahuje jednou a uklada lokalne.' + code_instructions_3: 'Nastav moznosti stahovani nize a pak spust cviceni kodu.' + +# Status messages (from app.rs) +status: + recovery_files: 'Nalezeny obnovovaci soubory z preruseneho importu. Data mohou byt nekonzistentni — zvaz opetovny import.' + dir_not_exist: 'Adresar neexistuje: %{path}' + no_data_store: 'Datove uloziste neni k dispozici' + serialization_error: 'Chyba serializace: %{error}' + exported_to: 'Exportovano do %{path}' + export_failed: 'Export selhal: %{error}' + could_not_read: 'Nelze precist soubor: %{error}' + invalid_export: 'Neplatny exportni soubor: %{error}' + unsupported_version: 'Nepodporovana verze exportu: %{got} (ocekavana %{expected})' + import_failed: 'Import selhal: %{error}' + imported_theme_fallback: 'Importovano uspesne (motiv ''%{theme}'' nenalezen, pouzivam vychozi)' + imported_success: 'Importovano uspesne' + adaptive_unavailable: 'Adaptivni hodnoceny rezim nedostupny: %{error}' + switched_to: 'Prepnuto na %{name}' + layout_changed: 'Rozlozeni zmeneno na %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Neznamy jazyk: %{key}' + unknown_layout: 'Nezname rozlozeni klaves: %{key}' + unsupported_pair: 'Nepodporovany par jazyk/rozlozeni: %{language} + %{layout}' + language_blocked: 'Jazyk blokovan urovni podpory: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Zpet' diff --git a/locales/da.yml b/locales/da.yml new file mode 100644 index 0000000..45e239d --- /dev/null +++ b/locales/da.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminal Skrivetraener' + adaptive_drill: 'Adaptiv oevelse' + adaptive_drill_desc: 'Fonetiske ord med adaptiv bogstavoplasning' + code_drill: 'Kodeoevelse' + code_drill_desc: 'Oev kodersyntaks' + passage_drill: 'Tekstoevelse' + passage_drill_desc: 'Skriv passager fra boeger' + skill_tree: 'Faerdighedstrae' + skill_tree_desc: 'Se fremskridtsgrene og start oevelser' + keyboard: 'Tastatur' + keyboard_desc: 'Udforsk tastaturlayout og tasterstatistik' + statistics: 'Statistik' + statistics_desc: 'Se din skrivestatistik' + settings: 'Indstillinger' + settings_desc: 'Konfigurer keydr' + day_streak: ' | %{days} dages raekke' + key_progress: ' Tastefremskridt %{unlocked}/%{total} (%{mastered} mestrede) | Maal %{target} WPM%{streak}' + hint_start: '[1-3] Start' + hint_skill_tree: '[t] Faerdighedstrae' + hint_keyboard: '[b] Tastatur' + hint_stats: '[s] Statistik' + hint_settings: '[c] Indstillinger' + hint_quit: '[q] Afslut' + +# Drill screen +drill: + title: ' Oevelse ' + mode_adaptive: 'Adaptiv' + mode_code: 'Kode (Urangeret)' + mode_passage: 'Tekst (Urangeret)' + focus_char: 'Fokus: ''%{ch}''' + focus_bigram: 'Fokus: "%{bigram}"' + focus_both: 'Fokus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Noej' + header_err: 'Fejl' + code_source: ' Kodekilde ' + passage_source: ' Tekstkilde ' + footer: '[ESC] Afslut oevelse [Backspace] Slet' + keys_reenabled: 'Taster genaktiveret efter %{ms}ms' + hint_end: '[ESC] Afslut oevelse' + hint_backspace: '[Backspace] Slet' + +# Dashboard / drill result +dashboard: + title: ' Oevelse faerdig ' + results: 'Resultater' + unranked_note_prefix: ' (Urangeret' + unranked_note_suffix: ' taeller ikke i faerdighedstraeet)' + speed: ' Hastighed: ' + accuracy_label: ' Noejagtighed: ' + time_label: ' Tid: ' + errors_label: ' Fejl: ' + correct_detail: ' (%{correct}/%{total} korrekte)' + input_blocked: ' Indtastning midlertidigt blokeret ' + input_blocked_ms: '(%{ms}ms tilbage)' + hint_continue: '[c/Enter/Space] Fortsaet' + hint_retry: '[r] Proev igen' + hint_menu: '[q] Menu' + hint_stats: '[s] Statistik' + hint_delete: '[x] Slet' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistik ' + wpm: 'WPM: ' + target: 'Maal: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Noejagtighed: ' + progress: 'Fremskridt: ' + correct: 'Korrekte: ' + errors: 'Fejl: ' + time: 'Tid: ' + last_drill: ' Seneste oevelse ' + vs_avg: ' vs gns: ' + +# Statistics dashboard +stats: + title: ' Statistik ' + empty: 'Ingen oevelser gennemfoert endnu. Begynd at skrive!' + tab_dashboard: '[1] Dashboard' + tab_history: '[2] Historik' + tab_activity: '[3] Aktivitet' + tab_accuracy: '[4] Noejagtighed' + tab_timing: '[5] Timing' + tab_ngrams: '[6] N-grammer' + hint_back: '[ESC] Tilbage' + hint_next_tab: '[Tab] Naeste fane' + hint_switch_tab: '[1-6] Skift fane' + hint_navigate: '[j/k] Naviger' + hint_page: '[PgUp/PgDn] Side' + hint_delete: '[x] Slet' + summary_title: ' Oversigt ' + drills: ' Oevelser: ' + avg_wpm: ' Gns. WPM: ' + best_wpm: ' Bedste WPM: ' + accuracy_label: ' Noejagtighed: ' + total_time: ' Samlet tid: ' + wpm_chart_title: ' WPM per oevelse (Seneste 20, Maal: %{target}) ' + accuracy_chart_title: ' Noejagtighed %% (Seneste 50 oevelser) ' + chart_drill: 'Oevelse #' + chart_accuracy_pct: 'Noejagtighed %%' + sessions_title: ' Seneste sessioner ' + session_header: ' # WPM Raa Noej%% Tid Dato/Tid Tilstand Rangeret Delvis' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Slet session #%{idx}? (y/n)' + confirm_title: ' Bekraeft ' + yes: 'ja' + no: 'nej' + keyboard_accuracy_title: ' Tastatur noejagtighed %% ' + keyboard_timing_title: ' Tastatur timing (ms) ' + slowest_keys_title: ' Langsomste taster (ms) ' + fastest_keys_title: ' Hurtigste taster (ms) ' + worst_accuracy_title: ' Vaerste noejagtighed (%%) ' + best_accuracy_title: ' Bedste noejagtighed (%%) ' + not_enough_data: ' Ikke nok data' + streaks_title: ' Raekker ' + current_streak: ' Nuvaerende: ' + best_streak: ' Bedste: ' + active_days: ' Aktive dage: ' + top_days_none: ' Topdage: ingen' + top_days: ' Topdage: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Noej: %{pct}%%' + keys_label: ' Taster: %{unlocked}/%{total} (%{mastered} mestrede)' + ngram_empty: 'Gennemfoer nogle adaptive oevelser for at se n-gram data' + ngram_header_speed_narrow: ' Bgrm Hast Forv Anom%' + ngram_header_error_narrow: ' Bgrm Fejl Stp Freq Forv Anom%' + ngram_header_speed: ' Bigram Hast Forvent Stikpr. Anom%' + ngram_header_error: ' Bigram Fejl Stikpr. Freq Forvent Anom%' + focus_title: ' Aktivt fokus ' + focus_char_label: ' Fokus: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'fejl' + anomaly_speed: 'hastighed' + focus_detail_both: ' Tegn ''%{ch}'': svageste tast | Bigram %{label}: %{type}-anomali %{pct}%%' + focus_detail_char_only: ' Tegn ''%{ch}'': svageste tast, ingen bekraeftede bigram-anomalier' + focus_detail_bigram_only: ' (%{type}-anomali: %{pct}%%)' + focus_empty: ' Gennemfoer nogle adaptive oevelser for at se fokusdata' + error_anomalies_title: ' Fejl-anomalier (%{count}) ' + no_error_anomalies: ' Ingen fejl-anomalier opdaget' + speed_anomalies_title: ' Hastigheds-anomalier (%{count}) ' + no_speed_anomalies: ' Ingen hastigheds-anomalier opdaget' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Gevinst: %{value}' + gain_interval: ' (hver 50.)' + focus_char_value: 'Tegn ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Daglig aktivitet (Sessioner per dag) ' + jan: 'Jan' + feb: 'Feb' + mar: 'Mar' + apr: 'Apr' + may: 'Maj' + jun: 'Jun' + jul: 'Jul' + aug: 'Aug' + sep: 'Sep' + oct: 'Okt' + nov: 'Nov' + dec: 'Dec' + +# Chart +chart: + wpm_over_time: ' WPM over tid ' + drill_number: 'Oevelse #' + +# Settings +settings: + title: ' Indstillinger ' + subtitle: 'Piletaster til navigation, Enter/Hoejre for at aendre, ESC for at gemme' + target_wpm: 'Maal-WPM' + theme: 'Tema' + word_count: 'Antal ord' + ui_language: 'Sprog (UI)' + dictionary_language: 'Ordbogssprog' + keyboard_layout: 'Tastaturlayout' + code_language: 'Kodesprog' + code_downloads: 'Kode-downloads' + on: 'Til' + off: 'Fra' + code_download_dir: 'Kode-downloadmappe' + snippets_per_repo: 'Uddrag per repo' + unlimited: 'Ubegreanset' + download_code_now: 'Download kode nu' + run_downloader: 'Start download' + passage_downloads: 'Tekst-downloads' + passage_download_dir: 'Tekst-downloadmappe' + paragraphs_per_book: 'Afsnit per bog' + whole_book: 'Hele bogen' + download_passages_now: 'Download tekster nu' + export_path: 'Eksportsti' + export_data: 'Eksporter data' + export_now: 'Eksporter nu' + import_path: 'Importsti' + import_data: 'Importer data' + import_now: 'Importer nu' + hint_save_back: '[ESC] Gem & tilbage' + hint_change_value: '[Enter/pile] AEndr vaerdi' + hint_edit_path: '[Enter paa sti] Rediger' + hint_move: '[←→] Flyt' + hint_tab_complete: '[Tab] Fuldfoer (i slutningen)' + hint_confirm: '[Enter] Bekraeft' + hint_cancel: '[Esc] Annuller' + success_title: ' Succes ' + error_title: ' Fejl ' + press_any_key: 'Tryk paa en tast' + file_exists_title: ' Filen findes ' + file_exists: 'Der findes allerede en fil paa denne sti.' + overwrite_rename: '[d] Overskriv [r] Omdoeb [Esc] Annuller' + erase_warning: 'Dette vil slette dine nuvaerende data.' + export_first: 'Eksporter foerst, hvis du vil beholde dem.' + proceed_yn: 'Fortsaet? (y/n)' + confirm_import_title: ' Bekraeft import ' + +# Selection screens +select: + dictionary_language_title: ' Vaelg ordbogssprog ' + keyboard_layout_title: ' Vaelg tastaturlayout ' + code_language_title: ' Vaelg kodesprog ' + passage_source_title: ' Vaelg tekstkilde ' + ui_language_title: ' Vaelg sprog (UI) ' + more_above: '... %{count} flere ovenfor ...' + more_below: '... %{count} flere nedenfor ...' + current: ' (nuvaerende)' + disabled: ' (deaktiveret)' + enabled_default: ' (aktiveret, standard: %{layout})' + enabled: ' (aktiveret)' + disabled_blocked: ' (deaktiveret: blokeret)' + built_in: ' (indbygget)' + cached: ' (gemt)' + disabled_download: ' (deaktiveret: download kraeves)' + download_required: ' (download kraeves)' + hint_navigate: '[Op/Ned/PgUp/PgDn] Naviger' + hint_confirm: '[Enter] Bekraeft' + hint_back: '[ESC] Tilbage' + language_resets_layout: 'Sprogvalg nulstiller tastaturlayoutet til sprogets standard.' + layout_no_language_change: 'Layoutaendringer aendrer ikke ordbogssproget.' + disabled_network_notice: 'Nogle sprog er deaktiverede: aktiver netvaerksdownloads i intro/indstillinger.' + disabled_sources_notice: 'Nogle kilder er deaktiverede: aktiver netvaerksdownloads i intro/indstillinger.' + passage_all: 'Alle (Indbyggede + alle boeger)' + passage_builtin: 'Kun indbyggede passager' + passage_book_prefix: 'Bog: %{title}' + +# Progress +progress: + overall_key_progress: 'Samlet tastefremskridt' + unlocked_mastered: '%{unlocked}/%{total} laast op (%{mastered} mestrede)' + +# Skill tree +skill_tree: + title: ' Faerdighedstrae ' + locked: 'Laast' + unlocked: 'laast op' + mastered: 'mestret' + in_progress: 'igangvaerende' + complete: 'faerdig' + locked_status: 'laast' + locked_notice: 'Fuldfoor %{count} grundbogstaver for at laase grene op' + branches_separator: 'Grene (tilgaengelige efter %{count} grundbogstaver)' + unlocked_letters: '%{unlocked}/%{total} bogstaver laast op' + level: 'Niveau %{current}/%{total}' + level_zero: 'Niveau 0/%{total}' + in_focus: ' i fokus' + hint_navigate: '[↑↓/jk] Naviger' + hint_scroll: '[PgUp/PgDn eller Ctrl+U/Ctrl+D] Rul' + hint_back: '[q] Tilbage' + hint_unlock: '[Enter] Laas op' + hint_start_drill: '[Enter] Start oevelse' + unlock_msg_1: 'Efter oplaasning blandes oplaaste taster fra denne gren ind i den adaptive oevelse.' + unlock_msg_2: 'Vil du kun oeve denne gren, start en oevelse direkte fra denne gren i Faerdighedstraeet.' + confirm_unlock: 'Laas %{branch} op?' + confirm_yn: '[y] Laas op [n/ESC] Annuller' + lvl_prefix: 'Niv' + branch_primary_letters: 'Grundbogstaver' + branch_capital_letters: 'Store bogstaver' + branch_numbers: 'Tal 0-9' + branch_prose_punctuation: 'Tegnsaetning' + branch_whitespace: 'Mellemrum' + branch_code_symbols: 'Kodesymboler' + level_frequency_order: 'Frekvensraekkefoelge' + level_common_sentence_capitals: 'Almindelige saetningsstorbogst.' + level_name_capitals: 'Navnestorbogstaver' + level_remaining_capitals: 'Oevrige storbogstaver' + level_common_digits: 'Almindelige cifre' + level_all_digits: 'Alle cifre' + level_essential: 'Essentielle' + level_common: 'Almindelige' + level_expressive: 'Udtryksfulde' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Indrykning' + level_arithmetic_assignment: 'Aritmetik & Tildeling' + level_grouping: 'Gruppering' + level_logic_reference: 'Logik & Reference' + level_special: 'Special' + +# Milestones +milestones: + unlock_title: ' Tast laast op! ' + mastery_title: ' Tast mestret! ' + branches_title: ' Nye faerdighetsgrene tilgaengelige! ' + branch_complete_title: ' Gren faerdig! ' + all_unlocked_title: ' Alle taster laast op! ' + all_mastered_title: ' Fuld tastaturmestring! ' + unlocked: 'laast op' + mastered: 'mestret' + use_finger: 'Brug din %{finger}' + hold_right_shift: 'Hold hoejre Shift (hoejre lillefinger)' + hold_left_shift: 'Hold venstre Shift (venstre lillefinger)' + congratulations_all_letters: 'Tillykke! Du har mestret alle %{count} grundbogstaver' + new_branches_available: 'Nye faerdighetsgrene er nu tilgaengelige:' + visit_skill_tree: 'Besoeg Faerdighedstraeet for at laase en ny gren op' + and_start_training: 'og begynd at traene!' + open_skill_tree: 'Tryk [t] for at aabne Faerdighedstraeet nu' + branch_complete_msg: 'Du har fuldfaort grenen %{branch}!' + all_levels_mastered: 'Alle %{count} niveauer mestrede.' + all_keys_confident: 'Hver tast i denne gren har fuld tillid.' + all_unlocked_msg: 'Du har laast hver tast paa tastaturet op!' + all_unlocked_desc: 'Hvert tegn, symbol og modifikator er nu tilgaengelig i dine oevelser.' + keep_practicing_mastery: 'Bliv ved med at oeve for at opbygge mestring — naar hver tast naar fuld' + confidence_complete: 'tillid, har du opnaaat fuldstaendig tastaturmestring!' + all_mastered_msg: 'Tillykke — du har opnaaat fuldstaendig tastaturmestring!' + all_mastered_desc: 'Hver tast paa tastaturet har maksimal tillid.' + mastery_takes_practice: 'Mestring er ikke en destination — det kraever vedvarende oevelse.' + keep_drilling: 'Bliv ved med at oeve for at bevare dit niveau.' + hint_skill_tree_continue: '[t] Faerdighedstrae [Anden tast] Fortsaet' + hint_any_key: 'Tryk paa en tast for at fortsaette' + input_blocked: 'Indtastning midlertidigt blokeret (%{ms}ms tilbage)' + unlock_msg_1: 'Godt klaret! Bliv ved med at opbygge dine skrivefaerdigheder.' + unlock_msg_2: 'Endnu en tast i dit arsenal!' + unlock_msg_3: 'Dit tastatur vokser! Bliv ved.' + unlock_msg_4: 'Et skridt naermere fuld tastaturmestring!' + mastery_msg_1: 'Denne tast har nu fuld tillid!' + mastery_msg_2: 'Du mestrer denne tast perfekt!' + mastery_msg_3: 'Muskelhukommelse forankret!' + mastery_msg_4: 'Endnu en tast erobret!' + +# Keyboard explorer +keyboard: + title: ' Tastatur ' + subtitle: 'Tryk paa en tast eller klik paa en tast' + hint_navigate: '[←→↑↓/hjkl/Tab] Naviger' + hint_back: '[q/ESC] Tilbage' + key_label: 'Tast: ' + finger_label: 'Finger: ' + hand_left: 'Venstre' + hand_right: 'Hoejre' + finger_index: 'Pegefinger' + finger_middle: 'Langfinger' + finger_ring: 'Ringfinger' + finger_pinky: 'Lillefinger' + finger_thumb: 'Tommelfinger' + overall_accuracy: ' Samlet noejagtighed: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Rangeret noejagtighed: %{correct}/%{total} (%{pct}%%)' + confidence: 'Tillid: ' + no_data: 'Ingen data endnu' + no_data_short: 'Ingen data' + key_details: ' Tastdetaljer ' + key_details_char: ' Tastdetaljer: ''%{ch}'' ' + key_details_name: ' Tastdetaljer: %{name} ' + press_key_hint: 'Tryk paa en tast for detaljer' + shift_label: 'Shift: ' + shift_no: 'Nej' + overall_avg_time: 'Samlet gns. tid: ' + overall_best_time: 'Samlet bedste tid: ' + overall_samples: 'Samlet stikproever: ' + overall_accuracy_label: 'Samlet noejagtighed: ' + branch_label: 'Gren: ' + level_label: 'Niveau: ' + built_in_key: 'Indbygget tast' + unlocked_label: 'Laast op: ' + yes: 'Ja' + no: 'Nej' + in_focus_label: 'I fokus?: ' + mastery_label: 'Mestring: ' + mastery_locked: 'Laast' + ranked_avg_time: 'Rangeret gns. tid: ' + ranked_best_time: 'Rangeret bedste tid: ' + ranked_samples: 'Rangerede stikproever: ' + ranked_accuracy_label: 'Rangeret noejagtighed: ' + +# Intro dialogs +intro: + passage_title: ' Tekst-download opsaetning ' + code_title: ' Kode-download opsaetning ' + enable_downloads: 'Aktiver netvaerksdownloads' + download_dir: 'Downloadmappe' + paragraphs_per_book: 'Afsnit per bog (0 = hele)' + whole_book: 'hele bogen' + snippets_per_repo: 'Uddrag per repo (0 = ubegreanset)' + unlimited: 'ubegreanset' + start_passage_drill: 'Start tekstoevelse' + start_code_drill: 'Start kodeoevelse' + confirm: 'Bekraeft' + hint_navigate: '[Op/Ned] Naviger' + hint_adjust: '[Venstre/Hoejre] Juster' + hint_edit: '[Skriv/Backspace] Rediger' + hint_confirm: '[Enter] Bekraeft' + hint_cancel: '[ESC] Annuller' + preparing_download: 'Forbereder download...' + download_passage_title: ' Downloader tekstkilde ' + download_code_title: ' Downloader kodekilde ' + book_label: ' Bog: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bytes' + downloaded_bytes: 'Downloadet: %{bytes} bytes' + downloading_book_progress: 'Downloader aktuel bog: [%{bar}] %{downloaded}/%{total} bytes' + downloading_book_bytes: 'Downloader aktuel bog: %{bytes} bytes' + downloading_code_progress: 'Downloader: [%{bar}] %{downloaded}/%{total} bytes' + downloading_code_bytes: 'Downloader: %{bytes} bytes' + current_book: 'Aktuel: %{name} (bog %{done}/%{total})' + current_repo: 'Aktuel: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr kan downloade passager fra Project Gutenberg til skriveoeving.' + passage_instructions_2: 'Boeger downloades een gang og gemmes lokalt.' + passage_instructions_3: 'Konfigurer downloadindstillinger nedenfor og start en tekstoevelse.' + code_instructions_1: 'keydr kan downloade open source-kode fra GitHub til skriveoeving.' + code_instructions_2: 'Kode downloades een gang og gemmes lokalt.' + code_instructions_3: 'Konfigurer downloadindstillinger nedenfor og start en kodeoevelse.' + +# Status messages (from app.rs) +status: + recovery_files: 'Gendannelsesfiler fundet fra afbrudt import. Data kan vaere inkonsistent — overvaej at importere igen.' + dir_not_exist: 'Mappe findes ikke: %{path}' + no_data_store: 'Intet datalager tilgaengeligt' + serialization_error: 'Serialiseringsfejl: %{error}' + exported_to: 'Eksporteret til %{path}' + export_failed: 'Eksport mislykkedes: %{error}' + could_not_read: 'Kunne ikke laese filen: %{error}' + invalid_export: 'Ugyldig eksportfil: %{error}' + unsupported_version: 'Eksportversion ikke understottet: %{got} (forventet %{expected})' + import_failed: 'Import mislykkedes: %{error}' + imported_theme_fallback: 'Importeret (tema ''%{theme}'' ikke fundet, standard bruges)' + imported_success: 'Importeret' + adaptive_unavailable: 'Adaptiv rangeret tilstand ikke tilgaengelig: %{error}' + switched_to: 'Skiftet til %{name}' + layout_changed: 'Layout aendret til %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Ukendt sprog: %{key}' + unknown_layout: 'Ukendt tastaturlayout: %{key}' + unsupported_pair: 'Ikke-understottet sprog-/layoutpar: %{language} + %{layout}' + language_blocked: 'Sprog blokeret af supportniveau: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Tilbage' diff --git a/locales/es.yml b/locales/es.yml new file mode 100644 index 0000000..bd63f77 --- /dev/null +++ b/locales/es.yml @@ -0,0 +1,457 @@ +# Menú principal +menu: + subtitle: 'Tutor de Mecanografía en Terminal' + adaptive_drill: 'Ejercicio Adaptativo' + adaptive_drill_desc: 'Palabras fonéticas con desbloqueo adaptativo de teclas' + code_drill: 'Ejercicio de Código' + code_drill_desc: 'Practica escribiendo sintaxis de código' + passage_drill: 'Ejercicio de Pasaje' + passage_drill_desc: 'Escribe pasajes de libros' + skill_tree: 'Árbol de Habilidades' + skill_tree_desc: 'Ver ramas de progresión e iniciar ejercicios' + keyboard: 'Teclado' + keyboard_desc: 'Explora la distribución del teclado y estadísticas' + statistics: 'Estadísticas' + statistics_desc: 'Ver tus estadísticas de escritura' + settings: 'Configuración' + settings_desc: 'Configurar keydr' + day_streak: ' | %{days} días seguidos' + key_progress: ' Progreso de Teclas %{unlocked}/%{total} (%{mastered} dominadas) | Objetivo %{target} WPM%{streak}' + hint_start: '[1-3] Iniciar' + hint_skill_tree: '[t] Árbol de Habilidades' + hint_keyboard: '[b] Teclado' + hint_stats: '[s] Estadísticas' + hint_settings: '[c] Configuración' + hint_quit: '[q] Salir' + +# Pantalla de ejercicio +drill: + title: ' Ejercicio ' + mode_adaptive: 'Adaptativo' + mode_code: 'Código (Sin rango)' + mode_passage: 'Pasaje (Sin rango)' + focus_char: 'Foco: ''%{ch}''' + focus_bigram: 'Foco: "%{bigram}"' + focus_both: 'Foco: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Pre' + header_err: 'Err' + code_source: ' Fuente de código ' + passage_source: ' Fuente del pasaje ' + footer: '[ESC] Fin [Backspace] Borrar' + keys_reenabled: 'Teclas reactivadas en %{ms}ms' + hint_end: '[ESC] Fin del ejercicio' + hint_backspace: '[Backspace] Borrar' + +# Panel / resultado del ejercicio +dashboard: + title: ' Ejercicio Completo ' + results: 'Resultados' + unranked_note_prefix: ' (Sin rango' + unranked_note_suffix: ' no cuenta para el árbol de habilidades)' + speed: ' Velocidad: ' + accuracy_label: ' Precisión: ' + time_label: ' Tiempo: ' + errors_label: ' Errores: ' + correct_detail: ' (%{correct}/%{total} correctos)' + input_blocked: ' Entrada bloqueada temporalmente ' + input_blocked_ms: '(%{ms}ms restantes)' + hint_continue: '[c/Enter/Space] Continuar' + hint_retry: '[r] Reintentar' + hint_menu: '[q] Menú' + hint_stats: '[s] Estadísticas' + hint_delete: '[x] Eliminar' + +# Barra lateral de estadísticas (durante el ejercicio) +sidebar: + title: ' Estadísticas ' + wpm: 'WPM: ' + target: 'Objetivo: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Precisión: ' + progress: 'Progreso: ' + correct: 'Correcto: ' + errors: 'Errores: ' + time: 'Tiempo: ' + last_drill: ' Último Ejercicio ' + vs_avg: ' vs prom: ' + +# Panel de estadísticas +stats: + title: ' Estadísticas ' + empty: 'Aún no hay ejercicios completados. ¡Empieza a escribir!' + tab_dashboard: '[1] Panel' + tab_history: '[2] Historial' + tab_activity: '[3] Actividad' + tab_accuracy: '[4] Precisión' + tab_timing: '[5] Tiempos' + tab_ngrams: '[6] N-gramas' + hint_back: '[ESC] Volver' + hint_next_tab: '[Tab] Siguiente pestaña' + hint_switch_tab: '[1-6] Cambiar pestaña' + hint_navigate: '[j/k] Navegar' + hint_page: '[PgUp/PgDn] Página' + hint_delete: '[x] Eliminar' + summary_title: ' Resumen ' + drills: ' Ejercicios: ' + avg_wpm: ' WPM Prom: ' + best_wpm: ' Mejor WPM: ' + accuracy_label: ' Precisión: ' + total_time: ' Tiempo total: ' + wpm_chart_title: ' WPM por Ejercicio (Últimos 20, Objetivo: %{target}) ' + accuracy_chart_title: ' Precisión %% (Últimos 50 Ejercicios) ' + chart_drill: 'Ejercicio #' + chart_accuracy_pct: 'Precisión %%' + sessions_title: ' Sesiones Recientes ' + session_header: ' # WPM Raw Pre%% Tiempo Fecha/Hora Modo Rango Parcial' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: '¿Eliminar sesión #%{idx}? (y/n)' + confirm_title: ' Confirmar ' + yes: 'sí' + no: 'no' + keyboard_accuracy_title: ' Precisión del Teclado %% ' + keyboard_timing_title: ' Tiempos del Teclado (ms) ' + slowest_keys_title: ' Teclas más Lentas (ms) ' + fastest_keys_title: ' Teclas más Rápidas (ms) ' + worst_accuracy_title: ' Peor Precisión (%%) ' + best_accuracy_title: ' Mejor Precisión (%%) ' + not_enough_data: ' Datos insuficientes' + streaks_title: ' Rachas ' + current_streak: ' Actual: ' + best_streak: ' Mejor: ' + active_days: ' Días activos: ' + top_days_none: ' Mejores días: ninguno' + top_days: ' Mejores días: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Pre: %{pct}%%' + keys_label: ' Teclas: %{unlocked}/%{total} (%{mastered} dominadas)' + ngram_empty: 'Completa ejercicios adaptativos para ver datos de n-gramas' + ngram_header_speed_narrow: ' Bgrm Vel Esper Anom%' + ngram_header_error_narrow: ' Bgrm Err Mst Tasa Esp Anom%' + ngram_header_speed: ' Bigrama Vel Esper Muestras Anom%' + ngram_header_error: ' Bigrama Errores Muestras Tasa Esper Anom%' + focus_title: ' Foco Activo ' + focus_char_label: ' Foco: ' + focus_bigram_value: 'Bigrama %{label}' + focus_plus: ' + ' + anomaly_error: 'errores' + anomaly_speed: 'velocidad' + focus_detail_both: ' Carácter ''%{ch}'': tecla más débil | Bigrama %{label}: anomalía de %{type} %{pct}%%' + focus_detail_char_only: ' Carácter ''%{ch}'': tecla más débil, sin anomalías de bigrama confirmadas' + focus_detail_bigram_only: ' (anomalía de %{type}: %{pct}%%)' + focus_empty: ' Completa ejercicios adaptativos para ver datos de foco' + error_anomalies_title: ' Anomalías de Error (%{count}) ' + no_error_anomalies: ' No se detectaron anomalías de error' + speed_anomalies_title: ' Anomalías de Velocidad (%{count}) ' + no_speed_anomalies: ' No se detectaron anomalías de velocidad' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Gan: %{value}' + gain_interval: ' (cada 50)' + focus_char_value: 'Carácter ''%{ch}''' + +# Mapa de actividad +heatmap: + title: ' Actividad Diaria (Sesiones por Día) ' + jan: 'Ene' + feb: 'Feb' + mar: 'Mar' + apr: 'Abr' + may: 'May' + jun: 'Jun' + jul: 'Jul' + aug: 'Ago' + sep: 'Sep' + oct: 'Oct' + nov: 'Nov' + dec: 'Dic' + +# Gráfico +chart: + wpm_over_time: ' WPM a lo largo del tiempo ' + drill_number: 'Ejercicio #' + +# Configuración +settings: + title: ' Configuración ' + subtitle: 'Usa las flechas para navegar, Enter/Derecha para cambiar, ESC para guardar y salir' + target_wpm: 'WPM Objetivo' + theme: 'Tema' + word_count: 'Cantidad de Palabras' + ui_language: 'Idioma de Interfaz' + dictionary_language: 'Idioma del Diccionario' + keyboard_layout: 'Distribución de Teclado' + code_language: 'Lenguaje de Código' + code_downloads: 'Descargas de Código' + on: 'Sí' + off: 'No' + code_download_dir: 'Dir. Descarga de Código' + snippets_per_repo: 'Fragmentos por Repo' + unlimited: 'Ilimitado' + download_code_now: 'Descargar Código Ahora' + run_downloader: 'Ejecutar descargador' + passage_downloads: 'Descargas de Pasajes' + passage_download_dir: 'Dir. Descarga de Pasajes' + paragraphs_per_book: 'Párrafos por Libro' + whole_book: 'Libro completo' + download_passages_now: 'Descargar Pasajes Ahora' + export_path: 'Ruta de Exportación' + export_data: 'Exportar Datos' + export_now: 'Exportar ahora' + import_path: 'Ruta de Importación' + import_data: 'Importar Datos' + import_now: 'Importar ahora' + hint_save_back: '[ESC] Guardar y volver' + hint_change_value: '[Enter/flechas] Cambiar valor' + hint_edit_path: '[Enter en ruta] Editar' + hint_move: '[←→] Mover' + hint_tab_complete: '[Tab] Completar (al final)' + hint_confirm: '[Enter] Confirmar' + hint_cancel: '[Esc] Cancelar' + success_title: ' Éxito ' + error_title: ' Fallo ' + press_any_key: 'Presiona cualquier tecla' + file_exists_title: ' Archivo Existente ' + file_exists: 'Ya existe un archivo en esta ruta.' + overwrite_rename: '[d] Sobrescribir [r] Renombrar [Esc] Cancelar' + erase_warning: 'Esto borrará tus datos actuales.' + export_first: 'Exporta primero si deseas conservarlos.' + proceed_yn: '¿Continuar? (y/n)' + confirm_import_title: ' Confirmar Importación ' + +# Pantallas de selección +select: + dictionary_language_title: ' Seleccionar Idioma del Diccionario ' + keyboard_layout_title: ' Seleccionar Distribución de Teclado ' + code_language_title: ' Seleccionar Lenguaje de Código ' + passage_source_title: ' Seleccionar Fuente de Pasajes ' + ui_language_title: ' Seleccionar Idioma de Interfaz ' + more_above: '... %{count} más arriba ...' + more_below: '... %{count} más abajo ...' + current: ' (actual)' + disabled: ' (desactivado)' + enabled_default: ' (activado, predeterminado: %{layout})' + enabled: ' (activado)' + disabled_blocked: ' (desactivado: bloqueado)' + built_in: ' (incluido)' + cached: ' (en caché)' + disabled_download: ' (desactivado: requiere descarga)' + download_required: ' (requiere descarga)' + hint_navigate: '[Up/Down/PgUp/PgDn] Navegar' + hint_confirm: '[Enter] Confirmar' + hint_back: '[ESC] Volver' + language_resets_layout: 'Seleccionar un idioma restablece la distribución a la predeterminada de ese idioma.' + layout_no_language_change: 'Cambiar distribución no cambia el idioma del diccionario.' + disabled_network_notice: 'Algunos idiomas están desactivados: activa las descargas en intro/configuración.' + disabled_sources_notice: 'Algunas fuentes están desactivadas: activa las descargas en intro/configuración.' + passage_all: 'Todos (Incluidos + todos los libros)' + passage_builtin: 'Solo pasajes incluidos' + passage_book_prefix: 'Libro: %{title}' + +# Progreso +progress: + overall_key_progress: 'Progreso General de Teclas' + unlocked_mastered: '%{unlocked}/%{total} desbloqueadas (%{mastered} dominadas)' + +# Árbol de habilidades +skill_tree: + title: ' Árbol de Habilidades ' + locked: 'Bloqueado' + unlocked: 'desbloqueado' + mastered: 'dominado' + in_progress: 'en progreso' + complete: 'completo' + locked_status: 'bloqueado' + locked_notice: 'Completa %{count} letras primarias para desbloquear ramas' + branches_separator: 'Ramas (disponibles tras %{count} letras primarias)' + unlocked_letters: 'Desbloqueadas %{unlocked}/%{total} letras' + level: 'Nivel %{current}/%{total}' + level_zero: 'Nivel 0/%{total}' + in_focus: ' en foco' + hint_navigate: '[↑↓/jk] Navegar' + hint_scroll: '[PgUp/PgDn o Ctrl+U/Ctrl+D] Desplazar' + hint_back: '[q] Volver' + hint_unlock: '[Enter] Desbloquear' + hint_start_drill: '[Enter] Iniciar Ejercicio' + unlock_msg_1: 'Una vez desbloqueado, el ejercicio adaptativo incluirá teclas de esta rama que estén desbloqueadas.' + unlock_msg_2: 'Si quieres enfocarte solo en esta rama, inicia un ejercicio directamente desde esta rama en el Árbol de Habilidades.' + confirm_unlock: '¿Desbloquear %{branch}?' + confirm_yn: '[y] Desbloquear [n/ESC] Cancelar' + lvl_prefix: 'Niv' + branch_primary_letters: 'Letras Primarias' + branch_capital_letters: 'Letras Mayúsculas' + branch_numbers: 'Números 0-9' + branch_prose_punctuation: 'Puntuación de Prosa' + branch_whitespace: 'Espacios en Blanco' + branch_code_symbols: 'Símbolos de Código' + level_frequency_order: 'Orden por Frecuencia' + level_common_sentence_capitals: 'Mayúsculas Comunes de Oración' + level_name_capitals: 'Mayúsculas de Nombres' + level_remaining_capitals: 'Mayúsculas Restantes' + level_common_digits: 'Dígitos Comunes' + level_all_digits: 'Todos los Dígitos' + level_essential: 'Esencial' + level_common: 'Común' + level_expressive: 'Expresivo' + level_enter_return: 'Enter/Retorno' + level_tab_indent: 'Tab/Sangría' + level_arithmetic_assignment: 'Aritmética y Asignación' + level_grouping: 'Agrupación' + level_logic_reference: 'Lógica y Referencia' + level_special: 'Especial' + +# Hitos +milestones: + unlock_title: ' ¡Tecla Desbloqueada! ' + mastery_title: ' ¡Tecla Dominada! ' + branches_title: ' ¡Nuevas Ramas Disponibles! ' + branch_complete_title: ' ¡Rama Completada! ' + all_unlocked_title: ' ¡Todas las Teclas Desbloqueadas! ' + all_mastered_title: ' ¡Dominio Total del Teclado! ' + unlocked: 'desbloqueada' + mastered: 'dominada' + use_finger: 'Usa tu dedo %{finger}' + hold_right_shift: 'Mantén Shift Derecho (meñique derecho)' + hold_left_shift: 'Mantén Shift Izquierdo (meñique izquierdo)' + congratulations_all_letters: '¡Felicidades! Has dominado las %{count} letras primarias' + new_branches_available: 'Nuevas ramas de habilidades están disponibles:' + visit_skill_tree: 'Visita el Árbol de Habilidades para desbloquear una nueva rama' + and_start_training: '¡y empieza a entrenar!' + open_skill_tree: 'Presiona [t] para abrir el Árbol de Habilidades' + branch_complete_msg: '¡Has completado la rama %{branch}!' + all_levels_mastered: 'Los %{count} niveles dominados.' + all_keys_confident: 'Cada tecla en esta rama está a máxima confianza.' + all_unlocked_msg: '¡Has desbloqueado todas las teclas del teclado!' + all_unlocked_desc: 'Cada carácter, símbolo y modificador está disponible en tus ejercicios.' + keep_practicing_mastery: 'Sigue practicando para alcanzar el dominio — cuando cada tecla llegue a' + confidence_complete: 'máxima confianza, ¡habrás logrado el dominio total del teclado!' + all_mastered_msg: '¡Felicidades — has alcanzado el dominio total del teclado!' + all_mastered_desc: 'Cada tecla del teclado está a máxima confianza.' + mastery_takes_practice: 'El dominio no es un destino — requiere práctica continua.' + keep_drilling: 'Sigue practicando para mantener tu nivel.' + hint_skill_tree_continue: '[t] Abrir Árbol de Habilidades [Otra tecla] Continuar' + hint_any_key: 'Presiona cualquier tecla para continuar' + input_blocked: 'Entrada bloqueada temporalmente (%{ms}ms restantes)' + unlock_msg_1: '¡Buen trabajo! Sigue mejorando tus habilidades.' + unlock_msg_2: '¡Otra tecla añadida a tu arsenal!' + unlock_msg_3: '¡Tu teclado crece! Sigue así.' + unlock_msg_4: '¡Un paso más cerca del dominio total!' + mastery_msg_1: '¡Esta tecla está a máxima confianza!' + mastery_msg_2: '¡Dominas esta tecla a la perfección!' + mastery_msg_3: '¡Memoria muscular asegurada!' + mastery_msg_4: '¡Una tecla más conquistada!' + +# Explorador de teclado +keyboard: + title: ' Teclado ' + subtitle: 'Presiona o haz clic en una tecla' + hint_navigate: '[←→↑↓/hjkl/Tab] Navegar' + hint_back: '[q/ESC] Volver' + key_label: 'Tecla: ' + finger_label: 'Dedo: ' + hand_left: 'Izquierda' + hand_right: 'Derecha' + finger_index: 'Índice' + finger_middle: 'Medio' + finger_ring: 'Anular' + finger_pinky: 'Meñique' + finger_thumb: 'Pulgar' + overall_accuracy: ' Precisión general: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Precisión clasificada: %{correct}/%{total} (%{pct}%%)' + confidence: 'Confianza: ' + no_data: 'Sin datos aún' + no_data_short: 'Sin datos' + key_details: ' Detalles de Tecla ' + key_details_char: ' Detalles de Tecla: ''%{ch}'' ' + key_details_name: ' Detalles de Tecla: %{name} ' + press_key_hint: 'Presiona una tecla para ver sus detalles' + shift_label: 'Shift: ' + shift_no: 'No' + overall_avg_time: 'Tiempo Prom. General: ' + overall_best_time: 'Mejor Tiempo General: ' + overall_samples: 'Muestras Generales: ' + overall_accuracy_label: 'Precisión General: ' + branch_label: 'Rama: ' + level_label: 'Nivel: ' + built_in_key: 'Tecla Integrada' + unlocked_label: 'Desbloqueada: ' + yes: 'Sí' + no: 'No' + in_focus_label: '¿En Foco?: ' + mastery_label: 'Dominio: ' + mastery_locked: 'Bloqueado' + ranked_avg_time: 'Tiempo Prom. Clasificado: ' + ranked_best_time: 'Mejor Tiempo Clasificado: ' + ranked_samples: 'Muestras Clasificadas: ' + ranked_accuracy_label: 'Precisión Clasificada: ' + +# Diálogos de introducción +intro: + passage_title: ' Configurar Descarga de Pasajes ' + code_title: ' Configurar Descarga de Código ' + enable_downloads: 'Activar descargas de red' + download_dir: 'Directorio de descarga' + paragraphs_per_book: 'Párrafos por libro (0 = completo)' + whole_book: 'libro completo' + snippets_per_repo: 'Fragmentos por repo (0 = ilimitado)' + unlimited: 'ilimitado' + start_passage_drill: 'Iniciar ejercicio de pasaje' + start_code_drill: 'Iniciar ejercicio de código' + confirm: 'Confirmar' + hint_navigate: '[Up/Down] Navegar' + hint_adjust: '[Left/Right] Ajustar' + hint_edit: '[Type/Backspace] Editar' + hint_confirm: '[Enter] Confirmar' + hint_cancel: '[ESC] Cancelar' + preparing_download: 'Preparando descarga...' + download_passage_title: ' Descargando Fuente de Pasaje ' + download_code_title: ' Descargando Fuente de Código ' + book_label: ' Libro: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bytes' + downloaded_bytes: 'Descargado: %{bytes} bytes' + downloading_book_progress: 'Descargando libro actual: [%{bar}] %{downloaded}/%{total} bytes' + downloading_book_bytes: 'Descargando libro actual: %{bytes} bytes' + downloading_code_progress: 'Descargando: [%{bar}] %{downloaded}/%{total} bytes' + downloading_code_bytes: 'Descargando: %{bytes} bytes' + current_book: 'Actual: %{name} (libro %{done}/%{total})' + current_repo: 'Actual: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr puede descargar pasajes de Project Gutenberg para práctica de escritura.' + passage_instructions_2: 'Los libros se descargan una vez y se almacenan localmente.' + passage_instructions_3: 'Configura los ajustes de descarga abajo, luego inicia un ejercicio de pasaje.' + code_instructions_1: 'keydr puede descargar código abierto de GitHub para práctica de escritura.' + code_instructions_2: 'El código se descarga una vez y se almacena localmente.' + code_instructions_3: 'Configura los ajustes de descarga abajo, luego inicia un ejercicio de código.' + +# Mensajes de estado (de app.rs) +status: + recovery_files: 'Se encontraron archivos de recuperación de una importación interrumpida. Los datos pueden ser inconsistentes — considera reimportar.' + dir_not_exist: 'El directorio no existe: %{path}' + no_data_store: 'No hay almacén de datos disponible' + serialization_error: 'Error de serialización: %{error}' + exported_to: 'Exportado a %{path}' + export_failed: 'Exportación fallida: %{error}' + could_not_read: 'No se pudo leer el archivo: %{error}' + invalid_export: 'Archivo de exportación inválido: %{error}' + unsupported_version: 'Versión de exportación no soportada: %{got} (se esperaba %{expected})' + import_failed: 'Importación fallida: %{error}' + imported_theme_fallback: 'Importado exitosamente (tema ''%{theme}'' no encontrado, usando predeterminado)' + imported_success: 'Importado exitosamente' + adaptive_unavailable: 'Modo adaptativo clasificado no disponible: %{error}' + switched_to: 'Cambiado a %{name}' + layout_changed: 'Distribución cambiada a %{name}' + +# Errores (para traducción de límites de UI) +errors: + unknown_language: 'Idioma desconocido: %{key}' + unknown_layout: 'Distribución de teclado desconocida: %{key}' + unsupported_pair: 'Par idioma/distribución no soportado: %{language} + %{layout}' + language_blocked: 'Idioma bloqueado por nivel de soporte: %{key}' + +# Común +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Volver' diff --git a/locales/et.yml b/locales/et.yml new file mode 100644 index 0000000..4ca7eab --- /dev/null +++ b/locales/et.yml @@ -0,0 +1,457 @@ +# Peamenüü +menu: + subtitle: 'Terminali trükkimise tuutor' + adaptive_drill: 'Kohanduv harjutus' + adaptive_drill_desc: 'Foneetilised sõnad kohanduva tähtede avamisega' + code_drill: 'Koodi harjutus' + code_drill_desc: 'Harjuta koodi süntaksi trükkimist' + passage_drill: 'Tekstiharjutus' + passage_drill_desc: 'Trüki lõike raamatutest' + skill_tree: 'Oskuste puu' + skill_tree_desc: 'Vaata edenemisharusid ja käivita harjutusi' + keyboard: 'Klaviatuur' + keyboard_desc: 'Uuri klahvipaigutust ja klahvistatistikat' + statistics: 'Statistika' + statistics_desc: 'Vaata oma trükkimisstatistikat' + settings: 'Seaded' + settings_desc: 'Seadista keydr' + day_streak: ' | %{days} päeva järjest' + key_progress: ' Klahvide edenemine %{unlocked}/%{total} (%{mastered} omandatud) | Siht %{target} WPM%{streak}' + hint_start: '[1-3] Alusta' + hint_skill_tree: '[t] Oskuste puu' + hint_keyboard: '[b] Klaviatuur' + hint_stats: '[s] Statistika' + hint_settings: '[c] Seaded' + hint_quit: '[q] Välju' + +# Harjutuse kuva +drill: + title: ' Harjutus ' + mode_adaptive: 'Kohanduv' + mode_code: 'Kood (hindamata)' + mode_passage: 'Tekst (hindamata)' + focus_char: 'Fookus: ''%{ch}''' + focus_bigram: 'Fookus: "%{bigram}"' + focus_both: 'Fookus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Täps' + header_err: 'Vead' + code_source: ' Koodi allikas ' + passage_source: ' Teksti allikas ' + footer: '[ESC] Lõpeta harjutus [Backspace] Kustuta' + keys_reenabled: 'Klahvid taas lubatud %{ms}ms pärast' + hint_end: '[ESC] Lõpeta harjutus' + hint_backspace: '[Backspace] Kustuta' + +# Tulemuste paneel / harjutuse tulemus +dashboard: + title: ' Harjutus lõpetatud ' + results: 'Tulemused' + unranked_note_prefix: ' (Hindamata' + unranked_note_suffix: ' ei lähe oskuste puu arvestusse)' + speed: ' Kiirus: ' + accuracy_label: ' Täpsus: ' + time_label: ' Aeg: ' + errors_label: ' Vead: ' + correct_detail: ' (%{correct}/%{total} õiget)' + input_blocked: ' Sisend ajutiselt blokeeritud ' + input_blocked_ms: '(%{ms}ms jäänud)' + hint_continue: '[c/Enter/Space] Jätka' + hint_retry: '[r] Uuesti' + hint_menu: '[q] Menüü' + hint_stats: '[s] Statistika' + hint_delete: '[x] Kustuta' + +# Statistika külgriba (harjutuse ajal) +sidebar: + title: ' Statistika ' + wpm: 'WPM: ' + target: 'Siht: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Täpsus: ' + progress: 'Edenemine: ' + correct: 'Õiged: ' + errors: 'Vead: ' + time: 'Aeg: ' + last_drill: ' Viimane harjutus ' + vs_avg: ' vs kesk: ' + +# Statistika paneel +stats: + title: ' Statistika ' + empty: 'Ühtegi harjutust pole tehtud. Alusta trükkimist!' + tab_dashboard: '[1] Ülevaade' + tab_history: '[2] Ajalugu' + tab_activity: '[3] Aktiivsus' + tab_accuracy: '[4] Täpsus' + tab_timing: '[5] Ajastus' + tab_ngrams: '[6] N-grammid' + hint_back: '[ESC] Tagasi' + hint_next_tab: '[Tab] Järgmine vahekaart' + hint_switch_tab: '[1-6] Vaheta vahekaart' + hint_navigate: '[j/k] Navigeeri' + hint_page: '[PgUp/PgDn] Lehekülg' + hint_delete: '[x] Kustuta' + summary_title: ' Kokkuvõte ' + drills: ' Harjutused: ' + avg_wpm: ' Kesk WPM: ' + best_wpm: ' Parim WPM: ' + accuracy_label: ' Täpsus: ' + total_time: ' Koguaeg: ' + wpm_chart_title: ' WPM harjutuse kohta (viimased 20, siht: %{target}) ' + accuracy_chart_title: ' Täpsus %% (viimased 50 harjutust) ' + chart_drill: 'Harjutus #' + chart_accuracy_pct: 'Täpsus %%' + sessions_title: ' Hiljutised seansid ' + session_header: ' # WPM Toores Täps%% Aeg Kuupäev/Aeg Režiim Hind Osaline' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Kustuta seanss #%{idx}? (y/n)' + confirm_title: ' Kinnita ' + yes: 'jah' + no: 'ei' + keyboard_accuracy_title: ' Klaviatuuri täpsus %% ' + keyboard_timing_title: ' Klaviatuuri ajastus (ms) ' + slowest_keys_title: ' Aeglaseimad klahvid (ms) ' + fastest_keys_title: ' Kiireimad klahvid (ms) ' + worst_accuracy_title: ' Halvim täpsus (%%) ' + best_accuracy_title: ' Parim täpsus (%%) ' + not_enough_data: ' Pole piisavalt andmeid' + streaks_title: ' Seeriad ' + current_streak: ' Praegune: ' + best_streak: ' Parim: ' + active_days: ' Aktiivsed päevad: ' + top_days_none: ' Parimad päevad: puudub' + top_days: ' Parimad päevad: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Täps: %{pct}%%' + keys_label: ' Klahvid: %{unlocked}/%{total} (%{mastered} omandatud)' + ngram_empty: 'Tee mõned kohanduvad harjutused n-grammi andmete nägemiseks' + ngram_header_speed_narrow: ' Bgrm Kiir Ooda Anom%' + ngram_header_error_narrow: ' Bgrm Vead Prv Määr Ooda Anom%' + ngram_header_speed: ' Bigramm Kiirus Oodatav Proovid Anom%' + ngram_header_error: ' Bigramm Vead Proovid Määr Oodatav Anom%' + focus_title: ' Aktiivne fookus ' + focus_char_label: ' Fookus: ' + focus_bigram_value: 'Bigramm %{label}' + focus_plus: ' + ' + anomaly_error: 'viga' + anomaly_speed: 'kiirus' + focus_detail_both: ' Märk ''%{ch}'': nõrgim klahv | Bigramm %{label}: %{type} anomaalia %{pct}%%' + focus_detail_char_only: ' Märk ''%{ch}'': nõrgim klahv, kinnitatud bigrammi anomaaliaid pole' + focus_detail_bigram_only: ' (%{type} anomaalia: %{pct}%%)' + focus_empty: ' Tee mõned kohanduvad harjutused fookuse andmete nägemiseks' + error_anomalies_title: ' Vigade anomaaliad (%{count}) ' + no_error_anomalies: ' Vigade anomaaliaid ei tuvastatud' + speed_anomalies_title: ' Kiiruse anomaaliad (%{count}) ' + no_speed_anomalies: ' Kiiruse anomaaliaid ei tuvastatud' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Kõhk: >%{ms}ms' + gain_label: ' | Kasv: %{value}' + gain_interval: ' (iga 50)' + focus_char_value: 'Märk ''%{ch}''' + +# Aktiivsuse soojuskaart +heatmap: + title: ' Igapäevane aktiivsus (seansid päevas) ' + jan: 'Jaan' + feb: 'Veebr' + mar: 'Märts' + apr: 'Apr' + may: 'Mai' + jun: 'Juuni' + jul: 'Juuli' + aug: 'Aug' + sep: 'Sept' + oct: 'Okt' + nov: 'Nov' + dec: 'Dets' + +# Diagramm +chart: + wpm_over_time: ' WPM aja jooksul ' + drill_number: 'Harjutus #' + +# Seaded +settings: + title: ' Seaded ' + subtitle: 'Navigeerimiseks kasuta nooli, Enter/Paremale muutmiseks, ESC salvestamiseks' + target_wpm: 'Siht-WPM' + theme: 'Teema' + word_count: 'Sõnade arv' + ui_language: 'Liidese keel' + dictionary_language: 'Sõnastiku keel' + keyboard_layout: 'Klahvipaigutus' + code_language: 'Programmeerimiskeel' + code_downloads: 'Koodi allalaadimised' + on: 'Sees' + off: 'Väljas' + code_download_dir: 'Koodi allalaadimiskaust' + snippets_per_repo: 'Katkendeid repo kohta' + unlimited: 'Piiramatu' + download_code_now: 'Laadi kood alla kohe' + run_downloader: 'Käivita allalaadimine' + passage_downloads: 'Teksti allalaadimised' + passage_download_dir: 'Teksti allalaadimiskaust' + paragraphs_per_book: 'Lõike raamatu kohta' + whole_book: 'Terve raamat' + download_passages_now: 'Laadi tekstid alla kohe' + export_path: 'Ekspordi tee' + export_data: 'Ekspordi andmed' + export_now: 'Ekspordi kohe' + import_path: 'Impordi tee' + import_data: 'Impordi andmed' + import_now: 'Impordi kohe' + hint_save_back: '[ESC] Salvesta ja tagasi' + hint_change_value: '[Enter/nooled] Muuda väärtust' + hint_edit_path: '[Enter teel] Muuda' + hint_move: '[←→] Liigu' + hint_tab_complete: '[Tab] Täienda (lõpus)' + hint_confirm: '[Enter] Kinnita' + hint_cancel: '[Esc] Tühista' + success_title: ' Õnnestus ' + error_title: ' Viga ' + press_any_key: 'Vajuta suvalist klahvi' + file_exists_title: ' Fail on olemas ' + file_exists: 'Sellel teel on juba fail olemas.' + overwrite_rename: '[d] Kirjuta üle [r] Nimeta ümber [Esc] Tühista' + erase_warning: 'See kustutab teie praegused andmed.' + export_first: 'Eksportige esmalt, kui soovite neid säilitada.' + proceed_yn: 'Jätkata? (y/n)' + confirm_import_title: ' Kinnita import ' + +# Valikukuvad +select: + dictionary_language_title: ' Vali sõnastiku keel ' + keyboard_layout_title: ' Vali klahvipaigutus ' + code_language_title: ' Vali programmeerimiskeel ' + passage_source_title: ' Vali teksti allikas ' + ui_language_title: ' Vali liidese keel ' + more_above: '... veel %{count} üleval ...' + more_below: '... veel %{count} all ...' + current: ' (praegune)' + disabled: ' (keelatud)' + enabled_default: ' (lubatud, vaikimisi: %{layout})' + enabled: ' (lubatud)' + disabled_blocked: ' (keelatud: blokeeritud)' + built_in: ' (sisseehitatud)' + cached: ' (puhverdatud)' + disabled_download: ' (keelatud: allalaadimine vajalik)' + download_required: ' (allalaadimine vajalik)' + hint_navigate: '[Üles/Alla/PgUp/PgDn] Navigeeri' + hint_confirm: '[Enter] Kinnita' + hint_back: '[ESC] Tagasi' + language_resets_layout: 'Keele valimine lähtestab klahvipaigutuse selle keele vaikimisi paigutusele.' + layout_no_language_change: 'Paigutuse muutmine ei muuda sõnastiku keelt.' + disabled_network_notice: 'Mõned keeled on keelatud: lubage võrgu allalaadimised sissejuhatuses/seadetes.' + disabled_sources_notice: 'Mõned allikad on keelatud: lubage võrgu allalaadimised sissejuhatuses/seadetes.' + passage_all: 'Kõik (sisseehitatud + kõik raamatud)' + passage_builtin: 'Ainult sisseehitatud tekstid' + passage_book_prefix: 'Raamat: %{title}' + +# Edenemine +progress: + overall_key_progress: 'Üldine klahvide edenemine' + unlocked_mastered: '%{unlocked}/%{total} avatud (%{mastered} omandatud)' + +# Oskuste puu +skill_tree: + title: ' Oskuste puu ' + locked: 'Lukus' + unlocked: 'avatud' + mastered: 'omandatud' + in_progress: 'pooleli' + complete: 'lõpetatud' + locked_status: 'lukus' + locked_notice: 'Lõpeta %{count} põhitähte harude avamiseks' + branches_separator: 'Harud (saadaval pärast %{count} põhitähte)' + unlocked_letters: 'Avatud %{unlocked}/%{total} tähte' + level: 'Tase %{current}/%{total}' + level_zero: 'Tase 0/%{total}' + in_focus: ' fookuses' + hint_navigate: '[↑↓/jk] Navigeeri' + hint_scroll: '[PgUp/PgDn või Ctrl+U/Ctrl+D] Keri' + hint_back: '[q] Tagasi' + hint_unlock: '[Enter] Ava' + hint_start_drill: '[Enter] Alusta harjutust' + unlock_msg_1: 'Pärast avamist segab vaikimisi kohanduv harjutus selle haru avatud klahve.' + unlock_msg_2: 'Kui soovite keskenduda ainult sellele harule, käivitage harjutus otse oskuste puust.' + confirm_unlock: 'Avada %{branch}?' + confirm_yn: '[y] Ava [n/ESC] Tühista' + lvl_prefix: 'Tase' + branch_primary_letters: 'Põhitähed' + branch_capital_letters: 'Suurtähed' + branch_numbers: 'Numbrid 0-9' + branch_prose_punctuation: 'Kirjavahemärgid' + branch_whitespace: 'Tühimärgid' + branch_code_symbols: 'Koodi sümbolid' + level_frequency_order: 'Sageduse järjekord' + level_common_sentence_capitals: 'Tavalised lause suurtähed' + level_name_capitals: 'Nimede suurtähed' + level_remaining_capitals: 'Ülejäänud suurtähed' + level_common_digits: 'Tavalised numbrid' + level_all_digits: 'Kõik numbrid' + level_essential: 'Hädavajalik' + level_common: 'Tavaline' + level_expressive: 'Väljenduslik' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Taane' + level_arithmetic_assignment: 'Aritmeetika ja omistamine' + level_grouping: 'Rühmitamine' + level_logic_reference: 'Loogika ja viitamine' + level_special: 'Eriline' + +# Verstapostid +milestones: + unlock_title: ' Klahv avatud! ' + mastery_title: ' Klahv omandatud! ' + branches_title: ' Uued oskuste harud saadaval! ' + branch_complete_title: ' Haru lõpetatud! ' + all_unlocked_title: ' Kõik klahvid avatud! ' + all_mastered_title: ' Täielik klaviatuuri valdamine! ' + unlocked: 'avatud' + mastered: 'omandatud' + use_finger: 'Kasuta oma %{finger}' + hold_right_shift: 'Hoia paremat Shifti (parem väike sõrm)' + hold_left_shift: 'Hoia vasakut Shifti (vasak väike sõrm)' + congratulations_all_letters: 'Palju õnne! Olete omandanud kõik %{count} põhitähte' + new_branches_available: 'Uued oskuste harud on nüüd saadaval:' + visit_skill_tree: 'Külastage oskuste puud uue haru avamiseks' + and_start_training: 'ja alustage treenimist!' + open_skill_tree: 'Vajutage [t] oskuste puu avamiseks' + branch_complete_msg: 'Olete lõpetanud haru %{branch}!' + all_levels_mastered: 'Kõik %{count} taset omandatud.' + all_keys_confident: 'Iga klahv selles harus on täielikul tasemel.' + all_unlocked_msg: 'Olete avanud kõik klahvid klaviatuuril!' + all_unlocked_desc: 'Iga märk, sümbol ja muuteklahv on nüüd harjutustes saadaval.' + keep_practicing_mastery: 'Jätkake harjutamist valdamise saavutamiseks — kui iga klahv jõuab täieliku' + confidence_complete: 'kindluseni, olete saavutanud täieliku klaviatuuri valdamise!' + all_mastered_msg: 'Palju õnne — olete saavutanud täieliku klaviatuuri valdamise!' + all_mastered_desc: 'Iga klahv klaviatuuril on maksimaalsel tasemel.' + mastery_takes_practice: 'Valdamine pole sihtkoht — see nõuab pidevat harjutamist.' + keep_drilling: 'Jätkake harjutamist oma taseme hoidmiseks.' + hint_skill_tree_continue: '[t] Ava oskuste puu [Suvaline klahv] Jätka' + hint_any_key: 'Vajuta suvalist klahvi jätkamiseks' + input_blocked: 'Sisend ajutiselt blokeeritud (%{ms}ms jäänud)' + unlock_msg_1: 'Tubli! Jätkake oma trükkimisoskuste arendamist.' + unlock_msg_2: 'Veel üks klahv teie arsenali!' + unlock_msg_3: 'Teie klaviatuur kasvab! Jätkake!' + unlock_msg_4: 'Samm lähemale täielikule klaviatuuri valdamisele!' + mastery_msg_1: 'See klahv on nüüd täielikul tasemel!' + mastery_msg_2: 'See klahv on teil selge!' + mastery_msg_3: 'Lihasmälu lukustatud!' + mastery_msg_4: 'Veel üks klahv vallutatud!' + +# Klaviatuuri uurija +keyboard: + title: ' Klaviatuur ' + subtitle: 'Vajuta suvalist klahvi või klõpsa klahvi' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigeeri' + hint_back: '[q/ESC] Tagasi' + key_label: 'Klahv: ' + finger_label: 'Sõrm: ' + hand_left: 'Vasak' + hand_right: 'Parem' + finger_index: 'Nimetissõrm' + finger_middle: 'Keskmine sõrm' + finger_ring: 'Nimesõrm' + finger_pinky: 'Väike sõrm' + finger_thumb: 'Pöial' + overall_accuracy: ' Üldine täpsus: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Hinnatud täpsus: %{correct}/%{total} (%{pct}%%)' + confidence: 'Kindlus: ' + no_data: 'Andmed puuduvad' + no_data_short: 'Andmeid pole' + key_details: ' Klahvi üksikasjad ' + key_details_char: ' Klahvi üksikasjad: ''%{ch}'' ' + key_details_name: ' Klahvi üksikasjad: %{name} ' + press_key_hint: 'Vajuta klahvi üksikasjade nägemiseks' + shift_label: 'Shift: ' + shift_no: 'Ei' + overall_avg_time: 'Üldine kesk. aeg: ' + overall_best_time: 'Üldine parim aeg: ' + overall_samples: 'Üldised proovid: ' + overall_accuracy_label: 'Üldine täpsus: ' + branch_label: 'Haru: ' + level_label: 'Tase: ' + built_in_key: 'Sisseehitatud klahv' + unlocked_label: 'Avatud: ' + yes: 'Jah' + no: 'Ei' + in_focus_label: 'Fookuses?: ' + mastery_label: 'Valdamine: ' + mastery_locked: 'Lukus' + ranked_avg_time: 'Hinnatud kesk. aeg: ' + ranked_best_time: 'Hinnatud parim aeg: ' + ranked_samples: 'Hinnatud proovid: ' + ranked_accuracy_label: 'Hinnatud täpsus: ' + +# Sissejuhatuse dialoogid +intro: + passage_title: ' Teksti allalaadimise seadistus ' + code_title: ' Koodi allalaadimise seadistus ' + enable_downloads: 'Luba võrgu allalaadimised' + download_dir: 'Allalaadimiskaust' + paragraphs_per_book: 'Lõike raamatu kohta (0 = terve)' + whole_book: 'terve raamat' + snippets_per_repo: 'Katkendeid repo kohta (0 = piiramatu)' + unlimited: 'piiramatu' + start_passage_drill: 'Alusta tekstiharjutust' + start_code_drill: 'Alusta koodi harjutust' + confirm: 'Kinnita' + hint_navigate: '[Üles/Alla] Navigeeri' + hint_adjust: '[Vasakule/Paremale] Kohanda' + hint_edit: '[Trüki/Backspace] Muuda' + hint_confirm: '[Enter] Kinnita' + hint_cancel: '[ESC] Tühista' + preparing_download: 'Valmistan allalaadimist ette...' + download_passage_title: ' Teksti allika allalaadimine ' + download_code_title: ' Koodi allika allalaadimine ' + book_label: ' Raamat: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} baiti' + downloaded_bytes: 'Alla laaditud: %{bytes} baiti' + downloading_book_progress: 'Laadin raamatut: [%{bar}] %{downloaded}/%{total} baiti' + downloading_book_bytes: 'Laadin raamatut: %{bytes} baiti' + downloading_code_progress: 'Laadin alla: [%{bar}] %{downloaded}/%{total} baiti' + downloading_code_bytes: 'Laadin alla: %{bytes} baiti' + current_book: 'Praegune: %{name} (raamat %{done}/%{total})' + current_repo: 'Praegune: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr saab alla laadida lõike Project Gutenbergist trükkimisharjutuseks.' + passage_instructions_2: 'Raamatud laaditakse alla üks kord ja salvestatakse kohalikult.' + passage_instructions_3: 'Seadistage allalaadimised allpool, seejärel alustage tekstiharjutust.' + code_instructions_1: 'keydr saab alla laadida avatud lähtekoodiga koodi GitHubist trükkimisharjutuseks.' + code_instructions_2: 'Kood laaditakse alla üks kord ja salvestatakse kohalikult.' + code_instructions_3: 'Seadistage allalaadimised allpool, seejärel alustage koodi harjutust.' + +# Olekuteated (failist app.rs) +status: + recovery_files: 'Leitud taastefailid katkestatud impordist. Andmed võivad olla ebajärjekindlad — kaaluge uuesti importimist.' + dir_not_exist: 'Kausta ei eksisteeri: %{path}' + no_data_store: 'Andmehoidla pole saadaval' + serialization_error: 'Serialiseerimisviga: %{error}' + exported_to: 'Eksporditud asukohta %{path}' + export_failed: 'Eksport ebaõnnestus: %{error}' + could_not_read: 'Faili ei saanud lugeda: %{error}' + invalid_export: 'Vigane ekspordifail: %{error}' + unsupported_version: 'Toetamata ekspordi versioon: %{got} (oodatud %{expected})' + import_failed: 'Import ebaõnnestus: %{error}' + imported_theme_fallback: 'Imporditud edukalt (teemat ''%{theme}'' ei leitud, kasutan vaikimisi)' + imported_success: 'Imporditud edukalt' + adaptive_unavailable: 'Kohanduv hinnatud režiim pole saadaval: %{error}' + switched_to: 'Lülitatud režiimile %{name}' + layout_changed: 'Paigutus muudetud: %{name}' + +# Vead (liidese piiri tõlke jaoks) +errors: + unknown_language: 'Tundmatu keel: %{key}' + unknown_layout: 'Tundmatu klahvipaigutus: %{key}' + unsupported_pair: 'Toetamata keele/paigutuse paar: %{language} + %{layout}' + language_blocked: 'Keel on blokeeritud toe taseme tõttu: %{key}' + +# Üldine +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Tagasi' diff --git a/locales/fi.yml b/locales/fi.yml new file mode 100644 index 0000000..1377eec --- /dev/null +++ b/locales/fi.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminaalin kirjoitusharjoittelija' + adaptive_drill: 'Mukautuva harjoitus' + adaptive_drill_desc: 'Foneettiset sanat mukautuvalla kirjainten avauksella' + code_drill: 'Koodiharjoitus' + code_drill_desc: 'Harjoittele koodisyntaksin kirjoittamista' + passage_drill: 'Tekstiharjoitus' + passage_drill_desc: 'Kirjoita katkelmia kirjoista' + skill_tree: 'Taitopuu' + skill_tree_desc: 'Tarkastele etenemispolkuja ja aloita harjoituksia' + keyboard: 'Näppäimistö' + keyboard_desc: 'Tutustu näppäinasetteluun ja tilastoihin' + statistics: 'Tilastot' + statistics_desc: 'Tarkastele kirjoitustilastojasi' + settings: 'Asetukset' + settings_desc: 'Määritä keydr-asetukset' + day_streak: ' | %{days} päivän putki' + key_progress: ' Näppäinedistyminen %{unlocked}/%{total} (%{mastered} hallittu) | Tavoite %{target} WPM%{streak}' + hint_start: '[1-3] Aloita' + hint_skill_tree: '[t] Taitopuu' + hint_keyboard: '[b] Näppäimistö' + hint_stats: '[s] Tilastot' + hint_settings: '[c] Asetukset' + hint_quit: '[q] Lopeta' + +# Drill screen +drill: + title: ' Harjoitus ' + mode_adaptive: 'Mukautuva' + mode_code: 'Koodi (ei sijoitettu)' + mode_passage: 'Teksti (ei sijoitettu)' + focus_char: 'Fokus: ''%{ch}''' + focus_bigram: 'Fokus: "%{bigram}"' + focus_both: 'Fokus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Tark' + header_err: 'Virh' + code_source: ' Koodilähde ' + passage_source: ' Tekstilähde ' + footer: '[ESC] Lopeta harjoitus [Backspace] Poista' + keys_reenabled: 'Näppäimet palautettu %{ms}ms:ssa' + hint_end: '[ESC] Lopeta harjoitus' + hint_backspace: '[Backspace] Poista' + +# Dashboard / drill result +dashboard: + title: ' Harjoitus valmis ' + results: 'Tulokset' + unranked_note_prefix: ' (Ei sijoitettu' + unranked_note_suffix: ' ei lasketa taitopuuhun)' + speed: ' Nopeus: ' + accuracy_label: ' Tarkkuus: ' + time_label: ' Aika: ' + errors_label: ' Virheet: ' + correct_detail: ' (%{correct}/%{total} oikein)' + input_blocked: ' Syöte estetty väliaikaisesti ' + input_blocked_ms: '(%{ms}ms jäljellä)' + hint_continue: '[c/Enter/Space] Jatka' + hint_retry: '[r] Uudelleen' + hint_menu: '[q] Valikko' + hint_stats: '[s] Tilastot' + hint_delete: '[x] Poista' + +# Stats sidebar (during drill) +sidebar: + title: ' Tilastot ' + wpm: 'WPM: ' + target: 'Tavoite: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Tarkkuus: ' + progress: 'Edistyminen: ' + correct: 'Oikein: ' + errors: 'Virheet: ' + time: 'Aika: ' + last_drill: ' Edellinen harjoitus ' + vs_avg: ' vs ka: ' + +# Statistics dashboard +stats: + title: ' Tilastot ' + empty: 'Ei harjoituksia vielä. Aloita kirjoittaminen!' + tab_dashboard: '[1] Yhteenveto' + tab_history: '[2] Historia' + tab_activity: '[3] Aktiivisuus' + tab_accuracy: '[4] Tarkkuus' + tab_timing: '[5] Ajoitus' + tab_ngrams: '[6] N-grammit' + hint_back: '[ESC] Takaisin' + hint_next_tab: '[Tab] Seuraava välilehti' + hint_switch_tab: '[1-6] Vaihda välilehteä' + hint_navigate: '[j/k] Navigoi' + hint_page: '[PgUp/PgDn] Sivu' + hint_delete: '[x] Poista' + summary_title: ' Yhteenveto ' + drills: ' Harjoitukset: ' + avg_wpm: ' Ka WPM: ' + best_wpm: ' Paras WPM: ' + accuracy_label: ' Tarkkuus: ' + total_time: ' Kokonaisaika: ' + wpm_chart_title: ' WPM per harjoitus (viimeiset 20, tavoite: %{target}) ' + accuracy_chart_title: ' Tarkkuus %% (viimeiset 50 harjoitusta) ' + chart_drill: 'Harj #' + chart_accuracy_pct: 'Tarkkuus %%' + sessions_title: ' Viimeisimmät istunnot ' + session_header: ' # WPM Raw Tark%% Aika Pvm/Aika Tila Sijoitettu Ositt.' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Poista istunto #%{idx}? (k/e)' + confirm_title: ' Vahvista ' + yes: 'kyllä' + no: 'ei' + keyboard_accuracy_title: ' Näppäimistön tarkkuus %% ' + keyboard_timing_title: ' Näppäimistön ajoitus (ms) ' + slowest_keys_title: ' Hitaimmat näppäimet (ms) ' + fastest_keys_title: ' Nopeimmat näppäimet (ms) ' + worst_accuracy_title: ' Heikoin tarkkuus (%%) ' + best_accuracy_title: ' Paras tarkkuus (%%) ' + not_enough_data: ' Ei tarpeeksi dataa' + streaks_title: ' Putket ' + current_streak: ' Nykyinen: ' + best_streak: ' Paras: ' + active_days: ' Aktiiviset päivät: ' + top_days_none: ' Parhaat päivät: ei yhtään' + top_days: ' Parhaat päivät: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Tark: %{pct}%%' + keys_label: ' Näppäimet: %{unlocked}/%{total} (%{mastered} hallittu)' + ngram_empty: 'Suorita mukautuvia harjoituksia nähdäksesi n-grammidataa' + ngram_header_speed_narrow: ' Bgrm Nop Odot Poikk%' + ngram_header_error_narrow: ' Bgrm Virh Näyt Tih Odot Poikk%' + ngram_header_speed: ' Bigrammi Nopeus Odotettu Näytteet Poikk%' + ngram_header_error: ' Bigrammi Virheet Näytteet Tiheys Odotettu Poikk%' + focus_title: ' Aktiivinen fokus ' + focus_char_label: ' Fokus: ' + focus_bigram_value: 'Bigrammi %{label}' + focus_plus: ' + ' + anomaly_error: 'virhe' + anomaly_speed: 'nopeus' + focus_detail_both: ' Merkki ''%{ch}'': heikoin näppäin | Bigrammi %{label}: %{type}-poikkeama %{pct}%%' + focus_detail_char_only: ' Merkki ''%{ch}'': heikoin näppäin, ei vahvistettuja bigrammipoikkeamia' + focus_detail_bigram_only: ' (%{type}-poikkeama: %{pct}%%)' + focus_empty: ' Suorita mukautuvia harjoituksia nähdäksesi fokusdataa' + error_anomalies_title: ' Virhepoikkeamat (%{count}) ' + no_error_anomalies: ' Virhepoikkeamia ei havaittu' + speed_anomalies_title: ' Nopeuspoikkeamat (%{count}) ' + no_speed_anomalies: ' Nopeuspoikkeamia ei havaittu' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Epär: >%{ms}ms' + gain_label: ' | Kasvu: %{value}' + gain_interval: ' (joka 50.)' + focus_char_value: 'Merkki ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Päivittäinen aktiivisuus (istunnot per päivä) ' + jan: 'Tam' + feb: 'Hel' + mar: 'Maa' + apr: 'Huh' + may: 'Tou' + jun: 'Kes' + jul: 'Hei' + aug: 'Elo' + sep: 'Syy' + oct: 'Lok' + nov: 'Mar' + dec: 'Jou' + +# Chart +chart: + wpm_over_time: ' WPM ajan kuluessa ' + drill_number: 'Harj #' + +# Settings +settings: + title: ' Asetukset ' + subtitle: 'Käytä nuolia navigointiin, Enter/oikea muuttaa, ESC tallentaa ja poistuu' + target_wpm: 'Tavoite WPM' + theme: 'Teema' + word_count: 'Sanamäärä' + ui_language: 'Käyttöliittymän kieli' + dictionary_language: 'Sanakirjan kieli' + keyboard_layout: 'Näppäinasettelu' + code_language: 'Ohjelmointikieli' + code_downloads: 'Koodilataukset' + on: 'Päällä' + off: 'Pois' + code_download_dir: 'Koodilatauskansio' + snippets_per_repo: 'Katkelmat per repo' + unlimited: 'Rajaton' + download_code_now: 'Lataa koodi nyt' + run_downloader: 'Käynnistä lataaja' + passage_downloads: 'Tekstilataukset' + passage_download_dir: 'Tekstilatauskansio' + paragraphs_per_book: 'Kappaleet per kirja' + whole_book: 'Koko kirja' + download_passages_now: 'Lataa tekstit nyt' + export_path: 'Vientipolku' + export_data: 'Vie data' + export_now: 'Vie nyt' + import_path: 'Tuontipolku' + import_data: 'Tuo data' + import_now: 'Tuo nyt' + hint_save_back: '[ESC] Tallenna ja takaisin' + hint_change_value: '[Enter/nuolet] Muuta arvoa' + hint_edit_path: '[Enter polulla] Muokkaa' + hint_move: '[←→] Siirrä' + hint_tab_complete: '[Tab] Täydennä (lopussa)' + hint_confirm: '[Enter] Vahvista' + hint_cancel: '[Esc] Peruuta' + success_title: ' Onnistui ' + error_title: ' Virhe ' + press_any_key: 'Paina mitä tahansa näppäintä' + file_exists_title: ' Tiedosto on olemassa ' + file_exists: 'Tiedosto on jo olemassa tässä polussa.' + overwrite_rename: '[d] Korvaa [r] Nimeä uudelleen [Esc] Peruuta' + erase_warning: 'Tämä poistaa nykyisen datasi.' + export_first: 'Vie data ensin, jos haluat säilyttää sen.' + proceed_yn: 'Jatketaanko? (k/e)' + confirm_import_title: ' Vahvista tuonti ' + +# Selection screens +select: + dictionary_language_title: ' Valitse sanakirjan kieli ' + keyboard_layout_title: ' Valitse näppäinasettelu ' + code_language_title: ' Valitse ohjelmointikieli ' + passage_source_title: ' Valitse tekstilähde ' + ui_language_title: ' Valitse käyttöliittymän kieli ' + more_above: '... %{count} lisää ylhäällä ...' + more_below: '... %{count} lisää alhaalla ...' + current: ' (nykyinen)' + disabled: ' (pois käytöstä)' + enabled_default: ' (käytössä, oletus: %{layout})' + enabled: ' (käytössä)' + disabled_blocked: ' (pois käytöstä: estetty)' + built_in: ' (sisäänrakennettu)' + cached: ' (välimuistissa)' + disabled_download: ' (pois käytöstä: lataus vaaditaan)' + download_required: ' (lataus vaaditaan)' + hint_navigate: '[Ylös/Alas/PgUp/PgDn] Navigoi' + hint_confirm: '[Enter] Vahvista' + hint_back: '[ESC] Takaisin' + language_resets_layout: 'Kielen valinta palauttaa näppäinasettelun kielen oletukseen.' + layout_no_language_change: 'Asettelun muutos ei vaihda sanakirjan kieltä.' + disabled_network_notice: 'Jotkin kielet ovat pois käytöstä: ota verkkolataukset käyttöön asetuksissa.' + disabled_sources_notice: 'Jotkin lähteet ovat pois käytöstä: ota verkkolataukset käyttöön asetuksissa.' + passage_all: 'Kaikki (sisäänrakennetut + kaikki kirjat)' + passage_builtin: 'Vain sisäänrakennetut tekstit' + passage_book_prefix: 'Kirja: %{title}' + +# Progress +progress: + overall_key_progress: 'Yleinen näppäinedistyminen' + unlocked_mastered: '%{unlocked}/%{total} avattu (%{mastered} hallittu)' + +# Skill tree +skill_tree: + title: ' Taitopuu ' + locked: 'Lukittu' + unlocked: 'avattu' + mastered: 'hallittu' + in_progress: 'käynnissä' + complete: 'valmis' + locked_status: 'lukittu' + locked_notice: 'Suorita %{count} peruskirjainta avataksesi haarat' + branches_separator: 'Haarat (käytettävissä %{count} peruskirjaimen jälkeen)' + unlocked_letters: 'Avattu %{unlocked}/%{total} kirjainta' + level: 'Taso %{current}/%{total}' + level_zero: 'Taso 0/%{total}' + in_focus: ' fokuksessa' + hint_navigate: '[↑↓/jk] Navigoi' + hint_scroll: '[PgUp/PgDn tai Ctrl+U/Ctrl+D] Vieritä' + hint_back: '[q] Takaisin' + hint_unlock: '[Enter] Avaa' + hint_start_drill: '[Enter] Aloita harjoitus' + unlock_msg_1: 'Avaamisen jälkeen mukautuva oletusharjoitus sisällyttää tämän haaran avattuja näppäimiä.' + unlock_msg_2: 'Jos haluat keskittyä vain tähän haaraan, aloita harjoitus suoraan taitopuusta.' + confirm_unlock: 'Avaa %{branch}?' + confirm_yn: '[y] Avaa [n/ESC] Peruuta' + lvl_prefix: 'Taso' + branch_primary_letters: 'Peruskirjaimet' + branch_capital_letters: 'Isot kirjaimet' + branch_numbers: 'Numerot 0-9' + branch_prose_punctuation: 'Välimerkit' + branch_whitespace: 'Tyhjämerkit' + branch_code_symbols: 'Koodisymbolit' + level_frequency_order: 'Yleisyysjärjestys' + level_common_sentence_capitals: 'Yleiset lauseen isot kirjaimet' + level_name_capitals: 'Nimien isot kirjaimet' + level_remaining_capitals: 'Loput isot kirjaimet' + level_common_digits: 'Yleiset numerot' + level_all_digits: 'Kaikki numerot' + level_essential: 'Välttämättömät' + level_common: 'Yleiset' + level_expressive: 'Ilmaisevat' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/sisennys' + level_arithmetic_assignment: 'Laskutoimitukset ja sijoitus' + level_grouping: 'Ryhmittely' + level_logic_reference: 'Logiikka ja viittaus' + level_special: 'Erikoismerkit' + +# Milestones +milestones: + unlock_title: ' Näppäin avattu! ' + mastery_title: ' Näppäin hallittu! ' + branches_title: ' Uusia taitohaarat käytettävissä! ' + branch_complete_title: ' Haara valmis! ' + all_unlocked_title: ' Kaikki näppäimet avattu! ' + all_mastered_title: ' Täysi näppäimistöhallinta! ' + unlocked: 'avattu' + mastered: 'hallittu' + use_finger: 'Käytä %{finger}asi' + hold_right_shift: 'Pidä oikeaa Shiftiä (oikea pikkusormi)' + hold_left_shift: 'Pidä vasenta Shiftiä (vasen pikkusormi)' + congratulations_all_letters: 'Onnittelut! Olet hallinnut kaikki %{count} peruskirjainta' + new_branches_available: 'Uusia taitohaaroja on nyt käytettävissä:' + visit_skill_tree: 'Käy taitopuussa avataksesi uuden haaran' + and_start_training: 'ja aloita harjoittelu!' + open_skill_tree: 'Paina [t] avataksesi taitopuun nyt' + branch_complete_msg: 'Olet suorittanut haaran %{branch}!' + all_levels_mastered: 'Kaikki %{count} tasoa hallittu.' + all_keys_confident: 'Jokainen näppäin tässä haarassa on täydellä varmuudella.' + all_unlocked_msg: 'Olet avannut jokaisen näppäimen näppäimistöllä!' + all_unlocked_desc: 'Jokainen merkki, symboli ja muokkain on nyt käytettävissä harjoituksissasi.' + keep_practicing_mastery: 'Jatka harjoittelua hallinnan rakentamiseksi — kun jokainen näppäin saavuttaa täyden' + confidence_complete: 'varmuuden, olet saavuttanut täydellisen näppäimistöhallinnan!' + all_mastered_msg: 'Onnittelut — olet saavuttanut täyden näppäimistöhallinnan!' + all_mastered_desc: 'Jokainen näppäin näppäimistöllä on maksimivarmuudella.' + mastery_takes_practice: 'Hallinta ei ole päämäärä — se vaatii jatkuvaa harjoittelua.' + keep_drilling: 'Jatka harjoittelua säilyttääksesi taitosi.' + hint_skill_tree_continue: '[t] Avaa taitopuu [Muu näppäin] Jatka' + hint_any_key: 'Paina mitä tahansa näppäintä jatkaaksesi' + input_blocked: 'Syöte estetty väliaikaisesti (%{ms}ms jäljellä)' + unlock_msg_1: 'Hienoa! Jatka kirjoitustaitojesi kehittämistä.' + unlock_msg_2: 'Taas yksi näppäin arsenaalissasi!' + unlock_msg_3: 'Näppäimistösi kasvaa! Jatka samaan malliin.' + unlock_msg_4: 'Askel lähempänä täyttä näppäimistöhallintaa!' + mastery_msg_1: 'Tämä näppäin on nyt täydellä varmuudella!' + mastery_msg_2: 'Tämä näppäin on hallussa!' + mastery_msg_3: 'Lihasmuisti lukittuna!' + mastery_msg_4: 'Taas yksi näppäin valloitettu!' + +# Keyboard explorer +keyboard: + title: ' Näppäimistö ' + subtitle: 'Paina mitä tahansa näppäintä tai klikkaa näppäintä' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigoi' + hint_back: '[q/ESC] Takaisin' + key_label: 'Näppäin: ' + finger_label: 'Sormi: ' + hand_left: 'Vasen' + hand_right: 'Oikea' + finger_index: 'Etusormi' + finger_middle: 'Keskisormi' + finger_ring: 'Nimetön' + finger_pinky: 'Pikkusormi' + finger_thumb: 'Peukalo' + overall_accuracy: ' Kokonaistarkkuus: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Sijoitettu tarkkuus: %{correct}/%{total} (%{pct}%%)' + confidence: 'Varmuus: ' + no_data: 'Ei dataa vielä' + no_data_short: 'Ei dataa' + key_details: ' Näppäintiedot ' + key_details_char: ' Näppäintiedot: ''%{ch}'' ' + key_details_name: ' Näppäintiedot: %{name} ' + press_key_hint: 'Paina näppäintä nähdäksesi sen tiedot' + shift_label: 'Shift: ' + shift_no: 'Ei' + overall_avg_time: 'Keskimääräinen aika: ' + overall_best_time: 'Paras aika: ' + overall_samples: 'Näytteet: ' + overall_accuracy_label: 'Kokonaistarkkuus: ' + branch_label: 'Haara: ' + level_label: 'Taso: ' + built_in_key: 'Sisäänrakennettu näppäin' + unlocked_label: 'Avattu: ' + yes: 'Kyllä' + no: 'Ei' + in_focus_label: 'Fokuksessa?: ' + mastery_label: 'Hallinta: ' + mastery_locked: 'Lukittu' + ranked_avg_time: 'Sijoitettu ka aika: ' + ranked_best_time: 'Sijoitettu paras aika: ' + ranked_samples: 'Sijoitetut näytteet: ' + ranked_accuracy_label: 'Sijoitettu tarkkuus: ' + +# Intro dialogs +intro: + passage_title: ' Tekstilatausten asetukset ' + code_title: ' Koodilatausten asetukset ' + enable_downloads: 'Ota verkkolataukset käyttöön' + download_dir: 'Latauskansio' + paragraphs_per_book: 'Kappaleet per kirja (0 = koko)' + whole_book: 'koko kirja' + snippets_per_repo: 'Katkelmat per repo (0 = rajaton)' + unlimited: 'rajaton' + start_passage_drill: 'Aloita tekstiharjoitus' + start_code_drill: 'Aloita koodiharjoitus' + confirm: 'Vahvista' + hint_navigate: '[Ylös/Alas] Navigoi' + hint_adjust: '[Vasen/Oikea] Säädä' + hint_edit: '[Kirjoita/Backspace] Muokkaa' + hint_confirm: '[Enter] Vahvista' + hint_cancel: '[ESC] Peruuta' + preparing_download: 'Valmistellaan latausta...' + download_passage_title: ' Ladataan tekstilähdettä ' + download_code_title: ' Ladataan koodilähdettä ' + book_label: ' Kirja: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} tavua' + downloaded_bytes: 'Ladattu: %{bytes} tavua' + downloading_book_progress: 'Ladataan kirjaa: [%{bar}] %{downloaded}/%{total} tavua' + downloading_book_bytes: 'Ladataan kirjaa: %{bytes} tavua' + downloading_code_progress: 'Ladataan: [%{bar}] %{downloaded}/%{total} tavua' + downloading_code_bytes: 'Ladataan: %{bytes} tavua' + current_book: 'Nykyinen: %{name} (kirja %{done}/%{total})' + current_repo: 'Nykyinen: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr voi ladata tekstejä Project Gutenbergistä kirjoitusharjoitteluun.' + passage_instructions_2: 'Kirjat ladataan kerran ja tallennetaan paikallisesti.' + passage_instructions_3: 'Määritä latausasetukset alla ja aloita tekstiharjoitus.' + code_instructions_1: 'keydr voi ladata avoimen lähdekoodin koodia GitHubista kirjoitusharjoitteluun.' + code_instructions_2: 'Koodi ladataan kerran ja tallennetaan paikallisesti.' + code_instructions_3: 'Määritä latausasetukset alla ja aloita koodiharjoitus.' + +# Status messages (from app.rs) +status: + recovery_files: 'Palautustiedostoja löydetty keskeytyneestä tuonnista. Data voi olla epäjohdonmukaista — harkitse uudelleentuontia.' + dir_not_exist: 'Kansiota ei ole olemassa: %{path}' + no_data_store: 'Datavarasto ei käytettävissä' + serialization_error: 'Sarjallistamisvirhe: %{error}' + exported_to: 'Viety kohteeseen %{path}' + export_failed: 'Vienti epäonnistui: %{error}' + could_not_read: 'Tiedostoa ei voitu lukea: %{error}' + invalid_export: 'Virheellinen vientitiedosto: %{error}' + unsupported_version: 'Ei-tuettu vientiversion: %{got} (odotettu %{expected})' + import_failed: 'Tuonti epäonnistui: %{error}' + imported_theme_fallback: 'Tuotu onnistuneesti (teemaa ''%{theme}'' ei löytynyt, käytetään oletusta)' + imported_success: 'Tuotu onnistuneesti' + adaptive_unavailable: 'Mukautuva sijoitettu tila ei käytettävissä: %{error}' + switched_to: 'Vaihdettu: %{name}' + layout_changed: 'Asettelu vaihdettu: %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Tuntematon kieli: %{key}' + unknown_layout: 'Tuntematon näppäinasettelu: %{key}' + unsupported_pair: 'Ei-tuettu kieli/asettelu-pari: %{language} + %{layout}' + language_blocked: 'Kieli estetty tukitason vuoksi: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Takaisin' diff --git a/locales/fr.yml b/locales/fr.yml new file mode 100644 index 0000000..1265619 --- /dev/null +++ b/locales/fr.yml @@ -0,0 +1,457 @@ +# Menu principal +menu: + subtitle: 'Tuteur de Frappe en Terminal' + adaptive_drill: 'Exercice Adaptatif' + adaptive_drill_desc: 'Mots phonétiques avec déverrouillage adaptatif des touches' + code_drill: 'Exercice de Code' + code_drill_desc: 'Entraînez-vous à taper la syntaxe du code' + passage_drill: 'Exercice de Passage' + passage_drill_desc: 'Tapez des passages de livres' + skill_tree: 'Arbre de Compétences' + skill_tree_desc: 'Voir les branches de progression et lancer des exercices' + keyboard: 'Clavier' + keyboard_desc: 'Explorer la disposition du clavier et les statistiques' + statistics: 'Statistiques' + statistics_desc: 'Voir vos statistiques de frappe' + settings: 'Paramètres' + settings_desc: 'Configurer keydr' + day_streak: ' | %{days} jours consécutifs' + key_progress: ' Progression %{unlocked}/%{total} (%{mastered} maîtrisées) | Objectif %{target} WPM%{streak}' + hint_start: '[1-3] Démarrer' + hint_skill_tree: '[t] Arbre de Compétences' + hint_keyboard: '[b] Clavier' + hint_stats: '[s] Statistiques' + hint_settings: '[c] Paramètres' + hint_quit: '[q] Quitter' + +# Écran d'exercice +drill: + title: ' Exercice ' + mode_adaptive: 'Adaptatif' + mode_code: 'Code (Non classé)' + mode_passage: 'Passage (Non classé)' + focus_char: 'Focus : ''%{ch}''' + focus_bigram: 'Focus : "%{bigram}"' + focus_both: 'Focus : ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Pré' + header_err: 'Err' + code_source: ' Source du code ' + passage_source: ' Source du passage ' + footer: '[ESC] Fin [Backspace] Effacer' + keys_reenabled: 'Touches réactivées en %{ms}ms' + hint_end: '[ESC] Fin de l''exercice' + hint_backspace: '[Backspace] Effacer' + +# Tableau de bord / résultat de l'exercice +dashboard: + title: ' Exercice Terminé ' + results: 'Résultats' + unranked_note_prefix: ' (Non classé' + unranked_note_suffix: ' ne compte pas pour l''arbre de compétences)' + speed: ' Vitesse : ' + accuracy_label: ' Précision : ' + time_label: ' Temps : ' + errors_label: ' Erreurs : ' + correct_detail: ' (%{correct}/%{total} corrects)' + input_blocked: ' Saisie temporairement bloquée ' + input_blocked_ms: '(%{ms}ms restantes)' + hint_continue: '[c/Enter/Space] Continuer' + hint_retry: '[r] Réessayer' + hint_menu: '[q] Menu' + hint_stats: '[s] Statistiques' + hint_delete: '[x] Supprimer' + +# Barre latérale de statistiques (pendant l'exercice) +sidebar: + title: ' Statistiques ' + wpm: 'WPM : ' + target: 'Objectif : ' + target_wpm: '%{wpm} WPM' + accuracy: 'Précision : ' + progress: 'Progression : ' + correct: 'Corrects : ' + errors: 'Erreurs : ' + time: 'Temps : ' + last_drill: ' Dernier Exercice ' + vs_avg: ' vs moy : ' + +# Tableau de bord des statistiques +stats: + title: ' Statistiques ' + empty: 'Aucun exercice terminé. Commencez à taper !' + tab_dashboard: '[1] Tableau de bord' + tab_history: '[2] Historique' + tab_activity: '[3] Activité' + tab_accuracy: '[4] Précision' + tab_timing: '[5] Chronométrage' + tab_ngrams: '[6] N-grammes' + hint_back: '[ESC] Retour' + hint_next_tab: '[Tab] Onglet suivant' + hint_switch_tab: '[1-6] Changer d''onglet' + hint_navigate: '[j/k] Naviguer' + hint_page: '[PgUp/PgDn] Défiler' + hint_delete: '[x] Supprimer' + summary_title: ' Résumé ' + drills: ' Exercices : ' + avg_wpm: ' WPM Moy : ' + best_wpm: ' Meilleur WPM : ' + accuracy_label: ' Précision : ' + total_time: ' Temps total : ' + wpm_chart_title: ' WPM par Exercice (20 derniers, Objectif : %{target}) ' + accuracy_chart_title: ' Précision %% (50 derniers Exercices) ' + chart_drill: 'Exercice #' + chart_accuracy_pct: 'Précision %%' + sessions_title: ' Sessions Récentes ' + session_header: ' # WPM Raw Pré%% Temps Date/Heure Mode Classé Partiel' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Supprimer la session #%{idx} ? (y/n)' + confirm_title: ' Confirmer ' + yes: 'oui' + no: 'non' + keyboard_accuracy_title: ' Précision du Clavier %% ' + keyboard_timing_title: ' Chronométrage du Clavier (ms) ' + slowest_keys_title: ' Touches les plus Lentes (ms) ' + fastest_keys_title: ' Touches les plus Rapides (ms) ' + worst_accuracy_title: ' Pire Précision (%%) ' + best_accuracy_title: ' Meilleure Précision (%%) ' + not_enough_data: ' Données insuffisantes' + streaks_title: ' Séries ' + current_streak: ' Actuelle : ' + best_streak: ' Meilleure : ' + active_days: ' Jours actifs : ' + top_days_none: ' Meilleurs jours : aucun' + top_days: ' Meilleurs jours : %{days}' + wpm_label: ' WPM : %{avg}/%{target} (%{pct}%%)' + acc_label: ' Pré : %{pct}%%' + keys_label: ' Touches : %{unlocked}/%{total} (%{mastered} maîtrisées)' + ngram_empty: 'Terminez des exercices adaptatifs pour voir les données de n-grammes' + ngram_header_speed_narrow: ' Bgrm Vit Att Anom%' + ngram_header_error_narrow: ' Bgrm Err Éch Taux Att Anom%' + ngram_header_speed: ' Bigramme Vit Att Échan. Anom%' + ngram_header_error: ' Bigramme Erreurs Échan. Taux Att Anom%' + focus_title: ' Focus Actif ' + focus_char_label: ' Focus : ' + focus_bigram_value: 'Bigramme %{label}' + focus_plus: ' + ' + anomaly_error: 'erreur' + anomaly_speed: 'vitesse' + focus_detail_both: ' Caractère ''%{ch}'' : touche la plus faible | Bigramme %{label} : anomalie de %{type} %{pct}%%' + focus_detail_char_only: ' Caractère ''%{ch}'' : touche la plus faible, aucune anomalie de bigramme confirmée' + focus_detail_bigram_only: ' (anomalie de %{type} : %{pct}%%)' + focus_empty: ' Terminez des exercices adaptatifs pour voir les données de focus' + error_anomalies_title: ' Anomalies d''Erreur (%{count}) ' + no_error_anomalies: ' Aucune anomalie d''erreur détectée' + speed_anomalies_title: ' Anomalies de Vitesse (%{count}) ' + no_speed_anomalies: ' Aucune anomalie de vitesse détectée' + scope_label_prefix: ' ' + bi_label: ' | Bi : %{count}' + tri_label: ' | Tri : %{count}' + hes_label: ' | Hés : >%{ms}ms' + gain_label: ' | Gain : %{value}' + gain_interval: ' (tous les 50)' + focus_char_value: 'Caractère ''%{ch}''' + +# Carte d'activité +heatmap: + title: ' Activité Quotidienne (Sessions par Jour) ' + jan: 'Jan' + feb: 'Fév' + mar: 'Mar' + apr: 'Avr' + may: 'Mai' + jun: 'Jun' + jul: 'Jul' + aug: 'Aoû' + sep: 'Sep' + oct: 'Oct' + nov: 'Nov' + dec: 'Déc' + +# Graphique +chart: + wpm_over_time: ' WPM au fil du temps ' + drill_number: 'Exercice #' + +# Paramètres +settings: + title: ' Paramètres ' + subtitle: 'Utilisez les flèches pour naviguer, Entrée/Droite pour changer, ESC pour sauvegarder et quitter' + target_wpm: 'WPM Objectif' + theme: 'Thème' + word_count: 'Nombre de Mots' + ui_language: 'Langue de l''Interface' + dictionary_language: 'Langue du Dictionnaire' + keyboard_layout: 'Disposition du Clavier' + code_language: 'Langage de Code' + code_downloads: 'Téléchargements de Code' + on: 'Oui' + off: 'Non' + code_download_dir: 'Rép. Téléchargement Code' + snippets_per_repo: 'Extraits par Dépôt' + unlimited: 'Illimité' + download_code_now: 'Télécharger Code Maintenant' + run_downloader: 'Lancer le téléchargeur' + passage_downloads: 'Téléchargements de Passages' + passage_download_dir: 'Rép. Téléchargement Passages' + paragraphs_per_book: 'Paragraphes par Livre' + whole_book: 'Livre entier' + download_passages_now: 'Télécharger Passages Maintenant' + export_path: 'Chemin d''Export' + export_data: 'Exporter les Données' + export_now: 'Exporter maintenant' + import_path: 'Chemin d''Import' + import_data: 'Importer les Données' + import_now: 'Importer maintenant' + hint_save_back: '[ESC] Sauvegarder et retour' + hint_change_value: '[Enter/flèches] Changer la valeur' + hint_edit_path: '[Enter sur chemin] Éditer' + hint_move: '[←→] Déplacer' + hint_tab_complete: '[Tab] Compléter (à la fin)' + hint_confirm: '[Enter] Confirmer' + hint_cancel: '[Esc] Annuler' + success_title: ' Succès ' + error_title: ' Erreur ' + press_any_key: 'Appuyez sur une touche' + file_exists_title: ' Fichier Existant ' + file_exists: 'Un fichier existe déjà à ce chemin.' + overwrite_rename: '[d] Écraser [r] Renommer [Esc] Annuler' + erase_warning: 'Ceci effacera vos données actuelles.' + export_first: 'Exportez d''abord si vous voulez les conserver.' + proceed_yn: 'Continuer ? (y/n)' + confirm_import_title: ' Confirmer l''Importation ' + +# Écrans de sélection +select: + dictionary_language_title: ' Sélectionner la Langue du Dictionnaire ' + keyboard_layout_title: ' Sélectionner la Disposition du Clavier ' + code_language_title: ' Sélectionner le Langage de Code ' + passage_source_title: ' Sélectionner la Source de Passages ' + ui_language_title: ' Sélectionner la Langue de l''Interface ' + more_above: '... %{count} de plus au-dessus ...' + more_below: '... %{count} de plus en-dessous ...' + current: ' (actuel)' + disabled: ' (désactivé)' + enabled_default: ' (activé, par défaut : %{layout})' + enabled: ' (activé)' + disabled_blocked: ' (désactivé : bloqué)' + built_in: ' (intégré)' + cached: ' (en cache)' + disabled_download: ' (désactivé : téléchargement requis)' + download_required: ' (téléchargement requis)' + hint_navigate: '[Up/Down/PgUp/PgDn] Naviguer' + hint_confirm: '[Enter] Confirmer' + hint_back: '[ESC] Retour' + language_resets_layout: 'Sélectionner une langue réinitialise la disposition à celle par défaut de cette langue.' + layout_no_language_change: 'Changer la disposition ne change pas la langue du dictionnaire.' + disabled_network_notice: 'Certaines langues sont désactivées : activez les téléchargements dans intro/paramètres.' + disabled_sources_notice: 'Certaines sources sont désactivées : activez les téléchargements dans intro/paramètres.' + passage_all: 'Tous (Intégrés + tous les livres)' + passage_builtin: 'Passages intégrés uniquement' + passage_book_prefix: 'Livre : %{title}' + +# Progression +progress: + overall_key_progress: 'Progression Globale des Touches' + unlocked_mastered: '%{unlocked}/%{total} déverrouillées (%{mastered} maîtrisées)' + +# Arbre de compétences +skill_tree: + title: ' Arbre de Compétences ' + locked: 'Verrouillé' + unlocked: 'déverrouillé' + mastered: 'maîtrisé' + in_progress: 'en cours' + complete: 'terminé' + locked_status: 'verrouillé' + locked_notice: 'Terminez %{count} lettres primaires pour débloquer les branches' + branches_separator: 'Branches (disponibles après %{count} lettres primaires)' + unlocked_letters: 'Déverrouillées %{unlocked}/%{total} lettres' + level: 'Niveau %{current}/%{total}' + level_zero: 'Niveau 0/%{total}' + in_focus: ' en focus' + hint_navigate: '[↑↓/jk] Naviguer' + hint_scroll: '[PgUp/PgDn ou Ctrl+U/Ctrl+D] Défiler' + hint_back: '[q] Retour' + hint_unlock: '[Enter] Déverrouiller' + hint_start_drill: '[Enter] Lancer l''Exercice' + unlock_msg_1: 'Une fois déverrouillé, l''exercice adaptatif inclura les touches de cette branche qui sont déverrouillées.' + unlock_msg_2: 'Si vous voulez vous concentrer sur cette branche, lancez un exercice directement depuis cette branche dans l''Arbre de Compétences.' + confirm_unlock: 'Déverrouiller %{branch} ?' + confirm_yn: '[y] Déverrouiller [n/ESC] Annuler' + lvl_prefix: 'Niv' + branch_primary_letters: 'Lettres Primaires' + branch_capital_letters: 'Lettres Majuscules' + branch_numbers: 'Chiffres 0-9' + branch_prose_punctuation: 'Ponctuation de Prose' + branch_whitespace: 'Espaces Blancs' + branch_code_symbols: 'Symboles de Code' + level_frequency_order: 'Ordre de Fréquence' + level_common_sentence_capitals: 'Majuscules de Phrases Courantes' + level_name_capitals: 'Majuscules de Noms' + level_remaining_capitals: 'Majuscules Restantes' + level_common_digits: 'Chiffres Courants' + level_all_digits: 'Tous les Chiffres' + level_essential: 'Essentiel' + level_common: 'Courant' + level_expressive: 'Expressif' + level_enter_return: 'Entrée/Retour' + level_tab_indent: 'Tab/Indentation' + level_arithmetic_assignment: 'Arithmétique et Affectation' + level_grouping: 'Groupement' + level_logic_reference: 'Logique et Référence' + level_special: 'Spécial' + +# Jalons +milestones: + unlock_title: ' Touche Déverrouillée ! ' + mastery_title: ' Touche Maîtrisée ! ' + branches_title: ' Nouvelles Branches Disponibles ! ' + branch_complete_title: ' Branche Terminée ! ' + all_unlocked_title: ' Toutes les Touches Déverrouillées ! ' + all_mastered_title: ' Maîtrise Totale du Clavier ! ' + unlocked: 'déverrouillée' + mastered: 'maîtrisée' + use_finger: 'Utilisez votre %{finger}' + hold_right_shift: 'Maintenez Shift Droit (auriculaire droit)' + hold_left_shift: 'Maintenez Shift Gauche (auriculaire gauche)' + congratulations_all_letters: 'Félicitations ! Vous avez maîtrisé les %{count} lettres primaires' + new_branches_available: 'De nouvelles branches de compétences sont disponibles :' + visit_skill_tree: 'Visitez l''Arbre de Compétences pour déverrouiller une nouvelle branche' + and_start_training: 'et commencez l''entraînement !' + open_skill_tree: 'Appuyez sur [t] pour ouvrir l''Arbre de Compétences' + branch_complete_msg: 'Vous avez terminé la branche %{branch} !' + all_levels_mastered: 'Les %{count} niveaux sont maîtrisés.' + all_keys_confident: 'Chaque touche de cette branche est à confiance maximale.' + all_unlocked_msg: 'Vous avez déverrouillé toutes les touches du clavier !' + all_unlocked_desc: 'Chaque caractère, symbole et modificateur est disponible dans vos exercices.' + keep_practicing_mastery: 'Continuez à pratiquer pour atteindre la maîtrise — quand chaque touche atteindra' + confidence_complete: 'la confiance maximale, vous aurez atteint la maîtrise totale du clavier !' + all_mastered_msg: 'Félicitations — vous avez atteint la maîtrise totale du clavier !' + all_mastered_desc: 'Chaque touche du clavier est à confiance maximale.' + mastery_takes_practice: 'La maîtrise n''est pas une destination — elle nécessite une pratique continue.' + keep_drilling: 'Continuez à vous entraîner pour garder votre niveau.' + hint_skill_tree_continue: '[t] Ouvrir l''Arbre de Compétences [Autre touche] Continuer' + hint_any_key: 'Appuyez sur une touche pour continuer' + input_blocked: 'Saisie temporairement bloquée (%{ms}ms restantes)' + unlock_msg_1: 'Bon travail ! Continuez à améliorer vos compétences.' + unlock_msg_2: 'Une touche de plus dans votre arsenal !' + unlock_msg_3: 'Votre clavier s''agrandit ! Continuez !' + unlock_msg_4: 'Un pas de plus vers la maîtrise totale !' + mastery_msg_1: 'Cette touche est à confiance maximale !' + mastery_msg_2: 'Vous maîtrisez cette touche parfaitement !' + mastery_msg_3: 'Mémoire musculaire acquise !' + mastery_msg_4: 'Une touche de plus conquise !' + +# Explorateur de clavier +keyboard: + title: ' Clavier ' + subtitle: 'Appuyez ou cliquez sur une touche' + hint_navigate: '[←→↑↓/hjkl/Tab] Naviguer' + hint_back: '[q/ESC] Retour' + key_label: 'Touche : ' + finger_label: 'Doigt : ' + hand_left: 'Gauche' + hand_right: 'Droite' + finger_index: 'Indicateur' + finger_middle: 'Majeur' + finger_ring: 'Annulaire' + finger_pinky: 'Auriculaire' + finger_thumb: 'Pouce' + overall_accuracy: ' Précision globale : %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Précision classée : %{correct}/%{total} (%{pct}%%)' + confidence: 'Confiance : ' + no_data: 'Pas encore de données' + no_data_short: 'Pas de données' + key_details: ' Détails de la Touche ' + key_details_char: ' Détails de la Touche : ''%{ch}'' ' + key_details_name: ' Détails de la Touche : %{name} ' + press_key_hint: 'Appuyez sur une touche pour voir ses détails' + shift_label: 'Shift : ' + shift_no: 'Non' + overall_avg_time: 'Temps Moy. Global : ' + overall_best_time: 'Meilleur Temps Global : ' + overall_samples: 'Échantillons Globaux : ' + overall_accuracy_label: 'Précision Globale : ' + branch_label: 'Branche : ' + level_label: 'Niveau : ' + built_in_key: 'Touche Intégrée' + unlocked_label: 'Déverrouillée : ' + yes: 'Oui' + no: 'Non' + in_focus_label: 'En Focus ? : ' + mastery_label: 'Maîtrise : ' + mastery_locked: 'Verrouillé' + ranked_avg_time: 'Temps Moy. Classé : ' + ranked_best_time: 'Meilleur Temps Classé : ' + ranked_samples: 'Échantillons Classés : ' + ranked_accuracy_label: 'Précision Classée : ' + +# Dialogues d'introduction +intro: + passage_title: ' Configuration Téléchargement de Passages ' + code_title: ' Configuration Téléchargement de Code ' + enable_downloads: 'Activer les téléchargements réseau' + download_dir: 'Répertoire de téléchargement' + paragraphs_per_book: 'Paragraphes par livre (0 = entier)' + whole_book: 'livre entier' + snippets_per_repo: 'Extraits par dépôt (0 = illimité)' + unlimited: 'illimité' + start_passage_drill: 'Lancer l''exercice de passage' + start_code_drill: 'Lancer l''exercice de code' + confirm: 'Confirmer' + hint_navigate: '[Up/Down] Naviguer' + hint_adjust: '[Left/Right] Ajuster' + hint_edit: '[Type/Backspace] Éditer' + hint_confirm: '[Enter] Confirmer' + hint_cancel: '[ESC] Annuler' + preparing_download: 'Préparation du téléchargement...' + download_passage_title: ' Téléchargement de la Source de Passage ' + download_code_title: ' Téléchargement de la Source de Code ' + book_label: ' Livre : %{name}' + repo_label: ' Dépôt : %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bytes' + downloaded_bytes: 'Téléchargé : %{bytes} bytes' + downloading_book_progress: 'Téléchargement du livre : [%{bar}] %{downloaded}/%{total} bytes' + downloading_book_bytes: 'Téléchargement du livre : %{bytes} bytes' + downloading_code_progress: 'Téléchargement : [%{bar}] %{downloaded}/%{total} bytes' + downloading_code_bytes: 'Téléchargement : %{bytes} bytes' + current_book: 'Actuel : %{name} (livre %{done}/%{total})' + current_repo: 'Actuel : %{name} (dépôt %{done}/%{total})' + passage_instructions_1: 'keydr peut télécharger des passages de Project Gutenberg pour la pratique de frappe.' + passage_instructions_2: 'Les livres sont téléchargés une fois et mis en cache localement.' + passage_instructions_3: 'Configurez les paramètres ci-dessous, puis lancez un exercice de passage.' + code_instructions_1: 'keydr peut télécharger du code open-source de GitHub pour la pratique de frappe.' + code_instructions_2: 'Le code est téléchargé une fois et mis en cache localement.' + code_instructions_3: 'Configurez les paramètres ci-dessous, puis lancez un exercice de code.' + +# Messages de statut (de app.rs) +status: + recovery_files: 'Fichiers de récupération trouvés suite à une importation interrompue. Les données peuvent être incohérentes — envisagez de réimporter.' + dir_not_exist: 'Le répertoire n''existe pas : %{path}' + no_data_store: 'Aucun stockage de données disponible' + serialization_error: 'Erreur de sérialisation : %{error}' + exported_to: 'Exporté vers %{path}' + export_failed: 'Échec de l''exportation : %{error}' + could_not_read: 'Impossible de lire le fichier : %{error}' + invalid_export: 'Fichier d''export invalide : %{error}' + unsupported_version: 'Version d''export non supportée : %{got} (attendue %{expected})' + import_failed: 'Échec de l''importation : %{error}' + imported_theme_fallback: 'Importé avec succès (thème ''%{theme}'' introuvable, utilisation du défaut)' + imported_success: 'Importé avec succès' + adaptive_unavailable: 'Mode adaptatif classé non disponible : %{error}' + switched_to: 'Basculé vers %{name}' + layout_changed: 'Disposition changée en %{name}' + +# Erreurs (pour traduction des limites d'UI) +errors: + unknown_language: 'Langue inconnue : %{key}' + unknown_layout: 'Disposition de clavier inconnue : %{key}' + unsupported_pair: 'Paire langue/disposition non supportée : %{language} + %{layout}' + language_blocked: 'Langue bloquée par le niveau de support : %{key}' + +# Commun +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Retour' diff --git a/locales/hr.yml b/locales/hr.yml new file mode 100644 index 0000000..9400a1e --- /dev/null +++ b/locales/hr.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminalni trener tipkanja' + adaptive_drill: 'Prilagodljiva vježba' + adaptive_drill_desc: 'Fonetske riječi s prilagodljivim otključavanjem slova' + code_drill: 'Vježba koda' + code_drill_desc: 'Vježbajte tipkanje sintakse koda' + passage_drill: 'Vježba teksta' + passage_drill_desc: 'Tipkajte odlomke iz knjiga' + skill_tree: 'Stablo vještina' + skill_tree_desc: 'Pregledajte grane napretka i pokrenite vježbe' + keyboard: 'Tipkovnica' + keyboard_desc: 'Istražite raspored tipkovnice i statistiku tipki' + statistics: 'Statistika' + statistics_desc: 'Pregledajte svoju statistiku tipkanja' + settings: 'Postavke' + settings_desc: 'Konfigurirajte keydr' + day_streak: ' | %{days} dana zaredom' + key_progress: ' Napredak tipki %{unlocked}/%{total} (%{mastered} savladano) | Cilj %{target} WPM%{streak}' + hint_start: '[1-3] Pokreni' + hint_skill_tree: '[t] Stablo vještina' + hint_keyboard: '[b] Tipkovnica' + hint_stats: '[s] Statistika' + hint_settings: '[c] Postavke' + hint_quit: '[q] Izlaz' + +# Drill screen +drill: + title: ' Vježba ' + mode_adaptive: 'Prilagodljiva' + mode_code: 'Kod (bez ocjene)' + mode_passage: 'Tekst (bez ocjene)' + focus_char: 'Fokus: ''%{ch}''' + focus_bigram: 'Fokus: "%{bigram}"' + focus_both: 'Fokus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Toč' + header_err: 'Greš' + code_source: ' Izvor koda ' + passage_source: ' Izvor teksta ' + footer: '[ESC] Završi vježbu [Backspace] Obriši' + keys_reenabled: 'Tipke ponovo aktivne za %{ms}ms' + hint_end: '[ESC] Završi vježbu' + hint_backspace: '[Backspace] Obriši' + +# Dashboard / drill result +dashboard: + title: ' Vježba završena ' + results: 'Rezultati' + unranked_note_prefix: ' (Bez ocjene' + unranked_note_suffix: ' ne broji se za stablo vještina)' + speed: ' Brzina: ' + accuracy_label: ' Točnost: ' + time_label: ' Vrijeme: ' + errors_label: ' Greške: ' + correct_detail: ' (%{correct}/%{total} točno)' + input_blocked: ' Unos privremeno blokiran ' + input_blocked_ms: '(%{ms}ms preostalo)' + hint_continue: '[c/Enter/Space] Nastavi' + hint_retry: '[r] Ponovi' + hint_menu: '[q] Izbornik' + hint_stats: '[s] Statistika' + hint_delete: '[x] Obriši' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistika ' + wpm: 'WPM: ' + target: 'Cilj: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Točnost: ' + progress: 'Napredak: ' + correct: 'Točno: ' + errors: 'Greške: ' + time: 'Vrijeme: ' + last_drill: ' Zadnja vježba ' + vs_avg: ' vs prosjek: ' + +# Statistics dashboard +stats: + title: ' Statistika ' + empty: 'Nema završenih vježbi. Počnite tipkati!' + tab_dashboard: '[1] Pregled' + tab_history: '[2] Povijest' + tab_activity: '[3] Aktivnost' + tab_accuracy: '[4] Točnost' + tab_timing: '[5] Tajming' + tab_ngrams: '[6] N-grami' + hint_back: '[ESC] Natrag' + hint_next_tab: '[Tab] Sljedeća kartica' + hint_switch_tab: '[1-6] Kartica' + hint_navigate: '[j/k] Navigacija' + hint_page: '[PgUp/PgDn] Stranica' + hint_delete: '[x] Obriši' + summary_title: ' Sažetak ' + drills: ' Vježbe: ' + avg_wpm: ' Prosj. WPM: ' + best_wpm: ' Najbolji WPM: ' + accuracy_label: ' Točnost: ' + total_time: ' Ukupno vrijeme: ' + wpm_chart_title: ' WPM po vježbi (Zadnjih 20, Cilj: %{target}) ' + accuracy_chart_title: ' Točnost %% (Zadnjih 50 vježbi) ' + chart_drill: 'Vježba #' + chart_accuracy_pct: 'Točnost %%' + sessions_title: ' Nedavne sesije ' + session_header: ' # WPM Raw Toč%% Vrijeme Datum/Vrijeme Način Ocjena Djelom.' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Obrisati sesiju #%{idx}? (y/n)' + confirm_title: ' Potvrda ' + yes: 'da' + no: 'ne' + keyboard_accuracy_title: ' Točnost tipkovnice %% ' + keyboard_timing_title: ' Tajming tipkovnice (ms) ' + slowest_keys_title: ' Najsporije tipke (ms) ' + fastest_keys_title: ' Najbrže tipke (ms) ' + worst_accuracy_title: ' Najgora točnost (%%) ' + best_accuracy_title: ' Najbolja točnost (%%) ' + not_enough_data: ' Nedovoljno podataka' + streaks_title: ' Nizovi ' + current_streak: ' Trenutni: ' + best_streak: ' Najbolji: ' + active_days: ' Aktivni dani: ' + top_days_none: ' Najbolji dani: nema' + top_days: ' Najbolji dani: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Toč: %{pct}%%' + keys_label: ' Tipke: %{unlocked}/%{total} (%{mastered} savladano)' + ngram_empty: 'Završite nekoliko prilagodljivih vježbi za prikaz n-gram podataka' + ngram_header_speed_narrow: ' Bgrm Brzina Očekiv Anom%' + ngram_header_error_narrow: ' Bgrm Greš Uzrk Stopa Očk Anom%' + ngram_header_speed: ' Bigram Brzina Očekiv Uzorci Anom%' + ngram_header_error: ' Bigram Greške Uzorci Stopa Očekiv Anom%' + focus_title: ' Aktivni fokus ' + focus_char_label: ' Fokus: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'greška' + anomaly_speed: 'brzina' + focus_detail_both: ' Znak ''%{ch}'': najslabija tipka | Bigram %{label}: %{type} anomalija %{pct}%%' + focus_detail_char_only: ' Znak ''%{ch}'': najslabija tipka, nema potvrđenih bigram anomalija' + focus_detail_bigram_only: ' (%{type} anomalija: %{pct}%%)' + focus_empty: ' Završite nekoliko prilagodljivih vježbi za prikaz fokus podataka' + error_anomalies_title: ' Anomalije grešaka (%{count}) ' + no_error_anomalies: ' Nema otkrivenih anomalija grešaka' + speed_anomalies_title: ' Anomalije brzine (%{count}) ' + no_speed_anomalies: ' Nema otkrivenih anomalija brzine' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Dobitak: %{value}' + gain_interval: ' (svakih 50)' + focus_char_value: 'Znak ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Dnevna aktivnost (Sesije po danu) ' + jan: 'Sij' + feb: 'Velj' + mar: 'Ožu' + apr: 'Tra' + may: 'Svi' + jun: 'Lip' + jul: 'Srp' + aug: 'Kol' + sep: 'Ruj' + oct: 'Lis' + nov: 'Stu' + dec: 'Pro' + +# Chart +chart: + wpm_over_time: ' WPM kroz vrijeme ' + drill_number: 'Vježba #' + +# Settings +settings: + title: ' Postavke ' + subtitle: 'Strelicama navigirajte, Enter/Desno za promjenu, ESC za spremanje' + target_wpm: 'Ciljni WPM' + theme: 'Tema' + word_count: 'Broj riječi' + ui_language: 'Jezik sučelja' + dictionary_language: 'Jezik rječnika' + keyboard_layout: 'Raspored tipkovnice' + code_language: 'Programski jezik' + code_downloads: 'Preuzimanje koda' + on: 'Uklj.' + off: 'Isklj.' + code_download_dir: 'Mapa za preuzimanje koda' + snippets_per_repo: 'Isječaka po repozitoriju' + unlimited: 'Neograničeno' + download_code_now: 'Preuzmi kod sada' + run_downloader: 'Pokreni preuzimanje' + passage_downloads: 'Preuzimanje tekstova' + passage_download_dir: 'Mapa za preuzimanje tekstova' + paragraphs_per_book: 'Odlomaka po knjizi' + whole_book: 'Cijela knjiga' + download_passages_now: 'Preuzmi tekstove sada' + export_path: 'Putanja izvoza' + export_data: 'Izvezi podatke' + export_now: 'Izvezi sada' + import_path: 'Putanja uvoza' + import_data: 'Uvezi podatke' + import_now: 'Uvezi sada' + hint_save_back: '[ESC] Spremi i natrag' + hint_change_value: '[Enter/strelice] Promijeni' + hint_edit_path: '[Enter na putanju] Uredi' + hint_move: '[←→] Pomakni' + hint_tab_complete: '[Tab] Dovrši (na kraju)' + hint_confirm: '[Enter] Potvrdi' + hint_cancel: '[Esc] Odustani' + success_title: ' Uspjeh ' + error_title: ' Greška ' + press_any_key: 'Pritisnite bilo koju tipku' + file_exists_title: ' Datoteka postoji ' + file_exists: 'Datoteka već postoji na ovoj putanji.' + overwrite_rename: '[d] Prepiši [r] Preimenuj [Esc] Odustani' + erase_warning: 'Ovo će izbrisati vaše trenutne podatke.' + export_first: 'Prvo izvezite ako želite sačuvati.' + proceed_yn: 'Nastaviti? (y/n)' + confirm_import_title: ' Potvrda uvoza ' + +# Selection screens +select: + dictionary_language_title: ' Odaberite jezik rječnika ' + keyboard_layout_title: ' Odaberite raspored tipkovnice ' + code_language_title: ' Odaberite programski jezik ' + passage_source_title: ' Odaberite izvor teksta ' + ui_language_title: ' Odaberite jezik sučelja ' + more_above: '... još %{count} iznad ...' + more_below: '... još %{count} ispod ...' + current: ' (trenutni)' + disabled: ' (onemogućeno)' + enabled_default: ' (omogućeno, zadano: %{layout})' + enabled: ' (omogućeno)' + disabled_blocked: ' (onemogućeno: blokirano)' + built_in: ' (ugrađeno)' + cached: ' (u predmemoriji)' + disabled_download: ' (onemogućeno: potrebno preuzimanje)' + download_required: ' (potrebno preuzimanje)' + hint_navigate: '[Gore/Dolje/PgUp/PgDn] Navigacija' + hint_confirm: '[Enter] Potvrdi' + hint_back: '[ESC] Natrag' + language_resets_layout: 'Odabir jezika resetira raspored tipkovnice na zadani za taj jezik.' + layout_no_language_change: 'Promjena rasporeda ne mijenja jezik rječnika.' + disabled_network_notice: 'Neki jezici su onemogućeni: omogućite mrežna preuzimanja u uvodu/postavkama.' + disabled_sources_notice: 'Neki izvori su onemogućeni: omogućite mrežna preuzimanja u uvodu/postavkama.' + passage_all: 'Sve (Ugrađeno + sve knjige)' + passage_builtin: 'Samo ugrađeni tekstovi' + passage_book_prefix: 'Knjiga: %{title}' + +# Progress +progress: + overall_key_progress: 'Ukupni napredak tipki' + unlocked_mastered: '%{unlocked}/%{total} otključano (%{mastered} savladano)' + +# Skill tree +skill_tree: + title: ' Stablo vještina ' + locked: 'Zaključano' + unlocked: 'otključano' + mastered: 'savladano' + in_progress: 'u tijeku' + complete: 'završeno' + locked_status: 'zaključano' + locked_notice: 'Završite %{count} primarnih slova za otključavanje grana' + branches_separator: 'Grane (dostupne nakon %{count} primarnih slova)' + unlocked_letters: 'Otključano %{unlocked}/%{total} slova' + level: 'Razina %{current}/%{total}' + level_zero: 'Razina 0/%{total}' + in_focus: ' u fokusu' + hint_navigate: '[↑↓/jk] Navigacija' + hint_scroll: '[PgUp/PgDn ili Ctrl+U/Ctrl+D] Pomicanje' + hint_back: '[q] Natrag' + hint_unlock: '[Enter] Otključaj' + hint_start_drill: '[Enter] Pokreni vježbu' + unlock_msg_1: 'Nakon otključavanja, zadana prilagodljiva vježba uključit će otključane tipke iz ove grane.' + unlock_msg_2: 'Ako se želite usredotočiti samo na ovu granu, pokrenite vježbu izravno iz stabla vještina.' + confirm_unlock: 'Otključati %{branch}?' + confirm_yn: '[y] Otključaj [n/ESC] Odustani' + lvl_prefix: 'Raz' + branch_primary_letters: 'Primarna slova' + branch_capital_letters: 'Velika slova' + branch_numbers: 'Brojevi 0-9' + branch_prose_punctuation: 'Interpunkcija' + branch_whitespace: 'Bjeline' + branch_code_symbols: 'Simboli koda' + level_frequency_order: 'Poredak po učestalosti' + level_common_sentence_capitals: 'Uobičajena velika slova' + level_name_capitals: 'Velika slova za imena' + level_remaining_capitals: 'Preostala velika slova' + level_common_digits: 'Uobičajene znamenke' + level_all_digits: 'Sve znamenke' + level_essential: 'Osnovno' + level_common: 'Uobičajeno' + level_expressive: 'Izražajno' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Uvlačenje' + level_arithmetic_assignment: 'Aritmetika i pridruživanje' + level_grouping: 'Grupiranje' + level_logic_reference: 'Logika i reference' + level_special: 'Specijalno' + +# Milestones +milestones: + unlock_title: ' Tipka otključana! ' + mastery_title: ' Tipka savladana! ' + branches_title: ' Nove grane vještina dostupne! ' + branch_complete_title: ' Grana završena! ' + all_unlocked_title: ' Sve tipke otključane! ' + all_mastered_title: ' Potpuno vladanje tipkovnicom! ' + unlocked: 'otključano' + mastered: 'savladano' + use_finger: 'Koristite %{finger}' + hold_right_shift: 'Držite desni Shift (desni mali prst)' + hold_left_shift: 'Držite lijevi Shift (lijevi mali prst)' + congratulations_all_letters: 'Čestitamo! Savladali ste svih %{count} primarnih slova' + new_branches_available: 'Nove grane vještina su sada dostupne:' + visit_skill_tree: 'Posjetite stablo vještina za otključavanje nove grane' + and_start_training: 'i počnite vježbati!' + open_skill_tree: 'Pritisnite [t] za otvaranje stabla vještina' + branch_complete_msg: 'Završili ste granu %{branch}!' + all_levels_mastered: 'Svih %{count} razina savladano.' + all_keys_confident: 'Svaka tipka u ovoj grani je na punoj razini pouzdanosti.' + all_unlocked_msg: 'Otključali ste svaku tipku na tipkovnici!' + all_unlocked_desc: 'Svaki znak, simbol i modifikator je sada dostupan u vašim vježbama.' + keep_practicing_mastery: 'Nastavite vježbati za izgradnju majstorstva — kada svaka tipka dosegne punu' + confidence_complete: 'razinu pouzdanosti, postigli ste potpuno vladanje tipkovnicom!' + all_mastered_msg: 'Čestitamo — postigli ste potpuno vladanje tipkovnicom!' + all_mastered_desc: 'Svaka tipka na tipkovnici je na maksimalnoj razini pouzdanosti.' + mastery_takes_practice: 'Majstorstvo nije odredište — zahtijeva stalnu vježbu.' + keep_drilling: 'Nastavite vježbati kako biste održali formu.' + hint_skill_tree_continue: '[t] Otvori stablo vještina [Bilo koja tipka] Nastavi' + hint_any_key: 'Pritisnite bilo koju tipku za nastavak' + input_blocked: 'Unos privremeno blokiran (%{ms}ms preostalo)' + unlock_msg_1: 'Odličan posao! Nastavite graditi vještine tipkanja.' + unlock_msg_2: 'Još jedna tipka dodana u vaš arsenal!' + unlock_msg_3: 'Vaša tipkovnica raste! Samo naprijed.' + unlock_msg_4: 'Korak bliže potpunom vladanju tipkovnicom!' + mastery_msg_1: 'Ova tipka je sada na punoj razini pouzdanosti!' + mastery_msg_2: 'Ovu tipku imate u malom prstu!' + mastery_msg_3: 'Mišićna memorija zaključana!' + mastery_msg_4: 'Još jedna tipka osvojena!' + +# Keyboard explorer +keyboard: + title: ' Tipkovnica ' + subtitle: 'Pritisnite bilo koju tipku ili kliknite tipku' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigacija' + hint_back: '[q/ESC] Natrag' + key_label: 'Tipka: ' + finger_label: 'Prst: ' + hand_left: 'Lijeva' + hand_right: 'Desna' + finger_index: 'Kažiprst' + finger_middle: 'Srednji' + finger_ring: 'Prstenjak' + finger_pinky: 'Mali prst' + finger_thumb: 'Palac' + overall_accuracy: ' Ukupna točnost: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Ocjenjena točnost: %{correct}/%{total} (%{pct}%%)' + confidence: 'Pouzdanost: ' + no_data: 'Još nema podataka' + no_data_short: 'Nema podat.' + key_details: ' Detalji tipke ' + key_details_char: ' Detalji tipke: ''%{ch}'' ' + key_details_name: ' Detalji tipke: %{name} ' + press_key_hint: 'Pritisnite tipku za prikaz detalja' + shift_label: 'Shift: ' + shift_no: 'Ne' + overall_avg_time: 'Ukupno prosj. vrijeme: ' + overall_best_time: 'Ukupno najbolje vrijeme: ' + overall_samples: 'Ukupno uzoraka: ' + overall_accuracy_label: 'Ukupna točnost: ' + branch_label: 'Grana: ' + level_label: 'Razina: ' + built_in_key: 'Ugrađena tipka' + unlocked_label: 'Otključano: ' + yes: 'Da' + no: 'Ne' + in_focus_label: 'U fokusu?: ' + mastery_label: 'Majstorstvo: ' + mastery_locked: 'Zaključano' + ranked_avg_time: 'Ocj. prosj. vrijeme: ' + ranked_best_time: 'Ocj. najbolje vrijeme: ' + ranked_samples: 'Ocj. uzoraka: ' + ranked_accuracy_label: 'Ocj. točnost: ' + +# Intro dialogs +intro: + passage_title: ' Postavke preuzimanja tekstova ' + code_title: ' Postavke preuzimanja koda ' + enable_downloads: 'Omogući mrežna preuzimanja' + download_dir: 'Mapa za preuzimanje' + paragraphs_per_book: 'Odlomaka po knjizi (0 = cijela)' + whole_book: 'cijela knjiga' + snippets_per_repo: 'Isječaka po repozitoriju (0 = neograničeno)' + unlimited: 'neograničeno' + start_passage_drill: 'Pokreni vježbu teksta' + start_code_drill: 'Pokreni vježbu koda' + confirm: 'Potvrdi' + hint_navigate: '[Gore/Dolje] Navigacija' + hint_adjust: '[Lijevo/Desno] Prilagodi' + hint_edit: '[Tipkanje/Backspace] Uredi' + hint_confirm: '[Enter] Potvrdi' + hint_cancel: '[ESC] Odustani' + preparing_download: 'Priprema preuzimanja...' + download_passage_title: ' Preuzimanje izvora teksta ' + download_code_title: ' Preuzimanje izvora koda ' + book_label: ' Knjiga: %{name}' + repo_label: ' Repozitorij: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bajtova' + downloaded_bytes: 'Preuzeto: %{bytes} bajtova' + downloading_book_progress: 'Preuzimanje knjige: [%{bar}] %{downloaded}/%{total} bajtova' + downloading_book_bytes: 'Preuzimanje knjige: %{bytes} bajtova' + downloading_code_progress: 'Preuzimanje: [%{bar}] %{downloaded}/%{total} bajtova' + downloading_code_bytes: 'Preuzimanje: %{bytes} bajtova' + current_book: 'Trenutno: %{name} (knjiga %{done}/%{total})' + current_repo: 'Trenutno: %{name} (repozitorij %{done}/%{total})' + passage_instructions_1: 'keydr može preuzeti tekstove iz Project Gutenberga za vježbu tipkanja.' + passage_instructions_2: 'Knjige se preuzimaju jednom i lokalno pohranjuju.' + passage_instructions_3: 'Konfigurirajte postavke preuzimanja, zatim pokrenite vježbu teksta.' + code_instructions_1: 'keydr može preuzeti otvoreni kod s GitHuba za vježbu tipkanja.' + code_instructions_2: 'Kod se preuzima jednom i lokalno pohranjuje.' + code_instructions_3: 'Konfigurirajte postavke preuzimanja, zatim pokrenite vježbu koda.' + +# Status messages (from app.rs) +status: + recovery_files: 'Pronađene datoteke za oporavak od prekinutog uvoza. Podaci mogu biti nekonzistentni — razmislite o ponovnom uvozu.' + dir_not_exist: 'Mapa ne postoji: %{path}' + no_data_store: 'Nema dostupnog spremišta podataka' + serialization_error: 'Greška serijalizacije: %{error}' + exported_to: 'Izvezeno u %{path}' + export_failed: 'Izvoz neuspješan: %{error}' + could_not_read: 'Nije moguće pročitati datoteku: %{error}' + invalid_export: 'Nevaljana izvozna datoteka: %{error}' + unsupported_version: 'Nepodržana verzija izvoza: %{got} (očekivano %{expected})' + import_failed: 'Uvoz neuspješan: %{error}' + imported_theme_fallback: 'Uvoz uspješan (tema ''%{theme}'' nije pronađena, koristi se zadana)' + imported_success: 'Uvoz uspješan' + adaptive_unavailable: 'Prilagodljivi ocijenjeni način nedostupan: %{error}' + switched_to: 'Prebačeno na %{name}' + layout_changed: 'Raspored promijenjen na %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Nepoznat jezik: %{key}' + unknown_layout: 'Nepoznat raspored tipkovnice: %{key}' + unsupported_pair: 'Nepodržani par jezik/raspored: %{language} + %{layout}' + language_blocked: 'Jezik je blokiran razinom podrške: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Natrag' diff --git a/locales/hu.yml b/locales/hu.yml new file mode 100644 index 0000000..1524833 --- /dev/null +++ b/locales/hu.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminál gépelésgyakorló' + adaptive_drill: 'Adaptív gyakorlat' + adaptive_drill_desc: 'Fonetikus szavak adaptív betűfeloldással' + code_drill: 'Kód gyakorlat' + code_drill_desc: 'Kódszintaxis gépelés gyakorlása' + passage_drill: 'Szöveg gyakorlat' + passage_drill_desc: 'Könyvekből származó szövegek gépelése' + skill_tree: 'Képességfa' + skill_tree_desc: 'Haladási ágak megtekintése és gyakorlatok indítása' + keyboard: 'Billentyűzet' + keyboard_desc: 'Billentyűzetkiosztás és billentyűstatisztikák felfedezése' + statistics: 'Statisztika' + statistics_desc: 'Gépelési statisztikák megtekintése' + settings: 'Beállítások' + settings_desc: 'keydr konfigurálása' + day_streak: ' | %{days} napos sorozat' + key_progress: ' Billentyűhaladás %{unlocked}/%{total} (%{mastered} elsajátítva) | Cél %{target} WPM%{streak}' + hint_start: '[1-3] Indítás' + hint_skill_tree: '[t] Képességfa' + hint_keyboard: '[b] Billentyűzet' + hint_stats: '[s] Statisztika' + hint_settings: '[c] Beállítások' + hint_quit: '[q] Kilépés' + +# Drill screen +drill: + title: ' Gyakorlat ' + mode_adaptive: 'Adaptív' + mode_code: 'Kód (nem értékelt)' + mode_passage: 'Szöveg (nem értékelt)' + focus_char: 'Fókusz: ''%{ch}''' + focus_bigram: 'Fókusz: "%{bigram}"' + focus_both: 'Fókusz: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Pont' + header_err: 'Hiba' + code_source: ' Kódforrás ' + passage_source: ' Szövegforrás ' + footer: '[ESC] Gyakorlat vége [Backspace] Törlés' + keys_reenabled: 'Billentyűk újra aktívak %{ms}ms múlva' + hint_end: '[ESC] Gyakorlat vége' + hint_backspace: '[Backspace] Törlés' + +# Dashboard / drill result +dashboard: + title: ' Gyakorlat kész ' + results: 'Eredmények' + unranked_note_prefix: ' (Nem értékelt' + unranked_note_suffix: ' nem számít a képességfába)' + speed: ' Sebesség: ' + accuracy_label: ' Pontosság:' + time_label: ' Idő: ' + errors_label: ' Hibák: ' + correct_detail: ' (%{correct}/%{total} helyes)' + input_blocked: ' Bevitel ideiglenesen blokkolva ' + input_blocked_ms: '(%{ms}ms hátra)' + hint_continue: '[c/Enter/Space] Tovább' + hint_retry: '[r] Újra' + hint_menu: '[q] Menü' + hint_stats: '[s] Statisztika' + hint_delete: '[x] Törlés' + +# Stats sidebar (during drill) +sidebar: + title: ' Statisztika ' + wpm: 'WPM: ' + target: 'Cél: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Pontosság: ' + progress: 'Haladás: ' + correct: 'Helyes: ' + errors: 'Hibák: ' + time: 'Idő: ' + last_drill: ' Utolsó gyakorlat ' + vs_avg: ' vs átlag: ' + +# Statistics dashboard +stats: + title: ' Statisztika ' + empty: 'Még nincs befejezett gyakorlat. Kezdjen gépelni!' + tab_dashboard: '[1] Áttekintés' + tab_history: '[2] Előzmények' + tab_activity: '[3] Aktivitás' + tab_accuracy: '[4] Pontosság' + tab_timing: '[5] Időzítés' + tab_ngrams: '[6] N-gramok' + hint_back: '[ESC] Vissza' + hint_next_tab: '[Tab] Következő fül' + hint_switch_tab: '[1-6] Fül váltás' + hint_navigate: '[j/k] Navigáció' + hint_page: '[PgUp/PgDn] Lap' + hint_delete: '[x] Törlés' + summary_title: ' Összefoglaló ' + drills: ' Gyakorlatok: ' + avg_wpm: ' Átl. WPM: ' + best_wpm: ' Legjobb WPM: ' + accuracy_label: ' Pontosság: ' + total_time: ' Összes idő: ' + wpm_chart_title: ' WPM gyakorlatonként (Utolsó 20, Cél: %{target}) ' + accuracy_chart_title: ' Pontosság %% (Utolsó 50 gyakorlat) ' + chart_drill: 'Gyakorlat #' + chart_accuracy_pct: 'Pontosság %%' + sessions_title: ' Legutóbbi munkamenetek ' + session_header: ' # WPM Raw Pont%% Idő Dátum/Idő Mód Értékelt Részl.' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Munkamenet #%{idx} törlése? (y/n)' + confirm_title: ' Megerősítés ' + yes: 'igen' + no: 'nem' + keyboard_accuracy_title: ' Billentyűzet pontosság %% ' + keyboard_timing_title: ' Billentyűzet időzítés (ms) ' + slowest_keys_title: ' Leglassabb billentyűk (ms) ' + fastest_keys_title: ' Leggyorsabb billentyűk (ms) ' + worst_accuracy_title: ' Legrosszabb pontosság (%%) ' + best_accuracy_title: ' Legjobb pontosság (%%) ' + not_enough_data: ' Nincs elég adat' + streaks_title: ' Sorozatok ' + current_streak: ' Jelenlegi: ' + best_streak: ' Legjobb: ' + active_days: ' Aktív napok: ' + top_days_none: ' Legjobb napok: nincs' + top_days: ' Legjobb napok: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Pont: %{pct}%%' + keys_label: ' Billentyűk: %{unlocked}/%{total} (%{mastered} elsajátítva)' + ngram_empty: 'Végezzen el néhány adaptív gyakorlatot az n-gram adatok megjelenítéséhez' + ngram_header_speed_narrow: ' Bgrm Seb Várh Anom%' + ngram_header_error_narrow: ' Bgrm Hib Mnt Arány Vrh Anom%' + ngram_header_speed: ' Bigram Seb Várható Minták Anom%' + ngram_header_error: ' Bigram Hibák Minták Arány Várható Anom%' + focus_title: ' Aktív fókusz ' + focus_char_label: ' Fókusz: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'hiba' + anomaly_speed: 'sebesség' + focus_detail_both: ' Kar. ''%{ch}'': leggyengébb billentyű | Bigram %{label}: %{type} anomália %{pct}%%' + focus_detail_char_only: ' Kar. ''%{ch}'': leggyengébb billentyű, nincs megerősített bigram anomália' + focus_detail_bigram_only: ' (%{type} anomália: %{pct}%%)' + focus_empty: ' Végezzen el néhány adaptív gyakorlatot a fókusz adatok megjelenítéséhez' + error_anomalies_title: ' Hiba anomáliák (%{count}) ' + no_error_anomalies: ' Nem észlelt hiba anomáliák' + speed_anomalies_title: ' Sebesség anomáliák (%{count}) ' + no_speed_anomalies: ' Nem észlelt sebesség anomáliák' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Nyereség: %{value}' + gain_interval: ' (minden 50.)' + focus_char_value: 'Kar. ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Napi aktivitás (munkamenetek naponta) ' + jan: 'Jan' + feb: 'Feb' + mar: 'Már' + apr: 'Ápr' + may: 'Máj' + jun: 'Jún' + jul: 'Júl' + aug: 'Aug' + sep: 'Sze' + oct: 'Okt' + nov: 'Nov' + dec: 'Dec' + +# Chart +chart: + wpm_over_time: ' WPM időben ' + drill_number: 'Gyakorlat #' + +# Settings +settings: + title: ' Beállítások ' + subtitle: 'Nyilakkal navigáljon, Enter/Jobbra a módosításhoz, ESC a mentéshez' + target_wpm: 'Cél WPM' + theme: 'Téma' + word_count: 'Szószám' + ui_language: 'Felület nyelve' + dictionary_language: 'Szótár nyelve' + keyboard_layout: 'Billentyűzetkiosztás' + code_language: 'Programnyelv' + code_downloads: 'Kód letöltések' + on: 'Be' + off: 'Ki' + code_download_dir: 'Kód letöltési mappa' + snippets_per_repo: 'Részletek repónként' + unlimited: 'Korlátlan' + download_code_now: 'Kód letöltése most' + run_downloader: 'Letöltő futtatása' + passage_downloads: 'Szöveg letöltések' + passage_download_dir: 'Szöveg letöltési mappa' + paragraphs_per_book: 'Bekezdések könyvenként' + whole_book: 'Teljes könyv' + download_passages_now: 'Szövegek letöltése most' + export_path: 'Exportálási útvonal' + export_data: 'Adatok exportálása' + export_now: 'Exportálás most' + import_path: 'Importálási útvonal' + import_data: 'Adatok importálása' + import_now: 'Importálás most' + hint_save_back: '[ESC] Mentés és vissza' + hint_change_value: '[Enter/nyilak] Érték módosítása' + hint_edit_path: '[Enter az útvonalon] Szerkesztés' + hint_move: '[←→] Mozgatás' + hint_tab_complete: '[Tab] Kiegészítés (végén)' + hint_confirm: '[Enter] Megerősítés' + hint_cancel: '[Esc] Mégse' + success_title: ' Sikeres ' + error_title: ' Hiba ' + press_any_key: 'Nyomjon egy billentyűt' + file_exists_title: ' Fájl létezik ' + file_exists: 'Egy fájl már létezik ezen az útvonalon.' + overwrite_rename: '[d] Felülírás [r] Átnevezés [Esc] Mégse' + erase_warning: 'Ez törli a jelenlegi adatokat.' + export_first: 'Előbb exportáljon, ha meg szeretné tartani.' + proceed_yn: 'Folytatja? (y/n)' + confirm_import_title: ' Importálás megerősítése ' + +# Selection screens +select: + dictionary_language_title: ' Szótár nyelv kiválasztása ' + keyboard_layout_title: ' Billentyűzetkiosztás kiválasztása ' + code_language_title: ' Programnyelv kiválasztása ' + passage_source_title: ' Szövegforrás kiválasztása ' + ui_language_title: ' Felület nyelvének kiválasztása ' + more_above: '... még %{count} feljebb ...' + more_below: '... még %{count} lejjebb ...' + current: ' (jelenlegi)' + disabled: ' (letiltva)' + enabled_default: ' (engedélyezve, alapért.: %{layout})' + enabled: ' (engedélyezve)' + disabled_blocked: ' (letiltva: blokkolva)' + built_in: ' (beépített)' + cached: ' (gyorsítótárazva)' + disabled_download: ' (letiltva: letöltés szükséges)' + download_required: ' (letöltés szükséges)' + hint_navigate: '[Fel/Le/PgUp/PgDn] Navigáció' + hint_confirm: '[Enter] Megerősítés' + hint_back: '[ESC] Vissza' + language_resets_layout: 'A nyelv kiválasztása visszaállítja a billentyűzetkiosztást az adott nyelv alapértelmezésére.' + layout_no_language_change: 'A kiosztás módosítása nem változtatja meg a szótár nyelvét.' + disabled_network_notice: 'Egyes nyelvek letiltva: engedélyezze a hálózati letöltéseket a bevezetőben/beállításokban.' + disabled_sources_notice: 'Egyes források letiltva: engedélyezze a hálózati letöltéseket a bevezetőben/beállításokban.' + passage_all: 'Összes (Beépített + minden könyv)' + passage_builtin: 'Csak beépített szövegek' + passage_book_prefix: 'Könyv: %{title}' + +# Progress +progress: + overall_key_progress: 'Általános billentyűhaladás' + unlocked_mastered: '%{unlocked}/%{total} feloldva (%{mastered} elsajátítva)' + +# Skill tree +skill_tree: + title: ' Képességfa ' + locked: 'Zárolva' + unlocked: 'feloldva' + mastered: 'elsajátítva' + in_progress: 'folyamatban' + complete: 'kész' + locked_status: 'zárolva' + locked_notice: 'Végezzen el %{count} elsődleges betűt az ágak feloldásához' + branches_separator: 'Ágak (elérhető %{count} elsődleges betű után)' + unlocked_letters: 'Feloldva %{unlocked}/%{total} betű' + level: 'Szint %{current}/%{total}' + level_zero: 'Szint 0/%{total}' + in_focus: ' fókuszban' + hint_navigate: '[↑↓/jk] Navigáció' + hint_scroll: '[PgUp/PgDn vagy Ctrl+U/Ctrl+D] Görgetés' + hint_back: '[q] Vissza' + hint_unlock: '[Enter] Feloldás' + hint_start_drill: '[Enter] Gyakorlat indítása' + unlock_msg_1: 'Feloldás után az alapértelmezett adaptív gyakorlat bevonja az ág feloldott billentyűit.' + unlock_msg_2: 'Ha csak erre az ágra szeretne összpontosítani, indítson gyakorlatot közvetlenül a képességfából.' + confirm_unlock: '%{branch} feloldása?' + confirm_yn: '[y] Feloldás [n/ESC] Mégse' + lvl_prefix: 'Szint' + branch_primary_letters: 'Elsődleges betűk' + branch_capital_letters: 'Nagybetűk' + branch_numbers: 'Számok 0-9' + branch_prose_punctuation: 'Írásjelek' + branch_whitespace: 'Szóközök' + branch_code_symbols: 'Kódszimbólumok' + level_frequency_order: 'Gyakoriság szerinti sorrend' + level_common_sentence_capitals: 'Gyakori mondatkezdő nagybetűk' + level_name_capitals: 'Névkezdő nagybetűk' + level_remaining_capitals: 'Fennmaradó nagybetűk' + level_common_digits: 'Gyakori számjegyek' + level_all_digits: 'Összes számjegy' + level_essential: 'Alapvető' + level_common: 'Gyakori' + level_expressive: 'Kifejező' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Behúzás' + level_arithmetic_assignment: 'Aritmetika és hozzárendelés' + level_grouping: 'Csoportosítás' + level_logic_reference: 'Logika és hivatkozás' + level_special: 'Speciális' + +# Milestones +milestones: + unlock_title: ' Billentyű feloldva! ' + mastery_title: ' Billentyű elsajátítva! ' + branches_title: ' Új képességágak elérhetők! ' + branch_complete_title: ' Ág befejezve! ' + all_unlocked_title: ' Minden billentyű feloldva! ' + all_mastered_title: ' Teljes billentyűzet elsajátítva! ' + unlocked: 'feloldva' + mastered: 'elsajátítva' + use_finger: 'Használja a %{finger} ujját' + hold_right_shift: 'Tartsa a jobb Shift-et (jobb kisujj)' + hold_left_shift: 'Tartsa a bal Shift-et (bal kisujj)' + congratulations_all_letters: 'Gratulálunk! Elsajátította mind a %{count} elsődleges betűt' + new_branches_available: 'Új képességágak elérhetők:' + visit_skill_tree: 'Látogasson el a képességfába egy új ág feloldásához' + and_start_training: 'és kezdje el a gyakorlást!' + open_skill_tree: 'Nyomja meg a [t] gombot a képességfa megnyitásához' + branch_complete_msg: 'Befejezte a %{branch} ágat!' + all_levels_mastered: 'Mind a %{count} szint elsajátítva.' + all_keys_confident: 'Minden billentyű ebben az ágban teljes megbízhatóságú.' + all_unlocked_msg: 'Feloldotta a billentyűzet összes billentyűjét!' + all_unlocked_desc: 'Minden karakter, szimbólum és módosító elérhető a gyakorlatokban.' + keep_practicing_mastery: 'Folytassa a gyakorlást a mesteri szint eléréséhez — ha minden billentyű eléri a teljes' + confidence_complete: 'megbízhatóságot, elérte a teljes billentyűzet elsajátítását!' + all_mastered_msg: 'Gratulálunk — elérte a teljes billentyűzet elsajátítását!' + all_mastered_desc: 'A billentyűzet minden billentyűje maximális megbízhatóságú.' + mastery_takes_practice: 'Az elsajátítás nem végállomás — folyamatos gyakorlást igényel.' + keep_drilling: 'Folytassa a gyakorlást, hogy megőrizze szintjét.' + hint_skill_tree_continue: '[t] Képességfa megnyitása [Bármely billentyű] Tovább' + hint_any_key: 'Nyomjon bármely billentyűt a folytatáshoz' + input_blocked: 'Bevitel ideiglenesen blokkolva (%{ms}ms hátra)' + unlock_msg_1: 'Szép munka! Fejlessze tovább gépelési készségeit.' + unlock_msg_2: 'Újabb billentyű az arzenáljában!' + unlock_msg_3: 'A billentyűzete bővül! Így tovább.' + unlock_msg_4: 'Egy lépéssel közelebb a teljes elsajátításhoz!' + mastery_msg_1: 'Ez a billentyű most teljes megbízhatóságú!' + mastery_msg_2: 'Ezt a billentyűt tökéletesen tudja!' + mastery_msg_3: 'Izommemória rögzítve!' + mastery_msg_4: 'Még egy billentyű meghódítva!' + +# Keyboard explorer +keyboard: + title: ' Billentyűzet ' + subtitle: 'Nyomjon meg bármely billentyűt vagy kattintson' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigáció' + hint_back: '[q/ESC] Vissza' + key_label: 'Billentyű: ' + finger_label: 'Ujj: ' + hand_left: 'Bal' + hand_right: 'Jobb' + finger_index: 'Mutatóujj' + finger_middle: 'Középső ujj' + finger_ring: 'Gyűrűsujj' + finger_pinky: 'Kisujj' + finger_thumb: 'Hüvelykujj' + overall_accuracy: ' Összesített pontosság: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Értékelt pontosság: %{correct}/%{total} (%{pct}%%)' + confidence: 'Megbízhatóság: ' + no_data: 'Még nincs adat' + no_data_short: 'Nincs adat' + key_details: ' Billentyű részletei ' + key_details_char: ' Billentyű részletei: ''%{ch}'' ' + key_details_name: ' Billentyű részletei: %{name} ' + press_key_hint: 'Nyomjon egy billentyűt a részletekhez' + shift_label: 'Shift: ' + shift_no: 'Nem' + overall_avg_time: 'Össz. átl. idő: ' + overall_best_time: 'Össz. legjobb idő: ' + overall_samples: 'Össz. minták: ' + overall_accuracy_label: 'Össz. pontosság: ' + branch_label: 'Ág: ' + level_label: 'Szint: ' + built_in_key: 'Beépített billentyű' + unlocked_label: 'Feloldva: ' + yes: 'Igen' + no: 'Nem' + in_focus_label: 'Fókuszban?: ' + mastery_label: 'Elsajátítás: ' + mastery_locked: 'Zárolva' + ranked_avg_time: 'Ért. átl. idő: ' + ranked_best_time: 'Ért. legjobb idő: ' + ranked_samples: 'Ért. minták: ' + ranked_accuracy_label: 'Ért. pontosság: ' + +# Intro dialogs +intro: + passage_title: ' Szövegletöltés beállítása ' + code_title: ' Kódletöltés beállítása ' + enable_downloads: 'Hálózati letöltések engedélyezése' + download_dir: 'Letöltési mappa' + paragraphs_per_book: 'Bekezdések könyvenként (0 = teljes)' + whole_book: 'teljes könyv' + snippets_per_repo: 'Részletek repónként (0 = korlátlan)' + unlimited: 'korlátlan' + start_passage_drill: 'Szöveg gyakorlat indítása' + start_code_drill: 'Kód gyakorlat indítása' + confirm: 'Megerősítés' + hint_navigate: '[Fel/Le] Navigáció' + hint_adjust: '[Bal/Jobb] Állítás' + hint_edit: '[Gépelés/Backspace] Szerkesztés' + hint_confirm: '[Enter] Megerősítés' + hint_cancel: '[ESC] Mégse' + preparing_download: 'Letöltés előkészítése...' + download_passage_title: ' Szövegforrás letöltése ' + download_code_title: ' Kódforrás letöltése ' + book_label: ' Könyv: %{name}' + repo_label: ' Repó: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bájt' + downloaded_bytes: 'Letöltve: %{bytes} bájt' + downloading_book_progress: 'Könyv letöltése: [%{bar}] %{downloaded}/%{total} bájt' + downloading_book_bytes: 'Könyv letöltése: %{bytes} bájt' + downloading_code_progress: 'Letöltés: [%{bar}] %{downloaded}/%{total} bájt' + downloading_code_bytes: 'Letöltés: %{bytes} bájt' + current_book: 'Jelenlegi: %{name} (könyv %{done}/%{total})' + current_repo: 'Jelenlegi: %{name} (repó %{done}/%{total})' + passage_instructions_1: 'A keydr letölthet szövegeket a Project Gutenbergből gépelésgyakorláshoz.' + passage_instructions_2: 'A könyvek egyszer töltődnek le és helyben tárolódnak.' + passage_instructions_3: 'Állítsa be a letöltési beállításokat, majd indítson szöveg gyakorlatot.' + code_instructions_1: 'A keydr letölthet nyílt forráskódot a GitHubról gépelésgyakorláshoz.' + code_instructions_2: 'A kód egyszer töltődik le és helyben tárolódik.' + code_instructions_3: 'Állítsa be a letöltési beállításokat, majd indítson kód gyakorlatot.' + +# Status messages (from app.rs) +status: + recovery_files: 'Helyreállítási fájlok találhatók megszakított importálásból. Az adatok inkonzisztensek lehetnek — fontolja meg az újraimportálást.' + dir_not_exist: 'A mappa nem létezik: %{path}' + no_data_store: 'Nincs elérhető adattár' + serialization_error: 'Sorosítási hiba: %{error}' + exported_to: 'Exportálva ide: %{path}' + export_failed: 'Exportálás sikertelen: %{error}' + could_not_read: 'Nem sikerült olvasni a fájlt: %{error}' + invalid_export: 'Érvénytelen exportfájl: %{error}' + unsupported_version: 'Nem támogatott exportverzió: %{got} (várt: %{expected})' + import_failed: 'Importálás sikertelen: %{error}' + imported_theme_fallback: 'Importálás sikeres (''%{theme}'' téma nem található, alapértelmezett használva)' + imported_success: 'Importálás sikeres' + adaptive_unavailable: 'Adaptív értékelt mód nem elérhető: %{error}' + switched_to: 'Átváltva erre: %{name}' + layout_changed: 'Kiosztás megváltoztatva: %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Ismeretlen nyelv: %{key}' + unknown_layout: 'Ismeretlen billentyűzetkiosztás: %{key}' + unsupported_pair: 'Nem támogatott nyelv/kiosztás pár: %{language} + %{layout}' + language_blocked: 'A nyelv blokkolva a támogatási szint által: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Vissza' diff --git a/locales/it.yml b/locales/it.yml new file mode 100644 index 0000000..83dd51e --- /dev/null +++ b/locales/it.yml @@ -0,0 +1,457 @@ +# Menu principale +menu: + subtitle: 'Tutor di Digitazione nel Terminale' + adaptive_drill: 'Esercizio Adattivo' + adaptive_drill_desc: 'Parole fonetiche con sblocco adattivo dei tasti' + code_drill: 'Esercizio di Codice' + code_drill_desc: 'Esercitati a digitare sintassi di codice' + passage_drill: 'Esercizio di Brano' + passage_drill_desc: 'Digita brani da libri' + skill_tree: 'Albero delle Abilità' + skill_tree_desc: 'Visualizza rami di progressione e avvia esercizi' + keyboard: 'Tastiera' + keyboard_desc: 'Esplora il layout della tastiera e le statistiche' + statistics: 'Statistiche' + statistics_desc: 'Visualizza le tue statistiche di digitazione' + settings: 'Impostazioni' + settings_desc: 'Configura keydr' + day_streak: ' | %{days} giorni consecutivi' + key_progress: ' Progresso Tasti %{unlocked}/%{total} (%{mastered} padroneggiati) | Obiettivo %{target} WPM%{streak}' + hint_start: '[1-3] Avvia' + hint_skill_tree: '[t] Albero delle Abilità' + hint_keyboard: '[b] Tastiera' + hint_stats: '[s] Statistiche' + hint_settings: '[c] Impostazioni' + hint_quit: '[q] Esci' + +# Schermata esercizio +drill: + title: ' Esercizio ' + mode_adaptive: 'Adattivo' + mode_code: 'Codice (Non classificato)' + mode_passage: 'Brano (Non classificato)' + focus_char: 'Focus: ''%{ch}''' + focus_bigram: 'Focus: "%{bigram}"' + focus_both: 'Focus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Pre' + header_err: 'Err' + code_source: ' Sorgente codice ' + passage_source: ' Sorgente brano ' + footer: '[ESC] Fine [Backspace] Cancella' + keys_reenabled: 'Tasti riattivati in %{ms}ms' + hint_end: '[ESC] Fine esercizio' + hint_backspace: '[Backspace] Cancella' + +# Pannello / risultato dell'esercizio +dashboard: + title: ' Esercizio Completato ' + results: 'Risultati' + unranked_note_prefix: ' (Non classificato' + unranked_note_suffix: ' non conta per l''albero delle abilità)' + speed: ' Velocità: ' + accuracy_label: ' Precisione: ' + time_label: ' Tempo: ' + errors_label: ' Errori: ' + correct_detail: ' (%{correct}/%{total} corretti)' + input_blocked: ' Input temporaneamente bloccato ' + input_blocked_ms: '(%{ms}ms rimanenti)' + hint_continue: '[c/Enter/Space] Continua' + hint_retry: '[r] Riprova' + hint_menu: '[q] Menu' + hint_stats: '[s] Statistiche' + hint_delete: '[x] Elimina' + +# Barra laterale statistiche (durante l'esercizio) +sidebar: + title: ' Statistiche ' + wpm: 'WPM: ' + target: 'Obiettivo: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Precisione: ' + progress: 'Progresso: ' + correct: 'Corretti: ' + errors: 'Errori: ' + time: 'Tempo: ' + last_drill: ' Ultimo Esercizio ' + vs_avg: ' vs med: ' + +# Pannello statistiche +stats: + title: ' Statistiche ' + empty: 'Nessun esercizio completato. Inizia a digitare!' + tab_dashboard: '[1] Pannello' + tab_history: '[2] Cronologia' + tab_activity: '[3] Attività' + tab_accuracy: '[4] Precisione' + tab_timing: '[5] Tempistica' + tab_ngrams: '[6] N-grammi' + hint_back: '[ESC] Indietro' + hint_next_tab: '[Tab] Scheda successiva' + hint_switch_tab: '[1-6] Cambia scheda' + hint_navigate: '[j/k] Naviga' + hint_page: '[PgUp/PgDn] Pagina' + hint_delete: '[x] Elimina' + summary_title: ' Riepilogo ' + drills: ' Esercizi: ' + avg_wpm: ' WPM Med: ' + best_wpm: ' Miglior WPM: ' + accuracy_label: ' Precisione: ' + total_time: ' Tempo totale: ' + wpm_chart_title: ' WPM per Esercizio (Ultimi 20, Obiettivo: %{target}) ' + accuracy_chart_title: ' Precisione %% (Ultimi 50 Esercizi) ' + chart_drill: 'Esercizio #' + chart_accuracy_pct: 'Precisione %%' + sessions_title: ' Sessioni Recenti ' + session_header: ' # WPM Raw Pre%% Tempo Data/Ora Modo Class. Parziale' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Eliminare sessione #%{idx}? (y/n)' + confirm_title: ' Conferma ' + yes: 'sì' + no: 'no' + keyboard_accuracy_title: ' Precisione Tastiera %% ' + keyboard_timing_title: ' Tempistica Tastiera (ms) ' + slowest_keys_title: ' Tasti più Lenti (ms) ' + fastest_keys_title: ' Tasti più Veloci (ms) ' + worst_accuracy_title: ' Peggiore Precisione (%%) ' + best_accuracy_title: ' Migliore Precisione (%%) ' + not_enough_data: ' Dati insufficienti' + streaks_title: ' Serie ' + current_streak: ' Attuale: ' + best_streak: ' Migliore: ' + active_days: ' Giorni attivi: ' + top_days_none: ' Giorni migliori: nessuno' + top_days: ' Giorni migliori: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Pre: %{pct}%%' + keys_label: ' Tasti: %{unlocked}/%{total} (%{mastered} padroneggiati)' + ngram_empty: 'Completa esercizi adattivi per vedere dati n-grammi' + ngram_header_speed_narrow: ' Bgrm Vel Att Anom%' + ngram_header_error_narrow: ' Bgrm Err Cmp Tasso Att Anom%' + ngram_header_speed: ' Bigramma Vel Att Camp. Anom%' + ngram_header_error: ' Bigramma Errori Camp. Tasso Att Anom%' + focus_title: ' Focus attivo ' + focus_char_label: ' Focus: ' + focus_bigram_value: 'Bigramma %{label}' + focus_plus: ' + ' + anomaly_error: 'errore' + anomaly_speed: 'velocità' + focus_detail_both: ' Carattere ''%{ch}'': tasto più debole | Bigramma %{label}: anomalia di %{type} %{pct}%%' + focus_detail_char_only: ' Carattere ''%{ch}'': tasto più debole, nessuna anomalia di bigramma confermata' + focus_detail_bigram_only: ' (anomalia di %{type}: %{pct}%%)' + focus_empty: ' Completa esercizi adattivi per vedere dati di focus' + error_anomalies_title: ' Anomalie di Errore (%{count}) ' + no_error_anomalies: ' Nessuna anomalia di errore rilevata' + speed_anomalies_title: ' Anomalie di Velocità (%{count}) ' + no_speed_anomalies: ' Nessuna anomalia di velocità rilevata' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Esi: >%{ms}ms' + gain_label: ' | Guad: %{value}' + gain_interval: ' (ogni 50)' + focus_char_value: 'Carattere ''%{ch}''' + +# Mappa di attività +heatmap: + title: ' Attività Giornaliera (Sessioni per Giorno) ' + jan: 'Gen' + feb: 'Feb' + mar: 'Mar' + apr: 'Apr' + may: 'Mag' + jun: 'Giu' + jul: 'Lug' + aug: 'Ago' + sep: 'Set' + oct: 'Ott' + nov: 'Nov' + dec: 'Dic' + +# Grafico +chart: + wpm_over_time: ' WPM nel Tempo ' + drill_number: 'Esercizio #' + +# Impostazioni +settings: + title: ' Impostazioni ' + subtitle: 'Usa le frecce per navigare, Invio/Destra per cambiare, ESC per salvare e uscire' + target_wpm: 'WPM Obiettivo' + theme: 'Tema' + word_count: 'Numero di Parole' + ui_language: 'Lingua dell''Interfaccia' + dictionary_language: 'Lingua del Dizionario' + keyboard_layout: 'Layout della Tastiera' + code_language: 'Linguaggio di Codice' + code_downloads: 'Download di Codice' + on: 'Sì' + off: 'No' + code_download_dir: 'Dir. Download Codice' + snippets_per_repo: 'Frammenti per Repo' + unlimited: 'Illimitato' + download_code_now: 'Scarica Codice Ora' + run_downloader: 'Avvia downloader' + passage_downloads: 'Download di Brani' + passage_download_dir: 'Dir. Download Brani' + paragraphs_per_book: 'Paragrafi per Libro' + whole_book: 'Libro intero' + download_passages_now: 'Scarica Brani Ora' + export_path: 'Percorso di Esportazione' + export_data: 'Esporta Dati' + export_now: 'Esporta ora' + import_path: 'Percorso di Importazione' + import_data: 'Importa Dati' + import_now: 'Importa ora' + hint_save_back: '[ESC] Salva e indietro' + hint_change_value: '[Enter/frecce] Cambia valore' + hint_edit_path: '[Enter su percorso] Modifica' + hint_move: '[←→] Sposta' + hint_tab_complete: '[Tab] Completa (alla fine)' + hint_confirm: '[Enter] Conferma' + hint_cancel: '[Esc] Annulla' + success_title: ' Successo ' + error_title: ' Errore ' + press_any_key: 'Premi un tasto qualsiasi' + file_exists_title: ' File Esistente ' + file_exists: 'Un file esiste già in questo percorso.' + overwrite_rename: '[d] Sovrascrivi [r] Rinomina [Esc] Annulla' + erase_warning: 'Questo cancellerà i tuoi dati attuali.' + export_first: 'Esporta prima se vuoi conservarli.' + proceed_yn: 'Procedere? (y/n)' + confirm_import_title: ' Conferma Importazione ' + +# Schermate di selezione +select: + dictionary_language_title: ' Seleziona Lingua del Dizionario ' + keyboard_layout_title: ' Seleziona Layout della Tastiera ' + code_language_title: ' Seleziona Linguaggio di Codice ' + passage_source_title: ' Seleziona Sorgente Brani ' + ui_language_title: ' Seleziona Lingua dell''Interfaccia ' + more_above: '... %{count} altri sopra ...' + more_below: '... %{count} altri sotto ...' + current: ' (attuale)' + disabled: ' (disattivato)' + enabled_default: ' (attivato, predefinito: %{layout})' + enabled: ' (attivato)' + disabled_blocked: ' (disattivato: bloccato)' + built_in: ' (integrato)' + cached: ' (in cache)' + disabled_download: ' (disattivato: download richiesto)' + download_required: ' (download richiesto)' + hint_navigate: '[Up/Down/PgUp/PgDn] Naviga' + hint_confirm: '[Enter] Conferma' + hint_back: '[ESC] Indietro' + language_resets_layout: 'Selezionare una lingua reimposta il layout a quello predefinito di quella lingua.' + layout_no_language_change: 'Cambiare layout non cambia la lingua del dizionario.' + disabled_network_notice: 'Alcune lingue sono disattivate: attiva i download in intro/impostazioni.' + disabled_sources_notice: 'Alcune sorgenti sono disattivate: attiva i download in intro/impostazioni.' + passage_all: 'Tutti (Integrati + tutti i libri)' + passage_builtin: 'Solo brani integrati' + passage_book_prefix: 'Libro: %{title}' + +# Progresso +progress: + overall_key_progress: 'Progresso Globale dei Tasti' + unlocked_mastered: '%{unlocked}/%{total} sbloccati (%{mastered} padroneggiati)' + +# Albero delle abilità +skill_tree: + title: ' Albero delle Abilità ' + locked: 'Bloccato' + unlocked: 'sbloccato' + mastered: 'padroneggiato' + in_progress: 'in corso' + complete: 'completato' + locked_status: 'bloccato' + locked_notice: 'Completa %{count} lettere primarie per sbloccare i rami' + branches_separator: 'Rami (disponibili dopo %{count} lettere primarie)' + unlocked_letters: 'Sbloccate %{unlocked}/%{total} lettere' + level: 'Livello %{current}/%{total}' + level_zero: 'Livello 0/%{total}' + in_focus: ' in focus' + hint_navigate: '[↑↓/jk] Naviga' + hint_scroll: '[PgUp/PgDn o Ctrl+U/Ctrl+D] Scorri' + hint_back: '[q] Indietro' + hint_unlock: '[Enter] Sblocca' + hint_start_drill: '[Enter] Avvia Esercizio' + unlock_msg_1: 'Una volta sbloccato, l''esercizio adattivo includerà i tasti di questo ramo che sono sbloccati.' + unlock_msg_2: 'Se vuoi concentrarti solo su questo ramo, avvia un esercizio direttamente da questo ramo nell''Albero delle Abilità.' + confirm_unlock: 'Sbloccare %{branch}?' + confirm_yn: '[y] Sblocca [n/ESC] Annulla' + lvl_prefix: 'Liv' + branch_primary_letters: 'Lettere Primarie' + branch_capital_letters: 'Lettere Maiuscole' + branch_numbers: 'Numeri 0-9' + branch_prose_punctuation: 'Punteggiatura di Prosa' + branch_whitespace: 'Spazi Bianchi' + branch_code_symbols: 'Simboli di Codice' + level_frequency_order: 'Ordine di Frequenza' + level_common_sentence_capitals: 'Maiuscole di Frase Comuni' + level_name_capitals: 'Maiuscole di Nomi' + level_remaining_capitals: 'Maiuscole Rimanenti' + level_common_digits: 'Cifre Comuni' + level_all_digits: 'Tutte le Cifre' + level_essential: 'Essenziale' + level_common: 'Comune' + level_expressive: 'Espressivo' + level_enter_return: 'Invio/Ritorno' + level_tab_indent: 'Tab/Rientro' + level_arithmetic_assignment: 'Aritmetica e Assegnazione' + level_grouping: 'Raggruppamento' + level_logic_reference: 'Logica e Riferimento' + level_special: 'Speciale' + +# Traguardi +milestones: + unlock_title: ' Tasto Sbloccato! ' + mastery_title: ' Tasto Padroneggiato! ' + branches_title: ' Nuovi Rami Disponibili! ' + branch_complete_title: ' Ramo Completato! ' + all_unlocked_title: ' Tutti i Tasti Sbloccati! ' + all_mastered_title: ' Padronanza Totale della Tastiera! ' + unlocked: 'sbloccato' + mastered: 'padroneggiato' + use_finger: 'Usa il tuo %{finger}' + hold_right_shift: 'Tieni premuto Shift Destro (mignolo destro)' + hold_left_shift: 'Tieni premuto Shift Sinistro (mignolo sinistro)' + congratulations_all_letters: 'Congratulazioni! Hai padroneggiato tutte le %{count} lettere primarie' + new_branches_available: 'Nuovi rami di abilità sono disponibili:' + visit_skill_tree: 'Visita l''Albero delle Abilità per sbloccare un nuovo ramo' + and_start_training: 'e inizia ad allenarti!' + open_skill_tree: 'Premi [t] per aprire l''Albero delle Abilità' + branch_complete_msg: 'Hai completato il ramo %{branch}!' + all_levels_mastered: 'Tutti i %{count} livelli padroneggiati.' + all_keys_confident: 'Ogni tasto in questo ramo è a confidenza massima.' + all_unlocked_msg: 'Hai sbloccato tutti i tasti della tastiera!' + all_unlocked_desc: 'Ogni carattere, simbolo e modificatore è disponibile nei tuoi esercizi.' + keep_practicing_mastery: 'Continua a esercitarti per raggiungere la padronanza — quando ogni tasto raggiungerà' + confidence_complete: 'la confidenza massima, avrai raggiunto la padronanza totale della tastiera!' + all_mastered_msg: 'Congratulazioni — hai raggiunto la padronanza totale della tastiera!' + all_mastered_desc: 'Ogni tasto della tastiera è a confidenza massima.' + mastery_takes_practice: 'La padronanza non è una destinazione — richiede pratica continua.' + keep_drilling: 'Continua ad esercitarti per mantenere il tuo livello.' + hint_skill_tree_continue: '[t] Apri Albero delle Abilità [Altro tasto] Continua' + hint_any_key: 'Premi un tasto qualsiasi per continuare' + input_blocked: 'Input temporaneamente bloccato (%{ms}ms rimanenti)' + unlock_msg_1: 'Ottimo lavoro! Continua a migliorare le tue abilità.' + unlock_msg_2: 'Un altro tasto aggiunto al tuo arsenale!' + unlock_msg_3: 'La tua tastiera cresce! Continua così.' + unlock_msg_4: 'Un passo più vicino alla padronanza totale!' + mastery_msg_1: 'Questo tasto è a confidenza massima!' + mastery_msg_2: 'Hai questo tasto sotto controllo!' + mastery_msg_3: 'Memoria muscolare acquisita!' + mastery_msg_4: 'Un altro tasto conquistato!' + +# Esploratore tastiera +keyboard: + title: ' Tastiera ' + subtitle: 'Premi o clicca su un tasto' + hint_navigate: '[←→↑↓/hjkl/Tab] Naviga' + hint_back: '[q/ESC] Indietro' + key_label: 'Tasto: ' + finger_label: 'Dito: ' + hand_left: 'Sinistra' + hand_right: 'Destra' + finger_index: 'Indice' + finger_middle: 'Medio' + finger_ring: 'Anulare' + finger_pinky: 'Mignolo' + finger_thumb: 'Pollice' + overall_accuracy: ' Precisione globale: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Precisione classificata: %{correct}/%{total} (%{pct}%%)' + confidence: 'Confidenza: ' + no_data: 'Nessun dato ancora' + no_data_short: 'Nessun dato' + key_details: ' Dettagli Tasto ' + key_details_char: ' Dettagli Tasto: ''%{ch}'' ' + key_details_name: ' Dettagli Tasto: %{name} ' + press_key_hint: 'Premi un tasto per vedere i suoi dettagli' + shift_label: 'Shift: ' + shift_no: 'No' + overall_avg_time: 'Tempo Med. Globale: ' + overall_best_time: 'Miglior Tempo Globale: ' + overall_samples: 'Campioni Globali: ' + overall_accuracy_label: 'Precisione Globale: ' + branch_label: 'Ramo: ' + level_label: 'Livello: ' + built_in_key: 'Tasto Integrato' + unlocked_label: 'Sbloccato: ' + yes: 'Sì' + no: 'No' + in_focus_label: 'In Focus?: ' + mastery_label: 'Padronanza: ' + mastery_locked: 'Bloccato' + ranked_avg_time: 'Tempo Med. Classificato: ' + ranked_best_time: 'Miglior Tempo Classificato: ' + ranked_samples: 'Campioni Classificati: ' + ranked_accuracy_label: 'Precisione Classificata: ' + +# Dialoghi di introduzione +intro: + passage_title: ' Configurazione Download Brani ' + code_title: ' Configurazione Download Codice ' + enable_downloads: 'Attiva download di rete' + download_dir: 'Directory di download' + paragraphs_per_book: 'Paragrafi per libro (0 = intero)' + whole_book: 'libro intero' + snippets_per_repo: 'Frammenti per repo (0 = illimitato)' + unlimited: 'illimitato' + start_passage_drill: 'Avvia esercizio di brano' + start_code_drill: 'Avvia esercizio di codice' + confirm: 'Conferma' + hint_navigate: '[Up/Down] Naviga' + hint_adjust: '[Left/Right] Regola' + hint_edit: '[Type/Backspace] Modifica' + hint_confirm: '[Enter] Conferma' + hint_cancel: '[ESC] Annulla' + preparing_download: 'Preparazione download...' + download_passage_title: ' Download Sorgente Brano ' + download_code_title: ' Download Sorgente Codice ' + book_label: ' Libro: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bytes' + downloaded_bytes: 'Scaricato: %{bytes} bytes' + downloading_book_progress: 'Download libro attuale: [%{bar}] %{downloaded}/%{total} bytes' + downloading_book_bytes: 'Download libro attuale: %{bytes} bytes' + downloading_code_progress: 'Download: [%{bar}] %{downloaded}/%{total} bytes' + downloading_code_bytes: 'Download: %{bytes} bytes' + current_book: 'Attuale: %{name} (libro %{done}/%{total})' + current_repo: 'Attuale: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr può scaricare brani da Project Gutenberg per la pratica di digitazione.' + passage_instructions_2: 'I libri vengono scaricati una volta e salvati localmente.' + passage_instructions_3: 'Configura le impostazioni di download qui sotto, poi avvia un esercizio di brano.' + code_instructions_1: 'keydr può scaricare codice open-source da GitHub per la pratica di digitazione.' + code_instructions_2: 'Il codice viene scaricato una volta e salvato localmente.' + code_instructions_3: 'Configura le impostazioni di download qui sotto, poi avvia un esercizio di codice.' + +# Messaggi di stato (da app.rs) +status: + recovery_files: 'Trovati file di recupero da un''importazione interrotta. I dati potrebbero essere incoerenti — considera di reimportare.' + dir_not_exist: 'La directory non esiste: %{path}' + no_data_store: 'Nessun archivio dati disponibile' + serialization_error: 'Errore di serializzazione: %{error}' + exported_to: 'Esportato in %{path}' + export_failed: 'Esportazione fallita: %{error}' + could_not_read: 'Impossibile leggere il file: %{error}' + invalid_export: 'File di esportazione non valido: %{error}' + unsupported_version: 'Versione di esportazione non supportata: %{got} (prevista %{expected})' + import_failed: 'Importazione fallita: %{error}' + imported_theme_fallback: 'Importato con successo (tema ''%{theme}'' non trovato, usando predefinito)' + imported_success: 'Importato con successo' + adaptive_unavailable: 'Modalità adattiva classificata non disponibile: %{error}' + switched_to: 'Passato a %{name}' + layout_changed: 'Layout cambiato in %{name}' + +# Errori (per traduzione limiti UI) +errors: + unknown_language: 'Lingua sconosciuta: %{key}' + unknown_layout: 'Layout tastiera sconosciuto: %{key}' + unsupported_pair: 'Coppia lingua/layout non supportata: %{language} + %{layout}' + language_blocked: 'Lingua bloccata dal livello di supporto: %{key}' + +# Comune +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Indietro' diff --git a/locales/lt.yml b/locales/lt.yml new file mode 100644 index 0000000..582b0d4 --- /dev/null +++ b/locales/lt.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminalo spausdinimo treniruoklis' + adaptive_drill: 'Adaptyvi pratybos' + adaptive_drill_desc: 'Fonetiniai žodžiai su adaptyviniu raidžių atrakinimo' + code_drill: 'Kodo pratybos' + code_drill_desc: 'Praktikuokite kodo sintaksės spausdinimą' + passage_drill: 'Teksto pratybos' + passage_drill_desc: 'Spausdinkite ištraukas iš knygų' + skill_tree: 'Įgūdžių medis' + skill_tree_desc: 'Peržiūrėkite pažangos šakas ir pradėkite pratybas' + keyboard: 'Klaviatūra' + keyboard_desc: 'Naršykite klaviatūros išdėstymą ir klavišų statistiką' + statistics: 'Statistika' + statistics_desc: 'Peržiūrėkite spausdinimo statistiką' + settings: 'Nustatymai' + settings_desc: 'Konfigūruokite keydr' + day_streak: ' | %{days} d. serija' + key_progress: ' Klavišų pažanga %{unlocked}/%{total} (%{mastered} įvaldyta) | Tikslas %{target} WPM%{streak}' + hint_start: '[1-3] Pradėti' + hint_skill_tree: '[t] Įgūdžių medis' + hint_keyboard: '[b] Klaviatūra' + hint_stats: '[s] Statistika' + hint_settings: '[c] Nustatymai' + hint_quit: '[q] Išeiti' + +# Drill screen +drill: + title: ' Pratybos ' + mode_adaptive: 'Adaptyvi' + mode_code: 'Kodas (be vertinimo)' + mode_passage: 'Tekstas (be vertinimo)' + focus_char: 'Fokusuotis: ''%{ch}''' + focus_bigram: 'Fokusuotis: "%{bigram}"' + focus_both: 'Fokusuotis: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Tiksl' + header_err: 'Kld' + code_source: ' Kodo šaltinis ' + passage_source: ' Teksto šaltinis ' + footer: '[ESC] Baigti pratybas [Backspace] Trinti' + keys_reenabled: 'Klavišai vėl aktyvūs po %{ms}ms' + hint_end: '[ESC] Baigti pratybas' + hint_backspace: '[Backspace] Trinti' + +# Dashboard / drill result +dashboard: + title: ' Pratybos baigtos ' + results: 'Rezultatai' + unranked_note_prefix: ' (Be vertinimo' + unranked_note_suffix: ' neskaičiuojama įgūdžių medyje)' + speed: ' Greitis: ' + accuracy_label: ' Tikslumas:' + time_label: ' Laikas: ' + errors_label: ' Klaidos: ' + correct_detail: ' (%{correct}/%{total} teisingai)' + input_blocked: ' Įvestis laikinai blokuota ' + input_blocked_ms: '(%{ms}ms liko)' + hint_continue: '[c/Enter/Space] Tęsti' + hint_retry: '[r] Iš naujo' + hint_menu: '[q] Meniu' + hint_stats: '[s] Statistika' + hint_delete: '[x] Trinti' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistika ' + wpm: 'WPM: ' + target: 'Tikslas: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Tikslumas: ' + progress: 'Pažanga: ' + correct: 'Teisingai: ' + errors: 'Klaidos: ' + time: 'Laikas: ' + last_drill: ' Paskutinės pratybos ' + vs_avg: ' vs vidurk.: ' + +# Statistics dashboard +stats: + title: ' Statistika ' + empty: 'Nėra baigtų pratybų. Pradėkite spausdinti!' + tab_dashboard: '[1] Suvestinė' + tab_history: '[2] Istorija' + tab_activity: '[3] Aktyvumas' + tab_accuracy: '[4] Tikslumas' + tab_timing: '[5] Laikas' + tab_ngrams: '[6] N-gramos' + hint_back: '[ESC] Atgal' + hint_next_tab: '[Tab] Kita kortelė' + hint_switch_tab: '[1-6] Kortelė' + hint_navigate: '[j/k] Navigacija' + hint_page: '[PgUp/PgDn] Puslapis' + hint_delete: '[x] Trinti' + summary_title: ' Santrauka ' + drills: ' Pratybos: ' + avg_wpm: ' Vid. WPM: ' + best_wpm: ' Geriausias WPM: ' + accuracy_label: ' Tikslumas: ' + total_time: ' Bendras laikas: ' + wpm_chart_title: ' WPM per pratybas (Paskutinės 20, Tikslas: %{target}) ' + accuracy_chart_title: ' Tikslumas %% (Paskutinės 50 pratybų) ' + chart_drill: 'Pratybos #' + chart_accuracy_pct: 'Tikslumas %%' + sessions_title: ' Naujausios sesijos ' + session_header: ' # WPM Raw Tiksl%% Laikas Data/Laikas Režimas Vertin. Dalin.' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Trinti sesiją #%{idx}? (y/n)' + confirm_title: ' Patvirtinimas ' + yes: 'taip' + no: 'ne' + keyboard_accuracy_title: ' Klaviatūros tikslumas %% ' + keyboard_timing_title: ' Klaviatūros laikas (ms) ' + slowest_keys_title: ' Lėčiausi klavišai (ms) ' + fastest_keys_title: ' Greičiausi klavišai (ms) ' + worst_accuracy_title: ' Blogiausias tikslumas (%%) ' + best_accuracy_title: ' Geriausias tikslumas (%%) ' + not_enough_data: ' Nepakanka duomenų' + streaks_title: ' Serijos ' + current_streak: ' Dabartinė: ' + best_streak: ' Geriausia: ' + active_days: ' Aktyvios dienos: ' + top_days_none: ' Geriausios dienos: nėra' + top_days: ' Geriausios dienos: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Tiksl: %{pct}%%' + keys_label: ' Klavišai: %{unlocked}/%{total} (%{mastered} įvaldyta)' + ngram_empty: 'Atlikite keletą adaptyvių pratybų n-gramų duomenims pamatyti' + ngram_header_speed_narrow: ' Bgrm Greit Tikėt Anom%' + ngram_header_error_narrow: ' Bgrm Kld Imč Norma Tkt Anom%' + ngram_header_speed: ' Bigrama Greit Tikėtina Imčiai Anom%' + ngram_header_error: ' Bigrama Klaidos Imčiai Norma Tikėtina Anom%' + focus_title: ' Aktyvus fokusas ' + focus_char_label: ' Fokusas: ' + focus_bigram_value: 'Bigrama %{label}' + focus_plus: ' + ' + anomaly_error: 'klaida' + anomaly_speed: 'greitis' + focus_detail_both: ' Simb. ''%{ch}'': silpniausias klavišas | Bigrama %{label}: %{type} anomalija %{pct}%%' + focus_detail_char_only: ' Simb. ''%{ch}'': silpniausias klavišas, nėra patvirtintų bigramų anomalijų' + focus_detail_bigram_only: ' (%{type} anomalija: %{pct}%%)' + focus_empty: ' Atlikite keletą adaptyvių pratybų fokuso duomenims pamatyti' + error_anomalies_title: ' Klaidų anomalijos (%{count}) ' + no_error_anomalies: ' Klaidų anomalijų nerasta' + speed_anomalies_title: ' Greičio anomalijos (%{count}) ' + no_speed_anomalies: ' Greičio anomalijų nerasta' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Augimas: %{value}' + gain_interval: ' (kas 50)' + focus_char_value: 'Simb. ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Dienos aktyvumas (sesijų per dieną) ' + jan: 'Sau' + feb: 'Vas' + mar: 'Kov' + apr: 'Bal' + may: 'Geg' + jun: 'Bir' + jul: 'Lie' + aug: 'Rgp' + sep: 'Rgs' + oct: 'Spa' + nov: 'Lap' + dec: 'Grd' + +# Chart +chart: + wpm_over_time: ' WPM per laiką ' + drill_number: 'Pratybos #' + +# Settings +settings: + title: ' Nustatymai ' + subtitle: 'Rodyklėmis naršykite, Enter/Dešinėn keisti, ESC išsaugoti' + target_wpm: 'Tikslinis WPM' + theme: 'Tema' + word_count: 'Žodžių skaičius' + ui_language: 'Sąsajos kalba' + dictionary_language: 'Žodyno kalba' + keyboard_layout: 'Klaviatūros išdėstymas' + code_language: 'Programavimo kalba' + code_downloads: 'Kodo atsisiuntimai' + on: 'Įjungta' + off: 'Išjungta' + code_download_dir: 'Kodo atsisiuntimų aplankas' + snippets_per_repo: 'Fragmentų per repozitoriją' + unlimited: 'Neribota' + download_code_now: 'Atsisiųsti kodą dabar' + run_downloader: 'Paleisti atsisiuntimą' + passage_downloads: 'Tekstų atsisiuntimai' + passage_download_dir: 'Tekstų atsisiuntimų aplankas' + paragraphs_per_book: 'Pastraipų per knygą' + whole_book: 'Visa knyga' + download_passages_now: 'Atsisiųsti tekstus dabar' + export_path: 'Eksporto kelias' + export_data: 'Eksportuoti duomenis' + export_now: 'Eksportuoti dabar' + import_path: 'Importo kelias' + import_data: 'Importuoti duomenis' + import_now: 'Importuoti dabar' + hint_save_back: '[ESC] Išsaugoti ir atgal' + hint_change_value: '[Enter/rodyklės] Keisti reikšmę' + hint_edit_path: '[Enter ant kelio] Redaguoti' + hint_move: '[←→] Judėti' + hint_tab_complete: '[Tab] Užbaigti (gale)' + hint_confirm: '[Enter] Patvirtinti' + hint_cancel: '[Esc] Atšaukti' + success_title: ' Sėkmė ' + error_title: ' Klaida ' + press_any_key: 'Paspauskite bet kurį klavišą' + file_exists_title: ' Failas egzistuoja ' + file_exists: 'Failas jau egzistuoja šiuo keliu.' + overwrite_rename: '[d] Perrašyti [r] Pervadinti [Esc] Atšaukti' + erase_warning: 'Tai ištrins jūsų dabartinius duomenis.' + export_first: 'Pirmiausia eksportuokite, jei norite išsaugoti.' + proceed_yn: 'Tęsti? (y/n)' + confirm_import_title: ' Importo patvirtinimas ' + +# Selection screens +select: + dictionary_language_title: ' Pasirinkite žodyno kalbą ' + keyboard_layout_title: ' Pasirinkite klaviatūros išdėstymą ' + code_language_title: ' Pasirinkite programavimo kalbą ' + passage_source_title: ' Pasirinkite teksto šaltinį ' + ui_language_title: ' Pasirinkite sąsajos kalbą ' + more_above: '... dar %{count} aukščiau ...' + more_below: '... dar %{count} žemiau ...' + current: ' (dabartinis)' + disabled: ' (išjungta)' + enabled_default: ' (įjungta, numatytasis: %{layout})' + enabled: ' (įjungta)' + disabled_blocked: ' (išjungta: blokuota)' + built_in: ' (integruota)' + cached: ' (podėlyje)' + disabled_download: ' (išjungta: reikia atsisiųsti)' + download_required: ' (reikia atsisiųsti)' + hint_navigate: '[Aukštyn/Žemyn/PgUp/PgDn] Navigacija' + hint_confirm: '[Enter] Patvirtinti' + hint_back: '[ESC] Atgal' + language_resets_layout: 'Kalbos pasirinkimas atstato klaviatūros išdėstymą į tos kalbos numatytąjį.' + layout_no_language_change: 'Išdėstymo pakeitimas nekeičia žodyno kalbos.' + disabled_network_notice: 'Kai kurios kalbos išjungtos: įjunkite tinklo atsisiuntimus įvade/nustatymuose.' + disabled_sources_notice: 'Kai kurie šaltiniai išjungti: įjunkite tinklo atsisiuntimus įvade/nustatymuose.' + passage_all: 'Visos (Integruotos + visos knygos)' + passage_builtin: 'Tik integruoti tekstai' + passage_book_prefix: 'Knyga: %{title}' + +# Progress +progress: + overall_key_progress: 'Bendra klavišų pažanga' + unlocked_mastered: '%{unlocked}/%{total} atrakinta (%{mastered} įvaldyta)' + +# Skill tree +skill_tree: + title: ' Įgūdžių medis ' + locked: 'Užrakinta' + unlocked: 'atrakinta' + mastered: 'įvaldyta' + in_progress: 'vykdoma' + complete: 'baigta' + locked_status: 'užrakinta' + locked_notice: 'Užbaikite %{count} pirminių raidžių šakoms atrakinti' + branches_separator: 'Šakos (prieinamos po %{count} pirminių raidžių)' + unlocked_letters: 'Atrakinta %{unlocked}/%{total} raidžių' + level: 'Lygis %{current}/%{total}' + level_zero: 'Lygis 0/%{total}' + in_focus: ' fokuse' + hint_navigate: '[↑↓/jk] Navigacija' + hint_scroll: '[PgUp/PgDn arba Ctrl+U/Ctrl+D] Slinkti' + hint_back: '[q] Atgal' + hint_unlock: '[Enter] Atrakinti' + hint_start_drill: '[Enter] Pradėti pratybas' + unlock_msg_1: 'Atrakinus, numatytosios adaptyvios pratybos įtrauks šios šakos atrakintus klavišus.' + unlock_msg_2: 'Jei norite sutelkti dėmesį tik į šią šaką, pradėkite pratybas tiesiogiai iš įgūdžių medžio.' + confirm_unlock: 'Atrakinti %{branch}?' + confirm_yn: '[y] Atrakinti [n/ESC] Atšaukti' + lvl_prefix: 'Lyg' + branch_primary_letters: 'Pirminės raidės' + branch_capital_letters: 'Didžiosios raidės' + branch_numbers: 'Skaičiai 0-9' + branch_prose_punctuation: 'Skyrybos ženklai' + branch_whitespace: 'Tarpai' + branch_code_symbols: 'Kodo simboliai' + level_frequency_order: 'Dažnumo tvarka' + level_common_sentence_capitals: 'Dažnos sakinio didžiosios' + level_name_capitals: 'Vardų didžiosios' + level_remaining_capitals: 'Likusios didžiosios' + level_common_digits: 'Dažni skaitmenys' + level_all_digits: 'Visi skaitmenys' + level_essential: 'Būtina' + level_common: 'Dažna' + level_expressive: 'Išraiškinga' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Įtrauka' + level_arithmetic_assignment: 'Aritmetika ir priskyrimas' + level_grouping: 'Grupavimas' + level_logic_reference: 'Logika ir nuorodos' + level_special: 'Specialūs' + +# Milestones +milestones: + unlock_title: ' Klavišas atrakintas! ' + mastery_title: ' Klavišas įvaldytas! ' + branches_title: ' Naujos įgūdžių šakos prieinamos! ' + branch_complete_title: ' Šaka baigta! ' + all_unlocked_title: ' Visi klavišai atrakinti! ' + all_mastered_title: ' Visiškas klaviatūros įvaldymas! ' + unlocked: 'atrakinta' + mastered: 'įvaldyta' + use_finger: 'Naudokite %{finger}' + hold_right_shift: 'Laikykite dešinį Shift (dešinysis mažylis)' + hold_left_shift: 'Laikykite kairį Shift (kairysis mažylis)' + congratulations_all_letters: 'Sveikiname! Įvaldėte visas %{count} pirminių raidžių' + new_branches_available: 'Naujos įgūdžių šakos dabar prieinamos:' + visit_skill_tree: 'Aplankykite įgūdžių medį naujai šakai atrakinti' + and_start_training: 'ir pradėkite treniruotis!' + open_skill_tree: 'Paspauskite [t] įgūdžių medžiui atidaryti' + branch_complete_msg: 'Baigėte %{branch} šaką!' + all_levels_mastered: 'Visi %{count} lygiai įvaldyti.' + all_keys_confident: 'Kiekvienas šios šakos klavišas pasiekė pilną patikimumą.' + all_unlocked_msg: 'Atrakinote kiekvieną klaviatūros klavišą!' + all_unlocked_desc: 'Kiekvienas simbolis, ženklas ir modifikatorius dabar prieinamas pratybose.' + keep_practicing_mastery: 'Tęskite praktiką meistriškumui ugdyti — kai kiekvienas klavišas pasieks pilną' + confidence_complete: 'patikimumą, būsite pasiekę visišką klaviatūros įvaldymą!' + all_mastered_msg: 'Sveikiname — pasiekėte visišką klaviatūros įvaldymą!' + all_mastered_desc: 'Kiekvienas klaviatūros klavišas yra maksimalaus patikimumo.' + mastery_takes_practice: 'Meistriškumas nėra tikslas — jis reikalauja nuolatinės praktikos.' + keep_drilling: 'Tęskite pratybas, kad išlaikytumėte formą.' + hint_skill_tree_continue: '[t] Atidaryti įgūdžių medį [Bet kuris klavišas] Tęsti' + hint_any_key: 'Paspauskite bet kurį klavišą tęsti' + input_blocked: 'Įvestis laikinai blokuota (%{ms}ms liko)' + unlock_msg_1: 'Puiku! Toliau tobulinkite spausdinimo įgūdžius.' + unlock_msg_2: 'Dar vienas klavišas jūsų arsenale!' + unlock_msg_3: 'Jūsų klaviatūra auga! Taip ir toliau.' + unlock_msg_4: 'Vienu žingsniu arčiau visiško klaviatūros įvaldymo!' + mastery_msg_1: 'Šis klavišas dabar pilno patikimumo!' + mastery_msg_2: 'Šį klavišą mokate puikiai!' + mastery_msg_3: 'Raumenų atmintis užfiksuota!' + mastery_msg_4: 'Dar vienas klavišas užkariauta!' + +# Keyboard explorer +keyboard: + title: ' Klaviatūra ' + subtitle: 'Paspauskite bet kurį klavišą arba spustelėkite' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigacija' + hint_back: '[q/ESC] Atgal' + key_label: 'Klavišas: ' + finger_label: 'Pirštas: ' + hand_left: 'Kairė' + hand_right: 'Dešinė' + finger_index: 'Smilius' + finger_middle: 'Didysis' + finger_ring: 'Bevardis' + finger_pinky: 'Mažylis' + finger_thumb: 'Nykštys' + overall_accuracy: ' Bendras tikslumas: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Vertintas tikslumas: %{correct}/%{total} (%{pct}%%)' + confidence: 'Patikimumas: ' + no_data: 'Dar nėra duomenų' + no_data_short: 'Nėra duom.' + key_details: ' Klavišo detalės ' + key_details_char: ' Klavišo detalės: ''%{ch}'' ' + key_details_name: ' Klavišo detalės: %{name} ' + press_key_hint: 'Paspauskite klavišą detalėms pamatyti' + shift_label: 'Shift: ' + shift_no: 'Ne' + overall_avg_time: 'Bend. vid. laikas: ' + overall_best_time: 'Bend. geriausias: ' + overall_samples: 'Bend. imčių: ' + overall_accuracy_label: 'Bend. tikslumas: ' + branch_label: 'Šaka: ' + level_label: 'Lygis: ' + built_in_key: 'Integruotas klavišas' + unlocked_label: 'Atrakinta: ' + yes: 'Taip' + no: 'Ne' + in_focus_label: 'Fokuse?: ' + mastery_label: 'Įvaldymas: ' + mastery_locked: 'Užrakinta' + ranked_avg_time: 'Vert. vid. laikas: ' + ranked_best_time: 'Vert. geriausias: ' + ranked_samples: 'Vert. imčių: ' + ranked_accuracy_label: 'Vert. tikslumas: ' + +# Intro dialogs +intro: + passage_title: ' Tekstų atsisiuntimo nustatymai ' + code_title: ' Kodo atsisiuntimo nustatymai ' + enable_downloads: 'Įjungti tinklo atsisiuntimus' + download_dir: 'Atsisiuntimų aplankas' + paragraphs_per_book: 'Pastraipų per knygą (0 = visa)' + whole_book: 'visa knyga' + snippets_per_repo: 'Fragmentų per repozitoriją (0 = neribota)' + unlimited: 'neribota' + start_passage_drill: 'Pradėti teksto pratybas' + start_code_drill: 'Pradėti kodo pratybas' + confirm: 'Patvirtinti' + hint_navigate: '[Aukštyn/Žemyn] Navigacija' + hint_adjust: '[Kairėn/Dešinėn] Reguliuoti' + hint_edit: '[Rašymas/Backspace] Redaguoti' + hint_confirm: '[Enter] Patvirtinti' + hint_cancel: '[ESC] Atšaukti' + preparing_download: 'Ruošiamas atsisiuntimas...' + download_passage_title: ' Atsisiunčiamas teksto šaltinis ' + download_code_title: ' Atsisiunčiamas kodo šaltinis ' + book_label: ' Knyga: %{name}' + repo_label: ' Repozitorija: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} baitų' + downloaded_bytes: 'Atsisiųsta: %{bytes} baitų' + downloading_book_progress: 'Atsisiunčiama knyga: [%{bar}] %{downloaded}/%{total} baitų' + downloading_book_bytes: 'Atsisiunčiama knyga: %{bytes} baitų' + downloading_code_progress: 'Atsisiunčiama: [%{bar}] %{downloaded}/%{total} baitų' + downloading_code_bytes: 'Atsisiunčiama: %{bytes} baitų' + current_book: 'Dabartinė: %{name} (knyga %{done}/%{total})' + current_repo: 'Dabartinė: %{name} (repozitorija %{done}/%{total})' + passage_instructions_1: 'keydr gali atsisiųsti tekstus iš Project Gutenberg spausdinimo praktikai.' + passage_instructions_2: 'Knygos atsisiunčiamos vieną kartą ir saugomos vietoje.' + passage_instructions_3: 'Sukonfigūruokite atsisiuntimo nustatymus, tada pradėkite teksto pratybas.' + code_instructions_1: 'keydr gali atsisiųsti atvirąjį kodą iš GitHub spausdinimo praktikai.' + code_instructions_2: 'Kodas atsisiunčiamas vieną kartą ir saugomas vietoje.' + code_instructions_3: 'Sukonfigūruokite atsisiuntimo nustatymus, tada pradėkite kodo pratybas.' + +# Status messages (from app.rs) +status: + recovery_files: 'Rasti atkūrimo failai iš nutraukto importo. Duomenys gali būti nesuderinti — apsvarstykite pakartotinį importą.' + dir_not_exist: 'Aplankas neegzistuoja: %{path}' + no_data_store: 'Nėra prieinamos duomenų saugyklos' + serialization_error: 'Serializacijos klaida: %{error}' + exported_to: 'Eksportuota į %{path}' + export_failed: 'Eksportas nepavyko: %{error}' + could_not_read: 'Nepavyko perskaityti failo: %{error}' + invalid_export: 'Neteisingas eksporto failas: %{error}' + unsupported_version: 'Nepalaikoma eksporto versija: %{got} (tikėtasi %{expected})' + import_failed: 'Importas nepavyko: %{error}' + imported_theme_fallback: 'Importas sėkmingas (tema ''%{theme}'' nerasta, naudojama numatytoji)' + imported_success: 'Importas sėkmingas' + adaptive_unavailable: 'Adaptyvus vertintas režimas neprieinamas: %{error}' + switched_to: 'Perjungta į %{name}' + layout_changed: 'Išdėstymas pakeistas į %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Nežinoma kalba: %{key}' + unknown_layout: 'Nežinomas klaviatūros išdėstymas: %{key}' + unsupported_pair: 'Nepalaikoma kalbos/išdėstymo pora: %{language} + %{layout}' + language_blocked: 'Kalba blokuota pagal palaikymo lygį: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Atgal' diff --git a/locales/lv.yml b/locales/lv.yml new file mode 100644 index 0000000..573b947 --- /dev/null +++ b/locales/lv.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Termināļa rakstīšanas treneris' + adaptive_drill: 'Adaptīvs vingrinājums' + adaptive_drill_desc: 'Fonētiski vārdi ar adaptīvu burtu atbloķēšanu' + code_drill: 'Koda vingrinājums' + code_drill_desc: 'Praktizējiet koda sintakses rakstīšanu' + passage_drill: 'Teksta vingrinājums' + passage_drill_desc: 'Rakstiet fragmentus no grāmatām' + skill_tree: 'Prasmju koks' + skill_tree_desc: 'Skatiet progresa zarus un sāciet vingrinājumus' + keyboard: 'Tastatūra' + keyboard_desc: 'Izpētiet tastatūras izkārtojumu un taustiņu statistiku' + statistics: 'Statistika' + statistics_desc: 'Skatiet rakstīšanas statistiku' + settings: 'Iestatījumi' + settings_desc: 'Konfigurēt keydr' + day_streak: ' | %{days} dienu sērija' + key_progress: ' Taustiņu progress %{unlocked}/%{total} (%{mastered} apgūti) | Mērķis %{target} WPM%{streak}' + hint_start: '[1-3] Sākt' + hint_skill_tree: '[t] Prasmju koks' + hint_keyboard: '[b] Tastatūra' + hint_stats: '[s] Statistika' + hint_settings: '[c] Iestatījumi' + hint_quit: '[q] Iziet' + +# Drill screen +drill: + title: ' Vingrinājums ' + mode_adaptive: 'Adaptīvs' + mode_code: 'Kods (bez vērtējuma)' + mode_passage: 'Teksts (bez vērtējuma)' + focus_char: 'Fokuss: ''%{ch}''' + focus_bigram: 'Fokuss: "%{bigram}"' + focus_both: 'Fokuss: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Prec' + header_err: 'Kļūd' + code_source: ' Koda avots ' + passage_source: ' Teksta avots ' + footer: '[ESC] Beigt vingrinājumu [Backspace] Dzēst' + keys_reenabled: 'Taustiņi atkal aktīvi pēc %{ms}ms' + hint_end: '[ESC] Beigt vingrinājumu' + hint_backspace: '[Backspace] Dzēst' + +# Dashboard / drill result +dashboard: + title: ' Vingrinājums pabeigts ' + results: 'Rezultāti' + unranked_note_prefix: ' (Bez vērtējuma' + unranked_note_suffix: ' netiek ieskaitīts prasmju kokā)' + speed: ' Ātrums: ' + accuracy_label: ' Precizitāte:' + time_label: ' Laiks: ' + errors_label: ' Kļūdas: ' + correct_detail: ' (%{correct}/%{total} pareizi)' + input_blocked: ' Ievade īslaicīgi bloķēta ' + input_blocked_ms: '(%{ms}ms atlicis)' + hint_continue: '[c/Enter/Space] Turpināt' + hint_retry: '[r] Atkārtot' + hint_menu: '[q] Izvēlne' + hint_stats: '[s] Statistika' + hint_delete: '[x] Dzēst' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistika ' + wpm: 'WPM: ' + target: 'Mērķis: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Precizitāte: ' + progress: 'Progress: ' + correct: 'Pareizi: ' + errors: 'Kļūdas: ' + time: 'Laiks: ' + last_drill: ' Pēdējais vingrinājums ' + vs_avg: ' vs vidēji: ' + +# Statistics dashboard +stats: + title: ' Statistika ' + empty: 'Nav pabeigtu vingrinājumu. Sāciet rakstīt!' + tab_dashboard: '[1] Pārskats' + tab_history: '[2] Vēsture' + tab_activity: '[3] Aktivitāte' + tab_accuracy: '[4] Precizitāte' + tab_timing: '[5] Laiki' + tab_ngrams: '[6] N-gramas' + hint_back: '[ESC] Atpakaļ' + hint_next_tab: '[Tab] Nākamā cilne' + hint_switch_tab: '[1-6] Cilne' + hint_navigate: '[j/k] Navigācija' + hint_page: '[PgUp/PgDn] Lapa' + hint_delete: '[x] Dzēst' + summary_title: ' Kopsavilkums ' + drills: ' Vingrinājumi: ' + avg_wpm: ' Vid. WPM: ' + best_wpm: ' Labākais WPM: ' + accuracy_label: ' Precizitāte: ' + total_time: ' Kopējais laiks: ' + wpm_chart_title: ' WPM pa vingrinājumiem (Pēdējie 20, Mērķis: %{target}) ' + accuracy_chart_title: ' Precizitāte %% (Pēdējie 50 vingrinājumi) ' + chart_drill: 'Vingrinājums #' + chart_accuracy_pct: 'Precizitāte %%' + sessions_title: ' Nesenās sesijas ' + session_header: ' # WPM Raw Prec%% Laiks Datums/Laiks Režīms Vērtēts Daļējs' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Dzēst sesiju #%{idx}? (y/n)' + confirm_title: ' Apstiprināt ' + yes: 'jā' + no: 'nē' + keyboard_accuracy_title: ' Tastatūras precizitāte %% ' + keyboard_timing_title: ' Tastatūras laiki (ms) ' + slowest_keys_title: ' Lēnākie taustiņi (ms) ' + fastest_keys_title: ' Ātrākie taustiņi (ms) ' + worst_accuracy_title: ' Sliktākā precizitāte (%%) ' + best_accuracy_title: ' Labākā precizitāte (%%) ' + not_enough_data: ' Nepietiek datu' + streaks_title: ' Sērijas ' + current_streak: ' Pašreizējā: ' + best_streak: ' Labākā: ' + active_days: ' Aktīvās dienas: ' + top_days_none: ' Labākās dienas: nav' + top_days: ' Labākās dienas: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Prec: %{pct}%%' + keys_label: ' Taustiņi: %{unlocked}/%{total} (%{mastered} apgūti)' + ngram_empty: 'Pabeidziet dažus adaptīvus vingrinājumus n-gramu datu attēlošanai' + ngram_header_speed_narrow: ' Bgrm Ātr Sagaid Anom%' + ngram_header_error_narrow: ' Bgrm Kļūd Par Likme Sag Anom%' + ngram_header_speed: ' Bigrama Ātrums Sagaid Paraugi Anom%' + ngram_header_error: ' Bigrama Kļūdas Paraugi Likme Sagaid Anom%' + focus_title: ' Aktīvais fokuss ' + focus_char_label: ' Fokuss: ' + focus_bigram_value: 'Bigrama %{label}' + focus_plus: ' + ' + anomaly_error: 'kļūda' + anomaly_speed: 'ātrums' + focus_detail_both: ' Simb. ''%{ch}'': vājākais taustiņš | Bigrama %{label}: %{type} anomālija %{pct}%%' + focus_detail_char_only: ' Simb. ''%{ch}'': vājākais taustiņš, nav apstiprinātu bigramu anomāliju' + focus_detail_bigram_only: ' (%{type} anomālija: %{pct}%%)' + focus_empty: ' Pabeidziet dažus adaptīvus vingrinājumus fokusa datu attēlošanai' + error_anomalies_title: ' Kļūdu anomālijas (%{count}) ' + no_error_anomalies: ' Kļūdu anomālijas nav atrastas' + speed_anomalies_title: ' Ātruma anomālijas (%{count}) ' + no_speed_anomalies: ' Ātruma anomālijas nav atrastas' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Pieaugums: %{value}' + gain_interval: ' (katrus 50)' + focus_char_value: 'Simb. ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Dienas aktivitāte (sesijas dienā) ' + jan: 'Jan' + feb: 'Feb' + mar: 'Mar' + apr: 'Apr' + may: 'Mai' + jun: 'Jūn' + jul: 'Jūl' + aug: 'Aug' + sep: 'Sep' + oct: 'Okt' + nov: 'Nov' + dec: 'Dec' + +# Chart +chart: + wpm_over_time: ' WPM laika gaitā ' + drill_number: 'Vingrinājums #' + +# Settings +settings: + title: ' Iestatījumi ' + subtitle: 'Bultiņām navigēt, Enter/Pa labi mainīt, ESC saglabāt' + target_wpm: 'Mērķa WPM' + theme: 'Tēma' + word_count: 'Vārdu skaits' + ui_language: 'Saskarnes valoda' + dictionary_language: 'Vārdnīcas valoda' + keyboard_layout: 'Tastatūras izkārtojums' + code_language: 'Programmēšanas valoda' + code_downloads: 'Koda lejupielādes' + on: 'Ieslēgts' + off: 'Izslēgts' + code_download_dir: 'Koda lejupielādes mape' + snippets_per_repo: 'Fragmenti uz repozitoriju' + unlimited: 'Neierobežots' + download_code_now: 'Lejupielādēt kodu tagad' + run_downloader: 'Palaist lejupielādi' + passage_downloads: 'Tekstu lejupielādes' + passage_download_dir: 'Tekstu lejupielādes mape' + paragraphs_per_book: 'Rindkopas uz grāmatu' + whole_book: 'Visa grāmata' + download_passages_now: 'Lejupielādēt tekstus tagad' + export_path: 'Eksporta ceļš' + export_data: 'Eksportēt datus' + export_now: 'Eksportēt tagad' + import_path: 'Importa ceļš' + import_data: 'Importēt datus' + import_now: 'Importēt tagad' + hint_save_back: '[ESC] Saglabāt un atpakaļ' + hint_change_value: '[Enter/bultiņas] Mainīt vērtību' + hint_edit_path: '[Enter uz ceļa] Rediģēt' + hint_move: '[←→] Pārvietot' + hint_tab_complete: '[Tab] Pabeigt (beigās)' + hint_confirm: '[Enter] Apstiprināt' + hint_cancel: '[Esc] Atcelt' + success_title: ' Veiksmīgi ' + error_title: ' Kļūda ' + press_any_key: 'Nospiediet jebkuru taustiņu' + file_exists_title: ' Fails eksistē ' + file_exists: 'Fails jau eksistē šajā ceļā.' + overwrite_rename: '[d] Pārrakstīt [r] Pārdēvēt [Esc] Atcelt' + erase_warning: 'Tas izdzēsīs jūsu pašreizējos datus.' + export_first: 'Vispirms eksportējiet, ja vēlaties saglabāt.' + proceed_yn: 'Turpināt? (y/n)' + confirm_import_title: ' Importa apstiprināšana ' + +# Selection screens +select: + dictionary_language_title: ' Izvēlieties vārdnīcas valodu ' + keyboard_layout_title: ' Izvēlieties tastatūras izkārtojumu ' + code_language_title: ' Izvēlieties programmēšanas valodu ' + passage_source_title: ' Izvēlieties teksta avotu ' + ui_language_title: ' Izvēlieties saskarnes valodu ' + more_above: '... vēl %{count} augstāk ...' + more_below: '... vēl %{count} zemāk ...' + current: ' (pašreizējais)' + disabled: ' (atspējots)' + enabled_default: ' (iespējots, noklusējums: %{layout})' + enabled: ' (iespējots)' + disabled_blocked: ' (atspējots: bloķēts)' + built_in: ' (iebūvēts)' + cached: ' (kešots)' + disabled_download: ' (atspējots: nepieciešama lejupielāde)' + download_required: ' (nepieciešama lejupielāde)' + hint_navigate: '[Augšup/Lejup/PgUp/PgDn] Navigācija' + hint_confirm: '[Enter] Apstiprināt' + hint_back: '[ESC] Atpakaļ' + language_resets_layout: 'Valodas izvēle atjauno tastatūras izkārtojumu uz šīs valodas noklusējumu.' + layout_no_language_change: 'Izkārtojuma maiņa nemaina vārdnīcas valodu.' + disabled_network_notice: 'Dažas valodas atspējotas: iespējojiet tīkla lejupielādes ievadā/iestatījumos.' + disabled_sources_notice: 'Daži avoti atspējoti: iespējojiet tīkla lejupielādes ievadā/iestatījumos.' + passage_all: 'Visi (Iebūvētie + visas grāmatas)' + passage_builtin: 'Tikai iebūvētie teksti' + passage_book_prefix: 'Grāmata: %{title}' + +# Progress +progress: + overall_key_progress: 'Kopējais taustiņu progress' + unlocked_mastered: '%{unlocked}/%{total} atbloķēti (%{mastered} apgūti)' + +# Skill tree +skill_tree: + title: ' Prasmju koks ' + locked: 'Bloķēts' + unlocked: 'atbloķēts' + mastered: 'apgūts' + in_progress: 'procesā' + complete: 'pabeigts' + locked_status: 'bloķēts' + locked_notice: 'Pabeidziet %{count} primāros burtus zaru atbloķēšanai' + branches_separator: 'Zari (pieejami pēc %{count} primārajiem burtiem)' + unlocked_letters: 'Atbloķēti %{unlocked}/%{total} burti' + level: 'Līmenis %{current}/%{total}' + level_zero: 'Līmenis 0/%{total}' + in_focus: ' fokusā' + hint_navigate: '[↑↓/jk] Navigācija' + hint_scroll: '[PgUp/PgDn vai Ctrl+U/Ctrl+D] Ritināt' + hint_back: '[q] Atpakaļ' + hint_unlock: '[Enter] Atbloķēt' + hint_start_drill: '[Enter] Sākt vingrinājumu' + unlock_msg_1: 'Pēc atbloķēšanas noklusējuma adaptīvais vingrinājums iekļaus šī zara atbloķētos taustiņus.' + unlock_msg_2: 'Ja vēlaties fokusēties tikai uz šo zaru, sāciet vingrinājumu tieši no prasmju koka.' + confirm_unlock: 'Atbloķēt %{branch}?' + confirm_yn: '[y] Atbloķēt [n/ESC] Atcelt' + lvl_prefix: 'Līm' + branch_primary_letters: 'Primārie burti' + branch_capital_letters: 'Lielie burti' + branch_numbers: 'Cipari 0-9' + branch_prose_punctuation: 'Pieturzīmes' + branch_whitespace: 'Atstarpes' + branch_code_symbols: 'Koda simboli' + level_frequency_order: 'Biežuma secībā' + level_common_sentence_capitals: 'Bieži teikumu lielie burti' + level_name_capitals: 'Vārdu lielie burti' + level_remaining_capitals: 'Atlikušie lielie burti' + level_common_digits: 'Biežie cipari' + level_all_digits: 'Visi cipari' + level_essential: 'Būtiski' + level_common: 'Bieži' + level_expressive: 'Izteiksmīgi' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Atkāpe' + level_arithmetic_assignment: 'Aritmētika un piešķiršana' + level_grouping: 'Grupēšana' + level_logic_reference: 'Loģika un atsauces' + level_special: 'Speciāli' + +# Milestones +milestones: + unlock_title: ' Taustiņš atbloķēts! ' + mastery_title: ' Taustiņš apgūts! ' + branches_title: ' Jauni prasmju zari pieejami! ' + branch_complete_title: ' Zars pabeigts! ' + all_unlocked_title: ' Visi taustiņi atbloķēti! ' + all_mastered_title: ' Pilnīga tastatūras apguve! ' + unlocked: 'atbloķēts' + mastered: 'apgūts' + use_finger: 'Izmantojiet %{finger}' + hold_right_shift: 'Turiet labo Shift (labais mazais pirksts)' + hold_left_shift: 'Turiet kreiso Shift (kreisais mazais pirksts)' + congratulations_all_letters: 'Apsveicam! Esat apguvis visus %{count} primāros burtus' + new_branches_available: 'Jauni prasmju zari tagad pieejami:' + visit_skill_tree: 'Apmeklējiet prasmju koku jauna zara atbloķēšanai' + and_start_training: 'un sāciet trenēties!' + open_skill_tree: 'Nospiediet [t] prasmju koka atvēršanai' + branch_complete_msg: 'Esat pabeidzis %{branch} zaru!' + all_levels_mastered: 'Visi %{count} līmeņi apgūti.' + all_keys_confident: 'Katrs taustiņš šajā zarā ir pilnā uzticamībā.' + all_unlocked_msg: 'Esat atbloķējis katru tastatūras taustiņu!' + all_unlocked_desc: 'Katra rakstzīme, simbols un modifikators tagad pieejams vingrinājumos.' + keep_practicing_mastery: 'Turpiniet praktizēt meistarības veidošanai — kad katrs taustiņš sasniegs pilnu' + confidence_complete: 'uzticamību, būsiet sasniedzis pilnīgu tastatūras apguvi!' + all_mastered_msg: 'Apsveicam — esat sasniedzis pilnīgu tastatūras apguvi!' + all_mastered_desc: 'Katrs tastatūras taustiņš ir maksimālā uzticamībā.' + mastery_takes_practice: 'Meistarība nav galamērķis — tā prasa pastāvīgu praksi.' + keep_drilling: 'Turpiniet vingrinājumus, lai uzturētu formu.' + hint_skill_tree_continue: '[t] Atvērt prasmju koku [Jebkurš taustiņš] Turpināt' + hint_any_key: 'Nospiediet jebkuru taustiņu lai turpinātu' + input_blocked: 'Ievade īslaicīgi bloķēta (%{ms}ms atlicis)' + unlock_msg_1: 'Lielisks darbs! Turpiniet veidot rakstīšanas prasmes.' + unlock_msg_2: 'Vēl viens taustiņš jūsu arsenālā!' + unlock_msg_3: 'Jūsu tastatūra aug! Tā turpiniet.' + unlock_msg_4: 'Soli tuvāk pilnīgai tastatūras apguvei!' + mastery_msg_1: 'Šis taustiņš tagad ir pilnā uzticamībā!' + mastery_msg_2: 'Šo taustiņu jūs protat lieliski!' + mastery_msg_3: 'Muskuļu atmiņa nostiprināta!' + mastery_msg_4: 'Vēl viens taustiņš iekarots!' + +# Keyboard explorer +keyboard: + title: ' Tastatūra ' + subtitle: 'Nospiediet jebkuru taustiņu vai noklikšķiniet' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigācija' + hint_back: '[q/ESC] Atpakaļ' + key_label: 'Taustiņš: ' + finger_label: 'Pirksts: ' + hand_left: 'Kreisā' + hand_right: 'Labā' + finger_index: 'Rādītājpirksts' + finger_middle: 'Vidējais' + finger_ring: 'Zeltnesis' + finger_pinky: 'Mazais pirksts' + finger_thumb: 'Īkšķis' + overall_accuracy: ' Kopējā precizitāte: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Vērtētā precizitāte: %{correct}/%{total} (%{pct}%%)' + confidence: 'Uzticamība: ' + no_data: 'Vēl nav datu' + no_data_short: 'Nav datu' + key_details: ' Taustiņa detaļas ' + key_details_char: ' Taustiņa detaļas: ''%{ch}'' ' + key_details_name: ' Taustiņa detaļas: %{name} ' + press_key_hint: 'Nospiediet taustiņu detaļu apskatei' + shift_label: 'Shift: ' + shift_no: 'Nē' + overall_avg_time: 'Kop. vid. laiks: ' + overall_best_time: 'Kop. labākais laiks: ' + overall_samples: 'Kop. paraugi: ' + overall_accuracy_label: 'Kop. precizitāte: ' + branch_label: 'Zars: ' + level_label: 'Līmenis: ' + built_in_key: 'Iebūvēts taustiņš' + unlocked_label: 'Atbloķēts: ' + yes: 'Jā' + no: 'Nē' + in_focus_label: 'Fokusā?: ' + mastery_label: 'Apguve: ' + mastery_locked: 'Bloķēts' + ranked_avg_time: 'Vērt. vid. laiks: ' + ranked_best_time: 'Vērt. labākais laiks: ' + ranked_samples: 'Vērt. paraugi: ' + ranked_accuracy_label: 'Vērt. precizitāte: ' + +# Intro dialogs +intro: + passage_title: ' Tekstu lejupielādes iestatīšana ' + code_title: ' Koda lejupielādes iestatīšana ' + enable_downloads: 'Iespējot tīkla lejupielādes' + download_dir: 'Lejupielādes mape' + paragraphs_per_book: 'Rindkopas uz grāmatu (0 = visa)' + whole_book: 'visa grāmata' + snippets_per_repo: 'Fragmenti uz repozitoriju (0 = neierobežots)' + unlimited: 'neierobežots' + start_passage_drill: 'Sākt teksta vingrinājumu' + start_code_drill: 'Sākt koda vingrinājumu' + confirm: 'Apstiprināt' + hint_navigate: '[Augšup/Lejup] Navigācija' + hint_adjust: '[Pa kreisi/Pa labi] Pielāgot' + hint_edit: '[Rakstīšana/Backspace] Rediģēt' + hint_confirm: '[Enter] Apstiprināt' + hint_cancel: '[ESC] Atcelt' + preparing_download: 'Gatavo lejupielādi...' + download_passage_title: ' Lejupielādē teksta avotu ' + download_code_title: ' Lejupielādē koda avotu ' + book_label: ' Grāmata: %{name}' + repo_label: ' Repozitorijs: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} baiti' + downloaded_bytes: 'Lejupielādēts: %{bytes} baiti' + downloading_book_progress: 'Lejupielādē grāmatu: [%{bar}] %{downloaded}/%{total} baiti' + downloading_book_bytes: 'Lejupielādē grāmatu: %{bytes} baiti' + downloading_code_progress: 'Lejupielādē: [%{bar}] %{downloaded}/%{total} baiti' + downloading_code_bytes: 'Lejupielādē: %{bytes} baiti' + current_book: 'Pašreizējā: %{name} (grāmata %{done}/%{total})' + current_repo: 'Pašreizējais: %{name} (repozitorijs %{done}/%{total})' + passage_instructions_1: 'keydr var lejupielādēt tekstus no Project Gutenberg rakstīšanas praksei.' + passage_instructions_2: 'Grāmatas tiek lejupielādētas vienreiz un glabātas lokāli.' + passage_instructions_3: 'Konfigurējiet lejupielādes iestatījumus, tad sāciet teksta vingrinājumu.' + code_instructions_1: 'keydr var lejupielādēt atvērtā koda projektus no GitHub rakstīšanas praksei.' + code_instructions_2: 'Kods tiek lejupielādēts vienreiz un glabāts lokāli.' + code_instructions_3: 'Konfigurējiet lejupielādes iestatījumus, tad sāciet koda vingrinājumu.' + +# Status messages (from app.rs) +status: + recovery_files: 'Atrasti atkopšanas faili no pārtraukta importa. Dati var būt nekonsekventi — apsveriet atkārtotu importu.' + dir_not_exist: 'Mape neeksistē: %{path}' + no_data_store: 'Nav pieejama datu krātuve' + serialization_error: 'Serializācijas kļūda: %{error}' + exported_to: 'Eksportēts uz %{path}' + export_failed: 'Eksports neizdevās: %{error}' + could_not_read: 'Nevarēja nolasīt failu: %{error}' + invalid_export: 'Nederīgs eksporta fails: %{error}' + unsupported_version: 'Neatbalstīta eksporta versija: %{got} (gaidīta %{expected})' + import_failed: 'Imports neizdevās: %{error}' + imported_theme_fallback: 'Imports veiksmīgs (tēma ''%{theme}'' nav atrasta, izmanto noklusējumu)' + imported_success: 'Imports veiksmīgs' + adaptive_unavailable: 'Adaptīvais vērtētais režīms nav pieejams: %{error}' + switched_to: 'Pārslēgts uz %{name}' + layout_changed: 'Izkārtojums mainīts uz %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Nezināma valoda: %{key}' + unknown_layout: 'Nezināms tastatūras izkārtojums: %{key}' + unsupported_pair: 'Neatbalstīts valodas/izkārtojuma pāris: %{language} + %{layout}' + language_blocked: 'Valoda bloķēta atbalsta līmeņa dēļ: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Atpakaļ' diff --git a/locales/nb.yml b/locales/nb.yml new file mode 100644 index 0000000..daf2e20 --- /dev/null +++ b/locales/nb.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminal Skrivetrener' + adaptive_drill: 'Adaptiv oevelse' + adaptive_drill_desc: 'Fonetiske ord med adaptiv bokstavopplaasing' + code_drill: 'Kodeoevelse' + code_drill_desc: 'Oev paa aa skrive kodesyntaks' + passage_drill: 'Tekstoevelse' + passage_drill_desc: 'Skriv av passasjer fra boeker' + skill_tree: 'Ferdighetstre' + skill_tree_desc: 'Se fremgangsgrener og start oevelser' + keyboard: 'Tastatur' + keyboard_desc: 'Utforsk tastaturoppsett og tasterstatistikk' + statistics: 'Statistikk' + statistics_desc: 'Se skrivestatistikken din' + settings: 'Innstillinger' + settings_desc: 'Konfigurer keydr' + day_streak: ' | %{days} dagers rekke' + key_progress: ' Tastefremgang %{unlocked}/%{total} (%{mastered} mestret) | Maal %{target} WPM%{streak}' + hint_start: '[1-3] Start' + hint_skill_tree: '[t] Ferdighetstre' + hint_keyboard: '[b] Tastatur' + hint_stats: '[s] Statistikk' + hint_settings: '[c] Innstillinger' + hint_quit: '[q] Avslutt' + +# Drill screen +drill: + title: ' Oevelse ' + mode_adaptive: 'Adaptiv' + mode_code: 'Kode (Urangert)' + mode_passage: 'Tekst (Urangert)' + focus_char: 'Fokus: ''%{ch}''' + focus_bigram: 'Fokus: "%{bigram}"' + focus_both: 'Fokus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Noey' + header_err: 'Feil' + code_source: ' Kodekilde ' + passage_source: ' Tekstkilde ' + footer: '[ESC] Avslutt oevelse [Backspace] Slett' + keys_reenabled: 'Taster reaktivert etter %{ms}ms' + hint_end: '[ESC] Avslutt oevelse' + hint_backspace: '[Backspace] Slett' + +# Dashboard / drill result +dashboard: + title: ' Oevelse fullfoert ' + results: 'Resultater' + unranked_note_prefix: ' (Urangert' + unranked_note_suffix: ' teller ikke for ferdighetstreet)' + speed: ' Hastighet: ' + accuracy_label: ' Noeyaktighet: ' + time_label: ' Tid: ' + errors_label: ' Feil: ' + correct_detail: ' (%{correct}/%{total} korrekte)' + input_blocked: ' Inndata midlertidig blokkert ' + input_blocked_ms: '(%{ms}ms gjenstaar)' + hint_continue: '[c/Enter/Space] Fortsett' + hint_retry: '[r] Proev igjen' + hint_menu: '[q] Meny' + hint_stats: '[s] Statistikk' + hint_delete: '[x] Slett' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistikk ' + wpm: 'WPM: ' + target: 'Maal: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Noeyaktighet: ' + progress: 'Fremgang: ' + correct: 'Korrekte: ' + errors: 'Feil: ' + time: 'Tid: ' + last_drill: ' Forrige oevelse ' + vs_avg: ' vs snitt: ' + +# Statistics dashboard +stats: + title: ' Statistikk ' + empty: 'Ingen oevelser fullfoert ennaa. Begynn aa skrive!' + tab_dashboard: '[1] Dashboard' + tab_history: '[2] Historikk' + tab_activity: '[3] Aktivitet' + tab_accuracy: '[4] Noeyaktighet' + tab_timing: '[5] Timing' + tab_ngrams: '[6] N-grammer' + hint_back: '[ESC] Tilbake' + hint_next_tab: '[Tab] Neste fane' + hint_switch_tab: '[1-6] Bytt fane' + hint_navigate: '[j/k] Naviger' + hint_page: '[PgUp/PgDn] Side' + hint_delete: '[x] Slett' + summary_title: ' Sammendrag ' + drills: ' Oevelser: ' + avg_wpm: ' Snitt WPM: ' + best_wpm: ' Beste WPM: ' + accuracy_label: ' Noeyaktighet: ' + total_time: ' Total tid: ' + wpm_chart_title: ' WPM per oevelse (Siste 20, Maal: %{target}) ' + accuracy_chart_title: ' Noeyaktighet %% (Siste 50 oevelser) ' + chart_drill: 'Oevelse #' + chart_accuracy_pct: 'Noeyaktighet %%' + sessions_title: ' Siste oekter ' + session_header: ' # WPM Raa Noey%% Tid Dato/Tid Modus Rangert Delvis' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Slett oekt #%{idx}? (y/n)' + confirm_title: ' Bekreft ' + yes: 'ja' + no: 'nei' + keyboard_accuracy_title: ' Tastatur noeyaktighet %% ' + keyboard_timing_title: ' Tastatur timing (ms) ' + slowest_keys_title: ' Tregeste taster (ms) ' + fastest_keys_title: ' Raskeste taster (ms) ' + worst_accuracy_title: ' Daarligste noeyaktighet (%%) ' + best_accuracy_title: ' Beste noeyaktighet (%%) ' + not_enough_data: ' Ikke nok data' + streaks_title: ' Rekker ' + current_streak: ' Naavaerende: ' + best_streak: ' Beste: ' + active_days: ' Aktive dager: ' + top_days_none: ' Toppdager: ingen' + top_days: ' Toppdager: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Noey: %{pct}%%' + keys_label: ' Taster: %{unlocked}/%{total} (%{mastered} mestret)' + ngram_empty: 'Fullfaor noen adaptive oevelser for aa se n-gram data' + ngram_header_speed_narrow: ' Bgrm Hast Forv Anom%' + ngram_header_error_narrow: ' Bgrm Feil Stp Freq Forv Anom%' + ngram_header_speed: ' Bigram Hast Forvent Stikkpr. Anom%' + ngram_header_error: ' Bigram Feil Stikkpr. Freq Forvent Anom%' + focus_title: ' Aktivt fokus ' + focus_char_label: ' Fokus: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'feil' + anomaly_speed: 'hastighet' + focus_detail_both: ' Tegn ''%{ch}'': svakeste tast | Bigram %{label}: %{type}-anomali %{pct}%%' + focus_detail_char_only: ' Tegn ''%{ch}'': svakeste tast, ingen bekreftede bigram-anomalier' + focus_detail_bigram_only: ' (%{type}-anomali: %{pct}%%)' + focus_empty: ' Fullfaor noen adaptive oevelser for aa se fokusdata' + error_anomalies_title: ' Feil-anomalier (%{count}) ' + no_error_anomalies: ' Ingen feil-anomalier oppdaget' + speed_anomalies_title: ' Hastighets-anomalier (%{count}) ' + no_speed_anomalies: ' Ingen hastighets-anomalier oppdaget' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Gevinst: %{value}' + gain_interval: ' (hver 50.)' + focus_char_value: 'Tegn ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Daglig aktivitet (Oekter per dag) ' + jan: 'Jan' + feb: 'Feb' + mar: 'Mar' + apr: 'Apr' + may: 'Mai' + jun: 'Jun' + jul: 'Jul' + aug: 'Aug' + sep: 'Sep' + oct: 'Okt' + nov: 'Nov' + dec: 'Des' + +# Chart +chart: + wpm_over_time: ' WPM over tid ' + drill_number: 'Oevelse #' + +# Settings +settings: + title: ' Innstillinger ' + subtitle: 'Piltaster for aa navigere, Enter/Hoeyre for aa endre, ESC for aa lagre' + target_wpm: 'Maal-WPM' + theme: 'Tema' + word_count: 'Antall ord' + ui_language: 'Spraak (UI)' + dictionary_language: 'Ordlistespraak' + keyboard_layout: 'Tastaturoppsett' + code_language: 'Kodespraak' + code_downloads: 'Kode-nedlastinger' + on: 'Paa' + off: 'Av' + code_download_dir: 'Kode-nedlastingsmappe' + snippets_per_repo: 'Utdrag per repo' + unlimited: 'Ubegrenset' + download_code_now: 'Last ned kode naa' + run_downloader: 'Start nedlasting' + passage_downloads: 'Tekst-nedlastinger' + passage_download_dir: 'Tekst-nedlastingsmappe' + paragraphs_per_book: 'Avsnitt per bok' + whole_book: 'Hele boken' + download_passages_now: 'Last ned tekster naa' + export_path: 'Eksportsti' + export_data: 'Eksporter data' + export_now: 'Eksporter naa' + import_path: 'Importsti' + import_data: 'Importer data' + import_now: 'Importer naa' + hint_save_back: '[ESC] Lagre & tilbake' + hint_change_value: '[Enter/piler] Endre verdi' + hint_edit_path: '[Enter paa sti] Rediger' + hint_move: '[←→] Flytt' + hint_tab_complete: '[Tab] Fullfaor (paa slutten)' + hint_confirm: '[Enter] Bekreft' + hint_cancel: '[Esc] Avbryt' + success_title: ' Suksess ' + error_title: ' Feil ' + press_any_key: 'Trykk paa en tast' + file_exists_title: ' Filen finnes ' + file_exists: 'Det finnes allerede en fil paa denne stien.' + overwrite_rename: '[d] Overskriv [r] Gi nytt navn [Esc] Avbryt' + erase_warning: 'Dette vil slette dine naavaerende data.' + export_first: 'Eksporter foerst hvis du vil beholde dem.' + proceed_yn: 'Fortsett? (y/n)' + confirm_import_title: ' Bekreft import ' + +# Selection screens +select: + dictionary_language_title: ' Velg ordlistespraak ' + keyboard_layout_title: ' Velg tastaturoppsett ' + code_language_title: ' Velg kodespraak ' + passage_source_title: ' Velg tekstkilde ' + ui_language_title: ' Velg spraak (UI) ' + more_above: '... %{count} flere over ...' + more_below: '... %{count} flere under ...' + current: ' (naavaerende)' + disabled: ' (deaktivert)' + enabled_default: ' (aktivert, standard: %{layout})' + enabled: ' (aktivert)' + disabled_blocked: ' (deaktivert: blokkert)' + built_in: ' (innebygd)' + cached: ' (lagret)' + disabled_download: ' (deaktivert: nedlasting kraeves)' + download_required: ' (nedlasting kraeves)' + hint_navigate: '[Opp/Ned/PgUp/PgDn] Naviger' + hint_confirm: '[Enter] Bekreft' + hint_back: '[ESC] Tilbake' + language_resets_layout: 'Spraakvalg tilbakestiller tastaturoppsett til spraakets standard.' + layout_no_language_change: 'Oppsettendringer endrer ikke ordlistespraaket.' + disabled_network_notice: 'Noen spraak er deaktivert: aktiver nettverksnedlastinger i intro/innstillinger.' + disabled_sources_notice: 'Noen kilder er deaktivert: aktiver nettverksnedlastinger i intro/innstillinger.' + passage_all: 'Alle (Innebygde + alle boeker)' + passage_builtin: 'Kun innebygde passasjer' + passage_book_prefix: 'Bok: %{title}' + +# Progress +progress: + overall_key_progress: 'Total tastefremgang' + unlocked_mastered: '%{unlocked}/%{total} laast opp (%{mastered} mestret)' + +# Skill tree +skill_tree: + title: ' Ferdighetstre ' + locked: 'Laast' + unlocked: 'laast opp' + mastered: 'mestret' + in_progress: 'paagaar' + complete: 'fullfoert' + locked_status: 'laast' + locked_notice: 'Fullfaor %{count} grunnbokstaver for aa laase opp grener' + branches_separator: 'Grener (tilgjengelige etter %{count} grunnbokstaver)' + unlocked_letters: '%{unlocked}/%{total} bokstaver laast opp' + level: 'Nivaa %{current}/%{total}' + level_zero: 'Nivaa 0/%{total}' + in_focus: ' i fokus' + hint_navigate: '[↑↓/jk] Naviger' + hint_scroll: '[PgUp/PgDn eller Ctrl+U/Ctrl+D] Rull' + hint_back: '[q] Tilbake' + hint_unlock: '[Enter] Laas opp' + hint_start_drill: '[Enter] Start oevelse' + unlock_msg_1: 'Etter opplaasing blandes oplaaste taster fra denne grenen inn i den adaptive oevelsen.' + unlock_msg_2: 'Vil du kun oeve denne grenen, start en oevelse direkte fra denne grenen i Ferdighetstreet.' + confirm_unlock: 'Laas opp %{branch}?' + confirm_yn: '[y] Laas opp [n/ESC] Avbryt' + lvl_prefix: 'Niv' + branch_primary_letters: 'Grunnbokstaver' + branch_capital_letters: 'Store bokstaver' + branch_numbers: 'Tall 0-9' + branch_prose_punctuation: 'Tegnsetting' + branch_whitespace: 'Mellomrom' + branch_code_symbols: 'Kodesymboler' + level_frequency_order: 'Frekvensrekkefoelge' + level_common_sentence_capitals: 'Vanlige setningsstorbokst.' + level_name_capitals: 'Navnestorbokstaver' + level_remaining_capitals: 'Oevrige storbokstaver' + level_common_digits: 'Vanlige siffer' + level_all_digits: 'Alle siffer' + level_essential: 'Grunnleggende' + level_common: 'Vanlige' + level_expressive: 'Uttrykksfull' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Innrykk' + level_arithmetic_assignment: 'Aritmetikk & Tilordning' + level_grouping: 'Gruppering' + level_logic_reference: 'Logikk & Referanse' + level_special: 'Spesial' + +# Milestones +milestones: + unlock_title: ' Tast laast opp! ' + mastery_title: ' Tast mestret! ' + branches_title: ' Nye ferdighetsgrener tilgjengelige! ' + branch_complete_title: ' Gren fullfoert! ' + all_unlocked_title: ' Alle taster laast opp! ' + all_mastered_title: ' Full tastaturmestring! ' + unlocked: 'laast opp' + mastered: 'mestret' + use_finger: 'Bruk %{finger}' + hold_right_shift: 'Hold hoyre Shift (hoeyre lillefinger)' + hold_left_shift: 'Hold venstre Shift (venstre lillefinger)' + congratulations_all_letters: 'Gratulerer! Du har mestret alle %{count} grunnbokstaver' + new_branches_available: 'Nye ferdighetsgrener er naa tilgjengelige:' + visit_skill_tree: 'Besoek Ferdighetstreet for aa laase opp en ny gren' + and_start_training: 'og begynn aa trene!' + open_skill_tree: 'Trykk [t] for aa aapne Ferdighetstreet naa' + branch_complete_msg: 'Du har fullfoert grenen %{branch}!' + all_levels_mastered: 'Alle %{count} nivaaer mestret.' + all_keys_confident: 'Hver tast i denne grenen har full tillit.' + all_unlocked_msg: 'Du har laast opp hver tast paa tastaturet!' + all_unlocked_desc: 'Hvert tegn, symbol og modifikator er naa tilgjengelig i oevelsene dine.' + keep_practicing_mastery: 'Fortsett aa oeve for aa bygge mestring — naar hver tast naar full' + confidence_complete: 'tillit, har du oppnaad fullstendig tastaturmestring!' + all_mastered_msg: 'Gratulerer — du har oppnaad fullstendig tastaturmestring!' + all_mastered_desc: 'Hver tast paa tastaturet har maksimal tillit.' + mastery_takes_practice: 'Mestring er ikke et maal — det krever vedvarende oeving.' + keep_drilling: 'Fortsett aa oeve for aa holde deg skarp.' + hint_skill_tree_continue: '[t] Ferdighetstre [Annen tast] Fortsett' + hint_any_key: 'Trykk paa en tast for aa fortsette' + input_blocked: 'Inndata midlertidig blokkert (%{ms}ms gjenstaar)' + unlock_msg_1: 'Bra jobbet! Fortsett aa bygge skriveferdighetene dine.' + unlock_msg_2: 'Enda en tast i arsenalet ditt!' + unlock_msg_3: 'Tastaturet ditt vokser! Fortsett slik.' + unlock_msg_4: 'Et skritt naermere full tastaturmestring!' + mastery_msg_1: 'Denne tasten har naa full tillit!' + mastery_msg_2: 'Du mestrer denne tasten perfekt!' + mastery_msg_3: 'Muskelminne forankret!' + mastery_msg_4: 'Enda en tast erobret!' + +# Keyboard explorer +keyboard: + title: ' Tastatur ' + subtitle: 'Trykk paa en tast eller klikk paa en tast' + hint_navigate: '[←→↑↓/hjkl/Tab] Naviger' + hint_back: '[q/ESC] Tilbake' + key_label: 'Tast: ' + finger_label: 'Finger: ' + hand_left: 'Venstre' + hand_right: 'Hoeyre' + finger_index: 'Pekefinger' + finger_middle: 'Langfinger' + finger_ring: 'Ringfinger' + finger_pinky: 'Lillefinger' + finger_thumb: 'Tommel' + overall_accuracy: ' Total noeyaktighet: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Rangert noeyaktighet: %{correct}/%{total} (%{pct}%%)' + confidence: 'Tillit: ' + no_data: 'Ingen data ennaa' + no_data_short: 'Ingen data' + key_details: ' Tastdetaljer ' + key_details_char: ' Tastdetaljer: ''%{ch}'' ' + key_details_name: ' Tastdetaljer: %{name} ' + press_key_hint: 'Trykk paa en tast for detaljer' + shift_label: 'Shift: ' + shift_no: 'Nei' + overall_avg_time: 'Total snittid: ' + overall_best_time: 'Total beste tid: ' + overall_samples: 'Total stikkproever: ' + overall_accuracy_label: 'Total noeyaktighet: ' + branch_label: 'Gren: ' + level_label: 'Nivaa: ' + built_in_key: 'Innebygd tast' + unlocked_label: 'Laast opp: ' + yes: 'Ja' + no: 'Nei' + in_focus_label: 'I fokus?: ' + mastery_label: 'Mestring: ' + mastery_locked: 'Laast' + ranked_avg_time: 'Rangert snittid: ' + ranked_best_time: 'Rangert beste tid: ' + ranked_samples: 'Rangerte stikkproever: ' + ranked_accuracy_label: 'Rangert noeyaktighet: ' + +# Intro dialogs +intro: + passage_title: ' Tekst-nedlasting oppsett ' + code_title: ' Kode-nedlasting oppsett ' + enable_downloads: 'Aktiver nettverksnedlastinger' + download_dir: 'Nedlastingsmappe' + paragraphs_per_book: 'Avsnitt per bok (0 = hele)' + whole_book: 'hele boken' + snippets_per_repo: 'Utdrag per repo (0 = ubegrenset)' + unlimited: 'ubegrenset' + start_passage_drill: 'Start tekstoevelse' + start_code_drill: 'Start kodeoevelse' + confirm: 'Bekreft' + hint_navigate: '[Opp/Ned] Naviger' + hint_adjust: '[Venstre/Hoeyre] Juster' + hint_edit: '[Skriv/Backspace] Rediger' + hint_confirm: '[Enter] Bekreft' + hint_cancel: '[ESC] Avbryt' + preparing_download: 'Forbereder nedlasting...' + download_passage_title: ' Laster ned tekstkilde ' + download_code_title: ' Laster ned kodekilde ' + book_label: ' Bok: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bytes' + downloaded_bytes: 'Lastet ned: %{bytes} bytes' + downloading_book_progress: 'Laster ned gjeldende bok: [%{bar}] %{downloaded}/%{total} bytes' + downloading_book_bytes: 'Laster ned gjeldende bok: %{bytes} bytes' + downloading_code_progress: 'Laster ned: [%{bar}] %{downloaded}/%{total} bytes' + downloading_code_bytes: 'Laster ned: %{bytes} bytes' + current_book: 'Gjeldende: %{name} (bok %{done}/%{total})' + current_repo: 'Gjeldende: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr kan laste ned passasjer fra Project Gutenberg for skriveoeving.' + passage_instructions_2: 'Boeker lastes ned en gang og lagres lokalt.' + passage_instructions_3: 'Konfigurer nedlastingsinnstillinger nedenfor og start en tekstoevelse.' + code_instructions_1: 'keydr kan laste ned aapen kildekode fra GitHub for skriveoeving.' + code_instructions_2: 'Kode lastes ned en gang og lagres lokalt.' + code_instructions_3: 'Konfigurer nedlastingsinnstillinger nedenfor og start en kodeoevelse.' + +# Status messages (from app.rs) +status: + recovery_files: 'Gjenopprettingsfiler funnet fra avbrutt import. Data kan vaere inkonsistent — vurder aa importere paa nytt.' + dir_not_exist: 'Mappe finnes ikke: %{path}' + no_data_store: 'Ingen datalager tilgjengelig' + serialization_error: 'Serialiseringsfeil: %{error}' + exported_to: 'Eksportert til %{path}' + export_failed: 'Eksport mislyktes: %{error}' + could_not_read: 'Kunne ikke lese filen: %{error}' + invalid_export: 'Ugyldig eksportfil: %{error}' + unsupported_version: 'Eksportversjon stoettes ikke: %{got} (forventet %{expected})' + import_failed: 'Import mislyktes: %{error}' + imported_theme_fallback: 'Importert (tema ''%{theme}'' ikke funnet, standard brukes)' + imported_success: 'Importert' + adaptive_unavailable: 'Adaptiv rangert modus ikke tilgjengelig: %{error}' + switched_to: 'Byttet til %{name}' + layout_changed: 'Oppsett endret til %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Ukjent spraak: %{key}' + unknown_layout: 'Ukjent tastaturoppsett: %{key}' + unsupported_pair: 'Ikke-stoettet spraak-/oppsettpar: %{language} + %{layout}' + language_blocked: 'Spraak blokkert av stoettenivaa: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Tilbake' diff --git a/locales/nl.yml b/locales/nl.yml new file mode 100644 index 0000000..a9bd513 --- /dev/null +++ b/locales/nl.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminal Typoefening' + adaptive_drill: 'Adaptieve Oefening' + adaptive_drill_desc: 'Fonetische woorden met adaptieve letterontgrendeling' + code_drill: 'Code-oefening' + code_drill_desc: 'Oefen met code-syntax typen' + passage_drill: 'Tekstoefening' + passage_drill_desc: 'Typ passages uit boeken' + skill_tree: 'Vaardigheidsboom' + skill_tree_desc: 'Bekijk voortgangstakken en start oefeningen' + keyboard: 'Toetsenbord' + keyboard_desc: 'Verken toetsenbordindeling en toetsstatistieken' + statistics: 'Statistieken' + statistics_desc: 'Bekijk je typstatistieken' + settings: 'Instellingen' + settings_desc: 'Configureer keydr' + day_streak: ' | %{days} dagen reeks' + key_progress: ' Toetsvoortgang %{unlocked}/%{total} (%{mastered} beheerst) | Doel %{target} WPM%{streak}' + hint_start: '[1-3] Start' + hint_skill_tree: '[t] Vaardigheidsboom' + hint_keyboard: '[b] Toetsenbord' + hint_stats: '[s] Statistieken' + hint_settings: '[c] Instellingen' + hint_quit: '[q] Stoppen' + +# Drill screen +drill: + title: ' Oefening ' + mode_adaptive: 'Adaptief' + mode_code: 'Code (Ongerangschikt)' + mode_passage: 'Tekst (Ongerangschikt)' + focus_char: 'Aandacht: ''%{ch}''' + focus_bigram: 'Aandacht: "%{bigram}"' + focus_both: 'Aandacht: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Nwk' + header_err: 'Ftn' + code_source: ' Codebron ' + passage_source: ' Tekstbron ' + footer: '[ESC] Oefening stoppen [Backspace] Wissen' + keys_reenabled: 'Toetsen weer actief na %{ms}ms' + hint_end: '[ESC] Oefening stoppen' + hint_backspace: '[Backspace] Wissen' + +# Dashboard / drill result +dashboard: + title: ' Oefening voltooid ' + results: 'Resultaten' + unranked_note_prefix: ' (Ongerangschikt' + unranked_note_suffix: ' telt niet mee voor de vaardigheidsboom)' + speed: ' Snelheid: ' + accuracy_label: ' Nauwkeurigheid:' + time_label: ' Tijd: ' + errors_label: ' Fouten: ' + correct_detail: ' (%{correct}/%{total} juist)' + input_blocked: ' Invoer tijdelijk geblokkeerd ' + input_blocked_ms: '(%{ms}ms resterend)' + hint_continue: '[c/Enter/Space] Doorgaan' + hint_retry: '[r] Opnieuw' + hint_menu: '[q] Menu' + hint_stats: '[s] Statistieken' + hint_delete: '[x] Verwijderen' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistieken ' + wpm: 'WPM: ' + target: 'Doel: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Nauwkeurigheid: ' + progress: 'Voortgang: ' + correct: 'Correct: ' + errors: 'Fouten: ' + time: 'Tijd: ' + last_drill: ' Vorige oefening ' + vs_avg: ' vs gem: ' + +# Statistics dashboard +stats: + title: ' Statistieken ' + empty: 'Nog geen oefeningen voltooid. Begin met typen!' + tab_dashboard: '[1] Dashboard' + tab_history: '[2] Geschiedenis' + tab_activity: '[3] Activiteit' + tab_accuracy: '[4] Nauwkeurigheid' + tab_timing: '[5] Timing' + tab_ngrams: '[6] N-grammen' + hint_back: '[ESC] Terug' + hint_next_tab: '[Tab] Volgend tabblad' + hint_switch_tab: '[1-6] Tabblad wisselen' + hint_navigate: '[j/k] Navigeren' + hint_page: '[PgUp/PgDn] Pagina' + hint_delete: '[x] Verwijderen' + summary_title: ' Samenvatting ' + drills: ' Oefeningen: ' + avg_wpm: ' Gem. WPM: ' + best_wpm: ' Beste WPM: ' + accuracy_label: ' Nauwkeurigheid: ' + total_time: ' Totale tijd: ' + wpm_chart_title: ' WPM per oefening (Laatste 20, Doel: %{target}) ' + accuracy_chart_title: ' Nauwkeurigheid %% (Laatste 50 oefeningen) ' + chart_drill: 'Oefening #' + chart_accuracy_pct: 'Nauwkeurigheid %%' + sessions_title: ' Recente sessies ' + session_header: ' # WPM Ruw Nwk%% Tijd Datum/Tijd Modus Gerangsch. Deels' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Sessie #%{idx} verwijderen? (y/n)' + confirm_title: ' Bevestigen ' + yes: 'ja' + no: 'nee' + keyboard_accuracy_title: ' Toetsenbord nauwkeurigheid %% ' + keyboard_timing_title: ' Toetsenbord timing (ms) ' + slowest_keys_title: ' Langzaamste toetsen (ms) ' + fastest_keys_title: ' Snelste toetsen (ms) ' + worst_accuracy_title: ' Slechtste nauwkeurigheid (%%) ' + best_accuracy_title: ' Beste nauwkeurigheid (%%) ' + not_enough_data: ' Niet genoeg gegevens' + streaks_title: ' Reeksen ' + current_streak: ' Huidig: ' + best_streak: ' Beste: ' + active_days: ' Actieve dagen: ' + top_days_none: ' Topdagen: geen' + top_days: ' Topdagen: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Nwk: %{pct}%%' + keys_label: ' Toetsen: %{unlocked}/%{total} (%{mastered} beheerst)' + ngram_empty: 'Voltooi enkele adaptieve oefeningen om n-gram gegevens te zien' + ngram_header_speed_narrow: ' Bgrm Snelh Verw Anom%' + ngram_header_error_narrow: ' Bgrm Ftn Stp Freq Verw Anom%' + ngram_header_speed: ' Bigram Snelh Verwacht Steekpr. Anom%' + ngram_header_error: ' Bigram Fouten Steekpr. Freq Verwacht Anom%' + focus_title: ' Actieve focus ' + focus_char_label: ' Aandacht: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'fout' + anomaly_speed: 'snelheid' + focus_detail_both: ' Teken ''%{ch}'': zwakste toets | Bigram %{label}: %{type}-anomalie %{pct}%%' + focus_detail_char_only: ' Teken ''%{ch}'': zwakste toets, geen bevestigde bigram-anomalieen' + focus_detail_bigram_only: ' (%{type}-anomalie: %{pct}%%)' + focus_empty: ' Voltooi enkele adaptieve oefeningen om focusgegevens te zien' + error_anomalies_title: ' Fout-anomalieen (%{count}) ' + no_error_anomalies: ' Geen fout-anomalieen gedetecteerd' + speed_anomalies_title: ' Snelheid-anomalieen (%{count}) ' + no_speed_anomalies: ' Geen snelheid-anomalieen gedetecteerd' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Winst: %{value}' + gain_interval: ' (elke 50)' + focus_char_value: 'Teken ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Dagelijkse activiteit (Sessies per dag) ' + jan: 'Jan' + feb: 'Feb' + mar: 'Mrt' + apr: 'Apr' + may: 'Mei' + jun: 'Jun' + jul: 'Jul' + aug: 'Aug' + sep: 'Sep' + oct: 'Okt' + nov: 'Nov' + dec: 'Dec' + +# Chart +chart: + wpm_over_time: ' WPM in de tijd ' + drill_number: 'Oefening #' + +# Settings +settings: + title: ' Instellingen ' + subtitle: 'Pijltjestoetsen om te navigeren, Enter/Rechts om te wijzigen, ESC om op te slaan' + target_wpm: 'Doel-WPM' + theme: 'Thema' + word_count: 'Aantal woorden' + ui_language: 'UI-taal' + dictionary_language: 'Woordenboektaal' + keyboard_layout: 'Toetsenbordindeling' + code_language: 'Codetaal' + code_downloads: 'Code-downloads' + on: 'Aan' + off: 'Uit' + code_download_dir: 'Code-downloadmap' + snippets_per_repo: 'Fragmenten per repo' + unlimited: 'Onbeperkt' + download_code_now: 'Code nu downloaden' + run_downloader: 'Download starten' + passage_downloads: 'Tekst-downloads' + passage_download_dir: 'Tekst-downloadmap' + paragraphs_per_book: 'Alinea''s per boek' + whole_book: 'Heel boek' + download_passages_now: 'Teksten nu downloaden' + export_path: 'Exportpad' + export_data: 'Gegevens exporteren' + export_now: 'Nu exporteren' + import_path: 'Importpad' + import_data: 'Gegevens importeren' + import_now: 'Nu importeren' + hint_save_back: '[ESC] Opslaan & terug' + hint_change_value: '[Enter/pijltjes] Waarde wijzigen' + hint_edit_path: '[Enter op pad] Bewerken' + hint_move: '[←→] Verplaatsen' + hint_tab_complete: '[Tab] Aanvullen (aan einde)' + hint_confirm: '[Enter] Bevestigen' + hint_cancel: '[Esc] Annuleren' + success_title: ' Geslaagd ' + error_title: ' Fout ' + press_any_key: 'Druk op een toets' + file_exists_title: ' Bestand bestaat ' + file_exists: 'Er bestaat al een bestand op dit pad.' + overwrite_rename: '[d] Overschrijven [r] Hernoemen [Esc] Annuleren' + erase_warning: 'Dit zal je huidige gegevens wissen.' + export_first: 'Exporteer eerst als je ze wilt bewaren.' + proceed_yn: 'Doorgaan? (y/n)' + confirm_import_title: ' Import bevestigen ' + +# Selection screens +select: + dictionary_language_title: ' Woordenboektaal selecteren ' + keyboard_layout_title: ' Toetsenbordindeling selecteren ' + code_language_title: ' Codetaal selecteren ' + passage_source_title: ' Tekstbron selecteren ' + ui_language_title: ' UI-taal selecteren ' + more_above: '... %{count} meer boven ...' + more_below: '... %{count} meer onder ...' + current: ' (huidig)' + disabled: ' (uitgeschakeld)' + enabled_default: ' (ingeschakeld, standaard: %{layout})' + enabled: ' (ingeschakeld)' + disabled_blocked: ' (uitgeschakeld: geblokkeerd)' + built_in: ' (ingebouwd)' + cached: ' (opgeslagen)' + disabled_download: ' (uitgeschakeld: download vereist)' + download_required: ' (download vereist)' + hint_navigate: '[Omhoog/Omlaag/PgUp/PgDn] Navigeren' + hint_confirm: '[Enter] Bevestigen' + hint_back: '[ESC] Terug' + language_resets_layout: 'Taalselectie herstelt de toetsenbordindeling naar de standaard van die taal.' + layout_no_language_change: 'Indelingswijzigingen veranderen de woordenboektaal niet.' + disabled_network_notice: 'Sommige talen zijn uitgeschakeld: schakel netwerkdownloads in via intro/instellingen.' + disabled_sources_notice: 'Sommige bronnen zijn uitgeschakeld: schakel netwerkdownloads in via intro/instellingen.' + passage_all: 'Alles (Ingebouwd + alle boeken)' + passage_builtin: 'Alleen ingebouwde passages' + passage_book_prefix: 'Boek: %{title}' + +# Progress +progress: + overall_key_progress: 'Totale toetsvoortgang' + unlocked_mastered: '%{unlocked}/%{total} ontgrendeld (%{mastered} beheerst)' + +# Skill tree +skill_tree: + title: ' Vaardigheidsboom ' + locked: 'Vergrendeld' + unlocked: 'ontgrendeld' + mastered: 'beheerst' + in_progress: 'bezig' + complete: 'voltooid' + locked_status: 'vergrendeld' + locked_notice: 'Voltooi %{count} basisletters om takken te ontgrendelen' + branches_separator: 'Takken (beschikbaar na %{count} basisletters)' + unlocked_letters: '%{unlocked}/%{total} letters ontgrendeld' + level: 'Niveau %{current}/%{total}' + level_zero: 'Niveau 0/%{total}' + in_focus: ' in aandacht' + hint_navigate: '[↑↓/jk] Navigeren' + hint_scroll: '[PgUp/PgDn of Ctrl+U/Ctrl+D] Scrollen' + hint_back: '[q] Terug' + hint_unlock: '[Enter] Ontgrendelen' + hint_start_drill: '[Enter] Oefening starten' + unlock_msg_1: 'Na ontgrendeling worden ontgrendelde toetsen van deze tak gemengd in de adaptieve oefening.' + unlock_msg_2: 'Wil je alleen deze tak oefenen, start dan een oefening direct vanuit deze tak in de Vaardigheidsboom.' + confirm_unlock: '%{branch} ontgrendelen?' + confirm_yn: '[y] Ontgrendelen [n/ESC] Annuleren' + lvl_prefix: 'Niv' + branch_primary_letters: 'Basisletters' + branch_capital_letters: 'Hoofdletters' + branch_numbers: 'Cijfers 0-9' + branch_prose_punctuation: 'Leestekens' + branch_whitespace: 'Witruimte' + branch_code_symbols: 'Code-symbolen' + level_frequency_order: 'Frequentievolgorde' + level_common_sentence_capitals: 'Veelvoorkomende zinhoofdletters' + level_name_capitals: 'Naamhoofdletters' + level_remaining_capitals: 'Overige hoofdletters' + level_common_digits: 'Veelvoorkomende cijfers' + level_all_digits: 'Alle cijfers' + level_essential: 'Essentieel' + level_common: 'Veelvoorkomend' + level_expressive: 'Expressief' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Inspringen' + level_arithmetic_assignment: 'Rekenen & Toewijzing' + level_grouping: 'Groepering' + level_logic_reference: 'Logica & Referentie' + level_special: 'Speciaal' + +# Milestones +milestones: + unlock_title: ' Toets ontgrendeld! ' + mastery_title: ' Toets beheerst! ' + branches_title: ' Nieuwe vaardigheidstakken beschikbaar! ' + branch_complete_title: ' Tak voltooid! ' + all_unlocked_title: ' Alle toetsen ontgrendeld! ' + all_mastered_title: ' Volledig toetsenbordbheersing! ' + unlocked: 'ontgrendeld' + mastered: 'beheerst' + use_finger: 'Gebruik je %{finger}' + hold_right_shift: 'Houd rechter Shift ingedrukt (rechter pink)' + hold_left_shift: 'Houd linker Shift ingedrukt (linker pink)' + congratulations_all_letters: 'Gefeliciteerd! Je hebt alle %{count} basisletters beheerst' + new_branches_available: 'Nieuwe vaardigheidstakken zijn nu beschikbaar:' + visit_skill_tree: 'Bezoek de Vaardigheidsboom om een nieuwe tak te ontgrendelen' + and_start_training: 'en begin met trainen!' + open_skill_tree: 'Druk op [t] om de Vaardigheidsboom te openen' + branch_complete_msg: 'Je hebt de tak %{branch} voltooid!' + all_levels_mastered: 'Alle %{count} niveaus beheerst.' + all_keys_confident: 'Elke toets in deze tak heeft vol vertrouwen.' + all_unlocked_msg: 'Je hebt elke toets op het toetsenbord ontgrendeld!' + all_unlocked_desc: 'Elk teken, symbool en elke modifier is nu beschikbaar in je oefeningen.' + keep_practicing_mastery: 'Blijf oefenen om meesterschap op te bouwen — zodra elke toets vol' + confidence_complete: 'vertrouwen bereikt, heb je volledige toetsenbordbeheersing!' + all_mastered_msg: 'Gefeliciteerd — je hebt volledige toetsenbordbeheersing bereikt!' + all_mastered_desc: 'Elke toets op het toetsenbord heeft maximaal vertrouwen.' + mastery_takes_practice: 'Meesterschap is geen bestemming — het vereist voortdurend oefenen.' + keep_drilling: 'Blijf oefenen om je niveau te behouden.' + hint_skill_tree_continue: '[t] Vaardigheidsboom [Andere toets] Doorgaan' + hint_any_key: 'Druk op een toets om door te gaan' + input_blocked: 'Invoer tijdelijk geblokkeerd (%{ms}ms resterend)' + unlock_msg_1: 'Goed gedaan! Blijf je typvaardigheden opbouwen.' + unlock_msg_2: 'Weer een toets erbij in je arsenaal!' + unlock_msg_3: 'Je toetsenbord groeit! Ga zo door.' + unlock_msg_4: 'Een stap dichter bij volledige toetsenbordbeheersing!' + mastery_msg_1: 'Deze toets heeft nu vol vertrouwen!' + mastery_msg_2: 'Je beheerst deze toets perfect!' + mastery_msg_3: 'Spiergeheugen verankerd!' + mastery_msg_4: 'Weer een toets veroverd!' + +# Keyboard explorer +keyboard: + title: ' Toetsenbord ' + subtitle: 'Druk op een toets of klik op een toets' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigeren' + hint_back: '[q/ESC] Terug' + key_label: 'Toets: ' + finger_label: 'Vinger: ' + hand_left: 'Links' + hand_right: 'Rechts' + finger_index: 'Wijsvinger' + finger_middle: 'Middelvinger' + finger_ring: 'Ringvinger' + finger_pinky: 'Pink' + finger_thumb: 'Duim' + overall_accuracy: ' Totale nauwkeurigheid: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Gerangschikte nauwkeurigheid: %{correct}/%{total} (%{pct}%%)' + confidence: 'Vertrouwen: ' + no_data: 'Nog geen gegevens' + no_data_short: 'Geen gegevens' + key_details: ' Toetsdetails ' + key_details_char: ' Toetsdetails: ''%{ch}'' ' + key_details_name: ' Toetsdetails: %{name} ' + press_key_hint: 'Druk op een toets voor details' + shift_label: 'Shift: ' + shift_no: 'Nee' + overall_avg_time: 'Totaal gem. tijd: ' + overall_best_time: 'Totaal beste tijd: ' + overall_samples: 'Totaal steekproeven: ' + overall_accuracy_label: 'Totaal nauwkeurigheid: ' + branch_label: 'Tak: ' + level_label: 'Niveau: ' + built_in_key: 'Ingebouwde toets' + unlocked_label: 'Ontgrendeld: ' + yes: 'Ja' + no: 'Nee' + in_focus_label: 'In focus?: ' + mastery_label: 'Beheersing: ' + mastery_locked: 'Vergrendeld' + ranked_avg_time: 'Gerangschikte gem. tijd: ' + ranked_best_time: 'Gerangschikte beste tijd: ' + ranked_samples: 'Gerangschikte steekproeven: ' + ranked_accuracy_label: 'Gerangschikte nauwkeurigheid: ' + +# Intro dialogs +intro: + passage_title: ' Tekstdownload instellen ' + code_title: ' Code-download instellen ' + enable_downloads: 'Netwerkdownloads inschakelen' + download_dir: 'Downloadmap' + paragraphs_per_book: 'Alinea''s per boek (0 = geheel)' + whole_book: 'heel boek' + snippets_per_repo: 'Fragmenten per repo (0 = onbeperkt)' + unlimited: 'onbeperkt' + start_passage_drill: 'Tekstoefening starten' + start_code_drill: 'Code-oefening starten' + confirm: 'Bevestigen' + hint_navigate: '[Omhoog/Omlaag] Navigeren' + hint_adjust: '[Links/Rechts] Aanpassen' + hint_edit: '[Typen/Backspace] Bewerken' + hint_confirm: '[Enter] Bevestigen' + hint_cancel: '[ESC] Annuleren' + preparing_download: 'Download wordt voorbereid...' + download_passage_title: ' Tekstbron downloaden ' + download_code_title: ' Codebron downloaden ' + book_label: ' Boek: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bytes' + downloaded_bytes: 'Gedownload: %{bytes} bytes' + downloading_book_progress: 'Huidig boek downloaden: [%{bar}] %{downloaded}/%{total} bytes' + downloading_book_bytes: 'Huidig boek downloaden: %{bytes} bytes' + downloading_code_progress: 'Downloaden: [%{bar}] %{downloaded}/%{total} bytes' + downloading_code_bytes: 'Downloaden: %{bytes} bytes' + current_book: 'Huidig: %{name} (boek %{done}/%{total})' + current_repo: 'Huidig: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr kan passages van Project Gutenberg downloaden om te oefenen met typen.' + passage_instructions_2: 'Boeken worden eenmalig gedownload en lokaal opgeslagen.' + passage_instructions_3: 'Configureer de downloadinstellingen hieronder en start een tekstoefening.' + code_instructions_1: 'keydr kan open-source code van GitHub downloaden om te oefenen met typen.' + code_instructions_2: 'Code wordt eenmalig gedownload en lokaal opgeslagen.' + code_instructions_3: 'Configureer de downloadinstellingen hieronder en start een code-oefening.' + +# Status messages (from app.rs) +status: + recovery_files: 'Herstelbestanden gevonden van onderbroken import. Gegevens kunnen inconsistent zijn — overweeg opnieuw importeren.' + dir_not_exist: 'Map bestaat niet: %{path}' + no_data_store: 'Geen gegevensopslag beschikbaar' + serialization_error: 'Serialisatiefout: %{error}' + exported_to: 'Geexporteerd naar %{path}' + export_failed: 'Export mislukt: %{error}' + could_not_read: 'Kan bestand niet lezen: %{error}' + invalid_export: 'Ongeldig exportbestand: %{error}' + unsupported_version: 'Niet-ondersteunde exportversie: %{got} (verwacht %{expected})' + import_failed: 'Import mislukt: %{error}' + imported_theme_fallback: 'Succesvol geimporteerd (thema ''%{theme}'' niet gevonden, standaard wordt gebruikt)' + imported_success: 'Succesvol geimporteerd' + adaptive_unavailable: 'Adaptieve gerangschikte modus niet beschikbaar: %{error}' + switched_to: 'Gewisseld naar %{name}' + layout_changed: 'Indeling gewijzigd naar %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Onbekende taal: %{key}' + unknown_layout: 'Onbekende toetsenbordindeling: %{key}' + unsupported_pair: 'Niet-ondersteund taal-/indelingspaar: %{language} + %{layout}' + language_blocked: 'Taal geblokkeerd door ondersteuningsniveau: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Terug' diff --git a/locales/pl.yml b/locales/pl.yml new file mode 100644 index 0000000..5ae787d --- /dev/null +++ b/locales/pl.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminalowy trener pisania' + adaptive_drill: 'Trening adaptacyjny' + adaptive_drill_desc: 'Fonetyczne slowa z adaptacyjnym odblokowywaniem liter' + code_drill: 'Trening kodu' + code_drill_desc: 'Cwicz pisanie skladni kodu' + passage_drill: 'Trening tekstu' + passage_drill_desc: 'Przepisuj fragmenty ksiazek' + skill_tree: 'Drzewo umiejetnosci' + skill_tree_desc: 'Przegladaj sciezki postepu i uruchamiaj treningi' + keyboard: 'Klawiatura' + keyboard_desc: 'Poznaj uklad klawiatury i statystyki klawiszy' + statistics: 'Statystyki' + statistics_desc: 'Przegladaj statystyki pisania' + settings: 'Ustawienia' + settings_desc: 'Konfiguruj keydr' + day_streak: ' | %{days} dni z rzedu' + key_progress: ' Postep klawiszy %{unlocked}/%{total} (%{mastered} opanowanych) | Cel %{target} WPM%{streak}' + hint_start: '[1-3] Rozpocznij' + hint_skill_tree: '[t] Drzewo' + hint_keyboard: '[b] Klawiatura' + hint_stats: '[s] Statystyki' + hint_settings: '[c] Ustawienia' + hint_quit: '[q] Wyjdz' + +# Drill screen +drill: + title: ' Trening ' + mode_adaptive: 'Adaptacyjny' + mode_code: 'Kod (bez rankingu)' + mode_passage: 'Tekst (bez rankingu)' + focus_char: 'Fokus: ''%{ch}''' + focus_bigram: 'Fokus: "%{bigram}"' + focus_both: 'Fokus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Dok' + header_err: 'Bld' + code_source: ' Zrodlo kodu ' + passage_source: ' Zrodlo tekstu ' + footer: '[ESC] Zakoncz trening [Backspace] Usun' + keys_reenabled: 'Klawisze przywrocone w %{ms}ms' + hint_end: '[ESC] Zakoncz trening' + hint_backspace: '[Backspace] Usun' + +# Dashboard / drill result +dashboard: + title: ' Trening zakonczony ' + results: 'Wyniki' + unranked_note_prefix: ' (Bez rankingu' + unranked_note_suffix: ' nie liczy sie do drzewa umiejetnosci)' + speed: ' Predkosc: ' + accuracy_label: ' Dokladnosc:' + time_label: ' Czas: ' + errors_label: ' Bledy: ' + correct_detail: ' (%{correct}/%{total} poprawnych)' + input_blocked: ' Wejscie tymczasowo zablokowane ' + input_blocked_ms: '(%{ms}ms pozostalo)' + hint_continue: '[c/Enter/Space] Kontynuuj' + hint_retry: '[r] Powtorz' + hint_menu: '[q] Menu' + hint_stats: '[s] Statystyki' + hint_delete: '[x] Usun' + +# Stats sidebar (during drill) +sidebar: + title: ' Statystyki ' + wpm: 'WPM: ' + target: 'Cel: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Dokladnosc: ' + progress: 'Postep: ' + correct: 'Poprawne: ' + errors: 'Bledy: ' + time: 'Czas: ' + last_drill: ' Ostatni trening ' + vs_avg: ' vs sr: ' + +# Statistics dashboard +stats: + title: ' Statystyki ' + empty: 'Brak ukonczonych treningow. Zacznij pisac!' + tab_dashboard: '[1] Przeglad' + tab_history: '[2] Historia' + tab_activity: '[3] Aktywnosc' + tab_accuracy: '[4] Dokladnosc' + tab_timing: '[5] Czas reakcji' + tab_ngrams: '[6] N-gramy' + hint_back: '[ESC] Wstecz' + hint_next_tab: '[Tab] Nastepna karta' + hint_switch_tab: '[1-6] Zmien karte' + hint_navigate: '[j/k] Nawiguj' + hint_page: '[PgUp/PgDn] Strona' + hint_delete: '[x] Usun' + summary_title: ' Podsumowanie ' + drills: ' Treningi: ' + avg_wpm: ' Sr WPM: ' + best_wpm: ' Najlepszy WPM: ' + accuracy_label: ' Dokladnosc: ' + total_time: ' Laczny czas: ' + wpm_chart_title: ' WPM na trening (ostatnie 20, cel: %{target}) ' + accuracy_chart_title: ' Dokladnosc %% (ostatnie 50 treningow) ' + chart_drill: 'Tren #' + chart_accuracy_pct: 'Dokladnosc %%' + sessions_title: ' Ostatnie sesje ' + session_header: ' # WPM Raw Dok%% Czas Data/Czas Tryb Ranking Czesciowy' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Usunac sesje #%{idx}? (t/n)' + confirm_title: ' Potwierdz ' + yes: 'tak' + no: 'nie' + keyboard_accuracy_title: ' Dokladnosc klawiatury %% ' + keyboard_timing_title: ' Czas reakcji klawiatury (ms) ' + slowest_keys_title: ' Najwolniejsze klawisze (ms) ' + fastest_keys_title: ' Najszybsze klawisze (ms) ' + worst_accuracy_title: ' Najgorsza dokladnosc (%%) ' + best_accuracy_title: ' Najlepsza dokladnosc (%%) ' + not_enough_data: ' Za malo danych' + streaks_title: ' Serie ' + current_streak: ' Biezaca: ' + best_streak: ' Najlepsza: ' + active_days: ' Aktywne dni: ' + top_days_none: ' Najlepsze dni: brak' + top_days: ' Najlepsze dni: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Dok: %{pct}%%' + keys_label: ' Klawisze: %{unlocked}/%{total} (%{mastered} opanowanych)' + ngram_empty: 'Wykonaj treningi adaptacyjne, aby zobaczyc dane n-gramow' + ngram_header_speed_narrow: ' Bgrm Predk Oczek Anom%' + ngram_header_error_narrow: ' Bgrm Bld Prb Czest Oczek Anom%' + ngram_header_speed: ' Bigram Predkosc Oczekiw Probki Anom%' + ngram_header_error: ' Bigram Bledy Probki Czest Oczekiw Anom%' + focus_title: ' Aktywny fokus ' + focus_char_label: ' Fokus: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'blad' + anomaly_speed: 'predkosc' + focus_detail_both: ' Znak ''%{ch}'': najslabszy klawisz | Bigram %{label}: anomalia %{type} %{pct}%%' + focus_detail_char_only: ' Znak ''%{ch}'': najslabszy klawisz, brak potwierdzonych anomalii bigramow' + focus_detail_bigram_only: ' (anomalia %{type}: %{pct}%%)' + focus_empty: ' Wykonaj treningi adaptacyjne, aby zobaczyc dane fokusu' + error_anomalies_title: ' Anomalie bledow (%{count}) ' + no_error_anomalies: ' Nie wykryto anomalii bledow' + speed_anomalies_title: ' Anomalie predkosci (%{count}) ' + no_speed_anomalies: ' Nie wykryto anomalii predkosci' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Wah: >%{ms}ms' + gain_label: ' | Zysk: %{value}' + gain_interval: ' (co 50)' + focus_char_value: 'Znak ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Dzienna aktywnosc (sesje na dzien) ' + jan: 'Sty' + feb: 'Lut' + mar: 'Mar' + apr: 'Kwi' + may: 'Maj' + jun: 'Cze' + jul: 'Lip' + aug: 'Sie' + sep: 'Wrz' + oct: 'Paz' + nov: 'Lis' + dec: 'Gru' + +# Chart +chart: + wpm_over_time: ' WPM w czasie ' + drill_number: 'Tren #' + +# Settings +settings: + title: ' Ustawienia ' + subtitle: 'Uzyj strzalek do nawigacji, Enter/prawo zmienia, ESC zapisuje i wychodzi' + target_wpm: 'Docelowy WPM' + theme: 'Motyw' + word_count: 'Liczba slow' + ui_language: 'Jezyk interfejsu' + dictionary_language: 'Jezyk slownika' + keyboard_layout: 'Uklad klawiatury' + code_language: 'Jezyk programowania' + code_downloads: 'Pobieranie kodu' + on: 'Wlacz' + off: 'Wylacz' + code_download_dir: 'Katalog pobierania kodu' + snippets_per_repo: 'Fragmenty na repo' + unlimited: 'Bez limitu' + download_code_now: 'Pobierz kod teraz' + run_downloader: 'Uruchom pobieranie' + passage_downloads: 'Pobieranie tekstow' + passage_download_dir: 'Katalog pobierania tekstow' + paragraphs_per_book: 'Akapity na ksiazke' + whole_book: 'Cala ksiazka' + download_passages_now: 'Pobierz teksty teraz' + export_path: 'Sciezka eksportu' + export_data: 'Eksportuj dane' + export_now: 'Eksportuj teraz' + import_path: 'Sciezka importu' + import_data: 'Importuj dane' + import_now: 'Importuj teraz' + hint_save_back: '[ESC] Zapisz i wstecz' + hint_change_value: '[Enter/strzalki] Zmien wartosc' + hint_edit_path: '[Enter na sciezce] Edytuj' + hint_move: '[←→] Przesun' + hint_tab_complete: '[Tab] Uzupelnij (na koncu)' + hint_confirm: '[Enter] Potwierdz' + hint_cancel: '[Esc] Anuluj' + success_title: ' Sukces ' + error_title: ' Blad ' + press_any_key: 'Nacisnij dowolny klawisz' + file_exists_title: ' Plik istnieje ' + file_exists: 'Plik juz istnieje w tej sciezce.' + overwrite_rename: '[d] Nadpisz [r] Zmien nazwe [Esc] Anuluj' + erase_warning: 'To skasuje Twoje obecne dane.' + export_first: 'Najpierw wyeksportuj, jesli chcesz je zachowac.' + proceed_yn: 'Kontynuowac? (t/n)' + confirm_import_title: ' Potwierdz import ' + +# Selection screens +select: + dictionary_language_title: ' Wybierz jezyk slownika ' + keyboard_layout_title: ' Wybierz uklad klawiatury ' + code_language_title: ' Wybierz jezyk programowania ' + passage_source_title: ' Wybierz zrodlo tekstu ' + ui_language_title: ' Wybierz jezyk interfejsu ' + more_above: '... %{count} wiecej powyzej ...' + more_below: '... %{count} wiecej ponizej ...' + current: ' (biezacy)' + disabled: ' (wylaczony)' + enabled_default: ' (wlaczony, domyslny: %{layout})' + enabled: ' (wlaczony)' + disabled_blocked: ' (wylaczony: zablokowany)' + built_in: ' (wbudowany)' + cached: ' (w pamieci podrecznej)' + disabled_download: ' (wylaczony: wymagane pobranie)' + download_required: ' (wymagane pobranie)' + hint_navigate: '[Gora/Dol/PgUp/PgDn] Nawiguj' + hint_confirm: '[Enter] Potwierdz' + hint_back: '[ESC] Wstecz' + language_resets_layout: 'Wybor jezyka resetuje uklad klawiatury do domyslnego dla tego jezyka.' + layout_no_language_change: 'Zmiana ukladu nie zmienia jezyka slownika.' + disabled_network_notice: 'Niektorej jezyki sa wylaczone: wlacz pobieranie sieciowe w ustawieniach.' + disabled_sources_notice: 'Niektore zrodla sa wylaczone: wlacz pobieranie sieciowe w ustawieniach.' + passage_all: 'Wszystkie (wbudowane + wszystkie ksiazki)' + passage_builtin: 'Tylko wbudowane teksty' + passage_book_prefix: 'Ksiazka: %{title}' + +# Progress +progress: + overall_key_progress: 'Ogolny postep klawiszy' + unlocked_mastered: '%{unlocked}/%{total} odblokowanych (%{mastered} opanowanych)' + +# Skill tree +skill_tree: + title: ' Drzewo umiejetnosci ' + locked: 'Zablokowany' + unlocked: 'odblokowany' + mastered: 'opanowany' + in_progress: 'w toku' + complete: 'ukonczony' + locked_status: 'zablokowany' + locked_notice: 'Ukoncz %{count} podstawowych liter, aby odblokowac galezi' + branches_separator: 'Galezi (dostepne po %{count} podstawowych literach)' + unlocked_letters: 'Odblokowano %{unlocked}/%{total} liter' + level: 'Poziom %{current}/%{total}' + level_zero: 'Poziom 0/%{total}' + in_focus: ' w fokusie' + hint_navigate: '[↑↓/jk] Nawiguj' + hint_scroll: '[PgUp/PgDn lub Ctrl+U/Ctrl+D] Przewin' + hint_back: '[q] Wstecz' + hint_unlock: '[Enter] Odblokuj' + hint_start_drill: '[Enter] Rozpocznij trening' + unlock_msg_1: 'Po odblokowaniu domyslny trening adaptacyjny bedzie wlaczal klawisze z tej galezi.' + unlock_msg_2: 'Jesli chcesz skupic sie tylko na tej galezi, uruchom trening bezposrednio z drzewa.' + confirm_unlock: 'Odblokowac %{branch}?' + confirm_yn: '[y] Odblokuj [n/ESC] Anuluj' + lvl_prefix: 'Poz' + branch_primary_letters: 'Podstawowe litery' + branch_capital_letters: 'Wielkie litery' + branch_numbers: 'Cyfry 0-9' + branch_prose_punctuation: 'Interpunkcja' + branch_whitespace: 'Biale znaki' + branch_code_symbols: 'Symbole kodu' + level_frequency_order: 'Kolejnosc czestotliwosci' + level_common_sentence_capitals: 'Popularne wielkie litery zdan' + level_name_capitals: 'Wielkie litery imion' + level_remaining_capitals: 'Pozostale wielkie litery' + level_common_digits: 'Popularne cyfry' + level_all_digits: 'Wszystkie cyfry' + level_essential: 'Niezbedne' + level_common: 'Popularne' + level_expressive: 'Ekspresyjne' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Wciecie' + level_arithmetic_assignment: 'Arytmetyka i przypisanie' + level_grouping: 'Grupowanie' + level_logic_reference: 'Logika i referencje' + level_special: 'Specjalne' + +# Milestones +milestones: + unlock_title: ' Klawisz odblokowany! ' + mastery_title: ' Klawisz opanowany! ' + branches_title: ' Nowe galezi dostepne! ' + branch_complete_title: ' Galaz ukonczona! ' + all_unlocked_title: ' Wszystkie klawisze odblokowane! ' + all_mastered_title: ' Pelne opanowanie klawiatury! ' + unlocked: 'odblokowany' + mastered: 'opanowany' + use_finger: 'Uzyj %{finger}' + hold_right_shift: 'Przytrzymaj prawy Shift (prawy maly palec)' + hold_left_shift: 'Przytrzymaj lewy Shift (lewy maly palec)' + congratulations_all_letters: 'Gratulacje! Opanowales wszystkie %{count} podstawowych liter' + new_branches_available: 'Nowe galezi umiejetnosci sa teraz dostepne:' + visit_skill_tree: 'Odwiedz drzewo umiejetnosci, aby odblokowac nowa galaz' + and_start_training: 'i zacznij trening!' + open_skill_tree: 'Nacisnij [t], aby otworzyc drzewo umiejetnosci' + branch_complete_msg: 'Ukonczyles galaz %{branch}!' + all_levels_mastered: 'Wszystkie %{count} poziomow opanowanych.' + all_keys_confident: 'Kazdy klawisz w tej galezi jest na pelnej pewnosci.' + all_unlocked_msg: 'Odblokowano kazdy klawisz na klawiaturze!' + all_unlocked_desc: 'Kazdy znak, symbol i modyfikator jest teraz dostepny w Twoich treningach.' + keep_practicing_mastery: 'Kontynuuj cwiczenie, aby budowac bieglosc — gdy kazdy klawisz osiagnie pelna' + confidence_complete: 'pewnosc, osiagniesz pelne opanowanie klawiatury!' + all_mastered_msg: 'Gratulacje — osiagnales pelne opanowanie klawiatury!' + all_mastered_desc: 'Kazdy klawisz na klawiaturze jest na maksymalnej pewnosci.' + mastery_takes_practice: 'Bieglosc to nie cel — wymaga ciaglej praktyki.' + keep_drilling: 'Kontynuuj treningi, aby utrzymac swoj poziom.' + hint_skill_tree_continue: '[t] Otworz drzewo [Inny klawisz] Kontynuuj' + hint_any_key: 'Nacisnij dowolny klawisz, aby kontynuowac' + input_blocked: 'Wejscie tymczasowo zablokowane (%{ms}ms pozostalo)' + unlock_msg_1: 'Swietna robota! Rozwijaj swoje umiejetnosci pisania.' + unlock_msg_2: 'Kolejny klawisz w Twoim arsenale!' + unlock_msg_3: 'Twoja klawiatura rosnie! Tak trzymaj.' + unlock_msg_4: 'Krok blizej do pelnego opanowania klawiatury!' + mastery_msg_1: 'Ten klawisz jest teraz na pelnej pewnosci!' + mastery_msg_2: 'Ten klawisz masz w malym palcu!' + mastery_msg_3: 'Pamiec miesniowa zablokowana!' + mastery_msg_4: 'Kolejny klawisz podbity!' + +# Keyboard explorer +keyboard: + title: ' Klawiatura ' + subtitle: 'Nacisnij dowolny klawisz lub kliknij klawisz' + hint_navigate: '[←→↑↓/hjkl/Tab] Nawiguj' + hint_back: '[q/ESC] Wstecz' + key_label: 'Klawisz: ' + finger_label: 'Palec: ' + hand_left: 'Lewy' + hand_right: 'Prawy' + finger_index: 'Wskazujacy' + finger_middle: 'Srodkowy' + finger_ring: 'Serdeczny' + finger_pinky: 'Maly' + finger_thumb: 'Kciuk' + overall_accuracy: ' Ogolna dokladnosc: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Rankingowa dokladnosc: %{correct}/%{total} (%{pct}%%)' + confidence: 'Pewnosc: ' + no_data: 'Brak danych' + no_data_short: 'Brak danych' + key_details: ' Szczegoly klawisza ' + key_details_char: ' Szczegoly klawisza: ''%{ch}'' ' + key_details_name: ' Szczegoly klawisza: %{name} ' + press_key_hint: 'Nacisnij klawisz, aby zobaczyc szczegoly' + shift_label: 'Shift: ' + shift_no: 'Nie' + overall_avg_time: 'Sredni czas: ' + overall_best_time: 'Najlepszy czas: ' + overall_samples: 'Probki: ' + overall_accuracy_label: 'Ogolna dokladnosc: ' + branch_label: 'Galaz: ' + level_label: 'Poziom: ' + built_in_key: 'Wbudowany klawisz' + unlocked_label: 'Odblokowany: ' + yes: 'Tak' + no: 'Nie' + in_focus_label: 'W fokusie?: ' + mastery_label: 'Bieglosc: ' + mastery_locked: 'Zablokowany' + ranked_avg_time: 'Rankingowy sr czas: ' + ranked_best_time: 'Rankingowy najl czas: ' + ranked_samples: 'Rankingowe probki: ' + ranked_accuracy_label: 'Rankingowa dokladnosc: ' + +# Intro dialogs +intro: + passage_title: ' Ustawienia pobierania tekstow ' + code_title: ' Ustawienia pobierania kodu ' + enable_downloads: 'Wlacz pobieranie sieciowe' + download_dir: 'Katalog pobierania' + paragraphs_per_book: 'Akapity na ksiazke (0 = cala)' + whole_book: 'cala ksiazka' + snippets_per_repo: 'Fragmenty na repo (0 = bez limitu)' + unlimited: 'bez limitu' + start_passage_drill: 'Rozpocznij trening tekstu' + start_code_drill: 'Rozpocznij trening kodu' + confirm: 'Potwierdz' + hint_navigate: '[Gora/Dol] Nawiguj' + hint_adjust: '[Lewo/Prawo] Dostosuj' + hint_edit: '[Pisz/Backspace] Edytuj' + hint_confirm: '[Enter] Potwierdz' + hint_cancel: '[ESC] Anuluj' + preparing_download: 'Przygotowywanie pobierania...' + download_passage_title: ' Pobieranie zrodla tekstu ' + download_code_title: ' Pobieranie zrodla kodu ' + book_label: ' Ksiazka: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bajtow' + downloaded_bytes: 'Pobrano: %{bytes} bajtow' + downloading_book_progress: 'Pobieranie ksiazki: [%{bar}] %{downloaded}/%{total} bajtow' + downloading_book_bytes: 'Pobieranie ksiazki: %{bytes} bajtow' + downloading_code_progress: 'Pobieranie: [%{bar}] %{downloaded}/%{total} bajtow' + downloading_code_bytes: 'Pobieranie: %{bytes} bajtow' + current_book: 'Biezaca: %{name} (ksiazka %{done}/%{total})' + current_repo: 'Biezace: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr moze pobierac teksty z Project Gutenberg do cwiczenia pisania.' + passage_instructions_2: 'Ksiazki sa pobierane raz i przechowywane lokalnie.' + passage_instructions_3: 'Skonfiguruj ustawienia pobierania ponizej, a nastepnie rozpocznij trening.' + code_instructions_1: 'keydr moze pobierac otwarty kod zrodlowy z GitHub do cwiczenia pisania.' + code_instructions_2: 'Kod jest pobierany raz i przechowywany lokalnie.' + code_instructions_3: 'Skonfiguruj ustawienia pobierania ponizej, a nastepnie rozpocznij trening.' + +# Status messages (from app.rs) +status: + recovery_files: 'Znaleziono pliki odzyskiwania z przerwanego importu. Dane moga byc niespojne — rozważ ponowny import.' + dir_not_exist: 'Katalog nie istnieje: %{path}' + no_data_store: 'Brak dostepnego magazynu danych' + serialization_error: 'Blad serializacji: %{error}' + exported_to: 'Wyeksportowano do %{path}' + export_failed: 'Eksport nie powiodl sie: %{error}' + could_not_read: 'Nie mozna odczytac pliku: %{error}' + invalid_export: 'Nieprawidlowy plik eksportu: %{error}' + unsupported_version: 'Nieobslugiwana wersja eksportu: %{got} (oczekiwana %{expected})' + import_failed: 'Import nie powiodl sie: %{error}' + imported_theme_fallback: 'Zaimportowano pomyslnie (motyw ''%{theme}'' nie znaleziony, uzywam domyslnego)' + imported_success: 'Zaimportowano pomyslnie' + adaptive_unavailable: 'Tryb adaptacyjny rankingowy niedostepny: %{error}' + switched_to: 'Przelaczono na %{name}' + layout_changed: 'Uklad zmieniony na %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Nieznany jezyk: %{key}' + unknown_layout: 'Nieznany uklad klawiatury: %{key}' + unsupported_pair: 'Nieobslugiwana para jezyk/uklad: %{language} + %{layout}' + language_blocked: 'Jezyk zablokowany przez poziom wsparcia: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Wstecz' diff --git a/locales/pt.yml b/locales/pt.yml new file mode 100644 index 0000000..23a5342 --- /dev/null +++ b/locales/pt.yml @@ -0,0 +1,457 @@ +# Menu principal +menu: + subtitle: 'Tutor de Digitação no Terminal' + adaptive_drill: 'Exercício Adaptativo' + adaptive_drill_desc: 'Palavras fonéticas com desbloqueio adaptativo de teclas' + code_drill: 'Exercício de Código' + code_drill_desc: 'Pratique digitando sintaxe de código' + passage_drill: 'Exercício de Passagem' + passage_drill_desc: 'Digite passagens de livros' + skill_tree: 'Árvore de Habilidades' + skill_tree_desc: 'Ver ramos de progressão e iniciar exercícios' + keyboard: 'Teclado' + keyboard_desc: 'Explore o layout do teclado e estatísticas' + statistics: 'Estatísticas' + statistics_desc: 'Ver suas estatísticas de digitação' + settings: 'Configurações' + settings_desc: 'Configurar keydr' + day_streak: ' | %{days} dias seguidos' + key_progress: ' Progresso de Teclas %{unlocked}/%{total} (%{mastered} dominadas) | Meta %{target} WPM%{streak}' + hint_start: '[1-3] Iniciar' + hint_skill_tree: '[t] Árvore de Habilidades' + hint_keyboard: '[b] Teclado' + hint_stats: '[s] Estatísticas' + hint_settings: '[c] Configurações' + hint_quit: '[q] Sair' + +# Tela de exercício +drill: + title: ' Exercício ' + mode_adaptive: 'Adaptativo' + mode_code: 'Código (Sem ranking)' + mode_passage: 'Passagem (Sem ranking)' + focus_char: 'Foco: ''%{ch}''' + focus_bigram: 'Foco: "%{bigram}"' + focus_both: 'Foco: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Pre' + header_err: 'Err' + code_source: ' Fonte do código ' + passage_source: ' Fonte da passagem ' + footer: '[ESC] Fim [Backspace] Apagar' + keys_reenabled: 'Teclas reativadas em %{ms}ms' + hint_end: '[ESC] Fim do exercício' + hint_backspace: '[Backspace] Apagar' + +# Painel / resultado do exercício +dashboard: + title: ' Exercício Completo ' + results: 'Resultados' + unranked_note_prefix: ' (Sem ranking' + unranked_note_suffix: ' não conta para a árvore de habilidades)' + speed: ' Velocidade: ' + accuracy_label: ' Precisão: ' + time_label: ' Tempo: ' + errors_label: ' Erros: ' + correct_detail: ' (%{correct}/%{total} corretos)' + input_blocked: ' Entrada temporariamente bloqueada ' + input_blocked_ms: '(%{ms}ms restantes)' + hint_continue: '[c/Enter/Space] Continuar' + hint_retry: '[r] Tentar novamente' + hint_menu: '[q] Menu' + hint_stats: '[s] Estatísticas' + hint_delete: '[x] Excluir' + +# Barra lateral de estatísticas (durante o exercício) +sidebar: + title: ' Estatísticas ' + wpm: 'WPM: ' + target: 'Meta: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Precisão: ' + progress: 'Progresso: ' + correct: 'Correto: ' + errors: 'Erros: ' + time: 'Tempo: ' + last_drill: ' Último Exercício ' + vs_avg: ' vs méd: ' + +# Painel de estatísticas +stats: + title: ' Estatísticas ' + empty: 'Nenhum exercício completado ainda. Comece a digitar!' + tab_dashboard: '[1] Painel' + tab_history: '[2] Histórico' + tab_activity: '[3] Atividade' + tab_accuracy: '[4] Precisão' + tab_timing: '[5] Cronometragem' + tab_ngrams: '[6] N-gramas' + hint_back: '[ESC] Voltar' + hint_next_tab: '[Tab] Próxima aba' + hint_switch_tab: '[1-6] Trocar aba' + hint_navigate: '[j/k] Navegar' + hint_page: '[PgUp/PgDn] Página' + hint_delete: '[x] Excluir' + summary_title: ' Resumo ' + drills: ' Exercícios: ' + avg_wpm: ' WPM Méd: ' + best_wpm: ' Melhor WPM: ' + accuracy_label: ' Precisão: ' + total_time: ' Tempo total: ' + wpm_chart_title: ' WPM por Exercício (Últimos 20, Meta: %{target}) ' + accuracy_chart_title: ' Precisão %% (Últimos 50 Exercícios) ' + chart_drill: 'Exercício #' + chart_accuracy_pct: 'Precisão %%' + sessions_title: ' Sessões Recentes ' + session_header: ' # WPM Raw Pre%% Tempo Data/Hora Modo Class. Parcial' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Excluir sessão #%{idx}? (y/n)' + confirm_title: ' Confirmar ' + yes: 'sim' + no: 'não' + keyboard_accuracy_title: ' Precisão do Teclado %% ' + keyboard_timing_title: ' Cronometragem do Teclado (ms) ' + slowest_keys_title: ' Teclas mais Lentas (ms) ' + fastest_keys_title: ' Teclas mais Rápidas (ms) ' + worst_accuracy_title: ' Pior Precisão (%%) ' + best_accuracy_title: ' Melhor Precisão (%%) ' + not_enough_data: ' Dados insuficientes' + streaks_title: ' Sequências ' + current_streak: ' Atual: ' + best_streak: ' Melhor: ' + active_days: ' Dias ativos: ' + top_days_none: ' Melhores dias: nenhum' + top_days: ' Melhores dias: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Pre: %{pct}%%' + keys_label: ' Teclas: %{unlocked}/%{total} (%{mastered} dominadas)' + ngram_empty: 'Complete exercícios adaptativos para ver dados de n-gramas' + ngram_header_speed_narrow: ' Bgrm Vel Esper Anom%' + ngram_header_error_narrow: ' Bgrm Err Ams Taxa Esp Anom%' + ngram_header_speed: ' Bigrama Vel Esper Amostras Anom%' + ngram_header_error: ' Bigrama Erros Amostras Taxa Esper Anom%' + focus_title: ' Foco Ativo ' + focus_char_label: ' Foco: ' + focus_bigram_value: 'Bigrama %{label}' + focus_plus: ' + ' + anomaly_error: 'erro' + anomaly_speed: 'velocidade' + focus_detail_both: ' Caractere ''%{ch}'': tecla mais fraca | Bigrama %{label}: anomalia de %{type} %{pct}%%' + focus_detail_char_only: ' Caractere ''%{ch}'': tecla mais fraca, sem anomalias de bigrama confirmadas' + focus_detail_bigram_only: ' (anomalia de %{type}: %{pct}%%)' + focus_empty: ' Complete exercícios adaptativos para ver dados de foco' + error_anomalies_title: ' Anomalias de Erro (%{count}) ' + no_error_anomalies: ' Nenhuma anomalia de erro detectada' + speed_anomalies_title: ' Anomalias de Velocidade (%{count}) ' + no_speed_anomalies: ' Nenhuma anomalia de velocidade detectada' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Gan: %{value}' + gain_interval: ' (a cada 50)' + focus_char_value: 'Caractere ''%{ch}''' + +# Mapa de atividade +heatmap: + title: ' Atividade Diária (Sessões por Dia) ' + jan: 'Jan' + feb: 'Fev' + mar: 'Mar' + apr: 'Abr' + may: 'Mai' + jun: 'Jun' + jul: 'Jul' + aug: 'Ago' + sep: 'Set' + oct: 'Out' + nov: 'Nov' + dec: 'Dez' + +# Gráfico +chart: + wpm_over_time: ' WPM ao Longo do Tempo ' + drill_number: 'Exercício #' + +# Configurações +settings: + title: ' Configurações ' + subtitle: 'Use as setas para navegar, Enter/Direita para alterar, ESC para salvar e sair' + target_wpm: 'WPM Meta' + theme: 'Tema' + word_count: 'Quantidade de Palavras' + ui_language: 'Idioma da Interface' + dictionary_language: 'Idioma do Dicionário' + keyboard_layout: 'Layout do Teclado' + code_language: 'Linguagem de Código' + code_downloads: 'Downloads de Código' + on: 'Sim' + off: 'Não' + code_download_dir: 'Dir. Download de Código' + snippets_per_repo: 'Trechos por Repo' + unlimited: 'Ilimitado' + download_code_now: 'Baixar Código Agora' + run_downloader: 'Executar downloader' + passage_downloads: 'Downloads de Passagens' + passage_download_dir: 'Dir. Download de Passagens' + paragraphs_per_book: 'Parágrafos por Livro' + whole_book: 'Livro inteiro' + download_passages_now: 'Baixar Passagens Agora' + export_path: 'Caminho de Exportação' + export_data: 'Exportar Dados' + export_now: 'Exportar agora' + import_path: 'Caminho de Importação' + import_data: 'Importar Dados' + import_now: 'Importar agora' + hint_save_back: '[ESC] Salvar e voltar' + hint_change_value: '[Enter/setas] Alterar valor' + hint_edit_path: '[Enter no caminho] Editar' + hint_move: '[←→] Mover' + hint_tab_complete: '[Tab] Completar (no final)' + hint_confirm: '[Enter] Confirmar' + hint_cancel: '[Esc] Cancelar' + success_title: ' Sucesso ' + error_title: ' Erro ' + press_any_key: 'Pressione qualquer tecla' + file_exists_title: ' Arquivo Existente ' + file_exists: 'Um arquivo já existe neste caminho.' + overwrite_rename: '[d] Sobrescrever [r] Renomear [Esc] Cancelar' + erase_warning: 'Isso apagará seus dados atuais.' + export_first: 'Exporte primeiro se quiser mantê-los.' + proceed_yn: 'Prosseguir? (y/n)' + confirm_import_title: ' Confirmar Importação ' + +# Telas de seleção +select: + dictionary_language_title: ' Selecionar Idioma do Dicionário ' + keyboard_layout_title: ' Selecionar Layout do Teclado ' + code_language_title: ' Selecionar Linguagem de Código ' + passage_source_title: ' Selecionar Fonte de Passagens ' + ui_language_title: ' Selecionar Idioma da Interface ' + more_above: '... %{count} mais acima ...' + more_below: '... %{count} mais abaixo ...' + current: ' (atual)' + disabled: ' (desativado)' + enabled_default: ' (ativado, padrão: %{layout})' + enabled: ' (ativado)' + disabled_blocked: ' (desativado: bloqueado)' + built_in: ' (integrado)' + cached: ' (em cache)' + disabled_download: ' (desativado: download necessário)' + download_required: ' (download necessário)' + hint_navigate: '[Up/Down/PgUp/PgDn] Navegar' + hint_confirm: '[Enter] Confirmar' + hint_back: '[ESC] Voltar' + language_resets_layout: 'Selecionar um idioma redefine o layout para o padrão desse idioma.' + layout_no_language_change: 'Alterar layout não muda o idioma do dicionário.' + disabled_network_notice: 'Alguns idiomas estão desativados: ative os downloads em intro/configurações.' + disabled_sources_notice: 'Algumas fontes estão desativadas: ative os downloads em intro/configurações.' + passage_all: 'Todos (Integrados + todos os livros)' + passage_builtin: 'Apenas passagens integradas' + passage_book_prefix: 'Livro: %{title}' + +# Progresso +progress: + overall_key_progress: 'Progresso Geral das Teclas' + unlocked_mastered: '%{unlocked}/%{total} desbloqueadas (%{mastered} dominadas)' + +# Árvore de habilidades +skill_tree: + title: ' Árvore de Habilidades ' + locked: 'Bloqueado' + unlocked: 'desbloqueado' + mastered: 'dominado' + in_progress: 'em progresso' + complete: 'completo' + locked_status: 'bloqueado' + locked_notice: 'Complete %{count} letras primárias para desbloquear ramos' + branches_separator: 'Ramos (disponíveis após %{count} letras primárias)' + unlocked_letters: 'Desbloqueadas %{unlocked}/%{total} letras' + level: 'Nível %{current}/%{total}' + level_zero: 'Nível 0/%{total}' + in_focus: ' em foco' + hint_navigate: '[↑↓/jk] Navegar' + hint_scroll: '[PgUp/PgDn ou Ctrl+U/Ctrl+D] Rolar' + hint_back: '[q] Voltar' + hint_unlock: '[Enter] Desbloquear' + hint_start_drill: '[Enter] Iniciar Exercício' + unlock_msg_1: 'Uma vez desbloqueado, o exercício adaptativo incluirá teclas deste ramo que estejam desbloqueadas.' + unlock_msg_2: 'Se quiser focar apenas neste ramo, inicie um exercício diretamente deste ramo na Árvore de Habilidades.' + confirm_unlock: 'Desbloquear %{branch}?' + confirm_yn: '[y] Desbloquear [n/ESC] Cancelar' + lvl_prefix: 'Nív' + branch_primary_letters: 'Letras Primárias' + branch_capital_letters: 'Letras Maiúsculas' + branch_numbers: 'Números 0-9' + branch_prose_punctuation: 'Pontuação de Prosa' + branch_whitespace: 'Espaços em Branco' + branch_code_symbols: 'Símbolos de Código' + level_frequency_order: 'Ordem de Frequência' + level_common_sentence_capitals: 'Maiúsculas de Frase Comuns' + level_name_capitals: 'Maiúsculas de Nomes' + level_remaining_capitals: 'Maiúsculas Restantes' + level_common_digits: 'Dígitos Comuns' + level_all_digits: 'Todos os Dígitos' + level_essential: 'Essencial' + level_common: 'Comum' + level_expressive: 'Expressivo' + level_enter_return: 'Enter/Retorno' + level_tab_indent: 'Tab/Recuo' + level_arithmetic_assignment: 'Aritmética e Atribuição' + level_grouping: 'Agrupamento' + level_logic_reference: 'Lógica e Referência' + level_special: 'Especial' + +# Marcos +milestones: + unlock_title: ' Tecla Desbloqueada! ' + mastery_title: ' Tecla Dominada! ' + branches_title: ' Novos Ramos Disponíveis! ' + branch_complete_title: ' Ramo Completo! ' + all_unlocked_title: ' Todas as Teclas Desbloqueadas! ' + all_mastered_title: ' Domínio Total do Teclado! ' + unlocked: 'desbloqueada' + mastered: 'dominada' + use_finger: 'Use seu dedo %{finger}' + hold_right_shift: 'Segure Shift Direito (mindinho direito)' + hold_left_shift: 'Segure Shift Esquerdo (mindinho esquerdo)' + congratulations_all_letters: 'Parabéns! Você dominou todas as %{count} letras primárias' + new_branches_available: 'Novos ramos de habilidades estão disponíveis:' + visit_skill_tree: 'Visite a Árvore de Habilidades para desbloquear um novo ramo' + and_start_training: 'e comece a treinar!' + open_skill_tree: 'Pressione [t] para abrir a Árvore de Habilidades' + branch_complete_msg: 'Você completou o ramo %{branch}!' + all_levels_mastered: 'Todos os %{count} níveis dominados.' + all_keys_confident: 'Cada tecla neste ramo está em confiança máxima.' + all_unlocked_msg: 'Você desbloqueou todas as teclas do teclado!' + all_unlocked_desc: 'Cada caractere, símbolo e modificador está disponível nos seus exercícios.' + keep_practicing_mastery: 'Continue praticando para alcançar o domínio — quando cada tecla atingir' + confidence_complete: 'confiança máxima, você terá alcançado o domínio total do teclado!' + all_mastered_msg: 'Parabéns — você alcançou o domínio total do teclado!' + all_mastered_desc: 'Cada tecla do teclado está em confiança máxima.' + mastery_takes_practice: 'O domínio não é um destino — requer prática contínua.' + keep_drilling: 'Continue praticando para manter seu nível.' + hint_skill_tree_continue: '[t] Abrir Árvore de Habilidades [Outra tecla] Continuar' + hint_any_key: 'Pressione qualquer tecla para continuar' + input_blocked: 'Entrada temporariamente bloqueada (%{ms}ms restantes)' + unlock_msg_1: 'Bom trabalho! Continue melhorando suas habilidades.' + unlock_msg_2: 'Mais uma tecla adicionada ao seu arsenal!' + unlock_msg_3: 'Seu teclado está crescendo! Continue assim.' + unlock_msg_4: 'Um passo mais perto do domínio total!' + mastery_msg_1: 'Esta tecla está em confiança máxima!' + mastery_msg_2: 'Você domina esta tecla perfeitamente!' + mastery_msg_3: 'Memória muscular adquirida!' + mastery_msg_4: 'Mais uma tecla conquistada!' + +# Explorador de teclado +keyboard: + title: ' Teclado ' + subtitle: 'Pressione ou clique em uma tecla' + hint_navigate: '[←→↑↓/hjkl/Tab] Navegar' + hint_back: '[q/ESC] Voltar' + key_label: 'Tecla: ' + finger_label: 'Dedo: ' + hand_left: 'Esquerda' + hand_right: 'Direita' + finger_index: 'Indicador' + finger_middle: 'Médio' + finger_ring: 'Anelar' + finger_pinky: 'Mindinho' + finger_thumb: 'Polegar' + overall_accuracy: ' Precisão geral: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Precisão classificada: %{correct}/%{total} (%{pct}%%)' + confidence: 'Confiança: ' + no_data: 'Sem dados ainda' + no_data_short: 'Sem dados' + key_details: ' Detalhes da Tecla ' + key_details_char: ' Detalhes da Tecla: ''%{ch}'' ' + key_details_name: ' Detalhes da Tecla: %{name} ' + press_key_hint: 'Pressione uma tecla para ver seus detalhes' + shift_label: 'Shift: ' + shift_no: 'Não' + overall_avg_time: 'Tempo Méd. Geral: ' + overall_best_time: 'Melhor Tempo Geral: ' + overall_samples: 'Amostras Gerais: ' + overall_accuracy_label: 'Precisão Geral: ' + branch_label: 'Ramo: ' + level_label: 'Nível: ' + built_in_key: 'Tecla Integrada' + unlocked_label: 'Desbloqueada: ' + yes: 'Sim' + no: 'Não' + in_focus_label: 'Em Foco?: ' + mastery_label: 'Domínio: ' + mastery_locked: 'Bloqueado' + ranked_avg_time: 'Tempo Méd. Classificado: ' + ranked_best_time: 'Melhor Tempo Classificado: ' + ranked_samples: 'Amostras Classificadas: ' + ranked_accuracy_label: 'Precisão Classificada: ' + +# Diálogos de introdução +intro: + passage_title: ' Configurar Download de Passagens ' + code_title: ' Configurar Download de Código ' + enable_downloads: 'Ativar downloads de rede' + download_dir: 'Diretório de download' + paragraphs_per_book: 'Parágrafos por livro (0 = inteiro)' + whole_book: 'livro inteiro' + snippets_per_repo: 'Trechos por repo (0 = ilimitado)' + unlimited: 'ilimitado' + start_passage_drill: 'Iniciar exercício de passagem' + start_code_drill: 'Iniciar exercício de código' + confirm: 'Confirmar' + hint_navigate: '[Up/Down] Navegar' + hint_adjust: '[Left/Right] Ajustar' + hint_edit: '[Type/Backspace] Editar' + hint_confirm: '[Enter] Confirmar' + hint_cancel: '[ESC] Cancelar' + preparing_download: 'Preparando download...' + download_passage_title: ' Baixando Fonte de Passagem ' + download_code_title: ' Baixando Fonte de Código ' + book_label: ' Livro: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bytes' + downloaded_bytes: 'Baixado: %{bytes} bytes' + downloading_book_progress: 'Baixando livro atual: [%{bar}] %{downloaded}/%{total} bytes' + downloading_book_bytes: 'Baixando livro atual: %{bytes} bytes' + downloading_code_progress: 'Baixando: [%{bar}] %{downloaded}/%{total} bytes' + downloading_code_bytes: 'Baixando: %{bytes} bytes' + current_book: 'Atual: %{name} (livro %{done}/%{total})' + current_repo: 'Atual: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr pode baixar passagens do Project Gutenberg para prática de digitação.' + passage_instructions_2: 'Os livros são baixados uma vez e armazenados localmente.' + passage_instructions_3: 'Configure os ajustes de download abaixo, depois inicie um exercício de passagem.' + code_instructions_1: 'keydr pode baixar código open-source do GitHub para prática de digitação.' + code_instructions_2: 'O código é baixado uma vez e armazenado localmente.' + code_instructions_3: 'Configure os ajustes de download abaixo, depois inicie um exercício de código.' + +# Mensagens de status (de app.rs) +status: + recovery_files: 'Arquivos de recuperação encontrados de uma importação interrompida. Os dados podem estar inconsistentes — considere reimportar.' + dir_not_exist: 'O diretório não existe: %{path}' + no_data_store: 'Nenhum armazenamento de dados disponível' + serialization_error: 'Erro de serialização: %{error}' + exported_to: 'Exportado para %{path}' + export_failed: 'Exportação falhou: %{error}' + could_not_read: 'Não foi possível ler o arquivo: %{error}' + invalid_export: 'Arquivo de exportação inválido: %{error}' + unsupported_version: 'Versão de exportação não suportada: %{got} (esperada %{expected})' + import_failed: 'Importação falhou: %{error}' + imported_theme_fallback: 'Importado com sucesso (tema ''%{theme}'' não encontrado, usando padrão)' + imported_success: 'Importado com sucesso' + adaptive_unavailable: 'Modo adaptativo classificado não disponível: %{error}' + switched_to: 'Alterado para %{name}' + layout_changed: 'Layout alterado para %{name}' + +# Erros (para tradução de limites de UI) +errors: + unknown_language: 'Idioma desconhecido: %{key}' + unknown_layout: 'Layout de teclado desconhecido: %{key}' + unsupported_pair: 'Par idioma/layout não suportado: %{language} + %{layout}' + language_blocked: 'Idioma bloqueado pelo nível de suporte: %{key}' + +# Comum +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Voltar' diff --git a/locales/ro.yml b/locales/ro.yml new file mode 100644 index 0000000..94200e5 --- /dev/null +++ b/locales/ro.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Antrenor de tastare in terminal' + adaptive_drill: 'Exercitiu adaptiv' + adaptive_drill_desc: 'Cuvinte fonetice cu deblocare adaptiva a literelor' + code_drill: 'Exercitiu de cod' + code_drill_desc: 'Exerseaza tastarea sintaxei de cod' + passage_drill: 'Exercitiu de text' + passage_drill_desc: 'Tasteaza pasaje din carti' + skill_tree: 'Arbore de abilitati' + skill_tree_desc: 'Vizualizeaza ramuri de progres si lanseaza exercitii' + keyboard: 'Tastatura' + keyboard_desc: 'Exploreaza aranjamentul si statisticile tastelor' + statistics: 'Statistici' + statistics_desc: 'Vizualizeaza statisticile de tastare' + settings: 'Setari' + settings_desc: 'Configureaza keydr' + day_streak: ' | %{days} zile consecutive' + key_progress: ' Progres taste %{unlocked}/%{total} (%{mastered} stapanite) | Tinta %{target} WPM%{streak}' + hint_start: '[1-3] Start' + hint_skill_tree: '[t] Arbore' + hint_keyboard: '[b] Tastatura' + hint_stats: '[s] Statistici' + hint_settings: '[c] Setari' + hint_quit: '[q] Iesire' + +# Drill screen +drill: + title: ' Exercitiu ' + mode_adaptive: 'Adaptiv' + mode_code: 'Cod (fara clasament)' + mode_passage: 'Text (fara clasament)' + focus_char: 'Focus: ''%{ch}''' + focus_bigram: 'Focus: "%{bigram}"' + focus_both: 'Focus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Prec' + header_err: 'Erori' + code_source: ' Sursa cod ' + passage_source: ' Sursa text ' + footer: '[ESC] Termina exercitiu [Backspace] Sterge' + keys_reenabled: 'Taste reactivate in %{ms}ms' + hint_end: '[ESC] Termina exercitiu' + hint_backspace: '[Backspace] Sterge' + +# Dashboard / drill result +dashboard: + title: ' Exercitiu finalizat ' + results: 'Rezultate' + unranked_note_prefix: ' (Fara clasament' + unranked_note_suffix: ' nu conteaza in arborele de abilitati)' + speed: ' Viteza: ' + accuracy_label: ' Precizie: ' + time_label: ' Timp: ' + errors_label: ' Erori: ' + correct_detail: ' (%{correct}/%{total} corecte)' + input_blocked: ' Intrare blocata temporar ' + input_blocked_ms: '(%{ms}ms ramas)' + hint_continue: '[c/Enter/Space] Continua' + hint_retry: '[r] Reia' + hint_menu: '[q] Meniu' + hint_stats: '[s] Statistici' + hint_delete: '[x] Sterge' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistici ' + wpm: 'WPM: ' + target: 'Tinta: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Precizie: ' + progress: 'Progres: ' + correct: 'Corecte: ' + errors: 'Erori: ' + time: 'Timp: ' + last_drill: ' Ultimul exercitiu ' + vs_avg: ' vs med: ' + +# Statistics dashboard +stats: + title: ' Statistici ' + empty: 'Niciun exercitiu finalizat. Incepe sa tastezi!' + tab_dashboard: '[1] Tablou' + tab_history: '[2] Istoric' + tab_activity: '[3] Activitate' + tab_accuracy: '[4] Precizie' + tab_timing: '[5] Cronometraj' + tab_ngrams: '[6] N-grame' + hint_back: '[ESC] Inapoi' + hint_next_tab: '[Tab] Tab urmator' + hint_switch_tab: '[1-6] Schimba tab' + hint_navigate: '[j/k] Navigheaza' + hint_page: '[PgUp/PgDn] Pagina' + hint_delete: '[x] Sterge' + summary_title: ' Sumar ' + drills: ' Exercitii: ' + avg_wpm: ' Med WPM: ' + best_wpm: ' Cel mai bun WPM: ' + accuracy_label: ' Precizie: ' + total_time: ' Timp total: ' + wpm_chart_title: ' WPM pe exercitiu (ultimele 20, tinta: %{target}) ' + accuracy_chart_title: ' Precizie %% (ultimele 50 exercitii) ' + chart_drill: 'Exerc #' + chart_accuracy_pct: 'Precizie %%' + sessions_title: ' Sesiuni recente ' + session_header: ' # WPM Raw Prec%% Timp Data/Ora Mod Clasat Partial' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Stergi sesiunea #%{idx}? (d/n)' + confirm_title: ' Confirma ' + yes: 'da' + no: 'nu' + keyboard_accuracy_title: ' Precizia tastaturii %% ' + keyboard_timing_title: ' Cronometraj tastatura (ms) ' + slowest_keys_title: ' Cele mai lente taste (ms) ' + fastest_keys_title: ' Cele mai rapide taste (ms) ' + worst_accuracy_title: ' Cea mai slaba precizie (%%) ' + best_accuracy_title: ' Cea mai buna precizie (%%) ' + not_enough_data: ' Date insuficiente' + streaks_title: ' Serii ' + current_streak: ' Curenta: ' + best_streak: ' Cea mai buna: ' + active_days: ' Zile active: ' + top_days_none: ' Cele mai bune zile: niciuna' + top_days: ' Cele mai bune zile: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Prec: %{pct}%%' + keys_label: ' Taste: %{unlocked}/%{total} (%{mastered} stapanite)' + ngram_empty: 'Finalizeaza exercitii adaptive pentru a vedea datele n-gramelor' + ngram_header_speed_narrow: ' Bgrm Vit Astpt Anom%' + ngram_header_error_narrow: ' Bgrm Erori Esnt Rata Astpt Anom%' + ngram_header_speed: ' Bigrama Viteza Asteptat Esant Anom%' + ngram_header_error: ' Bigrama Erori Esant Rata Asteptat Anom%' + focus_title: ' Focus activ ' + focus_char_label: ' Focus: ' + focus_bigram_value: 'Bigrama %{label}' + focus_plus: ' + ' + anomaly_error: 'eroare' + anomaly_speed: 'viteza' + focus_detail_both: ' Caracter ''%{ch}'': cea mai slaba tasta | Bigrama %{label}: anomalie %{type} %{pct}%%' + focus_detail_char_only: ' Caracter ''%{ch}'': cea mai slaba tasta, fara anomalii confirmate' + focus_detail_bigram_only: ' (anomalie %{type}: %{pct}%%)' + focus_empty: ' Finalizeaza exercitii adaptive pentru a vedea datele de focus' + error_anomalies_title: ' Anomalii erori (%{count}) ' + no_error_anomalies: ' Nicio anomalie de erori detectata' + speed_anomalies_title: ' Anomalii viteza (%{count}) ' + no_speed_anomalies: ' Nicio anomalie de viteza detectata' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Ezit: >%{ms}ms' + gain_label: ' | Castig: %{value}' + gain_interval: ' (la fiecare 50)' + focus_char_value: 'Caracter ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Activitate zilnica (sesiuni pe zi) ' + jan: 'Ian' + feb: 'Feb' + mar: 'Mar' + apr: 'Apr' + may: 'Mai' + jun: 'Iun' + jul: 'Iul' + aug: 'Aug' + sep: 'Sep' + oct: 'Oct' + nov: 'Noi' + dec: 'Dec' + +# Chart +chart: + wpm_over_time: ' WPM in timp ' + drill_number: 'Exerc #' + +# Settings +settings: + title: ' Setari ' + subtitle: 'Foloseste sagetile pentru navigare, Enter/dreapta schimba, ESC salveaza si iese' + target_wpm: 'WPM tinta' + theme: 'Tema' + word_count: 'Numar cuvinte' + ui_language: 'Limba interfetei' + dictionary_language: 'Limba dictionarului' + keyboard_layout: 'Aranjament tastatura' + code_language: 'Limbaj programare' + code_downloads: 'Descarcari cod' + on: 'Pornit' + off: 'Oprit' + code_download_dir: 'Director descarcare cod' + snippets_per_repo: 'Fragmente pe repo' + unlimited: 'Nelimitat' + download_code_now: 'Descarca cod acum' + run_downloader: 'Lanseaza descarcarea' + passage_downloads: 'Descarcari texte' + passage_download_dir: 'Director descarcare texte' + paragraphs_per_book: 'Paragrafe pe carte' + whole_book: 'Cartea intreaga' + download_passages_now: 'Descarca texte acum' + export_path: 'Cale export' + export_data: 'Exporta date' + export_now: 'Exporta acum' + import_path: 'Cale import' + import_data: 'Importa date' + import_now: 'Importa acum' + hint_save_back: '[ESC] Salveaza si inapoi' + hint_change_value: '[Enter/sageti] Schimba valoarea' + hint_edit_path: '[Enter pe cale] Editeaza' + hint_move: '[←→] Muta' + hint_tab_complete: '[Tab] Completeaza (la sfarsit)' + hint_confirm: '[Enter] Confirma' + hint_cancel: '[Esc] Anuleaza' + success_title: ' Succes ' + error_title: ' Eroare ' + press_any_key: 'Apasa orice tasta' + file_exists_title: ' Fisierul exista ' + file_exists: 'Un fisier exista deja la aceasta cale.' + overwrite_rename: '[d] Suprascrie [r] Redenumeste [Esc] Anuleaza' + erase_warning: 'Aceasta va sterge datele curente.' + export_first: 'Exporta mai intai daca vrei sa le pastrezi.' + proceed_yn: 'Continui? (d/n)' + confirm_import_title: ' Confirma importul ' + +# Selection screens +select: + dictionary_language_title: ' Selecteaza limba dictionarului ' + keyboard_layout_title: ' Selecteaza aranjamentul tastaturii ' + code_language_title: ' Selecteaza limbajul de programare ' + passage_source_title: ' Selecteaza sursa textului ' + ui_language_title: ' Selecteaza limba interfetei ' + more_above: '... %{count} mai sus ...' + more_below: '... %{count} mai jos ...' + current: ' (curent)' + disabled: ' (dezactivat)' + enabled_default: ' (activat, implicit: %{layout})' + enabled: ' (activat)' + disabled_blocked: ' (dezactivat: blocat)' + built_in: ' (incorporat)' + cached: ' (in cache)' + disabled_download: ' (dezactivat: descarcare necesara)' + download_required: ' (descarcare necesara)' + hint_navigate: '[Sus/Jos/PgUp/PgDn] Navigheaza' + hint_confirm: '[Enter] Confirma' + hint_back: '[ESC] Inapoi' + language_resets_layout: 'Selectarea unei limbi reseteaza aranjamentul la implicit pentru acea limba.' + layout_no_language_change: 'Schimbarea aranjamentului nu schimba limba dictionarului.' + disabled_network_notice: 'Unele limbi sunt dezactivate: activeaza descarcarile de retea in setari.' + disabled_sources_notice: 'Unele surse sunt dezactivate: activeaza descarcarile de retea in setari.' + passage_all: 'Toate (incorporate + toate cartile)' + passage_builtin: 'Doar texte incorporate' + passage_book_prefix: 'Carte: %{title}' + +# Progress +progress: + overall_key_progress: 'Progres general taste' + unlocked_mastered: '%{unlocked}/%{total} deblocate (%{mastered} stapanite)' + +# Skill tree +skill_tree: + title: ' Arbore de abilitati ' + locked: 'Blocat' + unlocked: 'deblocat' + mastered: 'stapanit' + in_progress: 'in curs' + complete: 'finalizat' + locked_status: 'blocat' + locked_notice: 'Finalizeaza %{count} litere primare pentru a debloca ramuri' + branches_separator: 'Ramuri (disponibile dupa %{count} litere primare)' + unlocked_letters: 'Deblocate %{unlocked}/%{total} litere' + level: 'Nivel %{current}/%{total}' + level_zero: 'Nivel 0/%{total}' + in_focus: ' in focus' + hint_navigate: '[↑↓/jk] Navigheaza' + hint_scroll: '[PgUp/PgDn sau Ctrl+U/Ctrl+D] Deruleaza' + hint_back: '[q] Inapoi' + hint_unlock: '[Enter] Deblocheaza' + hint_start_drill: '[Enter] Incepe exercitiu' + unlock_msg_1: 'Dupa deblocare, exercitiul adaptiv implicit va include taste din aceasta ramura.' + unlock_msg_2: 'Daca vrei sa te concentrezi doar pe aceasta ramura, lanseaza un exercitiu direct din arbore.' + confirm_unlock: 'Deblocheaza %{branch}?' + confirm_yn: '[y] Deblocheaza [n/ESC] Anuleaza' + lvl_prefix: 'Niv' + branch_primary_letters: 'Litere primare' + branch_capital_letters: 'Litere mari' + branch_numbers: 'Cifre 0-9' + branch_prose_punctuation: 'Punctuatie' + branch_whitespace: 'Spatii albe' + branch_code_symbols: 'Simboluri cod' + level_frequency_order: 'Ordinea frecventei' + level_common_sentence_capitals: 'Majuscule comune in propozitii' + level_name_capitals: 'Majuscule de nume' + level_remaining_capitals: 'Majuscule ramase' + level_common_digits: 'Cifre comune' + level_all_digits: 'Toate cifrele' + level_essential: 'Esentiale' + level_common: 'Comune' + level_expressive: 'Expresive' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Indentare' + level_arithmetic_assignment: 'Aritmetica si atribuire' + level_grouping: 'Grupare' + level_logic_reference: 'Logica si referinta' + level_special: 'Speciale' + +# Milestones +milestones: + unlock_title: ' Tasta deblocata! ' + mastery_title: ' Tasta stapanita! ' + branches_title: ' Ramuri noi disponibile! ' + branch_complete_title: ' Ramura finalizata! ' + all_unlocked_title: ' Toate tastele deblocate! ' + all_mastered_title: ' Stapanire completa a tastaturii! ' + unlocked: 'deblocata' + mastered: 'stapanita' + use_finger: 'Foloseste %{finger}' + hold_right_shift: 'Tine Shift dreapta (degetul mic drept)' + hold_left_shift: 'Tine Shift stanga (degetul mic stang)' + congratulations_all_letters: 'Felicitari! Ai stapanit toate cele %{count} litere primare' + new_branches_available: 'Ramuri noi de abilitati sunt acum disponibile:' + visit_skill_tree: 'Viziteaza arborele de abilitati pentru a debloca o ramura noua' + and_start_training: 'si incepe antrenamentul!' + open_skill_tree: 'Apasa [t] pentru a deschide arborele acum' + branch_complete_msg: 'Ai finalizat ramura %{branch}!' + all_levels_mastered: 'Toate cele %{count} niveluri stapanite.' + all_keys_confident: 'Fiecare tasta din aceasta ramura este la incredere maxima.' + all_unlocked_msg: 'Ai deblocat fiecare tasta de pe tastatura!' + all_unlocked_desc: 'Fiecare caracter, simbol si modificator este acum disponibil in exercitiile tale.' + keep_practicing_mastery: 'Continua sa exersezi pentru a construi stapanirea — cand fiecare tasta atinge' + confidence_complete: 'incredere maxima, vei fi atins stapanirea completa a tastaturii!' + all_mastered_msg: 'Felicitari — ai atins stapanirea completa a tastaturii!' + all_mastered_desc: 'Fiecare tasta de pe tastatura este la incredere maxima.' + mastery_takes_practice: 'Stapanirea nu este o destinatie — necesita practica continua.' + keep_drilling: 'Continua sa exersezi pentru a-ti mentine nivelul.' + hint_skill_tree_continue: '[t] Deschide arborele [Alta tasta] Continua' + hint_any_key: 'Apasa orice tasta pentru a continua' + input_blocked: 'Intrare blocata temporar (%{ms}ms ramas)' + unlock_msg_1: 'Bine lucrat! Continua sa-ti dezvolti abilitatile.' + unlock_msg_2: 'Inca o tasta in arsenalul tau!' + unlock_msg_3: 'Tastatura ta creste! Continua tot asa.' + unlock_msg_4: 'Un pas mai aproape de stapanirea completa!' + mastery_msg_1: 'Aceasta tasta este acum la incredere maxima!' + mastery_msg_2: 'Ai aceasta tasta la degetul mic!' + mastery_msg_3: 'Memorie musculara fixata!' + mastery_msg_4: 'Inca o tasta cucerita!' + +# Keyboard explorer +keyboard: + title: ' Tastatura ' + subtitle: 'Apasa orice tasta sau click pe o tasta' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigheaza' + hint_back: '[q/ESC] Inapoi' + key_label: 'Tasta: ' + finger_label: 'Deget: ' + hand_left: 'Stang' + hand_right: 'Drept' + finger_index: 'Aratator' + finger_middle: 'Mijlociu' + finger_ring: 'Inelar' + finger_pinky: 'Mic' + finger_thumb: 'Degetul mare' + overall_accuracy: ' Precizie generala: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Precizie clasament: %{correct}/%{total} (%{pct}%%)' + confidence: 'Incredere: ' + no_data: 'Fara date inca' + no_data_short: 'Fara date' + key_details: ' Detalii tasta ' + key_details_char: ' Detalii tasta: ''%{ch}'' ' + key_details_name: ' Detalii tasta: %{name} ' + press_key_hint: 'Apasa o tasta pentru a vedea detaliile' + shift_label: 'Shift: ' + shift_no: 'Nu' + overall_avg_time: 'Timp mediu: ' + overall_best_time: 'Cel mai bun timp: ' + overall_samples: 'Esantioane: ' + overall_accuracy_label: 'Precizie generala: ' + branch_label: 'Ramura: ' + level_label: 'Nivel: ' + built_in_key: 'Tasta incorporata' + unlocked_label: 'Deblocata: ' + yes: 'Da' + no: 'Nu' + in_focus_label: 'In focus?: ' + mastery_label: 'Stapanire: ' + mastery_locked: 'Blocata' + ranked_avg_time: 'Timp mediu clasat: ' + ranked_best_time: 'Cel mai bun timp clasat: ' + ranked_samples: 'Esantioane clasate: ' + ranked_accuracy_label: 'Precizie clasament: ' + +# Intro dialogs +intro: + passage_title: ' Configurare descarcari texte ' + code_title: ' Configurare descarcari cod ' + enable_downloads: 'Activeaza descarcarile de retea' + download_dir: 'Director descarcare' + paragraphs_per_book: 'Paragrafe pe carte (0 = toata)' + whole_book: 'cartea intreaga' + snippets_per_repo: 'Fragmente pe repo (0 = nelimitat)' + unlimited: 'nelimitat' + start_passage_drill: 'Incepe exercitiu de text' + start_code_drill: 'Incepe exercitiu de cod' + confirm: 'Confirma' + hint_navigate: '[Sus/Jos] Navigheaza' + hint_adjust: '[Stanga/Dreapta] Ajusteaza' + hint_edit: '[Tasteaza/Backspace] Editeaza' + hint_confirm: '[Enter] Confirma' + hint_cancel: '[ESC] Anuleaza' + preparing_download: 'Se pregateste descarcarea...' + download_passage_title: ' Se descarca sursa textului ' + download_code_title: ' Se descarca sursa codului ' + book_label: ' Carte: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} octeti' + downloaded_bytes: 'Descarcat: %{bytes} octeti' + downloading_book_progress: 'Se descarca cartea: [%{bar}] %{downloaded}/%{total} octeti' + downloading_book_bytes: 'Se descarca cartea: %{bytes} octeti' + downloading_code_progress: 'Se descarca: [%{bar}] %{downloaded}/%{total} octeti' + downloading_code_bytes: 'Se descarca: %{bytes} octeti' + current_book: 'Curent: %{name} (carte %{done}/%{total})' + current_repo: 'Curent: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr poate descarca texte din Project Gutenberg pentru exercitii de tastare.' + passage_instructions_2: 'Cartile se descarca o singura data si se stocheaza local.' + passage_instructions_3: 'Configureaza setarile de descarcare mai jos, apoi incepe un exercitiu.' + code_instructions_1: 'keydr poate descarca cod open-source din GitHub pentru exercitii de tastare.' + code_instructions_2: 'Codul se descarca o singura data si se stocheaza local.' + code_instructions_3: 'Configureaza setarile de descarcare mai jos, apoi incepe un exercitiu.' + +# Status messages (from app.rs) +status: + recovery_files: 'Fisiere de recuperare gasite dintr-un import intrerupt. Datele pot fi inconsistente — ia in considerare reimportul.' + dir_not_exist: 'Directorul nu exista: %{path}' + no_data_store: 'Depozit de date indisponibil' + serialization_error: 'Eroare de serializare: %{error}' + exported_to: 'Exportat in %{path}' + export_failed: 'Exportul a esuat: %{error}' + could_not_read: 'Nu s-a putut citi fisierul: %{error}' + invalid_export: 'Fisier de export invalid: %{error}' + unsupported_version: 'Versiune export nesuportata: %{got} (asteptata %{expected})' + import_failed: 'Importul a esuat: %{error}' + imported_theme_fallback: 'Importat cu succes (tema ''%{theme}'' negasita, se foloseste implicita)' + imported_success: 'Importat cu succes' + adaptive_unavailable: 'Mod adaptiv clasat indisponibil: %{error}' + switched_to: 'Comutat la %{name}' + layout_changed: 'Aranjament schimbat la %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Limba necunoscuta: %{key}' + unknown_layout: 'Aranjament tastatura necunoscut: %{key}' + unsupported_pair: 'Pereche limba/aranjament nesuportata: %{language} + %{layout}' + language_blocked: 'Limba blocata de nivelul de suport: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Inapoi' diff --git a/locales/sl.yml b/locales/sl.yml new file mode 100644 index 0000000..72e3da1 --- /dev/null +++ b/locales/sl.yml @@ -0,0 +1,457 @@ +# Glavni meni +menu: + subtitle: 'Učitelj tipkanja v terminalu' + adaptive_drill: 'Prilagodljiva vaja' + adaptive_drill_desc: 'Fonetične besede s prilagodljivim odklepanjem črk' + code_drill: 'Vaja kode' + code_drill_desc: 'Vadite tipkanje sintakse kode' + passage_drill: 'Vaja odlomkov' + passage_drill_desc: 'Tipkajte odlomke iz knjig' + skill_tree: 'Drevo veščin' + skill_tree_desc: 'Oglejte si veje napredovanja in zaženite vaje' + keyboard: 'Tipkovnica' + keyboard_desc: 'Raziščite razporeditev tipk in statistiko' + statistics: 'Statistika' + statistics_desc: 'Oglejte si statistiko tipkanja' + settings: 'Nastavitve' + settings_desc: 'Nastavite keydr' + day_streak: ' | %{days} dni zapored' + key_progress: ' Napredek tipk %{unlocked}/%{total} (%{mastered} osvojenih) | Cilj %{target} WPM%{streak}' + hint_start: '[1-3] Začni' + hint_skill_tree: '[t] Drevo veščin' + hint_keyboard: '[b] Tipkovnica' + hint_stats: '[s] Statistika' + hint_settings: '[c] Nastavitve' + hint_quit: '[q] Izhod' + +# Zaslon vaje +drill: + title: ' Vaja ' + mode_adaptive: 'Prilagodljiva' + mode_code: 'Koda (neocenjeno)' + mode_passage: 'Odlomek (neocenjeno)' + focus_char: 'Fokus: ''%{ch}''' + focus_bigram: 'Fokus: "%{bigram}"' + focus_both: 'Fokus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Toč' + header_err: 'Nap' + code_source: ' Vir kode ' + passage_source: ' Vir odlomka ' + footer: '[ESC] Končaj vajo [Backspace] Izbriši' + keys_reenabled: 'Tipke ponovno omogočene čez %{ms}ms' + hint_end: '[ESC] Končaj vajo' + hint_backspace: '[Backspace] Izbriši' + +# Nadzorna plošča / rezultat vaje +dashboard: + title: ' Vaja končana ' + results: 'Rezultati' + unranked_note_prefix: ' (Neocenjeno' + unranked_note_suffix: ' ne šteje za drevo veščin)' + speed: ' Hitrost: ' + accuracy_label: ' Točnost: ' + time_label: ' Čas: ' + errors_label: ' Napake: ' + correct_detail: ' (%{correct}/%{total} pravilnih)' + input_blocked: ' Vnos začasno blokiran ' + input_blocked_ms: '(še %{ms}ms)' + hint_continue: '[c/Enter/Space] Nadaljuj' + hint_retry: '[r] Ponovi' + hint_menu: '[q] Meni' + hint_stats: '[s] Statistika' + hint_delete: '[x] Izbriši' + +# Stranska vrstica statistike (med vajo) +sidebar: + title: ' Statistika ' + wpm: 'WPM: ' + target: 'Cilj: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Točnost: ' + progress: 'Napredek: ' + correct: 'Pravilno: ' + errors: 'Napake: ' + time: 'Čas: ' + last_drill: ' Zadnja vaja ' + vs_avg: ' vs povpr: ' + +# Statistična nadzorna plošča +stats: + title: ' Statistika ' + empty: 'Še ni opravljenih vaj. Začnite tipkati!' + tab_dashboard: '[1] Pregled' + tab_history: '[2] Zgodovina' + tab_activity: '[3] Aktivnost' + tab_accuracy: '[4] Točnost' + tab_timing: '[5] Časi' + tab_ngrams: '[6] N-grami' + hint_back: '[ESC] Nazaj' + hint_next_tab: '[Tab] Naslednji zavihek' + hint_switch_tab: '[1-6] Preklopi zavihek' + hint_navigate: '[j/k] Navigacija' + hint_page: '[PgUp/PgDn] Stran' + hint_delete: '[x] Izbriši' + summary_title: ' Povzetek ' + drills: ' Vaje: ' + avg_wpm: ' Povpr WPM: ' + best_wpm: ' Najb WPM: ' + accuracy_label: ' Točnost: ' + total_time: ' Skupni čas: ' + wpm_chart_title: ' WPM na vajo (zadnjih 20, cilj: %{target}) ' + accuracy_chart_title: ' Točnost %% (zadnjih 50 vaj) ' + chart_drill: 'Vaja #' + chart_accuracy_pct: 'Točnost %%' + sessions_title: ' Nedavne seje ' + session_header: ' # WPM Sur Toč%% Čas Datum/Čas Način Ocenj Delno' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Izbriši sejo #%{idx}? (y/n)' + confirm_title: ' Potrdi ' + yes: 'da' + no: 'ne' + keyboard_accuracy_title: ' Točnost tipkovnice %% ' + keyboard_timing_title: ' Časi tipkovnice (ms) ' + slowest_keys_title: ' Najpočasnejše tipke (ms) ' + fastest_keys_title: ' Najhitrejše tipke (ms) ' + worst_accuracy_title: ' Najslabša točnost (%%) ' + best_accuracy_title: ' Najboljša točnost (%%) ' + not_enough_data: ' Premalo podatkov' + streaks_title: ' Nizi ' + current_streak: ' Trenutni: ' + best_streak: ' Najboljši: ' + active_days: ' Aktivni dnevi: ' + top_days_none: ' Najboljši dnevi: brez' + top_days: ' Najboljši dnevi: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Toč: %{pct}%%' + keys_label: ' Tipke: %{unlocked}/%{total} (%{mastered} osvojenih)' + ngram_empty: 'Opravite nekaj prilagodljivih vaj za prikaz n-gramov' + ngram_header_speed_narrow: ' Bgrm Hitr Prič Anom%' + ngram_header_error_narrow: ' Bgrm Nap Vzr Stpn Prič Anom%' + ngram_header_speed: ' Bigram Hitrost Prič Vzorci Anom%' + ngram_header_error: ' Bigram Napake Vzorci Stpn Prič Anom%' + focus_title: ' Aktivni fokus ' + focus_char_label: ' Fokus: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'napaka' + anomaly_speed: 'hitrost' + focus_detail_both: ' Znak ''%{ch}'': najšibkejša tipka | Bigram %{label}: anomalija %{type} %{pct}%%' + focus_detail_char_only: ' Znak ''%{ch}'': najšibkejša tipka, brez potrjenih anomalij bigramov' + focus_detail_bigram_only: ' (anomalija %{type}: %{pct}%%)' + focus_empty: ' Opravite nekaj prilagodljivih vaj za prikaz podatkov fokusa' + error_anomalies_title: ' Anomalije napak (%{count}) ' + no_error_anomalies: ' Ni zaznanih anomalij napak' + speed_anomalies_title: ' Anomalije hitrosti (%{count}) ' + no_speed_anomalies: ' Ni zaznanih anomalij hitrosti' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Okl: >%{ms}ms' + gain_label: ' | Dobiček: %{value}' + gain_interval: ' (vsakih 50)' + focus_char_value: 'Znak ''%{ch}''' + +# Toplotna karta aktivnosti +heatmap: + title: ' Dnevna aktivnost (seje na dan) ' + jan: 'Jan' + feb: 'Feb' + mar: 'Mar' + apr: 'Apr' + may: 'Maj' + jun: 'Jun' + jul: 'Jul' + aug: 'Avg' + sep: 'Sep' + oct: 'Okt' + nov: 'Nov' + dec: 'Dec' + +# Grafikon +chart: + wpm_over_time: ' WPM skozi čas ' + drill_number: 'Vaja #' + +# Nastavitve +settings: + title: ' Nastavitve ' + subtitle: 'S puščicami se premikajte, Enter/Desno za spremembo, ESC za shranitev in izhod' + target_wpm: 'Ciljni WPM' + theme: 'Tema' + word_count: 'Število besed' + ui_language: 'Jezik vmesnika' + dictionary_language: 'Jezik slovarja' + keyboard_layout: 'Razporeditev tipkovnice' + code_language: 'Programski jezik' + code_downloads: 'Prenosi kode' + on: 'Vklop' + off: 'Izklop' + code_download_dir: 'Mapa prenosov kode' + snippets_per_repo: 'Odrezkov na repo' + unlimited: 'Neomejeno' + download_code_now: 'Prenesi kodo zdaj' + run_downloader: 'Zaženi prenos' + passage_downloads: 'Prenosi odlomkov' + passage_download_dir: 'Mapa prenosov odlomkov' + paragraphs_per_book: 'Odstavkov na knjigo' + whole_book: 'Celotna knjiga' + download_passages_now: 'Prenesi odlomke zdaj' + export_path: 'Pot izvoza' + export_data: 'Izvozi podatke' + export_now: 'Izvozi zdaj' + import_path: 'Pot uvoza' + import_data: 'Uvozi podatke' + import_now: 'Uvozi zdaj' + hint_save_back: '[ESC] Shrani in nazaj' + hint_change_value: '[Enter/puščice] Spremeni vrednost' + hint_edit_path: '[Enter na poti] Uredi' + hint_move: '[←→] Premik' + hint_tab_complete: '[Tab] Dopolni (na koncu)' + hint_confirm: '[Enter] Potrdi' + hint_cancel: '[Esc] Prekliči' + success_title: ' Uspeh ' + error_title: ' Napaka ' + press_any_key: 'Pritisnite katerokoli tipko' + file_exists_title: ' Datoteka obstaja ' + file_exists: 'Datoteka na tej poti že obstaja.' + overwrite_rename: '[d] Prepiši [r] Preimenuj [Esc] Prekliči' + erase_warning: 'To bo izbrisalo vaše trenutne podatke.' + export_first: 'Najprej izvozite, če jih želite obdržati.' + proceed_yn: 'Nadaljujem? (y/n)' + confirm_import_title: ' Potrdi uvoz ' + +# Zasloni izbire +select: + dictionary_language_title: ' Izberite jezik slovarja ' + keyboard_layout_title: ' Izberite razporeditev tipkovnice ' + code_language_title: ' Izberite programski jezik ' + passage_source_title: ' Izberite vir odlomkov ' + ui_language_title: ' Izberite jezik vmesnika ' + more_above: '... še %{count} zgoraj ...' + more_below: '... še %{count} spodaj ...' + current: ' (trenutni)' + disabled: ' (onemogočeno)' + enabled_default: ' (omogočeno, privzeto: %{layout})' + enabled: ' (omogočeno)' + disabled_blocked: ' (onemogočeno: blokirano)' + built_in: ' (vgrajeno)' + cached: ' (predpomnjeno)' + disabled_download: ' (onemogočeno: potreben prenos)' + download_required: ' (potreben prenos)' + hint_navigate: '[Gor/Dol/PgUp/PgDn] Navigacija' + hint_confirm: '[Enter] Potrdi' + hint_back: '[ESC] Nazaj' + language_resets_layout: 'Izbira jezika ponastavi razporeditev tipkovnice na privzeto za ta jezik.' + layout_no_language_change: 'Sprememba razporeditve ne spremeni jezika slovarja.' + disabled_network_notice: 'Nekateri jeziki so onemogočeni: omogočite omrežne prenose v uvodu/nastavitvah.' + disabled_sources_notice: 'Nekateri viri so onemogočeni: omogočite omrežne prenose v uvodu/nastavitvah.' + passage_all: 'Vse (vgrajeno + vse knjige)' + passage_builtin: 'Samo vgrajeni odlomki' + passage_book_prefix: 'Knjiga: %{title}' + +# Napredek +progress: + overall_key_progress: 'Skupni napredek tipk' + unlocked_mastered: '%{unlocked}/%{total} odklenjenih (%{mastered} osvojenih)' + +# Drevo veščin +skill_tree: + title: ' Drevo veščin ' + locked: 'Zaklenjeno' + unlocked: 'odklenjeno' + mastered: 'osvojeno' + in_progress: 'v teku' + complete: 'končano' + locked_status: 'zaklenjeno' + locked_notice: 'Dokončajte %{count} osnovnih črk za odklepanje vej' + branches_separator: 'Veje (na voljo po %{count} osnovnih črkah)' + unlocked_letters: 'Odklenjenih %{unlocked}/%{total} črk' + level: 'Raven %{current}/%{total}' + level_zero: 'Raven 0/%{total}' + in_focus: ' v fokusu' + hint_navigate: '[↑↓/jk] Navigacija' + hint_scroll: '[PgUp/PgDn ali Ctrl+U/Ctrl+D] Pomik' + hint_back: '[q] Nazaj' + hint_unlock: '[Enter] Odkleni' + hint_start_drill: '[Enter] Začni vajo' + unlock_msg_1: 'Ko je odklenjena, bo privzeta prilagodljiva vaja vključevala tipke iz te veje.' + unlock_msg_2: 'Če se želite osredotočiti le na to vejo, zaženite vajo neposredno iz drevesa veščin.' + confirm_unlock: 'Odkleniti %{branch}?' + confirm_yn: '[y] Odkleni [n/ESC] Prekliči' + lvl_prefix: 'Rav' + branch_primary_letters: 'Osnovne črke' + branch_capital_letters: 'Velike črke' + branch_numbers: 'Številke 0-9' + branch_prose_punctuation: 'Ločila v besedilu' + branch_whitespace: 'Presledki' + branch_code_symbols: 'Simboli kode' + level_frequency_order: 'Po pogostosti' + level_common_sentence_capitals: 'Pogoste velike začetnice' + level_name_capitals: 'Velike črke imen' + level_remaining_capitals: 'Preostale velike črke' + level_common_digits: 'Pogoste številke' + level_all_digits: 'Vse številke' + level_essential: 'Bistvena' + level_common: 'Pogosta' + level_expressive: 'Izrazna' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Zamik' + level_arithmetic_assignment: 'Aritmetika in prirejanje' + level_grouping: 'Združevanje' + level_logic_reference: 'Logika in referenca' + level_special: 'Posebno' + +# Mejniki +milestones: + unlock_title: ' Tipka odklenjena! ' + mastery_title: ' Tipka osvojena! ' + branches_title: ' Nove veje veščin na voljo! ' + branch_complete_title: ' Veja končana! ' + all_unlocked_title: ' Vse tipke odklenjene! ' + all_mastered_title: ' Popolna osvojitev tipkovnice! ' + unlocked: 'odklenjena' + mastered: 'osvojena' + use_finger: 'Uporabite %{finger}' + hold_right_shift: 'Držite desni Shift (desni mezinec)' + hold_left_shift: 'Držite levi Shift (levi mezinec)' + congratulations_all_letters: 'Čestitke! Osvojili ste vseh %{count} osnovnih črk' + new_branches_available: 'Nove veje veščin so na voljo:' + visit_skill_tree: 'Obiščite drevo veščin za odklepanje nove veje' + and_start_training: 'in začnite z vadbo!' + open_skill_tree: 'Pritisnite [t] za odprtje drevesa veščin' + branch_complete_msg: 'Dokončali ste vejo %{branch}!' + all_levels_mastered: 'Vseh %{count} ravni osvojenih.' + all_keys_confident: 'Vse tipke v tej veji so na polnem zaupanju.' + all_unlocked_msg: 'Odklenili ste vse tipke na tipkovnici!' + all_unlocked_desc: 'Vsak znak, simbol in modifikator je zdaj na voljo v vajah.' + keep_practicing_mastery: 'Nadaljujte z vadbo za gradnjo osvojitve — ko vsaka tipka doseže polno' + confidence_complete: 'zaupanje, boste dosegli popolno osvojitev tipkovnice!' + all_mastered_msg: 'Čestitke — dosegli ste popolno osvojitev tipkovnice!' + all_mastered_desc: 'Vsaka tipka na tipkovnici je na maksimalnem zaupanju.' + mastery_takes_practice: 'Osvojitev ni cilj — zahteva stalno vadbo.' + keep_drilling: 'Nadaljujte z vajami, da ohranite prednost.' + hint_skill_tree_continue: '[t] Odpri drevo veščin [Katerakoli tipka] Nadaljuj' + hint_any_key: 'Pritisnite katerokoli tipko za nadaljevanje' + input_blocked: 'Vnos začasno blokiran (še %{ms}ms)' + unlock_msg_1: 'Odlično! Nadaljujte z gradenjem veščin tipkanja.' + unlock_msg_2: 'Še ena tipka dodana v vaš arzenal!' + unlock_msg_3: 'Vaša tipkovnica raste! Kar tako naprej.' + unlock_msg_4: 'En korak bližje popolni osvojitvi tipkovnice!' + mastery_msg_1: 'Ta tipka je zdaj na polnem zaupanju!' + mastery_msg_2: 'To tipko obvladate v celoti!' + mastery_msg_3: 'Mišični spomin zaklenjen!' + mastery_msg_4: 'Še ena tipka osvojena!' + +# Raziskovalec tipkovnice +keyboard: + title: ' Tipkovnica ' + subtitle: 'Pritisnite ali kliknite tipko' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigacija' + hint_back: '[q/ESC] Nazaj' + key_label: 'Tipka: ' + finger_label: 'Prst: ' + hand_left: 'Leva' + hand_right: 'Desna' + finger_index: 'Kazalec' + finger_middle: 'Sredinec' + finger_ring: 'Prstanec' + finger_pinky: 'Mezinec' + finger_thumb: 'Palec' + overall_accuracy: ' Skupna točnost: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Ocenjena točnost: %{correct}/%{total} (%{pct}%%)' + confidence: 'Zaupanje: ' + no_data: 'Še ni podatkov' + no_data_short: 'Ni podatkov' + key_details: ' Podrobnosti tipke ' + key_details_char: ' Podrobnosti tipke: ''%{ch}'' ' + key_details_name: ' Podrobnosti tipke: %{name} ' + press_key_hint: 'Pritisnite tipko za ogled podrobnosti' + shift_label: 'Shift: ' + shift_no: 'Ne' + overall_avg_time: 'Skupni povpr. čas: ' + overall_best_time: 'Skupni najb. čas: ' + overall_samples: 'Skupni vzorci: ' + overall_accuracy_label: 'Skupna točnost: ' + branch_label: 'Veja: ' + level_label: 'Raven: ' + built_in_key: 'Vgrajena tipka' + unlocked_label: 'Odklenjena: ' + yes: 'Da' + no: 'Ne' + in_focus_label: 'V fokusu?: ' + mastery_label: 'Osvojitev: ' + mastery_locked: 'Zaklenjeno' + ranked_avg_time: 'Ocenjeni povpr. čas: ' + ranked_best_time: 'Ocenjeni najb. čas: ' + ranked_samples: 'Ocenjeni vzorci: ' + ranked_accuracy_label: 'Ocenjena točnost: ' + +# Uvodna pogovorna okna +intro: + passage_title: ' Nastavitev prenosov odlomkov ' + code_title: ' Nastavitev prenosov kode ' + enable_downloads: 'Omogoči omrežne prenose' + download_dir: 'Mapa prenosov' + paragraphs_per_book: 'Odstavkov na knjigo (0 = celotna)' + whole_book: 'celotna knjiga' + snippets_per_repo: 'Odrezkov na repo (0 = neomejeno)' + unlimited: 'neomejeno' + start_passage_drill: 'Začni vajo odlomkov' + start_code_drill: 'Začni vajo kode' + confirm: 'Potrdi' + hint_navigate: '[Gor/Dol] Navigacija' + hint_adjust: '[Levo/Desno] Prilagodi' + hint_edit: '[Tipkanje/Backspace] Uredi' + hint_confirm: '[Enter] Potrdi' + hint_cancel: '[ESC] Prekliči' + preparing_download: 'Pripravljam prenos...' + download_passage_title: ' Prenašanje vira odlomkov ' + download_code_title: ' Prenašanje vira kode ' + book_label: ' Knjiga: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bajtov' + downloaded_bytes: 'Preneseno: %{bytes} bajtov' + downloading_book_progress: 'Prenašam knjigo: [%{bar}] %{downloaded}/%{total} bajtov' + downloading_book_bytes: 'Prenašam knjigo: %{bytes} bajtov' + downloading_code_progress: 'Prenašam: [%{bar}] %{downloaded}/%{total} bajtov' + downloading_code_bytes: 'Prenašam: %{bytes} bajtov' + current_book: 'Trenutna: %{name} (knjiga %{done}/%{total})' + current_repo: 'Trenutni: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr lahko prenese odlomke iz Project Gutenberg za vajo tipkanja.' + passage_instructions_2: 'Knjige se prenesejo enkrat in se shranijo lokalno.' + passage_instructions_3: 'Nastavite prenose spodaj, nato zaženite vajo odlomkov.' + code_instructions_1: 'keydr lahko prenese odprtokodno kodo iz GitHub za vajo tipkanja.' + code_instructions_2: 'Koda se prenese enkrat in se shrani lokalno.' + code_instructions_3: 'Nastavite prenose spodaj, nato zaženite vajo kode.' + +# Statusna sporočila (iz app.rs) +status: + recovery_files: 'Najdene obnovitvene datoteke iz prekinjenega uvoza. Podatki so morda nedosledni — razmislite o ponovnem uvozu.' + dir_not_exist: 'Mapa ne obstaja: %{path}' + no_data_store: 'Shramba podatkov ni na voljo' + serialization_error: 'Napaka serializacije: %{error}' + exported_to: 'Izvoženo v %{path}' + export_failed: 'Izvoz neuspešen: %{error}' + could_not_read: 'Ni mogoče prebrati datoteke: %{error}' + invalid_export: 'Neveljavna izvozna datoteka: %{error}' + unsupported_version: 'Nepodprta različica izvoza: %{got} (pričakovana %{expected})' + import_failed: 'Uvoz neuspešen: %{error}' + imported_theme_fallback: 'Uvoženo uspešno (tema ''%{theme}'' ni najdena, uporabljam privzeto)' + imported_success: 'Uvoženo uspešno' + adaptive_unavailable: 'Prilagodljiv ocenjen način ni na voljo: %{error}' + switched_to: 'Preklopljeno na %{name}' + layout_changed: 'Razporeditev spremenjena na %{name}' + +# Napake (za prevod mejnih primerov vmesnika) +errors: + unknown_language: 'Neznan jezik: %{key}' + unknown_layout: 'Neznana razporeditev tipkovnice: %{key}' + unsupported_pair: 'Nepodprt par jezika/razporeditve: %{language} + %{layout}' + language_blocked: 'Jezik je blokiran glede na raven podpore: %{key}' + +# Skupno +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Nazaj' diff --git a/locales/sv.yml b/locales/sv.yml new file mode 100644 index 0000000..177f769 --- /dev/null +++ b/locales/sv.yml @@ -0,0 +1,457 @@ +# Main menu +menu: + subtitle: 'Terminal Skrivtroenare' + adaptive_drill: 'Adaptiv oevning' + adaptive_drill_desc: 'Fonetiska ord med adaptiv bokstavsupplaasning' + code_drill: 'Kodoevning' + code_drill_desc: 'Oeva paa att skriva kodsyntax' + passage_drill: 'Textoevning' + passage_drill_desc: 'Skriv av stycken ur boecker' + skill_tree: 'Faerdighetstraed' + skill_tree_desc: 'Visa framstegsgrenar och starta oevningar' + keyboard: 'Tangentbord' + keyboard_desc: 'Utforska tangentbordslayout och tangentstatistik' + statistics: 'Statistik' + statistics_desc: 'Visa din skrivstatistik' + settings: 'Installningar' + settings_desc: 'Konfigurera keydr' + day_streak: ' | %{days} dagars svit' + key_progress: ' Tangentframsteg %{unlocked}/%{total} (%{mastered} behaerskade) | Maal %{target} WPM%{streak}' + hint_start: '[1-3] Start' + hint_skill_tree: '[t] Faerdighetstraed' + hint_keyboard: '[b] Tangentbord' + hint_stats: '[s] Statistik' + hint_settings: '[c] Installningar' + hint_quit: '[q] Avsluta' + +# Drill screen +drill: + title: ' Oevning ' + mode_adaptive: 'Adaptiv' + mode_code: 'Kod (Orankad)' + mode_passage: 'Text (Orankad)' + focus_char: 'Fokus: ''%{ch}''' + focus_bigram: 'Fokus: "%{bigram}"' + focus_both: 'Fokus: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Nog' + header_err: 'Fel' + code_source: ' Kodkaella ' + passage_source: ' Textkaella ' + footer: '[ESC] Avsluta oevning [Backspace] Radera' + keys_reenabled: 'Tangenter aateraktiverade efter %{ms}ms' + hint_end: '[ESC] Avsluta oevning' + hint_backspace: '[Backspace] Radera' + +# Dashboard / drill result +dashboard: + title: ' Oevning klar ' + results: 'Resultat' + unranked_note_prefix: ' (Orankad' + unranked_note_suffix: ' racknas inte i faerdighetsgrenen)' + speed: ' Hastighet: ' + accuracy_label: ' Noggrannhet: ' + time_label: ' Tid: ' + errors_label: ' Fel: ' + correct_detail: ' (%{correct}/%{total} korrekta)' + input_blocked: ' Inmatning tillfalligt blockerad ' + input_blocked_ms: '(%{ms}ms aaterstar)' + hint_continue: '[c/Enter/Space] Fortsaett' + hint_retry: '[r] Foersoek igen' + hint_menu: '[q] Meny' + hint_stats: '[s] Statistik' + hint_delete: '[x] Radera' + +# Stats sidebar (during drill) +sidebar: + title: ' Statistik ' + wpm: 'WPM: ' + target: 'Maal: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Noggrannhet: ' + progress: 'Framsteg: ' + correct: 'Korrekta: ' + errors: 'Fel: ' + time: 'Tid: ' + last_drill: ' Senaste oevning ' + vs_avg: ' vs snitt: ' + +# Statistics dashboard +stats: + title: ' Statistik ' + empty: 'Inga oevningar avklarade aennu. Boerja skriva!' + tab_dashboard: '[1] Dashboard' + tab_history: '[2] Historik' + tab_activity: '[3] Aktivitet' + tab_accuracy: '[4] Noggrannhet' + tab_timing: '[5] Timing' + tab_ngrams: '[6] N-gram' + hint_back: '[ESC] Tillbaka' + hint_next_tab: '[Tab] Naesta flik' + hint_switch_tab: '[1-6] Byt flik' + hint_navigate: '[j/k] Navigera' + hint_page: '[PgUp/PgDn] Sida' + hint_delete: '[x] Radera' + summary_title: ' Sammanfattning ' + drills: ' Oevningar: ' + avg_wpm: ' Snitt WPM: ' + best_wpm: ' Baesta WPM: ' + accuracy_label: ' Noggrannhet: ' + total_time: ' Total tid: ' + wpm_chart_title: ' WPM per oevning (Senaste 20, Maal: %{target}) ' + accuracy_chart_title: ' Noggrannhet %% (Senaste 50 oevningar) ' + chart_drill: 'Oevning #' + chart_accuracy_pct: 'Noggrannhet %%' + sessions_title: ' Senaste sessioner ' + session_header: ' # WPM Raa Nog%% Tid Datum/Tid Laege Rankad Delvis' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Radera session #%{idx}? (y/n)' + confirm_title: ' Bekraefta ' + yes: 'ja' + no: 'nej' + keyboard_accuracy_title: ' Tangentbords noggrannhet %% ' + keyboard_timing_title: ' Tangentbords timing (ms) ' + slowest_keys_title: ' Laangsammaste tangenter (ms) ' + fastest_keys_title: ' Snabbaste tangenter (ms) ' + worst_accuracy_title: ' Saemst noggrannhet (%%) ' + best_accuracy_title: ' Baest noggrannhet (%%) ' + not_enough_data: ' Inte tillraeckligt med data' + streaks_title: ' Sviter ' + current_streak: ' Nuvarande: ' + best_streak: ' Baesta: ' + active_days: ' Aktiva dagar: ' + top_days_none: ' Toppdagar: inga' + top_days: ' Toppdagar: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Nog: %{pct}%%' + keys_label: ' Tangenter: %{unlocked}/%{total} (%{mastered} behaerskade)' + ngram_empty: 'Genomfoer naagra adaptiva oevningar foer att se n-gram data' + ngram_header_speed_narrow: ' Bgrm Hast Foerv Anom%' + ngram_header_error_narrow: ' Bgrm Fel Stp Freq Foerv Anom%' + ngram_header_speed: ' Bigram Hast Foervant Stickpr. Anom%' + ngram_header_error: ' Bigram Fel Stickpr. Freq Foervant Anom%' + focus_title: ' Aktivt fokus ' + focus_char_label: ' Fokus: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'fel' + anomaly_speed: 'hastighet' + focus_detail_both: ' Tecken ''%{ch}'': svagaste tangent | Bigram %{label}: %{type}-anomali %{pct}%%' + focus_detail_char_only: ' Tecken ''%{ch}'': svagaste tangent, inga bekraeftade bigram-anomalier' + focus_detail_bigram_only: ' (%{type}-anomali: %{pct}%%)' + focus_empty: ' Genomfoer naagra adaptiva oevningar foer att se fokusdata' + error_anomalies_title: ' Fel-anomalier (%{count}) ' + no_error_anomalies: ' Inga fel-anomalier upptaeckta' + speed_anomalies_title: ' Hastighets-anomalier (%{count}) ' + no_speed_anomalies: ' Inga hastighets-anomalier upptaeckta' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Hes: >%{ms}ms' + gain_label: ' | Vinst: %{value}' + gain_interval: ' (var 50:e)' + focus_char_value: 'Tecken ''%{ch}''' + +# Activity heatmap +heatmap: + title: ' Daglig aktivitet (Sessioner per dag) ' + jan: 'Jan' + feb: 'Feb' + mar: 'Mar' + apr: 'Apr' + may: 'Maj' + jun: 'Jun' + jul: 'Jul' + aug: 'Aug' + sep: 'Sep' + oct: 'Okt' + nov: 'Nov' + dec: 'Dec' + +# Chart +chart: + wpm_over_time: ' WPM oever tid ' + drill_number: 'Oevning #' + +# Settings +settings: + title: ' Installningar ' + subtitle: 'Piltangenter foer att navigera, Enter/Hoeger foer att aendra, ESC foer att spara' + target_wpm: 'Maal-WPM' + theme: 'Tema' + word_count: 'Antal ord' + ui_language: 'Spraak (UI)' + dictionary_language: 'Ordlistespraak' + keyboard_layout: 'Tangentbordslayout' + code_language: 'Kodspraak' + code_downloads: 'Kod-nedladdningar' + on: 'Paa' + off: 'Av' + code_download_dir: 'Kod-nedladdningsmapp' + snippets_per_repo: 'Utdrag per repo' + unlimited: 'Obegransat' + download_code_now: 'Ladda ner kod nu' + run_downloader: 'Starta nedladdning' + passage_downloads: 'Text-nedladdningar' + passage_download_dir: 'Text-nedladdningsmapp' + paragraphs_per_book: 'Stycken per bok' + whole_book: 'Hela boken' + download_passages_now: 'Ladda ner texter nu' + export_path: 'Exportsoekvaeg' + export_data: 'Exportera data' + export_now: 'Exportera nu' + import_path: 'Importsoekvaeg' + import_data: 'Importera data' + import_now: 'Importera nu' + hint_save_back: '[ESC] Spara & tillbaka' + hint_change_value: '[Enter/pilar] AEndra vaerde' + hint_edit_path: '[Enter paa soekvaeg] Redigera' + hint_move: '[←→] Flytta' + hint_tab_complete: '[Tab] Komplettera (i slutet)' + hint_confirm: '[Enter] Bekraefta' + hint_cancel: '[Esc] Avbryt' + success_title: ' Lyckades ' + error_title: ' Fel ' + press_any_key: 'Tryck paa valfri tangent' + file_exists_title: ' Filen finns ' + file_exists: 'En fil finns redan paa denna soekvaeg.' + overwrite_rename: '[d] Skriv oever [r] Byt namn [Esc] Avbryt' + erase_warning: 'Detta kommer att radera din nuvarande data.' + export_first: 'Exportera foerst om du vill behalla den.' + proceed_yn: 'Fortsaett? (y/n)' + confirm_import_title: ' Bekraefta import ' + +# Selection screens +select: + dictionary_language_title: ' Vaelj ordlistespraak ' + keyboard_layout_title: ' Vaelj tangentbordslayout ' + code_language_title: ' Vaelj kodspraak ' + passage_source_title: ' Vaelj textkaella ' + ui_language_title: ' Vaelj spraak (UI) ' + more_above: '... %{count} fler ovan ...' + more_below: '... %{count} fler nedan ...' + current: ' (nuvarande)' + disabled: ' (inaktiverad)' + enabled_default: ' (aktiverad, standard: %{layout})' + enabled: ' (aktiverad)' + disabled_blocked: ' (inaktiverad: blockerad)' + built_in: ' (inbyggd)' + cached: ' (sparad)' + disabled_download: ' (inaktiverad: nedladdning kraevs)' + download_required: ' (nedladdning kraevs)' + hint_navigate: '[Upp/Ner/PgUp/PgDn] Navigera' + hint_confirm: '[Enter] Bekraefta' + hint_back: '[ESC] Tillbaka' + language_resets_layout: 'Spraakval aaterstaeller tangentbordslayouten till spraakens standard.' + layout_no_language_change: 'Layoutaendringar aendrar inte ordlistespraaket.' + disabled_network_notice: 'Vissa spraak aer inaktiverade: aktivera naetverksnedladdningar i intro/installningar.' + disabled_sources_notice: 'Vissa kaellor aer inaktiverade: aktivera naetverksnedladdningar i intro/installningar.' + passage_all: 'Alla (Inbyggda + alla boecker)' + passage_builtin: 'Endast inbyggda passager' + passage_book_prefix: 'Bok: %{title}' + +# Progress +progress: + overall_key_progress: 'Total tangentframsteg' + unlocked_mastered: '%{unlocked}/%{total} uplaasta (%{mastered} behaerskade)' + +# Skill tree +skill_tree: + title: ' Faerdighetstraed ' + locked: 'Laast' + unlocked: 'uplaast' + mastered: 'behaerskad' + in_progress: 'paagaar' + complete: 'klar' + locked_status: 'laast' + locked_notice: 'Slutfoer %{count} grundboekstaver foer att laasa upp grenar' + branches_separator: 'Grenar (tillgaengliga efter %{count} grundboekstaver)' + unlocked_letters: '%{unlocked}/%{total} boekstaver uplaasta' + level: 'Nivaa %{current}/%{total}' + level_zero: 'Nivaa 0/%{total}' + in_focus: ' i fokus' + hint_navigate: '[↑↓/jk] Navigera' + hint_scroll: '[PgUp/PgDn eller Ctrl+U/Ctrl+D] Scrolla' + hint_back: '[q] Tillbaka' + hint_unlock: '[Enter] Laas upp' + hint_start_drill: '[Enter] Starta oevning' + unlock_msg_1: 'Efter upplaasning blandas uplaasta tangenter fraan denna gren in i den adaptiva oevningen.' + unlock_msg_2: 'Vill du bara oeva denna gren, starta en oevning direkt fraan denna gren i Faerdighetsgrenen.' + confirm_unlock: 'Laas upp %{branch}?' + confirm_yn: '[y] Laas upp [n/ESC] Avbryt' + lvl_prefix: 'Niv' + branch_primary_letters: 'Grundboekstaver' + branch_capital_letters: 'Versaler' + branch_numbers: 'Siffror 0-9' + branch_prose_punctuation: 'Skiljetecken' + branch_whitespace: 'Blanksteg' + branch_code_symbols: 'Kodsymboler' + level_frequency_order: 'Frekvensordning' + level_common_sentence_capitals: 'Vanliga meningsversaler' + level_name_capitals: 'Namnversaler' + level_remaining_capitals: 'Oevriga versaler' + level_common_digits: 'Vanliga siffror' + level_all_digits: 'Alla siffror' + level_essential: 'Grundlaeggande' + level_common: 'Vanliga' + level_expressive: 'Uttrycksfulla' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Indrag' + level_arithmetic_assignment: 'Aritmetik & Tilldelning' + level_grouping: 'Gruppering' + level_logic_reference: 'Logik & Referens' + level_special: 'Special' + +# Milestones +milestones: + unlock_title: ' Tangent uplaast! ' + mastery_title: ' Tangent behaerskad! ' + branches_title: ' Nya faerdighetsgrenar tillgaengliga! ' + branch_complete_title: ' Gren klar! ' + all_unlocked_title: ' Alla tangenter uplaasta! ' + all_mastered_title: ' Full tangentbordsbehaerskning! ' + unlocked: 'uplaast' + mastered: 'behaerskad' + use_finger: 'Anvaend ditt %{finger}' + hold_right_shift: 'Haall hoeger Shift (hoeger lillfinger)' + hold_left_shift: 'Haall vaenster Shift (vaenster lillfinger)' + congratulations_all_letters: 'Grattis! Du har behaerskat alla %{count} grundboekstaver' + new_branches_available: 'Nya faerdighetsgrenar aer nu tillgaengliga:' + visit_skill_tree: 'Besoek Faerdighetsgrenen foer att laasa upp en ny gren' + and_start_training: 'och boerja traena!' + open_skill_tree: 'Tryck [t] foer att oeppna Faerdighetsgrenen nu' + branch_complete_msg: 'Du har slutfoert grenen %{branch}!' + all_levels_mastered: 'Alla %{count} nivaaer behaerskade.' + all_keys_confident: 'Varje tangent i denna gren har fullt foertroende.' + all_unlocked_msg: 'Du har laast upp varje tangent paa tangentbordet!' + all_unlocked_desc: 'Varje tecken, symbol och modifierare aer nu tillgaenglig i dina oevningar.' + keep_practicing_mastery: 'Fortsaett oeva foer att bygga behaerskning — naer varje tangent naar fullt' + confidence_complete: 'foertroende har du uppnaatt fullstaendig tangentbordsbehaerskning!' + all_mastered_msg: 'Grattis — du har uppnaatt fullstaendig tangentbordsbehaerskning!' + all_mastered_desc: 'Varje tangent paa tangentbordet har maximalt foertroende.' + mastery_takes_practice: 'Behaerskning aer inte en destination — det kraever staendig oevning.' + keep_drilling: 'Fortsaett oeva foer att behalla din skaerpa.' + hint_skill_tree_continue: '[t] Faerdighetstraed [Annan tangent] Fortsaett' + hint_any_key: 'Tryck paa valfri tangent foer att fortsaetta' + input_blocked: 'Inmatning tillfalligt blockerad (%{ms}ms aaterstar)' + unlock_msg_1: 'Bra jobbat! Fortsaett bygga dina skrivfaerdigheter.' + unlock_msg_2: 'Annu en tangent i din arsenal!' + unlock_msg_3: 'Ditt tangentbord vaexer! Fortsaett saa.' + unlock_msg_4: 'Ett steg naermare full tangentbordsbehaerskning!' + mastery_msg_1: 'Denna tangent har nu fullt foertroende!' + mastery_msg_2: 'Du behaerskar denna tangent perfekt!' + mastery_msg_3: 'Muskelminne foerankrat!' + mastery_msg_4: 'Annu en tangent eroevrrad!' + +# Keyboard explorer +keyboard: + title: ' Tangentbord ' + subtitle: 'Tryck paa en tangent eller klicka paa en tangent' + hint_navigate: '[←→↑↓/hjkl/Tab] Navigera' + hint_back: '[q/ESC] Tillbaka' + key_label: 'Tangent: ' + finger_label: 'Finger: ' + hand_left: 'Vaenster' + hand_right: 'Hoeger' + finger_index: 'Pekfinger' + finger_middle: 'Langfinger' + finger_ring: 'Ringfinger' + finger_pinky: 'Lillfinger' + finger_thumb: 'Tumme' + overall_accuracy: ' Total noggrannhet: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Rankad noggrannhet: %{correct}/%{total} (%{pct}%%)' + confidence: 'Foertroende: ' + no_data: 'Ingen data aennu' + no_data_short: 'Ingen data' + key_details: ' Tangentdetaljer ' + key_details_char: ' Tangentdetaljer: ''%{ch}'' ' + key_details_name: ' Tangentdetaljer: %{name} ' + press_key_hint: 'Tryck paa en tangent foer detaljer' + shift_label: 'Shift: ' + shift_no: 'Nej' + overall_avg_time: 'Total snittid: ' + overall_best_time: 'Total baesta tid: ' + overall_samples: 'Total stickprov: ' + overall_accuracy_label: 'Total noggrannhet: ' + branch_label: 'Gren: ' + level_label: 'Nivaa: ' + built_in_key: 'Inbyggd tangent' + unlocked_label: 'Uplaast: ' + yes: 'Ja' + no: 'Nej' + in_focus_label: 'I fokus?: ' + mastery_label: 'Behaerskning: ' + mastery_locked: 'Laast' + ranked_avg_time: 'Rankad snittid: ' + ranked_best_time: 'Rankad baesta tid: ' + ranked_samples: 'Rankade stickprov: ' + ranked_accuracy_label: 'Rankad noggrannhet: ' + +# Intro dialogs +intro: + passage_title: ' Text-nedladdning installning ' + code_title: ' Kod-nedladdning installning ' + enable_downloads: 'Aktivera naetverksnedladdningar' + download_dir: 'Nedladdningsmapp' + paragraphs_per_book: 'Stycken per bok (0 = hela)' + whole_book: 'hela boken' + snippets_per_repo: 'Utdrag per repo (0 = obegransat)' + unlimited: 'obegransat' + start_passage_drill: 'Starta textoevning' + start_code_drill: 'Starta kodoevning' + confirm: 'Bekraefta' + hint_navigate: '[Upp/Ner] Navigera' + hint_adjust: '[Vaenster/Hoeger] Justera' + hint_edit: '[Skriv/Backspace] Redigera' + hint_confirm: '[Enter] Bekraefta' + hint_cancel: '[ESC] Avbryt' + preparing_download: 'Forbereder nedladdning...' + download_passage_title: ' Laddar ner textkaella ' + download_code_title: ' Laddar ner kodkaella ' + book_label: ' Bok: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bytes' + downloaded_bytes: 'Nedladdat: %{bytes} bytes' + downloading_book_progress: 'Laddar ner aktuell bok: [%{bar}] %{downloaded}/%{total} bytes' + downloading_book_bytes: 'Laddar ner aktuell bok: %{bytes} bytes' + downloading_code_progress: 'Laddar ner: [%{bar}] %{downloaded}/%{total} bytes' + downloading_code_bytes: 'Laddar ner: %{bytes} bytes' + current_book: 'Aktuell: %{name} (bok %{done}/%{total})' + current_repo: 'Aktuell: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr kan ladda ner texter fraan Project Gutenberg foer skrivoevning.' + passage_instructions_2: 'Boecker laddas ner en gaang och sparas lokalt.' + passage_instructions_3: 'Konfigurera nedladdningsinstallningar nedan och starta en textoevning.' + code_instructions_1: 'keydr kan ladda ner oeppenkallkod fraan GitHub foer skrivoevning.' + code_instructions_2: 'Kod laddas ner en gaang och sparas lokalt.' + code_instructions_3: 'Konfigurera nedladdningsinstallningar nedan och starta en kodoevning.' + +# Status messages (from app.rs) +status: + recovery_files: 'Aaterstaellningsfiler hittade fraan avbruten import. Data kan vara inkonsekvent — oevervaeg att importera paa nytt.' + dir_not_exist: 'Mappen finns inte: %{path}' + no_data_store: 'Inget datalager tillgaengligt' + serialization_error: 'Serialiseringsfel: %{error}' + exported_to: 'Exporterad till %{path}' + export_failed: 'Export misslyckades: %{error}' + could_not_read: 'Kunde inte laesa filen: %{error}' + invalid_export: 'Ogiltig exportfil: %{error}' + unsupported_version: 'Exportversion stoeds inte: %{got} (foervaentad %{expected})' + import_failed: 'Import misslyckades: %{error}' + imported_theme_fallback: 'Importerad (tema ''%{theme}'' hittades inte, standard anvaends)' + imported_success: 'Importerad' + adaptive_unavailable: 'Adaptivt rankat laege inte tillgaengligt: %{error}' + switched_to: 'Bytt till %{name}' + layout_changed: 'Layout aendrad till %{name}' + +# Errors (for UI boundary translation) +errors: + unknown_language: 'Okaent spraak: %{key}' + unknown_layout: 'Okaend tangentbordslayout: %{key}' + unsupported_pair: 'Spraak-/layoutpar stoeds inte: %{language} + %{layout}' + language_blocked: 'Spraak blockerat av stoednivaa: %{key}' + +# Common +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Tillbaka' diff --git a/locales/tr.yml b/locales/tr.yml new file mode 100644 index 0000000..c646a36 --- /dev/null +++ b/locales/tr.yml @@ -0,0 +1,457 @@ +# Ana menü +menu: + subtitle: 'Terminal Yazma Eğitmeni' + adaptive_drill: 'Uyarlanır Alıştırma' + adaptive_drill_desc: 'Uyarlanır harf açma ile fonetik kelimeler' + code_drill: 'Kod Alıştırması' + code_drill_desc: 'Kod sözdizimi yazma alıştırması' + passage_drill: 'Metin Alıştırması' + passage_drill_desc: 'Kitaplardan pasajları yazın' + skill_tree: 'Yetenek Ağacı' + skill_tree_desc: 'İlerleme dallarını görüntüle ve alıştırma başlat' + keyboard: 'Klavye' + keyboard_desc: 'Klavye düzenini ve tuş istatistiklerini incele' + statistics: 'İstatistikler' + statistics_desc: 'Yazma istatistiklerinizi görüntüleyin' + settings: 'Ayarlar' + settings_desc: 'keydr yapılandır' + day_streak: ' | %{days} gün seri' + key_progress: ' Tuş İlerlemesi %{unlocked}/%{total} (%{mastered} ustalaşmış) | Hedef %{target} WPM%{streak}' + hint_start: '[1-3] Başla' + hint_skill_tree: '[t] Yetenek Ağacı' + hint_keyboard: '[b] Klavye' + hint_stats: '[s] İstatistikler' + hint_settings: '[c] Ayarlar' + hint_quit: '[q] Çıkış' + +# Alıştırma ekranı +drill: + title: ' Alıştırma ' + mode_adaptive: 'Uyarlanır' + mode_code: 'Kod (Sıralamasız)' + mode_passage: 'Metin (Sıralamasız)' + focus_char: 'Odak: ''%{ch}''' + focus_bigram: 'Odak: "%{bigram}"' + focus_both: 'Odak: ''%{ch}'' + "%{bigram}"' + header_wpm: 'WPM' + header_acc: 'Doğ' + header_err: 'Hta' + code_source: ' Kod kaynağı ' + passage_source: ' Metin kaynağı ' + footer: '[ESC] Alıştırmayı bitir [Backspace] Sil' + keys_reenabled: 'Tuşlar %{ms}ms sonra yeniden etkin' + hint_end: '[ESC] Alıştırmayı bitir' + hint_backspace: '[Backspace] Sil' + +# Pano / alıştırma sonucu +dashboard: + title: ' Alıştırma Tamamlandı ' + results: 'Sonuçlar' + unranked_note_prefix: ' (Sırasız' + unranked_note_suffix: ' yetenek ağacına sayılmaz)' + speed: ' Hız: ' + accuracy_label: ' Doğruluk: ' + time_label: ' Süre: ' + errors_label: ' Hatalar: ' + correct_detail: ' (%{correct}/%{total} doğru)' + input_blocked: ' Giriş geçici olarak engellendi ' + input_blocked_ms: '(%{ms}ms kaldı)' + hint_continue: '[c/Enter/Space] Devam' + hint_retry: '[r] Tekrar' + hint_menu: '[q] Menü' + hint_stats: '[s] İstatistikler' + hint_delete: '[x] Sil' + +# İstatistik kenar çubuğu (alıştırma sırasında) +sidebar: + title: ' İstatistikler ' + wpm: 'WPM: ' + target: 'Hedef: ' + target_wpm: '%{wpm} WPM' + accuracy: 'Doğruluk: ' + progress: 'İlerleme: ' + correct: 'Doğru: ' + errors: 'Hatalar: ' + time: 'Süre: ' + last_drill: ' Son Alıştırma ' + vs_avg: ' vs ort: ' + +# İstatistik panosu +stats: + title: ' İstatistikler ' + empty: 'Henüz alıştırma yapılmadı. Yazmaya başlayın!' + tab_dashboard: '[1] Pano' + tab_history: '[2] Geçmiş' + tab_activity: '[3] Aktivite' + tab_accuracy: '[4] Doğruluk' + tab_timing: '[5] Zamanlama' + tab_ngrams: '[6] N-gramlar' + hint_back: '[ESC] Geri' + hint_next_tab: '[Tab] Sonraki sekme' + hint_switch_tab: '[1-6] Sekme değiştir' + hint_navigate: '[j/k] Gezin' + hint_page: '[PgUp/PgDn] Sayfa' + hint_delete: '[x] Sil' + summary_title: ' Özet ' + drills: ' Alıştırmalar: ' + avg_wpm: ' Ort WPM: ' + best_wpm: ' En iyi WPM: ' + accuracy_label: ' Doğruluk: ' + total_time: ' Toplam süre: ' + wpm_chart_title: ' Alıştırma başına WPM (son 20, hedef: %{target}) ' + accuracy_chart_title: ' Doğruluk %% (Son 50 Alıştırma) ' + chart_drill: 'Alıştırma #' + chart_accuracy_pct: 'Doğruluk %%' + sessions_title: ' Son Oturumlar ' + session_header: ' # WPM Ham Doğ%% Süre Tarih/Saat Mod Sıralı Kısmi' + session_separator: ' ─────────────────────────────────────────────────────────────────────' + delete_confirm: 'Oturum #%{idx} silinsin mi? (y/n)' + confirm_title: ' Onayla ' + yes: 'evet' + no: 'hayır' + keyboard_accuracy_title: ' Klavye Doğruluğu %% ' + keyboard_timing_title: ' Klavye Zamanlaması (ms) ' + slowest_keys_title: ' En Yavaş Tuşlar (ms) ' + fastest_keys_title: ' En Hızlı Tuşlar (ms) ' + worst_accuracy_title: ' En Kötü Doğruluk (%%) ' + best_accuracy_title: ' En İyi Doğruluk (%%) ' + not_enough_data: ' Yeterli veri yok' + streaks_title: ' Seriler ' + current_streak: ' Mevcut: ' + best_streak: ' En iyi: ' + active_days: ' Aktif Günler: ' + top_days_none: ' En iyi Günler: yok' + top_days: ' En iyi Günler: %{days}' + wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)' + acc_label: ' Doğ: %{pct}%%' + keys_label: ' Tuşlar: %{unlocked}/%{total} (%{mastered} ustalaşmış)' + ngram_empty: 'N-gram verilerini görmek için uyarlanır alıştırmalar yapın' + ngram_header_speed_narrow: ' Bgrm Hız Bekl Anom%' + ngram_header_error_narrow: ' Bgrm Hta Örn Oran Bekl Anom%' + ngram_header_speed: ' Bigram Hız Beklenen Örnekler Anom%' + ngram_header_error: ' Bigram Hatalar Örnekler Oran Beklenen Anom%' + focus_title: ' Aktif Odak ' + focus_char_label: ' Odak: ' + focus_bigram_value: 'Bigram %{label}' + focus_plus: ' + ' + anomaly_error: 'hata' + anomaly_speed: 'hız' + focus_detail_both: ' Karakter ''%{ch}'': en zayıf tuş | Bigram %{label}: %{type} anomalisi %{pct}%%' + focus_detail_char_only: ' Karakter ''%{ch}'': en zayıf tuş, onaylanmış bigram anomalisi yok' + focus_detail_bigram_only: ' (%{type} anomalisi: %{pct}%%)' + focus_empty: ' Odak verilerini görmek için uyarlanır alıştırmalar yapın' + error_anomalies_title: ' Hata Anomalileri (%{count}) ' + no_error_anomalies: ' Hata anomalisi tespit edilmedi' + speed_anomalies_title: ' Hız Anomalileri (%{count}) ' + no_speed_anomalies: ' Hız anomalisi tespit edilmedi' + scope_label_prefix: ' ' + bi_label: ' | Bi: %{count}' + tri_label: ' | Tri: %{count}' + hes_label: ' | Dur: >%{ms}ms' + gain_label: ' | Kazanç: %{value}' + gain_interval: ' (her 50)' + focus_char_value: 'Karakter ''%{ch}''' + +# Aktivite ısı haritası +heatmap: + title: ' Günlük Aktivite (Günlük Oturum Sayısı) ' + jan: 'Oca' + feb: 'Şub' + mar: 'Mar' + apr: 'Nis' + may: 'May' + jun: 'Haz' + jul: 'Tem' + aug: 'Ağu' + sep: 'Eyl' + oct: 'Eki' + nov: 'Kas' + dec: 'Ara' + +# Grafik +chart: + wpm_over_time: ' Zamana Göre WPM ' + drill_number: 'Alıştırma #' + +# Ayarlar +settings: + title: ' Ayarlar ' + subtitle: 'Gezinmek için okları, değiştirmek için Enter/Sağ, kaydetmek için ESC kullanın' + target_wpm: 'Hedef WPM' + theme: 'Tema' + word_count: 'Kelime Sayısı' + ui_language: 'Arayüz Dili' + dictionary_language: 'Sözlük Dili' + keyboard_layout: 'Klavye Düzeni' + code_language: 'Programlama Dili' + code_downloads: 'Kod İndirmeleri' + on: 'Açık' + off: 'Kapalı' + code_download_dir: 'Kod İndirme Klasörü' + snippets_per_repo: 'Repo başına parçacık' + unlimited: 'Sınırsız' + download_code_now: 'Kodu Şimdi İndir' + run_downloader: 'İndiriciyi çalıştır' + passage_downloads: 'Metin İndirmeleri' + passage_download_dir: 'Metin İndirme Klasörü' + paragraphs_per_book: 'Kitap başına paragraf' + whole_book: 'Tüm kitap' + download_passages_now: 'Metinleri Şimdi İndir' + export_path: 'Dışa Aktarma Yolu' + export_data: 'Veriyi Dışa Aktar' + export_now: 'Şimdi dışa aktar' + import_path: 'İçe Aktarma Yolu' + import_data: 'Veriyi İçe Aktar' + import_now: 'Şimdi içe aktar' + hint_save_back: '[ESC] Kaydet ve geri' + hint_change_value: '[Enter/oklar] Değer değiştir' + hint_edit_path: '[Enter yolda] Düzenle' + hint_move: '[←→] Taşı' + hint_tab_complete: '[Tab] Tamamla (sonda)' + hint_confirm: '[Enter] Onayla' + hint_cancel: '[Esc] İptal' + success_title: ' Başarılı ' + error_title: ' Hata ' + press_any_key: 'Herhangi bir tuşa basın' + file_exists_title: ' Dosya Mevcut ' + file_exists: 'Bu yolda zaten bir dosya var.' + overwrite_rename: '[d] Üzerine yaz [r] Yeniden adlandır [Esc] İptal' + erase_warning: 'Bu mevcut verilerinizi silecek.' + export_first: 'Saklamak istiyorsanız önce dışa aktarın.' + proceed_yn: 'Devam edilsin mi? (y/n)' + confirm_import_title: ' İçe Aktarmayı Onayla ' + +# Seçim ekranları +select: + dictionary_language_title: ' Sözlük Dilini Seçin ' + keyboard_layout_title: ' Klavye Düzenini Seçin ' + code_language_title: ' Programlama Dilini Seçin ' + passage_source_title: ' Metin Kaynağını Seçin ' + ui_language_title: ' Arayüz Dilini Seçin ' + more_above: '... yukarıda %{count} daha ...' + more_below: '... aşağıda %{count} daha ...' + current: ' (mevcut)' + disabled: ' (devre dışı)' + enabled_default: ' (etkin, varsayılan: %{layout})' + enabled: ' (etkin)' + disabled_blocked: ' (devre dışı: engelli)' + built_in: ' (yerleşik)' + cached: ' (önbelleğe alınmış)' + disabled_download: ' (devre dışı: indirme gerekli)' + download_required: ' (indirme gerekli)' + hint_navigate: '[Yukarı/Aşağı/PgUp/PgDn] Gezin' + hint_confirm: '[Enter] Onayla' + hint_back: '[ESC] Geri' + language_resets_layout: 'Dil seçimi, klavye düzenini o dilin varsayılanına sıfırlar.' + layout_no_language_change: 'Düzen değişiklikleri sözlük dilini değiştirmez.' + disabled_network_notice: 'Bazı diller devre dışı: giriş/ayarlarda ağ indirmelerini etkinleştirin.' + disabled_sources_notice: 'Bazı kaynaklar devre dışı: giriş/ayarlarda ağ indirmelerini etkinleştirin.' + passage_all: 'Tümü (Yerleşik + tüm kitaplar)' + passage_builtin: 'Yalnızca yerleşik metinler' + passage_book_prefix: 'Kitap: %{title}' + +# İlerleme +progress: + overall_key_progress: 'Genel Tuş İlerlemesi' + unlocked_mastered: '%{unlocked}/%{total} açılmış (%{mastered} ustalaşmış)' + +# Yetenek ağacı +skill_tree: + title: ' Yetenek Ağacı ' + locked: 'Kilitli' + unlocked: 'açılmış' + mastered: 'ustalaşmış' + in_progress: 'devam ediyor' + complete: 'tamamlanmış' + locked_status: 'kilitli' + locked_notice: 'Dalları açmak için %{count} ana harfi tamamlayın' + branches_separator: 'Dallar (%{count} ana harften sonra kullanılabilir)' + unlocked_letters: '%{unlocked}/%{total} harf açılmış' + level: 'Seviye %{current}/%{total}' + level_zero: 'Seviye 0/%{total}' + in_focus: ' odakta' + hint_navigate: '[↑↓/jk] Gezin' + hint_scroll: '[PgUp/PgDn veya Ctrl+U/Ctrl+D] Kaydır' + hint_back: '[q] Geri' + hint_unlock: '[Enter] Aç' + hint_start_drill: '[Enter] Alıştırma Başlat' + unlock_msg_1: 'Açıldıktan sonra varsayılan uyarlanır alıştırma bu dalın açılmış tuşlarını karıştıracak.' + unlock_msg_2: 'Yalnızca bu dala odaklanmak istiyorsanız Yetenek Ağacından doğrudan alıştırma başlatın.' + confirm_unlock: '%{branch} açılsın mı?' + confirm_yn: '[y] Aç [n/ESC] İptal' + lvl_prefix: 'Svy' + branch_primary_letters: 'Ana Harfler' + branch_capital_letters: 'Büyük Harfler' + branch_numbers: 'Rakamlar 0-9' + branch_prose_punctuation: 'Noktalama İşaretleri' + branch_whitespace: 'Boşluk Karakterleri' + branch_code_symbols: 'Kod Sembolleri' + level_frequency_order: 'Sıklık Sırası' + level_common_sentence_capitals: 'Yaygın Cümle Büyük Harfleri' + level_name_capitals: 'İsim Büyük Harfleri' + level_remaining_capitals: 'Kalan Büyük Harfler' + level_common_digits: 'Yaygın Rakamlar' + level_all_digits: 'Tüm Rakamlar' + level_essential: 'Temel' + level_common: 'Yaygın' + level_expressive: 'İfade Edici' + level_enter_return: 'Enter/Return' + level_tab_indent: 'Tab/Girinti' + level_arithmetic_assignment: 'Aritmetik ve Atama' + level_grouping: 'Gruplama' + level_logic_reference: 'Mantık ve Başvuru' + level_special: 'Özel' + +# Kilometre taşları +milestones: + unlock_title: ' Tuş Açıldı! ' + mastery_title: ' Tuş Ustalaşıldı! ' + branches_title: ' Yeni Yetenek Dalları Mevcut! ' + branch_complete_title: ' Dal Tamamlandı! ' + all_unlocked_title: ' Tüm Tuşlar Açıldı! ' + all_mastered_title: ' Tam Klavye Ustalığı! ' + unlocked: 'açıldı' + mastered: 'ustalaşıldı' + use_finger: '%{finger} kullanın' + hold_right_shift: 'Sağ Shift''i tutun (sağ serçe parmak)' + hold_left_shift: 'Sol Shift''i tutun (sol serçe parmak)' + congratulations_all_letters: 'Tebrikler! Tüm %{count} ana harfte ustalaştınız' + new_branches_available: 'Yeni yetenek dalları artık mevcut:' + visit_skill_tree: 'Yeni bir dal açmak için Yetenek Ağacını ziyaret edin' + and_start_training: 've eğitime başlayın!' + open_skill_tree: 'Yetenek Ağacını açmak için [t] basın' + branch_complete_msg: '%{branch} dalını tamamladınız!' + all_levels_mastered: 'Tüm %{count} seviye ustalaşıldı.' + all_keys_confident: 'Bu daldaki her tuş tam güven seviyesinde.' + all_unlocked_msg: 'Klavyedeki tüm tuşları açtınız!' + all_unlocked_desc: 'Her karakter, sembol ve değiştirici artık alıştırmalarda mevcut.' + keep_practicing_mastery: 'Ustalık kazanmak için alıştırmaya devam edin — her tuş tam' + confidence_complete: 'güvene ulaştığında, tam klavye ustalığına erişmiş olacaksınız!' + all_mastered_msg: 'Tebrikler — tam klavye ustalığına ulaştınız!' + all_mastered_desc: 'Klavyedeki her tuş maksimum güven seviyesinde.' + mastery_takes_practice: 'Ustalık bir varış noktası değil — sürekli alıştırma gerektirir.' + keep_drilling: 'Avantajınızı korumak için alıştırmaya devam edin.' + hint_skill_tree_continue: '[t] Yetenek Ağacını Aç [Herhangi bir tuş] Devam' + hint_any_key: 'Devam etmek için herhangi bir tuşa basın' + input_blocked: 'Giriş geçici olarak engellendi (%{ms}ms kaldı)' + unlock_msg_1: 'Harika! Yazma becerilerinizi geliştirmeye devam edin.' + unlock_msg_2: 'Cephaneliğinize bir tuş daha eklendi!' + unlock_msg_3: 'Klavyeniz büyüyor! Böyle devam edin.' + unlock_msg_4: 'Tam klavye ustalığına bir adım daha yakın!' + mastery_msg_1: 'Bu tuş artık tam güven seviyesinde!' + mastery_msg_2: 'Bu tuşu tamamen kavradınız!' + mastery_msg_3: 'Kas hafızası kilitlendi!' + mastery_msg_4: 'Bir tuş daha fethedildi!' + +# Klavye gezgini +keyboard: + title: ' Klavye ' + subtitle: 'Bir tuşa basın veya tıklayın' + hint_navigate: '[←→↑↓/hjkl/Tab] Gezin' + hint_back: '[q/ESC] Geri' + key_label: 'Tuş: ' + finger_label: 'Parmak: ' + hand_left: 'Sol' + hand_right: 'Sağ' + finger_index: 'İşaret parmağı' + finger_middle: 'Orta parmak' + finger_ring: 'Yüzük parmağı' + finger_pinky: 'Serçe parmak' + finger_thumb: 'Başparmak' + overall_accuracy: ' Genel doğruluk: %{correct}/%{total} (%{pct}%%)' + ranked_accuracy: ' Sıralı doğruluk: %{correct}/%{total} (%{pct}%%)' + confidence: 'Güven: ' + no_data: 'Henüz veri yok' + no_data_short: 'Veri yok' + key_details: ' Tuş Detayları ' + key_details_char: ' Tuş Detayları: ''%{ch}'' ' + key_details_name: ' Tuş Detayları: %{name} ' + press_key_hint: 'Detayları görmek için bir tuşa basın' + shift_label: 'Shift: ' + shift_no: 'Hayır' + overall_avg_time: 'Genel Ort. Süre: ' + overall_best_time: 'Genel En İyi Süre: ' + overall_samples: 'Genel Örnekler: ' + overall_accuracy_label: 'Genel Doğruluk: ' + branch_label: 'Dal: ' + level_label: 'Seviye: ' + built_in_key: 'Yerleşik Tuş' + unlocked_label: 'Açılmış: ' + yes: 'Evet' + no: 'Hayır' + in_focus_label: 'Odakta mı?: ' + mastery_label: 'Ustalık: ' + mastery_locked: 'Kilitli' + ranked_avg_time: 'Sıralı Ort. Süre: ' + ranked_best_time: 'Sıralı En İyi Süre: ' + ranked_samples: 'Sıralı Örnekler: ' + ranked_accuracy_label: 'Sıralı Doğruluk: ' + +# Giriş diyalogları +intro: + passage_title: ' Metin İndirme Ayarları ' + code_title: ' Kod İndirme Ayarları ' + enable_downloads: 'Ağ indirmelerini etkinleştir' + download_dir: 'İndirme klasörü' + paragraphs_per_book: 'Kitap başına paragraf (0 = tümü)' + whole_book: 'tüm kitap' + snippets_per_repo: 'Repo başına parçacık (0 = sınırsız)' + unlimited: 'sınırsız' + start_passage_drill: 'Metin alıştırmasını başlat' + start_code_drill: 'Kod alıştırmasını başlat' + confirm: 'Onayla' + hint_navigate: '[Yukarı/Aşağı] Gezin' + hint_adjust: '[Sol/Sağ] Ayarla' + hint_edit: '[Yazma/Backspace] Düzenle' + hint_confirm: '[Enter] Onayla' + hint_cancel: '[ESC] İptal' + preparing_download: 'İndirme hazırlanıyor...' + download_passage_title: ' Metin Kaynağı İndiriliyor ' + download_code_title: ' Kod Kaynağı İndiriliyor ' + book_label: ' Kitap: %{name}' + repo_label: ' Repo: %{name}' + progress_bytes: '[%{name}] %{downloaded}/%{total} bayt' + downloaded_bytes: 'İndirildi: %{bytes} bayt' + downloading_book_progress: 'Kitap indiriliyor: [%{bar}] %{downloaded}/%{total} bayt' + downloading_book_bytes: 'Kitap indiriliyor: %{bytes} bayt' + downloading_code_progress: 'İndiriliyor: [%{bar}] %{downloaded}/%{total} bayt' + downloading_code_bytes: 'İndiriliyor: %{bytes} bayt' + current_book: 'Mevcut: %{name} (kitap %{done}/%{total})' + current_repo: 'Mevcut: %{name} (repo %{done}/%{total})' + passage_instructions_1: 'keydr yazma alıştırması için Project Gutenberg''den pasajlar indirebilir.' + passage_instructions_2: 'Kitaplar bir kez indirilir ve yerel olarak saklanır.' + passage_instructions_3: 'Aşağıda indirme ayarlarını yapılandırın, ardından metin alıştırması başlatın.' + code_instructions_1: 'keydr yazma alıştırması için GitHub''dan açık kaynak kodu indirebilir.' + code_instructions_2: 'Kod bir kez indirilir ve yerel olarak saklanır.' + code_instructions_3: 'Aşağıda indirme ayarlarını yapılandırın, ardından kod alıştırması başlatın.' + +# Durum mesajları (app.rs dosyasından) +status: + recovery_files: 'Yarıda kalan içe aktarmadan kurtarma dosyaları bulundu. Veriler tutarsız olabilir — yeniden içe aktarmayı düşünün.' + dir_not_exist: 'Klasör mevcut değil: %{path}' + no_data_store: 'Veri deposu mevcut değil' + serialization_error: 'Serileştirme hatası: %{error}' + exported_to: '%{path} konumuna dışa aktarıldı' + export_failed: 'Dışa aktarma başarısız: %{error}' + could_not_read: 'Dosya okunamadı: %{error}' + invalid_export: 'Geçersiz dışa aktarma dosyası: %{error}' + unsupported_version: 'Desteklenmeyen dışa aktarma sürümü: %{got} (beklenen %{expected})' + import_failed: 'İçe aktarma başarısız: %{error}' + imported_theme_fallback: 'Başarıyla içe aktarıldı (''%{theme}'' teması bulunamadı, varsayılan kullanılıyor)' + imported_success: 'Başarıyla içe aktarıldı' + adaptive_unavailable: 'Uyarlanır sıralı mod kullanılamıyor: %{error}' + switched_to: '%{name} moduna geçildi' + layout_changed: 'Düzen %{name} olarak değiştirildi' + +# Hatalar (arayüz sınır çevirisi için) +errors: + unknown_language: 'Bilinmeyen dil: %{key}' + unknown_layout: 'Bilinmeyen klavye düzeni: %{key}' + unsupported_pair: 'Desteklenmeyen dil/düzen çifti: %{language} + %{layout}' + language_blocked: 'Dil destek seviyesi nedeniyle engellendi: %{key}' + +# Ortak +common: + wpm: 'WPM' + cpm: 'CPM' + back: 'Geri' diff --git a/src/i18n.rs b/src/i18n.rs index 090cc5a..05af46c 100644 --- a/src/i18n.rs +++ b/src/i18n.rs @@ -1,7 +1,10 @@ pub use rust_i18n::t; /// Available UI locale codes. Separate from dictionary language support. -pub const SUPPORTED_UI_LOCALES: &[&str] = &["en", "de"]; +pub const SUPPORTED_UI_LOCALES: &[&str] = &[ + "en", "de", "es", "fr", "it", "pt", "nl", "sv", "da", "nb", "fi", "pl", "cs", "ro", "hr", + "hu", "lt", "lv", "sl", "et", "tr", +]; pub fn set_ui_locale(locale: &str) { let effective = if SUPPORTED_UI_LOCALES.contains(&locale) { @@ -74,70 +77,85 @@ mod tests { } #[test] - fn catalog_parity_en_de() { + fn catalog_parity_all_locales() { let en = locale_keys("en"); - let de = locale_keys("de"); + let mut errors = Vec::new(); - let missing_in_de: Vec<_> = en.difference(&de).collect(); - let extra_in_de: Vec<_> = de.difference(&en).collect(); + for locale in SUPPORTED_UI_LOCALES { + if *locale == "en" { + continue; + } + let other = locale_keys(locale); + let missing: Vec<_> = en.difference(&other).collect(); + let extra: Vec<_> = other.difference(&en).collect(); - assert!( - missing_in_de.is_empty(), - "Keys in en.yml missing from de.yml:\n {}", - missing_in_de - .iter() - .map(|k| k.as_str()) - .collect::>() - .join("\n ") - ); - assert!( - extra_in_de.is_empty(), - "Keys in de.yml not present in en.yml:\n {}", - extra_in_de - .iter() - .map(|k| k.as_str()) - .collect::>() - .join("\n ") - ); + if !missing.is_empty() { + errors.push(format!( + "Keys in en.yml missing from {locale}.yml:\n {}", + missing + .iter() + .map(|k| k.as_str()) + .collect::>() + .join("\n ") + )); + } + if !extra.is_empty() { + errors.push(format!( + "Keys in {locale}.yml not present in en.yml:\n {}", + extra + .iter() + .map(|k| k.as_str()) + .collect::>() + .join("\n ") + )); + } + } + + assert!(errors.is_empty(), "Catalog parity errors:\n{}", errors.join("\n")); } #[test] - fn placeholder_parity_en_de() { + fn placeholder_parity_all_locales() { let en_content = std::fs::read_to_string("locales/en.yml").unwrap(); - let de_content = std::fs::read_to_string("locales/de.yml").unwrap(); let en_root: serde_yaml::Value = serde_yaml::from_str(&en_content).unwrap(); - let de_root: serde_yaml::Value = serde_yaml::from_str(&de_content).unwrap(); - let mut en_map = std::collections::BTreeMap::new(); - let mut de_map = std::collections::BTreeMap::new(); collect_leaf_values(&en_root, "", &mut en_map); - collect_leaf_values(&de_root, "", &mut de_map); let placeholder_re = regex::Regex::new(r"%\{(\w+)\}").unwrap(); - let mut mismatches = Vec::new(); + let mut all_mismatches = Vec::new(); - for (key, en_val) in &en_map { - if let Some(de_val) = de_map.get(key) { - let en_placeholders: BTreeSet<_> = placeholder_re - .captures_iter(en_val) - .map(|c| c[1].to_string()) - .collect(); - let de_placeholders: BTreeSet<_> = placeholder_re - .captures_iter(de_val) - .map(|c| c[1].to_string()) - .collect(); - if en_placeholders != de_placeholders { - mismatches.push(format!( - " {key}: en={en_placeholders:?} de={de_placeholders:?}" - )); + for locale in SUPPORTED_UI_LOCALES { + if *locale == "en" { + continue; + } + let other_content = std::fs::read_to_string(format!("locales/{locale}.yml")).unwrap(); + let other_root: serde_yaml::Value = serde_yaml::from_str(&other_content).unwrap(); + let mut other_map = std::collections::BTreeMap::new(); + collect_leaf_values(&other_root, "", &mut other_map); + + for (key, en_val) in &en_map { + if let Some(other_val) = other_map.get(key) { + let en_placeholders: BTreeSet<_> = placeholder_re + .captures_iter(en_val) + .map(|c| c[1].to_string()) + .collect(); + let other_placeholders: BTreeSet<_> = placeholder_re + .captures_iter(other_val) + .map(|c| c[1].to_string()) + .collect(); + if en_placeholders != other_placeholders { + all_mismatches.push(format!( + " {locale}/{key}: en={en_placeholders:?} {locale}={other_placeholders:?}" + )); + } } } } assert!( - mismatches.is_empty(), - "Placeholder mismatches between en.yml and de.yml:\n{}", - mismatches.join("\n") + all_mismatches.is_empty(), + "Placeholder mismatches:\n{}", + all_mismatches.join("\n") ); }