diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 054540de..262d875c 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -18,7 +18,7 @@ jobs: services: mariadb: - image: mariadb:latest + image: mariadb:10 ports: - 3306:3306 env: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6eb79d23..65e1d172 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,19 @@ ## dev +- Enh: Keycloak auth client (e.luhr) +- Fix: Social Network Auth (eluhr) + +## 1.6.2 Jan 4th, 2024 + +- Fix: Two Factor Authentication - Filter - Blocks even when two factor authentication is enabled +- Fix: update Dutch (nl) translations (squio) - Enh: possibility to limit the depth of the recursion when getting user ids from roles (mp1509) +- Fix: UserSearch avoid fields name conflict if joined with other tables (liviuk2) +- Fix: PasswordExpireService return false when user model attribute "password_changed_at" is already set at null. +- Enh #524: Two Factor - Authenticator App - offer a "Can't scan?" fallback +- Fix #530: Welcome email: reported Password is now HTML-encoded +- Ehn: updated french translation by @arollmann ## 1.6.1 March 4th, 2023 diff --git a/docs/guides/social-network-authentication.md b/docs/guides/social-network-authentication.md index b8d927ad..9a518021 100644 --- a/docs/guides/social-network-authentication.md +++ b/docs/guides/social-network-authentication.md @@ -46,6 +46,7 @@ The following is the list of clients supported by the module: - **Facebook** - `Da\User\AuthClient\Facebook` - **Github** - `Da\User\AuthClient\Github` - **Google** - `Da\User\AuthClient\Google` +- **Keycloak** - `Da\User\AuthClient\Keycloak` - **LinkedIn** - `Da\User\AuthClient\LinkedIn` - **Twitter** - `Da\User\AuthClient\Twitter` - **VKontakte** - `Da\User\AuthClient\VKontakte` diff --git a/docs/install/configuration-options.md b/docs/install/configuration-options.md index f448a70d..ba775e1c 100755 --- a/docs/install/configuration-options.md +++ b/docs/install/configuration-options.md @@ -143,6 +143,15 @@ List of urls that does not require explicit data processing consent to be access Setting this attribute allows the registration process. If you set it to `false`, the module won't allow users to register by throwing a `NotFoundHttpException` if the `RegistrationController::actionRegister()` is accessed. +#### enableSocialNetworkRegistration (type: `boolean`, default: `true`) + +Setting this attribute allows the registration process via social networks. If you set it to `false`, the module won't allow users to +register. + +#### sendWelcomeMailAfterSocialNetworkRegistration (type: `boolean`, default: `true`) + +Setting this attribute controls wether a confirmation mail should be send or not. + #### enableEmailConfirmation (type: `boolean`, default: `true`) If `true`, the module will send an email with a confirmation link that user needs to click through to complete its diff --git a/src/User/AuthClient/Facebook.php b/src/User/AuthClient/Facebook.php index b910539f..6a2cf7e4 100644 --- a/src/User/AuthClient/Facebook.php +++ b/src/User/AuthClient/Facebook.php @@ -12,10 +12,14 @@ namespace Da\User\AuthClient; use Da\User\Contracts\AuthClientInterface; +use Da\User\Traits\AuthClientUserIdTrait; use yii\authclient\clients\Facebook as BaseFacebook; class Facebook extends BaseFacebook implements AuthClientInterface { + + use AuthClientUserIdTrait; + /** * {@inheritdoc} */ diff --git a/src/User/AuthClient/GitHub.php b/src/User/AuthClient/GitHub.php index 1a298df5..19ccae62 100644 --- a/src/User/AuthClient/GitHub.php +++ b/src/User/AuthClient/GitHub.php @@ -12,10 +12,12 @@ namespace Da\User\AuthClient; use Da\User\Contracts\AuthClientInterface; +use Da\User\Traits\AuthClientUserIdTrait; use yii\authclient\clients\GitHub as BaseGitHub; class GitHub extends BaseGitHub implements AuthClientInterface { + use AuthClientUserIdTrait; /** * {@inheritdoc} */ diff --git a/src/User/AuthClient/Google.php b/src/User/AuthClient/Google.php index 42c24956..13fb6fec 100644 --- a/src/User/AuthClient/Google.php +++ b/src/User/AuthClient/Google.php @@ -12,10 +12,12 @@ namespace Da\User\AuthClient; use Da\User\Contracts\AuthClientInterface; +use Da\User\Traits\AuthClientUserIdTrait; use yii\authclient\clients\Google as BaseGoogle; class Google extends BaseGoogle implements AuthClientInterface { + use AuthClientUserIdTrait; /** * {@inheritdoc} */ diff --git a/src/User/AuthClient/Keycloak.php b/src/User/AuthClient/Keycloak.php new file mode 100644 index 00000000..78943dca --- /dev/null +++ b/src/User/AuthClient/Keycloak.php @@ -0,0 +1,55 @@ + [ + * 'authClientCollection' => [ + * 'class' => 'yii\authclient\Collection', + * 'clients' => [ + * 'keycloak' => [ + * 'class' => 'yii\authclient\clients\Keycloak', + * 'clientId' => 'keycloak_client_id', + * 'clientSecret' => 'keycloak_client_secret', + * 'issuerUrl' => 'http://keycloak/realms/your-realm', + * ], + * ], + * ] + * // ... + * ] + * ``` +*/ +class Keycloak extends OpenIdConnect implements AuthClientInterface +{ + /** + * {@inheritdoc} + */ + public function getEmail() + { + // claim from email scope + return $this->getUserAttributes()['email'] ?? null; + } + + /** + * {@inheritdoc} + */ + public function getUserName() + { + // claim from profile scope + return $this->getUserAttributes()['preferred_username'] ?? $this->getEmail(); + } + + /** + * {@inheritdoc} + */ + public function getUserId() + { + return $this->getUserAttributes()['sub'] ?? null; + } +} diff --git a/src/User/AuthClient/LinkedIn.php b/src/User/AuthClient/LinkedIn.php index b0fc422e..fe5db731 100644 --- a/src/User/AuthClient/LinkedIn.php +++ b/src/User/AuthClient/LinkedIn.php @@ -12,10 +12,13 @@ namespace Da\User\AuthClient; use Da\User\Contracts\AuthClientInterface; +use Da\User\Traits\AuthClientUserIdTrait; use yii\authclient\clients\LinkedIn as BaseLinkedIn; class LinkedIn extends BaseLinkedIn implements AuthClientInterface { + use AuthClientUserIdTrait; + /** * {@inheritdoc} */ diff --git a/src/User/AuthClient/Twitter.php b/src/User/AuthClient/Twitter.php index 5a9f0a8e..166bb9ca 100644 --- a/src/User/AuthClient/Twitter.php +++ b/src/User/AuthClient/Twitter.php @@ -12,10 +12,13 @@ namespace Da\User\AuthClient; use Da\User\Contracts\AuthClientInterface; +use Da\User\Traits\AuthClientUserIdTrait; use yii\authclient\clients\Twitter as BaseTwitter; class Twitter extends BaseTwitter implements AuthClientInterface { + use AuthClientUserIdTrait; + /** * @return string */ diff --git a/src/User/AuthClient/VKontakte.php b/src/User/AuthClient/VKontakte.php index 69faa059..ac516c4d 100644 --- a/src/User/AuthClient/VKontakte.php +++ b/src/User/AuthClient/VKontakte.php @@ -12,11 +12,14 @@ namespace Da\User\AuthClient; use Da\User\Contracts\AuthClientInterface; +use Da\User\Traits\AuthClientUserIdTrait; use Yii; use yii\authclient\clients\VKontakte as BaseVKontakte; class VKontakte extends BaseVKontakte implements AuthClientInterface { + use AuthClientUserIdTrait; + /** * {@inheritdoc} */ diff --git a/src/User/AuthClient/Yandex.php b/src/User/AuthClient/Yandex.php index 35f3dfe2..262ec328 100644 --- a/src/User/AuthClient/Yandex.php +++ b/src/User/AuthClient/Yandex.php @@ -12,11 +12,14 @@ namespace Da\User\AuthClient; use Da\User\Contracts\AuthClientInterface; +use Da\User\Traits\AuthClientUserIdTrait; use Yii; use yii\authclient\clients\Yandex as BaseYandex; class Yandex extends BaseYandex implements AuthClientInterface { + use AuthClientUserIdTrait; + /** * {@inheritdoc} */ diff --git a/src/User/Contracts/AuthClientInterface.php b/src/User/Contracts/AuthClientInterface.php index 6aad0348..84e284b6 100644 --- a/src/User/Contracts/AuthClientInterface.php +++ b/src/User/Contracts/AuthClientInterface.php @@ -14,8 +14,9 @@ use yii\authclient\ClientInterface; /** - * @property-read string $email - * @property-read string $username + * @property-read string|null $email + * @property-read string|null $userName + * @property-read mixed|null $userId */ interface AuthClientInterface extends ClientInterface { @@ -28,4 +29,9 @@ public function getEmail(); * @return string|null username */ public function getUserName(); + + /** + * @return mixed|null user id + */ + public function getUserId(); } diff --git a/src/User/Controller/RegistrationController.php b/src/User/Controller/RegistrationController.php index 6abb039a..0cfe1953 100644 --- a/src/User/Controller/RegistrationController.php +++ b/src/User/Controller/RegistrationController.php @@ -17,6 +17,7 @@ use Da\User\Factory\MailFactory; use Da\User\Form\RegistrationForm; use Da\User\Form\ResendForm; +use Da\User\Helper\SecurityHelper; use Da\User\Model\SocialNetworkAccount; use Da\User\Model\User; use Da\User\Query\SocialNetworkAccountQuery; @@ -152,6 +153,10 @@ public function actionRegister() */ public function actionConnect($code) { + if (!$this->module->enableSocialNetworkRegistration) { + throw new NotFoundHttpException(); + } + /** @var SocialNetworkAccount $account */ $account = $this->socialNetworkAccountQuery->whereCode($code)->one(); if ($account === null || $account->getIsConnected()) { @@ -171,7 +176,11 @@ public function actionConnect($code) if ($user->load(Yii::$app->request->post()) && $user->validate()) { $this->trigger(SocialNetworkConnectEvent::EVENT_BEFORE_CONNECT, $event); - $mailService = MailFactory::makeWelcomeMailerService($user); + if ($this->module->sendWelcomeMailAfterSocialNetworkRegistration) { + $mailService = MailFactory::makeWelcomeMailerService($user); + } else { + $mailService = null; + } if ($this->make(UserCreateService::class, [$user, $mailService])->run()) { $account->connect($user); $this->trigger(SocialNetworkConnectEvent::EVENT_AFTER_CONNECT, $event); diff --git a/src/User/Controller/SettingsController.php b/src/User/Controller/SettingsController.php index 7d476f3e..a96040bc 100644 --- a/src/User/Controller/SettingsController.php +++ b/src/User/Controller/SettingsController.php @@ -473,7 +473,7 @@ public function actionTwoFactor($id) switch ($choice) { case 'google-authenticator': $uri = $this->make(TwoFactorQrCodeUriGeneratorService::class, [$user])->run(); - return $this->renderAjax('two-factor', ['id' => $id, 'uri' => $uri]); + return $this->renderAjax('two-factor', ['id' => $id, 'uri' => $uri, 'user' => $user]); case 'email': $emailCode = $this->make(TwoFactorEmailCodeGeneratorService::class, [$user])->run(); return $this->renderAjax('two-factor-email', ['id' => $id, 'code' => $emailCode]); diff --git a/src/User/Filter/TwoFactorAuthenticationEnforceFilter.php b/src/User/Filter/TwoFactorAuthenticationEnforceFilter.php index bcb09dc8..f0d07092 100644 --- a/src/User/Filter/TwoFactorAuthenticationEnforceFilter.php +++ b/src/User/Filter/TwoFactorAuthenticationEnforceFilter.php @@ -38,8 +38,10 @@ public function beforeAction($action) } $permissions = $module->twoFactorAuthenticationForcedPermissions; - $itemsByUser = array_keys($this->getAuthManager()->getItemsByUser(Yii::$app->user->identity->id)); - if (!empty(array_intersect($permissions, $itemsByUser))) { + + $user = Yii::$app->user->identity; + $itemsByUser = array_keys($this->getAuthManager()->getItemsByUser($user->id)); + if (!empty(array_intersect($permissions, $itemsByUser)) && !$user->auth_tf_enabled) { Yii::$app->session->setFlash('warning', Yii::t('usuario', 'Your role requires 2FA, you won\'t be able to use the application until you enable it')); return Yii::$app->response->redirect(['/user/settings/account'])->send(); } diff --git a/src/User/Module.php b/src/User/Module.php index 0e00f587..d8b4e03d 100755 --- a/src/User/Module.php +++ b/src/User/Module.php @@ -117,6 +117,14 @@ class Module extends BaseModule * @var bool whether to allow registration process or not */ public $enableRegistration = true; + /** + * @var bool whether to allow registration process for social network or not + */ + public $enableSocialNetworkRegistration = true; + /** + * @var bool whether to send a welcome mail after the registration process for social network + */ + public $sendWelcomeMailAfterSocialNetworkRegistration = true; /** * @var bool whether to force email confirmation to */ diff --git a/src/User/Query/SocialNetworkAccountQuery.php b/src/User/Query/SocialNetworkAccountQuery.php index eee6d348..d90ae72d 100644 --- a/src/User/Query/SocialNetworkAccountQuery.php +++ b/src/User/Query/SocialNetworkAccountQuery.php @@ -26,7 +26,7 @@ public function whereClient(AuthClientInterface $client) return $this->andWhere( [ 'provider' => $client->getId(), - 'client_id' => (string)$client->getUserAttributes()['id'], + 'client_id' => (string)$client->getUserId(), ] ); } diff --git a/src/User/Search/UserSearch.php b/src/User/Search/UserSearch.php index ae462d9a..b9367660 100644 --- a/src/User/Search/UserSearch.php +++ b/src/User/Search/UserSearch.php @@ -11,7 +11,9 @@ namespace Da\User\Search; +use Da\User\Model\User; use Da\User\Query\UserQuery; +use Da\User\Traits\ContainerAwareTrait; use Yii; use yii\base\InvalidParamException; use yii\base\Model; @@ -19,6 +21,8 @@ class UserSearch extends Model { + use ContainerAwareTrait; + /** * @var string */ @@ -106,21 +110,23 @@ public function search($params) return $dataProvider; } + $userClass = $this->getClassMap()->get(User::class); + if ($this->created_at !== null) { $date = strtotime($this->created_at); - $query->andFilterWhere(['between', 'created_at', $date, $date + 3600 * 24]); + $query->andFilterWhere(['between', $userClass::tableName().'.created_at', $date, $date + 3600 * 24]); } if ($this->last_login_at !== null) { $date = strtotime($this->last_login_at); - $query->andFilterWhere(['between', 'last_login_at', $date, $date + 3600 * 24]); + $query->andFilterWhere(['between', $userClass::tableName().'.last_login_at', $date, $date + 3600 * 24]); } $query - ->andFilterWhere(['like', 'username', $this->username]) - ->andFilterWhere(['like', 'email', $this->email]) - ->andFilterWhere(['registration_ip' => $this->registration_ip]) - ->andFilterWhere(['last_login_ip' => $this->last_login_ip]); + ->andFilterWhere(['like', $userClass::tableName().'.username', $this->username]) + ->andFilterWhere(['like', $userClass::tableName().'.email', $this->email]) + ->andFilterWhere([$userClass::tableName().'.registration_ip' => $this->registration_ip]) + ->andFilterWhere([$userClass::tableName().'.last_login_ip' => $this->last_login_ip]); return $dataProvider; } diff --git a/src/User/Service/MailService.php b/src/User/Service/MailService.php index 39b52ee2..4e99d443 100644 --- a/src/User/Service/MailService.php +++ b/src/User/Service/MailService.php @@ -83,11 +83,16 @@ public function getType() */ public function run() { - return $this->mailer + $result = $this->mailer ->compose(['html' => $this->view, 'text' => "text/{$this->view}"], $this->params) ->setFrom($this->from) ->setTo($this->to) ->setSubject($this->subject) ->send(); + + if (!$result) { + Yii::error("Email sending failed to '{$this->to}'.", 'mailer'); + } + return $result; } } diff --git a/src/User/Service/PasswordExpireService.php b/src/User/Service/PasswordExpireService.php index bfec3f7c..38190e58 100644 --- a/src/User/Service/PasswordExpireService.php +++ b/src/User/Service/PasswordExpireService.php @@ -25,8 +25,9 @@ public function __construct(User $model) public function run() { - return $this->model->updateAttributes([ + $this->model->updateAttributes([ 'password_changed_at' => null, ]); + return true; } } diff --git a/src/User/Service/SocialNetworkAccountConnectService.php b/src/User/Service/SocialNetworkAccountConnectService.php index 2d6a7a59..366c5f89 100644 --- a/src/User/Service/SocialNetworkAccountConnectService.php +++ b/src/User/Service/SocialNetworkAccountConnectService.php @@ -83,7 +83,7 @@ protected function getSocialNetworkAccount() [], [ 'provider' => $this->client->getId(), - 'client_id' => $data['id'], + 'client_id' => $this->client->getUserId(), 'data' => json_encode($data), ] ); diff --git a/src/User/Service/SocialNetworkAuthenticateService.php b/src/User/Service/SocialNetworkAuthenticateService.php index ded5f478..c2626848 100644 --- a/src/User/Service/SocialNetworkAuthenticateService.php +++ b/src/User/Service/SocialNetworkAuthenticateService.php @@ -48,7 +48,7 @@ public function __construct( public function run() { $account = $this->socialNetworkAccountQuery->whereClient($this->client)->one(); - if (!$this->controller->module->enableRegistration && ($account === null || $account->user === null)) { + if (!$this->controller->module->enableSocialNetworkRegistration && ($account === null || $account->user === null)) { Yii::$app->session->setFlash('danger', Yii::t('usuario', 'Registration on this website is disabled')); $this->authAction->setSuccessUrl(Url::to(['/user/security/login'])); @@ -97,7 +97,7 @@ protected function createAccount() [], [ 'provider' => $this->client->getId(), - 'client_id' => $data['id'], + 'client_id' => $this->client->getUserId(), 'data' => json_encode($data), 'username' => $this->client->getUserName(), 'email' => $this->client->getEmail(), @@ -106,7 +106,10 @@ protected function createAccount() if (($user = $this->getUser($account)) instanceof User) { $account->user_id = $user->id; - $account->save(false); + } + + if (!$account->save(false)) { + return null; } return $account; diff --git a/src/User/Service/UserCreateService.php b/src/User/Service/UserCreateService.php index 74ecc73d..491873e0 100644 --- a/src/User/Service/UserCreateService.php +++ b/src/User/Service/UserCreateService.php @@ -31,7 +31,7 @@ class UserCreateService implements ServiceInterface protected $securityHelper; protected $mailService; - public function __construct(User $model, MailService $mailService, SecurityHelper $securityHelper) + public function __construct(User $model, ?MailService $mailService, SecurityHelper $securityHelper) { $this->model = $model; $this->mailService = $mailService; @@ -70,7 +70,7 @@ public function run() } $model->trigger(UserEvent::EVENT_AFTER_CREATE, $event); - if (!$this->sendMail($model)) { + if ($this->mailService instanceof MailService && !$this->sendMail($model)) { $error_msg = Yii::t( 'usuario', 'Error sending welcome message to "{email}". Please try again later.', diff --git a/src/User/Traits/AuthClientUserIdTrait.php b/src/User/Traits/AuthClientUserIdTrait.php new file mode 100644 index 00000000..c1166fe1 --- /dev/null +++ b/src/User/Traits/AuthClientUserIdTrait.php @@ -0,0 +1,14 @@ +getUserAttributes()['id'] ?? null; + } +} diff --git a/src/User/Validator/TwoFactorEmailValidator.php b/src/User/Validator/TwoFactorEmailValidator.php index 37bedcef..9466a05e 100644 --- a/src/User/Validator/TwoFactorEmailValidator.php +++ b/src/User/Validator/TwoFactorEmailValidator.php @@ -111,6 +111,6 @@ public function getUnsuccessLoginMessage($codeDurationTime) */ public function generateCode() { - return $this->make(TwoFactorEmailCodeGeneratorService::class, $this->user)->run(); + return $this->make(TwoFactorEmailCodeGeneratorService::class, [$this->user])->run(); } } diff --git a/src/User/resources/i18n/es/usuario.php b/src/User/resources/i18n/es/usuario.php index 28394d28..3360803b 100644 --- a/src/User/resources/i18n/es/usuario.php +++ b/src/User/resources/i18n/es/usuario.php @@ -57,6 +57,7 @@ 'Block' => 'Bloquear', 'Block status' => 'Estado de bloqueo', 'Blocked at {0, date, MMMM dd, YYYY HH:mm}' => 'Bloqueado el {0, date, dd MMMM, YYYY HH:mm}', + 'Can\'t scan? Copy the code instead.' => '¿No puedes escanear? Copie el código.', 'Cancel' => 'Cancelar', 'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => 'No se puede asignar rol "{0}" ya que AuthManager no ha sido configurado en su aplicación de consola.', 'Change your avatar at Gravatar.com' => 'Cambie su avatar en Gravatar.com', diff --git a/src/User/resources/i18n/fr/usuario.php b/src/User/resources/i18n/fr/usuario.php index d165c4ee..48f54bc8 100644 --- a/src/User/resources/i18n/fr/usuario.php +++ b/src/User/resources/i18n/fr/usuario.php @@ -56,6 +56,7 @@ 'Block' => 'Verrouiller', 'Block status' => 'État du verrouillage', 'Blocked at {0, date, MMMM dd, YYYY HH:mm}' => 'Verrouillé depuis le {0, date, dd MMMM YYYY HH:mm}', + 'Can\'t scan? Copy the code instead.' => 'Ne peut pas numériser? Copiez le code.', 'Cancel' => 'Annuler', 'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => 'Impossible d\'assigner le rôle {0} tant que l\'AuthManager n\'est pas configuré depuis la console de l\'application.', 'Change your avatar at Gravatar.com' => 'Changez votre avatar depuis Gravatar.com', @@ -272,50 +273,50 @@ 'privacy policy' => 'politique de confidentialité', '{0, date, MMMM dd, YYYY HH:mm}' => '{0, date, dd MMMM YYYY HH:mm}', '{0} cannot be blank.' => '{0} ne peut être vide.', - 'According to the European General Data Protection Regulation (GDPR) we need your consent to work with your personal data.' => '', - 'Active' => '', - 'Application not configured for two factor authentication.' => '', - 'Code for two factor authentication on {0}' => '', - 'Current' => '', - 'Data privacy' => '', - 'Error while enabling SMS two factor authentication. Please reload the page.' => '', - 'Google Authenticator' => '', - 'IP' => '', - 'If you haven\'t received a password, you can reset it at' => '', - 'Inactive' => '', - 'Insert' => '', - 'Insert the code you received by SMS.' => '', - 'Insert the code you received by email.' => '', - 'Insert the mobile phone number where you want to receive text message in international format' => '', - 'Last activity' => '', - 'Mobile phone number' => '', - 'Mobile phone number successfully enabled.' => '', - 'Please, enter the right code. The code is valid for {0} seconds. If you want to get a new code, please click on \'Cancel\' and repeat the login request.' => '', - 'Please, enter the right code. The code is valid for {0} seconds. If you want to get a new code, please close this window and repeat the enabling request.' => '', - 'Session ID' => '', - 'Session history' => '', - 'Status' => '', - 'Submit' => '', - 'Terminate all sessions' => '', - 'Text message' => '', - 'The email address set is: "{0}".' => '', - 'The email sending failed, please check your configuration.' => '', - 'The phone number set is: "{0}".' => '', - 'The requested page does not exist.' => '', - 'The sms sending failed, please check your configuration.' => '', - 'This is the code to insert to enable two factor authentication' => '', - 'Two factor authentication code by SMS' => '', - 'Two factor authentication code by email' => '', - 'Unfortunately, you can not work with this site without giving us consent to process your data.' => '', - 'User ID' => '', - 'User agent' => '', - 'User does not have sufficient permissions.' => '', - 'You cannot block your own account.' => '', - 'You cannot remove your own account.' => '', - 'You received this email because someone, possibly you or someone on your behalf, have created an account at {app_name}' => '', - 'Your consent is required to work with this site' => '', - 'Your role requires 2FA, you won\'t be able to use the application until you enable it' => '', - 'Your two factor authentication method is based on "{0}".' => '', + 'According to the European General Data Protection Regulation (GDPR) we need your consent to work with your personal data.' => 'Conformément au Règlement général européen sur la protection des données (RGPD), nous avons besoin de votre consentement pour traiter vos données personnelles.', + 'Active' => 'Actif', + 'Application not configured for two factor authentication.' => 'Application non configurée pour l\'authentification à deux facteurs.', + 'Code for two factor authentication on {0}' => 'Code pour l\'authentification à deux facteurs sur {0}', + 'Current' => 'Actuel', + 'Data privacy' => 'Confidentialité des données', + 'Error while enabling SMS two factor authentication. Please reload the page.' => 'Erreur lors de l\'activation de l\'authentification SMS à deux facteurs. Veuillez recharger la page.', + 'Google Authenticator' => 'Google Authenticator', + 'IP' => 'IP', + 'If you haven\'t received a password, you can reset it at' => 'Si vous n\'avez pas reçu de mot de passe, vous pouvez le réinitialiser à ', + 'Inactive' => 'Inactif', + 'Insert' => 'Insérer', + 'Insert the code you received by SMS.' => 'Insérez le code que vous avez reçu par SMS.', + 'Insert the code you received by email.' => 'Insérez le code que vous avez reçu par email.', + 'Insert the mobile phone number where you want to receive text message in international format' => 'Insérez le numéro de téléphone mobile sur lequel vous souhaitez recevoir les SMS au format international', + 'Last activity' => 'Dernière Activité', + 'Mobile phone number' => 'Numéro de téléphone portable', + 'Mobile phone number successfully enabled.' => 'Numéro de téléphone mobile activé avec succès.', + 'Please, enter the right code. The code is valid for {0} seconds. If you want to get a new code, please click on \'Cancel\' and repeat the login request.' => 'SVP, entrez le code correct. Le code est valide pendant {0} secondes. Si vous souhaitez obtenir un nouveau code, veuillez cliquer sur \'Annuler\' et répéter la demande de connexion.', + 'Please, enter the right code. The code is valid for {0} seconds. If you want to get a new code, please close this window and repeat the enabling request.' => 'SVP, entrez le code correct. Le code est valide pendant {0} secondes. Si vous souhaitez obtenir un nouveau code, veuillez fermer cette fenêtre et répéter la demande d\'activation.', + 'Session ID' => 'ID de session', + 'Session history' => 'Historique de session', + 'Status' => 'Statut', + 'Submit' => 'Envoyer', + 'Terminate all sessions' => 'Clôturer toutes les sessions', + 'Text message' => 'Message texte', + 'The email address set is: "{0}".' => 'L\'adresse e-mail définie est : "{0}".', + 'The email sending failed, please check your configuration.' => 'L\'envoi de l\'e-mail a échoué, veuillez vérifier votre configuration.', + 'The phone number set is: "{0}".' => 'Le numéro de téléphone défini est : "{0}".', + 'The requested page does not exist.' => 'La page demandée n\'existe pas.', + 'The sms sending failed, please check your configuration.' => 'L\'envoi du SMS a échoué, veuillez vérifier votre configuration.', + 'This is the code to insert to enable two factor authentication' => 'Voici le code à insérer pour activer l\'authentification à deux facteurs', + 'Two factor authentication code by SMS' => 'Code d\'authentification à deux facteurs par SMS', + 'Two factor authentication code by email' => 'Code d\'authentification à deux facteurs par email', + 'Unfortunately, you can not work with this site without giving us consent to process your data.' => 'Malheureusement, vous ne pouvez pas travailler avec ce site sans nous donner votre consentement au traitement de vos données.', + 'User ID' => 'ID de l\'utilisateur', + 'User agent' => 'Agent utilisateur', + 'User does not have sufficient permissions.' => 'L\'utilisateur ne dispose pas des autorisations suffisantes.', + 'You cannot block your own account.' => 'Vous ne pouvez pas bloquer votre propre compte.', + 'You cannot remove your own account.' => 'Vous ne pouvez pas supprimer votre propre compte.', + 'You received this email because someone, possibly you or someone on your behalf, have created an account at {app_name}' => 'Vous avez reçu cet e-mail parce que quelqu\'un, peut-être vous-même ou quelqu\'un en votre nom, a créé un compte sur {app_name}', + 'Your consent is required to work with this site' => 'Votre consentement est requis pour travailler avec ce site', + 'Your role requires 2FA, you won\'t be able to use the application until you enable it' => 'Votre rôle nécessite 2FA, vous ne pourrez pas utiliser l\'application tant que vous ne l\'aurez pas activée', + 'Your two factor authentication method is based on "{0}".' => 'Votre méthode d\'authentification à deux facteurs est basée sur "{0}".', '{0, date, MMM dd, YYYY HH:mm}' => '', - 'Mobile phone not found, please check your profile' => '@@@@', + 'Mobile phone not found, please check your profile' => 'Téléphone portable introuvable, veuillez vérifier votre profil', ]; diff --git a/src/User/resources/i18n/it/usuario.php b/src/User/resources/i18n/it/usuario.php index 9ed2e712..668cf106 100644 --- a/src/User/resources/i18n/it/usuario.php +++ b/src/User/resources/i18n/it/usuario.php @@ -53,6 +53,7 @@ 'Authorization rule has been updated.' => 'Regola di autorizzazione modificata.', 'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => 'Fantastico, ci siamo quasi. Ora devi solo visitare il collegamento di conferma che è stato inviato al tuo nuovo indirizzo email.', 'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => 'Fantastico, ci siamo quasi. Ora devi solo visitare il collegamento di conferma che è stato inviato al tuo vecchio indirizzo email.', + 'Can\'t scan? Copy the code instead.' => 'Non puoi scansionare? Copia il codice.', 'Back to privacy settings' => 'Torna alle impostazioni di privacy', 'Bio' => 'Bio', 'Block' => 'Blocca', diff --git a/src/User/resources/i18n/nl/usuario.php b/src/User/resources/i18n/nl/usuario.php index ee4851b1..e27a6b39 100644 --- a/src/User/resources/i18n/nl/usuario.php +++ b/src/User/resources/i18n/nl/usuario.php @@ -18,125 +18,125 @@ */ return [ '(not set)' => '(niet ingesteld)', - 'A confirmation message has been sent to your new email address' => 'Er werd een bevestigingsmail naar het nieuwe emailadres verzonden', - 'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => 'Een email met daarin een bevestigingslink werd verzonden naar jouw email adres. Klik op de link om de registratie te vervolledigen.', - 'A new confirmation link has been sent' => 'Een nieuwe bevestigingslink werd verzonden', - 'A password will be generated automatically if not provided' => 'Een wachtwoord zal automatisch gegenereerd worden in het geval dat er geen wachtwoord werd ingegeven', + 'A confirmation message has been sent to your new email address' => 'Er is een bevestigings-e-mail naar het nieuwe e-mail-adres verzonden', + 'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.' => 'Er is een e-mail met een bevestigingslink naar jouw e-mail adres gestuurd. Open deze link om de registratie te bevestigen.', + 'A new confirmation link has been sent' => 'Er is een nieuwe bevestigingslink verstuurd', + 'A password will be generated automatically if not provided' => 'Er wordt automatisch een wachtwoord gegenereerd als hier niets wordt ingevuld', 'Account' => 'Account', - 'Account confirmation' => 'Account bevestiging', - 'Account details' => 'Account details', - 'Account details have been updated' => 'Account details werden geupdate', - 'Account settings' => 'Account instellingen', - 'Already registered? Sign in!' => 'Reeds geregistreerd? Log in!', - 'An error occurred processing your request' => 'Een error trad op terwijl we uw aanvraag verwerkten', - 'Are you sure you want to block this user?' => 'Ben je zeker dat je deze gebruiker wil blokkeren?', - 'Are you sure you want to confirm this user?' => 'Ben je zeker dat je deze gebruiker wil bevestigen?', - 'Are you sure you want to delete this user?' => 'Ben je zeker dat je deze gebrukiker wil verwijderen?', - 'Are you sure you want to switch to this user for the rest of this Session?' => 'Ben je zeker dat je naar deze gebruiker wil wisselen tot het einde van deze sessie?', - 'Are you sure you want to unblock this user?' => 'Ben je zeker dat je deze gebruiker wil deblokkeren?', - 'Are you sure you wish the user to change their password at next login?' => 'Ben je zeker dat de gebruiker zijn wachtwoord wijzigd bij de volgende keer dat deze zich inlogt?', - 'Are you sure you wish to send a password recovery email to this user?' => 'Ben je zeker dat je een wachtwoord herstel email naar deze gebruiker wil verzenden?', - 'Are you sure? Deleted user can not be restored' => 'Ben je zeker? Een verwijderde gebruiker kan niet worden hersteld!', - 'Are you sure? There is no going back' => 'Ben je zeker? Er is geen terugweg meer nadien!', + 'Account confirmation' => 'Account-bevestiging', + 'Account details' => 'Account-details', + 'Account details have been updated' => 'Account-details zijn bijgewerkt', + 'Account settings' => 'Account-instellingen', + 'Already registered? Sign in!' => 'Al geregistreerd? Log in!', + 'An error occurred processing your request' => 'Helaas, er is iets misgegaan', + 'Are you sure you want to block this user?' => 'Weet je zeker dat je deze gebruiker wilt blokkeren?', + 'Are you sure you want to confirm this user?' => 'Weet je zeker dat je deze gebruiker wilt bevestigen?', + 'Are you sure you want to delete this user?' => 'Weet je zeker dat je deze gebruiker wilt verwijderen?', + 'Are you sure you want to switch to this user for the rest of this Session?' => 'Weet je zeker dat je als deze gebruiker wilt verder gaan (tot het einde van deze sessie)?', + 'Are you sure you want to unblock this user?' => 'Weet je zeker dat je deze gebruiker wilt deblokkeren?', + 'Are you sure you wish the user to change their password at next login?' => 'Weet je zeker dat je deze gebruiker zijn wachtwoord wilt laten wijzigen bij de volgende keer inloggen?', + 'Are you sure you wish to send a password recovery email to this user?' => 'Weet je zeker dat je een wachtwoord-herstelmail naar deze gebruiker wilt sturen?', + 'Are you sure? Deleted user can not be restored' => 'Weet je het zeker? Een verwijderde gebruiker kan niet worden hersteld!', + 'Are you sure? There is no going back' => 'Weet je het zeker? Dit kan niet ongedaan worden gemaakt!', 'Assignments' => 'Toewijzing', - 'Assignments have been updated' => 'Toewijzingen werden geupdate', - 'Auth item with such name already exists' => 'Auth item met deze naam bestaat reeds', - 'Authentication rule class {0} can not be instantiated' => 'Authenticatie regel klasse {0} can niet worden geïnstantieerd', - 'Authorization item successfully created.' => 'Authorisatie item met succes aangemaakt', - 'Authorization item successfully removed.' => 'Authorisatie item met succes verwijderd', - 'Authorization item successfully updated.' => 'Authorisatie item met succes geupdate', - 'Authorization rule has been added.' => 'Authorisatie regel werd toegevoegd', - 'Authorization rule has been removed.' => 'Authorisatie regel werd verwijderd', - 'Authorization rule has been updated.' => 'Authorisatie regel werd geupdate', - 'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => 'Super, bijna klaar. Enkel nog de bevestigingslink aanklikken in de mail die naar jouw nieuw emailadres werd gestuurd', - 'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => 'Super, bijna klaar. Enkel nog de bevestigingslink aanklikken in de mail die naar jouw oud emailadres werd gestuurd', - 'Back to privacy settings' => 'Terug naar privcay settings', - 'Bio' => 'Bio', + 'Assignments have been updated' => 'Toewijzingen zijn bijgewerkt', + 'Auth item with such name already exists' => 'Authorisatie-item met deze naam bestaat al', + 'Authentication rule class {0} can not be instantiated' => 'Authenticatie-regel klasse {0} kan niet worden geïnstantieerd', + 'Authorization item successfully created.' => 'Authorisatie-item aangemaakt', + 'Authorization item successfully removed.' => 'Authorisatie-item verwijderd', + 'Authorization item successfully updated.' => 'Authorisatie-item bijgewerkt', + 'Authorization rule has been added.' => 'Authorisatie-regel is toegevoegd', + 'Authorization rule has been removed.' => 'Authorisatie-regel is verwijderd', + 'Authorization rule has been updated.' => 'Authorisatie-regel is bijgewerkt', + 'Awesome, almost there. Now you need to click the confirmation link sent to your new email address.' => 'Super, bijna klaar. Alleen nog de bevestigingslink klikken in de mail die naar jouw nieuwe e-mail-adres is gestuurd', + 'Awesome, almost there. Now you need to click the confirmation link sent to your old email address.' => 'Super, bijna klaar. Alleen nog de bevestigingslink klikken in de mail die naar jouw oude e-mail-adres is gestuurd', + 'Back to privacy settings' => 'Terug naar privacy-instellingen', + 'Bio' => 'Biografie', 'Block' => 'Blokkeren', - 'Block status' => 'Blokeer status', - 'Blocked at {0, date, MMMM dd, YYYY HH:mm}' => 'Geblokkeerd om {0, date, MMMM dd, YYYY HH:mm}', + 'Block status' => 'Geblokkeerd', + 'Blocked at {0, date, MMMM dd, YYYY HH:mm}' => 'Geblokkeerd op {0, date, MMMM dd, YYYY HH:mm}', 'Cancel' => 'Annuleren', - 'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => 'Kan rol {0} niet toewijzen doordat de AuthManager niet geconfigureerd is op jouw console applicatie', - 'Change your avatar at Gravatar.com' => 'Wijzig jouw avatar op Gravatar.com', + 'Cannot assign role "{0}" as the AuthManager is not configured on your console application.' => 'Kan rol {0} niet toewijzen omdat de AuthManager niet geconfigureerd is in je console-applicatie', + 'Change your avatar at Gravatar.com' => 'Wijzig je avatar op Gravatar.com', 'Children' => 'Kinderen', 'Class' => 'Klasse', 'Close' => 'Sluiten', - 'Complete password reset on {0}' => 'Vervolledig het resetten van het wachtwoord op {0}', + 'Complete password reset on {0}' => 'Voltooi het wachtwoordherstel op {0}', 'Confirm' => 'Bevestig', 'Confirm account on {0}' => 'Bevestig account op {0}', - 'Confirm email change on {0}' => 'Bevestig email wijziging op {0}', + 'Confirm email change on {0}' => 'Bevestig e-mail-wijziging op {0}', 'Confirmation' => 'Bevestiging', - 'Confirmation status' => 'Bevestiging status', - 'Confirmation time' => 'Bevestiging tijdstip', + 'Confirmation status' => 'Status bevestiging', + 'Confirmation time' => 'Tijdstip bevestiging', 'Confirmed' => 'Bevestigd', 'Confirmed at {0, date, MMMM dd, YYYY HH:mm}' => 'Bevestigd op {0, date, MMMM dd, YYYY HH:mm}', - 'Connect' => 'Connecteren', - 'Continue' => 'Doorgaan', - 'Create' => 'Aanmaken', - 'Create a user account' => 'Maak een gebruikers account aan', + 'Connect' => 'Verbind', + 'Continue' => 'Ga door', + 'Create' => 'Maak aan', + 'Create a user account' => 'Maak een gebruikers-account aan', 'Create new permission' => 'Maak een nieuwe machtiging aan', - 'Create new role' => 'Maak een nieuw rol aan', - 'Create new rule' => 'maak een nieuwe regel aan', + 'Create new role' => 'Maak een nieuwe rol aan', + 'Create new rule' => 'Maak een nieuwe regel aan', 'Created at' => 'Gemaakt op', - 'Credentials will be sent to the user by email' => 'Inloggevens word via mail naar de gebruiker verzonden', + 'Credentials will be sent to the user by email' => 'Inloggegevens zijn via e-mail naar de gebruiker verzonden', 'Current password' => 'Huidig wachtwoord', 'Current password is not valid' => 'Huidig wachtwoord is niet geldig', - 'Data processing consent' => 'Data verwerking toestemming', - 'Delete' => 'Verwijderen', - 'Delete account' => 'Account verwijderen', + 'Data processing consent' => 'Data-verwerking toestemming', + 'Delete' => 'Verwijder', + 'Delete account' => 'Verwijder account', 'Delete my account' => 'Verwijder mijn account', 'Delete personal data' => 'Verwijder mijn persoonlijke data', - 'Deleted by GDPR request' => 'Verwijder mijn GDPR aanvraag', - 'Description' => 'Omschrijving', - 'Didn\'t receive confirmation message?' => 'Geen bevestiging email ontvangen?', - 'Disable two factor authentication' => 'Tweetraps authenticatie uitschakelen', - 'Disconnect' => 'Verbindig verbreken', + 'Deleted by GDPR request' => 'Verwijderd op versoek (AVG/GDPR)', + 'Description' => 'Beschrijving', + 'Didn\'t receive confirmation message?' => 'Geen bevestigings-e-mail ontvangen?', + 'Disable two factor authentication' => 'Schakel tweefactor-authenticatie uit', + 'Disconnect' => 'Verbreek verbinding', 'Don\'t have an account? Sign up!' => 'Geen account? Meld je aan', - 'Download my data' => 'Download mijn data', - 'Email' => 'Email', - 'Email (public)' => 'Email (publiek)', - 'Enable' => 'Inschakelen', - 'Enable two factor authentication' => 'Schakel tweetraps authenticatie in', - 'Error occurred while changing password' => 'Een error deed zich voor tijdens het wijzigen van het wachtwoord', - 'Error occurred while confirming user' => 'Een error deed zich voor tijdens het bevestigen van de gebruiker', - 'Error occurred while deleting user' => 'Een error deed zich voor tijdens het wissen van de gebruiker', - 'Error sending registration message to "{email}". Please try again later.' => 'Een error deed zich voor tijdens het zenden van de regustratie email naar "{email}". Probeer later nog eens.', - 'Error sending welcome message to "{email}". Please try again later.' => 'Een error deed zich voor tijdens het verzenden van de welkom email naar "{email}". Probeer later nog eens.', - 'Export my data' => 'Exporteer mijn data', - 'Finish' => 'beëindig', - 'Force password change at next login' => 'Forceer wachtwoord reset bij volgende login', + 'Download my data' => 'Download mijn gegevens', + 'Email' => 'E-mail', + 'Email (public)' => 'E-mail (publiek)', + 'Enable' => 'Schakel in', + 'Enable two factor authentication' => 'Schakel tweefactor-authenticatie in', + 'Error occurred while changing password' => 'Er is iets fout gegaan bij het wijzigen van het wachtwoord', + 'Error occurred while confirming user' => 'Er is iets fout gegaan bij het bevestigen van de gebruiker', + 'Error occurred while deleting user' => 'Er is iets fout gegaan bij het wissen van de gebruiker', + 'Error sending registration message to "{email}". Please try again later.' => 'Er is iets fout gegaan bij het versturen van de registratie-e-mail naar "{email}". Probeer later nog eens.', + 'Error sending welcome message to "{email}". Please try again later.' => 'Er is iets fout gegaan bij het versturen van de welkomst-e-mail naar "{email}". Probeer later nog eens.', + 'Export my data' => 'Exporteer mijn gegevens', + 'Finish' => 'Beëindig', + 'Force password change at next login' => 'Forceer wachtwoord-reset bij volgende login', 'Forgot password?' => 'Wachtwoord vergeten?', - 'Gravatar email' => 'Gravatar email', + 'Gravatar email' => 'Gravatar e-mail', 'Hello' => 'Hallo', - 'Here you can download your personal data in a comma separated values format.' => 'Hier kan je al jouw persoonlijke data downloaden in een komma\'s gescheiden formaat.', - 'I agree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => 'Ik ga akkoord met het verwerken van mijn persoonlijke data en het gebruik van cookies om de werking van deze website te vergemakkelijken. Voor meer, lees onze {privacyPolicy}', - 'If you already registered, sign in and connect this account on settings page' => 'Als je reeds geregistreerd bent, meldt je aan en verbind deze account via de instellingen pagina', - 'If you cannot click the link, please try pasting the text into your browser' => 'Als je niet op deze link kan klikken, kopieer en plak de tekst in jouw browser', - 'If you did not make this request you can ignore this email' => 'Als je deze aanvraag niet deed mag je deze email negeren', - 'Impersonate this user' => 'Doe zich voor als deze gebruiker', - 'In order to complete your registration, please click the link below' => 'Om jouw registratie te vervolledigen, klik op onderstaande link', - 'In order to complete your request, please click the link below' => 'Om jouw aanvraag te vervolledigen, klik op onderstaande link', - 'In order to finish your registration, we need you to enter following fields' => 'Om jouw registratie te beëindigen, dien je volgende velden in te vullen', + 'Here you can download your personal data in a comma separated values format.' => 'Hier kan je al jouw persoonlijke gegevens downloaden in een komma-gescheiden formaat.', + 'I agree processing of my personal data and the use of cookies to facilitate the operation of this site. For more information read our {privacyPolicy}' => 'Ik ga akkoord met het verwerken van mijn persoonlijke gegevens en het gebruik van cookies om de werking van deze website te vergemakkelijken. Voor meer, lees de {privacyPolicy}', + 'If you already registered, sign in and connect this account on settings page' => 'Meld je aan en verbind deze account via de instellingen-pagina als je al geregistreerd bent', + 'If you cannot click the link, please try pasting the text into your browser' => 'Als je niet op deze link kan klikken, kopieer en plak de tekst dan in je web-browser', + 'If you did not make this request you can ignore this email' => 'Als je deze aanvraag niet deed kan je deze e-mail negeren', + 'Impersonate this user' => 'Doe je voor als deze gebruiker', + 'In order to complete your registration, please click the link below' => 'Klik op onderstaande link om je registratie te bevestigen', + 'In order to complete your request, please click the link below' => 'Klik op onderstaande link om je aanvraag te bevestigen', + 'In order to finish your registration, we need you to enter following fields' => 'De volgende velden moeten worden ingevuld om je registratie te beëindigen', 'Information' => 'Informatie', 'Invalid login or password' => 'Ongeldige login of wachtwoord', - 'Invalid or expired link' => 'Ongeldige of vervallen link', + 'Invalid or expired link' => 'Ongeldige- of vervallen link', 'Invalid password' => 'Ongeldig wachtwoord', - 'Invalid two factor authentication code' => 'Ongeldige tweetraps authenticatie code', + 'Invalid two factor authentication code' => 'Ongeldige tweefactor-authenticatie code', 'Invalid value' => 'Ongeldige waarde', 'It will be deleted forever' => 'Het zal voor altijd verwijderd worden', 'Items' => 'Items', - 'Joined on {0, date}' => 'Toegetreden op {0, date}', + 'Joined on {0, date}' => 'Geregistreerd op {0, date}', 'Last login IP' => 'Laatste login IP', - 'Last login time' => 'Laatste login tijdstip', - 'Last password change' => 'Laatste wachtwoord wijziging', + 'Last login time' => 'Laatste login-tijdstip', + 'Last password change' => 'Laatste wachtwoordwijziging', 'Location' => 'Locatie', 'Login' => 'Log in', 'Logout' => 'Log uit', - 'Manage users' => 'Gebruikers beheren', + 'Manage users' => 'Beheer gebruikers', 'Name' => 'Naam', 'Networks' => 'Netwerken', 'Never' => 'Nooit', - 'New email' => 'Nieuwe email', + 'New email' => 'Nieuwe e-mail', 'New password' => 'Nieuw wachtwoord', 'New permission' => 'Nieuwe machtiging', 'New role' => 'Nieuwe rol', @@ -144,178 +144,178 @@ 'New user' => 'Nieuwe gebruiker', 'Not blocked' => 'Niet geblokkeerd', 'Not found' => 'Niet gevonden', - 'Once you delete your account, there is no going back' => 'Wanneer je jouw account verwijderd, is er geen terugkeren meer mogelijk', - 'Once you have deleted your data, you will not longer be able to sign in with this account.' => 'Wanneer je jouw data verwijderd is inloggen met deze account niet meer mogelijk.', + 'Once you delete your account, there is no going back' => 'Als je jouw account verwijderd kan dit niet hersteld worden', + 'Once you have deleted your data, you will not longer be able to sign in with this account.' => 'Als je jouw gegevens verwijderd is inloggen met deze account niet meer mogelijk.', 'Password' => 'Wachtwoord', - 'Password age' => 'Wachtwoord leeftijd', - 'Password has been changed' => 'Wachtwoord werd gewijzigd', + 'Password age' => 'Wachtwoord ouderdom', + 'Password has been changed' => 'Wachtwoord is gewijzigd', 'Permissions' => 'Machtigingen', - 'Please be certain' => 'Gelieve zeker te zijn', - 'Please click the link below to complete your password reset' => 'Klik op onderstaande link om jouw wachtwoord reset te vervolledigen', - 'Please fix following errors:' => 'Gelieve volgende fouten op te lossen:', + 'Please be certain' => 'Weet je het zeker?', + 'Please click the link below to complete your password reset' => 'Klik op onderstaande link om je wachtwoord-reset te bevestigen', + 'Please fix following errors:' => 'Los de volgende fouten op:', 'Privacy' => 'Privacy', - 'Privacy settings' => 'Privacy instellingen', + 'Privacy settings' => 'Privacy-instellingen', 'Profile' => 'Profiel', - 'Profile details' => 'Profiel details', - 'Profile details have been updated' => 'Profiel details werden geupdate', - 'Profile settings' => 'Profiel instellingen', + 'Profile details' => 'Profielgegevens', + 'Profile details have been updated' => 'Profielgegevens zijn bijgewerkt', + 'Profile settings' => 'Profiel-instellingen', 'Recover your password' => 'Herstel je wachtwoord', - 'Recovery link is invalid or expired. Please try requesting a new one.' => 'Herstel link is ongeldig of vervallen. Gelieve een nieuwe aan te vragen', - 'Recovery message sent' => 'Herstel bericht verzonden', + 'Recovery link is invalid or expired. Please try requesting a new one.' => 'De herstel-link is ongeldig of vervallen. Vraag een nieuwe aan', + 'Recovery message sent' => 'Herstel-bericht verzonden', 'Registration IP' => 'Registratie IP', 'Registration on this website is disabled' => 'Registratie is gedeactiveerd op deze website', - 'Registration time' => 'Registratie tijdstip', - 'Remember me next time' => 'Onthou me', - 'Request new confirmation message' => 'Vraag een nieuw bevestigings bericht aan', - 'Required "key" cannot be empty.' => 'Verplicht veld "key" kan niet leeg zijn.', - 'Required "secret" cannot be empty.' => 'Verplicht veld "geheim" kan niet leeg zijn.', - 'Reset your password' => 'Reset jouw wachtwoord', - 'Role "{0}" not found. Creating it.' => 'Rol "{0}" kan niet worden gevonden. Het wordt aangemaakt', + 'Registration time' => 'Registratie-tijdstip', + 'Remember me next time' => 'Onthoud mijn login', + 'Request new confirmation message' => 'Vraag een nieuwe bevestigings-e-mail aan', + 'Required "key" cannot be empty.' => 'Verplicht veld "key" mag niet leeg zijn.', + 'Required "secret" cannot be empty.' => 'Verplicht veld "secret" mag niet leeg zijn.', + 'Reset your password' => 'Herstel je wachtwoord', + 'Role "{0}" not found. Creating it.' => 'Rol "{0}" kan niet worden gevonden. Deze wordt aangemaakt', 'Roles' => 'Rollen', 'Rule' => 'Regel', - 'Rule class must extend "yii\\rbac\\Rule".' => 'Regel classe moet "yii\\rbac\\Rule" extenden.', - 'Rule name' => 'Regel naam', + 'Rule class must extend "yii\\rbac\\Rule".' => 'Regel moet subclass van "yii\\rbac\\Rule" zijn.', + 'Rule name' => 'Regel-naam', 'Rule name {0} is already in use' => 'Regel met naam "{0}" is al in gebruik', 'Rule {0} does not exists' => 'Regel {0} bestaat niet', - 'Rule {0} not found.' => 'Regel {0} werd niet gevonden', + 'Rule {0} not found.' => 'Regel {0} niet gevonden', 'Rules' => 'Regels', 'Save' => 'Opslaan', - 'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => 'Scan de QR coe met Google Authenticator (of andere) en geef vervolgens de tijdelijke code in en klik hierna op verzenden.', - 'Send password recovery email' => 'Verzend wachtwoord herstel email', - 'Sign in' => 'Aanmelden', - 'Sign up' => 'Registreren', - 'Something went wrong' => 'Er ging iets mis', + 'Scan the QrCode with Google Authenticator App, then insert its temporary code on the box and submit.' => 'Scan de QR code met Google Authenticator (of vergelijkbaar), voer de tijdelijke code in en klik op verzenden.', + 'Send password recovery email' => 'Verzend wachtwoord-herstel e-mail', + 'Sign in' => 'Log in', + 'Sign up' => 'Registreer', + 'Something went wrong' => 'Er is iets mis gegaan', 'Switch identities is disabled.' => 'Identiteiten wisselen is niet ingeschakeld', - 'Thank you for signing up on {0}' => 'Bedankt om je te registreren op "{0}"', - 'Thank you, registration is now complete.' => 'Bedankt, jouw registratie is voltooid.', + 'Thank you for signing up on {0}' => 'Bedankt voor je registratie op "{0}"', + 'Thank you, registration is now complete.' => 'Bedankt, je registratie is klaar.', 'The "recaptcha" component must be configured.' => 'De "recaptcha" component moet worden geconfigureerd.', - 'The confirmation link is invalid or expired. Please try requesting a new one.' => 'De bevestigings link is ongeludig of vervallen. Gelieve een nieuwe aan te vragen.', + 'The confirmation link is invalid or expired. Please try requesting a new one.' => 'De bevestigings-link is ongeldig of vervallen. Vraag een nieuwe aan.', 'The verification code is incorrect.' => 'De bevestigingscode is ongeldig', 'There is neither role nor permission with name "{0}"' => 'Er is geen rol of machtiging met de naam "{0}"', - 'There was an error in saving user' => 'Er was een fout bij het opslaan van de gebruiker', + 'There was an error in saving user' => 'Er ging iets fout bij het opslaan van de gebruiker', 'This account has already been connected to another user' => 'Dit account is al verbonden met een andere gebruiker', - 'This email address has already been taken' => 'Dit emailadres is al in gebruik', + 'This email address has already been taken' => 'Dit e-mail-adres is al in gebruik', 'This username has already been taken' => 'Deze gebruikersnaam is al in gebruik', - 'This will disable two factor authentication. Are you sure?' => 'Dit zal de tweetraps authenticatie uitschakelen. Ben je zeker?', - 'This will remove your personal data from this site. You will no longer be able to sign in.' => 'Dit zal jouw persoonlijke data van de website wissen. Je zal niet langer kunnen inloggen.', - 'Time zone' => 'Tijd zonde', - 'Time zone is not valid' => 'Tijd zone is niet geldig', - 'Two Factor Authentication (2FA)' => 'Tweetraps authenticatie (2FA)', - 'Two factor authentication code' => 'Tweetraps authenticatie code', - 'Two factor authentication has been disabled.' => 'Tweetraps authenticatie is uitgeschakeld', - 'Two factor authentication successfully enabled.' => 'Tweetraps authenticatie met succes ingeschakeld', - 'Unable to confirm user. Please, try again.' => 'Onmogelijk om de gebruiker te bevestigen. Probeer opnieuw.', - 'Unable to create an account.' => 'Onmogelijk om een account aan te maken.', - 'Unable to create authorization item.' => 'Onmogelijk om een authorisatie item aan te maken', - 'Unable to create new authorization rule.' => 'Onmogelijk om een authorisatie regel aan te maken', - 'Unable to delete user. Please, try again later.' => 'Onmogelijk om de gebruiker te wissen. Probeer later opnieuw.', - 'Unable to disable Two factor authentication.' => 'Onmogelijk om de tweetraps authenticatie uit te schakelen.', - 'Unable to remove authorization item.' => 'Onmogelijk om het authorisatie item te wissen.', - 'Unable to send confirmation link' => 'Onmogelijk om de bevestigingsmail te versturen', - 'Unable to send recovery message to the user' => 'Onmogelijk om de herstel email naar de gebruiker te versturen', - 'Unable to update authorization item.' => 'Onmogelijk om het authorisatie item aan te passen.', - 'Unable to update authorization rule.' => 'Onmogelijk om de authorisatie regel aan te passen.', - 'Unable to update block status.' => 'Onmogelijk om het geblokkeerd status aan te passen', + 'This will disable two factor authentication. Are you sure?' => 'Dit zal de tweefactor authenticatie uitschakelen. Weet je het zeker?', + 'This will remove your personal data from this site. You will no longer be able to sign in.' => 'Dit zal jouw persoonlijke gegevens van de website wissen. Je kan niet langer inloggen.', + 'Time zone' => 'Tijdzone', + 'Time zone is not valid' => 'Tijdzone is niet geldig', + 'Two Factor Authentication (2FA)' => 'Tweefactor-authenticatie (2FA)', + 'Two factor authentication code' => 'Tweefactor-authenticatiecode', + 'Two factor authentication has been disabled.' => 'Tweefactor-authenticatie is uitgeschakeld', + 'Two factor authentication successfully enabled.' => 'Tweefactor-authenticatie is ingeschakeld', + 'Unable to confirm user. Please, try again.' => 'Niet mogelijk om de gebruiker te bevestigen. Probeer opnieuw.', + 'Unable to create an account.' => 'Niet mogelijk om een account aan te maken.', + 'Unable to create authorization item.' => 'Niet mogelijk om een authorisatie-item aan te maken', + 'Unable to create new authorization rule.' => 'Niet mogelijk om een authorisatie-regel aan te maken', + 'Unable to delete user. Please, try again later.' => 'Niet mogelijk om de gebruiker te verwijderen. Probeer later opnieuw.', + 'Unable to disable Two factor authentication.' => 'Niet mogelijk om de tweefactor-authenticatie uit te schakelen.', + 'Unable to remove authorization item.' => 'Niet mogelijk om het authorisatie-item te verwijderen.', + 'Unable to send confirmation link' => 'Niet mogelijk om de bevestigingsmail te versturen', + 'Unable to send recovery message to the user' => 'Niet mogelijk om de herstel-e-mail naar de gebruiker te versturen', + 'Unable to update authorization item.' => 'Niet mogelijk om het authorisatie-item aan te passen.', + 'Unable to update authorization rule.' => 'Niet mogelijk om de authorisatie-regel aan te passen.', + 'Unable to update block status.' => 'Niet mogelijk om de blokkering te wijzigen', 'Unblock' => 'Deblokkeren', 'Unconfirmed' => 'Niet bevestigd', - 'Update' => 'Update', - 'Update assignments' => 'Update toewijzingen', - 'Update permission' => 'Update machtigingen', - 'Update role' => 'Update rol', - 'Update rule' => 'Update regel', - 'Update user account' => 'Update gebruikersaccount', - 'Updated at' => 'Geupdate op', - 'User account could not be created.' => 'Gebruikers account kon niet worden aangemaakt.', - 'User block status has been updated.' => 'Gebruikers blokkeringstatus werd aangepast.', + 'Update' => 'Werk bij', + 'Update assignments' => 'Werk toewijzingen bij', + 'Update permission' => 'Werk machtigingen bij', + 'Update role' => 'Werk rol bij', + 'Update rule' => 'Werk regel bij', + 'Update user account' => 'Werk Gebruikersaccount bij', + 'Updated at' => 'Bijgewerkt op', + 'User account could not be created.' => 'Gebruikers-account kan niet worden aangemaakt.', + 'User block status has been updated.' => 'Blokkering is aangepast.', 'User could not be registered.' => 'Gebruiker kon niet worden geregistreerd.', - 'User has been confirmed' => 'Gebruiker werd bevestigd', - 'User has been created' => 'Gebruiker werd aangemaakt', - 'User has been deleted' => 'Gebruiker werd verwijderd', - 'User is not found' => 'Gebruiker werd niet gevonden', + 'User has been confirmed' => 'Gebruiker is bevestigd', + 'User has been created' => 'Gebruiker is aangemaakt', + 'User has been deleted' => 'Gebruiker is verwijderd', + 'User is not found' => 'Gebruiker niet gevonden', 'User not found.' => 'Gebruiker niet gevonden', - 'User will be required to change password at next login' => 'Gebruiker zal verplicht worden zijn wachtwoord aan te passen bij volgende login', + 'User will be required to change password at next login' => 'Gebruiker wordt verplicht zijn wachtwoord te veranderen bij volgende login', 'Username' => 'Gebruikersnaam', 'Users' => 'Gebruikers', 'VKontakte' => 'VKontakte', - 'Verification failed. Please, enter new code.' => 'Bevestiging gefaald. Geef een nieuwe code in.', - 'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => 'We konden geen nieuwe email sturen om jouw adres te bevestigen? Kijk het email adres en controleer of het niet al bevestigd is.', - 'We have generated a password for you' => 'Wij genereerden een wachtwoord voor jou', - 'We have received a request to change the email address for your account on {0}' => 'We ontvingen een aanvraag om jouw email adres te wijzigen voor jouw account op {0}', - 'We have received a request to reset the password for your account on {0}' => 'Wij ontvingen een aanvraag om jouw wachtwoord te resetten voor jouw account op {0}', - 'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => 'We hebben een bevestigingslink naar zowel jouw oud als nieuw email adres gestuurd. Je moet beiden links aanklikken om de aanvraag te voltooien.', + 'Verification failed. Please, enter new code.' => 'Bevestiging mislukt. Voer een nieuwe code in.', + 'We couldn\'t re-send the mail to confirm your address. Please, verify is the correct email or if it has been confirmed already.' => 'Versturen van e-mail om jouw adres te bevestigen is mislukt. Controleer het e-mail-adres en controleer of het niet al bevestigd is.', + 'We have generated a password for you' => 'Er is een nieuw wachtwoord voor je gegenereerd', + 'We have received a request to change the email address for your account on {0}' => 'We ontvingen een aanvraag om je e-mail adres te wijzigen voor je account op {0}', + 'We have received a request to reset the password for your account on {0}' => 'Wij ontvingen een aanvraag om je wachtwoord te herstellen voor je account op {0}', + 'We have sent confirmation links to both old and new email addresses. You must click both links to complete your request.' => 'Er is een bevestigingslink naar jouw oude en nieuwe e-mail-adres gestuurd. Je moet beide links openen om de aanvraag te bevestigen.', 'Website' => 'Website', 'Welcome to {0}' => 'Welkom op {0}', 'Yandex' => 'Yandex', - 'You are about to delete all your personal data from this site.' => 'Je staat op het punt om al jouw persoonlijke dat te wissen van deze website', - 'You can assign multiple roles or permissions to user by using the form below' => 'Je kan meerder rollen of machtigingen toewijzen aan de gebruiker door middel van onderstaand formulier', - 'You can connect multiple accounts to be able to log in using them' => 'Je kan met meerder accounts verbinden om met deze accounts in te loggen', - 'You cannot remove your own account' => 'Wij kunnen je eigen account niet verwijderen.', - 'You need to confirm your email address' => 'Je moet je email adres bevestigen', - 'Your account details have been updated' => 'Je account details werden gewijzigd', - 'Your account has been blocked' => 'Jouw account werd geblokkeerd', - 'Your account has been blocked.' => 'Jouw account werd geblokkeerd.', - 'Your account has been completely deleted' => 'Jouw account werd volledig verwijderd', - 'Your account has been connected' => 'Jouw account werd verbonden', - 'Your account has been created' => 'Jouw account werd aangemaakt', - 'Your account has been created and a message with further instructions has been sent to your email' => 'Jouw account werd aangemaakt en een email met verdere instructies werd naar jouw email adres verzonden', - 'Your account on {0} has been created' => 'Jouw account op {0} werd aangemaakt', - 'Your confirmation token is invalid or expired' => 'Je bevestigingstoken is ongeldig of vervallen', - 'Your consent is required to register' => 'Jouw toestemming is verplicht om te registreren', - 'Your email address has been changed' => 'Jouw email adres werd gewijzigd', - 'Your password has expired, you must change it now' => 'Jouw wachtwoord is vervallen. Gelieve het onmiddelijk te wijzigen', - 'Your personal information has been removed' => 'Jouw persoonlijke gegevens werden verwijderd', - 'Your profile has been updated' => 'Jouw profiel werd geupdate', + 'You are about to delete all your personal data from this site.' => 'Je staat op het punt om al je persoonlijke gegevens te wissen van deze website', + 'You can assign multiple roles or permissions to user by using the form below' => 'In dit formulier kan je meerdere rollen of machtigingen toewijzen aan de gebruiker', + 'You can connect multiple accounts to be able to log in using them' => 'Je kan met meerdere accounts verbinden om met deze accounts in te loggen', + 'You cannot remove your own account' => 'Je kan je eigen account niet verwijderen.', + 'You need to confirm your email address' => 'Je moet je e-mail-adres bevestigen', + 'Your account details have been updated' => 'Je account-details zijn gewijzigd', + 'Your account has been blocked' => 'Je account is geblokkeerd', + 'Your account has been blocked.' => 'Je account is geblokkeerd.', + 'Your account has been completely deleted' => 'Je account is volledig verwijderd', + 'Your account has been connected' => 'Je account is verbonden', + 'Your account has been created' => 'Je account is aangemaakt', + 'Your account has been created and a message with further instructions has been sent to your email' => 'Je account is aangemaakt en een e-mail met verdere instructies is naar je e-mail-adres verzonden', + 'Your account on {0} has been created' => 'Je account op {0} is aangemaakt', + 'Your confirmation token is invalid or expired' => 'Je bevestigingscode is ongeldig of vervallen', + 'Your consent is required to register' => 'Je toestemming is verplicht om te registreren', + 'Your email address has been changed' => 'Je e-mail-adres is gewijzigd', + 'Your password has expired, you must change it now' => 'Je wachtwoord is vervallen, je moet een nieuw wachtwoord aanmaken', + 'Your personal information has been removed' => 'Je persoonlijke gegevens zijn verwijderd', + 'Your profile has been updated' => 'Je profiel is bijgewerkt', 'privacy policy' => 'privacy policy', '{0, date, MMM dd, YYYY HH:mm}' => '{0, date, MMM dd, YYYY HH:mm}', - '{0, date, MMMM dd, YYYY HH:mm}' => '{0, date, MMMM dd, YYYY HH:mm}\'', - '{0} cannot be blank.' => '{0} kan niet leeg zijn.', - 'According to the European General Data Protection Regulation (GDPR) we need your consent to work with your personal data.' => '', + '{0, date, MMMM dd, YYYY HH:mm}' => '{0, date, MMMM dd, YYYY HH:mm}', + '{0} cannot be blank.' => '{0} mag niet leeg zijn.', + 'According to the European General Data Protection Regulation (GDPR) we need your consent to work with your personal data.' => 'In verband met de Algemene Verordening Gegevensbescherming (AVG/GDPR) hebben wij je toestemming nodig voor het gebruiken van je gegevens', 'Active' => '', - 'An email with instructions to create a new password has been sent to {email} if it is associated with an {appName} account. Your existing password has not been changed.' => '', - 'Application not configured for two factor authentication.' => '', - 'Code for two factor authentication on {0}' => '', - 'Current' => '', - 'Data privacy' => '', - 'Error while enabling SMS two factor authentication. Please reload the page.' => '', - 'Google Authenticator' => '', - 'IP' => '', - 'If you haven\'t received a password, you can reset it at' => '', - 'Inactive' => '', - 'Insert' => '', - 'Insert the code you received by SMS.' => '', - 'Insert the code you received by email.' => '', - 'Insert the mobile phone number where you want to receive text message in international format' => '', - 'Last activity' => '', - 'Mobile phone number' => '', - 'Mobile phone number successfully enabled.' => '', - 'Please, enter the right code. The code is valid for {0} seconds. If you want to get a new code, please click on \'Cancel\' and repeat the login request.' => '', - 'Please, enter the right code. The code is valid for {0} seconds. If you want to get a new code, please close this window and repeat the enabling request.' => '', - 'Rule class name' => '', - 'Select rule...' => '', - 'Session ID' => '', - 'Session history' => '', - 'Status' => '', - 'Submit' => '', - 'Terminate all sessions' => '', - 'Text message' => '', - 'The email address set is: "{0}".' => '', - 'The email sending failed, please check your configuration.' => '', - 'The phone number set is: "{0}".' => '', - 'The requested page does not exist.' => '', - 'The sms sending failed, please check your configuration.' => '', - 'This is the code to insert to enable two factor authentication' => '', - 'Two factor authentication code by SMS' => '', - 'Two factor authentication code by email' => '', - 'Two factor authentication protects you in case of stolen credentials' => '', - 'Unfortunately, you can not work with this site without giving us consent to process your data.' => '', - 'User ID' => '', - 'User agent' => '', - 'User does not have sufficient permissions.' => '', - 'You cannot block your own account.' => '', - 'You cannot remove your own account.' => '', - 'You received this email because someone, possibly you or someone on your behalf, have created an account at {app_name}' => '', - 'Your consent is required to work with this site' => '', - 'Your role requires 2FA, you won\'t be able to use the application until you enable it' => '', - 'Your two factor authentication method is based on "{0}".' => '', - 'Mobile phone not found, please check your profile' => '@@@@', + 'An email with instructions to create a new password has been sent to {email} if it is associated with an {appName} account. Your existing password has not been changed.' => 'Er is een e-mail met instructies verstuurd naar {email} als dit is verbonden mat je {appName} account; je bestaande wachtwoord is niet gewijzigd.', + 'Application not configured for two factor authentication.' => 'App niet geconfigureerd voor tweefactor-authenticatie', + 'Code for two factor authentication on {0}' => 'Code voor tweefactor-authenticatie', + 'Current' => 'Bestaande', + 'Data privacy' => 'Gegevens-privacy', + 'Error while enabling SMS two factor authentication. Please reload the page.' => 'Fout met het instellen van SMS authenticatie, laad deze pagina opnieuw', + 'Google Authenticator' => 'Google Authenticator', + 'IP' => 'IP', + 'If you haven\'t received a password, you can reset it at' => 'ALs je geen wachtwoord hebt ontvangen kan je het wijzigen op', + 'Inactive' => 'Inactief', + 'Insert' => 'Voer in', + 'Insert the code you received by SMS.' => 'Voer de code in die je per SMS ontvangen hebt', + 'Insert the code you received by email.' => 'Voer de code in die je per e-mail ontvangen hebt', + 'Insert the mobile phone number where you want to receive text message in international format' => 'Voer je mobiele telefoonnummer in waar je de SMS wilt ontvangen (internationaal formaat)', + 'Last activity' => 'Laatste activiteit', + 'Mobile phone number' => 'Mobiel telefoonnummer', + 'Mobile phone number successfully enabled.' => 'Mobiel telefoonnummer geactiveerd', + 'Please, enter the right code. The code is valid for {0} seconds. If you want to get a new code, please click on \'Cancel\' and repeat the login request.' => 'Voer de code in, deze is geldig gedurende {0} seconden. Kies \'Annuleer\' en herhaal het verzoek om een nieuwe code te ontvangen.', + 'Please, enter the right code. The code is valid for {0} seconds. If you want to get a new code, please close this window and repeat the enabling request.' => 'Voer de code in, deze is geldig gedurende {0} seconden. Sluit dit venster en herhaal het verzoek om een nieuwe code te ontvangen.', + 'Rule class name' => 'Regel class-naam', + 'Select rule...' => 'Selecteer regel', + 'Session ID' => 'Sessie-ID', + 'Session history' => 'Sessie-geschiedenis', + 'Status' => 'Status', + 'Submit' => 'Verstuur', + 'Terminate all sessions' => 'Verwijder alle sessies', + 'Text message' => 'SMS', + 'The email address set is: "{0}".' => 'Het ingestelde e-mail-adres is: "{0}".', + 'The email sending failed, please check your configuration.' => 'E-mail versturen mislukt, controleer je instellingen', + 'The phone number set is: "{0}".' => 'Het ingestelde telefoonnummer is: "{0}".', + 'The requested page does not exist.' => 'De opgevraagde pagina bestaat niet.', + 'The sms sending failed, please check your configuration.' => 'SMS versturen mislukt, controleer je instellingen', + 'This is the code to insert to enable two factor authentication' => 'Dit is de code die ingevoerd moet worden voor het activeren van tweefactor-authenticatie', + 'Two factor authentication code by SMS' => 'Tweefactor code per SMS', + 'Two factor authentication code by email' => 'Tweefactor code per e-mail', + 'Two factor authentication protects you in case of stolen credentials' => 'Tweefactor authenticatie beschermt je tegen misbruik als je login-gegevens gestolen zijn', + 'Unfortunately, you can not work with this site without giving us consent to process your data.' => 'Je kan deze site niet bezoeken zonder je toestemming te geven voor het verwerken van je gegevens', + 'User ID' => 'Gebruikers-ID', + 'User agent' => 'User Agent', + 'User does not have sufficient permissions.' => 'Gebruiker heeft onvoldoende rechten', + 'You cannot block your own account.' => 'Je kan je eigen account niet blokkeren.', + 'You cannot remove your own account.' => 'Je kan je eigen account niet verwijderen.', + 'You received this email because someone, possibly you or someone on your behalf, have created an account at {app_name}' => 'Je ontvangt deze e-mail omdat iemand (waarschijnlijk jijzelf) een account heeft aangemaakt op {app_name}', + 'Your consent is required to work with this site' => 'Je toestemming is nodig om deze site te bezoeken', + 'Your role requires 2FA, you won\'t be able to use the application until you enable it' => 'Voor deze rol is 2FA vereist, je kan niet verder gaan zonder tweefactor-authenticatie in te schakelen', + 'Your two factor authentication method is based on "{0}".' => 'Je tweefactor-authenticatie methode is gebaseerd op "{0}".', + 'Mobile phone not found, please check your profile' => 'Mobiel telefoonnummer niet gevonden, controleer je profiel-gegevens', ]; diff --git a/src/User/resources/views/mail/welcome.php b/src/User/resources/views/mail/welcome.php index 526f0795..8efa10a9 100644 --- a/src/User/resources/views/mail/welcome.php +++ b/src/User/resources/views/mail/welcome.php @@ -27,7 +27,7 @@

name) ?>. generatePasswords): ?> - : password ?> + : password) ?> allowPasswordRecovery): ?> : diff --git a/src/User/resources/views/settings/two-factor.php b/src/User/resources/views/settings/two-factor.php index 6434396a..439b82e0 100644 --- a/src/User/resources/views/settings/two-factor.php +++ b/src/User/resources/views/settings/two-factor.php @@ -10,6 +10,7 @@ /** @var string $id */ /** @var string $uri */ +/** @var Da\User\Model\User $user */ ?>

@@ -26,6 +27,12 @@
+
+
+ +
auth_tf_key ?>
+
+