ทำให้ Pebble Time แสดงผลภาษาไทย + ญี่ปุ่น

จากวันก่อนที่ทำให้ Pebble Time อ่านภาษาไทยออกแล้ว ก็มาเจอปัญหากรณี use case ของผมบ้างคือ ปกติผมจะเจอ Notification ที่เป็นทั้งภาษาไทย, ภาษาอังกฤษ และภาษาญี่ปุ่น ก็ต้องออกแรงเพิ่มเพื่อทำให้อ่านได้ทั้งหมด

TLDR; – โหลด language pack ไปลงผ่านมือถือ Android ก็จะอ่านออก

Thai + Japanese Language Pack เวอร์ชัน 0.1 (2015.06.29) – ดาวน์โหลด

ภาษาอังกฤษ ภาษาไทย ภาษาญี่ปุ่น บน Pebble Time

สำหรับคนมีเวลาอ่าน – วิธีการ pack / unpack ก็เหมือนๆ กับตอนที่ทำภาษาไทย แต่ว่าคราวนี้นอกจากจะเอาฟอนต์จาก pebblebits มาใส่แล้ว ยังต้องเอาฟอนต์ภาษาญี่ปุ่นมาใส่ด้วย ผมใช้ฟอนต์ Shinonome ที่แจกฟรีเป็น public domain มาใส่ ข้อดีคือมันเป็น bitmap font ทำให้แสดงผลจอความละเอียดต่ำได้สวยงามกว่าพวก truetype font แต่ข้อเสียคือมันเป็นฟอนต์แบบ BDF ซึ่งต้องเขียนตัวแปลงเป็นฟอนต์รูปแบบของ pebble เอง

ตัวอ่าน BDF ผมใช้ bdflib แล้วแปลงเป็นฟอนต์แบบของ Pebble โดยแกะเอาจากไฟล์ fontgen.py ใน Pebble SDK ตัวโค้ดมี comment อธิบายโครงสร้างไฟล์เอาไว้ให้แล้ว

ปัญหาที่เจออีกอย่างหนึ่งคือฟอนต์ Shinonome ใช้ charset แบบ JIS X 0208 ต้องแปลง codepoint เป็น unicode ถึงจะใช้ได้ ผมก็ใช้ตารางจาก unicode.org

ปัญหาต่อมาคือตัวคันจิในภาษาญี่ปุ่นมีเยอะมาก ผมคัดเอาเฉพาะที่ใช้บ่อยๆ มาใส่ 2,000 ตัว อ้างอิงจากเว็บ tangorin

สุดท้ายกว่าจะได้เป็น language pack ออกมาก็เล่นเอาเหนื่อย ขอบคุณ @knightbaron และ @awkwin ที่ช่วยทดสอบมา ณ ที่นี้ด้วย

เที่ยวคิวชูด้วยตัวเอง: เก็บตกใน Fukuoka

แถว Fukuoka นี่จริงๆ แล้วจะมีย่านที่ชื่อว่า Dazaifu เป็นย่านมีชื่อเสียง มีศาลเจ้า มีพิพิธภัณฑ์ มี Starbucks ที่สวยๆ อยู่ แต่การเดินทางต้องนั่งรถไฟออกจากตัวเมืองไปนิดนึง ซึ่งเวลาที่เหลือดูจะไม่พอ ก็เลยเดินถ่ายรูปเรื่อยเปื่อยไปในตัวเมือง Fukuoka นี่แหละ

Thai restaurant in Fukuoka

เจอร้านอาหารไทย

Fukuoka

ศาลเจ้า มีวัวหมอบอยู่ตัวนึง

Fukuoka

โคมแดง เล็กกว่าโซเซ็นจิที่โตเกียวนะ

Fukuoka

อันนี้เหมือนเป็นเกี้ยวที่ใช้ในเทศกาล เอาไว้ให้คนแบก เจอแถวริมคลองย่าน Nakasu

Anpanman museum

มิวเซียมอันปังแมน อยู่แถวสถานี Nakasukawabata

Anpanman

ไม่ได้เข้าไปดู แต่น่าจะเหมาะกับเด็กๆ ดีอยู่

พอแดดร่มลมตก ผมก็ลองไปเดินที่ Ohori Park สวนสาธารณะที่อยู่เลยย่าน Tenjin ไปทางตะวันตกเล็กน้อย อารมณ์ก็จะคล้ายๆ สวนลุมบ้านเรา แต่สงบกว่า ตรงกลางมีเกาะกลางทะเลสาบ มีสะพานให้เดินข้ามไปได้

Ohori Park

Ohori Park

Ohori Park

ด้านทิศใต้ของ Ohori Park จะมีสวนญี่ปุ่นให้เข้าไปดูได้ แต่ต้องจ่ายค่าเข้าบวกกับเดินจนเหนื่อยแล้ว ก็เลยไม่ได้เข้าไปดู

Ohori Park

ด้านนอกสวน

Ohori Park

Fukuoka

พอตกเย็น ร้าน Yatai ก็เริ่มเปิดให้บริการ

Yatai

ผมย้อนกลับมาที่ห้าง Canal City เพราะวันนี้มีมินิไลฟ์ให้ดูฟรี โดยวงที่มาวันนี้คือ 流星群少女 (Shooting Star Girls)

Shooting Star Girls

ไม่รู้อะไรเกี่ยวกับวงนี้เลย รู้แค่ว่าเป็นวงไอดอลท้องถิ่น

Shooting Star Girls

ร้องเต้นกันเต็มที่

ดูมินิไลฟ์จบแล้วก็ออกไปหาของกิน คราวนี้เป็นร้านเล็กๆ ชื่อว่า Kenzo Cafe

Kenzo Cafe

บรรยากาศหน้าร้าน

Kenzo Cafe

บรรยากาศในร้าน เป็นเคาท์เตอร์แคบๆ นั่งเบียดๆ กันก็น่าจะได้ไม่เกินสิบคน

Kenzo Cafe

สั่งโฮรุมงราเมงมากิน อร่อยใช้ได้เลย

กินเสร็จก็ต้องกลับที่พักเก็บของ เพราะจะต้องกลับเช้าวันถัดไป

Flight กลับกรุงเทพของ Jetstar ออกจากสนามบินตอนสายๆ มีเวลาไปสนามบินได้ชิลๆ ไม่ต้องรีบร้อน โดยเฉพาะสนามบินที่นั่งรถไฟไปถึงได้ในเวลา 15 นาทีนี่มันเยี่ยมจริงๆ (แต่ก็ควรเผื่อเวลาอีก 15-20 นาทีด้วย เพราะออกจากรถไฟแล้วต้องนั่ง shuttle bus ต่อไป international terminal)

Megashaki

แวะซื้อเครื่องดื่ม Megashaki ที่สาวๆ Nogizaka46 เป็นพรีเซ็นเตอร์

Fukuoka Airport

ข้างในสนามบินมีที่ให้ซื้อของฝากครบครัน ทั้งคิทแคท โตเกียวบานานา สารพัด

Jetstar

ขากลับมีพลาดนิดหน่อยตรงที่ว่า ดูเวลากลับถึงกรุงเทพว่าเป็นบ่ายสอง คิดว่าน่าจะทนหิวได้เลยไม่ได้กินอะไรรองท้องมากนัก แต่จริงๆ แล้วบ่ายสองกรุงเทพก็คือบ่ายสี่ของญี่ปุ่น ต้องทนหิวอยู่บนเครื่องอยู่นาน

Steps

สุดท้ายลองเอาสถิติการเดินที่วัดจาก Fitbit มาดู ปรากฏว่าเดินไปวันละ 2 หมื่นกว่าก้าว

สรุปทริปนี้คือ คิวชูเที่ยวสนุก เดินทางไม่ลำบาก อาหารอร่อย ผู้คนเป็นมิตร ค่าใช้จ่ายในการเดินทางมาก็ถือว่าไม่แพงเลยเมื่อเทียบกับการบินไปภูมิภาคอื่น ถ้ามีโอกาสจะหาเวลามาเที่ยวทางคิวชูใต้ดูบ้าง

จับภาษาไทยใส่ Pebble Time

TLDR; – Pebble Time อ่านภาษาไทยไม่ออก ใช้มือถือ Android โหลดเอา language pack ไปลงผ่าน app Pebble Time ซะ ก็จะอ่านออก

Thai language pack เวอร์ชัน 0.3 (2015.06.29) – ดาวน์โหลด
Thai language pack เวอร์ชัน 0.2 (2015.06.15) – ดาวน์โหลด

สำหรับคนมีเวลาอ่าน – เรื่องมันมีอยู่ว่าช่วงเดือน ก.พ.ที่ผ่านมา ผมสั่งนาฬิกา Pebble Time จากเว็บ KickStarter ตั้งแต่ตอนที่มันเปิดตัว โดยมี blind faith ที่ว่าในเมื่อมันอ่านภาษาจีนออก มันก็ควรจะใช้งานภาษาอื่นได้ด้วย

อ่านภาษาญี่ปุ่นไม่ออก

พอได้ของจริงมา ปรากฏว่าเป็นดังคาดคืออ่านภาษาไทยไม่ออกเหมือนกับ Pebble รุ่นแรก แต่ของเก่านี่มีคนทำ custom firmware ใส่ฟอนต์ภาษาไทยไว้ ทำให้อ่านภาษาไทยได้ ส่วนของ Pebble Time เท่าที่หาดูแล้วยังไม่มีคนทำเลย

ไหนๆ ก็ไหนๆ แล้ว #อยากได้ต้องทำเอง

หลังจากศึกษาข้อมูลพอประมาณแล้วพบว่า นอกจากการแฟลช custom firmware ทับลงไปแล้ว เรายังสามารถแก้ไขฟอนต์บน Pebble Time ได้ด้วยการลง language pack ด้วย ซึ่งดูจะเป็นวิธีที่ปลอดภัยกว่า โครงสร้างของ language pack ก็มีคนแกะไว้ให้แล้วตามกระทู้นี้

ใน language pack จะประกอบด้วยไฟล์แปล user interface กับฟอนต์ที่ใช้ ซึ่งเราไม่สนใจจะแปล UI อยู่แล้ว สิ่งที่สนใจอย่างเดียวคือฟอนต์

วิธีแบบตรงไปตรงมาที่สุดก็คือหาฟอนต์ภาษาไทยมาใส่แทนที่ไฟล์ใน language pack ซึ่งวิธีที่ใช้คือไปเอามาจากเว็บ PebbleBits โดยการ generate custom firmware ที่มีภาษาไทยอยู่ด้วย จะได้ไฟล์ .pbz มา ซึ่งก็เป็น zip ธรรมดา เมื่อแตกออกมาแล้วจะมีไฟล์ชื่อ system_resources.pbpack อยู่

เราสามารถใช้ pbpack_tool มา unpack ได้ แล้วก็จะได้ไฟล์ออกมาหลายสิบไฟล์ ที่เราสนใจคือไฟล์หมายเลข 055-062 ก็ก๊อปมาแทนที่ไฟล์ 001-008 ใน language pack ได้เลย

จากนั้นใช้ pbpack_tool จัดการ pack ตัว language pack กลับมาเป็น .pbl แล้วหาทางติดตั้งลงบน Pebble Time วิธีที่ผมใช้คือจับ upload ขึ้นไปบน server สักแห่ง (ใช้ dropbox / pushbullet ก็ได้) แล้วเปิด URL ของไฟล์ pbl นี้จากมือถือ Android เมื่อโหลดแล้ว app Pebble Time จะมีตัวเลือกให้เราติดตั้ง (ไม่ได้เทสบน iPhone แต่เหมือนว่าจะทำไม่ได้)

พอลงเสร็จแล้วก็จะอ่านภาษาไทยออกละ