From a9532274e32f55ac526712b37dfe4d88eff71955 Mon Sep 17 00:00:00 2001 From: Alexander Schwartz Date: Mon, 6 May 2024 09:30:14 +0200 Subject: [PATCH] Generate translations for locales via built-in Java functionality (#29125) Closes #29124 Signed-off-by: Jon Koops Signed-off-by: Alexander Schwartz Co-authored-by: Jon Koops --- .../src/personal-info/PersonalInfo.tsx | 16 +++--- js/apps/admin-ui/src/user/UserForm.tsx | 18 ++++--- js/apps/admin-ui/src/util.ts | 4 +- .../src/user-profile/LocaleSelector.tsx | 18 +++++-- .../src/user-profile/UserProfileFields.tsx | 6 +++ .../keycloak/theme/DefaultThemeManager.java | 53 ++++++++++++++++++- .../org/keycloak/theme/beans/LocaleBean.java | 5 ++ .../pages/LanguageComboboxAwarePage.java | 2 +- .../error/UncaughtErrorPageTest.java | 2 +- .../account/messages/messages_ar.properties | 23 -------- .../account/messages/messages_ca.properties | 23 -------- .../account/messages/messages_cs.properties | 2 - .../account/messages/messages_da.properties | 17 ------ .../account/messages/messages_de.properties | 1 - .../account/messages/messages_el.properties | 21 -------- .../account/messages/messages_es.properties | 24 --------- .../account/messages/messages_fa.properties | 23 -------- .../account/messages/messages_fi.properties | 20 ------- .../account/messages/messages_fr.properties | 2 - .../account/messages/messages_hu.properties | 23 -------- .../account/messages/messages_it.properties | 3 -- .../account/messages/messages_ja.properties | 2 - .../account/messages/messages_lt.properties | 2 - .../account/messages/messages_lv.properties | 18 ------- .../account/messages/messages_nl.properties | 1 - .../account/messages/messages_no.properties | 4 +- .../messages/messages_pt_BR.properties | 2 - .../account/messages/messages_ru.properties | 2 - .../account/messages/messages_sk.properties | 4 +- .../account/messages/messages_sv.properties | 2 - .../account/messages/messages_tr.properties | 2 - .../messages/messages_zh_CN.properties | 2 - .../messages/messages_zh_TW.properties | 27 ---------- .../theme/base/account/theme.properties | 2 +- .../login/messages/messages_ca.properties | 24 --------- .../login/messages/messages_cs.properties | 25 --------- .../login/messages/messages_da.properties | 2 - .../login/messages/messages_el.properties | 24 --------- .../login/messages/messages_es.properties | 25 --------- .../login/messages/messages_fa.properties | 25 --------- .../login/messages/messages_hu.properties | 24 --------- .../login/messages/messages_it.properties | 1 - .../login/messages/messages_sk.properties | 25 --------- .../login/messages/messages_zh_CN.properties | 25 --------- .../login/messages/messages_zh_TW.properties | 28 ---------- .../theme/base/login/theme.properties | 2 +- .../account/messages/messages_en.properties | 27 ---------- .../login/messages/messages_en.properties | 28 ---------- 48 files changed, 106 insertions(+), 555 deletions(-) diff --git a/js/apps/account-ui/src/personal-info/PersonalInfo.tsx b/js/apps/account-ui/src/personal-info/PersonalInfo.tsx index 7dd58691cc..94d4ce39d7 100644 --- a/js/apps/account-ui/src/personal-info/PersonalInfo.tsx +++ b/js/apps/account-ui/src/personal-info/PersonalInfo.tsx @@ -1,3 +1,10 @@ +import { + UserProfileFields, + beerify, + debeerify, + setUserProfileServerError, + useAlerts, +} from "@keycloak/keycloak-ui-shared"; import { ActionGroup, Alert, @@ -11,13 +18,6 @@ import { TFunction } from "i18next"; import { useState } from "react"; import { ErrorOption, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; -import { - UserProfileFields, - beerify, - debeerify, - setUserProfileServerError, - useAlerts, -} from "@keycloak/keycloak-ui-shared"; import { getPersonalInfo, @@ -29,6 +29,7 @@ import { UserRepresentation, } from "../api/representations"; import { Page } from "../components/page/Page"; +import { environment } from "../environment"; import { TFuncKey, i18n } from "../i18n"; import { useEnvironment } from "../root/KeycloakContext"; import { usePromise } from "../utils/usePromise"; @@ -105,6 +106,7 @@ export const PersonalInfo = () => { form={form} userProfileMetadata={userProfileMetadata} supportedLocales={supportedLocales} + currentLocale={environment.locale} t={ ((key: unknown, params) => t(key as TFuncKey, params as any)) as TFunction diff --git a/js/apps/admin-ui/src/user/UserForm.tsx b/js/apps/admin-ui/src/user/UserForm.tsx index c1e78103e7..62c15b8cda 100644 --- a/js/apps/admin-ui/src/user/UserForm.tsx +++ b/js/apps/admin-ui/src/user/UserForm.tsx @@ -2,6 +2,13 @@ import type GroupRepresentation from "@keycloak/keycloak-admin-client/lib/defs/g import type RealmRepresentation from "@keycloak/keycloak-admin-client/lib/defs/realmRepresentation"; import { UserProfileMetadata } from "@keycloak/keycloak-admin-client/lib/defs/userProfileMetadata"; import type UserRepresentation from "@keycloak/keycloak-admin-client/lib/defs/userRepresentation"; +import { + FormErrorText, + HelpItem, + SwitchControl, + TextControl, + UserProfileFields, +} from "@keycloak/keycloak-ui-shared"; import { ActionGroup, AlertVariant, @@ -19,13 +26,6 @@ import { useEffect, useState } from "react"; import { Controller, FormProvider, UseFormReturn } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; -import { - FormErrorText, - HelpItem, - SwitchControl, - TextControl, - UserProfileFields, -} from "@keycloak/keycloak-ui-shared"; import { adminClient } from "../admin-client"; import { DefaultSwitchControl } from "../components/SwitchControl"; @@ -33,6 +33,7 @@ import { useAlerts } from "../components/alert/Alerts"; import { FormAccess } from "../components/form/FormAccess"; import { GroupPickerDialog } from "../components/group/GroupPickerDialog"; import { useAccess } from "../context/access/Access"; +import { useWhoAmI } from "../context/whoami/WhoAmI"; import { emailRegexPattern } from "../util"; import useFormatDate from "../utils/useFormatDate"; import { FederatedUserLink } from "./FederatedUserLink"; @@ -73,6 +74,8 @@ export const UserForm = ({ const { hasAccess } = useAccess(); const isManager = hasAccess("manage-users"); const canViewFederationLink = hasAccess("view-realm"); + const { whoAmI } = useWhoAmI(); + const currentLocale = whoAmI.getLocale(); const { handleSubmit, @@ -210,6 +213,7 @@ export const UserForm = ({ userProfileMetadata={userProfileMetadata} hideReadOnly={!user} supportedLocales={realm.supportedLocales || []} + currentLocale={currentLocale} t={ ((key: unknown, params) => t(key as string, params as any)) as TFunction diff --git a/js/apps/admin-ui/src/util.ts b/js/apps/admin-ui/src/util.ts index 64611b04fe..0aabe67187 100644 --- a/js/apps/admin-ui/src/util.ts +++ b/js/apps/admin-ui/src/util.ts @@ -173,7 +173,9 @@ export const generateId = () => Math.floor(Math.random() * 1000); export const localeToDisplayName = (locale: string, displayLocale: string) => { try { return new Intl.DisplayNames([displayLocale], { type: "language" }).of( - locale, + // This is mapping old locale codes to the new locale codes for Simplified and Traditional Chinese. + // Once the existing locales have been moved, this code can be removed. + locale === "zh-CN" ? "zh-HANS" : locale === "zh-TW" ? "zh-HANT" : locale, ); } catch (error) { return locale; diff --git a/js/libs/ui-shared/src/user-profile/LocaleSelector.tsx b/js/libs/ui-shared/src/user-profile/LocaleSelector.tsx index a522a95dd3..1827bd7f3f 100644 --- a/js/libs/ui-shared/src/user-profile/LocaleSelector.tsx +++ b/js/libs/ui-shared/src/user-profile/LocaleSelector.tsx @@ -1,4 +1,5 @@ import { FormProvider } from "react-hook-form"; +import { useMemo } from "react"; import { SelectControl } from "../controls/SelectControl"; import { UserProfileFieldProps } from "./UserProfileFields"; @@ -12,17 +13,26 @@ const localeToDisplayName = (locale: string) => { type LocaleSelectorProps = Omit & { supportedLocales: string[]; + currentLocale: string; }; export const LocaleSelector = ({ t, form, supportedLocales, + currentLocale, }: LocaleSelectorProps) => { - const locales = supportedLocales.map((locale) => ({ - key: locale, - value: localeToDisplayName(locale) || "", - })); + const locales = useMemo( + () => + supportedLocales + .map((locale) => ({ + key: locale, + value: t(`locale_${locale}`, localeToDisplayName(locale) ?? locale), + })) + .sort((a, b) => a.value.localeCompare(b.value, currentLocale)), + [supportedLocales, currentLocale, t], + ); + if (!locales.length) { return null; } diff --git a/js/libs/ui-shared/src/user-profile/UserProfileFields.tsx b/js/libs/ui-shared/src/user-profile/UserProfileFields.tsx index e1fc2e0711..fbf3336d78 100644 --- a/js/libs/ui-shared/src/user-profile/UserProfileFields.tsx +++ b/js/libs/ui-shared/src/user-profile/UserProfileFields.tsx @@ -82,6 +82,7 @@ export type UserProfileFieldsProps = { form: UseFormReturn; userProfileMetadata: UserProfileMetadata; supportedLocales: string[]; + currentLocale: string; hideReadOnly?: boolean; renderer?: ( attribute: UserProfileAttributeMetadata, @@ -98,6 +99,7 @@ export const UserProfileFields = ({ form, userProfileMetadata, supportedLocales, + currentLocale, hideReadOnly = false, renderer, }: UserProfileFieldsProps) => { @@ -153,6 +155,7 @@ export const UserProfileFields = ({ t={t} form={form} supportedLocales={supportedLocales} + currentLocale={currentLocale} renderer={renderer} attribute={attribute} /> @@ -168,6 +171,7 @@ type FormFieldProps = { t: TFunction; form: UseFormReturn; supportedLocales: string[]; + currentLocale: string; attribute: UserProfileAttributeMetadata; renderer?: ( attribute: UserProfileAttributeMetadata, @@ -179,6 +183,7 @@ const FormField = ({ form, renderer, supportedLocales, + currentLocale, attribute, }: FormFieldProps) => { const value = form.watch( @@ -196,6 +201,7 @@ const FormField = ({ diff --git a/services/src/main/java/org/keycloak/theme/DefaultThemeManager.java b/services/src/main/java/org/keycloak/theme/DefaultThemeManager.java index 0d4c5b7403..1d801aa9d3 100755 --- a/services/src/main/java/org/keycloak/theme/DefaultThemeManager.java +++ b/services/src/main/java/org/keycloak/theme/DefaultThemeManager.java @@ -35,10 +35,13 @@ import java.util.List; import java.util.ListIterator; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.Properties; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import org.keycloak.common.Profile; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; + import org.keycloak.services.util.LocaleUtil; /** @@ -266,6 +269,7 @@ public class DefaultThemeManager implements ThemeManager { } } + addlocaleTranslations(locale, currentMessages); this.messages.putIfAbsent(baseBundlename, new ConcurrentHashMap<>()); this.messages.get(baseBundlename).putIfAbsent(locale, groupedMessages); @@ -276,6 +280,53 @@ public class DefaultThemeManager implements ThemeManager { } } + protected void addlocaleTranslations(Locale locale, Properties m) throws IOException { + for (String l : getProperties().getProperty("locales", "").split(",")) { + l = l.trim(); + String key = "locale_" + l; + String label = m.getProperty(key); + if (label != null) { + continue; + } + String rl = l; + // This is mapping old locale codes to the new locale codes for Simplified and Traditional Chinese. + // Once the existing locales have been moved, this code can be removed. + if (l.equals("zh-CN")) { + rl = "zh-HANS"; + } else if (l.equals("zh-TW")) { + rl = "zh-HANT"; + } + Locale loc = Locale.forLanguageTag(rl); + label = capitalize(loc.getDisplayName(locale), locale); + if (!Objects.equals(loc, locale)) { + label += " (" + capitalize(loc.getDisplayName(loc), loc) + ")"; + } + m.put(key, label); + } + } + + private static final Pattern LATIN_CHARACTERS; + + static { + Pattern p; + try { + p = Pattern.compile("(\\p{L1}|\\p{InLATIN_EXTENDED_A}|\\p{InLATIN_EXTENDED_B}|\\p{InLATIN_EXTENDED_C}|\\p{InLATIN_EXTENDED_D}|\\p{InLATIN_EXTENDED_E}).*"); + } catch (PatternSyntaxException ex) { + log.warn("unable to create regex for latin characters", ex); + // just in case the JVM doesn't recognize the language patterns used above + p = Pattern.compile("[a-zA-Z]"); + } + LATIN_CHARACTERS = p; + } + + private String capitalize(String name, Locale locale) { + if (LATIN_CHARACTERS.matcher(name).matches()) { + return name.substring(0, 1).toUpperCase(locale) + name.substring(1); + } else { + return name; + } + } + @Override public Properties getProperties() throws IOException { if (properties == null) { diff --git a/services/src/main/java/org/keycloak/theme/beans/LocaleBean.java b/services/src/main/java/org/keycloak/theme/beans/LocaleBean.java index 025691f826..81eaa95703 100755 --- a/services/src/main/java/org/keycloak/theme/beans/LocaleBean.java +++ b/services/src/main/java/org/keycloak/theme/beans/LocaleBean.java @@ -20,6 +20,7 @@ package org.keycloak.theme.beans; import org.keycloak.models.RealmModel; import jakarta.ws.rs.core.UriBuilder; +import java.text.Collator; import java.util.List; import java.util.Properties; import java.util.stream.Collectors; @@ -37,12 +38,16 @@ public class LocaleBean { this.currentLanguageTag = current.toLanguageTag(); this.current = messages.getProperty("locale_" + this.currentLanguageTag, this.currentLanguageTag); + Collator collator = Collator.getInstance(current); + collator.setStrength(Collator.PRIMARY); // ignore case and accents + supported = realm.getSupportedLocalesStream() .map(l -> { String label = messages.getProperty("locale_" + l, l); String url = uriBuilder.replaceQueryParam("kc_locale", l).build().toString(); return new Locale(l, label, url); }) + .sorted((o1, o2) -> collator.compare(o1.label, o2.label)) .collect(Collectors.toList()); } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java index 2b3d24e000..e72d7f65ad 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java @@ -56,7 +56,7 @@ public abstract class LanguageComboboxAwarePage extends AbstractPage { } public void openLanguage(String language){ - WebElement langLink = localeDropdown.findElement(By.xpath("//a[text()='" + language + "']")); + WebElement langLink = localeDropdown.findElement(By.xpath("//a[text()[contains(.,'" + language + "')]]")); String url = langLink.getAttribute("href"); DroneUtils.getCurrentDriver().navigate().to(url); WaitUtils.waitForPageToLoad(); diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/error/UncaughtErrorPageTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/error/UncaughtErrorPageTest.java index a1f75c6823..65d3808947 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/error/UncaughtErrorPageTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/error/UncaughtErrorPageTest.java @@ -223,7 +223,7 @@ public class UncaughtErrorPageTest extends AbstractKeycloakTest { try { checkPageNotFound("/auth/realms/master/nosuch"); - String url = driver.findElement(By.xpath("//a[text()='Deutsch']")).getAttribute("href"); + String url = driver.findElement(By.xpath("//a[text()[contains(.,'Deutsch')]]")).getAttribute("href"); driver.navigate().to(url); errorPage.assertCurrent(); } finally { diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_ar.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_ar.properties index 4e5c064cb3..7c1871f99c 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_ar.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_ar.properties @@ -267,29 +267,6 @@ havePermissionRequestsWaitingForApproval=لديك {0} طلبات إذن في ا clickHereForDetails=انقر هنا للتفاصيل. resourceIsNotBeingShared=لم يتم مشاركة المورد -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fa=فارسی -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_tr=Türkçe -locale_zh-CN=中文简体 -locale_fi=Suomi - # Applications applicationName=الاسم applicationType=نوع التطبيق diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_ca.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_ca.properties index 7ecc2b2ffb..f9d19f72ae 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_ca.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_ca.properties @@ -267,29 +267,6 @@ havePermissionRequestsWaitingForApproval=Teniu {0} peticions de permís esperant clickHereForDetails=Feu clic aquí per a obtenir més detalls. resourceIsNotBeingShared=El recurs no s''està compartint -locale_ar=àrab -locale_ca=català -locale_cs=txec -locale_de=alemany -locale_en=anglès -locale_es=castellà -locale_fr=francès -locale_hu=hongarès -locale_fa=persa -locale_it=italià -locale_ja=japonès -locale_lt=lituà -locale_nl=neerlandès -locale_no=noruec -locale_pl=polonès -locale_pt-BR=portuguès (Brasil) -locale_ru=rus -locale_sk=eslovè -locale_sv=suec -locale_tr=turc -locale_zh-CN=xinès simplificat -locale_fi=finès - # Applications applicationName=Nom applicationType=Tipus d''aplicació diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_cs.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_cs.properties index 6d3d264875..2c95e95b66 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_cs.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_cs.properties @@ -168,5 +168,3 @@ invalidPasswordRegexPatternMessage=Neplatné heslo: neshoduje se zadaným regul invalidPasswordHistoryMessage=Neplatné heslo: Nesmí se opakovat žádné z posledních {0} hesel. invalidPasswordBlacklistedMessage=Neplatné heslo: heslo je na černé listině. invalidPasswordGenericMessage=Neplatné heslo: nové heslo neodpovídá pravidlům hesla. - -locale_fa=فارسی \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_da.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_da.properties index a718421055..9d79936ee2 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_da.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_da.properties @@ -226,23 +226,6 @@ permissionRequestion=Rettigsheds forespørgsel permission=Tilladelse shares=share(s) -locale_ca=Català -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fa=فارسی -locale_fr=Français -locale_it=Italian -locale_ja=日本語 -locale_nl=Nederlands -locale_no=Norsk -locale_lt=Lietuvių -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_zh-CN=中文简体 - # Applications applicationName=Navn applicationType=Applikationstype diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_de.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_de.properties index 5cb0f9c436..7ebbd76b4c 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_de.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_de.properties @@ -325,7 +325,6 @@ openshift.scope.user_info=Nutzerinformation openshift.scope.user_check-access=Benutzerzugriffsinformationen openshift.scope.user_full=Voller Zugriff openshift.scope.list-projects=Projekte auflisten -locale_fa=فارسی invalidPasswordMaxLengthMessage=Ungültiges Passwort: darf maximal {0} Zeichen beinhalten. accountManagementBaseThemeCannotBeUsedDirectly=Das base Account Theme enthält nur Übersetzungen für die Account Console. Um die Account Console anzuzeigen, müssen Sie entweder das übergeordnete Theme auf ein anderes Account Theme setzen oder Ihre eigene index.ftl-Datei bereitstellen. Weitere Informationen entnehmen Sie bitte der Dokumentation. role_view-groups=Zeige Gruppen diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_el.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_el.properties index 2d4d74c36e..b3e6cbf72b 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_el.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_el.properties @@ -84,32 +84,11 @@ totpAppMicrosoftAuthenticatorName=Microsoft Authenticator invalidEmailMessage=Μη έγκυρη διεύθυνση email. accountDisabledMessage=Ο λογαριασμός έχει απενεργοποιηθεί, επικοινωνήστε με το διαχειριστή. consentDenied=Άρνηση Συναίνεσης. -locale_ca=Català -locale_cs=Čeština -locale_de=Deutsch -locale_es=Español -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_tr=Türkçe -locale_zh-CN=中文简体 -locale_fi=Suomi doSave=Αποθήκευση doCancel=Ακύρωση doLogIn=Είσοδος updatePasswordTitle=Ενημέρωση Κωδικού Πρόσβασης -locale_ar=عربي authenticatorCode=Κωδικός μίας-χρήσης -locale_en=English givenName=Όνομα region=Νομός ή Περιφέρεια fullName=Ονοματεπώνυμο diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_es.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_es.properties index ec80911572..a4d74acdfb 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_es.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_es.properties @@ -146,30 +146,6 @@ invalidPasswordNotUsernameMessage=Contraseña incorrecta: no puede ser igual al invalidPasswordRegexPatternMessage=Contraseña incorrecta: no cumple la expresión regular. invalidPasswordHistoryMessage=Contraseña incorrecta: no puede ser igual a ninguna de las últimas {0} contraseñas. -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fr=Français -locale_hu=Magyar -locale_fa=فارسی -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_th=ไทย -locale_tr=Türkçe -locale_zh-CN=中文简体 -locale_fi=Suomi - doLogIn=Iniciar sesión doLink=Enlace noAccessMessage=Acceso no permitido diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_fa.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_fa.properties index 7d5c387ce3..33c5fd878f 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_fa.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_fa.properties @@ -267,29 +267,6 @@ havePermissionRequestsWaitingForApproval=شما {0} درخواست مجوز در clickHereForDetails=برای جزئیات اینجا را کلیک کنید. resourceIsNotBeingShared=منبع به اشتراک گذاشته نمی شود -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fa=فارسی -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_tr=Türkçe -locale_zh-CN=中文简体 -locale_fi=Suomi - # Applications applicationName=نام applicationType=نوع اپلیکیشن diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_fi.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_fi.properties index c1a440d070..3537ffdd95 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_fi.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_fi.properties @@ -256,26 +256,6 @@ noResourcesSharedWithYou=Kanssasi ei ole jaettuna resursseja havePermissionRequestsWaitingForApproval=Sinulla on {0} lupapyyntöä odottamassa hyväksyntää. clickHereForDetails=Klikkaa tästä nähdäksesi yksityiskohdat. resourceIsNotBeingShared=Resurssia ei ole jaettu -locale_ca=Català -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fa=فارسی -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_tr=Türkçe -locale_zh-CN=中文简体 -locale_fi=Suomi # Applications applicationName=Nimi diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_fr.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_fr.properties index 92bfd0c0a0..3528c053e9 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_fr.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_fr.properties @@ -182,5 +182,3 @@ personalSubMessage=Gérez ces informations de base: votre prénom, nom de famill accountSecurityIntroMessage=Gérez votre mot de passe et l''accès à votre compte applicationsIntroMessage=Auditez et gérez les permissions d''accès des applications aux données de votre compte applicationType=Type d''application - -locale_fa=فارسی \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_hu.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_hu.properties index e8aa4a65e8..02e930eefe 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_hu.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_hu.properties @@ -267,29 +267,6 @@ havePermissionRequestsWaitingForApproval=Önnek {0} darab várakozó, jóváhagy clickHereForDetails=Kattintson ide a részletekért. resourceIsNotBeingShared=Az erőforrás nincs megosztva -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fr=Français -locale_hu=Magyar -locale_fa=فارسی -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_tr=Türkçe -locale_zh-CN=中文简体 -locale_fi=Suomi - # Applications applicationName=Név applicationType=Alkalmazás típus diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_it.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_it.properties index 74d4bc713f..2fb32efaf8 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_it.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_it.properties @@ -245,9 +245,6 @@ havePermissionRequestsWaitingForApproval=Hai {0} richiesta(e) di permesso in att clickHereForDetails=Clicca qui per i dettagli. resourceIsNotBeingShared=La risorsa non è in condivisione -locale_it=Italiano -locale_fa=فارسی - # Applications applicationName=Nome applicationType=Tipo applicazione diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_ja.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_ja.properties index abd9d7ec8e..3dcd634f7b 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_ja.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_ja.properties @@ -332,5 +332,3 @@ openshift.scope.user_info=ユーザー情報 openshift.scope.user_check-access=ユーザーアクセス情報 openshift.scope.user_full=フルアクセス openshift.scope.list-projects=プロジェクトの一覧表示 - -locale_fa=فارسی \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_lt.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_lt.properties index 2732d37c13..65b8dafab7 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_lt.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_lt.properties @@ -151,5 +151,3 @@ invalidPasswordMinSpecialCharsMessage=Neteisingas slaptažodis: privaloma įvest invalidPasswordNotUsernameMessage=Neteisingas slaptažodis: slaptažodis negali sutapti su naudotojo vardu. invalidPasswordRegexPatternMessage=Neteisingas slaptažodis: slaptažodis netenkina regex taisyklės(ių). invalidPasswordHistoryMessage=Neteisingas slaptažodis: slaptažodis negali sutapti su prieš tai buvusiais {0} slaptažodžiais. - -locale_fa=فارسی \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_lv.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_lv.properties index 1603d3ec71..ea88b73663 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_lv.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_lv.properties @@ -166,24 +166,6 @@ permissionRequestion=Atļaujas pieprasījums permission=Atļauja shares=share(s) -locale_ca=Català -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fa=فارسی -locale_fr=Français -locale_it=Italian -locale_ja=日本語 -locale_nl=Nederlands -locale_no=Norsk -locale_lt=Lietuvių -locale_lt=Latviešu -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_zh-CN=中文简体 - # Applications applicationName=Nosaukums applicationType=Lietojumprogrammas tips diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_nl.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_nl.properties index f6bb1a545c..08d503d238 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_nl.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_nl.properties @@ -340,4 +340,3 @@ error-invalid-date=Ongeldige datum. error-user-attribute-read-only=Het veld {0} staat op alleen-lezen. error-username-invalid-character=Gebruikersnaam bevat een ongeldig karakter. error-person-name-invalid-character=Naam bevat een ongeldig karakter. -locale_fa=فارسی diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_no.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_no.properties index 7271dd2541..c3e9d1db83 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_no.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_no.properties @@ -149,6 +149,4 @@ invalidPasswordMinUpperCaseCharsMessage=Ugyldig passord: må inneholde minimum { invalidPasswordMinSpecialCharsMessage=Ugyldig passord: må inneholde minimum {0} spesialtegn. invalidPasswordNotUsernameMessage=Ugyldig passord: kan ikke være likt brukernavn. invalidPasswordRegexPatternMessage=Ugyldig passord: tilfredsstiller ikke kravene for passord-mønster. -invalidPasswordHistoryMessage=Ugyldig passord: kan ikke være likt noen av de {0} foregående passordene. - -locale_fa=فارسی \ No newline at end of file +invalidPasswordHistoryMessage=Ugyldig passord: kan ikke være likt noen av de {0} foregående passordene. \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_pt_BR.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_pt_BR.properties index b7c52538c1..1c22f6006e 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_pt_BR.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_pt_BR.properties @@ -348,5 +348,3 @@ openshift.scope.user_info=Informações do usuário openshift.scope.user_check-access=Informações de acesso do usuário openshift.scope.user_full=Acesso Completo openshift.scope.list-projects=Listar projetos - -locale_fa=فارسی \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_ru.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_ru.properties index 69c501dae0..b24a4a8b29 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_ru.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_ru.properties @@ -232,5 +232,3 @@ invalidPasswordNotUsernameMessage=Некорректный пароль: пар invalidPasswordRegexPatternMessage=Некорректный пароль: пароль не удовлетворяет регулярному выражению. invalidPasswordHistoryMessage=Некорректный пароль: пароль не должен совпадать с последним(и) {0} паролями. invalidPasswordGenericMessage=Некорректный пароль: новый пароль не соответствует правилам пароля. - -locale_fa=فارسی \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_sk.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_sk.properties index ea57347adf..262623ac8c 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_sk.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_sk.properties @@ -192,6 +192,4 @@ owner=Vlastník resourcesSharedWithMe=Zdroje zdieľané so mnou permissionRequestion=Žiadosti o povolenie permission=Oprávnenie -shares=podiel (y) - -locale_fa=فارسی \ No newline at end of file +shares=podiel (y) \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_sv.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_sv.properties index 28e6c1545b..1e1d812a93 100755 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_sv.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_sv.properties @@ -147,5 +147,3 @@ invalidPasswordNotUsernameMessage=Ogiltigt lösenord: Får inte vara samma som a invalidPasswordRegexPatternMessage=Ogiltigt lösenord: matchar inte kravet för lösenordsmönster. invalidPasswordHistoryMessage=Ogiltigt lösenord: Får inte vara samma som de senaste {0} lösenorden. invalidPasswordGenericMessage=Ogiltigt lösenord: Det nya lösenordet stämmer inte med lösenordspolicyn. - -locale_fa=فارسی \ No newline at end of file diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_tr.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_tr.properties index 45f4dab6af..972cbcdc4f 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_tr.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_tr.properties @@ -313,5 +313,3 @@ addTeam=Kaynağınızı paylaşmak için ekip ekleyin myPermissions=İzinlerim waitingforApproval=Onay bekleniyor anyPermission=Herhangi bir izin - -locale_fa=فارسی diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_zh_CN.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_zh_CN.properties index ebd9bfa269..4a4c09d61a 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_zh_CN.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_zh_CN.properties @@ -162,5 +162,3 @@ invalidPasswordMinSpecialCharsMessage=无效的密码: 至少包含 {0} 个特 invalidPasswordNotUsernameMessage=无效的密码: 不能与用户名相同 invalidPasswordRegexPatternMessage=无效的密码: 无法与正则表达式匹配 invalidPasswordHistoryMessage=无效的密码: 不能与之前的{0} 个旧密码相同 - -locale_fa=فارسی diff --git a/themes/src/main/resources-community/theme/base/account/messages/messages_zh_TW.properties b/themes/src/main/resources-community/theme/base/account/messages/messages_zh_TW.properties index d2bad6099c..5d95225274 100644 --- a/themes/src/main/resources-community/theme/base/account/messages/messages_zh_TW.properties +++ b/themes/src/main/resources-community/theme/base/account/messages/messages_zh_TW.properties @@ -272,33 +272,6 @@ havePermissionRequestsWaitingForApproval=您有 {0} 個權限請求等待批准 clickHereForDetails=點擊這裡查看詳細資訊。 resourceIsNotBeingShared=這個資源尚未被共享 -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fr=Français -locale_hu=Magyar -locale_fa=فارسی -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt=Português -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_th=ไทย -locale_tr=Türkçe -locale_uk=Українська -locale_zh-CN=中文简体 -locale_zh-TW=繁體中文 -locale_fi=Suomi - # Applications applicationName=名稱 applicationType=應用程式型態 diff --git a/themes/src/main/resources-community/theme/base/account/theme.properties b/themes/src/main/resources-community/theme/base/account/theme.properties index 91d4171028..178591000a 100644 --- a/themes/src/main/resources-community/theme/base/account/theme.properties +++ b/themes/src/main/resources-community/theme/base/account/theme.properties @@ -1 +1 @@ -locales=ar,ca,cs,da,de,el,en,es,fa,fr,fi,hu,it,ja,lt,nl,no,pl,pt,pt-BR,ru,sk,sv,th,tr,uk,zh-CN,zh-TW +locales=ar,ca,cs,da,de,el,en,es,fa,fr,fi,hu,it,ja,lt,lv,nl,no,pl,pt,pt-BR,ru,sk,sv,th,tr,uk,zh-CN,zh-TW diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_ca.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_ca.properties index 1a89f83ae7..4bb0c8b55c 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_ca.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_ca.properties @@ -357,30 +357,6 @@ confirmAccountLinking=Confirmeu l''enllaçat del compte {0} del proveïdor d''id confirmEmailAddressVerification=Confirmeu la validesa de l''adreça de correu electrònic {0}. confirmExecutionOfActions=Completeu les accions següents -locale_ar=àrab -locale_ca=català -locale_cs=txec -locale_da=danès -locale_de=alemany -locale_en=anglès -locale_es=castellà -locale_fi=finès -locale_fr=francès -locale_hu=hongarès -locale_it=italià -locale_ja=japonès -locale_lt=lituà -locale_lv=letó -locale_nl=neerlandès -locale_no=noruec -locale_pl=polonès -locale_pt_BR=portuguès (Brasil) -locale_ru=rus -locale_sk=eslovè -locale_sv=suec -locale_tr=turc -locale_zh-CN=xinès simplificat - backToApplication=« Torna a l''aplicació missingParameterMessage=Manquen paràmetres\\: {0} clientNotFoundMessage=No s''ha trobat el client. diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_cs.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_cs.properties index e6d8f897e1..dc636ea1d8 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_cs.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_cs.properties @@ -361,31 +361,6 @@ confirmAccountLinking=Potvrďte propojení účtu {0} poskytovatele identity {1} confirmEmailAddressVerification=Potvrďte platnost e-mailové adresy {0}. confirmExecutionOfActions=Proveďte následující akce -#locale_ar=عربي -#locale_ca=Català -#locale_cs=Čeština -#locale_da=Dansk -#locale_de=Deutsch -#locale_en=English -#locale_es=Español -#locale_fi=Suomi -#locale_fr=Français -#locale_hu=Magyar -#locale_it=Italiano -#locale_ja=日本語 -#locale_lt=Lietuvių -#locale_lv=Latviešu -#locale_nl=Nederlands -#locale_no=Norsk -#locale_pl=Polski -#locale_pt_BR=Português (Brasil) -#locale_ru=Русский -#locale_sk=Slovenčina -#locale_sv=Svenska -#locale_th=ไทย -#locale_tr=Türkçe -#locale_zh-CN=中文简体 - backToApplication=« Zpět na aplikaci missingParameterMessage=Chybějící parametry\: {0} clientNotFoundMessage=Klient nebyl nalezen. diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_da.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_da.properties index 603393c1b1..70646109d4 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_da.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_da.properties @@ -313,8 +313,6 @@ invalidUsernameOrEmailMessage=Ugyldigt brugernavn eller email. invalidPasswordMessage=Ugyldig adangskode. missingTotpDeviceNameMessage=Angiv venligst et udstyrsnavn. nestedFirstBrokerFlowMessage={0} brugeren {1} er ikke forbundet til nogen kendt bruger. -locale_cs=Čeština -locale_pl=Polish openshift.scope.user_info=Brugerinformation openshift.scope.user_check-access=Brugeradgangsinformation openshift.scope.user_full=Fuld adgang diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_el.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_el.properties index 178ccb2f11..23527df67d 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_el.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_el.properties @@ -318,30 +318,6 @@ identityProviderAlreadyLinkedMessage=Η ομόσπονδη ταυτότητα π confirmAccountLinking=Επιβεβαιώστε τη σύνδεση του λογαριασμού {0} στο πάροχο ταυτότητας {1} με το λογαριασμό σας. confirmEmailAddressVerification=Επιβεβαιώστε την εγκυρότητα της διεύθυνσης email {0}. confirmExecutionOfActions=Πραγματοποιήστε την ακόλουθη ενέργεια(ες) -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_da=Dansk -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fr=Français -locale_gr=Ελληνικά -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt_BR=Português (Brasil) -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_tr=Türkçe -locale_zh-CN=中文简体 -locale_fi=Suomi backToApplication=« Επιστροφή στην Εφαρμογή missingParameterMessage=Λείπουν οι παράμετροι: {0} clientNotFoundMessage=Ο πελάτης δε βρέθηκε. diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_es.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_es.properties index 2910ffca46..5b560a25c0 100755 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_es.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_es.properties @@ -410,31 +410,6 @@ identityProviderLinkSuccess=Verificó con éxito su correo electrónico. Vuelva staleCodeMessage=Esta página ya no es válida, vuelva a su solicitud e inicie sesión nuevamente. credentialSetupRequired=No se puede iniciar sesión, se requiere configuración de credencial. -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_da=Dansk -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fi=Suomi -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_lv=Latviešu -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt_BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_th=ไทย -locale_tr=Türkçe -locale_zh-CN=中文简体 - clientDisabledMessage=Cliente deshabilitado. differentUserAuthenticated=Ya está autenticado como un usuario diferente ''{0}'' en esta sesión. Por favor cierre sesión primero. brokerLinkingSessionExpired=Vinculación de la cuenta del corredor solicitada, pero la sesión actual ya no es válida. diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_fa.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_fa.properties index f4430e86cf..4468066382 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_fa.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_fa.properties @@ -353,31 +353,6 @@ confirmAccountLinking=پیوند حساب {0} ارائه دهنده هویت {1} confirmEmailAddressVerification=اعتبار آدرس ایمیل {0} را تأیید کنید. confirmExecutionOfActions=عمل(های) زیر را انجام دهید -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_da=Dansk -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fa=فارسی -locale_fi=Suomi -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt_BR=Português (Brasil) -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_tr=Türkçe -locale_zh-CN=中文简体 - backToApplication=« بازگشت به برنامه missingParameterMessage=پارامترهای از دست رفته\: {0} clientNotFoundMessage=مشتری یافت نشد diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_hu.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_hu.properties index 28d83ca738..d17b7cd48d 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_hu.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_hu.properties @@ -357,30 +357,6 @@ confirmAccountLinking=Erősítse meg a(z) {0} személyazonosság-kezelő {1} fi confirmEmailAddressVerification=Erősítse meg a(z) {0} e-mail cím érvényességét. confirmExecutionOfActions=Hajtsa végre a következő művelet(ek)et -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_da=Dansk -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fi=Suomi -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_lv=Latviešu -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt_BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_tr=Türkçe -locale_zh-CN=中文简体 - backToApplication=« Vissza az alkalmazásba missingParameterMessage=Hiányzó paraméterek\: {0} clientNotFoundMessage=A kliens nem található. diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_it.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_it.properties index 2fb0026067..00e0fa3e2b 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_it.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_it.properties @@ -275,7 +275,6 @@ identityProviderAlreadyLinkedMessage=L''identità federata restituita dall''iden confirmAccountLinking=Conferma il collegamento per l''account {0} dell''identity provider {1} con il tuo account. confirmEmailAddressVerification=Conferma la validità dell''indirizzo email {0}. confirmExecutionOfActions=Esegui la/le seguenti azione/i -locale_it=Italiano backToApplication=« Torna all''applicazione missingParameterMessage=Parametri mancanti\: {0} diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_sk.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_sk.properties index f9719b7163..335899f0a8 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_sk.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_sk.properties @@ -361,31 +361,6 @@ confirmAccountLinking=Potvrďte prepojenie účtu {0} poskytovateľa totožnosti confirmEmailAddressVerification=Potvrďte platnosť e-mailovej adresy {0}. confirmExecutionOfActions=Vykonajte nasledujúce akcie -#locale_ar=عربي -#locale_ca=Català -#locale_cs=Čeština -#locale_da=Dansk -#locale_de=Deutsch -#locale_en=English -#locale_es=Español -#locale_fi=Suomi -#locale_fr=Français -#locale_hu=Magyar -#locale_it=Italiano -#locale_ja=日本語 -#locale_lt=Lietuvių -#locale_lv=Latviešu -#locale_nl=Nederlands -#locale_no=Norsk -#locale_pl=Polski -#locale_pt_BR=Português (Brasil) -#locale_ru=Русский -#locale_sk=Slovenčina -#locale_sv=Svenska -#locale_th=ไทย -#locale_tr=Türkçe -#locale_zh-CN=中文简体 - backToApplication=« Späť na aplikáciu missingParameterMessage=Chýbajúce parametre : {0} clientNotFoundMessage=Klient sa nenašiel. diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_zh_CN.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_zh_CN.properties index f9007d56a5..498e3886d8 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_zh_CN.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_zh_CN.properties @@ -361,31 +361,6 @@ confirmAccountLinking=确认将身份提供者 {1} 的账户 {0} 与您的账户 confirmEmailAddressVerification=确认电子邮件地址 {0} 的有效性。 confirmExecutionOfActions=执行以下操作 -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_da=Dansk -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fi=Suomi -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_lv=Latviešu -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt_BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_th=ไทย -locale_tr=Türkçe -locale_zh-CN=中文简体 - backToApplication=« 回到应用 missingParameterMessage=缺少参数 \: {0} clientNotFoundMessage=客户端未找到 diff --git a/themes/src/main/resources-community/theme/base/login/messages/messages_zh_TW.properties b/themes/src/main/resources-community/theme/base/login/messages/messages_zh_TW.properties index db99306f40..de99183f43 100644 --- a/themes/src/main/resources-community/theme/base/login/messages/messages_zh_TW.properties +++ b/themes/src/main/resources-community/theme/base/login/messages/messages_zh_TW.properties @@ -365,34 +365,6 @@ confirmAccountLinking=確認連結身份提供者 {1} 的帳戶 {0} 至您的帳 confirmEmailAddressVerification=確認電子信箱 {0} 的有效性。 confirmExecutionOfActions=執行下列動作 -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_da=Dansk -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fi=Suomi -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_lv=Latviešu -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt=Português -locale_pt_BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_th=ไทย -locale_tr=Türkçe -locale_uk=Українська -locale_zh-CN=中文简体 -locale_zh-TW=繁體中文 - backToApplication=« 返回應用程式 missingParameterMessage=遺失參數\: {0} clientNotFoundMessage=找不到客戶端。 diff --git a/themes/src/main/resources-community/theme/base/login/theme.properties b/themes/src/main/resources-community/theme/base/login/theme.properties index 91d4171028..178591000a 100644 --- a/themes/src/main/resources-community/theme/base/login/theme.properties +++ b/themes/src/main/resources-community/theme/base/login/theme.properties @@ -1 +1 @@ -locales=ar,ca,cs,da,de,el,en,es,fa,fr,fi,hu,it,ja,lt,nl,no,pl,pt,pt-BR,ru,sk,sv,th,tr,uk,zh-CN,zh-TW +locales=ar,ca,cs,da,de,el,en,es,fa,fr,fi,hu,it,ja,lt,lv,nl,no,pl,pt,pt-BR,ru,sk,sv,th,tr,uk,zh-CN,zh-TW diff --git a/themes/src/main/resources/theme/base/account/messages/messages_en.properties b/themes/src/main/resources/theme/base/account/messages/messages_en.properties index a3dd1e08a9..fb6d3cb0e4 100755 --- a/themes/src/main/resources/theme/base/account/messages/messages_en.properties +++ b/themes/src/main/resources/theme/base/account/messages/messages_en.properties @@ -272,33 +272,6 @@ havePermissionRequestsWaitingForApproval=You have {0} permission request(s) wait clickHereForDetails=Click here for details. resourceIsNotBeingShared=The resource is not being shared -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fr=Français -locale_hu=Magyar -locale_fa=فارسی -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt=Português -locale_pt-BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_th=ไทย -locale_tr=Türkçe -locale_uk=Українська -locale_zh-CN=中文简体 -locale_zh-TW=繁體中文 -locale_fi=Suomi - # Applications applicationName=Name applicationType=Application Type diff --git a/themes/src/main/resources/theme/base/login/messages/messages_en.properties b/themes/src/main/resources/theme/base/login/messages/messages_en.properties index 37b69fc0a3..5f5e5ca300 100755 --- a/themes/src/main/resources/theme/base/login/messages/messages_en.properties +++ b/themes/src/main/resources/theme/base/login/messages/messages_en.properties @@ -371,34 +371,6 @@ confirmAccountLinking=Confirm linking the account {0} of identity provider {1} w confirmEmailAddressVerification=Confirm validity of e-mail address {0}. confirmExecutionOfActions=Perform the following action(s) -locale_ar=عربي -locale_ca=Català -locale_cs=Čeština -locale_da=Dansk -locale_de=Deutsch -locale_en=English -locale_es=Español -locale_fi=Suomi -locale_fr=Français -locale_hu=Magyar -locale_it=Italiano -locale_ja=日本語 -locale_lt=Lietuvių -locale_lv=Latviešu -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polski -locale_pt=Português -locale_pt_BR=Português (Brasil) -locale_ru=Русский -locale_sk=Slovenčina -locale_sv=Svenska -locale_th=ไทย -locale_tr=Türkçe -locale_uk=Українська -locale_zh-CN=中文简体 -locale_zh-TW=繁體中文 - backToApplication=« Back to Application missingParameterMessage=Missing parameters\: {0} clientNotFoundMessage=Client not found.