日本語を表示したい(結果:できなかった)

Pebble Time、おそらく近い将来には、ファームウェアが日本語に対応してくれるとは思うのですが、そうならなくてもアプリ側にフォントを持つことで、日本語表示することは可能なはず。ということでいくつか試してみました。

下記サイトでは、美咲フォントを使った日本語表示を試しています。フォントファイルをRAWリソースで読み込んで、自分で描画するという硬派な作り。

Airwhite Memo:Pebble 美咲フォント 日本語
http://airwhite.net/?p=716

もうちょい手軽に、TrueTypeフォント指定して、文字コードUTF-8指定でなんとかならないかと試してみました。text_layer_set_text の説明によれば、UTF-8で指定すれば良さそうだし。

漢字も入ったフォントだと、フォントサイズ的に無理な気がするので、ひらがな・カタカナだけ入ったフォントで試してみました。こちらです。

ニコモジ(カタカナ英数字のみ版)
http://nicofont.pupu.jp/nicomoji.html

pebble10_03

最初にRESOURCES からフォント登録しておいて…

直接文字列入れてみる。

text_layer_set_text(s_text_layer, "Pebble\nマダカナ");

UTF-8文字コードで入れてみる。

text_layer_set_text(s_text_layer, "Pebble\n\xE3\x83\x9E\xE3\x83\x80\xE3\x82\xAB\xE3\x83\x8A");

結果は…

pebble10_01

いずれも、同じでした。カタカナ出ない。

ちなみに、LOGだと、どっちでも問題なく日本語出てました。

  APP_LOG(APP_LOG_LEVEL_INFO, "Pebble\nマダカナ");
  APP_LOG(APP_LOG_LEVEL_INFO, "Pebble\n\xE3\x83\x9E\xE3\x83\x80\xE3\x82\xAB\xE3\x83\x8A");
[INFO] main.c:31: Pebble
マダカナ
[INFO] main.c:32: Pebble
マダカナ

うーん、フォントがうまく読み込めてないのか、文字列指定方法が正しくないのか…。

「中国語などの2バイト文字にも対応する」言ってますので、2バイト文字に対応した文字表示のサンプルを待つか。


くやしいので、別の方法でひらがなだけでも日本語表示してみます。1バイトひらがなフォント使う方法です。

こちらの、しろうさぎフォントを使います。

gau+「ガウプラ」
http://www.graphicartsunit.com/gaupra/font_k.html

pebble10_04

「1バイトひらがなフォント」は、英数字のフォントとして、ひらがなを登録しているものです。
「英字」と「かな」は日本語キーボードの「かな表記」にほぼ対応しています。

ということで、フォント登録して、対応する英数字で文字列指定。

text_layer_set_text(s_text_layer, "L\".qe]\njQtu#");

こうだ!

pebble10_02

やってることは、「Pebble 開発チュートリアル(2-1):カスタムフォント」での英文フォント替えと同じですね。