PEP 257によると、コマンド ライン スクリプトの docstring はその使用法メッセージである必要があります。
スクリプト (スタンドアロン プログラム) の docstring は、その "使用法" メッセージとして使用できる必要があります。これは、スクリプトが誤った引数または欠落した引数 (または、"help" の場合は "-h" オプション) で呼び出されたときに出力されます。このような docstring は、スクリプトの関数とコマンド ライン構文、環境変数、およびファイルを文書化する必要があります。使用方法のメッセージはかなり複雑 (数画面いっぱい) で、新しいユーザーがコマンドを適切に使用するのに十分なだけでなく、上級ユーザー向けのすべてのオプションと引数の完全なクイック リファレンスでもあります。
そして、docstring は、何よりも前に、モジュール レベルとして利用できる最初の文字列でなければなりません__doc__
。
現在、docopt
使用法メッセージ パーサーとしても使用しているため、ドキュメント文字列を記述するだけで、コマンド ライン パーサーが独自に構築されます。これは素晴らしいことです。
_("""...""")
それほど素晴らしいことではありませんが、docstring を gettext の i18nable としてマークする方法が見つからないため、 に指定すると他の言語に変換できdocopt
ます。現時点で私が得た唯一の解決策は、アプリケーションの他のすべての文字列が翻訳されているときに、使用法とヘルプメッセージを英語のままにすることです!
PEP 20が述べているように:
それを行う明白な方法が 1 つ (できれば 1 つだけ) ある必要があります。
あなたがオランダ人でない限り、その方法は最初は明白ではないかもしれませんが.
ドキュメントストリングをエレガントに翻訳可能としてマークできないという制限を回避する最善の方法は何でしょうか?
注意: ここでは、解析される前にビルトインに存在するようgettext.install()
に、__init__.py
モジュール内で実行していると考えています。_()
__doc__