From 5ca5aabac732e5e7acb2738104cc7c51c6740602 Mon Sep 17 00:00:00 2001 From: pnzrr <93841792+pnzrr@users.noreply.github.com> Date: Tue, 26 Nov 2024 11:11:07 -0700 Subject: [PATCH] Add translations (#96) * just formatting * add additional language translations --- README.md | 15 +++++---- .../messages/messages_de.properties | 25 ++++++++++++++ .../messages/messages_es.properties | 25 ++++++++++++++ .../messages/messages_fr.properties | 25 ++++++++++++++ .../messages/messages_hu.properties | 25 ++++++++++++++ .../messages/messages_it.properties | 25 ++++++++++++++ .../messages/messages_ja.properties | 25 ++++++++++++++ .../messages/messages_nl.properties | 25 ++++++++++++++ .../messages/messages_pt.properties | 25 ++++++++++++++ .../messages/messages_ru.properties | 33 +++++++++++++++++++ .../messages/messages_zh.properties | 25 ++++++++++++++ 11 files changed, 266 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/theme-resources/messages/messages_de.properties create mode 100644 src/main/resources/theme-resources/messages/messages_es.properties create mode 100644 src/main/resources/theme-resources/messages/messages_fr.properties create mode 100644 src/main/resources/theme-resources/messages/messages_hu.properties create mode 100644 src/main/resources/theme-resources/messages/messages_it.properties create mode 100644 src/main/resources/theme-resources/messages/messages_ja.properties create mode 100644 src/main/resources/theme-resources/messages/messages_nl.properties create mode 100644 src/main/resources/theme-resources/messages/messages_pt.properties create mode 100644 src/main/resources/theme-resources/messages/messages_ru.properties create mode 100644 src/main/resources/theme-resources/messages/messages_zh.properties diff --git a/README.md b/README.md index 72f979d..4b4e91a 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ This contains two pathways to get a Magic Link: ### Authenticator -An Authenticator that can run as a form in your login flow. This takes an email, and can optionally create a user if none exists. This implementation sends the email using a theme-resources template, which you can override. Installation can be achieved by duplicating the Browser flow, and replacing the normal Username/Password/OTP forms with the Magic Link execution type ([@tstec-polypoly](https://github.com/tstec-polypoly) provides a great step-by-step guide for setting it up https://github.com/p2-inc/keycloak-magic-link/issues/6#issuecomment-1230675741). Note that you aren't required to use a *Username form* with this, as it extends `UsernamePasswordForm` and renders the username form page for you: +An Authenticator that can run as a form in your login flow. This takes an email, and can optionally create a user if none exists. This implementation sends the email using a theme-resources template, which you can override. Installation can be achieved by duplicating the Browser flow, and replacing the normal Username/Password/OTP forms with the Magic Link execution type ([@tstec-polypoly](https://github.com/tstec-polypoly) provides a great step-by-step guide for setting it up https://github.com/p2-inc/keycloak-magic-link/issues/6#issuecomment-1230675741). Note that you aren't required to use a _Username form_ with this, as it extends `UsernamePasswordForm` and renders the username form page for you: ![Install Magic Link Authenticator in Browser Flow](docs/assets/magic-link-authenticator.png) @@ -30,8 +30,7 @@ The authenticator can be configured to create a user with the given email addres ## Magic link continuation -This Magic link continuation authenticator is similar to the Magic Link authenticator in implementation, but has a different behaviour. Instead of creating a session on the device where the link is clicked, the flow continues the login on the initial login page. The login page is polling the authentication page each 5 seconds until the session is confirmed or the authentication flow expires. The default expiration for the Magic link continuation flow is 10 minutes. - +This Magic link continuation authenticator is similar to the Magic Link authenticator in implementation, but has a different behavior. Instead of creating a session on the device where the link is clicked, the flow continues the login on the initial login page. The login page is polling the authentication page each 5 seconds until the session is confirmed or the authentication flow expires. The default expiration for the Magic link continuation flow is 10 minutes. ### Authenticator @@ -45,7 +44,6 @@ When the period is exceeded the authentication flow will reset. ![Magic Link continuation expired](docs/assets/magic-link-continuation-expiration.png) - ### Resource A Resource you can call with `manage-users` role, which allows you to specify the email, clientId, redirectUri, tokenExpiry and optionally if the email is sent, or the link is just returned to the caller. @@ -69,6 +67,7 @@ Parameters: | `reusable` | N | true | If the token can be reused multiple times during its validity | Sample request (replace your access token): + ``` curl --request POST https://keycloak.host/auth/realms/test/magic-link \ --header "Accept: application/json" \ @@ -76,7 +75,9 @@ curl --request POST https://keycloak.host/auth/realms/test/magic-link \ --header "Authorization: Bearer " \ --data '{"email":"foo@foo.com","client_id":"account-console","redirect_uri":"https://keycloak.host/auth/realms/test/account/","expiration_seconds":3600,"force_create":true,"update_profile":true,"update_password":true,"send_email":false}' ``` + Sample response: + ``` { "user_id": "386edecf-3e43-41fd-886c-c674eea41034", @@ -87,12 +88,13 @@ Sample response: ## Email OTP -There is a simple authenticator to email a 6-digit OTP to the users email address. This implementation sends the email using a theme-resources template, which you can override. It is recommended to use this in an Authentication flow following the *Username form*. An example flow looks like this: +There is a simple authenticator to email a 6-digit OTP to the users email address. This implementation sends the email using a theme-resources template, which you can override. It is recommended to use this in an Authentication flow following the _Username form_. An example flow looks like this: ![Install Email OTP Authenticator in Browser Flow](docs/assets/email-otp-authenticator.png) ## Installation 1. Build the jar: + ``` mvn clean install ``` @@ -104,6 +106,7 @@ mvn clean install Releases are tagged and published to [Maven Central](https://repo1.maven.org/maven2/io/phasetwo/keycloak/keycloak-magic-link/) after each merge to `main`. Jars can be downloaded from there. If you are depending on the library in your own Maven-built project, or using a bundling tool in Maven, you can add the dependency like this: + ```xml io.phasetwo.keycloak @@ -112,7 +115,6 @@ If you are depending on the library in your own Maven-built project, or using a ``` - ## Implementation Notes This is a rough outline of the implementation: @@ -137,4 +139,3 @@ User contributed POC using Jupyter: https://github.com/tstec-polypoly/explore-ke --- All documentation, source code and other files in this repository are Copyright 2024 Phase Two, Inc. - diff --git a/src/main/resources/theme-resources/messages/messages_de.properties b/src/main/resources/theme-resources/messages/messages_de.properties new file mode 100644 index 0000000..a8759c6 --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_de.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject=Anmeldung bei {0} +magicLinkBody=Jemand hat einen Anmeldelink für {0} angefordert.\n\nKlicken Sie, um sich anzumelden.\n\n{1}\n\nWenn Sie diesen Link nicht angefordert haben, ignorieren Sie bitte diese E-Mail. +magicLinkBodyHtml=

Jemand hat einen Anmeldelink für {0} angefordert

Klicken Sie, um sich anzumelden.

Wenn Sie diesen Link nicht angefordert haben, ignorieren Sie bitte diese E-Mail.

+otpSubject=Ihr Zugangscode für {0} +otpBody=Jemand hat ein Einmal-Passwort angefordert, um sich bei {0} anzumelden.\n\nCode: {1}\n\nWenn Sie diesen Code nicht angefordert haben, ignorieren Sie bitte diese E-Mail. +otpBodyHtml=

Jemand hat ein Einmal-Passwort angefordert, um sich bei {0} anzumelden.

Code: {1}

Wenn Sie diesen Code nicht angefordert haben, ignorieren Sie bitte diese E-Mail.

+magicLinkContinuationSubject=Anmeldung bei {0} +magicLinkContinuationBody=Jemand hat einen Anmeldelink für {0} angefordert.\n\nKlicken Sie, um sich anzumelden.\n\n{1}\n\nWenn Sie diesen Link nicht angefordert haben, ignorieren Sie bitte diese E-Mail. +magicLinkContinuationBodyHtml=

Jemand hat einen Anmeldelink für {0} angefordert

Klicken Sie, um sich anzumelden.

Wenn Sie diesen Link nicht angefordert haben, ignorieren Sie bitte diese E-Mail.

+ +# login +magicLinkConfirmation=Überprüfen Sie Ihre E-Mails und klicken Sie auf den Link, um sich anzumelden! +doResend=Erneut senden +magicLinkContinuationConfirmation=Überprüfen Sie Ihre E-Mails und klicken Sie auf den Link, um sich anzumelden! Bitte schließen Sie diesen Tab nicht. +magicLinkSuccessfulLogin=Authentifizierungssitzung bestätigt. Bitte kehren Sie zum Anmelde-Tab zurück. +magicLinkFailLogin=Authentifizierungssitzung abgelaufen. Bitte schließen Sie diesen Tab und starten Sie den Anmeldevorgang neu. +loginPage=Anmeldeseite +multipleSessionsError=Mehrere Anmeldesitzungen im selben Browser geöffnet. Bitte schließen Sie diese und starten Sie die Anmeldung neu. + +# admin text +ext-magic-form-display-name=Magischer Link +ext-magic-form-help-text=Melden Sie sich mit einem magischen Link an, der an Ihre E-Mail gesendet wird. +ext-email-otp-display-name=E-Mail OTP +ext-email-otp-help-text=Melden Sie sich mit einem Einmal-Passwort an, das an Ihre E-Mail gesendet wird. \ No newline at end of file diff --git a/src/main/resources/theme-resources/messages/messages_es.properties b/src/main/resources/theme-resources/messages/messages_es.properties new file mode 100644 index 0000000..9a0587f --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_es.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject=Iniciar sesión en {0} +magicLinkBody=Alguien solicitó un enlace de inicio de sesión para {0}.\n\nHaga clic para iniciar sesión.\n\n{1}\n\nSi no solicitó este enlace, ignore este correo electrónico. +magicLinkBodyHtml=

Alguien solicitó un enlace de inicio de sesión para {0}

Haga clic para iniciar sesión.

Si no solicitó este enlace, ignore este correo electrónico.

+otpSubject=Su código de acceso para {0} +otpBody=Alguien solicitó una contraseña de un solo uso para iniciar sesión en {0}.\n\nCódigo: {1}\n\nSi no solicitó este código, ignore este correo electrónico. +otpBodyHtml=

Alguien solicitó una contraseña de un solo uso para iniciar sesión en {0}.

Código: {1}

Si no solicitó este código, ignore este correo electrónico.

+magicLinkContinuationSubject=Iniciar sesión en {0} +magicLinkContinuationBody=Alguien solicitó un enlace de inicio de sesión para {0}.\n\nHaga clic para iniciar sesión.\n\n{1}\n\nSi no solicitó este enlace, ignore este correo electrónico. +magicLinkContinuationBodyHtml=

Alguien solicitó un enlace de inicio de sesión para {0}

Haga clic para iniciar sesión.

Si no solicitó este enlace, ignore este correo electrónico.

+ +# login +magicLinkConfirmation=¡Revise su correo electrónico y haga clic en el enlace para iniciar sesión! +doResend=Reenviar +magicLinkContinuationConfirmation=¡Revise su correo electrónico y haga clic en el enlace para iniciar sesión! Por favor, no cierre esta pestaña. +magicLinkSuccessfulLogin=Sesión de autenticación confirmada. Por favor, regrese a la pestaña de la página de inicio de sesión. +magicLinkFailLogin=La sesión de autenticación ha expirado. Por favor, cierre esta pestaña y reinicie el flujo de inicio de sesión. +loginPage=Página de inicio de sesión +multipleSessionsError=Múltiples sesiones de inicio de sesión abiertas en el mismo navegador. Por favor, ciérrelas y reinicie el inicio de sesión. + +# admin text +ext-magic-form-display-name=Enlace mágico +ext-magic-form-help-text=Inicie sesión con un enlace mágico que se enviará a su correo electrónico. +ext-email-otp-display-name=OTP por correo electrónico +ext-email-otp-help-text=Inicie sesión con una contraseña de un solo uso que se enviará a su correo electrónico. \ No newline at end of file diff --git a/src/main/resources/theme-resources/messages/messages_fr.properties b/src/main/resources/theme-resources/messages/messages_fr.properties new file mode 100644 index 0000000..ac6afc8 --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_fr.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject=Connexion à {0} +magicLinkBody=Quelqu'un a demandé un lien de connexion pour {0}.\n\nCliquez pour vous connecter.\n\n{1}\n\nSi vous n'avez pas demandé ce lien, veuillez ignorer cet e-mail. +magicLinkBodyHtml=

Quelqu'un a demandé un lien de connexion pour {0}

Cliquez pour vous connecter.

Si vous n'avez pas demandé ce lien, veuillez ignorer cet e-mail.

+otpSubject=Votre code d'accès pour {0} +otpBody=Quelqu'un a demandé un mot de passe à usage unique pour se connecter à {0}.\n\nCode : {1}\n\nSi vous n'avez pas demandé ce code, veuillez ignorer cet e-mail. +otpBodyHtml=

Quelqu'un a demandé un mot de passe à usage unique pour se connecter à {0}.

Code : {1}

Si vous n'avez pas demandé ce code, veuillez ignorer cet e-mail.

+magicLinkContinuationSubject=Connexion à {0} +magicLinkContinuationBody=Quelqu'un a demandé un lien de connexion pour {0}.\n\nCliquez pour vous connecter.\n\n{1}\n\nSi vous n'avez pas demandé ce lien, veuillez ignorer cet e-mail. +magicLinkContinuationBodyHtml=

Quelqu'un a demandé un lien de connexion pour {0}

Cliquez pour vous connecter.

Si vous n'avez pas demandé ce lien, veuillez ignorer cet e-mail.

+ +# login +magicLinkConfirmation=Vérifiez votre e-mail et cliquez sur le lien pour vous connecter ! +doResend=Renvoyer +magicLinkContinuationConfirmation=Vérifiez votre e-mail et cliquez sur le lien pour vous connecter ! Veuillez ne pas fermer cet onglet. +magicLinkSuccessfulLogin=Session d'authentification confirmée. Veuillez revenir à l'onglet de la page de connexion. +magicLinkFailLogin=La session d'authentification a expiré. Veuillez fermer cet onglet et redémarrer le processus de connexion. +loginPage=Page de connexion +multipleSessionsError=Plusieurs sessions de connexion ouvertes sur le même navigateur. Veuillez les fermer et redémarrer la connexion. + +# admin text +ext-magic-form-display-name=Lien magique +ext-magic-form-help-text=Connectez-vous avec un lien magique qui sera envoyé à votre e-mail. +ext-email-otp-display-name=OTP par e-mail +ext-email-otp-help-text=Connectez-vous avec un mot de passe à usage unique qui sera envoyé à votre e-mail. \ No newline at end of file diff --git a/src/main/resources/theme-resources/messages/messages_hu.properties b/src/main/resources/theme-resources/messages/messages_hu.properties new file mode 100644 index 0000000..6128343 --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_hu.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject=Bejelentkezés a(z) {0} oldalra +magicLinkBody=Valaki bejelentkezési linket kért a(z) {0} oldalra.\n\nKattintson a bejelentkezéshez.\n\n{1}\n\nHa nem Ön kérte ezt a linket, kérjük, hagyja figyelmen kívül ezt az e-mailt. +magicLinkBodyHtml=

Valaki bejelentkezési linket kért a(z) {0} oldalra

Kattintson a bejelentkezéshez.

Ha nem Ön kérte ezt a linket, kérjük, hagyja figyelmen kívül ezt az e-mailt.

+otpSubject=Az Ön hozzáférési kódja a(z) {0} oldalhoz +otpBody=Valaki egyszeri jelszót kért a(z) {0} oldalra való bejelentkezéshez.\n\nKód: {1}\n\nHa nem Ön kérte ezt a kódot, kérjük, hagyja figyelmen kívül ezt az e-mailt. +otpBodyHtml=

Valaki egyszeri jelszót kért a(z) {0} oldalra való bejelentkezéshez.

Kód: {1}

Ha nem Ön kérte ezt a kódot, kérjük, hagyja figyelmen kívül ezt az e-mailt.

+magicLinkContinuationSubject=Bejelentkezés a(z) {0} oldalra +magicLinkContinuationBody=Valaki bejelentkezési linket kért a(z) {0} oldalra.\n\nKattintson a bejelentkezéshez.\n\n{1}\n\nHa nem Ön kérte ezt a linket, kérjük, hagyja figyelmen kívül ezt az e-mailt. +magicLinkContinuationBodyHtml=

Valaki bejelentkezési linket kért a(z) {0} oldalra

Kattintson a bejelentkezéshez.

Ha nem Ön kérte ezt a linket, kérjük, hagyja figyelmen kívül ezt az e-mailt.

+ +# login +magicLinkConfirmation=Ellenőrizze az e-mailjét, és kattintson a linkre a bejelentkezéshez! +doResend=Újraküldés +magicLinkContinuationConfirmation=Ellenőrizze az e-mailjét, és kattintson a linkre a bejelentkezéshez! Kérjük, ne zárja be ezt a lapot. +magicLinkSuccessfulLogin=Azonosítási munkamenet megerősítve. Kérjük, térjen vissza a bejelentkezési oldalra. +magicLinkFailLogin=Azonosítási munkamenet lejárt. Kérjük, zárja be ezt a lapot, és indítsa újra a bejelentkezési folyamatot. +loginPage=Bejelentkezési oldal +multipleSessionsError=Több bejelentkezési munkamenet nyitva ugyanazon a böngészőn. Kérjük, zárja be, és indítsa újra a bejelentkezést. + +# admin text +ext-magic-form-display-name=Varázslink +ext-magic-form-help-text=Jelentkezzen be egy varázslinkkel, amelyet elküldünk az e-mail címére. +ext-email-otp-display-name=E-mail OTP +ext-email-otp-help-text=Jelentkezzen be egy egyszeri jelszóval, amelyet elküldünk az e-mail címére. diff --git a/src/main/resources/theme-resources/messages/messages_it.properties b/src/main/resources/theme-resources/messages/messages_it.properties new file mode 100644 index 0000000..a640c31 --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_it.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject=Accedi a {0} +magicLinkBody=Qualcuno ha richiesto un link di accesso a {0}.\n\nClicca per accedere.\n\n{1}\n\nSe non hai richiesto questo link, ignora questa email. +magicLinkBodyHtml=

Qualcuno ha richiesto un link di accesso a {0}

Clicca per accedere.

Se non hai richiesto questo link, ignora questa email.

+otpSubject=Il tuo codice di accesso per {0} +otpBody=Qualcuno ha richiesto una password monouso per accedere a {0}.\n\nCodice: {1}\n\nSe non hai richiesto questo codice, ignora questa email. +otpBodyHtml=

Qualcuno ha richiesto una password monouso per accedere a {0}.

Codice: {1}

Se non hai richiesto questo codice, ignora questa email.

+magicLinkContinuationSubject=Accedi a {0} +magicLinkContinuationBody=Qualcuno ha richiesto un link di accesso a {0}.\n\nClicca per accedere.\n\n{1}\n\nSe non hai richiesto questo link, ignora questa email. +magicLinkContinuationBodyHtml=

Qualcuno ha richiesto un link di accesso a {0}

Clicca per accedere.

Se non hai richiesto questo link, ignora questa email.

+ +# login +magicLinkConfirmation=Controlla la tua email e clicca sul link per accedere! +doResend=Invia di nuovo +magicLinkContinuationConfirmation=Controlla la tua email e clicca sul link per accedere! Per favore, non chiudere questa scheda. +magicLinkSuccessfulLogin=Sessione di autenticazione confermata. Per favore, torna alla scheda della pagina di accesso. +magicLinkFailLogin=Sessione di autenticazione scaduta. Per favore, chiudi questa scheda e riavvia il flusso di accesso. +loginPage=Pagina di accesso +multipleSessionsError=Più sessioni di accesso aperte sullo stesso browser. Per favore, chiudile e riavvia l'accesso. + +# admin text +ext-magic-form-display-name=Link magico +ext-magic-form-help-text=Accedi con un link magico che verrà inviato alla tua email. +ext-email-otp-display-name=OTP email +ext-email-otp-help-text=Accedi con una password monouso che verrà inviata alla tua email. diff --git a/src/main/resources/theme-resources/messages/messages_ja.properties b/src/main/resources/theme-resources/messages/messages_ja.properties new file mode 100644 index 0000000..26e603d --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_ja.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject={0} にログイン +magicLinkBody=誰かが {0} へのログインリンクをリクエストしました。\n\nクリックしてログインしてください。\n\n{1}\n\nこのリンクをリクエストしていない場合は、このメールを無視してください。 +magicLinkBodyHtml=

誰かが {0} へのログインリンクをリクエストしました

クリックしてログインしてください

このリンクをリクエストしていない場合は、このメールを無視してください。

+otpSubject={0} のアクセスコード +otpBody=誰かが {0} へのログインのためにワンタイムパスワードをリクエストしました。\n\nコード:{1}\n\nこのコードをリクエストしていない場合は、このメールを無視してください。 +otpBodyHtml=

誰かが {0} へのログインのためにワンタイムパスワードをリクエストしました。

コード:{1}

このコードをリクエストしていない場合は、このメールを無視してください。

+magicLinkContinuationSubject={0} にログイン +magicLinkContinuationBody=誰かが {0} へのログインリンクをリクエストしました。\n\nクリックしてログインしてください。\n\n{1}\n\nこのリンクをリクエストしていない場合は、このメールを無視してください。 +magicLinkContinuationBodyHtml=

誰かが {0} へのログインリンクをリクエストしました

クリックしてログインしてください

このリンクをリクエストしていない場合は、このメールを無視してください。

+ +# login +magicLinkConfirmation=メールを確認し、リンクをクリックしてログインしてください! +doResend=再送 +magicLinkContinuationConfirmation=メールを確認し、リンクをクリックしてログインしてください!このタブを閉じないでください。 +magicLinkSuccessfulLogin=認証セッションが確認されました。ログインページのタブに戻ってください。 +magicLinkFailLogin=認証セッションが期限切れになりました。このタブを閉じて、ログインフローを再起動してください。 +loginPage=ログインページ +multipleSessionsError=同じブラウザで複数のログインセッションが開かれています。それを閉じて、ログインを再起動してください。 + +# admin text +ext-magic-form-display-name=マジックリンク +ext-magic-form-help-text=メールに送信されるマジックリンクでサインインします。 +ext-email-otp-display-name=メール OTP +ext-email-otp-help-text=メールに送信されるワンタイムパスワードでサインインします。 \ No newline at end of file diff --git a/src/main/resources/theme-resources/messages/messages_nl.properties b/src/main/resources/theme-resources/messages/messages_nl.properties new file mode 100644 index 0000000..158b842 --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_nl.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject=Log in op {0} +magicLinkBody=Iemand heeft een inloglink aangevraagd voor {0}.\n\nKlik om in te loggen.\n\n{1}\n\nAls u deze link niet heeft aangevraagd, negeer dan deze e-mail. +magicLinkBodyHtml=

Iemand heeft een inloglink aangevraagd voor {0}

Klik om in te loggen.

Als u deze link niet heeft aangevraagd, negeer dan deze e-mail.

+otpSubject=Uw toegangscode voor {0} +otpBody=Iemand heeft een eenmalig wachtwoord aangevraagd om in te loggen op {0}.\n\nCode: {1}\n\nAls u deze code niet heeft aangevraagd, negeer dan deze e-mail. +otpBodyHtml=

Iemand heeft een eenmalig wachtwoord aangevraagd om in te loggen op {0}.

Code: {1}

Als u deze code niet heeft aangevraagd, negeer dan deze e-mail.

+magicLinkContinuationSubject=Log in op {0} +magicLinkContinuationBody=Iemand heeft een inloglink aangevraagd voor {0}.\n\nKlik om in te loggen.\n\n{1}\n\nAls u deze link niet heeft aangevraagd, negeer dan deze e-mail. +magicLinkContinuationBodyHtml=

Iemand heeft een inloglink aangevraagd voor {0}

Klik om in te loggen.

Als u deze link niet heeft aangevraagd, negeer dan deze e-mail.

+ +# login +magicLinkConfirmation=Controleer uw e-mail en klik op de link om in te loggen! +doResend=Opnieuw verzenden +magicLinkContinuationConfirmation=Controleer uw e-mail en klik op de link om in te loggen! Sluit dit tabblad niet. +magicLinkSuccessfulLogin=Authenticatiesessie bevestigd. Ga terug naar het inlogpagina-tabblad. +magicLinkFailLogin=Authenticatiesessie verlopen. Sluit dit tabblad en start het inlogproces opnieuw. +loginPage=Inlogpagina +multipleSessionsError=Meerdere inlogsessies geopend in dezelfde browser. Sluit deze en start het inlogproces opnieuw. + +# admin text +ext-magic-form-display-name=Magische link +ext-magic-form-help-text=Meld u aan met een magische link die naar uw e-mail wordt gestuurd. +ext-email-otp-display-name=E-mail OTP +ext-email-otp-help-text=Meld u aan met een eenmalig wachtwoord dat naar uw e-mail wordt gestuurd. diff --git a/src/main/resources/theme-resources/messages/messages_pt.properties b/src/main/resources/theme-resources/messages/messages_pt.properties new file mode 100644 index 0000000..7cf6d33 --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_pt.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject=Entrar em {0} +magicLinkBody=Alguém solicitou um link de login para {0}.\n\nClique para entrar.\n\n{1}\n\nSe você não solicitou este link, ignore este e-mail. +magicLinkBodyHtml=

Alguém solicitou um link de login para {0}

Clique para entrar.

Se você não solicitou este link, ignore este e-mail.

+otpSubject=Seu código de acesso para {0} +otpBody=Alguém solicitou uma senha única para entrar em {0}.\n\nCódigo: {1}\n\nSe você não solicitou este código, ignore este e-mail. +otpBodyHtml=

Alguém solicitou uma senha única para entrar em {0}.

Código: {1}

Se você não solicitou este código, ignore este e-mail.

+magicLinkContinuationSubject=Entrar em {0} +magicLinkContinuationBody=Alguém solicitou um link de login para {0}.\n\nClique para entrar.\n\n{1}\n\nSe você não solicitou este link, ignore este e-mail. +magicLinkContinuationBodyHtml=

Alguém solicitou um link de login para {0}

Clique para entrar.

Se você não solicitou este link, ignore este e-mail.

+ +# login +magicLinkConfirmation=Verifique seu e-mail e clique no link para entrar! +doResend=Reenviar +magicLinkContinuationConfirmation=Verifique seu e-mail e clique no link para entrar! Por favor, não feche esta aba. +magicLinkSuccessfulLogin=Sessão de autenticação confirmada. Por favor, volte para a aba da página de login. +magicLinkFailLogin=A sessão de autenticação expirou. Por favor, feche esta aba e reinicie o fluxo de login. +loginPage=Página de login +multipleSessionsError=Múltiplas sessões de login abertas no mesmo navegador. Por favor, feche-as e reinicie o login. + +# admin text +ext-magic-form-display-name=Link mágico +ext-magic-form-help-text=Entre com um link mágico que será enviado para seu e-mail. +ext-email-otp-display-name=OTP por e-mail +ext-email-otp-help-text=Entre com uma senha única que será enviada para seu e-mail. \ No newline at end of file diff --git a/src/main/resources/theme-resources/messages/messages_ru.properties b/src/main/resources/theme-resources/messages/messages_ru.properties new file mode 100644 index 0000000..41f852a --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_ru.properties @@ -0,0 +1,33 @@ +# email +magicLinkSubject=Вход в {0} +magicLinkBody=Кто-то запросил ссылку для входа в {0}.\n\nНажмите, чтобы войти.\n\n{1}\n\nЕсли вы не запрашивали эту ссылку, проигнорируйте это письмо. +magicLinkBodyHtml=

Кто-то запросил ссылку для входа в {0}

Нажмите, чтобы войти.

Если вы не запрашивали эту ссылку, проигнорируйте это письмо.

+otpSubject=Ваш код доступа для {0} +otpBody=Кто-то запросил одноразовый пароль для входа в {0}.\n\nКод: {1}\n\nЕсли вы не запрашивали этот код, проигнорируйте это письмо. +otpBodyHtml=

Кто-то запросил одноразовый пароль для входа в {0}.

Код: {1}

Если вы не запрашивали этот код, проигнорируйте это письмо.

+magicLinkContinuationSubject=Вход в {0} +magicLinkContinuationBody=Кто-то запросил ссылку для входа в {0}.\n\nНажмите, чтобы войти.\n\n{1}\n\nЕсли вы не запрашивали эту ссылку, проигнорируйте это письмо. +magicLinkContinuationBodyHtml=

Кто-то запросил ссылку для входа в {0}

Нажмите, чтобы войти.

Если вы не запрашивали эту ссылку, проигнорируйте это письмо.

+ +# login +magicLinkConfirmation=Проверьте свою электронную почту и нажмите на ссылку, чтобы войти! +doResend=Отправить снова +magicLinkContinuationConfirmation=Проверьте свою электронную почту и нажмите на ссылку, чтобы войти! Пожалуйста, не закрывайте эту вкладку. +magicLinkSuccessfulLogin=Сессия аутентификации подтверждена. Пожалуйста, вернитесь на вкладку страницы входа. +magicLinkFailLogin=Сессия аутентификации истекла. П# email +magicLinkSubject=Вход в {0} +magicLinkBody=Кто-то запросил ссылку для входа в {0}.\n\nНажмите, чтобы войти.\n\n{1}\n\nЕсли вы не запрашивали эту ссылку, проигнорируйте это письмо. +magicLinkBodyHtml=

Кто-то запросил ссылку для входа в {0}

Нажмите, чтобы войти.

Если вы не запрашивали эту ссылку, проигнорируйте это письмо.

+otpSubject=Ваш код доступа для {0} +otpBody=Кто-то запросил одноразовый пароль для входа в {0}.\n\nКод: {1}\n\nЕсли вы не запрашивали этот код, проигнорируйте это письмо. +otpBodyHtml=

Кто-то запросил одноразовый пароль для входа в {0}.

Код: {1}

Если вы не запрашивали этот код, проигнорируйте это письмо.

+magicLinkContinuationSubject=Вход в {0} +magicLinkContinuationBody=Кто-то запросил ссылку для входа в {0}.\n\nНажмите, чтобы войти.\n\n{1}\n\nЕсли вы не запрашивали эту ссылку, проигнорируйте это письмо. +magicLinkContinuationBodyHtml=

Кто-то запросил ссылку для входа в {0}

Нажмите, чтобы войти.

Если вы не запрашивали эту ссылку, проигнорируйте это письмо.

+ +# login +magicLinkConfirmation=Проверьте свою электронную почту и нажмите на ссылку, чтобы войти! +doResend=Отправить снова +magicLinkContinuationConfirmation=Проверьте свою электронную почту и нажмите на ссылку, чтобы войти! Пожалуйста, не закрывайте эту вкладку. +magicLinkSuccessfulLogin=Сессия аутентификации подтверждена. Пожалуйста, вернитесь на вкладку страницы входа. +magicLinkFailLogin=Сессия аутентификации истекла. П \ No newline at end of file diff --git a/src/main/resources/theme-resources/messages/messages_zh.properties b/src/main/resources/theme-resources/messages/messages_zh.properties new file mode 100644 index 0000000..e160899 --- /dev/null +++ b/src/main/resources/theme-resources/messages/messages_zh.properties @@ -0,0 +1,25 @@ +# email +magicLinkSubject=登录到 {0} +magicLinkBody=有人请求了一个登录链接到 {0}。\n\n点击登录。\n\n{1}\n\n如果您没有请求此链接,请忽略此电子邮件。 +magicLinkBodyHtml=

有人请求了一个登录链接到 {0}

点击登录

如果您没有请求此链接,请忽略此电子邮件。

+otpSubject=您的 {0} 访问代码 +otpBody=有人请求了一个一次性密码以登录到 {0}。\n\n代码:{1}\n\n如果您没有请求此代码,请忽略此电子邮件。 +otpBodyHtml=

有人请求了一个一次性密码以登录到 {0}。

代码:{1}

如果您没有请求此代码,请忽略此电子邮件。

+magicLinkContinuationSubject=登录到 {0} +magicLinkContinuationBody=有人请求了一个登录链接到 {0}。\n\n点击登录。\n\n{1}\n\n如果您没有请求此链接,请忽略此电子邮件。 +magicLinkContinuationBodyHtml=

有人请求了一个登录链接到 {0}

点击登录

如果您没有请求此链接,请忽略此电子邮件。

+ +# login +magicLinkConfirmation=检查您的电子邮件,并点击链接登录! +doResend=重新发送 +magicLinkContinuationConfirmation=检查您的电子邮件,并点击链接登录!请不要关闭此标签。 +magicLinkSuccessfulLogin=认证会话已确认。请返回登录页面标签。 +magicLinkFailLogin=认证会话已过期。请关闭此标签并重新启动登录流程。 +loginPage=登录页面 +multipleSessionsError=在同一浏览器中打开了多个登录会话。请关闭它并重新启动登录。 + +# admin text +ext-magic-form-display-name=魔术链接 +ext-magic-form-help-text=使用将发送到您的电子邮件的魔术链接登录。 +ext-email-otp-display-name=电子邮件 OTP +ext-email-otp-help-text=使用将发送到您的电子邮件的一次性密码登录。 \ No newline at end of file