Japanize the gawk

gawk は国際化に対応していますが、日本語の po ファイルはありません。そこで自分で国際化してみます。

[Go to Index]

po ファイルとは

po ファイルとは国際化のメッセージ・ファイルで日本語用には ja.po という名称に割り当てられています。ここではこの ja.po を作成します。現在、gawk 3.1.2 の ja.po は Makoto Hosoya 氏が作成したものがあります。これを元に 3.1.3 のものを作成していきます。3.1.2 と 3.1.3 のもので大きな違いはなく、そのまま利用も可能ですが、ここでは 3.1.3 のものを作ります。

po ファイルを入手する

po ファイルはトランスレーション・プロジェクト日本語チームで行なわれています。このページからは gawk の ja.po は入手できませんので、ダイレクトにディレクトリのインデックスを見てみます。すると、最新のものは gawk-3.1.2.20030619.ja.po(*1) であることが分かります。gawk-3.1.2.20030619.ja.po はその名前からも想像できるように gawk 3.1.2 用の ja.po です。そこでこれを参考 gawk 3.1.3 用のファイルを KBabel で編集します(*3)。

雛型を作る

最新の gawk の po ファイルの雛型は gawk.pot ファイルで、gawk 3.1.3 を展開した時の gawk-3.1.3/po 以下にあります。ここでは一応コピーを取ってから KBabel で編集します。

$ cd gawk-3.1.3/po
$ cp gawk.pot ja.po
$ kabel ja.po &
$ kabel gawk-3.1.2.20030619.ja.po &

あとはひたすら gawk 3.1.2 用の ja.po を参考にしながら、Cut & Paste と不足部分を翻訳していきます。gawk 3.1.3 と 3.1.2 では微妙にメッセージが異なっていたりしますので注意します。拙作ながら私の作成した gawk-3.1.3.ja.po を置いておきますので、私の拙い翻訳であっても構わないのであれば使用して頂いても構いません。

使ってみる

出来上がった po ファイルをコンパイルします。KBabel 上からもコンパイルは可能ですが、msgfmt コマンドでこれを gmo ファイルにコンパイルします。

$ cd po
$ cp gawk-3.1.3.ja.po ja.po
$ msgfmt -o ja.gmo ja.po

合わせて po/Makefile も変更します。POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS の部分を変更します。

POFILES =  es.po fr.po he.po it.po sv.po tr.po de.po da.po pt_BR.po ca.po ja.po
GMOFILES =  es.gmo fr.gmo he.gmo it.gmo sv.gmo tr.gmo de.gmo da.gmo pt_BR.gmo ca.gmo ja.gmo
UPDATEPOFILES =  es.po-update fr.po-update he.po-update it.po-update sv.po-update tr.po-update de.po-update da.po-update pt_BR.po-update ca.po-update ja.po-update
DUMMYPOFILES =  es.nop fr.nop he.nop it.nop sv.nop tr.nop de.nop da.nop pt_BR.nop ca.nop ja.nop
CATALOGS =  es.gmo fr.gmo he.gmo it.gmo sv.gmo tr.gmo de.gmo da.gmo pt_BR.gmo ca.gmo ja.gmo

最後に、インストールします。

$ su
# make install

ここで gawk を実行してみます。

$ gawk
使い方: gawk [POSIX または GNU 形式オプション] -f プログラムファイル [--] 入力ファイル …
使い方: gawk [POSIX または GNU 形式オプション] [--] 'プログラム' 入力ファイル …
POSIX オプション:               GNU 長形式オプション
        -f プログラムファイル   --file=プログラムファイル
        -F フィールドセパレータ --field-separator=フィールドセパレータ
        -v 変数=代入値          --assign=変数=代入値
        -m[fr] 数値
        -W compat                       --compat
        -W copyleft                     --copyleft
        -W copyright                    --copyright
        -W dump-variables[=ファイル]    --dump-variables[=ファイル]
        -W gen-po                       --gen-po
        -W help                         --help
        -W lint[=fatal]                 --lint[=fatal]
        -W lint-old                     --lint-old
        -W non-decimal-data             --non-decimal-data
        -W profile[=ファイル]           --profile[=ファイル]
        -W posix                        --posix
        -W re-interval                  --re-interval
        -W source=プログラム文          --source=プログラム文
        -W traditional                  --traditional
        -W usage                        --usage
        -W version                      --version
 
バグを報告するには、`gawk.info(英文)' の `Bugs' ノードを
参照してください。 印刷されたマニュアルで対応するセクション
は、`Reporting Problems and Bugs' です。
 
gawk は、パターンを検索、そして処理する言語です。
デフォルト設定では、標準入力を読み込み、標準出力に書き出します。
 
使用例:
        gawk '{ sum += $1 }; END { print sum }' 入力ファイル
        gawk -F: '{ print $1 }' /etc/passwd

上のように表示されれば OK です。

*1 2003/10/1 現在の最新です。

*2 エディタで編集しても良いのですが、po ファイルを不用意に編集すると動作しなくなってしまうことがあるので専用のエディタを使用することにします。KBabel は KDE 用ですが Gnome 用にも gtranslator というものがあります。

マニュアルの日本語化 (途中です)

gawk の man page の日本語化は JM Project にて行なわれています。しかしながら、こちらも最新の gawk への追従は行なわれていないようです。そこで、私が行なってみます。

gawk

gawk の JM Project に登録されている最新のものの対応バージョンが分からないのですが差し支えはないようです。

igawk

igawk については随分前から man page の変更はないようです。今後、自分がメンテすることを考えて igawk の man page を一部変更して載せておきます。RedHat Linux などでは日本語化された man コマンドが使えますので、そのまま使用できると思います。インストール方法は以下の通りです。

$ su
# cp igawk.1 /usr/local/man/man1

遊んでみる (途中です)

po ファイルはテキスト・ファイルですので、gawk で語尾を変えて遊んでみます。単なる置換ですので、中身の紹介はしません。上の gawk 3.1.3 用 po ファイルのみの対応とさせていただきます。

ここでは ponyunyo.awk を使います。使い方は簡単で以下のようにします。

$ gawk -f ponyunyo.awk gawk-3.1.3.ja.po.txt nyu > ja.po ← 語尾が「にゅ」
$ gawk -f ponyunyo.awk gawk-3.1.3.ja.po.txt nyo > ja.po ← 語尾が「にょ」

語学力を怨む

UNIX 系 OS を使っていると自然にルーチンの英語は身に付きます。ところが、こうした正確性を要求されるものは自分の語学力のなさを怨んでしまいます。それでも一般の人よりは英語圏での海外経験が長いはずなのですが、生活するための英語 (生きるための英語と呼んでいました) とは違った緊張感があります。いろいろ勉強していきますが、不備な点はどしどし言って下さい。

Copyright © 2003 by Hirofumi Saito <hi_saito@yk.rim.or.jp>. All rights reserved.