mirror of
https://github.com/Bubka/2FAuth.git
synced 2024-11-22 16:23:18 +01:00
Add RU translations
This commit is contained in:
parent
3c4b7bdd15
commit
28b239108f
@ -16,4 +16,5 @@
|
||||
'de' => 'German',
|
||||
'es' => 'Spanish',
|
||||
'zh' => 'Chinese Simplified',
|
||||
'ru' => 'Russian',
|
||||
];
|
128
resources/lang/ru/auth.php
Normal file
128
resources/lang/ru/auth.php
Normal file
@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
// Laravel
|
||||
'failed' => 'Неверное имя пользователя или пароль.',
|
||||
'password' => 'Некорректный пароль.',
|
||||
'throttle' => 'Слишком много попыток входа. Пожалуйста, попробуйте ещё раз через :seconds секунд.',
|
||||
|
||||
// 2FAuth
|
||||
'sign_out' => 'Sign out',
|
||||
'sign_in' => 'Sign in',
|
||||
'sign_in_using' => 'Sign in using',
|
||||
'sign_in_using_security_device' => 'Sign in using a security device',
|
||||
'login_and_password' => 'login & password',
|
||||
'register' => 'Register',
|
||||
'welcome_back_x' => 'Welcome back {0}',
|
||||
'autolock_triggered' => 'Auto lock triggered',
|
||||
'autolock_triggered_punchline' => 'The event watched by the Auto Lock feature has fired. You\'ve been automatically disconnected.',
|
||||
'change_autolock_in_settings' => 'You can change the behavior of the Autolock feature in Settings > Options tab.',
|
||||
'already_authenticated' => 'Already authenticated',
|
||||
'authentication' => 'Authentication',
|
||||
'maybe_later' => 'Maybe later',
|
||||
'user_account_controlled_by_proxy' => 'User account made available by an authentication proxy.<br />Manage the account at proxy level.',
|
||||
'auth_handled_by_proxy' => 'Authentication handled by a reverse proxy, below settings are disabled.<br />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.<br /><br />
|
||||
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.<br /><br />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 available method to sign in 2FAuth. This is the recommended setup to take advantage of the WebAuthn enhanced security.<br />
|
||||
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.'
|
||||
],
|
||||
'need_a_security_device_to_enable_options' => 'Set at least one device to enable these options',
|
||||
'use_webauthn_as_default' => [
|
||||
'label' => 'Use WebAuthn as default sign in method',
|
||||
'help' => 'Set the 2FAuth sign in form to propose the WebAuthn authentication at first. The Login/password method is then available as an alternative/fallback solution.<br />
|
||||
This has no effect if you only use WebAuthn.'
|
||||
],
|
||||
],
|
||||
'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',
|
||||
'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_changed' => 'Password successfully changed',
|
||||
'edit_account' => 'Edit account',
|
||||
'profile_saved' => 'Profile successfully updated!',
|
||||
'welcome_to_demo_app_use_those_credentials' => 'Welcome to the 2FAuth demo.<br><br>You can connect using the email address <strong>demo@2fauth.app</strong> and the password <strong>demo</strong>',
|
||||
'welcome_to_testing_app_use_those_credentials' => 'Welcome to the 2FAuth testing instance.<br><br>Use email address <strong>testing@2fauth.app</strong> and password <strong>password</strong>',
|
||||
'register_punchline' => 'Welcome to <b>2FAuth</b>.<br/>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' => 'This will reset 2FAuth. Your user account will be deleted as well as all 2FA data. There is no going back.',
|
||||
'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',
|
||||
],
|
||||
|
||||
];
|
73
resources/lang/ru/commons.php
Normal file
73
resources/lang/ru/commons.php
Normal file
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'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',
|
||||
'selected' => 'selected',
|
||||
'name' => 'Name',
|
||||
'manage' => 'Manage',
|
||||
'done' => 'Done',
|
||||
'new' => 'New',
|
||||
'back' => 'Back',
|
||||
'move' => 'Move',
|
||||
'export' => 'Export',
|
||||
'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',
|
||||
'some_data_have_changed' => 'Some data have changed. You should',
|
||||
'generate' => 'Generate',
|
||||
'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',
|
||||
];
|
51
resources/lang/ru/errors.php
Normal file
51
resources/lang/ru/errors.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'resource_not_found' => 'Resource not found',
|
||||
'error_occured' => 'An error occured:',
|
||||
'cannot_register_more_user' => 'You cannot register more than one user.',
|
||||
'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_unsupported' => 'Unsupported or in use device',
|
||||
'not_allowed_operation' => 'Operation not allowed',
|
||||
'security_error_check_rpid' => 'Security error<br/>Check your WEBAUTHN_ID env var',
|
||||
'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'
|
||||
];
|
40
resources/lang/ru/groups.php
Normal file
40
resources/lang/ru/groups.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Groups Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'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',
|
||||
'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?',
|
||||
],
|
||||
];
|
19
resources/lang/ru/languages.php
Normal file
19
resources/lang/ru/languages.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Language names
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
|
|
||||
*/
|
||||
|
||||
'browser_preference' => 'Browser preference',
|
||||
'en' => 'English',
|
||||
'fr' => 'French',
|
||||
'de' => 'German',
|
||||
'es' => 'Spanish',
|
||||
'zh' => 'Chinese Simplified',
|
||||
];
|
19
resources/lang/ru/pagination.php
Normal file
19
resources/lang/ru/pagination.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Назад',
|
||||
'next' => 'Вперёд »',
|
||||
|
||||
];
|
26
resources/lang/ru/passwords.php
Normal file
26
resources/lang/ru/passwords.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
// Laravel
|
||||
'reset' => 'Ваш пароль был сброшен!',
|
||||
'sent' => 'Ссылка на сброс пароля была отправлена!',
|
||||
'throttled' => 'Пожалуйста, подождите перед повторной попыткой.',
|
||||
'token' => 'Ошибочный код сброса пароля.',
|
||||
'user' => "Не удалось найти пользователя с указанным электронным адресом.",
|
||||
|
||||
// 2FAuth
|
||||
'password' => 'Passwords must be at least eight characters and match the confirmation.',
|
||||
|
||||
];
|
126
resources/lang/ru/settings.php
Normal file
126
resources/lang/ru/settings.php
Normal file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Settings Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'settings' => 'Settings',
|
||||
'account' => 'Account',
|
||||
'oauth' => 'OAuth',
|
||||
'webauthn' => 'WebAuthn',
|
||||
'tokens' => 'Tokens',
|
||||
'options' => 'Options',
|
||||
'user_options' => 'User options',
|
||||
'confirm' => [
|
||||
|
||||
],
|
||||
'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',
|
||||
'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.'
|
||||
],
|
||||
'show_otp_as_dot' => [
|
||||
'label' => 'Show generated one-time passwords as dot',
|
||||
'help' => 'Replace generated password caracters with *** to ensure confidentiality. Do not affect the copy/paste feature'
|
||||
],
|
||||
'close_otp_on_copy' => [
|
||||
'label' => 'Close <abbr title="One-Time Password">OTP</abbr> after copy',
|
||||
'help' => 'Clicking a generated password to copy it automatically hide it from the screen'
|
||||
],
|
||||
'copy_otp_on_display' => [
|
||||
'label' => 'Copy <abbr title="One-Time Password">OTP</abbr> on display',
|
||||
'help' => 'Automatically copy a generated password right after it appears on screen. Due to browsers limitations, only the first <abbr title="Time-based One-Time Password">TOTP</abbr> 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'
|
||||
],
|
||||
'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.'
|
||||
],
|
||||
'use_encryption' => [
|
||||
'label' => 'Protect sensible 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.',
|
||||
],
|
||||
'default_group' => [
|
||||
'label' => 'Default group',
|
||||
'help' => 'The group to which the newly created accounts are associated',
|
||||
],
|
||||
'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',
|
||||
],
|
||||
'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',
|
||||
],
|
||||
|
||||
];
|
49
resources/lang/ru/titles.php
Normal file
49
resources/lang/ru/titles.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Titles Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'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',
|
||||
'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',
|
||||
];
|
162
resources/lang/ru/twofaccounts.php
Normal file
162
resources/lang/ru/twofaccounts.php
Normal file
@ -0,0 +1,162 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'service' => 'Service',
|
||||
'account' => 'Account',
|
||||
'accounts' => 'Accounts',
|
||||
'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',
|
||||
'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' => 'I\'m lucky',
|
||||
'i_m_lucky_legend' => 'The "I\'m lucky" 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 <abbr title="One-Time Password">OTP</abbr> 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',
|
||||
],
|
||||
'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.'
|
||||
],
|
||||
'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' => 'The account 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.<br />Use the Export feature of these apps to get a migration resource (a QR code or a file) and load it using your preferred method below.',
|
||||
'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',
|
||||
'supported_migration_formats' => 'Supported migration formats',
|
||||
'qr_code' => 'QR Code',
|
||||
'plain_text' => 'Plain text',
|
||||
'issuer' => 'Issuer',
|
||||
'imported' => 'Imported',
|
||||
'failure' => 'Failure',
|
||||
'x_valid_accounts_found' => '{count} valid accounts found',
|
||||
'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) you want to import into 2FAuth.',
|
||||
],
|
||||
|
||||
];
|
208
resources/lang/ru/validation.php
Normal file
208
resources/lang/ru/validation.php
Normal file
@ -0,0 +1,208 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| as the size rules. Feel free to tweak each of these messages here.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => 'Вы должны принять :attribute.',
|
||||
'accepted_if' => 'Вы должны принять :attribute, когда :other соответствует :value.',
|
||||
'active_url' => 'Значение поля :attribute не является действительным URL.',
|
||||
'after' => 'Значение поля :attribute должно быть датой после :date.',
|
||||
'after_or_equal' => 'Значение поля :attribute должно быть датой после или равной :date.',
|
||||
'alpha' => 'Значение поля :attribute может содержать только буквы.',
|
||||
'alpha_dash' => 'Значение поля :attribute может содержать только буквы, цифры, дефис и нижнее подчеркивание.',
|
||||
'alpha_num' => 'Значение поля :attribute может содержать только буквы и цифры.',
|
||||
|
||||
'array' => 'Значение поля :attribute должно быть массивом.',
|
||||
'before' => 'Значение поля :attribute должно быть датой до :date.',
|
||||
'before_or_equal' => 'Значение поля :attribute должно быть датой до или равной :date.',
|
||||
'between' => [
|
||||
'array' => 'Количество элементов в поле :attribute должно быть между :min и :max.',
|
||||
'file' => 'Размер файла в поле :attribute должен быть между :min и :max Кб.',
|
||||
'numeric' => 'Значение поля :attribute должно быть между :min и :max.',
|
||||
'string' => 'Количество символов в поле :attribute должно быть между :min и :max.',
|
||||
],
|
||||
'boolean' => 'Значение поля :attribute должно быть логического типа.',
|
||||
'confirmed' => 'Значение поля :attribute не совпадает с подтверждаемым.',
|
||||
'current_password' => 'Неверный пароль.',
|
||||
'date' => 'Значение поля :attribute не является датой.',
|
||||
'date_equals' => 'Значение поля :attribute должно быть датой равной :date.',
|
||||
'date_format' => 'ение поля :attribute не соответствует формату даты :format.',
|
||||
'declined' => 'Поле :attribute должно быть отклонено.',
|
||||
'declined_if' => 'Поле :attribute должно быть отклонено, когда :other равно :value.',
|
||||
'different' => 'Значения полей :attribute и :other должны различаться.',
|
||||
'digits' => 'Количество символов в поле :attribute должно быть равным :digits.',
|
||||
'digits_between' => 'Количество символов в поле :attribute должно быть между :min и :max.',
|
||||
'dimensions' => 'Изображение, указанное в поле :attribute, имеет недопустимые размеры.',
|
||||
'distinct' => 'Значения поля :attribute не должны повторяться.',
|
||||
'doesnt_end_with' => 'Значение поля :attribute не может заканчиваться одним из следующих: :values.',
|
||||
'doesnt_start_with' => 'Значение поля :attribute не может начинаться с одного из следующих: :values.',
|
||||
'email' => 'Значение поля :attribute должно быть действительным электронным адресом.',
|
||||
'ends_with' => 'Значение поля :attribute должно заканчиваться одним из следующих: :values',
|
||||
'enum' => 'Значение поля :attribute некорректно.',
|
||||
'exists' => 'Значение поля :attribute не существует.',
|
||||
'file' => 'В поле :attribute должен быть указан файл.',
|
||||
'filled' => 'Значение поля :attribute обязательно для заполнения.',
|
||||
'gt' => [
|
||||
'array' => 'Количество элементов в поле :attribute должно быть больше :value.',
|
||||
'file' => 'Размер файла, указанный в поле :attribute, должен быть больше :value Кб.',
|
||||
'numeric' => 'Значение поля :attribute должно быть больше :value.',
|
||||
'string' => 'Количество символов в поле :attribute должно быть больше :value.',
|
||||
],
|
||||
'gte' => [
|
||||
'array' => 'Количество элементов в поле :attribute должно быть :value или больше.',
|
||||
'file' => 'Размер файла, указанный в поле :attribute, должен быть :value Кб или больше.',
|
||||
'numeric' => 'Значение поля :attribute должно быть :value или больше.',
|
||||
'string' => 'Количество символов в поле :attribute должно быть :value или больше.',
|
||||
],
|
||||
'image' => 'Файл, указанный в поле :attribute, должен быть изображением.',
|
||||
'in' => 'Значение поля :attribute некорректно.',
|
||||
'in_array' => 'Значение поля :attribute не существует в :other.',
|
||||
'integer' => 'Значение поля :attribute должно быть целым числом.',
|
||||
'ip' => 'Значение поля :attribute должно быть действительным IP-адресом.',
|
||||
'ipv4' => 'Значение поля :attribute должно быть действительным IPv4-адресом.',
|
||||
'ipv6' => 'Значение поля :attribute должно быть действительным IPv6-адресом.',
|
||||
'json' => 'Значение поля :attribute должно быть JSON строкой.',
|
||||
'lt' => [
|
||||
'array' => 'Количество элементов в поле :attribute должно быть меньше :value.',
|
||||
'file' => 'Размер файла, указанный в поле :attribute, должен быть меньше :value Кб.',
|
||||
'numeric' => 'Значение поля :attribute должно быть меньше :value.',
|
||||
'string' => 'Количество символов в поле :attribute должно быть меньше :value.',
|
||||
],
|
||||
'lte' => [
|
||||
'array' => 'Количество элементов в поле :attribute должно быть :value или меньше.',
|
||||
'file' => 'Размер файла, указанный в поле :attribute, должен быть :value Кб или меньше.',
|
||||
'numeric' => 'Значение поля :attribute должно быть равным или меньше :value.',
|
||||
'string' => 'Количество символов в поле :attribute должно быть :value или меньше.',
|
||||
],
|
||||
'mac_address' => 'Значение поля :attribute должно быть корректным MAC-адресом.',
|
||||
'max' => [
|
||||
'array' => 'Количество элементов в поле :attribute не может превышать :max.',
|
||||
'file' => 'Размер файла в поле :attribute не может быть больше :max Кб.',
|
||||
'numeric' => 'Значение поля :attribute не может быть больше :max.',
|
||||
'string' => 'Количество символов в значении поля :attribute не может превышать :max.',
|
||||
],
|
||||
'max_digits' => 'Значение поля :attribute не должно содержать больше :max цифр.',
|
||||
'mimes' => 'Файл, указанный в поле :attribute, должен быть одного из следующих типов: :values.',
|
||||
'mimetypes' => 'Файл, указанный в поле :attribute, должен быть одного из следующих типов: :values.',
|
||||
'min' => [
|
||||
'array' => 'Количество элементов в поле :attribute должно быть не меньше :min.',
|
||||
'file' => 'Размер файла, указанный в поле :attribute, должен быть не меньше :min Кб.',
|
||||
'numeric' => 'Значение поля :attribute должно быть не меньше :min.',
|
||||
'string' => 'Количество символов в поле :attribute должно быть не меньше :min.',
|
||||
],
|
||||
'min_digits' => 'Значение поля :attribute должно содержать не меньше :min цифр.',
|
||||
'multiple_of' => 'Значение поля :attribute должно быть кратным :value',
|
||||
'not_in' => 'Значение поля :attribute некорректно.',
|
||||
'not_regex' => 'Значение поля :attribute имеет некорректный формат.',
|
||||
'numeric' => 'Значение поля :attribute должно быть числом.',
|
||||
'password' => [
|
||||
'letters' => 'Значение поля :attribute должно содержать хотя бы одну букву.',
|
||||
'mixed' => 'Значение поля :attribute должно содержать хотя бы одну прописную и одну строчную буквы.',
|
||||
'numbers' => 'Значение поля :attribute должно содержать хотя бы одну цифру.',
|
||||
'symbols' => 'Значение поля :attribute должно содержать хотя бы один символ.',
|
||||
'uncompromised' => 'Значение поля :attribute обнаружено в утёкших данных. Пожалуйста, выберите другое значение для :attribute.',
|
||||
],
|
||||
'present' => 'Значение поля :attribute должно быть.',
|
||||
'prohibited' => 'Значение поля :attribute запрещено.',
|
||||
'prohibited_if' => 'Значение поля :attribute запрещено, когда :other равно :value.',
|
||||
'prohibited_unless' => 'Значение поля :attribute запрещено, если :other не состоит в :values.',
|
||||
'prohibits' => 'Значение поля :attribute запрещает присутствие :other.',
|
||||
'regex' => 'Значение поля :attribute имеет некорректный формат.',
|
||||
'required' => 'Поле :attribute обязательно.',
|
||||
'required_array_keys' => 'Массив в поле :attribute обязательно должен иметь ключи: :values',
|
||||
'required_if' => 'Поле :attribute обязательно для заполнения, когда :other равно :value.',
|
||||
'required_if_accepted' => 'Поле :attribute обязательно, когда :other принято.',
|
||||
'required_unless' => 'Поле :attribute обязательно для заполнения, когда :other не равно :values.',
|
||||
'required_with' => 'Поле :attribute обязательно для заполнения, когда :values указано.',
|
||||
'required_with_all' => 'Поле :attribute обязательно для заполнения, когда :values указано.',
|
||||
'required_without' => 'Поле :attribute обязательно для заполнения, когда :values не указано.',
|
||||
'required_without_all' => 'Поле :attribute обязательно для заполнения, когда ни одно из :values не указано.',
|
||||
'same' => 'Значения полей :attribute и :other должны совпадать.',
|
||||
'size' => [
|
||||
'array' => 'Количество элементов в поле :attribute должно быть равным :size.',
|
||||
'file' => 'Размер файла, указанный в поле :attribute, должен быть равен :size Кб.',
|
||||
'numeric' => 'Значение поля :attribute должно быть равным :size.',
|
||||
'string' => 'Количество символов в поле :attribute должно быть равным :size.',
|
||||
],
|
||||
'starts_with' => 'Поле :attribute должно начинаться с одного из следующих значений: :values',
|
||||
'string' => 'Значение поля :attribute должно быть строкой.',
|
||||
'timezone' => 'Значение поля :attribute должно быть действительным часовым поясом.',
|
||||
'unique' => 'Такое значение поля :attribute уже существует.',
|
||||
'uploaded' => 'Загрузка файла из поля :attribute не удалась.',
|
||||
'url' => 'Значение поля :attribute имеет ошибочный формат URL.',
|
||||
'uuid' => 'Значение поля :attribute должно быть корректным 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.',
|
||||
],
|
||||
'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.',
|
||||
],
|
||||
'name' => [
|
||||
'firstUser' => 'There is already a registered user',
|
||||
]
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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' => [],
|
||||
|
||||
];
|
Loading…
Reference in New Issue
Block a user