翻訳用のpoファイルを作成する前段階にpotファイルを生成する

独自のテーマなどの多言語対応を行うためのpoファイルを作るために、potファイルを生成する

基本的には、WordPress国際化(i18n)のメモ : WordPressを参照。

大体こんなコマンドで生成可能
$ find ./ -name "*.php" > ./languages/php_files.list
$ xgettext --language=PHP --from-code=utf-8 -f ./languages/php_files.list --keyword=_ -k=e -o ./languages/default.pot

オプション 説明
--language 言語
--from-code 入力元ファイルの文字コード
-f 対象となるファイルの一覧
--keyword gettextの関数名1
-k gettextの関数名2
-o 出力するファイル名

たぶん、この作業自体はWordpressじゃなくても対応できるんだと思われる。

$ xgettext --help
使用法: xgettext [オプション] [入力ファイル]...

与えられた入力ファイルから翻訳可能な文字列を取り出します.

長いオプションに必須の引数は短いオプションにも必須です.  
必須でない引数も同じです.

入力ファイルの指定:  
  INPUTFILE ...               入力ファイル  
  -f, --files-from=FILE       入力ファイルのリストを FILE から取得  
  -D, --directory=DIRECTORY   入力ファイルの検索リストに DIRECTORY を追加  
入力ファイルが - の場合は標準入力が読み込まれます.

出力ファイルの指定:  
  -d, --default-domain=NAME   出力に NAME.po を使用 (messagh.po の代わり)  
  -o, --output=FILE           指定されたファイルに出力  
  -p, --output-dir=DIR        ディレクトリ DIR にファイルを出力  
出力ファイルが - の場合は標準出力に結果が書き出されます.

入力ファイル言語の選択:  
  -L, --language=NAME         指定された言語を認識  
                                (C, C++, ObjectiveC, PO, Shell, Python, Lisp,  
                                EmacsLisp, librep, Scheme, Smalltalk, Java,  
                                JavaProperties, C#, awk, YCP, Tcl, Perl, PHP,  
                                GCC-source, NXStringTable, RST, Glade)  
  -C, --c++                   --language=C++ の短縮形  
標準で言語は入力ファイルの拡張子で識別されます.

入力ファイルの解釈:  
      --from-code=NAME           入力ファイルのエンコーディング  
                                         (Python, Tcl, Glade 以外)  
標準では, 入力ファイルは ASCII と仮定されます.

操作モード:  
  -j, --join-existing         存在するファイルとメッセージを結合  
  -x, --exclude-file=FILE.po  FILE.po からの項目は抽出されない  
  -c, --add-comments[=TAG]     TAG (またはキーワード行) を付けて  
                               コメント部分を出力ファイルに入れる

言語指定オプション:  
  -a, --extract-all           全ての文字列を抽出  
                                (C, C++, ObjectiveC, Shell,  
                                Python, Lisp, EmacsLisp, librep, Scheme, Java,  
                                C#, awk. Tcl, Perl, PHP, GCC-source, Glade 言語のみ)  
  -k, --keyword[=WORD]         求めるキーワードの指定 (WORD が指定され  
                               ない場合は標準のキーワードは使われない)  
                                (C, C++, ObjectiveC, Shell,  
                                Python, Lisp, EmacsLisp, librep, Scheme, Java,  
                                C#, awk. Tcl, Perl, PHP, GCC-source, Glade 言語のみ)  
      --flag=WORD:ARG:FLAG    キーワード WORD の引数の数 ARG 以内の文字列に対する  
                              付加フラグ  
                                (C, C++, ObjectiveC, Shell,  
                                Python, Lisp, EmacsLisp, librep, Scheme, Java,  
                                C#, awk, YCP, Tcl, Perl, PHP, GCCソース 言語のみ)  
  -T, --trigraphs             入力された ANSI C トライグラフを認識  
                                (C, C++, ObjectiveC 言語のみ)  
      --qt                    Qt 形式の文字列を認識  
                                (C++ 言語のみ)  
      --kde                   recognize KDE 4 format strings  
                                (C++ 言語のみ)  
      --boost                 Boost 形式の文字列を認識  
                                (C++ 言語のみ)  
      --debug                 より詳細なフォーマット文字列の認識結果

出力の詳細:  
  -e, --no-escape             出力に C 言語のエスケープを使わない (標準)  
  -E, --escape                出力に C 言語のエスケープを使い,  
                              拡張文字を含めない  
      --force-po              空であっても PO ファイルを書き出す  
  -i, --indent                字下げ形式で .po ファイルを出力  
      --no-location           '#: ファイル名:行番号' の行を書き出さない  
  -n, --add-location          '#: ファイル名:行番号' の行を生成 (標準)  
      --strict                厳密な Uniforum 形式の .po ファイルを出力  
      --properties-output     Java .properties ファイルを出力  
      --stringtable-output    NeXTstep/GNUstep .strings ファイルを出力  
  -w, --width=NUMBER          出力ページの幅を設定  
      --no-wrap               出力ページの幅より長いメッセージ行を改行しない  
  -s, --sort-output           ソートされた出力を生成  
  -F, --sort-by-file          ファイルで出力をソート  
      --omit-header           `msgid ""' を含んだヘッダを出力しない  
      --copyright-holder=STRING  著作権保有者を出力で設定  
      --foreign-user          他国のユーザ向けに出力中の FSF 著作権を省略  
      --package-name=PACKAGE  set package name in output  
      --package-version=VERSION  set package version in output  
      --msgid-bugs-address=EMAIL@ADDRESS  msgid のバグ報告用アドレスを設定  
  -m, --msgstr-prefix[=STRING]  msgstr 項目の接頭辞に STRING か "" を使用  
  -M, --msgstr-suffix[=STRING]  msgstr 項目の接尾辞に STRING か "" を使用

情報出力:  
  -h, --help                  このヘルプを表示して終了  
  -V, --version               バージョン情報を表示して終了

バグレポートは <bug-gnu-gettext@gnu.org> まで.