feat(i18n): add Arabic language support (#11161)

## Which Problems Are Solved

- Add comprehensive Arabic language support to ZITADEL

## How the Problems Are Solved

- Added full Arabic translation files for the login UI, console, and
notification (yaml and json).
- Ensured all keys match the latest English reference files to avoid
missing or inconsistent entries.
- Updated the localization loader to include `ar` as a supported
language.

## Additional Changes


## Additional Context


Closes #11146

---------

Co-authored-by: Marco A. <[email protected]>
This commit is contained in:
Tameem Habash
2026-01-22 17:07:47 +01:00
committed by GitHub
co-authored by Marco A.
parent 4ac16a119f
commit 1fc6f048a9
54 changed files with 5882 additions and 65 deletions
+3
View File
@@ -21,6 +21,7 @@ import localeKo from '@angular/common/locales/ko';
import localeRo from '@angular/common/locales/ro';
import localeTr from '@angular/common/locales/tr';
import localeUk from '@angular/common/locales/uk';
import localeAr from '@angular/common/locales/ar';
import { NgModule, inject, provideAppInitializer } from '@angular/core';
import { MatNativeDateModule } from '@angular/material/core';
import { MatDialogModule } from '@angular/material/dialog';
@@ -122,6 +123,8 @@ registerLocaleData(localeTr);
i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/tr.json'));
registerLocaleData(localeUk);
i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/uk.json'));
registerLocaleData(localeAr);
i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/ar.json'));
export class WebpackTranslateLoader implements TranslateLoader {
getTranslation(lang: string): Observable<any> {
+2 -1
View File
@@ -20,6 +20,7 @@ export const supportedLanguages = [
'ro',
'tr',
'uk',
'ar',
];
export const supportedLanguagesRegexp: RegExp = /de|en|es|fr|id|it|ja|pl|zh|bg|pt|mk|cs|ru|nl|sv|hu|ko|ro|tr|uk/;
export const supportedLanguagesRegexp: RegExp = /de|en|es|fr|id|it|ja|pl|zh|bg|pt|mk|cs|ru|nl|sv|hu|ko|ro|tr|uk|ar/;
export const fallbackLanguage: string = 'en';
File diff suppressed because it is too large Load Diff
+6 -3
View File
@@ -1557,7 +1557,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1808,7 +1809,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Проверката на имейл е извършена",
@@ -2790,7 +2792,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Добавяне на мениджър",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1806,7 +1807,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Ověření e-mailu dokončeno",
@@ -2772,7 +2774,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Přidat manažera",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1806,7 +1807,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Email Verification erfolgreich",
@@ -2763,7 +2765,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Manager hinzufügen",
+6 -3
View File
@@ -1559,7 +1559,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1810,7 +1811,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Email verification done",
@@ -2793,7 +2795,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Add a Manager",
+6 -3
View File
@@ -1556,7 +1556,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1807,7 +1808,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Verificación de email realizada",
@@ -2760,7 +2762,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Añadir un Mánager",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1806,7 +1807,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Vérification de l'e-mail effectuée",
@@ -2764,7 +2766,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Ajouter un responsable",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1804,7 +1805,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "E-mail ellenőrzés kész",
@@ -2787,7 +2789,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Hozzáadás egy menedzsert",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1803,7 +1804,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Verifikasi email selesai",
@@ -2787,7 +2789,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Tambahkan Manajer",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1806,7 +1807,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Verifica dell'e-mail terminata con successo.",
@@ -2764,7 +2766,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Aggiungi un manager",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1806,7 +1807,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "メール認証が完了しました",
@@ -2789,7 +2791,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "マネージャーを追加する",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1806,7 +1807,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "이메일 인증 완료",
@@ -2785,7 +2787,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "매니저 추가",
+6 -3
View File
@@ -1556,7 +1556,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1807,7 +1808,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Е-поштата е верифицирана",
@@ -2760,7 +2762,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Додај Менаџер",
+6 -3
View File
@@ -1555,7 +1555,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1806,7 +1807,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "E-mail verificatie voltooid",
@@ -2782,7 +2784,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Voeg een Manager toe",
+6 -3
View File
@@ -1554,7 +1554,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1805,7 +1806,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Weryfikacja adresu e-mail zakończona",
@@ -2763,7 +2765,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Dodaj managera",
+6 -3
View File
@@ -1556,7 +1556,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1807,7 +1808,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Verificação de email concluída",
@@ -2759,7 +2761,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Adicionar um Gerente",
+6 -3
View File
@@ -1553,7 +1553,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1804,7 +1805,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Verificarea e-mailului efectuată",
@@ -2785,7 +2787,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Adăugați un manager",
+6 -3
View File
@@ -1599,7 +1599,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1862,7 +1863,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"LOCALE": "Код языка",
"LOCALES": {
@@ -2868,7 +2870,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Добавить менеджера",
+6 -3
View File
@@ -1559,7 +1559,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1810,7 +1811,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "E-postverifiering klar",
@@ -2792,7 +2794,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Lägg till en administratör",
+6 -3
View File
@@ -1558,7 +1558,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1809,7 +1810,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "E-posta doğrulama tamamlandı",
@@ -2792,7 +2794,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Yönetici Ekle",
+6 -3
View File
@@ -1559,7 +1559,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1810,7 +1811,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "Верифікація електронної пошти завершена",
@@ -2795,7 +2797,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "Додати менеджера",
+6 -3
View File
@@ -1558,7 +1558,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
}
},
"SMTP": {
@@ -1809,7 +1810,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"KEYS": {
"emailVerificationDoneText": "电子邮件验证完成",
@@ -2796,7 +2798,8 @@
"ko": "한국어",
"ro": "Română",
"tr": "Türkçe",
"uk": "Українська"
"uk": "Українська",
"ar": "العربية"
},
"MEMBER": {
"ADD": "添加管理者",