Use Java mechanisms to read language files and default to UTF-8 (#21755)
Closes #21753
This commit is contained in:
parent
3dc339db11
commit
748c53df7f
125 changed files with 102 additions and 334 deletions
|
@ -13,6 +13,9 @@ include::topics/templates/document-attributes.adoc[]
|
|||
:release_header_latest_link: {releasenotes_link_latest}
|
||||
include::topics/templates/release-header.adoc[]
|
||||
|
||||
== {project_name_full} 23.0.0
|
||||
include::topics/23_0_0.adoc[leveloffset=2]
|
||||
|
||||
== {project_name_full} 22.0.0
|
||||
include::topics/22_0_0.adoc[leveloffset=2]
|
||||
|
||||
|
|
7
docs/documentation/release_notes/topics/23_0_0.adoc
Normal file
7
docs/documentation/release_notes/topics/23_0_0.adoc
Normal file
|
@ -0,0 +1,7 @@
|
|||
= Localization files for themes default to UTF-8 encoding
|
||||
|
||||
Message properties files for themes are now read in UTF-8 encoding, with an automatic fallback to ISO-8859-1 encoding.
|
||||
|
||||
See the migration guide for more details.
|
||||
|
||||
|
|
@ -302,14 +302,11 @@ locales=en,no
|
|||
----
|
||||
locale_no=Norsk
|
||||
----
|
||||
+
|
||||
By default message properties files should be encoded using ISO-8859-1. It's also possible to specify the encoding using a special header. For example to use UTF-8 encoding:
|
||||
+
|
||||
[source]
|
||||
----
|
||||
# encoding: UTF-8
|
||||
usernameOrEmail=....
|
||||
----
|
||||
|
||||
By default, message properties files should be encoded using UTF-8.
|
||||
Keycloak falls back to ISO-8859-1 handling if it can't read the contents as UTF-8.
|
||||
Unicode characters can be escaped as described in Java's documentation for https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/PropertyResourceBundle.html[PropertyResourceBundle].
|
||||
Previous versions of Keycloak supported specifying the encoding in the first line with a comment like `# encoding: UTF-8`, which is no longer supported.
|
||||
|
||||
[role="_additional-resources"]
|
||||
.Additional resources
|
||||
|
|
|
@ -20,3 +20,13 @@ worked at the beginning and the end of the search string. Starting with this rel
|
|||
wildcard character is `*` which work consistently across all providers in all places in the search
|
||||
string. All special characters in a specific provider like `%` and `_` for JPA are escaped. For exact
|
||||
search, with added quotes e.g. `"w*ord"`, the behavior remains the same as in previous releases.
|
||||
|
||||
= Language files for themes default to UTF-8 encoding
|
||||
|
||||
This release now follows the standard mechanisms of Java and later, which assumes resource bundle files to be encoded in UTF-8.
|
||||
|
||||
Previous versions of Keycloak supported specifying the encoding in the first line with a comment like `# encoding: UTF-8`, which is no longer supported and is ignored.
|
||||
|
||||
Message properties files for themes are now read in UTF-8 encoding, with an automatic fallback to ISO-8859-1 encoding.
|
||||
If you are using a different encoding, convert the files to UTF-8.
|
||||
|
||||
|
|
|
@ -22,10 +22,7 @@ import org.keycloak.services.util.LocaleUtil;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Collections;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
@ -72,9 +69,8 @@ public class ClassLoaderTheme implements Theme {
|
|||
|
||||
URL p = classLoader.getResource(themeRoot + "theme.properties");
|
||||
if (p != null) {
|
||||
Charset encoding = PropertiesUtil.detectEncoding(p.openStream());
|
||||
try (Reader reader = new InputStreamReader(p.openStream(), encoding)) {
|
||||
properties.load(reader);
|
||||
try (InputStream stream = p.openStream()) {
|
||||
PropertiesUtil.readCharsetAware(properties, stream);
|
||||
}
|
||||
this.parentName = properties.getProperty("parent");
|
||||
this.importName = properties.getProperty("import");
|
||||
|
@ -143,11 +139,10 @@ public class ClassLoaderTheme implements Theme {
|
|||
}
|
||||
Properties m = new Properties();
|
||||
|
||||
URL url = classLoader.getResource(this.messageRoot + baseBundlename + "_" + locale.toString() + ".properties");
|
||||
URL url = classLoader.getResource(this.messageRoot + baseBundlename + "_" + locale + ".properties");
|
||||
if (url != null) {
|
||||
Charset encoding = PropertiesUtil.detectEncoding(url.openStream());
|
||||
try (Reader reader = new InputStreamReader(url.openStream(), encoding)) {
|
||||
m.load(reader);
|
||||
try (InputStream stream = url.openStream()) {
|
||||
PropertiesUtil.readCharsetAware(m, stream);
|
||||
}
|
||||
}
|
||||
return m;
|
||||
|
|
|
@ -2,10 +2,7 @@ package org.keycloak.theme;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Locale;
|
||||
import java.util.Properties;
|
||||
|
||||
|
@ -71,10 +68,8 @@ public class ClasspathThemeResourceProviderFactory implements ThemeResourceProvi
|
|||
|
||||
protected void loadMessages(Properties messages, URL resource) throws IOException {
|
||||
if (resource != null) {
|
||||
Charset encoding = PropertiesUtil.detectEncoding(resource.openStream());
|
||||
// detectEncoding closes the stream
|
||||
try (Reader reader = new InputStreamReader(resource.openStream(), encoding)) {
|
||||
messages.load(reader);
|
||||
try (InputStream stream = resource.openStream()) {
|
||||
PropertiesUtil.readCharsetAware(messages, stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,17 +21,15 @@ import org.keycloak.models.RealmModel;
|
|||
import org.keycloak.services.util.LocaleUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Collections;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
|
||||
|
@ -53,10 +51,9 @@ public class FolderTheme implements Theme {
|
|||
this.properties = new Properties();
|
||||
|
||||
File propertiesFile = new File(themeDir, "theme.properties");
|
||||
if (propertiesFile .isFile()) {
|
||||
Charset encoding = PropertiesUtil.detectEncoding(new FileInputStream(propertiesFile));
|
||||
try (Reader reader = new InputStreamReader(new FileInputStream(propertiesFile), encoding)) {
|
||||
properties.load(reader);
|
||||
if (propertiesFile.isFile()) {
|
||||
try (InputStream stream = Files.newInputStream(propertiesFile.toPath())) {
|
||||
PropertiesUtil.readCharsetAware(properties, stream);
|
||||
}
|
||||
parentName = properties.getProperty("parent");
|
||||
importName = properties.getProperty("import");
|
||||
|
@ -110,6 +107,8 @@ public class FolderTheme implements Theme {
|
|||
return getMessages("messages", locale);
|
||||
}
|
||||
|
||||
private static final Pattern LEGAL_LOCALE = Pattern.compile("[a-zA-Z0-9-_]*");
|
||||
|
||||
@Override
|
||||
public Properties getMessages(String baseBundlename, Locale locale) throws IOException {
|
||||
if (locale == null){
|
||||
|
@ -118,11 +117,16 @@ public class FolderTheme implements Theme {
|
|||
|
||||
Properties m = new Properties();
|
||||
|
||||
File file = new File(themeDir, "messages" + File.separator + baseBundlename + "_" + locale.toString() + ".properties");
|
||||
String filename = baseBundlename + "_" + locale;
|
||||
|
||||
if (!LEGAL_LOCALE.matcher(filename).matches()) {
|
||||
throw new RuntimeException("Found illegal characters in locale or bundle name: " + filename);
|
||||
}
|
||||
|
||||
File file = new File(themeDir, "messages" + File.separator + filename + ".properties");
|
||||
if (file.isFile()) {
|
||||
Charset encoding = PropertiesUtil.detectEncoding(new FileInputStream(file));
|
||||
try (Reader reader = new InputStreamReader(new FileInputStream(file), encoding)) {
|
||||
m.load(reader);
|
||||
try (InputStream stream = Files.newInputStream(file.toPath())) {
|
||||
PropertiesUtil.readCharsetAware(m, stream);
|
||||
}
|
||||
}
|
||||
return m;
|
||||
|
|
|
@ -17,56 +17,36 @@
|
|||
|
||||
package org.keycloak.theme;
|
||||
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.io.Reader;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Properties;
|
||||
import java.util.PropertyResourceBundle;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:wadahiro@gmail.com">Hiroyuki Wada</a>
|
||||
*/
|
||||
public class PropertiesUtil {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(PropertiesUtil.class);
|
||||
|
||||
public static final Pattern DETECT_ENCODING_PATTERN = Pattern.compile("^#\\s*encoding:\\s*([\\w.:-]+)",
|
||||
Pattern.CASE_INSENSITIVE);
|
||||
|
||||
public static final Charset DEFAULT_ENCODING = Charset.forName("ISO-8859-1");
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Detect file encoding from the first line of the property file. If the first line in the file doesn't contain the
|
||||
* comment with the encoding, it uses ISO-8859-1 as default encoding for backwards compatibility.
|
||||
* </p>
|
||||
* <p>
|
||||
* The specified stream is closed before this method returns.
|
||||
* </p>
|
||||
* Read a properties file either UTF-8 or if that doesn't work in ISO-8895-1 format.
|
||||
* This utilizes the functionality present in JDK 9 to automatically detect the encoding of the resource.
|
||||
* A user can specify the standard Java system property <code>java.util.PropertyResourceBundle.encoding</code>
|
||||
* to change this.
|
||||
* <p />
|
||||
* Unfortunately the standard {@link Properties#load(Reader)} doesn't support this automatic decoding,
|
||||
* as it is only been implemented for resource files.
|
||||
*
|
||||
* @param in The input stream
|
||||
* @return Encoding
|
||||
* @throws IOException
|
||||
* @see PropertyResourceBundle
|
||||
*/
|
||||
public static Charset detectEncoding(InputStream in) throws IOException {
|
||||
try (BufferedReader br = new BufferedReader(new InputStreamReader(in, DEFAULT_ENCODING))) {
|
||||
String firstLine = br.readLine();
|
||||
if (firstLine != null) {
|
||||
Matcher matcher = DETECT_ENCODING_PATTERN.matcher(firstLine);
|
||||
if (matcher.find()) {
|
||||
String encoding = matcher.group(1);
|
||||
if (Charset.isSupported(encoding)) {
|
||||
return Charset.forName(encoding);
|
||||
} else {
|
||||
logger.warnv("Unsupported encoding: {0}", encoding);
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void readCharsetAware(Properties properties, InputStream stream) throws IOException {
|
||||
PropertyResourceBundle propertyResourceBundle = new PropertyResourceBundle(stream);
|
||||
Enumeration<String> keys = propertyResourceBundle.getKeys();
|
||||
while(keys.hasMoreElements()) {
|
||||
String s = keys.nextElement();
|
||||
properties.put(s, propertyResourceBundle.getString(s));
|
||||
}
|
||||
return DEFAULT_ENCODING;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -20,36 +20,47 @@ package org.keycloak.theme;
|
|||
import org.junit.Test;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Properties;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:wadahiro@gmail.com">Hiroyuki Wada</a>
|
||||
*/
|
||||
public class PropertiesUtilTest {
|
||||
|
||||
@Test
|
||||
public void testDetectEncoding() throws Exception {
|
||||
Charset encoding = PropertiesUtil.detectEncoding(new ByteArrayInputStream("# encoding: utf-8\nkey=value".getBytes()));
|
||||
assertEquals(Charset.forName("utf-8"), encoding);
|
||||
String valueWithUmlaut = "Umlaut: \u00E4\u00F6\u00FC";
|
||||
|
||||
encoding = PropertiesUtil.detectEncoding(new ByteArrayInputStream("# encoding: Shift_JIS\nkey=value".getBytes()));
|
||||
assertEquals(Charset.forName("Shift_JIS"), encoding);
|
||||
String key = "key";
|
||||
|
||||
String propertyLine = key + "=" + valueWithUmlaut;
|
||||
|
||||
@Test
|
||||
public void testEncodingIso() throws Exception {
|
||||
testWithEncoding(StandardCharsets.ISO_8859_1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDefaultEncoding() throws Exception {
|
||||
Charset encoding = PropertiesUtil.detectEncoding(new ByteArrayInputStream("key=value".getBytes()));
|
||||
assertEquals(Charset.forName("ISO-8859-1"), encoding);
|
||||
|
||||
encoding = PropertiesUtil.detectEncoding(new ByteArrayInputStream("# encoding: unknown\nkey=value".getBytes()));
|
||||
assertEquals(Charset.forName("ISO-8859-1"), encoding);
|
||||
|
||||
encoding = PropertiesUtil.detectEncoding(new ByteArrayInputStream("\n# encoding: utf-8\nkey=value".getBytes()));
|
||||
assertEquals(Charset.forName("ISO-8859-1"), encoding);
|
||||
|
||||
encoding = PropertiesUtil.detectEncoding(new ByteArrayInputStream("".getBytes()));
|
||||
assertEquals(Charset.forName("ISO-8859-1"), encoding);
|
||||
public void testEncodingUtf8() throws Exception {
|
||||
testWithEncoding(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIfValueContainsSpecialCharacters() {
|
||||
assertNotEquals(valueWithUmlaut.getBytes(StandardCharsets.UTF_8), valueWithUmlaut.getBytes(StandardCharsets.ISO_8859_1));
|
||||
}
|
||||
|
||||
private void testWithEncoding(Charset charset) throws IOException {
|
||||
Properties p = new Properties();
|
||||
try (InputStream stream = new ByteArrayInputStream(propertyLine.getBytes(charset))) {
|
||||
PropertiesUtil.readCharsetAware(p, stream);
|
||||
}
|
||||
assertEquals(p.get(key), valueWithUmlaut);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=حفظ
|
||||
doCancel=إلغاء
|
||||
doLogOutAllSessions=تسجيل الخروج لجميع الجلسات
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Desa
|
||||
doCancel=Cancel·la
|
||||
doLogOutAllSessions=Desconnecta de totes les sessions
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Uložit
|
||||
doCancel=Zrušit
|
||||
doLogOutAllSessions=Odhlásit všechny relace
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Gem
|
||||
doCancel=Annuller
|
||||
doLogOutAllSessions=Log alle sessioner ud
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Speichern
|
||||
doCancel=Abbrechen
|
||||
doLogOutAllSessions=Alle Sitzungen abmelden
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
role_manage-identity-providers=Διαχείριση παρόχων ταυτότητας
|
||||
doRemove=Αφαίρεση
|
||||
doAdd=Προσθήκη
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Guardar
|
||||
doCancel=Cancelar
|
||||
doLogOutAllSessions=Desconectar de todas las sesiones
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=ذخیره
|
||||
doCancel=لغو کنید
|
||||
doLogOutAllSessions=از تمام جلسات خارج شوید
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Tallenna
|
||||
doCancel=Peruuta
|
||||
doLogOutAllSessions=Kirjaudu ulos kaikista sessioista
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Sauvegarder
|
||||
doCancel=Annuler
|
||||
doLogOutAllSessions=Déconnexion de toutes les sessions
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Mentés
|
||||
doCancel=Mégsem
|
||||
doLogOutAllSessions=Minden munkamenet kiléptetése
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Salva
|
||||
doCancel=Annulla
|
||||
doLogOutAllSessions=Effettua il logout da tutte le sessioni
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=保存
|
||||
doCancel=キャンセル
|
||||
doLogOutAllSessions=全セッションからログアウト
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Saugoti
|
||||
doCancel=Atšaukti
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Saglabāt
|
||||
doCancel=Atcelt
|
||||
doLogOutAllSessions=Izlogoties no visām sesijām
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Opslaan
|
||||
doCancel=Annuleer
|
||||
doLogOutAllSessions=Alle sessies uitloggen
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Lagre
|
||||
doCancel=Avbryt
|
||||
doLogOutAllSessions=Logg ut av alle sesjoner
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Zapisz
|
||||
doCancel=Anuluj
|
||||
doLogOutAllSessions=Wyloguj wszystkie sesje
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Salvar
|
||||
doCancel=Cancelar
|
||||
doLogOutAllSessions=Sair de todas as sessões
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Сохранить
|
||||
doCancel=Отмена
|
||||
doLogOutAllSessions=Выйти из всех сессий
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Uložiť
|
||||
doCancel=Zrušiť
|
||||
doLogOutAllSessions=Odhlásenie všetkých relácií
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Spara
|
||||
doCancel=Avbryt
|
||||
doLogOutAllSessions=Logga ut från samtliga sessioner
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=Kaydet
|
||||
doCancel=İptal
|
||||
doLogOutAllSessions=Tüm Oturumları Kapat
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doSave=保存
|
||||
doCancel=取消
|
||||
doLogOutAllSessions=登出所有会话
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=كلمة المرور غير صالحة: الحد الأدنى للطول {0}.
|
||||
invalidPasswordMaxLengthMessage=كلمة المرور غير صالحة: الحد الأقصى للطول {0}.
|
||||
invalidPasswordMinLowerCaseCharsMessage=كلمة المرور غير صالحة: يجب أن تحتوي على {0} حروف صغيرة على الأقل.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordHistoryMessage=Contrasenya incorrecta: no pot ser igual a cap de les últimes {0} contrasenyes.
|
||||
invalidPasswordMinDigitsMessage=Contraseña incorrecta: debe contener al menos {0} caracteres numéricos.
|
||||
invalidPasswordMinLengthMessage=Contrasenya incorrecta: longitud mínima {0}.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=Ungültiges Passwort: muss mindestens {0} Zeichen beinhalten.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ungültiges Passwort: muss mindestens {0} Kleinbuchstaben beinhalten.
|
||||
invalidPasswordMinDigitsMessage=Ungültiges Passwort: muss mindestens {0} Ziffern beinhalten.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
error-invalid-date=Το πεδίο {0} δεν αποτελεί έγκυρη ημερομηνία.
|
||||
error-invalid-length-too-long=Το πεδίο {0} μπορεί να περιέχει το πολύ {2} χαρακτήρες .
|
||||
error-person-name-invalid-character=Το {0} περιέχει ένα μη έγκυρο χαρακτήρα.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=Contraseña incorrecta: longitud mínima {0}.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Contraseña incorrecta: debe contener al menos {0} letras minúsculas.
|
||||
invalidPasswordMinDigitsMessage=Contraseña incorrecta: debe contener al menos {0} caracteres numéricos.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=رمز عبور نامعتبر: حداقل طول {0}.
|
||||
invalidPasswordMaxLengthMessage=رمز عبور نامعتبر: حداکثر طول {0}.
|
||||
invalidPasswordMinLowerCaseCharsMessage=رمز عبور نامعتبر: باید حداقل دارای {0} نویسه کوچک باشد.
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
# encoding: UTF-8
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=Mot de passe invalide : longueur minimale requise de {0}.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en minuscule.
|
||||
invalidPasswordMinDigitsMessage=Mot de passe invalide : doit contenir au moins {0} chiffre(s).
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
# encoding: UTF-8
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=無効なパスワード: 最小{0}の長さが必要です。
|
||||
invalidPasswordMinLowerCaseCharsMessage=無効なパスワード: 少なくとも{0}文字の小文字を含む必要があります。
|
||||
invalidPasswordMinDigitsMessage=無効なパスワード: 少なくとも{0}文字の数字を含む必要があります。
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=Per trumpas slaptažodis: mažiausias ilgis {0}.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Neteisingas slaptažodis: privaloma įvesti {0} mažąją raidę.
|
||||
invalidPasswordMinDigitsMessage=Neteisingas slaptažodis: privaloma įvesti {0} skaitmenį.
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
# encoding: UTF-8
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=Ongeldig wachtwoord: de minimale lengte is {0} karakters.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ongeldig wachtwoord: het moet minstens {0} kleine letters bevatten.
|
||||
invalidPasswordMinDigitsMessage=Ongeldig wachtwoord: het moet minstens {0} getallen bevatten.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=Ugyldig passord: minimum lengde {0}.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ugyldig passord: må inneholde minst {0} små bokstaver.
|
||||
invalidPasswordMinDigitsMessage=Ugyldig passord: må inneholde minst {0} sifre.
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
# encoding: UTF-8
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=Senha inválida: deve conter ao menos {0} caracteres.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Senha inválida: deve conter ao menos {0} caracteres minúsculos.
|
||||
invalidPasswordMinDigitsMessage=Senha inválida: deve conter ao menos {0} digitos numéricos.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=Некорректный пароль: длина пароля должна быть не менее {0} символов(а).
|
||||
invalidPasswordMinDigitsMessage=Некорректный пароль: должен содержать не менее {0} цифр(ы).
|
||||
invalidPasswordMinLowerCaseCharsMessage=Некорректный пароль: пароль должен содержать не менее {0} символов(а) в нижнем регистре.
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
invalidPasswordMinLengthMessage=无效的密码:最短长度 {0}.
|
||||
invalidPasswordMinLowerCaseCharsMessage=无效的密码:至少包含 {0} 小写字母
|
||||
invalidPasswordMinDigitsMessage=无效的密码:至少包含 {0} 个数字
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=التحقق من البريد الإلكتروني
|
||||
emailVerificationBody=قام شخص ما بإنشاء حساب {2} بعنوان البريد الإلكتروني هذا. إذا كان هذا أنت، فانقر على الرابط أدناه للتحقق من عنوان بريدك الإلكتروني\n\n{0}\n\nستنتهي صلاحية هذا الرابط خلال {3}.\n\nإذا لم تكن قد أنشأت هذا الحساب، فقط تجاهل هذه الرسالة.
|
||||
emailVerificationBodyHtml=<p style="direction: rtl;">قام شخص ما بإنشاء حساب {2} بعنوان البريد الإلكتروني هذا. إذا كان هذا أنت، فانقر على الرابط أدناه للتحقق من عنوان بريدك الإلكتروني</p><p style="direction: rtl;"><a href="{0}">رابط التحقق من البريد الإلكتروني</a></p><p style="direction: rtl;">ستنتهي صلاحية هذا الرابط خلال {3}.</p><p style="direction: rtl;">إذا لم تكن قد أنشأت هذا الحساب، فقط تجاهل هذه الرسالة.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Verificació d''email
|
||||
emailVerificationBody=Algú ha creat un compte de {2} amb aquesta adreça de correu electrònic. Si has estat tu, fes clic a l''enllaç següent per verificar la teva adreça de correu electrònic.\n\n{0}\n\nAquest enllaç expirarà en {1} minuts.\n\nSi tu no has creat aquest compte, simplement ignora aquest missatge.
|
||||
emailVerificationBodyHtml=<p>Algú ha creat un compte de {2} amb aquesta adreça de correu electrònic. Si has estat tu, fes clic a l''enllaç següent per verificar la teva adreça de correu electrònic.</p><p><a href=\"{0}\">{0}</a></p><p> Aquest enllaç expirarà en {1} minuts.</p><p> Si tu no has creat aquest compte, simplement ignora aquest missatge.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Ověření e-mailu
|
||||
emailVerificationBody=Někdo vytvořil účet {2} s touto e-mailovou adresou. Pokud jste to vy, klikněte na níže uvedený odkaz a ověřte svou e-mailovou adresu \n\n{0}\n\nTento odkaz vyprší za {3}.\n\nPokud jste tento účet nevytvořili, tuto zprávu ignorujte.
|
||||
emailVerificationBodyHtml=<p>Někdo vytvořil účet {2} s touto e-mailovou adresou. Pokud jste to vy, klikněte na níže uvedený odkaz a ověřte svou e-mailovou adresu. </p><p><a href="{0}">Odkaz na ověření e-mailové adresy</a></p><p>Platnost odkazu vyprší za {3}.</p><p>Pokud jste tento účet nevytvořili, tuto zprávu ignorujte.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Verificer email
|
||||
emailVerificationBody=Nogen har oprettet en {2} konto med denne email adresse. Hvis dette var dig, bedes du trykke på forbindet herunder for at verificere din email adresse \n\n{0}\n\nDette link vil udløbe inden for {3}.\n\nHvis det var dig der har oprettet denne konto, bedes du se bort fra denne mail.
|
||||
emailVerificationBodyHtml=<p>Nogen har oprettet en {2} konto med denne email adresse. Hvis dette var dig, bedes du trykke på forbindet herunder for at verificere din email adresse</p><p><a href="{0}">Link til email verificering</a></p><p>Dette link vil udløbe inden for {3}.</p><p>Hvis det var dig der har oprettet denne konto, bedes du se bort fra denne mail.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=E-Mail verifizieren
|
||||
emailVerificationBody=Jemand hat ein {2} Konto mit dieser E-Mail-Adresse erstellt. Falls Sie das waren, dann klicken Sie auf den Link, um die E-Mail-Adresse zu verifizieren.\n\n{0}\n\nDer Link ist {3} gültig.\n\nFalls Sie dieses Konto nicht erstellt haben, dann können sie diese Nachricht ignorieren.
|
||||
emailVerificationBodyHtml=<p>Jemand hat ein {2} Konto mit dieser E-Mail-Adresse erstellt. Falls Sie das waren, klicken Sie auf den Link, um die E-Mail-Adresse zu verifizieren.</p><p><a href="{0}">Link zur Bestätigung der E-Mail-Adresse</a></p><p>Der Link ist {3} gültig.</p><p>Falls Sie dieses Konto nicht erstellt haben, dann können sie diese Nachricht ignorieren.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
requiredAction.terms_and_conditions=Όροι και Συνθήκες
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Δημιουργία Κωδικών Ανάκτησης
|
||||
requiredAction.VERIFY_EMAIL=Επιβεβαίωση Email
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Verificación de email
|
||||
emailVerificationBody=Alguien ha creado una cuenta de {2} con esta dirección de email. Si has sido tú, haz click en el enlace siguiente para verificar tu dirección de email.\n\n{0}\n\nEste enlace expirará en {1} minutos.\n\nSi tú no has creado esta cuenta, simplemente ignora este mensaje.
|
||||
emailVerificationBodyHtml=<p>Alguien ha creado una cuenta de {2} con esta dirección de email. Si has sido tú, haz click en el enlace siguiente para verificar tu dirección de email.</p><p><a href=\"{0}\">Enlace de verficación de dirección de email</a></p><p>Este enlace expirará en {1} minutos.</p><p>Si tú no has creado esta cuenta, simplemente ignora este mensaje.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=تایید ایمیل
|
||||
emailVerificationBody=شخصی با این آدرس ایمیل یک حساب {2} ایجاد کرده است. اگر این شما بودید، روی پیوند زیر کلیک کنید تا آدرس ایمیل خود را تأیید کنید\n\n{0}\n\nاین پیوند در {3} منقضی میشود.\n\nاگر شما این حساب را ایجاد نکردهاید، فقط این پیام را نادیده بگیرید .
|
||||
emailVerificationBodyHtml=<p>شخصی با این آدرس ایمیل یک حساب {2} ایجاد کرده است. اگر این شما بودید، برای تأیید آدرس ایمیل خود روی پیوند زیر کلیک کنید</p><p><a href="{0}">پیوند به تأیید آدرس ایمیل</a></p><p>این پیوند در {3} منقضی میشود.</p><p>اگر شما این حساب را ایجاد نکردهاید، فقط این پیام را نادیده بگیرید.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Vahvista sähköposti
|
||||
emailVerificationBody=Tällä sähköpostiosoitteella on luotu {2}-tili. Jos loit tilin itse, klikkaa alla olevaa linkkiä vahvistaaksesi sähköpostiosoitteesi\n\n{0}\n\nLinkin vanhenemisaika: {3}.\n\nJos et luonut tätä tiliä, jätä viesti huomiotta.
|
||||
emailVerificationBodyHtml=<p>Tällä sähköpostiosoitteella on luotu {2}-tili. Jos loit tilin itse, klikkaa alla olevaa linkkiä vahvistaaksesi sähköpostiosoitteesi</p><p><a href="{0}">Linkki vahvistamiseen</a></p><p>Linkin vanhenemisaika: {3}.</p><p>Jos et luonut tätä tiliä, jätä viesti huomiotta.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Vérification du courriel
|
||||
emailVerificationBody=Quelqu''un vient de créer un compte "{2}" avec votre courriel. Si vous êtes à l''origine de cette requête, veuillez cliquer sur le lien ci-dessous afin de vérifier votre adresse de courriel\n\n{0}\n\nCe lien expire dans {3}.\n\nSinon, veuillez ignorer ce message.
|
||||
emailVerificationBodyHtml=<p>Quelqu''un vient de créer un compte "{2}" avec votre courriel. Si vous êtes à l''origine de cette requête, veuillez cliquer sur le lien ci-dessous afin de vérifier votre adresse de courriel</p><p><a href="{0}">{0}</a></p><p>Ce lien expire dans {3}.</p><p>Sinon, veuillez ignorer ce message.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Email cím megerősítése
|
||||
emailVerificationBody=Ezzel az email címmel valaki létrehozott egy {2} tartomány felhasználói fiókot. Amennyiben a fiókot Ön hozta létre, kérem kattintson a lenti hivatkozásra, hogy megerősítse fiókját és ezt az email címet.\n\n{0}\n\nA hivatkozás érvényét veszti {3} múlva.\n\nHa nem ön hozta létre a felhasználói fiókot, akkor kérem hagyja figyelmen kívül ezt az üzenetet.
|
||||
emailVerificationBodyHtml=<p>Ezzel az email címmel valaki létrehozott egy {2} tartomány felhasználói fiókot. Amennyiben a fiókot Ön hozta létre, kérem kattintson a lenti hivatkozásra, hogy megerősítse fiókját és ezt az email címet.</p><p><a href="{0}">Hivatkozás a fiók és az email cím megerősítéséhez</a></p><p>A hivatkozás érvényét veszti {3} múlva.</p><p>Ha nem ön hozta létre a felhasználói fiókot, akkor kérem hagyja figyelmen kívül ezt az üzenetet.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Verifica l''email
|
||||
emailVerificationBody=Qualcuno ha creato un account {2} con questo indirizzo email. Se sei stato tu, fai clic sul link seguente per verificare il tuo indirizzo email\n\n{0}\n\nQuesto link scadrà in {3}.\n\nSe non sei stato tu a creare questo account, ignora questo messaggio.
|
||||
emailVerificationBodyHtml=<p>Qualcuno ha creato un account {2} con questo indirizzo email. Se sei stato tu, fai clic sul link seguente per verificare il tuo indirizzo email</p><p><a href="{0}">Link per verificare l''indirizzo email</a></p><p>Questo link scadrà in {3}.</p><p>Se non sei stato tu a creare questo account, ignora questo messaggio.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Eメールの確認
|
||||
emailVerificationBody=このメールアドレスで{2}アカウントが作成されました。以下のリンクをクリックしてメールアドレスの確認を完了してください。\n\n{0}\n\nこのリンクは{3}だけ有効です。\n\nもしこのアカウントの作成に心当たりがない場合は、このメールを無視してください。
|
||||
emailVerificationBodyHtml=<p>このメールアドレスで{2}アカウントが作成されました。以下のリンクをクリックしてメールアドレスの確認を完了してください。</p><p><a href="{0}">メールアドレスの確認</a></p><p>このリンクは{3}だけ有効です。</p><p>もしこのアカウントの作成に心当たりがない場合は、このメールを無視してください。</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=El. pašto patvirtinimas
|
||||
emailVerificationBody=Paskyra {2} sukurta naudojant šį el. pašto adresą. Jei tai buvote Jūs, tuomet paspauskite žemiau esančią nuorodą\n\n{0}\n\nŠi nuoroda galioja {1} min.\n\nJei paskyros nekūrėte, tuomet ignuoruokite šį laišką.
|
||||
emailVerificationBodyHtml=<p>Paskyra {2} sukurta naudojant šį el. pašto adresą. Jei tao buvote Jūs, tuomet paspauskite žemiau esančią nuorodą</p><p><a href=LT"{0}">{0}</a></p><p>Ši nuoroda galioja {1} min.</p><p>nJei paskyros nekūrėte, tuomet ignuoruokite šį laišką.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Bevestig e-mailadres
|
||||
emailVerificationBody=Iemand heeft een {2} account aangemaakt met dit e-mailadres. Als u dit was, klikt u op de onderstaande koppeling om uw e-mailadres te bevestigen \n\n{0}\n\nDeze koppeling zal binnen {3} vervallen.\n\nU kunt dit bericht negeren indien u dit account niet heeft aangemaakt.
|
||||
emailVerificationBodyHtml=<p>Iemand heeft een {2} account aangemaakt met dit e-mailadres. Als u dit was, klikt u op de onderstaande koppeling om uw e-mailadres te bevestigen</p><p><a href="{0}">Koppeling naar e-mailadres bevestiging</a></p><p>Deze koppeling zal binnen {3} vervallen.</p<p>U kunt dit bericht negeren indien u dit account niet heeft aangemaakt.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Bekreft e-postadresse
|
||||
emailVerificationBody=Noen har opprettet en {2} konto med denne e-postadressen. Hvis dette var deg, klikk på lenken nedenfor for å bekrefte e-postadressen din\n\n{0}\n\nDenne lenken vil utløpe om {1} minutter.\n\nHvis du ikke opprettet denne kontoen, vennligst ignorer denne meldingen.
|
||||
emailVerificationBodyHtml=<p>Noen har opprettet en {2} konto med denne e-postadressen. Hvis dette var deg, klikk på lenken nedenfor for å bekrefte e-postadressen din</p><p><a href="{0}">{0}</a></p><p>Denne lenken vil utløpe om {1} minutter.</p><p>Hvis du ikke opprettet denne kontoen, vennligst ignorer denne meldingen.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Zweryfikuj email
|
||||
emailVerificationBody=Ktoś utworzył konto {2} z Twoim adresem e-mail. Jeśli to Ty, kliknij proszę poniższy odnośnik, aby potwierdzić założenie konta \n\n{0}\n\nOdnośnik wygaśnie w ciągu {3}.\n\nJeśli nie utworzyłaś/eś tego konta, po prostu zignoruj niniejszą wiadomość.
|
||||
emailVerificationBodyHtml=<p>Ktoś utworzył konto {2} z Twoim adresem e-mail. Jeśli to Ty, kliknij proszę <a href="{0}">odnośnik</a>, aby potwierdzić założenie konta</p><p>Odnośnik wygaśnie w ciągu {3}</p><p>Jeśli nie utworzyłaś/eś tego konta, po prostu zignoruj niniejszą wiadomość.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Verificação de endereço de e-mail
|
||||
emailVerificationBody=Alguém criou uma conta {2} com este endereço de e-mail. Se foi você, clique no link abaixo para verificar o seu endereço de email.\n\n{0}\n\nEste link irá expirar dentro de {3}.\n\nSe não foi você quem criou esta conta, basta ignorar esta mensagem.
|
||||
emailVerificationBodyHtml=<p>Alguém criou uma conta {2} com este endereço de e-mail. Se foi você, clique no link abaixo para verificar o seu endereço de email.</p><p><a href="{0}">Link para verificação de endereço de e-mail</a></p><p>Este link irá expirar dentro de {3}.</p><p>Se não foi você quem criou esta conta, basta ignorar esta mensagem.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Подтверждение E-mail
|
||||
emailVerificationBody=Кто-то создал учетную запись {2} с этим E-mail. Если это были Вы, нажмите на следующую ссылку для подтверждения вашего email\n\n{0}\n\nЭта ссылка устареет через {1} минут.\n\nЕсли Вы не создавали учетную запись, просто проигнорируйте это письмо.
|
||||
emailVerificationBodyHtml=<p>Кто-то создал учетную запись {2} с этим E-mail. Если это были Вы, нажмите по ссылке для подтверждения вашего E-mail</p><p><a href="{0}">{0}</a></p><p>Эта ссылка устареет через {1} минут.</p><p>Если Вы не создавали учетную запись, просто проигнорируйте это письмо.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Overenie e-mailu
|
||||
emailVerificationBody=Niekto vytvoril účet {2} s touto e-mailovou adresou. Ak ste to vy, kliknite na nižšie uvedený odkaz a overte svoju e-mailovú adresu \n\n{0}\n\nTento odkaz uplynie do {1} minút.\n\nAk ste tento účet nevytvorili, ignorujte túto správu.
|
||||
emailVerificationBodyHtml=<p>Niekto vytvoril účet {2} s touto e-mailovou adresou. Ak ste to vy, kliknite na nižšie uvedený odkaz na overenie svojej e-mailovej adresy.</p><p><a href="{0}"> Odkaz na overenie e-mailovej adresy </a></p><p>Platnosť odkazu vyprší za {1} minút.</p><p> Ak ste tento účet nevytvorili, ignorujte túto správu.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=Verifiera e-post
|
||||
emailVerificationBody=Någon har skapat ett {2} konto med den här e-postadressen. Om det var du, klicka då på länken nedan för att verifiera din e-postadress\n\n{0}\n\nDen här länken kommer att upphöra inom {1} minuter.\n\nOm det inte var du som skapade det här kontot, ignorera i så fall det här meddelandet.
|
||||
emailVerificationBodyHtml=<p>Någon har skapat ett {2} konto med den här e-postadressen. Om det var du, klicka då på länken nedan för att verifiera din e-postadress</p><p><a href="{0}">{0}</a></p><p>Den här länken kommer att upphöra inom {1} minuter.</p><p>Om det inte var du som skapade det här kontot, ignorera i så fall det här meddelandet.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=E-postayı doğrula
|
||||
emailVerificationBody=Birisi bu e-posta adresiyle bir {2} hesap oluşturdu. Bu sizseniz, e-posta adresinizi doğrulamak için aşağıdaki bağlantıya tıklayın\n\n{0}\n\nBu bağlantı {3} içinde sona erecek.\n\nBu hesabı oluşturmadıysanız, sadece bu iletiyi yoksayınız.
|
||||
emailVerificationBodyHtml=<p>Birisi bu e-posta adresiyle bir {2} hesap oluşturdu. Bu sizseniz, e-posta adresinizi doğrulamak için aşağıdaki bağlantıyı tıklayın.</p><p><a href="{0}">E-posta adresi doğrulama adresi</a></p><p>Bu bağlantının süresi {3} içerisinde sona erecek.</p><p>Bu hesabı siz oluşturmadıysanız, bu mesajı göz ardı edin.</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
emailVerificationSubject=验证电子邮件
|
||||
emailVerificationBody=用户使用当前电子邮件注册 {2} 账户。如是本人操作,请点击以下链接完成邮箱验证\n\n{0}\n\n这个链接会在 {1} 分钟后过期.\n\n如果您没有注册用户,请忽略这条消息。
|
||||
emailVerificationBodyHtml=<p>用户使用当前电子邮件注册 {2} 账户。如是本人操作,请点击以下链接完成邮箱验证</p><p><a href="{0}">{0}</a></p><p>这个链接会在 {1} 分钟后过期.</p><p>如果您没有注册用户,请忽略这条消息。</p>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=تسجيل دخول
|
||||
doRegister=تسجيل جديد
|
||||
doCancel=إلغاء
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Inicia sessió
|
||||
doRegister=Registra''t
|
||||
doCancel=Cancel·lar
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Přihlásit se
|
||||
doRegister=Registrovat se
|
||||
doCancel=Zrušit
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Log ind
|
||||
doRegister=Registrer
|
||||
doCancel=Annuller
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Anmelden
|
||||
doRegister=Registrieren
|
||||
doCancel=Abbrechen
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Είσοδος
|
||||
doRegister=Εγγραφή
|
||||
doCancel=Ακύρωση
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Iniciar sesión
|
||||
doRegister=Regístrate
|
||||
doCancel=Cancelar
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=ورود
|
||||
doRegister=ثبت نام
|
||||
doCancel=لغو
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Kirjaudu
|
||||
doRegister=Rekisteröidy
|
||||
doCancel=Peruuta
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Connexion
|
||||
doRegister=Enregistrement
|
||||
doCancel=Annuler
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Belépés
|
||||
doRegister=Regisztráció
|
||||
doCancel=Mégsem
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Accedi
|
||||
doRegister=Registrati
|
||||
doCancel=Annulla
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=ログイン
|
||||
doRegister=登録
|
||||
doCancel=キャンセル
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Prisijungti
|
||||
doRegister=Registruotis
|
||||
doCancel=Atšaukti
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Pieslēgties
|
||||
doRegister=Reģistrēties
|
||||
doCancel=Atcelt
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Inloggen
|
||||
doRegister=Registreer
|
||||
doCancel=Annuleer
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Logg inn
|
||||
doRegister=Registrer deg
|
||||
doCancel=Avbryt
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Logowanie
|
||||
doRegister=Rejestracja
|
||||
doCancel=Anuluj
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Entrar
|
||||
doRegister=Cadastre-se
|
||||
doCancel=Cancelar
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Вход
|
||||
doRegister=Регистрация
|
||||
doCancel=Отмена
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Prihlásenie
|
||||
doRegister=Registrácia
|
||||
doCancel=Zrušiť
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Logga in
|
||||
doRegister=Registrera
|
||||
doCancel=Avbryt
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=Oturum aç
|
||||
doRegister=Kayıt ol
|
||||
doCancel=İptal et
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
doLogIn=登录
|
||||
doRegister=注册
|
||||
doCancel=取消
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
pageNotFound=الصفحة غير موجودة
|
||||
forbidden=الوصول ممنوع
|
||||
needAccessRights=ليس لديك الصلاحيات اللازمة لهذا الطلب. قم بالتواصل مع مسؤول النظام.
|
||||
|
|
|
@ -1,3 +1 @@
|
|||
# encoding: UTF-8
|
||||
|
||||
fullName={0} {1}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue