Question

Je construis une version WebWorks d'une application Android qui est localisé en 39 langues.

À l'heure actuelle tous les fichiers sont en localisations xml de paires clé-valeur, un fichier par langue. Chaque fichier de langue a environ 400 lignes (environ 40k par fichier).

Les utilisateurs peuvent modifier la langue utilisée dans l'application.

Quelles sont les options en WebWorks pour résoudre ce genre de situation?

Je serais plus qu'heureux de convertir les fichiers de ressources dans un autre type de format pour rendre le travail une meilleure expérience sur la plate-forme.

Était-ce utile?

La solution

vous pouvez stocker chaque jeu de langage dans un fichier JavaScript que vous incluez la charge / au besoin. (Je l'ai converti les données XML à une « carte » car il est juste paires clé / valeur)

par exemple. (Juste IGNORE mes traductions ... Je viens de googlé, je ne suis nullement parle couramment l'espagnol)

//Spanish File "lang_spanish.js"
var translations = {
  "lose_a_turn":     "pierde un turno",
  "do_not_pass_go":  "huele como un camello",
  "take_a_card":     "tener una tarjeta de",
  "you_win_the_game":"sin motocicletas en la biblioteca",
  "you_can_not_move":"desbordamiento de la pila puede ser un lugar divertido"
};

Dans votre <head> vous pouvez alors une balise de script générique, que vous venez de changer la source au besoin.

par exemple.

<script id="langFile" src="js/lang_english.js"></script>

Si vous voulez une autre langue, supprimez ce script à partir du DOM et ajoutez votre nouveau. par exemple.

function switchLang(langName){
    var headTag = document.getElementsByTagName('head')[0];
    var scriptFile = document.getElementById('langFile');
    headTag.removeChild(scriptFile);
    var newScript = document.createElement('script');
      newScript.id = 'langFile';
      newScript.src = 'js/lang_' + langName + '.js';
    headTag.appendChild(newScript);
}
//call with:
switchLang('spanish');

L'alternative serait de charger les 39 langues par défaut ... mais cela semble considérer surpuissance plus que jamais se veulent 1 ou 2.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top