雑文発散

«前の日記(2015-07-15) 最新 次の日記(2015-07-17)» 編集
過去の日記

2015-07-16 [長年日記]

[Pebble] Pebble アプリの多言語化あるいは日本語言語パックのインストール有無チェック

Pebble アプリの他言語化については、公式のデベロッパガイドの「Translating Your Apps」に書かれている。Pebble SDK であれば、i18n_get_system_locale() を使って言語設定を取得して条件分岐せよってことだ。

i18n_get_system_locale() で返ってくる値は、Pebble Time のメニューであれば、Settings → SYSTEM → Infomation → Language で確認することができる。日本語言語パックをインストールした場合には、ここに "ja_JP" が入っている。

Pebble 言語設定

Pebble アプリで「日本語言語パックがインストールされているか?」をチェックし、インストールされている場合には日本語を表示し、そうでない場合には英語のメッセージを表示するには、このようにすれば良いみたいだ。

const char *locale = i18n_get_system_locale();

if (strcmp(locale, "ja_JP") == 0) {
  text_layer_set_text(tweet_layer, "こんにちは!こんにちは!");
} else {
  text_layer_set_text(tweet_layer, "Hello ! Hello !");
}

strcmp() の戻り値が true / false だと思って、最初に実装した時に逆の動きになっていたので、C 言語に慣れてないオレのような人は注意が必要。

そして、同じように "fr_FR" や "zh_CN" などで比較し、その言語用のメッセージを出してあげれば他言語化に対応ができる。

あと、このガイドには「Publishing Localized Apps」なんて章もあって、「Pebble の Appstore に出すときに、こんな感じで各種言語別の紹介を書くと良いよ」なんてサジェストもしてくれている。

親切でいいね。