2011-10-12 4 views
20

Je me demandais si quelqu'un avait trouvé un bon moyen de valider les tableaux de chaînes dans le répertoire res/values.Vérification des paramètres régionaux de l'ensemble de chaînes de caractères Android

-je créer par code en utilisant les paramètres régionaux par défaut et peut avoir une ressource de quelque chose comme

<string-array name="array_example1"> 
    <item>One</item> 
    <item>Two</item> 
    <item>Three</item> 
</string-array> 

Puis, quand les traducteurs pour l'application font leurs traductions, ils créent également une chaîne de tableau. Occasionnellement, si une traduction est en retard, un autre des fichiers de ressources peut avoir moins d'entrées dans le tableau (peut-être seulement "Un" et "Deux" de l'exemple ci-dessus)

Y at-il un moyen facile de valider s'il y a un décalage dans le nombre d'entrées? Avoir une incompatibilité peut causer des problèmes dans le code, mais comme l'application a 10 de chaînes de caractères dans plusieurs langues de vérification, ils correspondent tous prend du temps.

Quelle approche ont les autres pour cela?

+1

Peut-être créer un petit script qui analyse les fichiers et les assortit? –

+0

aucun que je sache. un outil de comparaison de XML personnalisé, peut-être? – njzk2

Répondre

41

J'ai trouvé un meilleur moyen d'arrêter les plantages. Je ne l'avais pas réalisé que des tableaux de chaînes-pourraient référencer des ressources de chaîne de la manière suivante:

<string-array name="array_example1"> 
    <item>@string/resOne</item> 
    <item>@string/resTwo</item> 
    <item>@string/resThree</item> 
</string-array> 

Puis ajouter

<string name="resOne">One</string> 
<string name="resTwo">Two</string> 
<string name="resThree">Three</string> 

Par conséquent, cette façon, s'il y a un décalage de la langue par défaut juste se montre pour cette option et arrêter les plantages dus à des listes de tailles différentes

+0

Solution parfaite! Je pensais que c'était possible, je ne connaissais pas la syntaxe :) –

+0

merci pour le partage. – Sathesh

+0

Je recommande également de mettre l'attribut 'translatable =" false "' dans l'élément ''. De cette façon vous serez averti par Lint s'il existe ce tableau dans un autre fichier de langue. – Robyer

Questions connexes