ここでは、Babel が Python および Javascript ファイルの gettext メッセージを抽出できることが述べられています。
Babel には、python (Python ソース ファイルからメッセージを抽出する)、javascript、ignore (何も抽出しない) という組み込みのエクストラクターがいくつか付属しています。
コマンド ライン エクストラクタはここに文書化されていますが、使用例はありません。
また、上記の同じポインターで、抽出で使用される構成ファイルについて言及されていますが、あまり拡張されていません。
js ファイルを含むディレクトリでエクストラクタの基本コマンドを実行すると、生成された .PO ヘッダーのみが表示されますが、メッセージは表示されません。
$ pybabel extract /path/to/js-dir
# Translations template for PROJECT.
# Copyright (C) 2012 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2012-04-22 19:39+1000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
$
メッセージを抽出しようとしている js ファイルのサンプル セグメントを次に示します。
else if(data.status == "1"){
var follow_html = gettext('Follow');
object.attr("class", 'button follow');
object.html(follow_html);
var fav = getFavoriteNumber();
fav.removeClass("my-favorite-number");
if(data.count === 0){
data.count = '';
fav.text('');
}else{
var fmts = ngettext('%s follower', '%s followers', data.count);
fav.text(interpolate(fmts, [data.count]));
}
}
誰かが抽出を機能させるための正確な CLI オプションと構成設定、またはそのようなポインタを提供していただければ幸いです。