2011-01-28 4 views
4

J'ai hérité d'un fichier sample.pot. Maintenant, j'ai ajouté de nouveaux messages dans a1.c et a2.cpp. Est-il possible pour moi d'utiliser xgettext et de sortir le contenu sur sample.pot au lieu d'en créer un nouveau? Par exemple: -xgettext - extrait des chaînes traduisibles et mise à jour .pot

xgettext -d sample -s -o sample.pot a1.c 
xgettext -d sample -s -o sample.pot a2.cpp 

Est-ce la méthode à privilégier pour mettre à jour le modèle de sorte que les anciens messages soient également conservés? L'autre question est de savoir comment distinguer les chaînes traduisibles des chaînes normales dans le code source. Je suppose que xgettext tirera toutes les chaînes du fichier de code source mentionné.

Ce serait bien si quelqu'un peut partager les bonnes approach..Thanks

+0

voir Peter Brett réponse: que le chemin! – neuro

Répondre

3

Est-ce que l'-j, l'option --join-existing (« join messages au fichier existant ») ne pas faire ce que vous avez besoin?

Notez que vous pouvez spécifier plusieurs fichiers d'entrée sur la ligne de commande.

xgettext -d sample -s -j -o sample.pot a1.c a2.cpp 
+0

+1: que la façon de le faire: utiliser -j et $ {list_of_files_to_i18nize} – neuro

+0

Merci @Peter et @ neuro..C'était juste le drapeau que je cherchais. Apparemment, je l'ai confondu avec l'option de fusion. – confused

1

La façon la plus simple d'y parvenir est:

xgettext -o sample.pot -s a1.c a2.cpp sample.pot 

Vous n'avez pas besoin -j, --join-existing parce que xgettext accepte les fichiers .po et .pot sous forme de fichiers d'entrée réguliers. L'option -j, --join-existing est rarement utile. Conjointement avec -D, --directory, il a pour effet que le fichier de sortie sample.pot utilisé comme fichier d'entrée est et non recherché dans la liste des répertoires. Si vous utilisez -l c, vous avez besoin de -j, --join-existing car sample.pot serait sinon analysé en tant que fichier source C/C++.

Par ailleurs, -o sample.pot, --output=sample.pot a exactement le même effet que -d sample, --default-domain=sample. Vous pouvez en omettre un en toute sécurité.

Questions connexes