2010-12-14 16 views
2

J'ai une application qui a subi une chirurgie majeure et beaucoup de choses ont été modifiées.iphone - nettoyage de la Localizable.strings

Cette application a été et est localisée dans plusieurs langues.

Je suis sûr que certaines chaînes du fichier localizable.strings ne sont plus utilisées. Au moins 20% d'entre eux. Y at-il un moyen de vérifier quelles chaînes sont encore utilisées par les applications, afin que je puisse me débarrasser des chaînes inutiles de tous les fichiers de langue?

Merci.

Répondre

2

Vous pouvez:

Dump un nouveau Localizable.strings dans un répertoire temporaire avec

genstrings -o temporary.directory *.m

Puis déposez le côté droit du signe égal du fichier Localizable.strings pour faire la comparaison plus facile:

cat temporary.directory/Localizable.strings | awk -F"\=" '{print $1}' > Localizable_new.strings

Faites la même chose pour le « vieux "Localizable.strings (en supposant que vous avez une version anglaise):

cat en.lproj/Localizable.strings | awk -F"\=" '{print $1}' > Localizable_old.strings

Utilisez ensuite /Developer/Applications/Utilities/FileMerge pour comparer Localizable_old.strings avec Localizable_new.strings.

En fonction de la quantité de 20%, vous risquez de supprimer "rapidement" les lignes obsolètes. Je reconnais que cette procédure peut être fastidieuse et a beaucoup de place pour l'amélioration et, par exemple, elle ne peut pas traiter correctement les signes égaux dans les commentaires, mais peut-être que cela aide.

EDIT:

Je n'ai jamais été vraiment satisfait ci-dessus. À la recherche d'une solution plus facile à maintenir J'ai finalement arrêté d'utiliser NSLocalizedString et réfracté le code à utiliser NSLocalizedStringWithDefaultValue(<#key#>, <#tbl#>, <#bundle#>, <#val#>, <#comment#>)

Maintenant, je fais toutes les modifications à la localisation dans le code source, puis exécutez les chaînes. Genstrings écrasera les Localizable.strings, mais le champ '< # val #>' contiendra la chaîne que je veux dans Localizable.strings. Je n'ai pas besoin d'éditer Localizable.strings pour la langue d'origine. Plus de détails sont dans my Blog

+0

Merci. Je pense que cela aidera beaucoup !!!! – SpaceDog