我昨天和今天都进行了搜索,但是没有运气。也许我只是想念它。在美国,英国和澳大利亚,我如何对英语进行不同的翻译?
我不确定是否将其称为地区,国家或地区。语言环境通常通常是指语言和区域,但是ngx-translate似乎并非如此。
编辑:
我能够在getTranslation()调用中使用区域信息来定向到正确的翻译文件。由于该区域不是由javascript / angular提供的,因此只能通过检查网站的域名来实现此目的(我在不同国家/地区拥有不同的域名)。没有不同的域名,我不知道如何确定地区/国家。
答案 0 :(得分:1)
在您的模块中导入翻译:
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?