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 };
このサイトについて
TrackBack URL :
