2009-03-05 7 views
0

Je travaille sur internationaliser une application iPhone, et j'utilise ibtool pour extraire la chaîne de mes fichiers xib afin qu'ils puissent être traduits par une maison de localisation comme ceci:Cocoa/iPhone: Comment empêcher ibtool de générer des chaînes non localisables dans un fichier xib?

ibtool --generate-strings-file BlahBlahView.strings English.lproj/BlahBlahView.xib 

Le problème est que le fichier .strings que je trouve avec contient tous les les chaînes contenues dans le xib quand je veux vraiment le sous-ensemble dont je me soucie réellement pour i18n. Existe-t-il une meilleure pratique pour gérer cela? Idéalement, j'aimerais pouvoir ajouter une sorte d'annotation dans le constructeur de l'interface pour dire soit "Ceci est localisable" ou "Ceci n'est pas localisable" et ibtool n'affiche que les chaînes localisables lorsque je l'exécute.

Merci!

Edit: OK, laissez-moi élargir les paramètres un peu. La solution n'a pas besoin d'utiliser uniquement ibtool. Ibtool + quelques données dans le xib + un script shell est très bien. Tant que ça marche!

Répondre

3

ibtool est extrêmement bavard dans sa chaîne de sortie et génère des fichiers-stirngs par id objet, au lieu de par chaîne source unique. Ce type de sortie est extrêmement utile lorsque vous essayez de recréer le générateur d'interface ou que vous avez besoin d'un contrôle étendu sur les objets de vos fichiers xib, mais moins lorsque vous voulez simplement localiser votre logiciel. Matteo at Digitalwaters.net a trouvé un moyen de convertir la sortie d'ibtool vers et depuis le format utilisé par nibtool, son prédécesseur, qui était moins puissant, mais beaucoup plus facile à utiliser pour la localisation. Plus d'info here.

Je re-purposed ses scripts pour simplifier la localisation de notre application Mac OS X, et ils fonctionnent bien pour moi. Bonne chance :)

+2

Le lien référencé n'est plus valide. Avez-vous une partie des informations mises en cache? –

1

Je pense que vous pouvez automatiser cela, mais il faudra quelques pas. Vous pouvez extraire des propriétés arbitraires de votre xib en utilisant ibtool, alors peut-être pourriez-vous définir la balise des éléments non localisables sur une valeur particulière (-1, par exemple), puis extraire les balises et les utiliser pour filtrer le fichier de chaînes et le supprimer les entrées indésirables.

vérifier la page de manuel pour ibtool, en particulier l'option -export.

0

ibtool ne pas entrées sortie pour les chaînes vides. Ainsi, par exemple, si vous laissez un texte UILabel vide, il ne sera pas inclus dans la sortie de ibtool --generate-strings-file. Vous pouvez ensuite définir le texte des éléments dans le contrôleur de vue.

Questions connexes