Googleガジェットを開発する方法
Google Gadgetの多言語対応
続いてガジェットの多言語対応について解説します。
第1回(http://www.thinkit.co.jp/article/65/1/)で書いた通り、国や文化に依存しないガジェットであれば、世界中の人に使ってもらうチャンスがあります。Googleガジェットにはメッセージを多言語に対応させる仕組みが備わっています。 多言語情報もこれまでの流儀通りXMLで記述していきます。
まずは、ModulePrefsタグの子要素として、Localeタグを記述します。Localeタグは次の属性値を持ちます。
「lang」は、言語コードで、英語は「en」、日本語は「ja」になります。
「country」は、国コードで、アメリカは「us」、日本は「jp」となります。
「messages」はメッセージ設定XMLのURLになります。
「language_direction」は文字の向きを指定します。「"rtl"(right to left ,左から右へ)」、もしくは「"ltr"(left to right ,右から左へ)」の2つの値のどちらかで指定をします。デフォルト値(指定しない場合)は、「"ltr"」になります。
例えば、
言語がja(日本語)やen(英語)でないときは、ALL_ALL.xmlの中のメッセージ情報が使われるという仕組みです。すべて、という意味で「ALL」というコードが利用できます。 一般的には、図3のリスト1のように指定します。
Googleガジェットがサポートしている言語コードと国コードはこちらの公式サイト(http://code.google.com/apis/gadgets/docs/i18n.html#Supported)で確認できます。
message属性で指定するXMLの例は図3のリスト2のようなものです。
このように定義されているXMLからメッセージを取得するときは、「var prefs = new _IG_Prefs(__MODULE_ID__); 」というコードでインスタンス化したprefsから、図3のリスト3のようにして取得します。
また、このメッセージ情報は、ガジェットのコンテンツだけでなく、ModulePrefsの各属性値にも指定することができます。各属性値で利用する場合は、「__MSG_property__」という形で読み込むことができます。先ほどの例だと、「__MSG_sc__」や「__MSG_thm__」、「__MSG_description__」となります。
これにより、ガジェットの名前や説明文などを各国、各言語にあわせて表示することが可能です。ただし、各国語への翻訳は自分で行う必要があります。
ガジェットの見た目が言語によって変化する場合(例えばメニュー部分など)も、ガジェットのサムネイルやスクリーンショットの画像を各言語分用意して、画像のリンクをLocaleタグの中で行うと良いでしょう。
実際に多言語対応しているガジェットを見てみよう
実際に多言語対応しているガジェットとして、TODOガジェットを見てみましょう。ガジェットのXMLのURLはこちら(http://www.google.com/ig/modules/todo.xml)になります。かなりたくさんの言語に対応していることが分かるかと思います(さすがGoogle製です)。では、日本語のメッセージXMLを見てみましょう。ガジェットXMLの中から、Loacalのlangがjaの部分を探し、メッセージXMLのURLを特定すると、こちら(http://www.google.com/ig/modules/todo_content/todo_ja.xml)になります。
ガジェットの名称や説明文、アプリケーションの中で利用されているさまざまなメッセージが日本語化されている(日本語の値が割り振られている)ことが確認できるはずです。
いかがですか? 思いのほか気軽に、お手軽にガジェットの開発ができることがお分かりいただけたでしょうか?
さあ、これでガジェットクリエータとしてデビューできる手はずは整いました。 次の最終回では、実際にガジェットを作ってみたいと思います。