Регион или страна в ngx-translate (угловая) - PullRequest
0 голосов
/ 10 июля 2019

Я искал вчера и сегодня, но не повезло. Может быть, я просто скучаю по этому. Как мне сделать разные переводы для английского в США, Великобритании и Австралии?

Я не уверен, что терминология для этого будет называться регион, страна или язык. Локаль обычно означает язык и регион вместе, но это не относится к ngx-translate.

EDIT:

Мне удалось использовать информацию о регионе в вызове getTranslation (), чтобы указать правильный файл перевода. Так как регион не был предоставлен javascript / angular, я мог сделать это только путем проверки доменного имени для веб-сайта (у меня разные доменные имена для разных стран). Без разных доменных имен я не знаю, как определить регион / страну.

1 Ответ

1 голос
/ 10 июля 2019

В вашем модуле импортируйте переводы:

TranslateModule.forRoot({
      loader: {
        provide: CustomTranslateLoader,
      }
    }),

CustomTranslateLoader, просто замените "ca, en, es" на нужные вам языки

import { TranslateLoader } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import es from '../../locales/es/translation.json';
import en from '../../locales/en/translation.json';
import ca from '../../locales/ca/translation.json';

export class CustomTranslateLoader implements TranslateLoader {
    public getTranslation(lang: string): Observable<any> {
        return Observable.create(observer => {
            switch (lang) {
                case 'es':
                    observer.next(es);
                    break;
                case 'en':
                    observer.next(en);
                    break;
                case 'ca':
                    observer.next(ca);
                    break;
            }

            observer.complete();
        });
    }
}

и, наконец, на вашем AppComponent установите один по умолчанию и попробуйте использовать тот, который пользователь имеет в своем браузере:

constructor(
    private translate: TranslateService,
  ) {
    translate.setDefaultLang('es');
    translate.use(translate.getBrowserLang());
  }

список всех локалей: Список всех локалей и их короткие коды?

...