PR

Googleガジェットを開発する方法

2008年5月21日(水)
栗栖 義臣
 

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"」になります。

 例えば、 と記述すると、「日本で日本語のサポートをする」という意味になります。 message属性で指定する言語情報XMLは、ファイル名にルールがあります。「_.xml」のように、言語コードと国コードをファイル名で表します。

 言語が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)になります。

 ガジェットの名称や説明文、アプリケーションの中で利用されているさまざまなメッセージが日本語化されている(日本語の値が割り振られている)ことが確認できるはずです。

 いかがですか? 思いのほか気軽に、お手軽にガジェットの開発ができることがお分かりいただけたでしょうか?

 さあ、これでガジェットクリエータとしてデビューできる手はずは整いました。 次の最終回では、実際にガジェットを作ってみたいと思います。

株式会社はてな
大手SIerを退職後、エンジニアリングディレクターとして2008年に株式会社はてなに入社。Mash up Award 2ndで「サグール賞」「きざし賞」「特別賞」、iGoogleガジェットコンテストで「特別賞」を受賞。http://d.hatena.ne.jp/chris4403/

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています

Googleガジェットを開発する方法 | Think IT(シンクイット)

Think IT(シンクイット)

サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。