จากวันก่อนที่ทำให้ Pebble Time อ่านภาษาไทยออกแล้ว ก็มาเจอปัญหากรณี use case ของผมบ้างคือ ปกติผมจะเจอ Notification ที่เป็นทั้งภาษาไทย, ภาษาอังกฤษ และภาษาญี่ปุ่น ก็ต้องออกแรงเพิ่มเพื่อทำให้อ่านได้ทั้งหมด
TLDR; – โหลด language pack ไปลงผ่านมือถือ Android ก็จะอ่านออก
Thai + Japanese Language Pack เวอร์ชัน 0.1 (2015.06.29) – ดาวน์โหลด
สำหรับคนมีเวลาอ่าน – วิธีการ 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 ที่ช่วยทดสอบมา ณ ที่นี้ด้วย
Leave a Reply