本篇文章为大家展示了怎么在角中实现多语言配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
角的国际化方案,采用ngx-translate来实现。
安装模块:
npm install @ngx-translate/core ——保存
在根模块中导入:
//, other 模块 import {TranslateModule},得到& # 39;@ngx-translate/核心# 39;; @NgModule ({ 声明:,才能 ,,,AppComponent, ,,, 进口:,才能 ,,,//other 模块 ,,,TranslateModule.forRoot (), ,,, 供应商:,才能 ,,, ,,引导:[AppComponent] }) export class  AppModule { }
我们希望可以在一个固定的文件里面配置对应的翻译文件,然后在每个用到的组件里面使用它,随意我们需要借助TranslateHttpLoader来加载翻译文件,首先安装TranslateHttpLoader:
npm install @ngx-translate/http-loader ——保存
翻译文件可以放在/资产/i18n/(lang)。json中,朗代表使用的语言文件名称,然后我们可以在跟组件中添加配置对应的加载项:
//, other 模块 import {TranslateModule},得到& # 39;@ngx-translate/核心# 39;;//,自定义加载方法 export function  HttpLoaderFactory (http: HttpClient), { return 才能;new  TranslateHttpLoader (http、& # 39;。/资产/i18n/& # 39;,, & # 39; . json ? & # 39;); } @NgModule ({ 声明:,才能 ,,,AppComponent, ,,, 进口:,才能 ,,,//other 模块 ,,,TranslateModule.forRoot ({ ,,,,,装载机:,{ ,,,,,,,提供:,TranslateLoader, ,,,,,,,useFactory:, HttpLoaderFactory, ,,,,,,,deps:, (HttpClient), ,,,,,} ,,,}), ,,, 供应商:,才能 ,,, ,,引导:[AppComponent] }) export class  AppModule { }
然后我们在翻译文件中配置一个简单的示例:
//,/断言il8n/en.json { ,“Hello":“你好,,{{value}}“, ,“Introduce": { “Name"才能:,“my name is ,{{名称}}!” “Today"才能:,“today is {{日期}},,以及你time is {{时间}}, ,} }
应用的时候我们可以使用点语法,例如:介绍。名字。
好了,定义好之后再来看如何使用。我们可以使用服务或管道或指令的方式来达到显示语言的效果。在使用之前,我们需要在应用中初始化TranslateService:
import {, Component },得到& # 39;@angular/核心# 39;; import {TranslateService},得到& # 39;@ngx-translate/核心# 39;; @ component ({ ,选择器:& # 39;app-root& # 39; ,templateUrl: & # 39;。/app.component.html& # 39; ,styleUrls: [& # 39;。/app.component.less& # 39;】 }) export class  AppComponent { ,构造函数( ,,public 翻译:,TranslateService, ,){ ,,this.translate.setDefaultLang (& # 39; en # 39;); ,,this.translate.use (& # 39; en # 39;); ,} }
我倾向于在跟组件的构造里面初始化TranslateService,因为一个系统的翻译是统一的,在开始应用的时候就需要设置好默认语言。这里使用translate.setDefaultLang (& # 39; en # 39;)来设置默认语言为英文。然后使用translate.user (& # 39; en # 39;)手动选择使用英文。在切换语言的时候,我们使用translate.user([朗])来设置启用哪个语言。
最后来使用翻译,有多种使用的方式来。看看。
<强>使用方式强> <强>
强>
<强>使用服务的方式强>
在运行的时候,会先发起个请求通过Http获取翻译文件,通过可观测的方式应用参数上去,然后获得翻译的内容。
//, app.compent.ts this.translate.get ( & # 39;才能Introduce.Name& # 39; {才能名称:,& # 39;贾维斯# 39;} ).subscribe ((res:字符串),=祝辞,{ console.log才能(& # 39;res # 39;,, res);,//, res my name is ,贾维斯。 }); this.translate.get ( & # 39;才能Introduce.Today& # 39; {才能 ,,,日期:,new 日期().getDate (), ,,,时间:,new 日期().getTime () ,,}, ).subscribe ((res:字符串),=祝辞,{ console.log才能(& # 39;res # 39;,, res);,//, res today is 22岁,以及你time is 1534937370461 });
<强>使用管的方式强>
& lt; div>{{& # 39;你好# 39;,|,翻译:,param怎么在角中实现多语言配置