用角建立多语言和多方向网站的最佳方法是什么?

时间:2018-08-02 10:03:24

标签: angular6 multilingual

因此,我将建立一个新的新网站,该网站必须支持英语,法语和希伯来语,请注意,希伯来语是RTL语言。

我决定使用Angular 6构建网站。 我正在考虑构建两个模板,每个方向一个模板(LTR和RTL),然后分别向模板中填充所选语言的内容。

我想知道是否还有其他足够的方法来构建支持多方向的Angular 6网站? 我已经阅读过有关i18n的文章,但我认为这不是正确的解决方案,因为它没有提供方向解决方案。

谢谢!

2 个答案:

答案 0 :(得分:6)

我已经使用服务和管道制作了这个示例,它可以完美地工作。 您需要删除应用程序上的以下内容:我已评论。

import * as en from './i18n/en.json';
import * as de from './i18n/de.json';
import * as ar from './i18n/ar.json';

const langs = { ar: ar, en: en, de: de };

并激活此行以动态导入json文件:

this.languagesObject = require(`./i18n/${value}.json`);

演示:https://stackblitz.com/edit/angular-translator-using-service-and-pipe

答案 1 :(得分:0)

以防万一有人在寻找库来管理Angular2 +中的多语言。 您可以使用这个摇摇欲坠的库:https://github.com/ngx-translate/core

通过以下方式将其添加到您的项目中:

npm install @ngx-translate/core --save

然后将其导入您的AppModule:

import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {TranslateModule} from '@ngx-translate/core';

@NgModule({
    imports: [
        BrowserModule,
        TranslateModule.forRoot()
    ],
    bootstrap: [AppComponent]
})
export class AppModule { }

然后,一个好的做法是将其导出到SharedModule中,这样您就不必将其导入应用程序中的每个模块中(只需导入SharedModule):

@NgModule({
    exports: [
        CommonModule,
        TranslateModule
    ]
})
export class SharedModule { }

参考:https://github.com/ngx-translate/core

希望有帮助!