9

Python 2.6 で使用するために、Windows で Babel 0.9.5 [1] を評価しており、ドキュメントを読んだりグーグルで調べたりしても答えられなかった次の質問があります。

1) ungettext に _ のような省略形を使用したいと思います。これに n_ または N_ を使用する必要があるかどうかについての合意はありますか?

n_ は機能していないようです。Babel はテキストを抽出しません。

N_ は部分的に機能しているようです。Babel は gettext の場合と同様にテキストを抽出しますが、ngettext の場合はフォーマットしません (複数の引数と msgstr[ n ] がありません)。

2) POT ファイルを作成するときに、次のように初期の msgstr フィールドを設定する方法はありますか?

Babel cfg ファイルを介してこれを行う方法があるのではないかと思いますが、Babel cfg ファイル形式に関するドキュメントを見つけることができませんでした。

"Project-Id-Version: PROJECT VERSION\n" "Language-Team: en_US \n"

3) PO ファイルに「廃止された」msgid/msgstr を保存する方法はありますか? Babel update コマンドを使用すると、新しく作成された古い文字列は #~ プレフィックスでマークされますが、既存の古いメッセージ文字列は削除されます。

ありがとう、マルコム

[1] http://babel.edgewall.org/

4

2 に答える 2

8

デフォルトでは、pybabel extract次のキーワードが認識されます: _, gettext, ngettext, ugettext, ungettext, dgettext, . オプションを使用して他のユーザーを追加します。多くの場合、NULL 変換(遅延変換とも呼ばれます) に使用されます。dngettextN_-kN_

更新: この-kオプションは、カタログに入れる関数の引数をリストできます。n_ = ngettextしたがって、 tryを使用する場合はpybabel extract -k n_:1,2 ....

于 2010-05-25T10:16:46.350 に答える
1

質問 2) に答えるには:

経由で Babel を実行する場合は、とオプションでpybabel extract設定できます。Project-Id-Version--project--version

setup.py extract_messages経由でBabel を実行するProject-Id-Versionと、配布物から取得されます (setup.py ファイル内のプロジェクト名とバージョン)。

どちらの方法もオプション--msgid-bugs-addressをサポートし--copyright-holder、POT メタデータを設定します。

于 2012-01-22T15:11:43.990 に答える