วิธีแปลเมนูโปรแกรมให้มีภาษาไทย

มาสอนโปรแกรมฝรั่งให้หัดพูดไทยกันเถอะ

        ถ้าผมบอกคุณว่า เมื่อคุณได้อ่านเรื่องนี้แล้วคุณสามารถที่จะทำให้ชื่อคุณเองเป็นหนึ่งในทีมงานผู้พัฒนาโปรแกรมได้(แม้ว่าคุณจะเขียนโปรแกรมไม่เป็นเหมือนกับผมก็ตาม)คุณจะเชื่อมั๊ยครับ
        ครับถึงแม้ว่าเราจะเขียนโปรแกรมไม่เป็นแต่เราก็สามารถที่จะมีชื่อเป็นหนึ่งในทีมงานของผู้พัฒนาโปรแกรมได้ ทำได้อย่างไรเชิญติดตามอ่านได้ ณ บัดนี้ครับ
แรงบันดาลใจ
        ก่อนอื่นขออนุญาตเล่าแรงบันดาลใจที่ทำให้ผมอยากแปลโปรแกรมก่อนนะครับ ก็เริ่มมาจากที่ผมเห็นโปรแกรมฟังเพลงที่เรารู้จักกันดีมีเมนูไทยด้วย ก็ “วินแอมป์”ไงครับ แล้วเมื่อผมคลิกไปดูที่หน้าเกี่ยวกับวินแอมป์ ผมก็เห็นข้อความที่ว่า “ภาษาไทยโดย วิพัฒน์รณ พิทยาธิคุณ” ผมก็เลยคิดว่าทำอย่างไรหนอเราถึงจะมีชื่อแบบนี้บ้าง ตอนนั้นนะครับผมยังใช้โปรแกรม Notepad ไม่เป็นด้วยซ้ำ แต่บังเอิญผมอ่านหนังสือเจอว่าไฟล์ต่างๆเช่น html หรือ asp นั้นสามารถเปิดใน Notepad ได้ ผมก็เลยลองเปิดไฟล์อื่นๆ รวมทั้งไฟล์ที่มีนามสกุล .lng โป๊ะเช๊ะ เลยครับ นับจากนั้นมาผมก็เริ่มแปลโปรแกรมต่างๆเริ่มจากโปรแกรม Ram Saver Pro

ภาพ winamp

วิธีหาโปรแกรมมาแปลและวิธีดูว่าโปรแกรมนั้นๆแปลได้หรือไม่
        การหาโปรแกรมมาแปลก็ทำได้โดย
        -ค้นหาใน Google หรือเว็บไซต์บริการดาวน์โหลดต่างๆเช่น Download.com หรือ DownSeek.com ด้วยคำว่า “multi lang”
        -และอีกวิธีที่ง่ายและได้ผลดีและมีโปรแกรมให้มากที่สุดก็คือ หาตามนิตยาสารคอมพิวเตอร์ครับ ผมเองได้โปรแกรมมาแปลหลายตัวจากวิธีนี้
        -ส่วนใครที่หาไม่ได้จริงๆคอมเมนต์ขอผมมาก็ได้ครับ

ส่วนวิธีการดูว่าโปรแกรมนั้นแปลได้หรือไม่มีดังนี้
        1. ดูที่เมนูโปรแกรมว่ามีคำว่า Language หรือเปล่า

ภาพโปรแกรมที่มีเมนู Lang

        2. เข้าไปดูที่โฟลเดอร์ของโปรแกรมว่ามีโฟลเดอร์หรือไฟล์ชื่อ Lng, Lang, Language หรือ Locale หรือไม่

ภาพไฟล์ .lng ในโฟลเดภ??์ Languages

รูปแบบไฟล์ภาษาแบบต่างๆ
        ชนิดไฟล์หรือนามสกุลของไฟล์ภาษาที่พบบ่อยมีดังนี้ครับ
1. แบบไฟล์ข้อความธรรมดาซึ่งส่วนมากจะมีนามสกุล lng หรือ lang ย่อมาจาก Language หรือ ini ,inf หรือบางโปรแกรมก็ใช้ txt ธรรมดา โดยวิธีการเปิดไฟล์นี้ที่ง่ายที่สุดก็คือ เปิดโปรแกรม notepad แล้วใช้การลากไฟล์ไปวางในโปรแกรม Notepad ได้เลยครับ
2. xml ภาษา xml ไฟล์แบบนี้ต้องระวังในส่วน encoding ให้ดีนะครับ
3. po ไฟล์แบบนี้เรียกว่า GNU gettext ส่วนโปรแกรมที่ใช้แก้ไขโปรแกรมนี้เรียกว่า GNU gettext tools ผมขอแนะนำให้ใช้โปรแกรม poEdit ครับมีภาษาไทยเหมือนกัน(แปลโดยคุณ pun) ใช้ได้ทั้งบนวินโดวส์ ลีนุกซ์และ Mac โดยไฟล์ต้นแบบจะมีนามสกุล pot ต้องเปลี่ยนเป็น po ก่อน (ถ้ามีนามสกุลเป็น po อยู่แล้วก็ไม่ต้องเปลี่ยนครับ)เมื่อบันทึกแล้ว จะมีนามสกุล mo ตอนส่งก็ส่งไปทั้งแบบ po และ mo เลยครับโดยไฟล์ pot หาได้ที่เว็บไซต์ของโปรแกรมและที่

http://www.debian.org/international/l10n/po/pot

4. Dll ส่วนมากไฟล์แบบนี้ตัว source จะเป็นไฟล์ .rc ต้อง compile ด้วยภาษา C
5. แบบอื่นๆเช่น
-บางโปรแกรมจะใช้วิธีฝังหรือ Embed ไฟล์ภาษาไว้ในโปรแกรมเลย
-บางโปรแกรมก็รวมภาษาต่างๆไว้ในไฟล์เดียวกันก็มี
โดยวิธีการแปลโปรแกรมเหล่านี้เราต้องติดต่อไปยังผู้พัฒนาโปรแกรมนั้นๆเพื่อสอบถามวิธีการแปลเองครับ

เตรียมเครื่องมือ
        การแปลภาษาไทยให้โปรแกรมใช้อะไรบ้าง
1. ใจที่รักที่จะทำครับ เนื่องจากการแปลเมนูโปรแกรมไม่มีค่าจ้างเป็นเงิน
2. โปรแกรม Text Editor หรือโปรแกรมแก้ไขข้อความ เช่น Notepad (มีในวินโดวส์อยู่แล้ว)หรือโปรแกรมแก้ไขข้อความทั่วไป
3. โปรแกรม Poedit ดาวน์โหลดได้ที่ poedit.net เตรียมไว้ใช้กับไฟล์ po ครับเพราะเดี๋ยวนี้เริ่มมีหลายโปรแกรมใช้ไฟล์แบบนี้กันเยอะขึ้น

ภาพโปรแกรม Poedit

โปรแกรมอื่นๆที่คล้ายกันเช่น kbabel และ gtranslator
4. พจนานุกรม (สามารถใช้โปรแกรมพจนานุกรมได้เพื่อความสะดวก) โปรแกรมแปลภาษาและตัวอย่างคำแปล
ผมเองใช้
โปรแกรมพจนานุกรม ของ Thai Software Dictionary รุ่น 4.0
โปรแกรมแปลภาษา ใช้ แปลไทย 2000
และตัวอย่างคำแปลในข้อ 5 ครับ
5. ไฟล์ all_glossary.csv เป็นไฟล์ตัวอย่างคำแปลที่พบบ่อยครับ มีประโยชน์มากหาได้ที่
http://www.opentle.org/ossglossary/
6. พื้นฐานภาษาอังกฤษพออ่านออก ไม่ถึงต้องเก่งมากหรอกครับเพราะเราสามารถใช้โปรแกรมพจนานุกรมและตัวอย่างคำแปลช่วยได้
7. คอมพิวเตอร์ 1 เครื่องสเป๊กไม่ต้องสูงมากเอาให้สามารถเปิดโปรแกรมที่เราจะแปลได้ก็พอ+พื้นฐานการใช้คอมพิวเตอร์อีกเล็กน้อย
8. อินเตอร์เน็ตสำหรับส่งไฟล์ภาษาที่เราแปลแล้วครับ ผมเองเคยพลาดหลายโปรแกรมเพราะว่าส่งช้า เนื่องจากว่าไม่มีเงินเข้าร้านเน็ต

การเข้ารหัสข้อความและรหัสภาษา
        ในการบันทึกไฟล์ถ้าต้องมีการกำหนดเกี่ยวกับภาษา อันดับแรกให้ลองบันทึกตามต้นฉบับโดยที่ไม่ต้องแก้ไขรหัสภาษา ถ้าไม่ได้ ข้อมูลต่อไปนี้อาจช่วยคุณได้ครับ
1. Language ID ของภาษาไทยคือ 1054 และอีกแบบคือ $041e หรือ 041e หรือ 41e (41e คือเลขฐาน16 ของ 1054)
ข้อมูลเพิ่มเติม
http://www.microsoft.com/globaldev/reference/lcid-all.mspx
http://msdn.microsoft.com/en-us/library/0h88fahh.aspx
http://helpnet.acresso.com/robo/projects/helplibdevstudio9/ihelpgloblangidentifiers.htm
http://www.wwp.brown.edu/encoding/training/ISO/iso639.html
2. Codepage ให้ลองเลือกจากรายการต่อไปนี้
UTF-8
tis-620
iso-8859-11
windows-874

การแปลวิธีใช้
        ไฟล์วิธีใช้หรือ Help File นั้นโดยปรกติมี 2 แบบคือแบบ .hlp และแบบ .chm แต่โดยปรกตินักแปลโปรแกรมน้อยรายที่จะแปลวิธีใช้ แต่ถ้าเราแปลได้ก็จะเป็นสร้างความแตกต่างให้กับผู้แปลเองและเป็นการดีกับผู้ใช้ชาวไทยเราด้วยครับ ผมเองเคยแปลของ Ram Saver Pro สมัยที่เป็นไฟล์แบบ hlp แต่พอพัฒนามาเป็น chm ก็ยังไม่ได้แปลซึ่งความจริงแล้วสามารถแปลงจาก hlp เป็น chm ได้ แต่ข้อมูลผมหายหมดก็เลยยังไม่ได้แปล ดังนั้นเพื่อเป็นการช่วยลดภาระโลกร้อน(เกี่ยวกันไหมนี่) ผมขออนุญาตเล่าแบบย่อๆดังนี้ครับ
  –ไฟล์ chm ให้ Decompiler ด้วยโปรแกรม HTML Help Workshop โปรแกรมนี้มีในแผ่นโปรแกรม Visual Studio 6 จากนั้นก็แปลข้อความในไฟล์ html ที่ได้จากการ Decompiler แล้วก็ compiler ใหม่อีกครั้ง
  –ไฟล์ hlp วิธีการคล้ายกับแบบ chm แต่การ Decompiler ไฟล์นี้จะต่างออกไปโดยโปรแกรมตัวที่ผมใช้ผมดาวน์โหลดจาก planet-source-code.com เป็น source code ของ vb6 (ค้นหาคำว่า Help Decompiler ผู้เขียนคือ ALKO)โปรแกรมที่ใช้ Compiler ไฟล์นี้ชื่อ Help Compiler Workshop (HCW) ของไมโครซอฟต์เช่นกัน

เริ่มกันเลย
        มาเริ่มกันเลยนะครับโดยตัวอย่างผมจะสาธิตวิธีการแปลโปรแกรม Cryptic Disk เป็นโปรแกรมที่ใช้ในการเข้ารหัสดิสก์ดาวน์โหลดได้ที่ Exlade.com เมื่อดาวน์โหลดและติดตั้งเสร็จแล้วผมก็จะเปิดไปที่โฟลเดอร์ของโปรแกรมที่ผมเลือกให้ติดตั้งคือ c:\Program Files\Cryptic Disk++(ปรกติจะอยู่ที่c:\Program Files\Cryptic Disk++ ครับ)\

ภาพโฟลเดภ??์โปรแกรม Cryptic Disk

        ดังภาพ จะเห็นได้ว่ามีทั้งโฟลเดอร์ชื่อ Languages และไฟล์ชื่อ Default.lng ซึ่งในโปรแกรมนี้ไฟล์ Default.lng เป็นไฟล์ต้นฉบับภาษาอังกฤษถ้าในโปรแกรมอื่นมักจะมีไฟล์ English.lng อยู่ในโฟลเดอร์ Languages ซึ่งเราสามารถใช้เป็นต้นแบบโดยคัดลอกแล้วเปลี่ยนชื่อเป็น Thai.lng

ภาพเปลี่ยนชื่ภ??ฟล์ eng.lngเป็น thai.lng

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

ภาพเปิดไฟล์ Thai.lng ด้วยโปรแกรม Notepad

        ตัวอย่างการตั้งค่าในส่วน [LangOptions]
LanguageName=Thai (ไทย) <<<- – – ชื่อภาษาที่จะแสดงที่เมนู
LanguageID=1054 <<<- – – รหัสภาษา
LanguageHelp=crdisk.chm <<<- – – ชื่อไฟล์วิธีใช้สามารถเปลี่ยนเป็นไฟล์ที่เราแปลแล้วได้ครับ
LanguageCodePage=874 <<<- – – การเข้ารหัส
LanguageExt=com <<<- – – ชื่อท้ายเว็บไซต์(ดอตคอม)
        จากนั้นก็แปลในส่วนอื่นๆตามปรกติ โดยส่วนที่มีเครื่องหมาย [ ] ไม่ต้องแปลนะครับ

ส่งได้เลย
        เมื่อแปลเสร็จแล้วก็ส่งได้เลย

ภาพโปรแกรม Cryptic Disk เมื่ภ??ปลเป็นไทยแล้ว

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

สิ่งที่เราจะได้รับ
        1. ได้ใช้โปรแกรมฟรีๆ ในกรณีที่โปรแกรมที่เราแปลเป็นโปรแกรมที่ต้องลงทะเบียนหรือแชร์แวร์ทางผู้พัฒนาโปรแกรมจะตอบแทนน้ำใจเราด้วยการให้รหัสลงทะเบียนกับเราฟรีๆเลยครับ ยิ่งถ้าเป็นโปรแกรมใหญ่หรือโปรแกรมที่ราคาแพงเราก็ยิ่งคุ้มครับ ดังภาพเป็นเมลล์ที่ CEO ของ Exlade.com ส่งรหัสลงทะเบียนมาให้ผมครับ

รหัสลงทะเบียนโปรแกรม Cryptic Disk

        2. ได้ความภูมิใจ เพราะว่าจะได้ มีชื่อโชว์ที่โปรแกรมว่าเราเป็นคนแปลภาษาไทย ให้โปรแกรมนี้นะเอ้อ เอาไว้อวดเพื่อนๆที่โรงเรียน ที่มหาลัย หรือที่ทำงานก็ได้ครับโก้ดีออกผมว่า
        3. ที่ว่ามา เป็นสิ่งที่เราจะได้รับแบบทางตรงครับ ส่วนผลทางอ้อมที่เราจะได้รับก็คือ เราได้ฝึกภาษาและฝึกพิมพ์ดีดไปในตัวครับผมเองใช้การแปลเมนูโปรแกรมนี้เป็นการฝึกจิ้มดีด

รายชื่อโปรแกรมที่มีภาษาไทยและชื่อผู้แปล บางส่วน ครับ
โปรแกรม ผู้แปล
FlashGet กฤติวัฒน์ เมธีกุล
Winamp 2.x วิพัฒน์รณ พิทยาธิคุณจ
Winamp 5.1 สมคเน หัตถกรรม
WinRar ชวรณ ตู้จินดาจ
CDex บริพัตร หาญวิเศษ
Opera 5 ยงยุทธ บุญเชิด
IsoBuster ธนวัฒน์
7-Zip Zafire06
Spybot – Search & Destroy Phanu Wasusin
PhpMyAdmin Arthit Suriyawongkul

        สำหรับโปรแกรมเมอร์ที่สนใจที่จะให้โปรแกรมของคุณมีหลายภาษา สามารถค้นหา Source code ได้ที่ planet-source-code.com หรือ sourceforge.com ด้วยคำว่า “multi lang” ได้ครับ

แหล่งข้อมูลเพิ่มเติมเกี่ยวกับการแปลโปรแกรม

        สำหรับคุณผู้อ่านที่มีข้อสงสัยหรือคำถามเกี่ยวกับในการแปลโปรแกรมต่างๆสอบถามมาได้ตลอดเวลาครับ ผมอาจจะตอบช้าหน่อย(ไม่มีตังค์ครับ)แต่ตอบแน่นอนครับ

12 thoughts on “วิธีแปลเมนูโปรแกรมให้มีภาษาไทย”

  1. ขอบคุณพี่ วิพัฒน์รณ มากครับที่มาเยี่ยมบล็อกน้อยๆแห่งนี้ ว่างๆ ช่วยมาแนะนำอะไรต่างๆเพิ่มเติมให้ผมด้วยนะครับ นี่เป็นบล็อกแรกพึ่งหัดเขียนครับ

    ขอบคุณอีกครั้งครับ

  2. ผมคัดลอกคอมเมนต์นี้มาจากที่ blogger ครับ พอดีว่าย้ายมาไว้ที่นี่ก็เลยก็อปคอมเมนต์นี้มาด้วย ก็อุตส่า มีคนเข้าเราทั้งทีนี่ครับ(เป็นอะไรที่ปลื้มมาก)

    ——————————————————————-
    bact‘ กล่าวว่า…

    ถ้าสนใจงานแปล ลองสมัครเมลกลุ่ม
    thai-l10n@googlegroups.com ดูนะครับ

    และที่ blognone มีบทความเกี่ยวกับการแปลโปรแกรมอยู่ 4 บทความ เป็นชุดต่อเนื่องกัน ลองดูครับ

    ป.ล. อีเมล bacteria at users.sourceforge.net นี่ ผมเลิกใช้แล้วครับ
    ส่วน phpMyAdmin ตอนนี้ก็ร้าง ๆ ไป
    สตริงใหม่ ๆ ก็ยังไม่ได้แปลเลยครับ – -”

    อาท
    (Arthit Suriyawongkul / bact’)
    http://bact.blogspot.com/
    พฤษภาคม 1, 2008 5:07 หลังเที่ยง
    ——————————————————————-

  3. ทำบล็อกได้สวยมากนะค่ะ เป็นมืออาชีพได้เลยนะนี่ ไม่ใช่มือสมัครเล่นแล้วนะ เป็นกำลังใจให้นะค่ะ และพัฒนาบล็อกตนเองยิ่ง ๆ ขึ้นไปนะค่ะ

  4. เข้ามาเยี่ยมครับ ไม่ได้เจอกันโดน ….อิอิ… ในe-cholink ผมจะอยู่ห้องดอยตุง Teamspeak 2 จะอยู่…..กลุ่ม….ถ้า eQSO จะอยู่ server eqso.thaieqso.com ห้อง ไทยแลนด์ คิดถึงครับอยากคุยด้วย อยากช่วยเหลือ อยากให้กำลังใจ อย่ากให้พัฒนา

  5. ผมก็อยากลองดูนะ

    แต่เจอ ภาษา อักฤษ ละท้อ คั๊บ

    ถ้ามีวีดีโอสอนทำ ขอส่งมาให้ได้ป๊ะคั๊บ

    นิสัยผม (อยากเป็นแต่ไม่ชอบลงมือทำ) ชอบแต่ค้นหาไปเรื่อยๆ

    1. ไฟล์ .mo เกิดจากการ save ไฟล์ .po ครับ ต้องหาไฟล์ .po หรือ .pot (เปลี่ยนนามสกุลไฟล์เป็น .po) แล้วใช้โปรแกรม poedit เปิดไฟล์ครับ

      เมื่อ save จะได้ไฟล์ .mo ครับ

      งงจุงเบย

      ไฟล์ .mo แก้ไขไม่ได้ครับผม ต้องแก้ที่ไฟล์ .po ครับ

  6. พี่ครับ ช่วยแปล ce 6.3 ให้หน่อยครับ .po ครับอ่านแล้วไม่เข้า สอนเขียนรายละเอียดให้มากกว่านี้ หน่อยครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *