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を参照してください。