ngx-translate 中的地区或国家 (Angular)
Region or country in ngx-translate (Angular)
我昨天和今天都搜索过,但没有找到。也许我只是想念它。如何在美国、英国和澳大利亚获得不同的英语翻译?
我不确定这方面的术语是否称为地区、国家或地区。 Locale 通常意味着语言和区域在一起,但 ngx-translate 似乎并非如此。
编辑:
我能够在 getTranslation() 调用中使用区域信息来定向到正确的翻译文件。由于 javascript/angular 没有提供区域,我只能通过检查网站的域名来完成此操作(我有不同国家/地区的不同域名)。没有不同的域名,我不知道如何确定region/country。
在您的模块中导入翻译:
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());
}
所有语言环境列表:
List of All Locales and Their Short Codes?
我昨天和今天都搜索过,但没有找到。也许我只是想念它。如何在美国、英国和澳大利亚获得不同的英语翻译?
我不确定这方面的术语是否称为地区、国家或地区。 Locale 通常意味着语言和区域在一起,但 ngx-translate 似乎并非如此。
编辑:
我能够在 getTranslation() 调用中使用区域信息来定向到正确的翻译文件。由于 javascript/angular 没有提供区域,我只能通过检查网站的域名来完成此操作(我有不同国家/地区的不同域名)。没有不同的域名,我不知道如何确定region/country。
在您的模块中导入翻译:
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());
}
所有语言环境列表: List of All Locales and Their Short Codes?