Pebble の日本語言語パックといえば、そのままの名前がついたサイトで公開されているものがメジャーで、オレも利用させて貰っている。
新しいバージョンが出てるかな?と思って検索をしたときに、別バージョンというか、自分で言語パックを作っているという記事を見つけた。
これらを見て、Mac 上でちょっと試しているのだけど、フォント生成のところでエラーが出てしまっている。
% python /usr/local/Cellar/pebble-sdk/3.1/Pebble/common/tools/font/fontgen.py pfo --extended 21 mplus-TESTFLIGHT-060/mplus-1c-regular.ttf mplus_21.pfo
Traceback (most recent call last):
File "/usr/local/Cellar/pebble-sdk/3.1/Pebble/common/tools/font/fontgen.py", line 367, in <module>
main()
File "/usr/local/Cellar/pebble-sdk/3.1/Pebble/common/tools/font/fontgen.py", line 363, in main
process_cmd_line_args()
File "/usr/local/Cellar/pebble-sdk/3.1/Pebble/common/tools/font/fontgen.py", line 355, in process_cmd_line_args
args.func(args)
File "/usr/local/Cellar/pebble-sdk/3.1/Pebble/common/tools/font/fontgen.py", line 300, in cmd_pfo
f.convert_to_pfo(args.output_pfo)
File "/usr/local/Cellar/pebble-sdk/3.1/Pebble/common/tools/font/fontgen.py", line 287, in convert_to_pfo
self.build_tables()
File "/usr/local/Cellar/pebble-sdk/3.1/Pebble/common/tools/font/fontgen.py", line 261, in build_tables
build_hash_table(hash_bucket_sizes)
File "/usr/local/Cellar/pebble-sdk/3.1/Pebble/common/tools/font/fontgen.py", line 188, in build_hash_table
self.hash_table[i] = (struct.pack('<BBH', i, bucket_size, acc))
struct.error: ushort format requires 0 <= number <= USHRT_MAX
どうやら build_tables()
内で使っているカウンタが ushort の範囲を超えちゃっているみたいなんだけど、じゃあ、それからどうするってのにまだ辿りつけていない。--filter
なり --list
なりを使って文字の絞り込みをするしかないのかな。
そうです。私もmplusを使ってみたとき同様のエラーが出ました。おそらくはunicodeの0x10ffff以上に外字のようなコード外の文字があって、そこが例外となってエラーを出しているのだと考えられます。listを作って制限すると、エラーは出なくなります。utf-16の0xffffまでの範囲を格納できるので、とりあえず1から65535までのリストでエラーを回避しておいて、そこから削っていけばいいと思います。(その中で8000文字強ぐらい有効な文字があると思います。)
情報ありがとうございますー。後ほど試してみます!