翻译 Angular 2 使用 ngx-translate?
Translation Angular 2 using ngx-translate?
我已按照说明进行所有配置和设置。
app.module.ts
import { Http } from '@angular/http';
import {TranslateModule, TranslateStaticLoader, TranslateLoader, TranslateService } from 'ng2-translate';
imports: [
BrowserModule,
HttpModule,
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: (http: Http) => new TranslateStaticLoader(http, '/assets/i18n', '.json'),
deps: [Http]
})
]
分量:
import {TranslateService,TranslatePipe } from 'ng2-translate';
constructor( private activateRoute: ActivatedRoute, public translate: TranslateService) {
translate.addLangs(['en']);
translate.setDefaultLang('en');
}
和查看组件:
{{ 'Intro' | translate }}
这个库对我不起作用,它总是显示单词 Intro
的键而不是值翻译。
控制台中没有任何错误。为什么 ngx-translate
不起作用或我做错了什么。
查看您的代码并不能真正判断出什么不起作用。我注意到的一个区别是,我使用 ngx-translate
doc 提供的 HttpLoaderFactory
进行设置。我将提供我的完整设置,如果它有助于检测任何问题,您可以将其与您的代码进行比较:)
设置:
npm install @ngx-translate/core --save
npm install @ngx-translate/http-loader --save
app.module.ts:
// i18n library
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
@NgModule({
...
imports: [
...
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [Http]
}
})
]
src > assets > i18n > en.json:
{
"Intro" : "This is intro!"
}
component.ts:
import { TranslateService } from '@ngx-translate/core';
export class Component{
constructor(translate: TranslateService){
this.translate.setDefaultLang('en');
}
}
component.html:
{{ 'Intro' | translate }}
如果您仍在使用 Angular <4.3,请使用来自 @angular/http 的 Http 和 http-loader@0.1.0。
所以运行
npm install @ngx-translate/http-loader@0.1.0 --save
对我有用
我已按照说明进行所有配置和设置。
app.module.ts
import { Http } from '@angular/http';
import {TranslateModule, TranslateStaticLoader, TranslateLoader, TranslateService } from 'ng2-translate';
imports: [
BrowserModule,
HttpModule,
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: (http: Http) => new TranslateStaticLoader(http, '/assets/i18n', '.json'),
deps: [Http]
})
]
分量:
import {TranslateService,TranslatePipe } from 'ng2-translate';
constructor( private activateRoute: ActivatedRoute, public translate: TranslateService) {
translate.addLangs(['en']);
translate.setDefaultLang('en');
}
和查看组件:
{{ 'Intro' | translate }}
这个库对我不起作用,它总是显示单词 Intro
的键而不是值翻译。
控制台中没有任何错误。为什么 ngx-translate
不起作用或我做错了什么。
查看您的代码并不能真正判断出什么不起作用。我注意到的一个区别是,我使用 ngx-translate
doc 提供的 HttpLoaderFactory
进行设置。我将提供我的完整设置,如果它有助于检测任何问题,您可以将其与您的代码进行比较:)
设置:
npm install @ngx-translate/core --save
npm install @ngx-translate/http-loader --save
app.module.ts:
// i18n library
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
@NgModule({
...
imports: [
...
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [Http]
}
})
]
src > assets > i18n > en.json:
{
"Intro" : "This is intro!"
}
component.ts:
import { TranslateService } from '@ngx-translate/core';
export class Component{
constructor(translate: TranslateService){
this.translate.setDefaultLang('en');
}
}
component.html:
{{ 'Intro' | translate }}
如果您仍在使用 Angular <4.3,请使用来自 @angular/http 的 Http 和 http-loader@0.1.0。
所以运行
npm install @ngx-translate/http-loader@0.1.0 --save
对我有用