mirror of
https://github.com/zitadel/zitadel.git
synced 2025-01-06 09:27:38 +00:00
feat: internationalization Bulgarian (#5998)
* Feature BG init * lint fix * Fix merge conflict * merge main branch add bg lang * reference centrally defined langs * refactor supportedLanguages --------- Co-authored-by: Livio Spring <livio.a@gmail.com> Co-authored-by: Elio Bischof <eliobischof@gmail.com> Co-authored-by: Max Peintner <max@caos.ch> Co-authored-by: Elio Bischof <elio@zitadel.com>
This commit is contained in:
parent
7b69449207
commit
4378eb7cb5
@ -1,5 +1,6 @@
|
||||
import { CommonModule, registerLocaleData } from '@angular/common';
|
||||
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
||||
import localeBg from '@angular/common/locales/bg';
|
||||
import localeDe from '@angular/common/locales/de';
|
||||
import localeEn from '@angular/common/locales/en';
|
||||
import localeEs from '@angular/common/locales/es';
|
||||
@ -80,6 +81,8 @@ registerLocaleData(localePl);
|
||||
i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/pl.json'));
|
||||
registerLocaleData(localeZh);
|
||||
i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/zh.json'));
|
||||
registerLocaleData(localeBg);
|
||||
i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/bg.json'));
|
||||
|
||||
export class WebpackTranslateLoader implements TranslateLoader {
|
||||
getTranslation(lang: string): Observable<any> {
|
||||
|
@ -19,6 +19,7 @@ import { GrpcAuthService } from 'src/app/services/grpc-auth.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
|
||||
import { supportedLanguages } from 'src/app/utils/language';
|
||||
import { InfoSectionType } from '../../info-section/info-section.component';
|
||||
import { WarnDialogComponent } from '../../warn-dialog/warn-dialog.component';
|
||||
import { PolicyComponentServiceType } from '../policy-component-types.enum';
|
||||
@ -109,7 +110,7 @@ export class LoginTextsComponent implements OnInit, OnDestroy {
|
||||
@Input() public serviceType: PolicyComponentServiceType = PolicyComponentServiceType.MGMT;
|
||||
|
||||
public KeyNamesArray: string[] = KeyNamesArray;
|
||||
public LOCALES: string[] = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh'];
|
||||
public LOCALES: string[] = supportedLanguages;
|
||||
|
||||
private sub: Subscription = new Subscription();
|
||||
|
||||
|
@ -47,6 +47,7 @@ import { GrpcAuthService } from 'src/app/services/grpc-auth.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
|
||||
import { supportedLanguages } from 'src/app/utils/language';
|
||||
import { InfoSectionType } from '../../info-section/info-section.component';
|
||||
import { WarnDialogComponent } from '../../warn-dialog/warn-dialog.component';
|
||||
import { PolicyComponentServiceType } from '../policy-component-types.enum';
|
||||
@ -441,7 +442,7 @@ export class MessageTextsComponent implements OnInit, OnDestroy {
|
||||
};
|
||||
|
||||
public locale: string = 'en';
|
||||
public LOCALES: string[] = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh'];
|
||||
public LOCALES: string[] = supportedLanguages;
|
||||
private sub: Subscription = new Subscription();
|
||||
public canWrite$: Observable<boolean> = this.authService.isAllowed([
|
||||
this.serviceType === PolicyComponentServiceType.ADMIN
|
||||
|
@ -20,6 +20,7 @@ import { AdminService } from 'src/app/services/admin.service';
|
||||
import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { supportedLanguages } from 'src/app/utils/language';
|
||||
|
||||
@Component({
|
||||
selector: 'cnsl-org-create',
|
||||
@ -45,7 +46,7 @@ export class OrgCreateComponent {
|
||||
public pwdForm?: UntypedFormGroup;
|
||||
|
||||
public genders: Gender[] = [Gender.GENDER_FEMALE, Gender.GENDER_MALE, Gender.GENDER_UNSPECIFIED];
|
||||
public languages: string[] = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh'];
|
||||
public languages: string[] = supportedLanguages;
|
||||
|
||||
public policy?: PasswordComplexityPolicy.AsObject;
|
||||
public usePassword: boolean = false;
|
||||
|
@ -13,6 +13,7 @@ import { ToastService } from 'src/app/services/toast.service';
|
||||
|
||||
import { CountryCallingCodesService, CountryPhoneCode } from 'src/app/services/country-calling-codes.service';
|
||||
import { formatPhone } from 'src/app/utils/formatPhone';
|
||||
import { supportedLanguages } from 'src/app/utils/language';
|
||||
import {
|
||||
containsLowerCaseValidator,
|
||||
containsNumberValidator,
|
||||
@ -33,7 +34,7 @@ import {
|
||||
export class UserCreateComponent implements OnInit, OnDestroy {
|
||||
public user: AddHumanUserRequest.AsObject = new AddHumanUserRequest().toObject();
|
||||
public genders: Gender[] = [Gender.GENDER_FEMALE, Gender.GENDER_MALE, Gender.GENDER_UNSPECIFIED];
|
||||
public languages: string[] = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh'];
|
||||
public languages: string[] = supportedLanguages;
|
||||
public selected: CountryPhoneCode | undefined;
|
||||
public countryPhoneCodes: CountryPhoneCode[] = [];
|
||||
public userForm!: UntypedFormGroup;
|
||||
|
@ -23,6 +23,7 @@ import { GrpcAuthService } from 'src/app/services/grpc-auth.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { formatPhone } from 'src/app/utils/formatPhone';
|
||||
import { supportedLanguages } from 'src/app/utils/language';
|
||||
import { EditDialogComponent, EditDialogType } from './edit-dialog/edit-dialog.component';
|
||||
|
||||
@Component({
|
||||
@ -33,7 +34,7 @@ import { EditDialogComponent, EditDialogType } from './edit-dialog/edit-dialog.c
|
||||
export class AuthUserDetailComponent implements OnDestroy {
|
||||
public user?: User.AsObject;
|
||||
public genders: Gender[] = [Gender.GENDER_MALE, Gender.GENDER_FEMALE, Gender.GENDER_DIVERSE];
|
||||
public languages: string[] = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh'];
|
||||
public languages: string[] = supportedLanguages;
|
||||
|
||||
private subscription: Subscription = new Subscription();
|
||||
|
||||
|
@ -22,6 +22,7 @@ import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { formatPhone } from 'src/app/utils/formatPhone';
|
||||
import { supportedLanguages } from 'src/app/utils/language';
|
||||
import { EditDialogComponent, EditDialogType } from '../auth-user-detail/edit-dialog/edit-dialog.component';
|
||||
import { ResendEmailDialogComponent } from '../auth-user-detail/resend-email-dialog/resend-email-dialog.component';
|
||||
import { MachineSecretDialogComponent } from './machine-secret-dialog/machine-secret-dialog.component';
|
||||
@ -44,7 +45,7 @@ export class UserDetailComponent implements OnInit {
|
||||
public user!: User.AsObject;
|
||||
public metadata: Metadata.AsObject[] = [];
|
||||
public genders: Gender[] = [Gender.GENDER_MALE, Gender.GENDER_FEMALE, Gender.GENDER_DIVERSE];
|
||||
public languages: string[] = ['de', 'en', 'es', 'it', 'fr', 'ja', 'pl', 'zh'];
|
||||
public languages: string[] = supportedLanguages;
|
||||
|
||||
public ChangeType: any = ChangeType;
|
||||
|
||||
|
@ -2,6 +2,7 @@ import { DatePipe } from '@angular/common';
|
||||
import { Pipe, PipeTransform } from '@angular/core';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import * as moment from 'moment';
|
||||
import { supportedLanguages } from 'src/app/utils/language';
|
||||
|
||||
@Pipe({
|
||||
name: 'localizedDate',
|
||||
@ -22,9 +23,7 @@ export class LocalizedDatePipe implements PipeTransform {
|
||||
return moment(value).format(`${format}, HH:mm`);
|
||||
}
|
||||
} else {
|
||||
const lang = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh'].includes(this.translateService.currentLang)
|
||||
? this.translateService.currentLang
|
||||
: 'en';
|
||||
const lang = supportedLanguages.includes(this.translateService.currentLang) ? this.translateService.currentLang : 'en';
|
||||
const datePipe: DatePipe = new DatePipe(lang);
|
||||
return datePipe.transform(value, pattern ?? 'mediumDate');
|
||||
}
|
||||
|
@ -1,3 +1,3 @@
|
||||
export const supportedLanguages = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh'];
|
||||
export const supportedLanguagesRegexp: RegExp = /de|en|es|fr|it|ja|pl|zh/;
|
||||
export const supportedLanguages = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh', 'bg'];
|
||||
export const supportedLanguagesRegexp: RegExp = /de|en|es|fr|it|ja|pl|zh|bg/;
|
||||
export const fallbackLanguage: string = 'en';
|
||||
|
2177
console/src/assets/i18n/bg.json
Normal file
2177
console/src/assets/i18n/bg.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -1039,7 +1039,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"SMTP": {
|
||||
"TITLE": "SMTP Einstellungen",
|
||||
@ -1238,7 +1239,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"KEYS": {
|
||||
"emailVerificationDoneText": "Email Verification erfolgreich",
|
||||
@ -2106,7 +2108,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"MEMBER": {
|
||||
"ADD": "Manager hinzufügen",
|
||||
|
@ -1040,7 +1040,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"SMTP": {
|
||||
"TITLE": "SMTP Settings",
|
||||
@ -1239,7 +1240,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"KEYS": {
|
||||
"emailVerificationDoneText": "Email verification done",
|
||||
@ -2103,7 +2105,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"MEMBER": {
|
||||
"ADD": "Add a Manager",
|
||||
|
@ -1040,7 +1040,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"SMTP": {
|
||||
"TITLE": "Ajustes SMTP",
|
||||
@ -1239,7 +1240,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"KEYS": {
|
||||
"emailVerificationDoneText": "Verificación de email realizada",
|
||||
@ -2103,7 +2105,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"MEMBER": {
|
||||
"ADD": "Añadir un Mánager",
|
||||
|
@ -1039,7 +1039,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"SMTP": {
|
||||
"TITLE": "Paramètres SMTP",
|
||||
@ -1238,7 +1239,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"KEYS": {
|
||||
"emailVerificationDoneText": "Vérification de l'email effectuée",
|
||||
@ -2095,7 +2097,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"MEMBER": {
|
||||
"ADD": "Ajouter un manager",
|
||||
|
@ -1039,7 +1039,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"SMTP": {
|
||||
"TITLE": "Impostazioni SMTP",
|
||||
@ -1238,7 +1239,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"KEYS": {
|
||||
"emailVerificationDoneText": "Verifica dell'e-mail terminata con successo.",
|
||||
@ -2107,7 +2109,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"MEMBER": {
|
||||
"ADD": "Aggiungi un manager",
|
||||
|
@ -1040,7 +1040,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"SMTP": {
|
||||
"TITLE": "SMTP設定",
|
||||
@ -1234,7 +1235,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"KEYS": {
|
||||
"emailVerificationDoneText": "メール認証が完了しました",
|
||||
@ -2098,7 +2100,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"MEMBER": {
|
||||
"ADD": "マネージャーを追加する",
|
||||
|
@ -1039,7 +1039,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"SMTP": {
|
||||
"TITLE": "Ustawienia SMTP",
|
||||
@ -1238,7 +1239,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"KEYS": {
|
||||
"emailVerificationDoneText": "Weryfikacja adresu e-mail zakończona",
|
||||
@ -2107,7 +2109,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"MEMBER": {
|
||||
"ADD": "Dodaj managera",
|
||||
|
@ -1039,7 +1039,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"SMTP": {
|
||||
"TITLE": "SMTP 设置",
|
||||
@ -1237,7 +1238,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"KEYS": {
|
||||
"emailVerificationDoneText": "电子邮件验证完成",
|
||||
@ -2094,7 +2096,8 @@
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pl": "Polski",
|
||||
"zh": "简体中文"
|
||||
"zh": "简体中文",
|
||||
"bg": "Български"
|
||||
},
|
||||
"MEMBER": {
|
||||
"ADD": "添加管理者",
|
||||
|
@ -42,6 +42,7 @@ ZITADEL is available in the following languages
|
||||
- 日本語 (ja)
|
||||
- Polish(pl)
|
||||
- 简体中文(zh)
|
||||
- Bulgarian (bg)
|
||||
|
||||
A language is displayed based on your agent's language header. The default language is English.
|
||||
|
||||
|
440
internal/api/ui/login/static/i18n/bg.yaml
Normal file
440
internal/api/ui/login/static/i18n/bg.yaml
Normal file
@ -0,0 +1,440 @@
|
||||
Login:
|
||||
Title: Добре дошъл обратно!
|
||||
Description: Въведете вашите данни за вход.
|
||||
TitleLinking: Влезте за потребителско свързване
|
||||
DescriptionLinking: >-
|
||||
Въведете вашите данни за вход, за да свържете вашия външен потребител с
|
||||
потребител на ZITADEL.
|
||||
LoginNameLabel: Потребителско име
|
||||
UsernamePlaceHolder: потребителско име
|
||||
LoginnamePlaceHolder: потребителско име@домейн
|
||||
ExternalUserDescription: Влезте с външен потребител.
|
||||
MustBeMemberOfOrg: 'Потребителят трябва да е член на {{.OrgName}} организация.'
|
||||
RegisterButtonText: регистрирам
|
||||
NextButtonText: следващия
|
||||
LDAP:
|
||||
Title: Влизам
|
||||
Description: Въведете вашите данни за вход.
|
||||
LoginNameLabel: Потребителско име
|
||||
PasswordLabel: Парола
|
||||
NextButtonText: следващия
|
||||
SelectAccount:
|
||||
Title: Изберете акаунт
|
||||
Description: Използвайте вашия ZITADEL-акаунт
|
||||
TitleLinking: Изберете акаунт за свързване на потребител
|
||||
DescriptionLinking: 'Изберете своя акаунт, който да свържете с вашия външен потребител.'
|
||||
OtherUser: Друг потребител
|
||||
SessionState0: активен
|
||||
SessionState1: неактивен
|
||||
MustBeMemberOfOrg: 'Потребителят трябва да е член на {{.OrgName}} организация.'
|
||||
Password:
|
||||
Title: Парола
|
||||
Description: Въведете вашите данни за вход.
|
||||
PasswordLabel: Парола
|
||||
MinLength: Минимална дължина
|
||||
HasUppercase: Главна буква
|
||||
HasLowercase: Малка буква
|
||||
HasNumber: Номер
|
||||
HasSymbol: Символ
|
||||
Confirmation: Съвпадение за потвърждение
|
||||
ResetLinkText: нулиране на парола
|
||||
BackButtonText: обратно
|
||||
NextButtonText: следващия
|
||||
UsernameChange:
|
||||
Title: Промяна на потребителското име
|
||||
Description: Задайте новото си потребителско име
|
||||
UsernameLabel: Потребителско име
|
||||
CancelButtonText: анулиране
|
||||
NextButtonText: следващия
|
||||
UsernameChangeDone:
|
||||
Title: Потребителското име е променено
|
||||
Description: Вашето потребителско име бе променено успешно.
|
||||
NextButtonText: следващия
|
||||
InitPassword:
|
||||
Title: Задайте парола
|
||||
Description: >-
|
||||
Получихте код, който трябва да въведете във формата по-долу, за да зададете
|
||||
новата си парола.
|
||||
CodeLabel: Код
|
||||
NewPasswordLabel: нова парола
|
||||
NewPasswordConfirmLabel: потвърди парола
|
||||
ResendButtonText: код за препращане
|
||||
NextButtonText: следващия
|
||||
InitPasswordDone:
|
||||
Title: Зададена парола
|
||||
Description: Паролата е зададена успешно
|
||||
NextButtonText: следващия
|
||||
CancelButtonText: анулиране
|
||||
InitUser:
|
||||
Title: Активиране на потребител
|
||||
Description: Потвърдете имейла си с кода по-долу и задайте парола.
|
||||
CodeLabel: Код
|
||||
NewPasswordLabel: нова парола
|
||||
NewPasswordConfirm: потвърди парола
|
||||
NextButtonText: следващия
|
||||
ResendButtonText: код за препращане
|
||||
InitUserDone:
|
||||
Title: Потребителят е активиран
|
||||
Description: Имейлът е потвърден и паролата е успешно зададена
|
||||
NextButtonText: следващия
|
||||
CancelButtonText: анулиране
|
||||
InitMFAPrompt:
|
||||
Title: 2-факторна настройка
|
||||
Description: >-
|
||||
Двуфакторното удостоверяване ви дава допълнителна сигурност за вашия
|
||||
потребителски акаунт.
|
||||
Provider0: 'Приложение за удостоверяване (напр. Google/Microsoft Authenticator, Authy)'
|
||||
Provider1: 'Зависи от устройството (напр. FaceID, Windows Hello, пръстов отпечатък)'
|
||||
NextButtonText: следващия
|
||||
SkipButtonText: пропуснете
|
||||
InitMFAOTP:
|
||||
Title: 2-факторна проверка
|
||||
Description: 'Създайте своя 2-фактор. '
|
||||
OTPDescription: >-
|
||||
Сканирайте кода с вашето приложение за удостоверяване (напр.
|
||||
Google/Microsoft Authenticator, Authy) или копирайте тайната и поставете
|
||||
генерирания код по-долу.
|
||||
SecretLabel: Тайна
|
||||
CodeLabel: Код
|
||||
NextButtonText: следващия
|
||||
CancelButtonText: анулиране
|
||||
InitMFAU2F:
|
||||
Title: Добавете ключ за сигурност
|
||||
Description: >-
|
||||
Ключът за сигурност е метод за потвърждение, който може да бъде вграден във
|
||||
вашия телефон, да използва Bluetooth или да се включи директно в USB порта
|
||||
на вашия компютър.
|
||||
TokenNameLabel: Име на защитния ключ/устройство
|
||||
NotSupported: 'WebAuthN не се поддържа от вашия браузър. '
|
||||
RegisterTokenButtonText: Добавете ключ за сигурност
|
||||
ErrorRetry: >-
|
||||
Опитайте отново, създайте ново предизвикателство или изберете различен
|
||||
метод.
|
||||
InitMFADone:
|
||||
Title: Ключът за сигурност е проверен
|
||||
Description: 'Страхотно! '
|
||||
NextButtonText: следващия
|
||||
CancelButtonText: анулиране
|
||||
MFAProvider:
|
||||
Provider0: 'Приложение за удостоверяване (напр. Google/Microsoft Authenticator, Authy)'
|
||||
Provider1: 'Зависи от устройството (напр. FaceID, Windows Hello, пръстов отпечатък)'
|
||||
ChooseOther: или изберете друга опция
|
||||
VerifyMFAOTP:
|
||||
Title: Проверете 2-фактора
|
||||
Description: Проверете вашия втори фактор
|
||||
CodeLabel: Код
|
||||
NextButtonText: следващия
|
||||
VerifyMFAU2F:
|
||||
Title: 2-факторна проверка
|
||||
Description: >-
|
||||
Потвърдете своя 2-фактор с регистрираното устройство (напр. FaceID, Windows
|
||||
Hello, пръстов отпечатък)
|
||||
NotSupported: 'WebAuthN не се поддържа от вашия браузър. '
|
||||
ErrorRetry: 'Опитайте отново, създайте нова заявка или изберете друг метод.'
|
||||
ValidateTokenButtonText: Проверете 2-фактора
|
||||
Passwordless:
|
||||
Title: Вход без парола
|
||||
Description: >-
|
||||
Влезте с методи за удостоверяване, предоставени от вашето устройство, като
|
||||
FaceID, Windows Hello или пръстов отпечатък.
|
||||
NotSupported: 'WebAuthN не се поддържа от вашия браузър. '
|
||||
ErrorRetry: >-
|
||||
Опитайте отново, създайте ново предизвикателство или изберете различен
|
||||
метод.
|
||||
LoginWithPwButtonText: Влезте с парола
|
||||
ValidateTokenButtonText: Влезте без парола
|
||||
PasswordlessPrompt:
|
||||
Title: Настройка без парола
|
||||
Description: 'Искате ли да настроите влизане без парола? '
|
||||
DescriptionInit: 'Трябва да настроите влизане без парола. '
|
||||
PasswordlessButtonText: Преминете без парола
|
||||
NextButtonText: следващия
|
||||
SkipButtonText: пропуснете
|
||||
PasswordlessRegistration:
|
||||
Title: Настройка без парола
|
||||
Description: >-
|
||||
Добавете вашето удостоверяване, като предоставите име (напр. MyMobilePhone,
|
||||
MacBook и т.н.) и след това щракнете върху бутона „Регистриране без парола“
|
||||
по-долу.
|
||||
TokenNameLabel: Име на устройството
|
||||
NotSupported: 'WebAuthN не се поддържа от вашия браузър. '
|
||||
RegisterTokenButtonText: Регистрирайте се без парола
|
||||
ErrorRetry: >-
|
||||
Опитайте отново, създайте ново предизвикателство или изберете различен
|
||||
метод.
|
||||
PasswordlessRegistrationDone:
|
||||
Title: Настройка без парола
|
||||
Description: Успешно добавено устройство за без парола.
|
||||
DescriptionClose: Сега можете да затворите този прозорец.
|
||||
NextButtonText: следващия
|
||||
CancelButtonText: анулиране
|
||||
PasswordChange:
|
||||
Title: Промяна на паролата
|
||||
Description: 'Променете паролата си. '
|
||||
OldPasswordLabel: Стара парола
|
||||
NewPasswordLabel: нова парола
|
||||
NewPasswordConfirmLabel: Потвърждение на парола
|
||||
CancelButtonText: анулиране
|
||||
NextButtonText: следващия
|
||||
Footer: Долен колонтитул
|
||||
PasswordChangeDone:
|
||||
Title: Промяна на паролата
|
||||
Description: Вашата парола бе променена успешно.
|
||||
NextButtonText: следващия
|
||||
PasswordResetDone:
|
||||
Title: Връзката за повторно задаване на парола е изпратена
|
||||
Description: 'Проверете имейла си, за да нулирате паролата си.'
|
||||
NextButtonText: следващия
|
||||
EmailVerification:
|
||||
Title: Потвърждение на имейла
|
||||
Description: 'Изпратихме ви имейл, за да потвърдим адреса ви. '
|
||||
CodeLabel: Код
|
||||
NextButtonText: следващия
|
||||
ResendButtonText: код за препращане
|
||||
EmailVerificationDone:
|
||||
Title: Потвърждение на имейла
|
||||
Description: Вашият имейл адрес е потвърден успешно.
|
||||
NextButtonText: следващия
|
||||
CancelButtonText: анулиране
|
||||
LoginButtonText: Влизам
|
||||
RegisterOption:
|
||||
Title: Опции за регистрация
|
||||
Description: Изберете как искате да се регистрирате
|
||||
RegisterUsernamePasswordButtonText: С парола за потребителско име
|
||||
ExternalLoginDescription: или се регистрирайте при външен потребител
|
||||
LoginButtonText: Влизам
|
||||
RegistrationUser:
|
||||
Title: Регистрация
|
||||
Description: 'Въведете своите потребителски данни. '
|
||||
DescriptionOrgRegister: Въведете своите потребителски данни.
|
||||
EmailLabel: Електронна поща
|
||||
UsernameLabel: Потребителско име
|
||||
FirstnameLabel: Първо име
|
||||
LastnameLabel: Фамилия
|
||||
LanguageLabel: език
|
||||
German: Deutsch
|
||||
English: Английски
|
||||
Italian: Италиано
|
||||
French: Français
|
||||
Chinese: 简体中文
|
||||
Polish: Полски
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
Bulgarian: Български
|
||||
GenderLabel: Пол
|
||||
Female: Женски пол
|
||||
Male: Мъжки
|
||||
Diverse: разнообразен / X
|
||||
PasswordLabel: Парола
|
||||
PasswordConfirmLabel: Потвърждение на парола
|
||||
TosAndPrivacyLabel: Правила и условия
|
||||
TosConfirm: Приемам
|
||||
TosLinkText: TOS
|
||||
PrivacyConfirm: Приемам
|
||||
PrivacyLinkText: политика за поверителност
|
||||
ExternalLogin: или се регистрирайте при външен потребител
|
||||
BackButtonText: Влизам
|
||||
NextButtonText: следващия
|
||||
ExternalRegistrationUserOverview:
|
||||
Title: Регистрация на външен потребител
|
||||
Description: 'Взехме вашите потребителски данни от избрания доставчик. '
|
||||
EmailLabel: Електронна поща
|
||||
UsernameLabel: Потребителско име
|
||||
FirstnameLabel: Първо име
|
||||
LastnameLabel: Фамилия
|
||||
NicknameLabel: Псевдоним
|
||||
PhoneLabel: Телефонен номер
|
||||
LanguageLabel: език
|
||||
German: Deutsch
|
||||
English: Английски
|
||||
Italian: Италиано
|
||||
French: Français
|
||||
Chinese: 简体中文
|
||||
Japanese: 日本語
|
||||
Polish: Полски
|
||||
Spanish: Español
|
||||
TosAndPrivacyLabel: Правила и условия
|
||||
TosConfirm: Приемам
|
||||
TosLinkText: TOS
|
||||
PrivacyConfirm: Приемам
|
||||
PrivacyLinkText: политика за поверителност
|
||||
ExternalLogin: или се регистрирайте при външен потребител
|
||||
BackButtonText: обратно
|
||||
NextButtonText: спаси
|
||||
RegistrationOrg:
|
||||
Title: Регистрация на организация
|
||||
Description: Въведете името на вашата организация и потребителските данни.
|
||||
OrgNameLabel: Наименование на организацията
|
||||
EmailLabel: Електронна поща
|
||||
UsernameLabel: Потребителско име
|
||||
FirstnameLabel: Първо име
|
||||
LastnameLabel: Фамилия
|
||||
PasswordLabel: Парола
|
||||
PasswordConfirmLabel: Потвърждение на парола
|
||||
TosAndPrivacyLabel: Правила и условия
|
||||
TosConfirm: Приемам
|
||||
TosLinkText: TOS
|
||||
PrivacyConfirm: Приемам
|
||||
PrivacyLinkText: политика за поверителност
|
||||
SaveButtonText: Създайте организация
|
||||
LoginSuccess:
|
||||
Title: Успешен вход
|
||||
AutoRedirectDescription: 'Ще бъдете насочени обратно към вашето приложение автоматично. '
|
||||
RedirectedDescription: Сега можете да затворите този прозорец.
|
||||
NextButtonText: следващия
|
||||
LogoutDone:
|
||||
Title: Излязъл
|
||||
Description: Вие излязохте успешно.
|
||||
LoginButtonText: Влизам
|
||||
LinkingUsersDone:
|
||||
Title: Свързване с потребители
|
||||
Description: Свързването с потребители е готово.
|
||||
CancelButtonText: анулиране
|
||||
NextButtonText: следващия
|
||||
ExternalNotFound:
|
||||
Title: Външен потребител не е намерен
|
||||
Description: 'Външен потребител не е намерен. '
|
||||
LinkButtonText: Връзка
|
||||
AutoRegisterButtonText: регистрирам
|
||||
TosAndPrivacyLabel: Правила и условия
|
||||
TosConfirm: Приемам
|
||||
TosLinkText: TOS
|
||||
PrivacyConfirm: Приемам
|
||||
PrivacyLinkText: политика за поверителност
|
||||
German: Deutsch
|
||||
English: Английски
|
||||
Italian: Италиано
|
||||
French: Français
|
||||
Chinese: 简体中文
|
||||
Polish: Полски
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
DeviceAuth:
|
||||
Title: Упълномощаване на устройството
|
||||
UserCode:
|
||||
Label: Потребителски код
|
||||
Description: 'Въведете потребителския код, представен на устройството.'
|
||||
ButtonNext: следващия
|
||||
Action:
|
||||
Description: Дайте достъп до устройството.
|
||||
GrantDevice: сте на път да предоставите устройство
|
||||
AccessToScopes: достъп до следните обхвати
|
||||
Button:
|
||||
Allow: позволява
|
||||
Deny: отричам
|
||||
Done:
|
||||
Description: Свършен.
|
||||
Approved: 'Упълномощаването на устройството е одобрено. '
|
||||
Denied: 'Упълномощаването на устройството е отказано. '
|
||||
Footer:
|
||||
PoweredBy: Задвижвани от
|
||||
Tos: TOS
|
||||
PrivacyPolicy: Политика за поверителност
|
||||
Help: Помогне
|
||||
SupportEmail: Поддръжка на имейл
|
||||
Errors:
|
||||
Internal: Възникна вътрешна грешка
|
||||
AuthRequest:
|
||||
NotFound: Не може да се намери authrequest
|
||||
UserAgentNotCorresponding: Потребителският агент не отговаря
|
||||
UserAgentNotFound: ID на потребителски агент не е намерен
|
||||
TokenNotFound: Токенът не е намерен
|
||||
RequestTypeNotSupported: Типът заявка не се поддържа
|
||||
MissingParameters: Липсват задължителни параметри
|
||||
User:
|
||||
NotFound: Потребителят не може да бъде намерен
|
||||
AlreadyExists: Вече съществува потребител
|
||||
Inactive: Потребителят е неактивен
|
||||
NotFoundOnOrg: Потребителят не може да бъде намерен в избраната организация
|
||||
NotAllowedOrg: Потребителят не е член на необходимата организация
|
||||
NotMatchingUserID: Потребителят и потребителят в заявката за удостоверяване не съвпадат
|
||||
UserIDMissing: UserID е празен
|
||||
Invalid: Невалидни потребителски данни
|
||||
DomainNotAllowedAsUsername: Домейнът вече е резервиран и не може да се използва
|
||||
NotAllowedToLink: Потребителят няма право да се свързва с външен доставчик на данни за вход
|
||||
Profile:
|
||||
NotFound: Профилът не е намерен
|
||||
NotChanged: Профилът не е променен
|
||||
Empty: Профилът е празен
|
||||
FirstNameEmpty: Първото име в профила е празно
|
||||
LastNameEmpty: Фамилията в профила е празна
|
||||
IDMissing: Липсва ID на потребителския профил
|
||||
Email:
|
||||
NotFound: Имейлът не е намерен
|
||||
Invalid: Имейлът е невалиден
|
||||
AlreadyVerified: Имейлът вече е потвърден
|
||||
NotChanged: Имейлът не е променен
|
||||
Empty: Имейлът е празен
|
||||
IDMissing: Имейл ID липсва
|
||||
Phone:
|
||||
NotFound: Телефонът не е намерен
|
||||
Invalid: Телефонът е невалиден
|
||||
AlreadyVerified: Телефонът вече е потвърден
|
||||
Empty: Телефонът е празен
|
||||
NotChanged: Телефонът не е сменен
|
||||
Address:
|
||||
NotFound: Адресът не е намерен
|
||||
NotChanged: Адресът не е променен
|
||||
Username:
|
||||
AlreadyExists: Потребителско име вече е заето
|
||||
Reserved: Потребителско име вече е заето
|
||||
Empty: Потребителското име е празно
|
||||
Password:
|
||||
ConfirmationWrong: Потвърждението на паролата е грешно
|
||||
Empty: Паролата е празна
|
||||
Invalid: Паролата е невалидна
|
||||
InvalidAndLocked: >-
|
||||
Паролата е невалидна и потребителят е заключен, свържете се с вашия
|
||||
администратор.
|
||||
UsernameOrPassword:
|
||||
Invalid: Потребителското име или паролата са невалидни
|
||||
PasswordComplexityPolicy:
|
||||
NotFound: Политиката за парола не е намерена
|
||||
MinLength: Паролата е твърде кратка
|
||||
HasLower: Паролата трябва да съдържа малка буква
|
||||
HasUpper: Паролата трябва да съдържа горна буква
|
||||
HasNumber: Паролата трябва да съдържа число
|
||||
HasSymbol: Паролата трябва да съдържа символ
|
||||
Code:
|
||||
Expired: Кодът е изтекъл
|
||||
Invalid: Кодът е невалиден
|
||||
Empty: Кодът е празен
|
||||
CryptoCodeNil: Крипто кодът е нула
|
||||
NotFound: Не може да се намери код
|
||||
GeneratorAlgNotSupported: Неподдържан генераторен алгоритъм
|
||||
EmailVerify:
|
||||
UserIDEmpty: UserID е празен
|
||||
ExternalData:
|
||||
CouldNotRead: Външните данни не могат да бъдат прочетени правилно
|
||||
MFA:
|
||||
NoProviders: Няма налични многофакторни доставчици
|
||||
OTP:
|
||||
AlreadyReady: Многофакторният OTP (OneTimePassword) вече е настроен
|
||||
NotExisting: Многофакторният OTP (OneTimePassword) не съществува
|
||||
InvalidCode: Невалиден код
|
||||
NotReady: Многофакторният OTP (OneTimePassword) не е готов
|
||||
Locked: Потребителят е заключен
|
||||
SomethingWentWrong: Нещо се обърка
|
||||
NotActive: Потребителят не е активен
|
||||
ExternalIDP:
|
||||
IDPTypeNotImplemented: Типът IDP не е внедрен
|
||||
NotAllowed: Външен доставчик на вход не е разрешен
|
||||
IDPConfigIDEmpty: Идентификационният номер на доставчика е празен
|
||||
ExternalUserIDEmpty: ID на външен потребител е празен
|
||||
UserDisplayNameEmpty: Екранното име на потребителя е празно
|
||||
NoExternalUserData: Не са получени външни потребителски данни
|
||||
CreationNotAllowed: Създаването на нов потребител не е разрешено на този доставчик
|
||||
LinkingNotAllowed: Свързването на потребител не е разрешено на този доставчик
|
||||
GrantRequired: 'Влизането не е възможно. '
|
||||
ProjectRequired: 'Влизането не е възможно. '
|
||||
IdentityProvider:
|
||||
InvalidConfig: Конфигурацията на доставчика на самоличност е невалидна
|
||||
IAM:
|
||||
LockoutPolicy:
|
||||
NotExisting: Политиката за блокиране не съществува
|
||||
Org:
|
||||
LoginPolicy:
|
||||
RegistrationNotAllowed: Регистрацията не е разрешена
|
||||
DeviceAuth:
|
||||
NotExisting: Потребителският код не съществува
|
||||
optional: (по избор)
|
@ -222,6 +222,7 @@ RegistrationUser:
|
||||
Polish: Polski
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
Bulgarian: Български
|
||||
GenderLabel: Geschlecht
|
||||
Female: weiblich
|
||||
Male: männlich
|
||||
|
@ -316,7 +316,7 @@ ExternalNotFound:
|
||||
Polish: Polski
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
|
||||
Bulgarian: Български
|
||||
DeviceAuth:
|
||||
Title: Device Authorization
|
||||
UserCode:
|
||||
|
@ -222,6 +222,7 @@ RegistrationUser:
|
||||
Polish: Polski
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
Bulgarian: Български
|
||||
GenderLabel: Género
|
||||
Female: Mujer
|
||||
Male: Hombre
|
||||
|
@ -222,6 +222,7 @@ RegistrationUser:
|
||||
Polish: Polski
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
Bulgarian: Български
|
||||
GenderLabel: Genre
|
||||
Female: Femme
|
||||
Male: Homme
|
||||
|
@ -222,6 +222,7 @@ RegistrationUser:
|
||||
Polish: Polski
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
Bulgarian: Български
|
||||
GenderLabel: Genere
|
||||
Female: Femminile
|
||||
Male: Maschile
|
||||
|
@ -214,6 +214,7 @@ RegistrationUser:
|
||||
Polish: Polski
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
Bulgarian: Български
|
||||
GenderLabel: 性別
|
||||
Female: 女性
|
||||
Male: 男性
|
||||
|
@ -222,6 +222,7 @@ RegistrationUser:
|
||||
Polish: Polski
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
Bulgarian: Български
|
||||
GenderLabel: Płeć
|
||||
Female: Kobieta
|
||||
Male: Mężczyzna
|
||||
|
@ -222,6 +222,7 @@ RegistrationUser:
|
||||
Polish: Polski
|
||||
Japanese: 日本語
|
||||
Spanish: Español
|
||||
Bulgarian: Български
|
||||
GenderLabel: 性别
|
||||
Female: 女性
|
||||
Male: 男性
|
||||
|
@ -76,6 +76,8 @@
|
||||
</option>
|
||||
<option value="zh" id="zh" {{if (selectedLanguage "zh")}} selected {{end}}>{{t "ExternalNotFound.Chinese"}}
|
||||
</option>
|
||||
<option value="bg" id="bg" {{if (selectedLanguage "bg")}} selected {{end}}>{{t "ExternalNotFound.Bulgarian"}}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
59
internal/notification/static/i18n/bg.yaml
Normal file
59
internal/notification/static/i18n/bg.yaml
Normal file
@ -0,0 +1,59 @@
|
||||
InitCode:
|
||||
Title: ZITADEL - Инициализиране на потребител
|
||||
PreHeader: Инициализиране на потребителя
|
||||
Subject: Инициализиране на потребителя
|
||||
Greeting: 'Здравейте {{.DisplayName}},'
|
||||
Text: >-
|
||||
Този потребител е създаден в ZITADEL. {{.PreferredLoginName}} за да
|
||||
влезете. {{.Code}}) Ако не сте поискали този имейл, моля, игнорирайте го.
|
||||
ButtonText: Завършете инициализацията
|
||||
PasswordReset:
|
||||
Title: ZITADEL - Нулиране на парола
|
||||
PreHeader: Нулирайте паролата
|
||||
Subject: Нулирайте паролата
|
||||
Greeting: 'Здравейте {{.DisplayName}},'
|
||||
Text: >-
|
||||
Получихме заявка за повторно задаване на парола. {{.Code}}) Ако не сте
|
||||
поискали този имейл, моля, игнорирайте го.
|
||||
ButtonText: Нулирайте паролата
|
||||
VerifyEmail:
|
||||
Title: ZITADEL - Потвърдете имейл
|
||||
PreHeader: Потвърди Имейл
|
||||
Subject: Потвърди Имейл
|
||||
Greeting: 'Здравейте {{.DisplayName}},'
|
||||
Text: >-
|
||||
Добавен е нов имейл. {{.Code}}) Ако не сте добавили нов имейл, моля,
|
||||
игнорирайте този имейл.
|
||||
ButtonText: Потвърди Имейл
|
||||
VerifyPhone:
|
||||
Title: ZITADEL - Потвърдете телефона
|
||||
PreHeader: Потвърдете телефона
|
||||
Subject: Потвърдете телефона
|
||||
Greeting: 'Здравейте {{.DisplayName}},'
|
||||
Text: 'Добавен е нов телефонен номер. {{.Code}}'
|
||||
ButtonText: Потвърдете телефона
|
||||
DomainClaimed:
|
||||
Title: ZITADEL - Домейнът е заявен
|
||||
PreHeader: Промяна на имейл/потребителско име
|
||||
Subject: Домейнът е заявен
|
||||
Greeting: 'Здравейте {{.DisplayName}},'
|
||||
Text: >-
|
||||
Домейнът {{.Domain}} е заявено от организация. {{.Username}} не е част от
|
||||
тази организация. {{.TempUsername}}) за това влизане.
|
||||
ButtonText: Влизам
|
||||
PasswordlessRegistration:
|
||||
Title: ZITADEL - Добавете вход без парола
|
||||
PreHeader: Добавете вход без парола
|
||||
Subject: Добавете вход без парола
|
||||
Greeting: 'Здравейте {{.DisplayName}},'
|
||||
Text: 'Получихме заявка за добавяне на токен за влизане без парола. '
|
||||
ButtonText: Добавете вход без парола
|
||||
PasswordChange:
|
||||
Title: ZITADEL - Паролата на потребителя е променена
|
||||
PreHeader: Промяна на паролата
|
||||
Subject: Паролата на потребителя е променена
|
||||
Greeting: 'Здравейте {{.DisplayName}},'
|
||||
Text: >-
|
||||
Паролата на вашия потребител е променена, ако тази промяна не е направена от
|
||||
вас, моля, незабавно нулирайте паролата си.
|
||||
ButtonText: Влизам
|
1238
internal/static/i18n/bg.yaml
Normal file
1238
internal/static/i18n/bg.yaml
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user