Convert LinkExpirationFormatterMethod to Java's ChoiceFormat pattern
Closes #21887
This commit is contained in:
parent
5bd4d8202f
commit
1ec8d3a9a4
19 changed files with 156 additions and 227 deletions
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
package org.keycloak.theme.beans;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Properties;
|
||||
|
@ -13,7 +14,7 @@ import freemarker.template.TemplateMethodModelEx;
|
|||
import freemarker.template.TemplateModelException;
|
||||
|
||||
/**
|
||||
* Method used to format link expiration time period in emails.
|
||||
* Method used to format the link expiration time period in emails.
|
||||
*
|
||||
* @author Vlastimil Elias (velias at redhat dot com)
|
||||
*/
|
||||
|
@ -62,14 +63,6 @@ public class LinkExpirationFormatterMethod implements TemplateMethodModelEx {
|
|||
}
|
||||
}
|
||||
|
||||
return value + " " + getUnitTextFromMessages(unitKey, value);
|
||||
return value + " " + MessageFormat.format(messages.getProperty("linkExpirationFormatter.timePeriodUnit." + unitKey), value);
|
||||
}
|
||||
|
||||
protected String getUnitTextFromMessages(String unitKey, long value) {
|
||||
String msg = messages.getProperty("linkExpirationFormatter.timePeriodUnit." + unitKey + "." + value);
|
||||
if (msg != null)
|
||||
return msg;
|
||||
return messages.getProperty("linkExpirationFormatter.timePeriodUnit." + unitKey);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,13 +5,22 @@
|
|||
*/
|
||||
package org.keycloak.theme.beans;
|
||||
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import java.util.Properties;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import freemarker.template.TemplateModelException;
|
||||
|
@ -24,15 +33,10 @@ public class LinkExpirationFormatterMethodTest {
|
|||
protected static final Locale locale = Locale.ENGLISH;
|
||||
protected static final Properties messages = new Properties();
|
||||
static {
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.seconds.1", "second");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.seconds", "seconds");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.minutes.1", "minute");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.minutes.3", "minutes-3");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.minutes", "minutes");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.hours.1", "hour");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.hours", "hours");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.days.1", "day");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.days", "days");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.seconds", "{0,choice,0#seconds|1#second|1<seconds}");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.minutes", "{0,choice,0#minutes|1#minute|2#minutes|3#minutes-3|3<minutes}");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.hours", "{0,choice,0#hours|1#hour|1<hours}");
|
||||
messages.put("linkExpirationFormatter.timePeriodUnit.days", "{0,choice,0#days|1#day|1<days}");
|
||||
}
|
||||
|
||||
protected List<Object> toList(Object... objects) {
|
||||
|
@ -68,8 +72,10 @@ public class LinkExpirationFormatterMethodTest {
|
|||
@Test
|
||||
public void inputtypes_number() throws TemplateModelException{
|
||||
LinkExpirationFormatterMethod tested = new LinkExpirationFormatterMethod(messages, locale);
|
||||
Assert.assertEquals("5 minutes", tested.exec(toList(new Integer(5))));
|
||||
Assert.assertEquals("5 minutes", tested.exec(toList(new Long(5))));
|
||||
//noinspection UnnecessaryBoxing
|
||||
Assert.assertEquals("5 minutes", tested.exec(toList(Integer.valueOf(5))));
|
||||
//noinspection UnnecessaryBoxing
|
||||
Assert.assertEquals("5 minutes", tested.exec(toList(Long.valueOf(5))));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -124,5 +130,73 @@ public class LinkExpirationFormatterMethodTest {
|
|||
Assert.assertEquals("5 days", tested.exec(toList(5 * 24 * 60)));
|
||||
}
|
||||
|
||||
/**
|
||||
* There are some languages where the choice format is not needed. Test that this still works.
|
||||
*/
|
||||
@Test
|
||||
public void format_simple_no_choice() throws TemplateModelException {
|
||||
Properties simpleMessages = new Properties();
|
||||
simpleMessages.put("linkExpirationFormatter.timePeriodUnit.seconds", "seconds-simple");
|
||||
simpleMessages.put("linkExpirationFormatter.timePeriodUnit.minutes", "minutes-simple");
|
||||
simpleMessages.put("linkExpirationFormatter.timePeriodUnit.hours", "hours-simple");
|
||||
simpleMessages.put("linkExpirationFormatter.timePeriodUnit.days", "days-simple");
|
||||
LinkExpirationFormatterMethod tested = new LinkExpirationFormatterMethod(simpleMessages, locale);
|
||||
Assert.assertEquals("2 days-simple", tested.exec(toList(2 * 24 * 60)));
|
||||
Assert.assertEquals("5 days-simple", tested.exec(toList(5 * 24 * 60)));
|
||||
}
|
||||
|
||||
/**
|
||||
* This ignored test conserves the code to translate the properties from Keycloak 22 and before to the new
|
||||
* {@link java.text.ChoiceFormat}.
|
||||
* The code appends the translated properties to the end of the file, and the user can then review the new properties and remove the old.
|
||||
*/
|
||||
@Ignore
|
||||
@Test
|
||||
public void convert() throws IOException {
|
||||
String[] units = { "seconds", "minutes", "hours", "days"};
|
||||
for (Path path : Files.list(Paths.get("../themes/src/main/resources-community/theme/base/email/messages" )).collect(Collectors.toList())) {
|
||||
Properties p = new Properties();
|
||||
p.load(Files.newBufferedReader(path, StandardCharsets.UTF_8));
|
||||
FileWriter fw = new FileWriter(path.toFile(), true);
|
||||
boolean firstEntry = true;
|
||||
for (String unit : units) {
|
||||
StringBuilder choicePattern = new StringBuilder();
|
||||
String base = "linkExpirationFormatter.timePeriodUnit." + unit;
|
||||
String defaultValue = p.getProperty(base);
|
||||
if (defaultValue == null) {
|
||||
continue;
|
||||
}
|
||||
choicePattern.append("{0,choice,0#").append(defaultValue).append("|");
|
||||
int last = 0;
|
||||
int entry = 0;
|
||||
String previous = defaultValue;
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
String value = p.getProperty(base + "." + i);
|
||||
if (value != null) {
|
||||
last = i;
|
||||
if (!Objects.equals(value, previous)) {
|
||||
entry = i;
|
||||
previous = value;
|
||||
choicePattern.append(i).append("#").append(value).append("|");
|
||||
}
|
||||
}
|
||||
}
|
||||
choicePattern.append(last).append("<").append(defaultValue).append("}");
|
||||
if (entry == 0) {
|
||||
choicePattern.setLength(0);
|
||||
choicePattern.append(defaultValue);
|
||||
}
|
||||
choicePattern.insert(0, base + "=");
|
||||
choicePattern.append("\n");
|
||||
if (firstEntry) {
|
||||
fw.write("\n");
|
||||
firstEntry = false;
|
||||
}
|
||||
fw.write(choicePattern.toString());
|
||||
}
|
||||
fw.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -39,50 +39,10 @@ requiredAction.VERIFY_EMAIL=التحقق من البريد الإلكتروني
|
|||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=توليد رموز مصادقة الاسترداد
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=ثانية
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=ثانية
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.2=ثانية
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.3=ثواني
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.4=ثواني
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.5=ثواني
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.6=ثواني
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.7=ثواني
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.8=ثواني
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.9=ثواني
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.10=ثواني
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=دقيقة
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=دقيقة
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.2=دقيقة
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.3=دقائق
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.4=دقائق
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.5=دقائق
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.6=دقائق
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.7=دقائق
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.8=دقائق
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.9=دقائق
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.10=دقائق
|
||||
linkExpirationFormatter.timePeriodUnit.hours=ساعة
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=ساعة
|
||||
linkExpirationFormatter.timePeriodUnit.hours.2=ساعة
|
||||
linkExpirationFormatter.timePeriodUnit.hours.3=ساعات
|
||||
linkExpirationFormatter.timePeriodUnit.hours.4=ساعات
|
||||
linkExpirationFormatter.timePeriodUnit.hours.5=ساعات
|
||||
linkExpirationFormatter.timePeriodUnit.hours.6=ساعات
|
||||
linkExpirationFormatter.timePeriodUnit.hours.7=ساعات
|
||||
linkExpirationFormatter.timePeriodUnit.hours.8=ساعات
|
||||
linkExpirationFormatter.timePeriodUnit.hours.9=ساعات
|
||||
linkExpirationFormatter.timePeriodUnit.hours.10=ساعات
|
||||
linkExpirationFormatter.timePeriodUnit.days=يوم
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=يوم
|
||||
linkExpirationFormatter.timePeriodUnit.days.2=يوم
|
||||
linkExpirationFormatter.timePeriodUnit.days.3=أيام
|
||||
linkExpirationFormatter.timePeriodUnit.days.4=أيام
|
||||
linkExpirationFormatter.timePeriodUnit.days.5=أيام
|
||||
linkExpirationFormatter.timePeriodUnit.days.6=أيام
|
||||
linkExpirationFormatter.timePeriodUnit.days.7=أيام
|
||||
linkExpirationFormatter.timePeriodUnit.days.8=أيام
|
||||
linkExpirationFormatter.timePeriodUnit.days.9=أيام
|
||||
linkExpirationFormatter.timePeriodUnit.days.10=أيام
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#ثانية|3#ثواني|9<ثانية}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#دقيقة|3#دقائق|9<دقيقة}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#ساعة|3#ساعات|9<ساعة}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#يوم|3#أيام|9<يوم}
|
||||
|
||||
emailVerificationBodyCode=يرجى التحقق من عنوان بريدك الإلكتروني عن طريق إدخال الرمز التالي.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p style="direction: rtl;">يرجى التحقق من عنوان بريدك الإلكتروني عن طريق إدخال الرمز التالي.</p><p style="direction: rtl;"><b>{0}</b></p>
|
||||
|
|
|
@ -35,26 +35,10 @@ requiredAction.UPDATE_PROFILE=Aktualizace profilu
|
|||
requiredAction.VERIFY_EMAIL=Ověření e-mailu
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=sekund
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=sekunda
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.2=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.3=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.4=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minut
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minuta
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.hours=hodin
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=hodina
|
||||
linkExpirationFormatter.timePeriodUnit.hours.2=hodiny
|
||||
linkExpirationFormatter.timePeriodUnit.hours.3=hodiny
|
||||
linkExpirationFormatter.timePeriodUnit.hours.4=hodiny
|
||||
linkExpirationFormatter.timePeriodUnit.days=dní
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=den
|
||||
linkExpirationFormatter.timePeriodUnit.days.2=dny
|
||||
linkExpirationFormatter.timePeriodUnit.days.3=dny
|
||||
linkExpirationFormatter.timePeriodUnit.days.4=dny
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#sekund|1#sekunda|2#sekundy|4<sekund}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minut|1#minuta|2#minuty|4<minut}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#hodin|1#hodina|2#hodiny|4<hodin}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#dní|1#den|2#dny|4<dní}
|
||||
|
||||
emailVerificationBodyCode=Ověřte prosím svou e-mailovou adresu zadáním následujícího kódu.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Ověřte prosím svou e-mailovou adresu zadáním následujícího kódu.</p><p><b>{0}</b></p>
|
||||
|
|
|
@ -35,14 +35,10 @@ requiredAction.UPDATE_PROFILE=Opdater Profil
|
|||
requiredAction.VERIFY_EMAIL=Verificer Email
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=sekunder
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=sekund
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minutter
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minut
|
||||
linkExpirationFormatter.timePeriodUnit.hours=timer
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=time
|
||||
linkExpirationFormatter.timePeriodUnit.days=dage
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=dag
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#sekunder|1#sekund|1<sekunder}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minutter|1#minut|1<minutter}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#timer|1#time|1<timer}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#dage|1#dag|1<dage}
|
||||
|
||||
emailVerificationBodyCode=Verificer din email adresse ved at indtaste følgende kode.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Verificer din email adresse ved at indtaste følgende kode.</p><p><b>{0}</b></p>
|
||||
|
|
|
@ -35,14 +35,10 @@ requiredAction.UPDATE_PROFILE=Profil aktualisieren
|
|||
requiredAction.VERIFY_EMAIL=E-Mail-Adresse verifizieren
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=Sekunden
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=Sekunde
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=Minuten
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=Minute
|
||||
linkExpirationFormatter.timePeriodUnit.hours=Stunden
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=Stunde
|
||||
linkExpirationFormatter.timePeriodUnit.days=Tage
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=Tag
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#Sekunden|1#Sekunde|1<Sekunden}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#Minuten|1#Minute|1<Minuten}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#Stunden|1#Stunde|1<Stunden}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#Tage|1#Tag|1<Tage}
|
||||
|
||||
emailVerificationBodyCode=Bitte verifizieren Sie Ihre E-Mail-Adresse, indem Sie den folgenden Code eingeben.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Bitte verifizieren Sie Ihre E-Mail-Adresse, indem Sie den folgenden Code eingeben.</p><p><b>{0}</b></p>
|
||||
|
|
|
@ -16,20 +16,13 @@ emailUpdateConfirmationBodyHtml=<p>Για να ενημερώσετε το λο
|
|||
emailUpdateConfirmationBody=Για να ενημερώσετε το λογαριασμό σας {2} με διεύθυνση email {1}, πατήστε το σύνδεσμο παρακάτω\n\n{0}\n\nΟ σύνδεσμος θα λήξει σε {3}.\n\nΑν δεν θέλετε να προχωρήσετε με αυτή την αλλαγή, τότε αγνοήστε αυτό το μήνυμα.
|
||||
emailVerificationBodyCode=Παρακαλώ επιβεβαιώστε τη διεύθυνση email σας, εισάγοντας το παρακάτω κωδικό.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Παρακαλώ επιβεβαιώστε τη διεύθυνση email σας, εισάγοντας το παρακάτω κωδικό.</p><p><b>{0}</b></p>
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=μέρα
|
||||
linkExpirationFormatter.timePeriodUnit.days=μέρες
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=ώρα
|
||||
#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this:
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.hours=ώρες
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=λεπτό
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=λεπτά
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=δευτερόλεπτο
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=δευτερόλεπτα
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#δευτερόλεπτα|1#δευτερόλεπτο|1<δευτερόλεπτα}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#λεπτά|1#λεπτό|1<λεπτά}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#ώρες|1#ώρα|1<ώρες}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#μέρες|1#μέρα|1<μέρες}
|
||||
|
||||
eventUpdateTotpBodyHtml=<p>Η πρόσβαση μέσω OTP ενημερώθηκε στο λογαριασμό σας στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.</p>
|
||||
eventUpdateTotpBody=Η πρόσβαση μέσω OTP ενημερώθηκε στο λογαριασμό σας στις {0} από το {1}. Αν δεν είσαστε εσείς, τότε παρακαλώ επικοινωνήστε με ένα διαχειριστή.
|
||||
eventUpdateTotpSubject=Ενημέρωση OTP
|
||||
|
|
|
@ -51,3 +51,8 @@ linkExpirationFormatter.timePeriodUnit.days.1=روز
|
|||
emailVerificationBodyCode=لطفاً آدرس ایمیل خود را با وارد کردن کد زیر تأیید کنید.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>لطفاً آدرس ایمیل خود را با وارد کردن کد زیر تأیید کنید.</p><p><b>{0}</b></p>
|
||||
|
||||
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=ثانیه
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=دقیقه
|
||||
linkExpirationFormatter.timePeriodUnit.hours=ساعت
|
||||
linkExpirationFormatter.timePeriodUnit.days=روز
|
||||
|
|
|
@ -34,14 +34,10 @@ requiredAction.UPDATE_PROFILE=Päivitä profiili
|
|||
requiredAction.VERIFY_EMAIL=Vahvista sähköposti
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=sekuntia
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=sekunti
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minuuttia
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minuutti
|
||||
linkExpirationFormatter.timePeriodUnit.hours=tuntia
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=tunti
|
||||
linkExpirationFormatter.timePeriodUnit.days=päivää
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=päivä
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#sekuntia|1#sekunti|1<sekuntia}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minuuttia|1#minuutti|1<minuuttia}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#tuntia|1#tunti|1<tuntia}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#päivää|1#päivä|1<päivää}
|
||||
|
||||
emailVerificationBodyCode=Ole hyvä ja vahvista sähköpostiosoitteesi alla olevalla koodilla.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Ole hyvä ja vahvista sähköpostiosoitteesi alla olevalla koodilla.</p><p><b>{0}</b></p>
|
|
@ -35,14 +35,11 @@ requiredAction.UPDATE_PROFILE=Mise à jour du profile
|
|||
requiredAction.VERIFY_EMAIL=Vérification de l''adresse courriel
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=secondes
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=seconde
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minutes
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minute
|
||||
linkExpirationFormatter.timePeriodUnit.hours=heures
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=heure
|
||||
linkExpirationFormatter.timePeriodUnit.days=jours
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=jour
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#secondes|1#seconde|1<secondes}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minutes|1#minute|1<minutes}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#heures|1#heure|1<heures}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#jours|1#jour|1<jours}
|
||||
|
||||
emailVerificationBodyCode=Veuillez vérifier votre adresse de courriel en saisissant le code suivant.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Veuillez vérifier votre adresse de courriel en saisissant le code suivant.</p><p><b>{0}</b></p>
|
||||
|
||||
|
|
|
@ -46,3 +46,8 @@ linkExpirationFormatter.timePeriodUnit.days.1=nap
|
|||
|
||||
emailVerificationBodyCode=Kérem erősítse meg az email címét a következő kód megadásával.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Kérem erősítse meg az email címét a következő kód megadásával.</p><p><b>{0}</b></p>
|
||||
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=másodperc
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=perc
|
||||
linkExpirationFormatter.timePeriodUnit.hours=óra
|
||||
linkExpirationFormatter.timePeriodUnit.days=nap
|
||||
|
|
|
@ -35,18 +35,11 @@ requiredAction.UPDATE_PROFILE=Aggiornamento profilo
|
|||
requiredAction.VERIFY_EMAIL=Verifica dell''indirizzo email
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=secondi
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=secondo
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minuti
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minuto
|
||||
#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this:
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.hours=ore
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=ora
|
||||
linkExpirationFormatter.timePeriodUnit.days=giorni
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=giorno
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#secondi|1#secondo|1<secondi}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minuti|1#minuto|1<minuti}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#ore|1#ora|1<ore}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#giorni|1#giorno|1<giorni}
|
||||
|
||||
emailVerificationBodyCode=Per favore verifica il tuo indirizzo email inserendo il codice seguente.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Per favore verifica il tuo indirizzo email inserendo il codice seguente.</p><p><b>{0}</b></p>
|
||||
|
||||
|
|
|
@ -36,17 +36,9 @@ requiredAction.VERIFY_EMAIL=Eメールの確認
|
|||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=秒
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=秒
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=分
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=分
|
||||
#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this:
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.hours=時間
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=時間
|
||||
linkExpirationFormatter.timePeriodUnit.days=日
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=日
|
||||
|
||||
emailVerificationBodyCode=次のコードを入力してメールアドレスを確認してください。\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>次のコードを入力してメールアドレスを確認してください。</p><p><b>{0}</b></p>
|
||||
|
|
|
@ -30,11 +30,7 @@ eventUpdateTotpBodyHtml=<p>OTP is gewijzigd voor uw account om {0} door {1}. Als
|
|||
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=seconden
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=seconde
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minuten
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minuut
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#seconden|1#seconde|1<seconden}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minuten|1#minuut|1<minuten}
|
||||
linkExpirationFormatter.timePeriodUnit.hours=uur
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=uur
|
||||
linkExpirationFormatter.timePeriodUnit.days=dagen
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=dag
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#dagen|1#dag|1<dagen}
|
||||
|
|
|
@ -35,23 +35,11 @@ requiredAction.UPDATE_PROFILE=Aktualizacja profilu
|
|||
requiredAction.VERIFY_EMAIL=Weryfikacja adresu e-mail
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=sekund
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=sekunda
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.2=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.3=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.4=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minut
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minuta
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.hours=godzin
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=godzina
|
||||
linkExpirationFormatter.timePeriodUnit.hours.2=godziny
|
||||
linkExpirationFormatter.timePeriodUnit.hours.3=godziny
|
||||
linkExpirationFormatter.timePeriodUnit.hours.4=godziny
|
||||
linkExpirationFormatter.timePeriodUnit.days=dni
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=dzień
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#sekund|1#sekunda|2#sekundy|4<sekund}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minut|1#minuta|2#minuty|4<minut}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#godzin|1#godzina|2#godziny|4<godzin}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#dni|1#dzień|1<dni}
|
||||
|
||||
emailVerificationBodyCode=Potwierdź proszę swój adres e-mail wprowadzając następujący kod.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Potwierdź proszę swój adres e-mail, wprowadzając następujący kod.</p><p><b>{0}</b></p>
|
||||
|
||||
|
|
|
@ -35,18 +35,10 @@ requiredAction.UPDATE_PROFILE=Atualizar Perfil
|
|||
requiredAction.VERIFY_EMAIL=Verificar Endereço de E-mail
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=segundos
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=segundo
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minutos
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minuto
|
||||
#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this:
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.hours=horas
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=hora
|
||||
linkExpirationFormatter.timePeriodUnit.days=dias
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=dia
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#segundos|1#segundo|1<segundos}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minutos|1#minuto|1<minutos}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#horas|1#hora|1<horas}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#dias|1#dia|1<dias}
|
||||
|
||||
emailVerificationBodyCode=Verifique o seu endereço de e-mail inserindo o seguinte código.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Verifique o seu endereço de e-mail inserindo o seguinte código.</p><p><b>{0}</b></p>
|
||||
|
|
|
@ -35,26 +35,8 @@ requiredAction.UPDATE_PROFILE=Aktualizovať profil
|
|||
requiredAction.VERIFY_EMAIL=Overiť e-mail
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=sekúnd
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=sekunda
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.2=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.3=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.4=sekundy
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#sekúnd|1#sekunda|2#sekundy|4<sekúnd}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minút|1#minúta|2#minúty|4<minút}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#hodín|1#hodina|2#hodiny|4<hodín}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#dní|1#deň|2#dni|4<dní}
|
||||
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minút
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minúta
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.2=minúty
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.3=minúty
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.4=minúty
|
||||
|
||||
linkExpirationFormatter.timePeriodUnit.hours=hodín
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=hodina
|
||||
linkExpirationFormatter.timePeriodUnit.hours.2=hodiny
|
||||
linkExpirationFormatter.timePeriodUnit.hours.3=hodiny
|
||||
linkExpirationFormatter.timePeriodUnit.hours.4=hodiny
|
||||
|
||||
linkExpirationFormatter.timePeriodUnit.days=dní
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=deň
|
||||
linkExpirationFormatter.timePeriodUnit.days.2=dni
|
||||
linkExpirationFormatter.timePeriodUnit.days.3=dni
|
||||
linkExpirationFormatter.timePeriodUnit.days.4=dni
|
||||
|
|
|
@ -36,17 +36,9 @@ requiredAction.VERIFY_EMAIL=E-mail doğrula
|
|||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=saniye
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=saniye
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=dakika
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=dakika
|
||||
#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this:
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.hours=saat
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=saat
|
||||
linkExpirationFormatter.timePeriodUnit.days=gün
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=gün
|
||||
|
||||
emailVerificationBodyCode=Lütfen aşağıdaki kodu girerek e-posta adresinizi doğrulayın.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Lütfen aşağıdaki kodu girerek e-posta adresinizi doğrulayın.</p><p><b>{0}</b></p>
|
||||
|
|
|
@ -39,18 +39,13 @@ requiredAction.VERIFY_EMAIL=Verify Email
|
|||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Generate Recovery Codes
|
||||
|
||||
# units for link expiration timeout formatting
|
||||
linkExpirationFormatter.timePeriodUnit.seconds=seconds
|
||||
linkExpirationFormatter.timePeriodUnit.seconds.1=second
|
||||
linkExpirationFormatter.timePeriodUnit.minutes=minutes
|
||||
linkExpirationFormatter.timePeriodUnit.minutes.1=minute
|
||||
#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this:
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty
|
||||
#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty
|
||||
linkExpirationFormatter.timePeriodUnit.hours=hours
|
||||
linkExpirationFormatter.timePeriodUnit.hours.1=hour
|
||||
linkExpirationFormatter.timePeriodUnit.days=days
|
||||
linkExpirationFormatter.timePeriodUnit.days.1=day
|
||||
# for languages which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like described in the Java choice format which is documented here. For Czech, it would be '{0,choice,0#minut|1#minuta|2#minuty|2<minut}'
|
||||
# https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/text/MessageFormat.html
|
||||
# https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/text/ChoiceFormat.html
|
||||
linkExpirationFormatter.timePeriodUnit.seconds={0,choice,0#seconds|1#second|1<seconds}
|
||||
linkExpirationFormatter.timePeriodUnit.minutes={0,choice,0#minutes|1#minute|1<minutes}
|
||||
linkExpirationFormatter.timePeriodUnit.hours={0,choice,0#hours|1#hour|1<hours}
|
||||
linkExpirationFormatter.timePeriodUnit.days={0,choice,0#days|1#day|1<days}
|
||||
|
||||
emailVerificationBodyCode=Please verify your email address by entering in the following code.\n\n{0}\n\n.
|
||||
emailVerificationBodyCodeHtml=<p>Please verify your email address by entering in the following code.</p><p><b>{0}</b></p>
|
||||
|
|
Loading…
Reference in a new issue