昨日は、1回しか書かなかった割には、IPも、クリック数も多かったので、きょうも、Linuxのお話。翻訳について。昨日同様、妄想ってことで、おねがいしますね。
最近、Linuxにかかわってないんで、やりかた、変わったかもしれないけど、昔は、Linuxの日本語化(ローカライズ)の「翻訳のところ」って、
・言葉のところがまとまっている、poファイルとかがあって
→Windowsのリソースファイルの文字の定義に相当する
・そのpoファイルをコミュニティの人が訳して
→担当をきめて分担したりもする
・それを、contribして、ビルドする
っていう形だったと思う(っていか、妄想ですから ^^; 妄想)。
でも、そのやり方だと、コミュニティ間での訳語統一とかはできないし、それどころか、分担した場合、1つのソフトでも訳語が違う場合がある。さらに、poファイルから訳してしまうと、それが、どのウィンドウで、どの文脈で使われている言葉か、わかんない。
(たとえば、日本から、多言語に訳さなければいけない、ワープロソフトがあったと「妄想」すると、「表」一文字だけあった場合、これは、用紙の表裏の「おもて」なのか、図表の「ひょう」なのか、この一字だけでは分からないが、ダイアログなどでは、こういうこともありえる)
じゃあ、商用ソフトなどは、どうするかというと、これは、大きく2つのケースに分けられると「妄想」できる。
1つのケースは、新規に翻訳する場合で、このときは、
用語(訳語)統一
本翻訳作業
もう一つは、前のバージョンが出ている場合、このときは、用語統一は、必要ないケースがあるんだけど、以前のバージョンと(担当者が変わっても)同じ言葉で訳さなければならない。
そのために、翻訳用の用語データベースと、仮に翻訳してくれて、違う語も選べるようなワークベンチがあると「妄想」できるよね。
実際には、そういうワークベンチは、どういうのを使っているのかって言うことは教えてくれない、じゃないや、妄想できないけれど、お手軽にやる方法なら、考えられるよね。
まあ、ソフトの翻訳なんてやることないだろうから。。。
関係者と、興味津々の人以外は、一番最後の水平線まで、すっとばして読んでくださいませ。
・用語統一をどうやってやるのか?
ダイアログや画面に出てくる言葉は、統一したほうがいい。そのためのテクニックとしては、まず、poファイルにしても、リソースファイルにしても、
キーワード 訳語
のシートがあるはずだ。
たとえば、Windowsの場合、リソースファイルに
IDS_EDIT_MENU_STR 編集
IDS_EDIT_ITEM1_STR 元に戻す
IDS_EDIT_ITEM2_STR 切り取り
IDS_EDIT_ITEM3_STR コピー
IDS_EDIT_ITEM4_STR 貼り付け
のようなかんじ(メモ帳の編集メニューのところ)。
仮にCのdefineで書くと、
#define IDS_EDIT_MENU_STR "編集"
#define IDS_EDIT_ITEM1_STR "元に戻す"
#define IDS_EDIT_ITEM2_STR "切り取り"
#define IDS_EDIT_ITEM3_STR "コピー"
#define IDS_EDIT_ITEM4_STR "貼り付け"
のような感じになっているとおもう。
------
ここで、それを、(Cの例で書くと)
#define IDS_EDIT_MENU_STR "IDS_EDIT_MENU_STR"
#define IDS_EDIT_ITEM1_STR "IDS_EDIT_ITEM1_STR"
となるように、訳語のところに、キーワードを入れてしまったものを自動的につくって、これをコンパイルする。
そうすると、前のメニューをクリックすると
編集
元に戻す
切り取り
コピー
貼り付け
となったのが、この自動化してコンパイルしたものをクリックすると
IDS_EDIT_MENU_STR
IDS_EDIT_ITEM1_STR
IDS_EDIT_ITEM2_STR
IDS_EDIT_ITEM3_STR
IDS_EDIT_ITEM4_STR
ってなっている
この2つをハードコピーすれば、ダイアログやメニューのイメージを見ながら、(紙に印刷すれば)コンピューターを知らない人でも、訳語統一に携われる。さらに、それらの人が、みんなExcelを知っていれば、Excelシートに
IDS_EDIT_MENU_STR
IDS_EDIT_ITEM1_STR
IDS_EDIT_ITEM2_STR
IDS_EDIT_ITEM3_STR
IDS_EDIT_ITEM4_STR
って、シートのA桁に入れておいて、B桁に訳語を書いてもらえばいい。
そして、みんなの分があつまったら、Aさんは、訳語をB桁、CさんはC桁と、横に訳語をありつけていけば、比較検討も楽だよね。
で、ダイアログ等の代表的な訳語がきまったら、今度は、本翻訳。
商用のソフトの訳語の場合、これらの訳のデータベースがあり、そのデータベースから、仮訳したり、候補となる語が表示される機能があるらしい、じゃないや、妄想できます。
でも、そんなお金をかけなくてもですねえ、
1.訳語のpoファイル(リソースファイルの文字のところなど)の
キーワードと、元の言葉を、Excelに書き出そう!
2.上記にあげた訳語統一したものを、
Excelファイルに(まあ、Accessでもいいんだけどさ)
もとのことば=訳語の組を登録する
(DBに入れる場合、同じもとの言葉で訳語が2種類ってこともあるので、
元の言葉だけを主キーにしないでね)
3.2の訳語統一をもとに、1の言葉と一致したものを、訳のところに仮に入れる
(プログラムで自動的に、でよい)
一致したものが2つ以上ある場合や、部分一致の場合は、その横のセルに入れておいてあげる
例
キーワード 元の言葉 訳語 その他
IDS_EDIT_ITEM2_STR Cut 切り取り 切る 切断
4.3のシートを訳す
つまり、3で適当に入れた言葉をチェックして、訳語が空欄だったら、いれ、
間違っていたら直す
5.4の訳したシートのキーワードと訳語を取り出し、元のpoファイル(やリソースファイルに戻す)
6.必要なら、2で作った訳語統一(DB)を修正する。
次回バージョンからは、3以降からはじめるので、翻訳は、ある程度埋まったところからはじめられ、早くなる。
なんていう作業をやると、Linuxのような分割作業でも、訳語はある程度統一されるし(コミュニティ間で訳語統一DBをチェックするなんていう作業もすると、コミュニティ間でも統一できるね)、仕事も、次のバージョンから(ある程度訳してくれるので)早くなる。
まあ、商用ソフトの精度を出すなら、このくらいしないと、まずいだろうけど
(それに、2度目以降から、早くなるし)
って、妄想するわけです。全部妄想だよ!