Monday, December 1, 2008

มาแปล UI Gnome กันเถอะ

  • บทความนี้เกี่ยวกับการแปล UI (User Interface) หน้าตาโปรแกรมนั่นเอง
  • บทความหน้าค่อยแปล Help ต่อ
  • ผลพวงจาก Training 12 ของชาว ubuntuclub.com เค้าจัด แล้วเราก็ได้ไปแจมด้วยอ่ะ ขอบอกหนุกดี
  • ได้เจอ remaster ubuntu มือหนึ่งของเมืองไทยด้วยล่ะ ปลื้มที่สู้ดขอบอก ^^
  • ได้ความรู้เกี่ยวกับกระบวนการแปล และ ลักษณะของโปรแกรมที่เป็นแบบรองรับหลายภาษาด้วย
ทำไมต้องแปล Gnome

1. อยากทำในสิ่งที่ไม่เคย และน่าสนใจ
2. ได้ช่วยให้คนไทยมี ubuntu ภาษาไทยใช้กันต่อไป
2.1 Gnome เป็น Desktop Enviroment หลักใน ubuntu
3. คือ ถ้าเราไม่ช่วยกันเค้าจาตัดภาษาไทยเราออกไม่รู้ด้วยนะ จาก ubuntu เวอร์ชั่นหน้าๆ ต่อไปอ่ะ - -' เพราะว่าเค้าจะดูที่เปอร์เซ็นต์การแปลแต่ละประเทศ ว่ามีความก้าวหน้าบ้าง ถ้าประเทศใหนไม่กระเตื้องเค้าก็จะตัดภาษานั้นออกจากระบบเค้าอ่ะ เห็นพี่วิทยากรเค้าว่างั้นนะ ถ้าจำไม่ผิดอ่ะครับ
4. สำหรับคนไม่มีเวลาไปทำ ค่ายอาสาที่ใหน อันนี้ก็เหมือนกันอ่ะ คิดว่าอาสาและเสียสละเหมือนกัน
5. แถมเรายังได้ความรู้ด้านภาษาอังกฤษไปในตัว (สำหรับคนโง่ๆ อย่างเราอ่ะคนหนึ่งล่ะ ^^')
6. ได้เค้าใจ และ รู้เรื่อง linux และ opensource มากขึ้น
7. ช่วยป้องกันโลกร้อนด้วย แล้วมันเกี่ยวมั้ยล่ะเนี๋ยโฮๆ ^^'

เตรียมพร้อมก่อนลงมือแปล
1. ติดตั้งโปรแกรมที่จำเป็นสำหรับมือใหม่หัดแปลอย่างเรา
$ sudo aptitude install poedit gtranslator subversion gettext
  • เจอมันถามไรก็ yes อย่างเดียวไปเลย มันเขียนไรไม่รู้เฟ้ย
  • poedit และ gtranslator คือ ตัวแม่ที่ใช้แปลเลย หรือ คุณจาใช้ text edit ธรรมดาก็ได้นะถ้าชำนาญแหละ
  • subversion จำได้ว่าเอาไว้ดึงซอส help ลงเตรียมไว้สำหรับบทความหน้าแปล Help ก็แล้วกัน
  • gettext เอาไว้ทำไรไม่รู้จำไม่ได้แหละ ^^' ยังงี้ล่ะวิทยากรเค้าก็แล้วก็ไม่เคยจำได้เลย กำจริงๆ

2. ไปเลือกโปรแกรมที่จะแปล UI กัน
2.1 เข้าไปที่ http://l10n.gnome.org/teams/th และเลื่อน scrollbar ลงมาหน่อยอย่ามองแต่ส่วนบน ^^'
  • เมื่อเราเลื่อน scrollbar ลงมาแหละเราก็จะเห็น Thai จะมี column ประมาณเนี๋ย
Release Documentation Graph User Interface Graph
  • แล้วมันก็มีหลาย Gnome x.x เยอะเลยแฮะ แล้วเราจะเลือกอันใหนดีล่ะ
  • เราก็ดูที่กราฟ หรือ จาดูที่เปอร์เซ็นต์การแปลก็ได้ ว่าอันใหนยังไม่กระเตื้องเราก็เลือกอันนั้นก็ได้
  • นิดนึง คือ เลือก เวอร์ชั่นล่าสุดจาดีที่สุดสำหรับ Gnome x.x เพราะอันเก่าไม่มีใครเค้าใช้แล้วอ่ะ คิดว่านะ
  • เราจาเลือกเป็น Extra GNOME Applications ก็แล้วกันเน้อ คลิกมันซะ ที่คำนั้นล่ะ
  • ที่ Extra GNOME เนี๋ยมันจะเกี่ยวกับโปรแกรมสามัญประจำเครื่องอาไรประมาณนั้น ซึ่ง ทางด้านซ้ายจะเป็น Help (Documentation) ส่วนทางด้านขวาคือ เป้าหมายเรา UI Translations
  • มองหาโปรแกรมที่เราสนใจ หรือ เคยใช้ จะทำให้ง่ายต่อการแปลในที่นี้ขอเลือกเป็น gftp (มันใกล้เสร็จแหละไปคงเหลือไม่เยอะคิดว่า ^^')
  • เราก็ทำการคลิกขวาเลือก save as... ที่รูปลูกศรสีเขียวชี้ลง ที่อยู่ตรงหน้าชื่อโปรแกรมที่เราจะแปล
  • เลือกที่วางไฟล์ซะ ของเราวางไว้ที่ Desktop ก็แล้วกันของเราจะได้ gftp.HEAD.th.po
  • ขออธิบายเกี่ยวกับไฟล์ซะหน่อย คือ เราจะทำการแปลที่ .po และ ส่งงานเป็น .po เช่นเดิม
po : portable object ไฟล์ที่เราต้องเกี่ยวข้องด้วยเป็นส่วนมาก
pot : portable object template ไฟล์แปลแบบ template คือ ถ้ายังไม่มี po ของโปรแกรมนั้นเราก็ต้องโหลด pot ลองมาเพื่อที่จะสร้างเป็น po ต่อไป
mo : machine-dependent object คือ ตัวนี้จะได้เมื่อเราทำการคอมไพล์ po
เริ่มแปลกันเลย
1. ในที่นี้ขอใช้ poedit น้า อีกอย่างคือ poedit มีเวอร์ชั่น windows ด้วยล่ะขอบอก
2. เปิดไฟล์ .po ของเราในที่นี้จะเป็น gftp.HEAD.th.po มันก็จะมีคำศัพท์ หรือ ประโยค อังกฤษเยอะเลย
  • ซึ่งมันจะแบ่งกลุ่มคำออกเป็น 3 ประเภทคือ untranslated, fuzzy และ translated
  • untranslated คือ ยังไม่ได้แปลเลย
  • fuzzy คือ แปลแล้วแต่ยังไม่ชัวร์ คือ แปลแล้วอ่ะยังไม่มีการนำไปใช้ ว่างั้นก็ได้
  • translated คือ แปลแล้วไม่ต้องทำไรมันอีก
  • ช่องบนเป็นภาษาที่เราต้องแปล และ ด้านล่างคือ ภาษาไทยเรานั่นเอง
  • หลักการแปลสามารถสอบถามหรือหาข้อมูลได้ที่ http://groups.google.co.th/group/thai-l10n/ หรือ Google น่าจะมีนะ หรือไม่ก็เมล์ถามวิทยากรเลย ^^' ง่ายดี nokyoongtonggumaraa(แอด)gmail.com
  • หรือ อาจเปิดโปรแกรมดิกของเราด้วยก็ได้ ยิ่งได้คำแปลที่หลากหลายขึ้น
  • จะให้ง่ายเราก็เลือกแปล พวก fuzzy จิคือ อันใหนเราคิดว่าชัวร์เราก็เอา fuzzy ออกโดยคลิกที่ ปุ่มรูปเมฆด้านบนเห็นปะ มีเม็ดฝนด้วย ^^'
  • อีกอย่างลืมบอกไป มันจะมีสีบอกสถานะของคำด้วยนะ คือ สีขาวน่าจะเป็น translated สีเหลือง น่าจะเป็น fuzzy และสีที่เหลือน่าจะเป็น untranslated
  • เมื่อเราแปลคำที่เป็น untranslated แล้วไม่แน่ใจว่าถูกต้องป่าว เราก็ทำให้เป็น fuzzy ซะโดยคลิกที่ เมฆเหมือนเดิมสิครับ
  • เราควรทำการบันทึก (save) เป็นระยะกันเหนียวไว้ก่อน
  • อีกอย่างคือ เราควรไปดูคำแปลซึ่งจะมีใน ossglossary ก่อนที่เราจะมั่วเอาเอง(อย่างเราอ่ะ ^^') คือ เค้าจะมีคำแปลที่ทุกโปรแกรมจะใช้คำประมาณนี้ เหมือนกันอยู่แล้ว และได้ทำการ approved meaning แล้ว หรือ อีกเว็บจะเป็น osscorpus
  • เจ้า poedit มันดีหน่อยคือ มันจะ compile ให้เราด้วยอ่ะซึ่งเมื่อเราทำการ save เราไม่ต้องงง เพราะเราจะพบ .mo ในที่เดียวกับ .po เราซึ่งในที่นี้จะได้ไฟล์ gftp.HEAD.th.mo เพิ่มมาอัตโนมัติ
  • เราจะใช้ไฟล์เนี๋ย .mo ในการทดสอบเปิดโปรแกรมลองคำที่เราแปลมาตั้งนานนั่นแหละครับ
  • แต่ถ้าเราใช้ gtranslator แปลเราต้อง compile เอง ด้วยคำสั่งดังนี้
$ msgfmt -cv gftp.HEAD.th.po
  • อันนี้เป็นการ compile gftp.HEAD.th.po ให้ได้ไฟล์ gftp.HEAD.th.mo
  • เมื่อเราได้ไลฟ์ .mo แล้วในที่นี้จะเป็น gftp.HEAD.th.mo ทำการเปลี่ยนเป็น gftp.mo แค่นี้เอาแค่ชื่อโปรแกรมแล้วตามด้วย .mo เลย ไม่ต้องสนใจ .HEAD.th.mo
  • ให้เราคัดลอกไปไว้ที่
  • /usr/share/locale-langpack/th/LC_MESSAGES/gftp.HEAD.th.mo
  • ถ้า folder ดังตัวอย่างประมาณ th ไม่เจอแสดงว่าระบบยังไม่ได้ติดตั้ง ภาษาไทย
  • ติดตั้งมันซะ System => Administration => Language Support ติ๊กเลือก Thai แล้วก็ Ok ซะ
  • เมื่อทำการโหลด package ภาษาไทยเราแล้วให้ reboot สักครั้งก่อน
  • เมื่อเราคัดลอก .mo เราไปวางใน /usr/share/locale-langpack/th/LC_MESSAGES/ แล้ว
  • ทดสอบรันโปรแกรมให้ในโหมดภาษาไทยด้วยคำสั่ง
# LANG=th_TH.UTF-8 gftp
เราต้องอยู่ในสิทธิ์ root ก่อนเพราะ ลองใช้ sudo ทำไม่ได้ซะงั้น
  • โปแกรมเราที่แปลชื่อ gftp เราสามารถดูชื่อโพรเซสจริงได้โดยคลิกขวาที่โปแกรมเลือก Properties ดูที่ command นั่นแหละที่เราต้องรู้ เช่น Take ScreenShot มันชื่อไรเราก็เพิ่มมันไปที่ panel แล้วคลิกขวา เลือก properties ดูที่ command จะพบ gnome-screenshot --interactive เราก็เอาแค่ gnome-screenshot ซึ่ง --interactive จะเป็น option เราไม่ต้องสนใจมัน

แปลเสร็จแหละทำไงต่อ
  • ส่งงานสิครับ

แล้วจาส่งงานที่ใหนหว่า

  • เมื่อเราทำการแปลจากตัวเอง หรือ ว่าจะอ้างอิงจาก glossary หรือ corpus แล้วก็ลองรันดูแหละ เข้าท่าแฮะ
  • แล้วจะทำไงให้คำที่เราแปลไปอยู่ใน ubuntu version ต่อไป
  • เราก็ต้องส่งงานแปลของเราไปให้ coordinator ของแต่ละประเทศไงล่ะครับ
  • เพื่อให้ co อัพไปยัง ubuntu ต่อไป ซึ่งเราไม่ต้องห่วงครับ เรื่องคำแปลของมือใหม่ อย่างเรา (อ่อนภาษาอย่างแรงแบบเราอ่ะ ^^') เพราะ coordinator จะตรวจทานอีกรอบชัวร์ เค้าคงไม่ปล่อยคำ เอ๋อๆ ที่เราแปลไปอยู่ในโปรแกรมที่เข้าใช้กันทั่วประเทศหรอกครับ ^^'
  • ขอย้ำส่งไฟล์งานที่จะส่งคือ .po นะครับ
  • thailand เราส่งให้ coordinator คือ thep(แอด)linux.thai.net
  • หรือไม่ก็สมัคร group นี้ซะ http://groups.google.co.th/group/thai-l10n/ แล้วส่งเข้า group เลย
  • ให้เราบอกด้วยว่าเป็นว่าแปลโปรแกรมอาไร แล้วแปลอาไรของมัน UI หรือ Help
  • แล้วตามไปดูว่าเปอร์เซ็นต์ ของโปรแกรมที่เราแปล มันขยับ หรือ ป่าวถ้าไม่ขยับก็ให้ตามที่ coordinaotor ว่าได้ดูงานแปลเรายัง เผื่อบางที coordinator ลืมก็มีนะ

อ่านเพิ่มเติม

ที่มา

  • เอกสาร Training 12 + มีโมเมเอาเองบ้าง

No comments:

Post a Comment