2009-12-28 4 views
0

Comment puis-je définir la langue de dault d'un projet WebOs? La méthode standard d'ajout de l'internationalisation dans WebOS consiste à utiliser la fonction $ L(), où je peux définir une clé pour la chaîne traduite. Mais si la langue actuelle n'est pas spécifiée dans le projet, WebOS affiche la clé de l'utilisateur. Comment puis-je arrêter ce comportement et définir une langue par défaut, qui sera prise à la place de la clé. PS: Je pense que la manière Palm de prendre des phrases du monde réel n'est pas un bon moyen de programmation.Comment définir la langue par défaut dans WebOs

Mauvais exemple: $L("This should be not a real world sentence!!")
Meilleur exemple: $L("key.subKey")

+0

Pour des informations, "vraies phrases du monde" est la méthodologie utilisée par GNU gettext. http://en.wikipedia.org/wiki/GNU_gettext –

Répondre

1

Vous pouvez utiliser une paire valeur clé pour résoudre ce problème (du Palm documentation):

Si la chaîne d'origine ne convient pas que une clé, la fonction $ L() peut être appelée avec une clé explicite:

$L("value":"Done", "key": "done_key"); 

À l'exécution, Le résultat de l'appel à $ L() est la traduction de la chaîne passée en valeur. Les traductions "vivent" dans le fichier /resources/locale/strings.json.

Exemple: contenu du fichier app_name/ressources/es_us/strings.json:

{

"My text here": "Mi texto aquí", 
"done_key": "Listo", 
"Some other string": "Some other string's translation" 

}

+0

Ce n'est pas tout à fait la solution que j'aimerais voir. Comme la documentation indique que cet exemple est utilisé si la chaîne d'origine n'est pas appropriée en tant que clé, mais pas en tant que solution de repli si la clé n'est pas spécifiée dans les ressources. Sur iPhone, vous pouvez définir une langue par défaut qui est utilisée si la clé n'est pas spécifiée dans le fichier de ressources linguistiques actuel et uniquement si cette solution de repli échoue, la clé est affichée dans l'application. – AlexVogel

+0

Cela pourrait bien être comment cela fonctionne (je ne sais pas). Si votre chaîne strings.json n'a pas la chaîne que vous avez localisée, n'utilise-t-elle pas celle que vous avez mise dans $ L()? Vous pouvez donc utiliser $ L avec une valeur-clé, et si la clé existe dans votre fichier strings.json, la version localisée est utilisée, et sinon, la valeur que vous avez spécifiée est utilisée. – etlovett

Questions connexes