このページの本文へ

行っとけ! Ubuntu道場! 第25回

~師範……アプリの日本語訳に挑戦してみたいです!(前編)~

2010年08月05日 15時00分更新

文● hito(Ubuntu Japanese Team) イラスト●瀬尾浩史

  • この記事をはてなブックマークに追加
  • 本文印刷

そもそもUbuntuの翻訳ってどんな仕組みなの?

編集S:ということでUbuntuの翻訳について色々教えてください。常識人な皆様。

ミズノ:はーい。

あわしろいくや:はーい。

瀬尾浩史:……キャラが濃い人達だけが返事してる空間が出来上がってるペン。

村田:世の中なんてそんなもので味噌。

黒瀬:さて、翻訳についてですけど、どこから行きましょう?

hito:まず「Ubuntuの翻訳ってどうやってるんだろー」から。

やまね:ぬぅ……Ubuntuの翻訳だと! 中学で英語を習ってから、右拳に全体重をのせ、まっすぐ目標をぶちぬくように打つべし! 打つべし! 打つべし!

編集S:こうか。

やまね:あべし。

瀬尾浩史:なんかこっちでは複数のネタがミックスされたドツキ漫才空間が出来上がってるペン。

編集S:えーと、Launchpad Translationsで作業ができて、Webの入力フォームに日本語を入れれば作業ができそう、ってところぐらいまでは知ってます。英語が表示されてて、そこに「対応する日本語を入れてください」って感じのやつ。

hito:Launchpadの翻訳インターフェースですね。そこに日本語を入れておくと、査読の上最終的にUbuntuの日本語表示に使われるgettext用の「メッセージカタログ」になります。

Launchpad上のUbuntuプロジェクトでの翻訳インタフェース。英語、現在の日本語、訳として提案されている日本語、訳語の入力スペースなどが表示される

黒瀬:そうやって「メッセージカタログ」を作っていくのが翻訳作業の重要な部分ですね。

編集S:うえーん、いきなり分からない。メッセージカタログを作ると、なにか裏で不思議な魔法を使ってくれて、Ubuntuの表示に使われると思っていいですか?

やまね:そんな感じなんだけど、もうちょっと説明した方がいいかな。

黒瀬:じゃあ具体例でいきますね。/usr/share/cups/locale/ja/cups_ja.poというファイルがあるので、これを開いてみてください。

編集S:開きましたー。

cups_ja.poをエディタで開いたところ。msgidに英語表記、msgstrに日本語表記が繰り返されている

hito:読んでみると、なんだかよく分からないテキストファイルだってことがわかると思います。ちょっとプログラムっぽい感じのやつ。

編集S:プログラムっぽくて頭痛がしてきましたー。

黒瀬:これが「.poファイル」って呼ばれる、メッセージカタログの一形式ですー。

ミズノ:で、これを扱いやすくするEmacsのモードがありまして!

瀬尾浩史:ツッコんでおくペン。てい。

ミズノ:ぺぐぅ。

hito:まあ、どんなエディタで開いて頂いてもいいんですが、気合いを入れてちょっと読んでみると、「msgid」という部分に英語っぽい文字列が入っていて、「msgstr」に日本語らしき文字列が入っていることがわかると思います。

編集S:でもこれだけじゃ日本語で表示されないですよね?

小林:「gettext」というものを使ってプログラムを書いておくと、自動的にmsgidの部分をmsgstrで置き換えてくれます。事前に「msgid: Thank you/msgstr: ありがとう」という形で対応を準備しておくと、「Thank you」と出力する部分が自動的に「ありがとう」に置き換わるわけですね。このmsgstrを準備することが翻訳作業の目的です。

編集S:あれ、これでも日本語専用?

小林:ファイル名が「cups_ja.po」ですから、日本語専用のファイルですね。locale/以下に他の言語のファイルも準備されています。

編集S:ほほう。日本語以外にはどうやって切り替えてるのかな?

やまね:環境変数をもとに「ja」以外へ切り替え。「ge」とか。

編集S:な、なるほど。この.poってやつがLaunchpad上でも表示されてて、なにか魔法でアプリでも使われるようになるって思っていいですか?

黒瀬:おおむねそんな感じの理解でOKです。


(次ページへ続く)

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン