นึกชื่อไทยไม่ออกแฮะว่าจะเขียนเป็นหัวข้อภาษาไทยยังไง จริงๆแล้วก็แค่จะเปลี่ยนภาษาขณะที่รันโปรแกรมไปแล้วนั่นแหละ คิดว่าพึ่งมีใน Flex3 เพราะค้นใน google ก็เจอแต่เอกสารของ Flex3 แฮะถ้าเป็น Flex2 คนต้องใช้วิธีดิบเถื่อนนิดหน่อย ^^!
อย่างแรกที่ต้องทำเพื่อให้ compile flex กับภาษาอื่นๆ ได้คือต้อง copylocale ก่อนโดย flex เตรียม locale พื้นฐานให้สองภาษาคือ อังกฤษ(อังกฤษแบบอเมริกาด้วย แต่มันจะต่างจาก อังกฤษอื่นๆ ยังไงฟะ) กับ ญี่ปุ่น ซึ่งก็ไม่รู้ copy แล้วมันจะต่างกันยังไงอีกนั่นแหละ – -” โดยจากตอนก่อนนู้นๆ จำได้ว่าเคยแนะนำโปรแกรมต่างๆ ใน /bin ของ sdk ไปบ้างแล้วโปรแกรมหนึ่งก็คือ copylocale โดยมีทั้งสำหรับ windows และ linux/unix ของ windows ก็จะมี .exe ตามท้าย จากการทำงานแล้ว จริงๆ มันก็เหมือนกับ copy ไฟล์ธรรมดานะ แต่ดูละเอียดๆ เหมือนมันจะมี compile อะไรบางอย่างด้วยหละ
copylocale en_US th_TH
ผมก็เลือก copy จาก en_US หละ เพราะคิดว่า ja_JP คงเหมาะกับพวกภาษาจีนมากกว่า(มั้ง)
ต่อจากนั้นก็เตรียมไฟล์ที่เก็บคำต่างๆ ทั้งสองภาษาคือ ไทย กับ อังกฤษ (ที่ flash ไม่ทำตรงนี้แต่แรกก็เพราะ ถ้าเป็น flash ธรรมดาคงไม่ต้องการอะไรพวกนี้เท่าไหร่มั้ง แต่พอมาเป็นโปรแกรมใหญ่ การรองรับภาษาหลายๆ ภาษาเลยมีความสำคัญขึ้นมา)
File: /directory/to/resource/en_US/sample.properties
greeting=Greeting
goodbye=Goodbye
File: /directory/to/resource/th_TH/sample.properties
greeting=สวัสดี
goodbye=ลาก่อน
แล้วก็เขียนโปรแกรมเล็กๆ เพื่อจะมาใช้
File: /directory/to/project/sample.mxml
[ResourceBundle('sample')]
English
ไทย
จากนั้นเวลา compile ก็ใส่ option เพิ่มอีกนิดหน่อยเป็น
mxmlc sample.mxml -locale=en_US,th_TH -source-path=/directory/to/resource/{locale}
ก็จะได้ไฟล์ .swf ออกมาที่สามารถสลับภาษาได้ในตัว สำหรับ Flex2 ตอนนี้คิดเล่นๆไว้สองอย่างคือ ทำ resource เหมือนกัน แต่ว่าเติม _locale เข้าไปด้วย เวลาสลับภาษาก็ให้สลับที่โค้ดเลย แต่แบบนี้ถึกน่าดู กับ compile ไว้สอง swf พอสลับภาษาก็โหลดอีก swf นึงแทน ก็ถึกที่ user อีก – -” งั้นเปลี่ยนมาใช้ Flex3 เถอะนะ ^^!
อ้างอิง: