角度定位:只需切换语言,无需翻译

时间:2017-12-04 17:34:44

标签: angular internationalization

我一直在研究Angular(而非AngularJS)如何接近本地化,似乎所有人都围绕着提供翻译服务来为您提供翻译文本。它看起来比我实际需要的要多得多。我正在编写一个网站,该网站将提供英语和西班牙语的仪表板,我所需要的只是一项服务,显示我们已经用一种语言或另一种语言翻译的文本,具体取决于用户选择的内容。我是否仍然需要使用相同的方法,只是跳过翻译服务部分,或者你们知道另一个只关注切换语言的图书馆吗?

我是Angular的新手(我来自.NET世界 - 本地化的管理方式略有不同),所以我们非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以查看ngx-translate

它基于经典的原始键值对,可以通过翻译文件或其他自我实现的加载方法(如对文件的http调用)提供(如果您不想提供翻译文件你的应用)。该服务通常使用默认语言和后备语言启动。您可以通过编程方式切换语言,然后服务将尝试加载另一个输入文件(或者您为实现某种语言的翻译而实现的任何内容)。这是启动和切换语言的一个例子。

constructor(private translate: TranslateService) {
    // this language will be used as a fallback when a translation isn't found in the current language
    this.translate.setDefaultLang('en');

     // the lang to use, if the lang isn't available, it will use the current loader to get them
    this.translate.use('en');
}

switchLanguage(language:string) {
    // switch to another language
    this.translate.use(language);
}

翻译值可以通过多种方式绑定到前端,有些可以帮助您甚至不必在更改语言时重新加载任何内容,它会自动切换所有值,但它们的使用受到限制。其他方式可能需要重新加载当前显示的组件。

这是一个无需重新加载即可运行的示例。

<!-- translation value with the key "hello" in the currently set language -->
<div translate>hello</div>

有关详细信息,请查看他们的页面,它已经很好地记录了。