diff --git a/Gemfile.lock b/Gemfile.lock index 6e5308ff56ca..2d6e7f1259ed 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -217,6 +217,7 @@ PATH aws-sdk-sns (~> 1.72.0) messagebird-rest (~> 1.4.2) rotp (~> 6.1) + webauthn (~> 3.0) PATH remote: modules/webhooks @@ -337,6 +338,7 @@ GEM airbrake-ruby (~> 6.0) airbrake-ruby (6.2.2) rbtree3 (~> 0.6) + android_key_attestation (0.3.0) appsignal (3.6.1) rack ast (2.4.2) @@ -345,6 +347,7 @@ GEM activerecord (>= 4.0) awesome_nested_set (3.6.0) activerecord (>= 4.0.0, < 7.2) + awrence (1.2.1) aws-eventstream (1.3.0) aws-partitions (1.895.0) aws-sdk-core (3.191.3) @@ -413,6 +416,7 @@ GEM carrierwave_direct (2.1.0) carrierwave (>= 1.0.0) fog-aws + cbor (0.5.9.8) cgi (0.4.1) childprocess (5.0.0) climate_control (1.2.0) @@ -431,6 +435,9 @@ GEM concurrent-ruby (1.2.3) connection_pool (2.4.1) cookiejar (0.3.4) + cose (1.3.0) + cbor (~> 0.5.9) + openssl-signature_algorithm (~> 1.0) crack (1.0.0) bigdecimal rexml @@ -772,6 +779,9 @@ GEM view_component (>= 3.1, < 4.0) openproject-token (4.0.0) activemodel + openssl (3.2.0) + openssl-signature_algorithm (1.3.0) + openssl (> 2.0) os (1.1.4) ox (2.14.17) paper_trail (15.1.0) @@ -1005,6 +1015,8 @@ GEM rubytree (2.0.3) json (~> 2.0, > 2.3.1) rubyzip (2.3.2) + safety_net_attestation (0.4.0) + jwt (~> 2.0) sanitize (6.1.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -1067,6 +1079,10 @@ GEM thread_safe (0.3.6) timecop (0.9.8) timeout (0.4.1) + tpm-key_attestation (0.12.0) + bindata (~> 2.4) + openssl (> 2.0) + openssl-signature_algorithm (~> 1.0) trailblazer-option (0.1.2) ttfunk (1.8.0) bigdecimal (~> 3.1) @@ -1105,6 +1121,15 @@ GEM rack (>= 2.0.9) warden-basic_auth (0.2.1) warden (~> 1.2) + webauthn (3.1.0) + android_key_attestation (~> 0.3.0) + awrence (~> 1.1) + bindata (~> 2.4) + cbor (~> 0.5.9) + cose (~> 1.1) + openssl (>= 2.2) + safety_net_attestation (~> 0.4.0) + tpm-key_attestation (~> 0.12.0) webfinger (2.1.3) activesupport faraday (~> 2.0) diff --git a/config/constants/settings/definition.rb b/config/constants/settings/definition.rb index 2aac34ae0f20..b71ba78e7a4b 100644 --- a/config/constants/settings/definition.rb +++ b/config/constants/settings/definition.rb @@ -147,7 +147,9 @@ class Definition }, available_languages: { format: :array, - default: %w[en de fr es pt it zh-CN ko ru].freeze, + # Manually managed list with languages that have ~50+ translation ratio in Crowdin + # https://crowdin.com/project/openproject + default: %w[ca cs de el en es fr hu id it ja ko lt nl no pl pt-BR pt-PT ro ru sk sl sv tr uk zh-CN zh-TW].freeze, allowed: -> { Redmine::I18n.all_languages } }, avatar_link_expiry_seconds: { diff --git a/config/locales/crowdin/cs.yml b/config/locales/crowdin/cs.yml index 2d8a9f5c7264..7f7e6908ac39 100644 --- a/config/locales/crowdin/cs.yml +++ b/config/locales/crowdin/cs.yml @@ -361,7 +361,7 @@ cs: irreversible: "Tato akce je nevratná" confirmation: "Zadejte název zástupného uživatele %{name} pro potvrzení odstranění." upsale: - title: placeholder uživatel + title: Placeholder uživatel description: > Placeholder uživatelé jsou způsob, jak přiřadit pracovní balíčky uživatelům, kteří nejsou součástí vašeho projektu. Mohou být užiteční v řadě scénářů; například, pokud potřebujete sledovat úkoly u zdroje, který ještě nejsou pojmenovány nebo dostupné, nebo pokud nechcete této osobě umožnit přístup k OpenProject ale stále chcete sledovat úkoly, které jim byly přiděleny. prioritiies: @@ -567,7 +567,7 @@ cs: false: "archivováno" identifier: "Identifikátor" latest_activity_at: "Poslední aktivita" - parent: "Podprojekt" + parent: "Nadřazený projekt" public_value: title: "Viditelnost" true: "veřejný" @@ -662,7 +662,7 @@ cs: true: "zahrnuje nepracovní dny" notify: "Oznámit" #used in custom actions parent: "Nadřazený" - parent_issue: "Rodič" + parent_issue: "Nadřazený" parent_work_package: "Nadřazený" priority: "Priorita" progress: "% Dokončeno" @@ -798,7 +798,7 @@ cs: blank: "je povinné. Zvolte prosím název." not_unique: " už bylo použito. Prosím vyberte jiný název." notifications: - at_least_one_channel: "Alespoň jeden kanál pro odesílání oznámení musí být specifikován." + at_least_one_channel: "Pro odesílání notifikací musí být specifikován alespoň jeden kanál" attributes: read_ian: read_on_creation: "nelze nastavit na pravdivé při vytváření oznámení " @@ -1017,11 +1017,11 @@ cs: member: "Člen" news: "Novinky" notification: - one: "Oznámení" - few: "Oznámení" - many: "Oznámení" - other: "Oznámení" - placeholder_user: "placeholder uživatel" + one: "Notifikace" + few: "Notifikací" + many: "Notifikací" + other: "Notifikace" + placeholder_user: "Placeholder uživatel" project: "Projekt" query: "Vlastní dotaz" role: @@ -1623,7 +1623,7 @@ cs: instructions_after_error: "Zkuste se znovu přihlásit kliknutím na %{signin}. Pokud chyba přetrvává, požádejte správce o pomoc." menus: admin: - mail_notification: "E-mailová upozornění" + mail_notification: "E-mailové notifikace" mails_and_notifications: "E-maily a oznámení" aggregation: "Agregace" api_and_webhooks: "API & Webhooky" @@ -1668,7 +1668,7 @@ cs: failed: "Došlo k chybě a token nemohl být odstraněn. Opakujte akci později." unknown_storage: "Neznámé úložiště" notifications: - send_notifications: "Odeslat oznámení pro tuto akci" + send_notifications: "Pro tuto akci odeslat notifikaci" work_packages: subject: created: "Pracovní balíček byl vytvořen." @@ -1687,7 +1687,7 @@ cs: S pozdravem, OpenProject tým body_header: "Verze 12.0 s oznamovacím centrem" body_subheader: "Novinky" - subject: "Důležité změny oznámení s vydáním 12.0" + subject: "Důležité změny notifikací s vydáním 12.0" label_accessibility: "Přístupnost" label_account: "Účet" label_active: "Aktivní" @@ -2060,9 +2060,9 @@ cs: label_permissions: "Práva" label_permissions_report: "Přehled oprávnění" label_personalize_page: "Přizpůsobit tuto stránku" - label_placeholder_user: "placeholder uživatel" + label_placeholder_user: "Placeholder uživatel" label_placeholder_user_new: "" - label_placeholder_user_plural: "placeholder uživatelé" + label_placeholder_user_plural: "Placeholder uživatelé" label_planning: "Plánování" label_please_login: "Přihlaste se prosím" label_plugins: "Pluginy" @@ -2081,7 +2081,7 @@ cs: label_project_activity: "Aktivita projektu" label_project_attribute_plural: "Atributy projektu" label_project_count: "Celkový počet projektů" - label_project_copy_notifications: "Během kopie projektu odeslat oznámení e-mailem" + label_project_copy_notifications: "Během kopírování projektu odeslat notifikace e-mailem" label_project_latest: "Nejnovější projekty" label_project_default_type: "Povolit prázdný typ" label_project_hierarchy: "Hierarchie projektu" @@ -2214,7 +2214,7 @@ cs: label_users_settings: "Uživatelská nastavení" label_version_new: "Nová verze" label_version_plural: "Verze" - label_version_sharing_descendants: "S Podprojekty" + label_version_sharing_descendants: "S podprojekty" label_version_sharing_hierarchy: "S hierarchií projektu" label_version_sharing_none: "Není sdíleno" label_version_sharing_system: "Se všemi projekty" @@ -2316,28 +2316,28 @@ cs: digests: including_mention_singular: "včetně zmínky" including_mention_plural: "včetně %{number_mentioned} zmínění" - unread_notification_singular: "1 nepřečtené oznámení" - unread_notification_plural: "%{number_unread} nepřečtených oznámení" + unread_notification_singular: "1 nepřečtená notifikace" + unread_notification_plural: "%{number_unread} nepřečtených notifikací" you_have: "Máte" logo_alt_text: "Logo" mention: subject: "%{user_name} vás zmínil v #%{id} - %{subject}" notification: - center: "Centrum oznámení" + center: "Centrum notifikací" see_in_center: "Zobrazit komentář v oznamovacím centru" settings: "Změnit nastavení e-mailu" salutation: "Ahoj %{user}!" salutation_full_name: "Jméno a příjmení" work_packages: created_at: "Vytvořeno v %{timestamp} uživatelem %{user} " - login_to_see_all: "Přihlaste se pro zobrazení všech oznámení." + login_to_see_all: "Přihlaste se pro zobrazení všech notifikací." mentioned: "Byli jste zmíněni v komentáři" mentioned_by: "%{user} vás zmínil v komentáři" more_to_see: - one: "Existuje ještě 1 pracovní balíček s oznámeními." - few: "Existuje ještě %{count} pracovních balíčků s oznámeními." - many: "Existuje ještě %{count} pracovních balíčků s oznámeními." - other: "Existuje ještě %{count} pracovních balíčků s oznámeními." + one: "Existuje ještě %{count} pracovní balíček s notifikací." + few: "Existuje ještě %{count} pracovních balíčků s notifikacema." + many: "Existuje ještě %{count} pracovních balíčků s notifikacema." + other: "Existuje ještě %{count} pracovních balíčků s notifikacema." open_in_browser: "Otevřít v prohlížeči" reason: watched: "Sledováno" @@ -2346,7 +2346,7 @@ cs: mentioned: "Zmíněné" shared: "Sdílené" subscribed: "vše" - prefix: "Obdrženo z důvodu nastavení oznámení: %{reason}" + prefix: "Obdrženo z důvodu nastavení notifikací: %{reason}" date_alert_start_date: "Upozornění na datum" date_alert_due_date: "Upozornění na datum" see_all: "Zobrazit vše" @@ -2590,7 +2590,7 @@ cs: permission_move_work_packages: "Přesun pracovních balíčků" permission_protect_wiki_pages: "Ochrana stránky wiki" permission_rename_wiki_pages: "Přejmenovat stránky wiki" - permission_save_queries: "Uložit pohled" + permission_save_queries: "Uložit zobrazení" permission_search_project: "Hledat projekt" permission_select_custom_fields: "Vybrat vlastní pole" permission_select_project_modules: "Vyberte moduly projektu" @@ -2944,7 +2944,7 @@ cs: enable_subscriptions_text_html: Umožňuje uživatelům s nezbytnými oprávněními přihlásit se do OpenProject kalendářů a získat přístup k informacím o pracovním balíčku prostřednictvím externího klienta kalendáře. Poznámka: Před povolením si prosím přečtěte iCalendar předplatné. language_name_being_default: "%{language_name} (výchozí)" notifications: - events_explanation: "Určuje, pro kterou událost je odeslán e-mail. Pracovní balíčky jsou z tohoto seznamu vyloučeny, protože oznámení pro ně mohou být nastavena speciálně pro každého uživatele." + events_explanation: "Určuje, pro kterou událost je odeslán e-mail. Pracovní balíčky jsou z tohoto seznamu vyloučeny, protože notifikace pro ně mohou být nastavena speciálně pro každého uživatele." delay_minutes_explanation: "Odesílání e-mailu může být pozdrženo, aby bylo uživatelům s nakonfigurovaným v oznámení aplikace před odesláním pošty potvrzeno oznámení. Uživatelé, kteří si přečtou oznámení v aplikaci, nedostanou e-mail pro již přečtené oznámení." other: "Ostatní" passwords: "Hesla" @@ -3014,7 +3014,7 @@ cs: text_destroy_with_associated: "Existují další objekty, které jsou přiřazeny k pracovním balíčkům a které mají být odstraněny. Tyto objekty jsou následující typy:" text_destroy_what_to_do: "Co chcete udělat?" text_diff_truncated: "... Toto rozlišení bylo zkráceno, protože přesahuje maximální velikost, kterou lze zobrazit." - text_email_delivery_not_configured: "Doručení e-mailu není nakonfigurováno a oznámení jsou zakázána.\nNakonfigurujte váš SMTP server pro jejich povolení." + text_email_delivery_not_configured: "Doručení e-mailu není nakonfigurováno a notifikace jsou zakázány.\nNakonfigurujte váš SMTP server pro jejich povolení." text_enumeration_category_reassign_to: "Přiřadit je k této hodnotě:" text_enumeration_destroy_question: "%{count} objektů je přiřazeno k této hodnotě." text_file_repository_writable: "Do adresáře příloh lze zapisovat" diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index c1f8caa1f0e0..d83086de7f84 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -49,7 +49,7 @@ de: main-menu-border-color: "Rahmenfarbe des Hauptmenüs" custom_colors: "Benutzerdefinierte Farben" customize: "Passen Sie Ihre OpenProject Installation mit Ihrem eigenen Logo und eigenen Farben an." - enterprise_notice: "Diese kleine Erweiterung steht den Abonnenten der Enterprise edition ganz exklusiv als kleines Dankeschön für deren finanzielle Unterstützung zur Verfügung." + enterprise_notice: "Dieses kleine Add-on steht den Abonnenten der Enterprise-Edition ganz exklusiv als kleines Dankeschön für deren finanzielle Unterstützung zur Verfügung." enterprise_more_info: "Hinweis: Das verwendete Logo wird öffentlich zugänglich sein." manage_colors: "Farbauswahloptionen bearbeiten" instructions: @@ -64,15 +64,15 @@ de: main-menu-bg-color: "Hintergrundfarbe des Menüs in der linken Seitenleiste." theme_warning: Das Ändern des Themes wird Ihr benutzerdefiniertes Design überschreiben. Alle Änderungen werden dann verloren gehen. Sind Sie sicher, dass Sie fortfahren möchten? enterprise: - upgrade_to_ee: "Auf Enterprise edition upgraden" - add_token: "Enterprise edition Support Token hochladen" + upgrade_to_ee: "Auf Enterprise-Edition upgraden" + add_token: "Enterprise-Edition Support Token hochladen" delete_token_modal: - text: "Sind Sie sicher, dass Sie das aktuelle Enterprise edition token entfernen möchten?" + text: "Sind Sie sicher, dass Sie das aktuelle Enterprise Edition-Token entfernen möchten?" title: "Token löschen" replace_token: "Aktuellen Enterprise edition Support Token ersetzen" order: "Enterprise on-premises bestellen" - paste: "Enterprise edition Support Token hier einfügen" - required_for_feature: "Dieses Add-on ist nur mit einem aktiven Enterprise edition Support-Token verfügbar." + paste: "Enterprise-Edition Support Token hier einfügen" + required_for_feature: "Dieses Add-on ist nur mit einem aktiven Enterprise-Edition Support-Token verfügbar." enterprise_link: "Klicken Sie hier für weitere Informationen." start_trial: "Kostenlose Testversion starten" book_now: "Jetzt buchen" @@ -432,8 +432,8 @@ de: sharing: missing_workflow_waring: title: "Der Workflow für das Teilen von Arbeitspaketen fehlt" - message: "Es ist kein Arbeitsablauf (Workflow) für die Rolle ‚Arbeitspaket-Editor‘ konfiguriert. Ohne einen Arbeitsablauf kann der gemeinsam mit dem Benutzer den Status des Arbeitspakets nicht ändern. Arbeitsabläufe können kopiert werden. Wählen Sie einen Quelltyp (z. B. ‚Task‘) und eine Quell-Rolle (z. B. 'Member'). Wählen Sie dann die Zieltypen aus, um alle Typen als Ziele auszuwählen und schließlich die Rolle ‚Arbeitspaket-Editor‘ als Ziel aus und drücken Sie ‚Kopieren‘. Nachdem Sie die Standardeinstellungen erstellt haben, können Sie die Arbeitsabläufe so einstellen, wie Sie es für jede andere Rolle tun." - link_message: "Konfigurieren Sie die Arbeitsabläufe in der Administration." + message: "Es ist kein Workflow für die Rolle ‚Work package editor‘ konfiguriert. Nur mit einem solchen Workflow können Benutzer, mit denen ein Arbeitspaket geteilt wurde, den Status des Arbeitspakets ändern. Workflows lassen sich einfach kopieren. Wählen Sie dazu einen Quell-Typ (z. B. ‚Task‘) und eine Quell-Rolle (z. B. 'Member') aus. Wählen Sie dann die Ziel-Typen aus. Als ersten Schritt können Sie alle Typen als Ziel-Typen auswählen. Danach wählen Sie die Ziel-Rolle ‚Work package editor‘ aus und drücken Sie auf den Knopf ‚Kopieren‘. Nachdem Sie hiermit eine Grundlage geschaffen haben, können Sie danach diese Workflows weiter anpassen, ganz genau wie Sie es für jede andere Rolle bereits getan haben." + link_message: "Konfigurieren Sie die Workflows in der Administration." summary: reports: category: @@ -1424,7 +1424,7 @@ de: error_cookie_missing: "Das OpenProject Cookie fehlt. Bitte stellen Sie sicher, dass Cookies aktiviert sind, da diese Applikation ohne aktivierte Cookies nicht korrekt funktioniert." error_custom_option_not_found: "Option ist nicht vorhanden." error_enterprise_activation_user_limit: "Ihr Konto konnte nicht aktiviert werden (Nutzerlimit erreicht). Bitte kontaktieren Sie Ihren Administrator um Zugriff zu erhalten." - error_enterprise_token_invalid_domain: "Die Enterprise edition ist nicht aktiv. Die aktuelle Domain (%{actual}) entspricht nicht dem erwarteten Hostnamen (%{expected})." + error_enterprise_token_invalid_domain: "Die Enterprise-Edition ist nicht aktiv. Die aktuelle Domain (%{actual}) entspricht nicht dem erwarteten Hostnamen (%{expected})." error_failed_to_delete_entry: "Fehler beim Löschen dieses Eintrags." error_in_dependent: "Fehler beim Versuch, abhängiges Objekt zu ändern: %{dependent_class} #%{related_id} - %{related_subject}: %{error}" error_in_new_dependent: "Fehler beim Versuch, abhängiges Objekt zu erstellen: %{dependent_class} - %{related_subject}: %{error}" @@ -1520,10 +1520,10 @@ de: blocks: community: "OpenProject Community" upsale: - title: "Auf Enterprise edition upgraden" + title: "Auf Enterprise-Edition upgraden" more_info: "Weitere Informationen" links: - upgrade_enterprise_edition: "Auf Enterprise edition upgraden" + upgrade_enterprise_edition: "Auf Enterprise-Edition upgraden" postgres_migration: "Migration Ihrer Installation zu PostgreSQL" user_guides: "Benutzerhandbuch" faq: "Häufig gestellte Fragen" @@ -1806,7 +1806,7 @@ de: label_enumerations: "Aufzählungen" label_enterprise: "Enterprise" label_enterprise_active_users: "%{current}/%{limit} gebuchte aktive Nutzer" - label_enterprise_edition: "Enterprise edition" + label_enterprise_edition: "Enterprise Edition" label_enterprise_support: "Enterprise Support" label_enterprise_addon: "Enterprise Add-on" label_environment: "Umgebung" @@ -2687,8 +2687,8 @@ de: update_timeout: "Speichere die Informationen bzgl. des genutzten Festplattenspeichers eines Projektarchivs für N Minuten.\nErhöhen Sie diesen Wert zur Verbesserung der Performance, da die Erfassung des genutzten Festplattenspeichers Ressourcen-intensiv ist." oauth_application_details: "Der Client Geheimcode wird nach dem Schließen dieses Fensters nicht mehr zugänglich sein. Bitte kopieren Sie diese Werte in die Nextcloud OpenProject Integrationseinstellungen:" oauth_application_details_link_text: "Zu den Einstellungen gehen" - setup_documentation_details: "Wenn Sie Hilfe bei der Konfiguration eines neuen Datei-Speichers benötigen, konsultieren Sie bitte die Dokumentation: " - setup_documentation_details_link_text: "Datei-Speicher einrichten" + setup_documentation_details: "Wenn Sie Hilfe bei der Konfiguration eines neuen Dateispeichers benötigen, konsultieren Sie bitte die Dokumentation: " + setup_documentation_details_link_text: "Dateispeicher einrichten" show_warning_details: "Um diesen Dateispeicher nutzen zu können, müssen Sie das Modul und den spezifischen Speicher in den Projekteinstellungen jedes gewünschten Projekts aktivieren." subversion: existing_title: "Vorhandenes Subversion Projektarchiv" @@ -3112,7 +3112,7 @@ de: warning_user_limit_reached_admin: > Das Hinzufügen zusätzlicher Benutzer überschreitet das aktuelle Benutzerlimit. Bitte aktualisieren Sie Ihr Abonnement um sicherzustellen, dass externe Benutzer auf diese Instanz zugreifen können. warning_user_limit_reached_instructions: > - Du hast dein Nutzerlimit erreicht (%{current}/%{max} active users). Bitte kontaktiere sales@openproject.com um deinen Enterprise edition Plan upzugraden und weitere Nutzer hinzuzufügen. + Du hast dein Nutzerlimit erreicht (%{current}/%{max} active users). Bitte kontaktiere sales@openproject.com um deinen Enterprise Edition Plan upzugraden und weitere Nutzer hinzuzufügen. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/id.yml b/config/locales/crowdin/id.yml index 944b8f62da18..c9e9a7cc93d7 100644 --- a/config/locales/crowdin/id.yml +++ b/config/locales/crowdin/id.yml @@ -1802,7 +1802,7 @@ id: label_file_plural: "File" label_filter_add: "Tambah Filter" label_filter: "Filters" - label_filter_plural: "Filter" + label_filter_plural: "Penyaring" label_filters_toggle: "Tampilkan/Sembunyikan penyaringan" label_float: "Float" label_folder: "Folder" diff --git a/config/locales/crowdin/it.yml b/config/locales/crowdin/it.yml index 5b9eb47de8dd..f284958d7901 100644 --- a/config/locales/crowdin/it.yml +++ b/config/locales/crowdin/it.yml @@ -67,11 +67,11 @@ it: upgrade_to_ee: "Aggiorna a Enterprise edition" add_token: "Carica un token di assistenza per Enterprise edition" delete_token_modal: - text: "Vuoi davvero rimuovere il token Enterprise edition attualmente utilizzato?" + text: "Vuoi davvero rimuovere il token Enterprise Edition attualmente utilizzato?" title: "Elimina token" replace_token: "Sostituisci il token di assistenza attuale" order: "Ordina l'edizione Enterprise on-premises" - paste: "Incolla il tuo token di assistenza per Enterprise edition" + paste: "Incolla il tuo token di assistenza per Enterprise Edition" required_for_feature: "Questa aggiunta è disponibile solo con un token di assistenza Enterprise Edition attivo." enterprise_link: "Per ulteriori informazioni, clicca qui." start_trial: "Inizia la prova gratuita" @@ -695,7 +695,7 @@ it: confirmation: "non coincide con %{attribute}." could_not_be_copied: "%{dependency} non può essere (completamente) copiato." does_not_exist: "non esiste." - error_enterprise_only: "%{action} è disponibile solo in OpenProject Enterprise edition" + error_enterprise_only: "%{action} è disponibile solo in OpenProject Enterprise Edition" error_unauthorized: "potrebbe non essere accessibile." error_readonly: "è in sola lettura, pertanto non è stato possibile modificarlo." error_conflict: "L'informazione è stata aggiornata da almeno un altro utente nel frattempo." @@ -1426,7 +1426,7 @@ it: error_cookie_missing: "Il cookie di OpenProject è mancante. Prego, verifica che i cookie siano attivati, questa applicazione non funziona correttamente senza." error_custom_option_not_found: "L'opzione non esiste." error_enterprise_activation_user_limit: "Il tuo account potrebbe non essere attivo (raggiunto il limite utente). Si prega di contattare l'amministratore per ottenere l'accesso." - error_enterprise_token_invalid_domain: "L'Enterprise edition non è attiva. Il dominio del token Enterprise (%{actual}) non corrisponde al nome host del sistema (%{expected})." + error_enterprise_token_invalid_domain: "L'Enterprise Edition non è attiva. Il dominio del token Enterprise (%{actual}) non corrisponde al nome host del sistema (%{expected})." error_failed_to_delete_entry: "Cancellazione voce non riuscita." error_in_dependent: "Errore nel tentativo di modificare l'oggetto dipendente: %{dependent_class} #%{related_id} - %{related_subject}: %{error}" error_in_new_dependent: "Errore nel tentativo di creare un oggetto dipendente: %{dependent_class} - %{related_subject}: %{error}" @@ -1522,10 +1522,10 @@ it: blocks: community: "Comunità di OpenProject" upsale: - title: "Aggiorna ad Enterprise edition" + title: "Aggiorna ad Enterprise Edition" more_info: "Altre informazioni" links: - upgrade_enterprise_edition: "Aggiorna ad Enterprise edition" + upgrade_enterprise_edition: "Aggiorna ad Enterprise Edition" postgres_migration: "Migrazione dell'installazione su PostgreSQL" user_guides: "Guide utente" faq: "FAQ" @@ -1808,7 +1808,7 @@ it: label_enumerations: "Enumerazioni" label_enterprise: "Enterprise" label_enterprise_active_users: "%{current}/%{limit} utenti attivi riservati" - label_enterprise_edition: "Enterprise edition" + label_enterprise_edition: "Enterprise Edition" label_enterprise_support: "Supporto per Imprese" label_enterprise_addon: "Componente aggiuntivo Enterprise" label_environment: "Ambiente" diff --git a/config/locales/crowdin/js-ca.yml b/config/locales/crowdin/js-ca.yml index cf1f23f606cc..cb2d119fe57f 100644 --- a/config/locales/crowdin/js-ca.yml +++ b/config/locales/crowdin/js-ca.yml @@ -102,7 +102,7 @@ ca: button_save: "Desa" button_settings: "Configuració" button_uncheck_all: "Desmarca-ho tot" - button_update: "Actualitza" + button_update: "Actualitzar" button_export-pdf: "Descarregar PDF" button_export-atom: "Descarregar Atom" button_create: "Crear" @@ -758,7 +758,7 @@ ca: label: "Pausa els correu electrònic recordatori temporalment" first_day: "Primer dia" last_day: "Últim dia" - text_are_you_sure: "N'esteu segur?" + text_are_you_sure: "N'estas segur?" text_data_lost: "Totes les dades entrades es perdran." text_user_wrote: "%{value} wrote:" types: diff --git a/config/locales/crowdin/js-cs.yml b/config/locales/crowdin/js-cs.yml index 9ddb565f8f4f..c0dd26752b63 100644 --- a/config/locales/crowdin/js-cs.yml +++ b/config/locales/crowdin/js-cs.yml @@ -494,7 +494,7 @@ cs: label_sort_lower: "Přesunout níž" label_sorting: "Řazení" label_spent_time: "Strávený čas" - label_star_query: "Oblíbená" + label_star_query: "Oblíbené" label_press_enter_to_save: "Stiskněte Enter pro uložení." label_public_query: "Veřejné" label_sum: "Suma" @@ -756,7 +756,7 @@ cs: membership_updated: "Členství bylo aktualizováno" title: "E-mail upozornění " pause: - label: "Dočasně pozastavit denní připomenutí e-mailem" + label: "Dočasně pozastavit denní posílání oznámení e-mailem" first_day: "První den" last_day: "Poslední den" text_are_you_sure: "Jste si jisti?" diff --git a/config/locales/crowdin/js-de.yml b/config/locales/crowdin/js-de.yml index 721b70502b22..a47a76ae5055 100644 --- a/config/locales/crowdin/js-de.yml +++ b/config/locales/crowdin/js-de.yml @@ -231,8 +231,8 @@ de: status_label: "Status: " status_confirmed: "bestätigt" status_waiting: "E-Mail gesendet - Warten auf Bestätigung" - test_ee: "Testen Sie die Enterprise edition 14 Tage kostenlos" - quick_overview: "Erhalten Sie einen schnellen Überblick über Projektmanagement und Teamzusammenarbeit mit der OpenProject Enterprise edition." + test_ee: "Testen Sie die Enterprise Edition 14 Tage kostenlos" + quick_overview: "Erhalten Sie einen schnellen Überblick über Projektmanagement und Teamzusammenarbeit mit der OpenProject Enterprise Edition." upsale: become_hero: "Werde zum Held!" enterprise_info_html: "%{feature_title} ist ein Enterprise Add-on." @@ -258,7 +258,7 @@ de: text: > Die OpenProject Enterprise Edition baut auf der Community Edition auf. Sie umfasst Enterprise Add-ons und professionelle Unterstützung und richtet sich primär an Organisationen mit mehr als 10 Benutzern, die unternehmenskritische Projekte mit OpenProject verwalten. unlimited: "Unbegrenzt" - you_contribute: "Auch Software-Entwickler müssen ihre Rechnungen bezahlen. Durch ein Upgrade auf die Enterprise edition unterstützen Sie diese Open-Source-Community und tragen zur Entwicklung, Wartung und kontinuierlichen Verbesserung von OpenProject bei." + you_contribute: "Auch Software-Entwickler müssen ihre Rechnungen bezahlen. Durch ein Upgrade auf die Enterprise Edition unterstützen Sie diese Open-Source-Community und tragen zur Entwicklung, Wartung und kontinuierlichen Verbesserung von OpenProject bei." working_days: calendar: empty_state_header: "Arbeitsfreie Tage" @@ -1083,7 +1083,7 @@ de: upsale: attribute_highlighting: "Sollen bestimmte Arbeitspakete aus der Menge herausstechen?" relation_columns: "Möchten Sie Beziehungen als Spalten in der Arbeitspaketliste sehen können?" - check_out_link: "Schauen Sie sich die Enterprise edition an." + check_out_link: "Schauen Sie sich die Enterprise Edition an." relation_filters: filter_work_packages_by_relation_type: "Arbeitspakete nach Beziehungs-Typ filtern" tabs: @@ -1230,7 +1230,7 @@ de: title: "Platzhalter-Benutzer" title_no_ee: "Platzhalter-Benutzer (Enterprise Edition Add-on)" description: "Hat keinen Zugriff auf das Projekt und es werden keine E-Mails verschickt." - description_no_ee: 'Hat keinen Zugriff auf das Projekt und es werden keine E-Mails versendet.
Schau dir die Enterprise edition an' + description_no_ee: 'Hat keinen Zugriff auf das Projekt und es werden keine E-Mails versendet.
Schau dir die Enterprise Edition an' principal: label: name_or_email: "Name oder E-Mail-Adresse" diff --git a/config/locales/crowdin/js-fr.yml b/config/locales/crowdin/js-fr.yml index f852561c098f..6187b9921c4b 100644 --- a/config/locales/crowdin/js-fr.yml +++ b/config/locales/crowdin/js-fr.yml @@ -1275,7 +1275,7 @@ fr: all: "Tous les projets" selected: "Uniquement la sélection" search_placeholder: "Rechercher un projet..." - include_subprojects: "inclure tous les sous-projets" + include_subprojects: "Inclure tous les sous-projets" tooltip: include_all_selected: "Projet déjà inclus puisque Include tous les sous-projets sont activés." current_project: "Ceci est le projet dans lequel vous vous trouvez actuellement." diff --git a/config/locales/crowdin/js-id.yml b/config/locales/crowdin/js-id.yml index 3e8b32c91a85..d00bf7281c1e 100644 --- a/config/locales/crowdin/js-id.yml +++ b/config/locales/crowdin/js-id.yml @@ -102,7 +102,7 @@ id: button_save: "Simpan" button_settings: "Pengaturan" button_uncheck_all: "Uncek semua" - button_update: "Update" + button_update: "Perbarui" button_export-pdf: "Download PDF" button_export-atom: "Download Atom" button_create: "Buat baru" diff --git a/config/locales/crowdin/js-it.yml b/config/locales/crowdin/js-it.yml index 7a2339574e82..68ab07f51b6c 100644 --- a/config/locales/crowdin/js-it.yml +++ b/config/locales/crowdin/js-it.yml @@ -232,7 +232,7 @@ it: status_label: "Stato:" status_confirmed: "confermato" status_waiting: "email inviata, in attesa di conferma" - test_ee: "Prova l'Enterprise edition gratuitamente per 14 giorni" + test_ee: "Prova l'Enterprise Edition gratuitamente per 14 giorni" quick_overview: "Veloce panoramica sulla gestione dei progetti e il lavoro di squadra nell'edizione OpenProject Enterprise." upsale: become_hero: "Diventa un eroe!" diff --git a/config/locales/crowdin/js-no.yml b/config/locales/crowdin/js-no.yml index 34b1e546a63e..f26d66b6f5d2 100644 --- a/config/locales/crowdin/js-no.yml +++ b/config/locales/crowdin/js-no.yml @@ -102,7 +102,7 @@ button_save: "Lagre" button_settings: "Innstillinger" button_uncheck_all: "Avmerk alle" - button_update: "Oppdatèr" + button_update: "Oppdater" button_export-pdf: "Last ned PDF" button_export-atom: "Last ned Atom" button_create: "Opprett" diff --git a/config/locales/crowdin/js-pt.yml b/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 1ee444a7dcae..000000000000 --- a/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,1325 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - js: - ajax: - hide: "Ocultar" - loading: "Carregando…" - updating: "Atualizando…" - attachments: - delete: "Excluir anexo" - delete_confirmation: | - Tem certeza de que deseja excluir este arquivo? Esta ação é irreversível. - draggable_hint: | - Arraste sobre o campo do editor para incorporar uma imagem ou referenciar um anexo. Campos do editor fechados serão abertos enquanto você continuar arrastando. - quarantined_hint: "The file is quarantined, as a virus was found. It is not available for download." - autocomplete_ng_select: - add_tag: "Adicionar item" - clear_all: "Remover tudo" - loading: "Carregando..." - not_found: "Nenhum item encontrado" - type_to_search: "Escreva para pesquisar" - autocomplete_select: - placeholder: - multi: 'Adicionar "%{name}"' - single: 'Selecionar "%{name}"' - remove: "Remover %{name}" - active: "Ativar %{label} %{name}" - backup: - attachments_disabled: Pode ser que os anexos não sejam incluídos pois excedem o tamanho máximo permitido. Você pode alterar esta opção nas configurações (a reinicialização do servidor será necessária). - info: > - Você pode acionar uma cópia de segurança aqui. O processo pode demorar um pouco dependendo da quantidade de dados (especialmente anexos) que você tenha. Você receberá um e-mail quando ele estiver pronto. - note: > - Uma nova cópia de segurança substituirá qualquer cópia realizada anteriormente. Apenas um número limitado de cópias de segurança podem ser solicitadas por dia. - last_backup: Última cópia de segurança - last_backup_from: Última cópia de segurança de - title: Cópia de segurança do OpenProject - options: Opções - include_attachments: Incluir anexos - download_backup: Baixar cópia de segurança - request_backup: Solicitar cópia de segurança - close_popup_title: "Fechar pop-up" - close_filter_title: "Fechar filtro" - close_form_title: "Fechar formulário" - button_add_watcher: "Adicionar observador" - button_add: "Adicionar" - button_back: "Voltar" - button_back_to_list_view: "Voltar à lista" - button_cancel: "Cancelar" - button_close: "Fechar" - button_change_project: "Alterar projeto" - button_check_all: "Marcar todos" - button_configure-form: "Configurar formulário" - button_confirm: "Confirmar" - button_continue: "Continuar" - button_copy: "Copiar" - button_copy_to_clipboard: "Copiar para a área de transferência" - button_copy_link_to_clipboard: "Copiar link para área de transferência" - button_copy_to_other_project: "Copiar para outro projeto" - button_custom-fields: "Campos personalizados" - button_delete: "Excluir" - button_delete_watcher: "Excluir observador" - button_details_view: "Visão detalhada" - button_duplicate: "Duplicar" - button_edit: "Editar" - button_filter: "Filtro" - button_collapse_all: "Recolher todos" - button_expand_all: "Expandir todos" - button_advanced_filter: "Filtro avançado" - button_list_view: "Lista" - button_show_view: "Visualização em tela cheia" - button_log_time: "Registro de tempo" - button_more: "Mais" - button_open_details: "Abrir visão detalhada" - button_close_details: "Fechar visão detalhada" - button_open_fullscreen: "Abrir visualização em tela cheia" - button_show_cards: "Mostrar cartão" - button_show_list: "Mostrar lista" - button_show_table: "Mostra exibição de tabela" - button_show_gantt: "Mostra exibição de Gantt" - button_show_fullscreen: "Mostra exibição em tela cheia" - button_more_actions: "Mais ações" - button_quote: "Citar" - button_save: "Salvar" - button_settings: "Configurações" - button_uncheck_all: "Desmarcar todos" - button_update: "Atualizar" - button_export-pdf: "Baixar PDF" - button_export-atom: "Baixar Atom" - button_create: "Criar" - card: - add_new: "Adicionar novo cartão" - highlighting: - inline: "Destacar embutido:" - entire_card_by: "Todo cartão por" - remove_from_list: "Remover cartão da lista" - caption_rate_history: "Taxa histórica" - clipboard: - browser_error: "Seu navegador não dá suporte a copiar para a área de transferência. Copie-o manualmente: %{content}" - copied_successful: "Copiado com sucesso para área de transferência!" - chart: - type: "Tipo de gráfico" - axis_criteria: "Critérios do eixo" - modal_title: "Configuração do gráfico do pacote de trabalho" - types: - line: "Linha" - horizontal_bar: "Barra horizontal" - bar: "Barra" - pie: "Pizza" - doughnut: "Rosca" - radar: "Radar" - polar_area: "Área polar" - tabs: - graph_settings: "Geral" - dataset: "Base de dados %{number}" - errors: - could_not_load: "Os dados para exibir o gráfico não puderam ser carregados. As permissões necessárias podem estar faltando." - description_available_columns: "Colunas disponíveis" - description_current_position: "Você está aqui: " - description_select_work_package: "Selecionar o pacote de trabalho #%{id}" - description_subwork_package: "Filho do pacote de trabalho #%{id}" - editor: - preview: "Alternar modo de visualização" - source_code: "Alternar para código Markdown" - error_saving_failed: "Não foi possível salvar o documento pelo seguinte erro: %{error}" - ckeditor_error: "Ocorreu um erro no CKEditor " - mode: - manual: "Alternar para fonte Markdown" - wysiwyg: "Alternar para editor WYSIWYG" - macro: - error: "Não é possível expandir a macro: %{message}" - attribute_reference: - macro_help_tooltip: "Esse segmento de texto está sendo dinamicamente renderizado por uma macro." - not_found: "Não foi possível encontrar o recurso solicitado" - invalid_attribute: "O atributo selecionado '%{name}' não existe." - child_pages: - button: "Vínculos para páginas filhas" - include_parent: "Incluir pai" - text: "[Marcador de posição] Vínculos para páginas filhas de" - page: "Página wiki" - this_page: "esta página" - hint: | - Deixe este campo em branco para listar todas as páginas filhas da página atual. Se você deseja fazer referência a uma página diferente, forneça seu título ou "slug". - code_block: - button: "Inserir trecho de código" - title: "Inserir / editar Trecho de código" - language: "Linguagem de formatação" - language_hint: "Informe a linguagem de formatação que será usada para destacar (se suportado)." - dropdown: - macros: "Macros" - chose_macro: "Escolher macro" - toc: "Tabela de conteúdos" - toolbar_help: "Clique para selecionar o widget e mostrar a barra de ferramentas. Clique duas vezes para editar o widget" - wiki_page_include: - button: "Incluir o conteúdo de outra página wiki" - text: "[Marcador de posição] Incluída a página wiki de" - page: "Página wiki" - not_set: "(Página ainda não definida)" - hint: | - Inclua o conteúdo de outra página wiki, especificando seu título ou slug. Você pode incluir a página wiki de um outro projeto, separando-a com dois pontos como exemplo a seguir. - work_package_button: - button: "Inserir botão para criar pacote de trabalho" - type: "Tipo de pacote de trabalho" - button_style: "Use o estilo de botão" - button_style_hint: "Opcional: Marque para fazer a macro aparecer como um botão, não como um link." - without_type: "Criar pacote de trabalho" - with_type: "Criar pacote de trabalho (Tipo: %{typename})" - embedded_table: - button: "Embutir tabela de pacote de trabalho" - text: "[Marcador de posição] Tabela embutida de pacote de trabalho" - embedded_calendar: - text: "[Marcador de posição] Calendário embutido" - admin: - type_form: - custom_field: "Campo personalizado" - inactive: "Inativo" - drag_to_activate: "Arraste campos daqui para ativá-los" - add_group: "Adicionar grupo de atributo" - add_table: "Adicionar tabela de pacotes de trabalho relacionados" - edit_query: "Editar consulta" - new_group: "Novo grupo" - reset_to_defaults: "Voltar à configuração original" - enterprise: - text_reprieve_days_left: "%{days} dias até o final do período de carência" - text_expired: "expirado" - trial: - confirmation: "Confirmação de endereço de e-mail" - confirmation_info: > - Enviamos um e-mail para %{email} em %{date}. Por favor, verifique sua caixa de entrada e clique no link de confirmação fornecido para iniciar seu teste de 14 dias. - form: - general_consent: > - Concordo com os termos do serviço e com a política de privacidade. - invalid_email: "Endereço de e-mail inválido" - label_company: "Empresa" - label_first_name: "Primeiro nome" - label_last_name: "Sobrenome" - label_domain: "Domínio" - label_subscriber: "Assinante" - label_maximum_users: "Máximo de usuários ativos" - label_starts_at: "Começa em" - label_expires_at: "Expira em" - receive_newsletter: Quero receber o boletim informativo do OpenProject. - taken_domain: Pode haver somente uma avaliação ativa por domínio. - domain_mismatch: O nome do host da solicitação atual não corresponde ao nome do host configurado. Verifique novamente as configurações de seu sistema. - taken_email: Cada usuário pode criar somente uma avaliação. - email_not_received: "Não recebeu um e-mail? Você pode reenviá-lo através do link à direita." - try_another_email: "Ou tente com outro endereço de e-mail." - next_steps: "Próximas etapas" - resend_link: "Reenviar" - resend_success: "E-mail reenviado. Por favor, verifique seus e-mails e clique no link de confirmação fornecido." - resend_warning: "Não foi possível reenviar o e-mail." - session_timeout: "Sua sessão expirou. Tente recarregar a página ou reenviar o e-mail." - status_label: "Situação:" - status_confirmed: "confirmado" - status_waiting: "e-mail enviado - aguardando confirmação" - test_ee: "Teste a edição Enterprise gratuitamente por 14 dias" - quick_overview: "Obtenha uma visão geral da gestão de projetos e colaboração entre equipes com o OpenProject edição Enterprise." - upsale: - become_hero: "Torne-se um herói!" - enterprise_info_html: "%{feature_title} é um complemento do Enterprise." - upgrade_info: "Faça o upgrade para um plano pago para ativar e começar a usá-lo em sua equipe." - benefits: - description: "Quais os benefícios da edição Enterprise Edition local?" - high_security: "Recursos de segurança" - high_security_text: "Logon único (SAML, OpenID Connect, CAS), grupos LDAP." - installation: "Suporte à instalação" - installation_text: "Engenheiros de software experientes darão orientações durante todo o processo de instalação e configuração em sua própria infraestrutura." - premium_features: "Complementos Enterprise" - premium_features_text: "Painéis práticos, gráficos de temas e logotipos personalizados, fluxos de trabalho inteligentes com ações personalizadas, pesquisa de texto completo para anexos em pacotes de trabalho e campos personalizados de multi-seleção." - professional_support: "Suporte profissional" - professional_support_text: "Receba suporte confiável de alto nível de engenheiros sênior, com conhecimento especializado sobre a gestão do OpenProject em ambientes de negócios críticos." - button_start_trial: "Iniciar avaliação gratuita" - button_upgrade: "Faça o upgrade agora" - button_contact_us: " Contate-nos para obter uma demonstração" - button_book_now: "Reservar agora" - confidence: > - Fornecemos toda a segurança de um software de gestão de projetos de classe empresarial, testado e com suporte - com código aberto e mente aberta. - link_quote: "Solicitar uma cotação" - more_info: "Mais informações" - text: > - A edição OpenProject Enterprise foi desenvolvida a partir do edição Community. Ela conta com complementos Enterprise e suporte profissional, com foco principal em organizações com mais de 10 usuários que gerenciam projetos de negócios críticos com o OpenProject. - unlimited: "Ilimitado" - you_contribute: "Os desenvolvedores também têm contas a pagar. Ao atualizar para a edição Entreprise, você dará suporte a este esforço da comunidade de código aberto e contribuirá para o seu desenvolvimento, manutenção e melhoria contínua." - working_days: - calendar: - empty_state_header: "Dias não úteis" - empty_state_description: 'Não há dias não-úteis definidos para este ano. Clique em "+ Dia não útil" abaixo para adicionar uma data' - new_date: "(novo)" - add_non_working_day: "Dia não útil" - already_added_error: "Já existe um dia não útil para esta data. Só pode haver um dia não útil criado para cada data única." - change_button: "Salvar e reagendar" - change_title: "Alterar dias úteis" - removed_title: "Você removerá os seguintes dias da lista de dias não úteis:" - change_description: "Alterar os dias da semana que são considerados dias úteis ou não úteis pode afetar os dias de início e de término de todos os pacotes de trabalho em todos os projetos nesta instância." - warning: > - As alterações podem demorar algum tempo para entrar em vigor. Receberá uma notificação quando todos os pacotes de trabalho relevantes forem atualizados. - Tem a certeza de que deseja continuar? - custom_actions: - date: - specific: "ligado" - current_date: "Data atual" - error: - internal: "Ocorreu um erro interno." - cannot_save_changes_with_message: "Não foi possível salvar as alterações devido ao seguinte erro: %{error}" - query_saving: "A visão não pode ser salva." - embedded_table_loading: "A visão incorporada não pôde ser carregada: %{message}" - enumeration_activities: "Atividades (controle de tempo)" - enumeration_doc_categories: "Categorias de documento" - enumeration_work_package_priorities: "Prioridades do pacote de trabalho" - filter: - more_values_not_shown: "Há %{total} mais resultados, pesquise para filtrar resultados." - description: - text_open_filter: "Abra este filtro com a tecla 'ALT' e as teclas de seta." - text_close_filter: "Para selecionar uma entrada, saia do foco, por exemplo, pressionando enter. Para sair sem filtro, selecione a primeira entrada (vazia)." - noneElement: "(nenhum)" - time_zone_converted: - two_values: "%{from} - %{to} no seu horário local." - only_start: "Desde %{from} no seu horário local." - only_end: "Até %{to} no seu horário local." - value_spacer: "-" - sorting: - criteria: - one: "Primeiro critério de ordenação" - two: "Segundo critério de ordenação" - three: "Terceiro critério de ordenação" - gantt_chart: - label: "Diagrama de Gantt" - quarter_label: "Q%{quarter_number}" - labels: - title: "Configuração de rótulos" - bar: "Rótulos de barra" - left: "Esquerda" - right: "Direita" - farRight: "Extrema direita" - description: > - Selecione os atributos que você deseja que sejam exibidos nas respectivas posições do diagrama de Gantt em todos os momentos. esteja ciente de que ao passar sobre um elemento, seus marcadores de data serão exibidos ao invés destes atributos. - button_activate: "Exibir diagrama de Gantt" - button_deactivate: "Ocultar diagrama de Gantt" - filter: - noneSelection: "(nenhum)" - selection_mode: - notification: "Clique em qualquer pacote de trabalho destacado para criar a relação. Pressione ESC para cancelar." - zoom: - in: "Aumentar zoom" - out: "Diminuir zoom" - auto: "Zoom automático" - days: "Dias" - weeks: "Semanas" - months: "Meses" - quarters: "Trimestres" - years: "Anos" - description: > - Selecione o nível de zoom inicial que deve ser exibido quando o zoom automático não estiver disponível. - general_text_no: "não" - general_text_yes: "sim" - general_text_No: "Não" - general_text_Yes: "Sim" - hal: - error: - update_conflict_refresh: "Clique aqui para atualizar para a versão mais recente." - edit_prohibited: "A edição do %{attribute} está bloqueada para este recurso. Ou este atributo é derivado de relações (por exemplo, filhas) ou não é configurável." - format: - date: "%{attribute} não é uma data válida - AAAA-MM-DD esperado." - general: "Ocorreu um erro." - homescreen: - blocks: - new_features: - text_new_features: "Ler sobre os novos recursos e atualizações de produtos." - learn_about: "Saiba mais sobre os novos recursos" - #Include the version to invalidate outdated translations in other locales. - #Otherwise, e.g. chinese might still have the translations for 10.0 in the 12.0 release. - "13_3": - standard: - learn_about_link: https://www.openproject.org/blog/openproject-13-3-release/ - new_features_html: > - A versão contém vários novos recursos e melhorias:
- ical_sharing_modal: - title: "Assinar calendário" - inital_setup_error_message: "Ocorreu um erro ao buscar dados." - description: "Você pode usar a URL (iCalendar) para assinar este calendário em um cliente externo e exibir informações atualizadas do pacote de trabalho a partir dele." - warning: "Não compartilhe este URL com outros usuários. Qualquer pessoa com este link poderá visualizar os detalhes do pacote de trabalho sem uma conta ou senha." - token_name_label: "Onde você usará isto?" - token_name_placeholder: 'Digite um nome, por ex.: "Telefone"' - token_name_description_text: 'Se você assinar este calendário em vários dispositivos, este nome ajudará na distinção entre eles em sua lista de tokens de acesso.' - copy_url_label: "Copiar URL" - ical_generation_error_text: "Ocorreu um erro ao gerar o URL do calendário." - success_message: 'O URL "%{name}" foi copiado com sucesso para sua área de transferência. Cole-o em seu cliente de calendário para concluir a assinatura.' - label_activate: "Ativar" - label_assignee: "Atribuído para" - label_add_column_after: "Adicionar coluna depois" - label_add_column_before: "Adicionar coluna antes" - label_add_columns: "Adicionar colunas" - label_add_comment: "Adicionar comentário" - label_add_comment_title: "Comente e digite @ para notificar outras pessoas" - label_add_row_after: "Adicionar linha depois" - label_add_row_before: "Adicionar linha antes" - label_add_selected_columns: "Adicionar colunas selecionadas" - label_added_by: "adicionado por" - label_added_time_by: 'Adicionado por %{author} em %{age}' - label_ago: "dias atrás" - label_all: "todos" - label_all_work_packages: "todos pacotes de trabalho" - label_and: "e" - label_ascending: "Crescente" - label_author: "Autor: %{user}" - label_avatar: "Imagem do perfil" - label_between: "entre" - label_board: "Quadro" - label_board_locked: "Bloqueado" - label_board_plural: "Quadros" - label_board_sticky: "Afixado" - label_change: "Alterar" - label_create: "Criar" - label_create_work_package: "Criar novo pacote de trabalho" - label_created_by: "Criado por" - label_date: "Data" - label_date_with_format: "Insira a %{date_attribute} usando o seguinte formato: %{format}" - label_deactivate: "Desativado" - label_descending: "Decrescente" - label_description: "Descrição" - label_details: "Detalhes" - label_display: "Exibir" - label_cancel_comment: "Cancelar comentário" - label_closed_work_packages: "fechado" - label_collapse: "Recolher" - label_collapsed: "recolhido" - label_collapse_all: "Recolher todos" - label_comment: "Comentário" - label_committed_at: "%{committed_revision_link} em %{date}" - label_committed_link: "revisão commitada %{revision_identifier}" - label_contains: "contém" - label_created_on: "criado em" - label_edit_comment: "Editar este comentário" - label_edit_status: "Editar a situação do pacote de trabalho" - label_email: "E-mail" - label_equals: "é" - label_expand: "Expandir" - label_expanded: "expandido" - label_expand_all: "Expandir todos" - label_expand_project_menu: "Expandir menu do projeto" - label_export: "Exportar" - label_export_preparing: "A exportação está sendo preparada e será baixada em breve." - label_filename: "Arquivo" - label_filesize: "Tamanho" - label_general: "Geral" - label_global_roles: "Funções globais" - label_greater_or_equal: ">=" - label_group: "Grupo" - label_group_by: "Agrupar por" - label_group_plural: "Grupos" - label_hide_attributes: "Mostrar menos" - label_hide_column: "Ocultar coluna" - label_hide_project_menu: "Recolher menu do projeto" - label_in: "em" - label_in_less_than: "em menos de" - label_in_more_than: "em mais de" - label_incoming_emails: "E-mails recebidos" - label_information_plural: "Informação" - label_invalid: "Inválido" - label_import: "Importar" - label_latest_activity: "Última atividade" - label_last_updated_on: "Última atualização em" - label_learn_more_link: "Saiba mais" - label_less_or_equal: "<=" - label_less_than_ago: "menos do que dias atrás" - label_loading: "Carregando..." - label_mail_notification: "Notificações por e-mail" - label_manage_columns: "Manage and reorder columns" - label_me: "eu" - label_meeting_agenda: "Agenda" - label_meeting_minutes: "Atas" - label_menu_collapse: "recolher" - label_menu_expand: "expandir" - label_more_than_ago: "mais do que dias atrás" - label_next: "Próximo" - label_no_color: "Sem cor" - label_no_data: "Sem dados para exibir" - label_no_due_date: "sem data de conclusão" - label_no_start_date: "nenhuma data de início" - label_no_date: "sem data" - label_no_value: "Nenhum valor" - label_none: "nenhum" - label_not_contains: "não contém" - label_not_equals: "não é" - label_on: "ligado" - label_open_menu: "Abrir menu" - label_open_context_menu: "Abrir menu de contexto" - label_open_work_packages: "aberto" - label_password: "Senha" - label_previous: "Anterior" - label_per_page: "Por página:" - label_please_wait: "Por favor, aguarde" - label_project: "Projeto" - label_project_list: "Listas de projeto" - label_project_plural: "Projetos" - label_visibility_settings: "Configurações de visibilidade" - label_quote_comment: "Citar este comentário" - label_recent: "Recente" - label_reset: "Reiniciar" - label_remove: "Remover" - label_remove_column: "Remover coluna" - label_remove_columns: "Remover colunas selecionadas" - label_remove_row: "Remover linha" - label_report: "Relatório" - label_repository_plural: "Repositórios" - label_save_as: "Salvar como" - label_search_columns: "Search a column" - label_select_project: "Selecionar um projeto" - label_select_watcher: "Selecione um observador..." - label_selected_filter_list: "Filtros selecionados" - label_show_attributes: "Mostrar todos os atributos" - label_show_in_menu: "Mostrar visualização no menu" - label_sort_by: "Ordenar por" - label_sorted_by: "ordenado por" - label_sort_higher: "Mover para cima" - label_sort_lower: "Mover para baixo" - label_sorting: "Ordenação" - label_spent_time: "Tempo gasto" - label_star_query: "Favorecido" - label_press_enter_to_save: "Pressione enter para salvar." - label_public_query: "Público" - label_sum: "Soma" - label_sum_for: "Soma para" - label_total_sum: "Soma total" - label_subject: "Assunto" - label_this_week: "esta semana" - label_today: "Hoje" - label_time_entry_plural: "Tempo gasto" - label_up: "Acima" - label_user_plural: "Usuários" - label_activity_show_only_comments: "Mostrar somente as atividades com comentários" - label_activity_show_all: "Mostrar todas as atividades" - label_total_progress: "%{percent}% de progresso total" - label_total_amount: "Total: %{amount}" - label_updated_on: "atualizado em" - label_value_derived_from_children: "(valor derivado dos filhos)" - label_children_derived_duration: "Duração derivada dos filhos do pacote de trabalho" - label_warning: "Aviso" - label_work_package: "Pacote de trabalho" - label_work_package_parent: "Pacote de trabalho pai" - label_work_package_plural: "Pacotes de trabalho" - label_watch: "Observar" - label_watch_work_package: "Observar pacote de trabalho" - label_watcher_added_successfully: "Observador adicionado com sucesso!" - label_watcher_deleted_successfully: "Observador excluído com sucesso!" - label_work_package_details_you_are_here: "Você está na aba %{tab} por %{type} %{subject}." - label_work_package_context_menu: "Menu de contexto do pacote de trabalho" - label_unwatch: "Deixar de observar" - label_unwatch_work_package: "Deixar de observar pacote de trabalho" - label_uploaded_by: "Enviado por" - label_default_queries: "Padrão" - label_starred_queries: "Favorito" - label_global_queries: "Público" - label_custom_queries: "Privado" - label_columns: "Colunas" - label_attachments: Anexos - label_drop_files: "Solte os arquivos aqui para anexá-los." - label_drop_or_click_files: "Solte aqui arquivos ou clique para anexá-los." - label_drop_folders_hint: Você não pode enviar pastas como anexo. Por favor, selecione arquivos individuais. - label_add_attachments: "Anexar arquivos" - label_formattable_attachment_hint: "Anexe e vincule arquivos soltando neste campo ou colando da área de transferência." - label_remove_file: "Excluir %{fileName}" - label_remove_watcher: "Remover observador %{name}" - label_remove_all_files: Excluir todos os arquivos - label_add_description: "Adicionar uma descrição para %{file}" - label_upload_notification: "Enviando arquivos..." - label_work_package_upload_notification: "Enviando arquivos para o pacote de trabalho #%{id}: %{subject}" - label_wp_id_added_by: "#%{id} adicionado por %{author}" - label_files_to_upload: "Estes arquivos serão enviados:" - label_rejected_files: "Estes arquivos não podem ser enviados:" - label_rejected_files_reason: "Estes arquivos não podem ser enviados, pois seu tamanho é maior do que %{maximumFilesize}" - label_wait: "Por favor, aguarde pela configuração..." - label_upload_counter: "%{done} de %{count} de arquivos finalizados" - label_validation_error: "O pacote de trabalho não pôde ser salvo devido aos seguintes erros:" - label_version_plural: "Versões" - label_view_has_changed: "Esta visão tem alterações não salvas. Clique para salvá-las." - help_texts: - show_modal: "Mostrar entrada de texto de ajuda do atributo" - onboarding: - buttons: - skip: "Pular" - next: "Próxima" - got_it: "Entendi" - steps: - help_menu: "O menu Ajuda (?) oferece recursos adicionais de ajuda. Aqui você pode encontrar um guia do usuário, vídeos de ajuda úteis e muito mais.
Desfrute de seu trabalho com o OpenProject!" - members: "Convide novos membros para participar de seu projeto." - quick_add_button: "Clique no ícone mais (+) no menu de navegação para criar um novo projeto ou para convidar colegas de trabalho." - sidebar_arrow: "Use a seta de retorno no canto superior esquerdo para retornar ao menu principal do projeto." - welcome: "Acompanhe um tour de apresentação de 3 minutos para descobrir mais recursos importantes.
Recomendamos que você conclua as etapas até o final. Você pode reiniciar o tour a qualquer momento." - wiki: "Na wiki, você pode documentar e compartilhar conhecimento junto com sua equipe. " - backlogs: - overview: "Gerencie seu trabalho na visão de backlogs." - sprints: "À direita você encontra o backlog do produto e de erros, à esquerda você encontra os respectivos sprints. Aqui você pode criar épicos, histórias de usuário e bugs, priorizar através de arrastar e soltar e adicioná-los a um sprint." - task_board_arrow: "Para ver o seu quadro de tarefas, abra o menu suspenso de sprint ... " - task_board_select: "... e selecione a entrada do quadro de tarefas. " - task_board: "O painel de tarefas visualiza o progresso deste sprint. Clique no ícone mais (+) ao lado de uma história de usuário para adicionar novas tarefas ou impedimentos.
A situação pode ser atualizada arrastando e soltando." - boards: - overview: "Selecione quadros para mudar a visão e gerenciar seu projeto usando a exibição de quadros ágeis." - lists_kanban: "Aqui você pode criar várias listas (colunas) dentro do seu painel. Este recurso permite que você crie um Quadro Kanban, por exemplo." - lists_basic: "Aqui você pode criar várias listas (colunas) em seu quadro ágil." - add: "Clique no ícone mais (+) para criar um novo cartão ou adicionar um cartão existente à lista no quadro." - drag: "Arraste e solte suas cartas dentro de uma determinada lista para reordená-las, ou para movê-las para outra lista.
Você pode clicar no ícone informativo (i) no canto superior direito ou clicar duas vezes em um cartão para abrir seus detalhes." - wp: - toggler: "Agora vamos dar uma olhada na seção pacote de trabalho , que permitirá que você tenha uma visão mais detalhada de seu trabalho." - list: "Esta visão geral do pacote de trabalho fornece uma lista de todo o trabalho em seu projeto, como tarefas, marcos, fases e muito mais.
Os pacotes de trabalho podem ser criados e editados diretamente nesta visualização. Para acessar os detalhes de um determinado pacote de trabalho, basta clicar duas vezes na sua linha." - full_view: "A visualização com os detalhes do pacote de trabalho fornece todas as informações relevantes referentes a um determinado pacote de trabalho, como descrição, situação, prioridade, atividades, dependências e comentários." - back_button: "Use a seta de retorno no canto superior esquerdo para sair e retornar à lista de pacotes de trabalho." - create_button: "O botão + Criar adicionará um novo pacote de trabalho ao seu projeto." - gantt_menu: "Crie planejamentos e cronogramas de projetos sem esforço usando o módulo do gráfico de Gantt." - timeline: "Aqui você pode editar seu plano de projeto, criar novos pacotes de trabalho, tais como tarefas, marcos, fases e muito mais, bem como adicionam dependências. Todos os membros da equipe podem visualizar e atualizar o plano mais recente a qualquer momento." - team_planner: - overview: "O planejador de equipe permite atribuir tarefas visualmente aos membros da equipe e obter uma visão geral de quem está trabalhando e no quê (onde)." - calendar: "O quadro de planejamento semanal ou quinzenal exibe todos os pacotes de trabalho atribuídos aos membros de sua equipe." - add_assignee: "Para começar, adicione responsáveis ao planejador de equipe." - add_existing: "Pesquise pacotes de trabalho existentes e arraste-os para o planejador de equipe para atribuí-los instantaneamente a um membro da equipe e definir as datas de início e término." - card: "Arraste os pacotes de trabalho horizontalmente para movê-los para trás ou para frente no tempo, arraste as bordas para alterar as datas de início e término e arraste-os verticalmente para uma linha diferente para atribuí-los a outro membro." - notifications: - title: "Notificações" - no_unread: "Nenhuma notificação não lida" - reasons: - mentioned: "mencionado" - watched: "observador" - assigned: " cessionário" - responsible: "responsável" - created: "criado" - scheduled: "planejado" - commented: "comentado" - processed: "processado" - prioritized: "priorizado" - dateAlert: "Alerta de data" - shared: "compartilhado" - date_alerts: - milestone_date: "Data de marco" - overdue: "Atrasado" - overdue_since: "desde %{difference_in_days}" - property_today: "é hoje" - property_is: "está em %{difference_in_days}" - property_was: "há %{difference_in_days}" - property_is_deleted: "foi excluído" - upsale: - title: "Alertas de data" - description: "Com os alertas de data, você receberá uma notificação das futuras datas de início e conclusão, assim você nunca perderá ou esquecerá prazos importante. " - facets: - unread: "Não lido" - unread_title: "Mostrar não lidas" - all: "Todos" - all_title: "Mostrar todas" - center: - label_actor_and: "e" - and_more_users: - one: "e 1 outro" - other: "e %{count} outros" - no_results: - at_all: "Novas notificações aparecerão aqui quando houver atividade de seu interesse." - with_current_filter: "Não há notificações nesta visualização no momento" - mark_all_read: "Marcar tudo como lido" - mark_as_read: "Marcar como lido" - text_update_date: "%{date} por" - total_count_warning: "Mostrando as %{newest_count} notificações mais recentes. Outras %{more_count} não são exibidas." - empty_state: - no_notification: "Parece que você já está com tudo em dia." - no_notification_with_current_project_filter: "Parece que você já está com tudo me dia para o projeto selecionado." - no_notification_with_current_filter: "Parece que você já está com tudo em dia para o filtro %{filter}." - no_selection: "Clique em uma notificação para visualizar todos os detalhes da atividade." - new_notifications: - message: "Há novas notificações." - link_text: "Clique aqui para carregá-las" - menu: - accountable: "Responsável" - by_project: "Não lido por projeto" - by_reason: "Motivo" - inbox: "Caixa de entrada" - mentioned: "Mencionado" - watched: "Observador" - date_alert: "Alerta de data" - shared: "Compartilhado" - settings: - change_notification_settings: 'Você pode modificar suas configurações de notificação para se certificar de nunca perder nenhuma atualização importante.' - title: "Configurações de notificação" - notify_me: "Notifique-me" - reminders: - no_notification: Sem notificação - timeframes: - normal: - PT0S: mesmo dia - P1D: 1 dia antes - P3D: 3 dias antes - P7D: uma semana antes - overdue: - P1D: todo dia - P3D: a cada 3 dias - P7D: Toda semana - reasons: - mentioned: - title: "Mencionado" - description: "Receber uma notificação sempre que alguém me mencionar" - assignee: "Cessionário" - responsible: "Responsável" - shared: "Compartilhado" - watched: "Observador" - work_package_commented: "Todos os novos comentários" - work_package_created: "Novos pacotes de trabalho" - work_package_processed: "Todas as mudanças de situação" - work_package_prioritized: "Todas as mudanças de prioridade" - work_package_scheduled: "Todas as alterações de data" - global: - immediately: - title: "Participando" - description: "Notificações para todas as atividades nos pacotes de trabalho que você está envolvido (cessionário, responsável ou observador)." - delayed: - title: "Não participando" - description: "Notificações adicionais para atividades em todos os projetos" - date_alerts: - title: "Alertas de data" - description: "Notificações automáticas quando datas importantes estiverem se aproximando para pacotes de trabalho abertos que você esteja envolvido (cessionário, responsável ou observador)." - teaser_text: "Com os alertas de data, você receberá uma notificação das futuras datas de início e conclusão, assim você nunca perderá ou esquecerá prazos importante. " - overdue: Quando vencido - project_specific: - title: "Configurações de notificação específicas de projetos" - description: "Essas configurações específicas de projeto substituem as configurações padrão acima" - add: "Adicionar configuração para o projeto" - already_selected: "Este projeto já está selecionado" - remove: "Remover configurações de projeto" - password_confirmation: - field_description: "Você precisa digitar sua senha para confirmar essa alteração." - title: "Confirme sua senha para continuar" - pagination: - no_other_page: "Você está na página única." - pages: - next: "Ir para a próxima página" - previous: "Voltar para a página anterior" - placeholders: - default: "-" - subject: "Informe o assunto aqui" - selection: "Por favor selecione" - description: "Descrição: Clique em editar..." - relation_description: "Clique para adicionar a descrição para esta relação" - project: - required_outside_context: > - Por favor, escolha o projeto onde vai criar o pacote de trabalho para visualizar todos os atributos. Você pode selecionar somente projetos que possuam o tipo acima ativado. - details_activity: "Atividade de detalhes do projeto" - context: "Contexto do projeto" - click_to_switch_to_project: "Projeto: %{projectname}" - confirm_template_load: "Mudar o modelo irá recarregar a página e todos os dados inseridos nesse formulário serão perdidos. Continuar?" - use_template: "Usar modelo" - no_template_selected: "(Nenhum)" - copy: - copy_options: "Opções de cópia" - autocompleter: - label: "Autocompletar projeto" - reminders: - settings: - daily: - add_time: "Adicionar tempo" - enable: "Ativar lembretes diários por e-mail " - explanation: "Você receberá estes lembretes somente para as notificações não lidas e apenas nas horas especificadas por você. %{no_time_zone}" - no_time_zone: "Até que um fuso horário seja configurado em sua conta, os horários serão interpretados como UTC." - time_label: "Tempo %{counter}:" - title: "Envie-me lembretes diários por e-mail para as notificações não lidas" - workdays: - title: "Receber lembretes por e-mail nestes dias" - immediate: - title: "Envie-me um lembrete por e-mail" - mentioned: "Imediatamente quando alguém me @mencionar" - alerts: - title: "Alertas por e-mail para outros itens (qua não sejam pacotes de trabalho)" - explanation: > - As notificações hoje estão limitadas a pacotes de trabalho. Você pode optar por continuar a receber alertas por e-mail para estes eventos até que eles sejam incluídos nas notificações: - news_added: "Notícia adicionada" - news_commented: "Comentar em um item de notícia" - document_added: "Documentos adicionados" - forum_messages: "Novas mensagens de fórum" - wiki_page_added: "Página wiki adicionada" - wiki_page_updated: "Página wiki atualizada" - membership_added: "Associação adicionada" - membership_updated: "Associação atualizada" - title: "Lembretes por e-mail" - pause: - label: "Pausar temporariamente lembretes por e-mail diários " - first_day: "Primeiro dia" - last_day: "Último dia" - text_are_you_sure: "Você tem certeza?" - text_data_lost: "Todos os dados inseridos serão perdidos." - text_user_wrote: "%{value} escreveu:" - types: - attribute_groups: - error_duplicate_group_name: "O nome %{group} foi usado mais de uma vez. Nomes de Grupos devem ser únicos." - error_no_table_configured: "Por favor, configure uma tabela para %{group}." - reset_title: "Voltar para a configuração padrão do formulário" - confirm_reset: > - Aviso: Tem certeza de que deseja redefinir a configuração de formulário? Isto irá redefinir os atributos para o grupo padrão e desativar TODOS os campos personalizados. - upgrade_to_ee: "Atualizar para a edição Enterprise local" - upgrade_to_ee_text: "Uau! Se você precisa deste complemento, é porque é um super profissional! Gostaria de mostrar seu suporte aos desenvolvedores de código aberto tornando-se um cliente da edição Enterprise?" - more_information: "Mais informações" - nevermind: "Deixa pra lá" - edit: - form_configuration: "Configuração do formulário" - projects: "Projetos" - settings: "Configurações" - time_entry: - work_package_required: "É necessário selecionar primeiro um pacote de trabalho." - title: "Registro de tempo" - tracking: "Controle de tempo" - stop: "Parar" - timer: - start_new_timer: "Iniciar novo temporizador" - timer_already_running: "Para iniciar um novo temporizador, primeiro você deve interromper o temporizador atual:" - timer_already_stopped: "Nenhum temporizador ativo para este pacote de trabalho, você o interrompeu em outra janela?" - tracking_time: "Monitorando tempo" - button_stop: "Interromper temporizador atual" - two_factor_authentication: - label_two_factor_authentication: "Autenticação de dois fatores" - watchers: - label_loading: carregando observadores... - label_error_loading: Ocorreu um erro ao carregar os observadores - label_search_watchers: Procurar observadores - label_add: Adicionar observadores - label_discard: Descartar seleção - typeahead_placeholder: Procurar possíveis observadores - relation_labels: - parent: "Pai" - children: "Filhos" - relates: "Relacionado a" - duplicates: "Duplicados" - duplicated: "Duplicado por" - blocks: "Bloqueios" - blocked: "Bloqueado por" - precedes: "Antecede" - follows: "Segue" - includes: "Inclui" - partof: "Parte de" - requires: "Requer" - required: "Requerido por" - relation_type: "tipo de relação" - relations_hierarchy: - parent_headline: "Pai" - hierarchy_headline: "Hierarquia" - children_headline: "Filhos" - relation_buttons: - set_parent: "Definir pai" - change_parent: "Alterar pai" - remove_parent: "Remover pai" - hierarchy_indent: "Hierarquia da indentação" - hierarchy_outdent: "Remover hierarquia da indentação" - group_by_wp_type: "Agrupar por tipo de pacote de trabalho" - group_by_relation_type: "Agrupar por tipo de relação" - add_parent: "Adicionar pai existente" - add_new_child: "Criar novo filho" - create_new: "Criar novo" - add_existing: "Adicionar existente" - add_existing_child: "Adicionar filho existente" - remove_child: "Remover filho" - add_new_relation: "Criar nova relação" - add_existing_relation: "Adicionar relação existente" - update_description: "Definir ou atualizar a descrição desta relação" - toggle_description: "Alternar descrição da relação" - update_relation: "Clique para alterar o tipo de relação" - add_follower: "Adicionar seguidor" - show_relations: "Exibir relações" - add_predecessor: "Adicionar antecessor" - remove: "Remover relação" - save: "Salvar relação" - abort: "Abortar" - relations_autocomplete: - placeholder: "Escreva para pesquisar" - parent_placeholder: "Escolha o novo pai ou pressione esc para cancelar." - autocompleter: - placeholder: "Escreva para pesquisar" - notFoundText: "Nenhum item encontrado" - project: - placeholder: "Selecionar projeto" - repositories: - select_tag: "Selecionar marca" - select_branch: "Selecionar ramificação" - field_value_enter_prompt: "Insira um valor para '%{field}'" - project_menu_details: "Detalhes" - scheduling: - manual: "Planejamento manual" - sort: - sorted_asc: "Ordenação crescente aplicada, " - sorted_dsc: "Ordenação decrescente aplicada, " - sorted_no: "Nenhuma ordenação aplicada, " - sorting_disabled: "ordenação está desativada" - activate_asc: "ative para aplicar ordenação crescente" - activate_dsc: "ative para aplicar ordenação decrescente" - activate_no: "ative para remover a ordenação" - text_work_packages_destroy_confirmation: "Tem certeza que deseja excluir o(s) pacote(s) de trabalho selecionado(s)?" - text_query_destroy_confirmation: "Tem certeza que deseja excluir a visão selecionada?" - tl_toolbar: - zooms: "Nível de zoom" - outlines: "Nível de hierarquia" - upsale: - ee_only: "Complemento da edição Enterprise" - wiki_formatting: - strong: "Negrito" - italic: "Itálico" - underline: "Sublinhado" - deleted: "Excluído" - code: "Código embutido" - heading1: "Título 1" - heading2: "Título 2" - heading3: "Título 3" - unordered_list: "Lista não ordenada" - ordered_list: "Lista ordenada" - quote: "Citar" - unquote: "Remover citação" - preformatted_text: "Texto pré-formatado" - wiki_link: "Link para uma página Wiki" - image: "Imagem" - work_packages: - bulk_actions: - move: "Mudança em massa de projeto" - edit: "Edição em massa" - copy: "Cópia em massa" - delete: "Exclusão em massa" - button_clear: "Limpar" - comment_added: "O comentário foi adicionado com sucesso." - comment_send_failed: "Ocorreu um erro. Não foi possível enviar o comentário." - comment_updated: "O comentário foi atualizado com sucesso." - confirm_edit_cancel: "Tem certeza que deseja cancelar a edição do pacote de trabalho?" - datepicker_modal: - automatically_scheduled_parent: "Planejado automaticamente. As datas são derivadas das relações." - manually_scheduled: "Planejamento manual habilitado, todas as relações são ignoradas." - start_date_limited_by_relations: "As datas de início e de conclusão disponíveis são limitadas pelas relações." - changing_dates_affects_follow_relations: "A alteração dessas datas afetará as datas de pacotes de trabalho relacionados." - click_on_show_relations_to_open_gantt: 'Clique em "%{button_name}" para ter uma visão geral do GANTT.' - show_relations: "Mostrar relações" - ignore_non_working_days: - title: "Apenas dias úteis" - description_filter: "Filtro" - description_enter_text: "Inserir texto" - description_options_hide: "Ocultar opções" - description_options_show: "Mostrar opções" - edit_attribute: "%{attribute} - Editar" - key_value: "%{key}: %{value}" - label_enable_multi_select: "Ativar seleção múltipla" - label_disable_multi_select: "Desativar seleção múltipla" - label_filter_add: "Adicionar filtro" - label_filter_by_text: "Filtrar por texto" - label_options: "Opções" - label_column_multiselect: "Campo suspenso combinado: selecione com as teclas de seta, confirme a seleção com enter, apague com backspace" - message_error_during_bulk_delete: Ocorreu um erro ao tentar excluir pacotes de trabalho. - message_successful_bulk_delete: Pacotes de trabalho excluídos com sucesso. - message_successful_show_in_fullscreen: "Clique aqui para abrir este pacote de trabalho na visualização de tela cheia." - message_view_spent_time: "Mostrar o tempo gasto neste pacote de trabalho" - message_work_package_read_only: "Pacote de trabalho está bloqueado na presente situação. Nenhum atributo que não seja a situação pode ser alterado." - message_work_package_status_blocked: "A situação do pacote de trabalho não é gravável devido a situação fechada e a versão fechada." - placeholder_filter_by_text: "Assunto, descrição, comentários, ..." - baseline: - addition_label: "Adicionado à exibição dentro do período de comparação" - removal_label: "Removido da exibição dentro do período de comparação" - modification_label: "Modificado dentro do período de comparação" - column_incompatible: "Esta coluna não exibe alterações no modo de linha base." - filters: - title: "Filtrar pacotes de trabalho" - baseline_incompatible: "Este atributo de filtro não é levado em consideração no modo de linha base." - baseline_warning: "O modo de linha base está ativado, mas alguns de seus filtros ativos não foram incluídos na comparação." - inline_create: - title: "Clique aqui para adicionar um novo pacote de trabalho a esta lista" - create: - title: "Novo pacote de trabalho" - header: "Novo %{type}" - header_no_type: "Novo pacote de trabalho (Tipo ainda não definido)" - header_with_parent: "Novo %{type} (Filho de %{parent_type} #%{id})" - button: "Criar" - copy: - title: "Copiar pacote de trabalho" - hierarchy: - show: "Mostrar o modo de hierarquia" - hide: "Ocultar o modo de hierarquia" - toggle_button: "Clique para alternar o modo de hierarquia." - leaf: "Folha de pacote de trabalho no nível %{level}." - children_collapsed: "Nível de hierarquia %{level}, recolhido. Clique para mostrar os filhos filtrados" - children_expanded: "Nível de hierarquia %{level}, expandido. Clique para recolher os filhos filtrados" - faulty_query: - title: Pacotes de trabalho não podem ser carregados. - description: Sua visão está incorreta e não pôde ser processada. - no_results: - title: Não há pacotes de trabalho para exibir. - description: Nenhum pacote criado ou todos os pacotes de trabalho foram filtrados. - limited_results: Apenas %{count} pacotes de trabalho podem ser exibidos no modo manual de classificação. Reduza os resultados através de filtragem ou alterando a ordenação automática. - property_groups: - details: "Detalhes" - people: "Pessoas" - estimatesAndTime: "Estimativas e Tempo" - other: "Outro" - properties: - assignee: "Atribuído para" - author: "Autor" - createdAt: "Criado em" - description: "Descrição" - date: "Data" - percentComplete: "% concluído" - percentCompleteAlternative: "Progresso" - dueDate: "Data de conclusão" - duration: "Duração" - spentTime: "Tempo gasto" - category: "Categoria" - percentageDone: "Percentual pronto" - priority: "Prioridade" - projectName: "Projeto" - remainingWork: "Trabalho restante" - remainingWorkAlternative: "Horas restantes" - responsible: "Responsável" - startDate: "Data de início" - status: "Status" - subject: "Assunto" - subproject: "Subprojeto" - title: "Título" - type: "Tipo" - updatedAt: "Atualizado em" - versionName: "Versão" - version: "Versão" - work: "Trabalho" - workAlternative: "Tempo estimado" - remainingTime: "Trabalho restante" - default_queries: - latest_activity: "Última atividade" - created_by_me: "Criado por mim" - assigned_to_me: "Atribuído a mim" - recently_created: "Criado recentemente" - all_open: "Todos abertos" - summary: "Sumário" - shared_with_users: "Compartilhado com usuários" - shared_with_me: "Shared with me" - jump_marks: - pagination: "Pular para a tabela de paginação" - label_pagination: "Clique aqui para pular a tabela de pacotes de trabalho e ir para a paginação" - content: "Pular para o conteúdo" - label_content: "Clique aqui para pular o menu e ir para o conteúdo" - placeholders: - default: "-" - date: "Selecionar data" - query: - column_names: "Colunas" - group_by: "Agrupar resultados por" - group: "Agrupar por" - group_by_disabled_by_hierarchy: "O agrupamento está desativado, pois o modo de hierarquia está ativo." - hierarchy_disabled_by_group_by: "O modo de hierarquia está desativado, pois os resultados estão agrupados por %{column}." - sort_ascending: "Ordenação crescente" - sort_descending: "Ordenação decrescente" - move_column_left: "Mover coluna para esquerda" - move_column_right: "Mover coluna para direita" - hide_column: "Ocultar coluna" - insert_columns: "Inserir colunas" - filters: "Filtros" - display_sums: "Mostrar somas" - confirm_edit_cancel: "Tem certeza que deseja cancelar a edição do nome desta visão? O título será definido novamente com o valor anterior." - click_to_edit_query_name: "Clique para editar o título desta visão." - rename_query_placeholder: "Nome desta visão" - star_text: "Marcar esta visão como favorita e adicionar à barra lateral de visualização salva à esquerda." - public_text: > - Publicar esta visualização, permitindo que outros usuários acessem sua visualização. Usuários com a permissão 'Gerenciar visualizações públicas' podem modificar ou remover a consulta pública. Isso não afeta a visibilidade dos resultados do pacote de trabalho nessa visualização e dependendo de suas permissões, os usuários podem ver resultados diferentes. - errors: - unretrievable_query: "Não foi possível recuperar a visualização da URL" - not_found: "Esta visão não existe" - duplicate_query_title: "O nome desta visão já existe. Modificar assim mesmo?" - text_no_results: "Nenhuma visão correspondente foi encontrada." - scheduling: - is_parent: "As datas deste pacote de trabalho são deduzidas automaticamente de seus filhos. Ative o 'Planejamento manual' para definir as datas." - is_switched_from_manual_to_automatic: "As datas deste pacote de trabalho podem precisar ser recalculadas após a alteração de planejamento manual para automático devido a relações com outros pacotes de trabalho." - sharing: - share: "Compartilhar" - title: "Compartilhar pacote de trabalho" - show_all_users: "Exibir todos os usuários compartilhados" - selected_count: "%{count} selecionado" - selection: - mixed: "Misturado" - upsale: - description: "Compartilhe pacotes de trabalho com usuários que não são membros do projeto." - table: - configure_button: "Configurar a tabela de pacote de trabalho" - summary: "Tabela com linhas de pacote de trabalho e colunas com atributos do pacote de trabalho." - text_inline_edit: "A maioria das células desta tabela são botões que ativam a funcionalidade de edição em linha do atributo." - text_sort_hint: "Com os links nos cabeçalhos da tabela você pode classificar, agrupar, reordenar, remover e adicionar colunas na tabela." - text_select_hint: "Caixas de seleção devem ser abertas com 'ALT' e teclas de seta." - table_configuration: - button: "Configurar esta tabela de pacote de trabalho" - choose_display_mode: "Exibir pacotes de trabalho como" - modal_title: "Configuração de tabela de pacote de trabalho" - embedded_tab_disabled: "Esta aba de configuração não está disponível para a exibição incorporada que você está editando." - default: "padrão" - display_settings: "Configurações de exibição" - default_mode: "Lista plana" - hierarchy_mode: "Hierarquia" - hierarchy_hint: "Todos os resultados da tabela filtrada serão aumentados com seus ancestrais. As hierarquias podem ser expandidas e recolhidas." - display_sums_hint: "Exiba as somas de todos os atributos somáveis na linha abaixo da tabela de resultados." - show_timeline_hint: "Exiba um gráfico de gantt interativo no lado direito da tela. Você pode alterar a largura arrastando a linha divisória entre a tabela e o gráfico." - highlighting: "Destacando" - highlighting_mode: - description: "Destacar com cor" - none: "Sem destaque" - inline: "Atributo(s) destacado(s)" - inline_all: "Todos atributos" - entire_row_by: "Toda linha por" - status: "Status" - priority: "Prioridade" - type: "Tipo" - sorting_mode: - description: "Escolha o modo para ordenar seus pacotes de trabalho:" - automatic: "Automático" - manually: "Manualmente" - warning: "Você perderá sua ordenação anterior quando ativar o modo de ordenação automática." - columns_help_text: "Utilize o campo de entrada acima para adicionar colunas à sua visualização de tabela. Você pode arrastar e soltar as colunas para reorganizá-las." - upsale: - attribute_highlighting: "Precisa de certos pacotes de trabalho para se destacar da massa?" - relation_columns: "Precisa ver as relações na lista de pacotes de trabalho?" - check_out_link: "Confira a edição Enterprise." - relation_filters: - filter_work_packages_by_relation_type: "Filtrar pacotes de trabalho por tipo de relação" - tabs: - overview: Visão geral - activity: Atividade - relations: Relações - watchers: Observadores - files: Arquivos - time_relative: - days: "dias" - weeks: "semanas" - months: "meses" - toolbar: - settings: - configure_view: "Configurar exibição" - columns: "Colunas" - sort_by: "Ordenar por" - group_by: "Agrupar por" - display_sums: "Mostrar somas" - display_hierarchy: "Exibir hierarquia" - hide_hierarchy: "Ocultar hierarquia" - hide_sums: "Ocultar somas" - save: "Salvar" - save_as: "Salvar como" - export: "Exportar" - visibility_settings: "Configurações de visibilidade" - share_calendar: "Assinar calendário" - page_settings: "Renomear exibição" - delete: "Excluir" - filter: "Filtro" - unselected_title: "Pacote de trabalho" - search_query_label: "Buscar visões salvas" - modals: - label_name: "Nome" - label_delete_page: "Excluir página atual" - button_apply: "Aplicar" - button_save: "Salvar" - button_submit: "Enviar" - button_cancel: "Cancelar" - button_delete: "Excluir" - form_submit: - title: "Confirme para continuar" - text: "Tem certeza de que deseja executar esta ação?" - destroy_work_package: - title: "Confirmar exclusão do %{label}" - single_text: "Tem certeza de que deseja excluir o pacote de trabalho?" - bulk_text: "Você tem certeza de que deseja excluir o seguinte %{label}?" - has_children: "O pacote de trabalho tem %{childUnits}:" - confirm_deletion_children: "Tenho conhecimento que TODOS os descendentes dos pacotes de trabalho listados serão removidos recursivamente." - deletes_children: "Todos os pacotes de trabalho filhos e seus descendentes também serão excluídos recursivamente." - destroy_time_entry: - title: "Confirmar exclusão da entrada de tempo" - text: "Você tem certeza que deseja excluir a seguinte entrada de tempo?" - notice_no_results_to_display: "Nenhum resultado visível para exibir." - notice_successful_create: "Criado com sucesso." - notice_successful_delete: "Excluído com sucesso" - notice_successful_update: "Atualizado com sucesso." - notice_job_started: "trabalho iniciado." - notice_bad_request: "Requisição Inválida." - relations: - empty: Nenhuma relação existente - remove: Remover relação - inplace: - button_edit: "%{attribute}: Editar" - button_save: "%{attribute}: Salvar" - button_cancel: "%{attribute}: Cancelar" - button_save_all: "Salvar" - button_cancel_all: "Cancelar" - link_formatting_help: "Ajuda na formatação de texto" - btn_preview_enable: "Pré-visualizar" - btn_preview_disable: "Desativar pré-visualização" - null_value_label: "Nenhum valor" - clear_value_label: "-" - errors: - required: "%{field} não pode ser vazio" - number: "%{field} não é um número válido" - maxlength: "%{field} não pode conter mais do que %{maxLength} dígito(s)" - minlength: "%{field} não pode conter menos de %{minLength} dígito(s)" - messages_on_field: "Este campo é inválido: %{messages}" - error_could_not_resolve_version_name: "Não foi possível identificar o nome da versão" - error_could_not_resolve_user_name: "Não foi possível identificar o nome do usuário" - error_attachment_upload: "Arquivo falhou ao ser enviado: %{error}" - error_attachment_upload_permission: "Você não tem permissão para enviar arquivos nesse recurso." - units: - workPackage: - one: "pacote de trabalho" - other: "pacotes de trabalho" - child_work_packages: - one: "um pacote de trabalho filho" - other: "%{count} pacotes de trabalho filhos" - hour: - one: "1 h" - other: "%{count} hs" - zero: "0 h" - day: - one: "1 dia" - other: "%{count} dias" - zero: "0 dias" - zen_mode: - button_activate: "Ativar modo zen" - button_deactivate: "Desativar modo zen" - global_search: - all_projects: "Em todos os projetos" - close_search: "Fechar pesquisa" - current_project_and_all_descendants: "Neste projeto + subprojetos" - current_project: "Neste projeto" - recently_viewed: "Visualizado recentemente" - search: "Pesquisar" - title: - all_projects: "todos os projetos" - project_and_subprojects: "e todos os subprojetos" - search_for: "Pesquisar por" - views: - card: "Cartões" - list: "Tabela" - timeline: "Gantt" - invite_user_modal: - back: "Voltar" - invite: "Convidar" - title: - invite: "Convidar usuário" - invite_to_project: "Convide %{type} para %{project}" - User: "usuário" - Group: "grupo" - PlaceholderUser: "usuário do espaço reservado" - invite_principal_to_project: "Convide %{principal} para %{project}" - project: - label: "Projeto" - required: "Selecione um projeto" - lacking_permission: "Você não tem permissões para atribuir usuários para o projeto selecionado, favor selecionar outro." - lacking_permission_info: "Você não possui permissão para atribuir usuários ao projeto que você está atualmente. Você precisa selecionar um diferente. " - next_button: "Próxima" - no_results: "Nenhum projeto foi encontrado" - no_invite_rights: "Você não tem permissão para convidar membros para este projeto" - type: - required: "Selecione o tipo a ser convidado" - user: - title: "Usuário" - description: "Permissões baseadas no papel atribuído no projeto selecionado" - group: - title: "Grupo" - description: "Permissões baseadas no papel atribuído no projeto selecionado" - placeholder: - title: "Usuário do espaço reservado" - title_no_ee: "Usuário do espaço reservado (complemento apenas da edição Enterprise)" - description: "Não possui acesso ao projeto e nenhum e-mail é enviado." - description_no_ee: 'Não possui acesso ao projeto e nenhum e-mail é enviado.
Confira a edição Enterprise' - principal: - label: - name_or_email: "Nome ou endereço de e-mail" - name: "Nome" - already_member_message: "Já é um membro de %{project}" - no_results_user: "Nenhum usuário foi encontrado" - invite_user: "Convite:" - no_results_placeholder: "Nenhum espaço reservado encontrado" - create_new_placeholder: "Criar novo espaço reservado:" - no_results_group: "Nenhum grupo encontrado" - next_button: "Próxima" - required: - user: "Selecione um usuário" - placeholder: "Selecione um espaço reservado" - group: "Selecione um grupo" - role: - label: "Papel em %{project}" - no_roles_found: "Nenhum papel encontrado" - description: 'Esta é a função que o usuário receberá ao ingressar em seu projeto. A função define quais ações podem ser realizadas e quais informações podem ser visualizadas. Saiba mais sobre as funções e permissões. ' - required: "Selecione um papel" - next_button: "Próxima" - message: - label: "Mensagem de convite" - description: "Enviaremos um e-mail para o usuário, à qual você pode adicionar uma mensagem pessoal por aqui. Uma explicação para o convite pode se útil, ou talvez algumas informações sobre o projeto para ajudá-lo a começar." - next_button: "Avançar" - summary: - next_button: "Enviar convite" - success: - title: "%{principal} foi convidado!" - description: - user: "O usuário agora pode entrar para acessar %{project}. Enquanto isso, você já pode planejar com este usuário e atribuir pacotes de trabalho por exemplo." - placeholder: "O espaço reservado agora pode ser usado em %{project}. Enquanto isso, você já pode planejar com este usuário e atribuir pacotes de trabalho por exemplo." - group: "O grupo agora faz parte de %{project}. Enquanto isso, você já pode planejar com este grupo e atribuir pacotes de trabalho por exemplo." - next_button: "Continuar" - include_projects: - toggle_title: "Incluir projetos" - title: "Projetos" - clear_selection: "Limpar seleção" - apply: "Aplicar" - selected_filter: - all: "Todos os projetos" - selected: "Somente selecionados" - search_placeholder: "Pesquisar projetos..." - include_subprojects: "Incluir todos os subprojetos" - tooltip: - include_all_selected: "Como a opção Incluir todos os sub-projetos está habilitada, o projeto já foi incluído." - current_project: "Este é o projeto atual em que você está." - does_not_match_search: "O projeto não corresponde ao critério de pesquisa" - no_results: "Nenhum projeto corresponde ao seu critério de busca." - baseline: - toggle_title: "Linha base" - clear: "Limpar" - apply: "Aplicar" - header_description: "Destaque as alterações realizadas nesta lista desde qualquer ponto no passado." - enterprise_header_description: "Destaque as alterações realizadas nesta lista desde qualquer ponto no passado com a edição Enterprise." - show_changes_since: "Exibir alterações desde" - baseline_comparison: "Comparação de linha base" - help_description: "Fuso horário de referência para a linha base." - time_description: "Em seu horário local: %{datetime}" - time: "Horário" - from: "De" - to: "Para" - drop_down: - none: "-" - yesterday: "ontem" - last_working_day: "último dia útil" - last_week: "última semana" - last_month: "último mês" - a_specific_date: "uma data específica " - between_two_specific_dates: "entre suas datas específicas" - legends: - changes_since: "Alterações desde" - changes_between: "Alterações entre" - now_meets_filter_criteria: "Agora atende aos critérios de filtro" - no_longer_meets_filter_criteria: "Não atende mais aos critérios de filtro" - maintained_with_changes: "Mantido com alterações" - in_your_timezone: "Em seu fuso horário:" - icon_tooltip: - added: "Adicionado à exibição dentro do período de comparação" - removed: "Removido da exibição dentro do período de comparação" - changed: "Mantido com modificações" - forms: - submit_success_message: "O formulário foi enviado com sucesso" - load_error_message: "Ocorreu um erro ao carregar o formulário" - validation_error_message: "Corrija os erros presentes no formulário" - advanced_settings: "Configurações avançadas" - spot: - filter_chip: - remove: "Remover" - drop_modal: - focus_grab: "Esta é uma âncora de foco para modais. Pressione Shift+tab para voltar ao elemento trigger modal." - Close: "Fechar" diff --git a/config/locales/crowdin/js-ru.yml b/config/locales/crowdin/js-ru.yml index 3c39eb1e880a..039f89b34f5e 100644 --- a/config/locales/crowdin/js-ru.yml +++ b/config/locales/crowdin/js-ru.yml @@ -102,7 +102,7 @@ ru: button_save: "Сохранить" button_settings: "Настройки" button_uncheck_all: "Снять все отметки" - button_update: "Обновление" + button_update: "Обновить" button_export-pdf: "Скачать PDF" button_export-atom: "Скачать Atom" button_create: "Создать" diff --git a/config/locales/crowdin/js-vi.yml b/config/locales/crowdin/js-vi.yml index 76d0d8cdea8d..78850aad568a 100644 --- a/config/locales/crowdin/js-vi.yml +++ b/config/locales/crowdin/js-vi.yml @@ -102,7 +102,7 @@ vi: button_save: "Lưu" button_settings: "Cài đặt" button_uncheck_all: "Bỏ chọn tất cả" - button_update: "Cập Nhật" + button_update: "Cập nhật" button_export-pdf: "Tải PDF" button_export-atom: "Tải về Atom" button_create: "Tạo mới" diff --git a/config/locales/crowdin/js-zh-CN.yml b/config/locales/crowdin/js-zh-CN.yml index 52d1a2cc16f0..92f4e1c254c0 100644 --- a/config/locales/crowdin/js-zh-CN.yml +++ b/config/locales/crowdin/js-zh-CN.yml @@ -568,7 +568,7 @@ zh-CN: wiki: "在 维基 中,您可以记录并与您的团队共享知识。" backlogs: overview: "在待办清单视图中管理您的工作。" - sprints: "右侧为产品待办清单和缺陷待办清单,左侧为各自的冲刺 (Sprint)。在这里,您可以创建长篇故事、用户故事和错误,通过拖放来确定优先级,以及将它们添加到冲刺 (sprint) 中。" + sprints: "右侧为产品待办清单和缺陷待办清单,左侧为各自的冲刺 (Sprint)。在这里,您可以创建史诗、用户故事和缺陷,通过拖放来确定优先级,以及将它们添加到冲刺 (Sprint) 中。" task_board_arrow: "要查看您的任务面板,请打开冲刺 (sprint) 下拉菜单…" task_board_select: "…并选择任务面板条目。" task_board: "任务面板可以将此冲刺 (sprint) 的进度可视化。点击用户故事旁边的加号 (+) 图标可添加新任务或障碍。
状态可以通过拖放更新。" @@ -587,10 +587,10 @@ zh-CN: gantt_menu: "使用甘特图模块轻松创建项目时间表和时间线。" timeline: "您可以在此编辑您的项目计划、创建新的工作包(例如任务、里程碑、阶段等)以及添加依赖项。所有团队成员都可以随时查看和更新最新计划。" team_planner: - overview: "团队规划工具使您可以直观地为团队成员分配任务,并全面了解哪些成员正在处理哪些工作。" + overview: "工作组规划器使您可以直观地为团队成员分配任务,并全面了解哪些成员正在处理哪些工作。" calendar: "单周或双周规划面板可以显示分配给您的团队成员的所有工作包。" add_assignee: "首先,请将受理人添加到工作组规划器。" - add_existing: "搜索现有工作包并将其拖动到团队规划工具,以立即将其分配给团队成员并定义开始日期和结束日期。" + add_existing: "搜索现有工作包并将其拖动到工作组规划器,以立即将其分配给团队成员并定义开始日期和结束日期。" card: "水平拖动工作包以前移或后移其时间,拖动边缘以更改开始日期和结束日期,甚至可以将其垂直拖动到不同的行以分配给其他成员。" notifications: title: "通知" @@ -750,7 +750,7 @@ zh-CN: wiki_page_added: "添加维基页面" wiki_page_updated: "更新维基页面" membership_added: "添加成员" - membership_updated: "更新成员" + membership_updated: "成员已更新" title: "电子邮件提醒" pause: label: "临时暂停每日电子邮件提醒" @@ -1225,9 +1225,9 @@ zh-CN: description: "基于所选项目中所分配角色的权限" placeholder: title: "占位符用户" - title_no_ee: "占位符用户(Enterprise edition 特定功能)" + title_no_ee: "占位符用户(Enterprise edition 附加功能)" description: "无法访问该项目并且未发送电子邮件。" - description_no_ee: '无法访问该项目并且未发送电子邮件。
请参见 Enterprise edition' + description_no_ee: '由于没有访问项目的权限,所以不会发送电子邮件。
请查看企业版。' principal: label: name_or_email: "用户名或电子邮件地址" diff --git a/config/locales/crowdin/pl.yml b/config/locales/crowdin/pl.yml index 66071b723303..3aeda9224e7b 100644 --- a/config/locales/crowdin/pl.yml +++ b/config/locales/crowdin/pl.yml @@ -697,7 +697,7 @@ pl: confirmation: "nie pasuje do %{attribute}." could_not_be_copied: "Nie można było (w pełni) skopiować %{dependency}." does_not_exist: "nie istnieje." - error_enterprise_only: "%{action} jest dostępna tylko w OpenProject Enterprise edition" + error_enterprise_only: "%{action} jest dostępna tylko w OpenProject Enterprise Edition" error_unauthorized: "— nie można uzyskac dostępu." error_readonly: "— podjęto próbę zapisu, ale nie jest zapisywalny." error_conflict: "Information has been updated by at least one other user in the meantime." @@ -3028,7 +3028,7 @@ pl: text_work_packages_ref_in_commit_messages: "Odwołania i poprawki do pakietów roboczych w wiadomościach o zmianach" text_journal_added: "%{label} %{value} added" text_journal_attachment_added: "%{label} %{value} dodano jako załącznik" - text_journal_attachment_deleted: "%{label} %{value} usunięto jako załącznik" + text_journal_attachment_deleted: "%{label} %{old} usunięto jako załącznik" text_journal_changed_plain: "%{label} zmieniono z %{old} %{linebreak}na %{new}" text_journal_changed_no_detail: "%{label} updated" text_journal_changed_with_diff: "%{label} changed (%{link})" @@ -3261,7 +3261,7 @@ pl: non_working: "%{day} jest teraz dniem nieroboczym" dates: working: "%{day} jest teraz roboczym" - non_working: "%{day} jest teraz wolnym od pracy" + non_working: "%{date} jest teraz wolnym od pracy" nothing_to_preview: "Nie ma nic do podglądu" api_v3: attributes: diff --git a/config/locales/crowdin/pt.seeders.yml b/config/locales/crowdin/pt.seeders.yml deleted file mode 100644 index 6bb58afb32fc..000000000000 --- a/config/locales/crowdin/pt.seeders.yml +++ /dev/null @@ -1,472 +0,0 @@ -#This file has been generated by script/i18n/generate_seeders_i18n_source_file. -#Please do not edit directly. -#This file is part of the sources sent to crowdin for translation. ---- -pt: - seeds: - common: - colors: - item_0: - name: Azul (escuro) - item_1: - name: Azul - item_2: - name: Azul (claro) - item_3: - name: Verde (claro) - item_4: - name: Verde (escuro) - item_5: - name: Amarelo - item_6: - name: Laranja - item_7: - name: Vermelho - item_8: - name: Magenta - item_9: - name: Branco - item_10: - name: Cinza (claro) - item_11: - name: Cinza - item_12: - name: Cinza (escuro) - item_13: - name: Preto - document_categories: - item_0: - name: Documentação - item_1: - name: Especificação - item_2: - name: Outro - work_package_roles: - item_0: - name: Editor de pacotes de trabalho - item_1: - name: Comentarista do pacote de trabalho - item_2: - name: Visualizador do pacote de trabalho - project_roles: - item_0: - name: Não membro - item_1: - name: Anônimo - item_2: - name: Membro - item_3: - name: Leitor - item_4: - name: Administrador do projeto - global_roles: - item_0: - name: Equipe e gerente de projetos - standard: - priorities: - item_0: - name: Baixa - item_1: - name: Normal - item_2: - name: Alta - item_3: - name: Imediata - statuses: - item_0: - name: Novo - item_1: - name: Em especificação - item_2: - name: Especificado - item_3: - name: Confirmado - item_4: - name: A ser planejado - item_5: - name: Planejado - item_6: - name: Em andamento - item_7: - name: Desenvolvido - item_8: - name: Em testes - item_9: - name: Testado - item_10: - name: Falha no teste - item_11: - name: Fechado - item_12: - name: Em espera - item_13: - name: Rejeitado - time_entry_activities: - item_0: - name: Gerenciamento - item_1: - name: Especificação - item_2: - name: Desenvolvimento - item_3: - name: Testando - item_4: - name: Suporte - item_5: - name: Outro - types: - item_0: - name: Tarefa - item_1: - name: Marco - item_2: - name: Fase - item_3: - name: Funcionalidade - item_4: - name: Épico - item_5: - name: História de usuário - item_6: - name: Bug - welcome: - title: Bem-vindo ao OpenProject! - text: | - O OpenProject é o principal software de gestão de projetos de código aberto. Ele dá suporte à gestão de projetos clássica, ágil e híbrida e dá a você o controlo total sobre os seus dados. - - Características principais e casos de uso: - - * [Gestão de portfólio de projetos](https://www.openproject.org/collaboration-software-features/project-portfolio-management/) - * [Planejamento e programação de projetos](https://www.openproject.org/collaboration-software-features/project-planning-scheduling/) - * [Gestão de tarefas e acompanhamento de problemas](https://www.openproject.org/collaboration-software-features/task-management/) - * [Quadros Agile (Scrum e Kanban)](https://www.openproject.org/collaboration-software-features/agile-project-management/) - * [Gestão de requisitos e planejamento de versões](https://www.openproject.org/collaboration-software-features/product-development/) - * [Controlo de tempo e de custos, orçamentos](https://www.openproject.org/collaboration-software-features/time-tracking/) - * [Colaboração em equipe e documentação](https://www.openproject.org/collaboration-software-features/team-collaboration/) - - Boas-vindas ao futuro da gestão de projetos. - - Para administradores: o texto de boas-vindas pode ser alterado [aqui]({{opSetting:base_url}}/admin/settings/general). - projects: - demo-project: - name: Projeto de demonstração - status_explanation: Todas as tarefas estão dentro do cronograma. As pessoas envolvidas conhecem suas tarefas. O sistema está completamente configurado. - description: Este é um breve resumo dos objetivos deste projeto de demonstração. - news: - item_0: - title: Bem-vindo ao seu projeto de demonstração - summary: | - Estamos felizes por você ter se juntado a nós. - Neste módulo, você pode comunicar as novidades do projeto aos membros da sua equipe. - description: As notícias atuais - categories: - item_0: Categoria 1 (a ser alterada nas configurações do projeto) - queries: - item_0: - name: 'Plano do Projeto:' - item_1: - name: Etapas - item_2: - name: Tarefas - item_3: - name: Planejador de equipe - boards: - kanban: - name: Painel Kanban - basic: - name: Painel básico - lists: - item_0: - name: Lista de Desejo - item_1: - name: Lista curta - item_2: - name: Lista de prioridades para hoje - item_3: - name: Nunca - parent_child: - name: Estrutura analítica do trabalho - project-overview: - widgets: - item_0: - options: - name: Bem-vindo - item_1: - options: - name: Primeiros passos - text: | - Estamos felizes por você ter se juntado a nós! Sugerimos que você experimente algumas coisas para começar a usar o OpenProject. - - Descubra os recursos mais importantes com nosso [Guided Tour] ({{opSetting:base_url}}/projects/demo-project/work_packages/?start_onboarding_tour=true). - - _Tente as seguintes etapas:_ - - 1. *Convide novos membros para seu projeto*: → Vá para [Members]({{opSetting:base_url}}/projects/demo-project/members) na navegação do projeto. - 2. *Ver o trabalho em seu projeto*: → Vá para [Work packages]({{opSetting:base_url}}/projects/demo-project/work_packages) na navegação do projeto. - 3. *Crie um novo pacote de trabalho*: → Vá para [Work packages → Create]({{opSetting:base_url}}/projects/demo-project/work_packages/new). - 4. *Crie e atualize um plano de projeto*: → Vá para [Plano de projeto]({{opSetting:base_url}}/projects/demo-project/work_packages?query_id=##query.id:demo_project__query__project_plan) na navegação do projeto. - 5. *Ativar outros módulos*: → Vá para [Project settings → Modules]({{opSetting:base_url}}}/projects/demo-project/settings/modules). - 6. *Conclua suas tarefas no projeto*: → Vá para [Work packages → Tasks]({{opSetting:base_url}}/projects/demo-project/work_packages/details/##wp.id:set_date_and_location_of_conference/overview?query_id=##query.id:demo_project__query__tasks). - - Aqui você encontrará nossos [User Guides] (https://www.openproject.org/docs/user-guide/). - Entre em contato conosco se tiver alguma dúvida ou precisar de suporte. Entre em contato conosco: [support[at]openproject.com](mailto:support@openproject.com). - item_5: - options: - name: Pacotes de trabalho - item_6: - options: - name: Etapas - work_packages: - item_0: - subject: Início do projeto - item_1: - subject: Organize uma conferência de código aberto - children: - item_0: - subject: Definir a data e o local da conferência - children: - item_0: - subject: Enviar convite aos palestrantes - item_1: - subject: Entrar em contato com parceiros patrocinadores - item_2: - subject: Criar brochuras e folhetos de patrocínio - item_1: - subject: Convidar os participantes para a conferência - item_2: - subject: Configurar o site da conferência - item_2: - subject: Conferência - item_3: - subject: Acompanhamento das tarefas - children: - item_0: - subject: Fazer upload de apresentações para o site - item_1: - subject: Festa para os apoiadores da conferência :-) - description: |- - * [ ] Cerveja - * [ ] Lanches - * [ ] Música - * [ ] Ainda mais cerveja - item_4: - subject: Fim do projeto - scrum-project: - name: Projeto Scrum - status_explanation: Todas as tarefas estão dentro do cronograma. As pessoas envolvidas conhecem suas tarefas. O sistema está completamente configurado. - description: Este é um breve resumo dos objetivos deste projeto de demonstração do Scrum. - news: - item_0: - title: Bem-vindo ao seu projeto de demonstração do Scrum - summary: | - Estamos felizes por você ter se juntado a nós. - Neste módulo, você pode comunicar as novidades do projeto aos membros da sua equipe. - versions: - item_0: - name: Registro de erros e pendências - item_1: - name: Erros e Pendências do Produto - item_2: - name: Sprint 1 - wiki: - title: Sprint 1 - content: | - ### A reunião de planejamento do Sprint - - _Por favor, documente aqui tópicos para a reunião de planejamento do Sprint_ - - * Caixa de Tempo (8 h) - * Entrada: Backlog do Produto - * Saída: Rendimento da Sprint - - * Divida em duas caixas de tempo adicionais de 4 h: - - * O proprietário do produto apresenta o [Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e as prioridades da equipe e explica a meta do Sprint, com o qual a equipa deve concordar. Juntos, eles priorizam os tópicos do Backlog do produto que a equipe cuidará no próximo sprint. A equipe se compromete com a entrega discutida. - * A equipe planeja autonomamente (sem o Proprietário do Produto) em detalhes e divide as tarefas dos requisitos discutidos para consolidar um [Backlog do Sprint]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Reunião diária do Scrum - - _Por favor, documente aqui tópicos para a reunião do Scrum Diário_ - - * Reunião de status curta e diária da equipe. - * Tempo em caixa de tempo (máx. 15 min). - * Realização para discutir os seguintes tópicos do [Quadro de tarefas](##sprint:scrum_project__version__sprint_1). - * O que pretendo fazer até o próximo Scrone Diário? - * O que bloqueou o meu trabalho (pedimentos)? - * Moderados e notas do Scrum Master [Impedimentos](##sprint:scrum_project__version__sprint_1). - * O Proprietário do Produto pode participar a fim de se manter informado. - - ### Reunião de Revisão do Sprint - - _Por favor, dê aqui tópicos para a reunião de Revisão do Sprint_ - - * Tempo embalado (4 h). - * O máximo de uma hora de preparação por pessoa. - * A equipe mostra ao proprietário do produto e às pessoas interessadas o que foi alcançado nesta sprint. - * Importante: sem dummies e nenhum PowerPoint! Funcionalidade de produto finalizado (Incrementos) deve ser demonstrada. - * Feedback do Proprietário do Produto, partes interessadas e outros é desejado e será incluído no trabalho futuro. - * Com base nas funcionalidades demonstradas, o proprietário do produto decide viver com esse incremento ou desenvolvê-lo ainda mais. Esta possibilidade permite uma ROI precoce. - - - ### Retrospectiva de Sprint - - _Por favor, coloque aqui tópicos para a reunião Retrospectiva do Sprint_ - - * Caixa de Tempo (3 h). - * Após o Sprint Review, será moderado pelo Scrum Master. - * A equipe discute o sprint: o que correu bem, o que precisa de ser melhorado para ser mais produtivo para a próxima corrida, ou até mesmo mais divertido. - item_3: - name: Sprint 2 - categories: - item_0: Categoria 1 (a ser alterada nas configurações do projeto) - queries: - item_0: - name: 'Plano do Projeto:' - item_1: - name: Backlog do produto - item_2: - name: Sprint 1 - item_3: - name: Tarefas - boards: - kanban: - name: Painel Kanban - basic: - name: Quadro de tarefas - lists: - item_0: - name: Lista de Desejo - item_1: - name: Lista curta - item_2: - name: Lista de prioridades para hoje - item_3: - name: Nunca - project-overview: - widgets: - item_0: - options: - name: Bem-vindo - item_1: - options: - name: Guia de introdução - text: | - Ficamos felizes que você tenha se juntado! Sugerimos que você tente algumas coisas para começar no OpenProject. - - _Tente as seguintes etapas:_ - - 1. *Convide novos membros para o seu projeto*: → Vá para [Membros]({{opSetting:base_url}}/projects/your-scrum-project/members) na navegação do projeto. - 2. *Veja seu backlog de Produto e backlogs do Sprint*: → Vá para [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) na navegação do projeto. - 3. *Veja seu quadro de tarefas*: → Vá para [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Clique na seta para a direita em Sprint → Selecione [Quadro de tarefas](##sprint:scrum_project__version__sprint_1). - 4. *Crie um novo pacote de trabalho*: → Vá para [Pacotes de trabalho → Criar]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Crie e atualize um plano de projeto*: → Vá para [Plano de projeto](##query:scrum_project__query__project_plan) na navegação do projeto. - 6. *Crie um wiki de Sprint*: → Vá para [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e abra o wiki de sprint no menu suspenso direito em um sprint. Você pode editar o [modelo wiki]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) com base em suas necessidades. - 7. *Ative mais módulos*: → Vá para [Configurações do projeto → Módulos]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - - Aqui você encontrará nossos [Guias do Usuário] (https://www.openproject.org/docs/user-guide/). - - Avise-nos se tiver alguma dúvida ou precisar de suporte. Entre em contato conosco: [support[at]openproject.com](mailto:support@openproject.com). - item_5: - options: - name: Pacotes de trabalho - item_6: - options: - name: 'Plano do Projeto:' - work_packages: - item_0: - subject: Nova tela de login - item_1: - subject: A redefinição de senha não envia e-mail - item_2: - subject: Novo site - children: - item_0: - subject: Formulário de registro do boletim informativo - item_1: - subject: Implementar tour de produto - item_2: - subject: Nova página de destino - children: - item_0: - subject: Criar wireframes para nova página de destino - item_3: - subject: Formulário de contato - item_4: - subject: Carrossel de recursos - children: - item_0: - subject: Realizar capturas de tela para tour em destaque - item_5: - subject: Cor ao passar o mouse incorreta - item_6: - subject: Certificado SSL - item_7: - subject: Configurar ambiente de staging - item_8: - subject: Escolha um sistema de gerenciamento de conteúdo. - item_9: - subject: Estrutura de navegação de site - children: - item_0: - subject: Configurar conceito de navegação para o site. - item_10: - subject: Estrutura de vinculação interna - item_11: - subject: Desenvolvimento v1.0 - item_12: - subject: Versão v1.0 - item_13: - subject: Desenvolvimento v1.1 - item_14: - subject: Versão v1.1 - item_15: - subject: Desenvolvimento v2.0 - item_16: - subject: Versão v2.0 - wiki: | - ### Reunião de planejamento do sprint - - _Documente aqui os tópicos para a reunião de planejamento do Sprint_ - - * Intervalo de tempo fixo (8 h) - * Entrada: Backlog de produto - * Saída: Backlog de sprint - - * Dividido em dois intervalos de tempo fixos adicionais de 4 h: - - * O proprietário do produto apresenta o [Backlog do produto]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e as prioridades para a equipe e explica o Sprint objetivo, com o qual a equipe deve concordar. Juntos, eles priorizam os tópicos do Backlog de produto que a equipe cuidará no próximo sprint. A equipe se compromete com a entrega discutida. - * A equipe planeja de forma autônoma (sem o proprietário do produto) em detalhes e divide as tarefas dos requisitos discutidos para consolidar um [Backlog de sprint]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Reunião diária do Scrum - - _Documente aqui os tópicos para a reunião Scrum diário_ - - * Reunião curta e diária de status da equipe. - * Intervalo de tempo fixo (máx. 15 min). - * Reunião stand-up para discutir os seguintes tópicos do quadro de tarefas. - * O que pretendo fazer até o próximo Scrum diário? - * O que tem bloqueado meu trabalho (impedimentos)? - * O Scrum Master modera e anota os Impedimentos do Sprint. - * O proprietário do produto pode participar para se manter informado. - - ### Reunião de revisão do Sprint - - _Documente aqui os tópicos para a reunião de Revisão do Sprint_ - - * Intervalo de tempo fixo (4h). - * Máximo de uma hora de preparo por pessoa. - * A equipe mostra ao proprietário do produto e outras pessoas interessadas o que foi alcançado neste sprint. - * Importante: sem manequins e sem PowerPoint! A funcionalidade do produto recém-acabado (incrementos) deve ser demonstrada. - * Comentários do proprietário do produto, partes interessadas e outros são desejados e serão incluídos em trabalhos futuros. - * Com base nas funcionalidades demonstradas, o proprietário do produto decide ativar esse incremento ou desenvolvê-lo ainda mais. Esta possibilidade permite um ROI antecipado. - - - ### Retrospectiva do Sprint - - _Documente aqui os tópicos para a reunião de Retrospectiva do Sprint_ - - * Intervalo de tempo fixo (3h). - * Após a revisão do Sprint, será moderado pelo Scrum Master. - * A equipe discute o sprint: o que deu certo, o que precisa ser melhorado para ser mais produtivo para o próximo sprint ou até mesmo se divertir mais. diff --git a/config/locales/crowdin/pt.yml b/config/locales/crowdin/pt.yml deleted file mode 100644 index 9a2861d84306..000000000000 --- a/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,3409 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - no_results_title_text: Atualmente, não há o que exibir. - activities: - index: - no_results_title_text: Não há nenhuma atividade no projeto neste período de tempo. - admin: - plugins: - no_results_title_text: Atualmente, não existem plugins disponíveis. - custom_styles: - color_theme: "Tema Colorido" - color_theme_custom: "(Personalizado)" - colors: - alternative-color: "Alternativo" - content-link-color: "Fonte do link" - primary-color: "Primário" - primary-color-dark: "Primário (escuro)" - header-bg-color: "Fundo do cabeçalho" - header-item-bg-hover-color: "Fundo do cabeçalho ao passar o mouse" - header-item-font-color: "Fonte do cabeçalho" - header-item-font-hover-color: "Fonte do cabeçalho ao passar o mouse" - header-border-bottom-color: "Margem do cabeçalho" - main-menu-bg-color: "Fundo do menu principal" - main-menu-bg-selected-background: "Menu principal quando selecionado" - main-menu-bg-hover-background: "Menu principal ao passar o mouse" - main-menu-font-color: "Fonte do menu principal" - main-menu-selected-font-color: "Fonte do menu principal quando selecionado" - main-menu-hover-font-color: "Fonte do menu principal ao passar o mouse" - main-menu-border-color: "Margem do menu principal" - custom_colors: "Cores personalizadas" - customize: "Personalize a instalação de seu OpenProject com seu logotipo e cores." - enterprise_notice: "Como agradecimento especial por sua contribuição financeira para o desenvolvimento do OpenProject, este singelo complemento está disponível apenas para assinantes que deram suporte à edição Enterprise." - enterprise_more_info: "Obs.: o logotipo usado pode ser acessado publicamente." - manage_colors: "Editar opções de seleção de cor" - instructions: - alternative-color: "Cor de destaque forte, normalmente usada para o botão mais importante na tela." - content-link-color: "Cor da fonte da maioria dos links." - primary-color: "Cor principal." - primary-color-dark: "Normalmente, uma versão mais escura da cor principal usada para efeitos de foco." - header-item-bg-hover-color: "Cor de fundo dos itens clicáveis do cabeçalho ao passar o mouse sobre eles." - header-item-font-color: "Cor da fonte dos itens clicáveis do cabeçalho." - header-item-font-hover-color: "Cor da fonte dos itens clicáveis do cabeçalho ao passar o mouse sobre eles." - header-border-bottom-color: "Linha fina sob o cabeçalho. Deixe este campo vazio se não quiser nenhuma linha." - main-menu-bg-color: "Cor de fundo do menu esquerdo." - theme_warning: Alterar o tema irá sobrescrever seu estilo personalizado. O design será perdido. Tem certeza que deseja continuar? - enterprise: - upgrade_to_ee: "Aualize para a edição Enterprise" - add_token: "Carregar um token de suporte da edição Enterprise " - delete_token_modal: - text: "Tem a certeza de que deseja remover o token atual da edição Enterprise?" - title: "Excluir token" - replace_token: "Substitua seu token atual de suporte" - order: "Solicitar edição Enterprise local" - paste: "Cole o seu token de suporte da edição Enterprise" - required_for_feature: "Este complemento só está disponível com um token de suporte ativo da edição Enterprise." - enterprise_link: "Para mais informações, clique aqui." - start_trial: "Iniciar avaliação gratuita" - book_now: "Reserve agora" - get_quote: "Fazer uma cotação" - buttons: - upgrade: "Atualizar agora" - contact: "Contate-nos para uma demonstração" - enterprise_info_html: "é um complemento do Enterprise." - upgrade_info: "Por favor, faça o upgrade para um plano pago para ativar e começar a usá-lo em sua equipe." - journal_aggregation: - explanation: - text: "As ações individuais de um usuário (por exemplo, atualizar um pacote de trabalho duas vezes) são agregadas em uma única ação se o intervalo de tempo for menor que o intervalo especificado. Eles serão exibidos como uma única ação dentro do aplicativo. Isso também atrasará as notificações no mesmo intervalo de tempo, reduzindo o número de e-mails enviados e também afetará o atraso de %{webhook_link}." - link: "webhook" - announcements: - show_until: Mostrar até - is_active: atualmente exibido - is_inactive: não exibido atualmente - antivirus_scan: - not_processed_yet_message: "Downloading is blocked, as file was not scanned for viruses yet. Please try again later." - quarantined_message: "A virus was detected in file '%{filename}'. It has been quarantined and is not available for download." - deleted_message: "A virus was detected in file '%{filename}'. The file has been deleted." - deleted_by_admin: "The quarantined file '%{filename}' has been deleted by an administrator." - overridden_by_admin: "The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed." - quarantined_attachments: - container: "Container" - delete: "Delete the quarantined file" - title: "Quarantined attachments" - error_cannot_act_self: "Cannot perform actions on your own uploaded files." - attribute_help_texts: - note_public: "Qualquer texto e imagens que você adicionar a este campo ficará publicamente visível para todos os usuários autenticados!" - text_overview: "Neste modo de exibição, você pode criar textos de ajuda personalizada para a exibição de atributos. Quando definido, estes textos podem ser mostrados, clicando no ícone de ajuda ao lado de seu atributo relacionado." - label_plural: "Textos de ajuda do atributo" - show_preview: "Pré-visualização de texto" - add_new: "Adicionar texto de ajuda" - edit: "Editar texto de ajuda para %{attribute_caption}" - background_jobs: - status: - error_requeue: "A tarefa apresentou um erro, mas está tentando novamente. O erro foi: %{message}" - cancelled_due_to: "A tarefa foi cancelada devido ao erro: %{message}" - ldap_auth_sources: - ldap_error: "Erro LDAP: %{error_message}" - ldap_auth_failed: "Não foi possível autenticar com o servidor LDAP." - sync_failed: "Não foi possível sincronizar do LDAP: %{message}." - back_to_index: "Clique aqui para voltar para a lista de conexão." - technical_warning_html: | - Este formulário LDAP requer conhecimento técnico da sua configuração LDAP / Active Directory. -
- Por favor, visite nossa documentação para instruções detalhadas. - attribute_texts: - name: Nome arbitrário da conexão LDAP - host: Nome ou endereço IP do host LDAP - login_map: A chave de atributo no LDAP que é usada para identificar o login único. Normalmente, será `uid` ou `samAccountName`. - generic_map: A chave de atributo no LDAP que é mapeada para o atributo `%{attribute}` do OpenProject - admin_map_html: "Opcional: A chave de atributo no LDAP que se presente marca o usuário do OpenProject como administrador. Deixe vazio se estiver em dúvida." - system_user_dn_html: | - Digite o DN do usuário do sistema usado para acesso somente leitura. -
- Exemplo: uid=openproject,ou=system,dc=example,dc=com - system_user_password: Digite a senha de vinculação do usuário do sistema - base_dn: | - Digite a Base DN da subárvore no LDAP que você quer que o OpenProject procure por usuários e grupos. - O OpenProject irá filtrar os nomes de usuários fornecidos apenas nesta subárvore. - Exemplo: ou=users,dc=example,dc=com - filter_string: | - Adicione um filtro RFC4515 opcional para aplicar os resultados retornados pelos usuários filtrados no LDAP. Isto pode ser usado para restringir o conjunto de usuários que foram encontrados pelo OpenProject para a autenticação e sincronização de grupo. - filter_string_concat: | - O OpenProject sempre filtrará o atributo de login fornecido pelo usuário para identificar o registro. Se você fornecer um filtro aqui, - ele seria concatenado com um AND. Por padrão, uma atualização (objectClass=*) será utilizada como um filtro. - onthefly_register: | - Se você marcar esta caixa, o OpenProject irá automaticamente criar novos usuários a partir de suas entradas LDAP - quando eles forem autenticados pela primeira vez com o OpenProject. - Deixe isso desmarcado para permitir que apenas contas existentes no OpenProject possam se autenticar através do LDAP! - connection_encryption: "Criptografia de Conexão" - encryption_details: "Opções LDAPS / STARTTLS" - system_account: "Conta do sistema" - system_account_legend: | - OpenProject requer acesso somente leitura através de uma conta de sistema para procurar usuários e grupos em sua árvore LDAP. - Por favor, especifique as credenciais para esse usuário do sistema na seguinte seção. - ldap_details: "Detalhes do LDAP" - user_settings: "Mapeamento de atributo" - user_settings_legend: | - Os seguintes campos tem relação com como os usuários são criados no OpenProject a partir de entradas LDAP e - quais atributos LDAP são usados para definir os atributos de um usuário OpenProject (mapeamento de atributos). - tls_mode: - plain: "nenhum" - simple_tls: "LDAPS" - start_tls: "STARTTLS" - plain_description: "Abre uma conexão descriptografada com o servidor LDAP. Não recomendado para produção." - simple_tls_description: "Use o LDAPS. Requer uma porta separada no servidor LDAP. Este modo é frequentemente substituído, recomendamos o uso de STARTTLS sempre que possível." - start_tls_description: "Envia um comando STARTTLS depois de se conectar à porta LDAP padrão. Recomendado para conexões criptografadas." - section_more_info_link_html: > - Esta seção diz respeito à segurança de conexão desta fonte de autenticação LDAP. Para mais informações, visite a documentação Net::LDAP. - tls_options: - verify_peer: "Verificar certificado SSL" - verify_peer_description_html: > - Permite uma verificação SSL estrita da cadeia de confiança do certificado.
Aviso: Desmarcar esta opção desativa a verificação SSL do certificado do servidor LDAP, o que expõe a sua conexão a ataques man-in-the-middle. - tls_certificate_description: "Se o certificado do servidor LDAP não estiver nas fontes de confiança deste sistema, você poderá adicioná-lo manualmente. Digite uma cadeia de caracteres de certificado PEM X509." - forums: - show: - no_results_title_text: Não há postagens no fórum no momento. - colors: - index: - no_results_title_text: Atualmente, não existem cores. - no_results_content_text: Criar uma nova cor - label_new_color: "Nova cor" - new: - label_new_color: "Nova cor" - edit: - label_edit_color: "Editar cor" - form: - label_new_color: "Nova cor" - label_edit_color: "Editar cor" - label_no_color: "Sem cor" - label_properties: "Propriedades" - label_really_delete_color: > - Tem certeza de que deseja excluir a seguinte cor? Tipos que utilizam esta cor não serão excluídos. - custom_actions: - actions: - name: "Ações" - add: "Adicionar ação" - assigned_to: - executing_user_value: "(Atribuir ao usuário que executar)" - conditions: "Condições" - plural: "Ações personalizadas" - new: "Nova ação personalizada" - edit: "Editar ação personalizada %{name}" - execute: "Executar %{name}" - upsale: - title: "Ações personalizadas" - description: "As ações personalizadas são atalhos de clique único para um conjunto de ações pré-definidas que você pode disponibilizar em certos pacotes de trabalho com base no estado, função, tipo ou projeto." - custom_fields: - text_add_new_custom_field: > - Para adicionar campos personalizados a um projeto é necessário criá-los primeiro para depois adicioná-los a este projeto. - is_enabled_globally: "Está habilitado globalmente" - enabled_in_project: "Habilitado no projeto" - contained_in_type: "Contido no tipo" - confirm_destroy_option: "Removendo uma opção removerá todas as suas ocorrências (ex. em pacotes de trabalho). Tem certeza que você quer removê-la?" - reorder_alphabetical: "Reorganizar valores em ordem alfabética" - reorder_confirmation: "Aviso: A ordem atual dos valores disponíveis será perdida. Continuar?" - instructions: - is_required: "Marcar o campo personalizado como obrigatório. Isto tornará obrigatório o preenchimento do campo ao criar novos recursos ou ao atualizar recursos existentes." - is_for_all: "Marcar o campo personalizado como disponível em todos os projetos existentes e novos." - searchable: "Incluir os valores dos campos ao utilizar a funcionalidade de busca global." - editable: "Permita que o campo seja editável pelos próprios usuários." - visible: "Torne o campo visível para todos os usuários (não-administradores) na visão geral do projeto e exibido no widget de detalhes do projeto na Visão geral do projeto." - is_filter: > - Permita que o campo personalizado seja utilizado num filtro nas visualizações do pacote de trabalho. Note que apenas com a opção "Para todos os projetos" selecionada, o campo personalizado irá aparecer nas visualizações globais. - tab: - no_results_title_text: Atualmente, não há campos personalizados. - no_results_content_text: Criar um novo campo personalizado - concatenation: - single: "ou" - global_search: - placeholder: "Buscar em %{app_title}" - overwritten_tabs: - wiki_pages: "Wiki" - messages: "Fórum" - groups: - index: - no_results_title_text: Atualmente, não existem grupos. - no_results_content_text: Criar um novo grupo - users: - no_results_title_text: Atualmente, não há usuários participantes deste grupo. - memberships: - no_results_title_text: Atualmente, não há projetos componentes deste grupo. - incoming_mails: - ignore_filenames: > - Especifique uma lista de nomes para ignorar quando processar anexos para mensagens recebidas (por exemplo, assinaturas ou ícones). Digite um nome de arquivo por linha. - projects: - copy: - #Contains custom strings for options when copying a project that cannot be found elsewhere. - members: "Membros do projeto" - overviews: "Visão geral do projeto" - queries: "Pacotes de trabalho: visualizações salvas" - wiki_page_attachments: "Páginas Wiki: anexos" - work_package_attachments: "Pacote de trabalho: anexos" - work_package_categories: "Pacote de trabalho: categorias" - work_package_file_links: "Pacote de trabalho: links de arquivo" - delete: - scheduled: "Exclusão foi agendada e será realizada em segundo plano. Você será notificado do resultado." - schedule_failed: "Projeto não pode ser excluído: %{errors}" - failed: "Exclusão do projeto %{name} falhou" - failed_text: "A solicitação para excluir o projeto %{name} falhou. O projeto foi arquivado." - completed: "Exclusão do projeto %{name} concluída" - completed_text: "Foi concluída a solicitação para exclusão do projeto '%{name}'." - completed_text_children: "Além disso, os seguintes subprojetos foram excluídos:" - index: - open_as_gantt: "Abrir como visualização Gantt" - no_results_title_text: Atualmente, não existem projetos - no_results_content_text: Criar um novo projeto - lists: - active: "Projetos ativos" - my: "Meus projetos" - archived: "Projetos arquivados" - my_private: "Minhas listas de projetos privados" - new: - placeholder: "Nova lista de projetos" - delete_modal: - title: "Delete project list" - text: "This action will not delete any project the list contains. Are you sure you want to delete this project list?" - settings: - change_identifier: Mudar identificador - activities: - no_results_title_text: Atualmente, não há atividades disponíveis. - forums: - no_results_title_text: Não há fóruns para o projeto no momento. - no_results_content_text: Criar um novo fórum - categories: - no_results_title_text: Atualmente, não há categorias de pacote de trabalho. - no_results_content_text: Criar uma nova categoria de pacote de trabalho - custom_fields: - no_results_title_text: Não há campos personalizados disponíveis. - types: - no_results_title_text: Atualmente, não há tipos disponíveis. - form: - enable_type_in_project: 'Habilitar o tipo "%{type}"' - versions: - no_results_title_text: Atualmente, não há versões para o projeto. - no_results_content_text: Criar uma nova versão - storage: - no_results_title_text: Não há espaço adicional gravado em disco que seja consumido por este projeto. - lists: - can_be_saved_as: "The modifications can only be saved in a new list." - members: - index: - no_results_title_text: Atualmente, não há membros deste projeto. - no_results_content_text: Adicionar um membro ao projeto - invite_by_mail: "Enviar convite para %{mail}" - send_invite_to: "Enviar convite para" - no_modify_on_shared: "No momento, você não pode modificar ou remover associações compartilhadas através da página de membros. Em vez disso, use o modal de compartilhamento." - columns: - shared: "Compartilhado" - filters: - all_shares: "Todos os compartilhamentos" - menu: - all: "Todos" - invited: "Convites" - locked: "Trancado" - project_roles: "Papel no projeto" - wp_shares: "Compartilhamento de pacote de trabalho" - groups: "Grupos" - my: - access_token: - failed_to_reset_token: "Falha ao redefinir o token de acesso: %{error}" - notice_reset_token: "Foi gerado um novo token de %{type}. Seu token de acesso é:" - token_value_warning: "Nota: Esta é a única vez que você verá este token, certifique-se de copiá-lo agora." - no_results_title_text: Atualmente não há tokens de acesso disponíveis. - notice_api_token_revoked: "O token de API foi excluído. Para criar um novo token, use o link na seção de API." - notice_rss_token_revoked: "O token RSS foi excluído. Para criar um novo token, use o link na seção do RSS." - notice_ical_token_revoked: 'O token iCalendar "%{token_name}" para o calendário "%{calendar_name}" do projeto "%{project_name}" foi revogado. O URL do iCalendar com este token agora é inválido.' - news: - index: - no_results_title_text: Atualmente, não há notícias para comunicar. - no_results_content_text: Adicionar um item de notícias - users: - autologins: - prompt: "Mantenha-se conectado por %{num_days}" - sessions: - remembered_devices: "Dispositivos lembrados" - remembered_devices_caption: "Uma lista de todos os dispositivos que fizeram login nesta conta usando a opção 'Permanecer conectado'." - session_name: "%{browser_name} %{browser_version} em %{os_name}" - browser: "Navegador" - device: "Dispositivo / OS" - unknown_browser: "Navegador desconhecido" - unknown_os: "Sistema operacional desconhecido" - current: "Sessão atual" - title: "Gerenciamento de sessão" - instructions: "Esta é uma lista de dispositivos com os quais você realizou login em sua conta. Revogue qualquer sessão que você não reconheça ou que não possui mais acesso." - may_not_delete_current: "Você não pode excluir a sessão atual." - groups: - member_in_these_groups: "No momento, este usuário é um membro dos seguintes grupos: " - no_results_title_text: No momento, este usuário não é membro de nenhum grupo. - memberships: - no_results_title_text: Atualmente, este usuário não é um membro de um projeto. - page: - text: "Texto" - placeholder_users: - right_to_manage_members_missing: > - Você não pode excluir o usuário do espaço reservado. Você não possui direito de gerenciar membros para todos os projetos que o usuário do espaço reserva é membro. - delete_tooltip: "Excluir usuário de espaço reserva" - deletion_info: - heading: "Excluir usuário do espaço reservado %{name}" - data_consequences: > - Todas as ocorrências do usuário de espaço reservado (por exemplo, como responsável, competente ou outros valores de usuário) serão reatribuídas a uma conta chamada "Usuário excluído". Como os dados de todas as contas excluídas são reatribuídos a esta conta, não será possível diferenciar os dados criados por usuários de dados excluídos por outra conta. - irreversible: "Esta ação é irreversível" - confirmation: "Digite o nome de usuário do espaço reservado %{name} para confirmar a exclusão." - upsale: - title: Usuários de espaço reservado - description: > - Usuários reservados são uma maneira de atribuir pacotes de trabalho aos usuários que não fazem parte do seu projeto. Eles podem ser úteis em vários cenários; por exemplo, se você precisa acompanhar as tarefas de uma fonte que ainda não foi nomeada ou disponibilizada, ou, se você não deseja dar a esta pessoa acesso ao OpenProject, mas ainda deseja acompanhar as tarefas atribuídas a ela. - prioritiies: - edit: - priority_color_text: | - Clique para atribuir ou alterar a cor desta prioridade. - Pode ser usado para destacar pacotes de trabalho na tabela. - reportings: - index: - no_results_title_text: Atualmente, não há nenhum relatório de situação. - no_results_content_text: Adicionar um relatório de situação - statuses: - edit: - status_readonly_html: | - Use esta opção para marcar pacotes de trabalho com situação como somente leitura. - Nenhum atributo pode ser alterado com exceção da situação. -
- Nota: valores herdados (por exemplo, de filhos ou relações) ainda serão aplicados. - status_color_text: | - Clique para atribuir ou alterar a cor desta situação. - É exibido no botão de situação e pode ser usado para destacar pacotes de trabalho na tabela. - index: - no_results_title_text: Atualmente, não há nenhuma situação de pacote de trabalho. - no_results_content_text: Adicionar uma nova situação - themes: - light: "Claro" - light_high_contrast: "Contraste alto claro" - types: - index: - no_results_title_text: Atualmente, não há nenhum tipo. - no_results_content_text: Criar um novo tipo - edit: - settings: "Configurações" - form_configuration: "Configuração do formulário" - more_info_text_html: > - A edição Enterprise permite a personalização da configuração do formulário com estes complementos adicionais:
- projects: "Projetos" - enabled_projects: "Projetos habilitados" - edit_query: "Editar tabela" - query_group_placeholder: "Nomear tabela" - reset: "Redefinir para os padrões" - type_color_text: | - A cor selecionada distingue os tipos diferentes - nas tabelas de Gantt ou tabelas dos pacotes de trabalho. Recomenda-se o uso de uma cor forte. - versions: - overview: - work_packages_in_archived_projects: "A versão é compartilhada com projetos arquivados que ainda possuem pacotes de trabalho atribuídos a esta versão. Eles são contados, mas não aparecerão nas exibições vinculadas." - no_results_title_text: Não há pacote de trabalho atribuído a esta versão. - wiki: - page_not_editable_index: A página solicitada (ainda) não existe. Você foi redirecionado para o índice de todas as páginas wiki. - no_results_title_text: Atualmente, não há páginas wiki. - print_hint: Isto imprimirá o conteúdo desta página wiki sem nenhuma barra de navegação. - index: - no_results_content_text: Adicionar uma nova página wiki - work_flows: - index: - no_results_title_text: Atualmente, não há fluxos de trabalho. - work_packages: - x_descendants: - one: "Um pacote de trabalho descendente" - other: "%{count} pacotes de trabalho descendentes" - bulk: - copy_failed: "Os pacotes de trabalho não puderam ser copiados." - move_failed: "Os pacotes de trabalho não puderam ser movidos." - could_not_be_saved: "Os seguintes pacotes de trabalho não puderam ser salvos:" - none_could_be_saved: "Nenhum dos %{total} pacotes de trabalho pode ser atualizado." - x_out_of_y_could_be_saved: "%{failing} dos %{total} pacotes de trabalho não puderam ser atualizados enquanto %{success} foram atualizados." - selected_because_descendants: "Enquanto %{selected} pacotes de trabalho são selecionados, no total de %{total} pacotes de trabalho são afetados, o que inclui descendentes." - descendant: "descendente de selecionados" - move: - no_common_statuses_exists: "Não há situação disponível para todos os pacotes de trabalho selecionados. Sua situação não pode ser alterada." - unsupported_for_multiple_projects: "Movimentação/cópia em massa não é suportada para pacotes de trabalho de vários projetos" - sharing: - missing_workflow_waring: - title: "Fluxo de trabalho ausente para compartilhamento de pacotes de trabalho" - message: "Nenhum fluxo de trabalho está configurado para a função 'Editor de pacote de trabalho'. Sem um fluxo de trabalho, o compartilhado com o usuário não pode alterar o status do pacote de trabalho. Os fluxos de trabalho podem ser copiados. Selecione um tipo de fonte (ex. 'Tarefa') e função de origem (ex. 'Membro'). Em seguida, selecione os tipos de destino. Para começar, você pode selecionar todos os tipos como alvos. Por fim, selecione a função 'Editor de pacote de trabalho' como o destino e pressione 'Copiar'. Depois de ter criado os padrões, ajuste os fluxos de trabalho da mesma forma que faz para todas as outras funções." - link_message: "Configure os fluxos de trabalho na administração." - summary: - reports: - category: - no_results_title_text: Atualmente, não há categorias disponíveis. - assigned_to: - no_results_title_text: Atualmente, não há membros deste projeto. - responsible: - no_results_title_text: Atualmente, não há membros deste projeto. - author: - no_results_title_text: Atualmente, não há membros deste projeto. - priority: - no_results_title_text: Atualmente, não há prioridades disponíveis. - type: - no_results_title_text: Atualmente, não há tipos disponíveis. - version: - no_results_title_text: Atualmente, não há versões disponíveis. - label_invitation: Convite - account: - delete: "Excluir conta" - delete_confirmation: "Tem certeza que deseja excluir a conta?" - deletion_pending: "A conta foi bloqueada e sua exclusão foi agendada. Observe que este processo ocorre em segundo plano. Pode levar alguns minutos até que o usuário seja totalmente excluído." - deletion_info: - data_consequences: - other: 'Os dados que o usuário criou (ex.: e-mail, preferências, pacotes de trabalho, páginas wiki) serão excluídos na medida do possível. Note, porém, que dados como pacotes de trabalho e páginas wiki não podem ser excluídos sem impactar o trabalho dos demais usuários. Estes dados serão reatribuídos a uma conta chamada "Usuário excluído". Como os dados de todas as contas excluídas serão reatribuídos a esta conta, não será possível distinguir os dados que o usuário criou dos dados de outra conta excluída.' - self: 'Os dados que você criou (ex.: e-mail, preferências, pacotes de trabalho, páginas wiki) serão excluídos na medida do possível. Note, porém, que dados como pacotes de trabalho e página wiki não podem ser excluídos sem impactar o trabalho dos demais usuários. Estes dados serão reatribuidos a uma conta chamada "Usuário excluído". Como os dados de todas as contas excluídas serão reatribuidos a esta conta, não será possível distinguir os dados que você criou dos dados de outra conta excluída.' - heading: "Excluir a conta %{name}" - info: - other: "Excluir a conta do usuário é uma ação irreversível." - self: "Excluir a sua conta de usuário é uma ação irreversível." - login_consequences: - other: "A conta será excluída do sistema. Portanto, o usuário não será capaz de entrar com suas credenciais atuais. Ele pode cadastrar-se novamente pelos meios que este aplicativo permite." - self: "A sua conta será excluída do sistema. Portanto, você não será capaz de entrar com suas credenciais atuais. Se quiser, poderá cadastrar-se novamente pelos meios que este aplicativo permite." - login_verification: - other: "Digite o nome de usuário %{name} para validar a exclusão. Depois de enviado, você receberá uma solicitação de confirmação da sua senha." - self: "Digite seu nome de usuário %{name} para validar a exclusão. Depois de enviado, você receberá uma solicitação de confirmação da sua senha." - error_inactive_activation_by_mail: > - Sua conta ainda não foi ativada. Para ativar sua conta, clique no link que foi enviado por e-mail a você. - error_inactive_manual_activation: > - Sua conta ainda não foi ativada. Por favor, espere um administrador ativar sua conta. - error_self_registration_disabled: > - O registro do usuário está desativado no sistema. Por favor peça a um administrador para criar uma conta para você. - error_self_registration_limited_provider: > - O registro do usuário é limitado para o provedor de logon único '%{name}'. Peça a um administrador para ativar a conta para você ou alterar o limite de auto-registro para este provedor. - login_with_auth_provider: "ou entre com a sua conta existente" - signup_with_auth_provider: "ou cadastre-se usando" - auth_source_login: Faça login como %{login} para ativar sua conta. - omniauth_login: Faça login para ativar sua conta. - actionview_instancetag_blank_option: "Por favor selecione" - activerecord: - attributes: - announcements: - show_until: "Exibir até" - attachment: - attachment_content: "Conteúdo anexado" - attachment_file_name: "Nome do arquivo anexado" - downloads: "Transferências" - file: "Arquivo" - filename: "Arquivo" - filesize: "Tamanho" - attribute_help_text: - attribute_name: "Atributo" - help_text: "Texto de ajuda" - ldap_auth_source: - account: "Conta" - attr_firstname: "Atributo de nome" - attr_lastname: "Atributo de sobrenome" - attr_login: "Atributo de nome de usuário" - attr_mail: "Atributo de e-mail" - base_dn: "DN base" - host: "Host" - onthefly: "Criação automática de usuário" - port: "Porta" - tls_certificate_string: "Certificado SSL do servidor LDAP" - changeset: - repository: "Repositório" - color: - hexcode: "Código hexadecimal" - comment: - commented: "Comentado" #an object that this comment belongs to - custom_action: - actions: "Ações" - custom_field: - allow_non_open_versions: "Permitir versões não abertas" - default_value: "Valor padrão" - editable: "Editável" - field_format: "Formato" - is_filter: "Usado como filtro" - is_required: "Obrigatório" - max_length: "Tamanho máximo" - min_length: "Tamanho mínimo" - multi_value: "Permitir seleção múltipla" - possible_values: "Valores possíveis" - regexp: "Expressão regular" - searchable: "Pesquisável" - visible: "Visível" - custom_value: - value: "Valor" - enterprise_token: - starts_at: "Válido desde" - subscriber: "Assinante" - encoded_token: "Token de suporte Enterprise" - active_user_count_restriction: "Máximo de usuários ativos" - grids/grid: - page: "Página" - row_count: "Número de linhas" - column_count: "Número de colunas" - widgets: "Widgets" - oauth_client: - client: "ID do cliente" - relation: - delay: "Atraso" - from: "Pacote de trabalho" - to: "Pacote de trabalho relacionado" - status: - is_closed: "Pacote de trabalho fechado" - is_readonly: "Pacote de trabalho somente leitura" - journal: - notes: "Anotações" - member: - roles: "Papéis" - project: - active_value: - true: "Desarquivada" - false: "arquivado" - identifier: "Identificador" - latest_activity_at: "Últimas atividades em" - parent: "Subprojeto de" - public_value: - title: "Visibilidade" - true: "público" - false: "privado" - queries: "Consultas" - status_code: "Status do projeto" - description: "Description" - status_explanation: "Descrição do status do projeto" - status_codes: - not_started: "Não iniciado" - on_track: "Sob controle" - at_risk: "Em risco" - off_track: "Fora de controle" - finished: "Finalizado" - discontinued: "Descontinuado" - templated: "Projeto modelo" - templated_value: - true: "marcado como modelo" - false: "não marcado como modelo" - types: "Tipos" - versions: "Versões" - work_packages: "Pacotes de Trabalho" - query: - column_names: "Colunas" - relations_to_type_column: "Relações com %{type}" - relations_of_type_column: "Relações de %{type}" - group_by: "Agrupar resultados por" - filters: "Filtros" - timeline_labels: "Rótulos de linha do tempo" - repository: - url: "URL" - role: - permissions: "Permissões" - time_entry: - activity: "Atividade" - hours: "horas" - spent_on: "Data" - type: "Tipo" - ongoing: "Em curso" - type: - description: "Texto padrão para descrição" - attribute_groups: "" - is_in_roadmap: "Exibido no planejamento como padrão" - is_default: "Ativado para novos projetos por padrão" - is_milestone: "É marco" - color: "Cor" - user: - admin: "Administrador" - auth_source: "Fonte de autenticação" - ldap_auth_source: "Conexão LDAP" - identity_url: "URL de identidade" - current_password: "Senha Atual" - force_password_change: "Forçar alteração de senha no próximo acesso" - language: "Idioma" - last_login_on: "Último acesso" - new_password: "Nova senha" - password_confirmation: "Confirmação" - consented_at: "Consentido em" - user_preference: - comments_sorting: "Exibir comentários" - hide_mail: "Ocultar meu endereço de e-mail" - impaired: "Modo de acessibilidade" - time_zone: "Fuso horário" - auto_hide_popups: "Auto-ocultar notificações de sucesso" - warn_on_leaving_unsaved: "Alertar-me ao sair de um pacote de trabalho sem salvar as alterações" - theme: "Modo" - version: - effective_date: "Data de conclusão" - sharing: "Compartilhamento" - wiki_content: - text: "Texto" - wiki_page: - parent_title: "Página pai" - redirect_existing_links: "Redireciona links existentes" - planning_element_type_color: - hexcode: Código hexadecimal - work_package: - begin_insertion: "Início da inserção" - begin_deletion: "Início da exclusão" - children: "Subelementos" - derived_done_ratio: "Total % complete" - derived_remaining_hours: "Total remaining work" - derived_remaining_time: "Total remaining work" - done_ratio: "% de conclusão" - duration: "Duração" - end_insertion: "Final da inserção" - end_deletion: "Final da exclusão" - ignore_non_working_days: "Ignorar dias não-úteis" - include_non_working_days: - title: "Dias úteis" - false: "Apenas dias úteis" - true: "incluindo dias não-úteis" - notify: "Notificar" #used in custom actions - parent: "Pai" - parent_issue: "Pai" - parent_work_package: "Pai" - priority: "Prioridade" - progress: "% de conclusão" - readonly: "Somente leitura" - remaining_hours: "Trabalho restante" - remaining_time: "Trabalho restante" - shared_with_users: "Compartilhado com" - schedule_manually: "Planjamento manual" - spent_hours: "Tempo gasto" - spent_time: "Tempo gasto" - subproject: "Subprojeto" - time_entries: "Registro de tempo" - type: "Tipo" - version: "Versão" - watcher: "Observador" - "doorkeeper/application": - uid: "ID do cliente" - secret: "Segredo do cliente" - owner: "Proprietário" - redirect_uri: "Redirecionar URI" - client_credentials_user_id: "ID do usuário de credenciais do cliente" - scopes: "Escopos" - confidential: "Confidencial" - errors: - messages: - accepted: "deve ser aceito." - after: "deve ser depois de %{date}." - after_or_equal_to: "deve ser depois ou igual a %{date}." - before: "deve ser antes de %{date}." - before_or_equal_to: "deve ser antes ou igual a %{date}." - blank: "não pode ficar em branco." - blank_nested: "precisa ter a propriedade '%{property}' definida. " - cant_link_a_work_package_with_a_descendant: "Um pacote de trabalho não pode ser vinculado a uma das suas subtarefas." - circular_dependency: "Esta relação vai criar uma dependência circular." - confirmation: "não coincide com %{attribute}." - could_not_be_copied: "%{dependency} não pôde ser copiado (completamente)." - does_not_exist: "não existe." - error_enterprise_only: "%{action} só está disponível na edição OpenProject Enterprise" - error_unauthorized: "não pode ser acessado." - error_readonly: "tentou escrever, mas não é gravável." - error_conflict: "Informação foi atualizada por pelo menos um outro usuário." - email: "não é um endereço de e-mail válido." - empty: "não pode ser vazio." - even: "deve ser par." - exclusion: "está reservado." - file_too_large: "é muito grande (tamanho máximo é %{count} Bytes)." - filter_does_not_exist: "filtro não existe." - format: "não corresponde ao formato '%{expected}' esperado." - format_nested: "não corresponde ao formato '%{expected}' esperado no caminho '%{path}'." - greater_than: "deve ser maior que %{count}." - greater_than_or_equal_to: "deve ser maior ou igual a %{count}." - greater_than_or_equal_to_start_date: "deve ser maior ou igual a data de início." - greater_than_start_date: "deve ser maior que a data de início." - inclusion: "Não está definido como um dos valores permitidos." - inclusion_nested: "não foi definido para um dos valores permitidos no caminho '%{path}'. " - invalid: "é inválido." - invalid_url: "não é um URL válido." - invalid_url_scheme: "não é um protocolo suportado (permitidos: %{allowed_schemes})." - less_than_or_equal_to: "deve ser menor ou igual a %{count}." - not_available: "não está disponível devido a uma configuração do sistema." - not_deletable: "não pode ser excluído." - not_current_user: "não é o usuário atual." - not_a_date: "não é uma data válida." - not_a_datetime: "não é uma data/hora válida." - not_a_number: "não é um número." - not_allowed: "é inválido devido à falta de permissões." - not_an_integer: "não é um número inteiro." - not_an_iso_date: "não é uma data válida. Formato exigido: AAAA-MM-DD." - not_same_project: "não pertence ao mesmo projeto." - odd: "deve ser ímpar." - regex_invalid: "não pode ser validado com a expressão regular associada." - smaller_than_or_equal_to_max_length: "deve ser menor ou igual ao tamanho máximo." - taken: "já está sendo utilizado." - too_long: "é muito longo (o máximo é %{count} caracteres)." - too_short: "é muito curto (mínimo é %{count} caracteres)." - type_mismatch: "não é do tipo '%{type}'" - type_mismatch_nested: "não é do tipo '%{type}' no caminho '%{path}'" - unchangeable: "não pode ser alterado." - unknown_property: "não é uma propriedade conhecida." - unknown_property_nested: "possui o caminho desconhecido '%{path}'." - unremovable: "não pode ser removido." - url_not_secure_context: > - não está fornecendo um "Secure Context". Você pode tanto usar HTTPS ou um endereço loopback. - wrong_length: "é o tamanho errado (deve ser %{count} caracteres)." - models: - ldap_auth_source: - attributes: - tls_certificate_string: - invalid_certificate: "O certificado SSL fornecido é inválido: %{additional_message}" - format: "%{message}" - attachment: - attributes: - content_type: - blank: "O tipo de conteúdo do arquivo não pode ficar em branco." - not_whitelisted: "O arquivo foi rejeitado por um filtro automático. '%{value}' não está na lista de permissões para ser enviado." - format: "%{message}" - capability: - context: - global: "Global" - query: - filters: - minimum: "precisa incluir pelo menos um filtro para principal, contexto ou id com o operador '='." - custom_field: - at_least_one_custom_option: "Pelo menos uma opção precisa estar disponível." - custom_actions: - only_one_allowed: "(%{name}) apenas um valor é permitido." - empty: "(%{name}) valor não pode ser vazio." - inclusion: "(%{name}) valor não está definido como um dos valores permitidos." - not_logged_in: "(%{name}) o valor não pode ser atribuído, porque você não está conectado." - not_an_integer: "(%{name}) não é um número inteiro." - smaller_than_or_equal_to: "(%{name}) deve ser menor ou igual a %{count}." - greater_than_or_equal_to: "(%{name}) deve ser maior ou igual a %{count}." - format: "%{message}" - doorkeeper/application: - attributes: - redirect_uri: - fragment_present: "não pode conter um fragmento." - invalid_uri: "deve ser um URI válido." - relative_uri: "deve ser um URI absoluto." - secured_uri: 'não está fornecendo um "Secure Context". Você pode tanto usar HTTPS ou um endereço loopback.' - forbidden_uri: "é proibido pelo servidor." - scopes: - not_match_configured: "não corresponde a escopos disponíveis." - enterprise_token: - unreadable: "não pode ser lido. Tem certeza que é um token de suporte?" - grids/grid: - overlaps: "sobreposição." - outside: "está fora da grade." - end_before_start: "o valor final precisa ser maior que o valor inicial." - ical_token_query_assignment: - attributes: - name: - blank: "é obrigatório. Selecione um nome." - not_unique: "já está em uso. Selecione outro nome." - notifications: - at_least_one_channel: "É necessário especificar pelo menos um canal para o envio de notificações." - attributes: - read_ian: - read_on_creation: "não pode ser definido como verdadeiro na criação da notificação." - mail_reminder_sent: - set_on_creation: "não pode ser definido como verdadeiro na criação da notificação." - reason: - no_notification_reason: "não pode ficar em branco porque o IAN foi escolhido como um canal." - reason_mail_digest: - no_notification_reason: "não pode ficar em branco porque o resumo do e-mail foi escolhido como um canal." - non_working_day: - attributes: - date: - taken: "Já existe um dia não útil para %{value}" - format: "%{message}" - parse_schema_filter_params_service: - attributes: - base: - unsupported_operator: "O operador não é suportado." - invalid_values: "Um valor é inválido." - id_filter_required: "Um filtro de 'id' é necessário." - project: - archived_ancestor: "O projeto tem um ancestral arquivado." - foreign_wps_reference_version: "Pacotes de trabalho em projetos não descendentes referenciam versões do projeto ou de seus descendentes." - attributes: - base: - archive_permission_missing_on_subprojects: "Você não possui as permissões necessárias para arquivar todos os subprojetos. Entre em contato com um administrador" - types: - in_use_by_work_packages: "ainda em uso pelos pacotes de trabalho: %{types}" - enabled_modules: - dependency_missing: "O módulo '%{dependency}' precisa ser habilitado, pois o módulo '%{module}' depende dele." - format: "%{message}" - query: - attributes: - project: - error_not_found: "não encontrado" - public: - error_unauthorized: "- O usuário não possui permissão para criar visões públicas." - group_by: - invalid: "Não é possível agrupar por: %{value}" - format: "%{message}" - column_names: - invalid: "Coluna de consulta inválida: %{value}" - format: "%{message}" - sort_criteria: - invalid: "Não é possível ordenar pela coluna: %{value}" - format: "%{message}" - timestamps: - invalid: "Os carimbos de data/hora contêm valores inválidos: %{values}" - forbidden: "Os carimbos de data/hora contêm valores proibidos: %{values}" - format: "%{message}" - selects: - name_not_included: "The 'Name' column needs to be included" - nonexistent: "The column '%{column}' does not exist." - format: "%{message}" - group_by_hierarchies_exclusive: "é mutuamente exclusivo com o agrupamento por '%{group_by}'. Você não pode ativar os dois." - filters: - custom_fields: - inexistent: "Não há nenhum campo personalizado para o filtro." - queries/filters/base: - attributes: - values: - inclusion: "o filtro tem valores inválidos." - format: "%{message}" - relation: - typed_dag: - circular_dependency: "O relacionamento cria um círculo de relacionamentos." - attributes: - to: - error_not_found: "pacote de trabalho na posição 'para' não foi encontrado ou não está visível" - error_readonly: "uma relação existente de link `para` é imutável" - from: - error_not_found: "pacote de trabalho na posição 'de' não foi encontrado ou não está visível" - error_readonly: "uma relação existente de link `de` é imutável" - repository: - not_available: "Fornecedor SCM não está disponível" - not_whitelisted: "não é permitido pela configuração." - invalid_url: "não é um caminho ou URL válido do repositório." - must_not_be_ssh: "não deve ser um url SSH." - no_directory: "não é um diretório." - role: - attributes: - permissions: - dependency_missing: "também precisa incluir '%{dependency}', já que '%{permission}' está selecionado." - setting: - attributes: - base: - working_days_are_missing: "Pelo menos um dia da semana deve ser definido como um dia útil." - previous_working_day_changes_unprocessed: "As alterações anteriores na configuração de dias úteis ainda não foram aplicadas." - time_entry: - attributes: - hours: - day_limit: "muito alto, já que só se pode registrar um máximo de 24 horas por data." - user_preference: - attributes: - pause_reminders: - invalid_range: "só pode ser um intervalo de datas válido." - daily_reminders: - full_hour: "só pode ser configurado para ser entregue em uma hora completa." - notification_settings: - only_one_global_setting: "Só pode haver uma configuração de notificação global." - email_alerts_global: "As configura de notificação de e-mail só podem ser definidas globalmente." - format: "%{message}" - wrong_date: "Valor incorreto para a Data de início, Prazo ou Atrasadas" - watcher: - attributes: - user_id: - not_allowed_to_view: "não possui permissão para visualizar este recurso." - locked: "está bloqueado." - wiki_page: - error_conflict: "Esta página wiki foi atualizada por outra pessoa enquanto você a editava." - attributes: - slug: - undeducible: "não pode ser deduzido do título '%{title}' '." - work_package: - is_not_a_valid_target_for_time_entries: "Pacote de trabalho #%{id} não é válido para re-atribuir os registros de horas gastas." - attributes: - assigned_to: - format: "%{message}" - due_date: - not_start_date: "não é na data de início, embora isso seja necessário para os marcos." - cannot_be_null: "não pode ser definido como nulo já que a data de início e a duração são conhecidas. " - duration: - larger_than_dates: "é maior que o intervalo entre a data de início e de conclusão." - smaller_than_dates: "é menor que o intervalo entre a data de início e de conclusão." - not_available_for_milestones: "não está disponível para pacotes de trabalho do tipo marco" - cannot_be_null: "não pode ser definida como nulo já que a data de início e conclusão são conhecidas." - parent: - cannot_be_milestone: "não pode ser um marco." - cannot_be_self_assigned: "não pode ser atribuído a ele mesmo." - cannot_be_in_another_project: "não pode ser em outro projeto." - not_a_valid_parent: "é inválido." - start_date: - violates_relationships: "somente pode ser definida como %{soonest_start} ou posterior para não violar as relações de trabalho do pacote." - cannot_be_null: "não pode ser definido como nulo já que a data de conclusão e a duração são conhecidas. " - status_id: - status_transition_invalid: "é inválido porque não existe transição válida da antiga para a nova situação para o papel do usuário atual." - status_invalid_in_type: "é inválido porque não existe a situação atual neste tipo." - type: - cannot_be_milestone_due_to_children: "não pode ser um marco, porque este pacote de trabalho possui filhos." - priority_id: - only_active_priorities_allowed: "precisa ser ativo." - category: - only_same_project_categories_allowed: "A categoria de um pacote de trabalho deve estar dentro do mesmo projeto do pacote de trabalho." - does_not_exist: "Categoria especificada não existe." - estimated_hours: - only_values_greater_or_equal_zeroes_allowed: "deve ser >= 0." - readonly_status: "O pacote de trabalho está em estado somente leitura, então seus atributos não podem ser alterados." - type: - attributes: - attribute_groups: - attribute_unknown: "Atributo de pacote de trabalho inválido usado." - attribute_unknown_name: "Atributo de pacote de trabalho inválido: %{attribute}" - duplicate_group: "O nome de grupo %{group} foi usado mais de uma vez. Nomes de grupos devem ser únicos." - query_invalid: "A consulta incorporada '%{group}' é inválida: %{details}" - group_without_name: "Grupos sem nome não são permitidos." - user: - attributes: - base: - user_limit_reached: "Limite de usuários atingido. Não é possível criar mais contas no plano atual." - one_must_be_active: "O usuário administrador não pode ser bloqueado/removido. Pelo menos um administrador deve estar ativo." - password_confirmation: - confirmation: "A confirmação da senha não corresponde à senha!" - format: "%{message}" - password: - weak: "Deve conter caracteres das seguintes classes (pelo menos %{min_count} de %{all_count}): %{rules}." - lowercase: "minúscula (ex.: 'a')" - uppercase: "maiúscula (ex.: 'A')" - numeric: "número (ex.: '1')" - special: "carácter especial (ex.: '%')" - reused: - one: "foi usada antes. Por favor, escolha uma que seja diferente da sua última." - other: "foi usada antes. Por favor, escolha uma que seja diferente das suas %{count} últimas." - match: - confirm: "Confirme a nova senha." - description: "'Confirmação de senha' deve coincidir com a entrada no campo 'nova senha'." - status: - invalid_on_create: "não é um estado válido para novos usuários." - ldap_auth_source: - error_not_found: "não encontrado" - auth_source: - error_not_found: "não encontrado" - member: - principal_blank: "Por favor, escolha ao menos um usuário ou grupo." - role_blank: "precisa ser atribuído." - attributes: - roles: - ungrantable: "possui uma função não atribuível." - more_than_one: "possui mais de uma função." - principal: - unassignable: "não pode ser atribuído a um projeto." - version: - undeletable_archived_projects: "A versão não pode ser excluída pois tem pacotes de trabalho anexados a ela." - undeletable_work_packages_attached: "A versão não pode ser excluída pois tem pacotes de trabalho anexados a ela." - status: - readonly_default_exlusive: "Não pode ser ativado para estados marcados como padrão." - template: - body: "Por favor, verifique os seguintes campos:" - header: - one: "1 erro impediu este %{model} de ser salvo" - other: "%{count} erros impediram este %{model} de ser salvo" - models: - attachment: "Arquivo" - attribute_help_text: "Texto de ajuda do atributo" - category: "Categoria" - comment: "Comentário" - custom_action: "Ação personalizada" - custom_field: "Campo personalizado" - "doorkeeper/application": "Aplicação OAuth" - forum: "Fórum" - global_role: "Função global" - group: "Grupo" - member: "Membro" - news: "Notícias" - notification: - one: "Notificação" - other: "Notificações" - placeholder_user: "Usuário do espaço reservado" - project: "Projeto" - query: "Consulta personalizada" - role: - one: "Papel" - other: "Papéis" - status: "Situação do pacote de trabalho" - type: "Tipo" - user: "Usuário" - version: "Versão" - workflow: "Fluxo de Trabalho" - work_package: "Pacote de trabalho" - wiki: "Wiki" - wiki_page: "Página wiki" - errors: - header_invalid_fields: - one: "Ocorreu um problema com o seguinte campo:" - other: "Ocorreu um problema com os seguintes campos:" - header_additional_invalid_fields: - one: "Além disso, ocorreu um problema com o seguinte campo:" - other: "Além disso, ocorreu um problema com os seguintes campos:" - field_erroneous_label: "Este campo é inválido: %{full_errors}\nPor favor, insira um valor válido." - activity: - item: - created_by_on: "criado por %{user} em %{datetime}" - created_by_on_time_entry: "tempo registrado por %{user} em %{datetime}" - created_on: "criado em %{datetime}" - created_on_time_entry: "tempo registrado em %{datetime}" - updated_by_on: "atualizado por %{user} em %{datetime}" - updated_by_on_time_entry: "tempo registrado atualizado por %{user} em %{datetime}" - updated_on: "atualizado em %{datetime}" - updated_on_time_entry: "tempo registrado atualizado em %{datetime}" - parent_without_of: "Subprojeto" - parent_no_longer: "Não é mais um subprojeto de" - time_entry: - hour: - one: "%{count} hora" - other: "%{count} horas" - hour_html: - one: "%{count} hora" - other: "%{count} horas" - updated: "alterado de %{old_value} para %{value}" - logged_for: "Registrado por" - filter: - changeset: "Cj de alterações" - message: "Fóruns" - news: "Notícias" - project_attribute: "Atributos do projeto" - subproject: "Incur subprojetos" - time_entry: "Tempo gasto" - wiki_edit: "Wiki" - work_package: "Pacotes de trabalho" - #common attributes of all models - attributes: - active: "Ativo" - assigned_to: "Atribuição" - assignee: "Atribuído para" - attachments: "Anexos" - author: "Autor" - base: "Erro geral:" - blocks_ids: "IDs dos pacotes de trabalho bloqueados" - category: "Categoria" - comment: "Comentário" - comments: "Comentário" - content: "Conteúdo" - color: "Cor" - created_at: "Criado em" - custom_options: "Valores possíveis" - custom_values: "Campos personalizados" - date: "Data" - default_columns: "Colunas padrão" - description: "Descrição" - derived_due_date: "Data de término derivada" - derived_estimated_hours: "Total work" - derived_start_date: "Data inicial derivada" - display_sums: "Mostrar somas" - due_date: "Data de conclusão" - estimated_hours: "Trabalho" - estimated_time: "Trabalho" - expires_at: "Expira em" - firstname: "Nome" - group: "Grupo" - groups: "Grupos" - id: "ID" - is_default: "Valor padrão" - is_for_all: "Para todos os projetos" - public: "Público" - #kept for backwards compatibility - issue: "Pacote de trabalho" - lastname: "Sobrenome" - login: "Nome de usuário" - mail: "E-mail" - name: "Nome" - password: "Senha" - priority: "Prioridade" - project: "Projeto" - responsible: "Responsável" - role: "Papel" - roles: "Papéis" - start_date: "Data de início" - status: "Status" - subject: "Assunto" - summary: "Sumário" - title: "Título" - type: "Tipo" - updated_at: "Atualizado em" - updated_on: "Atualizado em" - uploader: "Enviado por" - user: "Usuário" - value: "Valor" - version: "Versão" - work_package: "Pacote de trabalho" - backup: - failed: "Cópia de segurança falhou" - label_backup_token: "Token de backup" - label_create_token: "Criar token de backup" - label_delete_token: "Excluir token de backup" - label_reset_token: "Redefinir token de backup" - label_token_users: "Os seguintes usuários têm tokens de backup ativos" - reset_token: - action_create: Criar - action_reset: Reiniciar - heading_reset: "Redefinir token de cópia de segurança" - heading_create: "Criar token de cópia de segurança" - implications: > - Habilitar backups permitirá que qualquer usuário com as permissões necessárias e este token de backup baixe um backup contendo todos os dados desta instalação do OpenProject. Isso inclui os dados de todos os outros usuários. - info: > - Você precisará gerar um token de backup para poder criar um backup. Cada vez que você solicitar um backup você terá que fornecer esse token. Você pode excluir o token de backup para desabilitar backups deste usuário. - verification: > - Digite %{word} para confirmar que você deseja %{action} o token de backup. - verification_word_reset: redefinir - verification_word_create: criar - warning: > - Quando você criar um novo token, somente será permitida a solicitação de um backup após 24 horas. Esta é uma medida de segurança. Depois disso, você poderá solicitar um backup a qualquer momento usando esse token. - text_token_deleted: Token de backup excluído. Os backups agora estão desativados. - error: - invalid_token: Token de backup inválido ou ausente - token_cooldown: O token de backup será válido em %{hours} horas - backup_pending: Já existe um backup pendente. - limit_reached: Você só pode fazer %{limit} backups por dia. - button_add: "Adicionar" - button_add_comment: "Adicionar comentário" - button_add_member: Adicionar membro - button_add_watcher: "Adicionar observador" - button_annotate: "Anotar" - button_apply: "Aplicar" - button_archive: "Arquivar" - button_back: "Voltar" - button_cancel: "Cancelar" - button_change: "Alterar" - button_change_parent_page: "Alterar página pai" - button_change_password: "Alterar senha" - button_check_all: "Selecionar todos" - button_clear: "Limpar" - button_click_to_reveal: "Clique para revelar" - button_close: "Fechar" - button_collapse_all: "Recolher todos" - button_configure: "Configurar" - button_continue: "Continuar" - button_copy: "Copiar" - button_copy_to_clipboard: "Copiar para a área de transferência" - button_copy_link_to_clipboard: "Link copiado da área de transferência" - button_copy_and_follow: "Copiar e seguir" - button_create: "Criar" - button_create_and_continue: "Criar e continuar" - button_delete: "Excluir" - button_decline: "Recusar" - button_delete_watcher: "Excluir observador %{name}" - button_download: "Baixar" - button_duplicate: "Duplicar" - button_edit: "Editar" - button_edit_associated_wikipage: "Editar página wiki associada: %{page_title}" - button_expand_all: "Expandir todos" - button_filter: "Filtro" - button_generate: "Gerar" - button_list: "Lista" - button_lock: "Bloquear" - button_login: "Iniciar sessão" - button_move: "Mover" - button_move_and_follow: "Mover e seguir" - button_print: "Imprimir" - button_quote: "Citar" - button_remove: Remover - button_rename: "Renomear" - button_replace: "Substituir" - button_revoke: "Revogar" - button_reply: "Responder" - button_reset: "Reiniciar" - button_rollback: "Retornar para esta versão" - button_save: "Salvar" - button_save_as: "Save as" - button_apply_changes: "Aplicar as alterações" - button_save_back: "Salvar e voltar" - button_show: "Mostrar" - button_sort: "Ordenar" - button_submit: "Enviar" - button_test: "Teste" - button_unarchive: "Desarquivar" - button_uncheck_all: "Desmarcar todos" - button_unlock: "Desbloquear" - button_unwatch: "Não observar" - button_update: "Atualizar" - button_upgrade: "Atualizar" - button_upload: "Carregar" - button_view: "Ver" - button_watch: "Observar" - button_manage_menu_entry: "Configurar item de menu" - button_add_menu_entry: "Adicionar item de menu" - button_configure_menu_entry: "Configurar item de menu" - button_delete_menu_entry: "Excluir item de menu" - consent: - checkbox_label: Eu li e concordo com o exposto acima. - failure_message: Consentimento falhou, não pode continuar. - title: Consentimento do usuário - decline_warning_message: Você se recusou a consentir e foi desconectado. - user_has_consented: Usuário consentiu no momento determinado. - not_yet_consented: Usuário ainda não consentiu, será solicitado no próximo login. - contact_mail_instructions: Defina o endereço de e-mail que os usuários devem utilizar para solicitar alteração ou remoção de dados. - contact_your_administrator: Por favor, entre em contato com o administrador se quiser ter sua conta excluída. - contact_this_mail_address: Por favor, entre em contato com %{mail_address} se quiser ter sua conta excluída. - text_update_consent_time: Marque esta caixa para forçar os usuários a consentir novamente. Ative quando você alterar o aspecto legal da informação de consentimento acima. - update_consent_last_time: "Última atualização do consentimento: %{update_time}" - copy_project: - title: 'Copiar projeto "%{source_project_name}"' - started: 'A cópia de "%{source_project_name}" para "%{target_project_name}" foi iniciada. Você será informado por email tão logo "%{target_project_name}" estiver disponível.' - failed: "Não é possível copiar o projeto %{source_project_name}" - failed_internal: "Falha ao copiar devido a um erro interno." - succeeded: "Foi criado o projeto %{target_project_name}" - errors: "Erro" - project_custom_fields: "Campos personalizados no projeto" - x_objects_of_this_type: - zero: "Nenhum objeto deste tipo" - one: "Um objeto deste tipo" - other: "%{count} objetos deste tipo" - text: - failed: 'Não foi possível copiar o projeto "%{source_project_name}" para o projeto "%{target_project_name}".' - succeeded: 'Projeto "%{source_project_name}" copiado para "%{target_project_name}".' - create_new_page: "Página wiki" - date: - abbr_day_names: - - "Dom" - - "Seg" - - "Ter" - - "Qua" - - "Qui" - - "Sex" - - "Sáb" - abbr_month_names: - - null - - "Jan" - - "Fev" - - "Mar" - - "Abr" - - "Mai" - - "Jun" - - "Jul" - - "Ago" - - "Set" - - "Out" - - "Nov" - - "Dez" - abbr_week: "Sem" - day_names: - - "Domingo" - - "Segunda" - - "Terça" - - "Quarta" - - "Quinta" - - "Sexta" - - "Sábado" - formats: - #Use the strftime parameters for formats. - #When no format has been given, it uses default. - #You can provide other formats here if you like! - default: "%d/%m/%Y" - long: "%d de %B de %Y" - short: "%d/%b" - #Don't forget the nil at the beginning; there's no such thing as a 0th month - month_names: #Used in date_select and datetime_select. - - null - - "Janeiro" - - "Fevereiro" - - "Março" - - "Abril" - - "Maio" - - "Junho" - - "Julho" - - "Agosto" - - "Setembro" - - "Outubro" - - "Novembro" - - "Dezembro" - order: - - :ano - - ':mês' - - :dia - datetime: - distance_in_words: - about_x_hours: - one: "aproximadamente 1 hora" - other: "aproximadamente %{count} horas" - about_x_months: - one: "aproximadamente 1 mês" - other: "aproximadamente %{count} meses" - about_x_years: - one: "aproximadamente 1 ano" - other: "aproximadamente %{count} anos" - almost_x_years: - one: "quase 1 ano" - other: "quase %{count} anos" - half_a_minute: "meio minuto" - less_than_x_minutes: - one: "menos de um minuto" - other: "menos de %{count} minutos" - less_than_x_seconds: - one: "menos de 1 segundo" - other: "menos de %{count} segundos" - over_x_years: - one: "mais de 1 ano" - other: "mais de %{count} anos" - x_days: - one: "1 dia" - other: "%{count} dias" - x_minutes: - one: "1 minuto" - other: "%{count} minutos" - x_minutes_abbreviated: - one: "1 min" - other: "%{count} mins" - x_hours: - one: "1 hora" - other: "%{count} horas" - x_hours_abbreviated: - one: "1 hr" - other: "%{count} hrs" - x_weeks: - one: "1 semana" - other: "%{count} semanas" - x_months: - one: "1 mês" - other: "%{count} meses" - x_years: - one: "1 ano" - other: "%{count} anos" - x_seconds: - one: "1 segundo" - other: "%{count} segundos" - x_seconds_abbreviated: - one: "1 s" - other: "%{count} s" - units: - hour: - one: "hora" - other: "hora" - description_active: "Ativo?" - description_attachment_toggle: "Mostrar/Ocultar anexos" - description_autocomplete: > - Este campo usa auto-completar. Ao digitar o título de um pacote de trabalho, você receberá uma lista com os possíveis valores. Escolha um usando as teclas de seta para cima ou para baixo e confirme com Tab ou Enter. Você também pode digitar o número do pacote de trabalho diretamente. - description_available_columns: "Colunas disponíveis" - description_choose_project: "Projetos" - description_compare_from: "Comparar de" - description_compare_to: "Comparar com" - description_current_position: "Você está aqui: " - description_date_from: "Digite a data de início" - description_date_to: "Digite a data de término" - description_enter_number: "Digite o número" - description_enter_text: "Digite o texto" - description_filter: "Filtro" - description_filter_toggle: "Mostrar/ocultar filtro" - description_category_reassign: "Escolha a categoria" - description_message_content: "Conteúdo da mensagem" - description_my_project: "Você é membro" - description_notes: "Anotações" - description_parent_work_package: "Pacote de trabalho pai (do atual)" - description_project_scope: "Escopo da pesquisa" - description_query_sort_criteria_attribute: "Ordenar por atributo" - description_query_sort_criteria_direction: "Direção da ordenação" - description_search: "Campo de pesquisa" - description_select_work_package: "Selecione pacote de trabalho" - description_selected_columns: "Colunas selecionadas" - description_sub_work_package: "Sub pacote de trabalho (do atual)" - description_toc_toggle: "Mostrar/Ocultar tabela de conteúdos" - description_wiki_subpages_reassign: "Escolha a nova página pai" - #Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) - direction: da esquerda para a direita - ee: - upsale: - form_configuration: - description: "Personalize a configuração do formulário com estes complementos adicionais:" - add_groups: "Adicionar novos grupos de atributos" - rename_groups: "Renomear grupos de atributos" - project_filters: - description_html: "Filtrar e ordenar em campos personalizados é um complemento da edição Enterprise." - enumeration_activities: "Atividades de controle de tempo" - enumeration_work_package_priorities: "Prioridades do pacote de trabalho" - enumeration_reported_project_statuses: "Situação de projeto comunicada" - error_auth_source_sso_failed: "Single Sign-On (SSO) para o usuário '%{value}' falhou" - error_can_not_archive_project: "Este projeto não pode ser arquivado: %{errors}" - error_can_not_delete_entry: "Não é possível excluir a entrada" - error_can_not_delete_custom_field: "Não é possível excluir o campo personalizado" - error_can_not_delete_in_use_archived_undisclosed: "Também existem pacotes de trabalho em projetos arquivados. Você precisa pedir a um administrador para executar a exclusão para visualizar quais projetos são afetados." - error_can_not_delete_in_use_archived_work_packages: "Também há pacotes de trabalho em projetos arquivados. Primeiro, você precisa reativar os seguintes projetos, antes de poder alterar o atributo dos respectivos pacotes de trabalho: %{archived_projects_urls}" - error_can_not_delete_type: - explanation: 'Este tipo contém pacotes de trabalho e não pode ser excluído. Você pode ver todos os pacotes de trabalho afetados em esta visão.' - error_can_not_delete_standard_type: "Tipos padrão não podem ser excluídos." - error_can_not_invite_user: "Falhou ao enviar convite ao usuário." - error_can_not_remove_role: "Este papel está em uso e não pode ser excluído." - error_can_not_reopen_work_package_on_closed_version: "Um pacote de trabalho atribuído a uma versão fechada não pode ser reaberto" - error_can_not_find_all_resources: "Não foi possível encontrar todos os recursos relacionados a esta solicitação." - error_can_not_unarchive_project: "Este projeto não pode ser desarquivado: %{errors}" - error_check_user_and_role: "Por favor, escolha um usuário e um papel." - error_code: "Erro %{code}" - error_color_could_not_be_saved: "Cor não pôde ser salva" - error_cookie_missing: "Está faltando o cookie do OpenProject. Por favor, certifique-se de que os cookies estão habilitados, sem os quais esta função não funcionará adequadamente." - error_custom_option_not_found: "A opção não existe." - error_enterprise_activation_user_limit: "Sua conta não pôde ser ativada (limite de usuários atingido). Por favor, contate o administrador para obter acesso." - error_enterprise_token_invalid_domain: "A edição Enterprise não esta ativa. Seu domínio do token Enterprise (%{actual}) não corresponde ao nome do host do sistema (%{expected})." - error_failed_to_delete_entry: "Falha ao excluir esta entrada." - error_in_dependent: "Erro ao tentar alterar o objeto dependente: %{dependent_class} #%{related_id} - %{related_subject}: %{error}" - error_in_new_dependent: "Erro ao tentar criar objeto dependente: %{dependent_class} - %{related_subject}: %{error}" - error_invalid_selected_value: "Valor selecionado inválido." - error_journal_attribute_not_present: "O diário não contem atributo %{attribute}." - error_pdf_export_too_many_columns: "Muitas colunas selecionadas para a exportação para PDF. Reduza o número de colunas." - error_pdf_failed_to_export: "Não foi possível salvar a exportação do PDF: %{error}" - error_token_authenticity: "Não foi possível verificar o token de Falsificação de Solicitação Entre Sites. Você tentou enviar dados em vários navegadores ou abas? Por favor, feche todas as abas e tente novamente." - error_work_package_done_ratios_not_updated: "Os valores da % de conclusão para o pacote de trabalho não foram atualizados." - error_work_package_not_found_in_project: "O pacote de trabalho não foi encontrado ou não pertence a este projeto" - error_must_be_project_member: "deve ser membro do projeto" - error_migrations_are_pending: "Sua instalação do OpenProject possui migrações de banco de dados pendentes. Você provavelmente esqueceu de executar as migrações em sua última atualização. Por favor, verifique o guia de atualização para atualizar adequadamente sua instalação." - error_migrations_visit_upgrade_guides: "Por favor, visite nossa documentação do guia de atualização" - error_no_default_work_package_status: 'Nenhuma situação padrão de pacote de trabalho foi definida. Por favor, verifique sua configuração (vá em "Administração-> Situação de pacotes de trabalho").' - error_no_type_in_project: "Nenhum tipo está associado a este projeto. Por favor, verifique as Configurações do Projeto." - error_omniauth_registration_timed_out: "O registro por meio de um provedor de autenticação externo expirou. Por favor, tente novamente." - error_omniauth_invalid_auth: "As informações de autenticação retornadas pelo provedor de identidade eram inválidas. Por favor, entre em contato com o administrador para obter mais ajuda." - error_password_change_failed: "Ocorreu um erro durante a tentativa de alterar a senha." - error_scm_command_failed: "Ocorreu um erro ao tentar acessar o repositório: %{value}" - error_scm_not_found: "A entrada ou a revisão não foi encontrada no repositório." - error_type_could_not_be_saved: "Tipo não pôde ser salvo" - error_unable_delete_status: "A situação de pacote de trabalho não pode ser excluída, pois ela é usada por ao menos um pacote de trabalho." - error_unable_delete_default_status: "Não é possível excluir a situação padrão de pacotes de trabalho. Selecione outra situação padrão de pacote de trabalho antes de excluir a atual." - error_unable_to_connect: "Não é possível conectar (%{value})" - error_unable_delete_wiki: "Não é possível excluir a página wiki." - error_unable_update_wiki: "Não é possível atualizar a página wiki." - error_workflow_copy_source: "Por favor, selecione um tipo de fonte ou papel" - error_workflow_copy_target: "Por favor, selecione o tipo de destino(s) e o(s) papel(éis)" - error_menu_item_not_created: Item de menu não pôde ser adicionado - error_menu_item_not_saved: Item de menu não pôde ser salvo - error_wiki_root_menu_item_conflict: > - Não é possível renomear de"%{old_name}" para "%{new_name}" devido a um conflito no item de menu resultante com o item de menu existente "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Ocorreu um erro durante a autenticação externa. Por favor, tente novamente." - error_attribute_not_highlightable: "Atributo(s) não destacado(s): %{attributes}" - events: - changeset: "Conjunto de alterações editadas" - message: Mensagem editada - news: Notícias - project_attributes: "Atributos do projeto editado" - project: "Projeto editado" - projects: "Projeto editado" - reply: Respondida - time_entry: "Registro de tempo editado" - wiki_page: "Página wiki editada" - work_package_closed: "Pacote de Trabalho fechado" - work_package_edit: "Pacote de Trabalho editado" - work_package_note: "Anotação acrescentada ao Pacote de Trabalho" - title: - project: "Projeto: %{name}" - subproject: "Subprojeto: %{name}" - export: - your_work_packages_export: "Exportação de seus pacotes de trabalho" - succeeded: "A exportação foi completada com sucesso." - failed: "A exportação falhou: %{message}" - format: - atom: "Atom" - csv: "CSV" - pdf: "PDF" - pdf_overview_table: "Tabela PDF" - pdf_report_with_images: "Relatório em PDF com imagens" - pdf_report: "Relatório em PDF" - image: - omitted: "Imagem não exportada." - units: - hours: h - days: d - extraction: - available: - pdftotext: "Pdftotext disponível (opcional)" - unrtf: "Unrtf disponível (opcional)" - catdoc: "Catdoc disponível (opcional)" - xls2csv: "Xls2csv disponível (opcional)" - catppt: "Catppt disponível (opcional)" - tesseract: "Tesseract disponível (opcional)" - general_csv_decimal_separator: "." - general_csv_encoding: "UTF-8" - general_csv_separator: "," - general_first_day_of_week: "7" - general_pdf_encoding: "ISO-8859-1" - general_text_no: "não" - general_text_yes: "sim" - general_text_No: "Não" - general_text_Yes: "Sim" - general_text_true: "verdadeiro" - general_text_false: "falso" - gui_validation_error: "1 erro" - gui_validation_error_plural: "%{count} erros" - homescreen: - additional: - projects: "Projetos mais recentes visíveis nesta instância." - no_visible_projects: "Não há nenhum projeto visível nesta instância." - users: "Usuários mais recentes registrados nesta instância." - blocks: - community: "Comunidade do OpenProject" - upsale: - title: "Atualizar para a edição Enterprise" - more_info: "Mais informações" - links: - upgrade_enterprise_edition: "Atualizar para a edição Enterprise" - postgres_migration: "Migrando sua instalação para PostgreSQL" - user_guides: "Guias do usuário" - faq: "Perguntas Freqüentes" - glossary: "Glossário" - shortcuts: "Atalhos" - blog: "Blog do OpenProject" - forums: "Fórum da Comunidade" - newsletter: "Alertas de segurança / Newsletter" - image_conversion: - imagemagick: "Imagemagick" - journals: - changes_retracted: "As mudanças foram retraídas." - caused_changes: - dates_changed: "Data modificada" - system_update: "Atualização do sistema OpenProject:" - cause_descriptions: - work_package_predecessor_changed_times: por alterações ao antecessor %{link} - work_package_parent_changed_times: por alterações ao primário %{link} - work_package_children_changed_times: por alterações ao secundário %{link} - work_package_related_changed_times: por alterações ao %{link} relacionado - unaccessable_work_package_changed: por alterações a um pacote de trabalho relacionado - working_days_changed: - changed: "por alterações a dias úteis (%{changes})" - days: - working: "%{day} agora é um dia útil" - non_working: "%{day} agora é um dia não útil" - dates: - working: "%{date} agora está funcionando" - non_working: "%{date} não está funcionando agora" - system_update: - file_links_journal: > - A partir de agora, a atividade relacionada a links de arquivos (arquivos armazenados em armazenamentos externos) aparecerá aqui na guia Atividade. O seguinte representa a atividade relacionada aos links que já existiam: - links: - configuration_guide: "Guia de configuração" - get_in_touch: "Com dúvidas? Entre em contato conosco." - instructions_after_registration: "Você pode entrar, assim que a sua conta for ativada clicando %{signin}." - instructions_after_logout: "Você pode entrar novamente clicando em %{signin}." - instructions_after_error: "Você pode tentar entrar novamente, clicando em %{signin}. Se o erro persistir, consulte seu administrador para obter ajuda." - menus: - admin: - mail_notification: "Notificações por e-mail" - mails_and_notifications: "E-mails e notificações" - aggregation: "Agregação" - api_and_webhooks: "API e webhooks" - quick_add: - label: "Abrir menu de adição rápida" - my_account: - access_tokens: - no_results: - title: "Nenhum tokens de acesso para exibir" - description: "Todos foram desativados. Eles podem ser re-ativados no menu Administração." - access_tokens: "Tokens de acesso" - headers: - action: "Ação" - expiration: "Expira" - indefinite_expiration: "Nunca" - simple_revoke_confirmation: "Tem certeza de que deseja revogar este token?" - api: - title: "API" - text_hint: "Os tokens de API permitem que aplicativos de terceiros se comuniquem com esta instância do OpenProject por meio de APIs REST." - static_token_name: "Token de API" - disabled_text: "Os tokens de API não estão habilitados pelo administrador. Entre em contato com o administrador para utilizar este recurso." - ical: - title: "iCalendar" - text_hint: 'Tokens de iCalendar permitem que os usuários assinem calendários do OpenProject e vejam informações atualizadas dos pacotes de trabalho de clientes externos.' - disabled_text: "As assinaturas do iCalendar não estão habilitadas pelo administrador. Entre em contato com o administrador para utilizar este recurso." - empty_text_hint: "Para adicionar um token de iCalendário, assine um calendário novo ou existente no módulo Calendário de um projeto. Você precisa possuir as permissões necessárias." - oauth: - title: "OAuth" - text_hint: "Os tokens de OAuth permitem que aplicativos de terceiros se conectar com esta instância do OpenProject." - empty_text_hint: "Não há acesso de aplicativo de terceiros configurado e ativo para você. Entre em contato com o administrador para ativar este recurso." - rss: - title: "RSS" - text_hint: "Os tokens de RSS permitem que os usuários acompanhem as últimas alterações nesta instância do OpenProject através de um leitor de RSS externo." - static_token_name: "Token de RSS" - disabled_text: "Os tokens de RSS não estão habilitados pelo administrador. Entre em contato com o administrador para utilizar este recurso." - storages: - title: "Armazenamentos de arquivo" - text_hint: "Tokens de Armazenamento de Arquivo conectam esta instância do OpenProject a um Armazenamento de Arquivos externo." - empty_text_hint: "Não há nenhum acesso de armazenamento vinculado à sua conta." - revoke_token: "Você realmente deseja remover este token? Você precisará fazer login novamente no %{storage}" - removed: "Token de armazenamento de arquivo removido com sucesso" - failed: "Ocorreu um erro e o token não pôde ser removido. Tente novamente mais tarde." - unknown_storage: "Armazenamento desconhecido" - notifications: - send_notifications: "Enviar notificações para está ação " - work_packages: - subject: - created: "O pacote de trabalho foi criado." - assigned: "Você foi atribuído a %{work_package}" - subscribed: "Você assinou %{work_package}" - mentioned: "Você foi mencionado em %{work_package}" - responsible: "Você se tornou responsável por %{work_package}" - watched: "Você está assistindo %{work_package}" - update_info_mail: - body: > - Estamos ansiosos para anunciar o lançamento do OpenProject 12.0. É um grande lançamento que esperamos que melhore significativamente a forma como você usa o OpenProject. - Neste lançamento, estamos apresentando as notificações no aplicativo. de agora em diante, você receberá notificações para as atualizações nos pacotes de trabalho diretamente no OpenProject. Você pode marcas estas notificações como lidas, responder a um comentário ou até mesmo modificar diretamente atributos do pacote de trabalho sem sair do centro de notificações. - Isto também significa que não iremos mais utilizar e-mail para notificações. Achamos que um novo centro de notificações é o melhor lugar para visualizar e tomar as ações necessárias para estas atualizações. No entanto, se você deseja continuar a receber atualizações por e-mail, opte por receber lembretes diários por e-mail em horários específicos de sua escolha. - Certifique-se de verificar suas novas configurações de notificação padrão e de definir suas preferências sobre notificações e lembretes por e-mail nas configurações de sua conta. Você pode fazer isso através do botão “Alterar configurações de e-mail” abaixo. - Esperamos que você ache nossas notificações no aplicativo útil e que ela aumente sua produtividade. - Atenciosamente, Equipe OpenProject - body_header: "Versão 12.0 com a Central de Notificações" - body_subheader: "Notícias" - subject: "Alterações importantes das notificações com o lançamento da versão 12.0" - label_accessibility: "Acessibilidade" - label_account: "Conta" - label_active: "Ativo" - label_activate_user: "Ativar usuário" - label_active_in_new_projects: "Ativo em novos projetos" - label_activity: "Atividade" - label_add_edit_translations: "Adicionar e editar traduções" - label_add_another_file: "Adicionar outro arquivo" - label_add_columns: "Adicionar colunas selecionadas" - label_add_note: "Adicionar uma nota" - label_add_related_work_packages: "Adicionar pacotes de trabalho relacionados" - label_add_subtask: "Adicionar subtarefa" - label_added: "adicionado" - label_added_by: "Adicionado por %{author}" - label_added_time_by: "Adicionado por %{author} %{age} atrás" - label_additional_workflow_transitions_for_assignee: "Transições adicionais permitidas quando o usuário é o responsável" - label_additional_workflow_transitions_for_author: "Transições adicionais permitidas quando o usuário é o autor" - label_administration: "Administração" - label_advanced_settings: "Configurações avançadas" - label_age: "Idade" - label_ago: "dias atrás" - label_all: "todos" - label_all_time: "todos os tempos" - label_all_words: "Todas as palavras" - label_all_open_wps: "Tudo aberto" - label_always_visible: "Sempre exibido" - label_announcement: "Anúncio" - label_angular: "AngularJS" - label_api_access_key: "Chave de acesso a API" - label_api_access_key_created_on: "Chave de acesso a API criada %{value} atrás" - label_api_access_key_type: "API" - label_ical_access_key_type: "iCalendar" - label_ical_access_key_description: 'Token de iCalendar "%{token_name}" para "%{calendar_name}" em "%{project_name}"' - label_ical_access_key_not_present: "Token(s) de iCalendar não presente(s)." - label_ical_access_key_generation_hint: "Gerado automaticamente ao assinar um calendário." - label_ical_access_key_latest: "último" - label_ical_access_key_revoke: "Revogar" - label_applied_status: "Situação aplicada" - label_archive_project: "Arquivar projeto" - label_ascending: "Ascendente" - label_assigned_to_me_work_packages: "Pacotes de trabalho atribuídos a mim" - label_associated_revisions: "Revisões associadas" - label_attachment_delete: "Excluir arquivo" - label_attachment_new: "Novo arquivo" - label_attachment_plural: "Arquivos" - label_attribute: "Atributo" - label_attribute_plural: "Atributos" - label_ldap_auth_source_new: "Nova conexão LDAP" - label_ldap_auth_source: "Conexão LDAP" - label_ldap_auth_source_plural: "Conexões LDAP" - label_authentication: "Autenticação" - label_available_global_roles: "Funções globais disponíveis" - label_available_project_forums: "Fóruns disponíveis" - label_available_project_repositories: "Repositórios disponíveis" - label_available_project_versions: "Versões disponíveis" - label_available_project_work_package_categories: "Categorias de pacote de trabalho disponíveis" - label_available_project_work_package_types: "Tipos de pacote de trabalho disponíveis" - label_available_projects: "Projetos disponíveis" - label_api_doc: "Documentação da API" - label_backup: "Backup" - label_backup_code: "Código de backup" - label_between: "entre" - label_blocked_by: "Bloqueado por" - label_blocks: "bloqueios" - label_blog: "Blog" - label_forums_locked: "Bloqueado" - label_forum_new: "Novo fórum" - label_forum_plural: "Fóruns" - label_forum_sticky: "Afixado" - label_boolean: "Boleano" - label_board_plural: "Quadros" - label_branch: "Ramo" - label_browse: "Explorar" - label_bulk_edit_selected_work_packages: "Editar em lote os pacotes de trabalho selecionados" - label_bundled: "(Empacotado)" - label_calendar: "Calendário" - label_calendars_and_dates: "Calendários e datas" - label_calendar_show: "Mostrar Calendário" - label_category: "Categoria" - label_consent_settings: "Consentimento do usuário" - label_wiki_menu_item: Item do menu da wiki - label_select_main_menu_item: Selecione novo item do menu principal - label_required_disk_storage: "Armazenamento em disco necessário" - label_send_invitation: Enviar Convite - label_change_plural: "Mudanças" - label_change_properties: "Alterar propriedades" - label_change_status: "Alterar situação" - label_change_status_of_user: "Alterar situação de #{username}" - label_change_view_all: "Visualizar todas as alterações" - label_changes_details: "Detalhes de todas as alterações" - label_changeset: "Conjunto de alterações" - label_changeset_id: "ID do conjunto de alterações" - label_changeset_plural: "Conjunto de alterações" - label_checked: "verificado" - label_check_uncheck_all_in_column: "Marcar/Desmarcar todos na coluna" - label_check_uncheck_all_in_row: "Marcar/Desmarcar todos na linha" - label_child_element: "Elemento filho" - label_choices: "Escolhas" - label_chronological_order: "Mais antigo primeiro" - label_close_versions: "Fechar versões concluídas" - label_closed_work_packages: "fechado" - label_collapse: "Recolher" - label_collapsed_click_to_show: "Recolhido. Clique para expandir" - label_configuration: configuração - label_comment_add: "Adicionar um comentário" - label_comment_added: "Comentário adicionado" - label_comment_delete: "Excluir comentários" - label_comment_plural: "Comentários" - label_commits_per_author: "Commits por autor" - label_commits_per_month: "Commits por mês" - label_confirmation: "Confirmação" - label_contains: "contém" - label_content: "Conteúdo" - label_color_plural: "Cores" - label_copied: "copiado" - label_copy_same_as_target: "Igual ao destino" - label_copy_source: "Fonte" - label_copy_target: "Destino" - label_copy_workflow_from: "Copiar o fluxo de trabalho de" - label_copy_project: "Cópiar projeto" - label_core_version: "Versão do núcleo" - label_core_build: "Construção principal" - label_current_status: "Situação atual" - label_current_version: "Versão atual" - label_custom_field_add_no_type: "Adicionar este campo a um tipo de pacote de trabalho" - label_custom_field_new: "Novo campo personalizado" - label_custom_field_plural: "Campos personalizados" - label_custom_field_default_type: "Tipo vazio" - label_custom_style: "Design" - label_dashboard: "Painel" - label_database_version: "Versão do PostgreSQL" - label_date: "Data" - label_date_and_time: "Data e hora" - label_date_format: "Formato de data" - label_date_from: "De" - label_date_from_to: "De %{start} até %{end}" - label_date_to: "Para" - label_day_plural: "dias" - label_default: "Padrão" - label_delete_user: "Excluir usuário" - label_delete_project: "Excluir projeto" - label_deleted: "excluído" - label_deleted_custom_field: "(campo personalizado excluído)" - label_deleted_custom_option: "(opção excluída)" - label_empty_element: "(vazio)" - label_missing_or_hidden_custom_option: "(algum valor faltando ou falta permissões para acessar)" - label_descending: "Decrescente" - label_details: "Detalhes" - label_development_roadmap: "Planejamento do desenvolvimento" - label_diff: "diff" - label_diff_inline: "em linha" - label_diff_side_by_side: "lado a lado" - label_digital_accessibility: "Acessibilidade digital (DE)" - label_disabled: "desativado" - label_disabled_uppercase: "Disabled" - label_display: "Display" - label_display_per_page: "Por página: %{value}" - label_display_used_statuses_only: "Exibir apenas as situações usadas por este tipo" - label_download: "%{count} Baixado" - label_download_plural: "%{count} Baixados" - label_downloads_abbr: "D/L" - label_duplicated_by: "Duplicado por" - label_duplicate: "duplicado" - label_duplicates: "Duplicados" - label_edit: "Editar" - label_edit_x: "Editar: %{x}" - label_enable_multi_select: "Alterna para seleção múltipla" - label_enabled_project_custom_fields: "Campos personalizados habilitados" - label_enabled_project_modules: "Módulos habilitados" - label_enabled_project_activities: "Atividades de controle de tempo habilitadas" - label_end_to_end: "fim a fim" - label_end_to_start: "fim para início" - label_enumeration_new: "Novo valor de enumeração" - label_enumeration_value: "Valor de enumeração" - label_enumerations: "Enumerações" - label_enterprise: "Enterprise" - label_enterprise_active_users: "%{current}/%{limit} usuários ativos reservados" - label_enterprise_edition: "Edição Enterprise" - label_enterprise_support: "Suporte corporativo" - label_enterprise_addon: "Complemento empresarial" - label_environment: "Ambiente" - label_estimates_and_time: "Estimativas e tempo" - label_equals: "é" - label_everywhere: "em todos os lugares" - label_example: "Exemplo" - label_experimental: "Experimental" - label_i_am_member: "Sou membro" - label_ifc_viewer: "Visualizador de IFC" - label_ifc_model_plural: "Modelos de IFC" - label_import: "Importar" - label_export_to: "Também disponível em:" - label_expanded_click_to_collapse: "Expandido. Clique para recolher" - label_f_hour: "%{value} hora" - label_f_hour_plural: "%{value} horas" - label_favoured: "Favoritado" - label_feed_plural: "Feeds" - label_feeds_access_key: "Chave de acesso RSS" - label_feeds_access_key_created_on: "Chave de acesso RSS criada %{value} atrás" - label_feeds_access_key_type: "RSS" - label_file_plural: "Arquivos" - label_filter_add: "Adicionar filtro" - label_filter: "Filtros" - label_filter_plural: "Filtros" - label_filters_toggle: "Mostrar/ocultar filtros" - label_float: "Ponto flutuante" - label_folder: "Pasta" - label_follows: "Segue" - label_force_user_language_to_default: "Configurar o idioma de usuário que tem uma linguagem não permitida como padrão" - label_form_configuration: "Configuração do formulário" - label_gantt_chart: "Gráfico de Gantt" - label_gantt_chart_plural: "Gráficos de Gantt" - label_general: "Geral" - label_generate_key: "Gerar uma chave" - label_git_path: "Caminho para o diretório .git" - label_greater_or_equal: ">=" - label_group_by: "Agrupar por" - label_group_new: "Novo grupo" - label_group: "Grupo" - label_group_named: "Grupo %{name}" - label_group_plural: "Grupos" - label_help: "Ajuda" - label_here: aqui - label_hide: "Ocultar" - label_history: "História" - label_hierarchy_leaf: "Folha de hierarquia" - label_home: "Início" - label_subject_or_id: "Assunto ou ID" - label_calendar_subscriptions: "Assinaturas do calendários" - label_identifier: "Identificador" - label_impressum: "Aviso legal" - label_in: "em" - label_in_less_than: "em menos de" - label_in_more_than: "em mais de" - label_inactive: "Inativo" - label_incoming_emails: "E-mails recebidos" - label_includes: "inclui" - label_index_by_date: "Índice por data" - label_index_by_title: "Índice por título" - label_information: "Informação" - label_information_plural: "Informações" - label_installation_guides: "Guias de instalação" - label_integer: "Número inteiro" - label_internal: "Interno" - label_introduction_video: "Vídeo de introdução" - label_invite_user: "Convidar usuário" - label_share: "Compartilhar" - label_show_hide: "Mostrar/ocultar" - label_show_all_registered_users: "Mostrar todos usuários registrados" - label_journal: "Diário" - label_journal_diff: "Comparação de Descrição" - label_language: "Idioma" - label_languages: "Idiomas" - label_jump_to_a_project: "Saltar para um projeto..." - label_keyword_plural: "Palavras-chave" - label_language_based: "Com base no idioma do usuário" - label_last_activity: "Última atividade" - label_last_change_on: "Última alteração em" - label_last_changes: "últimas %{count} alterações" - label_last_login: "Último acesso" - label_last_month: "último mês" - label_last_n_days: "últimos %{count} dias" - label_last_week: "última semana" - label_latest_revision: "Última revisão" - label_latest_revision_plural: "Últimas revisões" - label_ldap_authentication: "Autenticação LDAP" - label_less_or_equal: "<=" - label_less_than_ago: "menos dias atrás" - label_list: "Lista" - label_loading: "Carregando..." - label_lock_user: "Bloquear usuário" - label_logged_as: "Conectado como" - label_login: "Fazer login" - label_custom_logo: "Logotipo personalizado" - label_custom_export_logo: "Logo de exportação personalizado" - label_custom_export_cover: "Fundo personalizado da capa de exportação" - label_custom_export_cover_overlay: "Sobreposição de fundo personalizado da capa de exportação" - label_custom_export_cover_text_color: "Cor do texto" - label_custom_pdf_export_settings: "Configurações de exportação de PDF personalizadas" - label_custom_favicon: "Ícone personalizado" - label_custom_touch_icon: "Ícone de toque personalizado" - label_logout: "Desconectar" - label_main_menu: "Menu lateral" - label_manage_groups: "Gerenciar grupos" - label_managed_repositories_vendor: "Repositórios gerenciados %{vendor}" - label_max_size: "Tamanho máximo" - label_me: "eu" - label_member_new: "Novo membro" - label_member_all_admin: "(Todos os papéis devidos ao status de administrador)" - label_member_plural: "Membros" - label_membership_plural: "Memberships" - lable_membership_added: "Membro adicionado" - lable_membership_updated: "Membro atualizado" - label_menu_badge: - pre_alpha: "pré-alfa" - alpha: "alfa" - beta: "beta" - label_menu_item_name: "Nome do item de menu" - label_message: "Mensagem" - label_message_last: "Última mensagem" - label_message_new: "Nova mensagem" - label_message_plural: "Mensagens" - label_message_posted: "Mensagem adicionada" - label_min_max_length: "Tamanho Mín - Max" - label_minute_plural: "minutos" - label_missing_api_access_key: "Falta chave de acesso a API" - label_missing_feeds_access_key: "Falta chave de acesso RSS" - label_modification: "%{count} alteração" - label_modified: "modificado" - label_module_plural: "Módulos" - label_modules: "Módulos" - label_months_from: "meses de" - label_more: "Mais" - label_more_than_ago: "mais do que dias atrás" - label_move_work_package: "Mover pacote de trabalho" - label_my_account: "Minha conta" - label_my_activity: "Minha atividade" - label_my_account_data: "Dados da minha conta" - label_my_avatar: "Meu avatar" - label_my_queries: "Minhas consultas personalizadas" - label_name: "Nome" - label_never: "Nunca" - label_new: "Novo" - label_new_features: "Novos recursos" - label_new_statuses_allowed: "Novas situações permitidas" - label_news_singular: "Notícias" - label_news_added: "Notícia adicionada" - label_news_comment_added: "Comentário adicionado a uma notícia" - label_news_latest: "Últimas notícias" - label_news_new: "Adicionar notícia" - label_news_edit: "Editar notícia" - label_news_plural: "Notícias" - label_news_view_all: "Ver todas as notícias" - label_next: "Próxima" - label_next_week: "Próxima semana" - label_no_change_option: "(Sem alteração)" - label_no_data: "Sem dados para exibir" - label_no_parent_page: "Nenhuma página pai" - label_nothing_display: "Nada para exibir" - label_nobody: "ninguém" - label_not_found: "não encontrado" - label_none: "nenhum" - label_none_parentheses: "(nenhum)" - label_not_contains: "não contém" - label_not_equals: "não é" - label_on: "ligado" - label_operator_all: "não está vazio" - label_operator_none: "está vazio" - label_operator_equals_or: "é (OR)" - label_operator_equals_all: "é (AND)" - label_operator_shared_with_user_any: "qualquer" - label_open_menu: "Abrir menu" - label_open_work_packages: "aberto" - label_open_work_packages_plural: "aberto" - label_openproject_website: "Site do OpenProject" - label_optional_description: "Descrição" - label_options: "Opções" - label_other: "Outro" - label_overall_activity: "Atividade global" - label_overview: "Visão geral" - label_page_title: "Título da página" - label_part_of: "parte de" - label_password_lost: "Esqueceu a senha?" - label_password_rule_lowercase: "Letras minúsculas" - label_password_rule_numeric: "Caracteres Numéricos" - label_password_rule_special: "Caracteres Especiais" - label_password_rule_uppercase: "Letras maiúsculas" - label_path_encoding: "Codificação" - label_per_page: "Por página" - label_people: "Pessoas" - label_permissions: "Permissões" - label_permissions_report: "Relatório de permissões" - label_personalize_page: "Personalizar esta página" - label_placeholder_user: "Usuário do espaço reservado" - label_placeholder_user_new: "Nomo usuário do espaço reservado" - label_placeholder_user_plural: "Usuários de espaço reservado" - label_planning: "Planejamento" - label_please_login: "Por favor, efetue o login" - label_plugins: "Plugins" - label_modules_and_plugins: "Módulos e Plugins" - label_precedes: "Precede" - label_preferences: "Preferências" - label_preview: "Pré-visualizar" - label_preview_not_available: "(Preview not available)" - label_previous: "Anterior" - label_previous_week: "Semana anterior" - label_principal_invite_via_email: " ou convidar novos usuários via e-mail" - label_principal_search: "Adicionar usuários existentes ou grupos" - label_privacy_policy: "Política de privacidade e segurança de dados" - label_product_version: "Versão do produto" - label_profile: "Perfil" - label_project_activity: "Atividade do projeto" - label_project_attribute_plural: "Atributos do projeto" - label_project_count: "Número total de projetos" - label_project_copy_notifications: "Enviar notificações por email durante a cópia do projeto" - label_project_latest: "Últimos projetos" - label_project_default_type: "Permitir tipo vazio" - label_project_hierarchy: "Hierarquia de projeto" - label_project_new: "Novo projeto" - label_project_plural: "Projetos" - label_project_settings: "Configurações do projeto" - label_project_storage_plural: "Armazenamentos de arquivo" - label_project_storage_project_folder: "Armazenamentos de arquivos: pastas do Projeto" - label_projects_storage_information: "%{count} projetos usando %{storage} de armazenamento em disco" - label_project_view_all: "Ver todos os projetos" - label_project_show_details: "Mostrar detalhes do projeto" - label_project_hide_details: "Ocultar detalhes do projeto" - label_public_projects: "Projetos públicos" - label_query_new: "Nova consulta" - label_query_plural: "Consultas personalizadas" - label_read: "Leia..." - label_register: "Criar uma nova conta" - label_register_with_developer: "Registre-se como desenvolvedor" - label_registered_on: "Registrado em" - label_registration_activation_by_email: "ativação de conta por e-mail" - label_registration_automatic_activation: "ativação automática de conta" - label_registration_manual_activation: "ativação manual de conta" - label_related_work_packages: "Pacotes de trabalho relacionados" - label_relates: "relacionado a" - label_relates_to: "relacionado a" - label_relation_delete: "Excluir relação" - label_relation_new: "Nova relação" - label_release_notes: "Notas da versão" - label_remove_columns: "Remover colunas selecionadas" - label_renamed: "renomeado" - label_reply_plural: "Respostas" - label_report: "Relatório" - label_report_bug: "Comunicar um bug" - label_report_plural: "Relatórios" - label_reported_work_packages: "Pacotes de trabalho criados" - label_reporting: "Relatório" - label_reporting_plural: "Relatórios" - label_repository: "Repositório" - label_repository_root: "Raiz do repositório" - label_repository_plural: "Repositórios" - label_required: "requerido" - label_requires: "requer" - label_result_plural: "Resultados" - label_reverse_chronological_order: "Mais recentes primeiro" - label_revision: "Revisão" - label_revision_id: "Revisão %{value}" - label_revision_plural: "Revisões" - label_roadmap: "Planejamento" - label_roadmap_edit: "Editar planejamento %{name}" - label_roadmap_due_in: "Exatamente em %{value}" - label_roadmap_no_work_packages: "Não há pacotes de trabalho para esta versão" - label_roadmap_overdue: "%{value} atrasado" - label_role_and_permissions: "Papéis e permissões" - label_role_new: "Novo papel" - label_role_plural: "Papéis" - label_role_search: "Atribuir papéis aos novos membros" - label_scm: "SCM" - label_search: "Pesquisar" - label_send_information: "Enviar novas credenciais ao usuário" - label_send_test_email: "Enviar um e-mail de teste" - label_session: "Sessão" - label_setting_plural: "Configurações" - label_system_settings: "Configurações do sistema" - label_show_completed_versions: "Mostrar versões concluídas" - label_sort: "Ordenar" - label_sort_by: "Ordenar por %{value}" - label_sorted_by: "ordenados por %{value}" - label_sort_higher: "Mover para cima" - label_sort_highest: "Mover para o topo" - label_sort_lower: "Mover para baixo" - label_sort_lowest: "Mover para o final" - label_spent_time: "Tempo gasto" - label_start_to_end: "início ao fim" - label_start_to_start: "início à início" - label_statistics: "Estatísticas" - label_status: "Situação" - label_storage_free_space: "Espaço em disco restante" - label_storage_used_space: "Espaço em disco utilizado" - label_storage_group: "Armazenamento de arquivos %{identifier}" - label_storage_for: "Engloba o armazenamento para" - label_string: "Texto" - label_subproject: "Subprojeto" - label_subproject_new: "Novo subprojeto" - label_subproject_plural: "Subprojetos" - label_subtask_plural: "Subtarefas" - label_summary: "Sumário" - label_system: "Sistema" - label_system_storage: "Informações de armazenamento" - label_table_of_contents: "Tabela de conteúdos" - label_tag: "Marcação" - label_team_planner: "Planejador de equipe" - label_text: "Texto longo" - label_this_month: "este mês" - label_this_week: "esta semana" - label_this_year: "este ano" - label_time_entry_plural: "Tempo gasto" - label_time_entry_activity_plural: "Tempo investido em atividades" - label_title: "Título" - label_projects_menu: "Projetos" - label_today: "hoje" - label_top_menu: "Menu superior" - label_topic_plural: "Tópicos" - label_total: "Total" - label_type_new: "Novo tipo" - label_type_plural: "Tipos" - label_ui: "Interface de usuário" - label_update_work_package_done_ratios: "Atualizar valor da % de conclusão do pacote de trabalho" - label_updated_time: "Atualizado há %{value} atrás" - label_updated_time_at: "%{author} %{age}" - label_updated_time_by: "Atualizado por %{author} %{age} atrás" - label_upgrade_guides: "Guias de atualização" - label_used_by: "Usado por" - label_used_by_types: "Utilizado por tipos" - label_used_in_projects: "Utilizado em projetos" - label_user: "Usuário" - label_user_and_permission: "Usuários e permissões" - label_user_named: "Usuário %{name}" - label_user_activity: "atividade do %{value}" - label_user_anonymous: "Anônimo" - label_user_mail_option_all: "Para qualquer evento em todos os meus projetos" - label_user_mail_option_none: "Não há eventos" - label_user_mail_option_only_assigned: "Só para coisas que estou designado" - label_user_mail_option_only_my_events: "Somente para as coisas que eu acompanho ou participo" - label_user_mail_option_only_owner: "Somente para as coisas que eu sou o dono" - label_user_mail_option_selected: "Para qualquer evento somente nos projetos selecionados" - label_user_new: "Novo usuário" - label_user_plural: "Usuários" - label_user_search: "Busca por usuário" - label_user_settings: "Configurações do usuário" - label_users_settings: "Configurações de usuário" - label_version_new: "Nova versão" - label_version_plural: "Versões" - label_version_sharing_descendants: "Com subprojetos" - label_version_sharing_hierarchy: "Com a hierarquia do projeto" - label_version_sharing_none: "Não compartilhado" - label_version_sharing_system: "Com todos os projetos" - label_version_sharing_tree: "Com a árvore de projetos" - label_videos: "Vídeos" - label_view_all_revisions: "Ver todas as revisões" - label_view_diff: "Ver diferenças" - label_view_revisions: "Ver revisões" - label_watched_work_packages: "Pacotes de trabalho observados" - label_what_is_this: "O que é isto?" - label_week: "Semana" - label_wiki_content_added: "Página wiki adicionada" - label_wiki_content_updated: "Página wiki atualizada" - label_wiki_toc: "Tabela de conteúdos" - label_wiki_toc_empty: "A Tabela de Conteúdo está vazia, pois nenhum cabeçalho está presente." - label_wiki_dont_show_menu_item: "Não mostrar esta página wiki na navegação do projeto" - label_wiki_edit: "Editar wiki" - label_wiki_edit_plural: "Edições de wiki" - label_wiki_page_attachments: "Anexos da página wiki" - label_wiki_page_id: "ID da página wiki" - label_wiki_navigation: "Navegação wiki" - label_wiki_page: "Página wiki" - label_wiki_page_plural: "Páginas wiki" - label_wiki_show_index_page_link: "Mostrar submenu 'Tabela de Conteúdos'" - label_wiki_show_menu_item: "Mostrar como item de menu de navegação do projeto" - label_wiki_show_new_page_link: "Mostrar o item de submenu 'Criar nova página filho'" - label_wiki_show_submenu_item: "Mostrar como item do submenu de " - label_wiki_start: "Página inicial" - label_work_package: "Pacote de trabalho" - label_work_package_attachments: "Anexos de pacote de trabalho" - label_work_package_category_new: "Nova categoria" - label_work_package_category_plural: "Categorias de pacote de trabalho" - label_work_package_hierarchy: "Hierarquia de pacotes de trabalho" - label_work_package_new: "Novo pacote de trabalho" - label_work_package_edit: "Editar pacote de trabalho %{name}" - label_work_package_plural: "Pacotes de trabalho" - label_work_package_status: "Situação do pacote de trabalho" - label_work_package_status_new: "Nova situação" - label_work_package_status_plural: "Situações do Pacote de Trabalho" - label_work_package_types: "Tipos de pacote de trabalho" - label_work_package_tracking: "Controle de pacote de trabalho" - label_work_package_view_all: "Exibir todos os pacotes de trabalho" - label_workflow: "Fluxo de Trabalho" - label_workflow_plural: "Fluxos de trabalho" - label_workflow_summary: "Sumário" - label_working_days: "Dias úteis" - label_x_closed_work_packages_abbr: - one: "1 fechado" - other: "%{count} fechados" - zero: "0 fechado" - label_x_comments: - one: "1 comentário" - other: "%{count} comentários" - zero: "sem comentários" - label_x_open_work_packages_abbr: - one: "1 aberto" - other: "%{count} abertos" - zero: "0 aberto" - label_x_work_packages: - one: "1 pacote de trabalho" - other: "%{count} pacotes de trabalho" - zero: "Nenhum pacote de trabalho" - label_x_projects: - one: "1 projeto" - other: "%{count} projetos" - zero: "sem projetos" - label_x_files: - one: "1 file" - other: "%{count} files" - zero: "no files" - label_yesterday: "ontem" - label_role_type: "Tipo" - label_member_role: "Função do projeto" - label_global_role: "Função global" - label_not_changeable: "(não modificável)" - label_global: "Global" - label_seeded_from_env_warning: Este registro foi criado por meio de uma configuração / ambiente variável. Ele não pode ser editado pela interface do usuário. - macro_execution_error: "Erro de execução da macro %{macro_name}" - macro_unavailable: "Macro %{macro_name} não pode ser exibida." - macros: - placeholder: "[Placeholder] Macro %{macro_name}" - errors: - missing_or_invalid_parameter: "Parâmetro de macro ausente ou inválido." - legacy_warning: - timeline: "Essa macro de cronograma legada foi removida e não está mais disponível. Você pode substituir a funcionalidade com uma macro da tabela embutida." - include_wiki_page: - removed: "A macro não existe mais." - wiki_child_pages: - errors: - page_not_found: "Não é possível encontrar a página wiki '%{name} '." - create_work_package_link: - errors: - no_project_context: "Chamando macro create_work_package_link fora do contexto do projeto." - invalid_type: "Nenhum tipo com o nome '%{type}' encontrado no projeto '%{project}'." - link_name: "Novo pacote de trabalho" - link_name_type: "Novo %{type_name}" - mail: - actions: "Ações" - digests: - including_mention_singular: "incluindo uma menção" - including_mention_plural: "incluindo %{number_mentioned} menções" - unread_notification_singular: "1 notificação não lida" - unread_notification_plural: "%{number_unread} notificações não lidas" - you_have: "Você possui" - logo_alt_text: "Logotipo" - mention: - subject: "%{user_name} mencionou você em #%{id} - %{subject}" - notification: - center: "Para o centro de notificação" - see_in_center: "Ver comentário no centro de notificações" - settings: "Alterar configurações de e-mail" - salutation: "Olá, %{user}!" - salutation_full_name: "Nome completo" - work_packages: - created_at: "Criado em %{timestamp} por %{user}" - login_to_see_all: "Faça o login para ver todas as notificações." - mentioned: "Você foi mencionado(a) em um comentário" - mentioned_by: "%{user} mencionou você em um comentário" - more_to_see: - one: "Há mais 1 pacote de trabalho com notificações." - other: "Há mais %{count} pacotes de trabalho com notificações." - open_in_browser: "Abrir no navegador" - reason: - watched: "Assistido" - assigned: "Atribuído" - responsible: "Responsável" - mentioned: "Mencionado" - shared: "Compartilhado" - subscribed: "todos" - prefix: "Recebido devido à configuração de notificação: %{reason}" - date_alert_start_date: "Alerta de data" - date_alert_due_date: "Alerta de data" - see_all: "Ver todas" - updated_at: "Atualizado em %{timestamp} por %{user}" - sharing: - work_packages: - allowed_actions: "Você pode %{allowed_actions} este pacote de trabalho. Isso pode mudar dependendo da sua função e permissões do projeto." - create_account: "Para acessar este pacote de trabalho, você terá que criar e ativar uma conta %{instance}. " - open_work_package: "Abrir pacote de trabalho" - subject: "O Pacote de trabalho #{id} foi compartilhado com você" - enterprise_text: "Compartilhe pacotes de trabalho com usuários que não são membros do projeto." - summary: - user: "%{user} compartilhou um pacote de trabalho com você com privilégios de %{role_rights}" - group: "%{user} compartilhou um pacote de trabalho com o grupo %{group} do qual você é membro" - mail_body_account_activation_request: "Um novo usuário (%{value}) registrou-se. A conta está aguardando sua aprovação:" - mail_body_account_information: "Suas informações de conta" - mail_body_account_information_external: "Você pode usar sua conta %{value} para logar." - mail_body_backup_ready: "Seu backup solicitado está pronto. Você pode baixá-lo aqui:" - mail_body_backup_token_reset_admin_info: O token de backup para o usuário %{user} foi redefinido. - mail_body_backup_token_reset_user_info: Seu token de backup foi redefinido. - mail_body_backup_token_info: O token anterior não é mais válido. - mail_body_backup_waiting_period: O novo token será habilitado em %{hours} horas. - mail_body_backup_token_warning: Se não foi você, acesse o OpenProject imediatamente e redefina-o novamente. - mail_body_incoming_email_error: O e-mail que você enviou para o OpenProject não pôde ser processado. - mail_body_incoming_email_error_in_reply_to: "Às %{received_at}, %{from_email} escreveu" - mail_body_incoming_email_error_logs: "Registros" - mail_body_lost_password: "Para alterar sua senha, clique no link a seguir:" - mail_password_change_not_possible: - title: "Não né possível alterar a senha" - body: "Sua conta em %{app_title} está conectada tada a um provedor de autenticação externo (%{name})." - subtext: "As senhas por conta externa não podem ser alteradas no aplicativo. Use o recurso de senha perdida de seu provedor de autenticação." - mail_body_register: "Bem-vindo ao %{app_title}. Por favor, ative sua conta clicando neste link:" - mail_body_register_header_title: "E-mail de convite a membro do projeto" - mail_body_register_user: "Prezado(a) %{name}," - mail_body_register_links_html: | - Fique à vontade para navegar por nosso canal do youtube (%{youtube_link}) onde fornecemos um webinário (%{webinar_link}) e vídeos de "Guia de introdução" (%{get_started_link}) para que você possa começar de forma simples a usar o OpenProject. -
- Se você tiver mais dúvidas, consulte nossa documentação (%{documentation_link}) ou entre em contato com seu administrador. - mail_body_register_closing: "Sua equipe do OpenProject" - mail_body_register_ending: "Fique ligado! Atenciosamente," - mail_body_reminder: "%{count} pacote(s) de trabalho foram atribuídos a você para os próximos %{days} dias:" - mail_body_group_reminder: '%{count} pacote(s) de trabalho que estão atribuídos ao grupo "%{group}" expiram nos próximos %{days} dias:' - mail_body_wiki_page_added: "A página wiki '%{id}' foi adicionada por %{author}." - mail_body_wiki_page_updated: "A página wiki '%{id}' foi atualizada por %{author}." - mail_subject_account_activation_request: "solicitação de ativação de conta %{value}" - mail_subject_backup_ready: "Seu backup está pronto" - mail_subject_backup_token_reset: "Redefinir token de backup" - mail_subject_incoming_email_error: "O e-mail que você enviou para o OpenProject não pôde ser processado." - mail_subject_lost_password: "Sua senha %{value}" - mail_subject_register: "Sua ativação de conta: %{value}" - mail_subject_wiki_content_added: "página de wiki '%{id}' foi adicionada" - mail_subject_wiki_content_updated: "página de wiki '%{id}' foi atualizada" - mail_member_added_project: - subject: "%{project} - Você foi adicionado como membro" - body: - added_by: - without_message: "%{user} adicionou você como membro do projeto '%{project}'." - with_message: "%{user} adicionou você como membro do projeto '%{project}' com a seguinte mensagem:" - roles: "Você tem os seguintes papéis:" - mail_member_updated_project: - subject: "%{project} - Seus papéis foram atualizados" - body: - updated_by: - without_message: "%{user} atualizou os papéis que você tem no projeto '%{project}'." - with_message: "%{user} atualizou os papéis que você tem no projeto '%{project}' com a seguinte mensagem:" - roles: "Agora você tem os seguintes papéis:" - mail_member_updated_global: - subject: "Suas permissões globais foram atualizadas" - body: - updated_by: - without_message: "%{user} atualizou os papéis que você tem globalmente." - with_message: "%{user} atualizou as funções que você tem globalmente com a seguinte mensagem:" - roles: "Agora você tem os seguintes papéis:" - mail_user_activation_limit_reached: - subject: Limite de ativação de usuários atingido - message: | - Um novo usuário (%{email}) tentou criar uma conta em um ambiente do OpenProject que você gerencia (%{host}). - O usuário não conseguiu ativar sua conta pois o limite máximo de usuários foi atingido. - steps: - label: "Para permitir que o usuário entre você pode: " - a: "Atualizar seu plano de pagamento ([here](upgrade_url))" #here turned into a link - b: "Bloquear ou excluir um usuário existente ([here](users_url))" #here turned into a link - more_actions: "Mais funções" - noscript_description: "Você precisa ativar o JavaScript para usar o OpenProject!" - noscript_heading: "JavaScript desativado" - noscript_learn_more: "Saiba mais" - notice_accessibility_mode: O modo de acessibilidade pode ser habilitado em sua [account settings](url). - notice_account_activated: "Sua conta foi ativada. Agora você pode se conectar." - notice_account_already_activated: A conta já está ativada. - notice_account_invalid_token: Token de ativação inválido - notice_account_invalid_credentials: "Usuário ou senha inválidos" - notice_account_invalid_credentials_or_blocked: "Usuário ou senha inválido ou a conta está bloqueada devido a várias tentativas de login. Se for assim, será desbloqueado automaticamente em um curto espaço de tempo." - notice_account_lost_email_sent: "Um e-mail com instruções para escolher uma nova senha foi enviado para você." - notice_account_new_password_forced: "Uma nova senha é necessária." - notice_account_password_expired: "Sua senha expirou após %{days} dias. Por favor, defina uma nova." - notice_account_password_updated: "Senha foi atualizada com êxito." - notice_account_pending: "Sua conta foi criada e está pendente de aprovação de administrador." - notice_account_register_done: "A conta foi criada com sucesso. Para ativar sua conta, clique no link que foi enviado a você." - notice_account_unknown_email: "Usuário desconhecido." - notice_account_update_failed: "Configuração da conta não pode ser salva. Por favor, verifique na página de sua conta." - notice_account_updated: "Conta foi atualizada com sucesso." - notice_account_other_session_expired: "Todas as outras sessões vinculadas à sua conta foram invalidadas." - notice_account_wrong_password: "Senha incorreta" - notice_account_registered_and_logged_in: "Bem-vindo, sua conta foi ativada. Agora você está conectado." - notice_activation_failed: A conta não pôde ser ativada. - notice_auth_stage_verification_error: "Não foi possível verificar o estágio '%{stage}'." - notice_auth_stage_wrong_stage: "Esperava-se que terminasse o estágio de autenticação '%{expected}', mas retornou '%{actual}'." - notice_auth_stage_error: "Estágio de autenticação '%{stage}' falhou." - notice_can_t_change_password: "Esta conta usa autenticação externa. Impossível alterar a senha neste modo." - notice_custom_options_deleted: "A opção '%{option_value}' e suas %{num_deleted} ocorrências foram excluídas." - notice_email_error: "Ocorreu um erro ao enviar o e-mail (%{value})" - notice_email_sent: "Um e-mail foi enviado para %{value}" - notice_failed_to_save_work_packages: "Falha ao salvar %{count} pacote(s) de trabalho de um total de %{total} selecionado: %{ids}." - notice_failed_to_save_members: "Falha ao salvar o(s) membro(s): %{errors}." - notice_deletion_scheduled: "A exclusão foi planejada e foi realizada de forma assíncrona." - notice_file_not_found: "A página que você estava tentando acessar não existe ou foi removida." - notice_forced_logout: "Você foi automaticamente desconectado após %{ttl_time} minutos de inatividade." - notice_internal_server_error: "Ocorreu um erro na página que você está tentando acessar. Se você continuar a ter problemas, por favor contate o %{app_title} administrador para obter assistência." - notice_work_package_done_ratios_updated: "% totalmente atualizado" - notice_locking_conflict: "Informação foi atualizada por pelo menos um outro usuário." - notice_locking_conflict_additional_information: "A(s) atualização(ões) chegaram de %{users}." - notice_locking_conflict_reload_page: "Por favor, recarregue a página, reveja as alterações e aplique novamente suas atualizações." - notice_member_added: '%{name} adicionado ao projeto.' - notice_members_added: Adicionados %{number} usuários ao projeto. - notice_member_removed: "%{user} removido do projeto." - notice_member_deleted: "%{user} foi removido do projeto e excluído." - notice_no_principals_found: "Nenhum resultado encontrado." - notice_bad_request: "Requisição Inválida." - notice_not_authorized: "Você não está autorizado a acessar esta página." - notice_not_authorized_archived_project: "O projeto que você está tentando acessar foi arquivado." - notice_password_confirmation_failed: "Sua senha não está correta. Não é possível continuar." - notice_principals_found_multiple: "Existe(m) %{number} resultado(s) encontrado(s).\nTecle tab para ir ao primeiro resultado." - notice_principals_found_single: "Existe um resultado. Tecle tab para ir para ele." - notice_project_not_deleted: "O projeto não foi excluído." - notice_successful_connection: "Conectado com sucesso." - notice_successful_create: "Criado com sucesso." - notice_successful_delete: "Exclusão bem sucedida." - notice_successful_update: "Atualizado com sucesso." - notice_successful_update_custom_fields_added_to_project: | - Atualização bem-sucedida. Os campos personalizados dos tipos ativados são ativados automaticamente - no formulário do pacote de trabalho. Ver mais. - notice_successful_update_custom_fields_added_to_type: | - Atualização bem-sucedida. Os campos personalizados ativos são ativados automaticamente para os projetos associados deste tipo - notice_to_many_principals_to_display: "Existem muitos resultados. Reduza a busca, digitando o nome do novo membro (ou grupo)." - notice_user_missing_authentication_method: Usuário ainda tem que escolher uma senha ou outra maneira de acesso. - notice_user_invitation_resent: Um convite foi enviado para %{email}. - present_access_key_value: "Seu %{key_name} é: %{value}" - notice_automatic_set_of_standard_type: "Defina o tipo padrão automaticamente." - notice_logged_out: "Você foi desconectado." - notice_wont_delete_auth_source: A conexão LDAP não pode ser excluída, enquanto ainda há usuários a utilizando. - notice_project_cannot_update_custom_fields: "Você não pode atualizar campos personalizados disponíveis do projeto. O projeto é inválido: %{errors}" - notice_attachment_migration_wiki_page: > - Esta página foi gerada automaticamente durante a atualização do OpenProject. Ela contém todos os anexos anteriormente associados a %{container_type} "%{container_name}". - #Default format for numbers - number: - format: - delimiter: "" - precision: 3 - separator: "." - human: - format: - delimiter: "" - precision: 1 - storage_units: - format: "%n %u" - units: - byte: - one: "Byte" - other: "Bytes" - gb: "GB" - kb: "kB" - mb: "MB" - tb: "TB" - onboarding: - heading_getting_started: "Obter visão geral" - text_getting_started_description: "Obtenha uma visão geral da gestão de projetos e colaboração entre equipes com o OpenProject. Você pode assistir este vídeo novamente no menu de ajuda." - welcome: "Bem-vindo ao %{app_title}" - select_language: "Por favor, selecione seu idioma" - permission_add_work_package_notes: "Adicionar anotações" - permission_add_work_packages: "Adicionar pacotes de trabalho" - permission_add_messages: "Postar mensagens" - permission_add_project: "Criar projetos" - permission_add_work_package_attachments: "Adicionar anexos" - permission_add_work_package_attachments_explanation: "Permite adicionar anexos sem permissão de edição de pacotes de trabalho" - permission_archive_project: "Arquivar projeto" - permission_create_user: "Criar usuários" - permission_manage_user: "Editar usuários" - permission_manage_placeholder_user: "Criar, editar e excluir usuários do espaço reservado" - permission_add_subprojects: "Criar subprojetos" - permission_add_work_package_watchers: "Adicionar observadores" - permission_assign_versions: "Atribuir versões" - permission_browse_repository: "Acesso somente leitura ao repositório (browse e check-out)" - permission_change_wiki_parent_page: "Alterar página pai da wiki" - permission_change_work_package_status: "Alterar status do pacote de trabalho" - permission_change_work_package_status_explanation: "Permite alterar o status sem permissão para Editar pacotes de trabalho" - permission_comment_news: "Comentar notícias" - permission_commit_access: "Acesso de leitura/gravação para o repositório (commit)" - permission_copy_projects: "Copiar projetos" - permission_copy_work_packages: "Copiar pacotes de trabalho" - permission_create_backup: "Criar backups" - permission_delete_work_package_watchers: "Excluir observadores" - permission_delete_work_packages: "Excluir pacotes de trabalho" - permission_delete_messages: "Excluir mensagens" - permission_delete_own_messages: "Apagar as próprias mensagens" - permission_delete_reportings: "Excluir relatórios" - permission_delete_timelines: "Excluir cronogramas" - permission_delete_wiki_pages: "Excluir páginas wiki" - permission_delete_wiki_pages_attachments: "Excluir anexos" - permission_edit_work_package_notes: "Editar anotações" - permission_edit_work_packages: "Editar pacotes de trabalho" - permission_edit_messages: "Editar mensagens" - permission_edit_own_work_package_notes: "Editar as próprias anotações" - permission_edit_own_messages: "Editar as próprias mensagens" - permission_edit_own_time_entries: "Editar os próprios registros de tempo" - permission_edit_project: "Editar projeto" - permission_edit_reportings: "Editar relatórios" - permission_edit_time_entries: "Editar registro de hora para outros usuários" - permission_edit_timelines: "Editar cronogramas" - permission_edit_wiki_pages: "Editar páginas wiki" - permission_export_work_packages: "Exportar pacotes de trabalho" - permission_export_wiki_pages: "Exportar páginas wiki" - permission_list_attachments: "Lista de anexos" - permission_log_own_time: "Registrar própria hora" - permission_log_time: "Registrar hora para outros usuários" - permission_manage_forums: "Gerenciar fóruns" - permission_manage_categories: "Gerenciar categorias de pacote de trabalho" - permission_manage_dashboards: "Gerenciar painéis" - permission_manage_work_package_relations: "Gerenciar relações de pacote de trabalho" - permission_manage_members: "Gerenciar membros" - permission_manage_news: "Administrar notícias" - permission_manage_project_activities: "Gerenciar atividades do projeto" - permission_manage_public_queries: "Gerenciar visões públicas" - permission_manage_repository: "Gerenciar repositório" - permission_manage_subtasks: "Gerenciar hierarquias dos pacotes de trabalho" - permission_manage_versions: "Gerenciar versões" - permission_manage_wiki: "Gerenciar wiki" - permission_manage_wiki_menu: "Gerenciar menu da wiki" - permission_move_work_packages: "Mover pacotes de trabalho" - permission_protect_wiki_pages: "Proteger páginas wiki" - permission_rename_wiki_pages: "Renomear páginas wiki" - permission_save_queries: "Salvar visões" - permission_search_project: "Buscar projeto" - permission_select_custom_fields: "Selecionar campos personalizados" - permission_select_project_modules: "Selecionar módulos do projeto" - permission_share_work_packages: "Compartilhar pacotes de trabalho" - permission_manage_types: "Selecionar tipos" - permission_view_project: "Visualizar projetos" - permission_view_changesets: "Revisões do repositório vistas no OpenProject" - permission_view_commit_author_statistics: "Ver estatísticas de commits do autor" - permission_view_dashboards: "Visualizar painéis" - permission_view_work_package_watchers: "Visualizar lista de observadores" - permission_view_work_packages: "Ver pacotes de trabalho" - permission_view_messages: "Visualizar mensagens" - permission_view_news: "Visualizar notícias" - permission_view_members: "Visualizar membros" - permission_view_reportings: "Ver relatórios" - permission_view_shared_work_packages: "Ver pacotes de trabalho compartilhado" - permission_view_time_entries: "Ver tempo gasto" - permission_view_timelines: "Ver cronogramas" - permission_view_wiki_edits: "Ver histórico do wiki" - permission_view_wiki_pages: "Ver wiki" - permission_work_package_assigned: "Torne-se responsável" - permission_work_package_assigned_explanation: "Pacotes de trabalho podem ser atribuídos a usuários e grupos em posse deste papel no respectivo projeto" - permission_view_project_activity: "Visualizar a atividade do projeto" - permission_save_bcf_queries: "Salvar consultas a BCF" - permission_manage_public_bcf_queries: "Gerenciar consultas públicas a BCF" - permission_edit_attribute_help_texts: "Editar textos de ajuda do atributos" - placeholders: - default: "-" - project: - destroy: - confirmation: "Se você continuar, o projeto %{identifier} será destruído de forma permanente. Para confirmar esta ação, insira o nome do projeto no campo abaixo:" - project_delete_result_1: "Excluir todos os dados relacionados." - project_delete_result_2: "Excluir todas as pastas de projetos nos armazenamentos anexados." - info: "Excluir o projeto é uma ação irreversível." - project_verification: "Digite o nome do projeto %{name} para verificar a exclusão." - subprojects_confirmation: "Seu(s) subprojeto(s): %{value} também será(ão) excluído(s)." - title: "Excluir o projeto %{name}" - identifier: - warning_one: Membros do projeto terão que realocar os repositórios do projeto. - warning_two: Links existentes para o projeto deixarão de funcionar. - title: Alterar o identificador do projeto - template: - copying: > - Seu projeto está sendo criado a partir do modelo selecionado. Você será notificado por e-mail assim que o projeto estiver disponível. - use_template: "Usar modelo" - make_template: "Definir como modelo" - remove_from_templates: "Remover dos modelos" - archive: - are_you_sure: "Tem certeza de que deseja arquivar o projeto '%{name}'?" - archived: "Arquivado" - project_module_activity: "Atividade" - project_module_forums: "Fóruns" - project_module_work_package_tracking: "Pacotes de trabalho" - project_module_news: "Notícias" - project_module_repository: "Repositório" - project_module_wiki: "Wiki" - permission_header_for_project_module_work_package_tracking: "Work packages and Gantt charts" - query: - attribute_and_direction: "%{attribute} (%{direction})" - #possible query parameters (e.g. issue queries), - #which are not attributes of an AR-Model. - query_fields: - active_or_archived: "Ativo ou arquivado" - assigned_to_role: "Atribuído ao papel" - assignee_or_group: "Responsável ou grupo" - member_of_group: "Atribuído ao grupo" - name_or_identifier: "Nome ou identificador" - only_subproject_id: "Apenas subprojeto" - shared_with_user: "Compartilhado com o usuário" - shared_with_me: "Shared with me" - subproject_id: "Incluindo Subprojeto" - repositories: - at_identifier: "em %{identifier}" - atom_revision_feed: "Revisão de atom feed" - autofetch_information: "Marque isto se quiser que os repositórios sejam atualizados automaticamente ao acessar a página do módulo de repositório. Isto engloba a recuperação de commits do repositório e a atualização do espaço em disco necessário." - checkout: - access: - readwrite: "Leitura e gravação" - read: "Somente leitura" - none: "Sem acesso de check-out, você só pode exibir o repositório através desta aplicação." - access_permission: "Suas permissões neste repositório" - url: "URL de check-out" - base_url_text: "A raiz do URL a ser usada para gerar URLs de check-out (ex.: https://myserver.example.org/repos/). \nNota: A raiz do URL é usada somente para reescrever URLs de check-out em repositórios gerenciados. Outros repositórios não são alterados." - default_instructions: - git: |- - Os dados contidos neste repositório podem ser baixados para o seu computador com o Git. - Por favor, consulte a documentação do Git se precisar de mais informações sobre o procedimento de check-out e clientes disponíveis. - subversion: |- - Os dados contidos neste repositório podem ser baixados para o seu computador com o Subversion. - Por favor, consulte a documentação do Subversion se precisar de mais informações sobre o procedimento de check-out e clientes disponíveis. - enable_instructions_text: "Exibe instruções de check-out definidas abaixo em todas as páginas relacionadas ao repositório." - instructions: "Instruções de check-out" - show_instructions: "Exibir as instruções de check-out" - text_instructions: "Este texto é exibido junto com o URL de check-out para orientações sobre como efetuar o check-out do repositório." - not_available: "Instruções de check-out não estão definidas para este repositório. Peça ao seu administrador para habilitá-los para este repositório nas configurações do sistema." - create_managed_delay: "Atenção: O repositório é gerenciado, ele será criado de forma assíncrona no disco e estará disponível em breve." - create_successful: "O repositório foi registrado." - delete_sucessful: "O repositório foi excluído." - destroy: - confirmation: "Se você continuar, irá excluir permanentemente o repositório gerenciado." - info: "Excluir o repositório é uma ação irreversível." - info_not_managed: "Nota: Isto NÃO irá excluir o conteúdo deste repositório, pois não é gerenciado pelo OpenProject." - managed_path_note: "Será apagado o seguinte diretório: %{path}" - repository_verification: "Digite o identificador do projeto %{identifier} para verificar a exclusão de seu repositório." - subtitle: "Você quer realmente excluir o %{repository_type} do projeto %{project_name}?" - subtitle_not_managed: "Você quer realmente remover o %{repository_type} %{url} vinculado do projeto %{project_name}?" - title: "Excluir o %{repository_type}" - title_not_managed: "Remover o %{repository_type} vinculado?" - errors: - build_failed: "Não é possível criar o repositório com a configuração selecionada. %{reason}" - managed_delete: "Não é possível excluir o repositório gerenciado." - managed_delete_local: "Não é possível excluir o repositório local no sistema de arquivos em '%{path}': %{error_message}" - empty_repository: "O repositório existe, mas está vazio. Ele ainda não contém quaisquer revisões." - exists_on_filesystem: "O diretório do repositório já existe no sistema de arquivos." - filesystem_access_failed: "Ocorreu um erro ao acessar o repositório no sistema de arquivos: %{message}" - not_manageable: "Este tipo de repositório não pode ser gerenciado pelo OpenProject." - path_permission_failed: "Ocorreu um erro ao tentar criar o seguinte caminho: %{path}. Por favor, certifique-se de que o OpenProject pode escrever nesta pasta." - unauthorized: "Você não está autorizado a acessar o repositório ou as credenciais são inválidas." - unavailable: "O repositório está indisponível." - exception_title: "Não é possível acessar o repositório: %{message}" - disabled_or_unknown_type: "O tipo %{type} está desabilitado ou não está mais disponível para o fornecedor %{vendor} de SCM." - disabled_or_unknown_vendor: "O tipo de SCM %{vendor} está desabilitado ou não está mais disponível." - remote_call_failed: "Falha ao chamar o comando gerenciado com messagem '%{message}' (Código: %{code})" - remote_invalid_response: "Recebida uma resposta inválida do comando gerenciado." - remote_save_failed: "Não foi possível salvar o repositório com os parâmetros obtidos remotamente." - git: - instructions: - managed_url: "Este é o URL do repositório Git gerenciado (local)." - path: >- - Especifique o caminho para seu repositório Git local (por exemplo, %{example_path}). Você também pode usar repositórios remotos que são clonados para uma cópia local usando um valor começando com http (s) :// ou file://. - path_encoding: "Sobreescrever a codificação do Git (padrão: UTF-8)" - local_title: "Ligação existente repositório Git local" - local_url: "URL local" - local_introduction: "Se você tem um repositório Git local, você pode vinculá-lo com OpenProject para acessá-lo de dentro do aplicativo." - managed_introduction: "Deixe OpenProject criar e integrar um repositório Git local automaticamente." - managed_title: "Repositório Git integrado ao OpenProject" - managed_url: "URL gerenciado" - path: "Caminho para o repositório Git" - path_encoding: "Codificação do caminho" - go_to_revision: "Ir para revisão" - managed_remote: "Repositórios gerenciados deste fornecedor são manipulados remotamente." - managed_remote_note: "Informações sobre o URL e o caminho deste repositório não estão disponíveis antes da sua criação." - managed_url: "URL gerenciada" - settings: - automatic_managed_repos_disabled: "Desativar criação automática" - automatic_managed_repos: "Criação automática de repositórios gerenciados" - automatic_managed_repos_text: "Definindo um fornecedor aqui, novos projetos receberão automaticamente um repositório gerenciado deste fornecedor." - scm_vendor: "Sistema de gerenciamento de controle de fontes" - scm_type: "Tipo de repositório" - scm_types: - local: "Vincular o repositório local existente" - existing: "Vincular o repositório existente" - managed: "Criar novo repositório no OpenProject" - storage: - not_available: "Consumo de armazenamento em disco não está disponível para este repositório." - update_timeout: "Manter as últimas informações de espaço em disco necessário para um repositório por N minutos. Como contar o espaço em disco necessário de um repositório pode ser custoso, aumente este valor para reduzir o impacto no desempenho." - oauth_application_details: "O valor secreto do cliente não poderá ser acessado novamente após esta janela ser fechada. Copie estes valores nas configurações de Integração do Nextcloud OpenProject:" - oauth_application_details_link_text: "Ir para a página de configurações" - setup_documentation_details: "Se você precisar de ajuda para configurar um novo armazenamento de arquivos, confira a documentação:" - setup_documentation_details_link_text: "Configuração de armazenamento" - show_warning_details: "Para usar este armazenamento de arquivos, lembre-se de ativar o módulo e o armazenamento específico nas configurações de projeto de cada projeto desejado." - subversion: - existing_title: "Repositório Subversion existente" - existing_introduction: "Se você tem um repositório Subversion, você pode vinculá-lo com o OpenProject para acessá-lo de dentro do aplicativo." - existing_url: "URL existente" - instructions: - managed_url: "Este é o URL do repositório Subversion gerenciado (local)." - url: "Digite o URL do repositório. Você pode apontar para um repositório local (começando com %{local_proto}) ou um repositório remoto. \nSão suportados os seguintes esquemas de URL:" - managed_title: "Repositório do Subversion integrado ao OpenProject" - managed_introduction: "Deixe OpenProject criar e integrar um repositório Subversion local automaticamente." - managed_url: "URL gerenciada" - password: "Senha do repositório" - username: "Nome de usuário do repositório" - truncated: "Pedimos desculpa, mas tivemos que truncar este diretório em %{limit} arquivos. %{truncated} entradas foram omitidas da lista." - named_repository: "repositório %{vendor_name}" - update_settings_successful: "As configurações foram atualizadas com sucesso." - url: "URL para repositório" - warnings: - cannot_annotate: "Este arquivo não pode ser anotado." - scheduling: - activated: "ativado" - deactivated: "desativado" - search_input_placeholder: "Pesquisar..." - setting_apiv3_cors_enabled: "Habilitar CORS" - setting_apiv3_cors_origins: "Cross-Origin Resource Sharing (CORS) permitidos pela API V3" - setting_apiv3_cors_origins_text_html: > - Se o CORS estiver habilitado, essas são as origens que têm permissão para acessar a API OpenProject.
Por favor, verifique a documentação na header da Origin sobre como especificar os valores esperados. - setting_apiv3_max_page_size: "Tamanho máximo da página de API" - setting_apiv3_max_page_instructions_html: > - Defina o tamanho máximo de página com o qual a API responderá. Não será possível realizar solicitações de API que retornem mais valores em uma única página.
Aviso: Somente altere este valor se tiver certeza do motivo de sua necessidade. Definir um valor alto resultará em impactos significativos no desempenho, enquanto um valor menor que as opções por página causará erros nas visualizações paginadas. - setting_apiv3_docs: "Documentação" - setting_apiv3_docs_enabled: "Habilitar página de documentos" - setting_apiv3_docs_enabled_instructions_html: > - Se a página de documentos estiver habilitada, você pode obter uma visão interativa da documentação APIv3 em %{link}. - setting_attachment_whitelist: "Lista de permissões de envio de anexos " - setting_email_delivery_method: "Método de entrega de e-mail" - setting_emails_salutation: "Dirigir-se ao usuário nos e-mails com" - setting_sendmail_location: "Localização do executável do sendmail" - setting_smtp_enable_starttls_auto: "Automaticamente usar STARTTLS, se disponível" - setting_smtp_ssl: "Usar conexão SSL" - setting_smtp_address: "Servidor SMTP" - setting_smtp_port: "Porta SMTP" - setting_smtp_authentication: "Autenticação SMTP" - setting_smtp_user_name: "Usuário SMTP" - setting_smtp_password: "Senha SMTP" - setting_smtp_domain: "Domínio SMTP HELO" - setting_activity_days_default: "Dias exibidos na atividade de projeto" - setting_app_subtitle: "Subtítulo do aplicativo" - setting_app_title: "Título da aplicação" - setting_attachment_max_size: "Tamanho máximo dos anexos" - setting_antivirus_scan_mode: "Scan mode" - setting_antivirus_scan_action: "Infected file action" - setting_autofetch_changesets: "Busca automática de alterações no repositório" - setting_autologin: "Entrar automaticamente" - setting_available_languages: "Idiomas disponíveis" - setting_bcc_recipients: "Destinatários em cópia oculta (Cco)" - setting_brute_force_block_after_failed_logins: "Bloquear usuário após este número de tentativas de login" - setting_brute_force_block_minutes: "Tempo que o usuário ficará bloqueado" - setting_cache_formatted_text: "Texto formatado em cache" - setting_use_wysiwyg_description: "Selecione para habilitar o CKEditor5 para todos os usuários por padrão. O CKEditor tem funcionalidades limitadas para o GFM Markdown." - setting_column_options: "Default work package lists columns" - setting_commit_fix_keywords: "Palavras-chave de correção" - setting_commit_logs_encoding: "Codificação das mensagens de commit" - setting_commit_logtime_activity_id: "Atividades durante o tempo conectado" - setting_commit_logtime_enabled: "Habilitar registro do tempo" - setting_commit_ref_keywords: "Palavras-chave de referência" - setting_consent_time: "Data de consentimento" - setting_consent_info: "Texto de informações de consentimento" - setting_consent_required: "Consentimento necessário" - setting_consent_decline_mail: "E-mail de contato do consentimento" - setting_cross_project_work_package_relations: "Permitir relacionamento entre pacotes de trabalho de diferentes projetos" - setting_first_week_of_year: "A primeira semana no ano contém" - setting_date_format: "Data" - setting_default_language: "Idioma padrão" - setting_default_projects_modules: "Módulos habilitados por padrão para novos projetos" - setting_default_projects_public: "Novos projetos são públicos por padrão" - setting_diff_max_lines_displayed: "Número máximo de linhas diferentes exibidas" - setting_display_subprojects_work_packages: "Exibir pacotes de trabalho de subprojetos no projeto principal por padrão" - setting_emails_footer: "Rodapé de e-mails" - setting_emails_header: "Cabeçalho de e-mails" - setting_email_login: "Usar e-mail como login" - setting_enabled_scm: "SCM habilitado" - setting_enabled_projects_columns: "Columns in a projects list displayed by default" - setting_feeds_enabled: "Habilitar Feeds" - setting_ical_enabled: "Habilitar assinaturas do iCalendar" - setting_feeds_limit: "Limite de conteúdo de feed" - setting_file_max_size_displayed: "Tamanho máximo de arquivos de texto exibidos em linha" - setting_host_name: "Nome do servidor" - setting_invitation_expiration_days: "E-mail de ativação expira após" - setting_work_package_done_ratio: "Calcular % de conclusão do pacote de trabalho" - setting_work_package_done_ratio_field: "O campo de pacote de trabalho" - setting_work_package_done_ratio_status: "O estado do pacote de trabalho" - setting_work_package_done_ratio_disabled: "Desativar (ocultar o campo % de conclusão)" - setting_work_package_properties: "Propriedades do pacote de trabalho" - setting_work_package_startdate_is_adddate: "Usar a data atual como data para início dos novos pacotes de trabalho" - setting_work_packages_projects_export_limit: "Limite de exportação de pacote de trabalho / projetos" - setting_journal_aggregation_time_minutes: "Ações do usuário agregadas em" - setting_log_requesting_user: "Registrar início de sessão do usuário, nome e endereço de e-mail para todas as requisições" - setting_login_required: "Autenticação requerida" - setting_mail_from: "Endereço de e-mail de saída" - setting_mail_handler_api_key: "Chave API" - setting_mail_handler_body_delimiters: "Truncar e-mails depois de uma dessas linhas" - setting_mail_handler_body_delimiter_regex: "Truncar e-mails correspondentes a esta expressão regular" - setting_mail_handler_ignore_filenames: "Anexos de e-mail ignorados" - setting_new_project_user_role_id: "Papel dado a um usuário não administrador que cria um projeto" - setting_password_active_rules: "Caracteres válidos" - setting_password_count_former_banned: "Número de senhas usadas mais recentemente banidas para reutilização" - setting_password_days_valid: "Número de dias antes de exigir alteração de senha" - setting_password_min_length: "Tamanho mínimo" - setting_password_min_adhered_rules: "Número mínimo de classes de caracteres obrigatórias" - setting_per_page_options: "Opções de objetos por página" - setting_plain_text_mail: "Mensagens de texto simples (sem HTML)" - setting_protocol: "Protocolo" - setting_project_gantt_query: "Visualização Gantt do portfólio de projetos" - setting_project_gantt_query_text: "Você pode modificar a consulta que é usada para exibir o gráfico Gantt da página de visão geral do projeto." - setting_security_badge_displayed: "Exibir distintivo de segurança" - setting_registration_footer: "Rodapé de registro" - setting_repositories_automatic_managed_vendor: "Tipo de fornecedor de repositório automático" - setting_repositories_encodings: "Codificações dos repositórios" - setting_repository_authentication_caching_enabled: "Ativar armazenamento em cache para solicitação de autenticação do software de controle de versão" - setting_repository_storage_cache_minutes: "Tamanho do cache em disco para o repositório" - setting_repository_checkout_display: "Mostrar instruções de check-out" - setting_repository_checkout_base_url: "URL raiz de check-out" - setting_repository_checkout_text: "Texto de instrução de check-out" - setting_repository_log_display_limit: "Número máximo de revisões exibido no arquivo de log" - setting_repository_truncate_at: "Número máximo de arquivos exibidos no navegador de repositório" - setting_rest_api_enabled: "Habilitar serviço REST" - setting_self_registration: "Auto-registro" - setting_session_ttl: "Tempo de expiração de sessão após inatividade" - setting_session_ttl_hint: "Valor abaixo de 5 funciona como desativado" - setting_session_ttl_enabled: "Sessão expira" - setting_start_of_week: "A semana começa em" - setting_sys_api_enabled: "Habilitar o serviço web de gerenciamento de repositório" - setting_sys_api_description: "O serviço de web de gerenciamento de repositório fornece integração e autorização de usuário para acessar repositórios." - setting_time_format: "Horário" - setting_accessibility_mode_for_anonymous: "Ativar o modo de acessibilidade para usuários anônimos" - setting_user_format: "Formato do nome de usuário" - setting_user_default_timezone: "Fuso horário padrão" - setting_users_deletable_by_admins: "Contas de usuário podem ser excluídas pelos administradores" - setting_users_deletable_by_self: "Usuários podem excluir suas contas" - setting_welcome_text: "Texto do bloco de boas-vindas" - setting_welcome_title: "Título do bloco de boas-vindas" - setting_welcome_on_homescreen: "Exibir bloco de boas-vindas na tela inicial" - setting_work_package_list_default_highlighting_mode: "Modo de destaque padrão" - setting_work_package_list_default_highlighted_attributes: "Atributos embutidos com destaque padrão" - setting_working_days: "Dias úteis" - settings: - attachments: - whitelist_text_html: > - Defina uma lista de extensões de arquivo válidas e/ou tipos MIME para arquivos carregados.
Insira as extensões de arquivo (e.x., %{ext_example}) ou tipos de mime (e.x., %{mime_example}).
Deixe em branco para permitir que qualquer tipo de arquivo seja carregado. Vários valores permitidos (uma linha para cada valor). - antivirus: - title: "Virus scanning" - clamav_ping_failed: "Failed to connect the the ClamAV daemon. Double-check the configuration and try again." - remaining_quarantined_files_html: > - Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} - remaining_scan_complete_html: > - Remaining files have been scanned. There are %{file_count} in quarantine. You are being redirected to the quarantine page. Use this page to delete or override quarantined files. - remaining_rescanned_files: > - Virus scanning has been enabled successfuly. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. - upsale: - description: "Ensure uploaded files in OpenProject are scanned for viruses before being accessible by other users." - actions: - delete: "Delete the file" - quarantine: "Quarantine the file" - instructions_html: > - Select the action to perform for files on which a virus has been detected:
- modes: - clamav_socket_html: Enter the socket to the clamd daemon, e.g., %{example} - clamav_host_html: Enter the hostname and port to the clamd daemon separated by colon. e.g., %{example} - description_html: > - Select the mode in which the antivirus scanner integration should operate.
- brute_force_prevention: "Bloqueio automatizado de usuário" - date_format: - first_date_of_week_and_year_set: > - Se a opção "%{day_of_week_setting_name}" ou "%{first_week_setting_name}" for definida, a outra também deve ser definida, para evitar inconsistências no front-end. - first_week_of_year_text_html: > - Selecione a data de janeiro que está contida na primeira semana do ano. Este valor, juntamente com o primeiro dia da semana, determina o número total de semanas num ano. Para obter mais informações, consulte nossa documentação sobre este tema. - experimental: - save_confirmation: Cuidado! Risco de perda de dados! Ative apenas recursos experimentais se não se importar em quebrar sua instalação do OpenProject e perder todos os seus dados. - warning_toast: Sinalizadores de recursos são configurações que ativam recursos que ainda estão em desenvolvimento. Eles só serão utilizados para fins de teste e nunca serão ativados nas instalações do OpenProject que possuem dados importantes. Estes recursos muito provavelmente irão corromper seus dados. Use-os por sua conta e risco. - feature_flags: Sinalizadores de recursos - general: "Geral" - highlighting: - mode_long: - inline: "Destacar atributo(s) embutido(s)" - none: "Sem destaque" - status: "Toda a linha por Situação" - type: "Toda linha por Tipo" - priority: "Toda linha por Prioridade" - icalendar: - enable_subscriptions_text_html: Permite aos usuários, com as permissões necessárias, assinar calendários do OpenProject e acessar as informações do pacote de trabalho através de um cliente de calendário externo. Nota: Leia sobre assinaturas iCalendar para entender os potenciais riscos de segurança antes de habilitá-las. - language_name_being_default: "%{language_name} (padrão)" - notifications: - events_explanation: "Governa para qual evento um e-mail é enviado. Como as notificações de pacotes de trabalhos podem ser configuradas especificamente para todos os usuários, eles são excluídos desta lista." - delay_minutes_explanation: "O envio de e-mail pode ser atrasado para permitir que os usuários com a notificação configurada no aplicativo confirmem a notificação dentro da aplicação antes que o e-mail seja enviado. Usuários que lerem uma notificação no aplicativo não receberão um e-mail dessa mesma notificação" - other: "Outro" - passwords: "Senhas" - projects: - missing_dependencies: "Módulo de projeto %{module} foi verificado e depende de %{dependencies}. Você também precisa verificar estas dependências." - section_new_projects: "Configurações para novos projetos" - section_project_overview: "Settings for project lists" - session: "Sessão" - user: - default_preferences: "Preferências padrão" - display_format: "Formato de exibição" - deletion: "Exclusão" - working_days: - section_work_week: "Semana de trabalho" - section_holidays_and_closures: "Feriados e fechamentos" - text_formatting: - markdown: "Markdown" - plain: "Texto simples" - status_active: "ativo" - status_archived: "arquivado" - status_blocked: "bloqueado" - status_invited: convidado - status_locked: bloqueado - status_registered: registrado - #Used in array.to_sentence. - support: - array: - sentence_connector: "e" - skip_last_comma: "falso" - text_accessibility_hint: "O modo de acessibilidade foi projetado para usuários cegos, deficientes físicos ou que possuem uma visão ruim. Para este último, os elementos em foco são especialmente destacados. Observe que o módulo Backlogs não está disponível neste modo." - text_access_token_hint: "Tokens de acesso permitem que você conceda acesso de aplicativos externos a recursos no OpenProject." - text_analyze: "Analisar mais: %{subject}" - text_are_you_sure: "Você tem certeza?" - text_are_you_sure_continue: "Tem certeza de que deseja continuar?" - text_are_you_sure_with_children: "Excluir o pacote de trabalho e todos os pacotes de trabalho filhos?" - text_assign_to_project: "Atribuir ao projeto" - text_form_configuration: > - Você pode personalizar quais campos serão exibidos em formulários de pacote de trabalho. Livremente, você pode agrupar os campos para refletir as necessidades para o seu domínio. - text_form_configuration_required_attribute: "O atributo está marcado como obrigatório, logo ele será sempre mostrado" - text_caracters_maximum: "%{count} caracteres no máximo." - text_caracters_minimum: "Deve ter pelo menos %{count} caracteres." - text_comma_separated: "Vários valores permitidos (separados por vírgula)." - text_comment_wiki_page: "Comentário na página wiki: %{page}" - text_custom_field_possible_values_info: "Uma linha para cada valor" - text_custom_field_hint_activate_per_project: > - Quando utilizar campos personalizados: lembre-se de que os campos personalizados precisam ser ativados também por projeto. - text_custom_field_hint_activate_per_project_and_type: > - Os campos personalizados precisam ser ativados por tipo de pacote de trabalho e por projeto. - text_wp_status_read_only_html: > - A edição Enterprise (Edição corporative) conta com estes complemento adicionais para os campos personalizados dos pacotes de trabalho:
- text_project_custom_field_html: > - A edição Enterprise (Edição corporativa) contará com estes complementos adicionais para campos personalizados dos Projetos:
- text_custom_logo_instructions: > - Recomenda-se um logotipo branco sobre fundo transparente. Para obter melhores resultados em telas convencionais e de retina, certifique-se de que as dimensões de sua imagem são de 460px por 60px. - text_custom_export_logo_instructions: > - Este é o logotipo que aparece nas exportações de PDF. O arquivo de imagem precisa ser PNG ou JPEG. Recomenda-se um logotipo colorido ou preto em plano de fundo transparente ou branco. - text_custom_export_cover_instructions: > - Esta é a imagem que aparece no fundo de uma página de rosto em suas exportações de PDF. Precisa ser um arquivo de imagem PNG ou JPEG com dimensões de 800px de largura por 500px de altura. - text_custom_favicon_instructions: > - Este é o ícone pequeno que aparece em sua janela/aba do navegador ao lado do título da página. O arquivo de imagem precisa ser PNG de 32 por 32 pixels com fundo transparente. - text_custom_touch_icon_instructions: > - Este é o ícone que aparece no seu celular ou tablet quando você coloca um marcador em sua tela inicial. O arquivo de imagem precisa ser PNG de 180 por 180 pixels. Certifique-se de que o plano de fundo da imagem não seja transparente, caso contrário ficará ruim no iOS. - text_database_allows_tsv: "Banco de dados permite TSVector (opcional)" - text_default_administrator_account_changed: "Conta do administrador padrão alterada" - text_default_encoding: "Padrão: UTF-8" - text_destroy: "Excluir" - text_destroy_with_associated: "Existem objetos adicionais associados com o pacote de trabalho que serão excluídos. Esses objetos são dos seguintes tipos:" - text_destroy_what_to_do: "O que você quer fazer?" - text_diff_truncated: "... Este diff foi truncado porque excede o tamanho máximo que pode ser exibido." - text_email_delivery_not_configured: "O envio de e-mails não está configurado e as notificações estão desativadas.\nConfigure seu servidor de SMTP para ativá-los." - text_enumeration_category_reassign_to: "Reatribuí-los para este valor:" - text_enumeration_destroy_question: "%{count} objetos estão atribuídos a esse valor." - text_file_repository_writable: "Diretório de anexos gravável" - text_git_repo_example: "um repositório e local (ex.: /gitrepo, c:\\gitrepo)" - text_hint_date_format: "Digite uma data no formato YYYY-MM-DD. Outros formatos podem ser alterados para uma data não desejada." - text_hint_disable_with_0: "Nota: Desabilitar com 0" - text_hours_between: "Entre %{min} e %{max} horas." - text_work_package_added: "Pacote de trabalho %{id} foi relatado por %{author}." - text_work_package_category_destroy_assignments: "Remover atribuições da categoria" - text_work_package_category_destroy_question: "Alguns pacotes de trabalho (%{count}) estão atribuídos a esta categoria. O que você quer fazer?" - text_work_package_category_reassign_to: "Reatribuir pacotes de trabalho para esta categoria" - text_work_package_updated: "Pacote de trabalho %{id} foi atualizado por %{author}." - text_work_package_watcher_added: "Você foi adicionado como um observador do pacote de trabalho %{id} por %{watcher_changer}." - text_work_package_watcher_removed: "Você foi removido dos observadores do pacote de trabalho %{id} por %{watcher_changer}." - text_work_packages_destroy_confirmation: "Tem certeza que deseja excluir o(s) pacote(s) de trabalho selecionado(s)?" - text_work_packages_ref_in_commit_messages: "Referenciando e corrigindo pacotes de trabalho nas mensagens de commit" - text_journal_added: "%{label} %{value} adicionado" - text_journal_attachment_added: "%{label} %{value} adicionado como anexo" - text_journal_attachment_deleted: "%{label} %{old} removido como anexo" - text_journal_changed_plain: "%{label} alterado de %{old} %{linebreak}para %{new}" - text_journal_changed_no_detail: "%{label} atualizado" - text_journal_changed_with_diff: "%{label} alterado %{link}" - text_journal_deleted: "%{label} excluído %{old} " - text_journal_deleted_subproject: "%{label} %{old}" - text_journal_deleted_with_diff: "%{label} excluído (%{link})" - text_journal_file_link_added: "Link de %{label} para %{value} (%{storage}) adicionado" - text_journal_file_link_deleted: "Link de %{label} para %{value} (%{storage}) removido" - text_journal_of: "%{label} %{value}" - text_journal_set_to: "%{label} definido como %{value}" - text_journal_set_with_diff: "%{label} definido (%{link})" - text_journal_label_value: "%{label} %{value}" - text_latest_note: "O comentário mais recente é: %{note}" - text_length_between: "Tamanho entre %{min} e %{max} caracteres." - text_line_separated: "Vários valores permitidos (uma linha para cada valor)." - text_load_default_configuration: "Carregar a configuração padrão" - text_min_max_length_info: "0 significa nenhuma restrição" - text_no_roles_defined: Não há nenhum papel definido. - text_no_access_tokens_configurable: "Não há nenhum token de acesso que pode ser configurado." - text_no_configuration_data: "Papéis, tipos, situação do pacote de trabalho e fluxo de trabalho não foram configurados ainda. É altamente recomendável carregar a configuração padrão. Uma vez carregada, você será capaz de modificá-la." - text_no_notes: "Não há comentários disponíveis para este pacote de trabalho." - text_notice_too_many_values_are_inperformant: "Nota: Exibição de mais de 100 itens por página pode aumentar o tempo de carregamento da página." - text_notice_security_badge_displayed_html: > - Nota: se habilitado, isto irá exibir um distintivo com o seu status de instalação no %{information_panel_label}painel de administração e na página inicial. Ele é exibido apenas para administradores.
O distintivo verificará sua versão do OpenProject contra o banco de dados oficial de versões do OpenProject para alertá-lo de quaisquer atualizações ou vulnerabilidades conhecidas. Para obter mais informações sobre o que fornece este distintivo, quais dados necessários para fornecer atualizações disponíveis e como desativar este distintivo, por favor verifique a documentação de configuração. - text_own_membership_delete_confirmation: "Você está prestes a remover algumas ou todas as permissões e você pode não ser capaz de editar este projeto depois disso. Tem certeza que deseja continuar?" - text_plugin_assets_writable: "Diretório de plugins ativos é gravável" - text_powered_by: "Desenvolvido por %{link}" - text_project_identifier_info: "Apenas letras minúsculas (a-z), números, hífens e sublinhados são permitidos, deve-se começar com uma letra minúscula." - text_reassign: "Reatribua ao pacote de trabalho:" - text_regexp_info: "ex. ^[A-Z0-9]+$" - text_regexp_multiline: 'A expressão regular é aplicada no modo multilinha. Por exemplo: ^---\s+' - text_repository_usernames_mapping: "Selecionar ou atualizar o usuário do OpenProject mapeado para cada nome de usuário encontrado no log do repositório. Os usuários com o mesmo nome de usuário OpenProject e repositório ou e-mail serão mapeados automaticamente." - text_status_changed_by_changeset: "Aplicado no conjunto de alterações %{value}." - text_table_difference_description: "Nesta tabela, os únicos %{entries} são mostrados. Você pode ver a diferença entre quaisquer duas entradas selecionando primeiro as caixas de seleção correspondentes na tabela. Ao clicar no botão abaixo da tabela são mostradas as diferenças." - text_time_logged_by_changeset: "Aplicado no conjunto de alterações %{value}." - text_tip_work_package_begin_day: "pacote de trabalho iniciando neste dia" - text_tip_work_package_begin_end_day: "pacote de trabalho inicia e termina neste dia" - text_tip_work_package_end_day: "pacote de trabalho terminando neste dia" - text_type_no_workflow: "Nenhum fluxo de trabalho definido para este tipo" - text_unallowed_characters: "Caracteres não permitidos" - text_user_invited: O usuário foi convidado e está pendente de registro. - text_user_wrote: "%{value} escreveu:" - text_warn_on_leaving_unsaved: "O pacote de trabalho contém texto que não foi salvo e será perdido se você sair desta página." - text_what_did_you_change_click_to_add_comment: "O que você alterou? Clique para adicionar um comentário" - text_wiki_destroy_confirmation: "Tem certeza que deseja excluir este wiki e todo o seu conteúdo?" - text_wiki_page_destroy_children: "Excluir páginas filhas e todos os seus descendentes" - text_wiki_page_destroy_question: "Esta página contém %{descendants} pagina(s) filha(s) e descendente(s). O que você deseja fazer?" - text_wiki_page_nullify_children: "Manter as páginas filhas como páginas iniciais" - text_wiki_page_reassign_children: "Reatribuir páginas filhas para esta página-pai" - text_workflow_edit: "Selecione um papel e um tipo para editar o fluxo de trabalho" - text_zoom_in: "Aumentar zoom" - text_zoom_out: "Diminuir zoom" - text_setup_mail_configuration: "Configurar seu provedor de email" - help_texts: - views: - project: > - %{plural} sempre estão anexados a um projeto. Você só pode selecionar projetos aqui que o módulo %{plural} está ativo. Depois de criar um %{singular} você pode adicionar pacotes de trabalho de outros projetos a ele. - public: "Publique esta exibição, permitindo que outros usuários acessem sua visualização. Usuários com a permissão de 'Gerenciar exibições públicas' podem modificar ou remover a consulta pública. Isto não afeta a visibilidade dos resultados do pacote de trabalho nesta exibição e, dependendo de suas permissões, os usuários podem ver resultados diferentes." - favoured: "Marcar esta exibição como favorita e adicionar à barra lateral de exibições salvas à esquerda." - time: - am: "am" - formats: - default: "%d/%m/%Y %H:%M" - long: "%d de %B de %Y %H:%M" - short: "%d/%b %H:%M" - time: "%I:%M %p" - pm: "pm" - timeframe: - show: "Mostrar intervalo de tempo" - end: "para" - start: "de" - title_remove_and_delete_user: Remover o usuário convidado do projeto e excluí-lo. - title_enterprise_upgrade: "Atualizar para desbloquear mais usuários." - tooltip_user_default_timezone: > - Fuso horário padrão para novos usuários. Pode ser alterado nas configurações do usuário. - tooltip_resend_invitation: > - Envia outro e-mail de convite com um novo token, caso o antigo tenha expirado ou o usuário não tenha recebido o e-mail original. Também pode ser usado para que usuários ativos escolham um novo método de autenticação. Quando usado com usuários ativos, seus status serão alterados para 'convidados'. - tooltip: - setting_email_login: > - Se habilitado, um usuário não poderá escolher um login durante o registro. Em vez disso, seu endereço de e-mail servirá como login. Um administrador ainda poderá mudar o login separadamente. - queries: - apply_filter: Aplicar filtro pré-configurado - configure_view: - heading: Configure view - columns: - input_label: "Add columns" - input_placeholder: "Select a column" - drag_area_label: "Manage and reorder columns" - top_menu: - additional_resources: "Recursos adicionais" - getting_started: "Guia de introdução" - help_and_support: "Ajuda e suporte" - total_progress: "Progresso total" - user: - all: "todos" - active: "ativo" - activate: "Ativar" - activate_and_reset_failed_logins: "Ativar e redefinir logons com falha" - authentication_provider: "Provedor de autenticação" - identity_url_text: "O identificador único interno fornecido pelo provedor de autenticação." - authentication_settings_disabled_due_to_external_authentication: > - Este usuário se autentica através de um provedor de autenticação externa, então não há nenhuma senha no OpenProject para ser alterada. - authorization_rejected: "Você não tem permissão para acessar." - assign_random_password: "Atribuir senha aleatória (enviada ao usuário por e-mail)" - blocked: "bloqueado temporariamente" - blocked_num_failed_logins: - one: "bloqueado temporariamente (uma tentativa de login inválida)" - other: "bloqueado temporariamente (%{count} tentativas de login inválidas)" - confirm_status_change: "Você está prestes a mudar a situação de '%{name}'. Tem certeza que deseja continuar?" - deleted: "Usuário excluído" - error_status_change_failed: "A alteração da situação do usuário falhou devido aos seguintes erros: %{errors}" - invite: Convidar usuário através de e-mail - invited: convidado - lock: "Bloquear permanentemente" - locked: "bloqueado permanentemente" - no_login: "Este usuário é autenticado através de login por senha. Uma vez desativado, ele não pode efetuar login." - password_change_unsupported: Mudança de senha não é suportada. - registered: "registrado" - reset_failed_logins: "Redefinição de logins que falharam" - status_user_and_brute_force: "%{user} e %{brute_force}" - status_change: "Mudança de situação" - text_change_disabled_for_provider_login: "O nome é definido por seu fornecedor de início de sessão e, desta forma, não pode ser alterado." - unlock: "Desbloquear" - unlock_and_reset_failed_logins: "Desbloquear e redefinir logins com falha" - version_status_closed: "fechado" - version_status_locked: "bloqueado" - version_status_open: "aberto" - note: Nota - note_password_login_disabled: "Senha foi desativada por %{configuration}." - warning: Aviso - warning_attachments_not_saved: "%{count} arquivo(s) não pôde(m) ser salvo(s)." - warning_imminent_user_limit: > - Você convidou usuários além do que é suportado pelo seu plano atual. Usuários convidados podem não ser capazes de participar de seu ambiente OpenProject. Por favor, atualize seu plano ou bloqueie usuários existentes a fim de permitir que convidados possam registrar-se. - warning_registration_token_expired: | - O e-mail de ativação expirou. Enviamos um novo para %{email}. Por favor, clique no link dentro dele para ativar sua conta. - warning_user_limit_reached: > - A adição de usuários adicionais fará com que o limite atual seja excedido. Entre em contato com um administrador para aumentar o limite de usuários e garantir que usuários externos possam acessar esta instância. - warning_user_limit_reached_admin: > - A adição de usuários adicionais excederá o limite atual. Atualize o seu plano para poder garantir que os usuários externos possam acessar a esta instância. - warning_user_limit_reached_instructions: > - Você atingiu seu limite de usuários (%{current}/%{max} usuários ativos). Entre em contato com sales@openproject.com para atualizar seu plano da edição Enterprise e adicionar novos usuários. - warning_protocol_mismatch_html: > - - warning_bar: - https_mismatch: - title: "Configuração do modo HTTPS incompatível" - text_html: > - Seu aplicativo está em execução com o modo HTTPS definido para %{set_protocol}, mas esta é uma solicitação %{actual_protocol}. Isto resultará em erros! Você precisará definir os seguintes valores de configuração: %{setting_value}. Consulte a documentação de instalação sobre como definir esta configuração. - hostname_mismatch: - title: "Incompatibilidade de configuração do anfitrião" - text_html: > - Sua aplicativo está sendo executado com a configuração de nome de anfitrião definida como %{set_hostname}, mas a solicitação é um nome de anfitrião %{actual_hostname}. Isto pode provocar erros! Avance para Configurações do Sistema e altere a configuração de "Nome de anfitrião" para corrigir isto. - menu_item: "Item de menu" - menu_item_setting: "Visibilidade" - wiki_menu_item_for: 'Item de menu para página wiki "%{title}"' - wiki_menu_item_setting: "Visibilidade" - wiki_menu_item_new_main_item_explanation: > - Você está excluindo somente o item de menu principal da wiki. Você agora tem que escolher uma página wiki para que um novo item principal seja gerado. Para excluir a wiki, o módulo wiki deve ser desativado pelos administradores do projeto. - wiki_menu_item_delete_not_permitted: O item de menu da página wiki é único e não pode ser excluído. - #TODO: merge with work_packages top level key - work_package: - updated_automatically_by_child_changes: | - _Atualizado automaticamente por alterações de valores dentro do pacote de trabalho filho %{child}_ - destroy: - info: "Excluir o pacote de trabalho é uma ação irreversível." - title: "Excluir o pacote de trabalho" - sharing: - count: - zero: "0 usuários" - one: "1 usuário" - other: "%{count} usuários" - filter: - project_member: "Membro do projeto" - not_project_member: "Nenhum membro do projeto" - project_group: "Grupo do projeto" - not_project_group: "Não é um grupo do projeto" - role: "Papel" - type: "Tipo" - label_search: "Buscar usuários para convidar" - label_search_placeholder: "Buscar por usuário ou endereço de e-mail" - label_toggle_all: "Alternar todos os compartilhamentos" - permissions: - comment: "Comentário" - comment_description: "Pode visualizar e comentar neste pacote de trabalho." - denied: "Você não possui permissões para compartilhar pacotes de trabalho." - edit: "Editar" - edit_description: "Pode visualizar, comentar e editar este pacote de trabalho." - view: "Ver" - view_description: "Pode visualizar este pacote de trabalho." - remove: "Remover" - share: "Compartilhar" - text_empty_search_description: "Não há usuários com o critério de filtro atual." - text_empty_search_header: "Não encontramos nenhum resultado correspondente." - text_empty_state_description: "O pacote de trabalho ainda não foi compartilhado com ninguém." - text_empty_state_header: "Não compartilhado" - text_user_limit_reached: "A adição de usuários adicionais fará com que o limite atual seja excedido. Entre em contato com um administrador para aumentar o limite de usuários e garantir que usuários externos possam acessar este pacote de trabalho." - text_user_limit_reached_admins: 'A adição de usuários adicionais excederá o limite atual. Atualize o seu plano para poder adicionar mais usuários.' - warning_user_limit_reached: > - A adição de usuários adicionais fará com que o limite atual seja excedido. Entre em contato com um administrador para aumentar o limite de usuários e garantir que usuários externos possam acessar este pacote de trabalho. - warning_user_limit_reached_admin: > - A adição de usuários adicionais excederá o limite atual. Atualize o seu plano para poder garantir que os usuários externos possam acessar a este pacote de trabalho. - warning_no_selected_user: "Selecione os usuários com quem compartilhar este pacote de trabalho" - warning_locked_user: "O usuário %{user} está bloqueado e não pode ser compartilhado com" - user_details: - locked: "Usuário bloqueado" - invited: "Convite enviado. " - resend_invite: "Reenviar." - invite_resent: "O convite foi reenviado" - not_project_member: "Nenhum membro do projeto" - project_group: "Os membros do grupo podem ter privilégios adicionais (como membros do projeto)" - not_project_group: "Grupo (compartilhado com todos os membros)" - additional_privileges_project: "Poderá ter privilégios adicionais (como membro do projeto)" - additional_privileges_group: "Poderá ter privilégios adicionais (como membro do grupo)" - additional_privileges_project_or_group: "Poderá ter privilégios adicionais (como membro do projeto ou grupo)" - working_days: - info: > - Dias que não são selecionados são pulados ao agendar pacotes de trabalho (e não são incluídos na contagem do dia). Estes podem ser substituídos a nível do pacotes de trabalho. - instance_wide_info: > - As datas adicionadas à lista abaixo são consideradas não úteis e ignoradas ao agendar pacotes de trabalho. - change_button: "Alterar dias úteis" - warning: > - Alterar os dias da semana considerados úteis ou não úteis pode afetar as datas de início e término de todos os pacotes de trabalho em todos os projetos desta instância.
Observe que as alterações só são aplicadas após clicar no botão aplicar alterações. - journal_note: - changed: _**Dias úteis** alterado (%{changes})._ - days: - working: "%{day} agora é um dia útil" - non_working: "%{day} agora é um dia não útil" - dates: - working: "%{date} agora está funcionando" - non_working: "%{date} não está funcionando agora" - nothing_to_preview: "Nada para visualizar" - api_v3: - attributes: - lock_version: "Bloquear versão" - property: "Propriedade" - errors: - code_400: "Requisição inválida: %{message}" - code_401: "Você precisa estar autenticado para acessar este recurso." - code_401_wrong_credentials: "Você não forneceu as credenciais corretas." - code_403: "Você não está autorizado a acessar este recurso." - code_404: "O recurso solicitado não pôde ser encontrado." - code_409: "Não foi possível atualizar o recurso devido a modificações conflitantes." - code_429: "Muitas requisições. Tente novamente mais tarde." - code_500: "Ocorreu um erro interno." - code_500_outbound_request_failure: "Uma solicitação de saída para outro recurso falhou com o código de status %{status_code}." - code_500_missing_enterprise_token: "O pedido não pode ser manipulado devido a um token Enterprise inválido ou ausente." - not_found: - work_package: "O pacote de trabalho que você está procurando não pode ser encontrado ou foi excluído." - expected: - date: "AAAA-MM-DD (somente data no formato ISO 8601)" - datetime: "AAAA-MM-DDThh:mm:ss[.lll][+hh:mm] (qualquer data e hora compatível com a ISO 8601)" - duration: "Duração ISO 8601" - invalid_content_type: "CONTENT-TYPE esperado '%{content_type}' mas '%{actual}' encontrado." - invalid_format: "Formato inválido para a propriedade '%{property}': Formato esperado como '%{expected_format}', mas tem '%{actual}'." - invalid_json: "A solicitação não pôde ser analisada como JSON." - invalid_relation: "A relação é inválida." - invalid_resource: "Para a propriedade '%{property}' é esperado um link como '%{expected}' mas foi encontrado '%{actual}'." - invalid_signal: - embed: "A incorporação solicitada de %{invalid} não é suportada. As incorporações suportadas são %{supported}." - select: "A seleção requisitada de %{invalid} não é suportada. As seleções suportadas são %{supported}." - invalid_user_status_transition: "A situação da conta do usuário atual não permite esta operação." - missing_content_type: "não especificado" - missing_property: "Propriedade ausente '%{property}' '." - missing_request_body: "Não havia corpo da requisição." - missing_or_malformed_parameter: "O parâmetro de consulta '%{parameter}' está ausente ou malformado." - multipart_body_error: "O corpo da solicitação não continha as partes multipart esperadas." - multiple_errors: "Várias restrições de campo foram violadas." - unable_to_create_attachment: "O anexo não pôde ser criado" - unable_to_create_attachment_permissions: "O anexo não pôde ser salvo devido à falta de permissões do sistema de arquivos" - render: - context_not_parsable: "O contexto fornecido não é um link para o recurso." - unsupported_context: "O recurso dado não está suportado como contexto." - context_object_not_found: "Não é possível encontrar o recurso dado como contexto." - validation: - done_ratio: "A % de conclusão não pode ser definida em pacotes de trabalho pais quando é inferida pelo estado ou quando está desabilitada." - due_date: "Data de conclusão não pode ser definida em pacote de trabalho pai." - estimated_hours: "O trabalho não pode ser definido em pacotes de trabalho pais." #feel like this one should be removed eventually - invalid_user_assigned_to_work_package: "O usuário selecionado não tem permissão de '%{property}' neste pacote de trabalho." - start_date: "Data de início não pode ser definida no pacote de trabalho pai." - eprops: - invalid_gzip: "é gzip inválido: %{message}" - invalid_json: "é json inválido: %{message}" - resources: - schema: "Esquema" - undisclosed: - parent: Não revelado - O primário selecionado está invisível devido à falta de permissões. - ancestor: Não revelado - O ancestral está invisível devido à falta de permissões. - doorkeeper: - pre_authorization: - status: "Pré-autorização" - auth_url: "URL de autenticação" - access_token_url: "URL do token de acesso" - errors: - messages: - #Common error messages - invalid_request: - unknown: "A solicitação não possui um parâmetro obrigatório, tem um valor de parâmetro não suportado ou está malformada." - missing_param: "Parâmetro obrigatório ausente: %{value}." - request_not_authorized: "O pedido precisa ser autorizado. O parâmetro obrigatório para autorização de solicitação está ausente ou é inválido." - invalid_redirect_uri: "O URI de redirecionamento solicitado está mal formulado ou não corresponde ao URI de redirecionamento do cliente." - unauthorized_client: "O cliente não está autorizado a executar esta solicitação usando este método." - access_denied: "O proprietário do recurso ou servidor de autorização negou o pedido." - invalid_scope: "O escopo solicitado é inválido, desconhecido ou malformado." - invalid_code_challenge_method: "O método de desafio de código deve ser simples (plain) ou S256." - server_error: "O servidor de autorização encontrou uma condição inesperada que impediu o cumprimento da solicitação." - temporarily_unavailable: "O servidor de autorização não pode manipular a solicitação devido a uma sobrecarga ou manutenção temporária do servidor." - #Configuration error messages - credential_flow_not_configured: "Fluxo de Credenciais de Senha do Proprietário de Recursos falhou devido a Doorkeeper.configure.resource_owner_de_credenciais não configuradas." - resource_owner_authenticator_not_configured: "Busca do Proprietário de Recursos falhou devido a Doorkeeper.configure.resource_owner_de_credenciais não configuradas." - admin_authenticator_not_configured: "O acesso ao painel de administração está proibido devido ao Doorkeeper.configure.admin_autenticator não configurado." - #Access grant errors - unsupported_response_type: "O servidor de autorização não suporta este tipo de resposta." - unsupported_response_mode: "O servidor de autorização não suporta este modo de resposta." - #Access token errors - invalid_client: "Autenticação do cliente falhou devido ao cliente desconhecido, nenhuma autenticação de cliente incluída ou método de autenticação não suportado." - invalid_grant: "A concessão de autorização fornecida é inválida, expirada, revogada, não corresponde ao URI de redirecionamento usado na solicitação de autorização, ou foi emitida para outro cliente." - unsupported_grant_type: "O tipo de autorização não é suportado pelo servidor de autorização." - invalid_token: - revoked: "O token de acesso foi revogado" - expired: "O token de acesso expirou" - unknown: "O token de acesso é inválido" - revoke: - unauthorized: "Você não está autorizado a revogar este token." - forbidden_token: - missing_scope: 'O acesso a este recurso requer o escopo "%{oauth_scopes}".' - unsupported_browser: - title: "Seu navegador está desatualizado e não é suportado." - message: "Você pode encontrar erros e experiência degradada nesta página." - update_message: "Por favor, atualize seu navegador." - close_warning: "Ignorar este aviso." - oauth: - application: - singular: "Aplicação OAuth" - plural: "Aplicações OAuth" - named: "Aplicação OAuth '%{name}'" - new: "Nova aplicação OAuth" - default_scopes: "(Escopos padrão)" - instructions: - name: "O nome da sua aplicação. Isto será exibido para outros usuários mediante autorização." - redirect_uri_html: > - Os URLs permitidos dos usuários autorizados podem ser redirecionadas para. Uma entrada por linha.
Se você estiver registrando uma aplicação desktop, use o seguinte URL. - confidential: "Verifique se a aplicação será usada onde o segredo do cliente pode ser mantido em sigilo. Apps móveis nativos e aplicativos de página única são considerados não confidenciais." - scopes: "Verifique os escopos que você quer que a aplicação conceda acesso. Se nenhum escopo estiver marcado, api_v3 é assumido." - client_credential_user_id: "ID de usuário usado como representante quando os clientes usam esta aplicação. Deixe em branco para permitir apenas o acesso público" - register_intro: "Se você estiver desenvolvendo uma aplicação cliente da API OAuth do OpenProject, poderá registrá-la usando este formulário para ser usada por todos os usuários." - default_scopes: "" - client_id: "ID do cliente" - client_secret_notice: > - Esta é a única vez que podemos imprimir o segredo do cliente, por favor, anote-o e mantenha-o em local seguro. Ele deve ser tratado como uma senha e não poderá ser recuperado pelo OpenProject mais tarde. - authorization_dialog: - authorize: "Autorizar" - cancel: "Cancelar e negar autorização." - prompt_html: "Autorizar %{application_name} a usar sua conta %{login}?" - title: "Autorizar %{application_name}" - wants_to_access_html: > - Esta aplicação solicita acesso à sua conta OpenProject.
Ela solicitou as seguintes permissões: - scopes: - api_v3: "Acesso completo a API v3" - api_v3_text: "A aplicação receberá acesso total de leitura e escrita a API v3 do OpenProject para executar ações em seu nome." - grants: - created_date: "Aprovado em" - scopes: "Permissões" - successful_application_revocation: "Revogação da aplicação %{application_name} bem sucedida." - none_given: "Nenhum aplicativo OAuth recebeu acesso à sua conta de usuário." - x_active_tokens: - one: "um token ativo" - other: "%{count} token(s) ativo(s)" - flows: - authorization_code: "Fluxo de código de autorização" - client_credentials: "Fluxo de credenciais do cliente" - client_credentials: "Usuário usado para credenciais do cliente" - client_credentials_impersonation_set_to: "Usuário de credenciais do cliente definido para" - client_credentials_impersonation_warning: "Nota: Clientes usando o fluxo de 'credenciais do cliente' nesta aplicação terão os direitos deste usuário" - client_credentials_impersonation_html: > - Por padrão, o OpenProject fornece autorização OAuth 2.0 via %{authorization_code_flow_link}. Você pode habilitar opcionalmente %{client_credentials_flow_link}, mas você deve fornecer um usuário em cujo nome as requisições serão realizadas. - authorization_error: "Ocorreu um erro de autorização." - revoke_my_application_confirmation: "Você quer realmente remover esta aplicação? Isso irá revogar %{token_count} ativo(s) para ele." - my_registered_applications: "Aplicações OAuth registradas" - oauth_client: - urn_connection_status: - connected: "Conectado" - error: "Erro" - failed_authorization: "Falha na autorização" - labels: - label_oauth_integration: "Integração OAuth2" - label_redirect_uri: "Redirecionar URI" - label_request_token: "Solicitar token" - label_refresh_token: "Atualizar token" - errors: - oauth_authorization_code_grant_had_errors: "OAuth2 retornou um erro" - oauth_reported: "Provedor OAuth2 comunicou" - oauth_returned_error: "OAuth2 retornou um erro" - oauth_returned_json_error: "OAuth2 retornou um erro JSON" - oauth_returned_http_error: "OAuth2 retornou um erro de rede" - oauth_returned_standard_error: "OAuth2 retornou um erro interno" - wrong_token_type_returned: "OAuth2 retornou um tipo errado de token, aguardando AccessToken::Bearer" - oauth_issue_contact_admin: "OAuth2 comunicou um erro. Entre em contato com o administrador do sistema." - oauth_client_not_found: "Cliente OAuth2 não encontrado no ponto de extremidade 'callback' (redirect_uri)." - refresh_token_called_without_existing_token: > - Erro interno: refresh_token chamada sem um token existente. - refresh_token_updated_failed: "Erro durante a atualização do OAuthClientToken" - oauth_client_not_found_explanation: > - Este erro é exibido após você atualizar o client_id e client_secret no OpenProject, mas não atualizar o campo 'Return URI' no provedor OAuth2. - oauth_code_not_present: "OAuth2 'code' não encontrado no ponto de extremidade 'callback' (redirect_uri)." - oauth_code_not_present_explanation: > - Este erro é exibido quando você seleciona o response_type incorreto no provedor OAuth2. Resposta _type deve ser 'code' ou similar. - oauth_state_not_present: "OAuth2 'state' não encontrado no ponto de extremidade 'callback' (redirect_uri)." - oauth_state_not_present_explanation: > - O 'state' é utilizado para indicar ao OpenProject onde continuar após uma autorização OAuth2 bem-sucedida. Um 'state' ausente é um erro interno que pode aparecer durante a configuração. Entre em contate com seu administrador de sistema. - rack_oauth2: - client_secret_invalid: "Segredo do cliente inválido (client_secret_invalid)" - invalid_request: > - O Servidor de Autorização do OAuth2 respondeu com 'invalid_request'. Este erro aparece se você realizar várias tentativas de autorização ou em caso de problemas técnicos. - invalid_response: "O Servidor de Autorização do OAuth2 forneceu uma resposta inválida (invalid_response)" - invalid_grant: "O Servidor de Autorização do OAuth2 solicita que você autorize novamente (invalid_grant)." - invalid_client: "O Servidor de Autorização do OAuth2 não reconhece o OpenProject (invalid_client)." - unauthorized_client: "O Servidor de Autorização do OAuth2 rejeita o tipo de concessão (unauthorized_client)" - unsupported_grant_type: "O Servidor de Autorização do OAuth2 solicita que você autorize novamente (unported_grant_type)." - invalid_scope: "Você não possui permissão para acessar o recurso solicitado (invalid_scope)." - http: - request: - failed_authorization: "A solicitação do servidor não conseguiu se autorizar." - missing_authorization: "A solicitação do servidor não foi concluída devido à falta de informações de autorização." - response: - unexpected: "Resposta inesperada recebida." - you: você - link: link - plugin_openproject_auth_plugins: - name: "Plugins OpenProject Auth" - description: "Integração de fornecedores de estratégias OmniAuth para autenticação no Openproject." - plugin_openproject_auth_saml: - name: "OmniAuth SAML/Início de sessão único" - description: "Adiciona o fornecedor SAML OmniAuth ao OpenProject" diff --git a/config/locales/crowdin/sl.yml b/config/locales/crowdin/sl.yml index ebf8a77efec2..c4fb9285611c 100644 --- a/config/locales/crowdin/sl.yml +++ b/config/locales/crowdin/sl.yml @@ -1318,8 +1318,8 @@ sl: - "avgust" - "september" - "oktober" - - "November" - - "December" + - "november" + - "december" order: - :leto - :mesec diff --git a/config/locales/crowdin/tr.yml b/config/locales/crowdin/tr.yml index d7099c4f72fd..9957aac351fe 100644 --- a/config/locales/crowdin/tr.yml +++ b/config/locales/crowdin/tr.yml @@ -1074,7 +1074,7 @@ tr: base: "Genel Hata:" blocks_ids: "Engellenen iş paketlerinin ID'leri" category: "Kategori" - comment: "Yorum" + comment: "Yorumlar" comments: "Yorum" content: "İçerik" color: "Renk" diff --git a/config/locales/crowdin/uk.yml b/config/locales/crowdin/uk.yml index d7571b86ea71..cd875df5a191 100644 --- a/config/locales/crowdin/uk.yml +++ b/config/locales/crowdin/uk.yml @@ -1923,7 +1923,7 @@ uk: label_index_by_title: "Індекс за назвою" label_information: "Інформація" label_information_plural: "Інформація" - label_installation_guides: "Інструкції зі встановлення" + label_installation_guides: "Інструкції із встановлення" label_integer: "Ціле число" label_internal: "Власне" label_introduction_video: "Введення відео" diff --git a/config/locales/crowdin/zh-CN.seeders.yml b/config/locales/crowdin/zh-CN.seeders.yml index 69a96ab7a069..00a07d513b07 100644 --- a/config/locales/crowdin/zh-CN.seeders.yml +++ b/config/locales/crowdin/zh-CN.seeders.yml @@ -151,7 +151,7 @@ zh-CN: demo-project: name: 演示项目 status_explanation: 所有任务都按计划进行。相关人员均知晓各自任务。系统已完全建立。 - description: 这是对此演示项目目标的简短摘要。 + description: 这是对此演示 Scrum 项目目标的简短摘要。 news: item_0: title: 欢迎来到您的演示项目 @@ -254,7 +254,7 @@ zh-CN: scrum-project: name: Scrum 项目 status_explanation: 所有任务都按计划进行。相关人员均知晓各自任务。系统已完全建立。 - description: 这是对此演示Scrum项目目标的简短摘要。 + description: 这是对此演示 Scrum 项目目标的简短摘要。 news: item_0: title: 欢迎来到您的 Scrum 演示项目 diff --git a/config/locales/crowdin/zh-CN.yml b/config/locales/crowdin/zh-CN.yml index 8de2dc5646ff..2ae0fc2546e1 100644 --- a/config/locales/crowdin/zh-CN.yml +++ b/config/locales/crowdin/zh-CN.yml @@ -70,7 +70,7 @@ zh-CN: text: "您确定要删除当前使用的企业版令牌吗?" title: "删除令牌" replace_token: "替换您当前的支持令牌" - order: "订购本地部署的 Enterprise edition" + order: "订购本地部署版的 Enterprise edition" paste: "粘贴您企业版的支持令牌" required_for_feature: "此功能仅限具激活的企业版支持令牌的订阅者使用。" enterprise_link: "如需了解详细信息,请单击此处。" @@ -2045,7 +2045,7 @@ zh-CN: label_revision_id: "修订版本 %{value}" label_revision_plural: "修订" label_roadmap: "路线图" - label_roadmap_edit: "编辑路线图 %{name}" + label_roadmap_edit: "编辑路线图%{name}" label_roadmap_due_in: "%{value} 到期" label_roadmap_no_work_packages: "该版本没有工作包。" label_roadmap_overdue: "%{value} 超时" @@ -2650,7 +2650,7 @@ zh-CN: managed: "在 OpenProject 中创建新的存储库" storage: not_available: "磁盘存储开销不可用于此存储库。" - update_timeout: "在 N 分钟内保留存储库最后所需磁盘空间的信息。由于计算存储库所需的磁盘空间可能增加系统开销,增加该值可以减少性能影响。" + update_timeout: "在 N 分钟内保留存储库最后所需的磁盘空间信息。由于计算存储库所需的磁盘空间可能增加系统开销,增加该值可以减少性能影响。" oauth_application_details: "关闭此窗口后,将无法再次访问客户端密钥值。请将这些值复制到 Nextcloud OpenProject 集成设置中:" oauth_application_details_link_text: "转到设置页面" setup_documentation_details: "如果您在配置新文件存储方面需要帮助,请查看文档:" @@ -2787,7 +2787,7 @@ zh-CN: setting_session_ttl_hint: "当设置的值低于5时,其作用类似于禁用。" setting_session_ttl_enabled: "会话过期" setting_start_of_week: "一周起始日" - setting_sys_api_enabled: "启用版本库管理 web 服务" + setting_sys_api_enabled: "启用存储库管理网页服务" setting_sys_api_description: "存储库管理网页服务提供了集成的,用户授权的存储库访问。" setting_time_format: "时间" setting_accessibility_mode_for_anonymous: "为匿名用户启用辅助功能模式" @@ -3077,7 +3077,7 @@ zh-CN: warning_user_limit_reached_admin: > 添加额外的用户将超出当前限制。请升级您的计划,以确保外部用户能够访问此实例。 warning_user_limit_reached_instructions: > - 您达到了用户限制(%{current}/%{max}活跃用户)。 请联系sales@openproject.com以升级您的Enterprise edition计划并添加其他用户。 + 您已达到用户限制(%{current}/%{max} 活跃用户)。请联系 sales@openproject.com 升级您的企业版计划以添加额外用户。 warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/generated/af.yml b/config/locales/generated/af.yml index 05b88342335c..5a06ef9617cc 100644 --- a/config/locales/generated/af.yml +++ b/config/locales/generated/af.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ar.yml b/config/locales/generated/ar.yml index 3f33d8cc0c2f..bda4145aff0c 100644 --- a/config/locales/generated/ar.yml +++ b/config/locales/generated/ar.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/az.yml b/config/locales/generated/az.yml index 799590049c54..21255fb9b863 100644 --- a/config/locales/generated/az.yml +++ b/config/locales/generated/az.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/be.yml b/config/locales/generated/be.yml index 517ebd426cee..9b468a477b2f 100644 --- a/config/locales/generated/be.yml +++ b/config/locales/generated/be.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/bg.yml b/config/locales/generated/bg.yml index 5a7991a4442b..9f1e5dd8d580 100644 --- a/config/locales/generated/bg.yml +++ b/config/locales/generated/bg.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ca.yml b/config/locales/generated/ca.yml index cc29f636aa02..2766c7117213 100644 --- a/config/locales/generated/ca.yml +++ b/config/locales/generated/ca.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ckb-IR.yml b/config/locales/generated/ckb-IR.yml index 32eeb6a1ee8a..a3076aedf027 100644 --- a/config/locales/generated/ckb-IR.yml +++ b/config/locales/generated/ckb-IR.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/cs.yml b/config/locales/generated/cs.yml index 7e638bfd795a..12ca0d82df1f 100644 --- a/config/locales/generated/cs.yml +++ b/config/locales/generated/cs.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/da.yml b/config/locales/generated/da.yml index 662e0d3bc223..c8524516d147 100644 --- a/config/locales/generated/da.yml +++ b/config/locales/generated/da.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/de.yml b/config/locales/generated/de.yml index 4161d8d43a33..e875b2f4902b 100644 --- a/config/locales/generated/de.yml +++ b/config/locales/generated/de.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/el.yml b/config/locales/generated/el.yml index 91b282ad69ac..9f023fa4ea64 100644 --- a/config/locales/generated/el.yml +++ b/config/locales/generated/el.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/en.yml b/config/locales/generated/en.yml index d0280e4c88c0..5e04b205bb6b 100644 --- a/config/locales/generated/en.yml +++ b/config/locales/generated/en.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/eo.yml b/config/locales/generated/eo.yml index b15d7cf96474..81cde9f21bfe 100644 --- a/config/locales/generated/eo.yml +++ b/config/locales/generated/eo.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/es.yml b/config/locales/generated/es.yml index cc545e314554..2798b5be1771 100644 --- a/config/locales/generated/es.yml +++ b/config/locales/generated/es.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/et.yml b/config/locales/generated/et.yml index 1e7ddb7389ac..3bc73369ea9a 100644 --- a/config/locales/generated/et.yml +++ b/config/locales/generated/et.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/eu.yml b/config/locales/generated/eu.yml index e059ed6cef86..d4e3a7adcc2e 100644 --- a/config/locales/generated/eu.yml +++ b/config/locales/generated/eu.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/fa.yml b/config/locales/generated/fa.yml index f8b22eff8499..5f09442bff2b 100644 --- a/config/locales/generated/fa.yml +++ b/config/locales/generated/fa.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/fi.yml b/config/locales/generated/fi.yml index b90cf8aa9c51..31f7cd9e2200 100644 --- a/config/locales/generated/fi.yml +++ b/config/locales/generated/fi.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/fil.yml b/config/locales/generated/fil.yml index da36eb895c42..32adbb0813b1 100644 --- a/config/locales/generated/fil.yml +++ b/config/locales/generated/fil.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/fr.yml b/config/locales/generated/fr.yml index d56754908e06..99684bf33a02 100644 --- a/config/locales/generated/fr.yml +++ b/config/locales/generated/fr.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/he.yml b/config/locales/generated/he.yml index d75b7a06647d..5c86dc5a4d75 100644 --- a/config/locales/generated/he.yml +++ b/config/locales/generated/he.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/hi.yml b/config/locales/generated/hi.yml index 9394aaf079d9..992031f582b9 100644 --- a/config/locales/generated/hi.yml +++ b/config/locales/generated/hi.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/hr.yml b/config/locales/generated/hr.yml index e008b8544820..3ef99ca2c6f9 100644 --- a/config/locales/generated/hr.yml +++ b/config/locales/generated/hr.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/hu.yml b/config/locales/generated/hu.yml index 6688a2bad710..d6238b6789cf 100644 --- a/config/locales/generated/hu.yml +++ b/config/locales/generated/hu.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/id.yml b/config/locales/generated/id.yml index 7734c7139a9a..bff89d569710 100644 --- a/config/locales/generated/id.yml +++ b/config/locales/generated/id.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/it.yml b/config/locales/generated/it.yml index d6e546a03233..4a7c371201fa 100644 --- a/config/locales/generated/it.yml +++ b/config/locales/generated/it.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ja.yml b/config/locales/generated/ja.yml index df712c7c6855..3b7d74937ea6 100644 --- a/config/locales/generated/ja.yml +++ b/config/locales/generated/ja.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ka.yml b/config/locales/generated/ka.yml index ef90d5a8f0a5..a6735b0231c5 100644 --- a/config/locales/generated/ka.yml +++ b/config/locales/generated/ka.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/kk.yml b/config/locales/generated/kk.yml index 1a0cfaf38051..6a8cba0f7b96 100644 --- a/config/locales/generated/kk.yml +++ b/config/locales/generated/kk.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ko.yml b/config/locales/generated/ko.yml index f2446f9be26d..ee7e5dfe4a68 100644 --- a/config/locales/generated/ko.yml +++ b/config/locales/generated/ko.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/lt.yml b/config/locales/generated/lt.yml index dd8cc8eb3c70..97c29054958a 100644 --- a/config/locales/generated/lt.yml +++ b/config/locales/generated/lt.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/lv.yml b/config/locales/generated/lv.yml index 3bf1932e99c3..7e25525547f9 100644 --- a/config/locales/generated/lv.yml +++ b/config/locales/generated/lv.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/mn.yml b/config/locales/generated/mn.yml index 70d23ea25e1b..0d79cad0cd9c 100644 --- a/config/locales/generated/mn.yml +++ b/config/locales/generated/mn.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ms.yml b/config/locales/generated/ms.yml index 2c396fbfd91c..ce3c24a5039c 100644 --- a/config/locales/generated/ms.yml +++ b/config/locales/generated/ms.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ne.yml b/config/locales/generated/ne.yml index 354b455e3941..c62d96e66fd7 100644 --- a/config/locales/generated/ne.yml +++ b/config/locales/generated/ne.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/nl.yml b/config/locales/generated/nl.yml index 4532748162ae..528b5ecd71f4 100644 --- a/config/locales/generated/nl.yml +++ b/config/locales/generated/nl.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/no.yml b/config/locales/generated/no.yml index 42e4dfb44bbf..1f771aeaa633 100644 --- a/config/locales/generated/no.yml +++ b/config/locales/generated/no.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/pl.yml b/config/locales/generated/pl.yml index c2076cfd9495..0df835de73b7 100644 --- a/config/locales/generated/pl.yml +++ b/config/locales/generated/pl.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/pt-BR.yml b/config/locales/generated/pt-BR.yml new file mode 100644 index 000000000000..be57d24ff3c0 --- /dev/null +++ b/config/locales/generated/pt-BR.yml @@ -0,0 +1,14 @@ +# This file has been generated by script/i18n/generate_languages_translations. +# Please do not edit directly. +# +# To update this file, run script/i18n/generate_languages_translations. +# +# The translations come from version 44 of the Unicode CLDR project. +# +# The Unicode Common Locale Data Repository (CLDR) provides key building +# blocks for software to support the world's languages, with the largest +# and most extensive standard repository of locale data available. +--- +pt-BR: + cldr: + language_name: Português do brasil diff --git a/config/locales/generated/pt-PT.yml b/config/locales/generated/pt-PT.yml new file mode 100644 index 000000000000..df895c6f05c2 --- /dev/null +++ b/config/locales/generated/pt-PT.yml @@ -0,0 +1,14 @@ +# This file has been generated by script/i18n/generate_languages_translations. +# Please do not edit directly. +# +# To update this file, run script/i18n/generate_languages_translations. +# +# The translations come from version 44 of the Unicode CLDR project. +# +# The Unicode Common Locale Data Repository (CLDR) provides key building +# blocks for software to support the world's languages, with the largest +# and most extensive standard repository of locale data available. +--- +pt-PT: + cldr: + language_name: Português europeu diff --git a/config/locales/generated/ro.yml b/config/locales/generated/ro.yml index ec3bc46b3e34..86f33d078d8d 100644 --- a/config/locales/generated/ro.yml +++ b/config/locales/generated/ro.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/ru.yml b/config/locales/generated/ru.yml index 45ba9c6ebf78..eaf99e995274 100644 --- a/config/locales/generated/ru.yml +++ b/config/locales/generated/ru.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/rw.yml b/config/locales/generated/rw.yml index 8faed7a03f22..15233566b8fe 100644 --- a/config/locales/generated/rw.yml +++ b/config/locales/generated/rw.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/si.yml b/config/locales/generated/si.yml index d76e31d60f4a..80b061826cc7 100644 --- a/config/locales/generated/si.yml +++ b/config/locales/generated/si.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/sk.yml b/config/locales/generated/sk.yml index b106ac3bcd3d..2628bfa7f7e0 100644 --- a/config/locales/generated/sk.yml +++ b/config/locales/generated/sk.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/sl.yml b/config/locales/generated/sl.yml index 9d233b0c0b47..6e3131748247 100644 --- a/config/locales/generated/sl.yml +++ b/config/locales/generated/sl.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/sr.yml b/config/locales/generated/sr.yml index 3f8343b4ca1a..55dd43c36c8e 100644 --- a/config/locales/generated/sr.yml +++ b/config/locales/generated/sr.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/sv.yml b/config/locales/generated/sv.yml index 4c1382072bb1..bfd9e136d7d5 100644 --- a/config/locales/generated/sv.yml +++ b/config/locales/generated/sv.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/th.yml b/config/locales/generated/th.yml index 7754d13ea959..c5fb01491e7f 100644 --- a/config/locales/generated/th.yml +++ b/config/locales/generated/th.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/tr.yml b/config/locales/generated/tr.yml index 1efd6f1a221b..dd999d8ce822 100644 --- a/config/locales/generated/tr.yml +++ b/config/locales/generated/tr.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/uk.yml b/config/locales/generated/uk.yml index ef9a7645235c..be47683be2a2 100644 --- a/config/locales/generated/uk.yml +++ b/config/locales/generated/uk.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/pt.yml b/config/locales/generated/uz.yml similarity index 79% rename from config/locales/generated/pt.yml rename to config/locales/generated/uz.yml index 5594caf358fb..bc8f8cb37067 100644 --- a/config/locales/generated/pt.yml +++ b/config/locales/generated/uz.yml @@ -3,12 +3,12 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest # and most extensive standard repository of locale data available. --- -pt: +uz: cldr: - language_name: Português + language_name: O‘zbek diff --git a/config/locales/generated/vi.yml b/config/locales/generated/vi.yml index f7f1e615d8b8..725c6f90a228 100644 --- a/config/locales/generated/vi.yml +++ b/config/locales/generated/vi.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/zh-CN.yml b/config/locales/generated/zh-CN.yml index 86e82a4aded6..526867e08582 100644 --- a/config/locales/generated/zh-CN.yml +++ b/config/locales/generated/zh-CN.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/config/locales/generated/zh-TW.yml b/config/locales/generated/zh-TW.yml index 76fb81aead2c..03d965b9734f 100644 --- a/config/locales/generated/zh-TW.yml +++ b/config/locales/generated/zh-TW.yml @@ -3,7 +3,7 @@ # # To update this file, run script/i18n/generate_languages_translations. # -# The translations come from version 42 of the Unicode CLDR project . +# The translations come from version 44 of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/db/migrate/20240307190126_rename_portuguese_locale.rb b/db/migrate/20240307190126_rename_portuguese_locale.rb new file mode 100644 index 000000000000..4dd89c474ec4 --- /dev/null +++ b/db/migrate/20240307190126_rename_portuguese_locale.rb @@ -0,0 +1,24 @@ +class RenamePortugueseLocale < ActiveRecord::Migration[7.1] + def up + execute "UPDATE users SET language = 'pt-BR' WHERE language = 'pt'" + execute "UPDATE settings SET value = 'pt-BR' WHERE name = 'default_language' AND value = 'pt'" + modify_available_languages!('pt', 'pt-BR') + end + + def down + execute "UPDATE users SET language = 'pt' WHERE language = 'pt-BR'" + execute "UPDATE settings SET value = 'pt' WHERE name = 'default_language' AND value = 'pt-BR'" + modify_available_languages!('pt-BR', 'pt') + end + + private + + def modify_available_languages!(from, to) + languages = Setting.available_languages + if languages.include?(from) + languages << to + languages.delete(from) + Setting.available_languages = languages + end + end +end diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2a3759f1c565..5cbab641ac6b 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -37,6 +37,7 @@ "@fullcalendar/resource-common": "^5.11.5", "@fullcalendar/resource-timeline": "^6.1.8", "@fullcalendar/timegrid": "^6.1.8", + "@github/webauthn-json": "^2.1.1", "@hotwired/stimulus": "^3.2.1", "@hotwired/turbo": "^7.3.0", "@hotwired/turbo-rails": "^7.3.0", @@ -3732,6 +3733,14 @@ "resolved": "https://registry.npmjs.org/@github/tab-container-element/-/tab-container-element-3.3.0.tgz", "integrity": "sha512-vHlN/GXgaJFJhh4oUYRh1pc4RAqduKlQOrEjVgSxR4JhLXsQcZ/hKWfCsRZAuZbSPzUGEYvggdieamS4FRSe4g==" }, + "node_modules/@github/webauthn-json": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@github/webauthn-json/-/webauthn-json-2.1.1.tgz", + "integrity": "sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ==", + "bin": { + "webauthn-json": "dist/bin/main.js" + } + }, "node_modules/@hotwired/stimulus": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/@hotwired/stimulus/-/stimulus-3.2.2.tgz", @@ -23315,6 +23324,11 @@ "resolved": "https://registry.npmjs.org/@github/tab-container-element/-/tab-container-element-3.3.0.tgz", "integrity": "sha512-vHlN/GXgaJFJhh4oUYRh1pc4RAqduKlQOrEjVgSxR4JhLXsQcZ/hKWfCsRZAuZbSPzUGEYvggdieamS4FRSe4g==" }, + "@github/webauthn-json": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@github/webauthn-json/-/webauthn-json-2.1.1.tgz", + "integrity": "sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ==" + }, "@hotwired/stimulus": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/@hotwired/stimulus/-/stimulus-3.2.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index 2bd1400c2cc6..7728be97533a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -88,6 +88,7 @@ "@fullcalendar/resource-common": "^5.11.5", "@fullcalendar/resource-timeline": "^6.1.8", "@fullcalendar/timegrid": "^6.1.8", + "@github/webauthn-json": "^2.1.1", "@hotwired/stimulus": "^3.2.1", "@hotwired/turbo": "^7.3.0", "@hotwired/turbo-rails": "^7.3.0", diff --git a/frontend/src/stimulus/controllers/dynamic/two-factor-authentication.controller.ts b/frontend/src/stimulus/controllers/dynamic/two-factor-authentication.controller.ts index fd1b2fe5267d..ac7e1e4a0751 100644 --- a/frontend/src/stimulus/controllers/dynamic/two-factor-authentication.controller.ts +++ b/frontend/src/stimulus/controllers/dynamic/two-factor-authentication.controller.ts @@ -29,15 +29,83 @@ */ import { Controller } from '@hotwired/stimulus'; +import * as WebAuthnJSON from '@github/webauthn-json/browser-ponyfill'; import QrCreator from 'qr-creator'; export default class TwoFactorAuthenticationController extends Controller { - static targets = [ - 'resendOptions', - 'qrCodeElement', - ]; + static targets = ['resendOptions', 'qrCodeElement', 'webauthnCredential', 'errorDisplay']; declare readonly resendOptionsTarget:HTMLElement; + declare readonly webauthnCredentialTarget:HTMLInputElement; + declare readonly errorDisplayTarget:HTMLElement; + + async onVerifyDevice(event:SubmitEvent) { + const form = event.target as HTMLFormElement; + const data = form.dataset; + + // We are not in the context of verifying a WebAuthn device, so we can just submit the form + if (data.deviceType !== 'webauthn') { + return true; + } + + this.clearError(); + event.preventDefault(); + + try { + const verifyOptionsRequest = await fetch(data.challengeUrl as string); + const verifyOptions = await verifyOptionsRequest.text(); + + const options = WebAuthnJSON.parseRequestOptionsFromJSON({ + publicKey: JSON.parse(verifyOptions), + }); + + const credential = await WebAuthnJSON.get(options); + + if (credential) { + this.webauthnCredentialTarget.value = JSON.stringify(credential); + form.submit(); + } + + return true; + } catch (error) { + this.displayError(error); + return false; + } + } + + async onCreateDevice(event:SubmitEvent) { + const form = event.target as HTMLFormElement; + const data = form.dataset; + + // We are not in the context of adding a WebAuthn device, so we can just submit the form + if (data.deviceType !== 'webauthn') { + return true; + } + + this.clearError(); + event.preventDefault(); + + try { + const createOptionsRequest = await fetch(data.challengeUrl as string); + const createOptions = await createOptionsRequest.text(); + + const options = WebAuthnJSON.parseCreationOptionsFromJSON({ + publicKey: JSON.parse(createOptions), + }); + + const credential = await WebAuthnJSON.create(options); + + if (credential) { + this.webauthnCredentialTarget.value = JSON.stringify(credential); + form.submit(); + } + + return true; + } catch (error) { + this.displayError(error); + return false; + } + } qrCodeElementTargetConnected(target:HTMLElement) { QrCreator.render( @@ -62,4 +130,16 @@ export default class TwoFactorAuthenticationController extends Controller { evt.preventDefault(); this.resendOptionsTarget.hidden = !this.resendOptionsTarget.hidden; } + + private displayError(error:DOMException) { + let errorMessage = `Error registering device: ${error.message}`; + if (error.name === 'AbortError') { + errorMessage = I18n.t('js.two_factor_authentication.errors.aborted'); + } + this.errorDisplayTarget.innerText = errorMessage; + } + + private clearError() { + this.errorDisplayTarget.innerText = ''; + } } diff --git a/modules/avatars/config/locales/crowdin/js-pt.yml b/modules/avatars/config/locales/crowdin/js-pt.yml deleted file mode 100644 index caa968380f55..000000000000 --- a/modules/avatars/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,15 +0,0 @@ -#English strings go here -pt: - js: - label_preview: 'Pré-visualizar' - button_update: 'Atualizar' - avatars: - label_choose_avatar: "Escolher arquivo com Imagem do Perfil" - uploading_avatar: "Enviando sua imagem do perfil." - text_upload_instructions: | - Carregue sua própria imagem do perfil com 128 x 128 pixeis. Arquivos maiores serão redimensionados e cortados. - Uma visualização da sua imagem do perfil será exibida antes de carregar, desde que você tenha selecionado uma imagem. - error_image_too_large: "A imagem é muito grande." - wrong_file_format: "Formatos permitidos são jpg, png, gif" - empty_file_error: "Por favor, envie uma imagem válida (jpg, png, gif)" - diff --git a/modules/avatars/config/locales/crowdin/pt.yml b/modules/avatars/config/locales/crowdin/pt.yml deleted file mode 100644 index 1e6746f8d7cd..000000000000 --- a/modules/avatars/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,41 +0,0 @@ -#English strings go here -pt: - plugin_openproject_avatars: - name: "Imagens do perfil" - description: >- - Este plugin permite que os usuários do OpenProject carreguem uma imagem para ser usada como avatar ou que usem imagens registadas do Gravatar. - label_avatar: "Imagem do perfil" - label_avatar_plural: "Imagens do perfil" - label_current_avatar: "Imagem atual do perfil" - label_choose_avatar: "Escolher arquivo com Imagem do Perfil" - message_avatar_uploaded: "Imagem do perfil alterada com sucesso." - error_image_upload: "Erro ao salvar a imagem." - error_image_size: "A imagem é muito grande." - button_change_avatar: "Alterar Imagem do perfil" - are_you_sure_delete_avatar: "Tem certeza que deseja excluir sua Imagem do perfil?" - avatar_deleted: "Imagem do perfil excluída com sucesso." - unable_to_delete_avatar: "A Imagem do perfil não pode ser excluída." - wrong_file_format: "Formatos permitidos são jpg, png, gif" - empty_file_error: "Por favor, envie uma imagem válida (jpg, png, gif)" - avatars: - label_avatar: "Imagem do perfil" - label_gravatar: 'Gravatar' - label_current_avatar: 'Imagem atual do perfil' - label_local_avatar: 'Imagem do perfil personalizada' - text_current_avatar: | - A imagem a seguir mostra a imagem atual do perfil. - text_upload_instructions: | - Carregue sua própria imagem do perfil com 128 x 128 pixels. Arquivos maiores serão redimensionados e cortados. - Uma visualização da sua imagem do perfil será exibida antes de carregar, uma vez que você tenha selecionado uma imagem. - text_change_gravatar_html: 'Para alterar ou adicionar o Gravatar para seu endereço de e-mail, vá para %{gravatar_url}.' - text_your_local_avatar: | - O OpenProject permite que você envie uma imagem do perfil personalizada. - text_local_avatar_over_gravatar: | - Se você definir uma, esta imagem do perfil personalizada será usada em precedência sobre o gravatar acima. - text_your_current_gravatar: | - Se você registrou um, o OpenProject usa seu gravatar, ou uma imagem ou ícone padrão. - O gravatar atual é o seguinte: - settings: - enable_gravatars: 'Habilitar Gravatar para o usuário' - gravatar_default: "Imagem Gravatar padrão" - enable_local_avatars: 'Habilitar Imagem do perfil personalizada' diff --git a/modules/backlogs/config/locales/crowdin/pt.yml b/modules/backlogs/config/locales/crowdin/pt.yml deleted file mode 100644 index b8c6e3776b33..000000000000 --- a/modules/backlogs/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,158 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - plugin_openproject_backlogs: - name: "Backlogs OpenProject" - description: "Este módulo acrescenta recursos que permitem que as equipes ágeis trabalhem com o OpenProject em projetos Scrum." - activerecord: - attributes: - work_package: - position: "Posição" - story_points: "Pontos de história" - backlogs_work_package_type: "Tipo de backlog" - errors: - models: - work_package: - attributes: - blocks_ids: - can_only_contain_work_packages_of_current_sprint: "pode conter somente os IDs dos pacotes de trabalho no sprint atual." - must_block_at_least_one_work_package: "deve conter o ID de pelo menos um tíquete." - version_id: - task_version_must_be_the_same_as_story_version: "deve ser igual à versão da história dos pais." - sprint: - cannot_end_before_it_starts: "Sprint não pode terminar antes de começar." - backlogs: - add_new_story: "Nova história" - any: "qualquer" - backlog_settings: "Configurações de backlogs" - burndown_graph: "Gráfico de Burndown" - card_paper_size: "Tamanho do papel para impressão de cartões" - chart_options: "Opções de gráfico" - close: "Fechar" - column_width: "Largura da Coluna:" - date: "Dia" - definition_of_done: "Definição de pronto" - generating_chart: "Gerando gráfico..." - hours: "Horas" - impediment: "Impedimento" - label_versions_default_fold_state: "Mostrar versões em modo fechado" - work_package_is_closed: "Pacote de trabalho está pronto, quando" - label_is_done_status: "Situação %{status_name} significa pronto" - no_burndown_data: "Não há dados de burndown disponíveis. É necessário ter o conjunto de datas de início e fim de sprint." - points: "Pontos" - positions_could_not_be_rebuilt: "Posições não poderiam ser reconstruídas." - positions_rebuilt_successfully: "Posições reconstruídas com sucesso." - properties: "Propriedades" - rebuild: "Reconstruir" - rebuild_positions: "Reconstruir posições" - remaining_hours: "Trabalho restante" - remaining_hours_ideal: "Trabalho restante (ideal)" - show_burndown_chart: "Gráfico de Burndown" - story: "História" - story_points: "Pontos de História" - story_points_ideal: "Pontos de história (ideal)" - task: "Tarefa" - task_color: "Cor da tarefa" - unassigned: "Não atribuída" - x_more: "%{count} mais..." - backlogs_active: "ativo" - backlogs_any: "qualquer" - backlogs_inactive: "Projeto não mostra nenhuma atividade" - backlogs_points_burn_direction: "Pontos burn up/down" - backlogs_product_backlog: "Backlog do produto" - backlogs_product_backlog_is_empty: "Backlog do produto está vazio" - backlogs_product_backlog_unsized: "O topo do backlog de produto tem histórias não dimensionadas" - backlogs_sizing_inconsistent: "Tamanhos das histórias contrastam com suas estimativas" - backlogs_sprint_notes_missing: "Sprints fechados sem notas de revisão/retrospectiva" - backlogs_sprint_unestimated: "Sprints ativos ou fechados com histórias não estimadas" - backlogs_sprint_unsized: "Projeto tem histórias em sprints ativos ou recentemente fechados que não tem tamanho" - backlogs_sprints: "Sprints" - backlogs_story: "História" - backlogs_story_type: "Tipos de história" - backlogs_task: "Tarefa" - backlogs_task_type: "Tipo de tarefa" - backlogs_velocity_missing: "Nenhuma velocidade foi calculada para este projeto" - backlogs_velocity_varies: "Velocidade varia significativamente ao longo de sprints" - backlogs_wiki_template: "Modelo para a página de wiki da sprint" - backlogs_empty_title: "Não há versões definidas para serem usadas nos backlogs" - backlogs_empty_action_text: "Para iniciar com backlogs, crie uma nova versão e atribua a uma coluna de backlogs." - button_edit_wiki: "Editar página wiki" - error_backlogs_task_cannot_be_story: "As configurações são inválidas. O tipo de tarefa também pode ser um tipo de história." - error_intro_plural: "Foram encontrados os seguintes erros :" - error_intro_singular: "Foi encontrado o seguinte erro:" - error_outro: "Por favor, corrija os erros acima antes de enviar novamente." - event_sprint_description: "%{summary}: %{url}%{description}" - event_sprint_summary: "%{project}: %{summary}" - ideal: "ideal" - inclusion: "não está incluído na lista" - label_back_to_project: "Voltar à página do projeto" - label_backlog: "Backlog" - label_backlogs: "Backlogs" - label_backlogs_unconfigured: "Você ainda não configurou o Backlog. Por favor, vá para %{administration} > %{plugins} e, em seguida, clique em %{configure} o link para este plugin. Uma vez que você definiu os campos, volte a esta página para começar a usar a ferramenta." - label_blocks_ids: "IDs dos pacotes de trabalho bloqueados" - label_burndown: "Burndown" - label_column_in_backlog: "Coluna no backlog" - label_hours: "horas" - label_work_package_hierarchy: "Hierarquia de Pacote de Trabalho" - label_master_backlog: "Backlog principal" - label_not_prioritized: "não priorizado" - label_points: "pontos" - label_points_burn_down: "Abaixo" - label_points_burn_up: "Acima" - label_product_backlog: "Backlog do produto" - label_select_all: "Selecionar tudo" - label_sprint_backlog: "Backlog do sprint" - label_sprint_cards: "Exportar cartões" - label_sprint_impediments: "Impedimentos do Sprint" - label_sprint_name: "Sprint \"%{name}\"" - label_sprint_velocity: "Velocidade %{velocity}, baseado em %{sprints} sprints, com uma média de %{days} dias" - label_stories: "Histórias" - label_stories_tasks: "Histórias/tarefas" - label_task_board: "Quadro de tarefas" - label_version_setting: "Versões" - label_version: 'Versão' - label_webcal: "Webcal Feed" - label_wiki: "Wiki" - permission_view_master_backlog: "Visualizar backlog principal" - permission_view_taskboards: "Visualizar quadro de tarefas" - permission_select_done_statuses: "Selecione situações concluídas" - permission_update_sprints: "Editar sprints" - points_accepted: "pontos aceitos" - points_committed: "pontos comprometidos" - points_resolved: "pontos resolvidos" - points_to_accept: "pontos não aceitos" - points_to_resolve: "pontos não resolvidos" - project_module_backlogs: "Backlogs" - rb_label_copy_tasks: "Copiar pacotes de trabalho" - rb_label_copy_tasks_all: "Todos" - rb_label_copy_tasks_none: "Nenhum" - rb_label_copy_tasks_open: "Aberto" - rb_label_link_to_original: "Incluir link para a história original" - remaining_hours: "trabalho restante" - required_burn_rate_hours: "burn rate necessário (horas)" - required_burn_rate_points: "burn rate necessário (pontos)" - todo_work_package_description: "%{summary}: %{url}%{description}" - todo_work_package_summary: "%{type}: %{summary}" - version_settings_display_label: "Coluna no backlog" - version_settings_display_option_left: "esquerda" - version_settings_display_option_none: "nenhum" - version_settings_display_option_right: "direita" diff --git a/modules/bim/config/locales/crowdin/fr.yml b/modules/bim/config/locales/crowdin/fr.yml index 1be78163d4bc..9e4ab945797c 100644 --- a/modules/bim/config/locales/crowdin/fr.yml +++ b/modules/bim/config/locales/crowdin/fr.yml @@ -58,7 +58,7 @@ fr: perform_description: "Voulez-vous importer ou mettre à jour les problèmes repris ci-dessus ?" replace_with_system_user: 'Les remplacer par l''utilisateur "Système"' import_as_system_user: 'Les importer comme utilisateur "Système".' - what_to_do: "Que voulez-vous faire?" + what_to_do: "Que voulez-vous faire ?" work_package_has_newer_changes: "Obsolète ! Ce sujet n'a pas été mis à jour, car les derniers changements sur le serveur étaient plus récents que la \"ModifiedDate\" du sujet importé. Toutefois, les commentaires sur le sujet ont été importés." bcf_file_not_found: "Impossible de localiser le fichier BCF. Veuillez recommencer le processus de téléversement." export: diff --git a/modules/bim/config/locales/crowdin/js-pt.yml b/modules/bim/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 646cc77181a5..000000000000 --- a/modules/bim/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,29 +0,0 @@ -#English strings go here -pt: - js: - bcf: - label_bcf: 'BCF' - import: 'Importar' - import_bcf_xml_file: 'Importar arquivo BCF XML (BCF versão 2.1)' - export: 'Exportar' - export_bcf_xml_file: 'Exportar arquivo BCF XML (BCF versão 2.1)' - viewpoint: 'Ponto de vista' - add_viewpoint: 'Adicionar ponto de vista' - show_viewpoint: 'Exibir ponto de vista' - delete_viewpoint: 'Excluir ponto de vista' - management: 'Gestão de BCF' - refresh: 'Atualizar' - refresh_work_package: 'Atualizar pacote de trabalho' - ifc_models: - empty_warning: "Este projeto ainda não possui nenhum modelo IFC." - use_this_link_to_manage: "Use este link para fazer o upload e gerenciar seus modelos IFC" - keyboard_input_disabled: "O visualizador não tem controles de teclado. Clique no visualizador para fornecer o controle do teclado a ele." - models: - ifc_models: 'Modelos IFC' - views: - viewer: 'Visualizador' - split: 'Visualizador e tabela' - split_cards: 'Visualizador e cartões' - revit: - revit_add_in: "Complemento Revit" - revit_add_in_settings: "Configurações do complemento Revit" diff --git a/modules/bim/config/locales/crowdin/pt.seeders.yml b/modules/bim/config/locales/crowdin/pt.seeders.yml deleted file mode 100644 index 7774cdba654f..000000000000 --- a/modules/bim/config/locales/crowdin/pt.seeders.yml +++ /dev/null @@ -1,734 +0,0 @@ -#This file has been generated by script/i18n/generate_seeders_i18n_source_file. -#Please do not edit directly. -#This file is part of the sources sent to crowdin for translation. ---- -pt: - seeds: - bim: - priorities: - item_0: - name: Baixa - item_1: - name: Normal - item_2: - name: Alta - item_3: - name: Crítico - statuses: - item_0: - name: Novo - item_1: - name: Em andamento - item_2: - name: Resolvido - item_3: - name: Fechado - time_entry_activities: - item_0: - name: Gerenciamento - item_1: - name: Especificação - item_2: - name: Outro - types: - item_0: - name: Tarefa - item_1: - name: Marco - item_2: - name: Fase - item_3: - name: Problema - item_4: - name: Observação - item_5: - name: Requisição - item_6: - name: Conflito - global_queries: - item_0: - name: 'Tabela incorporada: Secundários' - type_configuration: - item_0: - form_configuration: - item_0: - group_name: Filhos - groups: - item_0: - name: Arquitetos - item_1: - name: Coordenadores BIM - item_2: - name: Gerentes BIM - item_3: - name: Modelos BIM - item_4: - name: Coordenadores BIM Líderes - item_5: - name: Engenheiros MEP - item_6: - name: Planejadores - item_7: - name: Engenheiros estruturais - welcome: - title: Boas-vindas à edição BIM do OpenProject! - text: | - Confira os projetos de demonstração para começar com alguns exemplos. - - * [(Demo) Projeto de construção]({{opSetting:base_url}}/projects/demo-construction-project): Planejamento, processo BIM, gerenciamento de BCF e construção, tudo num piscar de olhos. - * [(Demo) Planejamento e construção]({{opSetting:base_url}}/projects/demo-planning-constructing-project): planejamento clássico e gerenciamento de construção. - * [(Demo) Projeto Bim]({{opSetting:base_url}}/projects/demo-bim-project): Processo e coordenação BIM. - * [(Demo) gerenciamento BCF]({{opSetting:base_url}}/projects/demo-bcf-management-project): gerenciamento BCF. - - Além disso, você pode criar um [novo projeto] em branco ({{opSetting:base_url}}/projects/new). - - Nunca deixe de colaborar. Com código aberto e mente aberta. - - Você pode alterar este texto de boas-vindas [aqui]({{opSetting:base_url}}/admin/settings/general). - projects: - demo-construction-project: - name: "(Demonstração) Projeto de construção" - status_explanation: Todas as tarefas e os subprojetos estão dentro do prazo. As pessoas envolvidas conhecem suas tarefas. O sistema está completamente configurado. - description: Este é um breve resumo dos objetivos deste projeto de demonstração da construção. - news: - item_0: - title: Bem-vindo ao seu projeto de demonstração - summary: | - Estamos felizes por você ter se juntado a nós. - Neste módulo, você pode comunicar as novidades do projeto aos membros da sua equipe. - description: As notícias atuais - categories: - item_0: Categoria 1 (a ser alterada nas configurações do projeto) - queries: - item_0: - name: 'Plano do Projeto:' - item_1: - name: Etapas - item_2: - name: Tarefas - item_3: - name: Planejador de equipe - boards: - bcf: - name: Fluxo de trabalho simples de soltar arrastar - project-overview: - widgets: - item_0: - options: - name: Bem-vindo - item_1: - options: - name: Guia de introdução - text: | - Estamos felizes por ter você conosco! Sugerimos que você tente algumas coisas para começar no OpenProject. - - Mas antes de ir direto ao assunto, você deve saber que este projeto exemplar é dividido em dois projetos diferentes: - - 1. [Projeto de construção]({{opSetting:base_url}}/projects/demo-planning-constructing-project): Aqui você encontrará as funções clássicas, alguns fluxos de trabalho e pacotes de trabalho para seu projeto de construção. - 2. [Criado modelo BIM]({{opSetting:base_url}}/projects/demo-bim-project): Este projeto também oferece papéis, fluxos de trabalho e pacotes de trabalho, mas especialmente no contexto BIM. - - _Tente as seguintes etapas:_ - - 1. _Convide novos membros para o seu projeto_: → Vá para [Membros]({{opSetting:base_url}}/projects/demo-construction-project/members) na navegação do projeto. - 2. _Veja o trabalho em seus projetos_: → Vá para [Pacotes de trabalho]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) na navegação do projeto. - 3. _Crie um novo pacote de trabalho_: → Vá para [Pacotes de trabalho → Criar]({{opSetting:base_url}}/projects/demo-construction-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). - 4. _Crie e atualize um diagrama de Gantt_: → Vá para [Diagrama de Gantt]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) na navegação do projeto. - 5. _Ative outros módulos_: → Vá para [Configurações do projeto → Módulos]({{opSetting:base_url}}/projects/demo-construction-project/settings/modules). - 6. _Confira a exibição do bloco para obter uma visão geral de seus problemas de BCF:_ → Vá para [Pacotes de trabalho]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22id%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22card%22%7D) - 7. _Trabalho ágil? Confira nossos novos quadros:_ → Vá para [Quadros]({{opSetting:base_url}}/projects/demo-construction-project/boards) - - Aqui você encontrará nossos [Guias do usuário](https://www.openproject.org/docs/user-guide/). - Informe-nos se tiver alguma dúvida ou se precisar de suporte. Contate-nos: [support\[at\]openproject.com](mailto:support@openproject.com). - item_4: - options: - name: Membros - item_5: - options: - name: Pacotes de trabalho - item_6: - options: - name: Etapas - demo-planning-constructing-project: - name: "(Demonstração) Planejamento e construção" - status_explanation: Todas as tarefas estão dentro do cronograma. As pessoas envolvidas conhecem suas tarefas. O sistema está completamente configurado. - description: Este é um breve resumo dos objetivos deste projeto de demonstração de planejamento e construção. - news: - item_0: - title: Bem-vindo ao seu projeto de demonstração - summary: | - Estamos felizes por você ter se juntado a nós. - Neste módulo, você pode comunicar as novidades do projeto aos membros da sua equipe. - description: As notícias atuais - categories: - item_0: Categoria 1 (a ser alterada nas configurações do projeto) - queries: - item_0: - name: 'Plano do Projeto:' - item_1: - name: Etapas - item_2: - name: Tarefas - item_3: - name: Planejador de equipe - project-overview: - widgets: - item_0: - options: - name: Bem-vindo - item_1: - options: - name: Guia de introdução - text: | - Estamos felizes por ter você conosco! Sugerimos que você tente algumas coisas para começar no OpenProject. - - Aqui você encontrará as funções clássicas, alguns fluxos de trabalho e pacotes de trabalho para o seu projeto de construção. - - _Tente as seguintes etapas:_ - - 1. _Convide novos membros para o seu projeto:_ → Vá para [Membros]({{opSetting:base_url}}/projects/demo-planning-constructing-project/members) na navegação do projeto. - 2. _Veja o trabalho em seus projetos:_ → Vá para [Pacotes de trabalho]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) na navegação do projeto. - 3. _Crie um novo pacote de trabalho:_ → Vá para [Pacotes de trabalho → Criar]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). - 4. _Crie e atualize um diagrama de Gantt:_ → Vá para [Diagrama de Gantt]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) na navegação do projeto. - 5. _Ative outros módulos:_ → Vá para [Configurações do projeto → Módulos]({{opSetting:base_url}}/projects/demo-planning-constructing-project/settings/modules). - 6. _Trabalho ágil? Crie um novo quadro:_ → Vá para [Quadros]({{opSetting:base_url}}/projects/demo-planning-constructing-project/boards) - - Aqui você encontrará nossos [Guias do usuário](https://www.openproject.org/docs/user-guide/). - Informe-nos se tiver alguma dúvida ou se precisar de suporte. Contate-nos: [support\[at\]openproject.com](mailto:support@openproject.com). - item_4: - options: - name: Membros - item_5: - options: - name: Pacotes de trabalho - item_6: - options: - name: Etapas - work_packages: - item_0: - subject: Projeto de construção de início do projeto - description: |- - O kick off do projeto dá início ao projeto em sua empresa. Todos os que fazem parte deste projeto devem ser convidados para o kick off para receber o primeiro briefing. - - A próxima etapa pode ser a verificação do cronograma e ajustar os compromissos, observando o [diagrama de Gantt]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22id%22%2C%22subject%22%2C%22startDate%22%2C%22dueDate%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22status%22%2C%22o%22%3A%22o%22%2C%22v%22%3A%5B%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%7D). - item_1: - subject: Avaliação básica - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - children: - item_0: - subject: Obtendo informações do primeiro projeto - description: |- - ## Objetivo - - * Definir tarefas sobre as necessidades do cliente - * Estimativa de prazo e custo deve ser definida - - ## Descrição - - * Identificar as necessidades do cliente realizando um workshop com ele/ela - * Cada necessidade deve representar uma tarefa com seus pacotes de trabalho correspondentes - * Derivar a estimativa de custo e prazo - item_1: - subject: Resumir resultados - description: |- - ## Objetivo - - * Criar uma visão geral útil dos resultados - * Verificar o que foi feito e resuma os resultados - * Comunicar todos os resultados relevantes ao cliente - * Identificar as condições de contorno fundamentais do projeto - - ## Descrição - - * Cada tópico recebe sua própria visão geral, que será usada como um catálogo de resultados - * Esta visão geral informa todos os participantes sobre as decisões tomadas - * ... - item_2: - subject: Final da avaliação básica - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_2: - subject: Planejamento preliminar - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - children: - item_0: - subject: Primeiro rascunho em desenvolvimento - description: |- - ## Objetivo - - * Criar uma visão geral útil dos resultados - * Verificar o que foi feito e resuma os resultados - * Comunicar todos os resultados relevantes ao cliente - * Identificar as condições de contorno fundamentais do projeto - - ## Descrição - - * Cada tópico recebe sua própria visão geral, que será usada como um catálogo de resultados - * Esta visão geral informa todos os participantes sobre as decisões tomadas - * ... - item_1: - subject: Resumir resultados - description: |- - ## Objetivo - - * Criar uma visão geral útil dos resultados - * Verificar o que foi feito e resuma os resultados - * Comunicar todos os resultados relevantes ao cliente - * Identificar as condições de contorno fundamentais do projeto - - ## Descrição - - * Cada tópico recebe sua própria visão geral, que será usada como um catálogo de resultados - * Esta visão geral informa todos os participantes sobre as decisões tomadas - * ... - item_3: - subject: Passagem de planejamento preliminar - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_4: - subject: Planejamento de design - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - children: - item_0: - subject: Finalizando design - description: |- - ## Objetivo - - * Projeto concluído - * Todas as partes estão satisfeitas com os resultados da fase de planejamento do projeto - - ## Descrição - - * O design do projeto será finalizado - * Todas as partes concordam com o design - * O proprietário está feliz com os resultados - * ... - item_1: - subject: Congelamento de design - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_5: - subject: Fase de construção - children: - item_0: - subject: Iniciar construção - description: |- - ## Objetivo - - * Cerimônia de inauguração - * Montagem do canteiro de obras - * ... - - ## Descrição - - * Preparo do terreno para o projeto - * Reúna a equipe - * ... - item_1: - subject: Base - description: |- - ## Objetivo - - * Colocação da primeira pedra - * ... - - ## Descrição - - * Configuração do misturador de concreto - * Criação da cadeia de suprimentos para o concreto - * ... - item_2: - subject: Construção - description: |- - ## Objetivo - - * Cerimônia de encerramento - * Paredes e tetos concluídos - * ... - - ## Descrição - - * Criação de todos os níveis estruturais do edifício - * Instalação de portas e janelas - * Acabamento da estrutura do telhado - * ... - item_3: - subject: Concluindo fachada - description: |- - ## Objetivo - - * Fachada concluída - * Todo o edifício está impermeável - * ... - - ## Descrição - - * Instale todos os elementos para a fachada - * Conclusão do telhado - * ... - item_4: - subject: Instalação do sistema de serviço de construção - description: |- - ## Objetivo - - * Todos os sistemas de serviços prediais estão prontos para serem usados - - ## Descrição - - * Instalação do sistema de aquecimento - * Instalação do sistema de climatização - * Instalação elétrica - * ... - item_5: - subject: Toques finais - description: |- - ## Objetivo - - * Entrega das chaves - * O cliente está satisfeito com o seu edifício - * ... - - ## Descrição - - * Finalização da instalação dos sistemas de atendimento predial - * Finalização da construção interior - * Finalização da fachada - * ... - item_6: - subject: Festa de inauguração de casa - description: |- - ## Objetivo - - * Divirta-se muito! - - ## Descrição - - * Convidar a equipe de construção - * Convidar seus amigos - * Trazer algumas bebidas, lanches e seu sorriso - demo-bim-project: - name: "(Demo) Projeto BIM" - status_explanation: Todas as tarefas e subprojetos estão dentro do prazo. As pessoas envolvidas conhecem suas tarefas. O sistema está completamente configurado. - description: Este é um breve resumo dos objetivos deste projeto BIM de demonstração. - news: - item_0: - title: Bem-vindo ao seu projeto de demonstração - summary: | - Estamos felizes por você ter se juntado a nós. - Neste módulo, você pode comunicar as novidades do projeto aos membros da sua equipe. - description: As notícias atuais - categories: - item_0: Categoria 1 (a ser alterada nas configurações do projeto) - queries: - item_0: - name: 'Plano do Projeto:' - item_1: - name: Etapas - item_2: - name: Tarefas - item_3: - name: Planejador de equipe - project-overview: - widgets: - item_0: - options: - name: Bem-vindo - item_1: - options: - name: Guia de introdução - text: | - Estamos felizes por você esta conosco! Sugerimos que você tente algumas coisas para começar no OpenProject. - - Este projeto de demonstração oferece funções, fluxos de trabalho e pacotes de trabalho especializados para BIM. - - _Tente as seguintes etapas:_ - - 1. _Convide novos membros para o seu projeto:_ → Vá para [Membros]({{opSetting:base_url}}/projects/demo-bim-project/members) na navegação do projeto. - 2. _Carregue e visualize modelos 3D no formato IFC:_ → Vá para [BCF]({{opSetting:base_url}}/projects/demo-bim-project/bcf) na navegação do projeto. - 3. _Crie e gerencie problemas BCF vinculados diretamente ao modelo IFC:_ → Vá para [BCF]({{opSetting:base_url}}/projects/demo-bim-project/bcf) → Criar. - 4. _Visualize o trabalho em seus projetos:_ → Vá para [Pacotes de trabalho]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) na navegação do projeto. - 5. _Crie um novo pacote de trabalho:_ → Vá para [Pacotes de trabalho → Criar]({{opSetting:base_url}}/projects/demo-bim-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). - 6. _Crie e atualize um diagrama de Gantt:_ → Vá para [Diagrama de Gantt]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) na navegação do projeto. - 7. _Ative outros módulos:_ → Vá para [Configurações do projeto → Módulos]({{opSetting:base_url}}/projects/demo-bim-project/settings/modules). - 8. _Confira a exibição lado a lado para obter uma visão geral de seus problemas de BCF:_ → Vá para [Pacotes de trabalho]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22id%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22card%22%7D) - 9. _Trabalho ágil? Crie um novo quadro:_ → Vá para [Quadros]({{opSetting:base_url}}/projects/demo-bim-project/boards) - - Aqui você encontrará nossos [Guias do usuário](https://www.openproject.org/docs/user-guide/). - Informe-nos se tiver alguma dúvida ou se precisar de suporte. Contate-nos: [support\[at\]openproject.com](mailto:support@openproject.com). - item_4: - options: - name: Membros - item_5: - options: - name: Pacotes de trabalho - item_6: - options: - name: Etapas - work_packages: - item_0: - subject: Kick off do projeto criando modelo BIM - description: |- - O kick off do projeto dá início ao projeto em sua empresa. Toda equipe de projeto deve ser convidada pera o kick off para receber o primeiro briefing. - - A próxima etapa pode ser a verificação do cronograma e ajustar os compromissos, observando o [diagrama de Gantt]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22id%22%2C%22subject%22%2C%22startDate%22%2C%22dueDate%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22status%22%2C%22o%22%3A%22o%22%2C%22v%22%3A%5B%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%7D). - item_1: - subject: Preparação do projeto - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - children: - item_0: - subject: Coletando dados e informações específicas do projeto para o modelo BIM - description: |- - ## Objetivo - - * Identificar a estratégia de informação para o cliente (por exemplo, usando perguntas de linguagem simples) - * Se fornecidos, analisar os requisitos de informações do cliente para o modelo BIM - * Definir uma estratégia de entrega de informações de acordo com as necessidades dos clientes - - ## Descrição - - * Analisar as necessidades e objetivos dos clientes para utilização da metodologia BIM - * Os resultados dessas tarefas devem ser: - * Os requisitos para o projeto - * Uma estratégia para a fase de entrega - * ... - item_1: - subject: Criação do plano de execução BIM - description: |- - # Objetivo - - * Um plano de execução BIM será definido de acordo com as especificações de requisitos de câmbio (ERS) - * Todos os membros da equipe e parceiros têm um plano de como atingir cada uma das metas do projeto - - # Descrição - - * Dependendo dos casos de uso identificados, os Manuais de Entrega de Informações individuais serão definidos - * Para lidar com as interfaces tecnológicas, uma topologia de software será definida, analisada e verificada - * ... - item_2: - subject: Conclusão do plano de execução BIM - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_2: - subject: Fim da fase de preparo - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_3: - subject: Criação de modelo inicial BIM - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - children: - item_0: - subject: Modelagem de modelo inicial BIM - description: |- - # Objetivo - - * Modelagem do modelo BIM inicial - * Criação de um modelo BIM para toda a equipe do projeto - - # Descrição - - * De acordo com os dados coletados do cliente, o modelo inicial será modelado - * O modelo deve ser modelado de acordo com as Matrizes LOD e deve conter as informações necessárias - * ... - item_1: - subject: Verificações iniciais e internas de modelo e revisão - description: |- - # Objetivo - - * Submeter um modelo BIM de acordo com as normas definidas - - # Descrição - - * O modelo deve ser verificado, de acordo com as normas definidas (convenções, LOD, ...) e revisado - * ... - item_2: - subject: Envio de modelo inicial BIM - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_4: - subject: Modelagem, primeiro ciclo - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - children: - item_0: - subject: Fazer referência a modelos BIM externos - description: |- - # Objetivo - - * Ter uma base para desenvolver o modelo interno/ oferecer respostas - * Usar o modelo externo para desenvolver o modelo interno - - # Descrição - - * O modelo externo será referenciado na plataforma BIM, sendo assim utilizado para modelagem do modelo interno - * ... - item_1: - subject: Modelagem do modelo BIM - description: |- - # Objetivo - - * Criação de um modelo BIM para o projeto - * Criação de um modelo BIM para toda a equipe do projeto - - # Descrição - - * O modelo será criado de acordo com o plano de execução BIM - * ... - item_2: - subject: Verificações de primeiro ciclo e internas de modelo e revisão - description: |- - # Objetivo - - * Submeter um modelo BIM de acordo com as normas definidas - - # Descrição - - * O modelo deve ser verificado, de acordo com as normas definidas (convenções, LOD, ...) e revisado. - * ... - item_3: - subject: Envio de modelo BIM - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_5: - subject: Coordenação, primeiro ciclo - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - children: - item_0: - subject: Coordene os diferentes modelos BI - description: |- - # Objetivo - - * Montar os diferentes modelos BIM de toda a equipe do projeto - * Coordenar os problemas identificados - - # Descrição - - * Os diferentes modelos BIM serão montados e verificados - * Os problemas específicos do modelo identificados serão comunicados por meio de arquivos BCF - * ... - item_1: - subject: Gestão de problemas, primeiro ciclo - item_2: - subject: Finalização de coordenação, primeiro ciclo - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_6: - subject: Modelagem e coordenação, segundo ciclo - description: "## Objetivo\r\n\r\n* ...\r\n\r\n## Descrição\r\n\r\n* \\ ..." - item_7: - subject: Modelagem e coordenação, ... ciclo - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_8: - subject: Modelagem e coordenação, (n-th minus 1) ciclo - description: "## Objetivo\r\n\r\n* ...\r\n\r\n## Descrição\r\n\r\n* \\ ..." - item_9: - subject: Modelagem e coordenação, n-th ciclo - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_10: - subject: Finalização de modelagem e coordenação, n-th ciclo - description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. - item_11: - subject: Usar modelo para fase de construção - children: - item_0: - subject: Modelo de entrega para a equipe de construção - description: |- - ## Objetivo - - * Todos conhecem o modelo e suas tarefas - * Todos recebem todas as informações relevantes, com base em modelos - * ... - - ## Descrição - - * O Kickoff no canteiro de obras inclui uma introdução ao modelo - * Todos os objetos devem conter as informações necessárias para as tarefas atribuídas. Caso contrário, o enriquecimento de dados do modelo precisa ser realizado - * ... - item_1: - subject: Construa o prédio - description: |- - ## Objetivo - - * Novos problemas realizados no canteiro de obras serão tratados com base no modelo - * Os problemas serão documentados usando os arquivos BCF e o modelo BIM - - ## Descrição - - * Novos problemas serão documentados por meio de arquivos BCF como notas adesivas para o modelo - * Os arquivos BCF serão usados para atribuir, rastrear e corrigir problemas - * ... - item_2: - subject: Finalizar construção - item_12: - subject: Gestão de problemas, fase de construção - item_13: - subject: Entrega para gerenciamento de instalações - description: |- - ## Objetivo - - * O modelo BIM será usado para a Gestão de instalações - * O modelo fornece todas as informações relevantes para o comissionamento e operação do edifício - * ... - - ## Descrição - - * O modelo contém as informações relevantes para o gerente da instalação - * O modelo pode ser usado para o sistema operacional do edifício - * ... - item_14: - subject: Gestão de ativos - description: Curta seu edifício :) - demo-bcf-management-project: - name: "(Demo) gestão de BCF" - status_explanation: Todas as tarefas estão dentro do cronograma. As pessoas envolvidas conhecem suas tarefas. O sistema está completamente configurado. - description: Este é um breve resumo dos objetivos deste projeto de gestão de BCF de demonstração. - ifc_models: - item_0: - name: Hospital - Arquitetura (cc-by-sa-3.0 Autodesk Inc.) - item_1: - name: Hospital - Estrutural (cc-by-sa-3.0 Autodesk Inc.) - item_2: - name: Hospital - Mecânico (cc-by-sa-3.0 Autodesk Inc.) - categories: - item_0: Categoria 1 (a ser alterada nas configurações do projeto) - queries: - item_0: - name: Problemas - item_1: - name: Clashes - item_2: - name: Solicitações - item_3: - name: Observações - item_4: - name: 'Plano do Projeto:' - item_5: - name: Etapas - item_6: - name: Tarefas - item_7: - name: Planejador de equipe - boards: - bcf: - name: Problemas de BCF - project-overview: - widgets: - item_0: - options: - name: Bem-vindo - item_1: - options: - name: Guia de introdução - text: | - Estamos felizes por ter você conosco! Sugerimos que você tente algumas coisas para começar no OpenProject. - - Este projeto de demonstração mostra as funções do gerenciamento do BCF. - - _Tente as seguintes etapas:_ - - 1. _Convide novos membros para o seu projeto:_ → Vá para [Membros]({{opSetting:base_url}}/projects/demo-bcf-management-project/members?show_add_members=true) na navegação do projeto. - 2. _Carregue e visualize modelos 3D no formato IFC:_ → Vá para [BCF]({{opSetting:base_url}}/projects/demo-bim-project/bcf) na navegação do projeto. - 3. _Crie e gerencie problemas de BCF vinculados diretamente ao modelo IFC:_ → Vá para [BCF]({{opSetting:base_url}}/projects/demo-bim-project/bcf) → Criar. - 4. _Visualize os arquivos BCF em seu projeto:_ → Vá para [BCF]({{opSetting:base_url}}/projects/demo-bcf-management-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22status%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22id%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22card%22%7D) na navegação do projeto. - 5. _Carregue seus arquivos BCF:_ → Vá para [BCF → Importar.]({{opSetting:base_url}}/projects/demo-bcf-management-project/issues/upload) - 6. _Crie e atualize um diagrama de Gantt:_ → Vá para [Diagrama de Gantt]({{opSetting:base_url}}/projects/demo-bcf-management-project/work_packages?query_props=%7B%22c%22%3A%5B%22id%22%2C%22subject%22%2C%22startDate%22%2C%22dueDate%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22days%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22status%22%2C%22o%22%3A%22o%22%2C%22v%22%3A%5B%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%7D) na navegação do projeto. - 7. _Ative outros módulos:_ → Vá para [Configurações do projeto → Módulos.]({{opSetting:base_url}}/projects/demo-bcf-management-project/settings/modules) - 8. _Você adora uma abordagem ágil? Crie um quadro:_ → Vá para [Quadros]({{opSetting:base_url}}/projects/demo-bcf-management-project/boards). - - Aqui você encontrará nossos [Guias do usuário](https://www.openproject.org/docs/user-guide/). - Informe-nos se tiver alguma dúvida ou se precisar de suporte. Contate-nos: [support\[at\]openproject.com](mailto:support@openproject.com). - item_4: - options: - name: Membros - item_5: - options: - name: Pacotes de trabalho diff --git a/modules/bim/config/locales/crowdin/pt.yml b/modules/bim/config/locales/crowdin/pt.yml deleted file mode 100644 index 8cc38cdd8892..000000000000 --- a/modules/bim/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,136 +0,0 @@ -#English strings go here for Rails i18n -pt: - plugin_openproject_bim: - name: "Funcionalidade BIM e BCF do OpenProject" - description: "Este plugin do OpenProject introduz a funcionalidade BIM e BCF." - bim: - label_bim: 'BIM' - bcf: - label_bcf: 'BCF' - label_imported_failed: 'Importação de tópicos BCF falhou' - label_imported_successfully: 'Tópicos BCF importados com sucesso' - issues: "Problemas" - recommended: 'recomendado' - not_recommended: 'não recomendado' - no_viewpoints: 'Sem pontos de vista' - new_badge: "Novo" - exceptions: - file_invalid: "Arquivo BCF inválido" - x_bcf_issues: - zero: 'Sem problemas no BCF' - one: 'Um problema BCF' - other: '%{count} problemas BCF' - bcf_xml: - xml_file: 'Arquivo XML BCF' - import_title: 'Importar' - export: 'Exportar' - import_update_comment: '(Atualizado na importação do BCF)' - import_failed: 'Não é possível importar o arquivo BCF: %{error}' - import_failed_unsupported_bcf_version: 'Não foi possível ler o arquivo BCF: A versão do BCF não é suportada. Por favor, certifique-se de que a versão é, pelo menos, a %{minimal_version} ou superior.' - import_successful: 'Importados %{count} problemas BCF' - import_canceled: 'Importação BCF-XML cancelada.' - type_not_active: "O tipo de problema não está ativo para este projeto." - import: - num_issues_found: '%{x_bcf_issues} estão contidos no arquivo BCF-XML, seus detalhes estão listados abaixo.' - button_prepare: 'Preparar importação' - button_perform_import: 'Confirmar importação' - button_proceed: 'Prosseguir com a importação' - button_back_to_list: 'Voltar à lista' - no_permission_to_add_members: 'Você não tem permissões suficientes para adicioná-los como membros do projeto.' - contact_project_admin: 'Contate seu administrador do projeto para adicioná-los como membros e iniciar esta importação novamente.' - continue_anyways: 'Você quer prosseguir e concluir as consultas?' - description: "Forneça um arquivo BCF-XML v2.1 para importar para este projeto. Você pode examinar seu conteúdo antes de realizar a importação." - invalid_types_found: 'Nomes de tipo de tópico inválidos encontrados' - invalid_statuses_found: 'Nomes de status inválidos encontrados' - invalid_priorities_found: 'Nomes de prioridade inválidos encontrados' - invalid_emails_found: 'Endereços de e-mail inválidos encontrados' - unknown_emails_found: 'Endereço de e-mail desconhecido encontrado' - unknown_property: 'Propriedade desconhecida' - non_members_found: 'Não há membros do projeto' - import_types_as: 'Definir todos estes tipos para' - import_statuses_as: 'Definir todos estes status para' - import_priorities_as: 'Definir todas estas prioridades para' - invite_as_members_with_role: 'Convide-os como membros para o projeto "%{project}" com papel' - add_as_members_with_role: 'Adicione-os como membros do projeto "%{project}" com papel' - no_type_provided: 'Nenhum tipo fornecido' - no_status_provided: 'Nenhum status fornecido' - no_priority_provided: 'Nenhuma prioridade fornecida' - perform_description: "Você quer importar ou atualizar os problemas listados acima?" - replace_with_system_user: 'Substituir por usuário "Sistema"' - import_as_system_user: 'Importá-los como usuário "Sistema".' - what_to_do: "O que você quer fazer?" - work_package_has_newer_changes: "Desatualizado! Este tópico não foi atualizado, pois as últimas alterações no servidor eram mais recentes que a \"Data de modificação\" do tópico importado. No entanto, os comentários ao tópico foram importados." - bcf_file_not_found: "Não foi possível localizar o arquivo BCF. Por favor, reinicie o processo upload. " - export: - format: - bcf: "BCF-XML" - attributes: - bcf_thumbnail: "Instantâneo BCF" - project_module_bcf: "BCF" - project_module_bim: "BCF" - permission_view_linked_issues: "Visualizar problemas do BCF" - permission_manage_bcf: "Importar e gerenciar problemas do BCF" - permission_delete_bcf: "Excluir problemas de BCF" - oauth: - scopes: - bcf_v2_1: "Acesso total à API BCF v2.1" - bcf_v2_1_text: "A aplicação receberá acesso total de leitura e escrita a BCF API v2.1 do OpenProject para executar ações em seu nome." - activerecord: - models: - bim/ifc_models/ifc_model: "Modelo IFC" - attributes: - bim/ifc_models/ifc_model: - ifc_attachment: "Arquivo IFC" - is_default: "Modelo padrão" - attachments: "Arquivo IFC" - errors: - models: - bim/ifc_models/ifc_model: - attributes: - base: - ifc_attachment_missing: "Nenhum arquivo ifc anexado." - invalid_ifc_file: "O arquivo fornecido não é um arquivo IFC válido." - bim/bcf/viewpoint: - bitmaps_not_writable: "bitmaps não são graváveis, pois ainda não estão implementados." - index_not_integer: "o índice não é um inteiro." - invalid_clipping_planes: "clipping_planes é inválido." - invalid_components: "componentes inválidos." - invalid_lines: "linhas são inválidas." - invalid_orthogonal_camera: "orthogonal_camera é inválido." - invalid_perspective_camera: "perspective_camera é inválida." - mismatching_guid: "O guid no json_viewpoint não coincide com o guid do modelo." - no_json: "Não é um json bem estruturado." - snapshot_type_unsupported: "snapshot_type precisa ser 'png' ou 'jpg'." - snapshot_data_blank: "snapshot_data precisa ser fornecida." - unsupported_key: "Uma propriedade json não suportada está incluída." - bim/bcf/issue: - uuid_already_taken: "Não é possível importar este problema BCF, já existe outro com o mesmo GUID. Pode ser que este problema BCF já tenha sido importado para um projeto diferente?" - ifc_models: - label_ifc_models: 'Modelos IFC' - label_new_ifc_model: 'Novo modelo IFC' - label_show_defaults: 'Exibir padrões' - label_default_ifc_models: 'Modelos IFC padrão' - label_edit_defaults: 'Editar padrões' - no_defaults_warning: - title: 'Nenhum modelo IFC foi definido como padrão para este projeto.' - check_1: 'Verifique se você carregou pelo menos um modelo IFC.' - check_2: 'Verifique se pelo menos um modelo IFC está definido como "Padrão".' - no_results: "Não nenhum modelo IFC foi carregado neste projeto." - conversion_status: - label: 'Processando?' - pending: 'Pendente' - processing: 'Processando' - completed: 'Concluído' - error: 'Erro' - processing_notice: - processing_default: 'Os seguintes modelos IFC padrão ainda estão sendo processados, e dessa forma, ainda não estão disponíveis:' - flash_messages: - upload_successful: 'Carregamento bem-sucedido. Agora ele será processado e ficará pronto para ser utilizado em alguns minutos.' - conversion: - missing_commands: "Os seguintes comandos de conversor IFC estão faltando neste sistema: %{names}" - project_module_ifc_models: "Modelos IFC" - permission_view_ifc_models: "Visualizar modelos IFC" - permission_manage_ifc_models: "Importar e gerenciar modelos IFC" - extraction: - available: - ifc_convert: "Canal de conversão IFC disponível" diff --git a/modules/boards/config/locales/crowdin/js-pt.yml b/modules/boards/config/locales/crowdin/js-pt.yml deleted file mode 100644 index b316762e5133..000000000000 --- a/modules/boards/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,86 +0,0 @@ -#English strings go here -pt: - js: - boards: - create_new: 'Criar novo quadro' - label_unnamed_board: 'Quadro sem nome' - label_unnamed_list: 'Lista sem nome' - label_board_type: 'Tipo de quadro' - upsale: - teaser_text: 'Gostaria de automatizar seu fluxo de trabalho com Painéis? Painéis avançados são um complemento Enterprise. Atualize para um plano pago.' - upgrade: 'Atualizar agora' - lists: - delete: 'Excluir lista' - version: - is_locked: 'A versão está bloqueada. Nenhum item pode ser adicionado a essa versão.' - is_closed: 'A versão está fechada. Nenhum item pode ser adicionado a essa versão.' - close_version: 'Fechar versão' - open_version: 'Abrir versão' - lock_version: 'Bloquear versão' - unlock_version: 'Desbloquear versão' - edit_version: 'Editar versão' - show_version: 'Mostrar versão' - locked: 'Bloqueado' - closed: 'Fechado' - new_board: 'Novo quadro' - add_list: 'Adicionar lista ao quadro' - add_card: 'Adicionar cartão' - error_attribute_not_writable: "Não é possível mover o pacote de trabalho, %{attribute} não é gravável." - error_loading_the_list: "Erro ao carregar a lista: %{error_message}" - error_permission_missing: "A permissão para criar consultas públicas está faltando" - error_cannot_move_into_self: "Você não pode mover um pacote de trabalho para sua própria coluna." - text_hidden_list_warning: "Como você não possui permissão, nem todas as listas serão exibidas. Entre em contato com seu administrador para obter mais informações." - click_to_remove_list: "Clique para remover esta lista" - board_type: - text: 'Tipo de quadro' - free: 'básico' - select_board_type: 'Por favor, escolha o tipo de quadro que você precisa.' - free_text: > - Comece do zero com um quadro em branco. Adicione manualmente cartões e colunas neste quadro. - action: 'Quadro de ação' - action_by_attribute: 'Quadro de ação (%{attribute})' - action_text: > - Um quadro com listas filtradas por atributo %{attribute} . Mover pacotes de trabalho para outras listas irá atualizar seu atributo. - action_text_subprojects: > - Quadro com colunas automatizadas para subprojetos. Arrastar pacotes de trabalho para outras listas atualiza os (sub)projetos de acordo. - action_text_subtasks: > - Quadro com colunas automatizadas para sub-elementos. Arrastar pacotes de trabalho para outras listas atualiza os pais de acordo. - action_text_status: > - Quadro de estilo kanban com colunas para estados como Afazeres, Em andamento, Pronto - action_text_assignee: > - Quadro com colunas automatizadas com base nos usuários designados. Ideal para despacho de pacotes de trabalho. - action_text_version: > - Quadro com colunas automatizadas baseado no atributo da versão. Ideal para planejar desenvolvimento de produto. - action_type: - assignee: responsável - status: estado - version: versão - subproject: subprojeto - subtasks: pai-filho - board_type_title: - assignee: Atribuído para - status: Situação - version: Versão - subproject: Subprojeto - subtasks: Primeiro-secundário - basic: Básico - select_attribute: "Atributo de ação" - add_list_modal: - labels: - assignee: Selecione um usuário para ser adicionado como uma nova lista de responsáveis - status: Selecione o estado a ser adicionado como uma nova lista - version: Selecione a versão a ser adicionada como uma nova lista - subproject: Selecione o subprojeto a ser adicionado como uma nova lista - subtasks: Selecione o pacote de trabalho a ser adicionado como uma nova lista - warning: - status: | - No momento, não há nenhum estado disponível.
- Não há nenhum ou todos eles já foram adicionados ao painel. - assignee: Não há nenhum membro correspondente com seu valor de filtro.
- no_member: Este projeto não possui nenhum membro que possa ser adicionado.
- add_members: Adicione um novo membro a este projeto para selecionar novamente usuários. - configuration_modal: - title: 'Configurar este quadro' - display_settings: - card_mode: "Exibir como cartões" - table_mode: "Exibir como tabela" diff --git a/modules/boards/config/locales/crowdin/pt.seeders.yml b/modules/boards/config/locales/crowdin/pt.seeders.yml deleted file mode 100644 index e4bdb243507c..000000000000 --- a/modules/boards/config/locales/crowdin/pt.seeders.yml +++ /dev/null @@ -1,8 +0,0 @@ -#This file has been generated by script/i18n/generate_seeders_i18n_source_file. -#Please do not edit directly. -#This file is part of the sources sent to crowdin for translation. -#This file is needed to prevent bug #48450: at least two 'en.seeders.yml' files -#located in the modules directories are needed to have crowdin cli correctly -#compute the path to the uploaded source file. -#This file does not contain any i18n strings. -pt: diff --git a/modules/boards/config/locales/crowdin/pt.yml b/modules/boards/config/locales/crowdin/pt.yml deleted file mode 100644 index 487980ca1315..000000000000 --- a/modules/boards/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,39 +0,0 @@ -#English strings go here -pt: - plugin_openproject_boards: - name: "Quadros do OpenProject" - description: "Fornece visualizações do quadro." - permission_show_board_views: "Visualizar quadros" - permission_manage_board_views: "Gerenciar quadros" - project_module_board_view: "Quadros" - boards: - label_board: "Quadro" - label_boards: "Quadros" - label_create_new_board: "Criar novo quadro" - label_board_type: "Tipo de quadro" - board_types: - free: Básico - action: "Quadro de ação (%{attribute})" - board_type_attributes: - assignee: Atribuição - status: Status - version: Versão - subproject: Subprojeto - subtasks: Primário-secundário - basic: Básico - board_type_descriptions: - basic: > - Comece do zero com um quadro em branco. Adicione manualmente cartões e colunas a este quadro. - status: > - Quadro no estilo kanban com colunas para estados como Afazeres, Em andamento, Concluído - assignee: > - Quadro com colunas automatizadas com base nos usuários atribuídos. Ideal para despacho de pacotes de trabalho. - version: > - Quadro com colunas automatizadas baseado no atributo da versão. Ideal para planejar desenvolvimento de produto. - subproject: > - Quadro com colunas automatizadas para subprojetos. Arrastar pacotes de trabalho para outras listas atualiza os (sub)projetos de acordo. - subtasks: > - Quadro com colunas automatizadas para subelementos. Arrastar pacotes de trabalho para outras listas atualiza os pais de acordo. - upsale: - teaser_text: 'Gostaria de automatizar seu fluxo de trabalho com Quadros? Quadros avançados são um complemento do Enterprise. Atualize para um plano pago.' - upgrade: 'Faça o upgrade agora' diff --git a/modules/budgets/config/locales/crowdin/cs.yml b/modules/budgets/config/locales/crowdin/cs.yml index 100d7ef33903..040db0f85b37 100644 --- a/modules/budgets/config/locales/crowdin/cs.yml +++ b/modules/budgets/config/locales/crowdin/cs.yml @@ -27,7 +27,7 @@ cs: budget: author: "Autor" available: "Dostupné" - budget: "Rozpočet" + budget: "Plánované" budget_ratio: "Stráveno (poměr)" description: "Popis" spent: "Strávený čas" diff --git a/modules/budgets/config/locales/crowdin/pt.yml b/modules/budgets/config/locales/crowdin/pt.yml deleted file mode 100644 index 2ff55be55ffb..000000000000 --- a/modules/budgets/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,78 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - plugin_budgets_engine: - name: 'Orçamentos' - activerecord: - attributes: - budget: - author: "Autor" - available: "Disponível" - budget: "Planejado" - budget_ratio: "Gasto (taxa)" - description: "Descrição" - spent: "Gasto" - status: "Situação" - subject: "Assunto" - type: "Tipo de custo" - labor_budget: "Custos planejados de trabalho" - material_budget: "Custos unitários planejados" - work_package: - budget_subject: "Título do orçamento" - models: - budget: "Orçamento" - material_budget_item: "Unidade" - activity: - filter: - budget: "Orçamentos" - attributes: - budget: "Orçamento" - button_add_budget_item: "Adicionar custos planejados" - button_add_budget: "Adicionar orçamento" - button_add_cost_type: "Adicionar o tipo de custo" - button_cancel_edit_budget: "Cancelar a edição de orçamento" - button_cancel_edit_costs: "Cancelar edição de custos" - caption_labor: "Trabalho" - caption_labor_costs: "Custos atuais do trabalho" - caption_material_costs: "Custos unitários atuais" - budgets_title: "Orçamentos" - events: - budget: "Orçamento editado" - help_click_to_edit: "Clique aqui para editar." - help_currency_format: "Formato exibidos de valores de moeda. %n é substituído com o valor da moeda, %u é substituído com a unidade da moeda." - help_override_rate: "Insira um valor aqui para substituir a taxa padrão." - label_budget: "Orçamento" - label_budget_new: "Novo orçamento" - label_budget_plural: "Orçamentos" - label_budget_id: "Orçamento #%{id}" - label_deliverable: "Orçamento" - label_example_placeholder: 'ex.: %{decimal}' - label_view_all_budgets: "Ver os todos os orçamentos" - label_yes: "Sim" - notice_budget_conflict: "Os pacotes de trabalho devem ser do mesmo projeto." - notice_no_budgets_available: "Não há orçamentos disponíveis." - permission_edit_budgets: "Editar os orçamentos" - permission_view_budgets: "Ver orçamentos" - project_module_budgets: "Orçamentos" - text_budget_reassign_to: "Reatribuí-los para este orçamento:" - text_budget_delete: "Excluir o orçamento de todos os pacotes de trabalho" - text_budget_destroy_assigned_wp: "Há %{count} pacotes de trabalho atribuídos a este orçamento. O que você deseja fazer?" diff --git a/modules/calendar/config/locales/crowdin/js-pt.yml b/modules/calendar/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 5b6274d63a34..000000000000 --- a/modules/calendar/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,8 +0,0 @@ -#English strings go here -pt: - js: - calendar: - create_new: 'Criar novo calendário' - title: 'Calendário' - too_many: 'Existem %{count} pacotes de trabalho, mas apenas %{max} podem ser mostrados.' - unsaved_title: 'Calendário sem nome' diff --git a/modules/calendar/config/locales/crowdin/pt.yml b/modules/calendar/config/locales/crowdin/pt.yml deleted file mode 100644 index ffc1a019908a..000000000000 --- a/modules/calendar/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,12 +0,0 @@ -#English strings go here -pt: - plugin_openproject_calendar: - name: "Calendário OpenProject" - description: "Fornece visualizações do calendário." - label_calendar: "Calendário" - label_calendar_plural: "Calendários" - label_new_calendar: "Novo Calendário" - permission_view_calendar: "Exibir Calendários" - permission_manage_calendars: "Gerenciar calendários" - permission_share_calendars: "Assinar iCalendars" - project_module_calendar_view: "Calendários" diff --git a/modules/costs/config/locales/crowdin/js-pt.yml b/modules/costs/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 546b2d01fba3..000000000000 --- a/modules/costs/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,32 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - js: - work_packages: - property_groups: - costs: "Custos" - properties: - overallCosts: "Custos totais" - spentUnits: "Unidades gastas" - button_log_costs: "Registrar custos unitários" - label_hour: "hora" - label_hours: "horas" diff --git a/modules/costs/config/locales/crowdin/pt.yml b/modules/costs/config/locales/crowdin/pt.yml deleted file mode 100644 index fe5298744da6..000000000000 --- a/modules/costs/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,145 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - plugin_costs: - name: "Tempo e custos" - description: "Este módulo acrescenta recursos para planejar e monitorar os custos dos projetos." - activerecord: - attributes: - cost_entry: - work_package: "Pacote de trabalho" - overridden_costs: "Substitui custos" - spent: "Gasto" - spent_on: "Data" - cost_type: - unit: "Nome da unidade" - unit_plural: "Plural do nome da unidade" - work_package: - costs_by_type: "Unidades gastas" - labor_costs: "Custos de trabalho" - material_costs: "Custos unitários" - overall_costs: "Custos totais" - spent_costs: "Custos de gastos" - spent_units: "Unidades gastas" - rate: - rate: "Taxa" - user: - default_rates: "Taxas padrão" - models: - cost_type: - one: "Tipo de custo" - other: "Tipos de custo" - rate: "Taxa" - errors: - models: - work_package: - is_not_a_valid_target_for_cost_entries: "Pacote de trabalho #%{id} não é válido para reatribuir as entradas de custo." - nullify_is_not_valid_for_cost_entries: "Custos dos insumos não podem ser atribuídos a um projeto." - attributes: - comment: "Comentário" - cost_type: "Tipo de custo" - costs: "Custos" - current_rate: "Taxa atual" - hours: "Horas" - units: "Unidades" - valid_from: "Válido a partir de" - fixed_date: "Data fixa" - button_add_rate: "Adicionar taxa" - button_log_costs: "Registrar custos unitários" - caption_booked_on_project: "Reservado para o projeto" - caption_default: "Padrão" - caption_default_rate_history_for: "Taxa histórica padrão para %{user}" - caption_locked_on: "Bloqueado" - caption_materials: "Unidades" - caption_rate_history: "Taxa histórica" - caption_rate_history_for: "Taxa histórica do %{user}" - caption_rate_history_for_project: "Histórico de taxa para %{user} no projeto %{project}" - caption_save_rate: "Salvar taxa" - caption_set_rate: "Fixar taxa atual" - caption_show_locked: "Mostrar tipos bloqueados" - description_date_for_new_rate: "Data para nova taxa" - group_by_others: "Não em qualquer grupo" - label_between: "entre" - label_cost_filter_add: "Adicionar filtro de entrada de custo" - label_costlog: "Custos unitários registrados" - label_cost_plural: "Custos" - label_cost_type_plural: "Tipos de custo" - label_cost_type_specific: "Tipos de custo #%{id}: %{name}" - label_costs_per_page: "Custos por página" - label_currency: "Moeda" - label_currency_format: "Formato de moeda" - label_current_default_rate: "Atual taxa padrão" - label_date_on: "em" - label_deleted_cost_types: "Tipos de custos excluídos" - label_locked_cost_types: "Tipos de custos bloqueados" - label_display_cost_entries: "Exibir os custos unitários" - label_display_time_entries: "Exibir horas informadas" - label_display_types: "Exibir tipos" - label_edit: "Editar" - label_generic_user: "Usuário genérico" - label_greater_or_equal: ">=" - label_group_by: "Agrupar por" - label_group_by_add: "Adicionar campo de agrupamento" - label_hourly_rate: "Taxa horária" - label_include_deleted: "Incluir excluídos" - label_work_package_filter_add: "Adicionar filtro de pacote de trabalho" - label_kind: "Tipo" - label_less_or_equal: "<=" - label_log_costs: "Registrar custos unitários" - label_no: "Não" - label_option_plural: "Opções" - label_overall_costs: "Custos totais" - label_rate: "Taxa" - label_rate_plural: "Taxas" - label_status_finished: "Finalizado" - label_units: "Custos unitários" - label_user: "Usuário" - label_until: "até" - label_valid_from: "Válido a partir de" - label_yes: "Sim" - notice_something_wrong: "Algo deu errado. Por favor, tente novamente." - notice_successful_restore: "Restauração bem-sucedida." - notice_successful_lock: "Bloqueado com sucesso." - notice_cost_logged_successfully: 'Custo unitário registrado com sucesso.' - permission_edit_cost_entries: "Editar custos unitários reservados" - permission_edit_own_cost_entries: "Editar custos unitários próprios reservados" - permission_edit_hourly_rates: "Editar taxas horárias" - permission_edit_own_hourly_rate: "Editar as próprias taxas horárias" - permission_edit_rates: "Editar taxas" - permission_log_costs: "Reservar custos unitários" - permission_log_own_costs: "Reservar custos unitários próprios" - permission_view_cost_entries: "Ver custos reservados" - permission_view_cost_rates: "Ver taxas de custo" - permission_view_hourly_rates: "Ver todas as taxas de horárias" - permission_view_own_cost_entries: "Ver custos reservados próprios" - permission_view_own_hourly_rate: "Ver sua própria taxa horária" - permission_view_own_time_entries: "Ver o próprio tempo gasto" - project_module_costs: "Tempo e custos" - text_assign_time_and_cost_entries_to_project: "Atribuir horas relatadas e custos ao projeto" - text_destroy_cost_entries_question: "%{cost_entries} foram informados sobre os pacotes de trabalho que você está prestes a excluir. O que você quer fazer?" - text_destroy_time_and_cost_entries: "Excluir horas e custos informados" - text_destroy_time_and_cost_entries_question: "%{hours} horas, %{cost_entries} foram relatados sobre os pacotes de trabalho que você está prestes a excluir. O que você quer fazer?" - text_reassign_time_and_cost_entries: "Reatribua horas reportadas e custos para este pacote de trabalho:" - text_warning_hidden_elements: "Algumas entradas podem ter sido excluídas da agregação." - week: "semana" - js: - text_are_you_sure: "Você tem certeza?" diff --git a/modules/dashboards/config/locales/crowdin/js-pt.yml b/modules/dashboards/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 4ab0b6b573fe..000000000000 --- a/modules/dashboards/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,4 +0,0 @@ -pt: - js: - dashboards: - label: 'Painel' diff --git a/modules/dashboards/config/locales/crowdin/pt.yml b/modules/dashboards/config/locales/crowdin/pt.yml deleted file mode 100644 index 21ba5bc596c0..000000000000 --- a/modules/dashboards/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,4 +0,0 @@ -pt: - dashboards: - label: 'Painéis' - project_module_dashboards: 'Painéis' diff --git a/modules/documents/config/locales/crowdin/pt.yml b/modules/documents/config/locales/crowdin/pt.yml deleted file mode 100644 index e702bd7f9a7d..000000000000 --- a/modules/documents/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,43 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - plugin_openproject_documents: - name: "Documentos do OpenProject" - description: "Um plugin OpenProject para permitir a criação de documentos em projetos." - activerecord: - models: - document: "Documento" - activity: - filter: - document: "Documentos" - default_doc_category_tech: "Documentação técnica" - default_doc_category_user: "Documentação do usuário" - enumeration_doc_categories: "Categorias de documento" - documents: - label_attachment_author: "Autor do anexo" - label_document_added: "Documento adicionado" - label_document_new: "Novo documento" - label_document_plural: "Documentos" - label_documents: "Documentos" - permission_manage_documents: "Gerenciar documentos" - permission_view_documents: "Visualizar documentos" - project_module_documents: "Documentos" diff --git a/modules/gantt/config/locales/crowdin/js-pt.yml b/modules/gantt/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 0040575842b8..000000000000 --- a/modules/gantt/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,6 +0,0 @@ -pt: - js: - queries: - all_open: 'Tudo aberto' - timeline: 'Cronograma' - milestones: 'Etapas' diff --git a/modules/gantt/config/locales/crowdin/pt.yml b/modules/gantt/config/locales/crowdin/pt.yml deleted file mode 100644 index 4cc3a302c38a..000000000000 --- a/modules/gantt/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,3 +0,0 @@ -#English strings go here -pt: - project_module_gantt: "Gantt charts" diff --git a/modules/github_integration/config/locales/crowdin/js-pt.yml b/modules/github_integration/config/locales/crowdin/js-pt.yml deleted file mode 100644 index cc5634c62aaa..000000000000 --- a/modules/github_integration/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,51 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - js: - github_integration: - work_packages: - tab_name: "GitHub" - tab_header: - title: "Solicitações de pull" - copy_menu: - label: Trechos de código Git - description: Copiar trechos de código git para área de transferência - git_actions: - branch_name: Nome da ramificação - commit_message: Mensagem de confirmação - cmd: Criar ramificação com a confirmação vazia - title: Trechos de código rápido para Git - copy_success: '✅ Copiado!' - copy_error: '❌ Falha ao copiar!' - tab_prs: - empty: 'Ainda não há solicitações de pull vinculadas. Vincule uma PR existente usando código OP#%{wp_id} na descrição de PR ou crie uma nova PR.' - github_actions: Ações - pull_requests: - message: "Solicitação de pull #%{pr_number} %{pr_link} para %{repository_link} de autoria de %{github_user_link} foi %{pr_state}." - merged_message: "A solicitação #%{pr_number} %{pr_link} para %{repository_link} foi %{pr_state} por %{github_user_link}." - referenced_message: "Solicitação de pull #%{pr_number} %{pr_link} para %{repository_link} de autoria de %{github_user_link} fazendo referência a este pacote de trabalho." - states: - opened: 'aberto' - closed: 'fechado' - draft: 'redigido' - merged: 'mesclado' - ready_for_review: 'marcado como pronto para revisão' diff --git a/modules/github_integration/config/locales/crowdin/pt.yml b/modules/github_integration/config/locales/crowdin/pt.yml deleted file mode 100644 index f793bb60845f..000000000000 --- a/modules/github_integration/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,27 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - plugin_openproject_github_integration: - name: "Integração do OpenProject GitHub" - description: "Integra o OpenProject e o GitHub para um melhor fluxo de trabalho" - project_module_github: "GitHub" - permission_show_github_content: "Exibir conteúdo GitHub" diff --git a/modules/gitlab_integration/config/locales/crowdin/js-pt.yml b/modules/gitlab_integration/config/locales/crowdin/js-pt.yml deleted file mode 100644 index d4f0f5c838e5..000000000000 --- a/modules/gitlab_integration/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,50 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2023 Ben Tey -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#Copyright (C) 2012-2021 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See docs/COPYRIGHT.rdoc for more details. -#++ -pt: - js: - gitlab_integration: - work_packages: - tab_name: "GitLab" - tab_header_issue: - title: "Issues" - tab_header_mr: - title: "Merge requests" - create_mr: - label: Create MR - description: Create a Merge Request - copy_menu: - label: Git snippets - description: Copy git snippets to clipboard - git_actions: - branch_name: Branch name - commit_message: Commit message - cmd: Create branch with empty commit - title: Quick snippets for Git - copy_success: '✅ Copied!' - copy_error: '❌ Copy failed!' - tab_issue: - empty: 'There are no issues linked yet. Link an existing issue by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the issue title/description or create a new issue.' - tab_mrs: - empty: 'There are no merge requests linked yet. Link an existing MR by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the MR title/description or create a new MR.' - gitlab_pipelines: Pipelines - updated_on: Updated on diff --git a/modules/gitlab_integration/config/locales/crowdin/pt.yml b/modules/gitlab_integration/config/locales/crowdin/pt.yml deleted file mode 100644 index 29d3a32f22a2..000000000000 --- a/modules/gitlab_integration/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,67 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2023 Ben Tey -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#Copyright (C) 2012-2021 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See docs/COPYRIGHT.rdoc for more details. -#++ -pt: - activerecord: - errors: - models: - gitlab_issue: - attributes: - labels: - invalid_schema: "must be an array of hashes with keys: color, title" - gitlab_merge_request: - attributes: - labels: - invalid_schema: "must be an array of hashes with keys: color, title" - project_module_gitlab: "Gitlab" - permission_show_gitlab_content: "Show Gitlab content" - gitlab_integration: - merge_request_opened_comment: > - **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). - merge_request_closed_comment: > - **MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). - merge_request_merged_comment: > - **MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}). - merge_request_reopened_comment: > - **MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). - note_commit_referenced_comment: > - **Referenced in Commit:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in a Commit Note [%{commit_id}](%{commit_url}) on [%{repository}](%{repository_url}): %{commit_note} - note_mr_referenced_comment: > - **Referenced in MR:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} - note_mr_commented_comment: > - **Commented in MR:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} - note_issue_referenced_comment: > - **Referenced in Issue:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} - note_issue_commented_comment: > - **Commented in Issue:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} - note_snippet_referenced_comment: > - **Referenced in Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) on [%{repository}](%{repository_url}): %{snippet_note} - issue_opened_referenced_comment: > - **Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). - issue_closed_referenced_comment: > - **Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). - issue_reopened_referenced_comment: > - **Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). - push_single_commit_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} - push_multiple_commits_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} diff --git a/modules/grids/config/locales/crowdin/js-pt.yml b/modules/grids/config/locales/crowdin/js-pt.yml deleted file mode 100644 index c35be6505500..000000000000 --- a/modules/grids/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,66 +0,0 @@ -pt: - js: - grid: - add_widget: 'Adicionar widget' - remove: 'Remover widget' - configure: 'Configurar widget' - upsale: - text: "Alguns widgets, como o widget gráfico do pacote de trabalho, só estão disponíveis na edição Enterprise." - link: 'Edição Enterprise.' - widgets: - custom_text: - title: 'Texto personalizado' - documents: - title: 'Documentos' - no_results: 'Nenhum documento ainda.' - members: - title: 'Membros' - no_results: 'Nenhum membro visível.' - view_all_members: 'Visualizar todos os membros' - add: 'Membro' - too_many: 'Exibindo %{count} de %{total} membros.' - news: - title: 'Notícias' - at: 'em' - no_results: 'Nada de novo para relatar.' - project_description: - title: 'Descrição do projeto' - no_results: "Nenhuma descrição foi escrita. Uma pode ser fornecida nas 'Configurações do Projeto'." - project_details: - title: 'Detalhes do projeto' - no_results: 'Nenhum campo personalizado foi definido para projetos.' - project_status: - title: 'Situação do projeto' - not_started: 'Não iniciado' - on_track: 'Sob controle' - off_track: 'Fora de controle' - at_risk: 'Em risco' - not_set: 'Não definido' - finished: 'Finalizado' - discontinued: 'Descontinuado' - subprojects: - title: 'Subprojetos' - no_results: 'Nenhum subprojeto.' - time_entries_current_user: - title: 'Meu tempo gasto' - displayed_days: 'Dias exibidos no widget:' - time_entries_list: - title: 'Tempo gasto (últimos 7 dias)' - no_results: 'Não há entradas de tempo nos últimos 7 dias.' - work_packages_accountable: - title: "Pacotes de trabalho sob minha responsabilidade" - work_packages_assigned: - title: 'Pacotes de trabalho atribuídos a mim' - work_packages_created: - title: 'Pacotes de trabalho criados por mim' - work_packages_watched: - title: 'Pacotes de trabalho observados por mim' - work_packages_table: - title: 'Tabela de pacotes de trabalho' - work_packages_graph: - title: 'Gráfico de pacotes de trabalho' - work_packages_calendar: - title: 'Calendário' - work_packages_overview: - title: 'Visão geral dos pacotes de trabalho' - placeholder: 'Clique para editar...' diff --git a/modules/grids/config/locales/crowdin/pt.yml b/modules/grids/config/locales/crowdin/pt.yml deleted file mode 100644 index 1f8442bd164d..000000000000 --- a/modules/grids/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,16 +0,0 @@ -pt: - grids: - label_widget_in_grid: "Widget contido na Grade %{grid_name}" - activerecord: - attributes: - grids/grid: - page: "Página" - row_count: "Número de linhas" - column_count: "Número de colunas" - widgets: "Widgets" - errors: - models: - grids/grid: - overlaps: 'sobreposição.' - outside: 'está fora da grade.' - end_before_start: 'o valor final precisa ser maior que o valor inicial.' diff --git a/modules/job_status/config/locales/crowdin/js-pt.yml b/modules/job_status/config/locales/crowdin/js-pt.yml deleted file mode 100644 index fb2cf29d3368..000000000000 --- a/modules/job_status/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,17 +0,0 @@ -pt: - js: - job_status: - download_starts: 'O download deve iniciar automaticamente.' - click_to_download: 'Ou clique aqui para baixar.' - title: 'Status do trabalho em segundo plano' - redirect: 'Você está sendo redirecionado.' - redirect_link: 'Por favor, clique aqui para continuar.' - redirect_errors: 'Devido a esses erros, você não será redirecionado automaticamente.' - errors: 'Ocorreram alguns erros' - generic_messages: - not_found: 'Este trabalho não pode ser encontrado.' - in_queue: 'O trabalho foi colocado na fila e será processado em breve.' - in_process: 'O trabalho está sendo processado.' - error: 'O trabalho não pode ser finalizado.' - cancelled: 'O trabalho foi cancelado devido a um erro.' - success: 'Trabalho concluído com sucesso.' diff --git a/modules/job_status/config/locales/crowdin/pt.yml b/modules/job_status/config/locales/crowdin/pt.yml deleted file mode 100644 index ec08d1fbbb60..000000000000 --- a/modules/job_status/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,4 +0,0 @@ -pt: - plugin_openproject_job_status: - name: "Situação do trabalho OpenProject" - description: "Listagem e situação dos trabalhos em segundo plano." diff --git a/modules/ldap_groups/config/locales/crowdin/pt.yml b/modules/ldap_groups/config/locales/crowdin/pt.yml deleted file mode 100644 index 520680581282..000000000000 --- a/modules/ldap_groups/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,73 +0,0 @@ -pt: - plugin_openproject_ldap_groups: - name: "Grupos LDAP do OpenProject" - description: "Sincronização de associações de grupos LDAP." - activerecord: - attributes: - ldap_groups/synchronized_group: - dn: 'ND' - ldap_auth_source: 'Conexão LDAP' - sync_users: 'Sincronizar usuários' - ldap_groups/synchronized_filter: - filter_string: 'Filtro LDAP' - ldap_auth_source: 'Conexão LDAP' - group_name_attribute: "Atributo de nome de grupo" - sync_users: 'Sincronizar usuários' - base_dn: "Procurar DN base" - models: - ldap_groups/synchronized_group: 'Grupo LDAP sincronizado' - ldap_groups/synchronized_filter: 'Filtro de sincronização de grupo LDAP' - errors: - models: - ldap_groups/synchronized_filter: - must_contain_base_dn: "O DN base do filtro deve estar contido no DN base da conexão da LDAP" - ldap_groups: - label_menu_item: 'Sincronização de grupo LDAP' - label_group_key: 'Chave de filtro de grupo LDAP' - label_synchronize: 'Sincronizado' - settings: - name_attribute: 'Atributo de nome de grupo LDAP' - name_attribute_text: 'O atributo LDAP usado para nomear o grupo OpenProject quando criado por um filtro' - synchronized_filters: - add_new: 'Adicionar filtro LDAP sincronizado' - singular: 'Filtro de sincronização de grupo LDAP' - plural: 'Filtros de sincronização de grupo LDAP' - label_n_groups_found: - one: "1 grupo encontrado pelo filtro" - other: "%{count} grupos encontrados pelo filtro" - zero: "Nenhum grupo encontrado pelo filtro" - destroy: - title: 'Remover filtro sincronizado %{name}' - confirmation: "Se você continuar, o filtro sincronizado %{name} e todos os grupos %{groups_count} criados por meio dele serão removidos." - removed_groups: "Aviso: Isto removerá os seguintes grupos do OpenProject e removê-los de todos os projetos!" - verification: "Digite o nome do filtro %{name} para verificar a exclusão." - form: - group_name_attribute_text: 'Insira o atributo de grupo LDAP usado para configurações do nome de grupo do OpenProject.' - filter_string_text: 'Insira o filtro RFC4515 LDAP que retorna grupos em seu LDAP para sincronizar com o OpenProject.' - base_dn_text: > - Insira o DN base da busca para usar este filtro. Ele preciosa ser inferior ao DN base da conexão LDAP selecionada. Deixe esta opção fazia para reutilizar o DN base da conexão. - synchronized_groups: - add_new: 'Adicionar grupo LDAP sincronizado' - destroy: - title: 'Remover grupo sincronizado %{name}' - confirmation: "Se você continuar, o grupo sincronizado %{name} e todos os %{users_count} usuários sincronizados por meio dele serão removidos." - info: "Nota: O próprio grupo OpenProject e membros adicionados fora desta sincronização LDAP não serão removidos." - verification: "Digite o nome do grupo %{name} para verificar a exclusão." - help_text_html: | - Este módulo permite que você configure uma sincronização entre os grupos LDAP e OpenProject. - Depende dos grupos LDAP que precisam usar o atributo groupOfNames / memberOf para trabalhar com o OpenProject. -
- Os grupos são sincronizados de hora em hora através de um cron job. - Por favor veja nossa documentação sobre este tópico. - no_results: 'Nenhum grupo sincronizado encontrado.' - no_members: 'Este grupo ainda não tem membros sincronizados.' - plural: 'Grupos LDAP sincronizados' - singular: 'Grupo LDAP sincronizado' - form: - auth_source_text: 'Selecione a conexão LDAP a ser usada.' - sync_users_text: > - Se você ativar esta opção, os usuários encontrados também serão criados automaticamente no OpenProject. Sem ela, apenas contas existentes no OpenProject serão adicionadas aos grupos. - dn_text: 'Inserir todo o ND do grupo no LDAP' - group_text: 'Selecione um grupo existente no OpenProject para que seja sincronizado com membros do grupo LDAP' - upsale: - description: 'Tire proveito dos grupos LDAP sincronizados para gerenciar usuários, alterar suas permissões e facilitar o gerenciamento do usuário entre grupos.' diff --git a/modules/ldap_groups/config/locales/crowdin/zh-CN.yml b/modules/ldap_groups/config/locales/crowdin/zh-CN.yml index 4d0259eed6ce..d551c0a9e91e 100644 --- a/modules/ldap_groups/config/locales/crowdin/zh-CN.yml +++ b/modules/ldap_groups/config/locales/crowdin/zh-CN.yml @@ -1,7 +1,7 @@ zh-CN: plugin_openproject_ldap_groups: name: "OpenProject LDAP 组" - description: "LDAP 组成员同步。" + description: "LDAP组成员同步。" activerecord: attributes: ldap_groups/synchronized_group: diff --git a/modules/meeting/config/locales/crowdin/cs.yml b/modules/meeting/config/locales/crowdin/cs.yml index 83c2edd9fd72..eb85fb52e9be 100644 --- a/modules/meeting/config/locales/crowdin/cs.yml +++ b/modules/meeting/config/locales/crowdin/cs.yml @@ -115,7 +115,7 @@ cs: types: classic: 'Klasické' classic_text: 'Uspořádat schůzku do formátů textového programu a protokolu.' - structured: 'Dynamická' + structured: 'Dynamický' structured_text: 'Uspořádat schůzku jako seznam bodů pořadu jednání, případně je propojit s pracovním balíčkem.' structured_text_copy: 'Kopírování schůzky v současné době nezkopíruje související body pořadu jednání, jen podrobnosti' copied: "Zkopírováno ze schůzky #%{id}" @@ -123,7 +123,7 @@ cs: notice_timezone_missing: Není nastaveno žádné časové pásmo a předpokládá se %{zone} . Chcete-li vybrat časové pásmo, klikněte prosím zde. permission_create_meetings: "Vytvořit schůzku\n" permission_edit_meetings: "Upravit schůzku" - permission_delete_meetings: "Smazat schůzku" + permission_delete_meetings: "Odstranit schůzky" permission_view_meetings: "Zobrazit schůzky" permission_create_meeting_agendas: "Vytvořit agendy schůzek" permission_create_meeting_agendas_explanation: "Umožňuje upravovat obsah programu klasické schůzky." diff --git a/modules/meeting/config/locales/crowdin/pt.seeders.yml b/modules/meeting/config/locales/crowdin/pt.seeders.yml deleted file mode 100644 index 8049e00f3b77..000000000000 --- a/modules/meeting/config/locales/crowdin/pt.seeders.yml +++ /dev/null @@ -1,29 +0,0 @@ -#This file has been generated by script/i18n/generate_seeders_i18n_source_file. -#Please do not edit directly. -#This file is part of the sources sent to crowdin for translation. ---- -pt: - seeds: - standard: - projects: - demo-project: - meetings: - item_0: - title: Semanal - meeting_agenda_items: - item_0: - title: Boas notícias - item_1: - title: Atualizações da equipe de desenvolvimento - item_2: - title: Atualizações da equipe do produto - item_3: - title: Atualizações da equipe de marketing - item_4: - title: Atualizações da equipe de vendas - item_5: - title: Análise dos objetivos trimestrais - item_6: - title: Feedback sobre os valores fundamentais - item_7: - title: Tópicos gerais diff --git a/modules/meeting/config/locales/crowdin/pt.yml b/modules/meeting/config/locales/crowdin/pt.yml deleted file mode 100644 index aa9e75e7a832..000000000000 --- a/modules/meeting/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,184 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -#English strings go here for Rails i18n -pt: - plugin_openproject_meeting: - name: "Reunião do OpenProject" - description: >- - Este módulo adiciona ao OpenProject funções de suporte às reuniões de projeto. As reuniões podem ser agendadas por meio da seleção dos convidados do mesmo projeto para que participem na reunião. Uma agenda pode ser criada e enviada aos convidados. Após a reunião, os participantes podem ser selecionados e as minutas podem ser criadas com base na agenda. Por fim, as minutas podem ser enviadas para todos os participantes e convidados. - activerecord: - attributes: - meeting: - type: "Tipo de reunião" - location: "Local" - duration: "Duração" - notes: "Anotações" - participants: "Participantes" - participant: - one: "1 participante" - other: "%{count} participantes" - participants_attended: "Presentes" - participants_invited: "Convidados" - project: "Projeto" - start_date: "Data" - start_time: "Horário" - start_time_hour: "Horário de início" - meeting_agenda_items: - title: "Título" - author: "Responsável" - duration_in_minutes: "Duração (min)" - description: "Anotações" - errors: - messages: - invalid_time_format: "não é um horário válido. Formato exigido: HH:MM" - models: - structured_meeting: "Reunião (dinâmica)" - meeting_agenda_item: "Item da agenda" - meeting_agenda: "Agenda" - meeting_minutes: "Atas" - activity: - filter: - meeting: "Reuniões" - description_attended: "compareceu" - description_invite: "convidado" - events: - meeting: Reunião editada - meeting_agenda: Agenda da reunião editada - meeting_agenda_closed: Agenda da reunião fechada - meeting_agenda_opened: Agenda da reunião aberta - meeting_minutes: Ata da reunião editada - meeting_minutes_created: Ata da reunião criada - error_notification_with_errors: "Falha ao enviar notificação. Os seguintes destinatários não puderam ser notificados: %{recipients}" - label_meeting: "Reunião" - label_meeting_plural: "Reuniões" - label_meeting_new: "Nova Reunião" - label_meeting_edit: "Editar Reunião" - label_meeting_agenda: "Agenda" - label_meeting_minutes: "Atas" - label_meeting_close: "Fechar" - label_meeting_open: "Abrir" - label_meeting_agenda_close: "Fechar a agenda para iniciar a Ata" - label_meeting_date_time: "Data/Horário" - label_meeting_diff: "Diferenças" - label_upcoming_meetings: "Próximas reuniões" - label_past_meetings: "Reuniões anteriores" - label_upcoming_meetings_short: "Próximos" - label_past_meetings_short: "Passado" - label_involvement: "Envolvimento" - label_upcoming_invitations: "Próximos convites" - label_past_invitations: "Convites anteriores" - label_attendee: "Participante" - label_author: "Criador" - label_notify: "Enviar para revisão" - label_icalendar: "Enviar iCalendar" - label_icalendar_download: "Baixar evento iCalendar" - label_version: "Versão" - label_time_zone: "Fuso horário" - label_start_date: "Data de início" - meeting: - copy: - title: "Copy meeting %{title}" - agenda: "Copy agenda" - agenda_text: "Copy the agenda of the old meeting" - email: - open_meeting_link: "Abrir reunião" - invited: - summary: "%{actor} enviou a você um convite para a reunião %{title}" - rescheduled: - header: "A reunião %{title} foi remarcada" - summary: "A reunião %{title} foi remarcada por %{actor}" - body: "A reunião %{title} foi remarcada por %{actor}" - old_date_time: "Data/hora antiga" - new_date_time: "Nova data/hora" - label_mail_all_participants: "Enviar e-mail para todos os participantes" - types: - classic: 'Clássico' - classic_text: 'Organize sua reunião em uma agenda e protocolo de texto formatáveis.' - structured: 'Dinâmico' - structured_text: 'Organize sua reunião como uma lista de itens da agenda, opcionalmente vinculando-os a um pacote de trabalho.' - structured_text_copy: 'Copiar uma reunião atualmente não copiará os itens associados da agenda da reunião, apenas os detalhes' - copied: "Copiado para a Reunião #%{id}" - notice_successful_notification: "Notificação enviada com sucesso" - notice_timezone_missing: Nenhum fuso horário está definido, portanto assumiu-se %{zone}. Para escolher o seu fuso horário, clique aqui. - permission_create_meetings: "Criar reuniões" - permission_edit_meetings: "Editar reuniões" - permission_delete_meetings: "Excluir reuniões" - permission_view_meetings: "Visualizar reuniões" - permission_create_meeting_agendas: "Criar agendas de reuniões" - permission_create_meeting_agendas_explanation: "Permite a edição do conteúdo da agenda da Reunião Clássica." - permission_manage_agendas: "Gerenciar agendas" - permission_manage_agendas_explanation: "Permite gerenciar os itens da agenda da Reunião Dinâmica." - permission_close_meeting_agendas: "Fechar agendas" - permission_send_meeting_agendas_notification: "Enviar notificação de revisão para agendas" - permission_create_meeting_minutes: "Gerenciar atas" - permission_send_meeting_minutes_notification: "Enviar notificação de revisão das atas" - permission_meetings_send_invite: "Convidar usuários para reuniões" - permission_send_meeting_agendas_icalendar: "Enviar agenda de reunião como entrada na agenda" - project_module_meetings: "Reuniões" - text_duration_in_hours: "Duração em horas" - text_in_hours: "em horas" - text_meeting_agenda_for_meeting: 'agenda para a reunião "%{meeting}"' - text_meeting_closing_are_you_sure: "Você tem certeza de que deseja encerar a pauta da reunião?" - text_meeting_agenda_open_are_you_sure: "Esta ação sobrepões todas as alterações nos minutos! Pretende continuar?" - text_meeting_minutes_for_meeting: 'ata da reunião "%{meeting}"' - text_notificiation_invited: "Este e-mail contém uma entrada de ics para a reunião abaixo:" - text_meeting_empty_heading: "Sua reunião está vazia" - text_meeting_empty_description_1: "Comece adicionando itens da agenda abaixo. Cada item pode ser tão simples quanto apenas um título, mas você também pode adicionar detalhes adicionais, como duração, anotações e uma pessoa responsável." - text_meeting_empty_description_2: "Você também pode adicionar referências aos pacotes de trabalho existentes. Quando você fizer isso, as anotações relacionadas ficarão automaticamente visíveis na guia \"Reuniões\" do pacote de trabalho." - label_meeting_empty_action: "Adicionar item da agenda" - label_meeting_actions: "Ações da reunião\n" - label_meeting_edit_title: "Editar título da reunião" - label_meeting_delete: "Excluir reunião" - label_meeting_created_by: "Criado por" - label_meeting_last_updated: "Última atualização" - label_agenda_item_undisclosed_wp: "Pacote de trabalho #%{id} não visível" - label_agenda_item_deleted_wp: "Referência do pacote de trabalho excluída" - label_agenda_item_actions: "Ações dos itens da agenda" - label_agenda_item_move_to_top: "Mover para o topo" - label_agenda_item_move_to_bottom: "Mover para o final" - label_agenda_item_move_up: "Mover para cima" - label_agenda_item_move_down: "Mover para baixo" - label_agenda_item_add_notes: "Adicionar anotações" - label_meeting_details: "Detalhes da reunião" - label_meeting_details_edit: "Editar detalhes da reunião" - label_meeting_state_open: "Aberto" - label_meeting_state_closed: "Fechado" - label_meeting_reopen_action: "Reabrir reunião" - label_meeting_close_action: "Fechar reunião" - text_meeting_open_description: "Esta reunião está aberta. Você pode adicionar/remover itens da agenda e editá-los como desejar. Depois que a reunião terminar, feche-a para bloqueá-la." - text_meeting_closed_description: "Esta reunião está fechada. Você não pode mais adicionar/remover itens da agenda." - label_meeting_manage_participants: "Gerenciar participantes" - label_meeting_no_participants: "Sem participantes" - label_meeting_show_hide_participants: "Exibir/ocultar %{contagem} a mais" - label_meeting_show_all_participants: "Mostrar todos" - label_meeting_add_participants: "Adicionar participantes" - text_meeting_not_editable_anymore: "A reunião não pode mais ser editada." - text_meeting_not_present_anymore: "Esta reunião foi excluída. Selecione outra reunião." - label_add_work_package_to_meeting_dialog_title: "Adicione o pacote de trabalho à reunião" - label_add_work_package_to_meeting_dialog_button: "Adicionar à reunião" - label_meeting_selection_caption: "Só é possível adicionar este pacote de trabalho a reuniões em andamento ou futuras." - text_add_work_package_to_meeting_description: "Um pacote de trabalho pode ser adicionado a uma ou várias reuniões para discussão. Quaisquer anotações sobre ele também ficarão visíveis aqui." - text_agenda_item_no_notes: "Nenhum comentário foi feito" - text_agenda_item_not_editable_anymore: "Este item da agenda não pode mais ser editado." - text_work_package_has_no_upcoming_meeting_agenda_items: "Este pacote de trabalho ainda não está programado na agenda de uma reunião futura." - text_work_package_add_to_meeting_hint: "Use o botão \"Adicionar à reunião\" para adicionar este pacote de trabalho a uma próxima reunião." - text_work_package_has_no_past_meeting_agenda_items: "Este pacote de trabalho não foi mencionado em uma reunião anterior." diff --git a/modules/my_page/config/locales/crowdin/js-pt.yml b/modules/my_page/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 859e96f039bf..000000000000 --- a/modules/my_page/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,4 +0,0 @@ -pt: - js: - my_page: - label: "Minha página" diff --git a/modules/openid_connect/config/locales/crowdin/pt.yml b/modules/openid_connect/config/locales/crowdin/pt.yml deleted file mode 100644 index 41d80a844de5..000000000000 --- a/modules/openid_connect/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,32 +0,0 @@ -pt: - plugin_openproject_openid_connect: - name: "Conectar OpenProject OpenID" - description: "Adiciona provedores de estratégia OmniAuth OpenID Connect ao Openproject." - logout_warning: > - Você foi desconectado. O conteúdo de qualquer formulário que você enviar poderá ser perdido. Por favor [faça login]. - activemodel: - attributes: - openid_connect/provider: - name: Nome - display_name: Nome de exibição - identifier: Identificador - secret: Chave - scope: Escopo - limit_self_registration: Limitar o registro automático - openid_connect: - menu_title: Provedores OpenID - providers: - label_add_new: Adicionar um novo provedor OpenID - label_edit: Editar provedor OpenID %{name} - no_results_table: Nenhum provedor foi definido. - plural: Provedores OpenID - singular: Provedor OpenID - setting_instructions: - azure_deprecation_warning: > - O aplicativo Azure configurado aponta para uma API descontinuada do Azure. Crie um novo aplicativo Azure para garantir o funcionalidade no futuro. - azure_graph_api: > - Use o ponto de extremidade de userinfo graph.microsoft.com para solicitar dados de usuário. Este deve ser o padrão, a menos que você tenha um aplicativo Azure mais antigo. - azure_tenant_html: > - Defina o proprietário do seu ponto de extremidade Azure. Isto irá controlar quem obtém acesso à instância do OpenProject. Para obter mais informações, consulte nosso guia de usuário em conexão do Azure OpenID. - limit_self_registration: > - Se ativado, os usuários só poderão se registrar usando esse provedor se a configuração de registro automático permitir isso. diff --git a/modules/overviews/config/locales/crowdin/js-pt.yml b/modules/overviews/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 436bc25f1a36..000000000000 --- a/modules/overviews/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,4 +0,0 @@ -pt: - js: - overviews: - label: 'Visão geral' diff --git a/modules/overviews/config/locales/crowdin/pt.yml b/modules/overviews/config/locales/crowdin/pt.yml deleted file mode 100644 index d52a98c9f0e4..000000000000 --- a/modules/overviews/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,4 +0,0 @@ -pt: - overviews: - label: 'Visão geral' - permission_manage_overview: 'Gerenciar página de visão geral' diff --git a/modules/recaptcha/config/locales/crowdin/pt.yml b/modules/recaptcha/config/locales/crowdin/pt.yml deleted file mode 100644 index 83fcf63093cb..000000000000 --- a/modules/recaptcha/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,24 +0,0 @@ -#English strings go here for Rails i18n -pt: - plugin_openproject_recaptcha: - name: "ReCaptcha do OpenProject" - description: "Este módulo fornece verificações recaptcha durante o início de sessão." - recaptcha: - label_recaptcha: "reCAPTCHA" - button_please_wait: 'Por favor, aguarde...' - verify_account: "Verifique a sua conta" - error_captcha: "Não foi possível verificar sua conta. Por favor, entre em contato com um administrador." - settings: - website_key: 'Chave do site' - response_limit: 'Limite de resposta para HCaptcha' - response_limit_text: 'O número máximo de caracteres para tratar a resposta HCaptcha como válida.' - website_key_text: 'Digite a chave do site que você criou no console de administração reCAPTCHA para este domínio.' - secret_key: 'Chave secreta' - secret_key_text: 'Digite a chave secreta que você criou no console de administração reCAPTCHA.' - type: 'Usar reCAPTCHA' - type_disabled: 'Desativar reCAPTCHA' - type_v2: 'reCAPTCHA v2' - type_v3: 'reCAPTCHA v3' - type_hcaptcha: 'HCaptcha' - recaptcha_description_html: > - reCAPTCHA é um serviço gratuito do Google que pode ser ativado para sua instância do OpenProject. Se habilitado, um formulário captcha será renderizado no login para todos os usuários que ainda não verificaram um captcha.
Consulte o link a seguir para obter mais detalhes sobre o reCAPTCHA e suas versões, e como criar o site e as chaves secretas: %{recaptcha_link}
HCaptcha é uma alternativa sem Google que você pode usar se não quiser usar o reCAPTCHA. Consulte este link para obter mais informações: %{hcaptcha_link} diff --git a/modules/reporting/config/locales/crowdin/pt.yml b/modules/reporting/config/locales/crowdin/pt.yml deleted file mode 100644 index 5f77c6611e28..000000000000 --- a/modules/reporting/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,94 +0,0 @@ -#-- copyright -#OpenProject is an open source project management software. -#Copyright (C) 2012-2024 the OpenProject GmbH -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License version 3. -#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -#Copyright (C) 2006-2013 Jean-Philippe Lang -#Copyright (C) 2010-2013 the ChiliProject Team -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -#See COPYRIGHT and LICENSE files for more details. -#++ -pt: - plugin_openproject_reporting: - name: "Relatórios do OpenProject" - description: "Este plugin permite a criação de relatórios de custos personalizados com filtragem e agrupamento criados pelo plugin OpenProject Time e custos." - button_save_as: "Salvar relatório como..." - comments: "Comentário" - cost_reports_title: "Tempo e custos" - label_cost_report: "Relatório de custos" - label_cost_report_plural: "Relatórios de custos" - description_drill_down: "Exibir detalhes" - description_filter_selection: "Seleção" - description_multi_select: "Mostrar multiseleção" - description_remove_filter: "Remover filtro" - information_restricted_depending_on_permission: "Dependendo de suas permissões esta página pode conter informações restritas." - label_click_to_edit: "Clique para editar." - label_closed: "fechado" - label_columns: "Colunas" - label_cost_entry_attributes: "Atributos do custo de entrada" - label_days_ago: "durante os últimos dias" - label_entry: "Custo de entrada" - label_filter_text: "Filtro de texto" - label_filter_value: "Valor" - label_filters: "Filtro" - label_greater: ">" - label_is_not_project_with_subprojects: "não é (inclui subprojetos)" - label_is_project_with_subprojects: "é (inclui subprojetos)" - label_work_package_attributes: "Atributos do pacote de trabalho" - label_less: "<" - label_logged_by_reporting: "Registrado por" - label_money: "Valor em dinheiro" - label_month_reporting: "Mês (gasto)" - label_new_report: "Novo relatório de custos" - label_open: "aberto" - label_operator: "Operador" - label_private_report_plural: "Relatórios privados de custos" - label_progress_bar_explanation: "Gerando relatório..." - label_public_report_plural: "Relatórios público de custos" - label_really_delete_question: "Tem certeza que deseja excluir este relatório?" - label_rows: "Linhas" - label_saving: "Salvando ..." - label_spent_on_reporting: "Data (gasto)" - label_sum: "Soma" - label_units: "Unidades" - label_week_reporting: "Semana (gasto)" - label_year_reporting: "Ano (gasto)" - label_count: "Contar" - label_filter: "Filtro" - label_filter_add: "Adicionar filtro" - label_filter_plural: "Filtros" - label_group_by: "Agrupar por" - label_group_by_add: "Adicionar atributo Agrupar por" - label_inactive: "«inativo»" - label_no: "Não" - label_none: "(sem dados)" - label_no_reports: "Ainda não há relatórios de custos" - label_report: "Relatório" - label_yes: "Sim" - load_query_question: "Relatório terá %{size} células da tabela e pode levar algum tempo para processar. Você ainda quer tentar processá-lo?" - permission_save_cost_reports: "Salvar relatórios públicos de custos" - permission_save_private_cost_reports: "Salvar relatórios privados de custos" - project_module_reporting_module: "Relatórios de custos" - text_costs_are_rounded_note: "Valores exibidos são arredondados. Todos os cálculos baseiam-se em valores não-arredondados." - toggle_multiselect: "ativar/desativar multiseleção" - units: "Unidades" - validation_failure_date: "não é uma data válida" - validation_failure_integer: "não é um valor inteiro válido" - export: - cost_reports: - title: "Exportação XLS dos seus relatórios de custos" - reporting: - group_by: - selected_columns: "Colunas selecionadas" - selected_rows: "Linhas Selecionadas" diff --git a/modules/storages/config/locales/crowdin/js-pt.yml b/modules/storages/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 9a28a2b6299d..000000000000 --- a/modules/storages/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,85 +0,0 @@ -#English strings go here -pt: - js: - storages: - link_files_in_storage: "Vincular arquivos em %{storageType}" - link_existing_files: "Vincular arquivos existentes" - upload_files: "Anexar arquivos" - drop_files: "Solte os arquivos aqui para enviá-los para %{name}." - drop_or_click_files: "Solte os arquivos aqui ou clique para carregá-los para %{name}." - login: "Início de sessão de %{storageType}" - login_to: "Iniciar sessão em %{storageType}" - no_connection: "Sem conexão de %{storageType}" - open_storage: "Abrir %{storageType}" - select_location: "Selecionar localização" - choose_location: "Escolher localização" - types: - nextcloud: "Nextcloud" - one_drive: "OneDrive/SharePoint" - default: "Armazenamento" - information: - connection_error: > - Algumas configurações de %{storageType} não estão funcionando. Entre em contato com seu administrador de %{storageType}. - live_data_error: "Erro ao obter dados do arquivo" - live_data_error_description: > - Não foi possível obter algumas dados de %{storageType}. ,Tente recarregar a página ou entre em contate com seu administrador de %{storageType}. - no_file_links: "Para vincular arquivos a este pacote de trabalho, faça isso através de %{storageType}." - not_logged_in: > - Para adicionar um link, visualizar ou enviar arquivos relacionados a este pacote de trabalho, inicie sessão em %{storageType} - files: - already_existing_header: "Este arquivo já existe" - already_existing_body: > - Já existe um arquivo com o nome "%{fileName}" na localização para onde você está tentando enviar este arquivo. O que você deseja fazer? - directory_not_writeable: "Você não possui permissão para adicionar arquivos a esta pasta." - dragging_many_files: "O carregamento para %{storageType} só dá suporte a um arquivo por vez." - dragging_folder: "O upload para %{storageType} não dá suporte a pastas." - empty_folder: "Esta pasta está vazia." - empty_folder_location_hint: "Clique no botão abaixo para carregar o arquivo para esta localização." - file_not_selectable_location: "Não é possível selecionar um arquivo no processo de escolha de uma localização." - project_folder_no_access: > - Você não tem acesso à pasta do projeto. Por favor, entre em contato com o administrador para obter acesso ou envie o arquivo em outro local. - managed_project_folder_not_available: > - A pasta do projeto gerenciado automaticamente ainda não foi encontrada. Aguarde um pouco, recarregue a página para obter os dados mais recentes e tente novamente. - managed_project_folder_no_access: > - Você ainda não possui acesso à pasta do projeto gerenciado. Aguarde um pouco e tente novamente. - upload_keep_both: "Manter ambos" - upload_replace: "Substituir" - file_links: - empty: > - Atualmente não há arquivos vinculados a este pacote de trabalho. Vincule os seus primeiros arquivos através da ação abaixo ou a partir de %{storageType}. - download: "Baixar %{fileName}" - open: "Abrir arquivo no armazenamento" - open_location: "Abrir arquivo no local" - remove: "Remover link de arquivo" - remove_confirmation: > - tem certeza de que deseja desvincular o arquivo deste pacote de trabalho? A desvinculação não afeta o arquivo original e só remove a conexão com este pacote de trabalho. - remove_short: "Remover link" - select: "Selecionar arquivos" - select_all: "Selecionar tudo" - selection: - zero: "Selecione arquivos para vincular" - one: "Vincular 1 arquivo" - other: "Vincular %{count} arquivos" - success_create: - one: "Criou com sucesso 1 vínculo do arquivo." - other: "Criou com sucesso %{count} vínculos do arquivo." - upload_error: - default: > - Não foi possível carregar o seu arquivo (%{fileName}). - 403: > - Não foi possível carregar seu arquivo (%{fileName}) devido a restrições do sistema. Entre em contato com o seu administrador para obter mais informações. - 413: > - Seu arquivo (%{fileName}) é maior do que o limite que o OpenProject pode carregar para %{storageType}. Você pode carregar diretamente para %{storageType} primeiro e depois vincular o arquivo. - 507: > - Seu arquivo (%{fileName}) é maior que o permitido pela cota de armazenamento. Entre em contato com seu administrador para modificar esta cota. - detail: - nextcloud: > - Verifique se a versão mais recente do Nextcloud App "OpenProject Integration" está instalada e entre em contato com seu administrador para obter mais informações. - link_uploaded_file_error: > - Ocorreu um erro ao vincular o arquivo recém-carregado '%{fileName}' para o pacote de trabalho %{workPackageId} - tooltip: - not_logged_in: "Faça o login no armazenamento para acessar este arquivo" - view_not_allowed: "Você não possui permissão para visualizar este arquivo." - not_found: "Não foi possível encontrar este pedido" - already_linked_file: "Este arquivo já está vinculado a este pacote de trabalho." - already_linked_directory: "Este diretório já está vinculado a este pacote de trabalho." diff --git a/modules/storages/config/locales/crowdin/pt.yml b/modules/storages/config/locales/crowdin/pt.yml deleted file mode 100644 index 037941c800d3..000000000000 --- a/modules/storages/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,237 +0,0 @@ -pt: - activerecord: - attributes: - storages/file_link: - origin_id: Id da origem - storages/storage: - creator: Criador - drive: ID da unidade - host: Servidor - name: Nome - provider_type: Tipo de provedor - tenant: ID do diretório (locatário) - errors: - messages: - not_linked_to_project: não está vinculado ao projeto. - models: - storages/file_link: - attributes: - origin_id: - only_numeric_or_uuid: somente pode ser numérico ou uuid. - storages/project_storage: - attributes: - project_folder_mode: - mode_unavailable: não está disponível para este armazenamento. - storages/storage: - attributes: - host: - authorization_header_missing: se não totalmente configurado. A instância Nextcloud não recebe o cabeçalho "Autorização", que é necessário para um token Bearer com base na autorização de solicitações de API. Verifique novamente suas configurações de servidor HTTP. - cannot_be_connected_to: não pode ser conectado. - minimal_nextcloud_version_unmet: não atende aos requisitos mínimos de versão (deve ser Nextcloud 23 ou superior) - not_nextcloud_server: não é um servidor Nextcloud - op_application_not_installed: Parece não possui o aplicativo "OpenProject integration" instalado. Instale-o primeiro e depois tente novamente. - password: - invalid_password: não é válido. - unknown_error: não foi possível validar. ,Verifique sua conexão com o armazenamento e tente novamente. - models: - file_link: Arquivo - storages/storage: Armazenamento - api_v3: - errors: - too_many_elements_created_at_once: Muitos elementos criados ao mesmo tempo. Esperado %{max} no máximo, obteve %{actual}. - permission_create_files: Criar arquivos - permission_delete_files: Excluir arquivos - permission_manage_file_links: Gerenciar vínculos de arquivos - permission_manage_storages_in_project: Gerenciar armazenamentos de arquivos no projeto - permission_read_files: Ler arquivos - permission_share_files: Compartilhar arquivos - permission_view_file_links: Exibir vínculos de arquivos - permission_write_files: Escrever arquivos - project_module_storages: Armazenamento de arquivos - storages: - buttons: - complete_without_setup: Concluir sem isso - done_complete_setup: Pronto, concluir configuração - done_continue: Pronto, continuar - replace_oauth_application: Replace OpenProject OAuth - replace_oauth_client: Replace %{provider_type} OAuth - save_and_continue: Salvar e continuar - select_folder: Selecionar pastas - configuration_checks: - oauth_client_incomplete: - nextcloud: Permitir que o OpenProject acesse os dados da Nextcloud usando o OAuth. - one_drive: Permitir que o OpenProject acesse os dados Azure utilizando o OAuth para conectar o OneDrive/Sharepoint. - redirect_uri_incomplete: - one_drive: Conclua a configuração com o redirecionamento correto do URI. - confirm_replace_oauth_application: This action will reset the current OAuth credentials. After confirming you will have to reenter the credentials at the storage provider and all remote users will have to authorize against OpenProject again. Are you sure you want to proceed? - confirm_replace_oauth_client: This action will reset the current OAuth credentials. After confirming you will have to enter new credentials from the storage provider and all users will have to authorize against %{provider_type} again. Are you sure you want to proceed? - delete_warning: - input_delete_confirmation: Insira o nome do armazenamento de arquivos %{file_storage} para confirmar a exclusão. - irreversible_notice: Excluir um armazenamento de arquivos é uma ação irreversível. - project_storage: 'Tem certeza de que deseja excluir %{file_storage} deste projeto? Para confirmar esta ação, introduza o nome do armazenamento no campo abaixo, isto irá:' - project_storage_delete_result_1: Remover todos os links dos pacotes de trabalho deste projeto para arquivos e pastas desse armazenamento. - project_storage_delete_result_2: Caso este armazenamento tenha uma pasta de projeto gerenciado automaticamente, este e seus arquivos serão excluídos para sempre. - storage: 'Tem certeza de que deseja excluir %{file_storage}? Para confirmar esta ação, introduza o nome do armazenamento no campo abaixo, isto irá:' - storage_delete_result_1: Remover todas as configurações de armazenamento para todos os projetos que utilizam este armazenamento. - storage_delete_result_2: Remover todos os links do pacotes de trabalho de todos os projetos para arquivos e pastas desse armazenamento. - storage_delete_result_3: Caso este armazenamento tenha pastas de projeto gerenciadas automaticamente, estas, e os seus arquivos, serão excluídos para sempre. - error_invalid_provider_type: Selecione um provedor de armazenamento válido. - file_storage_view: - automatically_managed_folders: Pastas gerenciadas automaticamente - general_information: Informações gerais - nextcloud_oauth: OAuth Nextcloud - oauth_applications: Aplicações OAuth - one_drive_oauth: Azure OAuth - openproject_oauth: OAuth OpenProject - project_folders: Pastas do projeto - redirect_uri: Redirecionar URI - storage_provider: Provedor de armazenamento - health: - checked: Última verificação em %{datetime} - label_error: Erro - label_healthy: Saudável - label_pending: Pendente - since: desde %{datetime} - subtitle: Pastas do projeto gerenciadas automaticamente - title: Status de saúde - help_texts: - project_folder: A pasta do projeto é a pasta padrão para uploads de arquivos para esse projeto. No entanto, os usuários ainda podem carregar arquivos em outros locais. - instructions: - all_available_storages_already_added: Todos os armazenamentos disponíveis já foram adicionados ao projeto. - automatic_folder: Isto irá criar automaticamente uma pasta raiz para este projeto e gerenciará as permissões de acesso para cada membro do projeto. - copy_from: Copiar este valor de - empty_project_folder_validation: Selecionar uma pasta é obrigatório para continuar. - existing_manual_folder: Você pode designar uma pasta existente como a pasta raiz desse projeto. No entanto, as permissões não são gerenciadas automaticamente; o administrador precisa garantir manualmente que os usuários relevantes tenham acesso. A pasta selecionada pode ser usada por vários projetos. - host: Adicione o endereço do host de seu armazenamento incluindo o https://. Ele não deve ter mais de 255 caracteres. - managed_project_folders_application_password_caption: 'Habilitar as pastas gerenciadas automaticamente copiando este valor de: %{provider_type_link}.' - name: Dê um nome a seu armazenamento para que os usuários possam diferenciar vários armazenamentos. - new_storage: Para mais informações, leia a nossa documentação sobre configuração de uma integração de armazenamento de arquivos de %{provider_name}. - nextcloud: - application_link_text: aplicativo “Integration OpenProject” - integration: Administração de Nextcloud / OpenProject - oauth_configuration: Copie estes valores de %{application_link_text}. - provider_configuration: 'Certifique-se de ter os privilégios de administração em sua instância de Nextcloud e de que o %{application_link_text} está instalado antes de realizar a configuração:' - no_specific_folder: Por padrão, cada usuário iniciará em sua própria pasta pessoal quando fizer upload de um arquivo. - no_storage_set_up: Ainda não há armazenamento de arquivos configurado. - not_logged_into_storage: Para selecionar uma pasta de projeto, primeiro faça login - oauth_application_details: 'O valor secreto do cliente não poderá ser acessado novamente após esta janela ser fechada. Copie estes valores em %{oauth_application_details_link}:' - oauth_application_details_link_text: Configurações de integração do Nextcloud OpenProject - one_drive: - application_link_text: Portal Azure - copy_redirect_uri: Copiar URI de redirecionamento - documentation_link_text: Documentação de armazenamento de arquivos OneDrive/SharePoint - drive_id: Copie o ID da unidade desejada seguindo as etapas em %{drive_id_link_text}. - integration: OneDrive/SharePoint - missing_client_id_for_redirect_uri: Preencha os valores OAuth para gerar um URI - oauth_client_redirect_uri: Copie este valor para um novo URI de redirecionamento da Web em URI de redirecionamento. - oauth_client_secret: Caso não haja um segredo do cliente do aplicativo sob as credenciais do cliente, crie um novo. - oauth_configuration: Copie estes valores do aplicativo pretendido no %{application_link_text}. - provider_configuration: Certifique-se de ter privilégios de administração no %{application_link_text} ou entre em contato com seu administrador da Microsoft antes de fazer a configuração. No portal, você também precisa registrar um aplicativo Azure ou usar um existente para autenticação. - tenant_id: Copie o ID do diretório (inquilino) do aplicativo desejado e dos registros de aplicativos no %{application_link_text}. - tenant_id_placeholder: Nome ou UUID - setting_up_additional_storages: Para configurar armazenamentos de arquivos adicionais, por favor visite - setting_up_additional_storages_non_admin: Os administradores podem configurar armazenamentos adicionais em Administração/Armazenamento de arquivos. - setting_up_storages: Para configurar armazenamentos de arquivos, visite - setting_up_storages_non_admin: Administradores podem configurar armazenamentos de arquivos em Administração / Armazenamento de arquivos. - type: 'Certifique-se de ter privilégios de administração em sua instância Nextcloud e de ter o seguinte aplicativo instalado antes de realizar a configuração:' - type_link_text: "“Integração OpenProject”" - label_active: Ativo - label_add_new_storage: Adicionar novo armazenamento - label_automatic_folder: Nova pasta com permissões gerenciadas automaticamente - label_completed: Concluído - label_creation_time: Hora de criação - label_creator: Criador - label_delete_storage: Excluir armazenamento - label_edit_storage: Editar armazenamento - label_edit_storage_automatically_managed_folders: Editar pastas gerencias automaticamente de armazenamento - label_edit_storage_host: Editar host de armazenamento - label_existing_manual_folder: Pasta existente com permissões gerenciadas manualmente - label_file_storage: Armazenamento de arquivos - label_host: URL do host - label_inactive: Inativo - label_incomplete: Incompleto - label_managed_project_folders: - application_password: Senha do aplicativo - automatically_managed_folders: Pastas gerenciadas automaticamente - label_name: Nome - label_new_file_storage: Novo armazenamento %{provider} - label_new_storage: Novo armazenamento - label_no_selected_folder: Nenhuma pasta selecionada - label_no_specific_folder: Nenhuma pasta específica - label_oauth_client_id: ID do cliente Oauth2 - label_openproject_oauth_application_id: ID de Cliente OAuth OpenProject - label_openproject_oauth_application_secret: Segredo de cliente OAuth OpenProject - label_project_folder: Pasta do projeto - label_provider: Provedor - label_redirect_uri: Redirecionar URI - label_show_storage_redirect_uri: Exibir URI de redirecionamento - label_status: Status - label_storage: Armazenamento - label_uri: URI - member_connection_status: - connected: Conectado - connected_no_permissions: A função de usuário não tem permissões de armazenamento - not_connected: Não conectado. O usuário deve iniciar sessão no armazenamento por meio do seguinte %{link}. - members_no_results: Nenhum membro para exibir. - no_results: Ainda não há armazenamento configurado. - notice_successful_storage_connection: |- - Armazenamento conectado com sucesso! Lembre-se de ativar o módulo e o armazenamento específico nas configurações do projeto de cada projeto desejado para utilizá-lo. - oauth_grant_nudge_modal: - access_granted: Acesso concedido - access_granted_screen_reader: Access granted. You are now ready to use %{storage}. - body: Para obter acesso à pasta do projeto, você precisa fazer login em %{storage}. - cancel_button_label: Cuidarei disso mais tarde - confirm_button_aria_label: Login to %{storage} - confirm_button_label: Login - requesting_access_to: Requesting access to %{storage} - storage_ready: Agora você está pronto para usar %{storage} - title: Só mais uma etapa... - open_project_storage_modal: - success: - subtitle: Você está sendo redirecionado - title: Configuração de integração concluída - waiting: - subtitle: Aguarde um momento, esta ação pode demorar um pouco... - title: Estamos definindo suas permissões na pasta do projeto. - page_titles: - file_storages: - delete: Excluir armazenamento de arquivos - subtitle: Adicione um armazenamento de arquivos externo para carregar, vincular e gerenciar arquivos em pacotes de trabalho. - managed_project_folders: - one_drive_information: |- - Para ativar pastas de projetos gerenciadas automaticamente no OneDrive/SharePoint, é necessária uma configuração adicional na - unidade que é usada para o armazenamento deste arquivo. Se o OpenProject gerenciar as permissões desta unidade, ele - provavelmente ficará inutilizável para outros casos de uso no SharePoint. Para mais informações e orientações, consulte - o %{drive_id_link_text}. - subtitle: |- - Deixe o OpenProject criar pastas por projeto automaticamente. Esta ação é recomendada, pois garante que cada membro da equipe sempre tenha as permissões de acesso corretas. - subtitle_short: Deixe o OpenProject criar pastas por projeto automaticamente. - title: Pastas do projeto gerenciadas automaticamente - project_settings: - delete: Excluir armazenamento de arquivos - edit: Editar o armazenamento de arquivos para este projeto - index: Armazenamento de arquivos disponíveis neste projeto - members_connection_status: Status da conexão dos membros - new: Adicionar um armazenamento de arquivos a este projeto - project_storage_members: - subtitle: Verifique o status da conexão para o armazenamento %{storage_name_link} de todos os membros do projeto - title: Status da conexão dos membros - provider_types: - label: Tipo de provedor - nextcloud: - label_oauth_client_id: ID do cliente Nextcloud OAuth - label_oauth_client_secret: Segredo do cliente Nextcloud OAuth - name: Nextcloud - name_placeholder: 'Ex.: Nextcloud' - one_drive: - label_oauth_client_id: ID do aplicativo Azure OAuth (cliente) - label_oauth_client_secret: Valor secreto do cliente Azure OAuth - name: OneDrive/SharePoint - name_placeholder: 'por ex.: OneDrive' - storage_list_blank_slate: - description: Adicione um armazenamento para vê-lo aqui. - heading: Ainda não tem nenhum armazenamento. - upsale: - description: |- - Integre seu OneDrive/SharePoint como um armazenamento de arquivos com o OpenProject. Carregue arquivos e vincule-os diretamente aos pacotes de trabalho em um projeto. - title: Integração OneDrive/SharePoint diff --git a/modules/team_planner/config/locales/crowdin/js-pt.yml b/modules/team_planner/config/locales/crowdin/js-pt.yml deleted file mode 100644 index 4b78496fcd9c..000000000000 --- a/modules/team_planner/config/locales/crowdin/js-pt.yml +++ /dev/null @@ -1,26 +0,0 @@ -#English strings go here -pt: - js: - team_planner: - add_existing: 'Adicionar existente' - add_existing_title: 'Adicionar pacotes de trabalho existentes' - create_label: 'Planejador de equipe' - create_title: 'Criar novo planejador de equipe' - unsaved_title: 'Planejador de equipe não nomeado' - no_data: 'Adicione responsáveis para configurar seu planejador de equipe.' - add_assignee: 'Adicionar responsável' - remove_assignee: 'Remover responsável' - two_weeks: '2 semanas' - one_week: '1 semana' - work_week: 'Semana de trabalho' - today: 'Hoje' - drag_here_to_remove: 'Arraste aqui para remover o responsável e as datas de início e término.' - cannot_drag_here: 'Não é possível remover o pacote de trabalho devido a permissões ou restrições de edição.' - cannot_drag_to_non_working_day: 'Esse pacote de trabalho não pode começar/terminar em um fim de semana' - quick_add: - empty_state: 'Use o campo de pesquisa para encontrar pacotes de trabalho e arraste-os para o planejador para atribuí-los para alguém e definir as datas de início e término.' - search_placeholder: 'Pesquisar...' - modify: - errors: - permission_denied: 'Você não tem as permissões necessárias para modificar isso.' - fallback: 'Este pacote de trabalho não pode ser editado.' diff --git a/modules/team_planner/config/locales/crowdin/pt.yml b/modules/team_planner/config/locales/crowdin/pt.yml deleted file mode 100644 index c6f1146ba653..000000000000 --- a/modules/team_planner/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,17 +0,0 @@ -#English strings go here -pt: - plugin_openproject_team_planner: - name: "Planejador de equipes OpenProject" - description: "Fornece visualizações do planejador de equipes." - permission_view_team_planner: "Visualizar planejador de equipe" - permission_manage_team_planner: "Gerenciar planejador de equipe" - project_module_team_planner_view: "Planejador de equipe" - team_planner: - label_team_planner: "Planejador de equipe" - label_new_team_planner: "Novo planejador de equipe" - label_create_new_team_planner: "Criar novo planejador de equipe" - label_team_planner_plural: "Planejador de equipe" - label_assignees: "Atribuídos para" - upsale: - title: "Planejador de equipe" - description: "Obtenha uma visão geral completa do planejamento da sua equipe com o Planejamento de equipe. Estique, encurte, e arraste e solte pacotes de trabalho para modificar datas, movê-los ou alterar os responsáveis." diff --git a/modules/two_factor_authentication/app/controllers/two_factor_authentication/authentication_controller.rb b/modules/two_factor_authentication/app/controllers/two_factor_authentication/authentication_controller.rb index 80377ed5506e..7a33d80c34be 100644 --- a/modules/two_factor_authentication/app/controllers/two_factor_authentication/authentication_controller.rb +++ b/modules/two_factor_authentication/app/controllers/two_factor_authentication/authentication_controller.rb @@ -15,7 +15,7 @@ class AuthenticationController < ApplicationController # Require authenticated user from the core to be present before_action :require_authenticated_user, - only: %i(request_otp enter_backup_code verify_backup_code confirm_otp retry) + only: %i(request_otp enter_backup_code verify_backup_code confirm_otp retry webauthn_challenge) before_action :ensure_valid_configuration, only: [:request_otp] @@ -41,7 +41,11 @@ def request_otp ## # Verify the validity of the entered token def confirm_otp - login_if_otp_token_valid(@authenticated_user, params[:otp]) + login_if_otp_token_valid( + user: @authenticated_user, + otp_token: params[:otp], + webauthn_credential: params[:webauthn_credential] + ) end ## @@ -51,6 +55,15 @@ def retry perform_2fa_authentication service end + def webauthn_challenge + device = otp_service(@authenticated_user).device + + webauthn_options = device.options_for_get + session[:webauthn_challenge] = webauthn_options.challenge + + render json: webauthn_options + end + private ## @@ -137,9 +150,14 @@ def render_login_otp(service) ## # Check OTP string and login if valid - def login_if_otp_token_valid(user, token_string) + def login_if_otp_token_valid(user:, otp_token:, webauthn_credential:) service = otp_service_for_verification(user) - result = service.verify(token_string) + + result = if service.device.class.device_type == :webauthn + service.verify(webauthn_credential, webauthn_challenge: session[:webauthn_challenge]) + else + service.verify(otp_token) + end if result.success? set_remember_token! diff --git a/modules/two_factor_authentication/app/controllers/two_factor_authentication/base_controller.rb b/modules/two_factor_authentication/app/controllers/two_factor_authentication/base_controller.rb index 0e8c5b53ae58..7fc5effda9d0 100644 --- a/modules/two_factor_authentication/app/controllers/two_factor_authentication/base_controller.rb +++ b/modules/two_factor_authentication/app/controllers/two_factor_authentication/base_controller.rb @@ -8,12 +8,15 @@ class BaseController < ApplicationController before_action :find_device, only: %i[confirm make_default destroy] + helper_method :optional_webauthn_challenge_url + layout 'no_menu' def new if params[:type] @device_type = params[:type].to_sym @device = new_device_type! @device_type + render 'two_factor_authentication/two_factor_devices/new' else @available_devices = available_devices @@ -67,6 +70,17 @@ def confirm end end + def webauthn_challenge + device = new_device_type!(:webauthn) + + ensure_user_has_webauthn_id! + + webauthn_options = device.options_for_create + session[:webauthn_challenge] = webauthn_options.challenge + + render json: webauthn_options + end + private ## @@ -151,6 +165,30 @@ def new_device_params ) end + def new_webauthn_device_params + permitted_device_params.merge( + user: target_user, + default: false, + active: true, + webauthn_external_id: webauthn_credential.id, + webauthn_public_key: webauthn_credential.public_key, + webauthn_sign_count: webauthn_credential.sign_count + ) + end + + def webauthn_credential + @webauthn_credential ||= WebAuthn::Credential.from_create(JSON.parse(params[:device][:webauthn_credential])) + end + + def verify_webauthn_credential + webauthn_credential.verify(session[:webauthn_challenge]) + session.delete(:webauthn_challenge) + true + rescue WebAuthn::Error => e + Rails.logger.error "Failed to verify WebAuthn credential for registration. #{e}" + false + end + def logout_other_sessions if current_user == target_user Rails.logger.info { "First 2FA device registered for #{target_user}, terminating other logged in sessions." } @@ -219,5 +257,17 @@ def ensure_enabled_2fa def token_service(device) ::TwoFactorAuthentication::TokenService.new user: target_user, use_device: device end + + def ensure_user_has_webauthn_id! + return if target_user.webauthn_id + + target_user.update(webauthn_id: WebAuthn.generate_user_id) + end + + def optional_webauthn_challenge_url + if @device_type == :webauthn + helpers.url_for(action: :webauthn_challenge, format: :json) + end + end end end diff --git a/modules/two_factor_authentication/app/controllers/two_factor_authentication/forced_registration/two_factor_devices_controller.rb b/modules/two_factor_authentication/app/controllers/two_factor_authentication/forced_registration/two_factor_devices_controller.rb index 7d0256172942..bedf5f1dcf69 100644 --- a/modules/two_factor_authentication/app/controllers/two_factor_authentication/forced_registration/two_factor_devices_controller.rb +++ b/modules/two_factor_authentication/app/controllers/two_factor_authentication/forced_registration/two_factor_devices_controller.rb @@ -21,14 +21,30 @@ def destroy ## # Register the device and let the user confirm - def register + def register # rubocop:disable Metrics/AbcSize @device_type = params[:key].to_sym @device = new_device_type! @device_type - @device.attributes = new_device_params + needs_confirmation = true + + if @device_type == :webauthn + if verify_webauthn_credential + @device.attributes = new_webauthn_device_params + needs_confirmation = false + end + else + @device.attributes = new_device_params + end + if @device.save Rails.logger.info "User ##{target_user.id} forced to register a new (unconfirmed) device #{@device_type}." - redirect_to action: :confirm, device_id: @device.id + if needs_confirmation + redirect_to action: :confirm, device_id: @device.id + else + flash[:notice] = t('two_factor_authentication.devices.registration_complete') + @device.confirm_registration_and_save + redirect_to registration_success_path + end else Rails.logger.warn { "User ##{target_user.id} forced to register failed for #{@device_type}." } render 'two_factor_authentication/two_factor_devices/new' diff --git a/modules/two_factor_authentication/app/controllers/two_factor_authentication/my/two_factor_devices_controller.rb b/modules/two_factor_authentication/app/controllers/two_factor_authentication/my/two_factor_devices_controller.rb index e3aac29957e6..7ffaccafaafb 100644 --- a/modules/two_factor_authentication/app/controllers/two_factor_authentication/my/two_factor_devices_controller.rb +++ b/modules/two_factor_authentication/app/controllers/two_factor_authentication/my/two_factor_devices_controller.rb @@ -6,7 +6,7 @@ class TwoFactorDevicesController < ::TwoFactorAuthentication::BaseController before_action :set_user_variables - before_action :find_device, except: %i[new index register] + before_action :find_device, except: %i[new index register webauthn_challenge] # Remember token functionality include ::TwoFactorAuthentication::RememberToken @@ -30,14 +30,31 @@ def index ## # Register the device and let the user confirm - def register + def register # rubocop:disable Metrics/AbcSize @device_type = params[:key].to_sym @device = new_device_type! @device_type - @device.attributes = new_device_params + needs_confirmation = true + + if @device_type == :webauthn + if verify_webauthn_credential + @device.attributes = new_webauthn_device_params + needs_confirmation = false + end + else + @device.attributes = new_device_params + end + if @device.save Rails.logger.info "User ##{current_user.id} registered a new (unconfirmed) device #{@device_type}." - redirect_to action: :confirm, device_id: @device.id + + if needs_confirmation + redirect_to action: :confirm, device_id: @device.id + else + flash[:notice] = t('two_factor_authentication.devices.registration_complete') + @device.confirm_registration_and_save + redirect_to registration_success_path + end else Rails.logger.warn { "User ##{current_user.id} failed to register a device #{@device_type}." } render 'two_factor_authentication/two_factor_devices/new' diff --git a/modules/two_factor_authentication/app/controllers/two_factor_authentication/users/two_factor_devices_controller.rb b/modules/two_factor_authentication/app/controllers/two_factor_authentication/users/two_factor_devices_controller.rb index 244867bf878a..f41a771062f0 100644 --- a/modules/two_factor_authentication/app/controllers/two_factor_authentication/users/two_factor_devices_controller.rb +++ b/modules/two_factor_authentication/app/controllers/two_factor_authentication/users/two_factor_devices_controller.rb @@ -7,6 +7,9 @@ class TwoFactorDevicesController < ::TwoFactorAuthentication::BaseController # Ensure where not the user under edit before_action :require_not_self + # Ensure that only mobile devices are added for other users + before_action :ensure_only_sms_type, only: :new + # Password confirmation helpers and actions include PasswordConfirmation before_action :check_password_confirmation, @@ -77,6 +80,12 @@ def destroy private + def ensure_only_sms_type + return if params[:type] == 'sms' + + render_400(message: I18n.t('two_factor_authentication.admin.only_sms_allowed')) + end + def new_device_params # Overrides the base controller to active the device # without prior confirmation. diff --git a/modules/two_factor_authentication/app/models/two_factor_authentication/device.rb b/modules/two_factor_authentication/app/models/two_factor_authentication/device.rb index 9a8c54ee6acc..9618588635c8 100644 --- a/modules/two_factor_authentication/app/models/two_factor_authentication/device.rb +++ b/modules/two_factor_authentication/app/models/two_factor_authentication/device.rb @@ -25,6 +25,14 @@ def has_default? self.class.has_default? user end + def has_other_default? + if persisted? + Device.where.not(id:).exists?(active: true, default: true, user:) + else + has_default? + end + end + ## # Make the device active, and set it as default if no other device exists def confirm_registration_and_save @@ -90,6 +98,10 @@ def self.available_channels_in_strategy strategy_class.supported_channels & supported_channels end + def input_based? + true + end + private def self.manager @@ -97,7 +109,7 @@ def self.manager end def cannot_set_default_if_exists - if default && has_default? + if default && has_other_default? errors.add :default, :default_already_exists end diff --git a/modules/two_factor_authentication/app/models/two_factor_authentication/device/totp.rb b/modules/two_factor_authentication/app/models/two_factor_authentication/device/totp.rb index 8c335727dceb..a4570de8a15b 100644 --- a/modules/two_factor_authentication/app/models/two_factor_authentication/device/totp.rb +++ b/modules/two_factor_authentication/app/models/two_factor_authentication/device/totp.rb @@ -4,7 +4,7 @@ module TwoFactorAuthentication class Device::Totp < Device validates_presence_of :otp_secret - def device_type + def self.device_type :totp end diff --git a/modules/two_factor_authentication/app/models/two_factor_authentication/device/webauthn.rb b/modules/two_factor_authentication/app/models/two_factor_authentication/device/webauthn.rb new file mode 100644 index 000000000000..1b011621a486 --- /dev/null +++ b/modules/two_factor_authentication/app/models/two_factor_authentication/device/webauthn.rb @@ -0,0 +1,42 @@ +module TwoFactorAuthentication + class Device::Webauthn < Device + validates :webauthn_external_id, presence: true, uniqueness: { scope: :user_id } + validates :webauthn_public_key, presence: true + + # Check allowed channels + def self.supported_channels + %i(webauthn) + end + + def self.device_type + :webauthn + end + + # Set default channel + after_initialize do + self.channel ||= :webauthn + end + validates_inclusion_of :channel, in: supported_channels + + def options_for_create + @options_for_create ||= WebAuthn::Credential.options_for_create( + user: { id: user.webauthn_id, name: user.name }, + exclude: TwoFactorAuthentication::Device::Webauthn.where(user:).pluck(:webauthn_external_id) + ) + end + + def options_for_get + @options_for_get ||= WebAuthn::Credential.options_for_get( + allow: webauthn_external_id # TODO: Maybe also allow all other tokens? Let's see + ) + end + + def request_2fa_identifier(_channel) + identifier + end + + def input_based? + false + end + end +end diff --git a/modules/two_factor_authentication/app/services/two_factor_authentication/token_service.rb b/modules/two_factor_authentication/app/services/two_factor_authentication/token_service.rb index 09c6bbdf3d46..f8e8e021f189 100644 --- a/modules/two_factor_authentication/app/services/two_factor_authentication/token_service.rb +++ b/modules/two_factor_authentication/app/services/two_factor_authentication/token_service.rb @@ -57,17 +57,17 @@ def request ## # Validate a token that was input by the user - def verify(input_token) + def verify(input, **options) # Validate that we can request the token for this user # and get the matching strategy we will use verify_device_and_strategy # Produce the token with the given strategy (e.g., sending an sms) - result = strategy.verify input_token + result = strategy.verify(input, **options) ServiceResult.new(success: result) rescue StandardError => e - Rails.logger.error "[2FA plugin] Error during token validation for user##{user.id}: #{e}" + Rails.logger.error "[2FA plugin] Error during token validation for user##{user.id}: #{e.class} #{e}" result = ServiceResult.failure result.errors.add(:base, e.message) diff --git a/modules/two_factor_authentication/app/views/two_factor_authentication/authentication/request_otp.html.erb b/modules/two_factor_authentication/app/views/two_factor_authentication/authentication/request_otp.html.erb index afef8a19b631..9dcbe71a5677 100644 --- a/modules/two_factor_authentication/app/views/two_factor_authentication/authentication/request_otp.html.erb +++ b/modules/two_factor_authentication/app/views/two_factor_authentication/authentication/request_otp.html.erb @@ -1,7 +1,6 @@ <% resend_supported = @strategy.mobile_token? %> <% has_other_devices = @active_devices.count > 1 %> <% has_backup_codes = @authenticated_user.otp_backup_codes.exists? %> - <% html_title t(:field_otp) %> <% breadcrumb_paths(t(:field_otp)) %>
+ autocomplete: "off", data: { + challenge_url: url_for(action: :webauthn_challenge, format: :json), + device_type: @used_device.class.device_type, + action: "submit->two-factor-authentication#onVerifyDevice"}) do %> + <%= back_url_hidden_field_tag %>

<%= t 'two_factor_authentication.label_two_factor_authentication' %>

<% identifier = @used_device.request_2fa_identifier(@strategy.channel) %> -

<%= raw I18n.t('two_factor_authentication.devices.request_2fa', device_name: identifier) %>

-
- <%= back_url_hidden_field_tag %> -
- <%= styled_label_tag 'otp', t(:field_otp) %> -
- <%= styled_text_field_tag 'otp', nil, autocomplete: 'off', size: 6, maxlength: 6, tabindex: 1, autofocus: true %> + <% if @used_device.input_based? %> +

<%= raw I18n.t('two_factor_authentication.devices.2fa_from_input', device_name: identifier) %>

+
+
+ <%= styled_label_tag 'otp', t(:field_otp) %> +
+ <%= styled_text_field_tag 'otp', nil, autocomplete: 'off', size: 6, maxlength: 6, tabindex: 1, autofocus: true %> +
-
+ <% else %> +

<%= raw I18n.t('two_factor_authentication.devices.2fa_from_webauthn', device_name: identifier) %>

+
+ <%= hidden_field_tag 'webauthn_credential', nil, "data-two-factor-authentication-target": "webauthnCredential" %> +
+ <% end %> <% if remember_2fa_enabled? %>
<% end %> @@ -90,9 +98,9 @@ - <% end %> -
+ + + + <% end %> +
diff --git a/modules/two_factor_authentication/app/views/two_factor_authentication/two_factor_devices/new.html.erb b/modules/two_factor_authentication/app/views/two_factor_authentication/two_factor_devices/new.html.erb index d10a11520223..af4dbe010d09 100644 --- a/modules/two_factor_authentication/app/views/two_factor_authentication/two_factor_devices/new.html.erb +++ b/modules/two_factor_authentication/app/views/two_factor_authentication/two_factor_devices/new.html.erb @@ -1,17 +1,19 @@ <% html_title(t(:label_my_account), t('two_factor_authentication.devices.add_new')) -%> <% breadcrumb_paths link_to(t('two_factor_authentication.label_two_factor_authentication'), index_path), t('two_factor_authentication.devices.add_new') -%> - <%= toolbar title: t('two_factor_authentication.devices.add_new') %> - <%= labelled_tabular_form_for @device, url: { action: :register }, - html: { class: nil, autocomplete: 'off' }, + html: { class: nil, autocomplete: 'off', data: { + controller: "two-factor-authentication", + application_target: "dynamic", + challenge_url: optional_webauthn_challenge_url, + device_type: @device_type, + action: "submit->two-factor-authentication#onCreateDevice" + } }, as: :device do |f| %> - <%= hidden_field_tag 'key', @device_type %> <%= render partial: "two_factor_authentication/two_factor_devices/form", locals: { f: f, device_type: @device_type, device: @device, user: @user } %> -

<%= styled_button_tag t(:button_continue), class: '-highlight -with-icon icon-checkmark' %> <%= link_to t(:button_cancel), index_path, class: 'button -with-icon icon-cancel' %> diff --git a/modules/two_factor_authentication/app/views/two_factor_authentication/two_factor_devices/webauthn/_form.html.erb b/modules/two_factor_authentication/app/views/two_factor_authentication/two_factor_devices/webauthn/_form.html.erb new file mode 100644 index 000000000000..12d56b531cb8 --- /dev/null +++ b/modules/two_factor_authentication/app/views/two_factor_authentication/two_factor_devices/webauthn/_form.html.erb @@ -0,0 +1,14 @@ +

+ <%= @device.name %> +

<%= t('two_factor_authentication.devices.webauthn.description') %>

+
+ <%= f.text_field :identifier, required: true, container_class: '-middle' %> + <%= f.hidden_field :webauthn_credential, value: "", "data-two-factor-authentication-target": "webauthnCredential" %> +
+ <%= t('two_factor_authentication.devices.text_identifier') %> +
+
+

<%= t('two_factor_authentication.devices.webauthn.further_steps') %>

+
+ +
diff --git a/modules/two_factor_authentication/config/locales/crowdin/af.yml b/modules/two_factor_authentication/config/locales/crowdin/af.yml index 750ea6b8bb29..1b7efcbffa2e 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/af.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/af.yml @@ -7,14 +7,14 @@ af: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifiseerder' - default: 'Use as default' + identifier: "Identifiseerder" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ af: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Wagwoord" @@ -37,47 +38,48 @@ af: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ af: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ af: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ af: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Bevestig' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Bevestig" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ar.yml b/modules/two_factor_authentication/config/locales/crowdin/ar.yml index 424716dc7d26..a1007db0c405 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ar.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ar.yml @@ -7,14 +7,14 @@ ar: activerecord: attributes: two_factor_authentication/device: - identifier: 'المعرّف' - default: 'Use as default' + identifier: "المعرّف" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ar: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "كلمة المرور" @@ -37,47 +38,48 @@ ar: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ ar: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'المفتاح السري' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "المفتاح السري" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ ar: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ ar: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'تم التأكيد' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "تم التأكيد" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/az.yml b/modules/two_factor_authentication/config/locales/crowdin/az.yml index d483dd133128..a05b7c0e98d4 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/az.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/az.yml @@ -7,14 +7,14 @@ az: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ az: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ az: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ az: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ az: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ az: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Davam' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Davam" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/be.yml b/modules/two_factor_authentication/config/locales/crowdin/be.yml index 481815c01aad..dcde7310b5df 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/be.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/be.yml @@ -7,14 +7,14 @@ be: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ be: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ be: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ be: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ be: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ be: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/bg.yml b/modules/two_factor_authentication/config/locales/crowdin/bg.yml index 4872b7d62630..28ceef2b9194 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/bg.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/bg.yml @@ -7,14 +7,14 @@ bg: activerecord: attributes: two_factor_authentication/device: - identifier: 'Идентификатор' - default: 'Use as default' + identifier: "Идентификатор" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ bg: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Парола" @@ -37,47 +38,48 @@ bg: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ bg: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ bg: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ bg: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Действия' - label_confirmed: 'Потвърден' - button_continue: 'Продължаване' - button_make_default: 'Mark as default' + label_actions: "Действия" + label_confirmed: "Потвърден" + button_continue: "Продължаване" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ca.yml b/modules/two_factor_authentication/config/locales/crowdin/ca.yml index fd6b7f9ce321..4c898de81494 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ca.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ca.yml @@ -7,14 +7,14 @@ ca: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identificador' - default: 'Utilitza per defecte' + identifier: "Identificador" + default: "Utilitza per defecte" two_factor_authentication/device/sms: phone_number: "Telèfon" errors: models: two_factor_authentication/device: - default_already_exists: 'ja està configurat per a un altre dispositiu OTP.' + default_already_exists: "ja està configurat per a un altre dispositiu OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ca: two_factor_authentication/device: "Dispositiu de 2FA" two_factor_authentication/device/sms: "Telèfon mòbil" two_factor_authentication/device/totp: "Aplicació d'autentificació" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "L'entrega de 2FA ha estat desactivada." error_no_device: "No s'ha trobat cap dispositiu 2FA registrat per a aquest usuari tot i ser necessari per a aquesta instància." error_no_matching_strategy: "No hi ha cap estratègia 2FA coincident disponible per aquest usuari. Si us plau, contacta el teu administrador." - error_is_enforced_not_active: 'Error de configuració: S''ha forçat l''autentificació en dos passos, però no existeix cap estratègia activa.' - error_invalid_backup_code: 'Codi de la còpia de seguretat del 2FA invàlid' + error_is_enforced_not_active: "Error de configuració: S'ha forçat l'autentificació en dos passos, però no existeix cap estratègia activa." + error_invalid_backup_code: "Codi de la còpia de seguretat del 2FA invàlid" channel_unavailable: "El canal d'entrega %{channel} no està disponible." no_valid_phone_number: "No existeix cap número de telèfon vàlid." label_pwd_confirmation: "Contrasenya" @@ -37,46 +38,47 @@ ca: label_default_device: "Dispositiu de 2FA per defecte" label_device: "Dispositiu de 2FA" label_devices: "Dispositius de 2FA" - label_one_time_password: 'Contrasenya d''un sol ús' - label_2fa_enabled: 'Autenticació de dos passos habilitada' - label_2fa_disabled: 'Autentificació de dos passos no habilitada' + label_one_time_password: "Contrasenya d'un sol ús" + label_2fa_enabled: "Autenticació de dos passos habilitada" + label_2fa_disabled: "Autentificació de dos passos no habilitada" text_otp_delivery_message_sms: "La teva contrasenya d'un sol ús de %{app_title} és %{token}" text_otp_delivery_message_voice: "La teva contrasenya d'un sol ús de %{app_title} és: %{pause}%{token}. %{pause} Repeteixo: %{pause} %{token}" - text_enter_2fa: 'Si us plau, entra la contrasenya d''un sol del teu dispositiu.' - text_2fa_enabled: 'Després de cada inici de sessió, se''t demanarà introduir un token OTP del teu dispositiu 2FA per defecte.' - text_2fa_disabled: 'Per tal d''activar l''autentificació en dos passos utilitza el botó d''aquí a dalt per tal de registrar un dispositiu 2FA nou. En cas que ja tinguis un dispositiu registrat, l''hauràs de configurar com a predeterminat.' + text_enter_2fa: "Si us plau, entra la contrasenya d'un sol del teu dispositiu." + text_2fa_enabled: "Després de cada inici de sessió, se't demanarà introduir un token OTP del teu dispositiu 2FA per defecte." + text_2fa_disabled: "Per tal d'activar l'autentificació en dos passos utilitza el botó d'aquí a dalt per tal de registrar un dispositiu 2FA nou. En cas que ja tinguis un dispositiu registrat, l'hauràs de configurar com a predeterminat." login: enter_backup_code_title: Introduïu el codi de la còpia de seguretat enter_backup_code_text: Si us plau, entra un codi de còpia de seguretat de la teva llista de codis en cas que ja no tinguis accés als teus dispositius 2FA registrats. - other_device: 'Utilitza un altre dispositiu o codi de seguretat' + other_device: "Utilitza un altre dispositiu o codi de seguretat" settings: - title: 'Configuració de 2FA' - current_configuration: 'Configuració actual' - label_active_strategies: 'Activa les estratègies de 2FA' - label_enforced: 'Força el 2FA' - label_remember: 'Recorda la sessió de 2FA' + title: "Configuració de 2FA" + current_configuration: "Configuració actual" + label_active_strategies: "Activa les estratègies de 2FA" + label_enforced: "Força el 2FA" + label_remember: "Recorda la sessió de 2FA" text_configuration: | Nota: Aquests valors representen la configuració actual de tota l'aplicació. No es poden desactivar els paràmetres forçats per aquesta configuració o canviar les estratègies actives, ja que requeririen un reinici del servidor. text_configuration_guide: Per més informació, mira les guies de configuració. - text_enforced: 'Activa aquesta configuració per forçar tots els usuaris a registrar dispositius 2FA en el proper inici de sessió. Només podrà ser desactivada en cas que no estigui forçada en aquesta configuració.' + text_enforced: "Activa aquesta configuració per forçar tots els usuaris a registrar dispositius 2FA en el proper inici de sessió. Només podrà ser desactivada en cas que no estigui forçada en aquesta configuració." text_remember: | Especifica aquest valor per sobre de 0 per tal de permetre als usuaris recordar la seva autentificació 2FA per un nombre especificat de dies. No se'ls demanarà reintroduir cap codi 2FA durant aquest període. Aquest paràmetre només pot ser configurat quan s'ha forçat a través de la configuració. - error_invalid_settings: 'Les estratègies de 2FA seleccionades no són vàlides' - failed_to_save_settings: 'Error en carregar la configuració del 2FA: %{message}' + error_invalid_settings: "Les estratègies de 2FA seleccionades no són vàlides" + failed_to_save_settings: "Error en carregar la configuració del 2FA: %{message}" admin: - self_edit_path: 'Per afegir o modificar el teu propi dispositiu 2FA, si us plau, ves a %{self_edit_link}' - self_edit_link_name: 'Autentificació en dos passos a la pàgina del teu compte' - self_edit_forbidden: 'Pot ser que no puguis editar els teus propis dispositius 2FA en aquest enllaç. En comptes, ves a El meu compte > Factor de doble autentificació.' - no_devices_for_user: 'No s''ha registrat cap dispositiu 2FA per aquest usuari.' - all_devices_deleted: 'Tots els dispositius 2FA d''aquest usuari s''han eliminat.' - delete_all_are_you_sure: 'Estàs segur que vols eliminar tots els dispositius 2FA d''aquest usuari?' - button_delete_all_devices: 'Elimina els dispositius 2FA registrats' - button_register_mobile_phone_for_user: 'Registra el telèfon mòbil' - text_2fa_enabled: 'Després de cada inici de sessió, es demanarà a aquest usuari que introdueixi un token OTP del seu dispositiu 2FA per defecte.' + self_edit_path: "Per afegir o modificar el teu propi dispositiu 2FA, si us plau, ves a %{self_edit_link}" + self_edit_link_name: "Autentificació en dos passos a la pàgina del teu compte" + self_edit_forbidden: "Pot ser que no puguis editar els teus propis dispositius 2FA en aquest enllaç. En comptes, ves a El meu compte > Factor de doble autentificació." + no_devices_for_user: "No s'ha registrat cap dispositiu 2FA per aquest usuari." + all_devices_deleted: "Tots els dispositius 2FA d'aquest usuari s'han eliminat." + delete_all_are_you_sure: "Estàs segur que vols eliminar tots els dispositius 2FA d'aquest usuari?" + button_delete_all_devices: "Elimina els dispositius 2FA registrats" + button_register_mobile_phone_for_user: "Registra el telèfon mòbil" + text_2fa_enabled: "Després de cada inici de sessió, es demanarà a aquest usuari que introdueixi un token OTP del seu dispositiu 2FA per defecte." text_2fa_disabled: "L'usuari no ha configurat cap dispositiu 2FA a través de la pàgina \"El meu compte\"" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Autentificació en dos passos' - description: 'Enforteix la seguretat de la teva instància d''OpenProject oferint (o forçant) l''autentificació en dos passos per a tots els membres del projecte.' + title: "Autentificació en dos passos" + description: "Enforteix la seguretat de la teva instància d'OpenProject oferint (o forçant) l'autentificació en dos passos per a tots els membres del projecte." backup_codes: none_found: No existeix cap codi de còpies de seguretat per aquest compte. singular: Codi de còpia de seguretat @@ -86,37 +88,42 @@ ca: En cas que no puguis accedir als teus dispositius 2FA, sempre pots utilitzar els codis de còpia de seguretat per poder accedir al teu compte. Utilitza el següent botó per generar un nou set de codis de còpia de seguretat. generate: title: Genera codis de còpies de seguretat - keep_safe_as_password: 'Important! Tracta aquest codi com si fossin contrasenyes.' - keep_safe_warning: 'Guarda''ls amb el teu administrador de contrasenyes o bé imprimeix aquesta pàgina i guarda-la en un lloc segur.' - regenerate_warning: 'Alerta: Si has creat codis de còpia de seguretat anteriorment, els anteriors seran invalidats i ja no funcionaran.' + keep_safe_as_password: "Important! Tracta aquest codi com si fossin contrasenyes." + keep_safe_warning: "Guarda'ls amb el teu administrador de contrasenyes o bé imprimeix aquesta pàgina i guarda-la en un lloc segur." + regenerate_warning: "Alerta: Si has creat codis de còpia de seguretat anteriorment, els anteriors seran invalidats i ja no funcionaran." devices: - add_new: 'Afegir un dispositiu 2FA nou' - register: 'Registra un dispositiu' - confirm_default: 'Confirma el canvi de dispositiu per defecte' - confirm_device: 'Confirmeu el dispositiu' - confirm_now: 'No confirmat, clica aquí per activar' - cannot_delete_default: 'No es pot eliminar el dispositiu per defecte' - make_default_are_you_sure: 'Estàs segur que vols fer aquest dispositiu 2FA el teu dispositiu per defecte?' - make_default_failed: 'Error en actualitzar el teu dispositiu 2FA per defecte.' - deletion_are_you_sure: 'Estàs segur que vols eliminar aquest dispositiu 2FA?' - registration_complete: 'Registre del dispositiu 2FA complet!' - registration_failed_token_invalid: 'El registre del dispositiu 2FA ha fallat, el token no era correcte.' - registration_failed_update: 'El registre del dispositiu 2FA ha fallat, el token era correcte, però no s''ha pogut actualitzar el dispositiu.' - confirm_send_failed: 'La confirmació del teu dispositiu 2FA ha fallat.' - button_complete_registration: 'Completa el registre 2FA' + add_new: "Afegir un dispositiu 2FA nou" + register: "Registra un dispositiu" + confirm_default: "Confirma el canvi de dispositiu per defecte" + confirm_device: "Confirmeu el dispositiu" + confirm_now: "No confirmat, clica aquí per activar" + cannot_delete_default: "No es pot eliminar el dispositiu per defecte" + make_default_are_you_sure: "Estàs segur que vols fer aquest dispositiu 2FA el teu dispositiu per defecte?" + make_default_failed: "Error en actualitzar el teu dispositiu 2FA per defecte." + deletion_are_you_sure: "Estàs segur que vols eliminar aquest dispositiu 2FA?" + registration_complete: "Registre del dispositiu 2FA complet!" + registration_failed_token_invalid: "El registre del dispositiu 2FA ha fallat, el token no era correcte." + registration_failed_update: "El registre del dispositiu 2FA ha fallat, el token era correcte, però no s'ha pogut actualitzar el dispositiu." + confirm_send_failed: "La confirmació del teu dispositiu 2FA ha fallat." + button_complete_registration: "Completa el registre 2FA" text_confirm_to_complete_html: "Si us plau, completa el registre del teu dispositiu %{identifier} entrant una contrasenya d'un sol ús del teu dispositiu per defecte." text_confirm_to_change_default_html: "Si us plau, completa el registre del teu dispositiu %{identifier} entrant una contrasenya d'un sol ús del teu dispositiu per defecte actual." - text_identifier: 'Pots donar un identificador personalitzat al dispositiu utilitzant aquest camp.' - failed_to_delete: 'Error a l''eliminar dispositiu 2FA.' - is_default_cannot_delete: 'Aquest dispositiu està marcat per defecte i no pot ser eliminat degut a una política de seguretat activa. Marca un altre dispositiu per defecte abans d''eliminar aquest.' - not_existing: 'No s''ha registrat cap dispositiu 2FA amb el teu compte.' - request_2fa: Si us plau, entra el codi del teu %{device_name} per verificar la teva identitat. + text_identifier: "Pots donar un identificador personalitzat al dispositiu utilitzant aquest camp." + failed_to_delete: "Error a l'eliminar dispositiu 2FA." + is_default_cannot_delete: "Aquest dispositiu està marcat per defecte i no pot ser eliminat degut a una política de seguretat activa. Marca un altre dispositiu per defecte abans d'eliminar aquest." + not_existing: "No s'ha registrat cap dispositiu 2FA amb el teu compte." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Utilitza la teva aplicació d''autentificació' - provisioning_uri: 'Aprovisionant URI' - secret_key: 'Clau secreta' - time_based: 'Temporitzat' - account: 'Nom del compte / Emissor' + title: "Utilitza la teva aplicació d'autentificació" + provisioning_uri: "Aprovisionant URI" + secret_key: "Clau secreta" + time_based: "Temporitzat" + account: "Nom del compte / Emissor" setup: | Per tal de configurar l'autentificació en dos passos amb Google Authenticator, descàrrega l'aplicació de l'Apple App Store o de Google Play Store. Després d'obrir l'aplicació, hauràs d'escanejar el següent codi QR per tal de registrar el dispositiu. @@ -127,31 +134,32 @@ ca: description: | Registra una aplicació d'autentificació per utilitzar amb OpenProject utilitzant com a estàndard les contrasenyes d'un sol ús amb temporitzades. sms: - title: 'Utilitza el teu telèfon mòbil' - redacted_identifier: 'Dispositiu mòbil (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, t''hem enviat un codi d''autentificació via %{delivery_channel}' + title: "Utilitza el teu telèfon mòbil" + redacted_identifier: "Dispositiu mòbil (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, t'hem enviat un codi d'autentificació via %{delivery_channel}" description: | Registra el teu número de telèfon mòbil per entregar les contrasenyes d'un sol ús d'OpenProject. sns: - delivery_failed: 'Error en entregar el SNS:' + delivery_failed: "Error en entregar el SNS:" message_bird: - sms_delivery_failed: 'Error en entregar el MessageBird SMS.' - voice_delivery_failed: 'Error en la trucada de veu de MessageBird.' + sms_delivery_failed: "Error en entregar el MessageBird SMS." + voice_delivery_failed: "Error en la trucada de veu de MessageBird." strategies: - totp: 'Aplicació d''autentificació' - sns: 'Amazon SNS' - resdt: 'SMS per reiniciar l''API' + totp: "Aplicació d'autentificació" + sns: "Amazon SNS" + resdt: "SMS per reiniciar l'API" + webauthn: "WebAuthn" mobile_transmit_notification: "Una contrasenya d'un sol ús s'ha enviat al teu telèfon mòbil." - label_two_factor_authentication: 'Autentificació en dos passos' + label_two_factor_authentication: "Autentificació en dos passos" forced_registration: - required_to_add_device: 'Una política de seguretat activa requereix que activis l''autentificació en dos passos. Si us plau, segueix el formulari següent per tal de registrar un dispositiu.' + required_to_add_device: "Una política de seguretat activa requereix que activis l'autentificació en dos passos. Si us plau, segueix el formulari següent per tal de registrar un dispositiu." remember: active_session_notice: > El teu compte té una galeta web de record activada vàlida fins al %{expires_on}. Aquesta galeta web et permet iniciar sessió sense el segon factor d'autentificació fins a la data indicada. other_active_session_notice: El teu compte té una galeta web de record activada d'una sessió anterior. - label: 'Recorda' - clear_cookie: 'Fes clic aquí per eliminar totes les sessions 2FA recordades.' - cookie_removed: 'S''han eliminat totes les sessions 2FA recordades.' + label: "Recorda" + clear_cookie: "Fes clic aquí per eliminar totes les sessions 2FA recordades." + cookie_removed: "S'han eliminat totes les sessions 2FA recordades." dont_ask_again: "Crea una galeta web per tal de recordar l'autentificació 2FA per aquest client per %{days} dies." field_phone: "Telèfon mòbil" field_otp: "Contrasenya d'un sol ús" @@ -161,10 +169,10 @@ ca: notice_account_otp_send_failed: "La teva contrasenya d'un sol ús no s'ha pogut enviar." notice_account_has_no_phone: "No hi ha cap número de telèfon mòbil associat al teu compte." label_expiration_hint: "%{date} o en tancar sessió" - label_actions: 'Accions' - label_confirmed: 'Confirmat' - button_continue: 'Continua' - button_make_default: 'Marca per defecte' + label_actions: "Accions" + label_confirmed: "Confirmat" + button_continue: "Continua" + button_make_default: "Marca per defecte" label_unverified_phone: "Telèfon mòbil encara no verificat" notice_phone_number_format: "Si us plau, entra el número en el següent format: +XX XXXXXXXX." text_otp_not_receive: "Altres mètodes de verificació" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ckb-IR.yml b/modules/two_factor_authentication/config/locales/crowdin/ckb-IR.yml index 26514cc57e01..4cef00c6ee48 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ckb-IR.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ckb-IR.yml @@ -7,14 +7,14 @@ ckb-IR: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ckb-IR: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ ckb-IR: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ ckb-IR: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ ckb-IR: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ ckb-IR: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/cs.yml b/modules/two_factor_authentication/config/locales/crowdin/cs.yml index ef97d3dfeae8..5d69004ffb4f 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/cs.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/cs.yml @@ -7,14 +7,14 @@ cs: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifikátor' - default: 'Použít jako výchozí' + identifier: "Identifikátor" + default: "Použít jako výchozí" two_factor_authentication/device/sms: phone_number: "Telefonní číslo" errors: models: two_factor_authentication/device: - default_already_exists: 'je již nastavena pro jiné OTP zařízení.' + default_already_exists: "je již nastavena pro jiné OTP zařízení." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ cs: two_factor_authentication/device: "2FA zařízení" two_factor_authentication/device/sms: "Mobilní telefon" two_factor_authentication/device/totp: "Ověřovací aplikace" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA doručení bylo zakázáno." error_no_device: "Žádné registrované 2FA zařízení pro tohoto uživatele nebylo nalezeno, přestože bylo nezbytné pro tuto instanci." error_no_matching_strategy: "Žádná odpovídající 2FA strategie pro tohoto uživatele. Obraťte se prosím na svého administrátora." - error_is_enforced_not_active: 'Chyba konfigurace: Dvoufázové ověření bylo vynuceno, ale žádná aktivní strategie neexistuje.' - error_invalid_backup_code: 'Neplatný 2FA záložní kód' + error_is_enforced_not_active: "Chyba konfigurace: Dvoufázové ověření bylo vynuceno, ale žádná aktivní strategie neexistuje." + error_invalid_backup_code: "Neplatný 2FA záložní kód" channel_unavailable: "Doručovací kanál %{channel} není k dispozici." no_valid_phone_number: "Neexistuje žádné platné telefonní číslo." label_pwd_confirmation: "Heslo" @@ -37,46 +38,47 @@ cs: label_default_device: "Výchozí 2FA zařízení" label_device: "2FA zařízení" label_devices: "2FA zařízení" - label_one_time_password: 'Jednorázové heslo' - label_2fa_enabled: 'Dvoufázové ověřování je aktivní' - label_2fa_disabled: 'Dvoufázové ověřování není aktivní' + label_one_time_password: "Jednorázové heslo" + label_2fa_enabled: "Dvoufázové ověřování je aktivní" + label_2fa_disabled: "Dvoufázové ověřování není aktivní" text_otp_delivery_message_sms: "Vaše jednorázové heslo pro %{app_title} je %{token}" text_otp_delivery_message_voice: "Vaše jednorázové heslo pro %{app_title} je: %{pause} %{token}. %{pause} opakuji: %{pause} %{token}" - text_enter_2fa: 'Zadejte prosím jednorázové heslo z Vašeho zařízení.' - text_2fa_enabled: 'Při každém přihlášení bude vyžadováno zadání jednorázového hesla z Vašeho výchozího 2FA zařízení.' - text_2fa_disabled: 'Pro zapnutí dvoufázového ověřování klikněte na tlačítko výše, abyste zaregistrovali nové 2FA zařízení. Pokud již zařízení máte, musíte ho nastavit jako výchozí.' + text_enter_2fa: "Zadejte prosím jednorázové heslo z Vašeho zařízení." + text_2fa_enabled: "Při každém přihlášení bude vyžadováno zadání jednorázového hesla z Vašeho výchozího 2FA zařízení." + text_2fa_disabled: "Pro zapnutí dvoufázového ověřování klikněte na tlačítko výše, abyste zaregistrovali nové 2FA zařízení. Pokud již zařízení máte, musíte ho nastavit jako výchozí." login: enter_backup_code_title: Zadejte záložní kód enter_backup_code_text: Zadejte prosím platný záložní kód z Vašeho seznamu kódů, pokud již nemáte přístup k Vašim zaregistrovaným 2FA zařízením. - other_device: 'Použít jiné zařízení nebo záložní kód' + other_device: "Použít jiné zařízení nebo záložní kód" settings: - title: 'Nastavení 2FA' - current_configuration: 'Aktuální konfigurace' - label_active_strategies: 'Aktivní 2FA strategie' - label_enforced: 'Vynutit 2FA' - label_remember: 'Zapamatovat 2FA přihlášení' + title: "Nastavení 2FA" + current_configuration: "Aktuální konfigurace" + label_active_strategies: "Aktivní 2FA strategie" + label_enforced: "Vynutit 2FA" + label_remember: "Zapamatovat 2FA přihlášení" text_configuration: | Poznámka: Tyto hodnoty představují aktuální konfiguraci celé aplikace. Nelze zakázat nastavení vynucená konfigurací nebo změnit stávající aktivní strategie, protože vyžadují restartování serveru. text_configuration_guide: Další informace naleznete v příručce konfigurace. - text_enforced: 'Povolte toto nastavení, abyste donutili všechny uživatele registrovat 2FA zařízení při jejich dalším přihlášení. Toto nastavení může být zakázáno pouze, pokud není vynuceno konfigurací.' + text_enforced: "Povolte toto nastavení, abyste donutili všechny uživatele registrovat 2FA zařízení při jejich dalším přihlášení. Toto nastavení může být zakázáno pouze, pokud není vynuceno konfigurací." text_remember: | Nastavte na vyšší než nula, abyste umožnili uživatelům zapamatovat si jejich 2FA ověření na daný počet dní. Uživatelé to po tuto dobu nebudou muset zadávat. Toto nastavení může být zakázáno pouze pokud není vynuceno konfigurací. - error_invalid_settings: 'Strategie 2FA, které jste zvolili jsou neplatné' - failed_to_save_settings: 'Nepodařilo se aktualizovat nastavení 2FA: %{message}' + error_invalid_settings: "Strategie 2FA, které jste zvolili jsou neplatné" + failed_to_save_settings: "Nepodařilo se aktualizovat nastavení 2FA: %{message}" admin: - self_edit_path: 'Chcete-li přidat nebo upravit vaše vlastní 2FA zařízení, přejděte na %{self_edit_link}' - self_edit_link_name: 'Dvoufázové ověřování na stránce vašeho účtu' - self_edit_forbidden: 'Na této cestě nelze upravit vlastní 2FA zařízení. Místo toho přejděte na Můj účet > Dvoufázové ověřování.' - no_devices_for_user: 'Žádné 2FA zařízení není pro tohoto uživatele zaregistrováno.' - all_devices_deleted: 'Byla odstraněna všechna 2FA zařízení tohoto uživatele' - delete_all_are_you_sure: 'Opravdu chcete odstranit všechna 2FA zařízení tohoto uživatele?' - button_delete_all_devices: 'Odstranit registrovaná 2FA zařízení' - button_register_mobile_phone_for_user: 'Registrovat mobilní telefon' - text_2fa_enabled: 'Při každém přihlášení bude tento uživatel požádán, aby zadal jednorázové heslo z jeho výchozího 2FA zařízení.' + self_edit_path: "Chcete-li přidat nebo upravit vaše vlastní 2FA zařízení, přejděte na %{self_edit_link}" + self_edit_link_name: "Dvoufázové ověřování na stránce vašeho účtu" + self_edit_forbidden: "Na této cestě nelze upravit vlastní 2FA zařízení. Místo toho přejděte na Můj účet > Dvoufázové ověřování." + no_devices_for_user: "Žádné 2FA zařízení není pro tohoto uživatele zaregistrováno." + all_devices_deleted: "Byla odstraněna všechna 2FA zařízení tohoto uživatele" + delete_all_are_you_sure: "Opravdu chcete odstranit všechna 2FA zařízení tohoto uživatele?" + button_delete_all_devices: "Odstranit registrovaná 2FA zařízení" + button_register_mobile_phone_for_user: "Registrovat mobilní telefon" + text_2fa_enabled: "Při každém přihlášení bude tento uživatel požádán, aby zadal jednorázové heslo z jeho výchozího 2FA zařízení." text_2fa_disabled: "Uživatel si nenastavil 2FA zařízení prostřednictvím stránky 'Můj účet'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Dvoufázové ověření' - description: 'Posilte bezpečnost vaší OpenProject instance tím, že nabízíte (nebo vynucujte) dvoufaktorové ověřování všem členům projektu.' + title: "Dvoufázové ověření" + description: "Posilte bezpečnost vaší OpenProject instance tím, že nabízíte (nebo vynucujte) dvoufaktorové ověřování všem členům projektu." backup_codes: none_found: Pro tento účet neexistují žádné záložní kódy. singular: Záložní kód @@ -87,37 +89,42 @@ cs: Použijte následující tlačítko pro vygenerování nové sady záložních kódů. generate: title: Generovat záložní kódy - keep_safe_as_password: 'Důležité! Považujte a zacházejte s tyto kódy jako s hesly.' - keep_safe_warning: 'Buď je uložte ve správci hesel, nebo vytiskněte tuto stránku a vložte na bezpečné místo.' - regenerate_warning: 'Upozornění: Pokud jste dříve vytvořili záložní kódy, budou zneplatněny a již nebudou fungovat.' + keep_safe_as_password: "Důležité! Považujte a zacházejte s tyto kódy jako s hesly." + keep_safe_warning: "Buď je uložte ve správci hesel, nebo vytiskněte tuto stránku a vložte na bezpečné místo." + regenerate_warning: "Upozornění: Pokud jste dříve vytvořili záložní kódy, budou zneplatněny a již nebudou fungovat." devices: - add_new: 'Přidat nové 2FA zařízení' - register: 'Registrovat zařízení' - confirm_default: 'Potvrdit změnu výchozího zařízení' - confirm_device: 'Potvrdit zařízení' - confirm_now: 'Nepotvrzeno, klikněte zde pro aktivaci' - cannot_delete_default: 'Nelze odstranit výchozí zařízení' - make_default_are_you_sure: 'Jste si jisti, že chcete nastavit toto 2FA zařízení?' - make_default_failed: 'Nepodařilo se aktualizovat výchozí 2FA zařízení.' - deletion_are_you_sure: 'Jste si jisti, že chcete odstranit toto 2FA zařízení?' - registration_complete: 'Registrace 2FA zařízení dokončena!' - registration_failed_token_invalid: 'Registrace 2FA zařízení selhala, token byl neplatný.' - registration_failed_update: 'Registrace 2FA zařízení selhala, token byl platný, ale zařízení nelze aktualizovat.' - confirm_send_failed: 'Potvrzení 2FA zařízení se nezdařilo.' - button_complete_registration: 'Dokončete 2FA registraci' + add_new: "Přidat nové 2FA zařízení" + register: "Registrovat zařízení" + confirm_default: "Potvrdit změnu výchozího zařízení" + confirm_device: "Potvrdit zařízení" + confirm_now: "Nepotvrzeno, klikněte zde pro aktivaci" + cannot_delete_default: "Nelze odstranit výchozí zařízení" + make_default_are_you_sure: "Jste si jisti, že chcete nastavit toto 2FA zařízení?" + make_default_failed: "Nepodařilo se aktualizovat výchozí 2FA zařízení." + deletion_are_you_sure: "Jste si jisti, že chcete odstranit toto 2FA zařízení?" + registration_complete: "Registrace 2FA zařízení dokončena!" + registration_failed_token_invalid: "Registrace 2FA zařízení selhala, token byl neplatný." + registration_failed_update: "Registrace 2FA zařízení selhala, token byl platný, ale zařízení nelze aktualizovat." + confirm_send_failed: "Potvrzení 2FA zařízení se nezdařilo." + button_complete_registration: "Dokončete 2FA registraci" text_confirm_to_complete_html: "Prosím dokončete registraci zařízení %{identifier} zadáním jednorázového hesla z výchozího zařízení." text_confirm_to_change_default_html: "Potvrďte prosím změnu výchozího zařízení na %{new_identifier} zadáním jednorázového hesla z aktuálního výchozího zařízení." - text_identifier: 'Můžete dát zařízení vlastní identifikátor pomocí tohoto pole.' - failed_to_delete: 'Smazání 2FA zařízení se nezdařilo.' - is_default_cannot_delete: 'Zařízení je označeno jako výchozí a nemůže být odstraněno z důvodu aktivní bezpečnostní politiky. Před smazáním označte jiné zařízení jako výchozí.' - not_existing: 'Žádné 2FA zařízení nebylo zaregistrováno pro váš účet.' - request_2fa: Zadejte prosím kód z Vašeho %{device_name} pro ověření Vaší identity. + text_identifier: "Můžete dát zařízení vlastní identifikátor pomocí tohoto pole." + failed_to_delete: "Smazání 2FA zařízení se nezdařilo." + is_default_cannot_delete: "Zařízení je označeno jako výchozí a nemůže být odstraněno z důvodu aktivní bezpečnostní politiky. Před smazáním označte jiné zařízení jako výchozí." + not_existing: "Žádné 2FA zařízení nebylo zaregistrováno pro váš účet." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Použít autentifikátor založený na aplikaci' - provisioning_uri: 'Poskytování URI' - secret_key: 'Tajný klíč' - time_based: 'Na základě času' - account: 'Název účtu / vydavatel' + title: "Použít autentifikátor založený na aplikaci" + provisioning_uri: "Poskytování URI" + secret_key: "Tajný klíč" + time_based: "Na základě času" + account: "Název účtu / vydavatel" setup: | Pro nastavení dvoufaktorového ověřování pomocí Google Authenticator, stáhněte si aplikaci z Apple App Store nebo Google Play Store. Po otevření aplikace můžete naskenovat následující QR kód pro registraci zařízení. @@ -129,31 +136,32 @@ cs: Zaregistrujte autentifikátor aplikace pro použití u OpenProject pomocí standardu jednorázového ověřování hesla. Běžnými příklady jsou Google Authenticator nebo Authy. sms: - title: 'Použijte svůj mobilní telefon' - redacted_identifier: 'Mobilní zařízení (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, zaslali jsme Vám ověřovací kód přes %{delivery_channel}' + title: "Použijte svůj mobilní telefon" + redacted_identifier: "Mobilní zařízení (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, zaslali jsme Vám ověřovací kód přes %{delivery_channel}" description: | Zaregistrujte své mobilní telefonní číslo pro jednorázové doručení OpenProject hesel. sns: - delivery_failed: 'Odeslání SNS selhalo:' + delivery_failed: "Odeslání SNS selhalo:" message_bird: - sms_delivery_failed: 'Odeslání MessageBird SMS se nezdařilo.' - voice_delivery_failed: 'Hlasový hovor MessageBird se nezdařil.' + sms_delivery_failed: "Odeslání MessageBird SMS se nezdařilo." + voice_delivery_failed: "Hlasový hovor MessageBird se nezdařil." strategies: - totp: 'Ověřovací aplikace' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Ověřovací aplikace" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Na váš mobilní telefon bylo odesláno jednorázové heslo." - label_two_factor_authentication: 'Dvoufázové ověření' + label_two_factor_authentication: "Dvoufázové ověření" forced_registration: - required_to_add_device: 'Aktivní bezpečnostní politika vyžaduje, abyste povolili dvoufaktorové ověřování. Pro registraci zařízení použijte následující formulář.' + required_to_add_device: "Aktivní bezpečnostní politika vyžaduje, abyste povolili dvoufaktorové ověřování. Pro registraci zařízení použijte následující formulář." remember: active_session_notice: > Váš účet má aktivní paměť cookie platná do %{expires_on}. Tato cookie umožňuje přihlášení bez dalšího faktoru k vašemu účtu až do té doby. other_active_session_notice: Váš účet má aktivní paměť cookie v jiné relaci. - label: 'Zapamatovat' - clear_cookie: 'Kliknutím sem odstraníte všechny zapamatované 2FA relace.' - cookie_removed: 'Všechny zapamatované 2FA relace byly odstraněny.' + label: "Zapamatovat" + clear_cookie: "Kliknutím sem odstraníte všechny zapamatované 2FA relace." + cookie_removed: "Všechny zapamatované 2FA relace byly odstraněny." dont_ask_again: "Vytvořte cookie a zapamatujte si 2FA autentizaci tohoto klienta po dobu %{days} dní." field_phone: "Mobilní telefon" field_otp: "Jednorázové heslo" @@ -163,10 +171,10 @@ cs: notice_account_otp_send_failed: "Vaše jednorázové heslo nelze odeslat." notice_account_has_no_phone: "S vaším účtem není přiřazeno žádné telefonní číslo." label_expiration_hint: "%{date} nebo po odhlášení" - label_actions: 'Akce' - label_confirmed: 'Potvrzený' - button_continue: 'Pokračovat' - button_make_default: 'Označit jako výchozí' + label_actions: "Akce" + label_confirmed: "Potvrzený" + button_continue: "Pokračovat" + button_make_default: "Označit jako výchozí" label_unverified_phone: "Mobilní telefon ještě nebyl ověřen" notice_phone_number_format: "Zadejte číslo v následujícím formátu: +XX XXXXXXXX." text_otp_not_receive: "Jiné metody ověřování" diff --git a/modules/two_factor_authentication/config/locales/crowdin/da.yml b/modules/two_factor_authentication/config/locales/crowdin/da.yml index 2a5f9ca286ca..b1a3b69392a0 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/da.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/da.yml @@ -7,14 +7,14 @@ da: activerecord: attributes: two_factor_authentication/device: - identifier: 'ID' - default: 'Use as default' + identifier: "ID" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ da: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Adgangskode" @@ -37,47 +38,48 @@ da: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ da: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ da: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ da: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Handlinger' - label_confirmed: 'Bekræftet' - button_continue: 'Fortsæt' - button_make_default: 'Mark as default' + label_actions: "Handlinger" + label_confirmed: "Bekræftet" + button_continue: "Fortsæt" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/de.yml b/modules/two_factor_authentication/config/locales/crowdin/de.yml index ea755440061f..e3844f5a75e9 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/de.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/de.yml @@ -7,14 +7,14 @@ de: activerecord: attributes: two_factor_authentication/device: - identifier: 'Kennung' - default: 'Als Standard festlegen' + identifier: "Kennung" + default: "Als Standard festlegen" two_factor_authentication/device/sms: phone_number: "Telefonnummer" errors: models: two_factor_authentication/device: - default_already_exists: 'ist bereits für ein anderes OTP-Gerät gesetzt.' + default_already_exists: "ist bereits für ein anderes OTP-Gerät gesetzt." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ de: two_factor_authentication/device: "2FA-Gerät" two_factor_authentication/device/sms: "Mobiltelefon" two_factor_authentication/device/totp: "Authenticator App" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Zwei-Faktor-Authentifizierung ist deaktiviert." error_no_device: "Kein registriertes 2FA-Gerät für diesen Nutzer gefunden, obwohl Zwei-Faktor-Authentifizierung für diese Instanz erforderlich ist." error_no_matching_strategy: "Keine passende 2FA-Zustellungsmechanismus für diesen Nutzer. Bitte kontaktieren Sie Ihren Administrator." - error_is_enforced_not_active: 'Konfigurationsfehler: Zwei-Faktor-Authentifizierung wird erzwungen, aber keine aktive Strategie wurde konfiguriert.' - error_invalid_backup_code: 'Ungültiger 2FA Backup-Code' + error_is_enforced_not_active: "Konfigurationsfehler: Zwei-Faktor-Authentifizierung wird erzwungen, aber keine aktive Strategie wurde konfiguriert." + error_invalid_backup_code: "Ungültiger 2FA Backup-Code" channel_unavailable: "Die Zustellung über %{channel} ist nicht verfügbar." no_valid_phone_number: "Keine gültige Telefonnummer vorhanden." label_pwd_confirmation: "Kennwort" @@ -37,46 +38,47 @@ de: label_default_device: "Standardgerät für 2FA" label_device: "2FA-Gerät" label_devices: "2FA-Geräte" - label_one_time_password: 'Passwort zur einmaligen Verwendung' - label_2fa_enabled: 'Zwei-Faktor-Authentifizierung ist aktiviert' - label_2fa_disabled: 'Zwei-Faktor-Authentifizierung ist nicht aktiviert' + label_one_time_password: "Passwort zur einmaligen Verwendung" + label_2fa_enabled: "Zwei-Faktor-Authentifizierung ist aktiviert" + label_2fa_disabled: "Zwei-Faktor-Authentifizierung ist nicht aktiviert" text_otp_delivery_message_sms: "Ihr %{app_title} Einmalkennwort lautet %{token}" text_otp_delivery_message_voice: "Ihr %{app_title} Einmalkennwort lautet: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Bitte geben Sie das Einmalpasswort von Ihrem 2FA-Gerät ein.' - text_2fa_enabled: 'Bei jedem Login werden Sie aufgefordert, ein Einmalpasswort aus Ihrem Standardgerät für 2FA einzugeben.' - text_2fa_disabled: 'Um die Zwei-Faktor-Authentifizierung zu aktivieren, registrieren Sie ein 2FA-Gerät über die obige Schaltfläche. Wenn Sie bereits ein Gerät registriert haben, müssen Sie es noch als Standardgerät festlegen.' + text_enter_2fa: "Bitte geben Sie das Einmalpasswort von Ihrem 2FA-Gerät ein." + text_2fa_enabled: "Bei jedem Login werden Sie aufgefordert, ein Einmalpasswort aus Ihrem Standardgerät für 2FA einzugeben." + text_2fa_disabled: "Um die Zwei-Faktor-Authentifizierung zu aktivieren, registrieren Sie ein 2FA-Gerät über die obige Schaltfläche. Wenn Sie bereits ein Gerät registriert haben, müssen Sie es noch als Standardgerät festlegen." login: enter_backup_code_title: 2FA Backup-Code eingeben enter_backup_code_text: Bitte geben Sie einen 2FA Backup-Code von der zuvor gespeicherten Liste ein, falls Sie keinen Zugang zu Ihrem 2FA-Geräten mehr haben. - other_device: 'Verwenden Sie ein anderes 2FA-Gerät oder Backup-Code' + other_device: "Verwenden Sie ein anderes 2FA-Gerät oder Backup-Code" settings: - title: '2FA Einstellungen' - current_configuration: 'Aktuelle Konfiguration' - label_active_strategies: 'Aktive 2FA-Strategien' - label_enforced: 'Erzwinge 2FA' - label_remember: '2FA-Anmeldung speichern' + title: "2FA Einstellungen" + current_configuration: "Aktuelle Konfiguration" + label_active_strategies: "Aktive 2FA-Strategien" + label_enforced: "Erzwinge 2FA" + label_remember: "2FA-Anmeldung speichern" text_configuration: | Hinweis: Diese Werte zeigen die aktuell systemweite Konfiguration. Sie können keine Einstellung überschreiben, die über diese Konfiguration erzwungen werden. text_configuration_guide: Weitere Informationen finden Sie im Konfigurationshandbuch. - text_enforced: 'Aktivieren Sie diese Einstellungen, um die Verwendung eines 2FA-Geräts für alle Nutzer bei ihrer nächsten Anmeldung zu erzwingen. Kann nicht deaktiviert werden, wenn über Konfiguration aktiviert.' + text_enforced: "Aktivieren Sie diese Einstellungen, um die Verwendung eines 2FA-Geräts für alle Nutzer bei ihrer nächsten Anmeldung zu erzwingen. Kann nicht deaktiviert werden, wenn über Konfiguration aktiviert." text_remember: | Setzen Sie diesen Wert größer Null, damit Nutzer bei der Eingabe ihres zweiten Faktors wählen können, den zweiten Faktor auf diesem Browser für die hier angegebenen Tage zu speichern. Während dieser Zeit wird kein zweiter Faktor vom Nutzer über denselben Browser abgefragt. Kann nicht verändert werden, wenn durch die systemweite Konfiguration gesetzt. - error_invalid_settings: 'Die ausgewählten 2FA-Strategien sind ungültig' - failed_to_save_settings: 'Fehler beim Aktualisieren der 2FA-Einstellungen: %{message}' + error_invalid_settings: "Die ausgewählten 2FA-Strategien sind ungültig" + failed_to_save_settings: "Fehler beim Aktualisieren der 2FA-Einstellungen: %{message}" admin: - self_edit_path: 'Bitte besuchen Sie %{self_edit_link} zum hinzufügen oder bearbeiten Ihrer eigenen 2FA-Geräte' - self_edit_link_name: 'Zwei-Faktor-Authentifizierung auf Ihrer Kontoseite' - self_edit_forbidden: 'Sie können ihre eigenen 2FA-Geräte nicht auf diese Weise bearbeiten. Gehen sie hierfür auf die Seite Mein Account > Zwei-Faktor-Authentifizierung.' - no_devices_for_user: 'Kein 2FA-Gerät für diesen Nutzer registriert.' - all_devices_deleted: 'Alle 2FA-Geräte dieses Benutzers wurden entfernt' - delete_all_are_you_sure: 'Sind Sie sicher, dass Sie alle 2FA-Geräte dieses Nutzers entfernen möchten?' - button_delete_all_devices: '2FA-Gerät entfernen' - button_register_mobile_phone_for_user: 'Mobiltelefon registrieren' - text_2fa_enabled: 'Bei jeder Anmeldung wird dieser Benutzer aufgefordert, ein OTP-Token über sein Standard-2FA-Gerät einzugeben.' + self_edit_path: "Bitte besuchen Sie %{self_edit_link} zum hinzufügen oder bearbeiten Ihrer eigenen 2FA-Geräte" + self_edit_link_name: "Zwei-Faktor-Authentifizierung auf Ihrer Kontoseite" + self_edit_forbidden: "Sie können ihre eigenen 2FA-Geräte nicht auf diese Weise bearbeiten. Gehen sie hierfür auf die Seite Mein Account > Zwei-Faktor-Authentifizierung." + no_devices_for_user: "Kein 2FA-Gerät für diesen Nutzer registriert." + all_devices_deleted: "Alle 2FA-Geräte dieses Benutzers wurden entfernt" + delete_all_are_you_sure: "Sind Sie sicher, dass Sie alle 2FA-Geräte dieses Nutzers entfernen möchten?" + button_delete_all_devices: "2FA-Gerät entfernen" + button_register_mobile_phone_for_user: "Mobiltelefon registrieren" + text_2fa_enabled: "Bei jeder Anmeldung wird dieser Benutzer aufgefordert, ein OTP-Token über sein Standard-2FA-Gerät einzugeben." text_2fa_disabled: "Der Benutzer hat kein 2FA-Gerät über seine Seite „Mein Konto“ eingerichtet" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Zwei-Faktor-Authentifizierung' - description: 'Stärken Sie die Sicherheit Ihrer OpenProject Instanz, indem Sie allen Projektmitgliedern eine Zwei-Faktor-Authentifizierung anbieten (oder durchsetzen).' + title: "Zwei-Faktor-Authentifizierung" + description: "Stärken Sie die Sicherheit Ihrer OpenProject Instanz, indem Sie allen Projektmitgliedern eine Zwei-Faktor-Authentifizierung anbieten (oder durchsetzen)." backup_codes: none_found: Keine 2FA Backup-Codes für dieses Konto gefunden. singular: 2FA Backup-Code @@ -86,37 +88,42 @@ de: Wenn Sie auf Ihre registrierten 2FA-Geräte nicht zugreifen können, erhalten Sie über die Eingabe eines 2FA Backup-Codes Zugang zu Ihrem Account. generate: title: 2FA Backup-Codes generieren - keep_safe_as_password: 'Wichtig! Behandeln Sie diese Codes wie ein Passwort.' - keep_safe_warning: 'Speichern Sie diese entweder in Ihrem Passwortmanager, oder legen Sie einen Ausdruck dieser Seite an einen sicheren Ort.' - regenerate_warning: 'Warnung: Wenn Sie bereits 2FA Backup-Codes erstellt haben, werden diese ungültig und können nicht mehr eingesetzt werden.' + keep_safe_as_password: "Wichtig! Behandeln Sie diese Codes wie ein Passwort." + keep_safe_warning: "Speichern Sie diese entweder in Ihrem Passwortmanager, oder legen Sie einen Ausdruck dieser Seite an einen sicheren Ort." + regenerate_warning: "Warnung: Wenn Sie bereits 2FA Backup-Codes erstellt haben, werden diese ungültig und können nicht mehr eingesetzt werden." devices: - add_new: 'Neues 2FA-Gerät hinzufügen' - register: '2FA-Gerät registrieren' - confirm_default: 'Wechsel des Standardgerätes bestätigen' - confirm_device: 'Gerät bestätigen' - confirm_now: 'Nicht bestätigt, hier klicken zum aktivieren' - cannot_delete_default: 'Standardgerät kann nicht entfernt werden' - make_default_are_you_sure: 'Sind Sie sicher, dass Sie dieses 2FA-Gerät zum Standardgerät machen möchten?' - make_default_failed: 'Fehler beim Setzen des 2FA-Standardgerätes.' - deletion_are_you_sure: 'Sind Sie sicher, dass Sie dieses 2FA-Gerät wirklich löschen möchten?' - registration_complete: 'Registrierung Ihres 2FA-Gerät abgeschlossen!' - registration_failed_token_invalid: 'Registrierung Ihres 2FA-Gerät fehlgeschlagen, da das Einmalpasswort ungültig ist.' - registration_failed_update: 'Registrierung Ihres 2FA-Gerät abgeschlossen, weil das Gerät nicht aktualisiert werden konnte.' - confirm_send_failed: 'Registrierung Ihres 2FA-Gerät fehlgeschlagen.' - button_complete_registration: 'Registrierung Ihres 2FA-Gerät abschließen' + add_new: "Neues 2FA-Gerät hinzufügen" + register: "2FA-Gerät registrieren" + confirm_default: "Wechsel des Standardgerätes bestätigen" + confirm_device: "Gerät bestätigen" + confirm_now: "Nicht bestätigt, hier klicken zum aktivieren" + cannot_delete_default: "Standardgerät kann nicht entfernt werden" + make_default_are_you_sure: "Sind Sie sicher, dass Sie dieses 2FA-Gerät zum Standardgerät machen möchten?" + make_default_failed: "Fehler beim Setzen des 2FA-Standardgerätes." + deletion_are_you_sure: "Sind Sie sicher, dass Sie dieses 2FA-Gerät wirklich löschen möchten?" + registration_complete: "Registrierung Ihres 2FA-Gerät abgeschlossen!" + registration_failed_token_invalid: "Registrierung Ihres 2FA-Gerät fehlgeschlagen, da das Einmalpasswort ungültig ist." + registration_failed_update: "Registrierung Ihres 2FA-Gerät abgeschlossen, weil das Gerät nicht aktualisiert werden konnte." + confirm_send_failed: "Registrierung Ihres 2FA-Gerät fehlgeschlagen." + button_complete_registration: "Registrierung Ihres 2FA-Gerät abschließen" text_confirm_to_complete_html: "Schließen Sie die Registrierung ihres 2FA-Gerätes %{identifier} durch die Eingabe des Einmalpasswortes ab." text_confirm_to_change_default_html: "Bitte bestätigen Sie den Wechsel des Standardgerätes auf %{new_identifier} durch die Eingabe des Einmalpasswortes auf ihrem aktuellen Standardgerät." - text_identifier: 'Mit diesem Freitextfeld können Sie Ihrem 2FA-Gerät einen eigene Bezeichnung geben.' - failed_to_delete: 'Fehler beim Entfernen des 2FA-Gerätes.' - is_default_cannot_delete: 'Dieses 2FA-Gerät ist das aktuelle Standardgerät und kann aufgrund einer aktiven Sicherheitsrichtlinie nicht entfernt werden. Wechseln Sie das Standardgerät, um dieses Gerät löschen zu können.' - not_existing: 'Kein 2FA-Gerät für Ihren Account registriert.' - request_2fa: Bitte geben Sie das Einmalpasswort von Ihrem 2FA-Gerät %{device_name} ein, um Ihre Identität zu bestätigen. + text_identifier: "Mit diesem Freitextfeld können Sie Ihrem 2FA-Gerät einen eigene Bezeichnung geben." + failed_to_delete: "Fehler beim Entfernen des 2FA-Gerätes." + is_default_cannot_delete: "Dieses 2FA-Gerät ist das aktuelle Standardgerät und kann aufgrund einer aktiven Sicherheitsrichtlinie nicht entfernt werden. Wechseln Sie das Standardgerät, um dieses Gerät löschen zu können." + not_existing: "Kein 2FA-Gerät für Ihren Account registriert." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Verwenden Sie einen App-basierten Authenticator' - provisioning_uri: 'Bereitstellungs-URI' - secret_key: 'Geheimer Schlüssel' - time_based: 'Zeitbasiert' - account: 'Aussteller' + title: "Verwenden Sie einen App-basierten Authenticator" + provisioning_uri: "Bereitstellungs-URI" + secret_key: "Geheimer Schlüssel" + time_based: "Zeitbasiert" + account: "Aussteller" setup: | Zur Einrichtung der Zwei-Faktor-Authentifizierung mit der Google Authenticator App, laden Sie die Applikation aus dem Apple App Store bzw. dem Google Play Store herunter. Nach dem Öffnen der App können Sie den folgenden QR-Code einscannen, um das Gerät zu registrieren. question_cannot_scan: | @@ -127,31 +134,32 @@ de: Registrieren Sie einen App-basierten Authenticator für die Zwei-Faktor-Authentifizierung in OpenProject mittels des zeitbasierten Einmalpasswort Standard (TOTP). Kompatible Anwendungen sind unter anderem Google Authenticator oder Authy. sms: - title: 'Verwenden Sie Ihr Mobiltelefon' - redacted_identifier: 'Mobiltelefon (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, es wurde ein Einmalpasswort über %{delivery_channel} zugestellt' + title: "Verwenden Sie Ihr Mobiltelefon" + redacted_identifier: "Mobiltelefon (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, es wurde ein Einmalpasswort über %{delivery_channel} zugestellt" description: | Registrieren Sie Ihr Mobiltelefon für die Zwei-Faktor-Authentifizierung in OpenProject. Einmalpasswörter werden an Ihre Handy-Nummer versendet. sns: - delivery_failed: 'Zustellung über Amazon SNS fehlgeschlagen:' + delivery_failed: "Zustellung über Amazon SNS fehlgeschlagen:" message_bird: - sms_delivery_failed: 'MessageBird SMS Zustellung fehlgeschlagen.' - voice_delivery_failed: 'MessageBird Anruf fehlgeschlagen.' + sms_delivery_failed: "MessageBird SMS Zustellung fehlgeschlagen." + voice_delivery_failed: "MessageBird Anruf fehlgeschlagen." strategies: - totp: 'Authentifikator-Anwendung' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authentifikator-Anwendung" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Ein Einmalpasswort wurde an Ihr Mobiltelefon gesendet." - label_two_factor_authentication: 'Zwei-Faktor-Authentifizierung' + label_two_factor_authentication: "Zwei-Faktor-Authentifizierung" forced_registration: - required_to_add_device: 'Eine aktive Sicherheitsrichtlinie erfordert die Zwei-Faktor-Authentifizierung (2FA) für Ihren Account. Bitte verwenden Sie das folgende Formular, um ein 2FA-Gerät zu registrieren.' + required_to_add_device: "Eine aktive Sicherheitsrichtlinie erfordert die Zwei-Faktor-Authentifizierung (2FA) für Ihren Account. Bitte verwenden Sie das folgende Formular, um ein 2FA-Gerät zu registrieren." remember: active_session_notice: > Für Ihren Account und Browser existiert ein gespeicherter zweiter Faktor bis %{expires_on}. Dieses Cookie erlaubt Ihnen, in diesem Browser bis zum Ablauf einen Login ohne zweiten Faktor durchzuführen. other_active_session_notice: Ihr Konto hat einen aktiven Erinnerungs-Cookie in einer anderen Sitzung. - label: 'Erinnern' - clear_cookie: 'Klicken Sie hier, um alle gespeicherten 2FA Sitzungen zu entfernen.' - cookie_removed: 'Alle gespeicherten 2FA Sitzungen wurden entfernt.' + label: "Erinnern" + clear_cookie: "Klicken Sie hier, um alle gespeicherten 2FA Sitzungen zu entfernen." + cookie_removed: "Alle gespeicherten 2FA Sitzungen wurden entfernt." dont_ask_again: "Die Zwei-Faktor-Authentifizierung auf diesem Browser für %{days} Tage nicht mehr abfragen." field_phone: "Mobiltelefon" field_otp: "Einmalpasswort" @@ -161,10 +169,10 @@ de: notice_account_otp_send_failed: "Ihr Einmalpasswort konnte nicht versendet werden." notice_account_has_no_phone: "Keine Telefonnummer mit Ihrem Account verknüpft." label_expiration_hint: "%{date} oder bei Logout" - label_actions: 'Aktionen' - label_confirmed: 'Bestätigt' - button_continue: 'Fortfahren' - button_make_default: 'Als Standard festlegen' + label_actions: "Aktionen" + label_confirmed: "Bestätigt" + button_continue: "Fortfahren" + button_make_default: "Als Standard festlegen" label_unverified_phone: "Mobilgerät noch nicht bestätigt" notice_phone_number_format: "Bitte geben Sie die Nummer in folgendem Format ein: +XX XXXXXXXX." text_otp_not_receive: "Andere Überprüfungsmethoden" diff --git a/modules/two_factor_authentication/config/locales/crowdin/el.yml b/modules/two_factor_authentication/config/locales/crowdin/el.yml index 58fce73b8194..a9371f867ef6 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/el.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/el.yml @@ -7,14 +7,14 @@ el: activerecord: attributes: two_factor_authentication/device: - identifier: 'Αναγνωριστικό' - default: 'Χρήση ως προεπιλογή' + identifier: "Αναγνωριστικό" + default: "Χρήση ως προεπιλογή" two_factor_authentication/device/sms: phone_number: "Αριθμός τηλεφώνου" errors: models: two_factor_authentication/device: - default_already_exists: 'έχει ήδη οριστεί από άλλη συσκευή OTP.' + default_already_exists: "έχει ήδη οριστεί από άλλη συσκευή OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ el: two_factor_authentication/device: "Συσκευή 2FA" two_factor_authentication/device/sms: "Κινητό Τηλέφωνο" two_factor_authentication/device/totp: "Εφαρμογή ταυτοποίησης" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Η διανομή 2FA έχει απενεργοποιηθεί." error_no_device: "Δεν βρέθηκαν καταχωρημένες 2FA συσκευές για αυτό τον χρήστη, παρόλο που απαιτείται για αυτό το στιγμιότυπο." error_no_matching_strategy: "Δεν βρέθηκε διαθέσιμη στρατηγική 2FA για αυτό τον χρήστη που να ταιριάζει. Παρακαλούμε επικοινωνήστε με τον διαχειριστή σας." - error_is_enforced_not_active: 'Σφάλμα διαμόρφωσης: Η ταυτοποίηση δύο παραγόντων έχει επιβληθεί, αλλά δεν υπάρχουν ενεργές στρατηγικές.' - error_invalid_backup_code: 'Μη έγκυρος κωδικός αντιγράφων ασφαλείας 2FA' + error_is_enforced_not_active: "Σφάλμα διαμόρφωσης: Η ταυτοποίηση δύο παραγόντων έχει επιβληθεί, αλλά δεν υπάρχουν ενεργές στρατηγικές." + error_invalid_backup_code: "Μη έγκυρος κωδικός αντιγράφων ασφαλείας 2FA" channel_unavailable: "Το κανάλι διανομής %{channel} δεν είναι διαθέσιμο." no_valid_phone_number: "Δεν υπάρχει έγκυρος αριθμός τηλεφώνου." label_pwd_confirmation: "Κωδικός" @@ -37,46 +38,47 @@ el: label_default_device: "Προεπιλεγμένη συσκευή 2FA" label_device: "Συσκευή 2FA" label_devices: "Συσκευές 2FA" - label_one_time_password: 'Κωδικός μιάς χρήσης' - label_2fa_enabled: 'Η ταυτοποίηση δύο παραγόντων είναι ενεργή' - label_2fa_disabled: 'Η ταυτοποίηση δύο παραγόντων δεν είναι ενεργή' + label_one_time_password: "Κωδικός μιάς χρήσης" + label_2fa_enabled: "Η ταυτοποίηση δύο παραγόντων είναι ενεργή" + label_2fa_disabled: "Η ταυτοποίηση δύο παραγόντων δεν είναι ενεργή" text_otp_delivery_message_sms: "Ο %{app_title} κωδικός πρόσβασης μια χρήσης σας είναι %{token}" text_otp_delivery_message_voice: "Ο %{app_title} κωδικός πρόσβασης μια χρήσης σας είναι %{pause} %{token}. %{pause} Επαναλαμβάνω: %{pause} %{token}" - text_enter_2fa: 'Παρακαλούμε εισάγετε τον κωδικό πρόσβασης μιας χρήσης από την συσκευή σας.' - text_2fa_enabled: 'Κατά κάθε σύνδεση, θα σας ζητείται να εισάγετε ένα OPT token από την προεπιλεγμένη 2FA συσκευή σας.' - text_2fa_disabled: 'Για να ενεργοποιήσετε την ταυτοποίηση δύο παραγόντων, χρησιμοποιήστε το παραπάνω κουμπί για να καταχωρήσετε μια καινούργια 2FA συσκευή.' + text_enter_2fa: "Παρακαλούμε εισάγετε τον κωδικό πρόσβασης μιας χρήσης από την συσκευή σας." + text_2fa_enabled: "Κατά κάθε σύνδεση, θα σας ζητείται να εισάγετε ένα OPT token από την προεπιλεγμένη 2FA συσκευή σας." + text_2fa_disabled: "Για να ενεργοποιήσετε την ταυτοποίηση δύο παραγόντων, χρησιμοποιήστε το παραπάνω κουμπί για να καταχωρήσετε μια καινούργια 2FA συσκευή." login: enter_backup_code_title: Εισάγετε τον κωδικό αντιγράφων ασφαλείας enter_backup_code_text: Παρακαλούμε εισάγετε έναν έγκυρο κωδικό αντιγράφων ασφαλείας από την λίστα κωδικών σε περίπτωση που δεν έχετε πια πρόσβαση στις καταχωρημένες συσκευές 2FA. - other_device: 'Χρησιμοποιήστε μια διαφορετική συσκευή ή κωδικό αντιγράφων ασφαλείας' + other_device: "Χρησιμοποιήστε μια διαφορετική συσκευή ή κωδικό αντιγράφων ασφαλείας" settings: - title: 'Ρυθμίσεις 2FA' - current_configuration: 'Τρέχουσα διαμόρφωση' - label_active_strategies: 'Ενεργές στρατηγικές 2FA' - label_enforced: 'Επιβολή 2FA' - label_remember: 'Απομνημόνευση σύνδεσης 2FA' + title: "Ρυθμίσεις 2FA" + current_configuration: "Τρέχουσα διαμόρφωση" + label_active_strategies: "Ενεργές στρατηγικές 2FA" + label_enforced: "Επιβολή 2FA" + label_remember: "Απομνημόνευση σύνδεσης 2FA" text_configuration: | Σημείωση: Αυτές οι τιμές αντιπροσωπεύουν την τρέχουσα διαμόρφωση σε όλη την εφαρμογή. Δεν μπορείτε να απενεργοποιήσετε τις ρυθμίσεις που επιβάλλονται από τη διαμόρφωση ή να αλλάξετε τις τρέχουσες ενεργές στρατηγικές, γιατί απαιτούν επανεκκίνηση του διακομιστή. text_configuration_guide: Για περισσότερες πληροφορίες, ελέγξτε τον οδηγό διαμόρφωσης. - text_enforced: 'Ενεργοποιείστε αυτή τη ρύθμιση για να επιβάλλετε σε όλους τους χρήστες να καταχωρήσουν μια συσκευή 2FA κατά την επόμενη σύνδεση τους. Μπορεί να απενεργοποιηθεί μόνο όταν δεν επιβάλλεται από τη διαμόρφωση.' + text_enforced: "Ενεργοποιείστε αυτή τη ρύθμιση για να επιβάλλετε σε όλους τους χρήστες να καταχωρήσουν μια συσκευή 2FA κατά την επόμενη σύνδεση τους. Μπορεί να απενεργοποιηθεί μόνο όταν δεν επιβάλλεται από τη διαμόρφωση." text_remember: | Ορίστε αυτό μεγαλύτερο από μηδέν για να επιτρέψετε στους χρήστες να θυμούνται την 2FA ταυτοποίηση τους για το δοσμένο αριθμό ημερών. Δεν θα τους ζητηθεί να την εισάγουν ξανά για αυτή την περίοδο. Μπορεί να οριστεί μόνο όταν δεν επιβάλλεται από τη διαμόρφωση. - error_invalid_settings: 'Οι στρατηγικές 2FA που επιλέξατε δεν είναι έγκυρες' - failed_to_save_settings: 'Αποτυχία ενημέρωσης των ρυθμίσεων 2FA: %{message}' + error_invalid_settings: "Οι στρατηγικές 2FA που επιλέξατε δεν είναι έγκυρες" + failed_to_save_settings: "Αποτυχία ενημέρωσης των ρυθμίσεων 2FA: %{message}" admin: - self_edit_path: 'Για να προσθέσετε ή να τροποποιήσετε τις δικές σας συσκευές 2FA, παρακαλούμε πηγαίνετε στο %{self_edit_link}' - self_edit_link_name: 'Ταυτοποίηση δύο παραγόντων στη σελίδα λογαριασμού σας' - self_edit_forbidden: 'Δεν μπορείτε να επεξεργαστείτε τις δικές σας συσκευές 2FA σε αυτό το μονοπάτι. Αντί αυτού πηγαίνετε στο Ο Λογαριασμός μου > Ταυτοποίηση δύο παραγόντων.' - no_devices_for_user: 'Δεν έχουν καταχωρηθεί συσκευές 2FA για αυτόν τον χρήστη.' - all_devices_deleted: 'Όλες οι συσκευές 2FA αυτού του χρήστη έχουν διαγραφεί' - delete_all_are_you_sure: 'Είστε βέβαιοι ότι θέλετε να διαγράψετε όλες τις 2FA συσκευές αυτού του χρήστη;' - button_delete_all_devices: 'Διαγραφή καταχωρημένων συσκευών 2FA' - button_register_mobile_phone_for_user: 'Καταχώρηση κινητού τηλεφώνου' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Για να προσθέσετε ή να τροποποιήσετε τις δικές σας συσκευές 2FA, παρακαλούμε πηγαίνετε στο %{self_edit_link}" + self_edit_link_name: "Ταυτοποίηση δύο παραγόντων στη σελίδα λογαριασμού σας" + self_edit_forbidden: "Δεν μπορείτε να επεξεργαστείτε τις δικές σας συσκευές 2FA σε αυτό το μονοπάτι. Αντί αυτού πηγαίνετε στο Ο Λογαριασμός μου > Ταυτοποίηση δύο παραγόντων." + no_devices_for_user: "Δεν έχουν καταχωρηθεί συσκευές 2FA για αυτόν τον χρήστη." + all_devices_deleted: "Όλες οι συσκευές 2FA αυτού του χρήστη έχουν διαγραφεί" + delete_all_are_you_sure: "Είστε βέβαιοι ότι θέλετε να διαγράψετε όλες τις 2FA συσκευές αυτού του χρήστη;" + button_delete_all_devices: "Διαγραφή καταχωρημένων συσκευών 2FA" + button_register_mobile_phone_for_user: "Καταχώρηση κινητού τηλεφώνου" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Ταυτοποίηση δύο παραγόντων' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Ταυτοποίηση δύο παραγόντων" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: Δεν υπάρχουν κωδικοί αντιγράφων ασφαλείας για αυτό τον λογαριασμό. singular: Κωδικός αντιγράφων ασφαλείας @@ -87,37 +89,42 @@ el: Χρησιμοποιήστε το παρακάτω κουμπί για να δημιουργήσετε ένα νέο σύνολο κωδικών αντιγράφων ασφαλείας. generate: title: Δημιουργήστε κωδικούς αντιγράφων ασφαλείας - keep_safe_as_password: 'Σημαντικό! Χειριστείτε αυτούς τους κωδικούς σαν κωδικούς πρόσβασης.' - keep_safe_warning: 'Μπορείτε είτε να τους αποθηκεύσετε στον διαχειριστή κωδικών πρόσβασης σας ή να εκτυπώσετε αυτή τη σελίδα και να την τοποθετήσετε σε ασφαλές μέρος.' - regenerate_warning: 'Προειδοποίηση: Εάν έχετε δημιουργήσει κωδικούς ασφαλείας πριν, θα ακυρωθούν και δεν θα λειτουργούν πλέον.' + keep_safe_as_password: "Σημαντικό! Χειριστείτε αυτούς τους κωδικούς σαν κωδικούς πρόσβασης." + keep_safe_warning: "Μπορείτε είτε να τους αποθηκεύσετε στον διαχειριστή κωδικών πρόσβασης σας ή να εκτυπώσετε αυτή τη σελίδα και να την τοποθετήσετε σε ασφαλές μέρος." + regenerate_warning: "Προειδοποίηση: Εάν έχετε δημιουργήσει κωδικούς ασφαλείας πριν, θα ακυρωθούν και δεν θα λειτουργούν πλέον." devices: - add_new: 'Προσθέστε νέα συσκευή 2FA' - register: 'Καταχώρηση συσκευής' - confirm_default: 'Επιβεβαιώστε την αλλαγή προεπιλεγμένης συσκευής' - confirm_device: 'Επιβεβαιώστε τη συσκευή' - confirm_now: 'Δεν έχει επιβεβαιωθεί, κάντε κλικ εδώ για ενεργοποίηση' - cannot_delete_default: 'Δεν είναι δυνατή η διαγραφή της προεπιλεγμένης συσκευής' - make_default_are_you_sure: 'Είστε βέβαιοι ότι θέλετε να ορίσετε αυτή τη συσκευή 2FA ως την προεπιλογή σας;' - make_default_failed: 'Αποτυχία ενημέρωσης της προεπιλεγμένης συσκευής 2FA.' - deletion_are_you_sure: 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη συσκευή 2FA;' - registration_complete: 'Η εγγραφή της 2FA συσκευής ολοκληρώθηκε!' - registration_failed_token_invalid: 'Η εγγραφή της 2FA συσκευής απέτυχε, το token δεν ήταν έγκυρο.' - registration_failed_update: 'Η εγγραφή της συσκευής 2FA απέτυχε, το token ήταν έγκυρο αλλά η συσκευή δεν μπόρεσε να ενημερωθεί.' - confirm_send_failed: 'Η επιβεβαίωση της συσκευή 2FA σας απέτυχε.' - button_complete_registration: 'Ολοκλήρωση εγγραφής 2FA' + add_new: "Προσθέστε νέα συσκευή 2FA" + register: "Καταχώρηση συσκευής" + confirm_default: "Επιβεβαιώστε την αλλαγή προεπιλεγμένης συσκευής" + confirm_device: "Επιβεβαιώστε τη συσκευή" + confirm_now: "Δεν έχει επιβεβαιωθεί, κάντε κλικ εδώ για ενεργοποίηση" + cannot_delete_default: "Δεν είναι δυνατή η διαγραφή της προεπιλεγμένης συσκευής" + make_default_are_you_sure: "Είστε βέβαιοι ότι θέλετε να ορίσετε αυτή τη συσκευή 2FA ως την προεπιλογή σας;" + make_default_failed: "Αποτυχία ενημέρωσης της προεπιλεγμένης συσκευής 2FA." + deletion_are_you_sure: "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη συσκευή 2FA;" + registration_complete: "Η εγγραφή της 2FA συσκευής ολοκληρώθηκε!" + registration_failed_token_invalid: "Η εγγραφή της 2FA συσκευής απέτυχε, το token δεν ήταν έγκυρο." + registration_failed_update: "Η εγγραφή της συσκευής 2FA απέτυχε, το token ήταν έγκυρο αλλά η συσκευή δεν μπόρεσε να ενημερωθεί." + confirm_send_failed: "Η επιβεβαίωση της συσκευή 2FA σας απέτυχε." + button_complete_registration: "Ολοκλήρωση εγγραφής 2FA" text_confirm_to_complete_html: "Παρακαλούμε ολοκληρώστε την καταχώρηση της συσκευής σας %{identifier} εισάγοντας τον κωδικό μιας χρήσης από την προεπιλεγμένη συσκευή σας." text_confirm_to_change_default_html: "Παρακαλούμε επιβεβαιώστε την αλλαγή της προεπιλεγμένης συσκευής σας σε %{new_identifier} εισάγοντας τον κωδικό μιας χρήσης από την τρέχουσα προεπιλεγμένη συσκευή σας." - text_identifier: 'Μπορείτε να δώσετε στην συσκευή ένα προσαρμοσμένο αναγνωριστικό χρησιμοποιώντας αυτό το πεδίο.' - failed_to_delete: 'Αποτυχία διαγραφής συσκευής 2FA.' - is_default_cannot_delete: 'Η συσκευή έχει οριστεί ως προεπιλεγμένη και δεν μπορεί να διαγραφεί λόγω μιας ενεργής πολιτικής ασφαλείας. Ορίστε μια άλλη συσκευή ως προεπιλογή πριν τη διαγραφή.' - not_existing: 'Δεν έχουν καταχωρηθεί συσκευές 2FA για τον λογαριασμό σας.' - request_2fa: Παρακαλούμε εισάγετε τον κωδικό από το %{device_name} για επιβεβαιώσετε την ταυτότητα σας. + text_identifier: "Μπορείτε να δώσετε στην συσκευή ένα προσαρμοσμένο αναγνωριστικό χρησιμοποιώντας αυτό το πεδίο." + failed_to_delete: "Αποτυχία διαγραφής συσκευής 2FA." + is_default_cannot_delete: "Η συσκευή έχει οριστεί ως προεπιλεγμένη και δεν μπορεί να διαγραφεί λόγω μιας ενεργής πολιτικής ασφαλείας. Ορίστε μια άλλη συσκευή ως προεπιλογή πριν τη διαγραφή." + not_existing: "Δεν έχουν καταχωρηθεί συσκευές 2FA για τον λογαριασμό σας." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Χρησιμοποιήστε ταυτοποιητή βασισμένο σε εφαρμογή' - provisioning_uri: 'Provisioning URI' - secret_key: 'Κρυφό κλειδί' - time_based: 'Βασισμένο σε χρόνο' - account: 'Όνομα λογαριασμού / Εκδότης' + title: "Χρησιμοποιήστε ταυτοποιητή βασισμένο σε εφαρμογή" + provisioning_uri: "Provisioning URI" + secret_key: "Κρυφό κλειδί" + time_based: "Βασισμένο σε χρόνο" + account: "Όνομα λογαριασμού / Εκδότης" setup: | Για να δημιουργήσετε μια ταυτοποίηση δύο παραγόντων με το Google Authenticator, κατεβάστε την εφαρμογή από το Apple App store ή to Google Play Store. Αφού ανοίξετε την εφαρμογή, μπορείτε να σαρώσετε τους ακόλουθους QR κωδικούς για να καταχωρήσετε τη συσκευή σας. question_cannot_scan: | @@ -127,31 +134,32 @@ el: description: | Καταχωρήστε μια εφαρμογή ταυτοποίησης για να τη χρησιμοποιείτε στο OpenProject με πρότυπο ταυτοποίησης κωδικού μιας χρήσης βασισμένο σε χρόνο. Συχνά παραδείγματα είναι το Google Authenticator ή Authy. sms: - title: 'Χρησιμοποιήστε το κινητό τηλέφωνο σας' - redacted_identifier: 'Κινητό τηλέφωνο (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, σας στείλαμε ένα κωδικό ταυτοποίησης μέσω %{delivery_channel}' + title: "Χρησιμοποιήστε το κινητό τηλέφωνο σας" + redacted_identifier: "Κινητό τηλέφωνο (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, σας στείλαμε ένα κωδικό ταυτοποίησης μέσω %{delivery_channel}" description: | Καταχωρήστε τον αριθμό κινητού τηλεφώνου σας για την παράδοση των κωδικών πρόσβασης μιας χρήσης το OpenProject. sns: - delivery_failed: 'Η αποστολή SNS απέτυχε:' + delivery_failed: "Η αποστολή SNS απέτυχε:" message_bird: - sms_delivery_failed: 'Η παράδοση του MessageBird SMS απέτυχε.' - voice_delivery_failed: 'Η φωνητική κλήση MessageBird απέτυχε.' + sms_delivery_failed: "Η παράδοση του MessageBird SMS απέτυχε." + voice_delivery_failed: "Η φωνητική κλήση MessageBird απέτυχε." strategies: - totp: 'Εφαρμογή ταυτοποίησης' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Εφαρμογή ταυτοποίησης" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Ένας κωδικός μιας χρήσης στάλθηκε στο κινητό τηλέφωνο σας." - label_two_factor_authentication: 'Ταυτοποίηση δύο παραγόντων' + label_two_factor_authentication: "Ταυτοποίηση δύο παραγόντων" forced_registration: - required_to_add_device: 'Μια ενεργή πολιτική ασφαλείας απαιτεί να ενεργοποιήσετε την ταυτοποίηση δύο παραγόντων. Παρακαλούμε χρησιμοποιήστε την ακόλουθη φόρμα για να καταχωρήσετε μια συσκευή.' + required_to_add_device: "Μια ενεργή πολιτική ασφαλείας απαιτεί να ενεργοποιήσετε την ταυτοποίηση δύο παραγόντων. Παρακαλούμε χρησιμοποιήστε την ακόλουθη φόρμα για να καταχωρήσετε μια συσκευή." remember: active_session_notice: > Ο λογαριασμός σας έχει ένα ενεργό cookie απομνημόνευσης που είναι έγκυρο μέχρι %{expires_on}. Αυτό το cookie σας επιτρέπει να συνδέεστε στο λογαριασμό σας χωρίς δεύτερο παράγοντα μέχρι εκείνη την στιγμή. other_active_session_notice: Ο λογαριασμός σας έχει ένα ενεργό cookie απομνημόνευσης από άλλη συνεδρία. - label: 'Απομνημόνευση' - clear_cookie: 'Κάντε κλικ εδώ για να αφαιρέσετε όλες την απομνημονευμένες συνεδρίες 2FA.' - cookie_removed: 'Όλες οι απομνημονευμένες συνεδρίες 2FA έχουν αφαιρεθεί.' + label: "Απομνημόνευση" + clear_cookie: "Κάντε κλικ εδώ για να αφαιρέσετε όλες την απομνημονευμένες συνεδρίες 2FA." + cookie_removed: "Όλες οι απομνημονευμένες συνεδρίες 2FA έχουν αφαιρεθεί." dont_ask_again: "Δημιουργήστε ένα cookie για να απομνημονευτεί η ταυτοποίηση 2FA σε αυτό την περιηγητή για %{days} ημέρες." field_phone: "Κινητό τηλέφωνο" field_otp: "Κωδικός μιάς χρήσης" @@ -161,10 +169,10 @@ el: notice_account_otp_send_failed: "Ο κωδικός πρόσβασης μιας χρήσης δεν ήταν δυνατό να αποσταλεί." notice_account_has_no_phone: "Δεν υπάρχει αριθμός κινητού τηλεφώνου που να σχετίζεται με αυτό τον λογαριασμό." label_expiration_hint: "%{date} ή κατά την αποσύνδεση" - label_actions: 'Ενέργειες' - label_confirmed: 'Επιβεβαιωμένο' - button_continue: 'Συνέχεια' - button_make_default: 'Ορισμός ως προεπιλογή' + label_actions: "Ενέργειες" + label_confirmed: "Επιβεβαιωμένο" + button_continue: "Συνέχεια" + button_make_default: "Ορισμός ως προεπιλογή" label_unverified_phone: "Το κινητό τηλέφωνο δεν έχει επαληθευτεί ακόμη" notice_phone_number_format: "Καταχωρίστε τον αριθμό με την ακόλουθη μορφή: + XX XXXXXXXX." text_otp_not_receive: "Άλλες μέθοδοι επαλήθευσης" diff --git a/modules/two_factor_authentication/config/locales/crowdin/eo.yml b/modules/two_factor_authentication/config/locales/crowdin/eo.yml index 1613c3c755ce..2e01390beb5c 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/eo.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/eo.yml @@ -7,14 +7,14 @@ eo: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identigilo' - default: 'Use as default' + identifier: "Identigilo" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ eo: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Pasvorto" @@ -37,47 +38,48 @@ eo: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ eo: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ eo: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ eo: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Agoj' - label_confirmed: 'Konfirmita' - button_continue: 'Daŭrigi' - button_make_default: 'Mark as default' + label_actions: "Agoj" + label_confirmed: "Konfirmita" + button_continue: "Daŭrigi" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/es.yml b/modules/two_factor_authentication/config/locales/crowdin/es.yml index 995784edc707..e8cd9a08647b 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/es.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/es.yml @@ -7,14 +7,14 @@ es: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identificador' - default: 'Usar como predeterminado' + identifier: "Identificador" + default: "Usar como predeterminado" two_factor_authentication/device/sms: phone_number: "Número de teléfono" errors: models: two_factor_authentication/device: - default_already_exists: 'ya está preparado para otro dispositivo OTP.' + default_already_exists: "ya está preparado para otro dispositivo OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ es: two_factor_authentication/device: "dispositivo 2FA" two_factor_authentication/device/sms: "Teléfono móvil" two_factor_authentication/device/totp: "Aplicación de autenticador" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "La entrega de 2FA ha sido desactivada." error_no_device: "No se ha encontrado ningún dispositivo 2FA registrado para este usuario, a pesar de ser necesario para esta instancia." error_no_matching_strategy: "No hay una estrategia 2FA coincidente disponible para este usuario. Por favor, póngase en contacto con su administrador." - error_is_enforced_not_active: 'Error de configuración: se ha aplicado la autenticación de dos factores, pero no existen estrategias activas.' - error_invalid_backup_code: 'Código de copia de seguridad 2FA no válido' + error_is_enforced_not_active: "Error de configuración: se ha aplicado la autenticación de dos factores, pero no existen estrategias activas." + error_invalid_backup_code: "Código de copia de seguridad 2FA no válido" channel_unavailable: "El canal de entrega %{channel} no está disponible." no_valid_phone_number: "No existe un número de teléfono válido." label_pwd_confirmation: "Contraseña" @@ -37,47 +38,48 @@ es: label_default_device: "Dispositivo 2FA predeterminado" label_device: "Dispositivo 2FA" label_devices: "dispositivo 2FA" - label_one_time_password: 'Contraseña de un solo uso' - label_2fa_enabled: 'Autenticación de dos factores está activa' - label_2fa_disabled: 'Autenticación de dos factores no está activa' + label_one_time_password: "Contraseña de un solo uso" + label_2fa_enabled: "Autenticación de dos factores está activa" + label_2fa_disabled: "Autenticación de dos factores no está activa" text_otp_delivery_message_sms: "Su contraseña de un solo uso de %{app_title} es %{token}" text_otp_delivery_message_voice: "Su contraseña de un solo uso de %{app_title} es: %{pause} %{token}. %{pause} Repito: %{pause} %{token}" - text_enter_2fa: 'Ingrese la contraseña de un solo uso desde su dispositivo.' - text_2fa_enabled: 'Después de cada inicio de sesión, se le solicitará que ingrese un token OTP desde su dispositivo 2FA predeterminado.' - text_2fa_disabled: 'Para habilitar la autenticación de dos factores, use el botón de arriba para registrar un nuevo dispositivo 2FA. Si ya tiene un dispositivo, debe hacerlo de manera predeterminada.' + text_enter_2fa: "Ingrese la contraseña de un solo uso desde su dispositivo." + text_2fa_enabled: "Después de cada inicio de sesión, se le solicitará que ingrese un token OTP desde su dispositivo 2FA predeterminado." + text_2fa_disabled: "Para habilitar la autenticación de dos factores, use el botón de arriba para registrar un nuevo dispositivo 2FA. Si ya tiene un dispositivo, debe hacerlo de manera predeterminada." login: enter_backup_code_title: Ingrese el código de respaldo enter_backup_code_text: Ingrese un código de copia de seguridad válido de su lista de códigos en caso de que ya no pueda acceder a sus dispositivos 2FA registrados. - other_device: 'Use otro dispositivo o código de respaldo' + other_device: "Use otro dispositivo o código de respaldo" settings: - title: 'Configuración 2FA' - current_configuration: 'Configuración actual' - label_active_strategies: 'Estrategias activas 2FA' - label_enforced: 'Hacer cumplir 2FA' - label_remember: 'Recuerde inicio de sesión 2FA' + title: "Configuración 2FA" + current_configuration: "Configuración actual" + label_active_strategies: "Estrategias activas 2FA" + label_enforced: "Hacer cumplir 2FA" + label_remember: "Recuerde inicio de sesión 2FA" text_configuration: | Nota: Estos valores representan la configuración actual de toda la aplicación. No puede deshabilitar las configuraciones impuestas por la configuración o cambiar las estrategias activas actuales, ya que requieren un reinicio del servidor. text_configuration_guide: Para obtener más información, consulte la guía de configuración. - text_enforced: 'Active esta configuración para forzar a todos los usuarios a registrar un dispositivo 2FA en su siguiente inicio de sesión. Solo se puede desactivar cuando la configuración no lo exige.' + text_enforced: "Active esta configuración para forzar a todos los usuarios a registrar un dispositivo 2FA en su siguiente inicio de sesión. Solo se puede desactivar cuando la configuración no lo exige." text_remember: | Establezca esto en mayor que cero para permitir a los usuarios recordar su autenticación 2FA para la cantidad de días dada. No se les pedirá que lo vuelvan a ingresar durante ese período. Solo se puede configurar cuando no se aplica por configuración. - error_invalid_settings: 'Las estrategias 2FA que seleccionaste no son válidas' - failed_to_save_settings: 'Error al actualizar la configuración 2FA: %{message}' + error_invalid_settings: "Las estrategias 2FA que seleccionaste no son válidas" + failed_to_save_settings: "Error al actualizar la configuración 2FA: %{message}" admin: - self_edit_path: 'Para agregar o modificar sus propios dispositivos 2FA, vaya a %{self_edit_link}' - self_edit_link_name: 'Autenticación de dos factores en su página de cuenta' - self_edit_forbidden: 'No puede editar sus propios dispositivos 2FA en esta ruta. Vaya a Mi cuenta > Autenticación de dos factores en su lugar.' - no_devices_for_user: 'No se ha registrado ningún dispositivo 2FA para este usuario.' - all_devices_deleted: 'Todos los dispositivos 2FA de este usuario han sido eliminados' - delete_all_are_you_sure: '¿Seguro que quieres eliminar todos los dispositivos 2FA para este usuario?' - button_delete_all_devices: 'Eliminar dispositivos 2FA registrados' - button_register_mobile_phone_for_user: 'Registrar teléfono móvil' - text_2fa_enabled: 'Después de cada inicio de sesión, se le pedirá a este usuario que ingrese un token OTP desde su dispositivo 2FA predeterminado.' + self_edit_path: "Para agregar o modificar sus propios dispositivos 2FA, vaya a %{self_edit_link}" + self_edit_link_name: "Autenticación de dos factores en su página de cuenta" + self_edit_forbidden: "No puede editar sus propios dispositivos 2FA en esta ruta. Vaya a Mi cuenta > Autenticación de dos factores en su lugar." + no_devices_for_user: "No se ha registrado ningún dispositivo 2FA para este usuario." + all_devices_deleted: "Todos los dispositivos 2FA de este usuario han sido eliminados" + delete_all_are_you_sure: "¿Seguro que quieres eliminar todos los dispositivos 2FA para este usuario?" + button_delete_all_devices: "Eliminar dispositivos 2FA registrados" + button_register_mobile_phone_for_user: "Registrar teléfono móvil" + text_2fa_enabled: "Después de cada inicio de sesión, se le pedirá a este usuario que ingrese un token OTP desde su dispositivo 2FA predeterminado." text_2fa_disabled: "El usuario no configuró un dispositivo 2FA a través de su página «Mi cuenta»" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Autenticación de dos factores' - description: 'Fortalezca la seguridad de su instancia de OpenProject ofreciendo (o aplicando) reconocimiento de dos factores a todos los miembros del proyecto.' + title: "Autenticación de dos factores" + description: "Fortalezca la seguridad de su instancia de OpenProject ofreciendo (o aplicando) reconocimiento de dos factores a todos los miembros del proyecto." backup_codes: none_found: No existen códigos de respaldo para esta cuenta. singular: Código de respaldo @@ -88,37 +90,42 @@ es: Use el siguiente botón para generar un nuevo conjunto de códigos de respaldo. generate: title: Generar códigos de respaldo - keep_safe_as_password: '¡Importante! Trate estos códigos como contraseñas.' - keep_safe_warning: 'O guárdelos en su administrador de contraseñas o imprima esta página y colóquela en un lugar seguro.' - regenerate_warning: 'Advertencia: si ha creado códigos de copia de seguridad anteriormente, se invalidarán y ya no funcionarán.' + keep_safe_as_password: "¡Importante! Trate estos códigos como contraseñas." + keep_safe_warning: "O guárdelos en su administrador de contraseñas o imprima esta página y colóquela en un lugar seguro." + regenerate_warning: "Advertencia: si ha creado códigos de copia de seguridad anteriormente, se invalidarán y ya no funcionarán." devices: - add_new: 'Agregar nuevo dispositivo 2FA' - register: 'Registrar dispositivo' - confirm_default: 'Confirmar el cambio del dispositivo predeterminado' - confirm_device: 'Confirmar dispositivo' - confirm_now: 'No confirmado, haga clic aquí para activar' - cannot_delete_default: 'No se puede eliminar el dispositivo predeterminado' - make_default_are_you_sure: '¿Seguro que quieres que este dispositivo 2FA sea tu predeterminado?' - make_default_failed: 'Error al actualizar el dispositivo 2FA predeterminado.' - deletion_are_you_sure: '¿Seguro que quieres eliminar este dispositivo 2FA?' - registration_complete: 'Registro del dispositivo 2FA completo!' - registration_failed_token_invalid: 'El registro del dispositivo 2FA falló, el token no era válido.' - registration_failed_update: 'El registro del dispositivo 2FA falló, el token era válido pero el dispositivo no se pudo actualizar.' - confirm_send_failed: 'La confirmación de su dispositivo 2FA falló.' - button_complete_registration: 'Completar el registro 2FA' + add_new: "Agregar nuevo dispositivo 2FA" + register: "Registrar dispositivo" + confirm_default: "Confirmar el cambio del dispositivo predeterminado" + confirm_device: "Confirmar dispositivo" + confirm_now: "No confirmado, haga clic aquí para activar" + cannot_delete_default: "No se puede eliminar el dispositivo predeterminado" + make_default_are_you_sure: "¿Seguro que quieres que este dispositivo 2FA sea tu predeterminado?" + make_default_failed: "Error al actualizar el dispositivo 2FA predeterminado." + deletion_are_you_sure: "¿Seguro que quieres eliminar este dispositivo 2FA?" + registration_complete: "Registro del dispositivo 2FA completo!" + registration_failed_token_invalid: "El registro del dispositivo 2FA falló, el token no era válido." + registration_failed_update: "El registro del dispositivo 2FA falló, el token era válido pero el dispositivo no se pudo actualizar." + confirm_send_failed: "La confirmación de su dispositivo 2FA falló." + button_complete_registration: "Completar el registro 2FA" text_confirm_to_complete_html: "Por favor complete el registro de su dispositivo %{identifier} ingresando una contraseña de un solo uso desde su dispositivo predeterminado." text_confirm_to_change_default_html: "Por favor confirme el cambio de su dispositivo predeterminado a %{new_identifier} ingresando una contraseña única de su dispositivo predeterminado actual." - text_identifier: 'Puede darle al dispositivo un identificador personalizado usando este campo.' - failed_to_delete: 'Error al eliminar el dispositivo 2FA.' - is_default_cannot_delete: 'El dispositivo está marcado como predeterminado y no se puede eliminar debido a una política de seguridad activa. Marque otro dispositivo como predeterminado antes de eliminar.' - not_existing: 'No se ha registrado ningún dispositivo 2FA para su cuenta.' - request_2fa: Ingrese el código de %{device_name} para verificar su identidad. + text_identifier: "Puede darle al dispositivo un identificador personalizado usando este campo." + failed_to_delete: "Error al eliminar el dispositivo 2FA." + is_default_cannot_delete: "El dispositivo está marcado como predeterminado y no se puede eliminar debido a una política de seguridad activa. Marque otro dispositivo como predeterminado antes de eliminar." + not_existing: "No se ha registrado ningún dispositivo 2FA para su cuenta." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use su autenticador basado en la aplicación' - provisioning_uri: 'URI de aprovisionamiento' - secret_key: 'Llave secreta' - time_based: 'Basado en tiempo' - account: 'Nombre de la cuenta / Emisor' + title: "Use su autenticador basado en la aplicación" + provisioning_uri: "URI de aprovisionamiento" + secret_key: "Llave secreta" + time_based: "Basado en tiempo" + account: "Nombre de la cuenta / Emisor" setup: | Para configurar la autenticación de dos factores con Google Authenticator, descargue la aplicación de la App Store de Apple o de Google Play Store. Después de abrir la aplicación, puede escanear el siguiente código QR para registrar el dispositivo. @@ -130,31 +137,32 @@ es: Registre un autenticador de aplicaciones para usar con OpenProject usando el estándar de autenticación de contraseñas de un solo uso basado en el tiempo. Ejemplos comunes son Google Authenticator o Authy. sms: - title: 'Utilice su teléfono móvil' - redacted_identifier: 'Dispositivo móvil (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, le enviamos un código de autenticación a través de %{delivery_channel}' + title: "Utilice su teléfono móvil" + redacted_identifier: "Dispositivo móvil (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, le enviamos un código de autenticación a través de %{delivery_channel}" description: | Registre su número de teléfono móvil para la entrega de contraseñas de OpenProject por única vez. sns: - delivery_failed: 'La entrega de SNS falló:' + delivery_failed: "La entrega de SNS falló:" message_bird: - sms_delivery_failed: 'Error al entregar el mensaje SMS de MessageBird.' - voice_delivery_failed: 'Error de llamada de voz de MessageBird.' + sms_delivery_failed: "Error al entregar el mensaje SMS de MessageBird." + voice_delivery_failed: "Error de llamada de voz de MessageBird." strategies: - totp: 'Aplicación de autenticador' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Aplicación de autenticador" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Se ha enviado una contraseña de un solo uso a su teléfono celular." - label_two_factor_authentication: 'Autenticación de dos factores' + label_two_factor_authentication: "Autenticación de dos factores" forced_registration: - required_to_add_device: 'Una política de seguridad activa requiere que habilite la autenticación de dos factores. Utilice el siguiente formulario para registrar un dispositivo.' + required_to_add_device: "Una política de seguridad activa requiere que habilite la autenticación de dos factores. Utilice el siguiente formulario para registrar un dispositivo." remember: active_session_notice: > Su cuenta tiene una cookie de recuerdo activa válida hasta %{expires_on}. Esta cookie le permite iniciar sesión sin un segundo factor en su cuenta hasta ese momento. other_active_session_notice: Su cuenta tiene una cookie para recordar activa en otra sesión. - label: 'Recuerda' - clear_cookie: 'Haga clic aquí para quitar todas las sesiones de 2FA recordadas.' - cookie_removed: 'Se eliminaron todas las sesiones de 2FA recordadas.' + label: "Recuerda" + clear_cookie: "Haga clic aquí para quitar todas las sesiones de 2FA recordadas." + cookie_removed: "Se eliminaron todas las sesiones de 2FA recordadas." dont_ask_again: "Crea una cookie para recordar la autenticación de 2FA en este cliente durante %{days} días." field_phone: "Teléfono móvil" field_otp: "Contraseña de un solo uso" @@ -164,10 +172,10 @@ es: notice_account_otp_send_failed: "No se pudo enviar su contraseña de un solo uso." notice_account_has_no_phone: "No hay un número de teléfono celular asociado a su cuenta." label_expiration_hint: "%{date} o al cerrar la sesión" - label_actions: 'Comportamiento' - label_confirmed: 'Confirmado' - button_continue: 'Continuar' - button_make_default: 'Marcar como predeterminado' + label_actions: "Comportamiento" + label_confirmed: "Confirmado" + button_continue: "Continuar" + button_make_default: "Marcar como predeterminado" label_unverified_phone: "Teléfono celular aún no verificado" notice_phone_number_format: "Ingrese el número en el siguiente formato: + XX XXXXXXXX." text_otp_not_receive: "Otros métodos de verificación" diff --git a/modules/two_factor_authentication/config/locales/crowdin/et.yml b/modules/two_factor_authentication/config/locales/crowdin/et.yml index 147f76226f2d..c1e6a937eebe 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/et.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/et.yml @@ -7,14 +7,14 @@ et: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifikaator' - default: 'Use as default' + identifier: "Identifikaator" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ et: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Parool" @@ -37,47 +38,48 @@ et: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ et: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ et: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ et: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Jätka' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Jätka" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/eu.yml b/modules/two_factor_authentication/config/locales/crowdin/eu.yml index 6013a5863ddc..a82f36deffec 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/eu.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/eu.yml @@ -7,14 +7,14 @@ eu: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ eu: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ eu: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ eu: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ eu: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ eu: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/fa.yml b/modules/two_factor_authentication/config/locales/crowdin/fa.yml index eba5ce5a9692..48398667f3f0 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fa.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fa.yml @@ -7,14 +7,14 @@ fa: activerecord: attributes: two_factor_authentication/device: - identifier: 'شناسه' - default: 'Use as default' + identifier: "شناسه" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ fa: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "کلمه عبور" @@ -37,47 +38,48 @@ fa: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ fa: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ fa: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ fa: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'اقدامات' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "اقدامات" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/fi.yml b/modules/two_factor_authentication/config/locales/crowdin/fi.yml index 3bf0dd6c9349..44e921b9f088 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fi.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fi.yml @@ -7,14 +7,14 @@ fi: activerecord: attributes: two_factor_authentication/device: - identifier: 'Tunnistaa' - default: 'Käytä oletuksena' + identifier: "Tunnistaa" + default: "Käytä oletuksena" two_factor_authentication/device/sms: phone_number: "Puhelinnumero" errors: models: two_factor_authentication/device: - default_already_exists: 'on jo asetettu toiselle OTP-laitteelle.' + default_already_exists: "on jo asetettu toiselle OTP-laitteelle." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ fi: two_factor_authentication/device: "Tunnistuslaite" two_factor_authentication/device/sms: "Matkapuhelin" two_factor_authentication/device/totp: "Kaksivaiheisen kirjautumisen salasanasovellus" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA-toimitus on poistettu käytöstä." error_no_device: "Tälle käyttäjälle ei ole rekisteröity tunnistuslaitetta, vaikka se vaaditaan." error_no_matching_strategy: "Tälle käyttäjälle ei ole käytettävissä vastaavaa 2FA-strategiaa. Ota yhteyttä hallintoasihteisiisi." - error_is_enforced_not_active: 'Konfigurointivirhe: Kaksivaiheinen tunnistautuminen on pakotettu, mutta aktiivisia strategioita ei ole.' - error_invalid_backup_code: 'Virheellinen palautuskoodi' + error_is_enforced_not_active: "Konfigurointivirhe: Kaksivaiheinen tunnistautuminen on pakotettu, mutta aktiivisia strategioita ei ole." + error_invalid_backup_code: "Virheellinen palautuskoodi" channel_unavailable: "Toimituskanava %{channel} ei ole käytettävissä." no_valid_phone_number: "Mitään voimassa olevaa puhelinnumeroa ei ole." label_pwd_confirmation: "Salasana" @@ -37,46 +38,47 @@ fi: label_default_device: "Oletus tunnistuslaite" label_device: "2FA-laite" label_devices: "2FA laitteet" - label_one_time_password: 'Kertakäyttösalasana' - label_2fa_enabled: 'Kaksivaiheinen tunnistautuminen on käytössä' - label_2fa_disabled: 'Kaksivaiheinen tunnistautuminen ei ole käytössä' + label_one_time_password: "Kertakäyttösalasana" + label_2fa_enabled: "Kaksivaiheinen tunnistautuminen on käytössä" + label_2fa_disabled: "Kaksivaiheinen tunnistautuminen ei ole käytössä" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Anna salasanasi laitteestasi.' - text_2fa_enabled: 'Sisäänkirjautumisen yhteydessä sinun on annettava koodi oletuksesi määritellystä tunnistuslaitteestasi.' - text_2fa_disabled: 'Voit ottaa kaksivaiheisen tunnistautumisen käyttöön käyttämällä yllä olevaa painiketta rekisteröidäksesi uuden tunnistuslaitteen. Jos sinulla on jo laite, sinun on määriteltävä se oletukseksi.' + text_enter_2fa: "Anna salasanasi laitteestasi." + text_2fa_enabled: "Sisäänkirjautumisen yhteydessä sinun on annettava koodi oletuksesi määritellystä tunnistuslaitteestasi." + text_2fa_disabled: "Voit ottaa kaksivaiheisen tunnistautumisen käyttöön käyttämällä yllä olevaa painiketta rekisteröidäksesi uuden tunnistuslaitteen. Jos sinulla on jo laite, sinun on määriteltävä se oletukseksi." login: enter_backup_code_title: Syötä palautuskoodi enter_backup_code_text: Syötä voimassa oleva vahvistuskoodi koodiluettelosta, jos sinulla ei ole enää pääsyä rekisteröityihin 2FA laitteisiin. - other_device: 'Käytä toista laitetta tai palautuskoodia' + other_device: "Käytä toista laitetta tai palautuskoodia" settings: - title: 'Kaksivaiheisen tunnistautumisen asetukset' - current_configuration: 'Current configuration' - label_active_strategies: 'Aktiiviset kaksivaiheisen tunnistautumisen strategiat' - label_enforced: 'Vaadi kaksivaiheinen kirjautuminen' - label_remember: 'Muista kaksivaiheinen tunnistautuminen' + title: "Kaksivaiheisen tunnistautumisen asetukset" + current_configuration: "Current configuration" + label_active_strategies: "Aktiiviset kaksivaiheisen tunnistautumisen strategiat" + label_enforced: "Vaadi kaksivaiheinen kirjautuminen" + label_remember: "Muista kaksivaiheinen tunnistautuminen" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Aktivoimalla tämän kaikkien käyttäjien tulee rekisteröidä tunnistuslaite seuraavan kirjautumisen yhteydessä. Asetus voidaan poistaa päältä vain jos sitä ei ole pakotettu konfiguraatiossa.' + text_enforced: "Aktivoimalla tämän kaikkien käyttäjien tulee rekisteröidä tunnistuslaite seuraavan kirjautumisen yhteydessä. Asetus voidaan poistaa päältä vain jos sitä ei ole pakotettu konfiguraatiossa." text_remember: | Aseta tämä suuremmaksi kuin nolla mikäli haluat sallia käyttäjien kaksivaiheisen tunnistautumisen muistamisen annettujen päivien verran. Kaksivaiheista tunnistautumista ei vaadita kyseisenä aikana. Voidaan asettaa vain jos tätä ei ole pakotettu konfiguraatiossa. - error_invalid_settings: 'Valitsemasi kaksivaiheisen tunnistautumisen strategiat eivät kelpää' - failed_to_save_settings: 'Kaksivaiheisen tunnistautumisen asetusten päivitys epäonnistui: %{message}' + error_invalid_settings: "Valitsemasi kaksivaiheisen tunnistautumisen strategiat eivät kelpää" + failed_to_save_settings: "Kaksivaiheisen tunnistautumisen asetusten päivitys epäonnistui: %{message}" admin: - self_edit_path: 'Os haluat lisätä tai muokata omia 2FA-laitteitasi, siirry osoitteeseen %{self_edit_link}' - self_edit_link_name: 'Kaksivaiheinen tunnistautuminen tiliasetuksissa' - self_edit_forbidden: 'Et voi muokata omia 2FA-laitteitasi tällä polulla. Siirry Tiliasetukset> Kaksi tekijän todennusta sijaan.' - no_devices_for_user: 'Tätä käyttäjää varten ei ole rekisteröity tunnistuslaitetta.' - all_devices_deleted: 'Tämän käyttäjän kaikki 2FA-laitteet on poistettu' - delete_all_are_you_sure: 'Haluatko varmasti poistaa kaikki tämän käyttäjän 2FA-laitteet?' - button_delete_all_devices: 'Poista rekisteröidyt 2FA-laitteet' - button_register_mobile_phone_for_user: 'Rekisteröi matkapuhelin' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Os haluat lisätä tai muokata omia 2FA-laitteitasi, siirry osoitteeseen %{self_edit_link}" + self_edit_link_name: "Kaksivaiheinen tunnistautuminen tiliasetuksissa" + self_edit_forbidden: "Et voi muokata omia 2FA-laitteitasi tällä polulla. Siirry Tiliasetukset> Kaksi tekijän todennusta sijaan." + no_devices_for_user: "Tätä käyttäjää varten ei ole rekisteröity tunnistuslaitetta." + all_devices_deleted: "Tämän käyttäjän kaikki 2FA-laitteet on poistettu" + delete_all_are_you_sure: "Haluatko varmasti poistaa kaikki tämän käyttäjän 2FA-laitteet?" + button_delete_all_devices: "Poista rekisteröidyt 2FA-laitteet" + button_register_mobile_phone_for_user: "Rekisteröi matkapuhelin" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Kaksivaiheinen tunnistautuminen' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Kaksivaiheinen tunnistautuminen" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: Tälle tilille ei ole palautuskoodeja. singular: Palautuskoodi @@ -86,37 +88,42 @@ fi: Jos et pysty käyttämään tunnistuslaitettasi, voit käyttää palautuskoodia. Luo palautuskoodit seuraavalla painikkeella. generate: title: Luo palautuskoodit - keep_safe_as_password: 'Tärkeä! Käsittele näitä koodeja salasanoina.' - keep_safe_warning: 'Joko tallenna ne salasanahallintaasi tai tulosta sivu ja säilytä se turvallisessa paikassa.' - regenerate_warning: 'Varoitus: Jos olet luonut varmuuskopiokoodit aiemmin, ne mitätöidään ja eivät enää toimi.' + keep_safe_as_password: "Tärkeä! Käsittele näitä koodeja salasanoina." + keep_safe_warning: "Joko tallenna ne salasanahallintaasi tai tulosta sivu ja säilytä se turvallisessa paikassa." + regenerate_warning: "Varoitus: Jos olet luonut varmuuskopiokoodit aiemmin, ne mitätöidään ja eivät enää toimi." devices: - add_new: 'Lisää tunnistuslaite' - register: 'Rekisteröi laite' - confirm_default: 'Vahvista oletuslaitteen muuttaminen' - confirm_device: 'Vahvista laite' - confirm_now: 'Ei vahvistanut, aktivoi tästä napsauttamalla tätä' - cannot_delete_default: 'Et voi poistaa oletuslaitetta' - make_default_are_you_sure: 'Haluatko varmasti tehdä tämän 2FA-laitteen oletusarvoksi?' - make_default_failed: 'Oletusarvoisen 2FA-laitteen päivitys epäonnistui.' - deletion_are_you_sure: 'Haluatko varmasti poistaa tämän 2FA laitteen?' - registration_complete: '2FA laitteen rekisteröinti on valmis!' - registration_failed_token_invalid: '2FA laitteen rekisteröinti epäonnistui, merkki oli virheellinen.' - registration_failed_update: 'Tunnistuslaitteen rekisteröinti epäonnistui, token oli voimassa mutta laitetta ei voitu päivittää.' - confirm_send_failed: 'Tunnistuslaitteen vahvistus epäonnistui.' - button_complete_registration: 'Viimeistele tunnistuslaitteen rekisteröinti' + add_new: "Lisää tunnistuslaite" + register: "Rekisteröi laite" + confirm_default: "Vahvista oletuslaitteen muuttaminen" + confirm_device: "Vahvista laite" + confirm_now: "Ei vahvistanut, aktivoi tästä napsauttamalla tätä" + cannot_delete_default: "Et voi poistaa oletuslaitetta" + make_default_are_you_sure: "Haluatko varmasti tehdä tämän 2FA-laitteen oletusarvoksi?" + make_default_failed: "Oletusarvoisen 2FA-laitteen päivitys epäonnistui." + deletion_are_you_sure: "Haluatko varmasti poistaa tämän 2FA laitteen?" + registration_complete: "2FA laitteen rekisteröinti on valmis!" + registration_failed_token_invalid: "2FA laitteen rekisteröinti epäonnistui, merkki oli virheellinen." + registration_failed_update: "Tunnistuslaitteen rekisteröinti epäonnistui, token oli voimassa mutta laitetta ei voitu päivittää." + confirm_send_failed: "Tunnistuslaitteen vahvistus epäonnistui." + button_complete_registration: "Viimeistele tunnistuslaitteen rekisteröinti" text_confirm_to_complete_html: "Vahvista laitteen %{identifier} rekisteröinti antamalla kertakäyttösalasana." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'Voit antaa laitteelle mukautetun tunnisteen.' - failed_to_delete: 'Tunnistuslaitteen poistaminen epäonnistui' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'Käyttäjätilillesi ei ole rekisteröity tunnistuslaitetta.' - request_2fa: Anna kertakäyttösalasana laitteesta %{device_name}. + text_identifier: "Voit antaa laitteelle mukautetun tunnisteen." + failed_to_delete: "Tunnistuslaitteen poistaminen epäonnistui" + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "Käyttäjätilillesi ei ole rekisteröity tunnistuslaitetta." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Käytä sovellusta kirjautumisen varmennukseen' - provisioning_uri: 'Sovelluksen URI' - secret_key: 'Salainen avain' - time_based: 'Aikaperusteinen' - account: 'Tilin nimi' + title: "Käytä sovellusta kirjautumisen varmennukseen" + provisioning_uri: "Sovelluksen URI" + secret_key: "Salainen avain" + time_based: "Aikaperusteinen" + account: "Tilin nimi" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -127,31 +134,32 @@ fi: description: | Rekisteröi varmennussovellus kaksivaiheisen kirjautumisen todennusvälineeksi kertakäyttösalasanoja varten. Yleisin sovellus tähän tarkoitukseen on esimerkiksi Google Authenticator, jonka voit ladata puhelimeesi sovelluskaupasta. sms: - title: 'Käytä matkapuhelinta' - redacted_identifier: 'Matkapuhelin (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, lähetimme sinulle tunnistautumiskoodin %{delivery_channel} kautta' + title: "Käytä matkapuhelinta" + redacted_identifier: "Matkapuhelin (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, lähetimme sinulle tunnistautumiskoodin %{delivery_channel} kautta" description: | Rekisteröi matkapuhelimesi kertakäyttösalasanojen toimitusta varten. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Kaksivaiheisen kirjautumisen salasanasovellus' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Kaksivaiheisen kirjautumisen salasanasovellus" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Kaksivaiheinen tunnistautuminen' + label_two_factor_authentication: "Kaksivaiheinen tunnistautuminen" forced_registration: - required_to_add_device: 'Tietoturva-asetukset vaativat kaksivaiheisen todennuksen käyttöönoton. Ole hyvä ja rekisteröi laitteesi.' + required_to_add_device: "Tietoturva-asetukset vaativat kaksivaiheisen todennuksen käyttöönoton. Ole hyvä ja rekisteröi laitteesi." remember: active_session_notice: > Tilisi kaksivaiheinen kirjautuminen on muistissa %{expires_on} asti. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Muista' - clear_cookie: 'Poista kaikki muistissa olevat kaksivaiheiset tunnistautumiset.' - cookie_removed: 'Kaikki muistissa olevat kaksivaiheiset todennusistunnot poistettu.' + label: "Muista" + clear_cookie: "Poista kaikki muistissa olevat kaksivaiheiset tunnistautumiset." + cookie_removed: "Kaikki muistissa olevat kaksivaiheiset todennusistunnot poistettu." dont_ask_again: "Muista tunnistautuminen tällä laitteella seuraavat %{days} päivää." field_phone: "Matkapuhelin" field_otp: "Kertakäyttösalasana" @@ -161,10 +169,10 @@ fi: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Toiminnot' - label_confirmed: 'Vahvistettu' - button_continue: 'Jatka' - button_make_default: 'Merkitse oletusarvo' + label_actions: "Toiminnot" + label_confirmed: "Vahvistettu" + button_continue: "Jatka" + button_make_default: "Merkitse oletusarvo" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Anna numero esim. +358 40 1234567." text_otp_not_receive: "Muut tunnistustavat" diff --git a/modules/two_factor_authentication/config/locales/crowdin/fil.yml b/modules/two_factor_authentication/config/locales/crowdin/fil.yml index 82e55e0b5bac..968e761ed7a3 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fil.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fil.yml @@ -7,14 +7,14 @@ fil: activerecord: attributes: two_factor_authentication/device: - identifier: 'Ang Pagkakakilanlan' - default: 'Gamitin bilang default' + identifier: "Ang Pagkakakilanlan" + default: "Gamitin bilang default" two_factor_authentication/device/sms: phone_number: "Ang Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'ay tuluyang naka-set para sa panibagong OTP na aparato.' + default_already_exists: "ay tuluyang naka-set para sa panibagong OTP na aparato." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ fil: two_factor_authentication/device: "Ang 2FA na aparato" two_factor_authentication/device/sms: "Ang Mobile phone" two_factor_authentication/device/totp: "Ang Aplikasyon sa Authenticator" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Ang 2FA ay inihatid ay hindi gumagana." error_no_device: "Walang nakarehistro na 2FA sa natagpuan na aparato para sa gumagamit na ito, kahit na kinakailangan para sa pagkakataon na ito." error_no_matching_strategy: "Hindi nagtugma ang 2FA na diskarte sa magamait para sa gumagamit na ito. Pakiusap na kontakin ang iyong administrador." - error_is_enforced_not_active: 'Ang Kumpigurasyon ay mali: Ang Dalawang-Dahilan ay pinatupad, ngunit walang aktibo na mga diskarte ang umiiral.' - error_invalid_backup_code: 'Imbalido ang 2FA backup code' + error_is_enforced_not_active: "Ang Kumpigurasyon ay mali: Ang Dalawang-Dahilan ay pinatupad, ngunit walang aktibo na mga diskarte ang umiiral." + error_invalid_backup_code: "Imbalido ang 2FA backup code" channel_unavailable: "Ang tagapaghatid na channel %{channel} ay hindi magamit." no_valid_phone_number: "Walang balido na numero sa telepono ang umiiral." label_pwd_confirmation: "Ang Password" @@ -37,47 +38,48 @@ fil: label_default_device: "I-Default ang 2FA na aparato" label_device: "Ang 2FA na aparato" label_devices: "Ang 2FA na mga aparato" - label_one_time_password: 'Ang isang beses na password' - label_2fa_enabled: 'Ang Dalawang-dahilan ng aktibo na pagpapatunay' - label_2fa_disabled: 'Ang Dalawang-dahilan ng hindi aktibo na pagpapatunay' + label_one_time_password: "Ang isang beses na password" + label_2fa_enabled: "Ang Dalawang-dahilan ng aktibo na pagpapatunay" + label_2fa_disabled: "Ang Dalawang-dahilan ng hindi aktibo na pagpapatunay" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Pakiusap na ipasok ng isang beses ang pasword mula sa iyong aparato.' - text_2fa_enabled: 'Sa bawat pag-login, gagawin mo ang kahilingan na ipasok ang OTP token mula sa na-default na 2FA na aparato.' - text_2fa_disabled: 'Upang mapagana ang Dalawang-dahilan sa pagpapatunay, gamitin ang boton par monga magparehistro sa bagong 2FA na aparato, kung ikaw ay may handa ng aparato. kailangan mong gawin ito na-default.' + text_enter_2fa: "Pakiusap na ipasok ng isang beses ang pasword mula sa iyong aparato." + text_2fa_enabled: "Sa bawat pag-login, gagawin mo ang kahilingan na ipasok ang OTP token mula sa na-default na 2FA na aparato." + text_2fa_disabled: "Upang mapagana ang Dalawang-dahilan sa pagpapatunay, gamitin ang boton par monga magparehistro sa bagong 2FA na aparato, kung ikaw ay may handa ng aparato. kailangan mong gawin ito na-default." login: enter_backup_code_title: Ipasok ang backup code enter_backup_code_text: Pakiusap magpasok ng balido na backup code mula sa iyong listahan ng mga code kung sakali na hindi na ma-access ang iyong nirehistro na 2FA na mga aparato. - other_device: 'Gumamit ng ibang aparato o backup code' + other_device: "Gumamit ng ibang aparato o backup code" settings: - title: 'Ang mga 2FA setting' - current_configuration: 'Ang kasalukuyang kompigurasyon' - label_active_strategies: 'Ang aktibo na 2Fa na mga deskarte' - label_enforced: 'Ang Ipatupad ang 2FA' - label_remember: 'Alalahanin ang pag-login sa 2FA' + title: "Ang mga 2FA setting" + current_configuration: "Ang kasalukuyang kompigurasyon" + label_active_strategies: "Ang aktibo na 2Fa na mga deskarte" + label_enforced: "Ang Ipatupad ang 2FA" + label_remember: "Alalahanin ang pag-login sa 2FA" text_configuration: | Paalala: Ang mga halaga na ito ay sumasagisag sa kasalukuyang malawak na aplikasyon sa kumpigurasyon. Hindi mo maaaring i-disable ang mga setting na pinatupad ng kumpigurasyon o baguhin ang kasalukuyang mga aktibo na deskarte, dahil sa sila ay nangangailangan ng muling paguumpisa ng server. text_configuration_guide: Para sa mas maraming impormasyon, suriin ang gabay sa kumpigurasyon. - text_enforced: 'Paganahin ang setting na ito para ma puwersa ang lahat ng mga gumagamit upang mag rehisrto sa 2FA na aparato sa kanilang susunod na pag-login, Maaari lamang na hindi mapagana habang hindi ma puwersa gamit ang kumpigurasyon.' + text_enforced: "Paganahin ang setting na ito para ma puwersa ang lahat ng mga gumagamit upang mag rehisrto sa 2FA na aparato sa kanilang susunod na pag-login, Maaari lamang na hindi mapagana habang hindi ma puwersa gamit ang kumpigurasyon." text_remember: | Itakda ito sa mas higit pa sa sero upang pagayagan ang mga gumagamit na maalala ang pagpapatunay sa kanilang 2FA para sa ibinigay na numero sa mga araw. Sila ay hindi hihiling na muling ipasok habang ang sa mga panahon na ito. Maaari lamang kung hindi na magpatupad gamit ang kumpigurasyon. - error_invalid_settings: 'Ang 2FA na mga deskarte na iyong napili ay walang bisa' - failed_to_save_settings: 'Bigo na ma-update ang 2FA na mga setting: %{message}' + error_invalid_settings: "Ang 2FA na mga deskarte na iyong napili ay walang bisa" + failed_to_save_settings: "Bigo na ma-update ang 2FA na mga setting: %{message}" admin: - self_edit_path: 'Para magdagdag o bawasan ang iyong sariing 2FA na mga aparato, pakiusap na mag punta sa %{self_edit_link}' - self_edit_link_name: 'Ang Dalawang-dahilan ng pagpapatunay sa iyong pahina ng account' - self_edit_forbidden: 'Hindi mo pwede na baguhin ang iyong sariling 2FA sa landas na ito. Magpunta sa Aking Account > Dalawang-dahilan ng pagpapatunay sa halip.' - no_devices_for_user: 'Walang 2FA na aparato ang na rehistro para sa gumagamit na ito.' - all_devices_deleted: 'Lahat ng 2Fa na mga aparato sa gumagamit na ito ay burado' - delete_all_are_you_sure: 'Sigurado kaba na nais mong burahin ang lahat ng 2FA na mga aparato para sa gumagamit na ito?' - button_delete_all_devices: 'Burahin ang nakarehistro na 2FA na mga aparato' - button_register_mobile_phone_for_user: 'Ang mobile na telepono ay irehistro' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Para magdagdag o bawasan ang iyong sariing 2FA na mga aparato, pakiusap na mag punta sa %{self_edit_link}" + self_edit_link_name: "Ang Dalawang-dahilan ng pagpapatunay sa iyong pahina ng account" + self_edit_forbidden: "Hindi mo pwede na baguhin ang iyong sariling 2FA sa landas na ito. Magpunta sa Aking Account > Dalawang-dahilan ng pagpapatunay sa halip." + no_devices_for_user: "Walang 2FA na aparato ang na rehistro para sa gumagamit na ito." + all_devices_deleted: "Lahat ng 2Fa na mga aparato sa gumagamit na ito ay burado" + delete_all_are_you_sure: "Sigurado kaba na nais mong burahin ang lahat ng 2FA na mga aparato para sa gumagamit na ito?" + button_delete_all_devices: "Burahin ang nakarehistro na 2FA na mga aparato" + button_register_mobile_phone_for_user: "Ang mobile na telepono ay irehistro" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Ang dalwang-Dahilan sa authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Ang dalwang-Dahilan sa authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: Walang mga backup na umiiral para sa account na ito. singular: Ang Backup code @@ -88,37 +90,42 @@ fil: Gamitin ang mga sumusunod na buton uang mabuo ang bagong set ng mga backup code. generate: title: Ang Bumuo ng mga backup code - keep_safe_as_password: 'Ang Importante! Ang pakitunguhan ang mga code bilang mga password.' - keep_safe_warning: 'Alin man sa na-save nila na password sa iyong tagapamahala, o i-print ito sa pahina at ilagay sa ligtas na lugar.' - regenerate_warning: 'Babala: Kung ikaw ay lumikha na ng mga code dati, sila ay mawawalan ng bisa at kahit kailan hindi na gagana.' + keep_safe_as_password: "Ang Importante! Ang pakitunguhan ang mga code bilang mga password." + keep_safe_warning: "Alin man sa na-save nila na password sa iyong tagapamahala, o i-print ito sa pahina at ilagay sa ligtas na lugar." + regenerate_warning: "Babala: Kung ikaw ay lumikha na ng mga code dati, sila ay mawawalan ng bisa at kahit kailan hindi na gagana." devices: - add_new: 'Magdagdag ng bagong 2FA na aparato' - register: 'I-Rehistro ang aparato' - confirm_default: 'Kumpirmahin ang pagbabago sa default na aparato' - confirm_device: 'Kumpirmahin ang aparato' - confirm_now: 'Hindi makumpirma, I-click dito upang buhayin' - cannot_delete_default: 'Hindi mabura na default sa aparato' - make_default_are_you_sure: 'Sigurado kaba na nais mong gawin ang 2FA na aparato sa iyong default?' - make_default_failed: 'Bigo na ma-update ang default 2FA sa aparato.' - deletion_are_you_sure: 'Sigurado ka ba na nais mong burahin ang 2FA na aparato?' - registration_complete: 'Ang 2FA na aparato ay kumpleto na nairehistro!' - registration_failed_token_invalid: 'Ang 2FA rehistro ay bigo, ang token ay imbalido.' - registration_failed_update: 'Ang 2FA na aparato ay bigo sa pag rehistro, ang token ay balido ngunit ang aparato ay hindi ma-update.' - confirm_send_failed: 'Ang kumpirmasyon sa iyong 2FA na aparado ay bigo.' - button_complete_registration: 'Kumpleto ang 2FA na magparehistro' + add_new: "Magdagdag ng bagong 2FA na aparato" + register: "I-Rehistro ang aparato" + confirm_default: "Kumpirmahin ang pagbabago sa default na aparato" + confirm_device: "Kumpirmahin ang aparato" + confirm_now: "Hindi makumpirma, I-click dito upang buhayin" + cannot_delete_default: "Hindi mabura na default sa aparato" + make_default_are_you_sure: "Sigurado kaba na nais mong gawin ang 2FA na aparato sa iyong default?" + make_default_failed: "Bigo na ma-update ang default 2FA sa aparato." + deletion_are_you_sure: "Sigurado ka ba na nais mong burahin ang 2FA na aparato?" + registration_complete: "Ang 2FA na aparato ay kumpleto na nairehistro!" + registration_failed_token_invalid: "Ang 2FA rehistro ay bigo, ang token ay imbalido." + registration_failed_update: "Ang 2FA na aparato ay bigo sa pag rehistro, ang token ay balido ngunit ang aparato ay hindi ma-update." + confirm_send_failed: "Ang kumpirmasyon sa iyong 2FA na aparado ay bigo." + button_complete_registration: "Kumpleto ang 2FA na magparehistro" text_confirm_to_complete_html: "Pakiusap na kumpletuhin ang pagrehistro sa iyong aparato %{identifier} sa pamamagitan ng pagpasok ng isang beses na password mula sa iyong default na aparato." text_confirm_to_change_default_html: "Pakiusap na kumpirmahin ang pagbabago sa iyong default na aparato para sa %{new_identifier} sa pamamagitan ng pagpasok ng isang beses na password mula sa iyong kasalukuyang default na aparato." - text_identifier: 'Maaari kang magbigay ng aparato sa pasadya na identifier gamit ang field na ito.' - failed_to_delete: 'Bigo na mabura ang 2FA na aparato.' - is_default_cannot_delete: 'Ang aparato ay namarkahan bilang default at hindi maari na burahin dahil sa aktibo nasiguridad na patakaran, Markahan ng ibang aparato bilang default bago burahin.' - not_existing: 'Walang 2FA na aparato ang narehistro para sa iyong account.' - request_2fa: Pakiusap ipasok ang code mula sa iyong %{device_name} upang matiyak ang iyong pagkakakilanlan. + text_identifier: "Maaari kang magbigay ng aparato sa pasadya na identifier gamit ang field na ito." + failed_to_delete: "Bigo na mabura ang 2FA na aparato." + is_default_cannot_delete: "Ang aparato ay namarkahan bilang default at hindi maari na burahin dahil sa aktibo nasiguridad na patakaran, Markahan ng ibang aparato bilang default bago burahin." + not_existing: "Walang 2FA na aparato ang narehistro para sa iyong account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Gamitin ang iyong app-based authenticator' - provisioning_uri: 'Ang Provisioning sa URI' - secret_key: 'Ang Sekreto na Susi' - time_based: 'Nakabatay sa Oras' - account: 'Ang Pangalan sa Account / Tagapag-isyu' + title: "Gamitin ang iyong app-based authenticator" + provisioning_uri: "Ang Provisioning sa URI" + secret_key: "Ang Sekreto na Susi" + time_based: "Nakabatay sa Oras" + account: "Ang Pangalan sa Account / Tagapag-isyu" setup: | Para sa setting up ng dalwang-dahilan ng pagpapatunay kasama ang Google Authenticator, I-doownload ang aplikasyon mula sa Apple App na tindahan o sa Google Play na Tindahan. Pagkatapos na buksan ang app, maaari mong i-scan ang sumusunod na QR code para mag-rehistro sa aparato. @@ -130,31 +137,32 @@ fil: Irehistro ang aplikasyon sa authenticator para magamit kasama ang OpenProject gamit ang basehan sa oras ang pamantayan sa password authentication. Mga karaniwan na halimbawa sa Google Authenticator o Authy. sms: - title: 'Gamit ang iyong mobile na telepono' - redacted_identifier: 'Ang Mobile na aparato (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, kami ay nagpadala saiyo ng authentication code sa pamamagitan ng %{delivery_channel}' + title: "Gamit ang iyong mobile na telepono" + redacted_identifier: "Ang Mobile na aparato (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, kami ay nagpadala saiyo ng authentication code sa pamamagitan ng %{delivery_channel}" description: | Irehistro ang iyong numero sa mobile na telepono para sa paghahatid ng isang beses na mga password. sns: - delivery_failed: 'Ang paghahatid ng SNS ay bigo:' + delivery_failed: "Ang paghahatid ng SNS ay bigo:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Ang Aplikasyon sa Authenticator' - sns: 'Ang SNS sa Amazon' - resdt: 'Ang SMS na Pahinga sa API' + totp: "Ang Aplikasyon sa Authenticator" + sns: "Ang SNS sa Amazon" + resdt: "Ang SMS na Pahinga sa API" + webauthn: "WebAuthn" mobile_transmit_notification: "Ang isang-beses na password ay naipadala sa iyong cell phone." - label_two_factor_authentication: 'Ang dalwang-Dahilan sa authentication' + label_two_factor_authentication: "Ang dalwang-Dahilan sa authentication" forced_registration: - required_to_add_device: 'Ang aktibong siguridad sa patakaran ang mga kinakailngan ka upang mapagana ang dalawang-dahilan sa authentication.. Pakiusap na gamitin ang sumusunod na porma para magparehistro sa iyong aparato.' + required_to_add_device: "Ang aktibong siguridad sa patakaran ang mga kinakailngan ka upang mapagana ang dalawang-dahilan sa authentication.. Pakiusap na gamitin ang sumusunod na porma para magparehistro sa iyong aparato." remember: active_session_notice: > Ang iyong account ay aktibo sa naaalala na coockie na balido hanggang sa %{expires_on}. Ang coockie na iyo ay pinapayagan ka na mag-login ng walang pangalawa na dahilan sa iyong account hanggang sa mga oras na iyan. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Tandaan' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Tandaan" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Lumikha ng coockie upang maalala ang 2FA authentication para sa kleyente na ito %{days} mga araw." field_phone: "Ang Cell phone" field_otp: "Ang Isang-beses na password" @@ -164,10 +172,10 @@ fil: notice_account_otp_send_failed: "Ang iyong isang beses na password ay hindi maipadala." notice_account_has_no_phone: "Walang numero sa cellphone ang nauugnay sa iyong account." label_expiration_hint: "%{date} o mag-logout sa" - label_actions: 'Mga Aksyon' - label_confirmed: 'Kumpirmahin' - button_continue: 'Ipagpatuloy' - button_make_default: 'Markahan bilang default' + label_actions: "Mga Aksyon" + label_confirmed: "Kumpirmahin" + button_continue: "Ipagpatuloy" + button_make_default: "Markahan bilang default" label_unverified_phone: "Hindi ma-verify ang Cell Phone" notice_phone_number_format: "Pakiusap na ipasok ang numero sa sumusunod na pormat: +XX XXXXXXXX." text_otp_not_receive: "Iba pang mga pamamaraan sa pagpapatunay" diff --git a/modules/two_factor_authentication/config/locales/crowdin/fr.yml b/modules/two_factor_authentication/config/locales/crowdin/fr.yml index 876e325dd5d7..f436d70a2982 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fr.yml @@ -7,14 +7,14 @@ fr: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifiant' - default: 'Utiliser par défaut' + identifier: "Identifiant" + default: "Utiliser par défaut" two_factor_authentication/device/sms: phone_number: "Numéro de téléphone" errors: models: two_factor_authentication/device: - default_already_exists: 'est déjà défini pour un autre appareil OTP.' + default_already_exists: "est déjà défini pour un autre appareil OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ fr: two_factor_authentication/device: "Appareil de 2FA" two_factor_authentication/device/sms: "Téléphone mobile" two_factor_authentication/device/totp: "Application d'authentification" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "La sortie A2F a été désactivée." error_no_device: "Aucun appareil 2FA enregistré trouvé pour cet utilisateur, bien qu'étant requis pour cette instance." error_no_matching_strategy: "Aucune stratégie 2FA correspondante disponible pour cet utilisateur. Veuillez contacter votre administrateur." - error_is_enforced_not_active: 'Erreur de configuration : l''authentification à deux facteurs à été imposée, mais aucune stratégie active n''existe.' - error_invalid_backup_code: 'Code de sauvegarde 2FA non valide' + error_is_enforced_not_active: "Erreur de configuration : l'authentification à deux facteurs à été imposée, mais aucune stratégie active n'existe." + error_invalid_backup_code: "Code de sauvegarde 2FA non valide" channel_unavailable: "Le canal de livraison %{channel} n’est pas disponible." no_valid_phone_number: "Aucun numéro de téléphone valide n’existe." label_pwd_confirmation: "Mot de passe" @@ -37,46 +38,47 @@ fr: label_default_device: "Appareil 2FA par défaut" label_device: "Appareil de 2FA" label_devices: "Appareils de 2FA" - label_one_time_password: 'Mot de passe à usage unique' - label_2fa_enabled: 'Authentification à deux facteurs est active' - label_2fa_disabled: 'Authentification à deux facteurs non active' + label_one_time_password: "Mot de passe à usage unique" + label_2fa_enabled: "Authentification à deux facteurs est active" + label_2fa_disabled: "Authentification à deux facteurs non active" text_otp_delivery_message_sms: "Votre mot de passe à usage unique pour %{app_title} est %{token}" text_otp_delivery_message_voice: "Votre mot de passe à usage unique pour %{app_title} est: %{pause} %{token}. %{pause} Je répète: %{pause} %{token}" - text_enter_2fa: 'Veuillez entrer le mot de passe unique de votre appareil.' - text_2fa_enabled: 'Lors de chaque connexion, il vous sera demandé d’entrer un jeton OTP depuis votre appareil 2FA par défaut.' - text_2fa_disabled: 'Pour activer l’authentification à deux facteurs, utilisez le bouton ci-dessus pour inscrire un nouvel appareil 2FA. Si vous avez déjà un dispositif, vous devez en faire un appareil par défaut.' + text_enter_2fa: "Veuillez entrer le mot de passe unique de votre appareil." + text_2fa_enabled: "Lors de chaque connexion, il vous sera demandé d’entrer un jeton OTP depuis votre appareil 2FA par défaut." + text_2fa_disabled: "Pour activer l’authentification à deux facteurs, utilisez le bouton ci-dessus pour inscrire un nouvel appareil 2FA. Si vous avez déjà un dispositif, vous devez en faire un appareil par défaut." login: enter_backup_code_title: Entrez le code de sauvegarde enter_backup_code_text: Veuillez saisir un code de sauvegarde valide depuis votre liste de codes au cas où vous ne pourriez plus accéder à vos appareils 2FA enregistrés. - other_device: 'Utiliser un autre appareil ou code de sauvegarde' + other_device: "Utiliser un autre appareil ou code de sauvegarde" settings: - title: 'Paramètres 2FA' - current_configuration: 'Configuration actuelle' - label_active_strategies: 'Stratégies 2FA actives' - label_enforced: 'Forcer l''A2F' - label_remember: 'Se souvenir de la connexion A2F' + title: "Paramètres 2FA" + current_configuration: "Configuration actuelle" + label_active_strategies: "Stratégies 2FA actives" + label_enforced: "Forcer l'A2F" + label_remember: "Se souvenir de la connexion A2F" text_configuration: | Remarque : Ces valeurs représentent la configuration actuelle de toute l'application. Vous ne pouvez pas désactiver des paramètres imposés par cette configuration ou changer les stratégies, car cela requiert un redémarrage du serveur. text_configuration_guide: Pour plus d’informations, consultez le guide de configuration. - text_enforced: 'Activez ce paramètre pour forcer tous les utilisateurs à enregistrer un appareil 2FA lors de leur prochaine connexion. Ne peut être désactivé que lorsqu''il n''est pas imposé par la configuration.' + text_enforced: "Activez ce paramètre pour forcer tous les utilisateurs à enregistrer un appareil 2FA lors de leur prochaine connexion. Ne peut être désactivé que lorsqu'il n'est pas imposé par la configuration." text_remember: | Indiquez une valeur plus grande que zéro pour permettre aux utilisateurs de se souvenir de l'authentification 2FA pour le nombre de jours donné. Il ne leur sera pas demandé de se ré-authentifier durant cette période. Ne peut être paramétré que lorsqu'il n'est pas imposé par la configuration. - error_invalid_settings: 'Les stratégies 2FA que vous avez sélectionnées sont invalides' - failed_to_save_settings: 'Echec de la mise à jour des paramètres 2FA: %{message}' + error_invalid_settings: "Les stratégies 2FA que vous avez sélectionnées sont invalides" + failed_to_save_settings: "Echec de la mise à jour des paramètres 2FA: %{message}" admin: - self_edit_path: 'Pour ajouter ou modifier vos propres appareils 2FA, veuillez aller à %{self_edit_link}' - self_edit_link_name: 'Authentification à deux facteurs sur votre page de compte' - self_edit_forbidden: 'Vous ne pouvez pas modifier vos propres appareils 2FA sur ce chemin. Allez dans Mon Compte > Authentification à deux facteurs à la place.' - no_devices_for_user: 'Aucun appareil 2FA n’a été enregistré pour cet utilisateur.' - all_devices_deleted: 'Tous les appareils 2FA de cet utilisateur ont été supprimés' - delete_all_are_you_sure: 'Êtes-vous sûr de vouloir supprimer tous les appareils 2FA pour cet utilisateur?' - button_delete_all_devices: 'Supprimer les dispositifs 2FA inscrits' - button_register_mobile_phone_for_user: 'Enregistrer un téléphone mobile' - text_2fa_enabled: 'Lors de chaque connexion, cet utilisateur sera invité à entrer un jeton OTP depuis son appareil 2FA par défaut.' + self_edit_path: "Pour ajouter ou modifier vos propres appareils 2FA, veuillez aller à %{self_edit_link}" + self_edit_link_name: "Authentification à deux facteurs sur votre page de compte" + self_edit_forbidden: "Vous ne pouvez pas modifier vos propres appareils 2FA sur ce chemin. Allez dans Mon Compte > Authentification à deux facteurs à la place." + no_devices_for_user: "Aucun appareil 2FA n’a été enregistré pour cet utilisateur." + all_devices_deleted: "Tous les appareils 2FA de cet utilisateur ont été supprimés" + delete_all_are_you_sure: "Êtes-vous sûr de vouloir supprimer tous les appareils 2FA pour cet utilisateur?" + button_delete_all_devices: "Supprimer les dispositifs 2FA inscrits" + button_register_mobile_phone_for_user: "Enregistrer un téléphone mobile" + text_2fa_enabled: "Lors de chaque connexion, cet utilisateur sera invité à entrer un jeton OTP depuis son appareil 2FA par défaut." text_2fa_disabled: "L'utilisateur n'a configuré aucun appareil 2FA sur sa page « Mon compte »" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Authentification à deux facteurs' - description: 'Renforcez la sécurité de votre instance OpenProject en offrant (ou en forçant) une authentification à deux facteurs à tous les membres du projet.' + title: "Authentification à deux facteurs" + description: "Renforcez la sécurité de votre instance OpenProject en offrant (ou en forçant) une authentification à deux facteurs à tous les membres du projet." backup_codes: none_found: Aucun code de sauvegarde n’existe pour ce compte. singular: Code de sauvegarde @@ -86,37 +88,42 @@ fr: Si vous ne parvenez pas à accéder à vos appareils à deux facteurs, vous pouvez utiliser un code de sauvegarde pour rétablir l’accès à votre compte. Utilisez le bouton suivant pour générer un nouvel ensemble de codes de sauvegarde. generate: title: Générer des codes de sauvegarde - keep_safe_as_password: 'Important! Traitez ces codes comme mots de passe.' - keep_safe_warning: 'Soit vous les enregistrez dans votre gestionnaire de mot de passe, ou imprimez cette page et la gardez dans un endroit sûr.' - regenerate_warning: 'Avertissement: Si vous avez créé des codes de sauvegarde auparavant, ils seront invalidés et ne fonctionneront plus.' + keep_safe_as_password: "Important! Traitez ces codes comme mots de passe." + keep_safe_warning: "Soit vous les enregistrez dans votre gestionnaire de mot de passe, ou imprimez cette page et la gardez dans un endroit sûr." + regenerate_warning: "Avertissement: Si vous avez créé des codes de sauvegarde auparavant, ils seront invalidés et ne fonctionneront plus." devices: - add_new: 'Ajouter un nouveau appareil 2FA' - register: 'Enregistrer l''appareil' - confirm_default: 'Confirmer le changement d''appareil par défaut' - confirm_device: 'Confirmez votre appareil' - confirm_now: 'Non confirmé, cliquez ici pour l''activer' - cannot_delete_default: 'Impossible de supprimer l''appareil par défaut' - make_default_are_you_sure: 'Êtes-vous certain de vouloir imposer cet appareil 2FA comme appareil par défaut?' - make_default_failed: 'Impossible de mettre à jour l’appareil 2FA par défaut.' - deletion_are_you_sure: 'Êtes-vous sûr de vouloir supprimer ce dispositif 2FA ?' - registration_complete: 'Inscription de l’appareil 2FA terminée!' - registration_failed_token_invalid: 'L’enregistrement du appareil 2FA a échoué, le jeton n’était pas valide.' - registration_failed_update: 'L’enregistrement de l''appareil 2FA a échoué, le jeton était valide, mais l’appareil ne pouvait pas être actualisé.' - confirm_send_failed: 'La confirmation de votre appareil 2FA a échoué.' - button_complete_registration: 'Achever l''inscription 2FA' + add_new: "Ajouter un nouveau appareil 2FA" + register: "Enregistrer l'appareil" + confirm_default: "Confirmer le changement d'appareil par défaut" + confirm_device: "Confirmez votre appareil" + confirm_now: "Non confirmé, cliquez ici pour l'activer" + cannot_delete_default: "Impossible de supprimer l'appareil par défaut" + make_default_are_you_sure: "Êtes-vous certain de vouloir imposer cet appareil 2FA comme appareil par défaut?" + make_default_failed: "Impossible de mettre à jour l’appareil 2FA par défaut." + deletion_are_you_sure: "Êtes-vous sûr de vouloir supprimer ce dispositif 2FA ?" + registration_complete: "Inscription de l’appareil 2FA terminée!" + registration_failed_token_invalid: "L’enregistrement du appareil 2FA a échoué, le jeton n’était pas valide." + registration_failed_update: "L’enregistrement de l'appareil 2FA a échoué, le jeton était valide, mais l’appareil ne pouvait pas être actualisé." + confirm_send_failed: "La confirmation de votre appareil 2FA a échoué." + button_complete_registration: "Achever l'inscription 2FA" text_confirm_to_complete_html: "Veuillez compléter l’enregistrement de votre appareil %{identifier} en entrant un mot de passe unique depuis votre appareil par défaut." text_confirm_to_change_default_html: "Veuillez confirmer que votre nouvel appareil par défaut est %{new_identifier} en entrant un mot de passe à usage unique depuis votre appareil actuel par défaut." - text_identifier: 'Vous pouvez donner à l’appareil un identifiant personnalisé à l’aide de ce champ.' - failed_to_delete: 'Impossible de supprimer l''appareil 2FA.' - is_default_cannot_delete: 'Cet appareil est un appareil par défaut, et ne peut être supprimé à d''une politique de sécurité active. Sélectionnez un autre appareil comme appareil par défaut avant de supprimer l''appareil par défaut actuel.' - not_existing: 'Aucun appareil 2FA n’a été enregistré pour votre compte.' - request_2fa: Veuillez entrer le code obtenu depuis %{device_name} pour vérifier votre identité. + text_identifier: "Vous pouvez donner à l’appareil un identifiant personnalisé à l’aide de ce champ." + failed_to_delete: "Impossible de supprimer l'appareil 2FA." + is_default_cannot_delete: "Cet appareil est un appareil par défaut, et ne peut être supprimé à d'une politique de sécurité active. Sélectionnez un autre appareil comme appareil par défaut avant de supprimer l'appareil par défaut actuel." + not_existing: "Aucun appareil 2FA n’a été enregistré pour votre compte." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Utilisez votre authentificateur basé sur l''application' - provisioning_uri: 'Provisionnement URI' - secret_key: 'Clé secrète' - time_based: 'Basé sur le temps' - account: 'Nom de compte / émetteur' + title: "Utilisez votre authentificateur basé sur l'application" + provisioning_uri: "Provisionnement URI" + secret_key: "Clé secrète" + time_based: "Basé sur le temps" + account: "Nom de compte / émetteur" setup: | Pour mettre en place l’authentification à deux facteurs avec Google Authenticator, téléchargez l’application depuis l’App store d’Apple ou Google Play Store. Après l’ouverture de l’app, vous pouvez scanner le code QR suivant pour vous enregistrer l'appareil. question_cannot_scan: | @@ -126,31 +133,32 @@ fr: description: | Inscrivez un authentificateur d'applications à utiliser avec OpenProject en utilisant le mot de passe à usage unique et durée limitée. Des exemples courants sont Google Authenticator ou Authy. sms: - title: 'Utilisez votre téléphone mobile' - redacted_identifier: 'Appareil mobile (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, nous vous avons envoyé un code d’authentification via %{delivery_channel}' + title: "Utilisez votre téléphone mobile" + redacted_identifier: "Appareil mobile (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, nous vous avons envoyé un code d’authentification via %{delivery_channel}" description: | Inscrivez votre numéro de téléphone pour la livraison de mots de passe à usage unique OpenProject. sns: - delivery_failed: 'Remise SNS a échoué:' + delivery_failed: "Remise SNS a échoué:" message_bird: - sms_delivery_failed: 'La distribution du SMS MessageBird a échoué.' - voice_delivery_failed: 'L''appel vocal MessageBird a échoué.' + sms_delivery_failed: "La distribution du SMS MessageBird a échoué." + voice_delivery_failed: "L'appel vocal MessageBird a échoué." strategies: - totp: 'Application authentificatrice' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Application authentificatrice" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Un mot de passe unique a été envoyé à votre téléphone portable." - label_two_factor_authentication: 'Authentification à deux facteurs' + label_two_factor_authentication: "Authentification à deux facteurs" forced_registration: - required_to_add_device: 'Une politique de sécurité active nécessite d’activer l’authentification à deux facteurs. Veuillez utiliser le formulaire ci-dessous pour enregistrer un appareil.' + required_to_add_device: "Une politique de sécurité active nécessite d’activer l’authentification à deux facteurs. Veuillez utiliser le formulaire ci-dessous pour enregistrer un appareil." remember: active_session_notice: > Votre compte a un cookie de mémorisation actif valide jusqu'au %{expires_on}. Ce cookie vous permet de vous connecter sans entrer le second facteur de vérification jusqu'à cette date. other_active_session_notice: Votre compte a un cookie de mémorisation actif sur une autre session. - label: 'Mémoriser' - clear_cookie: 'Cliquez ici pour supprimer toutes les sessions 2FA mémorisées.' - cookie_removed: 'Toutes les sessions 2FA mémorisées ont été supprimées.' + label: "Mémoriser" + clear_cookie: "Cliquez ici pour supprimer toutes les sessions 2FA mémorisées." + cookie_removed: "Toutes les sessions 2FA mémorisées ont été supprimées." dont_ask_again: "Créer le cookie de mémorisation de l'authentification 2FA sur ce client pour %{days} jours." field_phone: "Téléphone mobile" field_otp: "Mot de passe à usage unique" @@ -160,10 +168,10 @@ fr: notice_account_otp_send_failed: "Votre mot de passe à usage unique n’a pas pu être envoyé." notice_account_has_no_phone: "Aucun numéro de téléphone cellulaire n’est associé à votre compte." label_expiration_hint: "%{date} ou sur logout" - label_actions: 'Actions' - label_confirmed: 'Confirmé' - button_continue: 'Continuer' - button_make_default: 'Marquer par défaut' + label_actions: "Actions" + label_confirmed: "Confirmé" + button_continue: "Continuer" + button_make_default: "Marquer par défaut" label_unverified_phone: "Téléphone portable pas encore vérifié" notice_phone_number_format: "Veuillez entrer le nombre dans le format suivant : +XX XXXXXXXX." text_otp_not_receive: "Autres méthodes de vérification" diff --git a/modules/two_factor_authentication/config/locales/crowdin/he.yml b/modules/two_factor_authentication/config/locales/crowdin/he.yml index be6abb2b074c..b04757b3858d 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/he.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/he.yml @@ -7,14 +7,14 @@ he: activerecord: attributes: two_factor_authentication/device: - identifier: 'מזהה' - default: 'Use as default' + identifier: "מזהה" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ he: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "סיסמה" @@ -37,47 +38,48 @@ he: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ he: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ he: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ he: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'מאושר' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "מאושר" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/hi.yml b/modules/two_factor_authentication/config/locales/crowdin/hi.yml index fa9eaa3757ac..3129e8af88f0 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/hi.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/hi.yml @@ -7,14 +7,14 @@ hi: activerecord: attributes: two_factor_authentication/device: - identifier: 'आइडेंटिफ़ायर' - default: 'डिफ़ॉल्ट की तरह उपयोग करें' + identifier: "आइडेंटिफ़ायर" + default: "डिफ़ॉल्ट की तरह उपयोग करें" two_factor_authentication/device/sms: phone_number: "फ़ोन नंबर" errors: models: two_factor_authentication/device: - default_already_exists: 'पहले से ही अंय OTP डिवाइस के लिए सेट है ।' + default_already_exists: "पहले से ही अंय OTP डिवाइस के लिए सेट है ।" two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ hi: two_factor_authentication/device: "2FA डिवाइस" two_factor_authentication/device/sms: "मोबाइल फोन" two_factor_authentication/device/totp: "प्रमाणक अनुप्रयोग" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA वितरण अक्षम कर दिया गया है ।" error_no_device: "इस उदाहरण के लिए आवश्यक होने के बावजूद, इस उपयोगकर्ता के लिए कोई पंजीकृत 2FA डिवाइस नहीं मिला ।" error_no_matching_strategy: "इस उपयोगकर्ता के लिए कोई मेल खाती 2FA रणनीति उपलब्ध नहीं है । कृपया अपने administratior से संपर्क करें ।" - error_is_enforced_not_active: 'कॉंफ़िगरेशन त्रुटि: दो-चरणीय प्रमाणीकरण लागू किया गया है, लेकिन कोई सक्रिय रणनीतियाँ मौजूद नहीं हैं ।' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "कॉंफ़िगरेशन त्रुटि: दो-चरणीय प्रमाणीकरण लागू किया गया है, लेकिन कोई सक्रिय रणनीतियाँ मौजूद नहीं हैं ।" + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "कोई मांय फ़ोन नंबर मौजूद नहीं है ।" label_pwd_confirmation: "पासवर्ड" @@ -37,47 +38,48 @@ hi: label_default_device: "Default 2FA device" label_device: "2FA डिवाइस" label_devices: "2FA devices" - label_one_time_password: 'एक मुश्त पासवर्ड' - label_2fa_enabled: 'दो-चरण प्रमाणीकरण' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "एक मुश्त पासवर्ड" + label_2fa_enabled: "दो-चरण प्रमाणीकरण" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ hi: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ hi: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'प्रमाणक अनुप्रयोग' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "प्रमाणक अनुप्रयोग" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "एक मुश्त पासवर्ड" @@ -164,10 +172,10 @@ hi: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'क्रियाएँ' - label_confirmed: 'पुष्टि' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "क्रियाएँ" + label_confirmed: "पुष्टि" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/hr.yml b/modules/two_factor_authentication/config/locales/crowdin/hr.yml index 55542fa4c167..59b3262c6c08 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/hr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/hr.yml @@ -7,14 +7,14 @@ hr: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifikator' - default: 'Use as default' + identifier: "Identifikator" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ hr: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Lozinka" @@ -37,47 +38,48 @@ hr: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ hr: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ hr: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ hr: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Potvrđeno' - button_continue: 'Nastavi' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Potvrđeno" + button_continue: "Nastavi" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/hu.yml b/modules/two_factor_authentication/config/locales/crowdin/hu.yml index a8d854074a65..a4a6aadbcfed 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/hu.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/hu.yml @@ -7,14 +7,14 @@ hu: activerecord: attributes: two_factor_authentication/device: - identifier: 'Azonosító' - default: 'Beállítás alapértelmezettként' + identifier: "Azonosító" + default: "Beállítás alapértelmezettként" two_factor_authentication/device/sms: phone_number: "Telefonszám" errors: models: two_factor_authentication/device: - default_already_exists: 'már be van állítva egy másik OTP eszköz számára.' + default_already_exists: "már be van állítva egy másik OTP eszköz számára." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ hu: two_factor_authentication/device: "2FA eszköz" two_factor_authentication/device/sms: "Mobiltelefon" two_factor_authentication/device/totp: "Hitelesítő alkalmazás" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA szolgáltatás le van tiltva." error_no_device: "Nem található regisztrált 2FA eszköz ehhez a felhasználóhoz, annak ellenére, hogy szükség van erre a kérelemre.\n" error_no_matching_strategy: "Ehhez a felhasználóhoz nem áll rendelkezésre megfelelő 2FA stratégia. Kérjük, lépjen kapcsolatba adminisztrátorával.\n" error_is_enforced_not_active: "Konfigurációs hiba: Kétfaktoros hitelesítést hajtottak végre, de nem léteznek aktív stratégiák.\n" - error_invalid_backup_code: 'Érvénytelen 2FA visszaállítási kulcs.' + error_invalid_backup_code: "Érvénytelen 2FA visszaállítási kulcs." channel_unavailable: "A kézbesítési csatorna %{channel} nem elérhető.\n" no_valid_phone_number: "Nincs érvényes telefonszám." label_pwd_confirmation: "Jelszó" @@ -37,24 +38,24 @@ hu: label_default_device: "Alapértelmezett 2FA eszköz" label_device: "2FA eszköz" label_devices: "2FA eszközök" - label_one_time_password: 'Egyszeri jelszó' - label_2fa_enabled: 'Kétlépcsős azonosítás aktív' - label_2fa_disabled: 'Kétlépcsős azonosítás kikapcsolva' + label_one_time_password: "Egyszeri jelszó" + label_2fa_enabled: "Kétlépcsős azonosítás aktív" + label_2fa_disabled: "Kétlépcsős azonosítás kikapcsolva" text_otp_delivery_message_sms: "A %{app_title} egyszeri jelszavad: %{token}" text_otp_delivery_message_voice: "A %{app_title} egyszeri jelszavad: %{pause} %{token}. %{pause} Megismétlem: %{pause} %{token}" - text_enter_2fa: 'Kérlek írd be a készülékeden megjelenő egyszeri jelszót!' - text_2fa_enabled: 'Minden egyes belépésnél szükséged lesz az alapértelmezett 2FA eszközödről beírt OTP tokenre.' - text_2fa_disabled: 'A kétlépcsős beléptetés engedélyezéséhez és egy új 2FA eszköz regisztrációjához nyomd meg a fenti gombot. Amennyiben már rendelkezel ilyen eszközzel, alapértelmezettnek kell beállítanod.' + text_enter_2fa: "Kérlek írd be a készülékeden megjelenő egyszeri jelszót!" + text_2fa_enabled: "Minden egyes belépésnél szükséged lesz az alapértelmezett 2FA eszközödről beírt OTP tokenre." + text_2fa_disabled: "A kétlépcsős beléptetés engedélyezéséhez és egy új 2FA eszköz regisztrációjához nyomd meg a fenti gombot. Amennyiben már rendelkezel ilyen eszközzel, alapértelmezettnek kell beállítanod." login: enter_backup_code_title: Írd be a tartalék kódot enter_backup_code_text: Kérjük, adjon meg egy érvényes biztonsági kódot a kódok listájából, arra az esetre, ha már nem tudja elérni regisztrált 2FA eszközeit - other_device: 'Használjon másik eszközt vagy visszaállítási kulcsot.' + other_device: "Használjon másik eszközt vagy visszaállítási kulcsot." settings: - title: '2FA beállítások' - current_configuration: 'Jelenlegi konfiguráció' + title: "2FA beállítások" + current_configuration: "Jelenlegi konfiguráció" label_active_strategies: "Aktív 2FA stratégiák\n" - label_enforced: '2FA kényszerítése' - label_remember: '2FA bejelentkezés megjegyzése' + label_enforced: "2FA kényszerítése" + label_remember: "2FA bejelentkezés megjegyzése" text_configuration: | Megjegyzés: Ezek az értékek az alkalmazás egészére kiterjedő konfigurációt jelentik. Nem tilthatja le a konfiguráció által kényszerített beállításokat, és nem változtathatja meg a jelenlegi aktív stratégiákat, mivel azok kiszolgáló újraindítását igénylik text_configuration_guide: További információért tekintse meg a konfigurációs útmutatót. @@ -62,22 +63,23 @@ hu: text_remember: | Állítsa ezt nullánál nagyobbra, hogy a felhasználók emlékezhessenek a 2FA hitelesítésükre a megadott számú napon keresztül. Ebben az időszakban nem kérik fel őket újra. Csak akkor állítható be, ha a konfiguráció nem kényszeríti ki - error_invalid_settings: 'A kiválasztott 2FA stratégiák érvénytelenek' - failed_to_save_settings: 'Nem sikerült frissíteni a 2FA beállításokat %{message}' + error_invalid_settings: "A kiválasztott 2FA stratégiák érvénytelenek" + failed_to_save_settings: "Nem sikerült frissíteni a 2FA beállításokat %{message}" admin: - self_edit_path: '2FA hozzáadásához vagy módosításához kérlek menj a %{self_edit_link}' + self_edit_path: "2FA hozzáadásához vagy módosításához kérlek menj a %{self_edit_link}" self_edit_link_name: "Kétlépcsős azonosítás a fiókoldalán\n" - self_edit_forbidden: 'Ezen az útvonalon nem tudod szerkeszteni a 2FA-t. Menj a Saját Fiokom > Két faktorú azonosítás menübe' - no_devices_for_user: 'Nincs regisztrált 2FA eszköze a felhasználónak.' - all_devices_deleted: 'A felhasználó összes 2FA eszköze törölve lett' - delete_all_are_you_sure: 'Biztos vagy benne hogy törölni szeretnéd az összes 2FA eszközt ennél a felhasználónál?' - button_delete_all_devices: '2FA eszköz regisztrációjának törlése' - button_register_mobile_phone_for_user: 'Mobiltelefon regisztrálása' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_forbidden: "Ezen az útvonalon nem tudod szerkeszteni a 2FA-t. Menj a Saját Fiokom > Két faktorú azonosítás menübe" + no_devices_for_user: "Nincs regisztrált 2FA eszköze a felhasználónak." + all_devices_deleted: "A felhasználó összes 2FA eszköze törölve lett" + delete_all_are_you_sure: "Biztos vagy benne hogy törölni szeretnéd az összes 2FA eszközt ennél a felhasználónál?" + button_delete_all_devices: "2FA eszköz regisztrációjának törlése" + button_register_mobile_phone_for_user: "Mobiltelefon regisztrálása" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Kétlépcsős hitelesítés' - description: 'Erősítse meg OpenProject-példányának biztonságát kétlépcsős hitelesítés felajánlásával (vagy kényszerítésével) minden projekttag számára.' + title: "Kétlépcsős hitelesítés" + description: "Erősítse meg OpenProject-példányának biztonságát kétlépcsős hitelesítés felajánlásával (vagy kényszerítésével) minden projekttag számára." backup_codes: none_found: "Ehhez a fiókhoz nincsenek biztonsági kódok.\n" singular: Visszaállítási kulcs @@ -89,36 +91,41 @@ hu: generate: title: Új biztonsági kódok igénylése keep_safe_as_password: "Fontos! úgy kezeld ezeket a kódokat mint egy jelszót\n" - keep_safe_warning: 'Vagy mentse el őket a jelszókezelőbe, vagy nyomtassa ki ezt az oldalt, és tegye biztonságos helyre.' - regenerate_warning: 'Figyelmeztetés: Ha korábban létrehozott biztonsági kódokat, azok érvénytelenné válnak, és többé nem működnek.' + keep_safe_warning: "Vagy mentse el őket a jelszókezelőbe, vagy nyomtassa ki ezt az oldalt, és tegye biztonságos helyre." + regenerate_warning: "Figyelmeztetés: Ha korábban létrehozott biztonsági kódokat, azok érvénytelenné válnak, és többé nem működnek." devices: - add_new: 'Új 2FA eszköz hozzáadása' - register: 'Eszköz regisztrálása' - confirm_default: 'Erősítse meg az alapértelmezett eszköz megváltoztatását' - confirm_device: 'Aktiváló eszköz' - confirm_now: 'Nem megerősített, kattintson ide az aktiváláshoz' - cannot_delete_default: 'Az alapértelmezett eszközt nem lehet törölni' - make_default_are_you_sure: 'Biztos hogy ezt a 2FA eszközt szeretnéd alapértelmezettnek?' - make_default_failed: 'Nem sikerült frissíteni az alap 2FA eszközt' - deletion_are_you_sure: 'Biztosan törli ezt a 2FA eszközt?' - registration_complete: 'Sikeres 2FA eszköz regisztráció!' - registration_failed_token_invalid: 'Sikertelen 2FA eszköz regisztráció, a kulcs érvénytelen.' - registration_failed_update: 'A 2FA eszköz regisztrálása sikertelen, a kulcs érvényes volt de az eszközt nem lehetett frissíteni.' - confirm_send_failed: 'A 2FA eszköz érvényesítése sikertelen' - button_complete_registration: '2FA regisztráció befejezése' + add_new: "Új 2FA eszköz hozzáadása" + register: "Eszköz regisztrálása" + confirm_default: "Erősítse meg az alapértelmezett eszköz megváltoztatását" + confirm_device: "Aktiváló eszköz" + confirm_now: "Nem megerősített, kattintson ide az aktiváláshoz" + cannot_delete_default: "Az alapértelmezett eszközt nem lehet törölni" + make_default_are_you_sure: "Biztos hogy ezt a 2FA eszközt szeretnéd alapértelmezettnek?" + make_default_failed: "Nem sikerült frissíteni az alap 2FA eszközt" + deletion_are_you_sure: "Biztosan törli ezt a 2FA eszközt?" + registration_complete: "Sikeres 2FA eszköz regisztráció!" + registration_failed_token_invalid: "Sikertelen 2FA eszköz regisztráció, a kulcs érvénytelen." + registration_failed_update: "A 2FA eszköz regisztrálása sikertelen, a kulcs érvényes volt de az eszközt nem lehetett frissíteni." + confirm_send_failed: "A 2FA eszköz érvényesítése sikertelen" + button_complete_registration: "2FA regisztráció befejezése" text_confirm_to_complete_html: "Kérjük, fejezze be eszközének regisztrációját %{identifier} egy egyszeri jelszó megadásával az alapértelmezett eszközről." text_confirm_to_change_default_html: "Kérjük, erősítse meg alapértelmezett eszközének %{new_identifier} értékre történő módosítását, ha megad egy egyszeri jelszót a jelenlegi alapértelmezett eszközről." - text_identifier: 'Ezzel a mezővel egyéni azonosítót adhat a készüléknek' - failed_to_delete: 'Nem sikerült törölni a 2FA eszközt' - is_default_cannot_delete: 'Az eszköz alapértelmezettként van megjelölve, és nem törölhető egy aktív biztonsági irányelv miatt. Törlés előtt jelöljön meg egy másik eszközt alapértelmezettként' - not_existing: 'Nincs regisztrál 2FA eszköz ehhez a felhasználóhoz' - request_2fa: Kérjük, adja meg a (z) %{device_name} kódját személyazonosságának igazolásához. + text_identifier: "Ezzel a mezővel egyéni azonosítót adhat a készüléknek" + failed_to_delete: "Nem sikerült törölni a 2FA eszközt" + is_default_cannot_delete: "Az eszköz alapértelmezettként van megjelölve, és nem törölhető egy aktív biztonsági irányelv miatt. Törlés előtt jelöljön meg egy másik eszközt alapértelmezettként" + not_existing: "Nincs regisztrál 2FA eszköz ehhez a felhasználóhoz" + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Használja az alkalmazás alapú hitelesítőjét' + title: "Használja az alkalmazás alapú hitelesítőjét" provisioning_uri: "Provisioning URI\n" - secret_key: 'Titkos kulcs' - time_based: 'Idő alapú' - account: 'Felhasználó név / Kibocsátó' + secret_key: "Titkos kulcs" + time_based: "Idő alapú" + account: "Felhasználó név / Kibocsátó" setup: | A kétfaktoros hitelesítés beállításához a Google Hitelesítő segítségével töltse le az alkalmazást az Apple App Store-ból vagy a Google Play Áruházból. Az alkalmazás megnyitása után beolvashatja az alábbi QR -kódot az eszköz regisztrálásához. @@ -130,31 +137,32 @@ hu: Regisztráljon egy alkalmazás-hitelesítőt az OpenProject-hez való használatra az időalapú egyszeri jelszavas hitelesítési szabvány használatával. Gyakori példák a Google Authenticator vagy az Authy. sms: - title: 'Használja a mobiltelefonját.' - redacted_identifier: 'Mobiltelefon (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier} azonosító kód elküldve %{delivery_channel}' + title: "Használja a mobiltelefonját." + redacted_identifier: "Mobiltelefon (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier} azonosító kód elküldve %{delivery_channel}" description: | Regisztrálja mobiltelefonszámát az egyszeri OpenProject jelszavak kézbesítéséhez. sns: - delivery_failed: 'SNS kézbesítés sikertelen' + delivery_failed: "SNS kézbesítés sikertelen" message_bird: - sms_delivery_failed: 'MessageBird SMS kézbesítése sikertelen.' - voice_delivery_failed: 'MessageBird hívás sikertelen' + sms_delivery_failed: "MessageBird SMS kézbesítése sikertelen." + voice_delivery_failed: "MessageBird hívás sikertelen" strategies: - totp: 'Hitelesítő alkalmazás' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Hitelesítő alkalmazás" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Egyszer használatos jelszó kiküldve a telefonszámra." - label_two_factor_authentication: 'Kétlépcsős hitelesítés' + label_two_factor_authentication: "Kétlépcsős hitelesítés" forced_registration: - required_to_add_device: 'Az aktív biztonsági házirend megköveteli a kétfaktoros hitelesítés engedélyezését. Kérjük, használja az alábbi űrlapot egy eszköz regisztrálásához.' + required_to_add_device: "Az aktív biztonsági házirend megköveteli a kétfaktoros hitelesítés engedélyezését. Kérjük, használja az alábbi űrlapot egy eszköz regisztrálásához." remember: active_session_notice: > Fiókjában aktív emlékeztető cookie van érvényben %{expires_on}. Ez a süti lehetővé teszi, hogy addig második tényező nélkül jelentkezzen be fiókjába. other_active_session_notice: Fiókjában aktív emlékeztető cookie található egy másik munkamenet során. - label: 'Megjegyez' - clear_cookie: 'Kattintson ide hogy törölje az összes 2FA munkamenetet' - cookie_removed: 'Az összes 2FA kapcsolatot eltávolítottuk' + label: "Megjegyez" + clear_cookie: "Kattintson ide hogy törölje az összes 2FA munkamenetet" + cookie_removed: "Az összes 2FA kapcsolatot eltávolítottuk" dont_ask_again: "Hozzon létre egy cookie -t, hogy emlékezzen a 2FA hitelesítésre ezen az felhasználón%{days} napig." field_phone: "Mobiltelefon:" field_otp: "Egyszeri jelszó" @@ -164,10 +172,10 @@ hu: notice_account_otp_send_failed: "Nem lehetséges kiküldeni az egyszer használatos jelszót" notice_account_has_no_phone: "A fiókjához nincs mobiltelefonszám társítva." label_expiration_hint: "%{date} vagy kijelentkezéskor" - label_actions: 'Műveletek' - label_confirmed: 'Megerősítve' - button_continue: 'Folytatás' - button_make_default: 'Megjelölés alapértelmezettként' + label_actions: "Műveletek" + label_confirmed: "Megerősítve" + button_continue: "Folytatás" + button_make_default: "Megjelölés alapértelmezettként" label_unverified_phone: "A mobiltelefon nem lett hitelesítve" notice_phone_number_format: "A következő módon add meg a telefonszámot +XX XXXXXXXXX" text_otp_not_receive: "Másik hitelesítési módszer használata" diff --git a/modules/two_factor_authentication/config/locales/crowdin/id.yml b/modules/two_factor_authentication/config/locales/crowdin/id.yml index 4fddca708e47..6895931bf099 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/id.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/id.yml @@ -7,14 +7,14 @@ id: activerecord: attributes: two_factor_authentication/device: - identifier: 'Pengidentifikasi' - default: 'Digunakan sebagai standar' + identifier: "Pengidentifikasi" + default: "Digunakan sebagai standar" two_factor_authentication/device/sms: phone_number: "Nomor telepon" errors: models: two_factor_authentication/device: - default_already_exists: 'sudah diatur untuk perangkat OTP lain.' + default_already_exists: "sudah diatur untuk perangkat OTP lain." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ id: two_factor_authentication/device: "Perangkat 2FA" two_factor_authentication/device/sms: "Telepon genggam" two_factor_authentication/device/totp: "Aplikasi Authenticator" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Pengiriman 2FA telah dinonaktifkan." error_no_device: "Tidak ada perangkat 2FA terdaftar yang ditemukan untuk pengguna ini, meskipun yang diperlukan untuk contoh ini." error_no_matching_strategy: "Tidak ada 2FA strategi yang cocok tersedia untuk pengguna ini. Silahkan hubungi administratior Anda." - error_is_enforced_not_active: 'Kesalahan konfigurasi: dua faktor otentikasi yang telah diberlakukan, tapi ada tidak ada strategi yang aktif.' - error_invalid_backup_code: 'Kode cadangan 2FA tidak valid' + error_is_enforced_not_active: "Kesalahan konfigurasi: dua faktor otentikasi yang telah diberlakukan, tapi ada tidak ada strategi yang aktif." + error_invalid_backup_code: "Kode cadangan 2FA tidak valid" channel_unavailable: "%{channel} saluran pengiriman tidak tersedia." no_valid_phone_number: "Nomor telepon tidak ada." label_pwd_confirmation: "Kata Sandi" @@ -37,46 +38,47 @@ id: label_default_device: "Default 2FA perangkat" label_device: "Perangkat 2FA" label_devices: "Perangkat 2FA" - label_one_time_password: 'Satu-kali kata sandi' - label_2fa_enabled: 'Dua faktor otentikasi tidak aktif' - label_2fa_disabled: 'Dua faktor otentikasi tidak aktif' + label_one_time_password: "Satu-kali kata sandi" + label_2fa_enabled: "Dua faktor otentikasi tidak aktif" + label_2fa_disabled: "Dua faktor otentikasi tidak aktif" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Silakan masukkan sandi satu kali dari perangkat Anda.' - text_2fa_enabled: 'Setelah setiap login, Anda akan diminta untuk memasukkan tanda OTP dari perangkat 2FA default Anda.' - text_2fa_disabled: 'Untuk mengaktifkan otentikasi dua faktor, gunakan tombol di atas untuk mendaftar perangkat 2FA baru. Jika Anda sudah memiliki perangkat, Anda perlu untuk membuatnya default.' + text_enter_2fa: "Silakan masukkan sandi satu kali dari perangkat Anda." + text_2fa_enabled: "Setelah setiap login, Anda akan diminta untuk memasukkan tanda OTP dari perangkat 2FA default Anda." + text_2fa_disabled: "Untuk mengaktifkan otentikasi dua faktor, gunakan tombol di atas untuk mendaftar perangkat 2FA baru. Jika Anda sudah memiliki perangkat, Anda perlu untuk membuatnya default." login: enter_backup_code_title: Masukkan Kode Cadangan enter_backup_code_text: Masukkan kode cadangan yang sah dari daftar kode dalam kasus Anda tidak lagi dapat mengakses perangkat 2FA terdaftar. - other_device: 'Gunakan perangkat yang lain atau kode cadangan' + other_device: "Gunakan perangkat yang lain atau kode cadangan" settings: - title: 'Pengaturan 2FA' - current_configuration: 'Konfigurasi penyimpanan saat ini' - label_active_strategies: 'Aktifkan strategi 2FA' - label_enforced: 'Menegakkan 2FA' - label_remember: 'Ingat 2FA login' + title: "Pengaturan 2FA" + current_configuration: "Konfigurasi penyimpanan saat ini" + label_active_strategies: "Aktifkan strategi 2FA" + label_enforced: "Menegakkan 2FA" + label_remember: "Ingat 2FA login" text_configuration: | Catatan: Nilai-nilai ini mewakili konfigurasi aplikasi-lebar saat ini. Anda tidak dapat menonaktifkan pengaturan yang dilaksanakan oleh konfigurasi atau mengubah strategi aktif saat ini, karena mereka memerlukan server restart. text_configuration_guide: Untuk informasi lebih lanjut, periksa panduan konfigurasi. - text_enforced: 'Mengaktifkan pengaturan ini untuk memaksa semua pengguna untuk mendaftarkan perangkat 2FA pada login berikutnya mereka. Hanya dapat dinonaktifkan bila tidak pernah ditegakkan oleh konfigurasi.' + text_enforced: "Mengaktifkan pengaturan ini untuk memaksa semua pengguna untuk mendaftarkan perangkat 2FA pada login berikutnya mereka. Hanya dapat dinonaktifkan bila tidak pernah ditegakkan oleh konfigurasi." text_remember: | Set ini untuk lebih besar dari nol untuk memungkinkan pengguna untuk mengingat mereka 2FA otentikasi untuk jumlah hari tertentu. Mereka tidak akan diminta untuk memasukkan kembali selama periode itu. Hanya dapat ditetapkan saat tidak pernah ditegakkan oleh konfigurasi. - error_invalid_settings: 'Strategi 2FA yang Anda pilih tidak sah' - failed_to_save_settings: 'Gagal untuk memperbarui pengaturan 2FA: %{message}' + error_invalid_settings: "Strategi 2FA yang Anda pilih tidak sah" + failed_to_save_settings: "Gagal untuk memperbarui pengaturan 2FA: %{message}" admin: - self_edit_path: 'Untuk menambah atau memodifikasi perangkat 2FA Anda sendiri, silahkan pergi ke %{self_edit_link}' - self_edit_link_name: 'Dua faktor otentikasi pada laman akun' - self_edit_forbidden: 'Anda tidak dapat mengedit perangkat 2FA Anda sendiri di jalan ini. Pergi ke My Account > dua faktor otentikasi sebaliknya.' - no_devices_for_user: 'Tidak ada perangkat 2FA telah terdaftar untuk pengguna ini.' - all_devices_deleted: 'Semua 2FA perangkat pengguna ini telah dihapus' - delete_all_are_you_sure: 'Apakah Anda yakin Anda ingin menghapus semua 2FA perangkat untuk pengguna ini?' - button_delete_all_devices: 'Menghapus perangkat terdaftar 2FA' - button_register_mobile_phone_for_user: 'Daftar ponsel' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Untuk menambah atau memodifikasi perangkat 2FA Anda sendiri, silahkan pergi ke %{self_edit_link}" + self_edit_link_name: "Dua faktor otentikasi pada laman akun" + self_edit_forbidden: "Anda tidak dapat mengedit perangkat 2FA Anda sendiri di jalan ini. Pergi ke My Account > dua faktor otentikasi sebaliknya." + no_devices_for_user: "Tidak ada perangkat 2FA telah terdaftar untuk pengguna ini." + all_devices_deleted: "Semua 2FA perangkat pengguna ini telah dihapus" + delete_all_are_you_sure: "Apakah Anda yakin Anda ingin menghapus semua 2FA perangkat untuk pengguna ini?" + button_delete_all_devices: "Menghapus perangkat terdaftar 2FA" + button_register_mobile_phone_for_user: "Daftar ponsel" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Autentikasi dua faktor' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Autentikasi dua faktor" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: Tidak ada cadangan yang ada untuk akun ini. singular: Kode cadangan @@ -86,37 +88,42 @@ id: Jika Anda tidak dapat mengakses perangkat dua faktor, Anda dapat menggunakan kode cadangan untuk mendapatkan kembali akses ke account Anda. Gunakan tombol berikut untuk menghasilkan serangkaian baru kode cadangan. generate: title: Menghasilkan kode cadangan - keep_safe_as_password: 'Penting! Memperlakukan kode ini sebagai kata sandi.' - keep_safe_warning: 'Baik menyimpannya dalam pengelola kata sandi Anda, atau cetak Halaman ini dan menempatkan di tempat yang aman.' - regenerate_warning: 'Peringatan: Jika Anda telah membuat kode cadangan sebelumnya, mereka akan membatalkan dan tidak akan bekerja lagi.' + keep_safe_as_password: "Penting! Memperlakukan kode ini sebagai kata sandi." + keep_safe_warning: "Baik menyimpannya dalam pengelola kata sandi Anda, atau cetak Halaman ini dan menempatkan di tempat yang aman." + regenerate_warning: "Peringatan: Jika Anda telah membuat kode cadangan sebelumnya, mereka akan membatalkan dan tidak akan bekerja lagi." devices: - add_new: 'Tambahkan perangkat 2FA baru' - register: 'Daftarkan perangkat' - confirm_default: 'Mengkonfirmasi perubahan default perangkat' - confirm_device: 'Mengkonfirmasi perangkat' - confirm_now: 'Tidak dikonfirmasi, klik di sini untuk mengaktifkan' - cannot_delete_default: 'Tidak dapat menghapus perangkat default' - make_default_are_you_sure: 'Apakah Anda yakin Anda ingin membuat perangkat 2FA ini default?' - make_default_failed: 'Gagal untuk memperbarui perangkat 2FA default.' - deletion_are_you_sure: 'Apakah Anda yakin ingin menghapus pengaturan tersimpan ini?' - registration_complete: 'Pendaftaran perangkat 2FA selesai!' - registration_failed_token_invalid: 'Pendaftaran perangkat 2FA gagal, token tidak valid.' - registration_failed_update: 'Pendaftaran perangkat 2FA gagal, token ini berlaku tetapi perangkat tidak dapat diperbarui.' - confirm_send_failed: 'Konfirmasi perangkat 2FA Anda gagal.' - button_complete_registration: 'Pendaftaran 2FA lengkap' + add_new: "Tambahkan perangkat 2FA baru" + register: "Daftarkan perangkat" + confirm_default: "Mengkonfirmasi perubahan default perangkat" + confirm_device: "Mengkonfirmasi perangkat" + confirm_now: "Tidak dikonfirmasi, klik di sini untuk mengaktifkan" + cannot_delete_default: "Tidak dapat menghapus perangkat default" + make_default_are_you_sure: "Apakah Anda yakin Anda ingin membuat perangkat 2FA ini default?" + make_default_failed: "Gagal untuk memperbarui perangkat 2FA default." + deletion_are_you_sure: "Apakah Anda yakin ingin menghapus pengaturan tersimpan ini?" + registration_complete: "Pendaftaran perangkat 2FA selesai!" + registration_failed_token_invalid: "Pendaftaran perangkat 2FA gagal, token tidak valid." + registration_failed_update: "Pendaftaran perangkat 2FA gagal, token ini berlaku tetapi perangkat tidak dapat diperbarui." + confirm_send_failed: "Konfirmasi perangkat 2FA Anda gagal." + button_complete_registration: "Pendaftaran 2FA lengkap" text_confirm_to_complete_html: "Silahkan lengkapi pendaftaran perangkat %{identifier} dengan memasukkan sandi satu kali dari perangkat Anda." text_confirm_to_change_default_html: "Harap mengkonfirmasi mengubah perangkat default untuk %{new_identifier} dengan memasukkan sandi satu kali dari default perangkat Anda saat ini." - text_identifier: 'Anda dapat memberikan perangkat pengenal kustom menggunakan bidang ini.' - failed_to_delete: 'Gagal untuk menghapus perangkat 2FA.' - is_default_cannot_delete: 'Perangkat ini ditandai sebagai default dan tidak dapat dihapus karena kebijakan keamanan aktif. Menandai perangkat lain sebagai default sebelum menghapus.' - not_existing: 'Tidak ada perangkat 2FA telah terdaftar untuk akun Anda.' - request_2fa: Silakan masukkan kode dari %{device_name} Anda untuk memverifikasi identitas Anda. + text_identifier: "Anda dapat memberikan perangkat pengenal kustom menggunakan bidang ini." + failed_to_delete: "Gagal untuk menghapus perangkat 2FA." + is_default_cannot_delete: "Perangkat ini ditandai sebagai default dan tidak dapat dihapus karena kebijakan keamanan aktif. Menandai perangkat lain sebagai default sebelum menghapus." + not_existing: "Tidak ada perangkat 2FA telah terdaftar untuk akun Anda." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Menggunakan otentikasi berbasis aplikasi Anda' - provisioning_uri: 'Penyediaan URI' - secret_key: 'Kunci rahasia' - time_based: 'Berdasarkan waktu' - account: 'Nama akun / penerbit' + title: "Menggunakan otentikasi berbasis aplikasi Anda" + provisioning_uri: "Penyediaan URI" + secret_key: "Kunci rahasia" + time_based: "Berdasarkan waktu" + account: "Nama akun / penerbit" setup: | Untuk mengatur dua faktor otentikasi dengan otentikasi Google, men-unduh aplikasi dari Apple App store atau Google Play Store. Setelah membuka app, Anda dapat memindai kode QR berikut untuk mendaftar perangkat. question_cannot_scan: | @@ -126,31 +133,32 @@ id: description: | Mendaftar otentikasi aplikasi untuk digunakan dengan OpenProject yang menggunakan standar otentikasi berbasis waktu kata sandi satu-kali. Contoh umum adalah Google Authenticator atau Authy. sms: - title: 'Menggunakan ponsel Anda' - redacted_identifier: 'Perangkat mobile (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, kami mengirimkan kode otentikasi melalui %{delivery_channel}' + title: "Menggunakan ponsel Anda" + redacted_identifier: "Perangkat mobile (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, kami mengirimkan kode otentikasi melalui %{delivery_channel}" description: | Mendaftarkan nomor ponsel Anda untuk pengiriman sandi satu kali OpenProject. sns: - delivery_failed: 'Pengiriman SNS gagal:' + delivery_failed: "Pengiriman SNS gagal:" message_bird: - sms_delivery_failed: 'Pengiriman SMS MessageBird gagal.' - voice_delivery_failed: 'Panggilan suara MessageBird gagal.' + sms_delivery_failed: "Pengiriman SMS MessageBird gagal." + voice_delivery_failed: "Panggilan suara MessageBird gagal." strategies: - totp: 'Otentikasi aplikasi' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Otentikasi aplikasi" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Kata sandi satu-kali telah dikirim ke ponsel Anda." - label_two_factor_authentication: 'Autentikasi dua faktor' + label_two_factor_authentication: "Autentikasi dua faktor" forced_registration: - required_to_add_device: 'Kebijakan keamanan aktif mengharuskan Anda untuk mengaktifkan otentikasi dua-faktor. Silakan gunakan formulir berikut untuk mendaftar perangkat.' + required_to_add_device: "Kebijakan keamanan aktif mengharuskan Anda untuk mengaktifkan otentikasi dua-faktor. Silakan gunakan formulir berikut untuk mendaftar perangkat." remember: active_session_notice: > Akun Anda telah aktif ingat cookie yang berlaku hingga %{expires_on}. Cookie ini memungkinkan Anda untuk masuk tanpa faktor kedua ke akun Anda sehingga waktu itu. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'ingat' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "ingat" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Membuat cookie untuk mengingat 2FA otentikasi pada klien ini untuk %{days} hari." field_phone: "Ponsel" field_otp: "Satu-kali kata sandi" @@ -160,10 +168,10 @@ id: notice_account_otp_send_failed: "Sandi satu kali tidak akan dikirim." notice_account_has_no_phone: "Tidak ada nomor ponsel ini dikaitkan dengan akun Anda." label_expiration_hint: "%{date} atau logout" - label_actions: 'Tindakan' - label_confirmed: 'Dikonfirmasi' - button_continue: 'Lanjutkan' - button_make_default: 'Tandai sebagai default' + label_actions: "Tindakan" + label_confirmed: "Dikonfirmasi" + button_continue: "Lanjutkan" + button_make_default: "Tandai sebagai default" label_unverified_phone: "Ponsel yang belum diverifikasi" notice_phone_number_format: "Masukkan nomor dalam format berikut: + XX XXXXXXXX." text_otp_not_receive: "Verifikasi metode lain" diff --git a/modules/two_factor_authentication/config/locales/crowdin/it.yml b/modules/two_factor_authentication/config/locales/crowdin/it.yml index 28d6d980a093..ab87d50ee848 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/it.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/it.yml @@ -7,14 +7,14 @@ it: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identificatore' - default: 'Utilizzare come predefinito' + identifier: "Identificatore" + default: "Utilizzare come predefinito" two_factor_authentication/device/sms: phone_number: "Numero di telefono" errors: models: two_factor_authentication/device: - default_already_exists: 'è già impostato per un altro dispositivo OTP.' + default_already_exists: "è già impostato per un altro dispositivo OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ it: two_factor_authentication/device: "Dispositivo 2FA" two_factor_authentication/device/sms: "Cellulare" two_factor_authentication/device/totp: "Applicazione di autenticazione" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "La consegna 2FA è stata disabilitata." error_no_device: "Nessun dispositivo 2FA registrato trovato per questo utente, pur essendo necessaria per questa istanza." error_no_matching_strategy: "Nessuna strategia di corrispondenza 2FA disponibile per questo utente. Si prega di contattare il proprio amministratore." - error_is_enforced_not_active: 'Errore di configurazione: L''autenticazione a due fattori è stata applicata, ma non esiste nessuna strategia attiva.' - error_invalid_backup_code: 'Codice di backup 2FA non valido' + error_is_enforced_not_active: "Errore di configurazione: L'autenticazione a due fattori è stata applicata, ma non esiste nessuna strategia attiva." + error_invalid_backup_code: "Codice di backup 2FA non valido" channel_unavailable: "Il canale di consegna %{channel} non è disponibile." no_valid_phone_number: "Non esiste nessun numero di telefono valido." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ it: label_default_device: "Dispositivo 2FA predefinito" label_device: "Dispositivo 2FA" label_devices: "Dispositivi 2FA" - label_one_time_password: 'Password monouso' - label_2fa_enabled: 'L'' autenticazione a due fattori è attiva' - label_2fa_disabled: 'L''autenticazione a due fattori non è attiva' + label_one_time_password: "Password monouso" + label_2fa_enabled: "L' autenticazione a due fattori è attiva" + label_2fa_disabled: "L'autenticazione a due fattori non è attiva" text_otp_delivery_message_sms: "La tua password monouso per %{app_title} è %{token}" text_otp_delivery_message_voice: "La tua password monouso per %{app_title} è: %{pause} %{token}. %{pause} Ripeto: %{pause} %{token}" - text_enter_2fa: 'Inserisci la password monouso dal tuo dispositivo.' - text_2fa_enabled: 'Ad ogni accesso, ti sarà chiesto di inserire un token OTP dal tuo dispositivo 2FA predefinito.' - text_2fa_disabled: 'Per abilitare l''autenticazione a due fattori, usa il pulsante qui sopra per registrare un nuovo dispositivo 2FA. Se hai già un dispositivo, devi renderlo predefinito.' + text_enter_2fa: "Inserisci la password monouso dal tuo dispositivo." + text_2fa_enabled: "Ad ogni accesso, ti sarà chiesto di inserire un token OTP dal tuo dispositivo 2FA predefinito." + text_2fa_disabled: "Per abilitare l'autenticazione a due fattori, usa il pulsante qui sopra per registrare un nuovo dispositivo 2FA. Se hai già un dispositivo, devi renderlo predefinito." login: enter_backup_code_title: Inserisci codice di backup enter_backup_code_text: Inserisci un codice di backup valido dall'elenco dei codici nel caso in cui non puoi accedere ai tuoi dispositivi 2FA registrati. - other_device: 'Usa un altro dispositivo o codice di backup' + other_device: "Usa un altro dispositivo o codice di backup" settings: - title: 'Impostazioni 2FA' - current_configuration: 'Configurazione attuale' - label_active_strategies: 'Strategie 2FA attive' - label_enforced: 'Applica 2FA' - label_remember: 'Ricorda l’accesso 2FA' + title: "Impostazioni 2FA" + current_configuration: "Configurazione attuale" + label_active_strategies: "Strategie 2FA attive" + label_enforced: "Applica 2FA" + label_remember: "Ricorda l’accesso 2FA" text_configuration: | Nota: Questi valori rappresentano la configurazione attuale a livello globale. Non puoi disabilitare le impostazioni applicate dalla configurazione o cambiare le correnti strategie attive, dato che queste richiedono un riavvio del server. text_configuration_guide: Per ulteriori informazioni, consulta la guida alla configurazione. - text_enforced: 'Abilita questa impostazione per forzare tutti gli utenti a registrare un dispositivo 2FA al loro prossimo login. L’impostazione può essere disattivata solo se non applicata dalla configurazione.' + text_enforced: "Abilita questa impostazione per forzare tutti gli utenti a registrare un dispositivo 2FA al loro prossimo login. L’impostazione può essere disattivata solo se non applicata dalla configurazione." text_remember: | Imposta questo valore maggiore di zero per consentire agli utenti di ricordare la loro autenticazione 2FA per il numero specificato di giorni. Non gli sarà richiesto di autenticarsi nuovamente in quel periodo. L’impostazione può essere modificata solo quando non applicata dalla configurazione. - error_invalid_settings: 'Le strategie 2FA selezionate non sono valide' - failed_to_save_settings: 'Impossibile aggiornare le impostazioni 2FA: %{message}' + error_invalid_settings: "Le strategie 2FA selezionate non sono valide" + failed_to_save_settings: "Impossibile aggiornare le impostazioni 2FA: %{message}" admin: - self_edit_path: 'Per aggiungere o modificare i propri dispositivi 2FA, visitare il sito %{self_edit_link}' - self_edit_link_name: 'Autenticazione a due fattori sulla pagina del tuo account' - self_edit_forbidden: 'Non puoi modificare i tuoi dispositivi 2FA su questo percorso. Vai al mio Account > Autenticazione a due fattori.' - no_devices_for_user: 'Nessun dispositivo 2FA è stato registrato per questo utente.' - all_devices_deleted: 'Tutti i dispositivi 2FA di questo utente sono stati eliminati' - delete_all_are_you_sure: 'Sei sicuro di voler eliminare tutti i dispositivi 2FA per questo utente?' - button_delete_all_devices: 'Elimina i dispositivi 2FA registrati' - button_register_mobile_phone_for_user: 'Registra telefono cellulare' - text_2fa_enabled: 'A ogni accesso, questo utente dovrà inserire un token OTP dal proprio dispositivo predefinito A2F.' + self_edit_path: "Per aggiungere o modificare i propri dispositivi 2FA, visitare il sito %{self_edit_link}" + self_edit_link_name: "Autenticazione a due fattori sulla pagina del tuo account" + self_edit_forbidden: "Non puoi modificare i tuoi dispositivi 2FA su questo percorso. Vai al mio Account > Autenticazione a due fattori." + no_devices_for_user: "Nessun dispositivo 2FA è stato registrato per questo utente." + all_devices_deleted: "Tutti i dispositivi 2FA di questo utente sono stati eliminati" + delete_all_are_you_sure: "Sei sicuro di voler eliminare tutti i dispositivi 2FA per questo utente?" + button_delete_all_devices: "Elimina i dispositivi 2FA registrati" + button_register_mobile_phone_for_user: "Registra telefono cellulare" + text_2fa_enabled: "A ogni accesso, questo utente dovrà inserire un token OTP dal proprio dispositivo predefinito A2F." text_2fa_disabled: "L'utente non ha configurato un dispositivo A2F tramite la propria 'pagina Il Mio profilo'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Autenticazione a due fattori' - description: 'Rafforza la sicurezza della tua istanza OpenProject offrendo (o implementando) l''autenticazione a due fattori a tutti i membri del progetto.' + title: "Autenticazione a due fattori" + description: "Rafforza la sicurezza della tua istanza OpenProject offrendo (o implementando) l'autenticazione a due fattori a tutti i membri del progetto." backup_codes: none_found: Non esistono codici di backup per questo account. singular: Codice di backup @@ -88,37 +90,42 @@ it: Usa il seguente pulsante per generare un nuovo elenco di codici di backup. generate: title: Genera codici di backup - keep_safe_as_password: 'Importante! Tratta questi codici come delle password.' - keep_safe_warning: 'Salvali nel tuo gestore di password o stampa questa pagina e mettila in un luogo sicuro.' - regenerate_warning: 'Attenzione: Se hai creato dei codici di backup prima, questi non saranno più valido e pertanto non funzioneranno più.' + keep_safe_as_password: "Importante! Tratta questi codici come delle password." + keep_safe_warning: "Salvali nel tuo gestore di password o stampa questa pagina e mettila in un luogo sicuro." + regenerate_warning: "Attenzione: Se hai creato dei codici di backup prima, questi non saranno più valido e pertanto non funzioneranno più." devices: - add_new: 'Aggiungi nuovo dispositivo 2FA' - register: 'Registra dispositivo' - confirm_default: 'Conferma il cambio del dispositivo predefinito' - confirm_device: 'Conferma dispositivo' - confirm_now: 'Non confermato, fai clic qui per attivare' - cannot_delete_default: 'Non è possibile eliminare il dispositivo predefinito' - make_default_are_you_sure: 'Sei sicuro di voler rendere questo dispositivo 2FA come predefinito?' - make_default_failed: 'Impossibile aggiornare il dispositivo 2FA predefinito.' - deletion_are_you_sure: 'Sei sicuro di voler eliminare questo dispositivo 2FA?' - registration_complete: 'Registrazione del dispositivo 2FA completata!' - registration_failed_token_invalid: 'Registrazione del dispositivo 2FA non riuscita, il token non è valido.' - registration_failed_update: 'Registrazione del dispositivo 2FA non riuscita, il token era valido ma il dispositivo non può essere aggiornato.' - confirm_send_failed: 'Conferma del dispositivo 2FA non riuscita.' - button_complete_registration: 'Completa la registrazione 2FA' + add_new: "Aggiungi nuovo dispositivo 2FA" + register: "Registra dispositivo" + confirm_default: "Conferma il cambio del dispositivo predefinito" + confirm_device: "Conferma dispositivo" + confirm_now: "Non confermato, fai clic qui per attivare" + cannot_delete_default: "Non è possibile eliminare il dispositivo predefinito" + make_default_are_you_sure: "Sei sicuro di voler rendere questo dispositivo 2FA come predefinito?" + make_default_failed: "Impossibile aggiornare il dispositivo 2FA predefinito." + deletion_are_you_sure: "Sei sicuro di voler eliminare questo dispositivo 2FA?" + registration_complete: "Registrazione del dispositivo 2FA completata!" + registration_failed_token_invalid: "Registrazione del dispositivo 2FA non riuscita, il token non è valido." + registration_failed_update: "Registrazione del dispositivo 2FA non riuscita, il token era valido ma il dispositivo non può essere aggiornato." + confirm_send_failed: "Conferma del dispositivo 2FA non riuscita." + button_complete_registration: "Completa la registrazione 2FA" text_confirm_to_complete_html: "Completa la registrazione del tuo dispositivo %{identifier} inserendo una password monouso dal tuo dispositivo predefinito." text_confirm_to_change_default_html: "Conferma il cambio del tuo dispositivo predefinito a %{new_identifier} inserendo una password monouso dal tuo dispositivo predefinito corrente." - text_identifier: 'Puoi dare al dispositivo un identificativo personalizzato usando questo campo.' - failed_to_delete: 'Impossibile eliminare il dispositivo 2FA.' - is_default_cannot_delete: 'Il dispositivo è contrassegnato come predefinito e non può essere eliminato a causa di una policy di sicurezza attiva. Contrassegna prima un''altro dispositivo come predefinito per poterlo eliminare.' - not_existing: 'Nessun dispositivo 2FA è stato registrato per il suo account.' - request_2fa: Inserisci il codice dal tuo %{device_name} per verificare la tua identità. + text_identifier: "Puoi dare al dispositivo un identificativo personalizzato usando questo campo." + failed_to_delete: "Impossibile eliminare il dispositivo 2FA." + is_default_cannot_delete: "Il dispositivo è contrassegnato come predefinito e non può essere eliminato a causa di una policy di sicurezza attiva. Contrassegna prima un'altro dispositivo come predefinito per poterlo eliminare." + not_existing: "Nessun dispositivo 2FA è stato registrato per il suo account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Usa la tua app di autenticazione' - provisioning_uri: 'URI di provisioning' - secret_key: 'Chiave segreta' - time_based: 'Basato sul tempo' - account: 'Nome account / emittente' + title: "Usa la tua app di autenticazione" + provisioning_uri: "URI di provisioning" + secret_key: "Chiave segreta" + time_based: "Basato sul tempo" + account: "Nome account / emittente" setup: | Per impostare l'autenticazione a due fattori con Google Authenticator, scarica l'applicazione dall' Apple App store o da Google Play. Dopo aver aperto l'app, puoi scansionare il seguente codice QR per registrare il dispositivo. @@ -130,31 +137,32 @@ it: Registra un'applicazione di autenticazione da utilizzare con OpenProject usando una password standard monouso a tempo. Gli esempi più comuni sono Google Authenticator o Authy. sms: - title: 'Utilizza il tuo telefono cellulare' - redacted_identifier: 'Dispositivo mobile (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, ti abbiamo inviato un codice di autenticazione via %{delivery_channel}' + title: "Utilizza il tuo telefono cellulare" + redacted_identifier: "Dispositivo mobile (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, ti abbiamo inviato un codice di autenticazione via %{delivery_channel}" description: | Registra il numero del tuo cellulare per ricevere le password monouso di OpenProject. sns: - delivery_failed: 'Consegna SNS non riuscita:' + delivery_failed: "Consegna SNS non riuscita:" message_bird: - sms_delivery_failed: 'Consegna MessageBird SMS non riuscita.' - voice_delivery_failed: 'Chiamata vocale MessageBird non riuscita.' + sms_delivery_failed: "Consegna MessageBird SMS non riuscita." + voice_delivery_failed: "Chiamata vocale MessageBird non riuscita." strategies: - totp: 'Applicazione di autenticazione' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Applicazione di autenticazione" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Un password monouso è stata inviata al tuo telefono cellulare." - label_two_factor_authentication: 'Autenticazione due fattori' + label_two_factor_authentication: "Autenticazione due fattori" forced_registration: - required_to_add_device: 'Una policy di sicurezza attiva richiede l''abilitazione dell''autenticazione a due fattori. Si prega di utilizzare il seguente modulo per registrare un dispositivo.' + required_to_add_device: "Una policy di sicurezza attiva richiede l'abilitazione dell'autenticazione a due fattori. Si prega di utilizzare il seguente modulo per registrare un dispositivo." remember: active_session_notice: > Il tuo account ha un cookie di memorizzazione dell’accesso valido fino al %{expires_on}. Questo cookie ti consente di accedere all’account senza un secondo fattore fino a quella data. other_active_session_notice: Il tuo account ha un cookie di memorizzazione dell’accesso attivo in un'altra sessione. - label: 'Ricorda' - clear_cookie: 'Fai clic qui per rimuovere tutte le sessioni 2FA memorizzate.' - cookie_removed: 'Tutte le sessioni 2FA memorizzate sono state rimosse.' + label: "Ricorda" + clear_cookie: "Fai clic qui per rimuovere tutte le sessioni 2FA memorizzate." + cookie_removed: "Tutte le sessioni 2FA memorizzate sono state rimosse." dont_ask_again: "Crea un cookie per memorizzare l'autenticazione 2FA su questo client per %{days} giorni." field_phone: "Cellulare" field_otp: "Password monouso" @@ -164,10 +172,10 @@ it: notice_account_otp_send_failed: "La tua password monouso non può essere inviata." notice_account_has_no_phone: "Nessun numero di cellulare è associato al tuo account." label_expiration_hint: "%{date} o il logout" - label_actions: 'Azioni' - label_confirmed: 'Confermato' - button_continue: 'Continua' - button_make_default: 'Segna come predefinito' + label_actions: "Azioni" + label_confirmed: "Confermato" + button_continue: "Continua" + button_make_default: "Segna come predefinito" label_unverified_phone: "Cellulare non ancora verificato" notice_phone_number_format: "Inserisci il numero nel formato seguente: + XX XXXXXXXX." text_otp_not_receive: "Altri metodi di verifica" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ja.yml b/modules/two_factor_authentication/config/locales/crowdin/ja.yml index e4575cc6d69f..29db4fb22085 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ja.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ja.yml @@ -7,14 +7,14 @@ ja: activerecord: attributes: two_factor_authentication/device: - identifier: '識別子' - default: 'デフォルトとして使用' + identifier: "識別子" + default: "デフォルトとして使用" two_factor_authentication/device/sms: phone_number: "電話番号" errors: models: two_factor_authentication/device: - default_already_exists: '既に別のOTPデバイス用に設定されています。' + default_already_exists: "既に別のOTPデバイス用に設定されています。" two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ja: two_factor_authentication/device: "2FAデバイス" two_factor_authentication/device/sms: "携帯電話" two_factor_authentication/device/totp: "認証システムアプリケーション" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FAの配信が無効になっています。" error_no_device: "このインスタンスに必要であるにもかかわらず、このユーザーに登録された2FAデバイスが見つかりませんでした。" error_no_matching_strategy: "このユーザーに対応する2FA方法はありません。管理者に連絡してください。" - error_is_enforced_not_active: '構成エラー:2ファクター認証が実施されていますが、有効な方法はありません。' - error_invalid_backup_code: '2FAバックアップコードが無効です' + error_is_enforced_not_active: "構成エラー:2ファクター認証が実施されていますが、有効な方法はありません。" + error_invalid_backup_code: "2FAバックアップコードが無効です" channel_unavailable: "配信チャネル %{channel} は利用できません。" no_valid_phone_number: "有効な電話番号が存在しません。" label_pwd_confirmation: "パスワード" @@ -37,47 +38,48 @@ ja: label_default_device: "規定の2FAデバイス" label_device: "2FAデバイス" label_devices: "2FAデバイス" - label_one_time_password: 'ワンタイムパスワード' - label_2fa_enabled: '2要素認証が有効です' - label_2fa_disabled: '2要素認証が有効ではありません' + label_one_time_password: "ワンタイムパスワード" + label_2fa_enabled: "2要素認証が有効です" + label_2fa_disabled: "2要素認証が有効ではありません" text_otp_delivery_message_sms: "あなたの %{app_title} のワンタイムパスワードは %{token} です" text_otp_delivery_message_voice: "あなたの %{app_title} のワンタイムパスワード: %{pause} %{token}。 %{pause} 繰り返します: %{pause} %{token}" - text_enter_2fa: 'あなたのデバイスからワンタイムパスワードを入力してください。' - text_2fa_enabled: 'ログインごとに、規定の2FAデバイスからOTPトークンを入力するよう要求されます。' - text_2fa_disabled: '2要素証を有効にするには、上記のボタンを使用して新しい2FAデバイスを登録します。既にデバイスがある場合は、規定にする必要があります。' + text_enter_2fa: "あなたのデバイスからワンタイムパスワードを入力してください。" + text_2fa_enabled: "ログインごとに、規定の2FAデバイスからOTPトークンを入力するよう要求されます。" + text_2fa_disabled: "2要素証を有効にするには、上記のボタンを使用して新しい2FAデバイスを登録します。既にデバイスがある場合は、規定にする必要があります。" login: enter_backup_code_title: バックアップコードを入力 enter_backup_code_text: 登録された2FAデバイスにアクセスできない場合は、コードのリストから有効なバックアップコードを入力してください。 - other_device: '別のデバイスまたはバックアップコードを使用する' + other_device: "別のデバイスまたはバックアップコードを使用する" settings: - title: '2FA設定' - current_configuration: '現在の設定' - label_active_strategies: '有効な2FA方法' - label_enforced: '2FAを強制' - label_remember: '2FAログインを保持' + title: "2FA設定" + current_configuration: "現在の設定" + label_active_strategies: "有効な2FA方法" + label_enforced: "2FAを強制" + label_remember: "2FAログインを保持" text_configuration: | 注意: これらの値は現在のアプリケーション全体の構成を表します。構成によって強制される設定を無効にすることも、現在のアクティブな方法を変更することもできません。サーバーの再起動が必要なためです。 text_configuration_guide: 詳細については、設定ガイドを参照してください。 - text_enforced: 'この設定を有効にすると、すべてのユーザーが次回のログイン時に2FAデバイスを強制的に登録します。設定によって強制されない場合にのみ無効にすることができます。' + text_enforced: "この設定を有効にすると、すべてのユーザーが次回のログイン時に2FAデバイスを強制的に登録します。設定によって強制されない場合にのみ無効にすることができます。" text_remember: | 0より大きい値に設定すると、ユーザーは指定した日数の2FA認証を記憶させておくことができます。 その期間中に再入金を要求されることはありません。構成によって強制されない場合にのみ設定できます。 - error_invalid_settings: '選択した2FA方法は無効です' - failed_to_save_settings: '2FA設定の更新に失敗しました: %{message}' + error_invalid_settings: "選択した2FA方法は無効です" + failed_to_save_settings: "2FA設定の更新に失敗しました: %{message}" admin: - self_edit_path: '独自の2FAデバイスを追加または変更するには、こちら %{self_edit_link} をご覧ください。' - self_edit_link_name: 'アカウントページの2要素認証' - self_edit_forbidden: 'このパスで自分の2FAデバイスを編集することはできません。 マイアカウント > 2要素認証 の順に選択します。' - no_devices_for_user: 'このユーザーには2FAデバイスが登録されていません。' - all_devices_deleted: 'このユーザーの2FAデバイスはすべて削除されています' - delete_all_are_you_sure: 'このユーザーの2FAデバイスをすべて削除してもよろしいですか?' - button_delete_all_devices: '登録された2FAデバイスを削除します' - button_register_mobile_phone_for_user: '携帯電話番号で登録する' - text_2fa_enabled: 'ログインごとに、このユーザはデフォルトの2FAデバイスからOTPトークンを入力するよう要求されます。' + self_edit_path: "独自の2FAデバイスを追加または変更するには、こちら %{self_edit_link} をご覧ください。" + self_edit_link_name: "アカウントページの2要素認証" + self_edit_forbidden: "このパスで自分の2FAデバイスを編集することはできません。 マイアカウント > 2要素認証 の順に選択します。" + no_devices_for_user: "このユーザーには2FAデバイスが登録されていません。" + all_devices_deleted: "このユーザーの2FAデバイスはすべて削除されています" + delete_all_are_you_sure: "このユーザーの2FAデバイスをすべて削除してもよろしいですか?" + button_delete_all_devices: "登録された2FAデバイスを削除します" + button_register_mobile_phone_for_user: "携帯電話番号で登録する" + text_2fa_enabled: "ログインごとに、このユーザはデフォルトの2FAデバイスからOTPトークンを入力するよう要求されます。" text_2fa_disabled: "ユーザーは2FAデバイスを「マイアカウントページ」から設定していません" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: '2要素認証' - description: 'すべてのプロジェクトメンバーに2要素認証を提供(または強制)することで、OpenProjectインスタンスのセキュリティを強化します。' + title: "2要素認証" + description: "すべてのプロジェクトメンバーに2要素認証を提供(または強制)することで、OpenProjectインスタンスのセキュリティを強化します。" backup_codes: none_found: このアカウントのバックアップコードはありません。 singular: バックアップコード @@ -88,37 +90,42 @@ ja: 次のボタンを使用して新しいバックアップコードセットを生成してください。 generate: title: バックアップコードを生成します - keep_safe_as_password: '重要!これらのコードをパスワードとして扱います。' - keep_safe_warning: 'パスワードマネージャーに保存するか、このページを印刷して安全な場所に保管してください。' - regenerate_warning: '警告: 以前に作成したバックアップコードは無効になり、もはや機能しなくなります。' + keep_safe_as_password: "重要!これらのコードをパスワードとして扱います。" + keep_safe_warning: "パスワードマネージャーに保存するか、このページを印刷して安全な場所に保管してください。" + regenerate_warning: "警告: 以前に作成したバックアップコードは無効になり、もはや機能しなくなります。" devices: - add_new: '新しい2FAデバイスを追加します' - register: 'デバイスを登録する' - confirm_default: '規定のデバイスの変更を確認する' - confirm_device: 'デバイスを確認' - confirm_now: '確認されていません、ここをクリックして有効にする' - cannot_delete_default: '既定のデバイスを削除できません' - make_default_are_you_sure: 'この2FAデバイスを規定にしてもよろしいですか?' - make_default_failed: '規定の2FAデバイスの更新に失敗しました。' - deletion_are_you_sure: 'この2FAデバイスを削除してもよろしいですか?' - registration_complete: '2FAデバイスの登録が完了しました!' - registration_failed_token_invalid: '2FAデバイスの登録に失敗しました。トークンが無効でした。' - registration_failed_update: '2FAデバイスの登録に失敗しました。トークンは有効でしたがデバイスを更新できませんでした。' - confirm_send_failed: '2FAデバイスの確認に失敗しました。' - button_complete_registration: '2FAの登録を完了する' + add_new: "新しい2FAデバイスを追加します" + register: "デバイスを登録する" + confirm_default: "規定のデバイスの変更を確認する" + confirm_device: "デバイスを確認" + confirm_now: "確認されていません、ここをクリックして有効にする" + cannot_delete_default: "既定のデバイスを削除できません" + make_default_are_you_sure: "この2FAデバイスを規定にしてもよろしいですか?" + make_default_failed: "規定の2FAデバイスの更新に失敗しました。" + deletion_are_you_sure: "この2FAデバイスを削除してもよろしいですか?" + registration_complete: "2FAデバイスの登録が完了しました!" + registration_failed_token_invalid: "2FAデバイスの登録に失敗しました。トークンが無効でした。" + registration_failed_update: "2FAデバイスの登録に失敗しました。トークンは有効でしたがデバイスを更新できませんでした。" + confirm_send_failed: "2FAデバイスの確認に失敗しました。" + button_complete_registration: "2FAの登録を完了する" text_confirm_to_complete_html: "規定のデバイスからワンタイムパスワードを入力して、デバイス %{identifier} の登録を完了してください。" text_confirm_to_change_default_html: "現在の規定のデバイスからワンタイムパスワードを入力して、規定のデバイスを %{new_identifier} に変更してください。" - text_identifier: 'このフィールドを使用してデバイスにカスタムIDを与えることができます。' - failed_to_delete: '2FAデバイスの削除に失敗しました。' - is_default_cannot_delete: 'デバイスは規定になっているため、アクティブなセキュリティポリシーのため削除できません。削除する前に別のデバイスを規定にしてください。' - not_existing: 'アカウントに2FAデバイスが登録されていません。' - request_2fa: あなたの身元を確認するには %{device_name} からコードを入力してください。 + text_identifier: "このフィールドを使用してデバイスにカスタムIDを与えることができます。" + failed_to_delete: "2FAデバイスの削除に失敗しました。" + is_default_cannot_delete: "デバイスは規定になっているため、アクティブなセキュリティポリシーのため削除できません。削除する前に別のデバイスを規定にしてください。" + not_existing: "アカウントに2FAデバイスが登録されていません。" + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'アプリベースの認証ツールを使用する' - provisioning_uri: 'プロビジョニングURI' - secret_key: '秘密鍵' - time_based: '時間ベース' - account: 'アカウント名 / 発行者' + title: "アプリベースの認証ツールを使用する" + provisioning_uri: "プロビジョニングURI" + secret_key: "秘密鍵" + time_based: "時間ベース" + account: "アカウント名 / 発行者" setup: | Google Authenticator で2要素認証を設定するには、Apple App StoreまたはGoogle Playストアからアプリケーションをダウンロードしてください。 アプリを開いた後、次のQRコードをスキャンしてデバイスを登録することができます。 @@ -130,31 +137,32 @@ ja: OpenProjectで使用する認証プログラムに時間ベースのワンタイムパスワード認証方式を使用して登録します。 一般的な例は Google Authenticator または Authy です。 sms: - title: 'あなたの携帯電話を使用してください' - redacted_identifier: 'モバイルデバイス (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}、%{delivery_channel} 経由で認証コードを送信しました。' + title: "あなたの携帯電話を使用してください" + redacted_identifier: "モバイルデバイス (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}、%{delivery_channel} 経由で認証コードを送信しました。" description: | OpenProjectワンタイムパスワードの配信用に携帯電話番号を登録してください。 sns: - delivery_failed: 'SNSの配信に失敗しました:' + delivery_failed: "SNSの配信に失敗しました:" message_bird: - sms_delivery_failed: 'MessageBird SMSの配信に失敗しました。' - voice_delivery_failed: 'MessageBirdの音声通話に失敗しました。' + sms_delivery_failed: "MessageBird SMSの配信に失敗しました。" + voice_delivery_failed: "MessageBirdの音声通話に失敗しました。" strategies: - totp: '認証システム アプリケーション' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "認証システム アプリケーション" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "ワンタイムパスワードが携帯電話に送信されました。" - label_two_factor_authentication: '2要素認証' + label_two_factor_authentication: "2要素認証" forced_registration: - required_to_add_device: 'アクティブなセキュリティポリシーでは2要素認証を有効にする必要があります。デバイスを登録するには、次のフォームを使用してください。' + required_to_add_device: "アクティブなセキュリティポリシーでは2要素認証を有効にする必要があります。デバイスを登録するには、次のフォームを使用してください。" remember: active_session_notice: > あなたのアカウントには %{expires_on} まで有効なクッキーが記録されています。このクッキーを使用すると2要素認証なしでアカウントにログインすることができます。 other_active_session_notice: あなたのアカウントは別のセッションで有効と記憶されているクッキーを持っています。 - label: '記憶する' - clear_cookie: '記憶されている2FAのセッションをすべて削除するには、ここをクリックしてください。' - cookie_removed: '記憶されていた2FAのセッションはすべて削除されました。' + label: "記憶する" + clear_cookie: "記憶されている2FAのセッションをすべて削除するには、ここをクリックしてください。" + cookie_removed: "記憶されていた2FAのセッションはすべて削除されました。" dont_ask_again: "%{days} 日間このクライアントの2FA認証を記憶するためのクッキーを作成します。" field_phone: "携帯電話" field_otp: "ワンタイムパスワード" @@ -164,10 +172,10 @@ ja: notice_account_otp_send_failed: "ワンタイムパスワードを送信できませんでした。" notice_account_has_no_phone: "あなたのアカウントには携帯電話番号は関連付けられていません。" label_expiration_hint: "%{date} またはログアウト時" - label_actions: '操作' - label_confirmed: '確認済み' - button_continue: '続行' - button_make_default: 'デフォルトにする' + label_actions: "操作" + label_confirmed: "確認済み" + button_continue: "続行" + button_make_default: "デフォルトにする" label_unverified_phone: "携帯電話がまだ検証されていません" notice_phone_number_format: "次の形式で番号を入力してください: +XX XXXXXXXX." text_otp_not_receive: "その他の確認方法" diff --git a/modules/backlogs/config/locales/crowdin/js-pt.yml b/modules/two_factor_authentication/config/locales/crowdin/js-af.yml similarity index 90% rename from modules/backlogs/config/locales/crowdin/js-pt.yml rename to modules/two_factor_authentication/config/locales/crowdin/js-af.yml index 003815df6623..9dec58017065 100644 --- a/modules/backlogs/config/locales/crowdin/js-pt.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-af.yml @@ -19,8 +19,8 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +af: js: - work_packages: - properties: - storyPoints: "Pontos de História" + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/reporting/config/locales/crowdin/js-pt.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ar.yml similarity index 90% rename from modules/reporting/config/locales/crowdin/js-pt.yml rename to modules/two_factor_authentication/config/locales/crowdin/js-ar.yml index 30c0350863d9..ef4d505f155d 100644 --- a/modules/reporting/config/locales/crowdin/js-pt.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ar.yml @@ -19,8 +19,8 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +ar: js: - reporting_engine: - label_remove: "Excluir" - label_response_error: "Ocorreu um erro na manipulação da consulta." + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-az.yml b/modules/two_factor_authentication/config/locales/crowdin/js-az.yml new file mode 100644 index 000000000000..e449d31e0a2d --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-az.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +az: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-be.yml b/modules/two_factor_authentication/config/locales/crowdin/js-be.yml new file mode 100644 index 000000000000..c72e2f34ec6c --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-be.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +be: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-bg.yml b/modules/two_factor_authentication/config/locales/crowdin/js-bg.yml new file mode 100644 index 000000000000..d0f3210ae085 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-bg.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +bg: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ca.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ca.yml new file mode 100644 index 000000000000..a8c829ee2b3f --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ca.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ca: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ckb-IR.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ckb-IR.yml new file mode 100644 index 000000000000..a8384268f0f7 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ckb-IR.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ckb-IR: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-cs.yml b/modules/two_factor_authentication/config/locales/crowdin/js-cs.yml new file mode 100644 index 000000000000..772444ae8ef4 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-cs.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +cs: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-da.yml b/modules/two_factor_authentication/config/locales/crowdin/js-da.yml new file mode 100644 index 000000000000..531b09d6a8da --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-da.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +da: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-de.yml b/modules/two_factor_authentication/config/locales/crowdin/js-de.yml new file mode 100644 index 000000000000..3ac28a50868e --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-de.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +de: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-el.yml b/modules/two_factor_authentication/config/locales/crowdin/js-el.yml new file mode 100644 index 000000000000..cd350bb921dd --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-el.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +el: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-eo.yml b/modules/two_factor_authentication/config/locales/crowdin/js-eo.yml new file mode 100644 index 000000000000..4b00a501b951 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-eo.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +eo: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-es.yml b/modules/two_factor_authentication/config/locales/crowdin/js-es.yml new file mode 100644 index 000000000000..02bc3309869e --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-es.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +es: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-et.yml b/modules/two_factor_authentication/config/locales/crowdin/js-et.yml new file mode 100644 index 000000000000..92d808820460 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-et.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +et: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-eu.yml b/modules/two_factor_authentication/config/locales/crowdin/js-eu.yml new file mode 100644 index 000000000000..5d5ebdf094ac --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-eu.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +eu: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-fa.yml b/modules/two_factor_authentication/config/locales/crowdin/js-fa.yml new file mode 100644 index 000000000000..dd805534a27b --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-fa.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +fa: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-fi.yml b/modules/two_factor_authentication/config/locales/crowdin/js-fi.yml new file mode 100644 index 000000000000..af5baff7475d --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-fi.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +fi: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-fil.yml b/modules/two_factor_authentication/config/locales/crowdin/js-fil.yml new file mode 100644 index 000000000000..e9694c5d19a3 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-fil.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +fil: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-fr.yml b/modules/two_factor_authentication/config/locales/crowdin/js-fr.yml new file mode 100644 index 000000000000..3ec8f52a2e4c --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-fr.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +fr: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-he.yml b/modules/two_factor_authentication/config/locales/crowdin/js-he.yml new file mode 100644 index 000000000000..9c7af4990023 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-he.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +he: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-hi.yml b/modules/two_factor_authentication/config/locales/crowdin/js-hi.yml new file mode 100644 index 000000000000..a48c138561b8 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-hi.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +hi: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-hr.yml b/modules/two_factor_authentication/config/locales/crowdin/js-hr.yml new file mode 100644 index 000000000000..11104add2a49 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-hr.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +hr: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-hu.yml b/modules/two_factor_authentication/config/locales/crowdin/js-hu.yml new file mode 100644 index 000000000000..965e7f6e54de --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-hu.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +hu: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-id.yml b/modules/two_factor_authentication/config/locales/crowdin/js-id.yml new file mode 100644 index 000000000000..87efbd6eae71 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-id.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +id: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-it.yml b/modules/two_factor_authentication/config/locales/crowdin/js-it.yml new file mode 100644 index 000000000000..f734629d923b --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-it.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +it: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ja.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ja.yml new file mode 100644 index 000000000000..664b8f32e184 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ja.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ja: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ka.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ka.yml new file mode 100644 index 000000000000..1c383b0f568f --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ka.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ka: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-kk.yml b/modules/two_factor_authentication/config/locales/crowdin/js-kk.yml new file mode 100644 index 000000000000..7c12d72b68b2 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-kk.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +kk: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ko.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ko.yml new file mode 100644 index 000000000000..888381ea8ce1 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ko.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ko: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-lt.yml b/modules/two_factor_authentication/config/locales/crowdin/js-lt.yml new file mode 100644 index 000000000000..5ca278a59cf1 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-lt.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +lt: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-lv.yml b/modules/two_factor_authentication/config/locales/crowdin/js-lv.yml new file mode 100644 index 000000000000..b5db5bdcc82d --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-lv.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +lv: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-mn.yml b/modules/two_factor_authentication/config/locales/crowdin/js-mn.yml new file mode 100644 index 000000000000..2b5c50ba5644 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-mn.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +mn: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ms.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ms.yml new file mode 100644 index 000000000000..10d3c468ec5f --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ms.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ms: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ne.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ne.yml new file mode 100644 index 000000000000..4641ee9bcb2d --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ne.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ne: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-nl.yml b/modules/two_factor_authentication/config/locales/crowdin/js-nl.yml new file mode 100644 index 000000000000..29087e936959 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-nl.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +nl: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-no.yml b/modules/two_factor_authentication/config/locales/crowdin/js-no.yml new file mode 100644 index 000000000000..f979bf073de7 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-no.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +"no": + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-pl.yml b/modules/two_factor_authentication/config/locales/crowdin/js-pl.yml new file mode 100644 index 000000000000..3546c482fc9e --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-pl.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +pl: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/meeting/config/locales/crowdin/js-pt.yml b/modules/two_factor_authentication/config/locales/crowdin/js-pt-BR.yml similarity index 91% rename from modules/meeting/config/locales/crowdin/js-pt.yml rename to modules/two_factor_authentication/config/locales/crowdin/js-pt-BR.yml index 5f850f4538e2..2b53d2f14fba 100644 --- a/modules/meeting/config/locales/crowdin/js-pt.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-pt-BR.yml @@ -21,4 +21,6 @@ #++ pt: js: - label_meetings: 'Reuniões' + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/budgets/config/locales/crowdin/js-pt.yml b/modules/two_factor_authentication/config/locales/crowdin/js-pt-PT.yml similarity index 91% rename from modules/budgets/config/locales/crowdin/js-pt.yml rename to modules/two_factor_authentication/config/locales/crowdin/js-pt-PT.yml index b61d8f714f35..2b53d2f14fba 100644 --- a/modules/budgets/config/locales/crowdin/js-pt.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-pt-PT.yml @@ -21,6 +21,6 @@ #++ pt: js: - work_packages: - properties: - costObject: "Orçamento" + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ro.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ro.yml new file mode 100644 index 000000000000..80b30179ff70 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ro.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ro: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ru.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ru.yml new file mode 100644 index 000000000000..1140b9efc15a --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ru.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +ru: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-rw.yml b/modules/two_factor_authentication/config/locales/crowdin/js-rw.yml new file mode 100644 index 000000000000..086a15036300 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-rw.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +rw: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-si.yml b/modules/two_factor_authentication/config/locales/crowdin/js-si.yml new file mode 100644 index 000000000000..9dc15f5141f5 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-si.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +si: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-sk.yml b/modules/two_factor_authentication/config/locales/crowdin/js-sk.yml new file mode 100644 index 000000000000..8cc0e5ce7fcd --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-sk.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +sk: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-sl.yml b/modules/two_factor_authentication/config/locales/crowdin/js-sl.yml new file mode 100644 index 000000000000..75eb68e4ad62 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-sl.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +sl: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-sr.yml b/modules/two_factor_authentication/config/locales/crowdin/js-sr.yml new file mode 100644 index 000000000000..2ead2e34b1a7 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-sr.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +sr: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-sv.yml b/modules/two_factor_authentication/config/locales/crowdin/js-sv.yml new file mode 100644 index 000000000000..eaf4acd3c91d --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-sv.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +sv: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-th.yml b/modules/two_factor_authentication/config/locales/crowdin/js-th.yml new file mode 100644 index 000000000000..142ab3036a35 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-th.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +th: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-tr.yml b/modules/two_factor_authentication/config/locales/crowdin/js-tr.yml new file mode 100644 index 000000000000..9fe58a8380d6 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-tr.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +tr: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-uk.yml b/modules/two_factor_authentication/config/locales/crowdin/js-uk.yml new file mode 100644 index 000000000000..3a0e6003faaa --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-uk.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +uk: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-uz.yml b/modules/two_factor_authentication/config/locales/crowdin/js-uz.yml new file mode 100644 index 000000000000..247c6909bf63 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-uz.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +uz: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-vi.yml b/modules/two_factor_authentication/config/locales/crowdin/js-vi.yml new file mode 100644 index 000000000000..14c0f0e844c2 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-vi.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +vi: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-zh-CN.yml b/modules/two_factor_authentication/config/locales/crowdin/js-zh-CN.yml new file mode 100644 index 000000000000..f9379bab274c --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-zh-CN.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +zh-CN: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-zh-TW.yml b/modules/two_factor_authentication/config/locales/crowdin/js-zh-TW.yml new file mode 100644 index 000000000000..357e659ecd4c --- /dev/null +++ b/modules/two_factor_authentication/config/locales/crowdin/js-zh-TW.yml @@ -0,0 +1,26 @@ +#-- copyright +#OpenProject is an open source project management software. +#Copyright (C) 2012-2024 the OpenProject GmbH +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License version 3. +#OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +#Copyright (C) 2006-2013 Jean-Philippe Lang +#Copyright (C) 2010-2013 the ChiliProject Team +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#See COPYRIGHT and LICENSE files for more details. +#++ +zh-TW: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/locales/crowdin/ka.yml b/modules/two_factor_authentication/config/locales/crowdin/ka.yml index b462bf7cbd0d..b43c4fd42661 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ka.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ka.yml @@ -7,14 +7,14 @@ ka: activerecord: attributes: two_factor_authentication/device: - identifier: 'იდენტიფიკატორი' - default: 'ნაგულისხმევად გამოყენება' + identifier: "იდენტიფიკატორი" + default: "ნაგულისხმევად გამოყენება" two_factor_authentication/device/sms: phone_number: "ტელეფონის ნომერი" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ka: two_factor_authentication/device: "2FA მოწყობილობა" two_factor_authentication/device/sms: "მობილურის ნომერი" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "პაროლი" @@ -37,47 +38,48 @@ ka: label_default_device: "Default 2FA device" label_device: "2FA მოწყობილობა" label_devices: "2FA მოწყობილობა" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA-ის მორგება' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: '2FA-ის ნაძალადევი ჩართვა' - label_remember: 'Remember 2FA login' + title: "2FA-ის მორგება" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "2FA-ის ნაძალადევი ჩართვა" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: მარქაფის კოდი @@ -88,37 +90,42 @@ ka: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'მოწყობილობის დადასტურება' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "მოწყობილობის დადასტურება" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'საიდუმლო გასაღები' - time_based: 'დროზე დაფუძნებული' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "საიდუმლო გასაღები" + time_based: "დროზე დაფუძნებული" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ ka: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'დამახსოვრება' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "დამახსოვრება" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "მობილური ტელეფონი" field_otp: "One-time password" @@ -164,10 +172,10 @@ ka: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'ქმედებები' - label_confirmed: 'დადასტურებულია' - button_continue: 'გაგრძელება' - button_make_default: 'Mark as default' + label_actions: "ქმედებები" + label_confirmed: "დადასტურებულია" + button_continue: "გაგრძელება" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/kk.yml b/modules/two_factor_authentication/config/locales/crowdin/kk.yml index e8f41cc4bf6f..7cc1134fedae 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/kk.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/kk.yml @@ -7,14 +7,14 @@ kk: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ kk: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ kk: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ kk: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ kk: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ kk: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ko.yml b/modules/two_factor_authentication/config/locales/crowdin/ko.yml index 167be8906a08..d902813034c8 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ko.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ko.yml @@ -7,14 +7,14 @@ ko: activerecord: attributes: two_factor_authentication/device: - identifier: '식별자' - default: '기본값으로 사용' + identifier: "식별자" + default: "기본값으로 사용" two_factor_authentication/device/sms: phone_number: "전화번호" errors: models: two_factor_authentication/device: - default_already_exists: '은(는) 이미 다른 OTP 장치에 대해 설정되었습니다.' + default_already_exists: "은(는) 이미 다른 OTP 장치에 대해 설정되었습니다." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ko: two_factor_authentication/device: "2FA 장치" two_factor_authentication/device/sms: "휴대폰" two_factor_authentication/device/totp: "인증자 애플리케이션" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA 배달이 비활성화되었습니다." error_no_device: "이 인스턴스에 필요하지만, 이 사용자에 대해 등록된 2FA 장치를 찾지 못했습니다." error_no_matching_strategy: "이 사용자에 대해 사용 가능한 일치하는 2FA 전략이 없습니다. 관리자에게 문의하세요." - error_is_enforced_not_active: '구성 오류: 2단계 인증이 적용되었지만, 존재하는 활성 전략이 없습니다.' - error_invalid_backup_code: '잘못된 2FA 백업 코드' + error_is_enforced_not_active: "구성 오류: 2단계 인증이 적용되었지만, 존재하는 활성 전략이 없습니다." + error_invalid_backup_code: "잘못된 2FA 백업 코드" channel_unavailable: "배달 채널 %{channel}이(가) 사용 가능하지 않습니다." no_valid_phone_number: "올바른 전화번호가 없습니다." label_pwd_confirmation: "암호" @@ -37,47 +38,48 @@ ko: label_default_device: "기본 2FA 장치" label_device: "2FA 장치" label_devices: "2FA 장치" - label_one_time_password: '일회용 암호' - label_2fa_enabled: '2단계 인증이 활성화되었습니다.' - label_2fa_disabled: '2단계 인증이 활성화되지 않았습니다.' + label_one_time_password: "일회용 암호" + label_2fa_enabled: "2단계 인증이 활성화되었습니다." + label_2fa_disabled: "2단계 인증이 활성화되지 않았습니다." text_otp_delivery_message_sms: "%{app_title}의 일회용 암호는 %{token}입니다." text_otp_delivery_message_voice: "%{app_title} 일회용 암호: %{pause} %{token}. %{pause} 반복: %{pause} %{token}" - text_enter_2fa: '장치에서 일회용 암호를 입력하세요.' - text_2fa_enabled: '로그인할 때마다 기본 2FA 장치에서 OTP 토큰을 입력하라는 메시지가 표시됩니다.' - text_2fa_disabled: '2단계 인증을 활성화하려면 위의 버튼을 사용하여 새로운 2FA 장치를 등록하세요. 장치가 이미 있는 경우 이 장치를 기본값으로 만들어야 합니다.' + text_enter_2fa: "장치에서 일회용 암호를 입력하세요." + text_2fa_enabled: "로그인할 때마다 기본 2FA 장치에서 OTP 토큰을 입력하라는 메시지가 표시됩니다." + text_2fa_disabled: "2단계 인증을 활성화하려면 위의 버튼을 사용하여 새로운 2FA 장치를 등록하세요. 장치가 이미 있는 경우 이 장치를 기본값으로 만들어야 합니다." login: enter_backup_code_title: 백업 코드 입력 enter_backup_code_text: 등록된 2FA 장치에 더 이상 액세스할 수 없는 경우 코드 목록에서 유효한 백업 코드를 입력하세요. - other_device: '다른 장치 또는 백업 코드 사용' + other_device: "다른 장치 또는 백업 코드 사용" settings: - title: '2FA 설정' - current_configuration: '현재 구성' - label_active_strategies: '활성 2FA 전략' - label_enforced: '2FA 강제 적용' - label_remember: '2FA 로그인 유지' + title: "2FA 설정" + current_configuration: "현재 구성" + label_active_strategies: "활성 2FA 전략" + label_enforced: "2FA 강제 적용" + label_remember: "2FA 로그인 유지" text_configuration: | 참고: 해당 값은 현재 애플리케이션 차원 구성을 나타냅니다. 서버 다시 시작이 필요하기 때문에, 구성에 의해 강제 적용되는 설정을 비활성화하거나 현재 활성 전략을 변경할 수 없습니다. text_configuration_guide: 자세한 내용은 구성 가이드를 확인하세요. - text_enforced: '모든 사용자가 다음 로그인 시 2FA 장치를 등록하도록 하려면 이 설정을 활성화하세요. 구성에 의해 강제 적용되지 않는 경우에만 비활성화할 수 있습니다.' + text_enforced: "모든 사용자가 다음 로그인 시 2FA 장치를 등록하도록 하려면 이 설정을 활성화하세요. 구성에 의해 강제 적용되지 않는 경우에만 비활성화할 수 있습니다." text_remember: | 사용자가 지정된 기간(일) 동안 2FA 인증을 저장할 수 있게 하려면 이 값을 0보다 크게 설정하세요. 사용자가 해당 기간 동안에는 이를 다시 입력하라는 요청을 받지 않게 됩니다. 구성에 의해 강제 적용되지 않는 경우에만 설정할 수 있습니다. - error_invalid_settings: '선택한 2FA 전략은 유효하지 않습니다.' - failed_to_save_settings: '2FA 설정을 업데이트하지 못함: %{message}' + error_invalid_settings: "선택한 2FA 전략은 유효하지 않습니다." + failed_to_save_settings: "2FA 설정을 업데이트하지 못함: %{message}" admin: - self_edit_path: '고유한 2FA 장치를 추가하거나 수정하려면 %{self_edit_link}(으)로 이동하세요.' - self_edit_link_name: '계정 페이지의 2단계 인증' - self_edit_forbidden: '이 경로에서 사용자의 고유한 2FA 장치를 편집하지 못할 수 있습니다. 대신 내 계정 > 2단계 인증으로 이동하세요.' - no_devices_for_user: '2FA 장치가 이 사용자에 대해 등록되지 않았습니다.' - all_devices_deleted: '이 사용자의 모든 2FA 장치가 삭제되었습니다.' - delete_all_are_you_sure: '이 사용자에 대한 모든 2FA 장치를 삭제하시겠습니까?' - button_delete_all_devices: '등록된 2FA 장치 삭제' - button_register_mobile_phone_for_user: '휴대폰 등록' - text_2fa_enabled: '로그인할 때마다 기본 2FA 장치에서 OTP 토큰을 입력하라는 메시지가 이 사용자에게 표시됩니다.' + self_edit_path: "고유한 2FA 장치를 추가하거나 수정하려면 %{self_edit_link}(으)로 이동하세요." + self_edit_link_name: "계정 페이지의 2단계 인증" + self_edit_forbidden: "이 경로에서 사용자의 고유한 2FA 장치를 편집하지 못할 수 있습니다. 대신 내 계정 > 2단계 인증으로 이동하세요." + no_devices_for_user: "2FA 장치가 이 사용자에 대해 등록되지 않았습니다." + all_devices_deleted: "이 사용자의 모든 2FA 장치가 삭제되었습니다." + delete_all_are_you_sure: "이 사용자에 대한 모든 2FA 장치를 삭제하시겠습니까?" + button_delete_all_devices: "등록된 2FA 장치 삭제" + button_register_mobile_phone_for_user: "휴대폰 등록" + text_2fa_enabled: "로그인할 때마다 기본 2FA 장치에서 OTP 토큰을 입력하라는 메시지가 이 사용자에게 표시됩니다." text_2fa_disabled: "사용자가 '내 계정 페이지'에서 2FA 장치를 설정하지 않았습니다." + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: '2단계 인증' - description: '모든 프로젝트 멤버에게 2단계 인증을 제공(또는 적용)하여 OpenProject 인스턴스의 보안을 강화하세요.' + title: "2단계 인증" + description: "모든 프로젝트 멤버에게 2단계 인증을 제공(또는 적용)하여 OpenProject 인스턴스의 보안을 강화하세요." backup_codes: none_found: 이 계정에 대한 백업 코드가 존재하지 않습니다. singular: 백업 코드 @@ -88,37 +90,42 @@ ko: 다음 버튼을 사용하여 새로운 백업 코드 집합을 생성하세요. generate: title: 백업 코드 생성 - keep_safe_as_password: '중요! 이러한 코드를 암호로 처리하세요.' - keep_safe_warning: '암호 관리자에 이를 저장하거나, 이 페이지를 인쇄하고 안전한 장소에 보관하세요.' - regenerate_warning: '경고: 이전에 백업 코드를 만든 경우 이러한 코드는 무효화되고 더 이상 작동하지 않습니다.' + keep_safe_as_password: "중요! 이러한 코드를 암호로 처리하세요." + keep_safe_warning: "암호 관리자에 이를 저장하거나, 이 페이지를 인쇄하고 안전한 장소에 보관하세요." + regenerate_warning: "경고: 이전에 백업 코드를 만든 경우 이러한 코드는 무효화되고 더 이상 작동하지 않습니다." devices: - add_new: '새로운 2FA 장치 추가' - register: '장치 등록' - confirm_default: '기본 장치 변경 확인' - confirm_device: '장치 확인' - confirm_now: '확인되지 않음, 여기를 클릭하여 활성화' - cannot_delete_default: '기본 장치를 삭제할 수 없음' - make_default_are_you_sure: '이 2FA 장치를 기본 장치로 만드시겠습니까?' - make_default_failed: '기본 2FA 장치를 업데이트하지 못했습니다.' - deletion_are_you_sure: '이 2FA 장치를 삭제하시겠습니까?' - registration_complete: '2FA 장치 등록 완료!' - registration_failed_token_invalid: '2FA 장치 등록 실패, 토큰이 잘못되었습니다.' - registration_failed_update: '2FA 장치 등록 실패, 토큰이 유효하지만 장치를 업데이트할 수 없습니다.' - confirm_send_failed: '2FA 장치 확인에 실패했습니다.' - button_complete_registration: '2FA 등록 완료' + add_new: "새로운 2FA 장치 추가" + register: "장치 등록" + confirm_default: "기본 장치 변경 확인" + confirm_device: "장치 확인" + confirm_now: "확인되지 않음, 여기를 클릭하여 활성화" + cannot_delete_default: "기본 장치를 삭제할 수 없음" + make_default_are_you_sure: "이 2FA 장치를 기본 장치로 만드시겠습니까?" + make_default_failed: "기본 2FA 장치를 업데이트하지 못했습니다." + deletion_are_you_sure: "이 2FA 장치를 삭제하시겠습니까?" + registration_complete: "2FA 장치 등록 완료!" + registration_failed_token_invalid: "2FA 장치 등록 실패, 토큰이 잘못되었습니다." + registration_failed_update: "2FA 장치 등록 실패, 토큰이 유효하지만 장치를 업데이트할 수 없습니다." + confirm_send_failed: "2FA 장치 확인에 실패했습니다." + button_complete_registration: "2FA 등록 완료" text_confirm_to_complete_html: "기본 장치에서 일회용 암호를 입력하여 장치 %{identifier} 등록을 완료하세요." text_confirm_to_change_default_html: "현재 기본 장치에서 일회용 암호를 입력하여 기본 장치를 %{new_identifier}(으)로 변경을 확인하세요." - text_identifier: '이 필드를 사용하여 사용자 지정 식별자를 장치에 지정할 수 있습니다.' - failed_to_delete: '2FA 장치를 삭제하지 못했습니다.' - is_default_cannot_delete: '장치가 기본으로 표시되고 활성 보안 정책으로 인해 삭제할 수 없습니다. 삭제하기 전에 다른 장치를 기본으로 표시하세요.' - not_existing: '2FA 장치가 해당 계정에 대해 등록되지 않았습니다.' - request_2fa: '%{device_name}의 코드를 입력하여 ID를 확인하세요.' + text_identifier: "이 필드를 사용하여 사용자 지정 식별자를 장치에 지정할 수 있습니다." + failed_to_delete: "2FA 장치를 삭제하지 못했습니다." + is_default_cannot_delete: "장치가 기본으로 표시되고 활성 보안 정책으로 인해 삭제할 수 없습니다. 삭제하기 전에 다른 장치를 기본으로 표시하세요." + not_existing: "2FA 장치가 해당 계정에 대해 등록되지 않았습니다." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: '앱 기반 인증자 사용' - provisioning_uri: '프로비저닝 URI' - secret_key: '비밀 키' - time_based: '시간 기반' - account: '계정 이름/발급자' + title: "앱 기반 인증자 사용" + provisioning_uri: "프로비저닝 URI" + secret_key: "비밀 키" + time_based: "시간 기반" + account: "계정 이름/발급자" setup: | Google 인증자로 2단계 인증 설정을 위해, Apple App Store 또는 Google Play Store에서 애플리케이션을 다운로드하세요. 앱을 연 후, 다음 QR 코드를 스캔하여 장치를 등록할 수 있습니다. @@ -130,31 +137,32 @@ ko: 시간 기반 일회용 암호 인증 표준을 사용하여 OpenProject와 함께 사용할 애플리케이션 인증자를 등록하세요. 일반적인 예로 Google Authenticator 또는 Authy가 있습니다. sms: - title: '휴대폰 사용' - redacted_identifier: '모바일 장치(%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}님, %{delivery_channel}을(를) 통해 인증 코드를 전송했습니다.' + title: "휴대폰 사용" + redacted_identifier: "모바일 장치(%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}님, %{delivery_channel}을(를) 통해 인증 코드를 전송했습니다." description: | OpenProject 일회용 암호 배달을 위해 휴대폰 번호를 등록하세요. sns: - delivery_failed: 'SNS 배달 실패:' + delivery_failed: "SNS 배달 실패:" message_bird: - sms_delivery_failed: 'MessageBird SMS 배달이 실패했습니다.' - voice_delivery_failed: 'MessageBird 음성 통화가 실패했습니다.' + sms_delivery_failed: "MessageBird SMS 배달이 실패했습니다." + voice_delivery_failed: "MessageBird 음성 통화가 실패했습니다." strategies: - totp: '인증자 애플리케이션' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "인증자 애플리케이션" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "일회용 암호가 휴대폰으로 전송되었습니다." - label_two_factor_authentication: '2단계 인증' + label_two_factor_authentication: "2단계 인증" forced_registration: - required_to_add_device: '활성 보안 정책에서는 2단계 인증을 사용하도록 요구합니다. 다음 양식을 사용하여 장치를 등록하세요.' + required_to_add_device: "활성 보안 정책에서는 2단계 인증을 사용하도록 요구합니다. 다음 양식을 사용하여 장치를 등록하세요." remember: active_session_notice: > 사용자 계정에는 %{expires_on}까지 유효한 활성 저장 쿠키가 있습니다. 이 쿠키를 사용하면 그때까지 사용자 계정에 2단계 없이 로그인할 수 있습니다. other_active_session_notice: 사용자 계정에 다른 세션의 활성 저장 쿠키가 있습니다. - label: '저장' - clear_cookie: '저장된 모든 2FA 세션을 제거하려면 여기를 클릭하세요.' - cookie_removed: '저장된 모든 2FA 세션이 제거되었습니다.' + label: "저장" + clear_cookie: "저장된 모든 2FA 세션을 제거하려면 여기를 클릭하세요." + cookie_removed: "저장된 모든 2FA 세션이 제거되었습니다." dont_ask_again: "%{days}일간 이 클라이언트에서 2FA 인증을 저장하는 쿠키를 만듭니다." field_phone: "휴대폰" field_otp: "일회용 암호" @@ -164,10 +172,10 @@ ko: notice_account_otp_send_failed: "일회용 암호를 보낼 수 없습니다." notice_account_has_no_phone: "휴대폰 번호가 계정과 연결되지 않았습니다." label_expiration_hint: "%{date} 또는 로그아웃 시" - label_actions: '작업' - label_confirmed: '확인됨' - button_continue: '계속' - button_make_default: '기본값으로 표시' + label_actions: "작업" + label_confirmed: "확인됨" + button_continue: "계속" + button_make_default: "기본값으로 표시" label_unverified_phone: "아직 인증되지 않은 휴대폰" notice_phone_number_format: "다음과 같은 형식으로 번호를 입력하세요: + XX XXXXXXXX." text_otp_not_receive: "기타 확인 방법" diff --git a/modules/two_factor_authentication/config/locales/crowdin/lt.yml b/modules/two_factor_authentication/config/locales/crowdin/lt.yml index 3c70f84e81fe..fd04d7309cd3 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/lt.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/lt.yml @@ -7,14 +7,14 @@ lt: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifikatorius' - default: 'Naudoti kaip numatytąjį' + identifier: "Identifikatorius" + default: "Naudoti kaip numatytąjį" two_factor_authentication/device/sms: phone_number: "Telefono numeris" errors: models: two_factor_authentication/device: - default_already_exists: 'jau nustatytas kitam OTP įrenginiui.' + default_already_exists: "jau nustatytas kitam OTP įrenginiui." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ lt: two_factor_authentication/device: "2FA įrenginys" two_factor_authentication/device/sms: "Mobilus telefonas" two_factor_authentication/device/totp: "Autentifikatoriaus aplikacija" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA pristatymas buvo išjungtas." error_no_device: "Šiam naudotojui nerastas joks 2FA įrenginys, nors tai ir reikalaujama." error_no_matching_strategy: "Nėra atitinkančios 2FA strategijos šiam naudotojui. Prašome susisiekti su administratoriumi." - error_is_enforced_not_active: 'Konfigūracijos klaida: dviejų veiksnių autentifikacija buvo įjungta, bet nėra aktyvių strategijų.' - error_invalid_backup_code: 'Netinkamas 2FA atsarginis kodas' + error_is_enforced_not_active: "Konfigūracijos klaida: dviejų veiksnių autentifikacija buvo įjungta, bet nėra aktyvių strategijų." + error_invalid_backup_code: "Netinkamas 2FA atsarginis kodas" channel_unavailable: "Pristatymo kanalas %{channel} neprieinamas." no_valid_phone_number: "Nėra tinkamų telefono numerių." label_pwd_confirmation: "Slaptažodis" @@ -37,47 +38,48 @@ lt: label_default_device: "Numatytasis 2FA įrenginys" label_device: "2FA įrenginys" label_devices: "2FA įrenginiai" - label_one_time_password: 'Vienkartinis slaptažodis' - label_2fa_enabled: 'Dviejų veiksnių autentifikacija aktyvi' - label_2fa_disabled: 'Dviejų veiksnių autentifikacija neaktyvi' + label_one_time_password: "Vienkartinis slaptažodis" + label_2fa_enabled: "Dviejų veiksnių autentifikacija aktyvi" + label_2fa_disabled: "Dviejų veiksnių autentifikacija neaktyvi" text_otp_delivery_message_sms: "Jūsų %{app_title} vienkartinis slaptažodis yra %{token}" text_otp_delivery_message_voice: "Jūsų %{app_title} vienkartinis slaptažodis yra: %{pause} %{token}. %{pause} Aš kartoju: %{pause} %{token}" - text_enter_2fa: 'Prašome įvesti vienkartinį slaptažodį iš jūsų įrenginio.' - text_2fa_enabled: 'Kiekvieną kartą prisijungiant jūs turėsite įvesti OTP žetoną iš jūsų numatytojo 2FA įrenginio.' - text_2fa_disabled: 'Norėdami įjungti dviejų veiksnių autentikaciją, naudokite aukščiau esantį mygtuką, kad priregistruotumėte naują 2FA įrenginį. Jei jau turite įrenginį, jums reikia jį padaryti numatytuoju.' + text_enter_2fa: "Prašome įvesti vienkartinį slaptažodį iš jūsų įrenginio." + text_2fa_enabled: "Kiekvieną kartą prisijungiant jūs turėsite įvesti OTP žetoną iš jūsų numatytojo 2FA įrenginio." + text_2fa_disabled: "Norėdami įjungti dviejų veiksnių autentikaciją, naudokite aukščiau esantį mygtuką, kad priregistruotumėte naują 2FA įrenginį. Jei jau turite įrenginį, jums reikia jį padaryti numatytuoju." login: enter_backup_code_title: Įveskite atsarginį kodą enter_backup_code_text: Prašome įvesti atsarginį kodą iš jūsų kodų sąrašo, jei daugiau nebeturite prieigos prie jūsų registruotų 2FA įrenginių. - other_device: 'Naudoti kitą įrenginį ar atsarginį kodą' + other_device: "Naudoti kitą įrenginį ar atsarginį kodą" settings: - title: '2FA nustatymai' - current_configuration: 'Dabartinė konfigūracija' - label_active_strategies: 'Aktyvios 2FA strategijos' - label_enforced: 'Įgalinti 2FA' - label_remember: 'Prisiminti 2FA prisijungimą' + title: "2FA nustatymai" + current_configuration: "Dabartinė konfigūracija" + label_active_strategies: "Aktyvios 2FA strategijos" + label_enforced: "Įgalinti 2FA" + label_remember: "Prisiminti 2FA prisijungimą" text_configuration: | Pastaba: šios reikšmės atspindi dabartinę aplikacijos konfigūraciją. Jūs negalite išjungti nustatymų, kurie įgalinti konfigūracijoje arba pakeisti dabar aktyvių strategijų, nes tam reikia perstartuoti serverį. text_configuration_guide: Daugiau informacijos rasite konfigūravimo vadove. - text_enforced: 'Įjunkite šį nustatymą, kad priverstumėte visus naudotojus registruoti 2FA įrenginį kitą kartą prisijungiant. Išjungti galima tik kai nėra įgalinta konfigūracijoje.' + text_enforced: "Įjunkite šį nustatymą, kad priverstumėte visus naudotojus registruoti 2FA įrenginį kitą kartą prisijungiant. Išjungti galima tik kai nėra įgalinta konfigūracijoje." text_remember: | Nustatykite teigiamą reikšmę, kad leistumėte naudotojams atsiminti jų 2FA autentikaciją nustatytą kiekį dienų. Jų nebus prašoma iš naujo įvesti nurodytą periodą. Gali būti nurodyta tik kai neįgalinta konfigūracijoje. - error_invalid_settings: 'Jūsų parinktos 2FA strategijos yra netinkamos' - failed_to_save_settings: 'Nepavyko atnaujinti 2FA nustatymų: %{message}' + error_invalid_settings: "Jūsų parinktos 2FA strategijos yra netinkamos" + failed_to_save_settings: "Nepavyko atnaujinti 2FA nustatymų: %{message}" admin: - self_edit_path: 'Norėdami pakeisti jūsų 2FA įrenginius, prašome eiti į %{self_edit_link}' - self_edit_link_name: 'Dviejų veiksnių autentikacija jūsų paskyros puslapyje' - self_edit_forbidden: 'Jūs negalite keisti jūsų 2FA įrenginių šiame kelyje. Eikite į Mano paskyra -> Dviejų veiksnių autentikacija.' - no_devices_for_user: 'Šiam naudotojui nepriregistruotas joks 2FA įrenginys.' - all_devices_deleted: 'Visi šio naudotojo 2FA įrenginiai buvo ištrinti' - delete_all_are_you_sure: 'Ar tikrai norite ištrinti visus šio naudotojo 2FA įrenginius?' - button_delete_all_devices: 'Trinti registruotus 2FA įrenginius' - button_register_mobile_phone_for_user: 'Registruoti mobilų telefoną' - text_2fa_enabled: 'Kiekvieną kartą prisijungiant, naudotojo bus paprašoma įvesti OTB žetoną iš jo numatytojo 2FA įrenginio.' + self_edit_path: "Norėdami pakeisti jūsų 2FA įrenginius, prašome eiti į %{self_edit_link}" + self_edit_link_name: "Dviejų veiksnių autentikacija jūsų paskyros puslapyje" + self_edit_forbidden: "Jūs negalite keisti jūsų 2FA įrenginių šiame kelyje. Eikite į Mano paskyra -> Dviejų veiksnių autentikacija." + no_devices_for_user: "Šiam naudotojui nepriregistruotas joks 2FA įrenginys." + all_devices_deleted: "Visi šio naudotojo 2FA įrenginiai buvo ištrinti" + delete_all_are_you_sure: "Ar tikrai norite ištrinti visus šio naudotojo 2FA įrenginius?" + button_delete_all_devices: "Trinti registruotus 2FA įrenginius" + button_register_mobile_phone_for_user: "Registruoti mobilų telefoną" + text_2fa_enabled: "Kiekvieną kartą prisijungiant, naudotojo bus paprašoma įvesti OTB žetoną iš jo numatytojo 2FA įrenginio." text_2fa_disabled: "Naudotojas nenustatė savo 2FA įrenginio savo „Mano paskyros puslapyje“" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Dviejų veiksnių autentifikavimas' - description: 'Sustiprinkite savo OpenProject sistemos saugumą pasiūlydami (ar reikalaudami) dviejų faktorių autentifikacijos visiems projekto nariams.' + title: "Dviejų veiksnių autentifikavimas" + description: "Sustiprinkite savo OpenProject sistemos saugumą pasiūlydami (ar reikalaudami) dviejų faktorių autentifikacijos visiems projekto nariams." backup_codes: none_found: Ši paskyra neturi atsarginių kodų. singular: Atsarginis kodas @@ -88,37 +90,42 @@ lt: Naudokite šį mygtuką, kad sugeneruotumėte naują atsarginių kodų rinkinį. generate: title: Generuoti atsarginius kodus - keep_safe_as_password: 'Svarbu! Šie kodai svarbūs kaip slaptažodžiai.' - keep_safe_warning: 'Arba įrašykite juos į slaptažodžių tvarkyklę, arba atspausdinkite šį puslapį ir padėkite jį į saugią vietą.' - regenerate_warning: 'Įspėjimas: jei anksčiau sukūrėte atsargos kodus, jie daugiau nebeveiks.' + keep_safe_as_password: "Svarbu! Šie kodai svarbūs kaip slaptažodžiai." + keep_safe_warning: "Arba įrašykite juos į slaptažodžių tvarkyklę, arba atspausdinkite šį puslapį ir padėkite jį į saugią vietą." + regenerate_warning: "Įspėjimas: jei anksčiau sukūrėte atsargos kodus, jie daugiau nebeveiks." devices: - add_new: 'Pridėti naują 2FA įrenginį' - register: 'Registruoti įrenginį' - confirm_default: 'Patvirtinkite numatytojo įrenginio keitimą' - confirm_device: 'Patvirtinkite įrenginį' - confirm_now: 'Nepatvirtinta, spauskite čia, kad aktyvuotumėte' - cannot_delete_default: 'Negalima ištrinti numatytojo įrenginio' - make_default_are_you_sure: 'Ar tikrai norite šį 2FA įrenginį padaryti numatytuoju?' - make_default_failed: 'Nepavyko atnaujinti numatytojo 2FA įrenginio.' - deletion_are_you_sure: 'Ar tikrai norite ištrinti šį 2FA įrenginį?' - registration_complete: '2FA įrenginio registracija baigta!' - registration_failed_token_invalid: '2FA įrenginio registracija nepavyko, netinkamas žetonas.' - registration_failed_update: '2FA įrenginio registracija nepavyko, žetonas tinkamas, bet nepavyko atnaujinti įrenginio.' - confirm_send_failed: 'Jūsų 2FA įrenginio patvirtinimas nepavyko.' - button_complete_registration: 'Baigti 2FA registraciją' + add_new: "Pridėti naują 2FA įrenginį" + register: "Registruoti įrenginį" + confirm_default: "Patvirtinkite numatytojo įrenginio keitimą" + confirm_device: "Patvirtinkite įrenginį" + confirm_now: "Nepatvirtinta, spauskite čia, kad aktyvuotumėte" + cannot_delete_default: "Negalima ištrinti numatytojo įrenginio" + make_default_are_you_sure: "Ar tikrai norite šį 2FA įrenginį padaryti numatytuoju?" + make_default_failed: "Nepavyko atnaujinti numatytojo 2FA įrenginio." + deletion_are_you_sure: "Ar tikrai norite ištrinti šį 2FA įrenginį?" + registration_complete: "2FA įrenginio registracija baigta!" + registration_failed_token_invalid: "2FA įrenginio registracija nepavyko, netinkamas žetonas." + registration_failed_update: "2FA įrenginio registracija nepavyko, žetonas tinkamas, bet nepavyko atnaujinti įrenginio." + confirm_send_failed: "Jūsų 2FA įrenginio patvirtinimas nepavyko." + button_complete_registration: "Baigti 2FA registraciją" text_confirm_to_complete_html: "Prašome baigti jūsų įrenginio %{identifier} registraciją įvedant vienkartinį slaptažodį iš jūsų numatytojo įrenginio." text_confirm_to_change_default_html: "Prašome patvirtinti jūsų numatytojo įrenginio keitimą į %{new_identifier} įvedant vienkartinį slaptažodį iš jūsų dabartinio numatytojo įrenginio." - text_identifier: 'Šio lauko pagalba galite įrenginiui suteikti savo identifikatorių.' - failed_to_delete: 'Nepavyko ištrinti 2FA įrenginio.' - is_default_cannot_delete: 'Šis įrenginys pažymėtas kaip numatytasis ir todėl negali būti ištrintas dėl aktyvios saugumo politikos. Prieš trindami pažymėkite kitą įrenginį kaip numatytąjį.' - not_existing: 'Jūsų paskyrai nėra priregistruotas joks 2FA įrenginys.' - request_2fa: Jūsų asmenybės identifikavimui prašome įvesti kodą iš jūsų %{device_name}. + text_identifier: "Šio lauko pagalba galite įrenginiui suteikti savo identifikatorių." + failed_to_delete: "Nepavyko ištrinti 2FA įrenginio." + is_default_cannot_delete: "Šis įrenginys pažymėtas kaip numatytasis ir todėl negali būti ištrintas dėl aktyvios saugumo politikos. Prieš trindami pažymėkite kitą įrenginį kaip numatytąjį." + not_existing: "Jūsų paskyrai nėra priregistruotas joks 2FA įrenginys." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Naudoti jūsų aplikacija paremtą autentifikatorių' - provisioning_uri: 'Įtraukimo URI' - secret_key: 'Slaptas raktas' - time_based: 'Pagrįstas laiku' - account: 'Prisijungimo vardas / Išdavėjas' + title: "Naudoti jūsų aplikacija paremtą autentifikatorių" + provisioning_uri: "Įtraukimo URI" + secret_key: "Slaptas raktas" + time_based: "Pagrįstas laiku" + account: "Prisijungimo vardas / Išdavėjas" setup: | Norėdami įjungti dviejų veiksnių autentifikaciją su Google Authenticator, atsisiųskite aplikaciją iš Apple App ar Google Play Store. Atidarę aplikaciją jūs galėsite nuskenuoti šį QR kodą ir priregistruoti įrenginį. @@ -129,31 +136,32 @@ lt: description: | Registruokite aplikacijos autentifikatorių OpenProject'e naudodami nuo laiko priklausančio ar vienkartinio slaptažodžio autentifikavimo standartą. Pavyzdžiai yra Google Authenticator arba Authy. sms: - title: 'Naudoti jūsų mobilų telefoną' - redacted_identifier: 'Mobilus įrenginys (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, mes išsiuntėme jums autentifikavimo kodą į %{delivery_channel}' + title: "Naudoti jūsų mobilų telefoną" + redacted_identifier: "Mobilus įrenginys (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, mes išsiuntėme jums autentifikavimo kodą į %{delivery_channel}" description: | Registruokite savo mobilų telefoną OpenProject vienkartinių slaptažodžių siuntimui. sns: - delivery_failed: 'SNS pristatymas nepavyko:' + delivery_failed: "SNS pristatymas nepavyko:" message_bird: - sms_delivery_failed: 'MessageBird SMS pristatymas nepavyko' - voice_delivery_failed: 'MessageBird balso skambutis nepavyko.' + sms_delivery_failed: "MessageBird SMS pristatymas nepavyko" + voice_delivery_failed: "MessageBird balso skambutis nepavyko." strategies: - totp: 'Autentifikatoriaus aplikacija' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Autentifikatoriaus aplikacija" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Vienkartinis slaptažodis buvo išsiųstas į jūsų mobilų telefoną." - label_two_factor_authentication: 'Dviejų veiksnių autentifikavimas' + label_two_factor_authentication: "Dviejų veiksnių autentifikavimas" forced_registration: - required_to_add_device: 'Saugumo tvarka reikalauja jus įjungti dviejų-dalių autentifikavimą. Prašome šioje formoje užregistruoti savo įrangą.' + required_to_add_device: "Saugumo tvarka reikalauja jus įjungti dviejų-dalių autentifikavimą. Prašome šioje formoje užregistruoti savo įrangą." remember: active_session_notice: > Jūsų paskyra turi aktyvų prisiminimo „sausainį“, kuris galioja iki %{expires_on}. Šis „sausainis“ leidžia jums prisijungti be dviejų-dalių autentifikacijos iki to laiko. other_active_session_notice: Jūsų paskyra turi aktyvų prisiminimo „sausainį“ kitoje sesijoje. - label: 'Atsiminti' - clear_cookie: 'Paspauskite čia, kad pašalintumėt visas prisimenamas 2FA sesijas.' - cookie_removed: 'Visos prisimenamos 2FA sesijos buvo pašalintos.' + label: "Atsiminti" + clear_cookie: "Paspauskite čia, kad pašalintumėt visas prisimenamas 2FA sesijas." + cookie_removed: "Visos prisimenamos 2FA sesijos buvo pašalintos." dont_ask_again: "Kurti slapuką, kad šiame kliente 2FA autentikacija būtų atsiminta %{days} dienų." field_phone: "Telefonas" field_otp: "Vienkartinis slaptažodis" @@ -163,10 +171,10 @@ lt: notice_account_otp_send_failed: "Nepavyko išsiųsti jūsų vienkartinio slaptažodžio." notice_account_has_no_phone: "Su jūsų paskyra nesusietas joks telefono numeris." label_expiration_hint: "%{date} arba atsijungus" - label_actions: 'Veiksmai' - label_confirmed: 'Patvirtinta' - button_continue: 'Tęsti' - button_make_default: 'Pažymėti kaip numatytąjį' + label_actions: "Veiksmai" + label_confirmed: "Patvirtinta" + button_continue: "Tęsti" + button_make_default: "Pažymėti kaip numatytąjį" label_unverified_phone: "Telefonas dar nepatikrintas" notice_phone_number_format: "Prašome įvesti numerį tokiu formatu: +XX XXXXXXXX." text_otp_not_receive: "Kiti patikrinimo būdai" diff --git a/modules/two_factor_authentication/config/locales/crowdin/lv.yml b/modules/two_factor_authentication/config/locales/crowdin/lv.yml index 5220656eaf4a..9cc7d68986d7 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/lv.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/lv.yml @@ -7,14 +7,14 @@ lv: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifikators' - default: 'Use as default' + identifier: "Identifikators" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ lv: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Parole" @@ -37,47 +38,48 @@ lv: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ lv: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ lv: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ lv: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/mn.yml b/modules/two_factor_authentication/config/locales/crowdin/mn.yml index 8f169f67d49b..aff092cbd6b6 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/mn.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/mn.yml @@ -7,14 +7,14 @@ mn: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ mn: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ mn: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ mn: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ mn: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ mn: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ms.yml b/modules/two_factor_authentication/config/locales/crowdin/ms.yml index db2c2eb651f0..a26b4594ec49 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ms.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ms.yml @@ -7,14 +7,14 @@ ms: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ms: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ ms: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ ms: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ ms: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ ms: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ne.yml b/modules/two_factor_authentication/config/locales/crowdin/ne.yml index 000d132db152..a3fd0887ae34 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ne.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ne.yml @@ -7,14 +7,14 @@ ne: activerecord: attributes: two_factor_authentication/device: - identifier: 'परिचायक' - default: 'Use as default' + identifier: "परिचायक" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ne: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ ne: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ ne: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ ne: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ ne: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/nl.yml b/modules/two_factor_authentication/config/locales/crowdin/nl.yml index 79fe9ef37735..a0abac3bcf38 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/nl.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/nl.yml @@ -7,14 +7,14 @@ nl: activerecord: attributes: two_factor_authentication/device: - identifier: 'ID' - default: 'Gebruik als standaard' + identifier: "ID" + default: "Gebruik als standaard" two_factor_authentication/device/sms: phone_number: "Telefoonnummer" errors: models: two_factor_authentication/device: - default_already_exists: 'is al ingesteld voor een ander OTP-apparaat.' + default_already_exists: "is al ingesteld voor een ander OTP-apparaat." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ nl: two_factor_authentication/device: "2FA apparaat" two_factor_authentication/device/sms: "Mobiele telefoon" two_factor_authentication/device/totp: "Verificator toepassing" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA-bezorging is uitgeschakeld." error_no_device: "Geen geregistreerd 2FA-apparaat gevonden voor deze gebruiker, ondanks dat dit vereist is voor dit voorbeeld." error_no_matching_strategy: "Er is geen overeenkomende 2FA-strategie beschikbaar voor deze gebruiker. Neem contact op met uw beheerder." - error_is_enforced_not_active: 'Configuratiefout: tweefactorauthenticatie is afgedwongen, maar er zijn geen actieve strategieën.' - error_invalid_backup_code: 'Ongeldige 2FA back-up code' + error_is_enforced_not_active: "Configuratiefout: tweefactorauthenticatie is afgedwongen, maar er zijn geen actieve strategieën." + error_invalid_backup_code: "Ongeldige 2FA back-up code" channel_unavailable: "Het bezorgkanaal %{channel} is niet beschikbaar." no_valid_phone_number: "Er is geen geldig telefoonnummer." label_pwd_confirmation: "Wachtwoord" @@ -37,47 +38,48 @@ nl: label_default_device: "Standaard 2FA-apparaat" label_device: "2FA apparaat" label_devices: "2FA apparaten" - label_one_time_password: 'Eenmalig wachtwoord' - label_2fa_enabled: 'Twee-factor-authenticatie is actief' - label_2fa_disabled: 'Twee-factor-authenticatie is niet actief' + label_one_time_password: "Eenmalig wachtwoord" + label_2fa_enabled: "Twee-factor-authenticatie is actief" + label_2fa_disabled: "Twee-factor-authenticatie is niet actief" text_otp_delivery_message_sms: "Uw %{app_title} eenmalig wachtwoord is %{token}" text_otp_delivery_message_voice: "Uw %{app_title} eenmalig wachtwoord is: %{pause} %{token}. %{pause} Ik herhaal: %{pause} %{token}" - text_enter_2fa: 'Voer het eenmalige wachtwoord in vanaf uw apparaat.' - text_2fa_enabled: 'Bij elke aanmelding wordt u gevraagd om een OTP-token in te voeren vanaf uw standaard 2FA-apparaat.' - text_2fa_disabled: 'Om authenticatie met twee factoren in te schakelen, gebruikt u de knop hierboven om een nieuw 2FA-apparaat te registreren. Als u al een apparaat heeft, moet u dit als standaard instellen.' + text_enter_2fa: "Voer het eenmalige wachtwoord in vanaf uw apparaat." + text_2fa_enabled: "Bij elke aanmelding wordt u gevraagd om een OTP-token in te voeren vanaf uw standaard 2FA-apparaat." + text_2fa_disabled: "Om authenticatie met twee factoren in te schakelen, gebruikt u de knop hierboven om een nieuw 2FA-apparaat te registreren. Als u al een apparaat heeft, moet u dit als standaard instellen." login: enter_backup_code_title: Back-up code invoeren enter_backup_code_text: Voer een geldige back-up code in uit uw codelijst voor het geval dat u geen toegang meer heeft tot uw geregistreerde 2FA-apparaten. - other_device: 'Gebruik een ander 2FA-apparaat of een back-up code' + other_device: "Gebruik een ander 2FA-apparaat of een back-up code" settings: - title: '2FA instellingen' - current_configuration: 'Huidige configuratie' - label_active_strategies: 'Actieve 2FA strategieën' - label_enforced: 'Forceer 2FA' - label_remember: 'Bewaar 2FA logingegevens' + title: "2FA instellingen" + current_configuration: "Huidige configuratie" + label_active_strategies: "Actieve 2FA strategieën" + label_enforced: "Forceer 2FA" + label_remember: "Bewaar 2FA logingegevens" text_configuration: | Opmerking: Deze waarden vertegenwoordigen de huidige applicatie-brede configuratie. U kunt instellingen die worden afgedwongen door de configuratie niet uitschakelen of de huidige actieve strategieën wijzigen, aangezien ze een herstart van de server vereisen. text_configuration_guide: Voor meer informatie, check de configuratiegids. - text_enforced: 'Schakel deze instelling in om alle gebruikers te dwingen een 2FA-apparaat te registreren op hun volgende login. Kan alleen worden uitgeschakeld wanneer niet afgedwongen door configuratie.' + text_enforced: "Schakel deze instelling in om alle gebruikers te dwingen een 2FA-apparaat te registreren op hun volgende login. Kan alleen worden uitgeschakeld wanneer niet afgedwongen door configuratie." text_remember: | Stel dit in op meer dan nul om gebruikers hun 2FA authenticatie voor het gegeven aantal dagen te onthouden. Ze zullen niet worden verzocht om deze opnieuw in te voeren gedurende die periode. Dit kan alleen worden ingesteld wanneer het niet wordt afgedwongen door configuratie. - error_invalid_settings: 'De 2FA strategieën die u hebt geselecteerd zijn ongeldig' - failed_to_save_settings: '2FA instellingen bijwerken mislukt: %{message}' + error_invalid_settings: "De 2FA strategieën die u hebt geselecteerd zijn ongeldig" + failed_to_save_settings: "2FA instellingen bijwerken mislukt: %{message}" admin: - self_edit_path: 'Om uw eigen 2FA-apparaten toe te voegen of te wijzigen, gaat u naar %{self_edit_link}' - self_edit_link_name: 'Twee-factor-authenticatie op uw accountpagina' - self_edit_forbidden: 'U mag uw eigen 2FA-apparaten niet op dit pad bewerken. Ga in plaats daarvan naar Mijn account> Two-factor-authenticatie.' - no_devices_for_user: 'Er is geen 2FA-apparaat geregistreerd voor deze gebruiker.' - all_devices_deleted: 'Alle 2FA-apparaten van deze gebruiker zijn verwijderd' - delete_all_are_you_sure: 'Weet u zeker dat u alle 2FA-apparaten voor deze gebruiker wilt verwijderen?' - button_delete_all_devices: 'Geregistreerde 2FA apparaten verwijderen' - button_register_mobile_phone_for_user: 'Mobiele telefoon registreren' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Om uw eigen 2FA-apparaten toe te voegen of te wijzigen, gaat u naar %{self_edit_link}" + self_edit_link_name: "Twee-factor-authenticatie op uw accountpagina" + self_edit_forbidden: "U mag uw eigen 2FA-apparaten niet op dit pad bewerken. Ga in plaats daarvan naar Mijn account> Two-factor-authenticatie." + no_devices_for_user: "Er is geen 2FA-apparaat geregistreerd voor deze gebruiker." + all_devices_deleted: "Alle 2FA-apparaten van deze gebruiker zijn verwijderd" + delete_all_are_you_sure: "Weet u zeker dat u alle 2FA-apparaten voor deze gebruiker wilt verwijderen?" + button_delete_all_devices: "Geregistreerde 2FA apparaten verwijderen" + button_register_mobile_phone_for_user: "Mobiele telefoon registreren" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Twee-staps authenticatie' - description: 'Versterk de beveiliging van uw OpenProject door tweestapsauthentificatie aan alle projectdeelnemers aan te bieden (of af te dwingen)' + title: "Twee-staps authenticatie" + description: "Versterk de beveiliging van uw OpenProject door tweestapsauthentificatie aan alle projectdeelnemers aan te bieden (of af te dwingen)" backup_codes: none_found: Geen 2FA back-upcodes gevonden voor dit account. singular: Back-up code @@ -87,37 +89,42 @@ nl: Als u geen toegang hebt tot uw geregistreerde 2FA-apparaten, krijgt u toegang tot uw account door een 2FA-back-upcode in te voeren. Gebruik de volgende knop om een nieuwe back-upcodes te genereren. generate: title: Back-up codes genereren - keep_safe_as_password: 'Belangrijk! Behandel deze codes als wachtwoorden.' - keep_safe_warning: 'Sla ze op in uw wachtwoordbeheerder of druk deze pagina af en bewaar hem op een veilige plaats.' - regenerate_warning: 'Waarschuwing: als u al 2FA-back-upcodes hebt gemaakt, worden deze ongeldig en kunnen deze niet meer worden gebruikt.' + keep_safe_as_password: "Belangrijk! Behandel deze codes als wachtwoorden." + keep_safe_warning: "Sla ze op in uw wachtwoordbeheerder of druk deze pagina af en bewaar hem op een veilige plaats." + regenerate_warning: "Waarschuwing: als u al 2FA-back-upcodes hebt gemaakt, worden deze ongeldig en kunnen deze niet meer worden gebruikt." devices: - add_new: 'Nieuwe 2FA-apparaat toevoegen' - register: 'Registreer apparaat' - confirm_default: 'Bevestig het wijzigen van standaard-apparaat' - confirm_device: 'Apparaat bevestigen' - confirm_now: 'Niet bevestigd, klik hier om te activeren' - cannot_delete_default: 'Kan standaardapparaat niet verwijderen' - make_default_are_you_sure: 'Weet u zeker dat u dit 2FA-apparaat als standaard wilt instellen?' - make_default_failed: 'Kan het standaard 2FA-apparaat niet bijwerken.' - deletion_are_you_sure: 'Bent u zeker dat u dit 2FA-apparaat wilt verwijderen?' - registration_complete: '2FA-apparaatregistratie voltooid!' - registration_failed_token_invalid: '2FA-apparaatregistratie mislukt, het token was ongeldig.' - registration_failed_update: '2FA registratie van het apparaat mislukt, het token was geldig, maar het apparaat kan niet worden bijgewerkt.' - confirm_send_failed: 'Bevestiging van uw 2FA-apparaat is mislukt.' - button_complete_registration: 'Voltooi 2FA-registratie' + add_new: "Nieuwe 2FA-apparaat toevoegen" + register: "Registreer apparaat" + confirm_default: "Bevestig het wijzigen van standaard-apparaat" + confirm_device: "Apparaat bevestigen" + confirm_now: "Niet bevestigd, klik hier om te activeren" + cannot_delete_default: "Kan standaardapparaat niet verwijderen" + make_default_are_you_sure: "Weet u zeker dat u dit 2FA-apparaat als standaard wilt instellen?" + make_default_failed: "Kan het standaard 2FA-apparaat niet bijwerken." + deletion_are_you_sure: "Bent u zeker dat u dit 2FA-apparaat wilt verwijderen?" + registration_complete: "2FA-apparaatregistratie voltooid!" + registration_failed_token_invalid: "2FA-apparaatregistratie mislukt, het token was ongeldig." + registration_failed_update: "2FA registratie van het apparaat mislukt, het token was geldig, maar het apparaat kan niet worden bijgewerkt." + confirm_send_failed: "Bevestiging van uw 2FA-apparaat is mislukt." + button_complete_registration: "Voltooi 2FA-registratie" text_confirm_to_complete_html: "Voltooi de registratie van uw apparaat %{identifier} door een eenmalig wachtwoord in te voeren vanaf uw apparaat." text_confirm_to_change_default_html: "Bevestig uw standaardapparaat aan %{new_identifier} door een eenmalig wachtwoord in te voeren vanaf uw huidige standaardapparaat." - text_identifier: 'U kunt het apparaat een aangepaste Id geven met behulp van dit veld.' - failed_to_delete: 'Kan het 2FA-apparaat niet verwijderen.' - is_default_cannot_delete: 'Het apparaat is gemarkeerd als standaard en kan niet worden verwijderd vanwege een actief beveiligingsbeleid. Markeer een ander apparaat als standaard voordat u het verwijdert.' - not_existing: 'Er is geen 2FA-apparaat geregistreerd voor uw account.' - request_2fa: Voer alstublieft de code van uw %{device_name} in om uw identiteit te verifiëren. + text_identifier: "U kunt het apparaat een aangepaste Id geven met behulp van dit veld." + failed_to_delete: "Kan het 2FA-apparaat niet verwijderen." + is_default_cannot_delete: "Het apparaat is gemarkeerd als standaard en kan niet worden verwijderd vanwege een actief beveiligingsbeleid. Markeer een ander apparaat als standaard voordat u het verwijdert." + not_existing: "Er is geen 2FA-apparaat geregistreerd voor uw account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Gebruik uw app-gebaseerde authenticator' - provisioning_uri: 'Voorbereiden van URI' - secret_key: 'Geheime sleutel' - time_based: 'Tijdgebonden' - account: 'Accountnaam / verstrekker' + title: "Gebruik uw app-gebaseerde authenticator" + provisioning_uri: "Voorbereiden van URI" + secret_key: "Geheime sleutel" + time_based: "Tijdgebonden" + account: "Accountnaam / verstrekker" setup: | Voor het instellen van twee-factorenauthenticatie met Google Authenticator, download de applicatie vanuit de Apple App Store of Google Play Store. Na het openen van de app, kunt u de volgende QR-code scannen om het apparaat te registreren. @@ -128,31 +135,32 @@ nl: description: | Registreer een applicatie-authenticator voor gebruik met OpenProject met behulp van de tijdgebonden eenmalige wachtwoordauthenticatie-standaard (TOTP). Veelvoorkomende voorbeelden zijn Google Authenticator of Authy. sms: - title: 'Gebruik uw mobiele telefoon' - redacted_identifier: 'Mobiel apparaat (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we hebben u een authenticatiecode gestuurd via %{delivery_channel}' + title: "Gebruik uw mobiele telefoon" + redacted_identifier: "Mobiel apparaat (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we hebben u een authenticatiecode gestuurd via %{delivery_channel}" description: | Registreer uw mobiele telefoonnummer voor de levering van OpenProject eenmalige wachtwoorden. sns: - delivery_failed: 'SNS levering mislukt:' + delivery_failed: "SNS levering mislukt:" message_bird: - sms_delivery_failed: 'MessageBird SMS versturen mislukt.' - voice_delivery_failed: 'MessageBird spraakoproep mislukt.' + sms_delivery_failed: "MessageBird SMS versturen mislukt." + voice_delivery_failed: "MessageBird spraakoproep mislukt." strategies: - totp: 'Verificator toepassing' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Verificator toepassing" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Een eenmalig wachtwoord is verzonden naar uw mobiele telefoon." - label_two_factor_authentication: 'Twee-factor-authenticatie' + label_two_factor_authentication: "Twee-factor-authenticatie" forced_registration: - required_to_add_device: 'Voor een actief beveiligingsbeleid moet u authenticatie met twee factoren inschakelen. Gebruik het volgende formulier om een apparaat te registreren.' + required_to_add_device: "Voor een actief beveiligingsbeleid moet u authenticatie met twee factoren inschakelen. Gebruik het volgende formulier om een apparaat te registreren." remember: active_session_notice: > Uw account heeft een actieve onthoud cookie geldig tot %{expires_on}. Met dit cookie kun je tot die tijd zonder tweede factor inloggen op je account. other_active_session_notice: Je account heeft een actieve cookie onthouden tijdens een andere sessie. - label: 'Onthoud' - clear_cookie: 'Klik hier om alle onthouden 2FA-sessies te verwijderen.' - cookie_removed: 'Alle onthouden 2FA sessies zijn verwijderd.' + label: "Onthoud" + clear_cookie: "Klik hier om alle onthouden 2FA-sessies te verwijderen." + cookie_removed: "Alle onthouden 2FA sessies zijn verwijderd." dont_ask_again: "Maak een cookie aan om de 2FA-authenticatie op deze client te onthouden gedurende %{days} dagen." field_phone: "Mobiele telefoon" field_otp: "Eenmalig wachtwoord" @@ -162,10 +170,10 @@ nl: notice_account_otp_send_failed: "Uw eenmalige wachtwoord kan niet worden verzonden." notice_account_has_no_phone: "Er is geen mobiel nummer gekoppeld aan uw account." label_expiration_hint: "%{date} of bij het afmelden" - label_actions: 'Acties' - label_confirmed: 'Bevestigd' - button_continue: 'Verdergaan' - button_make_default: 'Markeren als standaard' + label_actions: "Acties" + label_confirmed: "Bevestigd" + button_continue: "Verdergaan" + button_make_default: "Markeren als standaard" label_unverified_phone: "GSM nog niet geverifieerd" notice_phone_number_format: "Voer het nummer alstublieft in de volgende indeling in: + XX XXXXXXXX." text_otp_not_receive: "Andere verificatiemethoden" diff --git a/modules/two_factor_authentication/config/locales/crowdin/no.yml b/modules/two_factor_authentication/config/locales/crowdin/no.yml index 0d159aaf0bf8..1cd122988310 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/no.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/no.yml @@ -7,14 +7,14 @@ activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifikator' - default: 'Bruk som standard' + identifier: "Identifikator" + default: "Bruk som standard" two_factor_authentication/device/sms: phone_number: "Telefonnummer" errors: models: two_factor_authentication/device: - default_already_exists: 'er allerede angitt for en annen OTP-enhet.' + default_already_exists: "er allerede angitt for en annen OTP-enhet." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ two_factor_authentication/device: "2FA-enhet" two_factor_authentication/device/sms: "Mobiltelefon" two_factor_authentication/device/totp: "Autentiseringsprogram" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA-levering har blitt deaktivert." error_no_device: "Ingen registrert 2FA-enhet funnet for denne brukeren, til tross for at det kreves for denne forekomsten." error_no_matching_strategy: "Ingen matchende 2FA-strategi tilgjengelig for denne brukeren. Ta kontakt med administratoren din." - error_is_enforced_not_active: 'Konfigurasjonsfeil: Tofaktorautentisering har blitt håndhevet, men ingen aktive strategier eksisterer.' - error_invalid_backup_code: 'Ugyldig 2FA backup-kode' + error_is_enforced_not_active: "Konfigurasjonsfeil: Tofaktorautentisering har blitt håndhevet, men ingen aktive strategier eksisterer." + error_invalid_backup_code: "Ugyldig 2FA backup-kode" channel_unavailable: "Leveringskanalen %{channel} er utilgjengelig." no_valid_phone_number: "Det finnes ikke et gyldig telefonnummer." label_pwd_confirmation: "Passord" @@ -37,47 +38,48 @@ label_default_device: "Standard 2FA-enhet" label_device: "2FA-enhet" label_devices: "2FA-enheter" - label_one_time_password: 'Engangspassord' - label_2fa_enabled: 'Tofaktorautentisering er aktiv' - label_2fa_disabled: 'Tofaktorautentisering ikke aktiv' + label_one_time_password: "Engangspassord" + label_2fa_enabled: "Tofaktorautentisering er aktiv" + label_2fa_disabled: "Tofaktorautentisering ikke aktiv" text_otp_delivery_message_sms: "Ditt engangspassord for %{app_title} er %{token}" text_otp_delivery_message_voice: "Ditt %{app_title} engangspassord er %{pause}%{token}. %{pause} Jeg repeterer: %{pause}%{token}" - text_enter_2fa: 'Vennligst skriv inn engangspassordet fra enheten.' - text_2fa_enabled: 'Ved hvert innlogging vil du bli bedt om å legge inn et OTP-token fra standard 2FA-enheten.' - text_2fa_disabled: 'For å aktivere tofaktorautentisering, bruk knappen ovenfor for å registrere en ny 2FA-enhet. Hvis du allerede har en enhet, må du gjøre det til en standard.' + text_enter_2fa: "Vennligst skriv inn engangspassordet fra enheten." + text_2fa_enabled: "Ved hvert innlogging vil du bli bedt om å legge inn et OTP-token fra standard 2FA-enheten." + text_2fa_disabled: "For å aktivere tofaktorautentisering, bruk knappen ovenfor for å registrere en ny 2FA-enhet. Hvis du allerede har en enhet, må du gjøre det til en standard." login: enter_backup_code_title: Skriv inn sikkerhetskode enter_backup_code_text: Vennligst skriv inn en gyldig sikkerhetskode fra koderlisten din hvis du ikke lenger kan få tilgang til de registrerte 2FA-enhetene dine. - other_device: 'Bruk en annen enhet eller sikkerhetskode' + other_device: "Bruk en annen enhet eller sikkerhetskode" settings: - title: '2FA innstillinger' - current_configuration: 'Gjeldende konfigurasjon' - label_active_strategies: 'Aktive 2FA-strategier' - label_enforced: 'Krev 2FA' - label_remember: 'Husk 2FA innlogging' + title: "2FA innstillinger" + current_configuration: "Gjeldende konfigurasjon" + label_active_strategies: "Aktive 2FA-strategier" + label_enforced: "Krev 2FA" + label_remember: "Husk 2FA innlogging" text_configuration: | Obs! Disse verdiene representerer gjeldende konfigurasjon for hele programmet. Du kan ikke deaktivere innstillingene som er tvunget av konfigurasjonen eller endre de gjeldende aktive strategiene, siden de krever en server omstart. text_configuration_guide: For mer informasjon, kontroller konfigurasjonsveiledningen. - text_enforced: 'Aktiver denne innstillingen for å tvinge alle brukere til å registrere en 2FA-enhet på neste pålogging. Kan bare deaktiveres når denne ikke er tvungen i konfigurasjonen.' + text_enforced: "Aktiver denne innstillingen for å tvinge alle brukere til å registrere en 2FA-enhet på neste pålogging. Kan bare deaktiveres når denne ikke er tvungen i konfigurasjonen." text_remember: | Angi dette til større enn null for å tillate brukerne å huske 2FA autentisering i et gitt antall dager. (Automatic Translation) De vil ikke bli bedt om å re-angi den i løpet av den perioden. Kan bare angis når den ikke håndheves av konfigurasjonen. - error_invalid_settings: '2FA strategiene du har valgt er ugyldige' - failed_to_save_settings: 'Kunne ikke oppdatere 2FA-innstillinger: %{message}' + error_invalid_settings: "2FA strategiene du har valgt er ugyldige" + failed_to_save_settings: "Kunne ikke oppdatere 2FA-innstillinger: %{message}" admin: - self_edit_path: 'For å legge til eller endre dine egne 2FA-enheter, vennligst gå til %{self_edit_link}' - self_edit_link_name: 'Tofaktorautentisering på kontosiden din' - self_edit_forbidden: 'Du kan ikke redigere dine egne 2FA-enheter på denne banen. Gå til Min konto> Tofaktorautentisering i stedet.' - no_devices_for_user: 'Ingen 2FA-enhet er registrert for denne brukeren.' - all_devices_deleted: 'Ingen 2FA-enhet er registrert for denne brukeren. Alle 2FA-enheter av denne brukeren er slettet' - delete_all_are_you_sure: 'Er du sikker på at du vil slette alle 2FA-enheter for denne brukeren?' - button_delete_all_devices: 'Slett registrerte 2FA-enheter' - button_register_mobile_phone_for_user: 'Registrer mobiltelefon' - text_2fa_enabled: 'Ved hver pålogging vil denne brukeren bli bedt om å legge inn en OTP-nøkkel fra standard 2FA-enheten.' + self_edit_path: "For å legge til eller endre dine egne 2FA-enheter, vennligst gå til %{self_edit_link}" + self_edit_link_name: "Tofaktorautentisering på kontosiden din" + self_edit_forbidden: "Du kan ikke redigere dine egne 2FA-enheter på denne banen. Gå til Min konto> Tofaktorautentisering i stedet." + no_devices_for_user: "Ingen 2FA-enhet er registrert for denne brukeren." + all_devices_deleted: "Ingen 2FA-enhet er registrert for denne brukeren. Alle 2FA-enheter av denne brukeren er slettet" + delete_all_are_you_sure: "Er du sikker på at du vil slette alle 2FA-enheter for denne brukeren?" + button_delete_all_devices: "Slett registrerte 2FA-enheter" + button_register_mobile_phone_for_user: "Registrer mobiltelefon" + text_2fa_enabled: "Ved hver pålogging vil denne brukeren bli bedt om å legge inn en OTP-nøkkel fra standard 2FA-enheten." text_2fa_disabled: "Brukeren har ikke satt opp en 2FA-enhet via sin «Min konto side»" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Tofaktorautentisering' - description: 'Styrk sikkerheten til OpenProject ved å tilby (eller håndheve) godkjenning av tofaktor for alle prosjektmedlemmer.' + title: "Tofaktorautentisering" + description: "Styrk sikkerheten til OpenProject ved å tilby (eller håndheve) godkjenning av tofaktor for alle prosjektmedlemmer." backup_codes: none_found: Det finnes ingen sikkerhetskoder for denne kontoen. singular: Sikkerhetskopieringskode @@ -88,37 +90,42 @@ Bruk følgende knapp for å generere et nytt sett med sikkerhetskoder. generate: title: Generer sikkerhetskoder - keep_safe_as_password: 'Viktig! Behandle disse kodene som passord.' - keep_safe_warning: 'Enten lagre dem i passordbehandleren din, eller skriv ut denne siden og sett på et trygt sted.' - regenerate_warning: 'Advarsel: Hvis du har opprettet sikkerhetskoder før, blir de ugyldig og vil ikke lenger fungere.' + keep_safe_as_password: "Viktig! Behandle disse kodene som passord." + keep_safe_warning: "Enten lagre dem i passordbehandleren din, eller skriv ut denne siden og sett på et trygt sted." + regenerate_warning: "Advarsel: Hvis du har opprettet sikkerhetskoder før, blir de ugyldig og vil ikke lenger fungere." devices: - add_new: 'Legg til ny 2FA-enhet' - register: 'Registrer enheten' - confirm_default: 'Bekreft å bytte standard enhet' - confirm_device: 'Bekreft enheten' - confirm_now: 'Ikke bekreftet, klikk her for å aktivere' - cannot_delete_default: 'Kan ikke slette standard enhet' - make_default_are_you_sure: 'Er du sikker på at du vil gjøre denne 2FA-enheten til standard?' - make_default_failed: 'Kunne ikke oppdatere standard 2FA-enheten.' - deletion_are_you_sure: 'Er du sikker på at du vil slette denne 2FA-enheten?' - registration_complete: '2FA enhet registrering fullført!' - registration_failed_token_invalid: '2FA-enhetsregistrering mislyktes, tokenet var ugyldig.' - registration_failed_update: '2FA-enhetsregistrering mislyktes, symbolet var gyldig, men enheten kunne ikke oppdateres.' - confirm_send_failed: 'Bekreftelse av 2FA-enheten din mislyktes.' - button_complete_registration: 'Fullfør 2FA-registrering' + add_new: "Legg til ny 2FA-enhet" + register: "Registrer enheten" + confirm_default: "Bekreft å bytte standard enhet" + confirm_device: "Bekreft enheten" + confirm_now: "Ikke bekreftet, klikk her for å aktivere" + cannot_delete_default: "Kan ikke slette standard enhet" + make_default_are_you_sure: "Er du sikker på at du vil gjøre denne 2FA-enheten til standard?" + make_default_failed: "Kunne ikke oppdatere standard 2FA-enheten." + deletion_are_you_sure: "Er du sikker på at du vil slette denne 2FA-enheten?" + registration_complete: "2FA enhet registrering fullført!" + registration_failed_token_invalid: "2FA-enhetsregistrering mislyktes, tokenet var ugyldig." + registration_failed_update: "2FA-enhetsregistrering mislyktes, symbolet var gyldig, men enheten kunne ikke oppdateres." + confirm_send_failed: "Bekreftelse av 2FA-enheten din mislyktes." + button_complete_registration: "Fullfør 2FA-registrering" text_confirm_to_complete_html: "Vennligst fullfør registrering av enheten %{identifier} ved å angi et engangspassord fra standardenheten." text_confirm_to_change_default_html: "Vennligst bekreft at standardinnstillingen din endres til %{new_identifier} ved å skrive inn et engangspassord fra den gjeldende standard enheten din." - text_identifier: 'Du kan gi enheten en egendefinert Id ved hjelp av dette feltet.' - failed_to_delete: 'Kunne ikke slette 2FA-enheten.' - is_default_cannot_delete: 'Enheten er merket som standard og kan ikke slettes på grunn av en aktiv sikkerhetspolicy. Merk en annen enhet som standard før du sletter.' - not_existing: 'Ingen 2FA-enhet er registrert for kontoen din.' - request_2fa: Vennligst skriv koden fra din %{device_name} for å bekrefte identiteten din. + text_identifier: "Du kan gi enheten en egendefinert Id ved hjelp av dette feltet." + failed_to_delete: "Kunne ikke slette 2FA-enheten." + is_default_cannot_delete: "Enheten er merket som standard og kan ikke slettes på grunn av en aktiv sikkerhetspolicy. Merk en annen enhet som standard før du sletter." + not_existing: "Ingen 2FA-enhet er registrert for kontoen din." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Bruk appbasert godkjenning' - provisioning_uri: 'Levering av URI' - secret_key: 'Hemmelig nøkkel' - time_based: 'Tidsbasert' - account: 'Kontonavn / Utsteder' + title: "Bruk appbasert godkjenning" + provisioning_uri: "Levering av URI" + secret_key: "Hemmelig nøkkel" + time_based: "Tidsbasert" + account: "Kontonavn / Utsteder" setup: | For å sette opp tofaktorautentisering med Google Authenticator, last ned programmet fra Apple App Store eller Google Play Store. Etter at du har åpnet appen, kan du skanne følgende QR-kode for å registrere enheten. @@ -130,31 +137,32 @@ Registrer en applikasjonsautentiserer for bruk med OpenProject ved hjelp av den tidsbaserte engangsautentiseringsstandarden for passord. Vanlige eksempler er Google Authenticator eller Authy. sms: - title: 'Bruk mobiltelefonen din' - redacted_identifier: 'Mobil enhet (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, vi sendte deg en godkjenningskode via %{delivery_channel}' + title: "Bruk mobiltelefonen din" + redacted_identifier: "Mobil enhet (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, vi sendte deg en godkjenningskode via %{delivery_channel}" description: | Registrer mobilnummeret ditt for levering av OpenProject engangs passord. sns: - delivery_failed: 'SNS-levering mislyktes:' + delivery_failed: "SNS-levering mislyktes:" message_bird: - sms_delivery_failed: 'MessageBird SMS levering mislyktes.' - voice_delivery_failed: 'MessageBird taleanrop mislyktes.' + sms_delivery_failed: "MessageBird SMS levering mislyktes." + voice_delivery_failed: "MessageBird taleanrop mislyktes." strategies: - totp: 'Autentiseringsprogram' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Autentiseringsprogram" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Et engangspassord er sendt til din mobiltelefon." - label_two_factor_authentication: 'Tofaktorautentisering' + label_two_factor_authentication: "Tofaktorautentisering" forced_registration: - required_to_add_device: 'En aktiv sikkerhetspolicy krever at du aktiverer tofaktorautentisering. Vennligst bruk følgende skjema for å registrere en enhet.' + required_to_add_device: "En aktiv sikkerhetspolicy krever at du aktiverer tofaktorautentisering. Vennligst bruk følgende skjema for å registrere en enhet." remember: active_session_notice: > Kontoen din har en aktiv informasjonskapsel gyldig til %{expires_on}. Denne informasjonskapselen lar deg logge inn uten en ekstra faktor til kontoen din inntil utløp. other_active_session_notice: Kontoen din har en aktiv (husk) cookie på en annen sesjon. - label: 'Husk' - clear_cookie: 'Klikk her for å fjerne alle huskede 2FA-økter.' - cookie_removed: 'Alle huskede 2FA-økter har blitt fjernet.' + label: "Husk" + clear_cookie: "Klikk her for å fjerne alle huskede 2FA-økter." + cookie_removed: "Alle huskede 2FA-økter har blitt fjernet." dont_ask_again: "Opprette informasjonskapsel for å huske 2FA-autentisering på denne klienten i %{days} dager." field_phone: "Mobiltelefon" field_otp: "Engangspassord" @@ -164,10 +172,10 @@ notice_account_otp_send_failed: "Ditt engangspassord kunne ikke sendes." notice_account_has_no_phone: "Ingen mobilnummer er knyttet til kontoen din." label_expiration_hint: "%{date} eller på logg ut" - label_actions: 'Handlinger' - label_confirmed: 'Bekreftet' - button_continue: 'Fortsette' - button_make_default: 'Merk som standard' + label_actions: "Handlinger" + label_confirmed: "Bekreftet" + button_continue: "Fortsette" + button_make_default: "Merk som standard" label_unverified_phone: "Mobiltelefonen er ikke bekreftet ennå" notice_phone_number_format: "Vennligst skriv inn nummeret i følgende format: + XX XXXXXXXX." text_otp_not_receive: "Andre verifikasjonsmetoder" diff --git a/modules/two_factor_authentication/config/locales/crowdin/pl.yml b/modules/two_factor_authentication/config/locales/crowdin/pl.yml index f09c3e2a52b2..ad32e15c8a10 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/pl.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/pl.yml @@ -7,14 +7,14 @@ pl: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identyfikator' - default: 'Użyj jako domyślnego' + identifier: "Identyfikator" + default: "Użyj jako domyślnego" two_factor_authentication/device/sms: phone_number: "Numer telefonu" errors: models: two_factor_authentication/device: - default_already_exists: 'jest już ustawione dla innego urządzenia OTP.' + default_already_exists: "jest już ustawione dla innego urządzenia OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ pl: two_factor_authentication/device: "Urządzenie 2FA (2 Factory Authenticator)" two_factor_authentication/device/sms: "Telefon komórkowy" two_factor_authentication/device/totp: "Aplikacja Authenticator" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Doręczanie 2FA została wyłączona (zablokowana)." error_no_device: "Nie znaleziono zarejestrowanego urządzenia 2FA dla tego użytkownika, mimo że jest ono wymagane dla tego wystąpienia." error_no_matching_strategy: "Dla tego użytkownika nie jest dostępna żadna zgodna strategia 2FA. Skontaktuj się z administratorem." - error_is_enforced_not_active: 'Błąd konfiguracji: Wymuszono uwierzytelnianie dwuskładnikowe, ale nie istnieją żadne aktywne strategie.' - error_invalid_backup_code: 'Nieprawidłowy kod kopii zapasowej 2FA' + error_is_enforced_not_active: "Błąd konfiguracji: Wymuszono uwierzytelnianie dwuskładnikowe, ale nie istnieją żadne aktywne strategie." + error_invalid_backup_code: "Nieprawidłowy kod kopii zapasowej 2FA" channel_unavailable: "Kanał dostaw %{channel} jest niedostępny." no_valid_phone_number: "Brak prawidłowego numeru telefonu." label_pwd_confirmation: "Hasło" @@ -37,47 +38,48 @@ pl: label_default_device: "Domyślne urządzenie 2FA" label_device: "Urządzenie 2FA" label_devices: "Urządzenie 2FA" - label_one_time_password: 'Jednorazowe hasło' - label_2fa_enabled: 'Uwierzytelnianie dwuskładnikowe jest aktywne' - label_2fa_disabled: 'Uwierzytelnianie dwuskładnikowe nie jest aktywne' + label_one_time_password: "Jednorazowe hasło" + label_2fa_enabled: "Uwierzytelnianie dwuskładnikowe jest aktywne" + label_2fa_disabled: "Uwierzytelnianie dwuskładnikowe nie jest aktywne" text_otp_delivery_message_sms: "Hasło jednorazowe %{app_title} to %{token}" text_otp_delivery_message_voice: "Hasło jednorazowe %{app_title} to: %{pause} %{token}. %{pause} I powtórz: %{pause} %{token}" - text_enter_2fa: 'Wprowadź jednorazowe hasło z urządzenia.' - text_2fa_enabled: 'Po każdym logowaniu zostaniesz poproszony o wprowadzenie tokena OTP z domyślnego urządzenia 2FA.' - text_2fa_disabled: 'Aby włączyć uwierzytelnianie dwuskładnikowe, użyj przycisku powyżej, aby zarejestrować nowe urządzenie 2FA. Jeśli masz już urządzenie, musisz ustawić je jako domyślne.' + text_enter_2fa: "Wprowadź jednorazowe hasło z urządzenia." + text_2fa_enabled: "Po każdym logowaniu zostaniesz poproszony o wprowadzenie tokena OTP z domyślnego urządzenia 2FA." + text_2fa_disabled: "Aby włączyć uwierzytelnianie dwuskładnikowe, użyj przycisku powyżej, aby zarejestrować nowe urządzenie 2FA. Jeśli masz już urządzenie, musisz ustawić je jako domyślne." login: enter_backup_code_title: Wprowadź kod zapasowy enter_backup_code_text: Wprowadź prawidłowy kod zapasowy z listy kodów, na wypadek, gdyby nie było już dostępu do zarejestrowanych urządzeń 2FA. - other_device: 'Użyj innego urządzenia lub kodu zapasowego' + other_device: "Użyj innego urządzenia lub kodu zapasowego" settings: - title: 'Ustawienia uwierzytelniania 2FA' - current_configuration: 'Bieżąca konfiguracja' - label_active_strategies: 'Aktywne strategie uwierzytelniania 2FA' - label_enforced: 'Wymuszaj uwierzytelnianie 2FA' - label_remember: 'Pamiętaj login uwierzyteniania 2FA' + title: "Ustawienia uwierzytelniania 2FA" + current_configuration: "Bieżąca konfiguracja" + label_active_strategies: "Aktywne strategie uwierzytelniania 2FA" + label_enforced: "Wymuszaj uwierzytelnianie 2FA" + label_remember: "Pamiętaj login uwierzyteniania 2FA" text_configuration: | Uwaga: te wartości reprezentują bieżącą konfigurację całej aplikacji. Nie można wyłączyć ustawień wymuszonych przez konfigurację ani zmienić bieżących aktywnych strategii, ponieważ wymagają one ponownego uruchomienia serwera. text_configuration_guide: Aby uzyskać dodatkowe informacje, sprawdź przewodnik po konfiguracji. - text_enforced: 'Włącz to ustawienie, aby wymuszać na wszystkich użytkownikach zarejestrowanie urządzenia 2FA przy następnym logowaniu. Wyłączenie ustawienia możliwe tylko wtedy, gdy nie jest wymuszane przez konfigurację.' + text_enforced: "Włącz to ustawienie, aby wymuszać na wszystkich użytkownikach zarejestrowanie urządzenia 2FA przy następnym logowaniu. Wyłączenie ustawienia możliwe tylko wtedy, gdy nie jest wymuszane przez konfigurację." text_remember: | Ustaw tu wartość większą od zera, aby umożliwić użytkownikom zapamiętywanie ich uwierzytelnienia 2FA przez określoną liczbę dni. W tym okresie nie będzie od nich żądane jego ponowne wprowadzenie. Ustawienie możliwe tylko wtedy, gdy nie jest wymuszane przez konfigurację. - error_invalid_settings: 'Wybrane strategie uwierzytelniania 2FA są nieprawidłowe' - failed_to_save_settings: 'Nie można zaktualizować ustawień uwierzytelniania 2FA: %{message}' + error_invalid_settings: "Wybrane strategie uwierzytelniania 2FA są nieprawidłowe" + failed_to_save_settings: "Nie można zaktualizować ustawień uwierzytelniania 2FA: %{message}" admin: - self_edit_path: 'Aby dodać lub zmodyfikować własne urządzenia 2FA, przejdź do %{self_edit_link}' - self_edit_link_name: 'Uwierzytelnianie dwuskładnikowe na stronie konta' - self_edit_forbidden: 'Nie możesz edytować własnych urządzeń 2FA na tej ścieżce. Przejdź do Moje konto> Uwierzytelnianie dwuetapowe.' - no_devices_for_user: 'Żadne urządzenie 2FA nie zostało zarejestrowane dla tego użytkownika.' - all_devices_deleted: 'Wszystkie urządzenia 2FA tego użytkownika zostały usunięte' - delete_all_are_you_sure: 'Czy na pewno chcesz usunąć wszystkie urządzenia 2FA dla tego użytkownika?' - button_delete_all_devices: 'Usuń zarejestrowane urządzenia 2FA' - button_register_mobile_phone_for_user: 'Zarejestruj telefon komórkowy' - text_2fa_enabled: 'Po każdym logowaniu ten użytkownik zostanie poproszony o wprowadzenie tokena OTP z jego domyślnego urządzenia 2FA.' + self_edit_path: "Aby dodać lub zmodyfikować własne urządzenia 2FA, przejdź do %{self_edit_link}" + self_edit_link_name: "Uwierzytelnianie dwuskładnikowe na stronie konta" + self_edit_forbidden: "Nie możesz edytować własnych urządzeń 2FA na tej ścieżce. Przejdź do Moje konto> Uwierzytelnianie dwuetapowe." + no_devices_for_user: "Żadne urządzenie 2FA nie zostało zarejestrowane dla tego użytkownika." + all_devices_deleted: "Wszystkie urządzenia 2FA tego użytkownika zostały usunięte" + delete_all_are_you_sure: "Czy na pewno chcesz usunąć wszystkie urządzenia 2FA dla tego użytkownika?" + button_delete_all_devices: "Usuń zarejestrowane urządzenia 2FA" + button_register_mobile_phone_for_user: "Zarejestruj telefon komórkowy" + text_2fa_enabled: "Po każdym logowaniu ten użytkownik zostanie poproszony o wprowadzenie tokena OTP z jego domyślnego urządzenia 2FA." text_2fa_disabled: "Użytkownik nie ustawił urządzenia 2FA na swojej stronie „Moje konto”" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Uwierzytelnianie dwuskładnikowe' - description: 'Potwierdź bezpieczeństwo twojej instancji OpenProject poprzez zaoferowanie (lub wyegzekwowanie) uwierzytelnienia dwuskładnikowego wszystkim członkom projektu.' + title: "Uwierzytelnianie dwuskładnikowe" + description: "Potwierdź bezpieczeństwo twojej instancji OpenProject poprzez zaoferowanie (lub wyegzekwowanie) uwierzytelnienia dwuskładnikowego wszystkim członkom projektu." backup_codes: none_found: Na tym koncie nie ma kodów zapasowych. singular: Kod zapasowy @@ -88,37 +90,42 @@ pl: Użyj następującego przycisku, aby wygenerować nowy zestaw kodów zapasowych. generate: title: Wygeneruj kody zapasowe - keep_safe_as_password: 'Ważny! Traktuj te kody jako hasła.' - keep_safe_warning: 'Zapisz je w menedżerze haseł lub wydrukuj tę stronę i umieść w bezpiecznym miejscu.' - regenerate_warning: 'Ostrzeżenie: jeśli wcześniej utworzyłeś kody zapasowe, zostaną one unieważnione i przestaną działać.' + keep_safe_as_password: "Ważny! Traktuj te kody jako hasła." + keep_safe_warning: "Zapisz je w menedżerze haseł lub wydrukuj tę stronę i umieść w bezpiecznym miejscu." + regenerate_warning: "Ostrzeżenie: jeśli wcześniej utworzyłeś kody zapasowe, zostaną one unieważnione i przestaną działać." devices: - add_new: 'Dodaj nowe urządzenie 2FA' - register: 'Zarejestruj urządzenie' - confirm_default: 'Potwierdź zmianę domyślnego urządzenia' - confirm_device: 'Potwierdź urządzenie' - confirm_now: 'Nie potwierdzono, kliknij tutaj, aby aktywować' - cannot_delete_default: 'Nie można usunąć domyślnego urządzenia' - make_default_are_you_sure: 'Czy na pewno chcesz ustawić to urządzenie 2FA jako domyślne?' - make_default_failed: 'Nie udało się zaktualizować domyślnego urządzenia 2FA.' - deletion_are_you_sure: 'Czy na pewno chcesz usunąć to urządzenie 2FA?' - registration_complete: 'Rejestracja urządzenia 2FA zakończona!' - registration_failed_token_invalid: 'Rejestracja urządzenia 2FA nie powiodła się, token był nieprawidłowy.' - registration_failed_update: 'Rejestracja urządzenia 2FA nie powiodła się, token był ważny, ale urządzenie nie mogło zostać zaktualizowane.' - confirm_send_failed: 'Potwierdzenie twojego urządzenia 2FA nie powiodło się.' - button_complete_registration: 'Ukończ rejestrację 2FA' + add_new: "Dodaj nowe urządzenie 2FA" + register: "Zarejestruj urządzenie" + confirm_default: "Potwierdź zmianę domyślnego urządzenia" + confirm_device: "Potwierdź urządzenie" + confirm_now: "Nie potwierdzono, kliknij tutaj, aby aktywować" + cannot_delete_default: "Nie można usunąć domyślnego urządzenia" + make_default_are_you_sure: "Czy na pewno chcesz ustawić to urządzenie 2FA jako domyślne?" + make_default_failed: "Nie udało się zaktualizować domyślnego urządzenia 2FA." + deletion_are_you_sure: "Czy na pewno chcesz usunąć to urządzenie 2FA?" + registration_complete: "Rejestracja urządzenia 2FA zakończona!" + registration_failed_token_invalid: "Rejestracja urządzenia 2FA nie powiodła się, token był nieprawidłowy." + registration_failed_update: "Rejestracja urządzenia 2FA nie powiodła się, token był ważny, ale urządzenie nie mogło zostać zaktualizowane." + confirm_send_failed: "Potwierdzenie twojego urządzenia 2FA nie powiodło się." + button_complete_registration: "Ukończ rejestrację 2FA" text_confirm_to_complete_html: "Ukończ rejestrację urządzenia %{identifier}, wprowadzając jednorazowe hasło z urządzenia domyślnego." text_confirm_to_change_default_html: "Proszę potwierdzić, zmiana domyślnego urządzenia do %{new_identifier} poprzez wpisanie hasła jednorazowego z bieżącego urządzenia domyślnego." - text_identifier: 'Możesz nadać urządzeniu niestandardowy identyfikator za pomocą tego pola.' - failed_to_delete: 'Nie można usunąć urządzenia 2FA.' - is_default_cannot_delete: 'Urządzenie jest oznaczone jako domyślne i nie można go usunąć z powodu aktywnej polityki bezpieczeństwa. Przed usunięciem oznacz urządzenie jako domyślne.' - not_existing: 'Nie zarejestrowano urządzenia 2FA dla Twojego konta.' - request_2fa: Wprowadź kod z %{device_name}, aby zweryfikować swoją tożsamość. + text_identifier: "Możesz nadać urządzeniu niestandardowy identyfikator za pomocą tego pola." + failed_to_delete: "Nie można usunąć urządzenia 2FA." + is_default_cannot_delete: "Urządzenie jest oznaczone jako domyślne i nie można go usunąć z powodu aktywnej polityki bezpieczeństwa. Przed usunięciem oznacz urządzenie jako domyślne." + not_existing: "Nie zarejestrowano urządzenia 2FA dla Twojego konta." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Użyj uwierzytelniacza opartego na aplikacji' - provisioning_uri: 'Inicjowanie obsługi URI' - secret_key: 'Tajny klucz' - time_based: 'Oparte na czasie' - account: 'Nazwa rachunku / wystawcy' + title: "Użyj uwierzytelniacza opartego na aplikacji" + provisioning_uri: "Inicjowanie obsługi URI" + secret_key: "Tajny klucz" + time_based: "Oparte na czasie" + account: "Nazwa rachunku / wystawcy" setup: | Aby skonfigurować uwierzytelnianie dwuskładnikowe za pomocą Google Authenticator, pobierz aplikację ze sklepu Apple App Store lub Google Play Store. Po otwarciu aplikacji możesz zeskanować poniższy kod QR, aby zarejestrować urządzenie. @@ -130,31 +137,32 @@ pl: Zarejestruj aplikację uwierzytelniającą do użytku z OpenProject, korzystając z opartego na czasie standardu uwierzytelniania za pomocą hasła jednorazowego. Typowymi przykładami są Google Authenticator lub Authy. sms: - title: 'Użyj swojego telefonu komórkowego' - redacted_identifier: 'Urządzenie mobilne (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, wysłaliśmy Ci kod uwierzytelniający za pośrednictwem %{delivery_channel}' + title: "Użyj swojego telefonu komórkowego" + redacted_identifier: "Urządzenie mobilne (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, wysłaliśmy Ci kod uwierzytelniający za pośrednictwem %{delivery_channel}" description: | Zarejestruj swój numer telefonu komórkowego w celu dostarczenia jednorazowych haseł OpenProject. sns: - delivery_failed: 'Nie udało się dostarczyć SNS:' + delivery_failed: "Nie udało się dostarczyć SNS:" message_bird: - sms_delivery_failed: 'MessageBird – dostarczenie wiadomości SMS nie powiodło się.' - voice_delivery_failed: 'MessageBird – połączenie głosowe nie powiodło się.' + sms_delivery_failed: "MessageBird – dostarczenie wiadomości SMS nie powiodło się." + voice_delivery_failed: "MessageBird – połączenie głosowe nie powiodło się." strategies: - totp: 'Aplikacja do uwierzytelniania' - sns: 'Amazon SNS' - resdt: 'Interfejs API SMS Rest' + totp: "Aplikacja do uwierzytelniania" + sns: "Amazon SNS" + resdt: "Interfejs API SMS Rest" + webauthn: "WebAuthn" mobile_transmit_notification: "Hasło jednorazowe zostało wysłane na Twój telefon komórkowy." - label_two_factor_authentication: 'Uwierzytelnianie dwuskładnikowe' + label_two_factor_authentication: "Uwierzytelnianie dwuskładnikowe" forced_registration: - required_to_add_device: 'Aktywna polityka bezpieczeństwa wymaga włączenia uwierzytelniania dwuskładnikowego. Użyj poniższego formularza, aby zarejestrować urządzenie.' + required_to_add_device: "Aktywna polityka bezpieczeństwa wymaga włączenia uwierzytelniania dwuskładnikowego. Użyj poniższego formularza, aby zarejestrować urządzenie." remember: active_session_notice: > Na tym koncie aktywny jest plik cookie pamiętania, ważny do %{expires_on}. Do tego czasu plik cookie będzie umożliwiać logowanie się do konta bez drugiego składnika. other_active_session_notice: Twoje konto ma aktywny plik cookie pamiętania w innej sesji. - label: 'Zapamiętaj' - clear_cookie: 'Kliknij tutaj, aby usunąć wszystkie zapamiętane sesje uwierzytelniania 2FA.' - cookie_removed: 'Wszystkie zapamiętane sesje uwierzytelniania 2FA zostały usunięte.' + label: "Zapamiętaj" + clear_cookie: "Kliknij tutaj, aby usunąć wszystkie zapamiętane sesje uwierzytelniania 2FA." + cookie_removed: "Wszystkie zapamiętane sesje uwierzytelniania 2FA zostały usunięte." dont_ask_again: "Utwórz pliki cookie w celu zapamiętania uwierzytelnienia 2FA na tym kliencie na %{days} dni." field_phone: "Komórka" field_otp: "Jednorazowe hasło" @@ -164,10 +172,10 @@ pl: notice_account_otp_send_failed: "Twoje jednorazowe hasło nie mogło zostać wysłane." notice_account_has_no_phone: "Żaden numer telefonu komórkowego nie jest powiązany z Twoim kontem." label_expiration_hint: "%{date} lub wylogowania" - label_actions: 'Działania' - label_confirmed: 'Zatwardziały' - button_continue: 'Dalej' - button_make_default: 'Oznacz jako domyślny' + label_actions: "Działania" + label_confirmed: "Zatwardziały" + button_continue: "Dalej" + button_make_default: "Oznacz jako domyślny" label_unverified_phone: "Telefon komórkowy jeszcze niezweryfikowany" notice_phone_number_format: "Wprowadź numer w następującym formacie: + XX XXXXXXXX." text_otp_not_receive: "Inne metody weryfikacji" diff --git a/modules/two_factor_authentication/config/locales/crowdin/pt.yml b/modules/two_factor_authentication/config/locales/crowdin/pt.yml deleted file mode 100644 index 3baa5a44f572..000000000000 --- a/modules/two_factor_authentication/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,178 +0,0 @@ -#English strings go here for Rails i18n -pt: - plugin_openproject_two_factor_authentication: - name: "Autenticação de dois fatores do OpenProject" - description: >- - Este plugin do OpenProject autentica os seus usuários através da autenticação de dois fatores por meio de uma senha de utilização única por meio do padrão TOTP (Google Authenticator) ou é enviada para o celular do usuário por SMS ou chamada de voz. - activerecord: - attributes: - two_factor_authentication/device: - identifier: 'Identificador' - default: 'Usar como padrão' - two_factor_authentication/device/sms: - phone_number: "Número de telefone" - errors: - models: - two_factor_authentication/device: - default_already_exists: 'já está definido em outro dispositivo OTP.' - two_factor_authentication/device/sms: - attributes: - phone_number: - error_phone_number_format: "deve ter o formato +XX XXXXXXXXX" - models: - two_factor_authentication/device: "Dispositivo 2FA" - two_factor_authentication/device/sms: "Telefone Celular" - two_factor_authentication/device/totp: "Aplicativo de autenticação" - two_factor_authentication: - error_2fa_disabled: "A entrega 2FA foi desativada." - error_no_device: "Nenhum dispositivo 2FA registrado foi encontrado para este usuário, apesar de ser necessário para esta instância." - error_no_matching_strategy: "Nenhuma estratégia de 2FA disponível para este usuário. Entre em contato com o administrador." - error_is_enforced_not_active: 'Erro de configuração: a autenticação de dois fatores foi implementada, mas não existe nenhuma estratégia ativa.' - error_invalid_backup_code: 'Código de backup do 2FA inválido' - channel_unavailable: "O canal de entrega %{channel} não está disponível." - no_valid_phone_number: "Nenhum número de telefone válido existente." - label_pwd_confirmation: "Senha" - notice_pwd_confirmation: "Você precisa confirmar sua senha ao fazer alterações nestas configurações." - label_device_type: "Tipo de dispositivo" - label_default_device: "Dispositivo 2FA padrão" - label_device: "Dispositivo 2FA" - label_devices: "Dispositivos 2FA" - label_one_time_password: 'Senha de uso único' - label_2fa_enabled: 'Autenticação de dois fatores está ativa' - label_2fa_disabled: 'Autenticação de dois fatores não ativa' - text_otp_delivery_message_sms: "Sua senha de uso único de %{app_title} é %{token}" - text_otp_delivery_message_voice: "Sua senha de uso único de %{app_title} é: %{pause} %{token}. %{pause} repito: %{pause} %{token}" - text_enter_2fa: 'Por favor digite a senha de uso único do seu dispositivo.' - text_2fa_enabled: 'Em cada acesso, será requisitado a você para entrar com seu token OTP do seu dispositivo de 2FA padrão.' - text_2fa_disabled: 'Para habilitar o segundo fator de autenticação, use o botão acima para registrar seu novo dispositivo 2FA. Se você já tem um dispositivo cadastrado, você precisa deixá-lo como sendo padrão.' - login: - enter_backup_code_title: Digite o código de backup - enter_backup_code_text: Por favor, entre com um código de backup válido da sua lista de códigos caso de você não conseguir mais acessar seus dispositivos com 2FA. - other_device: 'Use outro dispositivo ou código de backup' - settings: - title: 'Configurações de 2FA' - current_configuration: 'Configuração atual' - label_active_strategies: 'Estratégias de 2FA ativas' - label_enforced: 'Forçar 2FA' - label_remember: 'Lembrar-me do acesso no 2FA' - text_configuration: | - Nota: Estes valores representam a sua configuração geral atual. Você não pode desabilitar a configuração forçada com uma configuração ou mudar a estratégia ativa atual, já que é necessário você reiniciar o servidor. - text_configuration_guide: Para mais informações, verifique o guia de configuração. - text_enforced: 'Habilite esta configuração para forçar todos os seus usuários registrados a usar um dispositivo com 2FA no próximo login. Só poderá ser desabilitado quando a configuração de obrigação de utilização do 2FA estiver desabilitada.' - text_remember: | - Defina este valor como sendo maior do que zero para permitir que os usuários possam se lembrar do 2FA pelo número de dias definido. - Não será solicitado a eles para digitar novamente o 2FA durante este período. Só pode ser definido quando a imposição não estiver configurada. - error_invalid_settings: 'As estratégias de 2FA que você selecionou são inválidas' - failed_to_save_settings: 'Falha ao atualizar as configurações de 2FA: %{message}' - admin: - self_edit_path: 'Para adicionar ou modificar seu próprio dispositivo de 2FA, por favor, acesse %{self_edit_link}' - self_edit_link_name: 'Autenticação de dois fatores na página da sua conta' - self_edit_forbidden: 'Talvez você não tenha editado o seu dispositivo 2FA para este caminho. Vá para Minha Conta > Segundo Favor de Autenticação.' - no_devices_for_user: 'Nenhum dispositivo 2FA foi registrado para este usuário.' - all_devices_deleted: 'Todos os dispositivos 2FA deste usuário foram excluídos' - delete_all_are_you_sure: 'Você tem certeza de que deseja excluir todos os dispositivos 2FA para este usuário?' - button_delete_all_devices: 'Excluir dispositivos 2FA registrados' - button_register_mobile_phone_for_user: 'Registrar telefone móvel' - text_2fa_enabled: 'Em cada login, esse usuário será solicitado a inserir um token OTP de seu dispositivo 2FA padrão.' - text_2fa_disabled: "O usuário não configurou um dispositivo 2FA na página \"Minha conta\"" - upsale: - title: 'Autenticação de dois fatores' - description: 'Reforce a segurança da sua instância do OpenProject oferecendo (ou exigindo) a autenticação de dois fatores para todos os membros do projeto.' - backup_codes: - none_found: Não existem códigos de backup para esta conta. - singular: Código de backup - plural: Códigos de backup - your_codes: para a sua conta %{login} do %{app_name} - overview_description: | - Se você estiver impossibilitado de acessar seu dispositivo com segundo fator, você pode usar o código de backup para recuperar o acesso da sua conta. - Use o seguindo botão para gerar um novo conjunto de códigos de backup. - generate: - title: Gerar códigos de backup - keep_safe_as_password: 'Importante! Trate esses códigos como senhas.' - keep_safe_warning: 'Você pode guardá-los tanto no seu gerenciador de senhas, quanto imprimir esta página e colocar em um local seguro.' - regenerate_warning: 'Atenção: se você já criou códigos de backup anteriormente, eles serão invalidados e não poderão ser mais utilizados.' - devices: - add_new: 'Adicionar novo dispositivo 2FA' - register: 'Registar dispositivo' - confirm_default: 'Confirmar a alteração do dispositivo padrão' - confirm_device: 'Confirmar dispositivo' - confirm_now: 'Não confirmado, clique aqui para ativar' - cannot_delete_default: 'Não foi possível excluir o dispositivo padrão' - make_default_are_you_sure: 'Você tem certeza de que deseja tornar este dispositivo de 2FA padrão?' - make_default_failed: 'Falha ao atualizar o dispositivo padrão de 2FA.' - deletion_are_you_sure: 'Você tem certeza que você gostaria de delegar este dispositivo com 2FA?' - registration_complete: 'Dispositivo de 2FA registrado com sucesso!' - registration_failed_token_invalid: 'Falha ao registrar o dispositivo com 2FA, token digitado inválido.' - registration_failed_update: 'Falha ao registrar dispositivo com 2FA, token válido mas o dispositivo não pode ser atualizado.' - confirm_send_failed: 'Falha ao confirmar o seu dispositivo com 2FA.' - button_complete_registration: 'Registro de 2FA concluído' - text_confirm_to_complete_html: "Por favor, complete o registro do seu dispositivo %{identifier} inserindo uma senha única para o seu dispositivo padrão." - text_confirm_to_change_default_html: "Por favor, confirme a mudança do seu dispositivo padrão para %{new_identifier} inserindo a sua senha de uso único no se dispositivo padrão atual." - text_identifier: 'Você pode fornecer ao dispositivo um identificador customizado utilizando este campo.' - failed_to_delete: 'Falha ao excluir o dispositivo com 2FA.' - is_default_cannot_delete: 'O arquivo está marcado como padrão e não pode ser deletado devido a política de segurança estar ativa. Marque outro dispositivo como padrão antes de excluí-lo.' - not_existing: 'Nenhum dispositivo com 2FA foi registrado na sua conta.' - request_2fa: Por favor, digite o código do seu %{device_name} para verificar sua identidade. - totp: - title: 'Use seu aplicativo de autenticação base' - provisioning_uri: 'Posicione o URI' - secret_key: 'Chave secreta' - time_based: 'Base de tempo' - account: 'Nome da conta/Emissor' - setup: | - Para configurar a autenticação de dois fatores com o Autenticador do Google, baixe a aplicação na Apple Store ou no Google Play. - Após abrir o dispositivo, você pode escanear o seguinte QR Code para registar o seu dispositivo. - question_cannot_scan: | - Não foi possível verificar o código usando seu aplicativo? - text_cannot_scan: | - Se você não puder escanear o código, você pode digitar a manualmente usando os seguintes detalhes: - description: | - Registre uma aplicação de autenticação para usar o OpenProject usando o padrão de autenticação de senha de uso único. - Exemplos cotidianos são o Autenticador do Google ou Authy. - sms: - title: 'Use seu celular' - redacted_identifier: 'Celular (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, nós enviamos a você um código de autenticação através do %{delivery_channel}' - description: | - Registre seu número de celular pra enviar a senha de uso único do OpenProject. - sns: - delivery_failed: 'Falha ao entregar o SNS:' - message_bird: - sms_delivery_failed: 'Falha ao enviar o SMS MessageBird.' - voice_delivery_failed: 'Falha ao realizar a chamada de voz MessageBird Sms.' - strategies: - totp: 'Aplicação autenticada' - sns: 'SNS da Amazon' - resdt: 'API Rest do SMS' - mobile_transmit_notification: "Uma senha de uso único foi enviada para o seu celular." - label_two_factor_authentication: 'Autenticação de dois fatores' - forced_registration: - required_to_add_device: 'Uma política de segurança ativa requer que você habilite a autenticação de dois fatores. Por favor, use o seguinte formulário para registrar o dispositivo.' - remember: - active_session_notice: > - Sua conta tem um cookie ativo válido até %{expires_on}. Este cookie permite que você entre sem o segundo fator de segurança na sua conta até este dado momento. - other_active_session_notice: Sua conta possui um cookie para lembrar ativo em outra sessão. - label: 'Lembrar-me' - clear_cookie: 'Clique aqui para remover todas as sessões 2FA lembradas.' - cookie_removed: 'Todas as sessões 2FA lembradas foram removidas.' - dont_ask_again: "Crie um cookie para lembrar do 2FA neste cliente por %{days} dias." - field_phone: "Celular" - field_otp: "Senha de uso único" - notice_account_otp_invalid: "Senha de uso único inválida." - notice_account_otp_expired: "A senha de acesso único que você digitou espirou." - notice_developer_strategy_otp: "Estratégia de desenvolvimento gerada para a seguinte senha única: %{token} (Canal: %{channel})" - notice_account_otp_send_failed: "Não foi possível enviar sua senha de uso único." - notice_account_has_no_phone: "Nenhum número de celular foi associado com esta conta." - label_expiration_hint: "%{date} ou sair" - label_actions: 'Ações' - label_confirmed: 'Confirmado' - button_continue: 'Continuar' - button_make_default: 'Marque como padrão' - label_unverified_phone: "Telefone celular ainda não foi verificado" - notice_phone_number_format: "Digite o número no seguinte formato: +XX XXXXXXXX." - text_otp_not_receive: "Outros métodos de verificação" - text_send_otp_again: "Reenviar a senha de uso único para:" - button_resend_otp_form: "Reenviar" - button_otp_by_voice: "Mensagem de voz" - button_otp_by_sms: "SMS" - label_otp_channel: "Canal de entrega" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ro.yml b/modules/two_factor_authentication/config/locales/crowdin/ro.yml index 4464b92885eb..9e8653c048b6 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ro.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ro.yml @@ -7,14 +7,14 @@ ro: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identificator' - default: 'URL a paginii dorinței (lăsați gol pentru a utiliza setările implicite)' + identifier: "Identificator" + default: "URL a paginii dorinței (lăsați gol pentru a utiliza setările implicite)" two_factor_authentication/device/sms: phone_number: "Număr de telefon" errors: models: two_factor_authentication/device: - default_already_exists: 'este deja setat pentru un alt dispozitiv OTP.' + default_already_exists: "este deja setat pentru un alt dispozitiv OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ro: two_factor_authentication/device: "Dispozitiv 2FA" two_factor_authentication/device/sms: "Telefon mobil" two_factor_authentication/device/totp: "Aplicația Authenticator" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Autentificarea cu parolă a fost dezactivată prin %{configuration}." error_no_device: "Nu s-a găsit niciun dispozitiv 2FA înregistrat pentru acest utilizator, deși este necesar pentru această instanță." error_no_matching_strategy: "Nu este disponibilă nicio strategie 2FA corespunzătoare pentru acest utilizator. Vă rugăm să vă contactați administratorul." - error_is_enforced_not_active: 'Eroare de configurare: Autentificarea cu doi factori a fost impusă, dar nu există strategii active.' - error_invalid_backup_code: 'Cod de backup 2FA invalid' + error_is_enforced_not_active: "Eroare de configurare: Autentificarea cu doi factori a fost impusă, dar nu există strategii active." + error_invalid_backup_code: "Cod de backup 2FA invalid" channel_unavailable: "Canalul de livrare %{channel} nu este disponibil." no_valid_phone_number: "Nu există un număr de telefon valabil." label_pwd_confirmation: "Parolă" @@ -37,47 +38,48 @@ ro: label_default_device: "Dispozitiv 2FA implicit" label_device: "Dispozitiv 2FA" label_devices: "Dispozitive 2FA" - label_one_time_password: 'Parolă unică' - label_2fa_enabled: 'Autentificarea cu doi factori este activă' - label_2fa_disabled: 'Autentificare cu doi factori' + label_one_time_password: "Parolă unică" + label_2fa_enabled: "Autentificarea cu doi factori este activă" + label_2fa_disabled: "Autentificare cu doi factori" text_otp_delivery_message_sms: "Parola unică %{app_title} este %{token}" text_otp_delivery_message_voice: "Parola unică %{app_title} este: %{pause} %{token}. %{pause} Repet: %{pause} %{token}" - text_enter_2fa: 'Vă rugăm să introduceți parola unică de pe dispozitiv.' - text_2fa_enabled: 'La fiecare autentificare, vi se va cere să introduceți un token OTP de pe dispozitivul 2FA implicit.' - text_2fa_disabled: 'Pentru a activa autentificarea cu doi factori, utilizați butonul de mai sus pentru a înregistra un nou dispozitiv 2FA. Dacă aveți deja un dispozitiv, trebuie să îl faceți implicit.' + text_enter_2fa: "Vă rugăm să introduceți parola unică de pe dispozitiv." + text_2fa_enabled: "La fiecare autentificare, vi se va cere să introduceți un token OTP de pe dispozitivul 2FA implicit." + text_2fa_disabled: "Pentru a activa autentificarea cu doi factori, utilizați butonul de mai sus pentru a înregistra un nou dispozitiv 2FA. Dacă aveți deja un dispozitiv, trebuie să îl faceți implicit." login: enter_backup_code_title: Introduceți codul de rezervă enter_backup_code_text: Vă rugăm să introduceți un cod de rezervă valabil din lista dvs. de coduri în cazul în care nu mai puteți accesa dispozitivele 2FA înregistrate. - other_device: 'Utilizați un alt dispozitiv sau un cod de rezervă' + other_device: "Utilizați un alt dispozitiv sau un cod de rezervă" settings: - title: 'Setări 2FA' - current_configuration: 'Configurația curentă' - label_active_strategies: 'Strategii 2FA active' - label_enforced: 'Aplicați 2FA' - label_remember: 'Rețineți autentificarea 2FA' + title: "Setări 2FA" + current_configuration: "Configurația curentă" + label_active_strategies: "Strategii 2FA active" + label_enforced: "Aplicați 2FA" + label_remember: "Rețineți autentificarea 2FA" text_configuration: | Notă: Aceste valori reprezintă configurația curentă la nivelul întregii aplicații. Nu puteți dezactiva setările impuse de configurație sau modifica strategiile active curente, deoarece acestea necesită o repornire a serverului. text_configuration_guide: Pentru mai multe informații, consultați ghidul de configurare. - text_enforced: 'Activați această setare pentru a forța toți utilizatorii să înregistreze un dispozitiv 2FA la următoarea autentificare. Poate fi dezactivată numai atunci când nu este impusă prin configurare.' + text_enforced: "Activați această setare pentru a forța toți utilizatorii să înregistreze un dispozitiv 2FA la următoarea autentificare. Poate fi dezactivată numai atunci când nu este impusă prin configurare." text_remember: | Setați această valoare la mai mare decât zero pentru a permite utilizatorilor să își amintească autentificarea 2FA pentru numărul de zile dat. Nu li se va cere să o introducă din nou în această perioadă. Poate fi setat numai atunci când nu este impus prin configurare. - error_invalid_settings: 'Strategiile 2FA pe care le-ați selectat nu sunt valide' - failed_to_save_settings: 'Nu s-a reușit actualizarea setărilor 2FA: %{message}' + error_invalid_settings: "Strategiile 2FA pe care le-ați selectat nu sunt valide" + failed_to_save_settings: "Nu s-a reușit actualizarea setărilor 2FA: %{message}" admin: - self_edit_path: 'Pentru a adăuga sau modifica propriile dispozitive 2FA, vă rugăm să accesați %{self_edit_link}' - self_edit_link_name: 'Autentificare cu doi factori pe pagina contului dvs' - self_edit_forbidden: 'Nu vă puteți edita propriile dispozitive 2FA pe această cale. Mergeți în schimb la Contul meu > Autentificare cu doi factori.' - no_devices_for_user: 'Nu a fost înregistrat niciun dispozitiv 2FA pentru acest utilizator.' - all_devices_deleted: 'Toate dispozitivele 2FA ale acestui utilizator au fost șterse' - delete_all_are_you_sure: 'Sunteți sigur că doriți să ștergeți toate dispozitivele 2FA pentru acest utilizator?' - button_delete_all_devices: 'Ștergeți dispozitivele 2FA înregistrate' - button_register_mobile_phone_for_user: 'Înregistrarea telefonului mobil' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Pentru a adăuga sau modifica propriile dispozitive 2FA, vă rugăm să accesați %{self_edit_link}" + self_edit_link_name: "Autentificare cu doi factori pe pagina contului dvs" + self_edit_forbidden: "Nu vă puteți edita propriile dispozitive 2FA pe această cale. Mergeți în schimb la Contul meu > Autentificare cu doi factori." + no_devices_for_user: "Nu a fost înregistrat niciun dispozitiv 2FA pentru acest utilizator." + all_devices_deleted: "Toate dispozitivele 2FA ale acestui utilizator au fost șterse" + delete_all_are_you_sure: "Sunteți sigur că doriți să ștergeți toate dispozitivele 2FA pentru acest utilizator?" + button_delete_all_devices: "Ștergeți dispozitivele 2FA înregistrate" + button_register_mobile_phone_for_user: "Înregistrarea telefonului mobil" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Autentificare cu doi factori' - description: 'Consolidarea securității instanței OpenProject prin oferirea (sau impunerea) autentificării cu doi factori pentru toți membrii proiectului.' + title: "Autentificare cu doi factori" + description: "Consolidarea securității instanței OpenProject prin oferirea (sau impunerea) autentificării cu doi factori pentru toți membrii proiectului." backup_codes: none_found: Nu există coduri de rezervă pentru acest cont. singular: Cod de rezervă @@ -88,37 +90,42 @@ ro: Utilizați următorul buton pentru a genera un nou set de coduri de rezervă. generate: title: Generarea codurilor de rezervă - keep_safe_as_password: 'Important! Tratați aceste coduri ca pe niște parole.' - keep_safe_warning: 'Fie le salvați în managerul de parole, fie imprimați această pagină și puneți-o într-un loc sigur.' - regenerate_warning: 'Avertisment: Dacă ați creat coduri de rezervă înainte, acestea vor fi invalidate și nu vor mai funcționa.' + keep_safe_as_password: "Important! Tratați aceste coduri ca pe niște parole." + keep_safe_warning: "Fie le salvați în managerul de parole, fie imprimați această pagină și puneți-o într-un loc sigur." + regenerate_warning: "Avertisment: Dacă ați creat coduri de rezervă înainte, acestea vor fi invalidate și nu vor mai funcționa." devices: - add_new: 'Adăugați un nou dispozitiv 2FA' - register: 'Dispozitivul de înregistrare' - confirm_default: 'Confirmați schimbarea dispozitivului implicit' - confirm_device: 'Confirmați dispozitivul' - confirm_now: 'Nu este confirmat, faceți clic aici pentru a activa' - cannot_delete_default: 'Nu se poate șterge dispozitivul implicit' - make_default_are_you_sure: 'Sunteți sigur că doriți să faceți din acest dispozitiv 2FA dispozitivul dvs. implicit?' - make_default_failed: 'Nu s-a reușit actualizarea dispozitivului 2FA implicit.' - deletion_are_you_sure: 'Sunteți sigur că doriți să ștergeți acest dispozitiv 2FA?' - registration_complete: 'Înregistrarea dispozitivului 2FA este completă!' - registration_failed_token_invalid: 'Înregistrarea dispozitivului 2FA a eșuat, token-ul nu era valid.' - registration_failed_update: 'Înregistrarea dispozitivului 2FA a eșuat, token-ul era valid, dar dispozitivul nu a putut fi actualizat.' - confirm_send_failed: 'Confirmarea dispozitivului dvs. 2FA a eșuat.' - button_complete_registration: 'Completați înregistrarea 2FA' + add_new: "Adăugați un nou dispozitiv 2FA" + register: "Dispozitivul de înregistrare" + confirm_default: "Confirmați schimbarea dispozitivului implicit" + confirm_device: "Confirmați dispozitivul" + confirm_now: "Nu este confirmat, faceți clic aici pentru a activa" + cannot_delete_default: "Nu se poate șterge dispozitivul implicit" + make_default_are_you_sure: "Sunteți sigur că doriți să faceți din acest dispozitiv 2FA dispozitivul dvs. implicit?" + make_default_failed: "Nu s-a reușit actualizarea dispozitivului 2FA implicit." + deletion_are_you_sure: "Sunteți sigur că doriți să ștergeți acest dispozitiv 2FA?" + registration_complete: "Înregistrarea dispozitivului 2FA este completă!" + registration_failed_token_invalid: "Înregistrarea dispozitivului 2FA a eșuat, token-ul nu era valid." + registration_failed_update: "Înregistrarea dispozitivului 2FA a eșuat, token-ul era valid, dar dispozitivul nu a putut fi actualizat." + confirm_send_failed: "Confirmarea dispozitivului dvs. 2FA a eșuat." + button_complete_registration: "Completați înregistrarea 2FA" text_confirm_to_complete_html: "Vă rugăm să completați înregistrarea dispozitivului dvs %{identifier} prin introducerea unei parole unice de la dispozitivul dvs. implicit." text_confirm_to_change_default_html: "Vă rugăm să confirmați schimbarea dispozitivului implicit în %{new_identifier} introducând o parolă unică de pe dispozitivul dvs. implicit actual." - text_identifier: 'Puteți atribui dispozitivului un identificator personalizat folosind acest câmp.' - failed_to_delete: 'Nu s-a reușit ștergerea dispozitivului 2FA.' - is_default_cannot_delete: 'Dispozitivul este marcat ca fiind implicit și nu poate fi șters din cauza unei politici de securitate active. Marcați un alt dispozitiv ca implicit înainte de a-l șterge.' - not_existing: 'Nu a fost înregistrat niciun dispozitiv 2FA pentru contul dvs.' - request_2fa: Vă rugăm să introduceți codul de pe %{device_name} pentru a vă verifica identitatea. + text_identifier: "Puteți atribui dispozitivului un identificator personalizat folosind acest câmp." + failed_to_delete: "Nu s-a reușit ștergerea dispozitivului 2FA." + is_default_cannot_delete: "Dispozitivul este marcat ca fiind implicit și nu poate fi șters din cauza unei politici de securitate active. Marcați un alt dispozitiv ca implicit înainte de a-l șterge." + not_existing: "Nu a fost înregistrat niciun dispozitiv 2FA pentru contul dvs." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Utilizați autentificatorul bazat pe aplicație' - provisioning_uri: 'URI de provizionare' - secret_key: 'Testați cheia secretă' - time_based: 'Pe bază de timp' - account: 'Denumirea contului / Emitent' + title: "Utilizați autentificatorul bazat pe aplicație" + provisioning_uri: "URI de provizionare" + secret_key: "Testați cheia secretă" + time_based: "Pe bază de timp" + account: "Denumirea contului / Emitent" setup: | Pentru a configura autentificarea cu doi factori cu Google Authenticator, descărcați aplicația din Apple App Store sau Google Play Store. După ce deschideți aplicația, puteți scana următorul cod QR pentru a înregistra dispozitivul. @@ -130,31 +137,32 @@ ro: Înregistrați un autentificator de aplicații pentru utilizarea cu OpenProject folosind standardul de autentificare cu parolă unică bazată pe timp. Exemple comune sunt Google Authenticator sau Authy. sms: - title: 'Utilizați telefonul mobil' - redacted_identifier: 'Dispozitiv mobil (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, ți-am trimis un cod de autentificare prin %{delivery_channel}' + title: "Utilizați telefonul mobil" + redacted_identifier: "Dispozitiv mobil (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, ți-am trimis un cod de autentificare prin %{delivery_channel}" description: | Înregistrați-vă numărul de telefon mobil pentru livrarea parolelor unice OpenProject. sns: - delivery_failed: 'Livrarea SNS a eșuat:' + delivery_failed: "Livrarea SNS a eșuat:" message_bird: - sms_delivery_failed: 'Livrarea SMS-urilor MessageBird a eșuat.' - voice_delivery_failed: 'Apelul vocal MessageBird a eșuat.' + sms_delivery_failed: "Livrarea SMS-urilor MessageBird a eșuat." + voice_delivery_failed: "Apelul vocal MessageBird a eșuat." strategies: - totp: 'Aplicația Authenticator' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Aplicația Authenticator" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "O parolă unică a fost trimisă pe telefonul dvs. mobil." - label_two_factor_authentication: 'Autentificare cu doi factori' + label_two_factor_authentication: "Autentificare cu doi factori" forced_registration: - required_to_add_device: 'O politică de securitate activă vă solicită să activați autentificarea cu doi factori. Vă rugăm să utilizați următorul formular pentru a înregistra un dispozitiv.' + required_to_add_device: "O politică de securitate activă vă solicită să activați autentificarea cu doi factori. Vă rugăm să utilizați următorul formular pentru a înregistra un dispozitiv." remember: active_session_notice: > Contul dvs. are un modul cookie de memorare activ, valabil până la %{expires_on}. Acest modul cookie vă permite să vă conectați fără un al doilea factor la contul dvs. până la acel moment. other_active_session_notice: Contul dvs. are un modul cookie de reamintire activ într-o altă sesiune. - label: 'Reține autentificarea' - clear_cookie: 'Faceți clic aici pentru a elimina toate sesiunile 2FA reținute.' - cookie_removed: 'Toate sesiunile 2FA memorate au fost eliminate.' + label: "Reține autentificarea" + clear_cookie: "Faceți clic aici pentru a elimina toate sesiunile 2FA reținute." + cookie_removed: "Toate sesiunile 2FA memorate au fost eliminate." dont_ask_again: "Creați un modul cookie pentru a reține autentificarea 2FA pe acest client timp de %{days} zile." field_phone: "Telefon mobil" field_otp: "Parolă unică" @@ -164,10 +172,10 @@ ro: notice_account_otp_send_failed: "Parola dvs. unică nu a putut fi trimisă." notice_account_has_no_phone: "Nici un număr de telefon mobil nu este asociat contului dvs." label_expiration_hint: "%{date} sau la deconectare" - label_actions: 'Acțiuni' - label_confirmed: 'Confirmat' - button_continue: 'Continuaţi' - button_make_default: 'Marcați ca implicit' + label_actions: "Acțiuni" + label_confirmed: "Confirmat" + button_continue: "Continuaţi" + button_make_default: "Marcați ca implicit" label_unverified_phone: "Telefonul mobil nu a fost încă verificat" notice_phone_number_format: "Vă rugăm să introduceți numărul în următorul format: +XX XXXXXXXX." text_otp_not_receive: "Alte metode de verificare" diff --git a/modules/two_factor_authentication/config/locales/crowdin/ru.yml b/modules/two_factor_authentication/config/locales/crowdin/ru.yml index b47170e7b433..77ea788255ae 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ru.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ru.yml @@ -7,14 +7,14 @@ ru: activerecord: attributes: two_factor_authentication/device: - identifier: 'Идентификатор' - default: 'Использовать по умолчанию' + identifier: "Идентификатор" + default: "Использовать по умолчанию" two_factor_authentication/device/sms: phone_number: "Номер телефона" errors: models: two_factor_authentication/device: - default_already_exists: 'уже используется для другого устройства ОП.' + default_already_exists: "уже используется для другого устройства ОП." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ ru: two_factor_authentication/device: "Устройство 2ФА" two_factor_authentication/device/sms: "Мобильный телефон" two_factor_authentication/device/totp: "Приложение для аутентификации" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Доставка 2ФА отключена." error_no_device: "Для пользователя не найдено зарегистрированного устройства 2ФА, что требуется для этого экземпляра." error_no_matching_strategy: "Для этого пользователя нет подходящей стратегии 2ФА. Обратитесь к администратору." - error_is_enforced_not_active: 'Ошибка конфигурации: применена двухфакторная аутентификация, однако активных стратегий нет.' - error_invalid_backup_code: 'Неправильный резервный код 2ФА' + error_is_enforced_not_active: "Ошибка конфигурации: применена двухфакторная аутентификация, однако активных стратегий нет." + error_invalid_backup_code: "Неправильный резервный код 2ФА" channel_unavailable: "Канал доставки %{channel} недоступен." no_valid_phone_number: "Нет номера телефона." label_pwd_confirmation: "Пароль" @@ -37,47 +38,48 @@ ru: label_default_device: "Устройство 2ФА по умолчанию" label_device: "Устройство 2ФА" label_devices: "Устройства 2ФА" - label_one_time_password: 'Одноразовый пароль' - label_2fa_enabled: 'Двухфакторная аутентификация активна' - label_2fa_disabled: 'Двухфакторная аутентификация неактивна' + label_one_time_password: "Одноразовый пароль" + label_2fa_enabled: "Двухфакторная аутентификация активна" + label_2fa_disabled: "Двухфакторная аутентификация неактивна" text_otp_delivery_message_sms: "Ваш одноразовый пароль для %{app_title} это %{token}" text_otp_delivery_message_voice: "Ваш одноразовый пароль для %{app_title}: %{pause} %{token}. %{pause} Повторяю: %{pause} %{token}" - text_enter_2fa: 'Введите одноразовый пароль со своего устройства.' - text_2fa_enabled: 'При каждом входе у вас будет запрашиваться токен ОП (одноразового пароля) с устройства 2ФА по умолчанию.' - text_2fa_disabled: 'Чтобы включить двухфакторную аутентификацию, нажмите кнопку выше и зарегистрируйте новое устройство 2ФА. Если устройство у вас уже есть, необходимо сделать его устройством по умолчанию.' + text_enter_2fa: "Введите одноразовый пароль со своего устройства." + text_2fa_enabled: "При каждом входе у вас будет запрашиваться токен ОП (одноразового пароля) с устройства 2ФА по умолчанию." + text_2fa_disabled: "Чтобы включить двухфакторную аутентификацию, нажмите кнопку выше и зарегистрируйте новое устройство 2ФА. Если устройство у вас уже есть, необходимо сделать его устройством по умолчанию." login: enter_backup_code_title: Введите резервный код enter_backup_code_text: Если у вас больше нет доступа к зарегистрированным устройствам 2ФА, введите действительный резервный код из списка кодов. - other_device: 'Использовать другое устройство или резервный код' + other_device: "Использовать другое устройство или резервный код" settings: - title: 'Параметры 2ФА' - current_configuration: 'Текущая конфигурация' - label_active_strategies: 'Активные стратегии 2ФА' - label_enforced: 'Принудительная 2ФА' - label_remember: 'Запомнить логин 2ФА' + title: "Параметры 2ФА" + current_configuration: "Текущая конфигурация" + label_active_strategies: "Активные стратегии 2ФА" + label_enforced: "Принудительная 2ФА" + label_remember: "Запомнить логин 2ФА" text_configuration: | Примечание: Эти значения представляют текущую конфигурацию для приложения в целом. Вы не можете отключить параметры, заданные конфигурацией, или изменить текущие активные стратегии, так как это требует перезапуска сервера. text_configuration_guide: Для дополнительной информации обратитесь к руководству по настройке. - text_enforced: 'Включите этот параметр, чтобы всем пользователям при следующем входе потребовалось зарегистировать устройство 2ФА. Можно отключить только в том случае, если не настроено принудительно в конфигурации.' + text_enforced: "Включите этот параметр, чтобы всем пользователям при следующем входе потребовалось зарегистировать устройство 2ФА. Можно отключить только в том случае, если не настроено принудительно в конфигурации." text_remember: | Установите в этом параметре значение более нуля, чтобы разрешить пользователям сохранять их аутентификацию 2ФА на заданное количество дней. В течение этого периода у них не будет запрашиваться повторный ввод. Можно установить только в том случае, если не настроено принудительно в конфигурации. - error_invalid_settings: 'Вы выбрали неправильные стратегии 2ФА' - failed_to_save_settings: 'Ошибка при обновлении параметров 2ФА: %{message}' + error_invalid_settings: "Вы выбрали неправильные стратегии 2ФА" + failed_to_save_settings: "Ошибка при обновлении параметров 2ФА: %{message}" admin: - self_edit_path: 'Добавлять и изменять свои устройства 2ФА можно в разделе %{self_edit_link}' - self_edit_link_name: '«Двухфакторная аутентификация» на странице учетной записи' - self_edit_forbidden: 'На этой странице изменять свои устройства 2ФА нельзя. Перейдите в раздел «Моя учетная запись > Двухфакторная аутентификация».' - no_devices_for_user: 'Для этого пользователя не зарегистрировано ни одного устройства 2ФА.' - all_devices_deleted: 'Все устройства 2ФА этого пользователя удалены' - delete_all_are_you_sure: 'Удалить все устройства 2ФА для этого пользователя?' - button_delete_all_devices: 'Удалить зарегистрированные устройства 2ФА' - button_register_mobile_phone_for_user: 'Зарегистрировать мобильный телефон' - text_2fa_enabled: 'При каждом входе этому пользователю будет предложено ввести токен OTP с устройства по умолчанию.' + self_edit_path: "Добавлять и изменять свои устройства 2ФА можно в разделе %{self_edit_link}" + self_edit_link_name: "«Двухфакторная аутентификация» на странице учетной записи" + self_edit_forbidden: "На этой странице изменять свои устройства 2ФА нельзя. Перейдите в раздел «Моя учетная запись > Двухфакторная аутентификация»." + no_devices_for_user: "Для этого пользователя не зарегистрировано ни одного устройства 2ФА." + all_devices_deleted: "Все устройства 2ФА этого пользователя удалены" + delete_all_are_you_sure: "Удалить все устройства 2ФА для этого пользователя?" + button_delete_all_devices: "Удалить зарегистрированные устройства 2ФА" + button_register_mobile_phone_for_user: "Зарегистрировать мобильный телефон" + text_2fa_enabled: "При каждом входе этому пользователю будет предложено ввести токен OTP с устройства по умолчанию." text_2fa_disabled: "Пользователь не настроил устройство 2FA на своей странице «Моя учетная запись»" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Двухфакторная аутентификация' - description: 'Усиление безопасности вашего OpenProject путем предоставления (или осуществления) двухфакторной аутентификации всем участникам проекта.' + title: "Двухфакторная аутентификация" + description: "Усиление безопасности вашего OpenProject путем предоставления (или осуществления) двухфакторной аутентификации всем участникам проекта." backup_codes: none_found: Для этой учетной записи резервных кодов нет. singular: Резервный код @@ -88,37 +90,42 @@ ru: Чтобы создать новый набор резервных кодов, нажмите следующую кнопку. generate: title: Создание резервных кодов - keep_safe_as_password: 'Внимание! Берегите эти коды, как пароли.' - keep_safe_warning: 'Следует либо сохранить их в менеджере паролей, либо распечатать эту страницу и спрятать ее в безопасное место.' - regenerate_warning: 'Предупреждение: созданные ранее резервные коды станут недействительны и больше не будут работать.' + keep_safe_as_password: "Внимание! Берегите эти коды, как пароли." + keep_safe_warning: "Следует либо сохранить их в менеджере паролей, либо распечатать эту страницу и спрятать ее в безопасное место." + regenerate_warning: "Предупреждение: созданные ранее резервные коды станут недействительны и больше не будут работать." devices: - add_new: 'Добавить устройство 2ФА' - register: 'Регистрация устройства' - confirm_default: 'Подтвердите изменение устройства по умолчанию' - confirm_device: 'Подтвердить устройство' - confirm_now: 'Не подтверждено; чтобы активировать, нажмите сюда' - cannot_delete_default: 'Не удается удалить устройство по умолчанию' - make_default_are_you_sure: 'Сделать это устройство 2ФА устройством по умолчанию?' - make_default_failed: 'Не удалось обновить устройство 2ФА по умолчанию.' - deletion_are_you_sure: 'Удалить это устройство 2ФА?' - registration_complete: 'Регистрация устройства 2ФА завершена!' - registration_failed_token_invalid: 'Ошибка регистрации устройства 2ФА: токен недействителен.' - registration_failed_update: 'Ошибка регистрации устройства 2ФА: токен действителен, однако обновить устройство не удалось.' - confirm_send_failed: 'Не удалось подтвердить устройство 2ФА.' - button_complete_registration: 'Завершить регистрацию 2ФА' + add_new: "Добавить устройство 2ФА" + register: "Регистрация устройства" + confirm_default: "Подтвердите изменение устройства по умолчанию" + confirm_device: "Подтвердить устройство" + confirm_now: "Не подтверждено; чтобы активировать, нажмите сюда" + cannot_delete_default: "Не удается удалить устройство по умолчанию" + make_default_are_you_sure: "Сделать это устройство 2ФА устройством по умолчанию?" + make_default_failed: "Не удалось обновить устройство 2ФА по умолчанию." + deletion_are_you_sure: "Удалить это устройство 2ФА?" + registration_complete: "Регистрация устройства 2ФА завершена!" + registration_failed_token_invalid: "Ошибка регистрации устройства 2ФА: токен недействителен." + registration_failed_update: "Ошибка регистрации устройства 2ФА: токен действителен, однако обновить устройство не удалось." + confirm_send_failed: "Не удалось подтвердить устройство 2ФА." + button_complete_registration: "Завершить регистрацию 2ФА" text_confirm_to_complete_html: "Пожалуйста, завершите регистрацию вашего устройства %{identifier}: введите одноразовый пароль с вашего устройства по умолчанию." text_confirm_to_change_default_html: "Подтвердите новое устройство по умолчанию — %{new_identifier}: введите одноразовый пароль с текущего устройства по умолчанию." - text_identifier: 'С помощью этого поля устройству можно присвоить идентификатор.' - failed_to_delete: 'Не удалось удалить устройство 2ФА.' - is_default_cannot_delete: 'Устройство задано как устройство по умолчанию, поэтому политика безопасности запрещает его удалять. Что удалить его, задайте другое устройство по умолчанию.' - not_existing: 'Для вашей учетной записи не зарегистрировано ни одного устройства 2ФА.' - request_2fa: Чтобы подтвердить свою личность, введите код с устройства %{device_name}. + text_identifier: "С помощью этого поля устройству можно присвоить идентификатор." + failed_to_delete: "Не удалось удалить устройство 2ФА." + is_default_cannot_delete: "Устройство задано как устройство по умолчанию, поэтому политика безопасности запрещает его удалять. Что удалить его, задайте другое устройство по умолчанию." + not_existing: "Для вашей учетной записи не зарегистрировано ни одного устройства 2ФА." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Использование приложения для аутентификации' - provisioning_uri: 'URI для подключения' - secret_key: 'Секретный ключ' - time_based: 'С синхронизацией по времени' - account: 'Имя учетной записи / эмитент' + title: "Использование приложения для аутентификации" + provisioning_uri: "URI для подключения" + secret_key: "Секретный ключ" + time_based: "С синхронизацией по времени" + account: "Имя учетной записи / эмитент" setup: | Для настройки двухфакторной аутентификации через приложение Google Authenticator скачайте его из магазина Apple App Store или Google Play. Затем, чтобы зарегистрировать устройство, откройте приложение и отсканируйте следующий QR-код. @@ -130,31 +137,32 @@ ru: Регистрация приложения для аутентификации в сервисе OpenProject с применением стандарта аутентификации с синхронизированным по времени паролем. Примеры таких приложений: Google Authenticator и Authy. sms: - title: 'Используйте мобильный телефон' - redacted_identifier: 'Мобильное устройство (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, мы отправили вам код аутентификации по каналу %{delivery_channel}' + title: "Используйте мобильный телефон" + redacted_identifier: "Мобильное устройство (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, мы отправили вам код аутентификации по каналу %{delivery_channel}" description: | Регистрация номера мобильного телефона для получения одноразовых паролей OpenProject. sns: - delivery_failed: 'Сбой доставки SNS:' + delivery_failed: "Сбой доставки SNS:" message_bird: - sms_delivery_failed: 'Ошибка при отправке SMS через MessageBird.' - voice_delivery_failed: 'Ошибка голосового вызова MessageBird.' + sms_delivery_failed: "Ошибка при отправке SMS через MessageBird." + voice_delivery_failed: "Ошибка голосового вызова MessageBird." strategies: - totp: 'Приложение для аутентификации' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Приложение для аутентификации" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Одноразовый пароль был отправлен вам на сотовый телефон." - label_two_factor_authentication: 'Двухфакторная аутентификация' + label_two_factor_authentication: "Двухфакторная аутентификация" forced_registration: - required_to_add_device: 'Активная политика безопасности требует использования двухфакторной аутентификации. Зарегистрируйте устройство с помощью следующей формы.' + required_to_add_device: "Активная политика безопасности требует использования двухфакторной аутентификации. Зарегистрируйте устройство с помощью следующей формы." remember: active_session_notice: > Для вашей учетной записи существует файл cookie, действительный до %{expires_on}. До указанного времени этот файл cookie позволяет вам входить в вашу учетную запись без второго фактора. other_active_session_notice: Ваша учетная запись обладает активным помнить куки на другой сессии. - label: 'Запомнить' - clear_cookie: 'Нажмите здесь, чтобы удалить все сохраненные 2FA сессий.' - cookie_removed: 'Все вспомнил, что 2FA сессий были удалены.' + label: "Запомнить" + clear_cookie: "Нажмите здесь, чтобы удалить все сохраненные 2FA сессий." + cookie_removed: "Все вспомнил, что 2FA сессий были удалены." dont_ask_again: "Создать файл cookie для запоминания аутентификации 2ФА на этом клиенте в течение %{days} дней." field_phone: "Сотовый телефон" field_otp: "Одноразовый пароль" @@ -164,10 +172,10 @@ ru: notice_account_otp_send_failed: "Не удается отправить одноразовый пароль." notice_account_has_no_phone: "К вашей учетной записи не привязан номер сотового телефона." label_expiration_hint: "%{date} или при выходе из системы" - label_actions: 'Действия' - label_confirmed: 'Подтвержден' - button_continue: 'Далее' - button_make_default: 'Задать по умолчанию' + label_actions: "Действия" + label_confirmed: "Подтвержден" + button_continue: "Продолжить" + button_make_default: "Задать по умолчанию" label_unverified_phone: "Сотовый телефон еще не подтвержден" notice_phone_number_format: "Введите номер в следующем формате: +XX XXXXXXXX." text_otp_not_receive: "Другие способы проверки" diff --git a/modules/two_factor_authentication/config/locales/crowdin/rw.yml b/modules/two_factor_authentication/config/locales/crowdin/rw.yml index c2280f40978c..785ec3241524 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/rw.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/rw.yml @@ -7,14 +7,14 @@ rw: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ rw: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ rw: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ rw: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ rw: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ rw: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/si.yml b/modules/two_factor_authentication/config/locales/crowdin/si.yml index f92223baf054..961999b91278 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/si.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/si.yml @@ -7,14 +7,14 @@ si: activerecord: attributes: two_factor_authentication/device: - identifier: 'හඳුනාගැනීමේ' - default: 'Use as default' + identifier: "හඳුනාගැනීමේ" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ si: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "මුරපදය" @@ -37,47 +38,48 @@ si: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ si: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ si: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ si: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'ක්‍රියාමාර්ග' - label_confirmed: 'තහවුරු' - button_continue: 'ඉදිරියට යන්න' - button_make_default: 'Mark as default' + label_actions: "ක්‍රියාමාර්ග" + label_confirmed: "තහවුරු" + button_continue: "ඉදිරියට යන්න" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/sk.yml b/modules/two_factor_authentication/config/locales/crowdin/sk.yml index eb8b0cf8e79b..4da088ad47a1 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/sk.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/sk.yml @@ -7,14 +7,14 @@ sk: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifikátor' - default: 'Nastaviť ako predvolené' + identifier: "Identifikátor" + default: "Nastaviť ako predvolené" two_factor_authentication/device/sms: phone_number: "Telefónne číslo" errors: models: two_factor_authentication/device: - default_already_exists: 'je už nastavené pre iné zariadenie OTP.' + default_already_exists: "je už nastavené pre iné zariadenie OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ sk: two_factor_authentication/device: "2FA zariadenie" two_factor_authentication/device/sms: "Mobilný telefón" two_factor_authentication/device/totp: "Aplikácia Authenticator" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Doručenie 2FA bolo vypnuté." error_no_device: "Pre tohto používateľa nebolo nájdené žiadne zaregistrované zariadenie 2FA, napriek tomu, že je to potrebné pre túto inštanciu." error_no_matching_strategy: "Pre daného používateľa nie je k dispozícii žiadna zodpovedajúca stratégia 2FA. Kontaktujte svojho správcu." - error_is_enforced_not_active: 'Chyba konfigurácie: Bola vynútená dvojfaktorová autentifikácia, ale neexistujú žiadne aktívne stratégie.' - error_invalid_backup_code: 'Neplatný 2FA záložný kód' + error_is_enforced_not_active: "Chyba konfigurácie: Bola vynútená dvojfaktorová autentifikácia, ale neexistujú žiadne aktívne stratégie." + error_invalid_backup_code: "Neplatný 2FA záložný kód" channel_unavailable: "Doručovací kanál %{channel} nie je k dispozícii." no_valid_phone_number: "Neexistuje žiadne platné telefónne číslo." label_pwd_confirmation: "Heslo" @@ -37,47 +38,48 @@ sk: label_default_device: "Predvolené 2FA zariadenie" label_device: "2FA zariadenie" label_devices: "2FA zariadenia" - label_one_time_password: 'Jednorázové heslo' - label_2fa_enabled: 'Dvojfaktorová autentifikácia je aktívna' - label_2fa_disabled: 'Dvojfaktorová autentifikácia nie je aktívna' + label_one_time_password: "Jednorázové heslo" + label_2fa_enabled: "Dvojfaktorová autentifikácia je aktívna" + label_2fa_disabled: "Dvojfaktorová autentifikácia nie je aktívna" text_otp_delivery_message_sms: "Jednorazové heslo %{app_title} je %{token}" text_otp_delivery_message_voice: "Jednorazové heslo %{app_title}: %{pause} %{token}. %{pause} Opakujem: %{pause} %{token}" - text_enter_2fa: 'Zadajte jednorazové heslo z vášho zariadenia.' - text_2fa_enabled: 'Po každom prihlásení bude užívateľ požiadaný, aby zadal token OTP zo svojho predvoleného zariadenia 2FA.' - text_2fa_disabled: 'Ak chcete povoliť dvojfaktorové overenie, pomocou vyššie uvedeného tlačidla zaregistrujte nové 2FA zariadenie. Ak už máte zariadenie, musíte ho nastaviť ako predvolené.' + text_enter_2fa: "Zadajte jednorazové heslo z vášho zariadenia." + text_2fa_enabled: "Po každom prihlásení bude užívateľ požiadaný, aby zadal token OTP zo svojho predvoleného zariadenia 2FA." + text_2fa_disabled: "Ak chcete povoliť dvojfaktorové overenie, pomocou vyššie uvedeného tlačidla zaregistrujte nové 2FA zariadenie. Ak už máte zariadenie, musíte ho nastaviť ako predvolené." login: enter_backup_code_title: Zadajte záložný kód enter_backup_code_text: Zadajte platný záložný kód zo zoznamu kódov v prípade, že už nemôžete pristupovať k registrovaným zariadeniam 2FA. - other_device: 'Použite iné zariadenie alebo záložný kód' + other_device: "Použite iné zariadenie alebo záložný kód" settings: - title: '2FA nastavenia' - current_configuration: 'Aktuálna konfigurácia' - label_active_strategies: 'Aktívne 2FA stratégie' - label_enforced: 'Vynútiť 2FA' - label_remember: 'Zapamätať 2FA login' + title: "2FA nastavenia" + current_configuration: "Aktuálna konfigurácia" + label_active_strategies: "Aktívne 2FA stratégie" + label_enforced: "Vynútiť 2FA" + label_remember: "Zapamätať 2FA login" text_configuration: | Poznámka: Tieto hodnoty predstavujú aktuálnu konfiguráciu celej aplikácie. Nemôžete zakázať nastavenia vynútené konfiguráciou alebo zmeniť aktuálne aktívne stratégie, pretože vyžadujú reštartovanie servera. text_configuration_guide: Ďalšie informácie nájdete v príručke konfigurácie. - text_enforced: 'Aktivujte toto nastavenie tak, aby nútilo všetkých používateľov zaregistrovať zariadenie 2FA pri ďalšom prihlásení. Môže byť deaktivované iba vtedy, ak ich konfigurácia nevynucuje.' + text_enforced: "Aktivujte toto nastavenie tak, aby nútilo všetkých používateľov zaregistrovať zariadenie 2FA pri ďalšom prihlásení. Môže byť deaktivované iba vtedy, ak ich konfigurácia nevynucuje." text_remember: | Nastavenie danej hodnoty väčšej ako nula umožní užívateľom, zapamätať si 2FA overovanie pre daný počet dní. Užívateľ nebude vyzvaný na opätovné zadanie počas tohto obdobia. Môže byť nastavené len vtedy, ak nie vynútené pri konfigurácii. - error_invalid_settings: 'Vybraté 2FA stratégie sú neplatné' - failed_to_save_settings: 'Nepodarilo sa aktualizovať 2FA nastavenia: %{message}' + error_invalid_settings: "Vybraté 2FA stratégie sú neplatné" + failed_to_save_settings: "Nepodarilo sa aktualizovať 2FA nastavenia: %{message}" admin: - self_edit_path: 'Ak chcete pridať alebo upraviť vlastné 2FA zariadenia, prejdite na stránku %{self_edit_link}' - self_edit_link_name: 'Dvojfaktorové overovanie na stránke vášho užívateľského konta' - self_edit_forbidden: 'Nesmiete upravovať vaše vlastné zariadenia 2FA na tejto ceste. Namiesto toho prejdite na Môj účet> Dvojfaktorové overovanie.' - no_devices_for_user: 'Pre tohto užívateľa nebolo zaregistrované žiadne 2FA zariadenie.' - all_devices_deleted: 'Všetky 2FA zariadenia tohto užívateľa boli odstránené' - delete_all_are_you_sure: 'Naozaj chcete odstrániť všetky 2FA zariadenia pre tohto užívateľa?' - button_delete_all_devices: 'Odstrániť zaregistrované 2FA zariadenia' - button_register_mobile_phone_for_user: 'Registrovať mobilný telefón' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Ak chcete pridať alebo upraviť vlastné 2FA zariadenia, prejdite na stránku %{self_edit_link}" + self_edit_link_name: "Dvojfaktorové overovanie na stránke vášho užívateľského konta" + self_edit_forbidden: "Nesmiete upravovať vaše vlastné zariadenia 2FA na tejto ceste. Namiesto toho prejdite na Môj účet> Dvojfaktorové overovanie." + no_devices_for_user: "Pre tohto užívateľa nebolo zaregistrované žiadne 2FA zariadenie." + all_devices_deleted: "Všetky 2FA zariadenia tohto užívateľa boli odstránené" + delete_all_are_you_sure: "Naozaj chcete odstrániť všetky 2FA zariadenia pre tohto užívateľa?" + button_delete_all_devices: "Odstrániť zaregistrované 2FA zariadenia" + button_register_mobile_phone_for_user: "Registrovať mobilný telefón" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Dvojfaktorové overenie (2FA)' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Dvojfaktorové overenie (2FA)" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: Pre tento účet neexistujú žiadne záložné kódy. singular: Záložný kód @@ -88,37 +90,42 @@ sk: Pomocou nasledujúceho tlačidla vygenerujte novú sadu záložných kódov. generate: title: Vygenerovať záložné kódy - keep_safe_as_password: 'Dôležité! Považujte tieto kódy za heslá.' - keep_safe_warning: 'Buď ich uložte do správcu hesiel, alebo vytlačte túto stránku a umiestnite na bezpečné miesto.' - regenerate_warning: 'Upozornenie: Ak ste predtým vytvorili záložné kódy, budú zrušené a nebudú viac fungovať.' + keep_safe_as_password: "Dôležité! Považujte tieto kódy za heslá." + keep_safe_warning: "Buď ich uložte do správcu hesiel, alebo vytlačte túto stránku a umiestnite na bezpečné miesto." + regenerate_warning: "Upozornenie: Ak ste predtým vytvorili záložné kódy, budú zrušené a nebudú viac fungovať." devices: - add_new: 'Pridať nové 2FA zariadenie' - register: 'Registrovať zariadenie' - confirm_default: 'Potvrďte zmenu predvoleného zariadenia' - confirm_device: 'Potvrdiť zariadenie' - confirm_now: 'Nepotvrdené, kliknite tu pre aktiváciu' - cannot_delete_default: 'Nemôžete odstrániť predvolené zariadenie' - make_default_are_you_sure: 'Naozaj chcete nastaviť toto 2FA zariadenie ako predvolené?' - make_default_failed: 'Nepodarilo sa aktualizovať predvolené 2FA zariadenie.' - deletion_are_you_sure: 'Naozaj chcete odstrániť toto 2FA zariadenie?' - registration_complete: 'Registrácia zariadenia 2FA je dokončená!' - registration_failed_token_invalid: 'Registrácia zariadenia 2FA zlyhala, token bol neplatný.' - registration_failed_update: 'Registrácia zariadenia 2FA zlyhala, token bol platný, ale zariadenie nebolo možné aktualizovať.' - confirm_send_failed: 'Potvrdenie vášho zariadenia 2FA zlyhalo.' - button_complete_registration: 'Dokončite registráciu svojho 2FA zariadenia' + add_new: "Pridať nové 2FA zariadenie" + register: "Registrovať zariadenie" + confirm_default: "Potvrďte zmenu predvoleného zariadenia" + confirm_device: "Potvrdiť zariadenie" + confirm_now: "Nepotvrdené, kliknite tu pre aktiváciu" + cannot_delete_default: "Nemôžete odstrániť predvolené zariadenie" + make_default_are_you_sure: "Naozaj chcete nastaviť toto 2FA zariadenie ako predvolené?" + make_default_failed: "Nepodarilo sa aktualizovať predvolené 2FA zariadenie." + deletion_are_you_sure: "Naozaj chcete odstrániť toto 2FA zariadenie?" + registration_complete: "Registrácia zariadenia 2FA je dokončená!" + registration_failed_token_invalid: "Registrácia zariadenia 2FA zlyhala, token bol neplatný." + registration_failed_update: "Registrácia zariadenia 2FA zlyhala, token bol platný, ale zariadenie nebolo možné aktualizovať." + confirm_send_failed: "Potvrdenie vášho zariadenia 2FA zlyhalo." + button_complete_registration: "Dokončite registráciu svojho 2FA zariadenia" text_confirm_to_complete_html: "Prosím dokončite registráciu svojho zariadenia %{identifier} zadaním jednorazového hesla z predvoleného zariadenia." text_confirm_to_change_default_html: "Potvrďte, prosím zmenu Vášho predvoleného zariadenia %{new_identifier} zadaním jednorazového hesla z Vášho aktuálneho predvoleného zariadenia." - text_identifier: 'Zariadeniu môžete priradiť pomocou tohto poľa vlastný identifikátor.' - failed_to_delete: 'Nepodarilo sa vymazať 2FA zariadenie.' - is_default_cannot_delete: 'Zariadenie je označené ako predvolené a nie je možné ho odstrániť kvôli aktívnej bezpečnostnej politike. Označte iné zariadenie ako predvolené pred jeho odstránením.' - not_existing: 'Pre váš účet nebolo zaregistrované žiadne 2FA zariadenie.' - request_2fa: Zadajte prosím kód z vášho %{device_name} na overenie vašej identity. + text_identifier: "Zariadeniu môžete priradiť pomocou tohto poľa vlastný identifikátor." + failed_to_delete: "Nepodarilo sa vymazať 2FA zariadenie." + is_default_cannot_delete: "Zariadenie je označené ako predvolené a nie je možné ho odstrániť kvôli aktívnej bezpečnostnej politike. Označte iné zariadenie ako predvolené pred jeho odstránením." + not_existing: "Pre váš účet nebolo zaregistrované žiadne 2FA zariadenie." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Privátny kľúč' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Privátny kľúč" + time_based: "Time based" + account: "Account name / Issuer" setup: | Pre nastavenie dvojfaktorového overovania s Google Authenticator, prevezmite aplikáciu z Apple App Store alebo Google Play Store. Po otvorení aplikácie môžete skenovať nasledujúci QR kód pre registráciu zariadenia. @@ -130,31 +137,32 @@ sk: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Použite Váš mobilný telefón' - redacted_identifier: 'Mobilné zariadenie (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, poslali sme vám overovací kód prostredníctvom %{delivery_channel}' + title: "Použite Váš mobilný telefón" + redacted_identifier: "Mobilné zariadenie (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, poslali sme vám overovací kód prostredníctvom %{delivery_channel}" description: | Zaregistrujte vaše číslo mobilného telefónu pre doručenie OpenProject jednorazového hesla. sns: - delivery_failed: 'SNS doručenie zlyhalo:' + delivery_failed: "SNS doručenie zlyhalo:" message_bird: - sms_delivery_failed: 'MessageBird SMS doručenie zlyhalo.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS doručenie zlyhalo." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Aplikácia Authenticator' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Aplikácia Authenticator" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Na váš mobilný telefón bolo odoslané jednorazové heslo." - label_two_factor_authentication: 'Dvojfaktorové overenie (2FA)' + label_two_factor_authentication: "Dvojfaktorové overenie (2FA)" forced_registration: - required_to_add_device: 'Aktívna bezpečnostná politika vyžaduje, aby ste zapli dvojfaktorové overovanie. Prosím, použite nasledujúci formulár pre registráciu zariadenia.' + required_to_add_device: "Aktívna bezpečnostná politika vyžaduje, aby ste zapli dvojfaktorové overovanie. Prosím, použite nasledujúci formulár pre registráciu zariadenia." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Zapamätať' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Zapamätať" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Mobilný telefón" field_otp: "Jednorazové heslo" @@ -164,10 +172,10 @@ sk: notice_account_otp_send_failed: "Vaše jednorázové heslo nemôže byť odoslané." notice_account_has_no_phone: "K Vášmu účtu nie je priradené žiadne číslo mobilného telefónu." label_expiration_hint: "%{date} alebo pri odhlásení" - label_actions: 'Akcie' - label_confirmed: 'Potvrdený' - button_continue: 'Pokračovať' - button_make_default: 'Označiť ako predvolené' + label_actions: "Akcie" + label_confirmed: "Potvrdený" + button_continue: "Pokračovať" + button_make_default: "Označiť ako predvolené" label_unverified_phone: "Mobilný telefón ešte nie je overený" notice_phone_number_format: "Zadajte číslo v nasledujúcom formáte: + XX XXXXXXXX." text_otp_not_receive: "Ďalšie metódy overovania" diff --git a/modules/two_factor_authentication/config/locales/crowdin/sl.yml b/modules/two_factor_authentication/config/locales/crowdin/sl.yml index 3c20780d56cb..7100a82c67ec 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/sl.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/sl.yml @@ -7,14 +7,14 @@ sl: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifikator ' - default: 'Uporabi kot privzeto' + identifier: "Identifikator " + default: "Uporabi kot privzeto" two_factor_authentication/device/sms: phone_number: "Telefonska številka" errors: models: two_factor_authentication/device: - default_already_exists: 'je že nastavljeno za drugo napravo OTP' + default_already_exists: "je že nastavljeno za drugo napravo OTP" two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ sl: two_factor_authentication/device: "2FA naprava" two_factor_authentication/device/sms: "Mobilni telefon" two_factor_authentication/device/totp: "Aplikacija za preverjanje avtenčnosti " + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Dostava 2FA je onemogočena." error_no_device: "Za tega uporabnika ni bila najdena nobena registrirana 2FA naprava, čeprav je za ta primer potrebna." error_no_matching_strategy: "Za tega uporabnika ni na voljo ustrezne strategije 2FA. Prosimo obrnite se na svojega upravnika." - error_is_enforced_not_active: 'Napaka v konfiguraciji: dvofaktorska overitev je bila izvršena, vendar nobena aktivna strategija ne obstaja.' - error_invalid_backup_code: 'Neveljavna rezervna koda 2FA' + error_is_enforced_not_active: "Napaka v konfiguraciji: dvofaktorska overitev je bila izvršena, vendar nobena aktivna strategija ne obstaja." + error_invalid_backup_code: "Neveljavna rezervna koda 2FA" channel_unavailable: "Kanal za dostavo %{channel} ni na voljo." no_valid_phone_number: "Ne obstaja veljavna telefonska številka." label_pwd_confirmation: "Geslo" @@ -37,46 +38,47 @@ sl: label_default_device: "Privzeta naprava 2FA" label_device: "2FA naprava" label_devices: "naprave 2FA" - label_one_time_password: 'Enkratno geslo' - label_2fa_enabled: 'Dvofaktorska avtentikacija je aktivna' - label_2fa_disabled: 'Dvofaktorska avtentikacija ni aktivna' + label_one_time_password: "Enkratno geslo" + label_2fa_enabled: "Dvofaktorska avtentikacija je aktivna" + label_2fa_disabled: "Dvofaktorska avtentikacija ni aktivna" text_otp_delivery_message_sms: "Vaše %{app_title} enkratno geslo je %{token}" text_otp_delivery_message_voice: "Vaše %{app_title} enkratno geslo je: %{pause} %{token}. %{pause} Ponavljam: %{pause} %{token}" - text_enter_2fa: 'Prosimo vnesite enkratno geslo iz vaše naprave.' - text_2fa_enabled: 'Ob vsaki prijavi boste morali vnesti OTP žeton iz vaše privzete naprave 2FA.' - text_2fa_disabled: 'Da omogočite dvofaktorsko preverjanje pristnosti uporabite zgornji gumb za registracijo nove 2FA naprave. Če že imate napravo, jo morate nastaviti kot privzeto.' + text_enter_2fa: "Prosimo vnesite enkratno geslo iz vaše naprave." + text_2fa_enabled: "Ob vsaki prijavi boste morali vnesti OTP žeton iz vaše privzete naprave 2FA." + text_2fa_disabled: "Da omogočite dvofaktorsko preverjanje pristnosti uporabite zgornji gumb za registracijo nove 2FA naprave. Če že imate napravo, jo morate nastaviti kot privzeto." login: enter_backup_code_title: Vstavite rezervno kodo enter_backup_code_text: Prosimo vnesite veljavno rezervno kodo s svojega seznama kod v primeru, da ne morete več dostopati do vaših registriranih 2FA naprav. - other_device: 'Uporabite drugo napravo ali rezervno kodo' + other_device: "Uporabite drugo napravo ali rezervno kodo" settings: - title: 'Nastavitve 2FA' - current_configuration: 'Trenutna konfiguracija' - label_active_strategies: 'Aktivne 2FA strategije' - label_enforced: 'Izvršite 2FA' - label_remember: 'Zapomnite si 2FA prijavo' + title: "Nastavitve 2FA" + current_configuration: "Trenutna konfiguracija" + label_active_strategies: "Aktivne 2FA strategije" + label_enforced: "Izvršite 2FA" + label_remember: "Zapomnite si 2FA prijavo" text_configuration: | Opomba: Te vrednosti predstavljajo trenutno konfiguracijo celotne aplikacije. Ne morete onemogočiti nastavitev, ki jih izvrši konfiguracija, ali spremeniti trenutnih aktivnih strategij, saj zahtevajo ponovni zagon strežnika. text_configuration_guide: Za več informacij preverite vodnik konfiguracije. - text_enforced: 'Omogočite to nastavitev, da prisilite vse uporabnike, da ob naslednji prijavi registrirajo napravo 2FA. Lahko se onemogoči le ko ni izvršeno od konfiguracije.' + text_enforced: "Omogočite to nastavitev, da prisilite vse uporabnike, da ob naslednji prijavi registrirajo napravo 2FA. Lahko se onemogoči le ko ni izvršeno od konfiguracije." text_remember: | To nastavite na več kot nič, da dovolite uporabnikom, da si bodo lahko za poljubno število dni zapomnili njihovo 2FA avtentikacijo. V tem obdobju jih ne bo treba ponovno vnesti. Nastavite ga lahko samo, če ga konfiguracija ne uveljavi. - error_invalid_settings: 'Izbrane strategije 2FA so neveljavne' - failed_to_save_settings: 'Posodobitev nastavitev 2FA ni uspela: %{message}' + error_invalid_settings: "Izbrane strategije 2FA so neveljavne" + failed_to_save_settings: "Posodobitev nastavitev 2FA ni uspela: %{message}" admin: - self_edit_path: 'Če želite dodati ali spremeniti svoje 2FA naprave, pojdite na %{self_edit_link}' - self_edit_link_name: 'Dvofaktorna avtentikacija na strani vašega računa' - self_edit_forbidden: 'Tukaj ne morete urejati svojih naprav 2FA. Namesto tega pojdite na Moj račun > Dvofaktorska overitev' - no_devices_for_user: 'Za tega uporabnika ni bila registrirana nobena naprava 2FA.' - all_devices_deleted: 'Izbrisane so vse naprave 2FA tega uporabnika' - delete_all_are_you_sure: 'Ali ste prepričani, da želite izbrisati vse naprave 2FA za tega uporabnika?' - button_delete_all_devices: 'Izbrišite registrirane 2FA naprave' - button_register_mobile_phone_for_user: 'Registrirajte mobilni telefon' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Če želite dodati ali spremeniti svoje 2FA naprave, pojdite na %{self_edit_link}" + self_edit_link_name: "Dvofaktorna avtentikacija na strani vašega računa" + self_edit_forbidden: "Tukaj ne morete urejati svojih naprav 2FA. Namesto tega pojdite na Moj račun > Dvofaktorska overitev" + no_devices_for_user: "Za tega uporabnika ni bila registrirana nobena naprava 2FA." + all_devices_deleted: "Izbrisane so vse naprave 2FA tega uporabnika" + delete_all_are_you_sure: "Ali ste prepričani, da želite izbrisati vse naprave 2FA za tega uporabnika?" + button_delete_all_devices: "Izbrišite registrirane 2FA naprave" + button_register_mobile_phone_for_user: "Registrirajte mobilni telefon" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Dvofaktorna avtentikacija' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Dvofaktorna avtentikacija" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: "\nZa ta račun ni rezervnih kod." singular: Rezervna koda @@ -87,37 +89,42 @@ sl: Uporabite naslednji gumb za generacijo novih rezervnih kod. generate: title: Ustvari rezervne kode - keep_safe_as_password: 'Pomembno! Tretirajte te kode kot gesla.' - keep_safe_warning: 'Shranite jih v vašem upravljalcu gesel ali pa natisnite to stran in jo spravite na varno mesto.' - regenerate_warning: 'Opozorilo: Če ste v preteklosti že ustvarili rezervne kode, bodo razveljavljene in ne bodo več delovale.' + keep_safe_as_password: "Pomembno! Tretirajte te kode kot gesla." + keep_safe_warning: "Shranite jih v vašem upravljalcu gesel ali pa natisnite to stran in jo spravite na varno mesto." + regenerate_warning: "Opozorilo: Če ste v preteklosti že ustvarili rezervne kode, bodo razveljavljene in ne bodo več delovale." devices: - add_new: 'Dodajte novo 2FA napravo' - register: 'Registrirajte napravo' - confirm_default: 'Potrdite spreminjanje privzete naprave' - confirm_device: 'Potrdite napravo' - confirm_now: 'Ni potrjeno, kliknite tukaj za aktivacijo' - cannot_delete_default: 'Privzete naprave ni mogoče izbrisati' - make_default_are_you_sure: 'Ali ste prepričani, da želite to napravo 2FA nastaviti za privzeto?' - make_default_failed: 'Posodobitev privzete naprave 2FA ni uspela.' - deletion_are_you_sure: 'Ali ste prepričani, da želite izbrisati to napravo 2FA?' - registration_complete: 'Registracije naprave 2FA je končana!' - registration_failed_token_invalid: 'Registracija naprave 2FA ni uspela, žeton je bil neveljaven.' - registration_failed_update: 'Registracija naprave 2FA ni uspela, žeton je bil veljaven, vendar naprave ni bilo mogoče posodobiti.' - confirm_send_failed: 'Potrditev vaše naprave 2FA je spodletelo.' - button_complete_registration: 'Zaključi 2FA registracijo' + add_new: "Dodajte novo 2FA napravo" + register: "Registrirajte napravo" + confirm_default: "Potrdite spreminjanje privzete naprave" + confirm_device: "Potrdite napravo" + confirm_now: "Ni potrjeno, kliknite tukaj za aktivacijo" + cannot_delete_default: "Privzete naprave ni mogoče izbrisati" + make_default_are_you_sure: "Ali ste prepričani, da želite to napravo 2FA nastaviti za privzeto?" + make_default_failed: "Posodobitev privzete naprave 2FA ni uspela." + deletion_are_you_sure: "Ali ste prepričani, da želite izbrisati to napravo 2FA?" + registration_complete: "Registracije naprave 2FA je končana!" + registration_failed_token_invalid: "Registracija naprave 2FA ni uspela, žeton je bil neveljaven." + registration_failed_update: "Registracija naprave 2FA ni uspela, žeton je bil veljaven, vendar naprave ni bilo mogoče posodobiti." + confirm_send_failed: "Potrditev vaše naprave 2FA je spodletelo." + button_complete_registration: "Zaključi 2FA registracijo" text_confirm_to_complete_html: "Prosimo, dokončajte registracijo vaše naprave %{identifier} z vnosom enkratnega gesla iz privzete naprave." text_confirm_to_change_default_html: "Prosimo potrdite zamenjavo vaše privzete naprave v %{new_identifier} tako, da vnesete enkratno geslo iz trenutne privzete naprave." - text_identifier: 'Z uporabo tega polja lahko napravi daste identifikator po meri.' - failed_to_delete: 'Brisanje naprave 2FA ni bilo mogoče.' - is_default_cannot_delete: 'Naprava je označena kot privzeta in je ni mogoče izbrisati zaradi aktivnega varnostnega pravilnika. Pred brisanjem označite drugo napravo kot privzeto.' - not_existing: 'Za vaš račun ni bila registrirana nobena naprava 2FA.' - request_2fa: Prosimo vnesite kodo iz vašega %{device_name} za potrditev vaše identitete. + text_identifier: "Z uporabo tega polja lahko napravi daste identifikator po meri." + failed_to_delete: "Brisanje naprave 2FA ni bilo mogoče." + is_default_cannot_delete: "Naprava je označena kot privzeta in je ni mogoče izbrisati zaradi aktivnega varnostnega pravilnika. Pred brisanjem označite drugo napravo kot privzeto." + not_existing: "Za vaš račun ni bila registrirana nobena naprava 2FA." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Uporabite vaš avtentikator, ki temelji na aplikaciji.' - provisioning_uri: 'Zagotavljanje URI' - secret_key: 'Skrivni ključ' - time_based: 'Temelji na času' - account: 'Ime računa / Izdajatelj' + title: "Uporabite vaš avtentikator, ki temelji na aplikaciji." + provisioning_uri: "Zagotavljanje URI" + secret_key: "Skrivni ključ" + time_based: "Temelji na času" + account: "Ime računa / Izdajatelj" setup: | Za nastavitev dvofaktorne avtentikacije z Google Authenticator, naložite aplikacijo iz Apple trgovine ali Google Play Store. Ko odprete aplikacijo, lahko skenirate to QR kodo in tako registrirate napravo. @@ -129,31 +136,32 @@ sl: Registrirajte program za preverjanje pristnosti aplikacij za uporabo s programom OpenProject tako, da uporabite avtentikacijski standard enkratnega gesla, ki temelji na času. Pogosti primeri so Google Authenticator ali Authy. sms: - title: 'Uporabite mobilni telefon' - redacted_identifier: 'Mobilna naprava (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, poslali smo vam avtentikacijsko kodo na %{delivery_channel}' + title: "Uporabite mobilni telefon" + redacted_identifier: "Mobilna naprava (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, poslali smo vam avtentikacijsko kodo na %{delivery_channel}" description: | Registrirajte svojo številko mobilnega telefona za dostavo enkratnih gesel OpenProject. sns: - delivery_failed: 'Dostava SNS ni uspela:' + delivery_failed: "Dostava SNS ni uspela:" message_bird: - sms_delivery_failed: 'MessageBird SMS dostava ni uspela.' - voice_delivery_failed: 'MessageBird glasovni klic ni uspel.' + sms_delivery_failed: "MessageBird SMS dostava ni uspela." + voice_delivery_failed: "MessageBird glasovni klic ni uspel." strategies: - totp: 'Aplikacija za preverjanje avtenčnosti ' - sns: 'Amazon SNS' - resdt: 'SMS počitek API' + totp: "Aplikacija za preverjanje avtenčnosti " + sns: "Amazon SNS" + resdt: "SMS počitek API" + webauthn: "WebAuthn" mobile_transmit_notification: "Enkratno geslo je bilo poslano na vaš mobilni telefon." - label_two_factor_authentication: 'Dvofaktorna avtentikacija' + label_two_factor_authentication: "Dvofaktorna avtentikacija" forced_registration: - required_to_add_device: 'Aktivni varnostni pravilnik zahteva, da omogočite dvofaktorsko preverjanje pristnosti. Za registracijo naprave uporabite sledeči obrazec.' + required_to_add_device: "Aktivni varnostni pravilnik zahteva, da omogočite dvofaktorsko preverjanje pristnosti. Za registracijo naprave uporabite sledeči obrazec." remember: active_session_notice: > Vaš račun ima aktiven pomnik piškotka veljaven do %{expires_on}. Ta piškotek vam omogoča, da se do takrat vpišete brez drugega faktorja v svoj račun. other_active_session_notice: Vaš račun ima aktivni piškotek za zapomnitev v drugi seji. - label: 'Ne pozabite' - clear_cookie: 'Kliknite tukaj, da odstranite vse spomnjene seje 2FA.' - cookie_removed: 'Vse spomnjene seje 2FA so bile odstranjene.' + label: "Ne pozabite" + clear_cookie: "Kliknite tukaj, da odstranite vse spomnjene seje 2FA." + cookie_removed: "Vse spomnjene seje 2FA so bile odstranjene." dont_ask_again: "Ustvarite piškotek za zapomnitev pristnosti 2FA na tej stranki za %{days} days." field_phone: "Mobitel" field_otp: "Enkratno geslo" @@ -163,10 +171,10 @@ sl: notice_account_otp_send_failed: "Vašega enkratnega gesla ni bilo mogoče poslati." notice_account_has_no_phone: "Z vašim računom ni povezana nobena številka mobilnega telefona." label_expiration_hint: "%{date} ali ob odjavi" - label_actions: 'Akcije' - label_confirmed: 'Potrjeno' - button_continue: 'Nadaljuj' - button_make_default: 'Označite kot privzeto' + label_actions: "Akcije" + label_confirmed: "Potrjeno" + button_continue: "Nadaljuj" + button_make_default: "Označite kot privzeto" label_unverified_phone: "Mobilni telefon še ni preverjen" notice_phone_number_format: "Vnesite številko v naslednji obliki: + XX XXXXXXXX." text_otp_not_receive: "Druge metode preverjanja" diff --git a/modules/two_factor_authentication/config/locales/crowdin/sr.yml b/modules/two_factor_authentication/config/locales/crowdin/sr.yml index 89487869a7f0..daf827f74639 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/sr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/sr.yml @@ -7,14 +7,14 @@ sr: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ sr: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -37,47 +38,48 @@ sr: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ sr: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ sr: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ sr: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/sv.yml b/modules/two_factor_authentication/config/locales/crowdin/sv.yml index ee83a2bba22c..56c4ad04232c 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/sv.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/sv.yml @@ -7,14 +7,14 @@ sv: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifierare' - default: 'Använd som standard' + identifier: "Identifierare" + default: "Använd som standard" two_factor_authentication/device/sms: phone_number: "Telefonnummer" errors: models: two_factor_authentication/device: - default_already_exists: 'är redan inställd för en annan OTP enhet.' + default_already_exists: "är redan inställd för en annan OTP enhet." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ sv: two_factor_authentication/device: "2FA enhet" two_factor_authentication/device/sms: "Mobiltelefon" two_factor_authentication/device/totp: "Autentiseringsprogram" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA leverans har inaktiverats." error_no_device: "Ingen registrerad 2FA enhet hittades för den här användaren, trots att det krävs för den här instansen." error_no_matching_strategy: "Ingen matchande 2FA strategi tillgänglig för den här användaren. Vänligen kontakta din administratör." - error_is_enforced_not_active: 'Konfigurationsfel: tvåfaktorsautentisering har verkställts, men inga aktiva strategier finns.' - error_invalid_backup_code: 'Ogiltig 2FA reservkod' + error_is_enforced_not_active: "Konfigurationsfel: tvåfaktorsautentisering har verkställts, men inga aktiva strategier finns." + error_invalid_backup_code: "Ogiltig 2FA reservkod" channel_unavailable: "Leveranskanal %{channel} är inte tillgänglig." no_valid_phone_number: "Det finns inget giltigt telefonnummer." label_pwd_confirmation: "Lösenord" @@ -37,46 +38,47 @@ sv: label_default_device: "2FA standardenhet" label_device: "2FA enhet" label_devices: "2FA enheter" - label_one_time_password: 'Engångslösenord' - label_2fa_enabled: 'Tvåfaktorsautentisering är aktiv' - label_2fa_disabled: 'Tvåfaktorsautentisering är inaktiverad' + label_one_time_password: "Engångslösenord" + label_2fa_enabled: "Tvåfaktorsautentisering är aktiv" + label_2fa_disabled: "Tvåfaktorsautentisering är inaktiverad" text_otp_delivery_message_sms: "Engångslösenordet för %{app_title} är %{token}" text_otp_delivery_message_voice: "Engångslösenordet för %{app_title} är: %{pause} %{token}. %{pause} jag upprepar: %{pause} %{token}" - text_enter_2fa: 'Vänligen ange engångslösenordet från din enhet.' - text_2fa_enabled: 'Vid varje inloggning, blir du ombedd att ange ett OTP-token från din standard 2FA-enhet.' - text_2fa_disabled: 'För att aktivera tvåfaktorsautentisering, använd knappen ovan för att registrera en ny 2FA-enhet. Om du redan har en enhet måste du göra den till standardenhet.' + text_enter_2fa: "Vänligen ange engångslösenordet från din enhet." + text_2fa_enabled: "Vid varje inloggning, blir du ombedd att ange ett OTP-token från din standard 2FA-enhet." + text_2fa_disabled: "För att aktivera tvåfaktorsautentisering, använd knappen ovan för att registrera en ny 2FA-enhet. Om du redan har en enhet måste du göra den till standardenhet." login: enter_backup_code_title: Ange säkerhetskod enter_backup_code_text: Ange en giltig säkerhetskod från din kodlista om du inte längre kan komma åt dina registrerade 2FA-enheter. - other_device: 'Använd en annan enhet eller säkerhetskod' + other_device: "Använd en annan enhet eller säkerhetskod" settings: - title: '2FA-inställningar' - current_configuration: 'Aktuell konfiguration' - label_active_strategies: 'Aktiva 2FA strategier' - label_enforced: 'Tvinga 2FA' - label_remember: 'Kom ihåg 2FA inloggning' + title: "2FA-inställningar" + current_configuration: "Aktuell konfiguration" + label_active_strategies: "Aktiva 2FA strategier" + label_enforced: "Tvinga 2FA" + label_remember: "Kom ihåg 2FA inloggning" text_configuration: | Obs: Dessa värden representerar den aktuella konfigurationen för hela programmet. Du kan inte inaktivera inställningar som tvingats av konfigurationen eller ändra de aktuella aktiva strategierna, eftersom de kräver en omstart av servern. text_configuration_guide: För mer information, kolla konfigurationsguiden. - text_enforced: 'Aktivera denna inställning för att tvinga alla användare att registrera en 2FA-enhet vid nästa inloggning. Kan endast inaktiveras när det inte görs genom konfiguration.' + text_enforced: "Aktivera denna inställning för att tvinga alla användare att registrera en 2FA-enhet vid nästa inloggning. Kan endast inaktiveras när det inte görs genom konfiguration." text_remember: | Ställ in detta till mer än noll för att tillåta användare att komma ihåg sin 2FA-autentisering för det angivna antalet dagar. De kommer inte att bli ombedda att skriva in den under den perioden. Kan bara ställas in när det inte sker genom konfiguration. - error_invalid_settings: 'De 2FA strategier du har valt är ogiltiga' - failed_to_save_settings: 'Det gick inte att uppdatera 2FA inställningarna: %{message}' + error_invalid_settings: "De 2FA strategier du har valt är ogiltiga" + failed_to_save_settings: "Det gick inte att uppdatera 2FA inställningarna: %{message}" admin: - self_edit_path: 'För att lägga till eller ändra dina egna 2FA enheter, vänligen gå till %{self_edit_link}' - self_edit_link_name: 'Två-faktor autentisering på din kontosida' - self_edit_forbidden: 'Du kan inte redigera din egen 2FA enheter här. Gå till Mitt konto > Två faktor autentisering i stället.' - no_devices_for_user: 'Ingen 2FA enhet har registrerats för den här användaren.' - all_devices_deleted: 'Alla 2FA enheter för den här användaren har tagits bort' - delete_all_are_you_sure: 'Är du säker du vill ta bort alla 2FA enheter för denna användare?' - button_delete_all_devices: 'Ta bort registrerade 2FA enheter' - button_register_mobile_phone_for_user: 'Registrera mobiltelefon' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "För att lägga till eller ändra dina egna 2FA enheter, vänligen gå till %{self_edit_link}" + self_edit_link_name: "Två-faktor autentisering på din kontosida" + self_edit_forbidden: "Du kan inte redigera din egen 2FA enheter här. Gå till Mitt konto > Två faktor autentisering i stället." + no_devices_for_user: "Ingen 2FA enhet har registrerats för den här användaren." + all_devices_deleted: "Alla 2FA enheter för den här användaren har tagits bort" + delete_all_are_you_sure: "Är du säker du vill ta bort alla 2FA enheter för denna användare?" + button_delete_all_devices: "Ta bort registrerade 2FA enheter" + button_register_mobile_phone_for_user: "Registrera mobiltelefon" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Tvåfaktorsautentisering' - description: 'Strenghten säkerheten för din OpenProject instans genom att erbjuda (eller genomdriva) tvåfaktorsautentisering till alla projektmedlemmar.' + title: "Tvåfaktorsautentisering" + description: "Strenghten säkerheten för din OpenProject instans genom att erbjuda (eller genomdriva) tvåfaktorsautentisering till alla projektmedlemmar." backup_codes: none_found: Inga reservkoder finns för detta konto. singular: Reservkod @@ -86,37 +88,42 @@ sv: Om det inte går att komma åt dina tvåfaktor-enheter, kan du använda en reservkod för att återfå tillgång till kontot. Använd följande knapp för att generera en ny uppsättning reservkoder. generate: title: Generera reservkoder - keep_safe_as_password: 'Viktigt! Behandla dessa koder som lösenord.' - keep_safe_warning: 'Spara dem antingen i din lösenordshanterare, eller skriv ut sidan och lägg den på en säker plats.' - regenerate_warning: 'Varning: Om du har skapat reservkoder innan, blir de ogiltiga och fungerar inte längre.' + keep_safe_as_password: "Viktigt! Behandla dessa koder som lösenord." + keep_safe_warning: "Spara dem antingen i din lösenordshanterare, eller skriv ut sidan och lägg den på en säker plats." + regenerate_warning: "Varning: Om du har skapat reservkoder innan, blir de ogiltiga och fungerar inte längre." devices: - add_new: 'Lägg till ny 2FA enhet' - register: 'Registrera enheten' - confirm_default: 'Bekräfta ändra standardenhet' - confirm_device: 'Bekräfta enhet' - confirm_now: 'Har inte bekräftas, klicka här för att aktivera' - cannot_delete_default: 'Kan inte ta bort standardenheten' - make_default_are_you_sure: 'Är du säker på att du vill göra den här 2FA enheten till standard?' - make_default_failed: 'Det gick inte att uppdatera 2FA standardenhet.' - deletion_are_you_sure: 'Är du säker du vill ta bort denna 2FA enhet?' - registration_complete: '2FA enhetsregistrering klar!' - registration_failed_token_invalid: '2FA enhetsregistreringen misslyckades, token var ogiltigt.' - registration_failed_update: '2FA enhetsregistreringen misslyckades, token var giltigt men enheten kunde inte uppdateras.' - confirm_send_failed: 'Bekräftelse av din 2FA enhet misslyckades.' - button_complete_registration: 'Slutför 2FA registreringen' + add_new: "Lägg till ny 2FA enhet" + register: "Registrera enheten" + confirm_default: "Bekräfta ändra standardenhet" + confirm_device: "Bekräfta enhet" + confirm_now: "Har inte bekräftas, klicka här för att aktivera" + cannot_delete_default: "Kan inte ta bort standardenheten" + make_default_are_you_sure: "Är du säker på att du vill göra den här 2FA enheten till standard?" + make_default_failed: "Det gick inte att uppdatera 2FA standardenhet." + deletion_are_you_sure: "Är du säker du vill ta bort denna 2FA enhet?" + registration_complete: "2FA enhetsregistrering klar!" + registration_failed_token_invalid: "2FA enhetsregistreringen misslyckades, token var ogiltigt." + registration_failed_update: "2FA enhetsregistreringen misslyckades, token var giltigt men enheten kunde inte uppdateras." + confirm_send_failed: "Bekräftelse av din 2FA enhet misslyckades." + button_complete_registration: "Slutför 2FA registreringen" text_confirm_to_complete_html: "Vänligen fyll i registreringen av din enhet %{identifier} genom att ange ett engångslösenord från standardenheten." text_confirm_to_change_default_html: "Bekräfta att du ändrar standardinställningen till %{new_identifier} genom att ange ett engångslösenord från din nuvarande standardenhet." - text_identifier: 'Du kan ge enheten en anpassad identifierare med det här fältet.' - failed_to_delete: 'Kunde inte ta bort 2FA enhet.' - is_default_cannot_delete: 'Enheten är markerad som standard och kan inte raderas på grund av en aktiv säkerhetspolicy. Markera en annan enhet som standard innan du raderar.' - not_existing: 'Ingen 2FA enhet har registrerats för det här kontot.' - request_2fa: Ange koden från %{device_name} för att verifiera din identitet. + text_identifier: "Du kan ge enheten en anpassad identifierare med det här fältet." + failed_to_delete: "Kunde inte ta bort 2FA enhet." + is_default_cannot_delete: "Enheten är markerad som standard och kan inte raderas på grund av en aktiv säkerhetspolicy. Markera en annan enhet som standard innan du raderar." + not_existing: "Ingen 2FA enhet har registrerats för det här kontot." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Använd din autentiserings-app' - provisioning_uri: 'Tillhandahållande av URI' - secret_key: 'Hemlig nyckel' - time_based: 'Tidsbaserad' - account: 'Kontonamn / Utgivare' + title: "Använd din autentiserings-app" + provisioning_uri: "Tillhandahållande av URI" + secret_key: "Hemlig nyckel" + time_based: "Tidsbaserad" + account: "Kontonamn / Utgivare" setup: | För att konfigurera tvåfaktorsautentisering med Google Authenticator, ladda ner programmet från Apples App Store eller Google Play Butiken. När du har öppnat appen kan du skanna följande QR-kod för att registrera enheten. question_cannot_scan: | @@ -126,31 +133,32 @@ sv: description: | Registrera en app-autentiserare för användning med OpenProject med hjälp av den tidsbaserade engångsautentiserings-standarden. Vanliga exempel är Google Authenticator eller Authy. sms: - title: 'Använd din mobiltelefon' - redacted_identifier: 'Mobiltelefon (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, vi skickade en autentiseringskod till dig via %{delivery_channel}' + title: "Använd din mobiltelefon" + redacted_identifier: "Mobiltelefon (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, vi skickade en autentiseringskod till dig via %{delivery_channel}" description: | Registrera ditt mobiltelefonnummer för leverans av OpenProject engångslösenord. sns: - delivery_failed: 'SNS leverans misslyckades:' + delivery_failed: "SNS leverans misslyckades:" message_bird: - sms_delivery_failed: 'MessageBird SMS leverans misslyckades.' - voice_delivery_failed: 'MessageBird röstsamtal misslyckades.' + sms_delivery_failed: "MessageBird SMS leverans misslyckades." + voice_delivery_failed: "MessageBird röstsamtal misslyckades." strategies: - totp: 'Autentiseringsprogram' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Autentiseringsprogram" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Ett engångslösenord har skickats till din mobiltelefon." - label_two_factor_authentication: 'Tvåfaktorsautentisering' + label_two_factor_authentication: "Tvåfaktorsautentisering" forced_registration: - required_to_add_device: 'En aktiv säkerhetsprincip kräver att du aktiverar tvåfaktorsautentisering. Använd formuläret nedan för att registrera en enhet.' + required_to_add_device: "En aktiv säkerhetsprincip kräver att du aktiverar tvåfaktorsautentisering. Använd formuläret nedan för att registrera en enhet." remember: active_session_notice: > Ditt konto har en aktiv cookie giltigt till %{expires_on}. Med denna cookie kan du under tiden logga in utan en andra faktor till ditt konto. other_active_session_notice: Ditt konto har en aktiv cookie för att komma ihåg en annan session. - label: 'Kom ihåg' - clear_cookie: 'Klicka här för att ta bort alla sparade 2FA sessioner.' - cookie_removed: 'Alla sparade 2FA sessioner har tagits bort.' + label: "Kom ihåg" + clear_cookie: "Klicka här för att ta bort alla sparade 2FA sessioner." + cookie_removed: "Alla sparade 2FA sessioner har tagits bort." dont_ask_again: "Skapa en cookie för att komma ihåg 2FA autentisering på den här klienten för %{days} dagar." field_phone: "Mobiltelefon" field_otp: "Engångslösenord" @@ -160,10 +168,10 @@ sv: notice_account_otp_send_failed: "Ditt engångslösenord kunde inte skickas." notice_account_has_no_phone: "Ingen mobiltelefonnummer är kopplat till ditt konto." label_expiration_hint: "%{date} eller på utloggning" - label_actions: 'Åtgärder' - label_confirmed: 'Bekräftad' - button_continue: 'Fortsätt' - button_make_default: 'Markera som standard' + label_actions: "Åtgärder" + label_confirmed: "Bekräftad" + button_continue: "Fortsätt" + button_make_default: "Markera som standard" label_unverified_phone: "Mobiltelefon som inte ännu verifierats" notice_phone_number_format: "Vänligen ange nummer i följande format: + XX XXXXXXXX." text_otp_not_receive: "Andra verifieringsmetoder" diff --git a/modules/two_factor_authentication/config/locales/crowdin/th.yml b/modules/two_factor_authentication/config/locales/crowdin/th.yml index c0540f9f5a11..89084dbedc73 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/th.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/th.yml @@ -7,14 +7,14 @@ th: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'ค่าตั้งต้น' + identifier: "Identifier" + default: "ค่าตั้งต้น" two_factor_authentication/device/sms: phone_number: "หมายเลขโทรศัพท์" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ th: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "รหัสผ่าน" @@ -37,47 +38,48 @@ th: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ th: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ th: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -164,10 +172,10 @@ th: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'ยืนยันแล้ว' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "ยืนยันแล้ว" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/tr.yml b/modules/two_factor_authentication/config/locales/crowdin/tr.yml index a3b2cd7aa954..a885af00dc40 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/tr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/tr.yml @@ -7,14 +7,14 @@ tr: activerecord: attributes: two_factor_authentication/device: - identifier: 'Tanıtıcı' - default: 'Varsayılan olarak kullan' + identifier: "Tanıtıcı" + default: "Varsayılan olarak kullan" two_factor_authentication/device/sms: phone_number: "Telefon numarası" errors: models: two_factor_authentication/device: - default_already_exists: 'zaten başka bir OTP cihazı için ayarlanmış.' + default_already_exists: "zaten başka bir OTP cihazı için ayarlanmış." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ tr: two_factor_authentication/device: "2FA cihazı" two_factor_authentication/device/sms: "Cep telefonu" two_factor_authentication/device/totp: "Kimlik doğrulayıcı uygulama" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA teslimi devre dışı bırakıldı." error_no_device: "Bu örnek için gerekli olmasına rağmen, bu kullanıcı için kayıtlı 2FA cihazı bulunamadı." error_no_matching_strategy: "Bu kullanıcı için eşleşen 2FA stratejisi yok. Lütfen yöneticinize başvurun." - error_is_enforced_not_active: 'Yapılandırma hatası: İki faktörlü kimlik doğrulama zorlandı, ancak etkin stratejiler mevcut değil.' - error_invalid_backup_code: 'Geçersiz 2FA yedekleme kodu' + error_is_enforced_not_active: "Yapılandırma hatası: İki faktörlü kimlik doğrulama zorlandı, ancak etkin stratejiler mevcut değil." + error_invalid_backup_code: "Geçersiz 2FA yedekleme kodu" channel_unavailable: "%{channel} yayın kanalı kullanılamıyor." no_valid_phone_number: "Geçerli bir telefon numarası yok." label_pwd_confirmation: "Parola" @@ -37,47 +38,48 @@ tr: label_default_device: "Varsayılan 2FA cihazı" label_device: "2FA cihazı" label_devices: "2FA cihazları" - label_one_time_password: 'Tek seferlik şifre' - label_2fa_enabled: 'İki faktörlü kimlik doğrulama etkin' - label_2fa_disabled: 'İki faktörlü kimlik doğrulama etkin değil' + label_one_time_password: "Tek seferlik şifre" + label_2fa_enabled: "İki faktörlü kimlik doğrulama etkin" + label_2fa_disabled: "İki faktörlü kimlik doğrulama etkin değil" text_otp_delivery_message_sms: "%{app_title} bir kerelik şifreniz %{token}" text_otp_delivery_message_voice: "%{app_title} bir kerelik parolanız: %{pause} %{token}. %{pause} Tekrar ediyorum: %{pause} %{token} " - text_enter_2fa: 'Lütfen cihazınızdan bir kerelik şifre girin.' - text_2fa_enabled: 'Her giriş yaptığınızda, varsayılan 2FA cihazınızdan bir OTP belirteci girmeniz istenir.' - text_2fa_disabled: 'İki faktörlü kimlik doğrulamayı etkinleştirmek için, yeni bir 2FA cihazı kaydetmek için yukarıdaki düğmeyi kullanın. Zaten bir cihazınız varsa, varsayılan olarak ayarlamanız gerekir.' + text_enter_2fa: "Lütfen cihazınızdan bir kerelik şifre girin." + text_2fa_enabled: "Her giriş yaptığınızda, varsayılan 2FA cihazınızdan bir OTP belirteci girmeniz istenir." + text_2fa_disabled: "İki faktörlü kimlik doğrulamayı etkinleştirmek için, yeni bir 2FA cihazı kaydetmek için yukarıdaki düğmeyi kullanın. Zaten bir cihazınız varsa, varsayılan olarak ayarlamanız gerekir." login: enter_backup_code_title: Yedek kodunu girin enter_backup_code_text: Kayıtlı 2FA cihazlarınıza artık erişememeniz durumunda lütfen kod listenizden geçerli bir yedekleme kodu girin. - other_device: 'Başka bir cihaz veya yedekleme kodu kullanın' + other_device: "Başka bir cihaz veya yedekleme kodu kullanın" settings: - title: '2FA ayarları' - current_configuration: 'Geçerli yapılandırma' - label_active_strategies: 'Aktif 2FA stratejileri' - label_enforced: '2FA''yı uygula' - label_remember: '2FA girişini hatırla' + title: "2FA ayarları" + current_configuration: "Geçerli yapılandırma" + label_active_strategies: "Aktif 2FA stratejileri" + label_enforced: "2FA'yı uygula" + label_remember: "2FA girişini hatırla" text_configuration: | Not: Bu değerler geçerli uygulama genelinde yapılandırmayı temsil eder. Yapılandırmanın uyguladığı ayarları devre dışı bırakamaz veya mevcut aktif stratejileri değiştiremezsiniz, çünkü sunucunun yeniden başlatılmasını gerektirir. text_configuration_guide: Daha fazla bilgi için yapılandırma kılavuzunu kontrol edin. - text_enforced: 'Tüm kullanıcıları bir sonraki oturum açışında 2FA cihazı kaydetmeye zorlamak için bu ayarı etkinleştirin. Yalnızca yapılandırma tarafından zorlanmadığında devre dışı bırakılabilir.' + text_enforced: "Tüm kullanıcıları bir sonraki oturum açışında 2FA cihazı kaydetmeye zorlamak için bu ayarı etkinleştirin. Yalnızca yapılandırma tarafından zorlanmadığında devre dışı bırakılabilir." text_remember: | Kullanıcıların verilen 2 gün için 2FA onaylarını hatırlamalarını sağlamak için bunu sıfırdan büyük olarak ayarlayın. Bu süre içinde tekrar girmeleri istenmeyecektir. Sadece yapılandırma tarafından zorlanmadığında ayarlanabilir. - error_invalid_settings: 'Seçtiğiniz 2FA stratejileri geçersiz' - failed_to_save_settings: '2FA ayarları güncellenemedi: %{message}' + error_invalid_settings: "Seçtiğiniz 2FA stratejileri geçersiz" + failed_to_save_settings: "2FA ayarları güncellenemedi: %{message}" admin: - self_edit_path: 'Kendi 2FA cihazlarınızı eklemek veya değiştirmek için, lütfen %{self_edit_link} adresine gidin.' - self_edit_link_name: 'Hesap sayfanızda iki faktörlü kimlik doğrulama' - self_edit_forbidden: 'Bu yolda kendi 2FA cihazlarınızı düzenleyemezsiniz. Hesabım> İki faktörlü kimlik doğrulama yerine gidin.' - no_devices_for_user: 'Bu kullanıcı için 2FA cihazı kayıtlı değil.' - all_devices_deleted: 'Bu kullanıcının tüm 2FA cihazları silindi' - delete_all_are_you_sure: 'Bu kullanıcı için tüm 2FA cihazlarını silmek istediğinize emin misiniz?' - button_delete_all_devices: 'Kayıtlı 2FA cihazlarını sil' - button_register_mobile_phone_for_user: 'Cep telefonunu kaydet' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "Kendi 2FA cihazlarınızı eklemek veya değiştirmek için, lütfen %{self_edit_link} adresine gidin." + self_edit_link_name: "Hesap sayfanızda iki faktörlü kimlik doğrulama" + self_edit_forbidden: "Bu yolda kendi 2FA cihazlarınızı düzenleyemezsiniz. Hesabım> İki faktörlü kimlik doğrulama yerine gidin." + no_devices_for_user: "Bu kullanıcı için 2FA cihazı kayıtlı değil." + all_devices_deleted: "Bu kullanıcının tüm 2FA cihazları silindi" + delete_all_are_you_sure: "Bu kullanıcı için tüm 2FA cihazlarını silmek istediğinize emin misiniz?" + button_delete_all_devices: "Kayıtlı 2FA cihazlarını sil" + button_register_mobile_phone_for_user: "Cep telefonunu kaydet" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'İki faktörlü kimlik doğrulama' - description: 'Tüm proje üyelerine iki faktörlü kimlik doğrulama sunarak (veya zorunlu kılarak) OpenProject bulut sunucunuzun güvenliğini güçlendirin.' + title: "İki faktörlü kimlik doğrulama" + description: "Tüm proje üyelerine iki faktörlü kimlik doğrulama sunarak (veya zorunlu kılarak) OpenProject bulut sunucunuzun güvenliğini güçlendirin." backup_codes: none_found: Bu hesap için yedek kod yok. singular: Yedek kod @@ -88,37 +90,42 @@ tr: Yeni bir yedekleme kodu kümesi oluşturmak için aşağıdaki düğmeyi kullanın. generate: title: Yedek kodları üret - keep_safe_as_password: 'Önemli! Bu kodları şifre olarak kabul edin.' - keep_safe_warning: 'Onları şifre yöneticinize kaydedin veya bu sayfayı yazdırın ve güvenli bir yere koyun.' - regenerate_warning: 'Uyarı: Daha önce yedekleme kodları oluşturduysanız, geçersiz sayılacaklar ve artık çalışmayacaklar.' + keep_safe_as_password: "Önemli! Bu kodları şifre olarak kabul edin." + keep_safe_warning: "Onları şifre yöneticinize kaydedin veya bu sayfayı yazdırın ve güvenli bir yere koyun." + regenerate_warning: "Uyarı: Daha önce yedekleme kodları oluşturduysanız, geçersiz sayılacaklar ve artık çalışmayacaklar." devices: - add_new: 'Yeni 2FA cihazı ekle' - register: 'Kayıt cihazı' - confirm_default: 'Varsayılan cihazı değiştirmeyi onayla' - confirm_device: 'Cihazı onayla' - confirm_now: 'Onaylanmadı, etkinleştirmek için buraya tıklayın' - cannot_delete_default: 'Varsayılan cihaz silinemiyor' - make_default_are_you_sure: 'Bu 2FA cihazını varsayılan yapmak istediğinize emin misiniz?' - make_default_failed: 'Varsayılan 2FA cihazı güncellenemedi.' - deletion_are_you_sure: 'Bu 2FA cihazını silmek istediğinize emin misiniz?' - registration_complete: '2FA cihaz kaydı tamamlandı!' - registration_failed_token_invalid: '2FA cihaz kaydı başarısız oldu; belirteç geçersizdi.' - registration_failed_update: '2FA cihaz kaydı başarısız oldu; belirteç geçerliydi, ancak cihaz güncellenemedi.' - confirm_send_failed: '2FA cihazınızın onayı başarısız oldu.' - button_complete_registration: '2FA kaydını tamamla' + add_new: "Yeni 2FA cihazı ekle" + register: "Kayıt cihazı" + confirm_default: "Varsayılan cihazı değiştirmeyi onayla" + confirm_device: "Cihazı onayla" + confirm_now: "Onaylanmadı, etkinleştirmek için buraya tıklayın" + cannot_delete_default: "Varsayılan cihaz silinemiyor" + make_default_are_you_sure: "Bu 2FA cihazını varsayılan yapmak istediğinize emin misiniz?" + make_default_failed: "Varsayılan 2FA cihazı güncellenemedi." + deletion_are_you_sure: "Bu 2FA cihazını silmek istediğinize emin misiniz?" + registration_complete: "2FA cihaz kaydı tamamlandı!" + registration_failed_token_invalid: "2FA cihaz kaydı başarısız oldu; belirteç geçersizdi." + registration_failed_update: "2FA cihaz kaydı başarısız oldu; belirteç geçerliydi, ancak cihaz güncellenemedi." + confirm_send_failed: "2FA cihazınızın onayı başarısız oldu." + button_complete_registration: "2FA kaydını tamamla" text_confirm_to_complete_html: "Lütfen varsayılan cihazınızdan bir kerelik bir şifre girerek cihazınızın %{identifier} kaydını tamamlayın." text_confirm_to_change_default_html: "Lütfen geçerli varsayılan cihazınızdan bir kerelik bir şifre girerek varsayılan cihazınızı %{new_identifier} olarak değiştirmeyi onaylayın." - text_identifier: 'Bu alanı kullanarak cihaza özel bir tanımlayıcı verebilirsiniz.' - failed_to_delete: '2FA cihazı silinemedi.' - is_default_cannot_delete: 'Cihaz varsayılan olarak işaretlenmiştir ve aktif bir güvenlik politikası nedeniyle silinemez. Silmeden önce başka bir cihazı varsayılan olarak işaretleyin.' - not_existing: 'Hesabınız için 2FA cihazı kayıtlı değil.' - request_2fa: Lütfen kimliğinizi doğrulamak için %{device_name} kodunuzu girin. + text_identifier: "Bu alanı kullanarak cihaza özel bir tanımlayıcı verebilirsiniz." + failed_to_delete: "2FA cihazı silinemedi." + is_default_cannot_delete: "Cihaz varsayılan olarak işaretlenmiştir ve aktif bir güvenlik politikası nedeniyle silinemez. Silmeden önce başka bir cihazı varsayılan olarak işaretleyin." + not_existing: "Hesabınız için 2FA cihazı kayıtlı değil." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Uygulama tabanlı kimlik doğrulayıcınızı kullanın' - provisioning_uri: 'URI sağlama' - secret_key: 'Gizli anahtar' - time_based: 'Zaman bazlı' - account: 'Hesap adı / İhraççı' + title: "Uygulama tabanlı kimlik doğrulayıcınızı kullanın" + provisioning_uri: "URI sağlama" + secret_key: "Gizli anahtar" + time_based: "Zaman bazlı" + account: "Hesap adı / İhraççı" setup: | Google Authenticator ile iki faktörlü kimlik doğrulaması ayarlamak için uygulamayı Apple App Store'dan veya Google Play Store'dan indirin. Uygulamayı açtıktan sonra, cihazı kaydetmek için aşağıdaki QR kodunu tarayabilirsiniz. @@ -130,31 +137,32 @@ tr: OpenProject ile kullanmak için zaman tabanlı bir kerelik şifre kimlik doğrulama standardını kullanarak bir uygulama kimlik doğrulayıcı kaydedin. Yaygın örnekler, Google Authenticator veya Authy. sms: - title: 'cep telefonunu kullan' - redacted_identifier: 'Mobil cihaz (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, size %{delivery_channel} üzerinden bir kimlik doğrulama kodu gönderdik ' + title: "cep telefonunu kullan" + redacted_identifier: "Mobil cihaz (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, size %{delivery_channel} üzerinden bir kimlik doğrulama kodu gönderdik " description: | OpenProject bir kerelik şifrelerin teslimi için cep telefonu numaranızı kaydedin. sns: - delivery_failed: 'SNS teslimi başarısız oldu:' + delivery_failed: "SNS teslimi başarısız oldu:" message_bird: - sms_delivery_failed: 'MessageBird SMS gönderimi başarısız oldu.' - voice_delivery_failed: 'MessageBird sesli arama başarısız oldu.' + sms_delivery_failed: "MessageBird SMS gönderimi başarısız oldu." + voice_delivery_failed: "MessageBird sesli arama başarısız oldu." strategies: - totp: 'Kimlik doğrulayıcı uygulama' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Kimlik doğrulayıcı uygulama" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "Tek kullanımlık şifre cep telefonunuza gönderildi." - label_two_factor_authentication: 'İki faktörlü kimlik doğrulama' + label_two_factor_authentication: "İki faktörlü kimlik doğrulama" forced_registration: - required_to_add_device: 'İki faktörlü kimlik doğrulayıcıyı etkinleştirmek için aktif bir güvenlik politikası gereklidir. Bir cihazı kaydetmek için lütfen aşağıdaki formu doldurun.' + required_to_add_device: "İki faktörlü kimlik doğrulayıcıyı etkinleştirmek için aktif bir güvenlik politikası gereklidir. Bir cihazı kaydetmek için lütfen aşağıdaki formu doldurun." remember: active_session_notice: > Hesabınız %{expires_on}'e kadar geçerli bir hatırlama çerezi var. O zamana kadar bu çerez, hesabınıza ikinci faktöre gerek kalmadan giriş izni verir. other_active_session_notice: Hesabınızda başka bir oturumda etkin bir hatırlama çerezi var. - label: 'Hatırla' - clear_cookie: 'Tüm hatırlanan 2FA oturumlarını kaldırmak için buraya tıklayın.' - cookie_removed: 'Tüm hatırlanan 2FA oturumları kaldırıldı.' + label: "Hatırla" + clear_cookie: "Tüm hatırlanan 2FA oturumlarını kaldırmak için buraya tıklayın." + cookie_removed: "Tüm hatırlanan 2FA oturumları kaldırıldı." dont_ask_again: "Bu kullanıcı da 2FA kimlik doğrulamasını %{days} gün boyunca hatırlamak için çerez oluştur." field_phone: "Cep telefonu" field_otp: "Tek kullanımlık şifre" @@ -164,10 +172,10 @@ tr: notice_account_otp_send_failed: "Tek kullanımlık şifreniz gönderilemedi." notice_account_has_no_phone: "Hesabınızla ilişkili cep telefonu numarası yok." label_expiration_hint: "%{date} yada çıkışta" - label_actions: 'Eylemler' - label_confirmed: 'Onaylandı' - button_continue: 'Devam et' - button_make_default: 'Varsayılan olarak işaretleyin' + label_actions: "Eylemler" + label_confirmed: "Onaylandı" + button_continue: "Devam et" + button_make_default: "Varsayılan olarak işaretleyin" label_unverified_phone: "Cep telefonu henüz doğrulanmadı" notice_phone_number_format: "Lütfen numaranızı yandaki formatta giriniz: +XX XXXXXXXX." text_otp_not_receive: "Diğer doğrulama yöntemleri" diff --git a/modules/two_factor_authentication/config/locales/crowdin/uk.yml b/modules/two_factor_authentication/config/locales/crowdin/uk.yml index fc8308b36e9d..f49778ef9eab 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/uk.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/uk.yml @@ -7,14 +7,14 @@ uk: activerecord: attributes: two_factor_authentication/device: - identifier: 'Ідентифікатор' - default: 'Використовувати за замовчуванням' + identifier: "Ідентифікатор" + default: "Використовувати за замовчуванням" two_factor_authentication/device/sms: phone_number: "Номер телефону" errors: models: two_factor_authentication/device: - default_already_exists: 'вже встановлено для іншого пристрою OTP.' + default_already_exists: "вже встановлено для іншого пристрою OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ uk: two_factor_authentication/device: "2FA пристрій" two_factor_authentication/device/sms: "Мобільний телефон" two_factor_authentication/device/totp: "Програма-автентифікатор" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Показ 2FA вимкнено." error_no_device: "Для цього користувача не знайдено зареєстрованого пристрою 2FA, незважаючи на те, що для цього екземпляра потрібно." error_no_matching_strategy: "Для цього користувача не доступна відповідна стратегія 2FA. Зверніться до свого адміністратора." - error_is_enforced_not_active: 'Помилка конфігурації: Двофакторна аутентифікація була застосована, але активних стратегій не існує.' - error_invalid_backup_code: 'Недійсний код резервного копіювання 2FA' + error_is_enforced_not_active: "Помилка конфігурації: Двофакторна аутентифікація була застосована, але активних стратегій не існує." + error_invalid_backup_code: "Недійсний код резервного копіювання 2FA" channel_unavailable: "Канал доставки %{channel} недоступний." no_valid_phone_number: "Немає дійсного номера телефону." label_pwd_confirmation: "Пароль" @@ -37,47 +38,48 @@ uk: label_default_device: "Пристрій за замовчуванням 2FA" label_device: "2FA пристрій" label_devices: "2FA пристрої" - label_one_time_password: 'Одноразовий пароль' - label_2fa_enabled: 'Двофакторна аутентифікація активна' - label_2fa_disabled: 'Двофакторна аутентифікація не активна' + label_one_time_password: "Одноразовий пароль" + label_2fa_enabled: "Двофакторна аутентифікація активна" + label_2fa_disabled: "Двофакторна аутентифікація не активна" text_otp_delivery_message_sms: "Ваш %{app_title} одноразовий пароль %{token}" text_otp_delivery_message_voice: "Ваш %{app_title} одноразовий пароль:%{pause} %{token} %{pause} Я повторюю: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Після кожного входу вам буде запропоновано ввести маркер OTP з пристрою 2FA за умовчанням.' - text_2fa_disabled: 'Щоб увімкнути двофакторну аутентифікацію, скористайтеся кнопкою вище для реєстрації нового пристрою 2FA. Якщо у вас вже є пристрій, потрібно зробити його стандартним.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Після кожного входу вам буде запропоновано ввести маркер OTP з пристрою 2FA за умовчанням." + text_2fa_disabled: "Щоб увімкнути двофакторну аутентифікацію, скористайтеся кнопкою вище для реєстрації нового пристрою 2FA. Якщо у вас вже є пристрій, потрібно зробити його стандартним." login: enter_backup_code_title: Введіть резервний код enter_backup_code_text: Введіть дійсний код резервного копіювання зі списку кодів, якщо ви більше не зможете отримати доступ до зареєстрованих пристроїв 2FA. - other_device: 'Використовуйте інший пристрій або резервний код' + other_device: "Використовуйте інший пристрій або резервний код" settings: - title: 'Налаштування 2FA' - current_configuration: 'Поточна конфігурація' - label_active_strategies: 'Активні стратегії 2FA' - label_enforced: 'Здійснюйте 2FA' - label_remember: 'Запам''ятайте логін 2FA' + title: "Налаштування 2FA" + current_configuration: "Поточна конфігурація" + label_active_strategies: "Активні стратегії 2FA" + label_enforced: "Здійснюйте 2FA" + label_remember: "Запам'ятайте логін 2FA" text_configuration: | Примітка: Ці значення являють собою поточну конфігурацію в цілому. Ви не можете вимкнути налаштування, застосовані конфігурацією, або змінити поточні активні стратегії, оскільки вони вимагають перезавантаження сервера. text_configuration_guide: Додаткову інформацію див. У посібнику з налаштування. - text_enforced: 'Увімкніть цей параметр, щоб примусити всіх користувачів зареєструвати пристрій 2FA під час наступного входу. Забороняється вимикати лише тоді, коли конфігурація не застосовується.' + text_enforced: "Увімкніть цей параметр, щоб примусити всіх користувачів зареєструвати пристрій 2FA під час наступного входу. Забороняється вимикати лише тоді, коли конфігурація не застосовується." text_remember: | Встановіть значення, що перевищує нуль, щоб дозволити користувачам запам'ятовувати автентифікацію 2FA протягом заданого числа днів. Протягом цього періоду їм не буде запропоновано повторно ввести його. Можна встановити лише тоді, коли конфігурація не застосовується. - error_invalid_settings: 'Вибрані стратегії 2FA недійсні' - failed_to_save_settings: 'Не вдалося оновити налаштування 2FA: %{message}' + error_invalid_settings: "Вибрані стратегії 2FA недійсні" + failed_to_save_settings: "Не вдалося оновити налаштування 2FA: %{message}" admin: - self_edit_path: ' Щоб додати або змінити власні пристрої 2FA, перейдіть до %{self_edit_link}' - self_edit_link_name: 'Двофакторна аутентифікація на сторінці облікового запису' - self_edit_forbidden: 'На цьому шляху не можна редагувати власні пристрої 2FA. Замість цього перейдіть до розділу Мій обліковий запис> Двофакторна автентифікація.' - no_devices_for_user: 'Для цього користувача не було зареєстровано жодного пристрою 2FA.' - all_devices_deleted: 'Усі пристрої 2FA цього користувача видалено' - delete_all_are_you_sure: 'Дійсно видалити всі пристрої 2FA для цього користувача?' - button_delete_all_devices: 'Видалити зареєстровані пристрої 2FA' - button_register_mobile_phone_for_user: 'Зареєструйте мобільний телефон' - text_2fa_enabled: 'Під час кожного входу користувачу пропонуватиметься ввести маркер OTP зі свого пристрою 2FA за замовчуванням.' + self_edit_path: " Щоб додати або змінити власні пристрої 2FA, перейдіть до %{self_edit_link}" + self_edit_link_name: "Двофакторна аутентифікація на сторінці облікового запису" + self_edit_forbidden: "На цьому шляху не можна редагувати власні пристрої 2FA. Замість цього перейдіть до розділу Мій обліковий запис> Двофакторна автентифікація." + no_devices_for_user: "Для цього користувача не було зареєстровано жодного пристрою 2FA." + all_devices_deleted: "Усі пристрої 2FA цього користувача видалено" + delete_all_are_you_sure: "Дійсно видалити всі пристрої 2FA для цього користувача?" + button_delete_all_devices: "Видалити зареєстровані пристрої 2FA" + button_register_mobile_phone_for_user: "Зареєструйте мобільний телефон" + text_2fa_enabled: "Під час кожного входу користувачу пропонуватиметься ввести маркер OTP зі свого пристрою 2FA за замовчуванням." text_2fa_disabled: "Користувач не налаштував пристрій 2FA на своїй сторінці «Мій обліковий запис»" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Двофакторна аутентифікація' - description: 'Посильте безпеку свого екземпляра OpenProject, передбачивши можливість проходити двоетапну автентифікацію (добровільно або примусово) для всіх учасників проєкту.' + title: "Двофакторна аутентифікація" + description: "Посильте безпеку свого екземпляра OpenProject, передбачивши можливість проходити двоетапну автентифікацію (добровільно або примусово) для всіх учасників проєкту." backup_codes: none_found: Для цього облікового запису не існує резервних кодів. singular: Резервний код @@ -88,37 +90,42 @@ uk: Використовуйте наступну кнопку, щоб створити новий набір резервних кодів. generate: title: Створити резервні коди - keep_safe_as_password: 'Важливо! Розглядайте ці коди як паролі.' - keep_safe_warning: 'Або збережіть їх у менеджері паролів, або роздрукуйте цю сторінку і помістіть у безпечне місце.' - regenerate_warning: 'Попередження: якщо раніше ви створили резервні коди, вони будуть визнані недійсними і більше не працюватимуть.' + keep_safe_as_password: "Важливо! Розглядайте ці коди як паролі." + keep_safe_warning: "Або збережіть їх у менеджері паролів, або роздрукуйте цю сторінку і помістіть у безпечне місце." + regenerate_warning: "Попередження: якщо раніше ви створили резервні коди, вони будуть визнані недійсними і більше не працюватимуть." devices: - add_new: 'Додайте новий пристрій 2FA' - register: 'Зареєструйте пристрій' - confirm_default: 'Підтвердьте зміну пристрою за умовчанням' - confirm_device: 'Підтвердьте пристрій' - confirm_now: 'Не підтверджено, натисніть тут, щоб активувати' - cannot_delete_default: 'Не вдається видалити стандартний пристрій' - make_default_are_you_sure: 'Ви впевнені, що хочете, щоб це пристрій 2FA було типовим?' - make_default_failed: 'Не вдалося оновити стандартний пристрій 2FA.' - deletion_are_you_sure: 'Дійсно видалити цей пристрій 2FA?' - registration_complete: 'Реєстрація 2FA пристрою завершена!' - registration_failed_token_invalid: 'Помилка реєстрації пристрою 2FA, маркер недійсний.' - registration_failed_update: 'Помилка реєстрації пристрою 2FA, маркер правильний, але пристрій не може бути оновлений.' - confirm_send_failed: 'Помилка підтвердження вашого пристрою 2FA.' - button_complete_registration: 'Завершіть реєстрацію 2FA' + add_new: "Додайте новий пристрій 2FA" + register: "Зареєструйте пристрій" + confirm_default: "Підтвердьте зміну пристрою за умовчанням" + confirm_device: "Підтвердьте пристрій" + confirm_now: "Не підтверджено, натисніть тут, щоб активувати" + cannot_delete_default: "Не вдається видалити стандартний пристрій" + make_default_are_you_sure: "Ви впевнені, що хочете, щоб це пристрій 2FA було типовим?" + make_default_failed: "Не вдалося оновити стандартний пристрій 2FA." + deletion_are_you_sure: "Дійсно видалити цей пристрій 2FA?" + registration_complete: "Реєстрація 2FA пристрою завершена!" + registration_failed_token_invalid: "Помилка реєстрації пристрою 2FA, маркер недійсний." + registration_failed_update: "Помилка реєстрації пристрою 2FA, маркер правильний, але пристрій не може бути оновлений." + confirm_send_failed: "Помилка підтвердження вашого пристрою 2FA." + button_complete_registration: "Завершіть реєстрацію 2FA" text_confirm_to_complete_html: "Заповніть реєстрацію свого пристрою %{identifier} ввівши одноразовий пароль з пристрою за умовчанням." text_confirm_to_change_default_html: "Підтвердьте, що ваш пристрій за умовчанням змінено на %{new_identifier} ввівши одноразовий пароль з поточного пристрою за умовчанням." - text_identifier: 'За допомогою цього поля можна надати користувачеві власний ідентифікатор.' - failed_to_delete: 'Не вдалося видалити пристрій 2FA.' - is_default_cannot_delete: 'Пристрій позначено як типовий і його не можна видалити через активну політику безпеки. Перед видаленням позначте інший пристрій як стандартний.' - not_existing: 'Для вашого облікового запису не зареєстровано жодного пристрою 2FA.' - request_2fa: Введіть код із свого %{device_name} щоб підтвердити вашу особу. + text_identifier: "За допомогою цього поля можна надати користувачеві власний ідентифікатор." + failed_to_delete: "Не вдалося видалити пристрій 2FA." + is_default_cannot_delete: "Пристрій позначено як типовий і його не можна видалити через активну політику безпеки. Перед видаленням позначте інший пристрій як стандартний." + not_existing: "Для вашого облікового запису не зареєстровано жодного пристрою 2FA." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Використовуйте автентифікатор на основі програм' - provisioning_uri: 'URI для забезпечення' - secret_key: 'Секретний ключ' - time_based: 'На основі часу' - account: 'Назва рахунку / емітент' + title: "Використовуйте автентифікатор на основі програм" + provisioning_uri: "URI для забезпечення" + secret_key: "Секретний ключ" + time_based: "На основі часу" + account: "Назва рахунку / емітент" setup: | Щоб налаштувати двофакторну аутентифікацію за допомогою Google Authenticator, завантажте програму з магазину Apple App або Google Play Store. Після відкриття програми можна сканувати наступний QR-код, щоб зареєструвати пристрій. @@ -130,31 +137,32 @@ uk: Зареєструйте аутентифікатор програми для використання з OpenProject, використовуючи одноразовий стандарт автентифікації паролів на основі часу. Типовими прикладами є Google Authenticator або Authy. sms: - title: 'Використовуйте свій мобільний телефон' - redacted_identifier: 'Мобільний пристрій %{redacted_number}' - request_2fa_identifier: '%{redacted_identifier} ми надіслали вам код автентифікації через %{delivery_channel}' + title: "Використовуйте свій мобільний телефон" + redacted_identifier: "Мобільний пристрій %{redacted_number}" + request_2fa_identifier: "%{redacted_identifier} ми надіслали вам код автентифікації через %{delivery_channel}" description: | Зареєструйте свій номер мобільного телефону для доставки одноразових паролів OpenProject. sns: - delivery_failed: 'Помилка доставки SNS:' + delivery_failed: "Помилка доставки SNS:" message_bird: - sms_delivery_failed: 'Помилка доставки SMS MessageBird.' - voice_delivery_failed: 'Помилка голосового дзвінка MessageBird.' + sms_delivery_failed: "Помилка доставки SMS MessageBird." + voice_delivery_failed: "Помилка голосового дзвінка MessageBird." strategies: - totp: 'Програма-автентифікатор' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Програма-автентифікатор" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "На ваш мобільний телефон надіслано одноразовий пароль." - label_two_factor_authentication: 'Двофакторна аутентифікація' + label_two_factor_authentication: "Двофакторна аутентифікація" forced_registration: - required_to_add_device: 'Активна політика безпеки вимагає активації двофакторної автентифікації. Щоб зареєструвати пристрій, скористайтеся наведеною нижче формою.' + required_to_add_device: "Активна політика безпеки вимагає активації двофакторної автентифікації. Щоб зареєструвати пристрій, скористайтеся наведеною нижче формою." remember: active_session_notice: > У вашому обліковому записі є активний файл cookie, до якого можна приєднатися %{expires_on}. Цей файл cookie дає змогу увійти до облікового запису без другого фактора до цього часу. other_active_session_notice: У вашому обліковому записі є активний файл cookie на іншому сеансі. - label: 'Пам''ятайте' - clear_cookie: 'Натисніть тут, щоб видалити всі згадані 2FA сесії.' - cookie_removed: 'Усі згадані сеанси 2FA були видалені.' + label: "Пам'ятайте" + clear_cookie: "Натисніть тут, щоб видалити всі згадані 2FA сесії." + cookie_removed: "Усі згадані сеанси 2FA були видалені." dont_ask_again: "Створіть cookie, щоб запам'ятати автентифікацію 2FA на цьому клієнті %{days} днів." field_phone: "Мобільний телефон" field_otp: "Одноразовий пароль" @@ -164,10 +172,10 @@ uk: notice_account_otp_send_failed: "Не вдалося надіслати одноразовий пароль." notice_account_has_no_phone: "З вашим обліковим записом не пов’язано номер мобільного телефону." label_expiration_hint: "%{date} або при виході з системи" - label_actions: 'Дії' - label_confirmed: 'Підтверджено' - button_continue: 'Продовжити' - button_make_default: 'Позначити за умовчанням' + label_actions: "Дії" + label_confirmed: "Підтверджено" + button_continue: "Продовжити" + button_make_default: "Позначити за умовчанням" label_unverified_phone: "Мобільний телефон не перевірено" notice_phone_number_format: "Введіть номер у такому форматі: + XX XXXXXXXX." text_otp_not_receive: "Інші методи верифікації" diff --git a/modules/two_factor_authentication/config/locales/crowdin/vi.yml b/modules/two_factor_authentication/config/locales/crowdin/vi.yml index cf88d2ccb663..89c033e557ee 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/vi.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/vi.yml @@ -7,14 +7,14 @@ vi: activerecord: attributes: two_factor_authentication/device: - identifier: 'Định danh' - default: 'Giữ nguyên mặc định' + identifier: "Định danh" + default: "Giữ nguyên mặc định" two_factor_authentication/device/sms: phone_number: "Số điện thoại" errors: models: two_factor_authentication/device: - default_already_exists: 'đã được thiết lập cho một thiết bị khác OTP.' + default_already_exists: "đã được thiết lập cho một thiết bị khác OTP." two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ vi: two_factor_authentication/device: "Thiết bị 2FA" two_factor_authentication/device/sms: "Số di động" two_factor_authentication/device/totp: "Ứng dụng xác thực" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "Phương thức 2FA đã bị vô hiệu." error_no_device: "Không có thiết bị 2FA đăng ký cho người dùng này, mặc dù được yêu cầu cho trường hợp này được tìm thấy." error_no_matching_strategy: "Không có chiến lược 2FA sẵn có nào phù hợp với người dùng này. Xin vui lòng liên hệ với administratior của bạn." - error_is_enforced_not_active: 'Lỗi cấu hình: xác thực 2 yếu tố đã được thi hành, nhưng không có chiến lược nào đang được sử dụng.' - error_invalid_backup_code: 'Mã sao lưu 2FA không hợp lệ' + error_is_enforced_not_active: "Lỗi cấu hình: xác thực 2 yếu tố đã được thi hành, nhưng không có chiến lược nào đang được sử dụng." + error_invalid_backup_code: "Mã sao lưu 2FA không hợp lệ" channel_unavailable: "Kênh phân phối %{channel} là không có sẵn." no_valid_phone_number: "Số điện thoại hợp lệ không tồn tại." label_pwd_confirmation: "Mật khẩu" @@ -37,47 +38,48 @@ vi: label_default_device: "Thiết bị 2FA mặc định" label_device: "Thiết bị 2FA" label_devices: "Các thiết bị 2FA" - label_one_time_password: 'Mật khẩu sử dụng một lần' - label_2fa_enabled: 'Xác thực 2 nhân tố đang được sử dụng' - label_2fa_disabled: 'Xác thực 2 yếu tố không hoạt động' + label_one_time_password: "Mật khẩu sử dụng một lần" + label_2fa_enabled: "Xác thực 2 nhân tố đang được sử dụng" + label_2fa_disabled: "Xác thực 2 yếu tố không hoạt động" text_otp_delivery_message_sms: "Mật khẩu một lần cho ứng dụng %{app_title} là %{token}" text_otp_delivery_message_voice: "Mật khẩu một lần cho ứng dụng %{app_title} là: %{pause} %{token}. %{pause}. Lặp lại: %{pause} %{token}" - text_enter_2fa: 'Vui lòng nhập mật khẩu một lần từ diện thoại của bạn.' - text_2fa_enabled: 'Sau khi mỗi đăng nhập, bạn sẽ được yêu cầu để nhập một mã thông báo OTP từ thiết bị 2FA mặc định của bạn.' - text_2fa_disabled: 'Để kích hoạt xác thực 2 yếu tố, sử dụng các nút ở trên để đăng ký thiết bị 2FA mới. Nếu bạn đã có một thiết bị, bạn cần để làm cho nó một mặc định.' + text_enter_2fa: "Vui lòng nhập mật khẩu một lần từ diện thoại của bạn." + text_2fa_enabled: "Sau khi mỗi đăng nhập, bạn sẽ được yêu cầu để nhập một mã thông báo OTP từ thiết bị 2FA mặc định của bạn." + text_2fa_disabled: "Để kích hoạt xác thực 2 yếu tố, sử dụng các nút ở trên để đăng ký thiết bị 2FA mới. Nếu bạn đã có một thiết bị, bạn cần để làm cho nó một mặc định." login: enter_backup_code_title: Nhập mã dự phòng enter_backup_code_text: Vui lòng nhập mã dự phòng hợp lệ từ danh sách các mã số trong trường hợp bạn không còn có thể truy cập vào thiết bị của bạn đã đăng ký 2FA. - other_device: 'Sử dụng một thiết bị khác hoặc mã dự phòng' + other_device: "Sử dụng một thiết bị khác hoặc mã dự phòng" settings: - title: 'Cài đặt 2FA' - current_configuration: 'Cấu hình hiện tại' - label_active_strategies: 'Chiến lược 2FA đang dùng' - label_enforced: 'Bắt buộc sử dụng 2FA' - label_remember: 'Nhớ Đăng nhập của Tôi' + title: "Cài đặt 2FA" + current_configuration: "Cấu hình hiện tại" + label_active_strategies: "Chiến lược 2FA đang dùng" + label_enforced: "Bắt buộc sử dụng 2FA" + label_remember: "Nhớ Đăng nhập của Tôi" text_configuration: | Lưu ý: Các giá trị này đại diện cho cấu hình phạm vi ứng dụng hiện tại. Bạn không thể tắt được thi hành bởi cấu hình cài đặt hoặc thay đổi chiến lược hoạt động hiện nay, kể từ khi họ yêu cầu khởi động lại máy chủ. text_configuration_guide: Để biết thêm chi tiết, hãy kiểm tra hướng dẫn cấu hình. - text_enforced: 'Cho phép thiết đặt này để buộc tất cả người dùng để đăng ký thiết bị 2FA trên đăng nhập tiếp theo của họ. Có thể chỉ bị tắt khi không được thi hành bởi cấu hình.' + text_enforced: "Cho phép thiết đặt này để buộc tất cả người dùng để đăng ký thiết bị 2FA trên đăng nhập tiếp theo của họ. Có thể chỉ bị tắt khi không được thi hành bởi cấu hình." text_remember: | Hãy đặt số ngày ghi nhớ mã F2Alớn hơn 0 để cho phép người sử dụng nhớ mã 2FA của họ. Sẽ không yêu cầu nhập mã trong thời giannày. Chỉ có thể đặt nếu không bị thiết lập bắt buộc trong cấu hình. - error_invalid_settings: 'Phương án mã 2FA bạn lựa chon không hợp lệ' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "Phương án mã 2FA bạn lựa chon không hợp lệ" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -88,37 +90,42 @@ vi: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -130,31 +137,32 @@ vi: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Ứng dụng xác thực' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Ứng dụng xác thực" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. other_active_session_notice: Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "Mật khẩu sử dụng một lần" @@ -164,10 +172,10 @@ vi: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Hành động' - label_confirmed: 'Đã xác nhận' - button_continue: 'Tiếp tục' - button_make_default: 'Mark as default' + label_actions: "Hành động" + label_confirmed: "Đã xác nhận" + button_continue: "Tiếp tục" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/crowdin/zh-CN.yml b/modules/two_factor_authentication/config/locales/crowdin/zh-CN.yml index 4282cd93f376..11ca2de31602 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/zh-CN.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/zh-CN.yml @@ -7,14 +7,14 @@ zh-CN: activerecord: attributes: two_factor_authentication/device: - identifier: '标识符' - default: '用作默认' + identifier: "标识符" + default: "用作默认" two_factor_authentication/device/sms: phone_number: "电话号码" errors: models: two_factor_authentication/device: - default_already_exists: '已设为另一个 OTP 设备。' + default_already_exists: "已设为另一个 OTP 设备。" two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ zh-CN: two_factor_authentication/device: "2FA 设备" two_factor_authentication/device/sms: "手机" two_factor_authentication/device/totp: "身份验证器应用程序" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA 传送已禁用。" error_no_device: "尽管此实例需要,但没有为该用户找到注册的 2FA 设备。" error_no_matching_strategy: "没有匹配的 2FA 策略可供此用户使用。请联系您的管理员。" - error_is_enforced_not_active: '配置错误:已强制执行双因子认证,但不存在活动策略。' - error_invalid_backup_code: '2FA 备份代码无效' + error_is_enforced_not_active: "配置错误:已强制执行双因子认证,但不存在活动策略。" + error_invalid_backup_code: "2FA 备份代码无效" channel_unavailable: "传送通道 %{channel} 不可用。" no_valid_phone_number: "不存在有效的电话号码。" label_pwd_confirmation: "密码" @@ -37,47 +38,48 @@ zh-CN: label_default_device: "默认 2FA 设备" label_device: "2FA 设备" label_devices: "2FA 设备" - label_one_time_password: '一次性密码' - label_2fa_enabled: '双因子认证已激活' - label_2fa_disabled: ' 双因子认证未激活' + label_one_time_password: "一次性密码" + label_2fa_enabled: "双因子认证已激活" + label_2fa_disabled: " 双因子认证未激活" text_otp_delivery_message_sms: "您的 %{app_title} 一次性密码为 %{token}" text_otp_delivery_message_voice: "您的 %{app_title} 一次性密码为 %{pause} %{token}。%{pause} I 重复:%{pause} %{token}" - text_enter_2fa: '请从您的设备输入一次性密码。' - text_2fa_enabled: '每次登录时,系统将要求您从默认的 2FA 设备输入 OTP 令牌。' - text_2fa_disabled: '要启用双因子认证,请使用上面的按钮注册新的 2FA 设备。如果您已拥有设备,则需要将其设置为默认设备。' + text_enter_2fa: "请从您的设备输入一次性密码。" + text_2fa_enabled: "每次登录时,系统将要求您从默认的 2FA 设备输入 OTP 令牌。" + text_2fa_disabled: "要启用双因子认证,请使用上面的按钮注册新的 2FA 设备。如果您已拥有设备,则需要将其设置为默认设备。" login: enter_backup_code_title: 输入备份代码 enter_backup_code_text: 请从您的代码列表中输入有效的备份代码,以防您无法再访问已注册的 2FA 设备。 - other_device: '使用其他设备或备份代码' + other_device: "使用其他设备或备份代码" settings: - title: '双因子认证设置' - current_configuration: '当前配置' - label_active_strategies: '激活双因子认证策略' - label_enforced: '强制双因子认证' - label_remember: '记住双因子认证登录信息' + title: "双因子认证设置" + current_configuration: "当前配置" + label_active_strategies: "激活双因子认证策略" + label_enforced: "强制双因子认证" + label_remember: "记住双因子认证登录信息" text_configuration: | 注释:这些值表示当前应用级配置。您无法禁用由配置强制的设置或更改当前的有效策略,因为它们需要重启服务器。 text_configuration_guide: 如需了解更多信息,请参阅配置指南。 - text_enforced: '在下次登录时,启用此设置以强制所有用户注册 2FA 设备。只有在配置未强制执行时才能禁用该设置。' + text_enforced: "在下次登录时,启用此设置以强制所有用户注册 2FA 设备。只有在配置未强制执行时才能禁用该设置。" text_remember: | 将其设置为大于零的值,以允许用户在指定的天数内记住他们的 2FA 认证。 在此期间,他们将不会被要求重新输入。只有在配置未强制执行时才能进行设置。 - error_invalid_settings: '您选择的双因子认证策略无效' - failed_to_save_settings: '无法更新双因子认证设置:%{message}' + error_invalid_settings: "您选择的双因子认证策略无效" + failed_to_save_settings: "无法更新双因子认证设置:%{message}" admin: - self_edit_path: '要添加或修改您自己的 2FA 设备,请转到 %{self_edit_link}' - self_edit_link_name: '您帐户页面上的双因子认证' - self_edit_forbidden: '您可能无法在此路径上编辑自己的 2FA 设备。请转到我的帐户 >> 双因子认证。' - no_devices_for_user: '没有为此用户注册过 2FA 设备。' - all_devices_deleted: '此用户的所有 2FA 设备已被删除' - delete_all_are_you_sure: '确实要删除此用户的所有 2FA 设备吗?' - button_delete_all_devices: '删除已注册的 2FA 设备' - button_register_mobile_phone_for_user: '注册手机' - text_2fa_enabled: '每次登录时,系统将要求此用户从默认的 2FA 设备输入 OTP 令牌。' + self_edit_path: "要添加或修改您自己的 2FA 设备,请转到 %{self_edit_link}" + self_edit_link_name: "您帐户页面上的双因子认证" + self_edit_forbidden: "您可能无法在此路径上编辑自己的 2FA 设备。请转到我的帐户 >> 双因子认证。" + no_devices_for_user: "没有为此用户注册过 2FA 设备。" + all_devices_deleted: "此用户的所有 2FA 设备已被删除" + delete_all_are_you_sure: "确实要删除此用户的所有 2FA 设备吗?" + button_delete_all_devices: "删除已注册的 2FA 设备" + button_register_mobile_phone_for_user: "注册手机" + text_2fa_enabled: "每次登录时,系统将要求此用户从默认的 2FA 设备输入 OTP 令牌。" text_2fa_disabled: "用户未通过“我的帐户页面”设置过 2FA 设备" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: '双因子认证' - description: '通过向所有项目成员提供(或强制执行)双因子认证来增强 OpenProject 实例的安全性。' + title: "双因子认证" + description: "通过向所有项目成员提供(或强制执行)双因子认证来增强 OpenProject 实例的安全性。" backup_codes: none_found: 此帐户不存在备份代码。 singular: 备份代码 @@ -88,37 +90,42 @@ zh-CN: 使用以下按钮生成一组新的备份代码。 generate: title: 生成备份代码 - keep_safe_as_password: '重要!将这些代码视为密码。' - keep_safe_warning: '请将它们保存在您的密码管理器中,或者打印本页并置于安全的地方。' - regenerate_warning: '警告:如果您以前创建过备份代码,它们将失效并且不再工作。' + keep_safe_as_password: "重要!将这些代码视为密码。" + keep_safe_warning: "请将它们保存在您的密码管理器中,或者打印本页并置于安全的地方。" + regenerate_warning: "警告:如果您以前创建过备份代码,它们将失效并且不再工作。" devices: - add_new: '添加新的 2FA 设备' - register: '注册设备' - confirm_default: '确认更改默认设备' - confirm_device: '确认设备' - confirm_now: '未确认,请单击此处激活' - cannot_delete_default: '无法删除默认设备' - make_default_are_you_sure: '确实要将此 2FA 设备设置为您的默认设备吗?' - make_default_failed: '更新默认 2FA 设备失败。' - deletion_are_you_sure: '确实要删除此 2FA 设备吗?' - registration_complete: '2FA 设备注册完成!' - registration_failed_token_invalid: '2FA 设备注册失败,令牌无效。' - registration_failed_update: '2FA 设备注册失败,令牌有效,但设备无法更新。' - confirm_send_failed: '确认您的 2FA 设备失败。' - button_complete_registration: '完成 2FA 注册' + add_new: "添加新的 2FA 设备" + register: "注册设备" + confirm_default: "确认更改默认设备" + confirm_device: "确认设备" + confirm_now: "未确认,请单击此处激活" + cannot_delete_default: "无法删除默认设备" + make_default_are_you_sure: "确实要将此 2FA 设备设置为您的默认设备吗?" + make_default_failed: "更新默认 2FA 设备失败。" + deletion_are_you_sure: "确实要删除此 2FA 设备吗?" + registration_complete: "2FA 设备注册完成!" + registration_failed_token_invalid: "2FA 设备注册失败,令牌无效。" + registration_failed_update: "2FA 设备注册失败,令牌有效,但设备无法更新。" + confirm_send_failed: "确认您的 2FA 设备失败。" + button_complete_registration: "完成 2FA 注册" text_confirm_to_complete_html: "请从您的默认设备输入一次性密码,完成设备 %{identifier} 的注册。" text_confirm_to_change_default_html: "请从您的当前默认设备输入一次性密码,确认将您的默认设备更改为 %{new_identifier}。" - text_identifier: '您可以使用此字段为设备提供自定义标识符。' - failed_to_delete: '删除 2FA 设备失败。' - is_default_cannot_delete: '该设备被标记为默认设备,并且由于活动安全策略而无法删除。在删除之前,请将另一个设备标记为默认设备。' - not_existing: '没有为您的帐户注册过 2FA 设备。' - request_2fa: 请从您的 %{device_name} 输入代码以验证您的身份。 + text_identifier: "您可以使用此字段为设备提供自定义标识符。" + failed_to_delete: "删除 2FA 设备失败。" + is_default_cannot_delete: "该设备被标记为默认设备,并且由于活动安全策略而无法删除。在删除之前,请将另一个设备标记为默认设备。" + not_existing: "没有为您的帐户注册过 2FA 设备。" + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: '使用您的基于应用程序的身份验证器' - provisioning_uri: '配置 URI' - secret_key: '密钥' - time_based: '基于时间' - account: '帐户名/颁发者' + title: "使用您的基于应用程序的身份验证器" + provisioning_uri: "配置 URI" + secret_key: "密钥" + time_based: "基于时间" + account: "帐户名/颁发者" setup: | 要使用 Google Authenticator 设置双因子认证,请从 Apple App Store 或 Google Play 商店下载应用程序。 打开应用程序后,您可以扫描下面的二维码来注册设备。 @@ -130,31 +137,32 @@ zh-CN: 使用基于时间的一次性密码身份验证标准来注册要与 OpenProject 搭配使用的应用程序身份验证器。 常见的示例包括 Google Authenticator 或 Authy。 sms: - title: '使用您的手机' - redacted_identifier: '移动设备 (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier},我们通过 %{delivery_channel} 向您发送了一个身份验证代码' + title: "使用您的手机" + redacted_identifier: "移动设备 (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier},我们通过 %{delivery_channel} 向您发送了一个身份验证代码" description: | 注册您的手机号码,以便传送 OpenProject 一次性密码。 sns: - delivery_failed: 'SNS 传送失败:' + delivery_failed: "SNS 传送失败:" message_bird: - sms_delivery_failed: 'MessageBird 短信发送失败。' - voice_delivery_failed: 'MessageBird 语音呼叫失败。' + sms_delivery_failed: "MessageBird 短信发送失败。" + voice_delivery_failed: "MessageBird 语音呼叫失败。" strategies: - totp: '身份验证器应用程序' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "身份验证器应用程序" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "一个一次性密码已发送到您的手机。" - label_two_factor_authentication: '双因子认证' + label_two_factor_authentication: "双因子认证" forced_registration: - required_to_add_device: '活动安全策略要求您启用双因子认证。请使用以下表单注册设备。' + required_to_add_device: "活动安全策略要求您启用双因子认证。请使用以下表单注册设备。" remember: active_session_notice: > 您的帐户具有一个有效期截至%{expires_on}的记住 Cookie。借助此 Cookie,在此之前无需使用双因子认证即可登录帐户。 other_active_session_notice: 您的帐户在另一个会话上存在一个有效的记住 Cookie。 - label: '记住' - clear_cookie: '单击此处移除所有记住的双因子认证会话。' - cookie_removed: '所有记住的双因子认证会话已移除。' + label: "记住" + clear_cookie: "单击此处移除所有记住的双因子认证会话。" + cookie_removed: "所有记住的双因子认证会话已移除。" dont_ask_again: "创建 Cookie,在此客户端上记住双因子认证 %{days} 天。" field_phone: "手机" field_otp: "一次性密码" @@ -164,10 +172,10 @@ zh-CN: notice_account_otp_send_failed: "无法发送您的一次性密码。" notice_account_has_no_phone: "您的帐户没有关联任何手机号码。" label_expiration_hint: "%{date} 或注销时" - label_actions: '操作' - label_confirmed: '已确认' - button_continue: '继续' - button_make_default: '标记为默认' + label_actions: "操作" + label_confirmed: "已确认" + button_continue: "继续" + button_make_default: "标记为默认" label_unverified_phone: "手机尚未验证" notice_phone_number_format: "请按以下格式输入号码:+XX XXXXXXXX。" text_otp_not_receive: "其他验证方法" diff --git a/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml b/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml index 23d8c1881924..eb7a9f09a682 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml @@ -7,14 +7,14 @@ zh-TW: activerecord: attributes: two_factor_authentication/device: - identifier: '識別碼' - default: '儲存為預設值' + identifier: "識別碼" + default: "儲存為預設值" two_factor_authentication/device/sms: phone_number: "電話號碼" errors: models: two_factor_authentication/device: - default_already_exists: '已為另一個 OTP 設備設置。' + default_already_exists: "已為另一個 OTP 設備設置。" two_factor_authentication/device/sms: attributes: phone_number: @@ -23,12 +23,13 @@ zh-TW: two_factor_authentication/device: "2FA 設備" two_factor_authentication/device/sms: "手機" two_factor_authentication/device/totp: "驗證程式應用程式" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA 發送已被禁用。" error_no_device: "未為該使用者找到已註冊的2FA 設備, 儘管此實例是必需的。" error_no_matching_strategy: "沒有匹配的2FA 策略可供此使用者使用。請聯繫您的系統管理員。" - error_is_enforced_not_active: '配置錯誤: 已強制執行雙因素身份驗證, 但不存在有效原則。' - error_invalid_backup_code: '不正確2FA 備份代碼' + error_is_enforced_not_active: "配置錯誤: 已強制執行雙因素身份驗證, 但不存在有效原則。" + error_invalid_backup_code: "不正確2FA 備份代碼" channel_unavailable: "傳遞通道 %{channel} 不可用。" no_valid_phone_number: "不存在有效電話號碼。" label_pwd_confirmation: "密碼" @@ -37,46 +38,47 @@ zh-TW: label_default_device: "預設2FA 設備" label_device: "2FA 設備" label_devices: "2FA 設備" - label_one_time_password: '一次性密碼' - label_2fa_enabled: '雙重驗證已啟用' - label_2fa_disabled: '雙重驗證已關閉' + label_one_time_password: "一次性密碼" + label_2fa_enabled: "雙重驗證已啟用" + label_2fa_disabled: "雙重驗證已關閉" text_otp_delivery_message_sms: "%{app_title} 一次性密碼為 %{token}" text_otp_delivery_message_voice: "您的 %{app_title} 一次性密碼為: %{pause} %{token}。 %{pause} 重複: %{pause} %{token}" - text_enter_2fa: '請從您的設備取得一次性密碼。' - text_2fa_enabled: '於每次登錄, 您都將被要求從預設的2FA 設備中取得 OTP 密碼。' - text_2fa_disabled: '要啟用雙因素身份驗證, 請使用上面的按鈕註冊新的2FA 設備。如果已有設備, 則需要將其設置為預設值。' + text_enter_2fa: "請從您的設備取得一次性密碼。" + text_2fa_enabled: "於每次登錄, 您都將被要求從預設的2FA 設備中取得 OTP 密碼。" + text_2fa_disabled: "要啟用雙因素身份驗證, 請使用上面的按鈕註冊新的2FA 設備。如果已有設備, 則需要將其設置為預設值。" login: enter_backup_code_title: 輸入備份代碼 enter_backup_code_text: 請從代碼清單中輸入有效的備份代碼, 以防您無法再訪問已註冊的2FA 設備。 - other_device: '使用其他設備或備份代碼' + other_device: "使用其他設備或備份代碼" settings: - title: '2FA 設置' - current_configuration: '目前設定:' - label_active_strategies: '已套用的 2FA 策略' - label_enforced: '強制使用 2FA' - label_remember: '記住2FA 登錄' + title: "2FA 設置" + current_configuration: "目前設定:" + label_active_strategies: "已套用的 2FA 策略" + label_enforced: "強制使用 2FA" + label_remember: "記住2FA 登錄" text_configuration: | 注意: 這些值表示當前應用程式範圍的配置。不能禁用由配置強制執行的設置或更改當前套用的策略, 因為它們需要重新開機伺服器。 text_configuration_guide: 更多資訊,請參考設定指南. - text_enforced: '啟用這個設定強制所有使用者在下次登入時同時要求註冊一個2FA設備。 這個設定只能在沒有強制合規設定的情形下才能時被停用。' + text_enforced: "啟用這個設定強制所有使用者在下次登入時同時要求註冊一個2FA設備。 這個設定只能在沒有強制合規設定的情形下才能時被停用。" text_remember: | 將此值設置為大於零, 以允許使用者在給定的天數內記住其2FA 身份驗證。在那段期間, 他們將不被要求重新進入。只能在配置不強制的情況下設置。 - error_invalid_settings: '您選擇的2FA 策略無效' - failed_to_save_settings: '未能更新2FA 設置: %{message}' + error_invalid_settings: "您選擇的2FA 策略無效" + failed_to_save_settings: "未能更新2FA 設置: %{message}" admin: - self_edit_path: '要添加或修改您自己的2FA 設備, 請轉到 %{self_edit_link}' - self_edit_link_name: '雙重驗證於您的帳號頁面' - self_edit_forbidden: '無法於此路徑編輯您擁有的2FA設備.請至 我的帳號 > 雙重認證.' - no_devices_for_user: '沒有為該使用者註冊的 2FA 設備。' - all_devices_deleted: '此使用者的所有2FA 設備已被刪除' - delete_all_are_you_sure: '確實要刪除此使用者的所有2FA 設備嗎?' - button_delete_all_devices: '刪除已註冊的2FA 設備' - button_register_mobile_phone_for_user: '註冊手機' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "要添加或修改您自己的2FA 設備, 請轉到 %{self_edit_link}" + self_edit_link_name: "雙重驗證於您的帳號頁面" + self_edit_forbidden: "無法於此路徑編輯您擁有的2FA設備.請至 我的帳號 > 雙重認證." + no_devices_for_user: "沒有為該使用者註冊的 2FA 設備。" + all_devices_deleted: "此使用者的所有2FA 設備已被刪除" + delete_all_are_you_sure: "確實要刪除此使用者的所有2FA 設備嗎?" + button_delete_all_devices: "刪除已註冊的2FA 設備" + button_register_mobile_phone_for_user: "註冊手機" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: '雙重身分驗證' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "雙重身分驗證" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: 這個帳戶沒有存在備份代碼 singular: 備份代碼 @@ -87,37 +89,42 @@ zh-TW: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -129,31 +136,32 @@ zh-TW: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: '驗證程式應用程式' - sns: '亞馬遜 SNS' - resdt: 'SMS Rest API' + totp: "驗證程式應用程式" + sns: "亞馬遜 SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "已將一次性密碼發送給您的手機。" - label_two_factor_authentication: '雙重身分驗證' + label_two_factor_authentication: "雙重身分驗證" forced_registration: - required_to_add_device: '活動安全性原則要求您啟用雙重身份驗證。請使用以下表格註冊設備。' + required_to_add_device: "活動安全性原則要求您啟用雙重身份驗證。請使用以下表格註冊設備。" remember: active_session_notice: > 您的帳戶有一個活動的記住 cookie 有效, 直到 %{expires_on}。此 cookie 允許您在沒有第二個因素的情況下登錄到您的帳戶, 直到該時間。 other_active_session_notice: Your account has an active remember cookie on another session. - label: '記住' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + label: "記住" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "創建 cookie,使 %{days} 天內記住此用戶端上的2FA 身份驗證。" field_phone: "手機" field_otp: "一次性密碼" @@ -163,10 +171,10 @@ zh-TW: notice_account_otp_send_failed: "無法發送您的一次性密碼。" notice_account_has_no_phone: "沒有與您的帳戶關聯的手機號碼。" label_expiration_hint: "%{date} 或登出時" - label_actions: '操作' - label_confirmed: '已確認' - button_continue: '繼續' - button_make_default: '標記為預設值' + label_actions: "操作" + label_confirmed: "已確認" + button_continue: "繼續" + button_make_default: "標記為預設值" label_unverified_phone: "手機尚未驗證" notice_phone_number_format: "請輸入以下格式的號碼: + XX XXXXXXXX。" text_otp_not_receive: "其他驗證方法" diff --git a/modules/two_factor_authentication/config/locales/en.yml b/modules/two_factor_authentication/config/locales/en.yml index 5a5b38a90802..f1874d48fc74 100644 --- a/modules/two_factor_authentication/config/locales/en.yml +++ b/modules/two_factor_authentication/config/locales/en.yml @@ -10,14 +10,14 @@ en: activerecord: attributes: two_factor_authentication/device: - identifier: 'Identifier' - default: 'Use as default' + identifier: "Identifier" + default: "Use as default" two_factor_authentication/device/sms: phone_number: "Phone number" errors: models: two_factor_authentication/device: - default_already_exists: 'is already set for another OTP device.' + default_already_exists: "is already set for another OTP device." two_factor_authentication/device/sms: attributes: phone_number: @@ -26,13 +26,14 @@ en: two_factor_authentication/device: "2FA device" two_factor_authentication/device/sms: "Mobile phone" two_factor_authentication/device/totp: "Authenticator application" + two_factor_authentication/device/webauthn: "WebAuthn" two_factor_authentication: error_2fa_disabled: "2FA delivery has been disabled." error_no_device: "No registered 2FA device found for this user, despite being required for this instance." error_no_matching_strategy: "No matching 2FA strategy available for this user. Please contact your administratior." - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_invalid_backup_code: 'Invalid 2FA backup code' + error_is_enforced_not_active: "Configuration error: Two-factor authentication has been enforced, but no active strategies exist." + error_invalid_backup_code: "Invalid 2FA backup code" channel_unavailable: "The delivery channel %{channel} is unavailable." no_valid_phone_number: "No valid phone number exists." label_pwd_confirmation: "Password" @@ -41,47 +42,48 @@ en: label_default_device: "Default 2FA device" label_device: "2FA device" label_devices: "2FA devices" - label_one_time_password: 'One-time password' - label_2fa_enabled: 'Two-factor authentication is active' - label_2fa_disabled: 'Two-factor authentication not active' + label_one_time_password: "One-time password" + label_2fa_enabled: "Two-factor authentication is active" + label_2fa_disabled: "Two-factor authentication not active" text_otp_delivery_message_sms: "Your %{app_title} one-time password is %{token}" text_otp_delivery_message_voice: "Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}" - text_enter_2fa: 'Please enter the one-time password from your device.' - text_2fa_enabled: 'Upon every login, you will be requested to enter a OTP token from your default 2FA device.' - text_2fa_disabled: 'To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default.' + text_enter_2fa: "Please enter the one-time password from your device." + text_2fa_enabled: "Upon every login, you will be requested to enter a OTP token from your default 2FA device." + text_2fa_disabled: "To enable two-factor authentication, use the button above to register a new 2FA device. If you already have a device, you need to make it a default." login: enter_backup_code_title: Enter backup code enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - other_device: 'Use another device or backup code' + other_device: "Use another device or backup code" settings: - title: '2FA settings' - current_configuration: 'Current configuration' - label_active_strategies: 'Active 2FA strategies' - label_enforced: 'Enforce 2FA' - label_remember: 'Remember 2FA login' + title: "2FA settings" + current_configuration: "Current configuration" + label_active_strategies: "Active 2FA strategies" + label_enforced: "Enforce 2FA" + label_remember: "Remember 2FA login" text_configuration: | Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. text_configuration_guide: For more information, check the configuration guide. - text_enforced: 'Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration.' + text_enforced: "Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration." text_remember: | Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - error_invalid_settings: 'The 2FA strategies you selected are invalid' - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' + error_invalid_settings: "The 2FA strategies you selected are invalid" + failed_to_save_settings: "Failed to update 2FA settings: %{message}" admin: - self_edit_path: 'To add or modify your own 2FA devices, please go to %{self_edit_link}' - self_edit_link_name: 'Two-factor authentication on your account page' - self_edit_forbidden: 'You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead.' - no_devices_for_user: 'No 2FA device has been registered for this user.' - all_devices_deleted: 'All 2FA devices of this user have been deleted' - delete_all_are_you_sure: 'Are you sure you want to delete all 2FA devices for this user?' - button_delete_all_devices: 'Delete registered 2FA devices' - button_register_mobile_phone_for_user: 'Register mobile phone' - text_2fa_enabled: 'Upon every login, this user will be requested to enter a OTP token from their default 2FA device.' + self_edit_path: "To add or modify your own 2FA devices, please go to %{self_edit_link}" + self_edit_link_name: "Two-factor authentication on your account page" + self_edit_forbidden: "You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead." + no_devices_for_user: "No 2FA device has been registered for this user." + all_devices_deleted: "All 2FA devices of this user have been deleted" + delete_all_are_you_sure: "Are you sure you want to delete all 2FA devices for this user?" + button_delete_all_devices: "Delete registered 2FA devices" + button_register_mobile_phone_for_user: "Register mobile phone" + text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: - title: 'Two-factor authentication' - description: 'Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members.' + title: "Two-factor authentication" + description: "Strenghten the security of your OpenProject instance by offering (or enforcing) two-factor authentification to all project members." backup_codes: none_found: No backup codes exist for this account. singular: Backup code @@ -92,38 +94,43 @@ en: Use the following button to generate a new set of backup codes. generate: title: Generate backup codes - keep_safe_as_password: 'Important! Treat these codes as passwords.' - keep_safe_warning: 'Either save them in your password manager, or print this page and put in a safe place.' - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' + keep_safe_as_password: "Important! Treat these codes as passwords." + keep_safe_warning: "Either save them in your password manager, or print this page and put in a safe place." + regenerate_warning: "Warning: If you have created backup codes before, they will be invalidated and will no longer work." devices: - add_new: 'Add new 2FA device' - register: 'Register device' - confirm_default: 'Confirm changing default device' - confirm_device: 'Confirm device' - confirm_now: 'Not confirmed, click here to activate' - cannot_delete_default: 'Cannot delete default device' - make_default_are_you_sure: 'Are you sure you want to make this 2FA device your default?' - make_default_failed: 'Failed to update the default 2FA device.' - deletion_are_you_sure: 'Are you sure you want to delete this 2FA device?' - registration_complete: '2FA device registration complete!' - registration_failed_token_invalid: '2FA device registration failed, the token was invalid.' - registration_failed_update: '2FA device registration failed, the token was valid but the device could not be updated.' - confirm_send_failed: 'Confirmation of your 2FA device failed.' - button_complete_registration: 'Complete 2FA registration' + add_new: "Add new 2FA device" + register: "Register device" + confirm_default: "Confirm changing default device" + confirm_device: "Confirm device" + confirm_now: "Not confirmed, click here to activate" + cannot_delete_default: "Cannot delete default device" + make_default_are_you_sure: "Are you sure you want to make this 2FA device your default?" + make_default_failed: "Failed to update the default 2FA device." + deletion_are_you_sure: "Are you sure you want to delete this 2FA device?" + registration_complete: "2FA device registration complete!" + registration_failed_token_invalid: "2FA device registration failed, the token was invalid." + registration_failed_update: "2FA device registration failed, the token was valid but the device could not be updated." + confirm_send_failed: "Confirmation of your 2FA device failed." + button_complete_registration: "Complete 2FA registration" text_confirm_to_complete_html: "Please complete the registration of your device %{identifier} by entering a one-time password from your default device." text_confirm_to_change_default_html: "Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device." - text_identifier: 'You can give the device a custom identifier using this field.' - failed_to_delete: 'Failed to delete 2FA device.' - is_default_cannot_delete: 'The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting.' - not_existing: 'No 2FA device has been registered for your account.' - request_2fa: Please enter the code from your %{device_name} to verify your identity. + text_identifier: "You can give the device a custom identifier using this field." + failed_to_delete: "Failed to delete 2FA device." + is_default_cannot_delete: "The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting." + not_existing: "No 2FA device has been registered for your account." + 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. + 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + webauthn: + title: "WebAuthn" + description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. + further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. totp: - title: 'Use your app-based authenticator' - provisioning_uri: 'Provisioning URI' - secret_key: 'Secret key' - time_based: 'Time based' - account: 'Account name / Issuer' + title: "Use your app-based authenticator" + provisioning_uri: "Provisioning URI" + secret_key: "Secret key" + time_based: "Time based" + account: "Account name / Issuer" setup: | For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. After opening the app, you can scan the following QR code to register the device. @@ -135,37 +142,37 @@ en: Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. sms: - title: 'Use your mobile phone' - redacted_identifier: 'Mobile device (%{redacted_number})' - request_2fa_identifier: '%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}' + title: "Use your mobile phone" + redacted_identifier: "Mobile device (%{redacted_number})" + request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" description: | Register your mobile phone number for delivery of OpenProject one-time passwords. sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: "SNS delivery failed:" message_bird: - sms_delivery_failed: 'MessageBird SMS delivery failed.' - voice_delivery_failed: 'MessageBird voice call failed.' + sms_delivery_failed: "MessageBird SMS delivery failed." + voice_delivery_failed: "MessageBird voice call failed." strategies: - totp: 'Authenticator application' - sns: 'Amazon SNS' - resdt: 'SMS Rest API' + totp: "Authenticator application" + sns: "Amazon SNS" + resdt: "SMS Rest API" + webauthn: "WebAuthn" mobile_transmit_notification: "A one-time password has been sent to your cell phone." - label_two_factor_authentication: 'Two-factor authentication' + label_two_factor_authentication: "Two-factor authentication" forced_registration: - required_to_add_device: 'An active security policy requires you to enable two-factor authentication. Please use the following form to register a device.' + required_to_add_device: "An active security policy requires you to enable two-factor authentication. Please use the following form to register a device." remember: active_session_notice: > Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. - other_active_session_notice: - Your account has an active remember cookie on another session. - label: 'Remember' - clear_cookie: 'Click here to remove all remembered 2FA sessions.' - cookie_removed: 'All remembered 2FA sessions have been removed.' + other_active_session_notice: Your account has an active remember cookie on another session. + label: "Remember" + clear_cookie: "Click here to remove all remembered 2FA sessions." + cookie_removed: "All remembered 2FA sessions have been removed." dont_ask_again: "Create cookie to remember 2FA authentication on this client for %{days} days." field_phone: "Cell phone" field_otp: "One-time password" @@ -175,10 +182,10 @@ en: notice_account_otp_send_failed: "Your one-time password could not be sent." notice_account_has_no_phone: "No cell phone number is associated with your account." label_expiration_hint: "%{date} or on logout" - label_actions: 'Actions' - label_confirmed: 'Confirmed' - button_continue: 'Continue' - button_make_default: 'Mark as default' + label_actions: "Actions" + label_confirmed: "Confirmed" + button_continue: "Continue" + button_make_default: "Mark as default" label_unverified_phone: "Cell phone not yet verified" notice_phone_number_format: "Please enter the number in the following format: +XX XXXXXXXX." text_otp_not_receive: "Other verification methods" diff --git a/modules/two_factor_authentication/config/locales/js-en.yml b/modules/two_factor_authentication/config/locales/js-en.yml new file mode 100644 index 000000000000..54e16451ba40 --- /dev/null +++ b/modules/two_factor_authentication/config/locales/js-en.yml @@ -0,0 +1,32 @@ +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) 2012-2024 the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ +en: + js: + two_factor_authentication: + errors: + aborted: "The authentication was cancelled. Please try again." diff --git a/modules/two_factor_authentication/config/routes.rb b/modules/two_factor_authentication/config/routes.rb index ee878f269ea3..b3c15627233a 100644 --- a/modules/two_factor_authentication/config/routes.rb +++ b/modules/two_factor_authentication/config/routes.rb @@ -8,14 +8,20 @@ get :settings, to: 'two_factor_settings#show', as: 'settings_2fa' post :settings, to: 'two_factor_settings#update', as: 'update_settings_2fa' + + # Request a challenge for WebAuthn + get :webauthn_challenge, to: 'authentication#webauthn_challenge', as: 'webauthn_challenge' end scope 'two_factor_authentication' do # Avoids adding the namespace prefix - scope 'device_registration', - controller: 'two_factor_authentication/forced_registration/two_factor_devices' do + # forced registration + scope 'device_registration', controller: 'two_factor_authentication/forced_registration/two_factor_devices' do get :new, action: :new, as: 'new_forced_2fa_device' post :register, action: :register, as: 'register_forced_2fa_device' match '/:device_id/confirm', action: :confirm, via: %i[get post], as: 'confirm_forced_2fa_device' + + # Request a challenge for WebAuthn + get :webauthn_challenge end end @@ -63,6 +69,9 @@ # Make a device a default post :make_default, on: :member + + # Request a challenge for WebAuthn + get :webauthn_challenge, on: :collection end end end diff --git a/modules/two_factor_authentication/db/migrate/20230627133534_add_webauthn_fields_to_two_factor_table.rb b/modules/two_factor_authentication/db/migrate/20230627133534_add_webauthn_fields_to_two_factor_table.rb new file mode 100644 index 000000000000..219b266ed198 --- /dev/null +++ b/modules/two_factor_authentication/db/migrate/20230627133534_add_webauthn_fields_to_two_factor_table.rb @@ -0,0 +1,11 @@ +class AddWebauthnFieldsToTwoFactorTable < ActiveRecord::Migration[7.0] + def change + add_column :two_factor_authentication_devices, :webauthn_external_id, :string, null: true + add_index :two_factor_authentication_devices, :webauthn_external_id, unique: true + + add_column :two_factor_authentication_devices, :webauthn_public_key, :string, null: true + add_column :two_factor_authentication_devices, :webauthn_sign_count, :bigint, null: false, default: 0 + + add_column :users, :webauthn_id, :string, null: true + end +end diff --git a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/engine.rb b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/engine.rb index a3722993636f..b6c4b31763ac 100644 --- a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/engine.rb +++ b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/engine.rb @@ -1,4 +1,5 @@ require 'open_project/plugins' +require 'webauthn' module OpenProject::TwoFactorAuthentication class Engine < ::Rails::Engine @@ -60,6 +61,12 @@ class Engine < ::Rails::Engine }) do two_factor_authentication_request_path end + + WebAuthn.configure do |config| + # TODO: Real settings here + config.origin = "http://localhost:3000" + config.rp_name = "Example Inc." + end end end end diff --git a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/base.rb b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/base.rb index 3f6bff7fa0ae..f17222a067e0 100644 --- a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/base.rb +++ b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/base.rb @@ -14,7 +14,7 @@ def initialize(user:, device:, channel: nil) @device = device end - def verify(input_token) + def verify(input_token, **) # Ensure this strategy uses mobile tokens or overrode this method raise 'Cannot verify mobile token' unless self.class.mobile_token? diff --git a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/webauthn.rb b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/webauthn.rb new file mode 100644 index 000000000000..69acd0731ede --- /dev/null +++ b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/webauthn.rb @@ -0,0 +1,48 @@ +require 'webauthn' + +module OpenProject::TwoFactorAuthentication + module TokenStrategy + class Webauthn < Base + def verify(webauthn_credential, webauthn_challenge:) + credential = WebAuthn::Credential.from_get(JSON.parse(webauthn_credential)) + + # This will raise WebAuthn::Error + credential.verify( + webauthn_challenge, + public_key: device.webauthn_public_key, + sign_count: device.webauthn_sign_count + ) + + device.update!(webauthn_sign_count: credential.sign_count) + true + end + + def transmit_success_message + nil + end + + def self.mobile_token? + false + end + + def self.supported_channels + [:webauthn] + end + + def self.device_type + :webauthn + end + + def self.identifier + :webauthn + end + + private + + def send_webauthn + Rails.logger.info { "[2FA] WebAuthn in progress for #{user.login}" } + # Nothing to do here + end + end + end +end diff --git a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy_manager.rb b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy_manager.rb index c1c20e274e61..558adf26bcbb 100644 --- a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy_manager.rb +++ b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy_manager.rb @@ -113,8 +113,8 @@ def enforced_by_configuration? def merge_with_settings!(config) config['active_strategies'] ||= [] - # Always enable totp if nothing is enabled - config['active_strategies'] << :totp if add_default_strategy?(config) + # Always enable webauthn and totp if nothing is enabled + config['active_strategies'] += %i[totp webauthn] if add_default_strategy?(config) end def add_default_strategy?(config) @@ -124,6 +124,7 @@ def add_default_strategy?(config) def available_strategies { totp: I18n.t("activerecord.models.two_factor_authentication/device/totp"), + webauthn: I18n.t("activerecord.models.two_factor_authentication/device/webauthn"), sns: I18n.t("activerecord.models.two_factor_authentication/device/sms"), message_bird: I18n.t("activerecord.models.two_factor_authentication/device/sms") } diff --git a/modules/two_factor_authentication/openproject-two_factor_authentication.gemspec b/modules/two_factor_authentication/openproject-two_factor_authentication.gemspec index 22b854ed961e..369b9e4377c8 100644 --- a/modules/two_factor_authentication/openproject-two_factor_authentication.gemspec +++ b/modules/two_factor_authentication/openproject-two_factor_authentication.gemspec @@ -4,13 +4,15 @@ Gem::Specification.new do |s| s.authors = "OpenProject GmbH" s.email = "info@openproject.com" s.summary = "OpenProject Two-factor authentication" - s.description = "This OpenProject plugin authenticates your users using two-factor authentication by means of one-time password " \ - "through the TOTP standard (Google Authenticator) or sent to the user's cell phone via SMS or voice call" + s.description = "This OpenProject plugin authenticates your users using two-factor authentication by means of " \ + "one-time password through the TOTP standard (Google Authenticator), WebAuthn or sent to the " \ + "user's cell phone via SMS or voice call" s.files = Dir["{app,config,db,lib}/**/*", "CHANGELOG.md", "README.rdoc"] s.add_dependency 'messagebird-rest', '~> 1.4.2' s.add_dependency 'rotp', '~> 6.1' + s.add_dependency 'webauthn', '~> 3.0' s.add_dependency 'aws-sdk-sns', '~> 1.72.0' s.metadata['rubygems_mfa_required'] = 'true' diff --git a/modules/two_factor_authentication/spec/controllers/two_factor_authentication/users/two_factor_devices_controller_spec.rb b/modules/two_factor_authentication/spec/controllers/two_factor_authentication/users/two_factor_devices_controller_spec.rb index 6f61cf1cf842..828d1e29bd78 100644 --- a/modules/two_factor_authentication/spec/controllers/two_factor_authentication/users/two_factor_devices_controller_spec.rb +++ b/modules/two_factor_authentication/spec/controllers/two_factor_authentication/users/two_factor_devices_controller_spec.rb @@ -28,7 +28,7 @@ describe 'accessing' do before do - get :new, params: { id: user.id } + get :new, params: { id: user.id, type: :sms } end context 'when the same user' do @@ -52,7 +52,7 @@ it 'renders the page' do expect(response).to be_successful - expect(response).to render_template 'new_type' + expect(response).to render_template 'new' end context 'when no active strategies' do @@ -74,9 +74,18 @@ get :new, params: { id: user.id } end - it 'renders the new form' do - expect(response).to be_successful - expect(response).to render_template 'new_type' + it 'shows an error' do + expect(response).to have_http_status(:bad_request) + end + end + + context 'with unsupported type' do + before do + get :new, params: { id: user.id, type: :totp } + end + + it 'shows an error' do + expect(response).to have_http_status(:bad_request) end end diff --git a/modules/two_factor_authentication/spec/factories/two_factor_authentication_device_factory.rb b/modules/two_factor_authentication/spec/factories/two_factor_authentication_device_factory.rb index da49de55f7e4..50ff998750b5 100644 --- a/modules/two_factor_authentication/spec/factories/two_factor_authentication_device_factory.rb +++ b/modules/two_factor_authentication/spec/factories/two_factor_authentication_device_factory.rb @@ -15,9 +15,7 @@ device.make_default! if evaluator.make_default end end -end -FactoryBot.define do factory :two_factor_authentication_device_totp, class: '::TwoFactorAuthentication::Device::Totp' do user channel { :totp } @@ -33,4 +31,30 @@ device.make_default! if evaluator.make_default end end + + factory :two_factor_authentication_device_webauthn, class: '::TwoFactorAuthentication::Device::Webauthn' do + user + channel { :webauthn } + active { true } + default { true } + identifier { 'WebAuthn device' } + + webauthn_external_id { "foo" } + webauthn_public_key { "bar" } + + transient do + make_default { false } + end + + callback(:after_create) do |device, evaluator| + # Ensure user has a webauthn id + if device.user.webauthn_id.blank? + device.user.update!(webauthn_id: WebAuthn.generate_user_id) + end + + # Generate Fake Credential, see https://github.com/cedarcode/webauthn-ruby/blob/master/spec/spec_helper.rb#L26 + + device.make_default! if evaluator.make_default + end + end end diff --git a/modules/two_factor_authentication/spec/models/devices/default_device_spec.rb b/modules/two_factor_authentication/spec/models/device/default_device_spec.rb similarity index 100% rename from modules/two_factor_authentication/spec/models/devices/default_device_spec.rb rename to modules/two_factor_authentication/spec/models/device/default_device_spec.rb diff --git a/modules/two_factor_authentication/spec/models/devices/totp_spec.rb b/modules/two_factor_authentication/spec/models/device/totp_spec.rb similarity index 100% rename from modules/two_factor_authentication/spec/models/devices/totp_spec.rb rename to modules/two_factor_authentication/spec/models/device/totp_spec.rb diff --git a/modules/two_factor_authentication/spec/models/device/webauthn_spec.rb b/modules/two_factor_authentication/spec/models/device/webauthn_spec.rb new file mode 100644 index 000000000000..8403472c2c46 --- /dev/null +++ b/modules/two_factor_authentication/spec/models/device/webauthn_spec.rb @@ -0,0 +1,10 @@ +require 'spec_helper' + +RSpec.describe TwoFactorAuthentication::Device::Webauthn do + let(:user) { create(:user) } + + subject { build(:two_factor_authentication_device_webauthn, user:) } + + it { is_expected.to validate_presence_of(:webauthn_external_id) } + it { is_expected.to validate_presence_of(:webauthn_public_key) } +end diff --git a/modules/two_factor_authentication/spec/spec_helper.rb b/modules/two_factor_authentication/spec/spec_helper.rb index 4351818bd68d..f74661bbe40b 100644 --- a/modules/two_factor_authentication/spec/spec_helper.rb +++ b/modules/two_factor_authentication/spec/spec_helper.rb @@ -1,2 +1,3 @@ # -- load spec_helper from OpenProject core require "spec_helper" +require "webauthn/fake_client" diff --git a/modules/webhooks/config/locales/crowdin/pt.yml b/modules/webhooks/config/locales/crowdin/pt.yml deleted file mode 100644 index 71622189a0f3..000000000000 --- a/modules/webhooks/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,66 +0,0 @@ -pt: - plugin_openproject_webhooks: - name: "Webhooks do OpenProject" - description: "Fornece uma API de plug-in para dar suporte aos webhooks do OpenProject para uma melhor integração de terceiros." - activerecord: - attributes: - webhooks/webhook: - url: 'URL do payload' - secret: 'Assinatura secreta' - events: 'Eventos' - projects: 'Projetos habilitados' - webhooks/log: - event_name: 'Nome do evento' - url: 'URL do payload' - response_code: 'Código de resposta' - response_body: 'Resposta' - models: - webhooks/outgoing_webhook: "Webhook de saída" - webhooks: - singular: Webhook - plural: Webhooks - resources: - time_entry: - name: "Entrada de tempo" - outgoing: - no_results_table: Nenhum webhook definido. - label_add_new: Adicionar novo webhook - label_edit: Editar webhook - label_event_resources: Recursos do evento - events: - created: "Criado" - updated: "Atualizado" - explanation: - text: > - Na ocorrência de um evento como a criação de um pacote de trabalho ou uma atualização em um projeto, o OpenProject enviará uma solicitação POST para os terminais web configurados. Muitas vezes, o evento é enviado após o %{link} ter passado. - link: período de agregação configurado - status: - enabled: 'Webhook está habilitado' - disabled: 'Webhook está desativado' - enabled_text: 'O webhook emitirá payloads para os eventos definidos abaixo.' - disabled_text: 'Clique no botão editar para ativar o webhook.' - deliveries: - no_results_table: Nenhuma entrega foi realizada para este webhook nos últimos dias. - title: 'Entregas recentes' - time: 'Tempo de entrega' - form: - introduction: > - Envie uma solicitação POST para o URL do conteúdo abaixo para qualquer evento no projeto onde você está inscrito. O conteúdo corresponderá à representação APIv3 do objeto a ser modificado. - apiv3_doc_url: Para mais informações, visite a documentação da API - description: - placeholder: 'Descrição opcional para o webhook.' - enabled: - description: > - Quando marcado, o webhook irá acionar nos eventos selecionados. Desmarque para desativar o webhook. - events: - title: 'Eventos habilitados' - project_ids: - title: 'Projetos habilitados' - description: 'Selecione para quais projetos este webhook deve ser executado.' - all: 'Todos os projetos' - selected: 'Somente projetos selecionados' - selected_project_ids: - title: 'Projetos selecionados' - secret: - description: > - Se definido, este valor secreto é usado pelo OpenProject para assinar o payload webhook. diff --git a/modules/xls_export/config/locales/crowdin/pt.yml b/modules/xls_export/config/locales/crowdin/pt.yml deleted file mode 100644 index c024d4d7edb0..000000000000 --- a/modules/xls_export/config/locales/crowdin/pt.yml +++ /dev/null @@ -1,16 +0,0 @@ -pt: - plugin_openproject_xls_export: - name: "Exportação XLS do OpenProject" - description: "Exportar listas de problemas como planilhas Excel (.xls)." - export_to_excel: "Exportar XLS" - print_with_description: "Imprimir visualização com descrição" - sentence_separator_or: "ou" - different_formats: Diferentes formatos - export: - format: - xls: "XLS" - xls_with_descriptions: "XLS com descrições" - xls_with_relations: "XLS com relações" - xls_export: - child_of: filho de - parent_of: pai de diff --git a/modules/xls_export/config/locales/crowdin/zh-CN.yml b/modules/xls_export/config/locales/crowdin/zh-CN.yml index 31c8d3cdd710..59230e603ecf 100644 --- a/modules/xls_export/config/locales/crowdin/zh-CN.yml +++ b/modules/xls_export/config/locales/crowdin/zh-CN.yml @@ -13,4 +13,4 @@ zh-CN: xls_with_relations: "带关系的 XLS" xls_export: child_of: 此项的子项 - parent_of: 此项的父项 + parent_of: 此项的父级 diff --git a/script/i18n/generate_languages_translations b/script/i18n/generate_languages_translations index f59bbd1b650a..d1e91aab0bb4 100755 --- a/script/i18n/generate_languages_translations +++ b/script/i18n/generate_languages_translations @@ -33,7 +33,7 @@ class App end class CldrTranslations - CLDR_VERSION = 42 + CLDR_VERSION = 44 def initialize ensure_cldr_database_is_downloaded @@ -42,16 +42,23 @@ class CldrTranslations def language_name(locale) locale = cldr_supported(locale) - language_names = language_names(locale) - language_name = variations(locale).filter_map { |l| language_names[l] }.first + variations = variations(locale) + language_names = merged_language_names(variations) + language_name = variations.filter_map { |l| language_names[l] }.first language_name.capitalize end private + def merged_language_names(variations) + variations.reduce({}) do |merged, locale| + merged.merge(language_names(locale)) + end + end + def language_names(locale) @language_names ||= {} - @language_names[locale] ||= Cldr::Export.data(:Languages, locale, merge: true)[:languages] + @language_names[locale] ||= Cldr::Export.data(:Languages, locale)[:languages] || {} rescue Errno::ENOENT => e warn "ERROR: cannot load Languages CLDR component file for locale #{locale}: #{e}" warn e.backtrace.join("\n") @@ -72,14 +79,36 @@ class CldrTranslations end # From :'zh-Hans-CN', returns [:'zh-Hans-CN', :'zh-Hans', :zh] + # :'zh-ZH' is not included as it's not available in CLDR # From :de, returns [:de] + # From :'pt-BR', returns [:'pt-BR', :'pt-PT', :pt] + # From :'pt-PT', returns [:'pt-PT', :pt] def variations(locale) locale.to_s .split('-') .reduce([]) { |variations, part| variations.unshift([variations.first, part].compact.join('-')) } + .then { |variations| insert_self_variation(variations) } + .select { |variation| available_locale?(variation) } .map(&:to_sym) end + def insert_self_variation(variations) + return variations if variations.length == 1 + + self_variation = "#{variations.last}-#{variations.last.upcase}" + return variations if variations.include?(self_variation) + + variations.insert(-2, self_variation) + end + + def available_locale?(locale) + available_locales.include?(locale) + end + + def available_locales + @available_locales ||= Set.new(Cldr::Export::Data.locales.map { _1.tr('_', '-') }) + end + def ensure_cldr_database_is_downloaded return if cldr_db_location.exist? @@ -102,12 +131,12 @@ end class GenerateTranslationFiles COMMENT = <<~COMMENT.freeze - # This file has been generated by #{$0}. + # This file has been generated by #{Pathname.new($0).cleanpath}. # Please do not edit directly. # - # To update this file, run #{$0}. + # To update this file, run #{Pathname.new($0).cleanpath}. # - # The translations come from version #{CldrTranslations::CLDR_VERSION} of the Unicode CLDR project . + # The translations come from version #{CldrTranslations::CLDR_VERSION} of the Unicode CLDR project. # # The Unicode Common Locale Data Repository (CLDR) provides key building # blocks for software to support the world's languages, with the largest diff --git a/spec/constants/settings/definition_spec.rb b/spec/constants/settings/definition_spec.rb index d43f4499b7b0..e66d4b0fd13d 100644 --- a/spec/constants/settings/definition_spec.rb +++ b/spec/constants/settings/definition_spec.rb @@ -350,8 +350,11 @@ ) # override from env manually because these settings are added by plugin itself described_class.send(:override_value, all[:plugin_openproject_two_factor_authentication]) - expect(all[:plugin_openproject_two_factor_authentication].value).to eq('active_strategies' => [:totp], - 'enforced' => true, 'allow_remember_for_days' => 15) + expect(all[:plugin_openproject_two_factor_authentication].value).to eq( + 'active_strategies' => %i[totp webauthn], + 'enforced' => true, + 'allow_remember_for_days' => 15 + ) end it 'allows overriding settings hash from ENV with aliased env name' do @@ -364,7 +367,7 @@ # override from env manually because these settings are added by plugin itself described_class.send(:override_value, all[:plugin_openproject_two_factor_authentication]) expect(all[:plugin_openproject_two_factor_authentication].value) - .to eq({ 'active_strategies' => [:totp], 'enforced' => true, 'allow_remember_for_days' => 15 }) + .to eq({ 'active_strategies' => %i[totp webauthn], 'enforced' => true, 'allow_remember_for_days' => 15 }) end end