Pebble アプリの他言語化については、公式のデベロッパガイドの「Translating Your Apps」に書かれている。Pebble SDK であれば、i18n_get_system_locale() を使って言語設定を取得して条件分岐せよってことだ。
i18n_get_system_locale() で返ってくる値は、Pebble Time のメニューであれば、Settings → SYSTEM → Infomation → Language で確認することができる。日本語言語パックをインストールした場合には、ここに "ja_JP" が入っている。
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 に出すときに、こんな感じで各種言語別の紹介を書くと良いよ」なんてサジェストもしてくれている。
親切でいいね。