我一直在研究Angular(而非AngularJS)如何接近本地化,似乎所有人都围绕着提供翻译服务来为您提供翻译文本。它看起来比我实际需要的要多得多。我正在编写一个网站,该网站将提供英语和西班牙语的仪表板,我所需要的只是一项服务,显示我们已经用一种语言或另一种语言翻译的文本,具体取决于用户选择的内容。我是否仍然需要使用相同的方法,只是跳过翻译服务部分,或者你们知道另一个只关注切换语言的图书馆吗?
我是Angular的新手(我来自.NET世界 - 本地化的管理方式略有不同),所以我们非常感谢任何帮助。
感谢。
答案 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>
有关详细信息,请查看他们的页面,它已经很好地记录了。