トップ » 技術記事 » OpenSocialを始めよう(7) - アクティビティ応用プログラミング

OpenSocialを始めよう(7) - アクティビティ応用プログラミング はてなブックマーク数 このエントリーをブックマークに追加

アクティビティの国際化

アクティビティメッセージの国際化(閲覧者の言語設定に合わせて、違う言語でメッセージを表示すること)を行うには、まずGoogleガジェットが持つ国際化の機能を理解する必要があります。

Googleガジェットが持つ国際化の機能を理解するには、こちらのドキュメントを参考にしてください。この知識を踏まえて、アクティビティに固有のAPIについてお話しします。

国際化に対応したアクティビティメッセージを表示するには、これまでopensocial.newActivity()のパラメータに使用してきた「TITLE」や「BODY」ではなく、「TITLE_ID」や「BODY_ID」と言ったキーを使用します。このキーの値として、メッセージのキーを渡すわけです。

// TITLE_IDパラメータにより、タイトルを国際化
// params[opensocial.Activity.Field.TITLE] = "こんにちは";
params[opensocial.Activity.Field.TITLE_ID] = "msg_hello";

たったこれだけです。が、先ほども申し上げた通り、現在のOrkutではまだこの機能は利用できないようです。とはいえ、「Prefs.getMsg()」や「__MSG_msg_hello__」を用いた文字列の置き換えなど、ガジェットが元々備えている国際化の機能は利用できるので、アクティビティの国際化は現在でも可能だと言えるでしょう。

置換変数を用いたメッセージの生成

「こんにちは、白石さん」と言ったアクティビティメッセージの、「白石」の部分以外を再利用したいと言う状況はよくあります。そうした場合に使えるのが、変数をメッセージ内に埋め込んでおき、アクティビティを作成するときにそれを置き換えると言う方法です。

この機能を利用するためには、まず前述の国際化対応を行っておく必要があります。その上で、メッセージ内に「${変数名}」という形で変数を埋め込んでおきます。

<messagebundle>
 <msg name="msg_hello">
   こんにちは、${Owner.DisplayName}さん
 </msg>
</messagebundle>

この上で、opensocial.newActivity()のパラメータ「TEMPLATE_PARAMS」に、置換の材料となるオブジェクトを指定します。

var owner = …
params[opensocial.Activity.Field.TITLE_ID] = "msg_hello";
params[opensocial.Activity.Field.TEMPLATE_PARAMS] = {
  Owner: owner
};
Series Navigation«アクティビティの作成OpenSocialの現状を把握する»

1 2 3

このサイトについて

八角研究所
株式会社八角研究所のWEBサイトですよー。 いろんなものを創り出すことのできる環境をコツコツ構築中。 いったい、いつになったらできるのか。 この技術情報サイトもそのための活動の一環のつもり。

執筆者紹介

shiraishi

shiraishi

最近書いてばっかりいます。 眠いとおんなじことばかり書きます。 そして、大概眠いです。

TrackBack URL :