From 2ff8fe65d27d9b931f80890b2e0f916a08d2e8d2 Mon Sep 17 00:00:00 2001 From: Bubka <858858+Bubka@users.noreply.github.com> Date: Wed, 29 May 2024 10:37:52 +0200 Subject: [PATCH] Update translations --- resources/lang/ar/admin.php | 130 +++++++++++++++ resources/lang/ar/auth.php | 128 +++++++++++++++ resources/lang/ar/commons.php | 94 +++++++++++ resources/lang/ar/errors.php | 75 +++++++++ resources/lang/ar/groups.php | 41 +++++ resources/lang/ar/languages.php | 23 +++ resources/lang/ar/notifications.php | 36 ++++ resources/lang/ar/pagination.php | 19 +++ resources/lang/ar/passwords.php | 26 +++ resources/lang/ar/settings.php | 171 +++++++++++++++++++ resources/lang/ar/titles.php | 58 +++++++ resources/lang/ar/twofaccounts.php | 171 +++++++++++++++++++ resources/lang/ar/validation.php | 206 +++++++++++++++++++++++ resources/lang/bg/admin.php | 23 ++- resources/lang/bg/auth.php | 4 +- resources/lang/bg/commons.php | 11 +- resources/lang/bg/errors.php | 5 + resources/lang/bg/notifications.php | 15 +- resources/lang/bg/settings.php | 13 ++ resources/lang/bg/titles.php | 3 + resources/lang/de/admin.php | 163 +++++++++--------- resources/lang/de/auth.php | 52 +++--- resources/lang/de/commons.php | 31 ++-- resources/lang/de/errors.php | 19 ++- resources/lang/de/groups.php | 4 +- resources/lang/de/notifications.php | 23 ++- resources/lang/de/passwords.php | 2 +- resources/lang/de/settings.php | 77 +++++---- resources/lang/de/titles.php | 19 ++- resources/lang/de/twofaccounts.php | 50 +++--- resources/lang/de/validation.php | 2 +- resources/lang/es/admin.php | 23 ++- resources/lang/es/auth.php | 4 +- resources/lang/es/commons.php | 11 +- resources/lang/es/errors.php | 5 + resources/lang/es/notifications.php | 15 +- resources/lang/es/settings.php | 13 ++ resources/lang/es/titles.php | 3 + resources/lang/fr/admin.php | 9 +- resources/lang/fr/commons.php | 3 + resources/lang/fr/notifications.php | 8 +- resources/lang/fr/settings.php | 13 ++ resources/lang/hi/admin.php | 19 ++- resources/lang/hi/auth.php | 2 +- resources/lang/hi/commons.php | 11 +- resources/lang/hi/errors.php | 5 + resources/lang/hi/notifications.php | 15 +- resources/lang/hi/settings.php | 13 ++ resources/lang/hi/titles.php | 3 + resources/lang/id/admin.php | 23 ++- resources/lang/id/auth.php | 2 +- resources/lang/id/commons.php | 11 +- resources/lang/id/errors.php | 5 + resources/lang/id/notifications.php | 15 +- resources/lang/id/settings.php | 13 ++ resources/lang/id/titles.php | 3 + resources/lang/it/admin.php | 23 ++- resources/lang/it/auth.php | 4 +- resources/lang/it/commons.php | 11 +- resources/lang/it/errors.php | 5 + resources/lang/it/notifications.php | 15 +- resources/lang/it/settings.php | 13 ++ resources/lang/it/titles.php | 3 + resources/lang/ja/admin.php | 163 +++++++++--------- resources/lang/ja/auth.php | 8 +- resources/lang/ja/commons.php | 19 ++- resources/lang/ja/errors.php | 7 +- resources/lang/ja/languages.php | 4 +- resources/lang/ja/notifications.php | 23 ++- resources/lang/ja/settings.php | 27 ++- resources/lang/ja/titles.php | 11 +- resources/lang/ja/twofaccounts.php | 8 +- resources/lang/ja/validation.php | 4 +- resources/lang/pt/admin.php | 130 +++++++++++++++ resources/lang/pt/auth.php | 128 +++++++++++++++ resources/lang/pt/commons.php | 94 +++++++++++ resources/lang/pt/errors.php | 75 +++++++++ resources/lang/pt/groups.php | 41 +++++ resources/lang/pt/languages.php | 23 +++ resources/lang/pt/notifications.php | 36 ++++ resources/lang/pt/pagination.php | 19 +++ resources/lang/pt/passwords.php | 26 +++ resources/lang/pt/settings.php | 171 +++++++++++++++++++ resources/lang/pt/titles.php | 58 +++++++ resources/lang/pt/twofaccounts.php | 171 +++++++++++++++++++ resources/lang/pt/validation.php | 206 +++++++++++++++++++++++ resources/lang/ro/admin.php | 29 +++- resources/lang/ro/auth.php | 2 +- resources/lang/ro/commons.php | 11 +- resources/lang/ro/errors.php | 5 + resources/lang/ro/notifications.php | 15 +- resources/lang/ro/settings.php | 13 ++ resources/lang/ro/titles.php | 3 + resources/lang/ru/admin.php | 17 +- resources/lang/ru/auth.php | 2 +- resources/lang/ru/commons.php | 11 +- resources/lang/ru/errors.php | 5 + resources/lang/ru/notifications.php | 15 +- resources/lang/ru/settings.php | 13 ++ resources/lang/ru/titles.php | 3 + resources/lang/ru/validation.php | 2 +- resources/lang/si/admin.php | 23 ++- resources/lang/si/auth.php | 4 +- resources/lang/si/commons.php | 11 +- resources/lang/si/errors.php | 5 + resources/lang/si/notifications.php | 15 +- resources/lang/si/settings.php | 13 ++ resources/lang/si/titles.php | 3 + resources/lang/tr/admin.php | 163 +++++++++--------- resources/lang/tr/auth.php | 196 +++++++++++----------- resources/lang/tr/commons.php | 147 +++++++++-------- resources/lang/tr/errors.php | 113 +++++++------ resources/lang/tr/groups.php | 42 ++--- resources/lang/tr/languages.php | 20 +-- resources/lang/tr/notifications.php | 23 ++- resources/lang/tr/pagination.php | 4 +- resources/lang/tr/passwords.php | 12 +- resources/lang/tr/settings.php | 201 ++++++++++++----------- resources/lang/tr/titles.php | 63 +++---- resources/lang/tr/twofaccounts.php | 212 ++++++++++++------------ resources/lang/tr/validation.php | 246 ++++++++++++++-------------- resources/lang/zh/admin.php | 23 ++- resources/lang/zh/auth.php | 4 +- resources/lang/zh/commons.php | 11 +- resources/lang/zh/errors.php | 5 + resources/lang/zh/notifications.php | 15 +- resources/lang/zh/settings.php | 13 ++ resources/lang/zh/titles.php | 3 + 128 files changed, 4139 insertions(+), 1064 deletions(-) create mode 100644 resources/lang/ar/admin.php create mode 100644 resources/lang/ar/auth.php create mode 100644 resources/lang/ar/commons.php create mode 100644 resources/lang/ar/errors.php create mode 100644 resources/lang/ar/groups.php create mode 100644 resources/lang/ar/languages.php create mode 100644 resources/lang/ar/notifications.php create mode 100644 resources/lang/ar/pagination.php create mode 100644 resources/lang/ar/passwords.php create mode 100644 resources/lang/ar/settings.php create mode 100644 resources/lang/ar/titles.php create mode 100644 resources/lang/ar/twofaccounts.php create mode 100644 resources/lang/ar/validation.php create mode 100644 resources/lang/pt/admin.php create mode 100644 resources/lang/pt/auth.php create mode 100644 resources/lang/pt/commons.php create mode 100644 resources/lang/pt/errors.php create mode 100644 resources/lang/pt/groups.php create mode 100644 resources/lang/pt/languages.php create mode 100644 resources/lang/pt/notifications.php create mode 100644 resources/lang/pt/pagination.php create mode 100644 resources/lang/pt/passwords.php create mode 100644 resources/lang/pt/settings.php create mode 100644 resources/lang/pt/titles.php create mode 100644 resources/lang/pt/twofaccounts.php create mode 100644 resources/lang/pt/validation.php diff --git a/resources/lang/ar/admin.php b/resources/lang/ar/admin.php new file mode 100644 index 00000000..762175ec --- /dev/null +++ b/resources/lang/ar/admin.php @@ -0,0 +1,130 @@ + 'Admin', + 'app_setup' => 'App setup', + 'registrations' => 'Registrations', + 'users' => 'Users', + 'users_legend' => 'Manage users registered on your instance or create new ones.', + 'admin_settings' => 'Admin settings', + 'create_new_user' => 'Create a user', + 'new_user' => 'New user', + 'search_user_placeholder' => 'User name, email...', + 'quick_filters_colons' => 'Quick filters:', + 'user_created' => 'user successfully created', + 'confirm' => [ + 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', + 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', + 'purge_password_reset_request' => 'Are you sure you want to revoke the previous request?', + 'delete_account' => 'Are you sure you want to delete this user?', + 'edit_own_account' => 'This is your own account. Are you sure?', + 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', + 'demote_own_account' => 'You will no longer be an administrator. Really sure?' + ], + 'logs' => 'Logs', + 'administration_legend' => 'Following settings are global and apply to all users.', + 'user_management' => 'User management', + 'oauth_provider' => 'OAuth provider', + 'account_bound_to_x_via_oauth' => 'This account is bound to a :provider account via OAuth', + 'last_seen_on_date' => 'Last seen :date', + 'registered_on_date' => 'Registered :date', + 'updated_on_date' => 'Updated :date', + 'access' => 'Access', + 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime), which means that the user has not yet changed their password but the link they received is still valid. This may be a request from the user themselves or from an administrator.', + 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning that the user has not changed their password in time. This may be a request from the user themselves or from an administrator.', + 'resend_email' => 'Resend email', + 'resend_email_title' => 'Resend a password reset email to the user', + 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', + 'reset_password' => 'Reset password', + 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so they can set a new password. Any previous request will be revoked.', + 'reset_password_title' => 'Reset the user\'s password', + 'password_successfully_reset' => 'Password successfully reset', + 'user_has_x_active_pat' => ':count active token(s)', + 'user_has_x_security_devices' => ':count security device(s) (passkeys)', + 'revoke_all_pat_for_user' => 'Revoke all user\'s tokens', + 'revoke_all_devices_for_user' => 'Revoke all user\'s security devices', + 'danger_zone' => 'Danger Zone', + 'delete_this_user_legend' => 'The user account will be deleted as well as all its 2FA data.', + 'this_is_not_soft_delete' => 'This is not a soft delete, there is no going back.', + 'delete_this_user' => 'Delete this user', + 'user_role_updated' => 'User role updated', + 'pats_succesfully_revoked' => 'User\'s PATs successfully revoked', + 'security_devices_succesfully_revoked' => 'User\'s security devices successfully revoked', + 'variables' => 'Variables', + 'cache_cleared' => 'Cache cleared', + 'cache_optimized' => 'Cache optimized', + 'check_now' => 'Check now', + 'view_on_github' => 'View on Github', + 'x_is_available' => ':version is available', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Last accesses', + 'see_full_log' => 'See full log', + 'browser_on_platform' => ':browser on :platform', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => 'Full access log for user :username', + 'show_last_month_log' => 'Show entries from the last month', + 'show_three_months_log' => 'Show entries from the last 3 months', + 'show_six_months_log' => 'Show entries from the last 6 months', + 'show_one_year_log' => 'Show entries from the last year', + 'sort_by_date_asc' => 'Show least recent first', + 'sort_by_date_desc' => 'Show most recent first', + 'forms' => [ + 'use_encryption' => [ + 'label' => 'Protect sensitive data', + 'help' => 'Sensitive data, the 2FA secrets and emails, are stored encrypted in database. Be sure to backup the APP_KEY value of your .env file (or the whole file) as it serves as key encryption. There is no way to decypher encrypted data without this key.', + ], + 'restrict_registration' => [ + 'label' => 'Restrict registration', + 'help' => 'Make registration only available to a limited range of email addresses. Both rules can be used simultaneously. This has no effect on registration via SSO.', + ], + 'restrict_list' => [ + 'label' => 'Filtering list', + 'help' => 'Emails in this list will be allowed to register. Separate addresses with a pipe ("|")', + ], + 'restrict_rule' => [ + 'label' => 'Filtering rule', + 'help' => 'Emails matching this regular expression will be allowed to register', + ], + 'disable_registration' => [ + 'label' => 'Disable registration', + 'help' => 'Prevent new user registration. Unless overridden (see below), this affects SSO as well, so new users won\'t be able to sign in via SSO', + ], + 'enable_sso' => [ + 'label' => 'Enable Single Sign-On (SSO)', + 'help' => 'Allow visitors to authenticate using an external ID via the Single Sign-On scheme', + ], + 'keep_sso_registration_enabled' => [ + 'label' => 'Keep SSO registration enabled', + 'help' => 'Allow new users to sign in for the first time via SSO whereas registration is disabled', + ], + 'is_admin' => [ + 'label' => 'Is administrator', + 'help' => 'Give administrator rights to the user. Administrators have permissions to manage the whole app, i.e. settings and other users, but cannot generate password for a 2FA they don\'t own.' + ], + 'test_email' => [ + 'label' => 'Email configuration test', + 'help' => 'Send a test email to control your instance\'s email configuration. It is important to have a working configuration, otherwise users will not be able to request a reset password.', + 'email_will_be_send_to_x' => 'The email will be send to :email', + ], + 'cache_management' => [ + 'label' => 'Cache management', + 'help' => 'Sometimes cache needs to be cleared, for instance after a change to environment variables or an update. You can do it from here.', + ] + ], + +]; \ No newline at end of file diff --git a/resources/lang/ar/auth.php b/resources/lang/ar/auth.php new file mode 100644 index 00000000..7334b79a --- /dev/null +++ b/resources/lang/ar/auth.php @@ -0,0 +1,128 @@ + 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + + // 2FAuth + 'sign_out' => 'Sign out', + 'sign_in' => 'Sign in', + 'sign_in_using' => 'Sign in using', + 'or_continue_with' => 'You can also continue with:', + 'sign_in_using_security_device' => 'Sign in using a security device', + 'login_and_password' => 'login & password', + 'register' => 'Register', + 'welcome_to_2fauth' => 'Welcome to 2FAuth', + 'autolock_triggered' => 'Auto lock triggered', + 'autolock_triggered_punchline' => 'Auto-lock triggered, you\'ve been logged out', + 'already_authenticated' => 'Already authenticated, please log out first', + 'authentication' => 'Authentication', + 'maybe_later' => 'Maybe later', + 'user_account_controlled_by_proxy' => 'User account made available by an authentication proxy.
Manage the account at proxy level.', + 'auth_handled_by_proxy' => 'Authentication handled by a reverse proxy, below settings are disabled.
Manage authentication at proxy level.', + 'confirm' => [ + 'logout' => 'Are you sure you want to log out?', + 'revoke_device' => 'Are you sure you want to revoke this device?', + 'delete_account' => 'Are you sure you want to delete your account?', + ], + 'webauthn' => [ + 'security_device' => 'a security device', + 'security_devices' => 'Security devices', + 'security_devices_legend' => 'Authentication devices you can use to sign in 2FAuth, like security keys (i.e Yubikey) or smartphones with biometric capabilities (i.e. Apple FaceId/TouchId)', + 'enhance_security_using_webauthn' => 'You can enhance the security of your 2FAuth account by enabling WebAuthn authentication.

+ WebAuthn allows you to use trusted devices (like Yubikeys or smartphones with biometric capabilities) to sign in quickly and more securely.', + 'use_security_device_to_sign_in' => 'Get ready to authenticate using (one of) your security devices. Plug your key in, remove face mask or gloves, etc.', + 'lost_your_device' => 'Lost your device?', + 'recover_your_account' => 'Recover your account', + 'account_recovery' => 'Account recovery', + 'recovery_punchline' => '2FAuth will send you a recovery link to this email address. Click the link in the received email and follow the instructions.

Ensure you open the email on a device you fully own.', + 'send_recovery_link' => 'Send recovery link', + 'account_recovery_email_sent' => 'Account recovery email sent!', + 'disable_all_security_devices' => 'Disable all security devices', + 'disable_all_security_devices_help' => 'All your security devices will be revoked. Use this option if you have lost one or its security has been compromised.', + 'register_a_new_device' => 'Register a new device', + 'register_a_device' => 'Register a device', + 'device_successfully_registered' => 'Device successfully registered', + 'device_revoked' => 'Device successfully revoked', + 'revoking_a_device_is_permanent' => 'Revoking a device is permanent', + 'recover_account_instructions' => 'To recover your account, 2FAuth resets some Webauthn settings so you will be able to sign in using your email and password.', + 'invalid_recovery_token' => 'Invalid recovery token', + 'webauthn_login_disabled' => 'Webauthn login disabled', + 'invalid_reset_token' => 'This reset token is invalid.', + 'rename_device' => 'Rename device', + 'my_device' => 'My device', + 'unknown_device' => 'Unknown device', + 'use_webauthn_only' => [ + 'label' => 'Use WebAuthn only', + 'help' => 'Make WebAuthn the only authorized method to log into your 2FAuth account. This is the recommended setup to take advantage of the WebAuthn enhanced security.

+ In case of device lost, you will be able to recover your account by resetting this option and signing in using your email and password.

+ Attention! The Email & Password form remains available despite this option being enabled, but it will always return an \'Authentication failed\' response.' + ], + 'need_a_security_device_to_enable_options' => 'Set at least one device to enable the following options', + 'options' => 'Options', + ], + 'forms' => [ + 'name' => 'Name', + 'login' => 'Login', + 'webauthn_login' => 'WebAuthn login', + 'email' => 'Email', + 'password' => 'Password', + 'reveal_password' => 'Reveal password', + 'hide_password' => 'Hide password', + 'confirm_password' => 'Confirm password', + 'new_password' => 'New password', + 'confirm_new_password' => 'Confirm new password', + 'dont_have_account_yet' => 'Don\'t have your account yet?', + 'already_register' => 'Already registered?', + 'authentication_failed' => 'Authentication failed', + 'forgot_your_password' => 'Forgot your password?', + 'request_password_reset' => 'Reset it', + 'reset_your_password' => 'Reset your password', + 'reset_password' => 'Reset password', + 'disabled_in_demo' => 'Feature disabled in Demo mode', + 'new_password' => 'New password', + 'current_password' => [ + 'label' => 'Current password', + 'help' => 'Fill in your current password to confirm that it\'s you' + ], + 'change_password' => 'Change password', + 'send_password_reset_link' => 'Send password reset link', + 'password_successfully_reset' => 'Password successfully reset', + 'edit_account' => 'Edit account', + 'profile_saved' => 'Profile successfully updated!', + 'welcome_to_demo_app_use_those_credentials' => 'Welcome to the 2FAuth demo.

You can connect using the email address demo@2fauth.app and the password demo', + 'welcome_to_testing_app_use_those_credentials' => 'Welcome to the 2FAuth testing instance.

Use email address testing@2fauth.app and password password', + 'register_punchline' => 'Welcome to 2FAuth.
You need an account to go further, please register yourself.', + 'reset_punchline' => '2FAuth will send you a password reset link to this address. Click the link in the received email to set a new password.', + 'name_this_device' => 'Name this device', + 'delete_account' => 'Delete account', + 'delete_your_account' => 'Delete your account', + 'delete_your_account_and_reset_all_data' => 'Your user account will be deleted as well as all your 2FA data. There is no going back.', + 'reset_your_password_to_delete_your_account' => 'If you always used SSO to sign in, sign out then use the reset password feature to get a password so you can fill this form.', + 'deleting_2fauth_account_does_not_impact_provider' => 'Deleting your 2FAuth account has no impact on your external SSO account.', + 'user_account_successfully_deleted' => 'User account successfully deleted', + 'has_lower_case' => 'Has lower case', + 'has_upper_case' => 'Has upper case', + 'has_special_char' => 'Has special char', + 'has_number' => 'Has number', + 'is_long_enough' => '8 characters min.', + 'mandatory_rules' => 'Mandatory', + 'optional_rules_you_should_follow' => 'Recommanded (highly)', + 'caps_lock_is_on' => 'Caps lock is On', + ], + +]; diff --git a/resources/lang/ar/commons.php b/resources/lang/ar/commons.php new file mode 100644 index 00000000..17c0c45e --- /dev/null +++ b/resources/lang/ar/commons.php @@ -0,0 +1,94 @@ + 'Cancel', + 'update' => 'Update', + 'copy' => 'Copy', + 'copy_to_clipboard' => 'Copy to clipboard', + 'copied_to_clipboard' => 'Copied to clipboard', + 'profile' => 'Profile', + 'edit' => 'Edit', + 'delete' => 'Delete', + 'disable' => 'Disable', + 'enable' => 'Enable', + 'create' => 'Create', + 'save' => 'Save', + 'close' => 'Close', + 'clear' => 'Clear', + 'clear_search' => 'Clear search', + 'demo_do_not_post_sensitive_data' => 'This is a demo app, do not post any sensitive data', + 'testing_do_not_post_sensitive_data' => 'This is a testing app, do not post any sensitive data', + 'x_selected' => ':count selected', + 'name' => 'Name', + 'manage' => 'Manage', + 'done' => 'Done', + 'new' => 'New', + 'back' => 'Back', + 'move' => 'Move', + 'export' => 'Export', + 'all' => 'All', + 'check_all' => 'All', + 'select_all' => 'Select all', + 'clear_selection' => 'Clear selection', + 'sort_descending' => 'Sort descending', + 'sort_ascending' => 'Sort ascending', + 'rename' => 'Rename', + 'new_name' => 'New name', + 'options' => 'Options', + 'reload' => 'Reload', + 'refresh' => 'Refresh', + 'data_refreshed_to_reflect_server_changes' => 'Data has been refresh to reflect server-side changes', + 'generate' => 'Generate', + 'generating_otp' => 'Generating OTP', + 'open_in_browser' => 'Open in browser', + 'continue' => 'Continue', + 'discard' => 'Discard', + 'about' => 'About', + 'usefull_links' => 'Usefull links', + 'environment' => 'Environment', + 'credits' => 'Credits', + '2fauth_teaser' => 'A web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes', + 'made_with' => 'Made with', + 'ui_icons_by' => 'UI Icons by', + 'logos_by' => 'Logos by', + 'search' => 'Search', + 'resources' => 'Resources', + 'check_for_update' => 'Check for new version', + 'check_for_update_help' => 'Automatically check (once a week) and warn when a new release of 2FAuth is published on Github', + 'you_are_up_to_date' => 'This instance is up-to-date', + '2fauth_description' => 'A web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes', + 'image_of_qrcode_to_scan' => 'Image of a QR code to scan', + 'file' => 'File', + 'or' => 'OR', + 'close_the_x_page' => 'Close the :pagetitle page', + 'submit' => 'Submit', + 'default' => 'Default', + 'back_to_home' => 'Back to home', + 'nothing' => 'nothing', + 'no_result' => 'No result', + 'information' => 'Information', + 'send' => 'Send', + 'optimize' => 'Optimize', + 'IP' => 'IP', + 'browser' => 'Browser', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'No entry yet', + 'time' => 'Time', + 'ip_address' => 'IP Address', + 'device' => 'Device', + 'one_month' => '1 mo.', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', +]; diff --git a/resources/lang/ar/errors.php b/resources/lang/ar/errors.php new file mode 100644 index 00000000..f959785b --- /dev/null +++ b/resources/lang/ar/errors.php @@ -0,0 +1,75 @@ + 'Resource not found', + 'error_occured' => 'An error occured:', + 'refresh' => 'Refresh', + 'no_valid_otp' => 'No valid OTP resource in this QR code', + 'something_wrong_with_server' => 'Something is wrong with your server', + 'Unable_to_decrypt_uri' => 'Unable to decrypt uri', + 'not_a_supported_otp_type' => 'This OTP format is not currently supported', + 'cannot_create_otp_without_secret' => 'Cannot create an OTP without a secret', + 'data_of_qrcode_is_not_valid_URI' => 'The data of this QR code is not a valid OTP Auth URI. The QR code contains:', + 'wrong_current_password' => 'Wrong current password, nothing has changed', + 'error_during_encryption' => 'Encryption failed, your database remains unprotected.', + 'error_during_decryption' => 'Decryption failed, your database is still protected. This is mainly caused by an integrity issue of encrypted data for one or more accounts.', + 'qrcode_cannot_be_read' => 'This QR code is unreadable', + 'too_many_ids' => 'too many ids were included in the query parameter, max 100 allowed', + 'delete_user_setting_only' => 'Only user-created setting can be deleted', + 'indecipherable' => '*indecipherable*', + 'cannot_decipher_secret' => 'The secret cannot be deciphered. This is mainly caused by a wrong APP_KEY set in the .env configuration file of 2Fauth or a corrupted data stored in database.', + 'https_required' => 'HTTPS context required', + 'browser_does_not_support_webauthn' => 'Your device does not support webauthn. Try again later using a more modern browser', + 'aborted_by_user' => 'Aborted by user', + 'security_device_already_registered' => 'Device already registered', + 'not_allowed_operation' => 'Operation not allowed', + 'no_authenticator_support_specified_algorithms' => 'No authenticators support specified algorithms', + 'authenticator_missing_discoverable_credential_support' => 'Authenticator missing discoverable credential support', + 'authenticator_missing_user_verification_support' => 'Authenticator missing user verification support', + 'unknown_error' => 'Unknown error', + 'security_error_check_rpid' => 'Security error
Check your WEBAUTHN_ID env var', + '2fauth_has_not_a_valid_domain' => '2FAuth\'s domain is not a valid domain', + 'user_id_not_between_1_64' => 'User ID was not between 1 and 64 chars', + 'no_entry_was_of_type_public_key' => 'No entry was of type "public-key"', + 'unsupported_with_reverseproxy' => 'Not applicable when using an auth proxy', + 'user_deletion_failed' => 'User account deletion failed, no data have been deleted', + 'auth_proxy_failed' => 'Proxy authentication failed', + 'auth_proxy_failed_legend' => '2Fauth is configured to run behind an authentication proxy but your proxy does not return the expected header. Check your configuration and try again.', + 'invalid_x_migration' => 'Invalid or unreadable :appname data', + 'invalid_2fa_data' => 'Invalid 2FA data', + 'unsupported_migration' => 'Data do not match any supported format', + 'unsupported_otp_type' => 'Unsupported OTP type', + 'encrypted_migration' => 'Unreadable, the data seem encrypted', + 'no_logo_found_for_x' => 'No logo available for :service', + 'file_upload_failed' => 'File upload failed', + 'unauthorized' => 'Unauthorized', + 'unauthorized_legend' => 'You do not have permissions to view this resource or to perform this action', + 'cannot_delete_the_only_admin' => 'Cannot delete the only admin account', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', + 'error_during_data_fetching' => '💀 Something went wrong during data fetching', + 'check_failed_try_later' => 'Check failed, please retry later', + 'sso_disabled' => 'SSO is disabled', + 'sso_bad_provider_setup' => 'This SSO provider is not fully setup in your .env file', + 'sso_failed' => 'Authentication via SSO rejected', + 'sso_no_register' => 'Registrations are disabled', + 'sso_email_already_used' => 'A user account with the same email address already exists but it does not match your external account ID. Do not use SSO if you are already registered on 2FAuth with this email.', + 'account_managed_by_external_provider' => 'Account managed by an external provider', + 'data_cannot_be_refreshed_from_server' => 'Data cannot be refreshed from server', + 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', +]; \ No newline at end of file diff --git a/resources/lang/ar/groups.php b/resources/lang/ar/groups.php new file mode 100644 index 00000000..0a1124be --- /dev/null +++ b/resources/lang/ar/groups.php @@ -0,0 +1,41 @@ + 'Groups', + 'create_group' => 'Create new group', + 'show_group_selector' => 'Show group selector', + 'hide_group_selector' => 'Hide group selector', + 'select_accounts_to_show' => 'Select accounts group to show', + 'x_accounts' => ':count accounts', + 'manage_groups' => 'Manage groups', + 'active_group' => 'Active group', + 'manage_groups_legend' => 'You can create groups to organize your accounts the way you want. All accounts remain visible in the pseudo group named \'All\', regardless of the group they belong to.', + 'deleting_group_does_not_delete_accounts' => 'Deleting a group does not delete accounts', + 'move_selected_to' => 'Move selected to', + 'move_selected_to_group' => 'Move selected into a group', + 'no_group' => 'No group', + 'change_group' => 'Change group', + 'group_successfully_created' => 'Group successfully created', + 'group_name_saved' => 'Group name saved', + 'group_successfully_deleted' => 'Group successfully deleted', + 'forms' => [ + 'new_group' => 'New group', + 'new_name' => 'New name', + 'rename_group' => 'Rename group', + ], + 'confirm' => [ + 'delete' => 'Are you sure you want to delete this group?', + ], +]; \ No newline at end of file diff --git a/resources/lang/ar/languages.php b/resources/lang/ar/languages.php new file mode 100644 index 00000000..f07aa37d --- /dev/null +++ b/resources/lang/ar/languages.php @@ -0,0 +1,23 @@ + 'Browser preference', + 'en' => 'English (English)', + 'fr' => 'Français (French)', + 'de' => 'Deutsch (German)', + 'es' => 'Español (Spanish)', + 'zh' => '简体中文 (Chinese Simplified)', + 'ru' => 'Русский (Russian)', + 'bg' => 'Български (Bulgarian)', + 'ja' => '日本語 (Japanese)', + 'hi' => 'हिंदी (Hindi)', +]; \ No newline at end of file diff --git a/resources/lang/ar/notifications.php b/resources/lang/ar/notifications.php new file mode 100644 index 00000000..cdeab118 --- /dev/null +++ b/resources/lang/ar/notifications.php @@ -0,0 +1,36 @@ + 'Hello', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', + 'test_email_settings' => [ + 'subject' => '2FAuth test email', + 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', + 'success' => 'Good news, it works :)' + ], + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], +]; \ No newline at end of file diff --git a/resources/lang/ar/pagination.php b/resources/lang/ar/pagination.php new file mode 100644 index 00000000..d4814118 --- /dev/null +++ b/resources/lang/ar/pagination.php @@ -0,0 +1,19 @@ + '« Previous', + 'next' => 'Next »', + +]; diff --git a/resources/lang/ar/passwords.php b/resources/lang/ar/passwords.php new file mode 100644 index 00000000..a25271a3 --- /dev/null +++ b/resources/lang/ar/passwords.php @@ -0,0 +1,26 @@ + 'Your password has been reset!', + 'sent' => 'We have emailed your password reset link!', + 'throttled' => 'Please wait before retrying.', + 'token' => 'This password reset token is invalid.', + 'user' => "We can't find a user with that email address.", + + // 2FAuth + 'password' => 'Passwords must be at least eight characters and match the confirmation.', + +]; diff --git a/resources/lang/ar/settings.php b/resources/lang/ar/settings.php new file mode 100644 index 00000000..8226d787 --- /dev/null +++ b/resources/lang/ar/settings.php @@ -0,0 +1,171 @@ + 'Settings', + 'preferences' => 'Preferences', + 'account' => 'Account', + 'oauth' => 'OAuth', + 'webauthn' => 'WebAuthn', + 'tokens' => 'Tokens', + 'options' => 'Options', + 'user_preferences' => 'User preferences', + 'admin_settings' => 'Admin settings', + 'confirm' => [ + + ], + 'you_are_administrator' => 'You are an administrator', + 'account_linked_to_sso_x_provider' => 'You signed-in via SSO using your :provider account. Your information cannot be changed here but on :provider.', + 'general' => 'General', + 'security' => 'Security', + 'notifications' => 'Notifications', + 'profile' => 'Profile', + 'change_password' => 'Change password', + 'personal_access_tokens' => 'Personal access tokens', + 'token_legend' => 'Personal Access Tokens allow any app to authenticate to the 2Fauth API. You should specify the access token as a Bearer token in the authorization header of consumer apps requests.', + 'generate_new_token' => 'Generate a new token', + 'revoke' => 'Revoke', + 'token_revoked' => 'Token successfully revoked', + 'revoking_a_token_is_permanent' => 'Revoking a token is permanent', + 'confirm' => [ + 'revoke' => 'Are you sure you want to revoke this token?', + ], + 'make_sure_copy_token' => 'Make sure to copy your personal access token now. You won’t be able to see it again!', + 'data_input' => 'Data input', + 'forms' => [ + 'edit_settings' => 'Edit settings', + 'setting_saved' => 'Settings saved', + 'new_token' => 'New token', + 'some_translation_are_missing' => 'Some translations are missing using the browser preferred language?', + 'help_translate_2fauth' => 'Help translate 2FAuth', + 'language' => [ + 'label' => 'Language', + 'help' => 'Language used to translate the 2FAuth user interface. Named languages are complete, set the one of your choice to override your browser preference.' + ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], + 'show_otp_as_dot' => [ + 'label' => 'Show generated OTP as dot', + 'help' => 'Replace generated password caracters with *** to ensure confidentiality. Do not affect the copy/paste feature' + ], + 'reveal_dotted_otp' => [ + 'label' => 'Reveal obscured OTP', + 'help' => 'Let the ability to temporarily reveal Dot-Obscured passwords' + ], + 'close_otp_on_copy' => [ + 'label' => 'Close OTP after copy', + 'help' => 'Clicking a generated password to copy it automatically hide it from the screen' + ], + 'clear_search_on_copy' => [ + 'label' => 'Clear Search on copy', + 'help' => 'Empty the Search box right after a code has been copied to the clipboard' + ], + 'copy_otp_on_display' => [ + 'label' => 'Copy OTP on display', + 'help' => 'Automatically copy a generated password right after it appears on screen. Due to browsers limitations, only the first TOTP password will be copied, not the rotating ones' + ], + 'use_basic_qrcode_reader' => [ + 'label' => 'Use basic QR code reader', + 'help' => 'If you experiences issues when capturing QR codes enables this option to switch to a more basic but more reliable QR code reader' + ], + 'display_mode' => [ + 'label' => 'Display mode', + 'help' => 'Choose whether you want accounts to be displayed as a list or as a grid' + ], + 'password_format' => [ + 'label' => 'Password formatting', + 'help' => 'Change how the passwords are displayed by grouping digits to ease readability and memorization' + ], + 'pair' => 'by Pair', + 'pair_legend' => 'Group digits two by two', + 'trio_legend' => 'Group digits three by three', + 'half_legend' => 'Split digits into two equals groups', + 'trio' => 'by Trio', + 'half' => 'by Half', + 'grid' => 'Grid', + 'list' => 'List', + 'theme' => [ + 'label' => 'Theme', + 'help' => 'Force a specific theme or apply the theme defined in your system/browser preferences' + ], + 'light' => 'Light', + 'dark' => 'Dark', + 'automatic' => 'Auto', + 'show_accounts_icons' => [ + 'label' => 'Show icons', + 'help' => 'Show icons accounts in the main view' + ], + 'get_official_icons' => [ + 'label' => 'Get official icons', + 'help' => '(Try to) Get the official icon of the 2FA issuer when adding an account' + ], + 'auto_lock' => [ + 'label' => 'Auto lock', + 'help' => 'Log out the user automatically in case of inactivity. Has no effect when authentication is handled by a proxy and no custom logout url is specified.' + ], + 'default_group' => [ + 'label' => 'Default group', + 'help' => 'The group to which the newly created accounts are associated', + ], + 'view_default_group_on_copy' => [ + 'label' => 'View default group on copy', + 'help' => 'Always return to the default group when an OTP is copied', + ], + 'useDirectCapture' => [ + 'label' => 'Direct input', + 'help' => 'Choose whether you want to be prompted to choose an input mode among those available or if you want to directly use the default input mode', + ], + 'defaultCaptureMode' => [ + 'label' => 'Default input mode', + 'help' => 'Default input mode used when the Direct input option is On', + ], + 'remember_active_group' => [ + 'label' => 'Remember group filter', + 'help' => 'Save the last group filter applied and restore it on your next visit', + ], + 'otp_generation' => [ + 'label' => 'Show Password', + 'help' => 'Set how and when OTPs are displayed.
', + ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], + 'otp_generation_on_request' => 'After a click/tap', + 'otp_generation_on_request_legend' => 'Alone, in its own view', + 'otp_generation_on_request_title' => 'Click an account to get a password in a dedicated view', + 'otp_generation_on_home' => 'Constantly', + 'otp_generation_on_home_legend' => 'All of them, on home', + 'otp_generation_on_home_title' => 'Show all passwords in the main view, without doing anything', + 'never' => 'Never', + 'on_otp_copy' => 'On security code copy', + '1_minutes' => 'After 1 minute', + '5_minutes' => 'After 5 minutes', + '10_minutes' => 'After 10 minutes', + '15_minutes' => 'After 15 minutes', + '30_minutes' => 'After 30 minutes', + '1_hour' => 'After 1 hour', + '1_day' => 'After 1 day', + 'livescan' => 'QR code livescan', + 'upload' => 'QR code upload', + 'advanced_form' => 'Advanced form', + ], + +]; \ No newline at end of file diff --git a/resources/lang/ar/titles.php b/resources/lang/ar/titles.php new file mode 100644 index 00000000..85802fe8 --- /dev/null +++ b/resources/lang/ar/titles.php @@ -0,0 +1,58 @@ + 'New account', + 'capture' => 'Flash QR', + 'accounts' => 'Accounts', + 'createAccount' => 'Create account', + 'importAccounts' => 'Import accounts', + 'editAccount' => 'Account edit', + 'showQRcode' => 'Account as QR code', + 'groups' => 'Groups', + 'createGroup' => 'Create group', + 'editGroup' => 'Group edit', + 'settings' => [ + 'options' => 'Options', + 'account' => 'User account', + 'oauth' => [ + 'tokens' => 'OAuth tokens', + 'generatePAT' => 'New personal token', + ], + 'webauthn' => [ + 'editCredential' => 'Device edit', + 'devices' => 'WebAuthn devices', + ], + ], + 'login' => 'Login', + 'register' => 'Register', + 'autolock' => 'Auto lock', + 'password' => [ + 'request' => 'Reset password', + 'reset' => 'New password', + ], + 'webauthn' => [ + 'lost' => 'Account recovery', + 'recover' => 'Register a new device', + ], + 'flooded' => 'Flood', + 'genericError' => 'Error', + '404' => 'Item not found', + 'about' => 'About', + 'admin' => [ + 'appSetup' => 'App setup', + 'users' => 'Users management', + 'createUser' => 'Create user', + 'manageUser' => 'Manage user', + 'logs' => [ + 'access' => 'Access log' + ] + ] +]; \ No newline at end of file diff --git a/resources/lang/ar/twofaccounts.php b/resources/lang/ar/twofaccounts.php new file mode 100644 index 00000000..086877e5 --- /dev/null +++ b/resources/lang/ar/twofaccounts.php @@ -0,0 +1,171 @@ + 'Service', + 'account' => 'Account', + 'icon' => 'Icon', + 'icon_for_account_x_at_service_y' => 'Icon of the :account account at :service', + 'icon_to_illustrate_the_account' => 'Icon that illustrates the account', + 'remove_icon' => 'Remove icon', + 'no_account_here' => 'No 2FA here!', + 'add_first_account' => 'Pick a method and add your first account', + 'use_full_form' => 'Or use the full form', + 'add_one' => 'Add one', + 'show_qrcode' => 'Show QR code', + 'no_service' => '- no service -', + 'account_created' => 'Account successfully created', + 'account_updated' => 'Account successfully updated', + 'accounts_deleted' => 'Account(s) successfully deleted', + 'accounts_moved' => 'Account(s) successfully moved', + 'export_selected_to_json' => 'Download a json export of selected accounts', + 'reveal' => 'reveal', + 'forms' => [ + 'service' => [ + 'placeholder' => 'Google, Twitter, Apple', + ], + 'account' => [ + 'placeholder' => 'John DOE', + ], + 'new_account' => 'New account', + 'edit_account' => 'Edit account', + 'otp_uri' => 'OTP Uri', + 'scan_qrcode' => 'Scan a QR code', + 'upload_qrcode' => 'Upload a QR code', + 'use_advanced_form' => 'Use the advanced form', + 'prefill_using_qrcode' => 'Prefill using a QR Code', + 'use_qrcode' => [ + 'val' => 'Use a qrcode', + 'title' => 'Use a QR code to fill the form magically', + ], + 'unlock' => [ + 'val' => 'Unlock', + 'title' => 'Unlock it (at your own risk)', + ], + 'lock' => [ + 'val' => 'Lock', + 'title' => 'Lock it', + ], + 'choose_image' => 'Upload', + 'i_m_lucky' => 'Try my luck', + 'i_m_lucky_legend' => 'The "Try my luck" button try to get the official icon of the given service. Enter actual service name without ".xyz" extension and try to avoid typo. (beta feature)', + 'test' => 'Test', + 'secret' => [ + 'label' => 'Secret', + 'help' => 'The key used to generate your security codes' + ], + 'plain_text' => 'Plain text', + 'otp_type' => [ + 'label' => 'Choose the type of OTP to create', + 'help' => 'Time-based OTP or HMAC-based OTP or Steam OTP' + ], + 'digits' => [ + 'label' => 'Digits', + 'help' => 'The number of digits of the generated security codes' + ], + 'algorithm' => [ + 'label' => 'Algorithm', + 'help' => 'The algorithm used to secure your security codes' + ], + 'period' => [ + 'label' => 'Period', + 'placeholder' => 'Default is 30', + 'help' => 'The period of validity of the generated security codes in second' + ], + 'counter' => [ + 'label' => 'Counter', + 'placeholder' => 'Default is 0', + 'help' => 'The initial counter value', + 'help_lock' => 'It is risky to edit the counter as you can desynchronize the account with the verification server of the service. Use the lock icon to enable modification, but only if you know for you are doing' + ], + 'image' => [ + 'label' => 'Image', + 'placeholder' => 'http://...', + 'help' => 'The url of an external image to use as the account icon' + ], + 'options_help' => 'You can leave the following options blank if you don\'t know how to set them. The most commonly used values will be applied.', + 'alternative_methods' => 'Alternative methods', + 'spaces_are_ignored' => 'Unwanted spaces will be automatically removed' + ], + 'stream' => [ + 'live_scan_cant_start' => 'Live scan can\'t start :(', + 'need_grant_permission' => [ + 'reason' => '2FAuth does not have permission to access your camera', + 'solution' => 'You need to grant permission to use your device camera. If you already denied and your browser do not prompt you again, please refers to the browser documentation to find out how to grant permission.', + 'click_camera_icon' => 'It is usually done by clicking on a slashed camera icon in or next to the browser\'s address bar', + ], + 'not_readable' => [ + 'reason' => 'Fail to load scanner', + 'solution' => 'Is the camera already in use? Ensure that no other app use your camera and try again' + ], + 'no_cam_on_device' => [ + 'reason' => 'No camera on this device', + 'solution' => 'Maybe you forgot to plug in your webcam' + ], + 'secured_context_required' => [ + 'reason' => 'Secure context required', + 'solution' => 'HTTPS is required for live scan. If you run 2FAuth from your computer, do not use virtual host other than localhost' + ], + 'https_required' => 'HTTPS required for camera streaming', + 'camera_not_suitable' => [ + 'reason' => 'Installed cameras are not suitable', + 'solution' => 'Please use another device/camera' + ], + 'stream_api_not_supported' => [ + 'reason' => 'Stream API is not supported in this browser', + 'solution' => 'You should use a modern browser' + ], + ], + 'confirm' => [ + 'delete' => 'Are you sure you want to delete this account?', + 'cancel' => 'Changes will be lost. Are you sure?', + 'discard' => 'Are you sure you want to discard this account?', + 'discard_all' => 'Are you sure you want to discard all accounts?', + 'discard_duplicates' => 'Are you sure you want to discard all duplicates?', + ], + 'import' => [ + 'import' => 'Import', + 'to_import' => 'Import', + 'import_legend' => '2FAuth can import data from various 2FA apps.', + 'import_legend_afterpart' => 'Use the Export feature of these apps to get a migration resource like a QR code or a JSON file then load it here.', + 'upload' => 'Upload', + 'scan' => 'Scan', + 'supported_formats_for_qrcode_upload' => 'Accepted: jpg, jpeg, png, bmp, gif, svg, or webp', + 'supported_formats_for_file_upload' => 'Accepted: Plain text, json, 2fas', + 'expected_format_for_direct_input' => 'Expected: A list of otpauth URI, one by line', + 'supported_migration_formats' => 'Supported migration formats', + 'qr_code' => 'QR Code', + 'text_file' => 'Text file', + 'direct_input' => 'Direct input', + 'plain_text' => 'Plain text', + 'parsing_data' => 'Parsing data...', + 'issuer' => 'Issuer', + 'imported' => 'Imported', + 'failure' => 'Failure', + 'x_valid_accounts_found' => ':count valid accounts found', + 'submitted_data_parsed_now_accounts_are_awaiting_import' => 'The following 2FA accounts were found in the migration resource. So far none of them have been added to 2FAuth.', + 'use_buttons_to_save_or_discard' => 'Use the available buttons to permanently save them to your 2FA collection or discard them.', + 'import_all' => 'Import all', + 'import_this_account' => 'Import this account', + 'discard_all' => 'Discard all', + 'discard_duplicates' => 'Discard duplicates', + 'discard_this_account' => 'Discard this account', + 'generate_a_test_password' => 'Generate a test pasword', + 'possible_duplicate' => 'An account with the exact same data already exists', + 'invalid_account' => '- invalid account -', + 'invalid_service' => '- invalid service -', + 'do_not_set_password_or_encryption' => 'Do NOT enable Password protection or Encryption when you export data from a 2FA app otherwise 2FAuth will not be able to decipher them.', + ], + +]; \ No newline at end of file diff --git a/resources/lang/ar/validation.php b/resources/lang/ar/validation.php new file mode 100644 index 00000000..b49f6f93 --- /dev/null +++ b/resources/lang/ar/validation.php @@ -0,0 +1,206 @@ + 'The :attribute must be accepted.', + 'accepted_if' => 'The :attribute must be accepted when :other is :value.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', + 'alpha' => 'The :attribute must only contain letters.', + 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', + 'alpha_num' => 'The :attribute must only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'between' => [ + 'array' => 'The :attribute must have between :min and :max items.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'numeric' => 'The :attribute must be between :min and :max.', + 'string' => 'The :attribute must be between :min and :max characters.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'current_password' => 'The password is incorrect.', + 'date' => 'The :attribute is not a valid date.', + 'date_equals' => 'The :attribute must be a date equal to :date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'declined' => 'The :attribute must be declined.', + 'declined_if' => 'The :attribute must be declined when :other is :value.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'doesnt_end_with' => 'The :attribute may not end with one of the following: :values.', + 'doesnt_start_with' => 'The :attribute may not start with one of the following: :values.', + 'email' => 'The :attribute must be a valid email address.', + 'ends_with' => 'The :attribute must end with one of the following: :values.', + 'enum' => 'The selected :attribute is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'gt' => [ + 'array' => 'The :attribute must have more than :value items.', + 'file' => 'The :attribute must be greater than :value kilobytes.', + 'numeric' => 'The :attribute must be greater than :value.', + 'string' => 'The :attribute must be greater than :value characters.', + ], + 'gte' => [ + 'array' => 'The :attribute must have :value items or more.', + 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be greater than or equal to :value.', + 'string' => 'The :attribute must be greater than or equal to :value characters.', + ], + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'ipv4' => 'The :attribute must be a valid IPv4 address.', + 'ipv6' => 'The :attribute must be a valid IPv6 address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'lt' => [ + 'array' => 'The :attribute must have less than :value items.', + 'file' => 'The :attribute must be less than :value kilobytes.', + 'numeric' => 'The :attribute must be less than :value.', + 'string' => 'The :attribute must be less than :value characters.', + ], + 'lte' => [ + 'array' => 'The :attribute must not have more than :value items.', + 'file' => 'The :attribute must be less than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be less than or equal to :value.', + 'string' => 'The :attribute must be less than or equal to :value characters.', + ], + 'mac_address' => 'The :attribute must be a valid MAC address.', + 'max' => [ + 'array' => 'The :attribute must not have more than :max items.', + 'file' => 'The :attribute must not be greater than :max kilobytes.', + 'numeric' => 'The :attribute must not be greater than :max.', + 'string' => 'The :attribute must not be greater than :max characters.', + ], + 'max_digits' => 'The :attribute must not have more than :max digits.', + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'array' => 'The :attribute must have at least :min items.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'numeric' => 'The :attribute must be at least :min.', + 'string' => 'The :attribute must be at least :min characters.', + ], + 'min_digits' => 'The :attribute must have at least :min digits.', + 'multiple_of' => 'The :attribute must be a multiple of :value.', + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute format is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'password' => [ + 'letters' => 'The :attribute must contain at least one letter.', + 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.', + 'numbers' => 'The :attribute must contain at least one number.', + 'symbols' => 'The :attribute must contain at least one symbol.', + 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', + ], + 'present' => 'The :attribute field must be present.', + 'prohibited' => 'The :attribute field is prohibited.', + 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', + 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', + 'prohibits' => 'The :attribute field prohibits :other from being present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_array_keys' => 'The :attribute field must contain entries for: :values.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values are present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'array' => 'The :attribute must contain :size items.', + 'file' => 'The :attribute must be :size kilobytes.', + 'numeric' => 'The :attribute must be :size.', + 'string' => 'The :attribute must be :size characters.', + ], + 'starts_with' => 'The :attribute must start with one of the following: :values.', + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid timezone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'url' => 'The :attribute must be a valid URL.', + 'uuid' => 'The :attribute must be a valid UUID.', + + 'single' => 'When using :attribute it must be the only parameter in this request body', + 'onlyCustomOtpWithUri' => 'The uri parameter must be provided alone or only in combination with the \'custom_otp\' parameter', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'icon' => [ + 'image' => 'Supported format are jpeg, png, bmp, gif, svg, or webp.', + ], + 'qrcode' => [ + 'image' => 'Supported format are jpeg, png, bmp, gif, svg, or webp.', + ], + 'uri' => [ + 'regex' => 'The :attribute is not a valid otpauth uri.', + ], + 'otp_type' => [ + 'in' => 'The :attribute is not supported.', + ], + 'email' => [ + 'exists' => 'No account found using this email.', + 'ComplyWithEmailRestrictionPolicy' => 'This email address does not comply with the registration policy', + 'IsValidEmailList' => 'All emails must be valid and separated with a pipe' + ], + 'secret' => [ + 'isBase32Encoded' => 'The :attribute must be a base32 encoded string.', + ], + 'account' => [ + 'regex' => 'The :attribute must not contain colon.', + ], + 'service' => [ + 'regex' => 'The :attribute must not contain colon.', + ], + 'label' => [ + 'required' => 'The uri must have a label.', + ], + 'ids' => [ + 'regex' => 'IDs must be comma separated, without trailing comma.', + ] + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap our attribute placeholder + | with something more reader friendly such as "E-Mail Address" instead + | of "email". This simply helps us make our message more expressive. + | + */ + + 'attributes' => [], + +]; diff --git a/resources/lang/bg/admin.php b/resources/lang/bg/admin.php index 362a29e5..762175ec 100644 --- a/resources/lang/bg/admin.php +++ b/resources/lang/bg/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', + 'purge_password_reset_request' => 'Are you sure you want to revoke the previous request?', 'delete_account' => 'Are you sure you want to delete this user?', 'edit_own_account' => 'This is your own account. Are you sure?', 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', @@ -42,13 +42,13 @@ 'registered_on_date' => 'Registered :date', 'updated_on_date' => 'Updated :date', 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', + 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime), which means that the user has not yet changed their password but the link they received is still valid. This may be a request from the user themselves or from an administrator.', + 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning that the user has not changed their password in time. This may be a request from the user themselves or from an administrator.', 'resend_email' => 'Resend email', 'resend_email_title' => 'Resend a password reset email to the user', 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', + 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so they can set a new password. Any previous request will be revoked.', 'reset_password_title' => 'Reset the user\'s password', 'password_successfully_reset' => 'Password successfully reset', 'user_has_x_active_pat' => ':count active token(s)', @@ -68,6 +68,21 @@ 'check_now' => 'Check now', 'view_on_github' => 'View on Github', 'x_is_available' => ':version is available', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Last accesses', + 'see_full_log' => 'See full log', + 'browser_on_platform' => ':browser on :platform', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => 'Full access log for user :username', + 'show_last_month_log' => 'Show entries from the last month', + 'show_three_months_log' => 'Show entries from the last 3 months', + 'show_six_months_log' => 'Show entries from the last 6 months', + 'show_one_year_log' => 'Show entries from the last year', + 'sort_by_date_asc' => 'Show least recent first', + 'sort_by_date_desc' => 'Show most recent first', 'forms' => [ 'use_encryption' => [ 'label' => 'Protect sensitive data', diff --git a/resources/lang/bg/auth.php b/resources/lang/bg/auth.php index 5ee70cb4..6488aa9b 100644 --- a/resources/lang/bg/auth.php +++ b/resources/lang/bg/auth.php @@ -22,7 +22,7 @@ 'sign_out' => 'Изход', 'sign_in' => 'Вход', 'sign_in_using' => 'Влизане с', - 'or_continue_with' => 'You an also continue with:', + 'or_continue_with' => 'You can also continue with:', 'sign_in_using_security_device' => 'Влезте с помощта на защитно устройство', 'login_and_password' => 'потребител и парола', 'register' => 'Регистрация', @@ -94,7 +94,7 @@ 'reset_your_password' => 'Нулиране на паролата', 'reset_password' => 'Нулиране на парола', 'disabled_in_demo' => 'Функцията е деактивирана в демо режима', - 'new_password' => 'Нова парола', + 'new_password' => 'New password', 'current_password' => [ 'label' => 'Текуща парола', 'help' => 'Попълнете текущата си парола, за да потвърдите, че това сте вие' diff --git a/resources/lang/bg/commons.php b/resources/lang/bg/commons.php index f2fbb0a7..5056f07c 100644 --- a/resources/lang/bg/commons.php +++ b/resources/lang/bg/commons.php @@ -79,7 +79,16 @@ 'nothing' => 'nothing', 'no_result' => 'No result', 'information' => 'Information', - 'permissions' => 'Permissions', 'send' => 'Send', 'optimize' => 'Optimize', + 'IP' => 'IP', + 'browser' => 'Browser', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'No entry yet', + 'time' => 'Time', + 'ip_address' => 'IP Address', + 'device' => 'Device', + 'one_month' => '1 mo.', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', ]; diff --git a/resources/lang/bg/errors.php b/resources/lang/bg/errors.php index bfc43485..d1dbf631 100644 --- a/resources/lang/bg/errors.php +++ b/resources/lang/bg/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => 'Неразрешено', 'unauthorized_legend' => 'Нямате права да видите този ресурс или да извършите това действие', 'cannot_delete_the_only_admin' => 'Не може да изтрие единствения администраторски акаунт', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', 'error_during_data_fetching' => '💀 Something went wrong during data fetching', 'check_failed_try_later' => 'Check failed, please retry later', 'sso_disabled' => 'SSO is disabled', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => 'Account managed by an external provider', 'data_cannot_be_refreshed_from_server' => 'Data cannot be refreshed from server', 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', ]; \ No newline at end of file diff --git a/resources/lang/bg/notifications.php b/resources/lang/bg/notifications.php index 9e7f8380..cdeab118 100644 --- a/resources/lang/bg/notifications.php +++ b/resources/lang/bg/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => 'Hello', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', 'test_email_settings' => [ 'subject' => '2FAuth test email', 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', 'success' => 'Good news, it works :)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], ]; \ No newline at end of file diff --git a/resources/lang/bg/settings.php b/resources/lang/bg/settings.php index 9c04bda3..412e344e 100644 --- a/resources/lang/bg/settings.php +++ b/resources/lang/bg/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'You signed-in via SSO using your :provider account. Your information cannot be changed here but on :provider.', 'general' => 'Общи', 'security' => 'Сигурност', + 'notifications' => 'Notifications', 'profile' => 'Профил', 'change_password' => 'Промяна на паролата', 'personal_access_tokens' => 'Персонални токени за достъп', @@ -52,6 +53,10 @@ 'label' => 'Език', 'help' => 'Език, използван за превод на потребителския интерфейс 2FAuth. Наименуваните езици са завършени, задайте този по ваш избор, който да замени предпочитанията на браузъра ви.' ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], 'show_otp_as_dot' => [ 'label' => 'Показване на генерираните еднократни пароли като точка', 'help' => 'Заменете генерираните знаци за парола с ***, за да осигурите поверителност. Не засягайте функцията за копиране/поставяне' @@ -135,6 +140,14 @@ 'label' => 'Покажи паролата', 'help' => 'Задайте как и кога OTPs да се показват.
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'След клик/тап', 'otp_generation_on_request_legend' => 'Самостоятелно, в отделен изглед', 'otp_generation_on_request_title' => 'Щракнете върху акаунт, за да получите парола в отделен изглед', diff --git a/resources/lang/bg/titles.php b/resources/lang/bg/titles.php index 4ba2ef95..0ed9ea7f 100644 --- a/resources/lang/bg/titles.php +++ b/resources/lang/bg/titles.php @@ -51,5 +51,8 @@ 'users' => 'Users management', 'createUser' => 'Create user', 'manageUser' => 'Manage user', + 'logs' => [ + 'access' => 'Access log' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/de/admin.php b/resources/lang/de/admin.php index 362a29e5..6d379e0f 100644 --- a/resources/lang/de/admin.php +++ b/resources/lang/de/admin.php @@ -13,102 +13,117 @@ | */ - 'admin' => 'Admin', - 'app_setup' => 'App setup', - 'registrations' => 'Registrations', - 'users' => 'Users', - 'users_legend' => 'Manage users registered on your instance or create new ones.', - 'admin_settings' => 'Admin settings', - 'create_new_user' => 'Create a user', - 'new_user' => 'New user', - 'search_user_placeholder' => 'User name, email...', - 'quick_filters_colons' => 'Quick filters:', - 'user_created' => 'user successfully created', + 'admin' => 'Administrator', + 'app_setup' => 'App-Einstellungen', + 'registrations' => 'Registrierungen', + 'users' => 'Benutzer', + 'users_legend' => 'Benutzer verwalten, die bereits registriert sind, oder neue Benutzer erstellen.', + 'admin_settings' => 'Administrator-Einstellungen', + 'create_new_user' => 'Benutzer erstellen', + 'new_user' => 'Neuer Benutzer', + 'search_user_placeholder' => 'Benutzername, E-Mail...', + 'quick_filters_colons' => 'Schnellfilter:', + 'user_created' => 'Benutzer erfolgreich erstellt', 'confirm' => [ - 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', - 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', - 'delete_account' => 'Are you sure you want to delete this user?', - 'edit_own_account' => 'This is your own account. Are you sure?', - 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', - 'demote_own_account' => 'You will no longer be an administrator. Really sure?' + 'delete_user' => 'Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? Es gibt kein Zurück mehr.', + 'request_password_reset' => 'Sind Sie sicher, dass Sie das Passwort dieses Benutzers zurücksetzen möchten?', + 'purge_password_reset_request' => 'Sind Sie sicher, dass Sie die vorherige Anfrage widerrufen möchten?', + 'delete_account' => 'Sind Sie sicher, dass Sie diesen Benutzer löschen möchten?', + 'edit_own_account' => 'Dies ist Ihr eigener Account. Sind Sie sicher?', + 'change_admin_role' => 'Dies wird gravierende Auswirkungen auf die Berechtigungen dieses Benutzers haben. Sind Sie sicher?', + 'demote_own_account' => 'Sie werden kein Administrator mehr sein. Wirklich sicher?' ], - 'logs' => 'Logs', - 'administration_legend' => 'Following settings are global and apply to all users.', - 'user_management' => 'User management', - 'oauth_provider' => 'OAuth provider', - 'account_bound_to_x_via_oauth' => 'This account is bound to a :provider account via OAuth', - 'last_seen_on_date' => 'Last seen :date', - 'registered_on_date' => 'Registered :date', - 'updated_on_date' => 'Updated :date', - 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', - 'resend_email' => 'Resend email', - 'resend_email_title' => 'Resend a password reset email to the user', - 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', - 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', - 'reset_password_title' => 'Reset the user\'s password', - 'password_successfully_reset' => 'Password successfully reset', - 'user_has_x_active_pat' => ':count active token(s)', - 'user_has_x_security_devices' => ':count security device(s) (passkeys)', - 'revoke_all_pat_for_user' => 'Revoke all user\'s tokens', - 'revoke_all_devices_for_user' => 'Revoke all user\'s security devices', - 'danger_zone' => 'Danger Zone', - 'delete_this_user_legend' => 'The user account will be deleted as well as all its 2FA data.', - 'this_is_not_soft_delete' => 'This is not a soft delete, there is no going back.', - 'delete_this_user' => 'Delete this user', - 'user_role_updated' => 'User role updated', - 'pats_succesfully_revoked' => 'User\'s PATs successfully revoked', - 'security_devices_succesfully_revoked' => 'User\'s security devices successfully revoked', - 'variables' => 'Variables', - 'cache_cleared' => 'Cache cleared', - 'cache_optimized' => 'Cache optimized', - 'check_now' => 'Check now', - 'view_on_github' => 'View on Github', - 'x_is_available' => ':version is available', + 'logs' => 'Protokolle', + 'administration_legend' => 'Die folgenden Einstellungen sind global und gelten für alle Benutzer.', + 'user_management' => 'Benutzerverwaltung', + 'oauth_provider' => 'OAuth-Provider', + 'account_bound_to_x_via_oauth' => 'Dieses Konto ist mit einem :provider Konto über OAuth verbunden', + 'last_seen_on_date' => 'Zuletzt gesehen :date', + 'registered_on_date' => 'Registriert: :date', + 'updated_on_date' => 'Aktualisiert :date', + 'access' => 'Zugang', + 'password_requested_on_t' => 'Für diesen Benutzer existiert eine Anfrage zum Zurücksetzen des Passworts (Anfrage um :datetime), was bedeutet, dass der Benutzer sein Passwort noch nicht geändert hat, aber der Link, den er erhalten hat, weiterhin gültig ist. Dies könnte eine Anfrage des Benutzers selbst oder eines Administrators sein.', + 'password_request_expired' => 'Für diesen Benutzer existiert eine Anfrage zum Zurücksetzen des Passworts, die aber abgelaufen ist, was bedeutet, dass der Benutzer sein Passwort nicht rechtzeitig geändert hat. Dies kann eine Anfrage des Benutzers selbst oder eines Administrators sein.', + 'resend_email' => 'E-Mail erneut senden', + 'resend_email_title' => 'Eine E-Mail zum Zurücksetzen des Passworts erneut senden', + 'resend_email_help' => 'Verwenden Sie E-Mail erneut senden, um eine neue E-Mail zum Zurücksetzen des Passworts an den Benutzer zu senden, damit er ein neues Passwort festlegen kann. Dies wird sein aktuelles Passwort unverändert lassen und jede vorherige Anfrage wird widerrufen.', + 'reset_password' => 'Passwort zurücksetzen', + 'reset_password_help' => 'Verwenden Sie Passwort zurücksetzen um ein Passwort zurückzusetzen (dies wird ein temporäres Passwort setzen), bevor Sie eine E-Mail an den Benutzer senden, damit er ein neues Passwort setzen kann. Alle vorherigen Anfragen werden widerrufen.', + 'reset_password_title' => 'Passwort des Benutzers zurücksetzen', + 'password_successfully_reset' => 'Passwort erfolgreich zurückgesetzt', + 'user_has_x_active_pat' => ':count aktive Token', + 'user_has_x_security_devices' => ':count Sicherheitsgerät(e) (Passkeys)', + 'revoke_all_pat_for_user' => 'Alle Benutzer-Token widerrufen', + 'revoke_all_devices_for_user' => 'Alle Sicherheitsgeräte des Benutzers widerrufen', + 'danger_zone' => 'Gefahrenzone', + 'delete_this_user_legend' => 'Das Benutzerkonto sowie alle 2FA-Daten werden gelöscht.', + 'this_is_not_soft_delete' => 'Dies ist kein einfacher Löschvorgang, es gibt kein Zurück mehr.', + 'delete_this_user' => 'Benutzer löschen', + 'user_role_updated' => 'Benutzerrolle aktualisiert', + 'pats_succesfully_revoked' => 'Benutzer-PATs erfolgreich widerrufen', + 'security_devices_succesfully_revoked' => 'Sicherheitsgeräte des Benutzers wurden erfolgreich widerrufen', + 'variables' => 'Variablen', + 'cache_cleared' => 'Cache geleert', + 'cache_optimized' => 'Cache optimiert', + 'check_now' => 'Jetzt prüfen', + 'view_on_github' => 'Auf GitHub anzeigen', + 'x_is_available' => ':version ist verfügbar', + 'successful_login_on' => 'Erfolgreiche Anmeldung auf :login_at', + 'successful_logout_on' => 'Erfolgreiche Abmeldung auf :login_at', + 'failed_login_on' => 'Anmeldung fehlgeschlagen auf :login_at', + 'viewed_on' => 'Angesehen auf :login_at', + 'last_accesses' => 'Letzte Zugriffe', + 'see_full_log' => 'Gesamtes Zugriffsprotokoll anzeigen', + 'browser_on_platform' => ':browser auf :platform', + 'access_log_has_more_entries' => 'Das Zugriffsprotokoll enthält weitere Einträge.', + 'access_log_legend_for_user' => 'Vollständiges Zugriffsprotokoll für Benutzer :username', + 'show_last_month_log' => 'Einträge aus dem letzten Monat anzeigen', + 'show_three_months_log' => 'Einträge aus den letzten 3 Monaten anzeigen', + 'show_six_months_log' => 'Einträge aus den letzten 6 Monaten anzeigen', + 'show_one_year_log' => 'Einträge aus dem letzten Jahr anzeigen', + 'sort_by_date_asc' => 'Älteste zuerst anzeigen', + 'sort_by_date_desc' => 'Aktuellste zuerst anzeigen', 'forms' => [ 'use_encryption' => [ - 'label' => 'Protect sensitive data', - 'help' => 'Sensitive data, the 2FA secrets and emails, are stored encrypted in database. Be sure to backup the APP_KEY value of your .env file (or the whole file) as it serves as key encryption. There is no way to decypher encrypted data without this key.', + 'label' => 'Sensible Daten schützen', + 'help' => 'Vertrauliche Daten, die 2FA-Geheimnisse und E-Mails, werden verschlüsselt in der Datenbank gespeichert. Erstellen Sie ein Backup der APP_KEY-Variablen der .env Datei (oder der gesamten Datei), da sie als Schlüssel zur gesicherten Datenbank dient. Es gibt keine Möglichkeit, verschlüsselte Daten ohne diesen Schlüssel zu wiederherzustellen.', ], 'restrict_registration' => [ - 'label' => 'Restrict registration', - 'help' => 'Make registration only available to a limited range of email addresses. Both rules can be used simultaneously. This has no effect on registration via SSO.', + 'label' => 'Registrierung einschränken', + 'help' => 'Die Registrierung nur für eine begrenzte Anzahl von E-Mail-Adressen verfügbar machen. Beide Regeln können gleichzeitig verwendet werden. Dies hat keinen Einfluss auf die Registrierung über SSO.', ], 'restrict_list' => [ - 'label' => 'Filtering list', - 'help' => 'Emails in this list will be allowed to register. Separate addresses with a pipe ("|")', + 'label' => 'Filterliste', + 'help' => 'E-Mails in dieser Liste können sich registrieren. Adressen mit einem Pfeil trennen ("|")', ], 'restrict_rule' => [ - 'label' => 'Filtering rule', - 'help' => 'Emails matching this regular expression will be allowed to register', + 'label' => 'Filterregel', + 'help' => 'E-Mails mit diesem regulären Ausdruck dürfen sich registrieren', ], 'disable_registration' => [ - 'label' => 'Disable registration', - 'help' => 'Prevent new user registration. Unless overridden (see below), this affects SSO as well, so new users won\'t be able to sign in via SSO', + 'label' => 'Registrierung deaktivieren', + 'help' => 'Verhindert eine neue Benutzerregistrierung. Sofern nicht überschrieben (siehe unten) wirkt sich dies auch auf SSO aus, so dass neue Benutzer sich nicht via SSO anmelden können', ], 'enable_sso' => [ - 'label' => 'Enable Single Sign-On (SSO)', - 'help' => 'Allow visitors to authenticate using an external ID via the Single Sign-On scheme', + 'label' => 'Single Sign-On (SSO) aktivieren', + 'help' => 'Besuchern die Authentifizierung mit einer externen ID über das Single Sign-On Schema erlauben', ], 'keep_sso_registration_enabled' => [ - 'label' => 'Keep SSO registration enabled', - 'help' => 'Allow new users to sign in for the first time via SSO whereas registration is disabled', + 'label' => 'SSO-Registrierung aktiviert lassen', + 'help' => 'Neuen Benutzern erlauben, sich zum ersten Mal über SSO anzumelden, während die Registrierung deaktiviert ist', ], 'is_admin' => [ - 'label' => 'Is administrator', - 'help' => 'Give administrator rights to the user. Administrators have permissions to manage the whole app, i.e. settings and other users, but cannot generate password for a 2FA they don\'t own.' + 'label' => 'Ist Admininstrator', + 'help' => 'Geben Sie dem Benutzer Administratorrechte. Administratoren haben die Berechtigung, die gesamte App zu verwalten, d. h. Einstellungen und andere Benutzer, können aber kein Passwort für eine 2FA erstellen, die sie nicht besitzen.' ], 'test_email' => [ - 'label' => 'Email configuration test', - 'help' => 'Send a test email to control your instance\'s email configuration. It is important to have a working configuration, otherwise users will not be able to request a reset password.', - 'email_will_be_send_to_x' => 'The email will be send to :email', + 'label' => 'E-Mail-Konfigurationstest', + 'help' => 'Senden Sie eine Test-E-Mail, um die E-Mail-Konfiguration Ihrer Instanz zu kontrollieren. Es ist wichtig, eine funktionierende Konfiguration zu haben, sonst können Benutzer kein Zurücksetzen des Passworts anfordern.', + 'email_will_be_send_to_x' => 'Diese E-Mail wird an :email gesendet', ], 'cache_management' => [ - 'label' => 'Cache management', - 'help' => 'Sometimes cache needs to be cleared, for instance after a change to environment variables or an update. You can do it from here.', + 'label' => 'Cache-Verwaltung', + 'help' => 'Manchmal muss der Cache geleert werden, zum Beispiel nach einer Änderung an Umgebungsvariablen oder einer Aktualisierung. Sie können es von hier aus tun.', ] ], diff --git a/resources/lang/de/auth.php b/resources/lang/de/auth.php index 8e6f6ba9..4b97af40 100644 --- a/resources/lang/de/auth.php +++ b/resources/lang/de/auth.php @@ -14,25 +14,25 @@ */ // Laravel - 'failed' => 'Diese Kombination aus Zugangsdaten wurde nicht in unserer Datenbank gefunden.', + 'failed' => 'Diese Angaben stimmen nicht mit unseren Aufzeichnungen überein.', 'password' => 'Das angegebene Passwort ist falsch.', - 'throttle' => 'Zu viele Loginversuche. Versuchen Sie es bitte in :seconds Sekunden nochmal.', + 'throttle' => 'Zu viele Anmeldeversuche. Bitte versuchen Sie es in :seconds Sekunden erneut.', // 2FAuth 'sign_out' => 'Abmelden', 'sign_in' => 'Anmelden', 'sign_in_using' => 'Anmelden mit', - 'or_continue_with' => 'Du kannst auch fortfahren mit:', + 'or_continue_with' => 'Sie können auch fortfahren mit:', 'sign_in_using_security_device' => 'Mit einem Sicherheitsgerät anmelden', - 'login_and_password' => 'benutzername & passwort', + 'login_and_password' => 'Benutzername & Passwort', 'register' => 'Registrieren', 'welcome_to_2fauth' => 'Willkommen bei 2FAuth', 'autolock_triggered' => 'Automatische Sperre ausgelöst', - 'autolock_triggered_punchline' => 'Das Ereignis, das von der Auto-Lock-Funktion beobachtet wird, wurde gestartet. Sie wurden automatisch getrennt.', - 'already_authenticated' => 'Bereits angemeldet', + 'autolock_triggered_punchline' => 'Automatische Sperre ausgelöst, Sie wurden abgemeldet', + 'already_authenticated' => 'Bereits authentifiziert, bitte erst abmelden', 'authentication' => 'Authentifizierung', 'maybe_later' => 'Vielleicht später', - 'user_account_controlled_by_proxy' => 'Benutzerkonto, das von einem Authentifizierungsproxy zur Verfügung gestellt wurde.
Verwalte das Konto auf Proxy-Ebene.', + 'user_account_controlled_by_proxy' => 'Benutzerkonto, das von einem Authentifizierungsproxy zur Verfügung gestellt wurde.
Verwalten Sie das Konto auf Proxy-Ebene.', 'auth_handled_by_proxy' => 'Authentifizierung von einem Reverse-Proxy verwaltet, unten sind die Einstellungen deaktiviert.
Authentifizierung auf Proxy-Ebene verwalten.', 'confirm' => [ 'logout' => 'Sind Sie sicher, dass Sie sich abmelden möchten?', @@ -42,8 +42,8 @@ 'webauthn' => [ 'security_device' => 'ein Sicherheitsgerät', 'security_devices' => 'Sicherheitsgeräte', - 'security_devices_legend' => 'Authentifizierungsgeräte, mit denen Sie sich in 2FAuth anmelden können, wie z.B. Sicherheitsschlüssel (z.B. Yubikey) oder Smartphones mit biometrischen Fähigkeiten (z.B. Apple FaceId/TouchId)', - 'enhance_security_using_webauthn' => 'Sie können die Sicherheit Ihres 2FAuth Accounts verbessern, indem Sie die WebAuthn Authentifizierung aktivieren.

+ 'security_devices_legend' => 'Authentifizierungsgeräte, mit denen Sie sich in 2FAuth anmelden können, wie z.B. Sicherheitsschlüssel (z.B. Yubikey) oder Smartphones mit biometrischen Fähigkeiten (z.B. Apple FaceID/TouchID)', + 'enhance_security_using_webauthn' => 'Sie können die Sicherheit Ihres 2FAuth-Accounts verbessern, indem Sie die WebAuthn-Authentifizierung aktivieren.

WebAuthn erlaubt es Ihnen, sich schnell und sicher mit vertrauenswürdigen Geräten (wie Yubikeys oder Smartphones mit biometrischen Fähigkeiten) anzumelden.', 'use_security_device_to_sign_in' => 'Machen Sie sich bereit, sich mit (einem) Ihren Sicherheitsgeräten zu authentifizieren. Schließen Sie Ihren Schlüssel an, entfernen Sie die Gesichtsmaske oder Handschuhe, etc.', 'lost_your_device' => 'Haben Sie Ihr Gerät verloren?', @@ -53,32 +53,32 @@ 'send_recovery_link' => 'Wiederherstellungs-Link senden', 'account_recovery_email_sent' => 'E-Mail zur Kontowiederherstellung versendet!', 'disable_all_security_devices' => 'Alle Sicherheitsgeräte deaktivieren', - 'disable_all_security_devices_help' => 'Alle Ihre Sicherheitsgeräte werden widerrufen. Benutzen Sie diese Option, wenn Sie eine verloren haben oder die Sicherheit des Geräts kompromittiert wurde.', + 'disable_all_security_devices_help' => 'Alle Ihre Sicherheitsgeräte werden entzogen. Verwenden Sie diese Option, wenn Sie ein Gerät verloren haben oder seine Sicherheit beeinträchtigt wurde.', 'register_a_new_device' => 'Ein neues Gerät registrieren', 'register_a_device' => 'Ein Gerät registrieren', 'device_successfully_registered' => 'Gerät erfolgreich registriert', 'device_revoked' => 'Gerät erfolgreich widerrufen', - 'revoking_a_device_is_permanent' => 'Das Widerrufen eines Gerätes ist unwiderruflich', + 'revoking_a_device_is_permanent' => 'Das Widerrufen eines Gerätes ist dauerhaft', 'recover_account_instructions' => 'Um Ihr Konto wiederherzustellen, setzt 2FAuth einige Webauthn-Einstellungen zurück, damit Sie sich mit Ihrer E-Mail und Ihrem Passwort anmelden können.', 'invalid_recovery_token' => 'Ungültiger Wiederherstellungsschlüssel', - 'webauthn_login_disabled' => 'Webauthn Login deaktiviert', + 'webauthn_login_disabled' => 'Webauthn-Login deaktiviert', 'invalid_reset_token' => 'Der Schlüssel zum Zurücksetzen des Passwortes ist ungültig.', 'rename_device' => 'Gerät umbenennen', 'my_device' => 'Mein Gerät', 'unknown_device' => 'Unbekanntes Gerät', 'use_webauthn_only' => [ 'label' => 'Nur WebAuthn verwenden', - 'help' => 'WebAuthn als die einzige autorisierte Methode zulassen, um sich in Ihr 2FAuth Konto einzuloggen. Diese Option ist empfohlen und bietet eine verbesserte Sicherheit durch WebAuthn.

+ 'help' => 'WebAuthn als die einzige autorisierte Methode zulassen, um sich in Ihr 2FAuth-Konto einzuloggen. Diese Option ist empfohlen und bietet eine verbesserte Sicherheit durch WebAuthn.

Bei Verlust des WebAuthn-Geräts Sie können Ihr Konto wiederherstellen, indem Sie diese Option zurücksetzen und sich mit Ihrer E-Mail und Ihrem Passwort anmelden.

- Achtung! Das E-Mail & Passwort Anmeldeformular bleibt verfügbar, obwohl diese Option aktiviert ist. Eine Anmeldung hiermit führt jedoch immer zu der Meldung \'Authentifizierung fehlgeschlagen\'.' + Achtung! Das E-Mail & Passwort-Anmeldeformular bleibt verfügbar, obwohl diese Option aktiviert ist. Eine Anmeldung hiermit führt jedoch immer zu der Meldung \'Authentifizierung fehlgeschlagen\'.' ], - 'need_a_security_device_to_enable_options' => 'Richten Sie mindestens ein Gerät ein um die nachfolgenden Optionen zu aktiveren', - 'options' => 'Options', + 'need_a_security_device_to_enable_options' => 'Mindestens ein Gerät einrichten, um die nachfolgenden Optionen zu aktiveren', + 'options' => 'Einstellungen', ], 'forms' => [ 'name' => 'Name', 'login' => 'Anmeldung', - 'webauthn_login' => 'WebAuthn Anmeldung', + 'webauthn_login' => 'WebAuthn-Anmeldung', 'email' => 'E-Mail', 'password' => 'Passwort', 'reveal_password' => 'Passwort anzeigen', @@ -93,7 +93,7 @@ 'request_password_reset' => 'Zurücksetzen', 'reset_your_password' => 'Passwort zurücksetzen', 'reset_password' => 'Password zurücksetzen', - 'disabled_in_demo' => 'Funktion ist im Demo-Modus deaktiviert', + 'disabled_in_demo' => 'Funktion im Demo-Modus deaktiviert', 'new_password' => 'Neues Passwort', 'current_password' => [ 'label' => 'Aktuelles Passwort', @@ -101,25 +101,25 @@ ], 'change_password' => 'Passwort ändern', 'send_password_reset_link' => 'Link zum Zurücksetzen des Passworts senden', - 'password_successfully_reset' => 'Password successfully reset', - 'edit_account' => 'Account bearbeiten', + 'password_successfully_reset' => 'Passwort erfolgreich zurückgesetzt', + 'edit_account' => 'Konto bearbeiten', 'profile_saved' => 'Profil erfolgreich aktualisiert!', - 'welcome_to_demo_app_use_those_credentials' => 'Willkommen bei der 2FAuth Demo.

Sie können sich mit der E-Mail-Adresse demo@2fauth.app und dem Passwort demo anmelden', - 'welcome_to_testing_app_use_those_credentials' => 'Willkommen bei der 2FAuth Testinstanz.

Verwenden Sie die E-Mail-Adresse testing@2fauth.app und das Passwort password', + 'welcome_to_demo_app_use_those_credentials' => 'Willkommen bei der 2FAuth-Demo.

Sie können sich mit der E-Mail-Adresse demo@2fauth.app und dem Passwort demo anmelden', + 'welcome_to_testing_app_use_those_credentials' => 'Willkommen bei der 2FAuth-Testinstanz.

Verwenden Sie die E-Mail-Adresse testing@2fauth.app und das Passwort password', 'register_punchline' => 'Willkommen bei 2FAuth.
Sie müssen sich mit einem Konto anmelden, bitte registrieren Sie sich.', 'reset_punchline' => '2FAuth sendet Ihnen einen Link zum Zurücksetzen des Passworts an diese Adresse. Klicken Sie auf den Link in der erhaltenen E-Mail, um ein neues Passwort festzulegen.', 'name_this_device' => 'Dieses Gerät benennen', 'delete_account' => 'Konto löschen', 'delete_your_account' => 'Ihr Konto Löschen', - 'delete_your_account_and_reset_all_data' => 'Dies wird 2FAuth zurücksetzen. Ihr Benutzerkonto sowie alle 2FA-Daten werden gelöscht. Dies kann nicht rückgängig gemacht werden.', - 'reset_your_password_to_delete_your_account' => 'Wenn Sie immer SSO zum Anmelden verwendet haben, melde dich ab und setze das Passwort zurück, damit du dieses Formular ausfüllen kannst.', - 'deleting_2fauth_account_does_not_impact_provider' => 'Das Löschen Ihres 2FAuth Kontos hat keine Auswirkungen auf Ihr externes SSO Konto.', + 'delete_your_account_and_reset_all_data' => 'Ihr Benutzerkonto wird gelöscht, ebenso wie alle Ihre 2FA-Daten. Es gibt kein Zurück mehr.', + 'reset_your_password_to_delete_your_account' => 'Wenn Sie sich immer mit SSO angemeldet haben, melden Sie sich ab und verwenden Sie die Funktion zum Zurücksetzen des Passworts, um ein Passwort zu erhalten, damit Sie dieses Formular ausfüllen können.', + 'deleting_2fauth_account_does_not_impact_provider' => 'Das Löschen Ihres 2FAuth-Kontos hat keine Auswirkungen auf Ihr externes SSO-Konto.', 'user_account_successfully_deleted' => 'Benutzerkonto wurde erfolgreich gelöscht', 'has_lower_case' => 'Beinhaltet Kleinbuchstaben', 'has_upper_case' => 'Beinhaltet Großbuchstaben', 'has_special_char' => 'Beinhaltet Sonderzeichen', 'has_number' => 'Beinhaltet Zahlen', - 'is_long_enough' => 'Besteht aus mindestens 8 Zeichen.', + 'is_long_enough' => 'Besteht aus mindestens 8 Zeichen', 'mandatory_rules' => 'Erforderlich', 'optional_rules_you_should_follow' => 'Empfohlen (sehr)', 'caps_lock_is_on' => 'Die Feststelltaste ist aktiviert', diff --git a/resources/lang/de/commons.php b/resources/lang/de/commons.php index 9b0c8e7d..5e19743e 100644 --- a/resources/lang/de/commons.php +++ b/resources/lang/de/commons.php @@ -33,7 +33,7 @@ 'x_selected' => ':count ausgewählt', 'name' => 'Name', 'manage' => 'Verwalten', - 'done' => 'Fertig', + 'done' => 'Erledigt', 'new' => 'Neu', 'back' => 'Zurück', 'move' => 'Verschieben', @@ -45,23 +45,23 @@ 'sort_descending' => 'Sortierung absteigend', 'sort_ascending' => 'Sortierung aufsteigend', 'rename' => 'Umbenennen', - 'new_name' => 'Neu Name', + 'new_name' => 'Neuer Name', 'options' => 'Einstellungen', - 'reload' => 'Aktualisieren', + 'reload' => 'Neu laden', 'refresh' => 'Aktualisieren', 'data_refreshed_to_reflect_server_changes' => 'Daten wurden aktualisiert, um Änderungen auf dem Server wiederzugeben', - 'generate' => 'Generieren', - 'generating_otp' => 'Generiere OTP', + 'generate' => 'Erzeugen', + 'generating_otp' => 'OTP erzeugen', 'open_in_browser' => 'Im Browser öffnen', 'continue' => 'Weiter', - 'discard' => 'Löschen', + 'discard' => 'Ablehnen', 'about' => 'Über', 'usefull_links' => 'Nützliche Links', 'environment' => 'Umgebung', 'credits' => 'Mitwirkende', - '2fauth_teaser' => 'Eine Web-App um Ihre Zwei-Faktor-Authentifizierung (2FA) Konten zu verwalten und deren Sicherheitscodes zu generieren', + '2fauth_teaser' => 'Eine Web-App um Ihre Zwei-Faktor-Authentifizierung (2FA)-Konten zu verwalten und deren Sicherheitscodes zu erzeugen', 'made_with' => 'Erstellt mit', - 'ui_icons_by' => 'UI-Icons von', + 'ui_icons_by' => 'UI-Symbole von', 'logos_by' => 'Logos von', 'search' => 'Suche', 'resources' => 'Ressourcen', @@ -72,14 +72,23 @@ 'image_of_qrcode_to_scan' => 'Bild eines QR-Codes zum Scannen', 'file' => 'Datei', 'or' => 'ODER', - 'close_the_x_page' => '{pagetitle} Seite schließen', + 'close_the_x_page' => 'Seite :pagetitle schließen', 'submit' => 'Absenden', 'default' => 'Standard', 'back_to_home' => 'Zurück zur Startseite', 'nothing' => 'nichts', 'no_result' => 'Kein Ergebnis', 'information' => 'Information', - 'permissions' => 'Berechtigungen', - 'send' => 'Abschicken', + 'send' => 'Absenden', 'optimize' => 'Optimieren', + 'IP' => 'IP', + 'browser' => 'Browser', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'Noch kein Eintrag', + 'time' => 'Zeit', + 'ip_address' => 'IP-Adresse', + 'device' => 'Gerät', + 'one_month' => '1 Mon.', + 'x_month' => ':x Mon.', + 'one_year' => '1 J.', ]; diff --git a/resources/lang/de/errors.php b/resources/lang/de/errors.php index 173eaef1..4d358862 100644 --- a/resources/lang/de/errors.php +++ b/resources/lang/de/errors.php @@ -13,7 +13,7 @@ | */ - 'resource_not_found' => 'Resource nicht gefunden', + 'resource_not_found' => 'Ressource nicht gefunden', 'error_occured' => 'Ein Fehler ist aufgetreten:', 'refresh' => 'Aktualisieren', 'no_valid_otp' => 'Keine gültige OTP-Ressource in diesem QR-Code', @@ -31,7 +31,7 @@ 'indecipherable' => '*nicht lesbar*', 'cannot_decipher_secret' => 'Das Geheimnis kann nicht entschlüsselt werden. Dies wird hauptsächlich durch einen falsch gesetzten APP_KEY in der .env-Konfigurationsdatei von 2Fauth oder durch beschädigte Daten in der Datenbank verursacht.', 'https_required' => 'HTTPS-Kontext erforderlich', - 'browser_does_not_support_webauthn' => 'Ihr Gerät unterstützt nicht webauthn. Versuchen Sie es später mit einem moderneren Browser erneut', + 'browser_does_not_support_webauthn' => 'Ihr Gerät unterstützt nicht Webauthn. Versuchen Sie es später mit einem moderneren Browser erneut', 'aborted_by_user' => 'Vom Benutzer abgebrochen', 'security_device_already_registered' => 'Gerät ist bereits registriert', 'not_allowed_operation' => 'Vorgang nicht erlaubt', @@ -45,18 +45,19 @@ 'no_entry_was_of_type_public_key' => 'Kein Eintrag vom Typ "public-key"', 'unsupported_with_reverseproxy' => 'Nicht anwendbar, wenn ein Auth-Proxy benutzt wird', 'user_deletion_failed' => 'Löschen des Benutzerkontos fehlgeschlagen, es wurden keine Daten gelöscht', - 'auth_proxy_failed' => 'Proxy-Anmeldung scheitern', + 'auth_proxy_failed' => 'Proxy-Authentifizierung fehlgeschlagen', 'auth_proxy_failed_legend' => '2Fauth ist so konfiguriert, dass es hinter einem Authentifizierungs-Proxy läuft, aber Ihr Proxy gibt nicht den erwarteten Header zurück. Überprüfen Sie Ihre Konfiguration und versuchen Sie es erneut.', 'invalid_x_migration' => 'Ungültige oder nicht lesbare Daten bei :appname', - 'invalid_2fa_data' => 'Ungültige 2FA Daten', + 'invalid_2fa_data' => 'Ungültige 2FA-Daten', 'unsupported_migration' => 'Daten stimmen mit keinem der unterstützten Formate überein', - 'unsupported_otp_type' => 'Nicht unterstützter OTP -Typ', + 'unsupported_otp_type' => 'Nicht unterstützter OTP-Typ', 'encrypted_migration' => 'Nicht lesbar, die Daten scheinen verschlüsselt zu sein', - 'no_logo_found_for_x' => 'Kein Logo verfügbar für {service}', + 'no_logo_found_for_x' => 'Kein Logo verfügbar für :service', 'file_upload_failed' => 'Hochladen der Datei fehlgeschlagen', 'unauthorized' => 'Nicht berechtigt', 'unauthorized_legend' => 'Sie haben keine Berechtigung, diese Ressource zu sehen oder diese Aktion auszuführen', 'cannot_delete_the_only_admin' => 'Löschen des einzigen Admin-Kontos nicht möglichen', + 'cannot_demote_the_only_admin' => 'Der einzige Admin-Account kann nicht degradiert werden', 'error_during_data_fetching' => '💀 Während des Datenabrufs ist etwas schief gelaufen', 'check_failed_try_later' => 'Überprüfung fehlgeschlagen, bitte später erneut versuchen', 'sso_disabled' => 'SSO ist deaktiviert', @@ -66,5 +67,9 @@ 'sso_email_already_used' => 'Ein Benutzerkonto mit der gleichen E-Mail-Adresse existiert bereits, aber es stimmt nicht mit Ihrer externen Konto-ID überein. Verwenden Sie kein SSO, wenn Sie bereits bei 2FAuth mit dieser E-Mail registriert sind.', 'account_managed_by_external_provider' => 'Konto von einem externen Anbieter verwaltet', 'data_cannot_be_refreshed_from_server' => 'Daten können nicht vom Server aktualisiert werden', - 'no_pwd_reset_for_this_user_type' => 'Das Zurücksetzen des Passworts ist für diese Benutzer nicht verfügbar', + 'no_pwd_reset_for_this_user_type' => 'Passwort zurücksetzen für diesen Benutzer nicht verfügbar', + 'cannot_detect_qrcode_in_image' => 'Es kann kein QR-Code im Bild erkannt werden. Bitte das Bild zuschneiden', + 'cannot_decode_detected_qrcode' => 'Kann den QR-Code nicht dekodieren. Bitte das Bild zuschneiden oder schärfen', + 'qrcode_has_invalid_checksum' => 'QR-Code hat eine ungültige Prüfsumme', + 'no_readable_qrcode' => 'Kein lesbarer QR-Code', ]; \ No newline at end of file diff --git a/resources/lang/de/groups.php b/resources/lang/de/groups.php index 629fe3af..aff2b965 100644 --- a/resources/lang/de/groups.php +++ b/resources/lang/de/groups.php @@ -21,7 +21,7 @@ 'x_accounts' => ':count Konten', 'manage_groups' => 'Gruppen verwalten', 'active_group' => 'Aktive Gruppe', - 'manage_groups_legend' => 'Sie können Gruppen erstellen, um Ihre Konten so zu organisieren wie Sie wollen. Alle Konten bleiben in der Pseudo-Gruppe mit dem Namen "Alle" sichtbar, unabhängig davon, zu welcher Gruppe sie gehören.', + 'manage_groups_legend' => 'Sie können Gruppen erstellen, um Ihre Konten so zu organisieren wie Sie möchten. Alle Konten bleiben in der Pseudo-Gruppe mit dem Namen "Alle" sichtbar, unabhängig davon, zu welcher Gruppe sie gehören.', 'deleting_group_does_not_delete_accounts' => 'Konten bleiben beim Löschen der Gruppe erhalten', 'move_selected_to' => 'Ausgewählte verschieben', 'move_selected_to_group' => 'Auswahl in eine Gruppe verschieben', @@ -36,6 +36,6 @@ 'rename_group' => 'Gruppe umbenennen', ], 'confirm' => [ - 'delete' => 'Sind Sie sicher, dass Sie diese Gruppe löschen möchten?', + 'delete' => 'Möchten Sie diese Gruppe wirklich löschen?', ], ]; \ No newline at end of file diff --git a/resources/lang/de/notifications.php b/resources/lang/de/notifications.php index 9e7f8380..076ce5f8 100644 --- a/resources/lang/de/notifications.php +++ b/resources/lang/de/notifications.php @@ -13,11 +13,24 @@ | */ - 'hello' => 'Hello', + 'hello' => 'Hallo', + 'hello_user' => 'Hallo :username,', + 'regards' => 'Mit freundlichen Grüßen', 'test_email_settings' => [ - 'subject' => '2FAuth test email', - 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', - 'success' => 'Good news, it works :)' + 'subject' => '2FAuth-Test-E-Mail', + 'reason' => 'Sie erhalten diese E-Mail, weil Sie eine Test-E-Mail angefordert haben, um die E-Mail-Einstellungen Ihrer 2FAuth Instanz zu überprüfen.', + 'success' => 'Gute Nachricht, es funktioniert :)' + ], + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'Ein neues Gerät hat sich gerade mit Ihrem 2FAuth-Konto verbunden.', + 'connection_details' => 'Hier sind die Details dieser Verbindung', + 'recommandations' => 'Wenn dies auf Sie zutrifft, können Sie diese Meldung ignorieren. Wenn Sie eine verdächtige Aktivität in Ihrem Konto vermuten, ändern Sie bitte Ihr Passwort.' + ], + 'failed_login' => [ + 'subject' => 'Anmeldung bei 2FAuth fehlgeschlagen', + 'resume' => 'Es gab einen fehlgeschlagenen Anmeldeversuch auf Ihr 2FAuth Konto.', + 'connection_details' => 'Hier sind die Details zu diesem Verbindungsversuch', + 'recommandations' => 'Wenn Sie dies waren, können Sie diese Warnung ignorieren. Falls weitere Versuche fehlschlagen, sollten Sie den 2FAuth-Administrator kontaktieren, um die Sicherheitseinstellungen zu überprüfen und Maßnahmen gegen diesen Angreifer zu ergreifen.' ], - ]; \ No newline at end of file diff --git a/resources/lang/de/passwords.php b/resources/lang/de/passwords.php index cee869ed..a6c81072 100644 --- a/resources/lang/de/passwords.php +++ b/resources/lang/de/passwords.php @@ -18,7 +18,7 @@ 'sent' => 'Passworterinnerung wurde gesendet!', 'throttled' => 'Bitte warten Sie, bevor Sie es erneut versuchen.', 'token' => 'Der Passwort-Wiederherstellungs-Schlüssel ist ungültig oder abgelaufen.', - 'user' => "Es konnte leider kein Nutzer mit dieser E-Mail-Adresse gefunden werden.", + 'user' => "Es konnte leider kein Benutzer mit dieser E-Mail-Adresse gefunden werden.", // 2FAuth 'password' => 'Passwörter müssen mindestens acht Zeichen lang sein und mit der Bestätigung übereinstimmen.', diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php index 518f7580..96d48e21 100644 --- a/resources/lang/de/settings.php +++ b/resources/lang/de/settings.php @@ -14,8 +14,8 @@ */ 'settings' => 'Einstellungen', - 'preferences' => 'Vorlieben', - 'account' => 'Account', + 'preferences' => 'Voreinstellungen', + 'account' => 'Benutzerkonto', 'oauth' => 'OAuth', 'webauthn' => 'WebAuthn', 'tokens' => 'Token', @@ -25,16 +25,17 @@ 'confirm' => [ ], - 'you_are_administrator' => 'Du bist ein Administrator', - 'account_linked_to_sso_x_provider' => 'Sie haben sich mit Ihrem :provider-Konto via SSO angemeldet. Ihre Daten können hier nicht geändert werden, sondern auf :provider.', + 'you_are_administrator' => 'Sie sind ein Administrator', + 'account_linked_to_sso_x_provider' => 'Sie haben sich mit Ihrem :provider -Konto via SSO angemeldet. Ihre Daten können hier nicht geändert werden, sondern auf :provider.', 'general' => 'Allgemein', 'security' => 'Sicherheit', + 'notifications' => 'Notifications', 'profile' => 'Profil', 'change_password' => 'Passwort ändern', - 'personal_access_tokens' => 'Persönliche Zugriffsstokens', + 'personal_access_tokens' => 'Persönliche Zugriffsstoken', 'token_legend' => 'Persönliche Zugriffstoken ermöglichen es jeder Anwendung, sich bei der 2Fauth-API zu authentifizieren. Sie sollten das Zugriffs-Token als Bearer-Token im Autorisierungs-Header der Anfragen von Verbraucher-Apps angeben.', - 'generate_new_token' => 'Neuen Token generieren', - 'revoke' => 'Zurückziehen', + 'generate_new_token' => 'Neuen Token erzeugen', + 'revoke' => 'Widerrufen', 'token_revoked' => 'Token erfolgreich widerrufen', 'revoking_a_token_is_permanent' => 'Widerruf eines Token ist dauerhaft', 'confirm' => [ @@ -45,43 +46,47 @@ 'forms' => [ 'edit_settings' => 'Einstellungen bearbeiten', 'setting_saved' => 'Einstellungen gespeichert', - 'new_token' => 'Neues Token', + 'new_token' => 'Neuer Token', 'some_translation_are_missing' => 'Einige Übersetzungen fehlen bei Verwendung der bevorzugten Sprache des Browsers?', - 'help_translate_2fauth' => 'Hilf 2FAuth zu übersetzen', + 'help_translate_2fauth' => 'Helfen Sie 2FAuth zu übersetzen', 'language' => [ 'label' => 'Sprache', - 'help' => 'Sprache, die zur Übersetzung der 2FAuth-Benutzeroberfläche verwendet wird. Benannte Sprachen sind vollständig, stellen Sie die Sprache Ihrer Wahl ein, um Ihre Browserpräferenz zu überschreiben.' + 'help' => 'Sprache, die zur Übersetzung der 2FAuth-Benutzeroberfläche verwendet wird. Benannte Sprachen sind vollständig. Stellen Sie die Sprache Ihrer Wahl ein, um Ihre Browserpräferenz zu überschreiben.' + ], + 'timezone' => [ + 'label' => 'Zeitzone', + 'help' => 'Die Zeitzone wird auf alle in der Anwendung angezeigten Daten und Zeiten angewendet' ], 'show_otp_as_dot' => [ - 'label' => 'Generierte Einmalpasswörter als Punkte anzeigen', - 'help' => 'Passwortzeichen werden als *** angezeigt, um die Vertraulichkeit zu gewährleisten. Dies beeinflusst nicht die Kopieren/Einfügen Funktion' + 'label' => 'Erzeugte OTP als Punkt anzeigen', + 'help' => 'Passwortzeichen werden als *** angezeigt, um die Vertraulichkeit zu gewährleisten. Dies beeinflusst nicht die Kopieren/Einfügen-Funktion' ], 'reveal_dotted_otp' => [ - 'label' => 'Decke verdecktes OTP auf', - 'help' => 'Lass die Fähigkeit Punkt-verdeckte Passwörter temporär freigeben' + 'label' => 'Verdecktes OTP aufdecken', + 'help' => 'Die Fähigkeit Punkt-verdeckte Passwörter temporär freigeben' ], 'close_otp_on_copy' => [ - 'label' => 'Schließe OTP nach dem Kopieren', - 'help' => 'Bei einem Klick auf das generierte Passwort wird es automatisch auf dem Bildschirm ausgeblendet' + 'label' => 'OTP nach dem Kopieren schließen', + 'help' => 'Bei einem Klick auf das erzeugte Passwort wird es automatisch auf dem Bildschirm ausgeblendet' ], 'clear_search_on_copy' => [ 'label' => 'Suche beim Kopieren löschen', - 'help' => 'Leeren das Suchfeld, nachdem ein Code in die Zwischenablage kopiert wurde' + 'help' => 'Das Suchfeld leeren, nachdem ein Code in die Zwischenablage kopiert wurde' ], 'copy_otp_on_display' => [ - 'label' => 'Das angezeigte, einmaliges Passwort (OTP) kopieren', - 'help' => 'Kopiert automatisch ein generiertes Passwort bei Anzeige auf dem Bildschirm. Aufgrund der Einschränkungen des Browsers wird nur das erste TOTP Passwort kopiert, nicht das rotierende Passwort' + 'label' => 'OTP auf Anzeige kopieren', + 'help' => 'Kopiert automatisch ein generiertes Passwort bei Anzeige auf dem Bildschirm. Aufgrund der Einschränkungen des Browsers, wird nur das erste TOTP Passwort kopiert, nicht das rotierende Passwort' ], 'use_basic_qrcode_reader' => [ - 'label' => 'Benutze den einfachen QR-Codeleser', - 'help' => 'Wenn bei der Erfassung von QR-Codes Probleme auftreten können Sie mit dieser Option zu einem einfacheren, aber zuverlässigeren QR-Codeleser wechseln' + 'label' => 'Einfachen QR-Codeleser benutzen', + 'help' => 'Wenn bei der Erfassung von QR-Codes Probleme auftreten, können Sie mit dieser Option zu einem einfacheren, aber zuverlässigeren QR-Codeleser wechseln' ], 'display_mode' => [ 'label' => 'Anzeigemodus', - 'help' => 'Wählen Sie, ob Konten als Liste oder als Raster angezeigt werden sollen' + 'help' => 'Wählen Sie aus, ob Konten als Liste oder als Raster angezeigt werden sollen' ], 'password_format' => [ - 'label' => 'Passwortformatierung', + 'label' => 'Passwort-Formatierung', 'help' => 'Anzeige der Passwörter ändern durch Gruppierung der Ziffern. Verbessert die Lesbarkeit und Passwörter lassen sich einfacher merken' ], 'pair' => 'nach Paar', @@ -93,8 +98,8 @@ 'grid' => 'Raster', 'list' => 'Liste', 'theme' => [ - 'label' => 'Erscheinungsbild', - 'help' => 'Erzwinge eine bestimmte Darstellung oder wende die in deinen System/Browser-Einstellungen definierte Darstellung an' + 'label' => 'Design', + 'help' => 'Eine bestimmte Darstellung erzwingen oder die in Ihren System-/Browsereinstellungen definierte Darstellung anwenden' ], 'light' => 'Hell', 'dark' => 'Dunkel', @@ -104,12 +109,12 @@ 'help' => 'Kontosymbole in der Hauptansicht anzeigen' ], 'get_official_icons' => [ - 'label' => 'Offizielle Icons erhalten', - 'help' => '(Versuch) Das offizielle Symbol des 2FA-Ausstellers beim Hinzufügen eines Kontos zu erhalten' + 'label' => 'Offizielle Symbole abrufen', + 'help' => '(Versuch) Das offizielle Symbol des 2FA-Ausstellers beim Hinzufügen eines Kontos erhalten' ], 'auto_lock' => [ 'label' => 'Automatische Sperrung', - 'help' => 'Meldet den Benutzer bei Inaktivität automatisch ab. Hat keine Auswirkung, wenn die Authentifizierung über einen Proxy erfolgt und keine benutzerdefinierte Logout-URL angegeben ist.' + 'help' => 'Den Benutzer bei Inaktivität automatisch abmelden. Hat keine Auswirkung, wenn die Authentifizierung über einen Proxy erfolgt und keine benutzerdefinierte Logout-URL angegeben ist' ], 'default_group' => [ 'label' => 'Standardgruppe', @@ -129,20 +134,28 @@ ], 'remember_active_group' => [ 'label' => 'Gruppenfilter merken', - 'help' => 'Speichert den letzten Gruppenfilter und stellt ihn bei Ihrem nächsten Besuch wieder her', + 'help' => 'Den letzten Gruppenfilter speichern und ihn beim nächsten Besuch wiederherstellen', ], 'otp_generation' => [ 'label' => 'Passwort zeigen', - 'help' => 'Legelt fest, wie und wann OTPs angezeigt werden.
', + 'help' => 'Festlegen, wie und wann OTPs angezeigt werden.
', + ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' ], 'otp_generation_on_request' => 'Nach einem Klick/Tippen', 'otp_generation_on_request_legend' => 'Einzeln, in eigener Ansicht', - 'otp_generation_on_request_title' => 'Konto anklicken um ein Passwort in einer eigenen Ansicht zu erhalten', + 'otp_generation_on_request_title' => 'Konto anklicken, um ein Passwort in einer eigenen Ansicht zu erhalten', 'otp_generation_on_home' => 'Ständig', 'otp_generation_on_home_legend' => 'Alle auf dem Startbildschirm anzeigen', 'otp_generation_on_home_title' => 'Alle Passwörter auf dem Startbildschirm anzeigen, ohne etwas tun zu müssen', 'never' => 'Niemals', - 'on_otp_copy' => 'Beim Kopieren des Tokens', + 'on_otp_copy' => 'Beim Kopieren des Token', '1_minutes' => 'Nach 1 Minute', '5_minutes' => 'Nach 5 Minuten', '10_minutes' => 'Nach 10 Minuten', diff --git a/resources/lang/de/titles.php b/resources/lang/de/titles.php index 1744517e..83ae90d7 100644 --- a/resources/lang/de/titles.php +++ b/resources/lang/de/titles.php @@ -13,7 +13,7 @@ 'capture' => 'QR blinken', 'accounts' => 'Konten', 'createAccount' => 'Konto erstellen', - 'importAccounts' => 'Importiere Konten', + 'importAccounts' => 'Konten importieren', 'editAccount' => 'Konto bearbeiten', 'showQRcode' => 'Konto als QR-Code', 'groups' => 'Gruppen', @@ -23,16 +23,16 @@ 'options' => 'Einstellungen', 'account' => 'Benutzerkonto', 'oauth' => [ - 'tokens' => 'OAuth Tokens', - 'generatePAT' => 'Neues persönliches Token', + 'tokens' => 'OAuth-Token', + 'generatePAT' => 'Neuer persönlicher Token', ], 'webauthn' => [ 'editCredential' => 'Gerät bearbeiten', - 'devices' => 'WebAuthn Geräte', + 'devices' => 'WebAuthn-Geräte', ], ], - 'login' => 'Login', - 'register' => 'Anmelden', + 'login' => 'Anmelden', + 'register' => 'Registrieren', 'autolock' => 'Automatische Sperrung', 'password' => [ 'request' => 'Passwort zurücksetzen', @@ -44,12 +44,15 @@ ], 'flooded' => 'Überschwemmung', 'genericError' => 'Fehler', - '404' => 'Artikel nicht gefunden', + '404' => 'Objekt nicht gefunden', 'about' => 'Über', 'admin' => [ - 'appSetup' => 'App setup', + 'appSetup' => 'App-Einrichtung', 'users' => 'Benutzerverwaltung', 'createUser' => 'Benutzer erstellen', 'manageUser' => 'Benutzer verwalten', + 'logs' => [ + 'access' => 'Zugriffsprotokoll' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/de/twofaccounts.php b/resources/lang/de/twofaccounts.php index eddd0c2e..f8edda2a 100644 --- a/resources/lang/de/twofaccounts.php +++ b/resources/lang/de/twofaccounts.php @@ -16,18 +16,18 @@ 'service' => 'Dienst', 'account' => 'Benutzerkonto', 'icon' => 'Symbol', - 'icon_for_account_x_at_service_y' => 'Symbol des {account} -Kontos bei {service}', + 'icon_for_account_x_at_service_y' => 'Symbol des :account -Kontos unter :service', 'icon_to_illustrate_the_account' => 'Symbol, das den Account darstellt', - 'remove_icon' => 'Icon entfernen', + 'remove_icon' => 'Symbol entfernen', 'no_account_here' => 'Noch keine 2FA vorhanden!', - 'add_first_account' => 'Wähle eine Methode und füge deinen ersten Account hinzu', + 'add_first_account' => 'Wählen Sie eine Methode und fügen Sie Ihren ersten Account hinzu', 'use_full_form' => 'Oder nutzen Sie das vollständige Formular', 'add_one' => 'Konto hinzufügen', 'show_qrcode' => 'QR-Code anzeigen', 'no_service' => '- kein Service -', 'account_created' => 'Konto erfolgreich erstellt', 'account_updated' => 'Konto erfolgreich aktualisiert', - 'accounts_deleted' => 'Konto(s) erfolgreich gelöscht', + 'accounts_deleted' => 'Konto(en) erfolgreich gelöscht', 'accounts_moved' => 'Konto(en) erfolgreich verschoben', 'export_selected_to_json' => 'Json-Export ausgewählter Konten herunterladen', 'reveal' => 'aufdecken', @@ -59,11 +59,11 @@ ], 'choose_image' => 'Hochladen', 'i_m_lucky' => 'Mein Glück versuchen', - 'i_m_lucky_legend' => 'Durch den Knopf "mein Glück versuchen" wird versucht, das offizielle Symbol des jeweiligen Dienstes zu erhalten. Geben Sie den tatsächlichen Namen des Dienstes ohne die Erweiterung ".xyz" ein und versuchen Sie, Tippfehler zu vermeiden (Beta-Funktion)', + 'i_m_lucky_legend' => 'Durch "Mein Glück versuchen" können Sie das offizielle Symbol des jeweiligen Dienstes erhalten. Geben Sie den tatsächlichen Namen des Dienstes ohne die Erweiterung ".xyz" ein und versuchen Sie, Tippfehler zu vermeiden (Beta-Funktion)', 'test' => 'Test', 'secret' => [ 'label' => 'Geheimnis', - 'help' => 'Der Schlüssel, der zur Generierung Ihrer Sicherheitscodes verwendet wird' + 'help' => 'Der Schlüssel, der zur Erzeugung Ihrer Sicherheitscodes verwendet wird' ], 'plain_text' => 'Klartext', 'otp_type' => [ @@ -72,7 +72,7 @@ ], 'digits' => [ 'label' => 'Ziffern', - 'help' => 'Die Anzahl der Ziffern der generierten Sicherheitscodes' + 'help' => 'Die Anzahl der Ziffern der erzeugten Sicherheitscodes' ], 'algorithm' => [ 'label' => 'Algorithmus', @@ -81,12 +81,12 @@ 'period' => [ 'label' => 'Gültigkeitsdauer', 'placeholder' => 'Standard ist 30', - 'help' => 'Die Gültigkeitsdauer der generierten Sicherheitscodes in Sekunden' + 'help' => 'Die Gültigkeitsdauer der erzeugten Sicherheitscodes in Sekunden' ], 'counter' => [ 'label' => 'Zähler', 'placeholder' => 'Standard ist 0', - 'help' => 'Der Zählerwert am Anfang', + 'help' => 'Der erste Zählerwert', 'help_lock' => 'Es ist riskant, den Zähler zu ändern, da Sie das Konto mit dem Verifizierungsserver des Dienstes desynchronisieren können. Verwenden Sie das Schlosssymbol, um Änderungen zu ermöglichen, aber nur, wenn Sie wissen, was Sie tun' ], 'image' => [ @@ -130,41 +130,41 @@ 'confirm' => [ 'delete' => 'Sind Sie sicher, dass Sie dieses Konto löschen möchten?', 'cancel' => 'Das Konto wird gelöscht. Sind Sie sicher?', - 'discard' => 'Sind Sie sicher, dass Sie dieses Konto auflösen wollen?', - 'discard_all' => 'Sind Sie sicher, dass Sie alle Konten verwerfen wollen?', - 'discard_duplicates' => 'Möchten Sie wirklich alle Duplikate wegwerfen?', + 'discard' => 'Sind Sie sicher, dass Sie dieses Konto verwerfen möchten?', + 'discard_all' => 'Sind Sie sicher, dass Sie alle Konten verwerfen möchten?', + 'discard_duplicates' => 'Möchten Sie wirklich alle Duplikate verwerfen?', ], 'import' => [ 'import' => 'Import', 'to_import' => 'Import', - 'import_legend' => '2FAuth kann Daten aus verschiedenen 2FA-Apps importieren.
Benutze die Exportfunktion dieser Apps, um eine Migrationsquelle zu erhalten (QR-Code oder eine Datei) und lade sie mit einer bevorzugten Methode unterhalb.', - 'import_legend_afterpart' => 'Benutzen Sie die Export-Funktion dieser Apps, um eine Migrations-Ressource wie einen QR-Code oder eine JSON-Datei zu erhalten und lade sie hier.', + 'import_legend' => '2FAuth kann Daten aus verschiedenen 2FA-Apps importieren.', + 'import_legend_afterpart' => 'Benutzen Sie die Export-Funktion dieser Apps, um eine Migrations-Ressource wie einen QR-Code oder eine JSON-Datei zu erhalten und lade Sie sie hier.', 'upload' => 'Hochladen', 'scan' => 'Scannen', 'supported_formats_for_qrcode_upload' => 'Akzeptiert: jpg, jpeg, png, bmp, gif, svg oder webp', 'supported_formats_for_file_upload' => 'Akzeptiert: Klartext, Json, 2fas', 'expected_format_for_direct_input' => 'Erwartet: Eine Liste der otpauth URI, eins pro Zeile', 'supported_migration_formats' => 'Unterstütze Migrationsformate', - 'qr_code' => 'QR Code', + 'qr_code' => 'QR-Code', 'text_file' => 'Textdatei', 'direct_input' => 'Direkte Eingabe', 'plain_text' => 'Klartext', 'parsing_data' => 'Daten werden verarbeitet...', 'issuer' => 'Aussteller', 'imported' => 'Importiert', - 'failure' => 'Fehler', - 'x_valid_accounts_found' => '{count} gültige Konten gefunden', + 'failure' => 'Fehlschlag', + 'x_valid_accounts_found' => ':count gültige Konten gefunden', 'submitted_data_parsed_now_accounts_are_awaiting_import' => 'Die folgenden 2FA-Konten wurden in der Migrations-Ressource gefunden. Bisher wurden noch keine von ihnen zu 2FAuth hinzugefügt.', 'use_buttons_to_save_or_discard' => 'Verwenden Sie die verfügbaren Schaltflächen, um sie dauerhaft in Ihrer 2FA-Sammlung zu speichern oder zu verwerfen.', 'import_all' => 'Alle importieren', - 'import_this_account' => 'Importiere dieses Konto', - 'discard_all' => 'Alles wegwerfen', - 'discard_duplicates' => 'Duplikate wegwerfen', - 'discard_this_account' => 'Dieses Konto wegwerfen', - 'generate_a_test_password' => 'Ein Testpasswort generieren', - 'possible_duplicate' => 'Ein Konto mit der gleichen Daten ist bereits vorhanden', - 'invalid_account' => '- ungültiger Account -', - 'invalid_service' => '- ungültiger Service -', + 'import_this_account' => 'Dieses Konto importieren', + 'discard_all' => 'Alles verwerfen', + 'discard_duplicates' => 'Duplikate verwerfen', + 'discard_this_account' => 'Dieses Konto verwerfen', + 'generate_a_test_password' => 'Ein Testpasswort erzeugen', + 'possible_duplicate' => 'Ein Konto mit den gleichen Daten ist bereits vorhanden', + 'invalid_account' => '- ungültiges Konto -', + 'invalid_service' => '- ungültiges Service -', 'do_not_set_password_or_encryption' => 'Aktivieren Sie NICHT den Passwortschutz oder die Verschlüsselung, wenn Sie Daten aus einer anderen 2FA-App exportieren, die Sie in 2FAuth importieren möchten.', ], diff --git a/resources/lang/de/validation.php b/resources/lang/de/validation.php index 4f744900..7b8a55e1 100644 --- a/resources/lang/de/validation.php +++ b/resources/lang/de/validation.php @@ -186,7 +186,7 @@ 'required' => 'Der URI muss ein Label haben.', ], 'ids' => [ - 'regex' => 'Die IDs müssen durch Kommata getrennt werden, ohne Komma am Ende zu haben.', + 'regex' => 'IDs müssen durch Komma getrennt werden, ohne am Ende Komma.', ] ], diff --git a/resources/lang/es/admin.php b/resources/lang/es/admin.php index 362a29e5..762175ec 100644 --- a/resources/lang/es/admin.php +++ b/resources/lang/es/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', + 'purge_password_reset_request' => 'Are you sure you want to revoke the previous request?', 'delete_account' => 'Are you sure you want to delete this user?', 'edit_own_account' => 'This is your own account. Are you sure?', 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', @@ -42,13 +42,13 @@ 'registered_on_date' => 'Registered :date', 'updated_on_date' => 'Updated :date', 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', + 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime), which means that the user has not yet changed their password but the link they received is still valid. This may be a request from the user themselves or from an administrator.', + 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning that the user has not changed their password in time. This may be a request from the user themselves or from an administrator.', 'resend_email' => 'Resend email', 'resend_email_title' => 'Resend a password reset email to the user', 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', + 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so they can set a new password. Any previous request will be revoked.', 'reset_password_title' => 'Reset the user\'s password', 'password_successfully_reset' => 'Password successfully reset', 'user_has_x_active_pat' => ':count active token(s)', @@ -68,6 +68,21 @@ 'check_now' => 'Check now', 'view_on_github' => 'View on Github', 'x_is_available' => ':version is available', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Last accesses', + 'see_full_log' => 'See full log', + 'browser_on_platform' => ':browser on :platform', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => 'Full access log for user :username', + 'show_last_month_log' => 'Show entries from the last month', + 'show_three_months_log' => 'Show entries from the last 3 months', + 'show_six_months_log' => 'Show entries from the last 6 months', + 'show_one_year_log' => 'Show entries from the last year', + 'sort_by_date_asc' => 'Show least recent first', + 'sort_by_date_desc' => 'Show most recent first', 'forms' => [ 'use_encryption' => [ 'label' => 'Protect sensitive data', diff --git a/resources/lang/es/auth.php b/resources/lang/es/auth.php index 3cc0966c..e896740f 100644 --- a/resources/lang/es/auth.php +++ b/resources/lang/es/auth.php @@ -22,7 +22,7 @@ 'sign_out' => 'Cerrar sesión', 'sign_in' => 'Iniciar sesión', 'sign_in_using' => 'Inicia sesión, usando', - 'or_continue_with' => 'También puede continuar con:', + 'or_continue_with' => 'You can also continue with:', 'sign_in_using_security_device' => 'Iniciar sesión usando un dispositivo de seguridad', 'login_and_password' => 'usuario y contraseña', 'register' => 'Registrarse', @@ -94,7 +94,7 @@ 'reset_your_password' => 'Reestablecer tu contraseña', 'reset_password' => 'Restablecer contraseña', 'disabled_in_demo' => 'Característica desactivada en el modo Demo', - 'new_password' => 'Nueva contraseña', + 'new_password' => 'New password', 'current_password' => [ 'label' => 'Contraseña actual', 'help' => 'Introduzca su contraseña actual para confirmar que es usted' diff --git a/resources/lang/es/commons.php b/resources/lang/es/commons.php index e93b0e86..b1935147 100644 --- a/resources/lang/es/commons.php +++ b/resources/lang/es/commons.php @@ -79,7 +79,16 @@ 'nothing' => 'nada', 'no_result' => 'No result', 'information' => 'Information', - 'permissions' => 'Permissions', 'send' => 'Send', 'optimize' => 'Optimize', + 'IP' => 'IP', + 'browser' => 'Browser', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'No entry yet', + 'time' => 'Time', + 'ip_address' => 'IP Address', + 'device' => 'Device', + 'one_month' => '1 mo.', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', ]; diff --git a/resources/lang/es/errors.php b/resources/lang/es/errors.php index 4dff6bce..20c356b8 100644 --- a/resources/lang/es/errors.php +++ b/resources/lang/es/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => 'No autorizado', 'unauthorized_legend' => 'No tiene permisos para ver este recurso o para realizar esta acción', 'cannot_delete_the_only_admin' => 'No se puede eliminar la única cuenta de administrador', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', 'error_during_data_fetching' => '💀 Algo salió mal durante la obtención de datos', 'check_failed_try_later' => 'Comprobación fallida, por favor inténtelo más tarde', 'sso_disabled' => 'SSO está desactivado', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => 'Cuenta administrada por un proveedor externo', 'data_cannot_be_refreshed_from_server' => 'Los datos no se pueden actualizar desde el servidor', 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', ]; \ No newline at end of file diff --git a/resources/lang/es/notifications.php b/resources/lang/es/notifications.php index 9e7f8380..cdeab118 100644 --- a/resources/lang/es/notifications.php +++ b/resources/lang/es/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => 'Hello', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', 'test_email_settings' => [ 'subject' => '2FAuth test email', 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', 'success' => 'Good news, it works :)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], ]; \ No newline at end of file diff --git a/resources/lang/es/settings.php b/resources/lang/es/settings.php index 9f1086f5..7b49a9a1 100644 --- a/resources/lang/es/settings.php +++ b/resources/lang/es/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'Ha iniciado sesión a través de SSO usando su cuenta :provider. Su información no se puede cambiar aquí, sino en :provider.', 'general' => 'General', 'security' => 'Seguridad', + 'notifications' => 'Notifications', 'profile' => 'Perfil', 'change_password' => 'Cambiar contraseña', 'personal_access_tokens' => 'Tokens de acceso personal', @@ -52,6 +53,10 @@ 'label' => 'Idioma', 'help' => 'Idioma utilizado para traducir la interfaz de usuario de 2FAuth. Los idiomas listados están completos, establezca el idioma de su elección para reemplazar las preferencias de su navegador.' ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], 'show_otp_as_dot' => [ 'label' => 'Mostrar contraseñas generadas de un solo uso como punto', 'help' => 'Reemplaza carácteres de contraseñas generados con *** para asegurar confidencialidad. No afecta la función copiar/pegar.' @@ -135,6 +140,14 @@ 'label' => 'Mostrar contraseña', 'help' => 'Establezca cómo y cuándo se muestran las OTP.
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'Después de un clic/toque', 'otp_generation_on_request_legend' => 'Solo, en su propia vista', 'otp_generation_on_request_title' => 'Haga clic en una cuenta para obtener una contraseña en una vista dedicada', diff --git a/resources/lang/es/titles.php b/resources/lang/es/titles.php index 9de6d52c..9d3c0170 100644 --- a/resources/lang/es/titles.php +++ b/resources/lang/es/titles.php @@ -51,5 +51,8 @@ 'users' => 'Users management', 'createUser' => 'Create user', 'manageUser' => 'Manage user', + 'logs' => [ + 'access' => 'Access log' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/fr/admin.php b/resources/lang/fr/admin.php index 2101c01f..f3d0fd22 100644 --- a/resources/lang/fr/admin.php +++ b/resources/lang/fr/admin.php @@ -68,13 +68,14 @@ 'check_now' => 'Vérifier maintenant', 'view_on_github' => 'Voir sur GitHub', 'x_is_available' => ':version est disponible', - 'successful_login_on' => 'Connexion réussie le :login_at', - 'successful_logout_on' => 'Déconnexion réussie le :login_at', - 'failed_login_on' => 'Connexion refusée le :login_at', + 'successful_login_on' => 'Connexion réussie le :login_at', + 'successful_logout_on' => 'Déconnexion réussie le :login_at', + 'failed_login_on' => 'Connexion refusée le :login_at', + 'viewed_on' => 'Vu le :login_at', 'last_accesses' => 'Derniers accès', 'see_full_log' => 'Voir le log complet', 'browser_on_platform' => ':browser sur :platform', - 'access_log_has_more_entries' => 'Le journal des accès contient probablement plus d\'entrées.', + 'access_log_has_more_entries' => 'Le journal d\'accès contient plus d\'entrées.', 'access_log_legend_for_user' => 'Journal des accès de l\'utilisateur :username', 'show_last_month_log' => 'Afficher les entrées sur un mois', 'show_three_months_log' => 'Afficher les entrées sur 3 mois', diff --git a/resources/lang/fr/commons.php b/resources/lang/fr/commons.php index 0afeb988..4cdc331a 100644 --- a/resources/lang/fr/commons.php +++ b/resources/lang/fr/commons.php @@ -88,4 +88,7 @@ 'time' => 'Heure', 'ip_address' => 'Adresse IP', 'device' => 'Appareil', + 'one_month' => '1 mo.', + 'x_month' => ':x mo.', + 'one_year' => '1 an', ]; diff --git a/resources/lang/fr/notifications.php b/resources/lang/fr/notifications.php index 2d6db4bf..c475aa5f 100644 --- a/resources/lang/fr/notifications.php +++ b/resources/lang/fr/notifications.php @@ -22,9 +22,15 @@ 'success' => 'Bonne nouvelle, ça fonctionne :)' ], 'new_device' => [ - 'subject' => 'Nouvelle connexion à 2FAuth', + 'subject' => 'Connexion à 2FAuth depuis un nouvel appareil', 'resume' => 'Un nouvel appareil vient de se connecter à votre compte 2FAuth.', 'connection_details' => 'Voici les détails de cette connexion', 'recommandations' => 'S\'il s\'agit de vous, vous pouvez ignorer cette alerte. Dans le cas contraire, et si vous soupçonnez une activité suspecte sur votre compte, changez votre mot de passe sans attendre.' ], + 'failed_login' => [ + 'subject' => 'Échec de connexion à 2FAuth', + 'resume' => 'Une tentative de connexion à votre compte 2FAuth a eu lieu mais a été rejetée.', + 'connection_details' => 'Voici les détails de cette tentative de connexion', + 'recommandations' => 'S\'il s\'agit de vous, vous pouvez ignorer cette alerte. Si d\'autres tentatives infructueuses se produisent, vous devriez contacter l\'administrateur de 2FAuth pour examiner les paramètres de sécurité et prendre des mesures contre cet attaquant.' + ], ]; \ No newline at end of file diff --git a/resources/lang/fr/settings.php b/resources/lang/fr/settings.php index 5d7d964f..35b032b3 100644 --- a/resources/lang/fr/settings.php +++ b/resources/lang/fr/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'Vous vous êtes connecté via SSO avec votre compte :provider. Vos informations ne peuvent être modifiées ici mais sur :provider.', 'general' => 'General', 'security' => 'Sécurité', + 'notifications' => 'Notifications', 'profile' => 'Profil', 'change_password' => 'Changer le mot de passe', 'personal_access_tokens' => 'Jetons d\'accès personnel', @@ -52,6 +53,10 @@ 'label' => 'Langue', 'help' => 'Langue utilisée pour traduire l\'interface utilisateur de 2FAuth. Les langues proposées sont complètes, vous pouvez les utiliser pour remplacer la langue de référence de votre navigateur.' ], + 'timezone' => [ + 'label' => 'Fuseau horaire', + 'help' => 'Fuseau horaire appliqué à toutes les dates et heures affichées dans l\'application' + ], 'show_otp_as_dot' => [ 'label' => 'Afficher les mots de passe générés sous forme de point', 'help' => 'Remplace les caractères des mots de passe générés par des ●●● pour garantir leur confidentialité. N\'affecte pas la fonction de copier/coller qui reste utilisable.' @@ -135,6 +140,14 @@ 'label' => 'Affichage des mots de passe', 'help' => 'Définit quand et comment sont affichés les OTPs.
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'Pour un nouvel appareil', + 'help' => 'Recevez un email quand un nouvel appareil se connecte à votre compte 2FAuth pour la première fois' + ], + 'notify_on_failed_login' => [ + 'label' => 'Après une connexion échouée', + 'help' => 'Recevez un e-mail chaque fois qu\'une tentative de connexion à votre compte 2FAuth échoue' + ], 'otp_generation_on_request' => 'Après un clic/tap', 'otp_generation_on_request_legend' => 'Seul, dans un écran dédié', 'otp_generation_on_request_title' => 'Cliquer sur un compte pour obtenir un mot de passe dans un écran dédié', diff --git a/resources/lang/hi/admin.php b/resources/lang/hi/admin.php index 2d689c72..9b237763 100644 --- a/resources/lang/hi/admin.php +++ b/resources/lang/hi/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => 'क्या आप वास्तव में इस उपयोगकर्ता को डिलीट करना चाहते हैं? फिर वापस नहीं जा पाएंगे।', 'request_password_reset' => 'क्या आप वास्तव में इस उपयोगकर्ता का पासवर्ड रिसेट करना चाहते हैं?', - 'purge_password_reset_request' => 'क्या आप वाकई इस अनुरोध को रद्द करना चाहते हैं?', + 'purge_password_reset_request' => 'क्या आप वाकई पिछले अनुरोध को रद्द करना चाहते हैं?', 'delete_account' => 'क्या आप वाकई इस उपयोगकर्ता को हटाना चाहते हैं?', 'edit_own_account' => 'यह आपका अपना अकाउंट है। क्या आप आश्वस्त हैं?', 'change_admin_role' => 'इससे इस उपयोगकर्ता की अनुमतियों पर गंभीर प्रभाव पड़ेगा। क्या आप आश्वस्त हैं?', @@ -43,7 +43,7 @@ 'updated_on_date' => 'अपडेट की तारीख :date', 'access' => 'पहुँच', 'password_requested_on_t' => 'इस उपयोगकर्ता के लिए एक पासवर्ड रीसेट अनुरोध मौजूद है (अनुरोध :datetime पर भेजा गया) जिसका अर्थ है कि उपयोगकर्ता ने अभी तक अपना पासवर्ड नहीं बदला है लेकिन उसे प्राप्त लिंक अभी भी मान्य है। यह स्वयं उपयोगकर्ता या किसी व्यवस्थापक का अनुरोध हो सकता है।', - 'password_request_expired' => 'इस उपयोगकर्ता के लिए एक पासवर्ड रीसेट अनुरोध मौजूद है पर अब मान्य नहीं है, जिसका अर्थ है कि उपयोगकर्ता ने अपना पासवर्ड नहीं बदला है। यह स्वयं उपयोगकर्ता या किसी व्यवस्थापक का अनुरोध हो सकता है।', + 'password_request_expired' => 'इस उपयोगकर्ता के लिए एक पासवर्ड रीसेट अनुरोध मौजूद है पर अब मान्य नहीं है, जिसका अर्थ है कि उपयोगकर्ता ने अपना पासवर्ड समय से नहीं बदला है। यह स्वयं उपयोगकर्ता या किसी व्यवस्थापक का अनुरोध हो सकता है।', 'resend_email' => 'ईमेल दुबारा भेजें', 'resend_email_title' => 'पासवर्ड रिसेट की ईमेल उपयोगकर्ता को दोबारा भेजें', 'resend_email_help' => 'उपयोगकर्ता को नया पासवर्ड रीसेट ईमेल भेजने के लिए ईमेल पुनः भेजें का उपयोग करें ताकि वह एक नया पासवर्ड सेट कर सके। इससे उसका वर्तमान पासवर्ड वैसे ही रहेगा और पिछला कोई भी अनुरोध निरस्त कर दिया जाएगा।', @@ -68,6 +68,21 @@ 'check_now' => 'अब जांचें', 'view_on_github' => 'गिटहब पर देखें', 'x_is_available' => ':version संस्करण उपलब्ध है!', + 'successful_login_on' => ':login_at पर सफल लॉगिन', + 'successful_logout_on' => ':login_at पर सफल लॉगआउट', + 'failed_login_on' => ':login_at पर असफल लॉगिन', + 'viewed_on' => ':login_at पर देखा गया', + 'last_accesses' => 'पिछला प्रवेश', + 'see_full_log' => 'पूरा लॉग देखें', + 'browser_on_platform' => ':platform पर :browser', + 'access_log_has_more_entries' => 'प्रवेश के लॉग में और अधिक एंट्री हैं', + 'access_log_legend_for_user' => ':username का पूरा प्रवेश लॉग', + 'show_last_month_log' => 'पिछले महीने की एंट्री दिखाएं', + 'show_three_months_log' => 'पिछले 3 महीने की एंट्री दिखाएं', + 'show_six_months_log' => 'पिछले 6 महीने की एंट्री दिखाएं', + 'show_one_year_log' => 'पिछले साल की एंट्री दिखाएं', + 'sort_by_date_asc' => 'सबसे कम नई पहले दिखाएं', + 'sort_by_date_desc' => 'सबसे नई पहले दिखाएं', 'forms' => [ 'use_encryption' => [ 'label' => 'संवेदनशील डेटा को सुरक्षित करें', diff --git a/resources/lang/hi/auth.php b/resources/lang/hi/auth.php index 60f888eb..1b920197 100644 --- a/resources/lang/hi/auth.php +++ b/resources/lang/hi/auth.php @@ -22,7 +22,7 @@ 'sign_out' => 'साइन आउट करें', 'sign_in' => 'साइन इन करें', 'sign_in_using' => 'साइन इन के लिए चाहिए', - 'or_continue_with' => 'आप ऐसे भी इसे जारी रख सकते हैं:', + 'or_continue_with' => 'आप ऐसे भी आगे जा सकते हैं:', 'sign_in_using_security_device' => 'सुरक्षा उपकरण का उपयोग करके साइन इन करें', 'login_and_password' => 'लॉग इन और पासवर्ड', 'register' => 'रजिस्टर', diff --git a/resources/lang/hi/commons.php b/resources/lang/hi/commons.php index 0d36341d..210825cb 100644 --- a/resources/lang/hi/commons.php +++ b/resources/lang/hi/commons.php @@ -79,7 +79,16 @@ 'nothing' => 'कुछ नहीं', 'no_result' => 'कोई परिणाम नहीं', 'information' => 'जानकारी', - 'permissions' => 'अनुमतियां', 'send' => 'भेजें', 'optimize' => 'ऑप्‍टिमाइज़ करें', + 'IP' => 'आई पी', + 'browser' => 'ब्राउजर', + 'operating_system_short' => 'ओ एस', + 'no_entry_yet' => 'अभी प्रवेश निषेध है', + 'time' => 'समय', + 'ip_address' => 'आई पी अड्रेस', + 'device' => 'उपकरण (डिवाइस)', + 'one_month' => '1 मास', + 'x_month' => ':x मास', + 'one_year' => '1 वर्ष', ]; diff --git a/resources/lang/hi/errors.php b/resources/lang/hi/errors.php index 25b3ac7d..5e12a13f 100644 --- a/resources/lang/hi/errors.php +++ b/resources/lang/hi/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => 'अनधिकृत', 'unauthorized_legend' => 'आपको इस संसाधन को देखने या यह क्रिया करने की अनुमति नहीं है', 'cannot_delete_the_only_admin' => 'एकमात्र व्यवस्थापक खाता हटाया नहीं जा सकता', + 'cannot_demote_the_only_admin' => 'केवल बचे ऐड्मिन अकाउंट को नीचा नहीं किया जा सकता', 'error_during_data_fetching' => '💀डेटा लाने में कुछ गलत हो गया', 'check_failed_try_later' => 'खोज विफल रही, कृपया बाद में पुनर्प्रयास करें!', 'sso_disabled' => 'SSO निष्क्रिय है', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => 'खाता किसी बाहरी प्रदाता द्वारा प्रबंधित किया गया है', 'data_cannot_be_refreshed_from_server' => 'सर्वर से डेटा रिफ्रेश नहीं किया जा सकता', 'no_pwd_reset_for_this_user_type' => 'इस ईमेल के लिए पासवर्ड रीसेट नहीं किया जा सकता है।', + 'cannot_detect_qrcode_in_image' => 'चित्र में QR Code पढ़ा नहीं जा रहा है, कृपया चित्र को क्रॉप करें', + 'cannot_decode_detected_qrcode' => 'QR Code डिकोड नहीं हो रहा है, कृपया चित्र को क्रॉप करें या ठीक करें', + 'qrcode_has_invalid_checksum' => 'QR Code का चेकसम अमान्य है', + 'no_readable_qrcode' => 'कोई QR Code पाठ्य नहीं है', ]; \ No newline at end of file diff --git a/resources/lang/hi/notifications.php b/resources/lang/hi/notifications.php index 6a30c9d1..a2acc92c 100644 --- a/resources/lang/hi/notifications.php +++ b/resources/lang/hi/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => 'नमस्कार', + 'hello_user' => 'हैलो :username,', + 'regards' => 'सम्मान सहित', 'test_email_settings' => [ 'subject' => '2FAuth की टेस्ट ईमेल', 'reason' => 'आपको यह ईमेल इसलिए प्राप्त हुआ है क्योंकि आपने अपने 2FAuth इंस्टेंस की ईमेल सेटिंग्स को मान्य करने के लिए एक परीक्षण ईमेल का अनुरोध किया था।', 'success' => 'बधाई हो! यह काम करता है :)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'एक नया उपकरण आपके 2 Fauth अकाउंट से अभी कनेक्ट हुआ है', + 'connection_details' => 'इस कनेक्शन का ब्योरा इस प्रकार है', + 'recommandations' => 'यदि यह आप थे तो इस अलर्ट को नजरंदाज कर दें। यदि अपने अकाउंट पर कोई संदिग्ध ऐक्टिविटी लगती है तो अपना पासवर्ड तुरंत बदलें।' + ], + 'failed_login' => [ + 'subject' => '2FAuth में नाकाम लॉगिन', + 'resume' => 'आपके 2FAuth अकाउंट में एक नाकाम लॉगिन की कोशिश की गई', + 'connection_details' => 'इस कनेक्शन की कोषसीसह का ब्योरा इस प्रकार है', + 'recommandations' => 'यदि यह आप थे तो इस अलर्ट को नजरंदाज कर दें। यदि और कोशिश नाकाम होती है तो सुरक्षा सेटिंग के बारे में अपने 2FAuth ऐड्मिन से संपर्क करें और इस आक्रमणकारी के विरुद्ध कार्यवाही करें।' + ], ]; \ No newline at end of file diff --git a/resources/lang/hi/settings.php b/resources/lang/hi/settings.php index 462cf004..11f62596 100644 --- a/resources/lang/hi/settings.php +++ b/resources/lang/hi/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'आपने अपने :provider खाते का उपयोग करके SSO के माध्यम से साइन-इन किया है। आपकी जानकारी यहां :provider के अलावा नहीं बदली जा सकती।', 'general' => 'सामान्य', 'security' => 'सुरक्षा', + 'notifications' => 'Notifications', 'profile' => 'प्रोफ़ाइल', 'change_password' => 'पासवर्ड बदलें', 'personal_access_tokens' => 'प्रवेश के व्यक्तिगत टोकन', @@ -52,6 +53,10 @@ 'label' => 'भाषा ', 'help' => '2FAuth उपयोगकर्ता इंटरफ़ेस का अनुवाद करने के लिए उपयोग की जाने वाली भाषा। नामित भाषाएँ पूर्ण हैं, अपनी ब्राउज़र प्राथमिकता को ओवरराइड करने के लिए अपनी पसंद में से एक भाषा को चुनें।' ], + 'timezone' => [ + 'label' => 'टाइम ज़ोन', + 'help' => 'एप में दिखाए गए सभी समय और तारीखों पर यह टाइम ज़ोन लागू होगा' + ], 'show_otp_as_dot' => [ 'label' => 'जनरेट किए गए OTP को डॉट के रूप में दिखाएं', 'help' => 'गोपनीयता सुनिश्चित करने के लिए जनरेट किए गए पासवर्ड वर्णों को *** से बदलें। कॉपी/पेस्ट सुविधा को प्रभावित न करें' @@ -135,6 +140,14 @@ 'label' => 'पासवर्ड दिखाएँ', 'help' => 'सेट करें कि OTP कैसे और कब प्रदर्शित हों।
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'क्लिक / टैप के बाद', 'otp_generation_on_request_legend' => 'अपने दृश्य में अकेला', 'otp_generation_on_request_title' => 'पासवर्ड को अलग दृश्य में प्राप्त करने के लिए किसी खाते पर क्लिक करें', diff --git a/resources/lang/hi/titles.php b/resources/lang/hi/titles.php index 68fe2471..22a17b69 100644 --- a/resources/lang/hi/titles.php +++ b/resources/lang/hi/titles.php @@ -51,5 +51,8 @@ 'users' => 'उपयोगकर्ता प्रबंधन', 'createUser' => 'उपयोगकर्ता बनाइये', 'manageUser' => 'उपयोगकर्ताओं को प्रतिबंधित करें', + 'logs' => [ + 'access' => 'लॉग को खोलें' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/id/admin.php b/resources/lang/id/admin.php index 362a29e5..762175ec 100644 --- a/resources/lang/id/admin.php +++ b/resources/lang/id/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', + 'purge_password_reset_request' => 'Are you sure you want to revoke the previous request?', 'delete_account' => 'Are you sure you want to delete this user?', 'edit_own_account' => 'This is your own account. Are you sure?', 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', @@ -42,13 +42,13 @@ 'registered_on_date' => 'Registered :date', 'updated_on_date' => 'Updated :date', 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', + 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime), which means that the user has not yet changed their password but the link they received is still valid. This may be a request from the user themselves or from an administrator.', + 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning that the user has not changed their password in time. This may be a request from the user themselves or from an administrator.', 'resend_email' => 'Resend email', 'resend_email_title' => 'Resend a password reset email to the user', 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', + 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so they can set a new password. Any previous request will be revoked.', 'reset_password_title' => 'Reset the user\'s password', 'password_successfully_reset' => 'Password successfully reset', 'user_has_x_active_pat' => ':count active token(s)', @@ -68,6 +68,21 @@ 'check_now' => 'Check now', 'view_on_github' => 'View on Github', 'x_is_available' => ':version is available', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Last accesses', + 'see_full_log' => 'See full log', + 'browser_on_platform' => ':browser on :platform', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => 'Full access log for user :username', + 'show_last_month_log' => 'Show entries from the last month', + 'show_three_months_log' => 'Show entries from the last 3 months', + 'show_six_months_log' => 'Show entries from the last 6 months', + 'show_one_year_log' => 'Show entries from the last year', + 'sort_by_date_asc' => 'Show least recent first', + 'sort_by_date_desc' => 'Show most recent first', 'forms' => [ 'use_encryption' => [ 'label' => 'Protect sensitive data', diff --git a/resources/lang/id/auth.php b/resources/lang/id/auth.php index ebbd716e..baa370da 100644 --- a/resources/lang/id/auth.php +++ b/resources/lang/id/auth.php @@ -22,7 +22,7 @@ 'sign_out' => 'Keluar', 'sign_in' => 'Masuk', 'sign_in_using' => 'Masuk dengan', - 'or_continue_with' => 'You an also continue with:', + 'or_continue_with' => 'You can also continue with:', 'sign_in_using_security_device' => 'Masuk menggunakan sebuah perangkat keamanan', 'login_and_password' => 'masuk & kata sandi', 'register' => 'Mendaftar', diff --git a/resources/lang/id/commons.php b/resources/lang/id/commons.php index 0e23a4fb..17c0c45e 100644 --- a/resources/lang/id/commons.php +++ b/resources/lang/id/commons.php @@ -79,7 +79,16 @@ 'nothing' => 'nothing', 'no_result' => 'No result', 'information' => 'Information', - 'permissions' => 'Permissions', 'send' => 'Send', 'optimize' => 'Optimize', + 'IP' => 'IP', + 'browser' => 'Browser', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'No entry yet', + 'time' => 'Time', + 'ip_address' => 'IP Address', + 'device' => 'Device', + 'one_month' => '1 mo.', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', ]; diff --git a/resources/lang/id/errors.php b/resources/lang/id/errors.php index 92525cbd..6cbe36db 100644 --- a/resources/lang/id/errors.php +++ b/resources/lang/id/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => 'Unauthorized', 'unauthorized_legend' => 'You do not have permissions to view this resource or to perform this action', 'cannot_delete_the_only_admin' => 'Cannot delete the only admin account', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', 'error_during_data_fetching' => '💀 Something went wrong during data fetching', 'check_failed_try_later' => 'Check failed, please retry later', 'sso_disabled' => 'SSO is disabled', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => 'Account managed by an external provider', 'data_cannot_be_refreshed_from_server' => 'Data cannot be refreshed from server', 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', ]; \ No newline at end of file diff --git a/resources/lang/id/notifications.php b/resources/lang/id/notifications.php index 9e7f8380..cdeab118 100644 --- a/resources/lang/id/notifications.php +++ b/resources/lang/id/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => 'Hello', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', 'test_email_settings' => [ 'subject' => '2FAuth test email', 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', 'success' => 'Good news, it works :)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], ]; \ No newline at end of file diff --git a/resources/lang/id/settings.php b/resources/lang/id/settings.php index eb70ec3c..8226d787 100644 --- a/resources/lang/id/settings.php +++ b/resources/lang/id/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'You signed-in via SSO using your :provider account. Your information cannot be changed here but on :provider.', 'general' => 'General', 'security' => 'Security', + 'notifications' => 'Notifications', 'profile' => 'Profile', 'change_password' => 'Change password', 'personal_access_tokens' => 'Personal access tokens', @@ -52,6 +53,10 @@ 'label' => 'Language', 'help' => 'Language used to translate the 2FAuth user interface. Named languages are complete, set the one of your choice to override your browser preference.' ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], 'show_otp_as_dot' => [ 'label' => 'Show generated OTP as dot', 'help' => 'Replace generated password caracters with *** to ensure confidentiality. Do not affect the copy/paste feature' @@ -135,6 +140,14 @@ 'label' => 'Show Password', 'help' => 'Set how and when OTPs are displayed.
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'After a click/tap', 'otp_generation_on_request_legend' => 'Alone, in its own view', 'otp_generation_on_request_title' => 'Click an account to get a password in a dedicated view', diff --git a/resources/lang/id/titles.php b/resources/lang/id/titles.php index 42e5e60c..bf1c0311 100644 --- a/resources/lang/id/titles.php +++ b/resources/lang/id/titles.php @@ -51,5 +51,8 @@ 'users' => 'Users management', 'createUser' => 'Create user', 'manageUser' => 'Manage user', + 'logs' => [ + 'access' => 'Access log' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/it/admin.php b/resources/lang/it/admin.php index 362a29e5..762175ec 100644 --- a/resources/lang/it/admin.php +++ b/resources/lang/it/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', + 'purge_password_reset_request' => 'Are you sure you want to revoke the previous request?', 'delete_account' => 'Are you sure you want to delete this user?', 'edit_own_account' => 'This is your own account. Are you sure?', 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', @@ -42,13 +42,13 @@ 'registered_on_date' => 'Registered :date', 'updated_on_date' => 'Updated :date', 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', + 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime), which means that the user has not yet changed their password but the link they received is still valid. This may be a request from the user themselves or from an administrator.', + 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning that the user has not changed their password in time. This may be a request from the user themselves or from an administrator.', 'resend_email' => 'Resend email', 'resend_email_title' => 'Resend a password reset email to the user', 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', + 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so they can set a new password. Any previous request will be revoked.', 'reset_password_title' => 'Reset the user\'s password', 'password_successfully_reset' => 'Password successfully reset', 'user_has_x_active_pat' => ':count active token(s)', @@ -68,6 +68,21 @@ 'check_now' => 'Check now', 'view_on_github' => 'View on Github', 'x_is_available' => ':version is available', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Last accesses', + 'see_full_log' => 'See full log', + 'browser_on_platform' => ':browser on :platform', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => 'Full access log for user :username', + 'show_last_month_log' => 'Show entries from the last month', + 'show_three_months_log' => 'Show entries from the last 3 months', + 'show_six_months_log' => 'Show entries from the last 6 months', + 'show_one_year_log' => 'Show entries from the last year', + 'sort_by_date_asc' => 'Show least recent first', + 'sort_by_date_desc' => 'Show most recent first', 'forms' => [ 'use_encryption' => [ 'label' => 'Protect sensitive data', diff --git a/resources/lang/it/auth.php b/resources/lang/it/auth.php index 8a9aeef0..631eb6de 100644 --- a/resources/lang/it/auth.php +++ b/resources/lang/it/auth.php @@ -22,7 +22,7 @@ 'sign_out' => 'Disconnettiti', 'sign_in' => 'Accedi', 'sign_in_using' => 'Accedi con', - 'or_continue_with' => 'Si continua anche con:', + 'or_continue_with' => 'You can also continue with:', 'sign_in_using_security_device' => 'Accedi tramite un dispositivo di sicurezza', 'login_and_password' => 'nome utente e password', 'register' => 'Registrati', @@ -94,7 +94,7 @@ 'reset_your_password' => 'Reimposta la password', 'reset_password' => 'Ripristina password', 'disabled_in_demo' => 'Funzione disabilitata in modalità demo', - 'new_password' => 'Nuova password', + 'new_password' => 'New password', 'current_password' => [ 'label' => 'Password attuale', 'help' => 'Inserisci la tua password attuale per confermare che sei tu' diff --git a/resources/lang/it/commons.php b/resources/lang/it/commons.php index 957e680a..5708d3e5 100644 --- a/resources/lang/it/commons.php +++ b/resources/lang/it/commons.php @@ -79,7 +79,16 @@ 'nothing' => 'niente', 'no_result' => 'No result', 'information' => 'Information', - 'permissions' => 'Permissions', 'send' => 'Send', 'optimize' => 'Optimize', + 'IP' => 'IP', + 'browser' => 'Browser', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'No entry yet', + 'time' => 'Time', + 'ip_address' => 'IP Address', + 'device' => 'Device', + 'one_month' => '1 mo.', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', ]; diff --git a/resources/lang/it/errors.php b/resources/lang/it/errors.php index a586a1ec..b47bebed 100644 --- a/resources/lang/it/errors.php +++ b/resources/lang/it/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => 'Unauthorized', 'unauthorized_legend' => 'You do not have permissions to view this resource or to perform this action', 'cannot_delete_the_only_admin' => 'Cannot delete the only admin account', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', 'error_during_data_fetching' => '💀 Something went wrong during data fetching', 'check_failed_try_later' => 'Check failed, please retry later', 'sso_disabled' => 'SSO is disabled', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => 'Account managed by an external provider', 'data_cannot_be_refreshed_from_server' => 'Data cannot be refreshed from server', 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', ]; \ No newline at end of file diff --git a/resources/lang/it/notifications.php b/resources/lang/it/notifications.php index 9e7f8380..cdeab118 100644 --- a/resources/lang/it/notifications.php +++ b/resources/lang/it/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => 'Hello', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', 'test_email_settings' => [ 'subject' => '2FAuth test email', 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', 'success' => 'Good news, it works :)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], ]; \ No newline at end of file diff --git a/resources/lang/it/settings.php b/resources/lang/it/settings.php index eb70ec3c..8226d787 100644 --- a/resources/lang/it/settings.php +++ b/resources/lang/it/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'You signed-in via SSO using your :provider account. Your information cannot be changed here but on :provider.', 'general' => 'General', 'security' => 'Security', + 'notifications' => 'Notifications', 'profile' => 'Profile', 'change_password' => 'Change password', 'personal_access_tokens' => 'Personal access tokens', @@ -52,6 +53,10 @@ 'label' => 'Language', 'help' => 'Language used to translate the 2FAuth user interface. Named languages are complete, set the one of your choice to override your browser preference.' ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], 'show_otp_as_dot' => [ 'label' => 'Show generated OTP as dot', 'help' => 'Replace generated password caracters with *** to ensure confidentiality. Do not affect the copy/paste feature' @@ -135,6 +140,14 @@ 'label' => 'Show Password', 'help' => 'Set how and when OTPs are displayed.
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'After a click/tap', 'otp_generation_on_request_legend' => 'Alone, in its own view', 'otp_generation_on_request_title' => 'Click an account to get a password in a dedicated view', diff --git a/resources/lang/it/titles.php b/resources/lang/it/titles.php index 9a43fada..85802fe8 100644 --- a/resources/lang/it/titles.php +++ b/resources/lang/it/titles.php @@ -51,5 +51,8 @@ 'users' => 'Users management', 'createUser' => 'Create user', 'manageUser' => 'Manage user', + 'logs' => [ + 'access' => 'Access log' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/ja/admin.php b/resources/lang/ja/admin.php index 362a29e5..be6e0f32 100644 --- a/resources/lang/ja/admin.php +++ b/resources/lang/ja/admin.php @@ -13,102 +13,117 @@ | */ - 'admin' => 'Admin', - 'app_setup' => 'App setup', - 'registrations' => 'Registrations', - 'users' => 'Users', - 'users_legend' => 'Manage users registered on your instance or create new ones.', - 'admin_settings' => 'Admin settings', - 'create_new_user' => 'Create a user', - 'new_user' => 'New user', - 'search_user_placeholder' => 'User name, email...', - 'quick_filters_colons' => 'Quick filters:', - 'user_created' => 'user successfully created', + 'admin' => '管理者', + 'app_setup' => 'アプリの機能', + 'registrations' => '登録', + 'users' => 'ユーザー', + 'users_legend' => 'インスタンス上の登録ユーザーの管理や、新規作成を行います。', + 'admin_settings' => '管理者設定', + 'create_new_user' => 'ユーザーを作成', + 'new_user' => '新規ユーザー', + 'search_user_placeholder' => 'ユーザー名、メールアドレス…', + 'quick_filters_colons' => 'ショートカット:', + 'user_created' => 'ユーザーを作成しました', 'confirm' => [ - 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', - 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', - 'delete_account' => 'Are you sure you want to delete this user?', - 'edit_own_account' => 'This is your own account. Are you sure?', - 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', - 'demote_own_account' => 'You will no longer be an administrator. Really sure?' + 'delete_user' => 'このユーザーを削除してもよろしいですか?元に戻すことはできません。', + 'request_password_reset' => 'このユーザーのパスワードをリセットしてもよろしいですか?', + 'purge_password_reset_request' => '以前のリクエストを削除してもよろしいですか?', + 'delete_account' => 'このユーザーを削除してもよろしいですか?', + 'edit_own_account' => 'これはあなた自身のアカウントです。よろしいですか?', + 'change_admin_role' => 'この操作はこのユーザーの権限に重大な影響を与えます。よろしいですか?', + 'demote_own_account' => 'あなたは管理者でなくなります。本当によろしいですか?' ], - 'logs' => 'Logs', - 'administration_legend' => 'Following settings are global and apply to all users.', - 'user_management' => 'User management', - 'oauth_provider' => 'OAuth provider', - 'account_bound_to_x_via_oauth' => 'This account is bound to a :provider account via OAuth', - 'last_seen_on_date' => 'Last seen :date', - 'registered_on_date' => 'Registered :date', - 'updated_on_date' => 'Updated :date', - 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', - 'resend_email' => 'Resend email', - 'resend_email_title' => 'Resend a password reset email to the user', - 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', - 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', - 'reset_password_title' => 'Reset the user\'s password', - 'password_successfully_reset' => 'Password successfully reset', - 'user_has_x_active_pat' => ':count active token(s)', - 'user_has_x_security_devices' => ':count security device(s) (passkeys)', - 'revoke_all_pat_for_user' => 'Revoke all user\'s tokens', - 'revoke_all_devices_for_user' => 'Revoke all user\'s security devices', - 'danger_zone' => 'Danger Zone', - 'delete_this_user_legend' => 'The user account will be deleted as well as all its 2FA data.', - 'this_is_not_soft_delete' => 'This is not a soft delete, there is no going back.', - 'delete_this_user' => 'Delete this user', - 'user_role_updated' => 'User role updated', - 'pats_succesfully_revoked' => 'User\'s PATs successfully revoked', - 'security_devices_succesfully_revoked' => 'User\'s security devices successfully revoked', - 'variables' => 'Variables', - 'cache_cleared' => 'Cache cleared', - 'cache_optimized' => 'Cache optimized', - 'check_now' => 'Check now', - 'view_on_github' => 'View on Github', - 'x_is_available' => ':version is available', + 'logs' => 'ログ', + 'administration_legend' => '以下の設定はすべてのユーザーに適用される全体設定です。', + 'user_management' => 'ユーザー管理', + 'oauth_provider' => 'OAuth プロバイダ', + 'account_bound_to_x_via_oauth' => 'このアカウントは OAuth 経由で :provider アカウントにひも付けられています', + 'last_seen_on_date' => ':dateに最終ログイン', + 'registered_on_date' => ':dateに登録', + 'updated_on_date' => ':dateに更新', + 'access' => 'アクセス', + 'password_requested_on_t' => 'このユーザーにはパスワードリセット要求(送信時刻::datetime)が送られています。つまり、このユーザーに送られたリンクはまだ有効で、パスワードは変更されていません。要求したのはユーザー自身である場合も、管理者である場合もあります。', + 'password_request_expired' => 'このユーザーには失効したパスワードリセット要求があります。つまり、このユーザーは有効期間内にパスワードを変更しませんでした。要求したのはユーザー自身である場合も、管理者である場合もあります。', + 'resend_email' => 'メールを再送信', + 'resend_email_title' => 'このユーザーにパスワードリセットメールを再送信する', + 'resend_email_help' => '「メールを再送信」からこのユーザーに新しいパスワードを設定させるためのリセットメールを改めて送信します。現在のパスワードは変更されず、以前のリセット要求はすべて無効になります。', + 'reset_password' => 'パスワードをリセット', + 'reset_password_help' => '「パスワードをリセット」でパスワードを強制的にリセット(仮パスワードが設定されます)した後、ユーザーに新しいパスワードを設定させるリセットメールを送信します。以前のリセット要求はすべて無効になります。', + 'reset_password_title' => 'このユーザーのパスワードをリセット', + 'password_successfully_reset' => 'パスワードがリセットされました', + 'user_has_x_active_pat' => '有効なトークン :count 件', + 'user_has_x_security_devices' => 'セキュリティデバイス (passkey) :count 台', + 'revoke_all_pat_for_user' => 'このユーザーの全トークンを取り消し', + 'revoke_all_devices_for_user' => 'このユーザーの全セキュリティデバイスを失効', + 'danger_zone' => '危険な操作', + 'delete_this_user_legend' => 'このユーザーアカウントと全2FAデータが削除されます。', + 'this_is_not_soft_delete' => 'ここで削除すると、二度と元には戻りません!', + 'delete_this_user' => 'このユーザーを削除', + 'user_role_updated' => 'ユーザーの身分が更新されました', + 'pats_succesfully_revoked' => 'ユーザーの PAT が取り消されました', + 'security_devices_succesfully_revoked' => 'ユーザーのセキュリティデバイスが失効しました', + 'variables' => '環境変数', + 'cache_cleared' => 'キャッシュが消去されました', + 'cache_optimized' => 'キャッシュが最適化されました', + 'check_now' => '今すぐ確認', + 'view_on_github' => 'GitHub で見る', + 'x_is_available' => ':version が利用可能', + 'successful_login_on' => ':login_at にログイン成功', + 'successful_logout_on' => ':login_at にログアウト成功', + 'failed_login_on' => ':login_at にログイン失敗', + 'viewed_on' => ':login_at に閲覧', + 'last_accesses' => '最終アクセス一覧', + 'see_full_log' => 'ログ全体を見る', + 'browser_on_platform' => ':browser(:platform)', + 'access_log_has_more_entries' => 'アクセスログには続きがあります。', + 'access_log_legend_for_user' => ':username の完全なアクセスログ', + 'show_last_month_log' => '先月のエントリを表示', + 'show_three_months_log' => '過去3ヶ月間のエントリを表示', + 'show_six_months_log' => '過去6ヶ月間のエントリを表示', + 'show_one_year_log' => '昨年からのエントリを表示', + 'sort_by_date_asc' => '古い順', + 'sort_by_date_desc' => '新しい順', 'forms' => [ 'use_encryption' => [ - 'label' => 'Protect sensitive data', - 'help' => 'Sensitive data, the 2FA secrets and emails, are stored encrypted in database. Be sure to backup the APP_KEY value of your .env file (or the whole file) as it serves as key encryption. There is no way to decypher encrypted data without this key.', + 'label' => '機密データを保護', + 'help' => '機密データ(2 要素認証シークレットやメールアドレス)が暗号化してデータベースに保存されます。暗号化キーとなるので、.env ファイル内の APP_KEY の値(またはファイル全体)は必ずバックアップしてください。キーが失われるとデータは復号できません。', ], 'restrict_registration' => [ - 'label' => 'Restrict registration', - 'help' => 'Make registration only available to a limited range of email addresses. Both rules can be used simultaneously. This has no effect on registration via SSO.', + 'label' => '登録を制限する', + 'help' => '限られたメールアドレスでのみ登録可能にします。両方のルールを同時に使用できます。SSO経由での登録には影響しません。', ], 'restrict_list' => [ - 'label' => 'Filtering list', - 'help' => 'Emails in this list will be allowed to register. Separate addresses with a pipe ("|")', + 'label' => 'フィルタリスト', + 'help' => 'リストにあるメールアドレスが許可されます。アドレスをパイプ ("|") で区切ってください。', ], 'restrict_rule' => [ - 'label' => 'Filtering rule', - 'help' => 'Emails matching this regular expression will be allowed to register', + 'label' => 'フィルタルール', + 'help' => '正規表現に一致するメールアドレスを許可します。', ], 'disable_registration' => [ - 'label' => 'Disable registration', - 'help' => 'Prevent new user registration. Unless overridden (see below), this affects SSO as well, so new users won\'t be able to sign in via SSO', + 'label' => '登録を無効にする', + 'help' => '新規ユーザー登録を禁止します。上書き(下記参照)されない限り、SSOにも影響し、新規ユーザーはSSOでもサインインできなくなります。', ], 'enable_sso' => [ - 'label' => 'Enable Single Sign-On (SSO)', - 'help' => 'Allow visitors to authenticate using an external ID via the Single Sign-On scheme', + 'label' => 'シングルサインオン (SSO) を有効化', + 'help' => '訪問者が外部 ID のシングルサインオンを利用して認証できるようにします。', ], 'keep_sso_registration_enabled' => [ - 'label' => 'Keep SSO registration enabled', - 'help' => 'Allow new users to sign in for the first time via SSO whereas registration is disabled', + 'label' => 'SSO登録は許可する', + 'help' => '新規登録が無効でも、新規ユーザーがSSO経由で初回サインインすることは許可する', ], 'is_admin' => [ - 'label' => 'Is administrator', - 'help' => 'Give administrator rights to the user. Administrators have permissions to manage the whole app, i.e. settings and other users, but cannot generate password for a 2FA they don\'t own.' + 'label' => '管理者権限', + 'help' => 'ユーザーに管理者権限を付与します。管理者はアプリ全体(設定や他のユーザー)を管理する権限を持っていますが、所有していない2FA用のパスワードは生成できません。' ], 'test_email' => [ - 'label' => 'Email configuration test', - 'help' => 'Send a test email to control your instance\'s email configuration. It is important to have a working configuration, otherwise users will not be able to request a reset password.', - 'email_will_be_send_to_x' => 'The email will be send to :email', + 'label' => 'メール設定テスト', + 'help' => 'インスタンスのメール設定を確認するためのテストメールを送信します。 メール設定が正しくないと、ユーザーはパスワードリセットを要求できなくなります。', + 'email_will_be_send_to_x' => ':email にメールを送信', ], 'cache_management' => [ - 'label' => 'Cache management', - 'help' => 'Sometimes cache needs to be cleared, for instance after a change to environment variables or an update. You can do it from here.', + 'label' => 'キャッシュ管理', + 'help' => '環境変数の変更や更新の後などにキャッシュのクリアが必要になる場合があります。ここから実行できます。', ] ], diff --git a/resources/lang/ja/auth.php b/resources/lang/ja/auth.php index 94053c9f..f42599f2 100644 --- a/resources/lang/ja/auth.php +++ b/resources/lang/ja/auth.php @@ -19,10 +19,10 @@ 'throttle' => 'ログインの試行回数が多すぎます。:seconds 秒後にお試しください。', // 2FAuth - 'sign_out' => 'ログアウト', - 'sign_in' => 'ログイン', + 'sign_out' => 'サインアウト', + 'sign_in' => 'サインイン', 'sign_in_using' => 'ログイン方式:', - 'or_continue_with' => 'You an also continue with:', + 'or_continue_with' => 'または外部認証を利用:', 'sign_in_using_security_device' => 'セキュリティデバイスでログイン', 'login_and_password' => 'IDとパスワード', 'register' => '新規登録', @@ -101,7 +101,7 @@ ], 'change_password' => 'パスワードを変更', 'send_password_reset_link' => 'リセット用リンクを送信', - 'password_successfully_reset' => 'Password successfully reset', + 'password_successfully_reset' => 'パスワードがリセットされました', 'edit_account' => 'アカウント編集', 'profile_saved' => 'プロフィールを更新しました!', 'welcome_to_demo_app_use_those_credentials' => '2FAuth デモへようこそ。

メールアドレス demo@2fauth.app とパスワード demo で接続できます', diff --git a/resources/lang/ja/commons.php b/resources/lang/ja/commons.php index 5bf464be..73cfb7d1 100644 --- a/resources/lang/ja/commons.php +++ b/resources/lang/ja/commons.php @@ -77,9 +77,18 @@ 'default' => '既定', 'back_to_home' => 'ホームへ戻る', 'nothing' => 'なし', - 'no_result' => 'No result', - 'information' => 'Information', - 'permissions' => 'Permissions', - 'send' => 'Send', - 'optimize' => 'Optimize', + 'no_result' => '該当なし', + 'information' => '情報', + 'send' => '送信', + 'optimize' => '最適化', + 'IP' => 'IP', + 'browser' => 'ブラウザー', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'エントリなし', + 'time' => '時刻', + 'ip_address' => 'IPアドレス', + 'device' => '端末', + 'one_month' => '1ヶ月', + 'x_month' => ':xヶ月', + 'one_year' => '1年', ]; diff --git a/resources/lang/ja/errors.php b/resources/lang/ja/errors.php index 5a356a16..ae593097 100644 --- a/resources/lang/ja/errors.php +++ b/resources/lang/ja/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => '許可されていません', 'unauthorized_legend' => 'このリソースを表示したり、このアクションを実行する権限がありません。', 'cannot_delete_the_only_admin' => '唯一の管理者アカウントは削除できません', + 'cannot_demote_the_only_admin' => '唯一の管理者アカウントは降格できません', 'error_during_data_fetching' => '💀 データ取得中に問題が発生しました', 'check_failed_try_later' => 'チェックが失敗しました。後ほどもう一度お試しください', 'sso_disabled' => 'SSOが無効です', @@ -66,5 +67,9 @@ 'sso_email_already_used' => '同じメールアドレスを持つユーザーアカウントは既に存在しますが、あなたの外部アカウントIDと一致しません。 このアドレスで 2FAuth に登録済みの場合は、SSOを使用しないでください。', 'account_managed_by_external_provider' => '外部プロバイダが管理するアカウント', 'data_cannot_be_refreshed_from_server' => 'データをサーバーから更新できません', - 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'no_pwd_reset_for_this_user_type' => 'このユーザーにパスワードリセットはできません', + 'cannot_detect_qrcode_in_image' => '画像内にQRコードを検出できません。画像をトリミングしてください', + 'cannot_decode_detected_qrcode' => '検出されたQRコードをデコードできません。画像をトリミングまたはシャープにしてください。', + 'qrcode_has_invalid_checksum' => 'QRコードのチェックサムが不正です', + 'no_readable_qrcode' => '読み取り可能なQRコードがありません', ]; \ No newline at end of file diff --git a/resources/lang/ja/languages.php b/resources/lang/ja/languages.php index 3425933e..82cde658 100644 --- a/resources/lang/ja/languages.php +++ b/resources/lang/ja/languages.php @@ -10,7 +10,7 @@ | */ - 'browser_preference' => 'ブラウザの設定言語', + 'browser_preference' => 'ブラウザの設定', 'en' => 'English (英語)', 'fr' => 'Français (フランス語)', 'de' => 'Deutsch (ドイツ語)', @@ -19,5 +19,5 @@ 'ru' => 'Русский (ロシア語)', 'bg' => 'Български (ブルガリア語)', 'ja' => '日本語 (日本語)', - 'hi' => 'हिंदी (Hindi)', + 'hi' => 'हिंदी (ヒンディー語)', ]; \ No newline at end of file diff --git a/resources/lang/ja/notifications.php b/resources/lang/ja/notifications.php index 9e7f8380..88baeb44 100644 --- a/resources/lang/ja/notifications.php +++ b/resources/lang/ja/notifications.php @@ -13,11 +13,24 @@ | */ - 'hello' => 'Hello', + 'hello' => 'こんにちは', + 'hello_user' => '{username} さん、こんにちは', + 'regards' => 'よろしくお願いします', 'test_email_settings' => [ - 'subject' => '2FAuth test email', - 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', - 'success' => 'Good news, it works :)' + 'subject' => '2FAuth テストメール', + 'reason' => 'このメールはあなたの要望に応じて送信された、2FAuth インスタンスのメール設定検証用のテストメールです。', + 'success' => '届いているようですね!' + ], + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => '新しいデバイスがあなたの2FAuthアカウントに接続されました。', + 'connection_details' => 'この接続の詳細は以下の通りです', + 'recommandations' => '心当たりがある場合は、この通知を無視しても構いません。アカウントへの不審な行為が疑われる場合は、パスワードをご変更ください。' + ], + 'failed_login' => [ + 'subject' => '2FAuth へのログイン失敗発生', + 'resume' => 'あなたの 2FAuth アカウントへのログイン失敗が発生しました。', + 'connection_details' => '具体的な情報は以下の通りです', + 'recommandations' => '心当たりがある場合は、この通知を無視しても構いません。今後も行為が続く場合は、2FAuth の管理者に相談し、セキュリティ設定の見直しや攻撃者への対処を検討してください。' ], - ]; \ No newline at end of file diff --git a/resources/lang/ja/settings.php b/resources/lang/ja/settings.php index 1ad75bd1..aa6e9010 100644 --- a/resources/lang/ja/settings.php +++ b/resources/lang/ja/settings.php @@ -19,7 +19,7 @@ 'oauth' => 'OAuth', 'webauthn' => 'WebAuthn', 'tokens' => 'トークン', - 'options' => '動作設定', + 'options' => '個人設定', 'user_preferences' => 'ユーザー設定', 'admin_settings' => '管理者設定', 'confirm' => [ @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'あなたは :provider アカウントのSSO経由でサインインしています。ここでは、:provider 以外の情報は変更できません。', 'general' => '全般', 'security' => 'セキュリティ', + 'notifications' => 'Notifications', 'profile' => 'プロフィール', 'change_password' => 'パスワード変更', 'personal_access_tokens' => '個人アクセストークン', @@ -52,6 +53,10 @@ 'label' => '言語', 'help' => '2FAuth のUIを表示するための言語。リストにある言語は翻訳済みです。いずれかを選択してブラウザ設定を上書きできます。' ], + 'timezone' => [ + 'label' => 'タイムゾーン', + 'help' => 'このアプリケーションで表示するすべての日付と時刻に適用されるタイムゾーン' + ], 'show_otp_as_dot' => [ 'label' => '生成されたOTPを●で表示', 'help' => '生成されたパスワード文字を見られないよう ● に置き換えます。コピーペーストには影響しません。' @@ -65,12 +70,12 @@ 'help' => '生成されたパスワードをクリックすると、自動的に画面から非表示になります。' ], 'clear_search_on_copy' => [ - 'label' => 'Clear Search on copy', - 'help' => 'Empty the Search box right after a code has been copied to the clipboard' + 'label' => 'コピー後に検索欄を消去', + 'help' => 'コードがクリップボードにコピーされた直後に検索欄を空にします' ], 'copy_otp_on_display' => [ - 'label' => '表示時にOTP をコピー', - 'help' => '画面に表示された瞬間に生成されたパスワードを自動的にコピーします。 ブラウザの制約により、最初の TOTPパスワードのみがコピーされ、更新後のものはコピーされません。' + 'label' => '表示時にOTPをコピー', + 'help' => '画面に表示された瞬間に生成されたパスワードを自動的にコピーします。 ブラウザの制約により、最初のTOTPパスワードのみがコピーされ、更新後のものはコピーされません。' ], 'use_basic_qrcode_reader' => [ 'label' => '簡略版QRコードリーダーを使用', @@ -116,8 +121,8 @@ 'help' => '新規作成したアカウントが所属するグループ', ], 'view_default_group_on_copy' => [ - 'label' => 'View default group on copy', - 'help' => 'Always return to the default group when an OTP is copied', + 'label' => 'コピー後に既定のグループを表示', + 'help' => 'OTPをコピーした後、常に既定のグループに戻ります', ], 'useDirectCapture' => [ 'label' => '選択画面を飛ばす', @@ -135,6 +140,14 @@ 'label' => 'パスワードの表示方式', 'help' => 'OTPをいつどのように表示するか設定します。
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'クリック/タップで', 'otp_generation_on_request_legend' => '個別の画面で開く', 'otp_generation_on_request_title' => 'アカウントをクリックして個別の画面でパスワードを開く', diff --git a/resources/lang/ja/titles.php b/resources/lang/ja/titles.php index d39abae9..396de547 100644 --- a/resources/lang/ja/titles.php +++ b/resources/lang/ja/titles.php @@ -47,9 +47,12 @@ '404' => '見つかりません', 'about' => 'このアプリについて', 'admin' => [ - 'appSetup' => 'App setup', - 'users' => 'Users management', - 'createUser' => 'Create user', - 'manageUser' => 'Manage user', + 'appSetup' => 'アプリの機能', + 'users' => 'ユーザー管理', + 'createUser' => 'ユーザー作成', + 'manageUser' => 'ユーザー管理', + 'logs' => [ + 'access' => 'アクセスログ' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/ja/twofaccounts.php b/resources/lang/ja/twofaccounts.php index f79a415c..4e36d312 100644 --- a/resources/lang/ja/twofaccounts.php +++ b/resources/lang/ja/twofaccounts.php @@ -67,7 +67,7 @@ ], 'plain_text' => 'プレーンテキスト', 'otp_type' => [ - 'label' => '作成する OTP の種類を選択', + 'label' => '作成するOTPの種類を選択', 'help' => '時間ベースのOTPか、HMACベースのOTPか、Steam OTP' ], 'digits' => [ @@ -96,7 +96,7 @@ ], 'options_help' => '以下の項目は、必要がない限り空白のままで結構です。最も一般的な値が使用されます。', 'alternative_methods' => 'または', - 'spaces_are_ignored' => 'Unwanted spaces will be automatically removed' + 'spaces_are_ignored' => '不要なスペースは自動的に削除されます' ], 'stream' => [ 'live_scan_cant_start' => 'スキャンできません (´・ω・`)', @@ -143,11 +143,11 @@ 'scan' => 'スキャン', 'supported_formats_for_qrcode_upload' => '対応形式:jpg, jpeg, png, bmp, gif, svg, webp', 'supported_formats_for_file_upload' => '対応形式:プレーンテキスト, json, 2fas', - 'expected_format_for_direct_input' => 'Expected: A list of otpauth URI, one by line', + 'expected_format_for_direct_input' => '形式:1 行につき otpauth URI 1 件', 'supported_migration_formats' => '対応する移行用フォーマット', 'qr_code' => 'QRコード', 'text_file' => 'テキストファイル', - 'direct_input' => 'Direct input', + 'direct_input' => '直接入力', 'plain_text' => 'プレーンテキスト', 'parsing_data' => 'データを解析中...', 'issuer' => '発行者', diff --git a/resources/lang/ja/validation.php b/resources/lang/ja/validation.php index 0bee7c91..3a072eda 100644 --- a/resources/lang/ja/validation.php +++ b/resources/lang/ja/validation.php @@ -170,8 +170,8 @@ ], 'email' => [ 'exists' => 'このメールアドレスを使用するアカウントは見つかりませんでした。', - 'ComplyWithEmailRestrictionPolicy' => 'This email address does not comply with the registration policy', - 'IsValidEmailList' => 'All emails must be valid and separated with a pipe' + 'ComplyWithEmailRestrictionPolicy' => 'このメールアドレスは登録ルールに適合していません', + 'IsValidEmailList' => 'すべてのアドレスは有効かつ、パイプ (|) で区切られている必要があります' ], 'secret' => [ 'isBase32Encoded' => ':attributeは base32 エンコード文字列を指定してください。', diff --git a/resources/lang/pt/admin.php b/resources/lang/pt/admin.php new file mode 100644 index 00000000..79431c3e --- /dev/null +++ b/resources/lang/pt/admin.php @@ -0,0 +1,130 @@ + 'Admin', + 'app_setup' => 'Configuração do App', + 'registrations' => 'Cadastros', + 'users' => 'Usuários', + 'users_legend' => 'Gerenciar usuários registrados em sua instância ou criar novos.', + 'admin_settings' => 'Configurações de administração', + 'create_new_user' => 'Criar usuário', + 'new_user' => 'Novo usuário', + 'search_user_placeholder' => 'Nome de usuário, e-mail...', + 'quick_filters_colons' => 'Filtro rápido:', + 'user_created' => 'usuário criado com sucesso', + 'confirm' => [ + 'delete_user' => 'Tem certeza de que deseja excluir este usuário? Não há a opção de \'desfazer\'.', + 'request_password_reset' => 'Você tem certeza que deseja redefinir a senha deste usuário?', + 'purge_password_reset_request' => 'Tem certeza de que deseja revogar a solicitação anterior?', + 'delete_account' => 'Tem certeza de que deseja excluir este usuário?', + 'edit_own_account' => 'Esta é a sua própria conta. Tem certeza?', + 'change_admin_role' => 'Isto terá sérios impactos nas permissões deste usuário. Tem certeza?', + 'demote_own_account' => 'Você não será mais um administrador. Deseja realmente continuar?' + ], + 'logs' => 'Registros', + 'administration_legend' => 'As seguintes configurações são globais e aplicam-se a todos os usuários.', + 'user_management' => 'Gerenciamento de usuários', + 'oauth_provider' => 'Provedor OAuth', + 'account_bound_to_x_via_oauth' => 'Esta conta está vinculada a uma conta :provedor via OAuth', + 'last_seen_on_date' => 'Visto por último :date', + 'registered_on_date' => 'Registrado em :date', + 'updated_on_date' => 'Atualizado em :date', + 'access' => 'Acesso', + 'password_requested_on_t' => 'Uma solicitação de redefinição de senha existe para este usuário (solicitação enviada em :datetime), o que significa que o usuário ainda não alterou sua senha, mas o link que recebeu ainda é válido. Esta pode ser uma requisição do próprio usuário ou de um administrador.', + 'password_request_expired' => 'Uma solicitação de redefinição de senha existe para este usuário, mas expirou, o que significa que o usuário não alterou sua senha a tempo. Esta pode ser uma requisição do próprio usuário ou de um administrador.', + 'resend_email' => 'Reenviar e-mail', + 'resend_email_title' => 'Reenviar um e-mail de redefinição de senha ao usuário', + 'resend_email_help' => 'Use Reenviar e-mail para enviar um novo e-mail de redefinição de senha para o usuário para que ele possa definir uma nova senha. Isso deixará sua senha atual como está e qualquer pedido anterior será revogado.', + 'reset_password' => 'Redefinir senha', + 'reset_password_help' => 'Use Redefinir senha para forçar uma redefinição de senha (isso irá definir uma senha temporária) antes de enviar um e-mail de redefinição de senha para o usuário para que eles possam definir uma nova senha. Qualquer solicitação anterior será revogada.', + 'reset_password_title' => 'Redefinir a senha do usuário', + 'password_successfully_reset' => 'Senha redefinida com sucesso', + 'user_has_x_active_pat' => ':count token(s) ativo(s)', + 'user_has_x_security_devices' => ':count dispositivo(s) de segurança (chaves)', + 'revoke_all_pat_for_user' => 'Revogar o token de todos os usuários', + 'revoke_all_devices_for_user' => 'Revogar os dispositivos de segurança de todos os usuários', + 'danger_zone' => 'Zona de perigo', + 'delete_this_user_legend' => 'A conta de usuário será excluída assim como todos os seus dados de 2FA.', + 'this_is_not_soft_delete' => 'Não se trata de uma exclusão suave, não se pode voltar atrás.', + 'delete_this_user' => 'Excluir este usuário', + 'user_role_updated' => 'Função do usuário atualizada', + 'pats_succesfully_revoked' => 'PATs do usuário revogados com sucesso', + 'security_devices_succesfully_revoked' => 'Dispositivos de segurança do usuário revogados com sucesso', + 'variables' => 'Variáveis', + 'cache_cleared' => 'Cache apagado', + 'cache_optimized' => 'Cache otimizado', + 'check_now' => 'Verificar agora', + 'view_on_github' => 'Ver no GitHub', + 'x_is_available' => ':version está disponível', + 'successful_login_on' => 'Login bem-sucedido em :login_at', + 'successful_logout_on' => 'Logout bem-sucedido em :login_at', + 'failed_login_on' => 'Falha no login em :login_at', + 'viewed_on' => 'Visualizado em :login_at', + 'last_accesses' => 'Últimos acessos', + 'see_full_log' => 'Ver registro completo', + 'browser_on_platform' => ':browser em :platform', + 'access_log_has_more_entries' => 'O log de acesso contém mais entradas.', + 'access_log_legend_for_user' => 'Registro de acesso completo para o usuário :username', + 'show_last_month_log' => 'Mostrar entradas do último mês', + 'show_three_months_log' => 'Mostrar entradas dos últimos 3 meses', + 'show_six_months_log' => 'Mostrar entradas dos últimos 6 meses', + 'show_one_year_log' => 'Mostrar entradas do último ano', + 'sort_by_date_asc' => 'Mostrar o mais antigo primeiro', + 'sort_by_date_desc' => 'Mostrar o mais recente primeiro', + 'forms' => [ + 'use_encryption' => [ + 'label' => 'Proteja dados confidenciais', + 'help' => 'Dados confidenciais, segredos e e-mails 2FA são armazenados criptografados no banco de dados. Certifique-se de salvar o valor APP_KEY do seu arquivo .env (ou do arquivo inteiro), pois ele serve como chave de criptografia. Não há como descriptografar dados criptografados sem essa chave.', + ], + 'restrict_registration' => [ + 'label' => 'Restringir registro', + 'help' => 'Tornar o registro disponível apenas para um intervalo limitado de endereços de e-mail. Ambas as regras podem ser usadas simultaneamente. Isso não tem efeito sobre o registro via SSO.', + ], + 'restrict_list' => [ + 'label' => 'Listas de filtros', + 'help' => 'Os endereços de e-mail nesta lista serão autorizados para registro. Endereços separados com o caractere "|"', + ], + 'restrict_rule' => [ + 'label' => 'Filtrando regras', + 'help' => 'E-mails que correspondem a esta expressão regular terá permissão para registrar', + ], + 'disable_registration' => [ + 'label' => 'Desabilitar registo', + 'help' => 'Impedir novos registros. A menos que sobrescrito (veja abaixo), isto afeta SSO também, então novos usuários não serão capazes de entrar via SSO', + ], + 'enable_sso' => [ + 'label' => 'Ativando o logon único (SSO)', + 'help' => 'Permitir que os visitantes autentiquem usando um ID externo por meio do esquema de logon SSO', + ], + 'keep_sso_registration_enabled' => [ + 'label' => 'Mantenha o registro SSO ativado', + 'help' => 'Permite que novos usuários façam login pela primeira vez via SSO enquanto os registros estão desativados', + ], + 'is_admin' => [ + 'label' => 'É administrador', + 'help' => 'Concede direitos de administrador ao usuário. Os administradores podem gerenciar o aplicativo, ou seja, modificar suas configurações e gerenciar seus usuários. Um administrador não tem como visualizar os dados 2FA de outro usuário ou gerar códigos para eles.' + ], + 'test_email' => [ + 'label' => 'Teste de configuração de e-mail', + 'help' => 'Envie um e-mail de teste para verificar a capacidade da sua instância de usar e-mail. É importante ter uma configuração funcional, caso contrário os usuários não poderão solicitar redefinição de senha, por exemplo.', + 'email_will_be_send_to_x' => 'O e-mail será enviado para :email', + ], + 'cache_management' => [ + 'label' => 'Gerenciamento de Cache', + 'help' => 'Às vezes, o cache precisa ser limpo, por exemplo, após uma alteração de variáveis de ambiente ou de uma atualização. Você pode fazer isso a partir daqui.', + ] + ], + +]; \ No newline at end of file diff --git a/resources/lang/pt/auth.php b/resources/lang/pt/auth.php new file mode 100644 index 00000000..7334b79a --- /dev/null +++ b/resources/lang/pt/auth.php @@ -0,0 +1,128 @@ + 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + + // 2FAuth + 'sign_out' => 'Sign out', + 'sign_in' => 'Sign in', + 'sign_in_using' => 'Sign in using', + 'or_continue_with' => 'You can also continue with:', + 'sign_in_using_security_device' => 'Sign in using a security device', + 'login_and_password' => 'login & password', + 'register' => 'Register', + 'welcome_to_2fauth' => 'Welcome to 2FAuth', + 'autolock_triggered' => 'Auto lock triggered', + 'autolock_triggered_punchline' => 'Auto-lock triggered, you\'ve been logged out', + 'already_authenticated' => 'Already authenticated, please log out first', + 'authentication' => 'Authentication', + 'maybe_later' => 'Maybe later', + 'user_account_controlled_by_proxy' => 'User account made available by an authentication proxy.
Manage the account at proxy level.', + 'auth_handled_by_proxy' => 'Authentication handled by a reverse proxy, below settings are disabled.
Manage authentication at proxy level.', + 'confirm' => [ + 'logout' => 'Are you sure you want to log out?', + 'revoke_device' => 'Are you sure you want to revoke this device?', + 'delete_account' => 'Are you sure you want to delete your account?', + ], + 'webauthn' => [ + 'security_device' => 'a security device', + 'security_devices' => 'Security devices', + 'security_devices_legend' => 'Authentication devices you can use to sign in 2FAuth, like security keys (i.e Yubikey) or smartphones with biometric capabilities (i.e. Apple FaceId/TouchId)', + 'enhance_security_using_webauthn' => 'You can enhance the security of your 2FAuth account by enabling WebAuthn authentication.

+ WebAuthn allows you to use trusted devices (like Yubikeys or smartphones with biometric capabilities) to sign in quickly and more securely.', + 'use_security_device_to_sign_in' => 'Get ready to authenticate using (one of) your security devices. Plug your key in, remove face mask or gloves, etc.', + 'lost_your_device' => 'Lost your device?', + 'recover_your_account' => 'Recover your account', + 'account_recovery' => 'Account recovery', + 'recovery_punchline' => '2FAuth will send you a recovery link to this email address. Click the link in the received email and follow the instructions.

Ensure you open the email on a device you fully own.', + 'send_recovery_link' => 'Send recovery link', + 'account_recovery_email_sent' => 'Account recovery email sent!', + 'disable_all_security_devices' => 'Disable all security devices', + 'disable_all_security_devices_help' => 'All your security devices will be revoked. Use this option if you have lost one or its security has been compromised.', + 'register_a_new_device' => 'Register a new device', + 'register_a_device' => 'Register a device', + 'device_successfully_registered' => 'Device successfully registered', + 'device_revoked' => 'Device successfully revoked', + 'revoking_a_device_is_permanent' => 'Revoking a device is permanent', + 'recover_account_instructions' => 'To recover your account, 2FAuth resets some Webauthn settings so you will be able to sign in using your email and password.', + 'invalid_recovery_token' => 'Invalid recovery token', + 'webauthn_login_disabled' => 'Webauthn login disabled', + 'invalid_reset_token' => 'This reset token is invalid.', + 'rename_device' => 'Rename device', + 'my_device' => 'My device', + 'unknown_device' => 'Unknown device', + 'use_webauthn_only' => [ + 'label' => 'Use WebAuthn only', + 'help' => 'Make WebAuthn the only authorized method to log into your 2FAuth account. This is the recommended setup to take advantage of the WebAuthn enhanced security.

+ In case of device lost, you will be able to recover your account by resetting this option and signing in using your email and password.

+ Attention! The Email & Password form remains available despite this option being enabled, but it will always return an \'Authentication failed\' response.' + ], + 'need_a_security_device_to_enable_options' => 'Set at least one device to enable the following options', + 'options' => 'Options', + ], + 'forms' => [ + 'name' => 'Name', + 'login' => 'Login', + 'webauthn_login' => 'WebAuthn login', + 'email' => 'Email', + 'password' => 'Password', + 'reveal_password' => 'Reveal password', + 'hide_password' => 'Hide password', + 'confirm_password' => 'Confirm password', + 'new_password' => 'New password', + 'confirm_new_password' => 'Confirm new password', + 'dont_have_account_yet' => 'Don\'t have your account yet?', + 'already_register' => 'Already registered?', + 'authentication_failed' => 'Authentication failed', + 'forgot_your_password' => 'Forgot your password?', + 'request_password_reset' => 'Reset it', + 'reset_your_password' => 'Reset your password', + 'reset_password' => 'Reset password', + 'disabled_in_demo' => 'Feature disabled in Demo mode', + 'new_password' => 'New password', + 'current_password' => [ + 'label' => 'Current password', + 'help' => 'Fill in your current password to confirm that it\'s you' + ], + 'change_password' => 'Change password', + 'send_password_reset_link' => 'Send password reset link', + 'password_successfully_reset' => 'Password successfully reset', + 'edit_account' => 'Edit account', + 'profile_saved' => 'Profile successfully updated!', + 'welcome_to_demo_app_use_those_credentials' => 'Welcome to the 2FAuth demo.

You can connect using the email address demo@2fauth.app and the password demo', + 'welcome_to_testing_app_use_those_credentials' => 'Welcome to the 2FAuth testing instance.

Use email address testing@2fauth.app and password password', + 'register_punchline' => 'Welcome to 2FAuth.
You need an account to go further, please register yourself.', + 'reset_punchline' => '2FAuth will send you a password reset link to this address. Click the link in the received email to set a new password.', + 'name_this_device' => 'Name this device', + 'delete_account' => 'Delete account', + 'delete_your_account' => 'Delete your account', + 'delete_your_account_and_reset_all_data' => 'Your user account will be deleted as well as all your 2FA data. There is no going back.', + 'reset_your_password_to_delete_your_account' => 'If you always used SSO to sign in, sign out then use the reset password feature to get a password so you can fill this form.', + 'deleting_2fauth_account_does_not_impact_provider' => 'Deleting your 2FAuth account has no impact on your external SSO account.', + 'user_account_successfully_deleted' => 'User account successfully deleted', + 'has_lower_case' => 'Has lower case', + 'has_upper_case' => 'Has upper case', + 'has_special_char' => 'Has special char', + 'has_number' => 'Has number', + 'is_long_enough' => '8 characters min.', + 'mandatory_rules' => 'Mandatory', + 'optional_rules_you_should_follow' => 'Recommanded (highly)', + 'caps_lock_is_on' => 'Caps lock is On', + ], + +]; diff --git a/resources/lang/pt/commons.php b/resources/lang/pt/commons.php new file mode 100644 index 00000000..7d322bb3 --- /dev/null +++ b/resources/lang/pt/commons.php @@ -0,0 +1,94 @@ + 'Cancelar', + 'update' => 'Atualizar', + 'copy' => 'Copiar', + 'copy_to_clipboard' => 'Copiar para área de transferência', + 'copied_to_clipboard' => 'Copiado para área de transferência', + 'profile' => 'Perfil', + 'edit' => 'Editar', + 'delete' => 'Excluir', + 'disable' => 'Desativar', + 'enable' => 'Habilitar', + 'create' => 'Criar', + 'save' => 'Salvar', + 'close' => 'Fechar', + 'clear' => 'Apagar', + 'clear_search' => 'Limpar pesquisa', + 'demo_do_not_post_sensitive_data' => 'Este é um aplicativo de demonstração, não poste nenhum dado confidencial', + 'testing_do_not_post_sensitive_data' => 'Este é um aplicativo de teste, não postar nenhum dado confidencial', + 'x_selected' => '[count] selecionado(s)', + 'name' => 'Nome', + 'manage' => 'Gerenciar', + 'done' => 'Concluir', + 'new' => 'Novo', + 'back' => 'Voltar', + 'move' => 'Mover', + 'export' => 'Exportar', + 'all' => 'Todos', + 'check_all' => 'Todos', + 'select_all' => 'Selecionar tudo', + 'clear_selection' => 'Limpar seleção', + 'sort_descending' => 'Ordenar decrescente', + 'sort_ascending' => 'Ordenar crescente', + 'rename' => 'Renomear', + 'new_name' => 'Novo nome', + 'options' => 'Opções', + 'reload' => 'Recarregar', + 'refresh' => 'Atualizar', + 'data_refreshed_to_reflect_server_changes' => 'Os dados foram atualizados para refletir as alterações no lado do servidor', + 'generate' => 'Gerar', + 'generating_otp' => 'Geração do OTP', + 'open_in_browser' => 'Abrir no navegador', + 'continue' => 'Continuar', + 'discard' => 'Descartar', + 'about' => 'Sobre', + 'usefull_links' => 'Links úteis', + 'environment' => 'Ambiente', + 'credits' => 'Créditos', + '2fauth_teaser' => 'Um aplicativo web para gerenciar suas contas de Autenticação em Duas Etapas (2FA) e gerar códigos de segurança', + 'made_with' => 'Feito com', + 'ui_icons_by' => 'Ícones de UI por', + 'logos_by' => 'Logotipos por', + 'search' => 'Buscar', + 'resources' => 'Recursos', + 'check_for_update' => 'Verificar por atualizações', + 'check_for_update_help' => 'Verificar automaticamente (uma vez por semana) e avisar quando uma nova versão do 2FAuth for publicada no Github', + 'you_are_up_to_date' => 'Esta instância está atualizada', + '2fauth_description' => 'Um aplicativo web para gerenciar suas contas de Autenticação em Duas Etapas (2FA) e gerar códigos de segurança', + 'image_of_qrcode_to_scan' => 'Imagem de um QR code para escanear', + 'file' => 'Arquivo', + 'or' => 'OU', + 'close_the_x_page' => 'Feche a página :pagetitle', + 'submit' => 'Enviar', + 'default' => 'Padrão', + 'back_to_home' => 'Voltar à página inicial', + 'nothing' => 'nada', + 'no_result' => 'Nenhum resultado', + 'information' => 'Informações', + 'send' => 'Enviar', + 'optimize' => 'Otimizar', + 'IP' => 'IP', + 'browser' => 'Navegador', + 'operating_system_short' => 'Sistema Operacional', + 'no_entry_yet' => 'Nenhuma entrada ainda', + 'time' => 'Hora', + 'ip_address' => 'Endereço IP', + 'device' => 'Dispositivo', + 'one_month' => '1 mês.', + 'x_month' => ':x meses.', + 'one_year' => '1 ano.', +]; diff --git a/resources/lang/pt/errors.php b/resources/lang/pt/errors.php new file mode 100644 index 00000000..f959785b --- /dev/null +++ b/resources/lang/pt/errors.php @@ -0,0 +1,75 @@ + 'Resource not found', + 'error_occured' => 'An error occured:', + 'refresh' => 'Refresh', + 'no_valid_otp' => 'No valid OTP resource in this QR code', + 'something_wrong_with_server' => 'Something is wrong with your server', + 'Unable_to_decrypt_uri' => 'Unable to decrypt uri', + 'not_a_supported_otp_type' => 'This OTP format is not currently supported', + 'cannot_create_otp_without_secret' => 'Cannot create an OTP without a secret', + 'data_of_qrcode_is_not_valid_URI' => 'The data of this QR code is not a valid OTP Auth URI. The QR code contains:', + 'wrong_current_password' => 'Wrong current password, nothing has changed', + 'error_during_encryption' => 'Encryption failed, your database remains unprotected.', + 'error_during_decryption' => 'Decryption failed, your database is still protected. This is mainly caused by an integrity issue of encrypted data for one or more accounts.', + 'qrcode_cannot_be_read' => 'This QR code is unreadable', + 'too_many_ids' => 'too many ids were included in the query parameter, max 100 allowed', + 'delete_user_setting_only' => 'Only user-created setting can be deleted', + 'indecipherable' => '*indecipherable*', + 'cannot_decipher_secret' => 'The secret cannot be deciphered. This is mainly caused by a wrong APP_KEY set in the .env configuration file of 2Fauth or a corrupted data stored in database.', + 'https_required' => 'HTTPS context required', + 'browser_does_not_support_webauthn' => 'Your device does not support webauthn. Try again later using a more modern browser', + 'aborted_by_user' => 'Aborted by user', + 'security_device_already_registered' => 'Device already registered', + 'not_allowed_operation' => 'Operation not allowed', + 'no_authenticator_support_specified_algorithms' => 'No authenticators support specified algorithms', + 'authenticator_missing_discoverable_credential_support' => 'Authenticator missing discoverable credential support', + 'authenticator_missing_user_verification_support' => 'Authenticator missing user verification support', + 'unknown_error' => 'Unknown error', + 'security_error_check_rpid' => 'Security error
Check your WEBAUTHN_ID env var', + '2fauth_has_not_a_valid_domain' => '2FAuth\'s domain is not a valid domain', + 'user_id_not_between_1_64' => 'User ID was not between 1 and 64 chars', + 'no_entry_was_of_type_public_key' => 'No entry was of type "public-key"', + 'unsupported_with_reverseproxy' => 'Not applicable when using an auth proxy', + 'user_deletion_failed' => 'User account deletion failed, no data have been deleted', + 'auth_proxy_failed' => 'Proxy authentication failed', + 'auth_proxy_failed_legend' => '2Fauth is configured to run behind an authentication proxy but your proxy does not return the expected header. Check your configuration and try again.', + 'invalid_x_migration' => 'Invalid or unreadable :appname data', + 'invalid_2fa_data' => 'Invalid 2FA data', + 'unsupported_migration' => 'Data do not match any supported format', + 'unsupported_otp_type' => 'Unsupported OTP type', + 'encrypted_migration' => 'Unreadable, the data seem encrypted', + 'no_logo_found_for_x' => 'No logo available for :service', + 'file_upload_failed' => 'File upload failed', + 'unauthorized' => 'Unauthorized', + 'unauthorized_legend' => 'You do not have permissions to view this resource or to perform this action', + 'cannot_delete_the_only_admin' => 'Cannot delete the only admin account', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', + 'error_during_data_fetching' => '💀 Something went wrong during data fetching', + 'check_failed_try_later' => 'Check failed, please retry later', + 'sso_disabled' => 'SSO is disabled', + 'sso_bad_provider_setup' => 'This SSO provider is not fully setup in your .env file', + 'sso_failed' => 'Authentication via SSO rejected', + 'sso_no_register' => 'Registrations are disabled', + 'sso_email_already_used' => 'A user account with the same email address already exists but it does not match your external account ID. Do not use SSO if you are already registered on 2FAuth with this email.', + 'account_managed_by_external_provider' => 'Account managed by an external provider', + 'data_cannot_be_refreshed_from_server' => 'Data cannot be refreshed from server', + 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', +]; \ No newline at end of file diff --git a/resources/lang/pt/groups.php b/resources/lang/pt/groups.php new file mode 100644 index 00000000..db5fc851 --- /dev/null +++ b/resources/lang/pt/groups.php @@ -0,0 +1,41 @@ + 'Grupos', + 'create_group' => 'Criar um novo grupo', + 'show_group_selector' => 'Mostrar seletor de grupo', + 'hide_group_selector' => 'Ocultar seletor de grupo', + 'select_accounts_to_show' => 'Selecionar grupo de contas para mostrar', + 'x_accounts' => ':count contas', + 'manage_groups' => 'Gerenciar grupos', + 'active_group' => 'Ativar grupo', + 'manage_groups_legend' => 'Você pode criar grupos para organizar suas contas da forma que quiser. Todas as contas permanecem visíveis no pseudo grupo chamado "Todos", independentemente do grupo ao qual pertencem.', + 'deleting_group_does_not_delete_accounts' => 'Excluir um grupo não exclui contas', + 'move_selected_to' => 'Mover selecionados para', + 'move_selected_to_group' => 'Mover selecionados para um grupo', + 'no_group' => 'Sem grupo', + 'change_group' => 'Mudar grupo', + 'group_successfully_created' => 'Grupo criado com sucesso', + 'group_name_saved' => 'Nome do grupo salvo', + 'group_successfully_deleted' => 'Grupo excluído com sucesso', + 'forms' => [ + 'new_group' => 'Novo grupo', + 'new_name' => 'Novo nome', + 'rename_group' => 'Renomear grupo', + ], + 'confirm' => [ + 'delete' => 'Tem certeza de que deseja excluir esse grupo?', + ], +]; \ No newline at end of file diff --git a/resources/lang/pt/languages.php b/resources/lang/pt/languages.php new file mode 100644 index 00000000..40b8a438 --- /dev/null +++ b/resources/lang/pt/languages.php @@ -0,0 +1,23 @@ + 'Preferência do navegador', + 'en' => 'English (Inglês)', + 'fr' => 'Français (Francês)', + 'de' => 'Deutsch (Alemão)', + 'es' => 'Español (Espanhol)', + 'zh' => '简体中文 (Chinês Simplificado)', + 'ru' => 'Русский (Russo)', + 'bg' => 'Български (Búlgaro)', + 'ja' => '日本語 (Japonês)', + 'hi' => 'हिंदी (Indiano)', +]; \ No newline at end of file diff --git a/resources/lang/pt/notifications.php b/resources/lang/pt/notifications.php new file mode 100644 index 00000000..cdeab118 --- /dev/null +++ b/resources/lang/pt/notifications.php @@ -0,0 +1,36 @@ + 'Hello', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', + 'test_email_settings' => [ + 'subject' => '2FAuth test email', + 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', + 'success' => 'Good news, it works :)' + ], + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], +]; \ No newline at end of file diff --git a/resources/lang/pt/pagination.php b/resources/lang/pt/pagination.php new file mode 100644 index 00000000..4deabd6f --- /dev/null +++ b/resources/lang/pt/pagination.php @@ -0,0 +1,19 @@ + '« Anterior', + 'next' => 'Próximo »', + +]; diff --git a/resources/lang/pt/passwords.php b/resources/lang/pt/passwords.php new file mode 100644 index 00000000..23d29a16 --- /dev/null +++ b/resources/lang/pt/passwords.php @@ -0,0 +1,26 @@ + 'Sua senha foi redefinida!', + 'sent' => 'Enviamos o link de redefinição de senha por e-mail!', + 'throttled' => 'Por favor aguarde antes de tentar novamente.', + 'token' => 'Este token de redefinição de senha é inválido.', + 'user' => "Não foi encontrado nenhum usuário com este endereço de e-mail.", + + // 2FAuth + 'password' => 'A senha deve conter pelo menos oito caracteres e ser igual à confirmação.', + +]; diff --git a/resources/lang/pt/settings.php b/resources/lang/pt/settings.php new file mode 100644 index 00000000..8226d787 --- /dev/null +++ b/resources/lang/pt/settings.php @@ -0,0 +1,171 @@ + 'Settings', + 'preferences' => 'Preferences', + 'account' => 'Account', + 'oauth' => 'OAuth', + 'webauthn' => 'WebAuthn', + 'tokens' => 'Tokens', + 'options' => 'Options', + 'user_preferences' => 'User preferences', + 'admin_settings' => 'Admin settings', + 'confirm' => [ + + ], + 'you_are_administrator' => 'You are an administrator', + 'account_linked_to_sso_x_provider' => 'You signed-in via SSO using your :provider account. Your information cannot be changed here but on :provider.', + 'general' => 'General', + 'security' => 'Security', + 'notifications' => 'Notifications', + 'profile' => 'Profile', + 'change_password' => 'Change password', + 'personal_access_tokens' => 'Personal access tokens', + 'token_legend' => 'Personal Access Tokens allow any app to authenticate to the 2Fauth API. You should specify the access token as a Bearer token in the authorization header of consumer apps requests.', + 'generate_new_token' => 'Generate a new token', + 'revoke' => 'Revoke', + 'token_revoked' => 'Token successfully revoked', + 'revoking_a_token_is_permanent' => 'Revoking a token is permanent', + 'confirm' => [ + 'revoke' => 'Are you sure you want to revoke this token?', + ], + 'make_sure_copy_token' => 'Make sure to copy your personal access token now. You won’t be able to see it again!', + 'data_input' => 'Data input', + 'forms' => [ + 'edit_settings' => 'Edit settings', + 'setting_saved' => 'Settings saved', + 'new_token' => 'New token', + 'some_translation_are_missing' => 'Some translations are missing using the browser preferred language?', + 'help_translate_2fauth' => 'Help translate 2FAuth', + 'language' => [ + 'label' => 'Language', + 'help' => 'Language used to translate the 2FAuth user interface. Named languages are complete, set the one of your choice to override your browser preference.' + ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], + 'show_otp_as_dot' => [ + 'label' => 'Show generated OTP as dot', + 'help' => 'Replace generated password caracters with *** to ensure confidentiality. Do not affect the copy/paste feature' + ], + 'reveal_dotted_otp' => [ + 'label' => 'Reveal obscured OTP', + 'help' => 'Let the ability to temporarily reveal Dot-Obscured passwords' + ], + 'close_otp_on_copy' => [ + 'label' => 'Close OTP after copy', + 'help' => 'Clicking a generated password to copy it automatically hide it from the screen' + ], + 'clear_search_on_copy' => [ + 'label' => 'Clear Search on copy', + 'help' => 'Empty the Search box right after a code has been copied to the clipboard' + ], + 'copy_otp_on_display' => [ + 'label' => 'Copy OTP on display', + 'help' => 'Automatically copy a generated password right after it appears on screen. Due to browsers limitations, only the first TOTP password will be copied, not the rotating ones' + ], + 'use_basic_qrcode_reader' => [ + 'label' => 'Use basic QR code reader', + 'help' => 'If you experiences issues when capturing QR codes enables this option to switch to a more basic but more reliable QR code reader' + ], + 'display_mode' => [ + 'label' => 'Display mode', + 'help' => 'Choose whether you want accounts to be displayed as a list or as a grid' + ], + 'password_format' => [ + 'label' => 'Password formatting', + 'help' => 'Change how the passwords are displayed by grouping digits to ease readability and memorization' + ], + 'pair' => 'by Pair', + 'pair_legend' => 'Group digits two by two', + 'trio_legend' => 'Group digits three by three', + 'half_legend' => 'Split digits into two equals groups', + 'trio' => 'by Trio', + 'half' => 'by Half', + 'grid' => 'Grid', + 'list' => 'List', + 'theme' => [ + 'label' => 'Theme', + 'help' => 'Force a specific theme or apply the theme defined in your system/browser preferences' + ], + 'light' => 'Light', + 'dark' => 'Dark', + 'automatic' => 'Auto', + 'show_accounts_icons' => [ + 'label' => 'Show icons', + 'help' => 'Show icons accounts in the main view' + ], + 'get_official_icons' => [ + 'label' => 'Get official icons', + 'help' => '(Try to) Get the official icon of the 2FA issuer when adding an account' + ], + 'auto_lock' => [ + 'label' => 'Auto lock', + 'help' => 'Log out the user automatically in case of inactivity. Has no effect when authentication is handled by a proxy and no custom logout url is specified.' + ], + 'default_group' => [ + 'label' => 'Default group', + 'help' => 'The group to which the newly created accounts are associated', + ], + 'view_default_group_on_copy' => [ + 'label' => 'View default group on copy', + 'help' => 'Always return to the default group when an OTP is copied', + ], + 'useDirectCapture' => [ + 'label' => 'Direct input', + 'help' => 'Choose whether you want to be prompted to choose an input mode among those available or if you want to directly use the default input mode', + ], + 'defaultCaptureMode' => [ + 'label' => 'Default input mode', + 'help' => 'Default input mode used when the Direct input option is On', + ], + 'remember_active_group' => [ + 'label' => 'Remember group filter', + 'help' => 'Save the last group filter applied and restore it on your next visit', + ], + 'otp_generation' => [ + 'label' => 'Show Password', + 'help' => 'Set how and when OTPs are displayed.
', + ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], + 'otp_generation_on_request' => 'After a click/tap', + 'otp_generation_on_request_legend' => 'Alone, in its own view', + 'otp_generation_on_request_title' => 'Click an account to get a password in a dedicated view', + 'otp_generation_on_home' => 'Constantly', + 'otp_generation_on_home_legend' => 'All of them, on home', + 'otp_generation_on_home_title' => 'Show all passwords in the main view, without doing anything', + 'never' => 'Never', + 'on_otp_copy' => 'On security code copy', + '1_minutes' => 'After 1 minute', + '5_minutes' => 'After 5 minutes', + '10_minutes' => 'After 10 minutes', + '15_minutes' => 'After 15 minutes', + '30_minutes' => 'After 30 minutes', + '1_hour' => 'After 1 hour', + '1_day' => 'After 1 day', + 'livescan' => 'QR code livescan', + 'upload' => 'QR code upload', + 'advanced_form' => 'Advanced form', + ], + +]; \ No newline at end of file diff --git a/resources/lang/pt/titles.php b/resources/lang/pt/titles.php new file mode 100644 index 00000000..2b60bb7d --- /dev/null +++ b/resources/lang/pt/titles.php @@ -0,0 +1,58 @@ + 'Nova conta', + 'capture' => 'Escanear QR code', + 'accounts' => 'Contas', + 'createAccount' => 'Criar conta', + 'importAccounts' => 'Importar contas', + 'editAccount' => 'Editar conta', + 'showQRcode' => 'Conta como QR code', + 'groups' => 'Grupos', + 'createGroup' => 'Criar grupo', + 'editGroup' => 'Editar grupo', + 'settings' => [ + 'options' => 'Opções', + 'account' => 'Conta de usuário', + 'oauth' => [ + 'tokens' => 'Código OAuth', + 'generatePAT' => 'Novo token pessoal', + ], + 'webauthn' => [ + 'editCredential' => 'Editar dispositivo', + 'devices' => 'Dispositivos WebAuthn', + ], + ], + 'login' => 'Login', + 'register' => 'Registrar', + 'autolock' => 'Bloqueio automático', + 'password' => [ + 'request' => 'Redefinir senha', + 'reset' => 'Nova senha', + ], + 'webauthn' => [ + 'lost' => 'Recuperar conta', + 'recover' => 'Registrar um novo dispositivo', + ], + 'flooded' => 'Erro Flood', + 'genericError' => 'Erro', + '404' => 'Item não encontrado', + 'about' => 'Sobre', + 'admin' => [ + 'appSetup' => 'Configuração do App', + 'users' => 'Gerenciamento de usuários', + 'createUser' => 'Criar usuário', + 'manageUser' => 'Administrar usuário', + 'logs' => [ + 'access' => 'Logs de acesso' + ] + ] +]; \ No newline at end of file diff --git a/resources/lang/pt/twofaccounts.php b/resources/lang/pt/twofaccounts.php new file mode 100644 index 00000000..086877e5 --- /dev/null +++ b/resources/lang/pt/twofaccounts.php @@ -0,0 +1,171 @@ + 'Service', + 'account' => 'Account', + 'icon' => 'Icon', + 'icon_for_account_x_at_service_y' => 'Icon of the :account account at :service', + 'icon_to_illustrate_the_account' => 'Icon that illustrates the account', + 'remove_icon' => 'Remove icon', + 'no_account_here' => 'No 2FA here!', + 'add_first_account' => 'Pick a method and add your first account', + 'use_full_form' => 'Or use the full form', + 'add_one' => 'Add one', + 'show_qrcode' => 'Show QR code', + 'no_service' => '- no service -', + 'account_created' => 'Account successfully created', + 'account_updated' => 'Account successfully updated', + 'accounts_deleted' => 'Account(s) successfully deleted', + 'accounts_moved' => 'Account(s) successfully moved', + 'export_selected_to_json' => 'Download a json export of selected accounts', + 'reveal' => 'reveal', + 'forms' => [ + 'service' => [ + 'placeholder' => 'Google, Twitter, Apple', + ], + 'account' => [ + 'placeholder' => 'John DOE', + ], + 'new_account' => 'New account', + 'edit_account' => 'Edit account', + 'otp_uri' => 'OTP Uri', + 'scan_qrcode' => 'Scan a QR code', + 'upload_qrcode' => 'Upload a QR code', + 'use_advanced_form' => 'Use the advanced form', + 'prefill_using_qrcode' => 'Prefill using a QR Code', + 'use_qrcode' => [ + 'val' => 'Use a qrcode', + 'title' => 'Use a QR code to fill the form magically', + ], + 'unlock' => [ + 'val' => 'Unlock', + 'title' => 'Unlock it (at your own risk)', + ], + 'lock' => [ + 'val' => 'Lock', + 'title' => 'Lock it', + ], + 'choose_image' => 'Upload', + 'i_m_lucky' => 'Try my luck', + 'i_m_lucky_legend' => 'The "Try my luck" button try to get the official icon of the given service. Enter actual service name without ".xyz" extension and try to avoid typo. (beta feature)', + 'test' => 'Test', + 'secret' => [ + 'label' => 'Secret', + 'help' => 'The key used to generate your security codes' + ], + 'plain_text' => 'Plain text', + 'otp_type' => [ + 'label' => 'Choose the type of OTP to create', + 'help' => 'Time-based OTP or HMAC-based OTP or Steam OTP' + ], + 'digits' => [ + 'label' => 'Digits', + 'help' => 'The number of digits of the generated security codes' + ], + 'algorithm' => [ + 'label' => 'Algorithm', + 'help' => 'The algorithm used to secure your security codes' + ], + 'period' => [ + 'label' => 'Period', + 'placeholder' => 'Default is 30', + 'help' => 'The period of validity of the generated security codes in second' + ], + 'counter' => [ + 'label' => 'Counter', + 'placeholder' => 'Default is 0', + 'help' => 'The initial counter value', + 'help_lock' => 'It is risky to edit the counter as you can desynchronize the account with the verification server of the service. Use the lock icon to enable modification, but only if you know for you are doing' + ], + 'image' => [ + 'label' => 'Image', + 'placeholder' => 'http://...', + 'help' => 'The url of an external image to use as the account icon' + ], + 'options_help' => 'You can leave the following options blank if you don\'t know how to set them. The most commonly used values will be applied.', + 'alternative_methods' => 'Alternative methods', + 'spaces_are_ignored' => 'Unwanted spaces will be automatically removed' + ], + 'stream' => [ + 'live_scan_cant_start' => 'Live scan can\'t start :(', + 'need_grant_permission' => [ + 'reason' => '2FAuth does not have permission to access your camera', + 'solution' => 'You need to grant permission to use your device camera. If you already denied and your browser do not prompt you again, please refers to the browser documentation to find out how to grant permission.', + 'click_camera_icon' => 'It is usually done by clicking on a slashed camera icon in or next to the browser\'s address bar', + ], + 'not_readable' => [ + 'reason' => 'Fail to load scanner', + 'solution' => 'Is the camera already in use? Ensure that no other app use your camera and try again' + ], + 'no_cam_on_device' => [ + 'reason' => 'No camera on this device', + 'solution' => 'Maybe you forgot to plug in your webcam' + ], + 'secured_context_required' => [ + 'reason' => 'Secure context required', + 'solution' => 'HTTPS is required for live scan. If you run 2FAuth from your computer, do not use virtual host other than localhost' + ], + 'https_required' => 'HTTPS required for camera streaming', + 'camera_not_suitable' => [ + 'reason' => 'Installed cameras are not suitable', + 'solution' => 'Please use another device/camera' + ], + 'stream_api_not_supported' => [ + 'reason' => 'Stream API is not supported in this browser', + 'solution' => 'You should use a modern browser' + ], + ], + 'confirm' => [ + 'delete' => 'Are you sure you want to delete this account?', + 'cancel' => 'Changes will be lost. Are you sure?', + 'discard' => 'Are you sure you want to discard this account?', + 'discard_all' => 'Are you sure you want to discard all accounts?', + 'discard_duplicates' => 'Are you sure you want to discard all duplicates?', + ], + 'import' => [ + 'import' => 'Import', + 'to_import' => 'Import', + 'import_legend' => '2FAuth can import data from various 2FA apps.', + 'import_legend_afterpart' => 'Use the Export feature of these apps to get a migration resource like a QR code or a JSON file then load it here.', + 'upload' => 'Upload', + 'scan' => 'Scan', + 'supported_formats_for_qrcode_upload' => 'Accepted: jpg, jpeg, png, bmp, gif, svg, or webp', + 'supported_formats_for_file_upload' => 'Accepted: Plain text, json, 2fas', + 'expected_format_for_direct_input' => 'Expected: A list of otpauth URI, one by line', + 'supported_migration_formats' => 'Supported migration formats', + 'qr_code' => 'QR Code', + 'text_file' => 'Text file', + 'direct_input' => 'Direct input', + 'plain_text' => 'Plain text', + 'parsing_data' => 'Parsing data...', + 'issuer' => 'Issuer', + 'imported' => 'Imported', + 'failure' => 'Failure', + 'x_valid_accounts_found' => ':count valid accounts found', + 'submitted_data_parsed_now_accounts_are_awaiting_import' => 'The following 2FA accounts were found in the migration resource. So far none of them have been added to 2FAuth.', + 'use_buttons_to_save_or_discard' => 'Use the available buttons to permanently save them to your 2FA collection or discard them.', + 'import_all' => 'Import all', + 'import_this_account' => 'Import this account', + 'discard_all' => 'Discard all', + 'discard_duplicates' => 'Discard duplicates', + 'discard_this_account' => 'Discard this account', + 'generate_a_test_password' => 'Generate a test pasword', + 'possible_duplicate' => 'An account with the exact same data already exists', + 'invalid_account' => '- invalid account -', + 'invalid_service' => '- invalid service -', + 'do_not_set_password_or_encryption' => 'Do NOT enable Password protection or Encryption when you export data from a 2FA app otherwise 2FAuth will not be able to decipher them.', + ], + +]; \ No newline at end of file diff --git a/resources/lang/pt/validation.php b/resources/lang/pt/validation.php new file mode 100644 index 00000000..b49f6f93 --- /dev/null +++ b/resources/lang/pt/validation.php @@ -0,0 +1,206 @@ + 'The :attribute must be accepted.', + 'accepted_if' => 'The :attribute must be accepted when :other is :value.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', + 'alpha' => 'The :attribute must only contain letters.', + 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', + 'alpha_num' => 'The :attribute must only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'between' => [ + 'array' => 'The :attribute must have between :min and :max items.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'numeric' => 'The :attribute must be between :min and :max.', + 'string' => 'The :attribute must be between :min and :max characters.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'current_password' => 'The password is incorrect.', + 'date' => 'The :attribute is not a valid date.', + 'date_equals' => 'The :attribute must be a date equal to :date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'declined' => 'The :attribute must be declined.', + 'declined_if' => 'The :attribute must be declined when :other is :value.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'doesnt_end_with' => 'The :attribute may not end with one of the following: :values.', + 'doesnt_start_with' => 'The :attribute may not start with one of the following: :values.', + 'email' => 'The :attribute must be a valid email address.', + 'ends_with' => 'The :attribute must end with one of the following: :values.', + 'enum' => 'The selected :attribute is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'gt' => [ + 'array' => 'The :attribute must have more than :value items.', + 'file' => 'The :attribute must be greater than :value kilobytes.', + 'numeric' => 'The :attribute must be greater than :value.', + 'string' => 'The :attribute must be greater than :value characters.', + ], + 'gte' => [ + 'array' => 'The :attribute must have :value items or more.', + 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be greater than or equal to :value.', + 'string' => 'The :attribute must be greater than or equal to :value characters.', + ], + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'ipv4' => 'The :attribute must be a valid IPv4 address.', + 'ipv6' => 'The :attribute must be a valid IPv6 address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'lt' => [ + 'array' => 'The :attribute must have less than :value items.', + 'file' => 'The :attribute must be less than :value kilobytes.', + 'numeric' => 'The :attribute must be less than :value.', + 'string' => 'The :attribute must be less than :value characters.', + ], + 'lte' => [ + 'array' => 'The :attribute must not have more than :value items.', + 'file' => 'The :attribute must be less than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be less than or equal to :value.', + 'string' => 'The :attribute must be less than or equal to :value characters.', + ], + 'mac_address' => 'The :attribute must be a valid MAC address.', + 'max' => [ + 'array' => 'The :attribute must not have more than :max items.', + 'file' => 'The :attribute must not be greater than :max kilobytes.', + 'numeric' => 'The :attribute must not be greater than :max.', + 'string' => 'The :attribute must not be greater than :max characters.', + ], + 'max_digits' => 'The :attribute must not have more than :max digits.', + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'array' => 'The :attribute must have at least :min items.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'numeric' => 'The :attribute must be at least :min.', + 'string' => 'The :attribute must be at least :min characters.', + ], + 'min_digits' => 'The :attribute must have at least :min digits.', + 'multiple_of' => 'The :attribute must be a multiple of :value.', + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute format is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'password' => [ + 'letters' => 'The :attribute must contain at least one letter.', + 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.', + 'numbers' => 'The :attribute must contain at least one number.', + 'symbols' => 'The :attribute must contain at least one symbol.', + 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', + ], + 'present' => 'The :attribute field must be present.', + 'prohibited' => 'The :attribute field is prohibited.', + 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', + 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', + 'prohibits' => 'The :attribute field prohibits :other from being present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_array_keys' => 'The :attribute field must contain entries for: :values.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values are present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'array' => 'The :attribute must contain :size items.', + 'file' => 'The :attribute must be :size kilobytes.', + 'numeric' => 'The :attribute must be :size.', + 'string' => 'The :attribute must be :size characters.', + ], + 'starts_with' => 'The :attribute must start with one of the following: :values.', + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid timezone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'url' => 'The :attribute must be a valid URL.', + 'uuid' => 'The :attribute must be a valid UUID.', + + 'single' => 'When using :attribute it must be the only parameter in this request body', + 'onlyCustomOtpWithUri' => 'The uri parameter must be provided alone or only in combination with the \'custom_otp\' parameter', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'icon' => [ + 'image' => 'Supported format are jpeg, png, bmp, gif, svg, or webp.', + ], + 'qrcode' => [ + 'image' => 'Supported format are jpeg, png, bmp, gif, svg, or webp.', + ], + 'uri' => [ + 'regex' => 'The :attribute is not a valid otpauth uri.', + ], + 'otp_type' => [ + 'in' => 'The :attribute is not supported.', + ], + 'email' => [ + 'exists' => 'No account found using this email.', + 'ComplyWithEmailRestrictionPolicy' => 'This email address does not comply with the registration policy', + 'IsValidEmailList' => 'All emails must be valid and separated with a pipe' + ], + 'secret' => [ + 'isBase32Encoded' => 'The :attribute must be a base32 encoded string.', + ], + 'account' => [ + 'regex' => 'The :attribute must not contain colon.', + ], + 'service' => [ + 'regex' => 'The :attribute must not contain colon.', + ], + 'label' => [ + 'required' => 'The uri must have a label.', + ], + 'ids' => [ + 'regex' => 'IDs must be comma separated, without trailing comma.', + ] + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap our attribute placeholder + | with something more reader friendly such as "E-Mail Address" instead + | of "email". This simply helps us make our message more expressive. + | + */ + + 'attributes' => [], + +]; diff --git a/resources/lang/ro/admin.php b/resources/lang/ro/admin.php index 362a29e5..de367739 100644 --- a/resources/lang/ro/admin.php +++ b/resources/lang/ro/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', + 'purge_password_reset_request' => 'Are you sure you want to revoke the previous request?', 'delete_account' => 'Are you sure you want to delete this user?', 'edit_own_account' => 'This is your own account. Are you sure?', 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', @@ -38,17 +38,17 @@ 'user_management' => 'User management', 'oauth_provider' => 'OAuth provider', 'account_bound_to_x_via_oauth' => 'This account is bound to a :provider account via OAuth', - 'last_seen_on_date' => 'Last seen :date', - 'registered_on_date' => 'Registered :date', - 'updated_on_date' => 'Updated :date', + 'last_seen_on_date' => 'Дата последнего визита :date', + 'registered_on_date' => 'Зарегистрирован :date', + 'updated_on_date' => 'Обновлён :date', 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', + 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime), which means that the user has not yet changed their password but the link they received is still valid. This may be a request from the user themselves or from an administrator.', + 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning that the user has not changed their password in time. This may be a request from the user themselves or from an administrator.', 'resend_email' => 'Resend email', 'resend_email_title' => 'Resend a password reset email to the user', 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', + 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so they can set a new password. Any previous request will be revoked.', 'reset_password_title' => 'Reset the user\'s password', 'password_successfully_reset' => 'Password successfully reset', 'user_has_x_active_pat' => ':count active token(s)', @@ -68,6 +68,21 @@ 'check_now' => 'Check now', 'view_on_github' => 'View on Github', 'x_is_available' => ':version is available', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Last accesses', + 'see_full_log' => 'See full log', + 'browser_on_platform' => ':browser on :platform', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => 'Full access log for user :username', + 'show_last_month_log' => 'Show entries from the last month', + 'show_three_months_log' => 'Show entries from the last 3 months', + 'show_six_months_log' => 'Show entries from the last 6 months', + 'show_one_year_log' => 'Show entries from the last year', + 'sort_by_date_asc' => 'Show least recent first', + 'sort_by_date_desc' => 'Show most recent first', 'forms' => [ 'use_encryption' => [ 'label' => 'Protect sensitive data', diff --git a/resources/lang/ro/auth.php b/resources/lang/ro/auth.php index e7d5865d..7334b79a 100644 --- a/resources/lang/ro/auth.php +++ b/resources/lang/ro/auth.php @@ -22,7 +22,7 @@ 'sign_out' => 'Sign out', 'sign_in' => 'Sign in', 'sign_in_using' => 'Sign in using', - 'or_continue_with' => 'You an also continue with:', + 'or_continue_with' => 'You can also continue with:', 'sign_in_using_security_device' => 'Sign in using a security device', 'login_and_password' => 'login & password', 'register' => 'Register', diff --git a/resources/lang/ro/commons.php b/resources/lang/ro/commons.php index 0e23a4fb..17c0c45e 100644 --- a/resources/lang/ro/commons.php +++ b/resources/lang/ro/commons.php @@ -79,7 +79,16 @@ 'nothing' => 'nothing', 'no_result' => 'No result', 'information' => 'Information', - 'permissions' => 'Permissions', 'send' => 'Send', 'optimize' => 'Optimize', + 'IP' => 'IP', + 'browser' => 'Browser', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'No entry yet', + 'time' => 'Time', + 'ip_address' => 'IP Address', + 'device' => 'Device', + 'one_month' => '1 mo.', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', ]; diff --git a/resources/lang/ro/errors.php b/resources/lang/ro/errors.php index 01b18a1b..f959785b 100644 --- a/resources/lang/ro/errors.php +++ b/resources/lang/ro/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => 'Unauthorized', 'unauthorized_legend' => 'You do not have permissions to view this resource or to perform this action', 'cannot_delete_the_only_admin' => 'Cannot delete the only admin account', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', 'error_during_data_fetching' => '💀 Something went wrong during data fetching', 'check_failed_try_later' => 'Check failed, please retry later', 'sso_disabled' => 'SSO is disabled', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => 'Account managed by an external provider', 'data_cannot_be_refreshed_from_server' => 'Data cannot be refreshed from server', 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', ]; \ No newline at end of file diff --git a/resources/lang/ro/notifications.php b/resources/lang/ro/notifications.php index 9e7f8380..cdeab118 100644 --- a/resources/lang/ro/notifications.php +++ b/resources/lang/ro/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => 'Hello', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', 'test_email_settings' => [ 'subject' => '2FAuth test email', 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', 'success' => 'Good news, it works :)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], ]; \ No newline at end of file diff --git a/resources/lang/ro/settings.php b/resources/lang/ro/settings.php index eb70ec3c..8226d787 100644 --- a/resources/lang/ro/settings.php +++ b/resources/lang/ro/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'You signed-in via SSO using your :provider account. Your information cannot be changed here but on :provider.', 'general' => 'General', 'security' => 'Security', + 'notifications' => 'Notifications', 'profile' => 'Profile', 'change_password' => 'Change password', 'personal_access_tokens' => 'Personal access tokens', @@ -52,6 +53,10 @@ 'label' => 'Language', 'help' => 'Language used to translate the 2FAuth user interface. Named languages are complete, set the one of your choice to override your browser preference.' ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], 'show_otp_as_dot' => [ 'label' => 'Show generated OTP as dot', 'help' => 'Replace generated password caracters with *** to ensure confidentiality. Do not affect the copy/paste feature' @@ -135,6 +140,14 @@ 'label' => 'Show Password', 'help' => 'Set how and when OTPs are displayed.
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'After a click/tap', 'otp_generation_on_request_legend' => 'Alone, in its own view', 'otp_generation_on_request_title' => 'Click an account to get a password in a dedicated view', diff --git a/resources/lang/ro/titles.php b/resources/lang/ro/titles.php index 9a43fada..85802fe8 100644 --- a/resources/lang/ro/titles.php +++ b/resources/lang/ro/titles.php @@ -51,5 +51,8 @@ 'users' => 'Users management', 'createUser' => 'Create user', 'manageUser' => 'Manage user', + 'logs' => [ + 'access' => 'Access log' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/ru/admin.php b/resources/lang/ru/admin.php index 51b8d27d..b7cb2daa 100644 --- a/resources/lang/ru/admin.php +++ b/resources/lang/ru/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => 'Вы уверены, что хотите удалить этого пользователя? Это действие невозможно отменить.', 'request_password_reset' => 'Вы уверены, что хотите сбросить пароль этого пользователя?', - 'purge_password_reset_request' => 'Вы уверены, что хотите удалить заявку?', + 'purge_password_reset_request' => 'Вы уверены, что хотите отозвать предыдущий запрос?', 'delete_account' => 'Вы действительно хотите удалить этого пользователя?', 'edit_own_account' => 'Это ваша собственная учётная запись. Вы уверены?', 'change_admin_role' => 'Это будет иметь серьезные последствия для разрешений этого пользователя. Вы уверены?', @@ -68,6 +68,21 @@ 'check_now' => 'Проверить', 'view_on_github' => 'Посмотреть на GitHub', 'x_is_available' => 'Новая версия :version доступна', + 'successful_login_on' => 'Успешный вход :login_at', + 'successful_logout_on' => 'Успешный выход :login_at', + 'failed_login_on' => 'Ошибка входа :login_at', + 'viewed_on' => 'Просмотрено :login_at', + 'last_accesses' => 'Последний доступ', + 'see_full_log' => 'Смотреть полный журнал', + 'browser_on_platform' => ':browser на :platform', + 'access_log_has_more_entries' => 'Журнал доступа содержит больше записей.', + 'access_log_legend_for_user' => 'Полный журнал доступа пользователя :username', + 'show_last_month_log' => 'Показать записи за последний месяц', + 'show_three_months_log' => 'Показать записи за последние 3 месяца', + 'show_six_months_log' => 'Показать записи за последние 6 месяцев', + 'show_one_year_log' => 'Показать записи за последний год', + 'sort_by_date_asc' => 'Показать сначала первые', + 'sort_by_date_desc' => 'Показать сначала последние', 'forms' => [ 'use_encryption' => [ 'label' => 'Защитить конфиденциальные данные', diff --git a/resources/lang/ru/auth.php b/resources/lang/ru/auth.php index 396bd127..da9596c6 100644 --- a/resources/lang/ru/auth.php +++ b/resources/lang/ru/auth.php @@ -22,7 +22,7 @@ 'sign_out' => 'Выйти', 'sign_in' => 'Войти', 'sign_in_using' => 'Войти с помощью', - 'or_continue_with' => 'Вы также можете продолжить с:', + 'or_continue_with' => 'Также вы можете продолжить с:', 'sign_in_using_security_device' => 'Войти, используя устройство безопасности', 'login_and_password' => 'имени пользователя и пароля', 'register' => 'Регистрация', diff --git a/resources/lang/ru/commons.php b/resources/lang/ru/commons.php index c09e621f..f975a245 100644 --- a/resources/lang/ru/commons.php +++ b/resources/lang/ru/commons.php @@ -79,7 +79,16 @@ 'nothing' => 'ничего', 'no_result' => 'Нет результатов', 'information' => 'Информация', - 'permissions' => 'Разрешения', 'send' => 'Отправить', 'optimize' => 'Оптимизировать', + 'IP' => 'IP', + 'browser' => 'Браузер', + 'operating_system_short' => 'Операционная система', + 'no_entry_yet' => 'Пока нет записей', + 'time' => 'Время', + 'ip_address' => 'IP Адрес', + 'device' => 'Устройство', + 'one_month' => '1 мес.', + 'x_month' => ':x мес.', + 'one_year' => '1 г.', ]; diff --git a/resources/lang/ru/errors.php b/resources/lang/ru/errors.php index fe4cb9fe..61766f7c 100644 --- a/resources/lang/ru/errors.php +++ b/resources/lang/ru/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => 'Авторизация не выполнена', 'unauthorized_legend' => 'У вас нет разрешения на просмотр этого ресурса или выполнение этого действия', 'cannot_delete_the_only_admin' => 'Невозможно удалить единственную учётную запись администратора', + 'cannot_demote_the_only_admin' => 'Невозможно разжаловать единственную учётную запись администратора', 'error_during_data_fetching' => '💀 Что-то пошло не так во время получения данных', 'check_failed_try_later' => 'Проверка не удалась, повторите попытку позже', 'sso_disabled' => 'SSO отключено', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => 'Учётная запись управляется внешним провайдером', 'data_cannot_be_refreshed_from_server' => 'Не удалось обновить данные с сервера', 'no_pwd_reset_for_this_user_type' => 'Для этого пользователя сброс пароля недоступен', + 'cannot_detect_qrcode_in_image' => 'Невозможно обнаружить QR-код на изображении, попробуйте обрезать изображение', + 'cannot_decode_detected_qrcode' => 'Не удается декодировать обнаруженный QR-код, попробуйте обрезать или сделать изображение более резким', + 'qrcode_has_invalid_checksum' => 'QR-код имеет некорректную контрольную сумму', + 'no_readable_qrcode' => 'Нет читаемого QR кода', ]; \ No newline at end of file diff --git a/resources/lang/ru/notifications.php b/resources/lang/ru/notifications.php index 1b042c9f..d3d7bd0a 100644 --- a/resources/lang/ru/notifications.php +++ b/resources/lang/ru/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => 'Привет', + 'hello_user' => 'Привет, :username,', + 'regards' => 'С наилучшими пожеланиями', 'test_email_settings' => [ 'subject' => 'Тестовое письмо 2FAuth', 'reason' => 'Вы получили это письмо, потому что вы запросили тестовое письмо, чтобы проверить настройки электронной почты вашего экземпляра 2FAuth.', 'success' => 'Хорошие новости! Всё работает! :-)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'Новое устройство только что подключилось к вашей учетной записи 2FAuth.', + 'connection_details' => 'Информация об этом подключении', + 'recommandations' => 'Если это вы, то вы можете проигнорировать это уведомление. Если вы подозреваете, что какое-либо подозрительное действие с вашей учётной записью, измените ваш пароль.' + ], + 'failed_login' => [ + 'subject' => 'Не удалось войти в 2FAuth', + 'resume' => 'Произошла неудачная попытка входа в вашу учётную запись 2FAuth.', + 'connection_details' => 'Подробности об этой попытке подключения', + 'recommandations' => 'Если это были вы, можете проигнорировать это предупреждение. Если дальнейшие попытки не удались, свяжитесь с администратором 2FAuth для проверки настроек безопасности и принятия мер против этого атакующего.' + ], ]; \ No newline at end of file diff --git a/resources/lang/ru/settings.php b/resources/lang/ru/settings.php index 15eedef3..5515b0c4 100644 --- a/resources/lang/ru/settings.php +++ b/resources/lang/ru/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'Вы вошли через SSO с помощью учётной записи :provider. Ваша информация не может быть изменена здесь, измените данные в :provider.', 'general' => 'Общие', 'security' => 'Безопасность', + 'notifications' => 'Notifications', 'profile' => 'Профиль', 'change_password' => 'Изменить пароль', 'personal_access_tokens' => 'Персональные токены доступа', @@ -52,6 +53,10 @@ 'label' => 'Язык', 'help' => 'Язык, используемый для пользовательского интерфейса 2FAuth. Именованные языки полны, выберите язык, чтобы переопределить настройки браузера по умолчанию.' ], + 'timezone' => [ + 'label' => 'Часовой пояс', + 'help' => 'Часовой пояс применяется ко всем датам и временам, отображаемым в приложении' + ], 'show_otp_as_dot' => [ 'label' => 'Показать сгенерированный код OTP как звёздочки', 'help' => 'Заменить сгенерированный код на звёздочки (***) для обеспечения конфиденциальности. Это не повлияет на функцию копирования/вставки' @@ -135,6 +140,14 @@ 'label' => 'Показывать пароль', 'help' => 'Установка того, как и когда отображаются OTP .
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'После щелчка/касания', 'otp_generation_on_request_legend' => 'По одиночке, в отдельном окне', 'otp_generation_on_request_title' => 'Щёлкните на учётную запись, чтобы получить код в отдельном окне', diff --git a/resources/lang/ru/titles.php b/resources/lang/ru/titles.php index c52ca25e..458c6069 100644 --- a/resources/lang/ru/titles.php +++ b/resources/lang/ru/titles.php @@ -51,5 +51,8 @@ 'users' => 'Управление пользователями', 'createUser' => 'Создать пользователя', 'manageUser' => 'Управление пользователем', + 'logs' => [ + 'access' => 'Журнал доступа' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/ru/validation.php b/resources/lang/ru/validation.php index 40e7bbec..02a9f05d 100644 --- a/resources/lang/ru/validation.php +++ b/resources/lang/ru/validation.php @@ -26,7 +26,7 @@ 'before_or_equal' => 'В поле :attribute должна быть дата раньше или равняться :date.', 'between' => [ 'array' => 'Количество элементов в поле :attribute должно быть между :min и :max.', - 'file' => 'Размер файла в поле :attribute должен быть между :min и :max Килобайт(а).', + 'file' => 'Размер файла в поле :attribute должен быть больше :min и меньше :max килобайт.', 'numeric' => 'Поле :attribute должно быть между :min и :max.', 'string' => 'Количество символов в поле :attribute должно быть между :min и :max.', ], diff --git a/resources/lang/si/admin.php b/resources/lang/si/admin.php index 362a29e5..762175ec 100644 --- a/resources/lang/si/admin.php +++ b/resources/lang/si/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', + 'purge_password_reset_request' => 'Are you sure you want to revoke the previous request?', 'delete_account' => 'Are you sure you want to delete this user?', 'edit_own_account' => 'This is your own account. Are you sure?', 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', @@ -42,13 +42,13 @@ 'registered_on_date' => 'Registered :date', 'updated_on_date' => 'Updated :date', 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', + 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime), which means that the user has not yet changed their password but the link they received is still valid. This may be a request from the user themselves or from an administrator.', + 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning that the user has not changed their password in time. This may be a request from the user themselves or from an administrator.', 'resend_email' => 'Resend email', 'resend_email_title' => 'Resend a password reset email to the user', 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', + 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so they can set a new password. Any previous request will be revoked.', 'reset_password_title' => 'Reset the user\'s password', 'password_successfully_reset' => 'Password successfully reset', 'user_has_x_active_pat' => ':count active token(s)', @@ -68,6 +68,21 @@ 'check_now' => 'Check now', 'view_on_github' => 'View on Github', 'x_is_available' => ':version is available', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Last accesses', + 'see_full_log' => 'See full log', + 'browser_on_platform' => ':browser on :platform', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => 'Full access log for user :username', + 'show_last_month_log' => 'Show entries from the last month', + 'show_three_months_log' => 'Show entries from the last 3 months', + 'show_six_months_log' => 'Show entries from the last 6 months', + 'show_one_year_log' => 'Show entries from the last year', + 'sort_by_date_asc' => 'Show least recent first', + 'sort_by_date_desc' => 'Show most recent first', 'forms' => [ 'use_encryption' => [ 'label' => 'Protect sensitive data', diff --git a/resources/lang/si/auth.php b/resources/lang/si/auth.php index f7e7e973..7200b698 100644 --- a/resources/lang/si/auth.php +++ b/resources/lang/si/auth.php @@ -22,7 +22,7 @@ 'sign_out' => 'වරන්න', 'sign_in' => 'පුරන්න', 'sign_in_using' => 'Sign in using', - 'or_continue_with' => 'You an also continue with:', + 'or_continue_with' => 'You can also continue with:', 'sign_in_using_security_device' => 'Sign in using a security device', 'login_and_password' => 'login & password', 'register' => 'ලියාපදිංචි වන්න', @@ -94,7 +94,7 @@ 'reset_your_password' => 'Reset your password', 'reset_password' => 'මුරපදය නැවත සකසන්න', 'disabled_in_demo' => 'Feature disabled in Demo mode', - 'new_password' => 'නව මුරපදය', + 'new_password' => 'New password', 'current_password' => [ 'label' => 'වත්මන් මුරපදය', 'help' => 'Fill in your current password to confirm that it\'s you' diff --git a/resources/lang/si/commons.php b/resources/lang/si/commons.php index 06b3c187..ecb5ea20 100644 --- a/resources/lang/si/commons.php +++ b/resources/lang/si/commons.php @@ -79,7 +79,16 @@ 'nothing' => 'nothing', 'no_result' => 'No result', 'information' => 'Information', - 'permissions' => 'Permissions', 'send' => 'Send', 'optimize' => 'Optimize', + 'IP' => 'IP', + 'browser' => 'Browser', + 'operating_system_short' => 'OS', + 'no_entry_yet' => 'No entry yet', + 'time' => 'Time', + 'ip_address' => 'IP Address', + 'device' => 'Device', + 'one_month' => '1 mo.', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', ]; diff --git a/resources/lang/si/errors.php b/resources/lang/si/errors.php index dea0d028..efe14f6a 100644 --- a/resources/lang/si/errors.php +++ b/resources/lang/si/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => 'Unauthorized', 'unauthorized_legend' => 'You do not have permissions to view this resource or to perform this action', 'cannot_delete_the_only_admin' => 'Cannot delete the only admin account', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', 'error_during_data_fetching' => '💀 Something went wrong during data fetching', 'check_failed_try_later' => 'Check failed, please retry later', 'sso_disabled' => 'SSO is disabled', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => 'Account managed by an external provider', 'data_cannot_be_refreshed_from_server' => 'Data cannot be refreshed from server', 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', ]; \ No newline at end of file diff --git a/resources/lang/si/notifications.php b/resources/lang/si/notifications.php index 9e7f8380..cdeab118 100644 --- a/resources/lang/si/notifications.php +++ b/resources/lang/si/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => 'Hello', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', 'test_email_settings' => [ 'subject' => '2FAuth test email', 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', 'success' => 'Good news, it works :)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], ]; \ No newline at end of file diff --git a/resources/lang/si/settings.php b/resources/lang/si/settings.php index 62b07a85..2bf3e4b8 100644 --- a/resources/lang/si/settings.php +++ b/resources/lang/si/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => 'You signed-in via SSO using your :provider account. Your information cannot be changed here but on :provider.', 'general' => 'General', 'security' => 'ආරක්ෂාව', + 'notifications' => 'Notifications', 'profile' => 'Profile', 'change_password' => 'Change password', 'personal_access_tokens' => 'Personal access tokens', @@ -52,6 +53,10 @@ 'label' => 'භාෂාව', 'help' => 'Language used to translate the 2FAuth user interface. Named languages are complete, set the one of your choice to override your browser preference.' ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], 'show_otp_as_dot' => [ 'label' => 'Show generated OTP as dot', 'help' => 'Replace generated password caracters with *** to ensure confidentiality. Do not affect the copy/paste feature' @@ -135,6 +140,14 @@ 'label' => 'Show Password', 'help' => 'Set how and when OTPs are displayed.
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => 'After a click/tap', 'otp_generation_on_request_legend' => 'Alone, in its own view', 'otp_generation_on_request_title' => 'Click an account to get a password in a dedicated view', diff --git a/resources/lang/si/titles.php b/resources/lang/si/titles.php index 9a43fada..85802fe8 100644 --- a/resources/lang/si/titles.php +++ b/resources/lang/si/titles.php @@ -51,5 +51,8 @@ 'users' => 'Users management', 'createUser' => 'Create user', 'manageUser' => 'Manage user', + 'logs' => [ + 'access' => 'Access log' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/tr/admin.php b/resources/lang/tr/admin.php index 362a29e5..6e523644 100644 --- a/resources/lang/tr/admin.php +++ b/resources/lang/tr/admin.php @@ -13,102 +13,117 @@ | */ - 'admin' => 'Admin', - 'app_setup' => 'App setup', - 'registrations' => 'Registrations', - 'users' => 'Users', - 'users_legend' => 'Manage users registered on your instance or create new ones.', - 'admin_settings' => 'Admin settings', - 'create_new_user' => 'Create a user', - 'new_user' => 'New user', - 'search_user_placeholder' => 'User name, email...', - 'quick_filters_colons' => 'Quick filters:', - 'user_created' => 'user successfully created', + 'admin' => 'Yönetici', + 'app_setup' => 'Uygulama Kurulumu', + 'registrations' => 'Kayıt', + 'users' => 'Kullanıcılar', + 'users_legend' => 'Uygulamanızda kayıtlı kullanıcılar yönetin veya yeni kullanıcı oluşturun.', + 'admin_settings' => 'Yönetici ayarları', + 'create_new_user' => 'Kullanıcı oluştur', + 'new_user' => 'Yeni kullanıcı', + 'search_user_placeholder' => 'Kullanıcı adı, ePosta...', + 'quick_filters_colons' => 'Hızlı filtreler:', + 'user_created' => 'kullanıcı başarıyla oluşturuldu', 'confirm' => [ - 'delete_user' => 'Are you sure you want to delete this user? There is no going back.', - 'request_password_reset' => 'Are you sure you want to reset this user\'s password?', - 'purge_password_reset_request' => 'Are you sure you want to purge the request?', - 'delete_account' => 'Are you sure you want to delete this user?', - 'edit_own_account' => 'This is your own account. Are you sure?', - 'change_admin_role' => 'This will have serious impacts on this user\'s permissions. Are you sure?', - 'demote_own_account' => 'You will no longer be an administrator. Really sure?' + 'delete_user' => 'Bu kullanıcıyı silmek istediğinizden emin misiniz? Geri dönüşü olmayacak.', + 'request_password_reset' => 'Bu kullanıcının şifresini sıfırlamak istediğinizden emin misiniz?', + 'purge_password_reset_request' => 'Bir önceki talebi iptal etmek istediğinize emin misiniz?', + 'delete_account' => 'Bu kullanıcıyı silmek istediğinize emin misiniz?', + 'edit_own_account' => 'Bu sizin kendi hesabınız. Emin misiniz?', + 'change_admin_role' => 'Bu, kullanıcının izinlerinde ciddi etkiler yaratacaktır. Emin misiniz?', + 'demote_own_account' => 'Bundan sonra yönetici olmayacaksınız. Gerçekten emin misiniz?' ], - 'logs' => 'Logs', - 'administration_legend' => 'Following settings are global and apply to all users.', - 'user_management' => 'User management', - 'oauth_provider' => 'OAuth provider', - 'account_bound_to_x_via_oauth' => 'This account is bound to a :provider account via OAuth', - 'last_seen_on_date' => 'Last seen :date', - 'registered_on_date' => 'Registered :date', - 'updated_on_date' => 'Updated :date', - 'access' => 'Access', - 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime) meaning the user didn\'t change its password yet but the link he received is still valid. This could be a request from the user himself or from an administrator.', - 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning the user didn\'t change its password in time. This could be a request from the user himself or from an administrator.', - 'resend_email' => 'Resend email', - 'resend_email_title' => 'Resend a password reset email to the user', - 'resend_email_help' => 'Use Resend email to send a new password reset email to the user so he can set a new password. This will leave its current password as is and any previous request will be revoked.', - 'reset_password' => 'Reset password', - 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so he can set a new password. Any previous request will be revoked.', - 'reset_password_title' => 'Reset the user\'s password', - 'password_successfully_reset' => 'Password successfully reset', - 'user_has_x_active_pat' => ':count active token(s)', - 'user_has_x_security_devices' => ':count security device(s) (passkeys)', - 'revoke_all_pat_for_user' => 'Revoke all user\'s tokens', - 'revoke_all_devices_for_user' => 'Revoke all user\'s security devices', - 'danger_zone' => 'Danger Zone', - 'delete_this_user_legend' => 'The user account will be deleted as well as all its 2FA data.', - 'this_is_not_soft_delete' => 'This is not a soft delete, there is no going back.', - 'delete_this_user' => 'Delete this user', - 'user_role_updated' => 'User role updated', - 'pats_succesfully_revoked' => 'User\'s PATs successfully revoked', - 'security_devices_succesfully_revoked' => 'User\'s security devices successfully revoked', - 'variables' => 'Variables', - 'cache_cleared' => 'Cache cleared', - 'cache_optimized' => 'Cache optimized', - 'check_now' => 'Check now', - 'view_on_github' => 'View on Github', - 'x_is_available' => ':version is available', + 'logs' => 'Günlükler', + 'administration_legend' => 'Aşağıdaki ayarlar genel ayarlardır ve her kullanıcı için geçerli olur.', + 'user_management' => 'Kullanıcı yönetimi', + 'oauth_provider' => 'OAuth sağlayıcı', + 'account_bound_to_x_via_oauth' => 'Bu hesap OAuth ile bir :provider hesabına bağlı', + 'last_seen_on_date' => 'Son görülme :date', + 'registered_on_date' => 'Kayıt tarihi :date', + 'updated_on_date' => 'Güncelleme tarihi :date', + 'access' => 'Erişim', + 'password_requested_on_t' => 'Bu kullanıcı için bir parola sıfırlama talebi bulunmakta (talep tarihi :datetimi), yani kullanıcı henüz parolasını değiştirmemiş ancak gönderilen parola değiştirme bağlantısı hala geçerli. Bu talep, kullanıcı tarafından veya bir yönetici tarafından yapılmış olabilir.', + 'password_request_expired' => 'Bu kullanıcı için bir parola sıfırlama talebi bulunmakta ama talebin süresi geçmiş yani kullanıcı, süresi içerisinde parolasını değiştirmemiş. Bu talep, kullanıcı tarafından veya bir yönetici tarafından yapılmış olabilir.', + 'resend_email' => 'ePosta\'yı yeniden gönder', + 'resend_email_title' => 'Parola sıfırlama ePostasını kullanıcıya yeniden gönder', + 'resend_email_help' => 'Kullanıcının yeni bir parola belirleyebilmesi için yeni bir parola sıfırlama e-postası göndermek üzere E-postayı yeniden gönder\'i kullanın. Bu, mevcut şifreyi olduğu gibi bırakacak ve önceki tüm talepler iptal edilecektir.', + 'reset_password' => 'Parolayı sıfırla', + 'reset_password_help' => 'Kullanıcıya yeni bir parola belirleyebilmesi için bir parola sıfırlama e-postası göndermeden önce, parola sıfırlama işlemini zorunlu kılmak için Parolayı sıfırla seçeneğini kullanın (bu, geçici bir parola oluşturacaktır). Daha önce yapılan tüm talepler iptal edilecektir.', + 'reset_password_title' => 'Kullanıcının parolasını sıfırla', + 'password_successfully_reset' => 'Parola başarıyla sıfırlandı', + 'user_has_x_active_pat' => ':count aktif token', + 'user_has_x_security_devices' => ':count güvenlik cihazı (parola anahtarı)', + 'revoke_all_pat_for_user' => 'Tüm kullanıcı token\'larını iptal et', + 'revoke_all_devices_for_user' => 'Tüm kullanıcı güvenlik cihazlarını iptal et', + 'danger_zone' => 'Tehlikeli Bölge', + 'delete_this_user_legend' => 'Kullanıcı hesabı ve tüm 2FA verileri silinecektir.', + 'this_is_not_soft_delete' => 'Bu kalıcı bir silme işlemidir, geri dönüşü olmayacak.', + 'delete_this_user' => 'Bu kullanıcıyı sil', + 'user_role_updated' => 'Kullanıcı rolü güncellendi', + 'pats_succesfully_revoked' => 'Kullanıcının KET\'leri başarıyla iptal edildi', + 'security_devices_succesfully_revoked' => 'Kullanıcının güvenlik cihazları başarıyla iptal edildi', + 'variables' => 'Değişkenler', + 'cache_cleared' => 'Önbellek temizlendi', + 'cache_optimized' => 'Önbellek iyileştirildi', + 'check_now' => 'Kontrol et', + 'view_on_github' => 'Github\'da görüntüle', + 'x_is_available' => ':version bulunuyor', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Son erişimler', + 'see_full_log' => 'Tüm günlüğü gör', + 'browser_on_platform' => ':platform üzerinde :browser', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => ':username kullanıcısının tüm erişim günlüğü', + 'show_last_month_log' => 'Geçen aydan girdiler göster', + 'show_three_months_log' => 'Geçen 3 aydan girdiler göster', + 'show_six_months_log' => 'Geçen 6 aydan girdiler göster', + 'show_one_year_log' => 'Geçen yıldan girdiler göster', + 'sort_by_date_asc' => 'Eskileri önce göster', + 'sort_by_date_desc' => 'Yenileri önce göster', 'forms' => [ 'use_encryption' => [ - 'label' => 'Protect sensitive data', - 'help' => 'Sensitive data, the 2FA secrets and emails, are stored encrypted in database. Be sure to backup the APP_KEY value of your .env file (or the whole file) as it serves as key encryption. There is no way to decypher encrypted data without this key.', + 'label' => 'Hassas verileri koru', + 'help' => '2FA sırları ve ePosta gibi hassas veriler, şifrelenmiş veritabanında tutulur. .env dosyanızda bulunan APP_KEY değeri anahtar şifreleme işlevi gördüğü için bu değeri (veya tüm dosyanızı) yedeklediğinizden emin olun. Şifrelenmiş veriyi bu anahtar olmadan açmanız mümkün değildir.', ], 'restrict_registration' => [ - 'label' => 'Restrict registration', - 'help' => 'Make registration only available to a limited range of email addresses. Both rules can be used simultaneously. This has no effect on registration via SSO.', + 'label' => 'Kayıtları sınırla', + 'help' => 'Kayıt işleminin yalnızca sınırlı sayıda e-posta adresi için geçerli olmasını sağlayın. Her iki kural da aynı anda kullanılabilir. Bunun SSO aracılığıyla kayıt üzerinde hiçbir etkisi yoktur.', ], 'restrict_list' => [ - 'label' => 'Filtering list', - 'help' => 'Emails in this list will be allowed to register. Separate addresses with a pipe ("|")', + 'label' => 'Filtre listesi', + 'help' => 'Bu listede yer alan ePosta adreslerinin kayıt olmasına izin verilecektir. Adresleri dikey çizgi ("|") ile ayırın', ], 'restrict_rule' => [ - 'label' => 'Filtering rule', - 'help' => 'Emails matching this regular expression will be allowed to register', + 'label' => 'Filtreleme kuralları', + 'help' => 'Bu betimlemelere (RegEx) uyan ePostaların kayıt olmasına izin verilecektir', ], 'disable_registration' => [ - 'label' => 'Disable registration', - 'help' => 'Prevent new user registration. Unless overridden (see below), this affects SSO as well, so new users won\'t be able to sign in via SSO', + 'label' => 'Kayıt olmayı devre dışı bırak', + 'help' => 'Yeni kullanıcı kaydını kapatır. Geçersiz kılınmadığı sürece (aşağıya bakın), bu seçenek SSO\'yu da etkiler ve yeni kullanıcıların SSO ile girişini engeller', ], 'enable_sso' => [ - 'label' => 'Enable Single Sign-On (SSO)', - 'help' => 'Allow visitors to authenticate using an external ID via the Single Sign-On scheme', + 'label' => 'Single Sign-On (SSO) etkileştir', + 'help' => 'Kullanıcıların Single Sign-On ile harici bir hesap üzerinden oturum açmasını sağlar', ], 'keep_sso_registration_enabled' => [ - 'label' => 'Keep SSO registration enabled', - 'help' => 'Allow new users to sign in for the first time via SSO whereas registration is disabled', + 'label' => 'SSO ile kayıt olmayı açık tut', + 'help' => 'Kayıt olma devre dışıyken yeni kullanıcıların SSO ile ilk kez oturum açmasına izin verir', ], 'is_admin' => [ - 'label' => 'Is administrator', - 'help' => 'Give administrator rights to the user. Administrators have permissions to manage the whole app, i.e. settings and other users, but cannot generate password for a 2FA they don\'t own.' + 'label' => 'Yönetici', + 'help' => 'Kullanıcıya "Yönetici" rolü verir. Yöneticiler uygulamanın tamamını, yani ayarları ve diğer kullanıcıları yönetme izinlerine sahiptir, ancak sahip olmadıkları bir 2FA için şifre oluşturamazlar.' ], 'test_email' => [ - 'label' => 'Email configuration test', - 'help' => 'Send a test email to control your instance\'s email configuration. It is important to have a working configuration, otherwise users will not be able to request a reset password.', - 'email_will_be_send_to_x' => 'The email will be send to :email', + 'label' => 'ePosta ayarlarını kontrol et', + 'help' => 'Uygulamadaki ePosta ayarlarını kontrol etmek için bir kontrol ePostası gönder. Çalışan bir sistemin olması önemlidir aksi takdirde kullanıcılar parola sıfırlama talebi gönderemezler.', + 'email_will_be_send_to_x' => 'ePosta :email adresine iletilecektir', ], 'cache_management' => [ - 'label' => 'Cache management', - 'help' => 'Sometimes cache needs to be cleared, for instance after a change to environment variables or an update. You can do it from here.', + 'label' => 'Önbellek yönetimi', + 'help' => 'Önbelleğin zaman zaman, örneğin bir değişkenin değiştirilmesinden veya uygulamanın güncellenmesinden sonra, temizlenmesi gerekir. Buradan yapabilirsiniz.', ] ], diff --git a/resources/lang/tr/auth.php b/resources/lang/tr/auth.php index e7d5865d..bc2f0716 100644 --- a/resources/lang/tr/auth.php +++ b/resources/lang/tr/auth.php @@ -14,115 +14,115 @@ */ // Laravel - 'failed' => 'These credentials do not match our records.', - 'password' => 'The provided password is incorrect.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + 'failed' => 'Bu kimlik bilgileri bizdeki kayıtlarla eşleşmiyor.', + 'password' => 'Parola yanlış.', + 'throttle' => 'Çok fazla hatalı giriş denemesi. Lütfen :seconds saniye sonra yeniden deneyin.', // 2FAuth - 'sign_out' => 'Sign out', - 'sign_in' => 'Sign in', - 'sign_in_using' => 'Sign in using', - 'or_continue_with' => 'You an also continue with:', - 'sign_in_using_security_device' => 'Sign in using a security device', - 'login_and_password' => 'login & password', - 'register' => 'Register', - 'welcome_to_2fauth' => 'Welcome to 2FAuth', - 'autolock_triggered' => 'Auto lock triggered', - 'autolock_triggered_punchline' => 'Auto-lock triggered, you\'ve been logged out', - 'already_authenticated' => 'Already authenticated, please log out first', - 'authentication' => 'Authentication', - 'maybe_later' => 'Maybe later', - 'user_account_controlled_by_proxy' => 'User account made available by an authentication proxy.
Manage the account at proxy level.', - 'auth_handled_by_proxy' => 'Authentication handled by a reverse proxy, below settings are disabled.
Manage authentication at proxy level.', + 'sign_out' => 'Çıkış', + 'sign_in' => 'Oturum aç', + 'sign_in_using' => 'Oturum açma yöntemi', + 'or_continue_with' => 'Ayrıca şununla da devam edebilirsiniz:', + 'sign_in_using_security_device' => 'Güvenlik cihazı kullanarak oturum aç', + 'login_and_password' => 'kullanıcı & şifre', + 'register' => 'Kayıt', + 'welcome_to_2fauth' => '2Fauth\'a hoşgeldiniz', + 'autolock_triggered' => 'Otomatik kilit devreye girdi', + 'autolock_triggered_punchline' => 'Otomatik kilit devreye girdi, sistemden çıkışınız yapıldı', + 'already_authenticated' => 'Zaten giriş yapılmış, lütfen öncelikle çıkış yapın', + 'authentication' => 'Kimlik doğrulama', + 'maybe_later' => 'Belki daha sonra', + 'user_account_controlled_by_proxy' => 'Kimlik doğrulama proxy\'si tarafından kullanıma sunulan kullanıcı hesabı.
Hesabı proxy düzeyinde yönetin.', + 'auth_handled_by_proxy' => 'Kimlik doğrulama ters proxy tarafından gerçekleştirilmiş, aşağıdaki ayarlar devre dışı.
Kimlik doğrulamayı proxy düzeyinde yönetin.', 'confirm' => [ - 'logout' => 'Are you sure you want to log out?', - 'revoke_device' => 'Are you sure you want to revoke this device?', - 'delete_account' => 'Are you sure you want to delete your account?', + 'logout' => 'Çıkış yapmak istediğinizden emin misiniz?', + 'revoke_device' => 'Bu cihazın yetkilerini iptal etmek istediğinizden emin misiniz?', + 'delete_account' => 'Hesabınızı silmek istediğinizden emin misiniz?', ], 'webauthn' => [ - 'security_device' => 'a security device', - 'security_devices' => 'Security devices', - 'security_devices_legend' => 'Authentication devices you can use to sign in 2FAuth, like security keys (i.e Yubikey) or smartphones with biometric capabilities (i.e. Apple FaceId/TouchId)', - 'enhance_security_using_webauthn' => 'You can enhance the security of your 2FAuth account by enabling WebAuthn authentication.

- WebAuthn allows you to use trusted devices (like Yubikeys or smartphones with biometric capabilities) to sign in quickly and more securely.', - 'use_security_device_to_sign_in' => 'Get ready to authenticate using (one of) your security devices. Plug your key in, remove face mask or gloves, etc.', - 'lost_your_device' => 'Lost your device?', - 'recover_your_account' => 'Recover your account', - 'account_recovery' => 'Account recovery', - 'recovery_punchline' => '2FAuth will send you a recovery link to this email address. Click the link in the received email and follow the instructions.

Ensure you open the email on a device you fully own.', - 'send_recovery_link' => 'Send recovery link', - 'account_recovery_email_sent' => 'Account recovery email sent!', - 'disable_all_security_devices' => 'Disable all security devices', - 'disable_all_security_devices_help' => 'All your security devices will be revoked. Use this option if you have lost one or its security has been compromised.', - 'register_a_new_device' => 'Register a new device', - 'register_a_device' => 'Register a device', - 'device_successfully_registered' => 'Device successfully registered', - 'device_revoked' => 'Device successfully revoked', - 'revoking_a_device_is_permanent' => 'Revoking a device is permanent', - 'recover_account_instructions' => 'To recover your account, 2FAuth resets some Webauthn settings so you will be able to sign in using your email and password.', - 'invalid_recovery_token' => 'Invalid recovery token', - 'webauthn_login_disabled' => 'Webauthn login disabled', - 'invalid_reset_token' => 'This reset token is invalid.', - 'rename_device' => 'Rename device', - 'my_device' => 'My device', - 'unknown_device' => 'Unknown device', + 'security_device' => 'bir güvenlik cihazı', + 'security_devices' => 'Güvenlik cihazları', + 'security_devices_legend' => '2FAuth\'a giriş yapabilmek için kullanabileceğiniz; güvenlik anahtarı (ör. Yubikey) veya biyometrik özellikli bir akıllı telefon (ör. Apple FaceId/TouchId) gibi cihazlar', + 'enhance_security_using_webauthn' => '2FAuth hesabınızın güvenliğini, WebAuthn kimlik doğrulaması kullanarak arttırabilirsiniz.

+ WebAuthn, güvenilir cihazlar (Yubikey veya biyometrik özellikli bir akıllı telefon gibi) kullanarak daha hızlı ve daha güvenli giriş yapmanızı sağlar.', + 'use_security_device_to_sign_in' => 'Güvenlik cihazlarınız ile giriş yapmaya hazırlanın. Ör. anahtar cihazınızı takın, yüz maskenizi veya eldiveninizi çıkarın.', + 'lost_your_device' => 'Cihazınız mı kayboldu?', + 'recover_your_account' => 'Hesabınızı kurtarın', + 'account_recovery' => 'Hesap kurtarma', + 'recovery_punchline' => '2FAuth, bu ePosta adresine bir kurtarma bağlantısı gönderecek. ePostadaki bağlantıya tıklayın ve talimatları takip edin.

ePostayı tamamen size ait olan bir cihazda açtığınızda emin olun.', + 'send_recovery_link' => 'Kurtarma bağlantısı gönder', + 'account_recovery_email_sent' => 'Hesap kurtarma ePostası gönderildi!', + 'disable_all_security_devices' => 'Tüm güvenlik cihazlarını devre dışı bırak', + 'disable_all_security_devices_help' => 'Tüm güvenlik cihazlarını iptal edilecektir. Bu seçeneği yalnızca cihazınız kayboldu veya cihazınızda güvenlik zaafiyeti oluştuysa kullanın.', + 'register_a_new_device' => 'Yeni cihaz ekle', + 'register_a_device' => 'Cihaz ekle', + 'device_successfully_registered' => 'Cihaz başarıyla kaydedildi', + 'device_revoked' => 'Cihaz başarıyla iptal edildi', + 'revoking_a_device_is_permanent' => 'Cihaz iptali kalıcıdır', + 'recover_account_instructions' => 'Hasabınızı kurtarmak için, 2FAuth bazı Webauthn özelliklerini sıfırlar, böylece ePosta ve parolanızla giriş yapabilirsiniz.', + 'invalid_recovery_token' => 'Geçersiz kurtarma token\'i', + 'webauthn_login_disabled' => 'Webauthn girişi devre dışı bırakıldı', + 'invalid_reset_token' => 'Bu sıfırlama token\'i geçerli değil.', + 'rename_device' => 'Cihazı adı değişikliği', + 'my_device' => 'Cihazım', + 'unknown_device' => 'Bilinmeyen cihaz', 'use_webauthn_only' => [ - 'label' => 'Use WebAuthn only', - 'help' => 'Make WebAuthn the only authorized method to log into your 2FAuth account. This is the recommended setup to take advantage of the WebAuthn enhanced security.

- In case of device lost, you will be able to recover your account by resetting this option and signing in using your email and password.

- Attention! The Email & Password form remains available despite this option being enabled, but it will always return an \'Authentication failed\' response.' + 'label' => 'Yalnızca WebAuthn kullan', + 'help' => 'WebAuthn girişini, 2FAuth hesabınıza tek yetkili giriş yöntemi yapın. Bu yöntem ile WebAuthn\'in güvenlik avantajlarından yararlanabilirsiniz.

+ Cihazınızın kaybolması durumunda, bu seçeneği iptal edip kullanıcı adı ve parolanız ile giriş yaparak hesabınızı kurtarabilirsiniz.

+ Uyarı! Bu seçenek işaretlenmiş olsa bile ePosta ve Parola formu aktif olarak görünecek ancak her seferinde \'Başarısız giriş\' hatası verecektir.' ], - 'need_a_security_device_to_enable_options' => 'Set at least one device to enable the following options', - 'options' => 'Options', + 'need_a_security_device_to_enable_options' => 'Aşağıdaki seçenekleri aktifleştirmek için en az bir cihaz ekleyin', + 'options' => 'Seçenekler', ], 'forms' => [ - 'name' => 'Name', - 'login' => 'Login', - 'webauthn_login' => 'WebAuthn login', - 'email' => 'Email', - 'password' => 'Password', - 'reveal_password' => 'Reveal password', - 'hide_password' => 'Hide password', - 'confirm_password' => 'Confirm password', - 'new_password' => 'New password', - 'confirm_new_password' => 'Confirm new password', - 'dont_have_account_yet' => 'Don\'t have your account yet?', - 'already_register' => 'Already registered?', - 'authentication_failed' => 'Authentication failed', - 'forgot_your_password' => 'Forgot your password?', - 'request_password_reset' => 'Reset it', - 'reset_your_password' => 'Reset your password', - 'reset_password' => 'Reset password', - 'disabled_in_demo' => 'Feature disabled in Demo mode', - 'new_password' => 'New password', + 'name' => 'İsim', + 'login' => 'Giriş', + 'webauthn_login' => 'WebAuthn girişi', + 'email' => 'ePosta', + 'password' => 'Parola', + 'reveal_password' => 'Parolayı göster', + 'hide_password' => 'Parolayı gizle', + 'confirm_password' => 'Parolayı onayla', + 'new_password' => 'Yeni parola', + 'confirm_new_password' => 'Yeni parolayı onayla', + 'dont_have_account_yet' => 'Henüz hesabınız yok mu?', + 'already_register' => 'Zaten kayıtlı mısınız?', + 'authentication_failed' => 'Kimlik doğrulama başarısız', + 'forgot_your_password' => 'Parolanızı mı unuttunuz?', + 'request_password_reset' => 'Sıfırla', + 'reset_your_password' => 'Parolanızı sıfırlayın', + 'reset_password' => 'Parola sıfırlama', + 'disabled_in_demo' => 'Bu özellik Demo modunda geçerli değil', + 'new_password' => 'Yeni parola', 'current_password' => [ - 'label' => 'Current password', - 'help' => 'Fill in your current password to confirm that it\'s you' + 'label' => 'Mevcut parola', + 'help' => 'Kimliğinizi doğrulamak için mevcut parolanızı girin' ], - 'change_password' => 'Change password', - 'send_password_reset_link' => 'Send password reset link', - 'password_successfully_reset' => 'Password successfully reset', - 'edit_account' => 'Edit account', - 'profile_saved' => 'Profile successfully updated!', - 'welcome_to_demo_app_use_those_credentials' => 'Welcome to the 2FAuth demo.

You can connect using the email address demo@2fauth.app and the password demo', - 'welcome_to_testing_app_use_those_credentials' => 'Welcome to the 2FAuth testing instance.

Use email address testing@2fauth.app and password password', - 'register_punchline' => 'Welcome to 2FAuth.
You need an account to go further, please register yourself.', - 'reset_punchline' => '2FAuth will send you a password reset link to this address. Click the link in the received email to set a new password.', - 'name_this_device' => 'Name this device', - 'delete_account' => 'Delete account', - 'delete_your_account' => 'Delete your account', - 'delete_your_account_and_reset_all_data' => 'Your user account will be deleted as well as all your 2FA data. There is no going back.', - 'reset_your_password_to_delete_your_account' => 'If you always used SSO to sign in, sign out then use the reset password feature to get a password so you can fill this form.', - 'deleting_2fauth_account_does_not_impact_provider' => 'Deleting your 2FAuth account has no impact on your external SSO account.', - 'user_account_successfully_deleted' => 'User account successfully deleted', - 'has_lower_case' => 'Has lower case', - 'has_upper_case' => 'Has upper case', - 'has_special_char' => 'Has special char', - 'has_number' => 'Has number', - 'is_long_enough' => '8 characters min.', - 'mandatory_rules' => 'Mandatory', - 'optional_rules_you_should_follow' => 'Recommanded (highly)', - 'caps_lock_is_on' => 'Caps lock is On', + 'change_password' => 'Parola değiştir', + 'send_password_reset_link' => 'Parola sıfırlama bağlantısı yolla', + 'password_successfully_reset' => 'Parola başarıyla sıfırlandı', + 'edit_account' => 'Hesabı düzenle', + 'profile_saved' => 'Profil başarıyla güncellendi!', + 'welcome_to_demo_app_use_those_credentials' => '2FAuth demo moduna hoşgeldiniz.

ePosta adresi olarak demo@2fauth.app ve parola olarak demo kullanarak bağlanabilirsiniz', + 'welcome_to_testing_app_use_those_credentials' => '2FAuth deneme moduna hoşgeldiniz.

ePosta adresi olarak testing@2fauth.app ve şifre olarak password kullanabilirsiniz', + 'register_punchline' => '2FAuth uygulamasına hoşgeldiniz.
Devam edebilmek için bir hesaba ihtiyacınız var, lütfen kayıt olun.', + 'reset_punchline' => '2FAuth bu adrese bir parola sıfırlama bağlantısı yollanacak. Yeni bir parola belirlemek için ePostadaki bağlantıya tıklayın.', + 'name_this_device' => 'Bu cihaza isim verin', + 'delete_account' => 'Hesabı sil', + 'delete_your_account' => 'Hesabınızı silin', + 'delete_your_account_and_reset_all_data' => 'Kullanıcı hesabınız ve tüm 2FA verileriniz silinecektir. Bunun geri dönüşü yok.', + 'reset_your_password_to_delete_your_account' => 'Eğer şimdiye kadar giriş için hep SSO kullandıysanız, parola alabillmek için çıkış yapın ve sonrasında parola sıfırlama özelliğini kullanın.', + 'deleting_2fauth_account_does_not_impact_provider' => '2FAuth hesabını silmek, harici SSO hesabınızı etkilemez.', + 'user_account_successfully_deleted' => 'Kullanıcı hesabı başarıyla silindi', + 'has_lower_case' => 'Küçük harf barındırmalı', + 'has_upper_case' => 'Büyük harf barındırmalı', + 'has_special_char' => 'Özel karakter barındırmalı', + 'has_number' => 'Rakam barındırmalı', + 'is_long_enough' => 'En az 8 karakter', + 'mandatory_rules' => 'Zorunlu', + 'optional_rules_you_should_follow' => 'Önerilen (şiddetle)', + 'caps_lock_is_on' => 'Caps lock Açık', ], ]; diff --git a/resources/lang/tr/commons.php b/resources/lang/tr/commons.php index 0e23a4fb..ec8aeb93 100644 --- a/resources/lang/tr/commons.php +++ b/resources/lang/tr/commons.php @@ -13,73 +13,82 @@ | */ - 'cancel' => 'Cancel', - 'update' => 'Update', - 'copy' => 'Copy', - 'copy_to_clipboard' => 'Copy to clipboard', - 'copied_to_clipboard' => 'Copied to clipboard', - 'profile' => 'Profile', - 'edit' => 'Edit', - 'delete' => 'Delete', - 'disable' => 'Disable', - 'enable' => 'Enable', - 'create' => 'Create', - 'save' => 'Save', - 'close' => 'Close', - 'clear' => 'Clear', - 'clear_search' => 'Clear search', - 'demo_do_not_post_sensitive_data' => 'This is a demo app, do not post any sensitive data', - 'testing_do_not_post_sensitive_data' => 'This is a testing app, do not post any sensitive data', - 'x_selected' => ':count selected', - 'name' => 'Name', - 'manage' => 'Manage', - 'done' => 'Done', - 'new' => 'New', - 'back' => 'Back', - 'move' => 'Move', - 'export' => 'Export', - 'all' => 'All', - 'check_all' => 'All', - 'select_all' => 'Select all', - 'clear_selection' => 'Clear selection', - 'sort_descending' => 'Sort descending', - 'sort_ascending' => 'Sort ascending', - 'rename' => 'Rename', - 'new_name' => 'New name', - 'options' => 'Options', - 'reload' => 'Reload', - 'refresh' => 'Refresh', - 'data_refreshed_to_reflect_server_changes' => 'Data has been refresh to reflect server-side changes', - 'generate' => 'Generate', - 'generating_otp' => 'Generating OTP', - 'open_in_browser' => 'Open in browser', - 'continue' => 'Continue', - 'discard' => 'Discard', - 'about' => 'About', - 'usefull_links' => 'Usefull links', - 'environment' => 'Environment', - 'credits' => 'Credits', - '2fauth_teaser' => 'A web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes', - 'made_with' => 'Made with', - 'ui_icons_by' => 'UI Icons by', - 'logos_by' => 'Logos by', - 'search' => 'Search', - 'resources' => 'Resources', - 'check_for_update' => 'Check for new version', - 'check_for_update_help' => 'Automatically check (once a week) and warn when a new release of 2FAuth is published on Github', - 'you_are_up_to_date' => 'This instance is up-to-date', - '2fauth_description' => 'A web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes', - 'image_of_qrcode_to_scan' => 'Image of a QR code to scan', - 'file' => 'File', - 'or' => 'OR', - 'close_the_x_page' => 'Close the :pagetitle page', - 'submit' => 'Submit', - 'default' => 'Default', - 'back_to_home' => 'Back to home', - 'nothing' => 'nothing', - 'no_result' => 'No result', - 'information' => 'Information', - 'permissions' => 'Permissions', - 'send' => 'Send', - 'optimize' => 'Optimize', + 'cancel' => 'İptal', + 'update' => 'Güncelle', + 'copy' => 'Kopyala', + 'copy_to_clipboard' => 'Panoya kopyala', + 'copied_to_clipboard' => 'Panoya kopyalandı', + 'profile' => 'Profil', + 'edit' => 'Düzenle', + 'delete' => 'Sil', + 'disable' => 'Devre dışı bırak', + 'enable' => 'Etkinleştir', + 'create' => 'Oluştur', + 'save' => 'Kaydet', + 'close' => 'Kapat', + 'clear' => 'Temizle', + 'clear_search' => 'Aramayı temizle', + 'demo_do_not_post_sensitive_data' => 'Bu Demo uygulama, hassas bir veri girmeyin', + 'testing_do_not_post_sensitive_data' => 'Bu test uygulaması, hassas bir veri girmeyin', + 'x_selected' => ':count tanesi seçildi', + 'name' => 'Ad', + 'manage' => 'Yönet', + 'done' => 'Tamam', + 'new' => 'Yeni', + 'back' => 'Geri', + 'move' => 'Taşı', + 'export' => 'Dışa Aktar', + 'all' => 'Tümü', + 'check_all' => 'Tümü', + 'select_all' => 'Tümünü seç', + 'clear_selection' => 'Seçimi temizle', + 'sort_descending' => 'Azalana göre sırala', + 'sort_ascending' => 'Artana göre sırala', + 'rename' => 'Yeniden adlandır', + 'new_name' => 'Yeni isim', + 'options' => 'Seçenekler', + 'reload' => 'Yeniden yükle', + 'refresh' => 'Yenile', + 'data_refreshed_to_reflect_server_changes' => 'Sunucu tarafındaki değişikliklerin görünmesi için veriler yenilendi', + 'generate' => 'Oluştur', + 'generating_otp' => 'OTP oluşturuluyor', + 'open_in_browser' => 'Tarayıcıda aç', + 'continue' => 'Devam et', + 'discard' => 'Vazgeç', + 'about' => 'Hakkında', + 'usefull_links' => 'Yararlı bağlantılar', + 'environment' => 'Ortam', + 'credits' => 'Emeği geçenler', + '2fauth_teaser' => 'İki Aşamalı Giriş (2FA) hesapları ve güvenlik kodlarının oluşturulması için bir web uygulaması', + 'made_with' => 'Kullanılanlar', + 'ui_icons_by' => 'KA İkonları', + 'logos_by' => 'Logolar', + 'search' => 'Ara', + 'resources' => 'Kaynaklar', + 'check_for_update' => 'Yeni sürümü kontrol et', + 'check_for_update_help' => 'Otomatik olarak (her hafta) kontrol et ve 2FAuth\'un yeni bir sürümü Github\'da yayımlandıysa haber ver', + 'you_are_up_to_date' => 'Bu uygulama güncel', + '2fauth_description' => 'İki Aşamalı Giriş (2FA) hesapları ve güvenlik kodlarının oluşturulması için bir web uygulaması', + 'image_of_qrcode_to_scan' => 'Taranacak QR kodunun görüntüsü', + 'file' => 'Dosya', + 'or' => 'YA DA', + 'close_the_x_page' => ':pagetitle sayfasını kapat', + 'submit' => 'Gönder', + 'default' => 'Varsayılan', + 'back_to_home' => 'Anasayfaya geri dön', + 'nothing' => 'hiçbiri', + 'no_result' => 'Sonuç yok', + 'information' => 'Bilgi', + 'send' => 'Gönder', + 'optimize' => 'En iyi duruma getir', + 'IP' => 'IP', + 'browser' => 'Tarayıcı', + 'operating_system_short' => 'İşletim Sistemi', + 'no_entry_yet' => 'Henüz herhangi bir girdi yok', + 'time' => 'Zaman', + 'ip_address' => 'IP Adresi', + 'device' => 'Cihaz', + 'one_month' => '1 mo.', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', ]; diff --git a/resources/lang/tr/errors.php b/resources/lang/tr/errors.php index 01b18a1b..0dc7cbd2 100644 --- a/resources/lang/tr/errors.php +++ b/resources/lang/tr/errors.php @@ -13,58 +13,63 @@ | */ - 'resource_not_found' => 'Resource not found', - 'error_occured' => 'An error occured:', - 'refresh' => 'Refresh', - 'no_valid_otp' => 'No valid OTP resource in this QR code', - 'something_wrong_with_server' => 'Something is wrong with your server', - 'Unable_to_decrypt_uri' => 'Unable to decrypt uri', - 'not_a_supported_otp_type' => 'This OTP format is not currently supported', - 'cannot_create_otp_without_secret' => 'Cannot create an OTP without a secret', - 'data_of_qrcode_is_not_valid_URI' => 'The data of this QR code is not a valid OTP Auth URI. The QR code contains:', - 'wrong_current_password' => 'Wrong current password, nothing has changed', - 'error_during_encryption' => 'Encryption failed, your database remains unprotected.', - 'error_during_decryption' => 'Decryption failed, your database is still protected. This is mainly caused by an integrity issue of encrypted data for one or more accounts.', - 'qrcode_cannot_be_read' => 'This QR code is unreadable', - 'too_many_ids' => 'too many ids were included in the query parameter, max 100 allowed', - 'delete_user_setting_only' => 'Only user-created setting can be deleted', - 'indecipherable' => '*indecipherable*', - 'cannot_decipher_secret' => 'The secret cannot be deciphered. This is mainly caused by a wrong APP_KEY set in the .env configuration file of 2Fauth or a corrupted data stored in database.', - 'https_required' => 'HTTPS context required', - 'browser_does_not_support_webauthn' => 'Your device does not support webauthn. Try again later using a more modern browser', - 'aborted_by_user' => 'Aborted by user', - 'security_device_already_registered' => 'Device already registered', - 'not_allowed_operation' => 'Operation not allowed', - 'no_authenticator_support_specified_algorithms' => 'No authenticators support specified algorithms', - 'authenticator_missing_discoverable_credential_support' => 'Authenticator missing discoverable credential support', - 'authenticator_missing_user_verification_support' => 'Authenticator missing user verification support', - 'unknown_error' => 'Unknown error', - 'security_error_check_rpid' => 'Security error
Check your WEBAUTHN_ID env var', - '2fauth_has_not_a_valid_domain' => '2FAuth\'s domain is not a valid domain', - 'user_id_not_between_1_64' => 'User ID was not between 1 and 64 chars', - 'no_entry_was_of_type_public_key' => 'No entry was of type "public-key"', - 'unsupported_with_reverseproxy' => 'Not applicable when using an auth proxy', - 'user_deletion_failed' => 'User account deletion failed, no data have been deleted', - 'auth_proxy_failed' => 'Proxy authentication failed', - 'auth_proxy_failed_legend' => '2Fauth is configured to run behind an authentication proxy but your proxy does not return the expected header. Check your configuration and try again.', - 'invalid_x_migration' => 'Invalid or unreadable :appname data', - 'invalid_2fa_data' => 'Invalid 2FA data', - 'unsupported_migration' => 'Data do not match any supported format', - 'unsupported_otp_type' => 'Unsupported OTP type', - 'encrypted_migration' => 'Unreadable, the data seem encrypted', - 'no_logo_found_for_x' => 'No logo available for :service', - 'file_upload_failed' => 'File upload failed', - 'unauthorized' => 'Unauthorized', - 'unauthorized_legend' => 'You do not have permissions to view this resource or to perform this action', - 'cannot_delete_the_only_admin' => 'Cannot delete the only admin account', - 'error_during_data_fetching' => '💀 Something went wrong during data fetching', - 'check_failed_try_later' => 'Check failed, please retry later', - 'sso_disabled' => 'SSO is disabled', - 'sso_bad_provider_setup' => 'This SSO provider is not fully setup in your .env file', - 'sso_failed' => 'Authentication via SSO rejected', - 'sso_no_register' => 'Registrations are disabled', - 'sso_email_already_used' => 'A user account with the same email address already exists but it does not match your external account ID. Do not use SSO if you are already registered on 2FAuth with this email.', - 'account_managed_by_external_provider' => 'Account managed by an external provider', - 'data_cannot_be_refreshed_from_server' => 'Data cannot be refreshed from server', - 'no_pwd_reset_for_this_user_type' => 'Password reset unavailable for this user', + 'resource_not_found' => 'Kaynak bulunamadı', + 'error_occured' => 'Bir hata oluştu:', + 'refresh' => 'Yenile', + 'no_valid_otp' => 'Bu QR kodunda geçerli bir OTP kaynağı yok', + 'something_wrong_with_server' => 'Sunucunuzda bir sorun var', + 'Unable_to_decrypt_uri' => 'URI şifresi çözülemedi', + 'not_a_supported_otp_type' => 'Bu OTP formatı şu anda desteklenmiyor', + 'cannot_create_otp_without_secret' => 'Gizli anahtar olmadan OTP oluşturulamaz', + 'data_of_qrcode_is_not_valid_URI' => 'Bu QR kodunun verisi geçerli bir OTP Auth URI değil. QR kodu şunu içeriyor:', + 'wrong_current_password' => 'Mevcut şifre yanlış, hiçbir şey değişmedi', + 'error_during_encryption' => 'Şifreleme başarısız oldu, veritabanınız korumasız kaldı.', + 'error_during_decryption' => 'Şifre çözme başarısız oldu, veritabanınız hala korunuyor. Bu, genellikle bir veya daha fazla hesaba ait şifrelenmiş verilerin bütünlük sorunlarından kaynaklanır.', + 'qrcode_cannot_be_read' => 'Bu QR kodu okunamıyor', + 'too_many_ids' => 'sorgu parametresine çok fazla kimlik eklendi, en fazla 100 izin verilir', + 'delete_user_setting_only' => 'Sadece kullanıcı tarafından oluşturulan ayarlar silinebilir', + 'indecipherable' => '*anlaşılmaz*', + 'cannot_decipher_secret' => 'Gizli anahtar çözülemedi. Bu, genellikle 2Fauth\'un .env yapılandırma dosyasında yanlış bir APP_KEY ayarlanmasından veya veritabanında bozulmuş verilerin saklanmasından kaynaklanır.', + 'https_required' => 'HTTPS bağlamı gereklidir', + 'browser_does_not_support_webauthn' => 'Cihazınız webauthn\'yi desteklemiyor. Daha modern bir tarayıcı kullanarak daha sonra tekrar deneyin', + 'aborted_by_user' => 'Kullanıcı tarafından iptal edildi', + 'security_device_already_registered' => 'Cihaz zaten kayıtlı', + 'not_allowed_operation' => 'İşleme izin verilmiyor', + 'no_authenticator_support_specified_algorithms' => 'Hiçbir doğrulayıcı belirtilen algoritmaları desteklemiyor', + 'authenticator_missing_discoverable_credential_support' => 'Doğrulayıcıda keşfedilebilir kimlik bilgisi desteği bulunmuyor', + 'authenticator_missing_user_verification_support' => 'Doğrulayıcıda kullanıcı doğrulama desteği bulunmuyor', + 'unknown_error' => 'Bilinmeyen hata', + 'security_error_check_rpid' => 'Güvenlik hatası
WEBAUTHN_ID env değişkeninizi kontrol edin', + '2fauth_has_not_a_valid_domain' => '2FAuth\'un alan adı geçerli bir alan adı değil', + 'user_id_not_between_1_64' => 'Kullanıcı ID\'si 1 ile 64 karakter arasında değildi', + 'no_entry_was_of_type_public_key' => 'Hiçbir giriş "public-key" türünde değildi', + 'unsupported_with_reverseproxy' => 'Bir kimlik doğrulama proxy\'si kullanılırken uygulanamaz', + 'user_deletion_failed' => 'Kullanıcı hesabı silme işlemi başarısız oldu, hiçbir veri silinmedi', + 'auth_proxy_failed' => 'Proxy kimlik doğrulaması başarısız oldu', + 'auth_proxy_failed_legend' => '2Fauth, bir kimlik doğrulama proxy\'si arkasında çalışacak şekilde yapılandırılmış, ancak proxy\'niz beklenen başlığı döndürmüyor. Yapılandırmanızı kontrol edin ve tekrar deneyin.', + 'invalid_x_migration' => 'Geçersiz veya okunamaz :appname verisi', + 'invalid_2fa_data' => 'Geçersiz 2FA verisi', + 'unsupported_migration' => 'Veriler desteklenen hiçbir formata uymuyor', + 'unsupported_otp_type' => 'Desteklenmeyen OTP türü', + 'encrypted_migration' => 'Okunamaz, veri şifrelenmiş gibi görünüyor', + 'no_logo_found_for_x' => ':service için logo mevcut değil', + 'file_upload_failed' => 'Dosya yüklemesi başarısız oldu', + 'unauthorized' => 'Yetkisiz', + 'unauthorized_legend' => 'Bu kaynağı görüntülemek veya bu işlemi gerçekleştirmek için izniniz yok', + 'cannot_delete_the_only_admin' => 'Tek admin hesabını silemezsiniz', + 'cannot_demote_the_only_admin' => 'Tek admin hesabını görevden alamazsınız', + 'error_during_data_fetching' => '💀 Veri alımı sırasında bir sorun oluştu', + 'check_failed_try_later' => 'Kontrol başarısız oldu, lütfen daha sonra tekrar deneyin', + 'sso_disabled' => 'SSO devre dışı bırakıldı', + 'sso_bad_provider_setup' => 'Bu SSO sağlayıcısı .env dosyanızda tam olarak yapılandırılmamış', + 'sso_failed' => 'SSO aracılığıyla kimlik doğrulama reddedildi', + 'sso_no_register' => 'Kayıtlar devre dışı bırakıldı', + 'sso_email_already_used' => 'Aynı e-posta adresine sahip bir kullanıcı hesabı zaten mevcut, ancak dış hesap kimliğinizle eşleşmiyor. Bu e-posta ile zaten 2FAuth\'a kayıtlıysanız SSO kullanmayın.', + 'account_managed_by_external_provider' => 'Hesap dış bir sağlayıcı tarafından yönetiliyor', + 'data_cannot_be_refreshed_from_server' => 'Veri sunucudan yenilenemiyor', + 'no_pwd_reset_for_this_user_type' => 'Bu kullanıcı için parola sıfırlama kullanılamıyor', + 'cannot_detect_qrcode_in_image' => 'Görüntüde bir QR kodu algılanamıyor, görüntüyü kırpmayı deneyin', + 'cannot_decode_detected_qrcode' => 'Algılanan QR kodu çözülemiyor, görüntüyü kırpmayı veya netleştirmeyi deneyin', + 'qrcode_has_invalid_checksum' => 'QR kodu geçersiz bir checksum\'a sahip', + 'no_readable_qrcode' => 'Okunabilir bir QR kodu yok', ]; \ No newline at end of file diff --git a/resources/lang/tr/groups.php b/resources/lang/tr/groups.php index 0a1124be..b668d3d4 100644 --- a/resources/lang/tr/groups.php +++ b/resources/lang/tr/groups.php @@ -13,29 +13,29 @@ | */ - 'groups' => 'Groups', - 'create_group' => 'Create new group', - 'show_group_selector' => 'Show group selector', - 'hide_group_selector' => 'Hide group selector', - 'select_accounts_to_show' => 'Select accounts group to show', - 'x_accounts' => ':count accounts', - 'manage_groups' => 'Manage groups', - 'active_group' => 'Active group', - 'manage_groups_legend' => 'You can create groups to organize your accounts the way you want. All accounts remain visible in the pseudo group named \'All\', regardless of the group they belong to.', - 'deleting_group_does_not_delete_accounts' => 'Deleting a group does not delete accounts', - 'move_selected_to' => 'Move selected to', - 'move_selected_to_group' => 'Move selected into a group', - 'no_group' => 'No group', - 'change_group' => 'Change group', - 'group_successfully_created' => 'Group successfully created', - 'group_name_saved' => 'Group name saved', - 'group_successfully_deleted' => 'Group successfully deleted', + 'groups' => 'Gruplar', + 'create_group' => 'Yeni grup oluştur', + 'show_group_selector' => 'Grup seçiciyi göster', + 'hide_group_selector' => 'Grup seçiciyi gizle', + 'select_accounts_to_show' => 'Gösterilecek grupları seç', + 'x_accounts' => ':count hesap', + 'manage_groups' => 'Grupları yönet', + 'active_group' => 'Aktif grup', + 'manage_groups_legend' => 'Hesaplarınızı istediğiniz şekilde düzenlemek için gruplar oluşturabilirsiniz. Tüm hesaplar, ait oldukları gruba bakılmaksızın \'Tümü\' adlı sözde grupta görünür durumda kalır.', + 'deleting_group_does_not_delete_accounts' => 'Bir gurubu silmek, içindeki hesapları silmez', + 'move_selected_to' => 'Seçilenleri taşı', + 'move_selected_to_group' => 'Seçilenleri gruba taşı', + 'no_group' => 'Grup yok', + 'change_group' => 'Grubu değiştir', + 'group_successfully_created' => 'Grup başarıyla oluşturuldu', + 'group_name_saved' => 'Grup ismi kaydedildi', + 'group_successfully_deleted' => 'Grup başarıyla silindi', 'forms' => [ - 'new_group' => 'New group', - 'new_name' => 'New name', - 'rename_group' => 'Rename group', + 'new_group' => 'Yeni grup', + 'new_name' => 'Yeni isim', + 'rename_group' => 'Grubu yeniden adlandır', ], 'confirm' => [ - 'delete' => 'Are you sure you want to delete this group?', + 'delete' => 'Bu grubu silmek istediğinizden emin misiniz?', ], ]; \ No newline at end of file diff --git a/resources/lang/tr/languages.php b/resources/lang/tr/languages.php index f7f3b5b2..94eaada6 100644 --- a/resources/lang/tr/languages.php +++ b/resources/lang/tr/languages.php @@ -10,14 +10,14 @@ | */ - 'browser_preference' => 'Tarayıcı tercihleri', - 'en' => 'English (English)', - 'fr' => 'Français (French)', - 'de' => 'Deutsch (German)', - 'es' => 'Español (Spanish)', - 'zh' => '简体中文 (Chinese Simplified)', - 'ru' => 'Русский (Russian)', - 'bg' => 'Български (Bulgarian)', - 'ja' => '日本語 (Japanese)', - 'hi' => 'हिंदी (Hindi)', + 'browser_preference' => 'Tarayıcı önayarı', + 'en' => 'English (İngilizce)', + 'fr' => 'Français (Fransızca)', + 'de' => 'Deutsch (Almanca)', + 'es' => 'Español (İspanyolca)', + 'zh' => '简体中文 (Basitleştirilmiş Çince)', + 'ru' => 'Русский (Rusça)', + 'bg' => 'Български (Bulgarca)', + 'ja' => '日本語 (Japonca)', + 'hi' => 'हिंदी (Hintçe)', ]; \ No newline at end of file diff --git a/resources/lang/tr/notifications.php b/resources/lang/tr/notifications.php index 9e7f8380..57eb7fb1 100644 --- a/resources/lang/tr/notifications.php +++ b/resources/lang/tr/notifications.php @@ -13,11 +13,24 @@ | */ - 'hello' => 'Hello', + 'hello' => 'Merhaba', + 'hello_user' => 'Merhaba :username,', + 'regards' => 'Saygılar', 'test_email_settings' => [ - 'subject' => '2FAuth test email', - 'reason' => 'You are receiving this email because you requested a test email to validate the email settings of your 2FAuth instance.', - 'success' => 'Good news, it works :)' + 'subject' => '2FAuth deneme ePostası', + 'reason' => 'Bu ePostayı, ePosta yapılandırmanızın doğruluğunu test etmek amacıyla bir deneme ePostası istediğiniz için aldınız.', + 'success' => 'Haberler iyi, çalışıyor :)' + ], + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => '2FAuth hesabınıza yeni bir cihaz bağlandı.', + 'connection_details' => 'Bu bağlantının detayları', + 'recommandations' => 'Eğer bu sizseniz, bu uyarı gözardı edebilirsiniz. Eğer hesabınızda şüpheli bir hareket olduğunu düşünüyorsanız, lütfen parolanızı değiştirin.' + ], + 'failed_login' => [ + 'subject' => '2FAuth uygulamasına başarısız giriş', + 'resume' => '2FAuth hesabınıza başarısız bir giriş denemesi yapıldı.', + 'connection_details' => 'Bu giriş denemesinin detayları şöyle', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' ], - ]; \ No newline at end of file diff --git a/resources/lang/tr/pagination.php b/resources/lang/tr/pagination.php index d4814118..8c760579 100644 --- a/resources/lang/tr/pagination.php +++ b/resources/lang/tr/pagination.php @@ -13,7 +13,7 @@ | */ - 'previous' => '« Previous', - 'next' => 'Next »', + 'previous' => '« Önceki', + 'next' => 'Sonraki »', ]; diff --git a/resources/lang/tr/passwords.php b/resources/lang/tr/passwords.php index 6dc9ec5d..98ce5d71 100644 --- a/resources/lang/tr/passwords.php +++ b/resources/lang/tr/passwords.php @@ -14,13 +14,13 @@ */ // Laravel - 'reset' => 'Şifreniz sıfırlandı!', - 'sent' => 'E-posta adresinize şifre sıfırlama bağlantısı gönderdik!', - 'throttled' => 'Please wait before retrying.', - 'token' => 'This password reset token is invalid.', - 'user' => "We can't find a user with that email address.", + 'reset' => 'Parolanız sıfırlandı!', + 'sent' => 'ePosta adresinize parola sıfırlama bağlantısı gönderdik!', + 'throttled' => 'Lütfen tekrar denemeden önce bekleyin.', + 'token' => 'Şifre sıfırlama token\'i geçersiz.', + 'user' => "Bu ePosta adresine sahip bir kullanıcı bulamadık.", // 2FAuth - 'password' => 'Passwords must be at least eight characters and match the confirmation.', + 'password' => 'Parolalar en az sekiz karakterden oluşmalı ve şifre doğrulaması ile eşleşmelidir.', ]; diff --git a/resources/lang/tr/settings.php b/resources/lang/tr/settings.php index eb70ec3c..a57a17d5 100644 --- a/resources/lang/tr/settings.php +++ b/resources/lang/tr/settings.php @@ -13,146 +13,159 @@ | */ - 'settings' => 'Settings', - 'preferences' => 'Preferences', - 'account' => 'Account', + 'settings' => 'Ayarlar', + 'preferences' => 'Seçenekler', + 'account' => 'Hesap', 'oauth' => 'OAuth', 'webauthn' => 'WebAuthn', - 'tokens' => 'Tokens', - 'options' => 'Options', - 'user_preferences' => 'User preferences', - 'admin_settings' => 'Admin settings', + 'tokens' => 'Tokenler', + 'options' => 'Seçenekler', + 'user_preferences' => 'Kullanıcı tercihleri', + 'admin_settings' => 'Yönetici ayarları', 'confirm' => [ ], - 'you_are_administrator' => 'You are an administrator', - 'account_linked_to_sso_x_provider' => 'You signed-in via SSO using your :provider account. Your information cannot be changed here but on :provider.', - 'general' => 'General', - 'security' => 'Security', - 'profile' => 'Profile', - 'change_password' => 'Change password', - 'personal_access_tokens' => 'Personal access tokens', - 'token_legend' => 'Personal Access Tokens allow any app to authenticate to the 2Fauth API. You should specify the access token as a Bearer token in the authorization header of consumer apps requests.', - 'generate_new_token' => 'Generate a new token', - 'revoke' => 'Revoke', - 'token_revoked' => 'Token successfully revoked', - 'revoking_a_token_is_permanent' => 'Revoking a token is permanent', + 'you_are_administrator' => 'Yöneticisiniz', + 'account_linked_to_sso_x_provider' => ':provider hesabınızı kullanarak SSO girişi yaptınız. Bilgilerinizi buradan değil :provider üzerinden değiştirebilirsiniz.', + 'general' => 'Genel', + 'security' => 'Güvenlik', + 'notifications' => 'Notifications', + 'profile' => 'Profil', + 'change_password' => 'Parola değiştir', + 'personal_access_tokens' => 'Kişisel erişim tokenleri', + 'token_legend' => 'Kişisel Erişim Tokenleri, herhangi bir uygulamanın 2FAuth API\'sinde kimlik doğrulaması yapmasına olanak tanır. Erişim tokenlerini, kullanıcı uygulama isteklerinin yetkilendirmesinde Taşıyıcı token olarak belirtmelisiniz.', + 'generate_new_token' => 'Yeni bir token oluştur', + 'revoke' => 'İptal et', + 'token_revoked' => 'Token başarıyla iptal edildi', + 'revoking_a_token_is_permanent' => 'Token iptali kalıcıdır', 'confirm' => [ - 'revoke' => 'Are you sure you want to revoke this token?', + 'revoke' => 'Bu tokeni iptal etmek istediğinize emin misiniz?', ], - 'make_sure_copy_token' => 'Make sure to copy your personal access token now. You won’t be able to see it again!', - 'data_input' => 'Data input', + 'make_sure_copy_token' => 'Kişisel tokeninizi şu anda kopyaladığınızdan emin olun. Bir daha görebilme şansınız olmayacak!', + 'data_input' => 'Veri girişi', 'forms' => [ - 'edit_settings' => 'Edit settings', - 'setting_saved' => 'Settings saved', - 'new_token' => 'New token', - 'some_translation_are_missing' => 'Some translations are missing using the browser preferred language?', - 'help_translate_2fauth' => 'Help translate 2FAuth', + 'edit_settings' => 'Ayarları düzenle', + 'setting_saved' => 'Ayarlar kaydedildi', + 'new_token' => 'Yeni token', + 'some_translation_are_missing' => 'Tarayıcıda belirtilen dildeki çeviriler eksik mi?', + 'help_translate_2fauth' => '2FAuth çevirisine yardımcı olun', 'language' => [ - 'label' => 'Language', - 'help' => 'Language used to translate the 2FAuth user interface. Named languages are complete, set the one of your choice to override your browser preference.' + 'label' => 'Diller', + 'help' => '2FAuth\'un gösterileceği dili değiştirir. Buradaki diller tamamlanmış olup tarayıcınız tarafından tercih edilen dili değiştirmek için seçim yapabilirsiniz.' + ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' ], 'show_otp_as_dot' => [ - 'label' => 'Show generated OTP as dot', - 'help' => 'Replace generated password caracters with *** to ensure confidentiality. Do not affect the copy/paste feature' + 'label' => 'Oluşturulan OTP\'yi noktalar olarak göster', + 'help' => 'Oluşturulan paroladaki karakterli, güvenliği arttırmak için, *** olarak gösterir. Kopyala/yapıştır özelliğini etkilemez' ], 'reveal_dotted_otp' => [ - 'label' => 'Reveal obscured OTP', - 'help' => 'Let the ability to temporarily reveal Dot-Obscured passwords' + 'label' => 'Gizlenmiş OTP\'yi göster', + 'help' => 'Noktalar şeklinde gösterilen parolanın geçici olarak gösterilmesini sağlar' ], 'close_otp_on_copy' => [ - 'label' => 'Close OTP after copy', - 'help' => 'Clicking a generated password to copy it automatically hide it from the screen' + 'label' => 'Kopyaladıktan sonra OTP\'yi kapat', + 'help' => 'Oluşturulan parolayı kopyalamak için tıkladıktan sonra parolanın ekrandan kaldırılmasını sağlar' ], 'clear_search_on_copy' => [ - 'label' => 'Clear Search on copy', - 'help' => 'Empty the Search box right after a code has been copied to the clipboard' + 'label' => 'Kopyaladıktan sonra Aramayı Temizle', + 'help' => 'Bir kod panoya kopyalandıktan hemen sonra Arama kutusunu temizler' ], 'copy_otp_on_display' => [ - 'label' => 'Copy OTP on display', - 'help' => 'Automatically copy a generated password right after it appears on screen. Due to browsers limitations, only the first TOTP password will be copied, not the rotating ones' + 'label' => 'OTP\'yi görününce kopyala', + 'help' => 'Oluşturulan parolayı, ekranda görünür görünmez, otomatik olarak kopyalar. Tarayıcı sınırlandırmaları nedeniyle, yenilenenler değil yalnızca ilk TOTP kopyalanır' ], 'use_basic_qrcode_reader' => [ - 'label' => 'Use basic QR code reader', - 'help' => 'If you experiences issues when capturing QR codes enables this option to switch to a more basic but more reliable QR code reader' + 'label' => 'Basit QR kod okuyucuyu kullan', + 'help' => 'QR kod okunması sırasında sorunlar yaşıyorsanız, bu seçenek daha basit ancak daha güvenilir bir QR kod okuyucu kullanılmasını sağlar' ], 'display_mode' => [ - 'label' => 'Display mode', - 'help' => 'Choose whether you want accounts to be displayed as a list or as a grid' + 'label' => 'Görüntüleme modu', + 'help' => 'Hesapların liste olarak mı yoksa ızgara olarak mı görüntülenmesini istediğinizi seçin' ], 'password_format' => [ - 'label' => 'Password formatting', - 'help' => 'Change how the passwords are displayed by grouping digits to ease readability and memorization' + 'label' => 'Parola gösterimi', + 'help' => 'Daha rahat okuma ve akılda tutma için parolalarınızdaki rakamların nasıl gruplanacağını seçin' ], - 'pair' => 'by Pair', - 'pair_legend' => 'Group digits two by two', - 'trio_legend' => 'Group digits three by three', - 'half_legend' => 'Split digits into two equals groups', - 'trio' => 'by Trio', - 'half' => 'by Half', - 'grid' => 'Grid', - 'list' => 'List', + 'pair' => 'İkili ayır', + 'pair_legend' => 'Rakamları ikişerli ayır', + 'trio_legend' => 'Rakamları üçerli ayır', + 'half_legend' => 'Rakamları eşit sayıda iki gruba ayır', + 'trio' => 'Üçlü ayır', + 'half' => 'Ortadan böl', + 'grid' => 'Izgara', + 'list' => 'Liste', 'theme' => [ - 'label' => 'Theme', - 'help' => 'Force a specific theme or apply the theme defined in your system/browser preferences' + 'label' => 'Tema', + 'help' => 'Belirli bir tema kullan veya sistem/tarayıcı tercihini uygula' ], - 'light' => 'Light', - 'dark' => 'Dark', - 'automatic' => 'Auto', + 'light' => 'Aydınlık', + 'dark' => 'Karanlık', + 'automatic' => 'Otomatik', 'show_accounts_icons' => [ - 'label' => 'Show icons', - 'help' => 'Show icons accounts in the main view' + 'label' => 'Simgeleri göster', + 'help' => 'Ana ekranda hesapların simgelerini gösterir' ], 'get_official_icons' => [ - 'label' => 'Get official icons', - 'help' => '(Try to) Get the official icon of the 2FA issuer when adding an account' + 'label' => 'Özgün simgeleri al', + 'help' => 'Hesabı eklerken 2FA sağlayıcısının özgün simgelerini al (dene)' ], 'auto_lock' => [ - 'label' => 'Auto lock', - 'help' => 'Log out the user automatically in case of inactivity. Has no effect when authentication is handled by a proxy and no custom logout url is specified.' + 'label' => 'Otomatik kilitleme', + 'help' => 'İşlem olmaması durumunda kullanıcının çıkışını yapar. Eğer kimlik doğrulama bir proxy aracılığı ile yapılmış ve belirlenmiş bir çıkış url\'si yok ise bu seçenek işe yaramaz.' ], 'default_group' => [ - 'label' => 'Default group', - 'help' => 'The group to which the newly created accounts are associated', + 'label' => 'Varsayılan grup', + 'help' => 'Yeni oluşturulan hesapların ilişkilendirileceği grup', ], 'view_default_group_on_copy' => [ - 'label' => 'View default group on copy', - 'help' => 'Always return to the default group when an OTP is copied', + 'label' => 'Kopyalarken varsayılan grubu göster', + 'help' => 'OTP kopyalandığında her zaman varsayılan gruba döner', ], 'useDirectCapture' => [ - 'label' => 'Direct input', - 'help' => 'Choose whether you want to be prompted to choose an input mode among those available or if you want to directly use the default input mode', + 'label' => 'Doğrudan giriş', + 'help' => 'Mevcut olanlar arasından bir giriş modu seçmeniz istenip istenmeyeceğini veya doğrudan varsayılan giriş modunu kullanmak isteyip istemediğinizi seçin', ], 'defaultCaptureMode' => [ - 'label' => 'Default input mode', - 'help' => 'Default input mode used when the Direct input option is On', + 'label' => 'Varsayılan giriş modu', + 'help' => 'Doğrudan giriş seçeneği seçildiğinde varsayılan giriş modu kullanılır', ], 'remember_active_group' => [ - 'label' => 'Remember group filter', - 'help' => 'Save the last group filter applied and restore it on your next visit', + 'label' => 'Grup filtrelerini hatırla', + 'help' => 'Son uygulanan grup filtresini saklar ve bir sonraki ziyaretinizde aynısını gösterir', ], 'otp_generation' => [ - 'label' => 'Show Password', - 'help' => 'Set how and when OTPs are displayed.
', + 'label' => 'Parolayı göster', + 'help' => 'OTP\'lerin nasıl ve ne zaman gösterileceğini ayarlar.
', ], - 'otp_generation_on_request' => 'After a click/tap', - 'otp_generation_on_request_legend' => 'Alone, in its own view', - 'otp_generation_on_request_title' => 'Click an account to get a password in a dedicated view', - 'otp_generation_on_home' => 'Constantly', - 'otp_generation_on_home_legend' => 'All of them, on home', - 'otp_generation_on_home_title' => 'Show all passwords in the main view, without doing anything', - 'never' => 'Never', - 'on_otp_copy' => 'On security code copy', - '1_minutes' => 'After 1 minute', - '5_minutes' => 'After 5 minutes', - '10_minutes' => 'After 10 minutes', - '15_minutes' => 'After 15 minutes', - '30_minutes' => 'After 30 minutes', - '1_hour' => 'After 1 hour', - '1_day' => 'After 1 day', - 'livescan' => 'QR code livescan', - 'upload' => 'QR code upload', - 'advanced_form' => 'Advanced form', + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], + 'otp_generation_on_request' => 'Tıkladıktan/dokunduktan sonra', + 'otp_generation_on_request_legend' => 'Tek, kendi görünüşünde', + 'otp_generation_on_request_title' => 'Parolaları ayrı bir ekranda görmek için tıklayın', + 'otp_generation_on_home' => 'Sürekli', + 'otp_generation_on_home_legend' => 'Tümü birden, ana ekranda', + 'otp_generation_on_home_title' => 'Tüm parolaları ana sayfada gösterir', + 'never' => 'Asla', + 'on_otp_copy' => 'Güvenlik kodu kopyalandığında', + '1_minutes' => '1 dakika sonra', + '5_minutes' => '5 dakika sonra', + '10_minutes' => '10 dakika sonra', + '15_minutes' => '15 dakika sonra', + '30_minutes' => '30 dakika sonra', + '1_hour' => '1 saat sonra', + '1_day' => '1 gün sonra', + 'livescan' => 'Canlı QR kod tarama', + 'upload' => 'QR kod yükleme', + 'advanced_form' => 'Gelişmiş form', ], ]; \ No newline at end of file diff --git a/resources/lang/tr/titles.php b/resources/lang/tr/titles.php index 9a43fada..b015b77b 100644 --- a/resources/lang/tr/titles.php +++ b/resources/lang/tr/titles.php @@ -9,47 +9,50 @@ | */ - 'start' => 'New account', - 'capture' => 'Flash QR', - 'accounts' => 'Accounts', - 'createAccount' => 'Create account', - 'importAccounts' => 'Import accounts', - 'editAccount' => 'Account edit', - 'showQRcode' => 'Account as QR code', - 'groups' => 'Groups', - 'createGroup' => 'Create group', - 'editGroup' => 'Group edit', + 'start' => 'Yeni hesap', + 'capture' => 'QR flaşı', + 'accounts' => 'Hesaplar', + 'createAccount' => 'Hesap oluştur', + 'importAccounts' => 'Hesapları içeri aktar', + 'editAccount' => 'Hesap düzenle', + 'showQRcode' => 'QR kod olarak hesap', + 'groups' => 'Gruplar', + 'createGroup' => 'Grup oluştur', + 'editGroup' => 'Grup düzenle', 'settings' => [ - 'options' => 'Options', - 'account' => 'User account', + 'options' => 'Seçenekler', + 'account' => 'Kullanıcı hesabı', 'oauth' => [ - 'tokens' => 'OAuth tokens', - 'generatePAT' => 'New personal token', + 'tokens' => 'OAuth tokenleri', + 'generatePAT' => 'Yeni kişisel token', ], 'webauthn' => [ - 'editCredential' => 'Device edit', - 'devices' => 'WebAuthn devices', + 'editCredential' => 'Cihaz düzenle', + 'devices' => 'WebAuthn cihazları', ], ], - 'login' => 'Login', - 'register' => 'Register', - 'autolock' => 'Auto lock', + 'login' => 'Giriş', + 'register' => 'Kayıt ol', + 'autolock' => 'Otomatik kilitleme', 'password' => [ - 'request' => 'Reset password', - 'reset' => 'New password', + 'request' => 'Parola sıfırlama', + 'reset' => 'Yeni parola', ], 'webauthn' => [ - 'lost' => 'Account recovery', - 'recover' => 'Register a new device', + 'lost' => 'Hesap kurtarma', + 'recover' => 'Yeni cihaz ekle', ], 'flooded' => 'Flood', - 'genericError' => 'Error', - '404' => 'Item not found', - 'about' => 'About', + 'genericError' => 'Hata', + '404' => 'Öge bulunamadı', + 'about' => 'Hakkında', 'admin' => [ - 'appSetup' => 'App setup', - 'users' => 'Users management', - 'createUser' => 'Create user', - 'manageUser' => 'Manage user', + 'appSetup' => 'Uygulama kurulumu', + 'users' => 'Kullanıcı yönetimi', + 'createUser' => 'Kullanıcı oluştur', + 'manageUser' => 'Kullanıcı yönet', + 'logs' => [ + 'access' => 'Erişim günlüğü' + ] ] ]; \ No newline at end of file diff --git a/resources/lang/tr/twofaccounts.php b/resources/lang/tr/twofaccounts.php index 086877e5..18d60d8a 100644 --- a/resources/lang/tr/twofaccounts.php +++ b/resources/lang/tr/twofaccounts.php @@ -13,24 +13,24 @@ | */ - 'service' => 'Service', - 'account' => 'Account', - 'icon' => 'Icon', - 'icon_for_account_x_at_service_y' => 'Icon of the :account account at :service', - 'icon_to_illustrate_the_account' => 'Icon that illustrates the account', - 'remove_icon' => 'Remove icon', - 'no_account_here' => 'No 2FA here!', - 'add_first_account' => 'Pick a method and add your first account', - 'use_full_form' => 'Or use the full form', - 'add_one' => 'Add one', - 'show_qrcode' => 'Show QR code', - 'no_service' => '- no service -', - 'account_created' => 'Account successfully created', - 'account_updated' => 'Account successfully updated', - 'accounts_deleted' => 'Account(s) successfully deleted', - 'accounts_moved' => 'Account(s) successfully moved', - 'export_selected_to_json' => 'Download a json export of selected accounts', - 'reveal' => 'reveal', + 'service' => 'Servis', + 'account' => 'Hesap', + 'icon' => 'Simge', + 'icon_for_account_x_at_service_y' => ':account hesabının :service üzerindeki simgesi', + 'icon_to_illustrate_the_account' => 'Hesabı gösteren simge', + 'remove_icon' => 'Simgeyi kaldır', + 'no_account_here' => 'Burada 2FA yok!', + 'add_first_account' => 'Bir metod seç ve ilk hesabını ekle', + 'use_full_form' => 'Veya detaylı formu kullan', + 'add_one' => 'Ekle', + 'show_qrcode' => 'QR kodu göster', + 'no_service' => '- servis yok -', + 'account_created' => 'Hesap başarıyla oluşturuldu', + 'account_updated' => 'Hesap başarı ile güncellendi', + 'accounts_deleted' => 'Hesap(lar) başarıyla silindi', + 'accounts_moved' => 'Hesap(lar) başarıyla taşındı', + 'export_selected_to_json' => 'Seçilen hesapların json çıktısını indir', + 'reveal' => 'göster', 'forms' => [ 'service' => [ 'placeholder' => 'Google, Twitter, Apple', @@ -38,134 +38,134 @@ 'account' => [ 'placeholder' => 'John DOE', ], - 'new_account' => 'New account', - 'edit_account' => 'Edit account', + 'new_account' => 'Yeni hesap', + 'edit_account' => 'Hesabı düzenle', 'otp_uri' => 'OTP Uri', - 'scan_qrcode' => 'Scan a QR code', - 'upload_qrcode' => 'Upload a QR code', - 'use_advanced_form' => 'Use the advanced form', - 'prefill_using_qrcode' => 'Prefill using a QR Code', + 'scan_qrcode' => 'QR kod tara', + 'upload_qrcode' => 'QR kod yükle', + 'use_advanced_form' => 'Detaylı formu kullan', + 'prefill_using_qrcode' => 'QR kod kullanarak doldur', 'use_qrcode' => [ - 'val' => 'Use a qrcode', - 'title' => 'Use a QR code to fill the form magically', + 'val' => 'QR kod kullan', + 'title' => 'Formu sihirli bir şekilde doldurmak için QR kod kullan', ], 'unlock' => [ - 'val' => 'Unlock', - 'title' => 'Unlock it (at your own risk)', + 'val' => 'Kilidi aç', + 'title' => 'Kilidi aç (risk size ait)', ], 'lock' => [ - 'val' => 'Lock', - 'title' => 'Lock it', + 'val' => 'Kilitle', + 'title' => 'Kilitle', ], - 'choose_image' => 'Upload', - 'i_m_lucky' => 'Try my luck', - 'i_m_lucky_legend' => 'The "Try my luck" button try to get the official icon of the given service. Enter actual service name without ".xyz" extension and try to avoid typo. (beta feature)', - 'test' => 'Test', + 'choose_image' => 'Yükle', + 'i_m_lucky' => 'Şansımı dene', + 'i_m_lucky_legend' => '"Şansımı dene" butonu söz konusu servisin özgün simgesini almaya çalışır. Hizmetin gerçek adını ".xyz" uzantısı olmadan girin ve yazım hatalarından kaçınmaya çalışın. (beta özelliği)', + 'test' => 'Deneme', 'secret' => [ - 'label' => 'Secret', - 'help' => 'The key used to generate your security codes' + 'label' => 'Anahtar', + 'help' => 'Güvenlik kodlarınızın oluşturulması için gereken anahtar' ], - 'plain_text' => 'Plain text', + 'plain_text' => 'Düz metin', 'otp_type' => [ - 'label' => 'Choose the type of OTP to create', - 'help' => 'Time-based OTP or HMAC-based OTP or Steam OTP' + 'label' => 'Oluşturulacak OTP\'nin türünü seçin', + 'help' => 'Zamana dayalı OTP veya HMAC dayalı OTP veya Steam OTP' ], 'digits' => [ - 'label' => 'Digits', - 'help' => 'The number of digits of the generated security codes' + 'label' => 'Hane sayısı', + 'help' => 'Oluşturulacak güvenlik kodunun kaç haneden oluşacağı' ], 'algorithm' => [ - 'label' => 'Algorithm', - 'help' => 'The algorithm used to secure your security codes' + 'label' => 'Algoritma', + 'help' => 'Güvenlik kodlarının oluşturulması için kullanılacak algoritma' ], 'period' => [ - 'label' => 'Period', - 'placeholder' => 'Default is 30', - 'help' => 'The period of validity of the generated security codes in second' + 'label' => 'Süre', + 'placeholder' => 'Varsayılan 30', + 'help' => 'Oluşturulan güvenlik kodlarının, saniye cinsinden, geçerli olduğu süre' ], 'counter' => [ - 'label' => 'Counter', - 'placeholder' => 'Default is 0', - 'help' => 'The initial counter value', - 'help_lock' => 'It is risky to edit the counter as you can desynchronize the account with the verification server of the service. Use the lock icon to enable modification, but only if you know for you are doing' + 'label' => 'Sayaç', + 'placeholder' => 'Varsayılan değer 0', + 'help' => 'Başlangıç sayaç değeri', + 'help_lock' => 'Sayaç değerini düzenlemek risklidir çünkü hesabı hizmetin doğrulama sunucusuyla senkronize etmeyi bozabilirsiniz. Değişiklik yapmak için kilit simgesini kullanın, ancak ne yaptığınızı biliyorsanız sadece değiştirin' ], 'image' => [ - 'label' => 'Image', + 'label' => 'Görüntü', 'placeholder' => 'http://...', - 'help' => 'The url of an external image to use as the account icon' + 'help' => 'Dış bir resmin URL\'i, hesap simgesi olarak kullanılacak' ], - 'options_help' => 'You can leave the following options blank if you don\'t know how to set them. The most commonly used values will be applied.', - 'alternative_methods' => 'Alternative methods', - 'spaces_are_ignored' => 'Unwanted spaces will be automatically removed' + 'options_help' => 'Aşağıdaki seçenekleri boş bırakabilirsiniz eğer nasıl ayarlanacağını bilmiyorsanız. En yaygın kullanılan değerler uygulanacaktır.', + 'alternative_methods' => 'Alternatif yöntem', + 'spaces_are_ignored' => 'İstenmeyen boşluklar otomatik olarak kaldırılacaktır' ], 'stream' => [ - 'live_scan_cant_start' => 'Live scan can\'t start :(', + 'live_scan_cant_start' => 'Canlı tarama başlatılamıyor :(', 'need_grant_permission' => [ - 'reason' => '2FAuth does not have permission to access your camera', - 'solution' => 'You need to grant permission to use your device camera. If you already denied and your browser do not prompt you again, please refers to the browser documentation to find out how to grant permission.', - 'click_camera_icon' => 'It is usually done by clicking on a slashed camera icon in or next to the browser\'s address bar', + 'reason' => '2FAuth\'un kameranıza ulaşmak için izni yok', + 'solution' => 'Cihaz kamerasını kullanma izni vermeniz gerekiyor. Eğer zaten reddettiyseniz ve tarayıcınız tekrar sormuyorsa, izni nasıl vereceğiniz hakkında tarayıcı belgelerine başvurun.', + 'click_camera_icon' => 'Genellikle tarayıcının adres çubuğunun yanında veya içinde çizili bir kamera simgesine tıklayarak yapılır', ], 'not_readable' => [ - 'reason' => 'Fail to load scanner', - 'solution' => 'Is the camera already in use? Ensure that no other app use your camera and try again' + 'reason' => 'Tarayıcı yüklenemedi', + 'solution' => 'Kamera zaten kullanımda mı? Başka bir uygulamanın kameranızı kullanmadığından emin olun ve tekrar deneyin' ], 'no_cam_on_device' => [ - 'reason' => 'No camera on this device', - 'solution' => 'Maybe you forgot to plug in your webcam' + 'reason' => 'Bu cihazda kamera yok', + 'solution' => 'Belki web kamerasını takmayı unuttunuz' ], 'secured_context_required' => [ - 'reason' => 'Secure context required', - 'solution' => 'HTTPS is required for live scan. If you run 2FAuth from your computer, do not use virtual host other than localhost' + 'reason' => 'Güvenli bağlam gereklidir', + 'solution' => 'Canlı tarama için HTTPS gereklidir. Eğer 2FAuth\'u bilgisayarınızdan çalıştırıyorsanız, localhost dışında sanal bir ana bilgisayar kullanmayın' ], - 'https_required' => 'HTTPS required for camera streaming', + 'https_required' => 'Kamera yayını için HTTPS gereklidir', 'camera_not_suitable' => [ - 'reason' => 'Installed cameras are not suitable', - 'solution' => 'Please use another device/camera' + 'reason' => 'Yüklenen kameralar uygun değil', + 'solution' => 'Lütfen başka bir cihaz/kamera kullanın' ], 'stream_api_not_supported' => [ - 'reason' => 'Stream API is not supported in this browser', - 'solution' => 'You should use a modern browser' + 'reason' => 'Bu tarayıcıda Akış API\'si desteklenmiyor', + 'solution' => 'Modern bir tarayıcı kullanmalısınız' ], ], 'confirm' => [ - 'delete' => 'Are you sure you want to delete this account?', - 'cancel' => 'Changes will be lost. Are you sure?', - 'discard' => 'Are you sure you want to discard this account?', - 'discard_all' => 'Are you sure you want to discard all accounts?', - 'discard_duplicates' => 'Are you sure you want to discard all duplicates?', + 'delete' => 'Bu hesabı silmek istediğinizden emin misiniz?', + 'cancel' => 'Değişiklikler kaybolacak. Emin misiniz?', + 'discard' => 'Bu hesabı silmek istediğinizden emin misiniz?', + 'discard_all' => 'Tüm hesapları silmek istediğinizden emin misiniz?', + 'discard_duplicates' => 'Tüm kopyaları silmek istediğinizden emin misiniz?', ], 'import' => [ - 'import' => 'Import', - 'to_import' => 'Import', - 'import_legend' => '2FAuth can import data from various 2FA apps.', - 'import_legend_afterpart' => 'Use the Export feature of these apps to get a migration resource like a QR code or a JSON file then load it here.', - 'upload' => 'Upload', - 'scan' => 'Scan', - 'supported_formats_for_qrcode_upload' => 'Accepted: jpg, jpeg, png, bmp, gif, svg, or webp', - 'supported_formats_for_file_upload' => 'Accepted: Plain text, json, 2fas', - 'expected_format_for_direct_input' => 'Expected: A list of otpauth URI, one by line', - 'supported_migration_formats' => 'Supported migration formats', - 'qr_code' => 'QR Code', - 'text_file' => 'Text file', - 'direct_input' => 'Direct input', - 'plain_text' => 'Plain text', - 'parsing_data' => 'Parsing data...', - 'issuer' => 'Issuer', - 'imported' => 'Imported', - 'failure' => 'Failure', - 'x_valid_accounts_found' => ':count valid accounts found', - 'submitted_data_parsed_now_accounts_are_awaiting_import' => 'The following 2FA accounts were found in the migration resource. So far none of them have been added to 2FAuth.', - 'use_buttons_to_save_or_discard' => 'Use the available buttons to permanently save them to your 2FA collection or discard them.', - 'import_all' => 'Import all', - 'import_this_account' => 'Import this account', - 'discard_all' => 'Discard all', - 'discard_duplicates' => 'Discard duplicates', - 'discard_this_account' => 'Discard this account', - 'generate_a_test_password' => 'Generate a test pasword', - 'possible_duplicate' => 'An account with the exact same data already exists', - 'invalid_account' => '- invalid account -', - 'invalid_service' => '- invalid service -', - 'do_not_set_password_or_encryption' => 'Do NOT enable Password protection or Encryption when you export data from a 2FA app otherwise 2FAuth will not be able to decipher them.', + 'import' => 'İçe Aktar', + 'to_import' => 'İçe Aktar', + 'import_legend' => '2FAuth, çeşitli 2FA uygulamalarından veri alabilir.', + 'import_legend_afterpart' => 'Bu uygulamaların Dışa Aktarma özelliğini kullanarak bir QR kodu veya JSON dosyası gibi bir göç kaynağı alın ve buraya yükleyin.', + 'upload' => 'Yükle', + 'scan' => 'Tara', + 'supported_formats_for_qrcode_upload' => 'Kabul Edilen: jpg, jpeg, png, bmp, gif, svg veya webp', + 'supported_formats_for_file_upload' => 'Kabul Edilen: Düz metin, json, 2fas', + 'expected_format_for_direct_input' => 'Beklenen: Her biri bir satırda bir otpauth URI listesi', + 'supported_migration_formats' => 'Desteklenen taşıma biçimleri', + 'qr_code' => 'QR Kodu', + 'text_file' => 'Metin dosyası', + 'direct_input' => 'Doğrudan giriş', + 'plain_text' => 'Düz metin', + 'parsing_data' => 'Veri analiz ediliyor...', + 'issuer' => 'Yayınlayan', + 'imported' => 'İçe aktarıldı', + 'failure' => 'Başarısız', + 'x_valid_accounts_found' => 'Toplam geçerli hesap sayısı: :count', + 'submitted_data_parsed_now_accounts_are_awaiting_import' => 'Taşıma kaynağında aşağıdaki 2FA hesapları bulundu. Şimdiye kadar hiçbiri 2FAuth\'a eklenmedi.', + 'use_buttons_to_save_or_discard' => 'Kullanılabilir düğmeleri kullanarak bunları 2FA koleksiyonunuza kalıcı olarak kaydedin veya bunları silin.', + 'import_all' => 'Tümünü içe aktar', + 'import_this_account' => 'Hesabı içe aktar', + 'discard_all' => 'Hepsini iptal et', + 'discard_duplicates' => 'Aynı olanları yoksay', + 'discard_this_account' => 'Bu hesabı yoksay', + 'generate_a_test_password' => 'Bir deneme parolası oluştur', + 'possible_duplicate' => 'Birebir aynı verilere sahip başkan bir hesap mevcut', + 'invalid_account' => '- geçersiz hesap -', + 'invalid_service' => '- geçersiz servis -', + 'do_not_set_password_or_encryption' => 'Başka bir 2FA uygulamasından verileri dışarı aktarırken şifreleme veya şifre ile koruma seçeneklerini kullanmayın, aksi takdirde 2FAuth bu verileri açamaz.', ], ]; \ No newline at end of file diff --git a/resources/lang/tr/validation.php b/resources/lang/tr/validation.php index b49f6f93..f100647a 100644 --- a/resources/lang/tr/validation.php +++ b/resources/lang/tr/validation.php @@ -13,136 +13,136 @@ | */ - 'accepted' => 'The :attribute must be accepted.', - 'accepted_if' => 'The :attribute must be accepted when :other is :value.', - 'active_url' => 'The :attribute is not a valid URL.', - 'after' => 'The :attribute must be a date after :date.', - 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', - 'alpha' => 'The :attribute must only contain letters.', - 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', - 'alpha_num' => 'The :attribute must only contain letters and numbers.', - 'array' => 'The :attribute must be an array.', - 'before' => 'The :attribute must be a date before :date.', - 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'accepted' => ':attribute kabul edilmelidir.', + 'accepted_if' => ':other, :value olduğunda :attribute kabul edilmelidir.', + 'active_url' => ':attribute geçerli bir URL değil.', + 'after' => ':attribute şu tarihten :date sonra olmalı.', + 'after_or_equal' => ':attribute, :date tarihi ile aynı veya bundan sonraki bir tarih olmalıdır.', + 'alpha' => ':attribute yalnızca harf içermelidir.', + 'alpha_dash' => ':attribute yalnızca harfler, rakamlar, tireler ve alt çizgiler içermelidir.', + 'alpha_num' => ':attribute yalnızca harfler ve rakamlar içermelidir.', + 'array' => ':attribute bir dizi olmalıdır.', + 'before' => ':attribute, :date tarihinden önce bir tarih olmalıdır.', + 'before_or_equal' => ':attribute, :date tarihi ile aynı veya önceki bir tarih olmalıdır.', 'between' => [ - 'array' => 'The :attribute must have between :min and :max items.', - 'file' => 'The :attribute must be between :min and :max kilobytes.', - 'numeric' => 'The :attribute must be between :min and :max.', - 'string' => 'The :attribute must be between :min and :max characters.', + 'array' => ':attribute, :min ve :max aralığında olmalıdır.', + 'file' => ':attribute, :min ve :max kilobyte aralığında olmalıdır.', + 'numeric' => ':attribute, :min ve :max aralığında olmalıdır.', + 'string' => ':attribute, :min ve :max karakter aralığında olmalıdır.', ], - 'boolean' => 'The :attribute field must be true or false.', - 'confirmed' => 'The :attribute confirmation does not match.', - 'current_password' => 'The password is incorrect.', - 'date' => 'The :attribute is not a valid date.', - 'date_equals' => 'The :attribute must be a date equal to :date.', - 'date_format' => 'The :attribute does not match the format :format.', - 'declined' => 'The :attribute must be declined.', - 'declined_if' => 'The :attribute must be declined when :other is :value.', - 'different' => 'The :attribute and :other must be different.', - 'digits' => 'The :attribute must be :digits digits.', - 'digits_between' => 'The :attribute must be between :min and :max digits.', - 'dimensions' => 'The :attribute has invalid image dimensions.', - 'distinct' => 'The :attribute field has a duplicate value.', - 'doesnt_end_with' => 'The :attribute may not end with one of the following: :values.', - 'doesnt_start_with' => 'The :attribute may not start with one of the following: :values.', - 'email' => 'The :attribute must be a valid email address.', - 'ends_with' => 'The :attribute must end with one of the following: :values.', - 'enum' => 'The selected :attribute is invalid.', - 'exists' => 'The selected :attribute is invalid.', - 'file' => 'The :attribute must be a file.', - 'filled' => 'The :attribute field must have a value.', + 'boolean' => ':attribute, doğru veya yanlış olmalıdır.', + 'confirmed' => ':attribute doğrulaması eşleşmedi.', + 'current_password' => 'Parola hatalı.', + 'date' => ':attribute geçerli bir tarih değil.', + 'date_equals' => ':attribute tarihi, :date tarihine eşit olmalıdır.', + 'date_format' => ':attribute :format biçimi ile eşleşmiyor.', + 'declined' => ':attribute reddedilmelidir.', + 'declined_if' => ':other, :value olduğunda :attribute reddedilmelidir.', + 'different' => ':attribute ve :other birbirinden farklı olmalıdır.', + 'digits' => ':attribute, :digits rakam olmalıdır.', + 'digits_between' => ':attribute, :min ve :max basamak aralığında olmalıdır.', + 'dimensions' => ':attribute geçersiz görüntü boyutlarına sahip.', + 'distinct' => ':attribute alanı yinelenen bir değere sahip.', + 'doesnt_end_with' => ':attribute şunlardan biriyle bitmemelidir: :values.', + 'doesnt_start_with' => ':attribute şunlardan biriyle başlamamalıdır: :values.', + 'email' => ':attribute geçerli bir ePosta adresi olmalı.', + 'ends_with' => ':attribute şunlardan biriyle bitmelidir: :values.', + 'enum' => ':attribute seçimi geçersiz.', + 'exists' => ':attribute seçimi geçersiz.', + 'file' => ':attribute bir dosya olmalıdır.', + 'filled' => ':attribute alanının doldurulması zorunludur.', 'gt' => [ - 'array' => 'The :attribute must have more than :value items.', - 'file' => 'The :attribute must be greater than :value kilobytes.', - 'numeric' => 'The :attribute must be greater than :value.', - 'string' => 'The :attribute must be greater than :value characters.', + 'array' => ':attribute :value öğelerinden daha fazla öğeye sahip olmalıdır.', + 'file' => ':attribute, :value kilobayttan fazla olmalıdır.', + 'numeric' => ':attribute, :value değerinden büyük olmalıdır.', + 'string' => ':attribute :value karakterden büyük olmalıdır.', ], 'gte' => [ - 'array' => 'The :attribute must have :value items or more.', - 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', - 'numeric' => 'The :attribute must be greater than or equal to :value.', - 'string' => 'The :attribute must be greater than or equal to :value characters.', + 'array' => ':attribute, :value veya daha fazla öğe içermelidir.', + 'file' => ':attribute :value kilobayttan büyük veya eşit olmalıdır.', + 'numeric' => ':attribute, :value değerinden büyük veya eşit olmalıdır.', + 'string' => ':attribute, en az :value karakter içermelidir.', ], - 'image' => 'The :attribute must be an image.', - 'in' => 'The selected :attribute is invalid.', - 'in_array' => 'The :attribute field does not exist in :other.', - 'integer' => 'The :attribute must be an integer.', - 'ip' => 'The :attribute must be a valid IP address.', - 'ipv4' => 'The :attribute must be a valid IPv4 address.', - 'ipv6' => 'The :attribute must be a valid IPv6 address.', - 'json' => 'The :attribute must be a valid JSON string.', + 'image' => ':attribute bir görsel olmalı.', + 'in' => ':attribute seçimi geçersiz.', + 'in_array' => ':attribute değeri :other içinde mevcut değil.', + 'integer' => ':attribute tamsayı olmalıdır.', + 'ip' => ':attribute geçerli bir IP adresi olmalıdır.', + 'ipv4' => ':attribute geçerli bir IPv4 adresi olmalıdır.', + 'ipv6' => ':attribute geçerli bir IPv6 adresi olmalıdır.', + 'json' => ':attribute geçerli bir JSON olmalı.', 'lt' => [ - 'array' => 'The :attribute must have less than :value items.', - 'file' => 'The :attribute must be less than :value kilobytes.', - 'numeric' => 'The :attribute must be less than :value.', - 'string' => 'The :attribute must be less than :value characters.', + 'array' => ':attribute, :value ögeden az olmalıdır.', + 'file' => ':attribute, :value kilobayttan az olmalıdır.', + 'numeric' => ':attribute, :value değerinden küçük olmalıdır.', + 'string' => ':attribute, :value karakterden az olmalıdır.', ], 'lte' => [ - 'array' => 'The :attribute must not have more than :value items.', - 'file' => 'The :attribute must be less than or equal to :value kilobytes.', - 'numeric' => 'The :attribute must be less than or equal to :value.', - 'string' => 'The :attribute must be less than or equal to :value characters.', + 'array' => ':attribute, en fazla :value öge içermelidir.', + 'file' => ':attribute, :value kilobayttan küçük ya da eşit olmalıdır.', + 'numeric' => ':attribute, :value değerinden küçük veya eşit olmalıdır.', + 'string' => ':attribute :value karakterden az ya da eşit olmalıdır.', ], - 'mac_address' => 'The :attribute must be a valid MAC address.', + 'mac_address' => ':attribute geçerli bir MAC adresi olmalıdır.', 'max' => [ - 'array' => 'The :attribute must not have more than :max items.', - 'file' => 'The :attribute must not be greater than :max kilobytes.', - 'numeric' => 'The :attribute must not be greater than :max.', - 'string' => 'The :attribute must not be greater than :max characters.', + 'array' => ':attribute, :max öğeden fazla öğeye sahip olmamalıdır.', + 'file' => ':attribute değeri :max kilobayttan büyük olmamalıdır.', + 'numeric' => ':attribute değeri :max değerinden büyük olmamalıdır.', + 'string' => ':attribute, :max karakterden fazla olmamalıdır.', ], - 'max_digits' => 'The :attribute must not have more than :max digits.', - 'mimes' => 'The :attribute must be a file of type: :values.', - 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'max_digits' => ':attribute, :max rakamdan fazla rakama sahip olmamalıdır.', + 'mimes' => ':attribute şu dosya biçimlerinden biri olmalıdır: :values.', + 'mimetypes' => ':attribute şu dosya biçimlerinden biri olmalıdır: :values.', 'min' => [ - 'array' => 'The :attribute must have at least :min items.', - 'file' => 'The :attribute must be at least :min kilobytes.', - 'numeric' => 'The :attribute must be at least :min.', - 'string' => 'The :attribute must be at least :min characters.', + 'array' => ':attribute en az :min nesneye sahip olmalıdır.', + 'file' => ':attribute en az :min kilobayt olmalıdır.', + 'numeric' => ':attribute en az :min olmalıdır.', + 'string' => ':attribute en az :min karakter içermelidir.', ], - 'min_digits' => 'The :attribute must have at least :min digits.', - 'multiple_of' => 'The :attribute must be a multiple of :value.', - 'not_in' => 'The selected :attribute is invalid.', - 'not_regex' => 'The :attribute format is invalid.', - 'numeric' => 'The :attribute must be a number.', + 'min_digits' => ':attribute en az :min rakam içermelidir.', + 'multiple_of' => ':attribute, :values değerinin katı olmalıdır.', + 'not_in' => ':attribute seçimi geçersiz.', + 'not_regex' => ':attribute formatı geçersiz.', + 'numeric' => ':attribute bir sayı olmalıdır.', 'password' => [ - 'letters' => 'The :attribute must contain at least one letter.', - 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.', - 'numbers' => 'The :attribute must contain at least one number.', - 'symbols' => 'The :attribute must contain at least one symbol.', - 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', + 'letters' => ':attribute en az bir harf içermelidir.', + 'mixed' => ':attribute en az bir büyük harf ve bir küçük harf içermelidir.', + 'numbers' => ':attribute en az bir sayı içermelidir.', + 'symbols' => ':attribute en az bir sembol içermelidir.', + 'uncompromised' => 'Girilen :attribute bir veri sızıntısında ortaya çıktı. Lütfen farklı bir :attribute seçin.', ], - 'present' => 'The :attribute field must be present.', - 'prohibited' => 'The :attribute field is prohibited.', - 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', - 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', - 'prohibits' => 'The :attribute field prohibits :other from being present.', - 'regex' => 'The :attribute format is invalid.', - 'required' => 'The :attribute field is required.', - 'required_array_keys' => 'The :attribute field must contain entries for: :values.', - 'required_if' => 'The :attribute field is required when :other is :value.', - 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', - 'required_unless' => 'The :attribute field is required unless :other is in :values.', - 'required_with' => 'The :attribute field is required when :values is present.', - 'required_with_all' => 'The :attribute field is required when :values are present.', - 'required_without' => 'The :attribute field is required when :values is not present.', - 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'same' => 'The :attribute and :other must match.', + 'present' => ':attribute alanı dolu olmalı.', + 'prohibited' => ':attribute alanı engellenmiştir.', + 'prohibited_if' => ':other :value iken :attribute alanı engellenmiştir.', + 'prohibited_unless' => ':attribute alanı, :other alanı :value değerlerinden birine sahip olmadığı sürece engellenmiştir.', + 'prohibits' => ':attribute alanı :other değerinin mevcut olmasını engeller.', + 'regex' => ':attribute formatı geçersiz.', + 'required' => ':attribute alanı zorunludur.', + 'required_array_keys' => ':attribute alanı aşağıdakiler için girişler içermelidir: :values.', + 'required_if' => ':other :value iken :attribute alanı gereklidir.', + 'required_if_accepted' => ':other kabul edildiğinde :attribute alanı gereklidir.', + 'required_unless' => ':attribute alanı, :other alanı :value değerlerinden birine sahip olmadığında zorunludur.', + 'required_with' => ':values varsa :attribute alanı zorunludur.', + 'required_with_all' => ':values mevcut ise :attribute alanları zorunludur.', + 'required_without' => ':attribute alanı :values yokken zorunludur.', + 'required_without_all' => 'Herhangi bir :values değeri mevcut olmadığında :attribute alanına değer girilmesi zorunludur.', + 'same' => ':attribute ve :other aynı olmalı.', 'size' => [ - 'array' => 'The :attribute must contain :size items.', - 'file' => 'The :attribute must be :size kilobytes.', - 'numeric' => 'The :attribute must be :size.', - 'string' => 'The :attribute must be :size characters.', + 'array' => ':attribute :size nesneye sahip olmalıdır.', + 'file' => ':attribute :size kilobayt olmalıdır.', + 'numeric' => ':attribute, :size olmalıdır.', + 'string' => ': attribute en az :size karakter olmalıdır.', ], - 'starts_with' => 'The :attribute must start with one of the following: :values.', - 'string' => 'The :attribute must be a string.', - 'timezone' => 'The :attribute must be a valid timezone.', - 'unique' => 'The :attribute has already been taken.', - 'uploaded' => 'The :attribute failed to upload.', - 'url' => 'The :attribute must be a valid URL.', - 'uuid' => 'The :attribute must be a valid UUID.', + 'starts_with' => ':attribute şunlardan biriyle başlamalıdır: :values.', + 'string' => ':attribute bir dize olmalıdır.', + 'timezone' => ':attribute geçerli bir saat dilimi olmalıdır.', + 'unique' => ':attribute daha önceden kayıt edilmiş.', + 'uploaded' => ':attribute yüklemesi başarısız.', + 'url' => ':attribute geçerli bir URL olmalıdır.', + 'uuid' => ':attribute geçerli bir UUID olmalıdır.', - 'single' => 'When using :attribute it must be the only parameter in this request body', - 'onlyCustomOtpWithUri' => 'The uri parameter must be provided alone or only in combination with the \'custom_otp\' parameter', + 'single' => ':attribute kullanıldığında, istek gövdesindeki tek parametre bu olmalıdır', + 'onlyCustomOtpWithUri' => 'Uri parametresi tek başına veya yalnızca \'custom_otp\' parametresiyle birlikte sağlanmalıdır', /* |-------------------------------------------------------------------------- @@ -157,36 +157,36 @@ 'custom' => [ 'icon' => [ - 'image' => 'Supported format are jpeg, png, bmp, gif, svg, or webp.', + 'image' => 'Desteklenen formatlar jpeg, png, bmp, gif, svg veya webp\'dir.', ], 'qrcode' => [ - 'image' => 'Supported format are jpeg, png, bmp, gif, svg, or webp.', + 'image' => 'Desteklenen formatlar jpeg, png, bmp, gif, svg veya webp\'dir.', ], 'uri' => [ - 'regex' => 'The :attribute is not a valid otpauth uri.', + 'regex' => ':attribute geçerli bir otpauth uri\'si değil.', ], 'otp_type' => [ - 'in' => 'The :attribute is not supported.', + 'in' => ':attribute desteklenmiyor.', ], 'email' => [ - 'exists' => 'No account found using this email.', - 'ComplyWithEmailRestrictionPolicy' => 'This email address does not comply with the registration policy', - 'IsValidEmailList' => 'All emails must be valid and separated with a pipe' + 'exists' => 'Bu ePostayı kullanan bir hesap bulunamadı.', + 'ComplyWithEmailRestrictionPolicy' => 'Bu ePosta adresi kayıt politikasına uymuyor', + 'IsValidEmailList' => 'Tüm ePostaların geçerli ve dikey çubuk ile ayrılmış olması gerekiyor' ], 'secret' => [ - 'isBase32Encoded' => 'The :attribute must be a base32 encoded string.', + 'isBase32Encoded' => ':attribute base32 kodlu bir dize olmalıdır.', ], 'account' => [ - 'regex' => 'The :attribute must not contain colon.', + 'regex' => ':attribute iki nokta üst üste içermemelidir.', ], 'service' => [ - 'regex' => 'The :attribute must not contain colon.', + 'regex' => ':attribute iki nokta üst üste içermemelidir.', ], 'label' => [ - 'required' => 'The uri must have a label.', + 'required' => 'Uri\'nin bir etiketi olmalıdır.', ], 'ids' => [ - 'regex' => 'IDs must be comma separated, without trailing comma.', + 'regex' => 'IDler virgül ile ayrılmalı, en sonda ise virgül olmamalıdır.', ] ], diff --git a/resources/lang/zh/admin.php b/resources/lang/zh/admin.php index 2f48b048..590b3631 100644 --- a/resources/lang/zh/admin.php +++ b/resources/lang/zh/admin.php @@ -27,7 +27,7 @@ 'confirm' => [ 'delete_user' => '您确定要删除这个用户吗?没有回头路。', 'request_password_reset' => '您确定要重置此用户的密码吗?', - 'purge_password_reset_request' => '您确定要清除请求吗?', + 'purge_password_reset_request' => 'Are you sure you want to revoke the previous request?', 'delete_account' => '您确定要删除该用户吗?', 'edit_own_account' => '这是您自己的帐户。您确定吗?', 'change_admin_role' => '这将会对此用户的权限产生重大影响。您确定吗?', @@ -42,13 +42,13 @@ 'registered_on_date' => '注册于 :date', 'updated_on_date' => '更新于 :date', 'access' => '访问', - 'password_requested_on_t' => '存在此用户的密码重置请求 (在 :datetime 发出的请求) 意味着该用户尚未更改其密码,但他收到的链接仍然有效。 此请求可能来自用户本人或管理员。', - 'password_request_expired' => '存在此用户的密码重置请求但已过期,意味着用户并未及时更改密码。此请求可能来自用户本人或管理员。', + 'password_requested_on_t' => 'A password reset request exists for this user (request sent at :datetime), which means that the user has not yet changed their password but the link they received is still valid. This may be a request from the user themselves or from an administrator.', + 'password_request_expired' => 'A password reset request exists for this user but has expired, meaning that the user has not changed their password in time. This may be a request from the user themselves or from an administrator.', 'resend_email' => '重新发送电子邮件', 'resend_email_title' => '重新发送密码重置邮件给用户', 'resend_email_help' => '使用 重新发送电子邮件 向用户发送新密码重置邮件,以便他可以设置新密码。 这将保留当前密码,且之前的请求都将被撤销。', 'reset_password' => '重置密码', - 'reset_password_help' => '使用 重置密码 来强制重置密码 (这将会以临时密码覆盖用户当前密码),以便用户可以设置新密码。之前的请求都将被撤销。', + 'reset_password_help' => 'Use Reset password to force a password reset (this will set a temporary password) before sending a password reset email to the user so they can set a new password. Any previous request will be revoked.', 'reset_password_title' => '重置用户的密码', 'password_successfully_reset' => '密码重置成功', 'user_has_x_active_pat' => ':count 个有效的令牌', @@ -68,6 +68,21 @@ 'check_now' => '立即检查', 'view_on_github' => '在 GitHub 上查看', 'x_is_available' => '新版本 :version 可用!', + 'successful_login_on' => 'Successful login on :login_at', + 'successful_logout_on' => 'Successful logout on :login_at', + 'failed_login_on' => 'Failed login on :login_at', + 'viewed_on' => 'Viewed on :login_at', + 'last_accesses' => 'Last accesses', + 'see_full_log' => 'See full log', + 'browser_on_platform' => ':browser on :platform', + 'access_log_has_more_entries' => 'The access log contains more entries.', + 'access_log_legend_for_user' => 'Full access log for user :username', + 'show_last_month_log' => 'Show entries from the last month', + 'show_three_months_log' => 'Show entries from the last 3 months', + 'show_six_months_log' => 'Show entries from the last 6 months', + 'show_one_year_log' => 'Show entries from the last year', + 'sort_by_date_asc' => 'Show least recent first', + 'sort_by_date_desc' => 'Show most recent first', 'forms' => [ 'use_encryption' => [ 'label' => '保护敏感数据', diff --git a/resources/lang/zh/auth.php b/resources/lang/zh/auth.php index 2fdf6613..fb86a215 100644 --- a/resources/lang/zh/auth.php +++ b/resources/lang/zh/auth.php @@ -22,7 +22,7 @@ 'sign_out' => '登出', 'sign_in' => '登录', 'sign_in_using' => '登录使用', - 'or_continue_with' => '您也可以:', + 'or_continue_with' => 'You can also continue with:', 'sign_in_using_security_device' => '使用安全设备登录', 'login_and_password' => '用户名和密码', 'register' => '注册', @@ -94,7 +94,7 @@ 'reset_your_password' => '重置你的密码', 'reset_password' => '重置密码', 'disabled_in_demo' => '此功能将在演示模式下禁用。', - 'new_password' => '新密码', + 'new_password' => 'New password', 'current_password' => [ 'label' => '当前密码', 'help' => '填写您当前设置的密码以确认是您本人' diff --git a/resources/lang/zh/commons.php b/resources/lang/zh/commons.php index 1d735232..1012d72c 100644 --- a/resources/lang/zh/commons.php +++ b/resources/lang/zh/commons.php @@ -79,7 +79,16 @@ 'nothing' => '无', 'no_result' => '无结果', 'information' => '信息', - 'permissions' => '权限', 'send' => '发送', 'optimize' => '优化', + 'IP' => 'IP地址', + 'browser' => '浏览器', + 'operating_system_short' => '系统版本', + 'no_entry_yet' => '暂无记录', + 'time' => '时间', + 'ip_address' => 'IP 地址', + 'device' => '设备', + 'one_month' => '一个月', + 'x_month' => ':x mos.', + 'one_year' => '1 yr.', ]; diff --git a/resources/lang/zh/errors.php b/resources/lang/zh/errors.php index 29ca6882..d4abcfed 100644 --- a/resources/lang/zh/errors.php +++ b/resources/lang/zh/errors.php @@ -57,6 +57,7 @@ 'unauthorized' => '无权限', 'unauthorized_legend' => '您无权查看此资源或执行此操作', 'cannot_delete_the_only_admin' => '无法删除唯一的管理员账户', + 'cannot_demote_the_only_admin' => 'Cannot demote the only admin account', 'error_during_data_fetching' => '💀 在获取数据过程中出了问题', 'check_failed_try_later' => '检查失败,请稍后重试', 'sso_disabled' => 'SSO 已禁用', @@ -67,4 +68,8 @@ 'account_managed_by_external_provider' => '由外部提供商管理的帐户', 'data_cannot_be_refreshed_from_server' => '无法从服务器刷新数据', 'no_pwd_reset_for_this_user_type' => '此用户无法重置密码', + 'cannot_detect_qrcode_in_image' => 'Cannot detect a QR code in the image, try to crop the image', + 'cannot_decode_detected_qrcode' => 'Cannot decode detected QR code, try to crop or sharpen the image', + 'qrcode_has_invalid_checksum' => 'QR code has invalid checksum', + 'no_readable_qrcode' => 'No readable QR code', ]; \ No newline at end of file diff --git a/resources/lang/zh/notifications.php b/resources/lang/zh/notifications.php index 9c1da32a..2e578888 100644 --- a/resources/lang/zh/notifications.php +++ b/resources/lang/zh/notifications.php @@ -14,10 +14,23 @@ */ 'hello' => '您好', + 'hello_user' => 'Hello :username,', + 'regards' => 'Regards', 'test_email_settings' => [ 'subject' => '2FAuth 测试电子邮件', 'reason' => '您收到这封邮件是因为您请求了一封测试电子邮件来验证您的2FAuth 实例的电子邮件设置。', 'success' => '好消息是,它正常工作:)' ], - + 'new_device' => [ + 'subject' => 'Connection to 2FAuth from a new device', + 'resume' => 'A new device has just connected to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection', + 'recommandations' => 'If this was you, you can ignore this alert. If you suspect any suspicious activity on your account, please change your password.' + ], + 'failed_login' => [ + 'subject' => 'Failed login to 2FAuth', + 'resume' => 'There has been a failed login attempt to your 2FAuth account.', + 'connection_details' => 'Here are the details of this connection attempt', + 'recommandations' => 'If this was you, you can ignore this alert. If further attempts fail, you should contact the 2FAuth administrator to review security settings and take action against this attacker.' + ], ]; \ No newline at end of file diff --git a/resources/lang/zh/settings.php b/resources/lang/zh/settings.php index 09a2848f..c4e4bb75 100644 --- a/resources/lang/zh/settings.php +++ b/resources/lang/zh/settings.php @@ -29,6 +29,7 @@ 'account_linked_to_sso_x_provider' => '您通过SSO使用您的 :provider 帐户登录。您的信息不能在这里更改,只能在 :provider 。', 'general' => '常规', 'security' => '安全', + 'notifications' => 'Notifications', 'profile' => '配置文件', 'change_password' => '更改密码', 'personal_access_tokens' => '个人访问令牌', @@ -52,6 +53,10 @@ 'label' => '语言', 'help' => '用来翻译 2FAuth 用户界面的语言。列出的语言已完成翻译,请设置你选择的语言来覆盖你的浏览器偏好。' ], + 'timezone' => [ + 'label' => 'Time zone', + 'help' => 'The time zone applied to all dates and times displayed in the application' + ], 'show_otp_as_dot' => [ 'label' => '用 *** 来显示生成的一次性密码', 'help' => '将生成的密码替换为 *** 以确保保密。不影响复制和粘贴功能。' @@ -135,6 +140,14 @@ 'label' => '显示密码', 'help' => '设置 OTPs 的显示方式和时间。
', ], + 'notify_on_new_auth_device' => [ + 'label' => 'On new device', + 'help' => 'Get an email when a new device connects to your 2FAuth account for the first time' + ], + 'notify_on_failed_login' => [ + 'label' => 'On failed login', + 'help' => 'Get an email each time an attempt to connect to your 2FAuth account fails' + ], 'otp_generation_on_request' => '点击/单击账户后', 'otp_generation_on_request_legend' => '在专用视图中显示密码', 'otp_generation_on_request_title' => '单击帐户在专用视图中获取密码', diff --git a/resources/lang/zh/titles.php b/resources/lang/zh/titles.php index e5c99f79..55745925 100644 --- a/resources/lang/zh/titles.php +++ b/resources/lang/zh/titles.php @@ -51,5 +51,8 @@ 'users' => '用户管理', 'createUser' => '创建用户', 'manageUser' => '管理用户', + 'logs' => [ + 'access' => 'Access log' + ] ] ]; \ No newline at end of file