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