Next: Adjusting Files, Previous: Prerequisites, Up: Maintainers [Contents][Index]
gettextize
プログラムの呼び出しgettextize
プログラムは、GNU
gettext
によりインターナショナライズされたパッケージのメンテナーを助けるための対話的なツールで、2つの目的のために使用されます:
gettext
を使ってパッケージをするときは、ウィザードとして使用されます。
gettext
サポートを、以前のGNU
gettext
から新しいバージョンにアップグレードするための、移行ツールとして使用します。
このプログラムは以下のタスクを処理します:
gettext
によりインターナショナライズされた、すべてのパッケージで必要なファイルをパッケージにコピーします。
gettext
で使われていた陳腐化したファイルやイディオムを削除して、現在のバージョンのGNU
gettext
で推奨される形式にします。
gettextize
で自動的に処理できないタスクの要約をプリントします。
呼び出し方は以下のようになります:
gettextize [ option… ] [ directory ]
以下のオプションを指定できます:
すでに存在するファイルを強制的に置き換えます。
libintlのソースを、intl/というサブディレクトリーにインストールします。このlibintlは、GNU
libintlがインストールされていないシステムでインターナショナリゼーションを提供するのに使用されます。このオプションが省略された場合は、configure.acのAM_GNU_GETTEXT
呼び出しが読み込まれます。しかし‘AM_GNU_GETTEXT([external])’とインターナショナリゼーションは、GNU
gettextのないシステムでは利用できないでしょう。
POファイルを含むディレクトリを指定します。このようなディレクトリーには、特定のPOTファイルをさまざまな言語に翻訳したファイルが含まれています。このオプションは、翻訳ドメインどとに複数回指定することができます。指定されなかったときは、po/というディレクトリーが更新されます。
ChangeLogの作成・更新をしません。デフォルトではgettextize
は、影響を受けるディレクトリーごとの‘ChangeLog’というファイルに、すべての変更(ファイルの追加・変更・削除)を記録します。
必要なファイルをコピーするかわりに、シンボリックリンクを作成します。これはディスク容量を数キロバイト節約するのには便利ですが、自分自身を含む形式のtarballの作成には特別な配慮が必要になり、メンテナーがソースに適用できるいくつかの機能が使えなくなり、システムに新しいバージョンのgettext
がインストールされたときにバグ(のような状態)を招きます。
変更を出力しますが、処理は行いません。普通にgettextize
を実行したときのアクションはすべて抑止され、かわりにリストが標準出力に出力されるだけになります。
このヘルプを表示して終了します。
バージョン情報を表示して終了します。
directoryを指定した場合、そのディレクトリーはGNU
gettext
を使う準備をしたいパッケージの、トップレベルのディレクトリーになります。
プログラムgettextize
は、以下のファイルを提供します。しかし--force
(-f
)オプションを指定しなければ、既存のファイルは置き換えられません。
gettextize
により提供されるABOUT-NLSよりも、新しいコピーを使いたいと思うかもしれません。より新しいABOUT-NLSファイルのコピーを、翻訳プロジェクト、またはGNU
archive siteから入手することもできます。
gettext
によるpo/Makefile.in.in(ファイル名に‘.in’が2つあることに注意してください)と、いくつかの予備ファイルしか含まれていません。すでにpo/というディレクトリーがあるときは、そのディレクトリーのファイルは保持され、Makefile.in.inと予備ファイルだけが上書きされます。
‘--po-dir’が指定されたときは、po/のかわりに‘--po-dir’で指定されたそれぞれのディレクトリーに配置されます。
gettext
のintl/ディレクトリーから、ほとんどのファイルがコピーされます。--force
(-f
)も指定されたときは、まず最初にintl/が空にされます。
AM_GNU_GETTEXT
で必要です。
automake
しか使っていないときは、autoconf
の一連のマクロファイルが、パッケージのautoconf
マクロのレポジトリー(通常はm4/というディレクトリー)にコピーされます。
シンボリックリンクがサポートされている場合、gettextize
はパッケージのディレクトリーへは実際にコピーはされず、かわりにシンボリックリンクが作成されます。これによりすべてのパッケージで必要なファイルによる重複を避けることができます。単に‘-h’オプションを指定すると、配布物のtar
アーカイブを作成するときには、それらのリンクが解決されて実際のファイルが配布物のアーカイブにコピーされます。そのため、メインのMakefile.inのゴールdist
にたいするtar
のオプションには、‘-h’を使う必要があることを強調しておきましょう
それだけではなく、gettextize
は、影響を受ける各ディレクトリーのMakefile.amをすべて更新し、同様にトップレベルのconfigure.ac(またはconfigure.in)も更新します。
パッケージのサブディレクトリーintl/、po/、m4/にコピーされる、GNU
gettext
をサポートするための最新のファイルを理解するのも、興味深いでしょう。intl/と他の2つのディレクトリーの違いは、intl/はGNU
gettext
を使うすべてのパッケージで同じですが、他の2つのディレクトリーのものの大部分はパッケージに依存したものだという点です。
gettextize
プログラムは、置換または変更するファイルのバックアップを作成して、それらの変更をChangeLogに書き込みます。この方法により、注意深いメンテナーはgettextize
を実行した後に、それによる変更が許容できるか確認して、可能なら調整することができます。このルールの例外はintl/ディレクトリーで、このディレクトリーは完全に追加・置換、または削除されます。
gettextize
が、GNU
gettext
を使うパッケージのための調整すべてを処理できる訳ではないことを理解するのことも重要です。残っている作業の量は、パッケージがGNU
automake
を使うか否かによります。それでも大抵の場合、メンテナーはgettextize
を呼び出した後、Adjusting Filesを読む必要があるでしょう。
特に‘gettexize’を使った後は、‘AC_COMPILE_IFELSE was called before AC_GNU_SOURCE’、または‘AC_RUN_IFELSE was called before AC_GNU_SOURCE’というエラーが発生するかもしれません。このエラーはconfigure.acで説明している方法でconfigure.acを変更することにより修正できます。
gettextize
は、GNU build
systemの一部ではないので、自動的には呼び出されず、パッケージメンテナーとしての責任を持たない人も呼び出さないことを理解しておくのも重要です。後者の目的のためには個別にツールが準備されています。詳細はautopoint Invocationを参照してください。