J'ai un fichier .pot fourni avec mon thème Wordpress. Maintenant, je veux ajouter des chaînes, qui ne figuraient pas dans le thème initial. Comment je fais ça? Dois-je mettre à jour le fichier .pot? mais 1) Comment puis-je faire cela, et 2) Comment puis-je m'assurer que les chaînes traduites ne seront pas effacées? (J'utilise actuellement Poedit et je ne vois pas de fonctionnalité permettant d'ajouter une chaîne.)
J'utilise http://wordpress.org/extend/plugins/codestyling-localization/ Je lui donne une chance de suggérer :)
Voici un script Shell pour générer automatiquement des fichiers pot. Modifiez le copyright, etc. pour répondre à vos besoins:
#!/bin/sh
#
# Author: Denis de Bernardy <http://www.mesoconcepts.com>
# Version: 0.1
# GPL licensed
#
# Created by Ryan Boren
# Later code and patches from
# Kimmo Suominen (more) and Nikolay Bachiyski (less)
# Denis de Bernardy
cwd=`pwd`
if [ -n "$1" ];
then
cd "$1" || exit 1
slug=`basename $1`
dir=$cwd/$slug
else
dir=$cwd
slug=`basename $cwd`
fi
pot_file=$slug.pot
cp /dev/null "$dir/$pot_file"
find . -name '*.php' -print \
| sed -e 's,^\./,,' \
| sort \
| xargs xgettext \
--keyword=__ \
--keyword=_e \
--keyword=_c \
--keyword=__ngettext:1,2 \
--keyword=_n:1,2 \
--default-domain=$slug \
--language=php \
--output="$dir/$pot_file" \
--join-existing \
--from-code utf-8 \
--copyright-holder='Mesoconcepts <http://www.mesoconcepts.com>' \
--msgid-bugs-address=https://tickets.semiologic.com
# sub only the YEAR in the copyright message (the 2nd line)
sed -i '' -e '2s/YEAR/'`date +%Y`'/' "$pot_file"
# and the cherry of the pie - extract version using magic - versoextracanus!~
if [ -f $dir/style.css ];
then
name=`fgrep -i 'Theme Name:' $dir/style.css`
version=`fgrep -i 'Version:' $dir/style.css`
Elif [ -f $dir/$slug.php ];
then
#statements
name=`fgrep -i 'Plugin Name:' $dir/$slug.php`
version=`fgrep -i 'Version:' $dir/$slug.php`
else
name=$slug
version=
fi
name=${name##*:}
name=${name##[[:space:]]}
version=${version##*:}
version=${version##[[:space:]]}
version=${version%%[[:space:]]*}
if [ "$name" != '' ];
then
sed -i '' -e "1s/^# SOME DESCRIPTIVE TITLE/# $name pot file/" "$pot_file"
sed -i '' -e "s/\(^#.*\)PACKAGE\(.*\)/\1$name\2/g" "$pot_file"
fi
if [ "$version" != '' ];
then
sed -i '' -e "s/\(Project-Id-Version: \)PACKAGE VERSION/\1$version/" "$pot_file"
fi
cd "$cwd"
Utilisation, en supposant une boîte * nix (Mac ou Linux):
Voici une bonne idée. Avec iCanLocalize , vous pouvez créer un fichier .po
automatiquement.
Ce générateur analyse les fichiers PHP et crée des fichiers .po utilisés pour la localisation. Il extraira toutes les chaînes enveloppées dans les appels
__("txt", "domain")
et_e("txt", "domain")
.Les chaînes peuvent être placées entre guillemets doubles (") ou simples (') et avec tout codage de caractères.