0

我刚开始帮助制作了一个由cordova &构建的跨平台移动应用程序。我正在寻找一种提供内容的方式,即以多种语言提供菜单标签,类别名称等内容。当然,我可以简单地将它们全部放入一些js变量并动态设置它们,但我想知道是否有更优雅的解决方案。科尔多瓦的多语言内容

对不起,如果有一些明显的答案,当我搜索它时,我只发现平台(例如android)的具体答案,但显然这应该是一个通用的方法。

干杯&谢谢!

+0

“我可以简单地将它们全部放入一些js变量并动态设置它们”这有什么问题? – Eric

回答

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"); 

好运气,并阅读文档,如果你没有理解我说的一切!

+0

将英文等完整应用程序的语言转换为印地语或任何其他语言的方法? – Anuj

+0

@AnujGupta你所有的应用程序的字符串必须放在一个translations.js文件,然后,你可以使用我提供的解决方案 –

+0

是否有任何其他解决方案,如谷歌翻译完成翻译因为我不能把字符串的动态数据。怎么可能 – Anuj