¿Cómo añado una nueva cadena a un archivo .po o .pot?
Tengo un archivo .pot que vino con mi tema de WordPress. Ahora quiero añadir cadenas a él, que no estaban en el tema original. ¿Cómo lo hago? ¿Tengo que actualizar el archivo .pot? pero 1) ¿Cómo lo hago?, y 2) ¿Cómo me aseguro de que las cadenas que ya estaban traducidas no se borren? (Actualmente estoy usando Poedit y no veo una función para añadir una cadena).

Estoy usando http://wordpress.org/extend/plugins/codestyling-localization/ Te sugiero que le des una oportunidad :)

Aquí tienes un script de shell para generar archivos .pot automáticamente. Modifica los derechos de autor, etc. según tus necesidades:
#!/bin/sh
#
# Autor: Denis de Bernardy <http://www.mesoconcepts.com>
# Versión: 0.1
# Licencia GPL
#
# Creado por Ryan Boren
# Código posterior y parches de
# Kimmo Suominen (más) y Nikolay Bachiyski (menos)
# 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
# sustituye solo el AÑO en el mensaje de copyright (la 2ª línea)
sed -i '' -e '2s/YEAR/'`date +%Y`'/' "$pot_file"
# y la cereza del pastel - extrae la versión usando magia - 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"
Uso, asumiendo un sistema *nix (Mac o Linux):
- coloca lo anterior en ~/bin/gen_pot.sh y hazlo ejecutable
- asegúrate de que ~/bin esté en tu $PATH
- en wp-content/themes, ejecuta gen_pot.sh tutema
- o desde el directorio de tu tema, ejecuta gen_pot.sh
- generará el archivo .pot automáticamente...

Aquí hay una buena idea. Con iCanLocalize, puedes crear un archivo .po
automáticamente.
Este generador escaneará archivos PHP y creará archivos .po, que se utilizan para localización. Extraerá todas las cadenas envueltas en llamadas
__("txt", "dominio")
y_e("txt", "dominio")
.Las cadenas pueden estar entre comillas dobles (") o simples (') y con cualquier codificación de caracteres.

Si tienes WP-CLI instalado (interfaz de línea de comandos para WordPress), esto se puede lograr con el siguiente comando:
wp i18n make-pot --merge source_dir target.pot

Bienvenido a WPSE y gracias por tomarte el tiempo de responder. Dicho esto, no estoy seguro de que esto responda a las preguntas. ¿Podrías por favor añadir un poco más de contexto o explicar cómo esta respuesta sería una respuesta apropiada?
