Linux
Tips |
|
ソフトウェアを日本語化するには
北浦訓行
2005/2/17
|
gettextによる国際化対応のソフトウェアは、ロケールごとにメッセージカタログというファイルを用意することで、メッセージの多言語化などを実現している(編注)。
編注:国際化と多言語化は、似ているが同一ではない。国際化においては、表示する言語だけでなく、地域(国ではない)に応じた通貨記号や年月日の表記ルールも切り替える。ここで「多言語化など」としているのは、そのためである。 |
メッセージカタログには、プログラムのソースファイルに相当する.poファイルと、コンパイル後のバイナリに相当する.moファイルがある。例えば、日本語化した.poファイルを作成して.moファイルに変換し、これらを規定のディレクトリ(日本語の場合は/usr/share/locale/ja/LC_MESSAGES/)に配置すれば、日本語のメニューが表示される。
ここでは、Fedora Core 3(以下、FC3)に含まれているKDE用のアラームプログラムKAlarmを例に、メニューなどを日本語化する手順を説明する。
|
KAlarmの[ファイル]メニュー。[Templates...]というメニュー項目が英文のままなので、これを[テンプレート(T)...]に変更する |
最初に、KAlarmの.poファイルを入手する必要がある。KAlarmの.poファイルは、.moファイルが収録されているSRPMファイルに含まれている。.moファイルの名前は実行用のバイナリファイルと同じもしくはそのファイル名を含む名前になっているので、以下のコマンドで調べてみる。
# ls /usr/share/locale/ja/LC_MESSAGES/kalarm*
/usr/share/locale/ja/LC_MESSAGES/kalarm.mo
/usr/share/locale/ja/LC_MESSAGES/kalarmdgui.mo |
/usr/share/locale/ja/LC_MESSAGES/kalarm.moがどのRPMファイルに含まれるかを、以下のコマンドで調べる。
$ rpm -qf /usr/share/locale/ja/LC_MESSAGES/kalarm.mo
kde-i18n-Japanese-3.3.1-1 |
必要なファイルが判明したので、FC3のFTPサイトからSRPMファイル(kde-i18n-3.3.1-1.src.rpm)をダウンロードし、以下のようにインストールする。
# rpm -ihv kde-i18n-3.3.1-1.src.rpm |
FC3の場合、SRPMファイルがインストールされるのは/usr/src/redhat/SOURCEディレクトリである。そこにkde-i18n-3.3.1.tar.bz2というファイルが作成されているので、それを展開する。
# tar jxf kde-i18n-3.3.1.tar.bz2 |
ソースファイルがkde-i18n-3.3.1ディレクトリに展開される。KAlarmの.poファイルは、その下のkde-i18n-3.3.1/ja/messages/kdepim/kalarm.poにある。これを以下のように編集する。
#: mainwindow.cpp:269
msgid "&Templates..."
msgstr "" |
↓ |
#: mainwindow.cpp:269
msgid "&Templates..."
msgstr "テンプレート(&T)..." ←日本語のメッセージを追加 |
msgidという行にある「&」は、キーボードのアクセラレータを指定する記号だ。上記の場合、「Templates」の「T」にアンダーバーが表示され、[T]キーがアクセラレータになる。日本語のメッセージも「(&T)」として、アクセラレータキーが有効になるようにしておく。
また、修正しようとする部分に「#, fuzzy」というコメントがある場合は、これを削除する必要がある。そうしないと、その部分の日本語は無効になってしまう。
編集が終わったら、msgfmtコマンドで.moファイルを作成する。ここでは、オリジナルの/usr/share/locale/ja/LC_MESSAGES/kalarm.moをバックアップしたうえで、直接.moファイルを/usr/share/locale/ja/LC_MESSAGES/ディレクトリに作成する。
# cp /usr/share/locale/ja/LC_MESSAGES/kalarm.mo
/usr/share/locale/ja/LC_MESSAGES/kalarm.mo.org
# msgfmt -o /usr/share/locale/ja/LC_MESSAGES/kalarm.mo kalarm.po |
以上で作業は終了だ。KAlarmを起動して[ファイル]メニューを表示すると、[Templates...]が[テンプレート(T)...]に変わっていることが分かる。
|
メニューが日本語表示になったKAlarm |
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間