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 Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間