我刚刚开始帮助开发一款使用cordova& amp;离子。我正在寻找一种方式来提供多种语言的内容,例如菜单标签,类别名称等。当然我可以简单地将它们全部放入一些js变量并动态设置它们,但我想知道是否有更优雅的解决方案。
很抱歉,如果有一些明显的答案,当我搜索它时,我只找到了平台(例如android)特定的答案,但显然这应该是一种通用的方法。
干杯&谢谢!
答案 0 :(得分:0)
要在cordova上使用多种语言,您应该在AngularJS中搜索过! 有一个名为" Translate"的函数,它在HTML中用作过滤器,在JS中用作函数。 以下是文档:https://angular-translate.github.io/docs/#/guide 基本上,你有这个例子:
navigator.globalization.getPreferredLanguage(function (language) {
var applanguage = (language.value).split("-")[0];
switch (applanguage) {
case 'fr':
appLanguage = 'fr';
break;
case 'de':
appLanguage = 'de';
break;
case 'en':
appLanguage = 'en';
break;
default:
appLanguage = 'fr';
break;
}
});
这是用于查找设备的语言,但是您必须在配置文件夹中放入translation.js文件。
以下是一个示例文件:
yourApp.config(['$translateProvider', function($translateProvider){
$translateProvider.translations('en', {
my_string1: 'Hello',
my_string2: 'Goodbye',
});
$translateProvider.translations('fr', {
my_string1: 'Bonjour',
my_string2: 'Au revoir',
});
最后,这是你如何应用它
在HTML中:
<p>{{my_string1 | translate}}</p>
在JS中:
$translate.instant("no_internet");
祝你好运,如果你不理解我所说的一切,请阅读文档!