2017-10-15 3 views
1

Bonjour Je veux faire de mon application mobile cordova comme multilingue. J'ai deux fichiers js {lang.en.js et lang.tr.js} dans le dossier des ressources. dans les fichiers il y a un objet chaîne ci-dessous pour les langues.Multilingue Soutien Cordova App

var strings = { 
    app_name: "Capser", 
    facebook_login_btn: "Login with Facebook", 
    gmail_login_btn: "Login with Gmail" 
} 

Maintenant, je veux choisir la langue dépend de la langue mobile. J'ai installé le plugin de globalisation et ai écrit la fonction ci-dessous.

function setLanguage() { 
    if (typeof (localStorage.language) === 'undefined') { 
     if (typeof (navigator.globalization) !== 'undefined') { 
      navigator.globalization.getPreferredLanguage(function (language) { 
       if (language.value.indexOf('en') != -1) 
        localStorage.language = 'en';     
       else 
        localStorage.language = 'tr'; 
      }, function() { 
       localStorage.language = 'tr'; 
      } 
      ); 
     } 
     else if (typeof (navigator.language) !== 'undefined') { 
      var language = navigator.language; 

      if (language.indexOf('en') != -1) 
       localStorage.language = 'en';   
      else 
       localStorage.language = 'tr'; 
     } 
     else { 
      localStorage.language = 'tr'; 
     } 
    } 
} 

dans index.js d'abord j'appelle cette fonction puis je choisis le fichier js.

setLanguage(); 
var languageScript = 'resources/lang.' + localStorage.language + '.js'; 

Mon problème commence ici. Je veux atteindre cet objet chaîne à partir du fichier.

$.getJSON(languageScript, function (data) { 
      console.log(data); 
     }); 

Je ai écrit ci-dessus, mais ne fonctionne pas. Comment puis-je obtenir des données à partir du fichier js.

Merci En tant que votre fichier cible à l'avance

Répondre

0

n'est pas un JSON, vous ne devriez pas utiliser la méthode getJSON. Mais si vous voulez importer ce fichier de langue, et supposer que les fichiers ne contiennent que des traductions, il est possible de faire de ces fichiers JSON purs et de les importer en utilisant $.getJSON comme décrit, et cela devrait fonctionner. Par exemple, lang.en.js doit être juste:

{ 
    app_name: "Capser", 
    facebook_login_btn: "Login with Facebook", 
    gmail_login_btn: "Login with Gmail" 
} 

Et puis vous pouvez charger ce fichier avec jQuery en utilisant $.getJSON et, dans son rappel, vous devriez obtenir des données de traduction.