Как перевести страницу в Angular? например, с английского на арабский

#ngx-translate

#ngx-перевести

Вопрос:

Ответ №1:

вот так сервисы .. это работает

 loadTranslations(...args: Locale[]): void {
        const locales = [...args];

        locales.forEach(locale => {
            
        
            this.translate.setTranslation(locale.lang, locale.data, true);

            this.langIds.push(locale.lang);
        });

        // add new languages to the list
        this.translate.addLangs(this.langIds);
    }

    
    setLanguage(lang) {
        if (lang) {
            this.translate.use(this.translate.getDefaultLang());
            this.translate.use(lang);
            localStorage.setItem('language', lang);
        }
    }

    
    getSelectedLanguage(): any {
        return localStorage.getItem('language') || this.translate.getDefaultLang();
    }
  

и конструктор

 import { locale as arLang } from './i18n/ar';

import { locale as frLang } from './i18n/fr';

constructor(private translationService: TranslationService,
                             ) {
    
            // register translations
            this.translationService.loadTranslations(arLang,  frLang);
        }
  

Ответ №2:

Для локализации / интернационализации вашего приложения angular имеет i18n. Он обрабатывает весь статический текст вашего приложения и переводит с любой вашей локали. Для этого вам необходимо включить переведенный текст в равной степени в файл $Yourlocale.xlf.

Для некоторой справки:

Перевести дополнение i18n

  1. Добавление в шаблон
    • Добавить i18n тег : <div i18n>Some text</div>

    • Добавить i18n-x тег к атрибуту компонента :

      • <some-component i18n-titleProp="title" titleProp="some text""></some-component>
      • <input i18n-placeholder="placeholder"" placeholder="some text""></input>
  2. Добавление в ts-файл i18n-polyfill
    • Добавить i18n в конструктор класса : constructor(private i18n: I18n) {}

    • Добавить i18n тег к значению переменной :

      • any = [this.i18n('first value'), this.i18n('second value')]
      • some = this.i18n('some value')
  3. Создание файлов XLIFF translations
    • выполнить npm run i18n
  4. Смотрите файл перевода /locales/messages.xlf

    здесь вам нужно вручную ввести эквивалентный переведенный текст для перевода.