![]() |
![]() |
||||||||
|
|
コンテンツ![]()
Haiku を使うHaiku で開発
ZETAJPBE.net について
新着ハードウェア互換情報新着 BeBits
リンク集ページビュー サイトビュー
|
Haiku Locale Kit プログラミング †Haiku には、OS やアプリケーションを多言語対応にする仕組み「Locale Kit」が備わっています。ここでは、Locale Kit を用いて、多言語対応のアプリケーションを開発するやり方を解説します。 サンプルプログラムの動作確認 †Locale Kit 対応のサンプルプログラムを用意したので、まずは、サンプルプログラムの動作を確認してみましょう。 ダウンロードページから、Haiku Locale Kit サンプルプログラム一式をダウンロード&解凍して下さい。 CopyCatalog.sh をダブルクリックして下さい。カタログファイル(辞書ファイル)が所定の場所にコピーされます。 Terminal で TestLocaleKit を実行してみて下さい。日本語で「ファイル」「ふぁいる」と表示されることと思います。元々、プログラム中では「File」と表示する指定になっており、日本語に対応していることが確認できることと思います。 「File」のまま出力されてしまう場合は、OS の Locale 設定(Haiku メニュー→Preferences→Locale)で日本語が指定されていることを確認して下さい。 ※haiku-nightly-r37466-x86gcc2hybrid-vmware で動作を確認しています。 内容物の確認 †サンプルプログラム一式には、以下のものが含まれています。
Haiku Locale Kit プログラミングの手順 †サンプルプログラム一式を見ながら、Locale Kit に対応したアプリケーションの開発手順を解説していきます。 ソースファイルの作成 †ソースファイルの内容は以下のようになっています。 #include <iostream>
#include <Catalog.h>
int main(int oArgC, char* oArgV[])
{
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "ContextA"
cout << B_TRANSLATE("File") << endl;
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "ContextB"
cout << B_TRANSLATE("File") << endl;
return 0;
}
Locale Kit を使うには、Catalog.h のヘッダをインクルードする必要があります。 B_TRANSLATE_CONTEXT で、文脈/単語の使用状況を定義します。B_TRANSLATE_CONTEXT を切り替えることによって、同じ英単語を、複数の日本語訳に対応させることができます。 翻訳を行うのは B_TRANSLATE マクロです。引数に英語を渡します。 2 つの B_TRANSLATE マクロで、同じ「File」という単語を翻訳させていますが、B_TRANSLATE_CONTEXT を切り替えているため、訳語を変えることができます。 ビルド †ソースファイルのコンパイル・リンクを行います。 統合開発環境 Paladin をお持ちの方は、TestLocaleKit.pld をお使い下さい。 Locale Kit を使ったアプリケーションをビルドする際は、通常使うライブラリの他に、liblocale.so と liblocalestub.a を加える必要があります。 Haiku は、カタログファイル(辞書ファイル)を検索する際にシグニチャを用います。ビルドの際は、シグニチャを含むリソースファイルも、合わせてリンクしましょう。リソースファイルを結合せず、手動で実行バイナリにシグニチャをつけたい場合は、実行ファイルを右クリックして File Type に送り、「application/x-vnd.JPBE-TestLocaleKit」のようなシグニチャを付与します。 カタログファイルの作成 †カタログファイル(辞書ファイル)を作ります。ソースコードから、キーとなる英単語を抜き出します。Terminal で gcc -E TestLocaleKit.cpp > TestLocaleKit.cpp.prep collectcatkeys -pvw -l japanese -s x-vnd.JPBE-TestLocaleKit TestLocaleKit.cpp.prep を実行します。 最初の gcc では、ソースコードをプリプロセスにかけています。 続く collectcatkeys でカタログファイルを生成。japanese の j は英語的には大文字だと思うのですが、Haiku のソースがみんな小文字なのでとりあえず小文字にしておきます。-s で、先ほどと同じシグニチャ(ただし application/ を除く)を与えます。TestLocaleKit.cpp.catkeys という名前でカタログファイル(テキスト形式)が生成されます。 collectcatkeys 実行時に「Warning: couldn't resolve catalog-access」という警告が出ますが、カタログファイルは生成されます。 生成されたカタログファイル TestLocaleKit.cpp.catkeys はテキストファイルなので、StyledEdit 等で開き、翻訳語を記入していきます。 1 japanese x-vnd.JPBE-TestLocaleKit 1301022979 File ContextA ファイル File ContextB ふぁいる catkeys ファイルの 1 行目は、カタログの情報です。最後の数字はチェックサムのようなもので、これをいじるとカタログファイルとして機能しなくなるので注意して下さい。 2 行目以降がカタログです。英単語(B_TRANSLATE の引数)、コンテキスト(B_TRANSLATE_CONTEXT の値)、翻訳語の順にならんでいます。英語とコンテキストの間はタブ 1 つですが、コンテキストと翻訳語の間はタブ 2 になっているので注意して下さい。 カタログファイルの編集を終えたら、バイナリのカタログファイルを生成します。 linkcatkeys -l japanese -s x-vnd.JPBE-TestLocaleKit -o ja.catalog TestLocaleKit.cpp.catkeys できあがった ja.catalog を、カタログフォルダの下のシグニチャと同じフォルダ名配下に置きます。 /boot/home/config/data/locale/catalogs/x-vnd.JPBE-TestLocaleKit/ja.catalog 以上で、Locale Kit 対応アプリケーションの作成と、日本語カタログ(辞書ファイル)の作成が完了しました。 ============================= [memo] (びぁ) すいません、実際に試してないので、とりあえずmemoとしておきます。 確認次第、本文を更新します、もしくは、更新してください。←補足ありがとうございます。更新よろしくお願いします。(SHINTA) カタログファイルの内容(2行目以降)ですが、 英単語(B_TRANSLATE の引数)、コンテキスト(B_TRANSLATE_CONTEXT の値)、コメント、翻訳語です。 コメントは省略可能なので、省略した場合tabが2つ続くことになります。 コメントの利用法ですが、 B_TRANSLATE(原文) の代わりに B_TRANSLATE_COMMENT(原文,コメント) とすれば使えるはずです。 同じ原文を複数に翻訳したい場合に利用できそうです。 |
Contact: a d m i n 【 a t 】 j p b e 【 d o t 】 n e t | JPBE.net サイトのご利用について