私のWordpressテーマに付属の.potファイルがあります。今私はそれに文字列を追加したいのですが、それはオリジナルのテーマにはありませんでした。それ、どうやったら出来るの? .potファイルを更新する必要がありますか?しかし、1)どうすればいいですか、2)翻訳された文字列が消去されないようにするにはどうすればよいですか? (私は現在 Poedit を使用していますが、文字列を追加する機能がありません。)
これはpotファイルを自動的に生成するためのシェルスクリプトです。あなたのニーズに合うように著作権などを修正してください。
#!/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"
使用法、* nixボックスを想定して(MacまたはLinux):
これは良い考えです。 iCanLocalize を使用すると、.po
ファイルを自動的に作成できます。
このジェネレータはPHPファイルをスキャンし、ローカライズに使用される.poファイルを作成します。
__("txt", "domain")
と_e("txt", "domain")
の呼び出しに囲まれたすべての文字列を抽出します。文字列は、二重引用符( ")または一重引用符( ')で、任意の文字エンコーディングで囲むことができます。