Theppitak's blog

My personal blog.

03 กันยายน 2558

Thanks

ขอขอบคุณย้อนหลัง สำหรับผู้สนับสนุนงานพัฒนาซอฟต์แวร์เสรีของผมในช่วงปลายเมษายน 2558 ถึงต้นกันยายน 2558 ที่ผ่านมาครับ คือ:

  • ปลายเดือนเมษายน 2558
    • ผู้ไม่แสดงตน 1 ท่าน
  • เดือนพฤษภาคม 2558
  • เดือนมิถุนายน 2558
    • คุณธนาธิป ศรีวิรุฬห์ชัย
    • ผู้ไม่แสดงตน 1 ท่าน
  • เดือนกรกฎาคม 2558
    • คุณธนาธิป ศรีวิรุฬห์ชัย
    • ผู้ไม่ประสงค์จะออกนาม
  • เดือนสิงหาคม 2558
  • ต้นเดือนกันยายน 2558

ขอให้ทุกท่านมีความเจริญก้าวหน้าในหน้าที่การงาน คิดสิ่งใดก็ขอให้สมปรารถนานะครับ

สี่เดือนที่ผ่านมา นับจาก บันทึกขอบคุณครั้งที่แล้ว งานพัฒนาที่ทำไปพอสรุปได้ดังนี้:

  • Optimize LibThai/LibDATrie เพิ่มเติม ตรวจสอบความเรียบร้อยทั่วไป และออกรุ่น libdatrie 0.2.9 และ libthai 0.1.22 พร้อมอัปโหลดเข้า Debian (libdatrie 0.2.9-1 และ libthai 0.1.22-1)
  • ตามแก้ปัญหาในแพกเกจ libdatrie-dev และ libthai-dev ที่อัปโหลดไว้ ดังที่มีผู้รายงานบั๊ก Debian #788163 และ Debian #788164
  • ออกรุ่น thaixfonts 1.2.7 ซึ่งได้เตรียมการแก้ปัญหาข้อมูล copyright ที่ขาดไว้ พร้อมทั้งเรื่อง reproducibility ที่ระบบของ Debian ตรวจพบ และแก้ปัญหาเล็ก ๆ น้อย ๆ ในตัว Debian package แล้วอัปโหลดเข้า Debian (thaixfonts 1.2.7-1)
  • ปรับแก้ฟอนต์ในชุด Fonts-TLWG ต่อ เพื่อรองรับภาษามลายูปาตานีเต็มรูปแบบ พร้อมกับเตรียม fallback โดยใช้ภาษาแต้จิ๋วเป็นโจทย์ ดังที่ได้ บันทีกไว้ ซึ่งขณะนี้ยังอยู่ระหว่างดำเนินการต่อ

  • อัปเดตแพกเกจ scim-thai ใน Debian เล็กน้อย เพื่อเป็นส่วนหนึ่งของการย้ายไป GCC5 ของ Debian

  • อัปเดตคำแปลชื่อภาษาใน ISO 639 และ ISO 639-3 ในแพกเกจ iso-codes (มีผลใน iso-codes 3.61)
  • ตรวจทานคำแปล GNOME ตามที่มีผู้ส่งเข้ามา

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

ป้ายกำกับ: , , , ,

30 เมษายน 2558

Thanks

ขอขอบคุณย้อนหลัง สำหรับผู้สนับสนุนงานพัฒนาซอฟต์แวร์เสรีของผมในช่วงเดือนมกราคม 2558 ถึงเมษายน 2558 ที่ผ่านมาครับ คือ:

ขอให้ทุกท่านและครอบครัวมีความสุขความเจริญ สุขภาพแข็งแรงทั้งกายใจครับ

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

นอกจากการ optimize libthai/libdatrie ที่เคยเขียนไปแล้ว ก็มีงานจิปาถะอื่น ๆ อีก เช่น

  • งานแปล Xfce [ต้องล็อกอิน] ทั้งไล่กวดและไล่หลัง Xfce 4.12 ที่ออกไป จนขณะนี้อัตราการแปลของภาษาไทยอยู่ที่ 95% แล้ว
  • งานแปล GNOME ซึ่งผมเข้าสู่สถานะ review only (ไม่แปลเองอย่าง active) แล้ว ก็ได้ตรวจทานคำแปลที่มีนักแปลส่งเข้ามา
  • งาน Debian ในช่วงที่ Jessie freeze อยู่ ผมก็ได้แต่เตรียมปรับแก้ประเด็นเล็ก ๆ น้อย ๆ ที่ระบบ QA ต่าง ๆ ของ Debian ตรวจพบเพื่อรออัปโหลดในรอบ Stretch (Jessie + 1) ต่อไป เช่น:
    • lintian ส่วนใหญ่เป็นปัญหารูปแบบแฟ้ม debian/copyright ที่เครื่องแจงอ่านได้ และแฟ้มที่ขาดข้อมูลลิขสิทธิ์ ซึ่งบางส่วนต้องแก้ที่ต้นน้ำ ผมก็ทำเตรียมไว้
    • reproducible ตรวจพบการใช้ timestamp ขณะ build ซึ่งทำให้แพกเกจต่าง ๆ build หลายครั้งแล้วได้ checksum ไม่เท่ากัน ซึ่งทั้งหมดต้องแก้ที่ต้นน้ำ
    • Debian font review ซึ่งแสดงตัวอย่างฟอนต์จากแพกเกจฟอนต์ต่าง ๆ ใน Debian พร้อมผลลัพธ์จากโปรแกรม fontlint ที่ตรวจหาปัญหาต่าง ๆ ในฟอนต์ ทำให้ต้องมา validate ฟอนต์ที่ต้นน้ำทีละตัว ทำให้ได้แก้ปัญหาต่าง ๆ ในเส้นโค้งตัวอักษรของฟอนต์ เช่น การซ้อนทับกันของเส้น, การขาดจุด extrema, การระบุพิกัดของจุดแบบไม่ใช่จำนวนเต็ม, การใช้ชื่อ glyph ที่ไม่ตรงตามมาตรฐาน, ความผิดปกติของตาราง GPOS ฯลฯ แล้วก็เลยเถิดไปถึงการปรับเส้นอักษรแบบยกเครื่องในบางฟอนต์ ซึ่งส่งผลให้ได้เส้นที่คมชัดขึ้นเมื่อแสดงบนจอภาพ
    ประเด็นอื่นที่นอกเหนือจากที่ QA ตรวจพบ เช่น ปรับให้แพกเกจบางตัวที่สามารถใช้เอกสารใน /usr/share/doc ร่วมกันได้ทำเป็น symlink ถึงกัน ตาม Policy 12.3 วรรค 5 เพื่อลดขนาดติดตั้ง
  • งานปรับปรุงฟอนต์ในชุด fonts-tlwg ตามที่ได้รับข้อเสนอแนะจากคุณ Martin Hosken ซึ่งจะนำไปสู่การปรับปรุงการรองรับภาษาชาติพันธุ์ต่อไป
  • การแก้บั๊กใน libdatrie ตามที่มีผู้รายงานเข้ามาทางเมลลิงลิสต์

ขณะนี้ Jessie ก็ได้ออกไปแล้ว รอบการพัฒนาใหม่ของ Stretch ก็กำลังเริ่ม ก็คงใกล้ได้เวลาปล่อยของที่ทำสะสมไว้

ป้ายกำกับ: , , , , ,

05 พฤษภาคม 2557

Thanks

ขอขอบคุณย้อนหลัง สำหรับผู้สนับสนุนงานพัฒนาซอฟต์แวร์เสรีของผมในช่วงเดือนกุมภาพันธ์-เมษายนที่ผ่านมา คือ:

ผมอาจจะสวัสดีปีใหม่ไทยช้าไปนิด ก็ขอให้ทุกท่านที่เอ่ยมาจงร่มเย็นเป็นสุขทุกท่านครับ

หากท่านอ่าน blog ขอบคุณของผมมาหลายครั้งแล้ว และสงสัยว่าจะสนับสนุนงานพัฒนาของผมได้อย่างไร ก็เชิญได้ที่หน้า การสนับสนุนงานพัฒนา ครับ

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

อย่างไรก็ดี งานบางงานที่ไม่ได้เขียนเป็น blog ต่างหากเนื่องจากเป็นงานรูทีนอยู่แล้ว หรือเป็นงานยิบย่อย ก็ขอเล่าเพิ่มเติมจากที่ blog ไปแล้วบ้าง เช่น:

  • งานแปล Xfce ได้แปลขึ้นไปจนถึง 86% แล้ว ก่อนที่จะเกิดการจัดโครงสร้างใหม่ใน Transifex ทำให้สถิติเริ่มเพี้ยน โดยในหน้า dashboard (ภายใต้โครงสร้างใหม่ ปรากฏว่าต้องเป็นสมาชิก transifex จึงจะดูได้) รายงานอัตราการแปลของภาษาไทยที่ 69.3% แต่จำนวนข้อความที่ยังไม่แปลเหลือเพียง 1,571 ข้อความ ซึ่งน้อยกว่าภาษาฟินแลนด์ที่อัตราการแปลสูงกว่าภาษาไทย คืออยู่ที่ 70.4% แต่เหลือข้อความที่ยังไม่แปลถึง 3,653 ข้อความ จึงทำให้เกิดความสับสนในค่าสถิติที่รายงาน
  • เสนอแพตช์ใน Xfce #10311 ที่ได้รายงานไว้เมื่อปีกลาย เกี่ยวกับการบอกเวลาเป็นคำพูดโดยประมาณ โดยขอปรับปรุงให้แปลเวลาเป็นไทยได้ถูกต้องยิ่งขึ้น เช่น ทำให้รายงานเวลาแบบนี้ได้ในพาเนล:
    Thai fuzzy clock
  • ปรับคำแปล dpkg และ apt สำหรับ Debian (มีผลใน dpkg 1.17.7 และ apt 1.0.2 ตามลำดับ)
  • ปรับคำแปล ISO 3166-2 ในแพกเกจ iso-codes เล็กน้อย หลังจากได้แปลชื่อเมืองใน Orage ของ Xfce (มีผลใน iso-codes 3.53) พร้อมกันนี้ก็ได้ปรับคำแปลใน libgweather locations ของ GNOME ไปพร้อมกันด้วย

แผนงานต่อไป เรื่องหลักก็จะเป็นการผลักดันฟอนต์สารบรรณเข้า Debian ตามแผนที่วางไว้ครับ

ป้ายกำกับ: , , ,

11 กุมภาพันธ์ 2557

Thanks, and the November-January Diary

เร่งงานตามสัญญาโครงการอยู่หลายเดือน ไม่ได้เขียน blog จึงขอขอบคุณย้อนหลัง สำหรับผู้สนับสนุนงานพัฒนาของผมในเดือนพฤศจิกายน 2556 ถึงเดือนมกราคม 2557ที่ผ่านมาดังนี้ครับ:

ขออวยพรปีใหม่สากลและตรุษจีนย้อนหลังแด่ผู้สนับสนุนทุกท่าน ขอให้เจริญอายุ วรรณะ สุขะ พละ พร้อมทั้งมั่งมีศรีสุขครับ และที่สำคัญคือ 願源碼與你同在。[หงวงหง่วงแบ้อื่อลื่อตั่งต๋อ] May the Source be with you!

สามเดือนที่ผ่านมา นอกจากงานโครงการอักษรอีสานที่เป็นงานหลักแล้ว ก็มีงานพัฒนาอื่น ๆ เช่น

  • swath 0.5.2
    • แก้ปัญหา infinite loop ใน LaTeX filter ซึ่ง นิวตรอน รายงานมาทาง G+ (เป็น private share) พร้อมแพตช์แก้
    • แก้ปัญหาอักขระหายใน token ยาว ๆ ใน HTML filter ซึ่งคุณ Nicolas Brouard จากโครงการ ดีโมพีเดีย ได้พบขณะใช้ swath ช่วยเตรียมเอกสารฉบับพิมพ์ จากการใช้ base-64 encode รูปภาพในแท็ก <img src="data:image/png;base64,...> ซึ่งทำให้ token ยาวพอจะทำให้พบบั๊กได้ ถือเป็น use case ที่น่าสนใจมาก และทำให้รู้ว่ายังมีผู้ใช้ที่ใช้ HTML filter อยู่ ไม่ใช่แค่ LaTeX
    บั๊กทั้งสองนี้ เกิดจากความพยายามในการป้องกัน buffer overflow ใน swath 0.5.1 แต่แก้ไม่สมบูรณ์ (รุ่นก่อนหน้านั้นจะ segfault ในบั๊กหลังเลยทีเดียว ซึ่งเป็นช่องทางของ buffer overflow exploit ได้)
  • libdatrie 0.2.8
    • แก้ warning ใน test suite
    • แก้ปัญหาที่พบในการใช้ datrie เก็บคีย์ที่เป็นข้อมูล binary ซึ่งจะใช้ alphabet เต็มช่วงตั้งแต่ 1 ถึง 255 ทำให้พบปัญหาคีย์ซ้ำสำหรับอักขระ 255 อันเนื่องมาจากค่าสิ้นสุดการวนลูปที่ไม่ถูกต้อง รายงานโดยคุณ Naoki Youshinaga
    • แก้ให้ trie ล้มเหลวเมื่อเดินด้วยอักขระนอกช่วง alphabet แทนที่จะยอมให้อักขระดังกล่าวเดินได้ด้วยค่า 255 แล้วทำให้เกิดคีย์ปลอม ๆ ขึ้น แนะนำโดยคุณ Naoki Youshinaga เช่นกัน
    • เพิ่มเติมรายละเอียดในเอกสารประกอบ ตามที่ทักท้วงโดยคุณ Naoki Youshinaga
  • ปรับแพกเกจใน Debian โดยการเปลี่ยนแปลงที่น่าสนใจคือ
    • libdatrie-dev และ libthai-dev รองรับ multi-arch แล้ว หลังจากที่รองรับแค่ตัว lib package มาก่อนหน้านี้ ขณะนี้ dpkg รองรับการใช้แฟ้มร่วมกันระหว่างหลายแพกเกจแล้ว ทำให้สามารถใช้ header file ร่วมกันระหว่าง architecture ที่ต่างกันได้
    • รัน test suite ในการ build ทั้งใน libdatrie และ libthai ซึ่งทำให้พบ warning เพิ่มเติมใน libthai และแก้ที่ต้นน้ำแล้ว
  • ร่วมแปล VLC หลังจากพบคำสะกดผิดใน UI ก็ได้แปลเพิ่มเติมด้วยพอสมควร โดยเฉพาะชื่อภาษาต่าง ๆ ทำให้ได้ไปสอบทานกับคำแปล ISO 639 และ ISO 639-3 ในแพกเกจ iso-codes ควบคู่กันไปด้วย (ออกมาในรุ่น 3.50)
  • ตรวจทาน คำแปล GNOME ตามที่มีผู้ส่งคำแปลเข้ามา
  • งานแปล Xfce ขณะนี้แปลได้ 70% แล้ว

ป้ายกำกับ: , , , , , , ,

08 พฤศจิกายน 2556

Thanks, and the September-October Diary

ขอขอบคุณผู้สนับสนุนงานพัฒนาของผมในเดือนกันยายน-ตุลาคมที่ผ่านมาดังนี้ครับ:

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

งานในช่วงสองเดือนที่ผ่านมา แบ่งเป็นหมวด ๆ ดังนี้ครับ:

โครงการอักษรอีสาน

งานพัฒนาที่ LTN และ Debian

เป็นการปล่อยสิ่งที่พัฒนาสะสมมาตั้งแต่ระลอกที่แล้วเมื่อต้นปี โดยทยอยตรวจสอบความเรียบร้อยและออกรุ่นซอฟต์แวร์ต่าง ๆ ดังนี้:

  • libdatrie 0.2.7
    • แก้ไขประเด็นเรื่อง portability เกี่ยวกับ void pointer arithmatics ซึ่งจะมีปัญหากับคอมไพเลอร์ที่ไม่ใช่ GCC โดยได้รับรายงานจากคุณ Mikhail Korobov ว่าคุณ Gabi Daver ได้พบปัญหานี้ขณะคอมไพล์ด้วย Visual C++ พร้อมแพตช์แก้
    • ระหว่างแก้ ได้ทดลองคอมไพล์ด้วยตัวเลือก -Wall ทำให้เจอ warning เพิ่มเติม และแก้ไขจนหมด
    • เขียน test case เพื่อให้สามารถตรวจสอบความถูกต้องเวลาแก้โค้ดได้ในอนาคต ที่ผ่านมาจะทดสอบผ่าน libthai เป็นหลัก แต่เขียน test case เป็นเรื่องเป็นราวน่าจะสะดวกกว่า ซึ่งในระหว่างที่เขียน test case ก็ทำให้ได้อ่านเอกสารประกอบและแก้ไขที่ผิด พร้อมกับได้เพิ่ม API เพื่อความสะดวกในการใช้งานด้วย
    • ปรับ Doxyfile ที่ใช้สร้างเอกสาร เพื่อตัดสิ่งที่เลิกใช้แล้วใน doxygen 1.8.4
    • ออก libdatrie 0.2.7.1 ตามมา หลังจากพบว่าลืมปรับค่า library version เพื่อให้ SONAME สะท้อนการเพิ่ม API ที่เกิดขึ้น
    • อัปโหลด 0.2.7.1-1 เข้า Debian sid
  • thaixfonts 1.2.6
    • มีการปรับระบบ build ตาม autoconf รุ่นใหม่ และเปลี่ยนมาใช้ XZ tarball แทน GZ tarball ซึ่งเป็นสิ่งที่ทำไว้นานแล้ว ก็ออกรุ่นมาเพื่อปรับตามซอฟต์แวร์อื่นเท่านั้น ส่วนตัวเนื้อหาฟอนต์ไม่มีการเปลี่ยนแปลงอะไร
    • อัปโหลด 1:1.2.6-1 เข้า Debian sid
  • LibThai 0.1.20
    • ปรับข้อมูลพจนานุกรมตัดคำตามที่พบกรณีต่าง ๆ ในช่วงที่ผ่านมา [เกร็ด: รุ่นนี้รู้จักอำเภอขนอมที่ไม่ใช่ ขน-อม แล้ว ;-)]
    • แก้ compiler warning ที่พบใน test case ต่าง ๆ
    • อัปโหลด 0.1.20-1 เข้า Debian sid
  • TeX hyphenation patterns
    • sync ข้อมูลพจนานุกรมตัดคำจาก libthai เข้าไปที่ ThaiLaTeX SVN พร้อมกับปรับแก้ hyphenation patterns ตามข้อมูลใหม่
    • แจ้งไปที่โครงการ tex-hyphen ว่าขอปรับข้อมูล hyphenation patterns ภาษาไทย พร้อมกับรายงานปัญหาของสคริปต์บางตัวที่ใช้สร้างข้อมูลอัตโนมัติ คุณ Mojca Miklavec ก็ได้ช่วยแก้สคริปต์ให้ (rev 652, 653) และรับแพตช์ปรับข้อมูลภาษาไทยไปรวมให้ (rev 654)
    • สอบถามและขอ import source ของ hyphenation patterns ภาษาไทยเข้าใน tex-hyphen โดยตรง เพื่อที่ต่อไปจะได้ไปทำงานที่นั่นแทนที่จะต้องผ่าน ThaiLaTeX แบบนี้ ทั้งนี้เพื่อให้เป็นไปตามแผน ที่เคยคุยกันไว้ จนกระทั่งได้ import source ใน rev 655
    • ไม่มีการอัปโหลดอะไรใน Debian แค่รอ Debian อัปเดตแพกเกจ texlive-base เท่านั้น
    • request ขอลบ thailatex ออกจาก Debian unstable เพื่อไม่ให้มีซอร์สตกค้างอยู่ (ลบแล้ว)
  • swath 0.5.1
    • แก้รหัสตัดคำของ Lambda จาก U+200C (ZWNJ) เป็น U+200B (ZWSP) ...ว่าแต่มีใครใช้ฟีเจอร์นี้ไหมเนี่ย?
    • sync ข้อมูลพจนานุกรมตัดคำจาก ThaiLaTeX/hyph-utf8 (ซึ่ง sync มาจาก LibThai อีกที) เพื่อให้ตัวตัดคำ LaTeX ทำงานสอดคล้องกับ hyphenation patterns
    • ก่อนออกก็ปรับซอร์สโค้ดของ swath เพื่อให้แต่ละรุ่นมีการปรับปรุงด้านความปลอดภัยไปทีละน้อย โดยในรุ่นนี้ได้ป้องกัน buffer overflow ใน file filter ต่าง ๆ (ยังมีให้แก้อีกเยอะในรุ่นถัด ๆ ไป :-P )
    • อัปโหลด 0.5.1-1 เข้า Debian sid
  • IBus-LibThai 0.1.2
    • แก้ปัญหาการกด shortcut (เช่น Ctrl-C) ใน IBus 1.5 อันเนื่องมาจากการเชื่อมรวมกับ XKB ของ IBus รุ่นนี้ ทำให้ผังแป้นพิมพ์ที่ระบุใน metadata ของ IBus-LibThai ว่าเป็น th ทำให้กด Ctrl-C ได้เป็น Ctrl-แ เสมอ แก้ไขโดยปรับผังแป้นพิมพ์เป็น us เท่านั้น
    • อย่างไรก็ดี การแก้ปัญหาในรายการที่แล้วทำให้เกิดปัญหาใหม่ คือทำให้กด accelerator ใน GUI ที่แปลเป็นไทย (เช่น Alt-ฟ เพื่อเรียกเมนู แฟ้ม) ไม่ได้ วิธีแก้ที่เหมาะสมจึงควรให้ IBus-LibThai พยายามแปลง key event ที่มีการกดปุ่มประกอบให้เป็นภาษาไทย แต่ปรากฏว่าไม่สามารถส่ง event ที่แปลงแล้วกลับไปหา event queue ได้ เนื่องจากฟังก์ชัน ibus_engine_forward_key_event() ไม่ทำงานอย่างที่คาด งมอยู่นานก็ไม่สามารถแก้ได้ เวลามีจำกัดจึงใช้วิธีกำหนดผังแป้นพิมพ์เป็น us,th เพื่อให้ GTK+ กับ XKB ไปคุยกันเอง ซึ่งก็ได้ผล แต่ปัญหาคือ มันจะแปลงอักขระตามผังเกษมณีเท่านั้น ใครใช้ผังปัตตะโชติใน IBus-LibThai ก็จะงง ไว้หาวิธีแก้ต่อไปในรุ่นหน้า
    • เพิ่มการรองรับการป้อนเลขไทยด้วยแป้นตัวเลข โดยอาศัยการกด CapsLock ล็อคไว้ หรือใช้การยกแคร่ระดับ 3 (Alt ขวา) อนึ่ง ตามที่เคยได้ ออกแบบไว้ เมื่อสองปีก่อนนั้น จะใช้ ScrollLock ไม่ใช่ CapsLock เนื่องจาก CapsLock จะไปเพิ่มขั้นตอนขณะสลับภาษาไปเป็นภาษาอังกฤษที่จะต้องปลด CapsLock อีกขั้นหนึ่งด้วย แต่ในครั้งนี้ได้ตัดสินใจเปลี่ยนเป็น CapsLock ด้วยเหตุผลสองประการ ประการแรกคือการตรวจสอบสถานะของ ScrollLock ด้วย API ของ IBus เป็นไปได้ยาก เพราะไม่มีการเตรียมการรองรับไว้ ประการที่สองคือในแป้นพิมพ์ย่อส่วน เช่นแป้นพิมพ์โน้ตบุ๊ก หลายรุ่นได้ตัดปุ่ม ScrollLock ออกไปแล้ว ตามที่ วิกิพีเดียว่าไว้ (โน้ตบุ๊กผมก็ไม่มี)
    • อัปโหลด 0.1.2-1 เข้า Debian sid

งานแปล

  • ตรวจทาน คำแปล GNOME ตามที่มีผู้ส่งคำแปลเข้ามา โดยที่ผมไม่ได้แอคทีฟตามแปลเองอีกต่อไปแล้ว
  • แปล Xfce เป็นไทย เพิ่มเติม โดยล่าสุด ได้แปล core package ต่าง ๆ ครบแล้ว พร้อมกับปรับคำแปลทั้งหมดจาก master กลับไปที่ branch xfce-4.10 ด้วย และแปลปลั๊กอินที่ผมใช้อีกนิดหน่อยเพิ่มเติม ทำให้ขณะนี้อัตราการแปลของภาษาไทยอยู่ที่ 54% แล้ว

blog นี้ก็เลยยาวหน่อย ขอขอบคุณทุกท่านที่ติดตามครับ

ป้ายกำกับ: , , , , , , , , , ,

31 สิงหาคม 2556

Thanks, and the July-August Diary

ผู้หย่อนสตางค์ลงหมวกเพื่อสนับสนุนงานพัฒนาของผมในเดือนกรฎาคม-สิงหาคมที่ผ่านมา คือ อ.พฤษภ์ บุญมา และคุณวิทยา ไตรสารวัฒนะ โดยทั้งสองท่านได้หย่อนสตางค์ทั้งสองเดือน ขอขอบคุณอีกครั้งครับ May the Source be with you!

สองเดือนที่ผ่านมา มีกิจธุระบางอย่างทำให้ไม่มีเวลาเขียน blog ทำให้ต้องยกยอดมาเขียนสองเดือนรวมกัน สำหรับกิจกรรมที่เกิดขึ้นระหว่างนี้ ก็ได้แก่:

  • ปรับวิธีการเพื่อแก้ขัดสำหรับการรองรับอักษรไทน้อยในระหว่างที่ยังไม่กำหนดมาตรฐาน โดยจากการทดลองเมื่อเดือน มิ.ย. พบว่า วิธีวิรามยังต้องการการรองรับในเบราว์เซอร์เพิ่มเติม แต่ในช่วงของการบันทึกการปริวรรตเพื่อสำรวจข้อมูลในช่วงนี้ จำเป็นต้องทำให้มันทำงานได้ไปก่อน จึงปรับมาใช้การกำหนดรหัสอักขระแบบ pre-composed ไปก่อน กล่าวคือ
    • สระออย แทนด้วย U+0EBE
    • บ เฟื้อง แทนด้วย U+0EE0
    • ม เฟื้อง แทนด้วย U+0EE1
    • ล เฟื้องข้าง แทนด้วย U+0EE2
    • ส เฟื้อง แทนด้วย U+0EE3
    • พ เฟื้อง แทนด้วย U+0EE4
    • ธ เฟื้อง แทนด้วย U+0EE5
    • ด เฟื้อง แทนด้วย U+0EE6
    • ตัวควบ ขฺน แทนด้วย U+0EF0
    • ตัวควบ ขฺม แทนด้วย U+0EF1
    • ตัวควบ คฺน แทนด้วย U+0EF2
    • ตัวควบ คฺม แทนด้วย U+0EF3
    • ตัวควบ ถฺน แทนด้วย U+0EF4
    • ตัวควบ ถฺล แทนด้วย U+0EF5
    • ตัวควบ สฺน แทนด้วย U+0EF6
    • ตัวควบ สฺม แทนด้วย U+0EF7
    ทั้งนี้ ได้ทดลองใช้กับการปริวรรตใบลานเรื่อง พญาคันคาก และ ฮีตคองคะลำ เป็นตัวอย่าง โดยได้ปรับโครงสร้างของ ระบบป้อนข้อความล้านช้าง เพื่อเพิ่ม engine สำหรับอักษรไทน้อย เพื่ออำนวยความสะดวกในการเตรียมข้อมูลด้วย
  • เซ็นสัญญากับเนคเทคเพื่อเป็นที่ปรึกษาโครงการร่างมาตรฐานภาษาไทย โดยมีเรื่องอักษรอีสานอยู่ในวาระด้วย
  • เริ่มโครงการ แปล Xfce ให้เป็นภาษาไทย โดยในขณะนี้ ผมเริ่มแปลไปได้สองตัว คือ Xfce4-panel และ Xfwm4 ด้วยสิทธิ์ของ translator ธรรมดา ยังไม่ใช่ moderator โดยหวังว่าจะเรียนรู้ระบบและค่อยขยับเป็น reviewer หรือ coordinator ในที่สุด ระบบแปลของ Xfce ใช้ Transifex ซึ่งหลักการคล้าย rosetta บน launchpad ของ Ubuntu ระบบนี้จำเป็นอย่างยิ่งที่จะต้องมี reviewer ที่แอคทีฟ เพื่อควบคุมคุณภาพและความสม่ำเสมอของคำแปลให้ไปในทางเดียวกันแบบ GNOME ปัจจุบันผมจึงยังไม่ประสานงานกับนักแปลอื่นจนกว่าจะมีสิทธิ์ทำอะไรได้มากกว่านี้
  • ตรวจทานคำแปล GNOME ตามที่มีผู้ส่งคำแปลเข้ามา สำหรับ GNOME นี้ ผมเลิกแอคทีฟไปแล้ว หลังจากเปลี่ยนมาใช้ Xfce แทน แต่ผมจะยังแปลเฉพาะในส่วนที่เป็นประโยชน์ต่อ Xfce (เช่น GLib, GTK+, Evince, Zenity) เท่านั้น ส่วนอื่น ๆ นั้น หากมีผู้ส่งคำแปลเข้ามา ผมก็ยังยินดีตรวจทานและ commit ให้ครับ เพียงแต่ผมจะไม่ไปไล่แปลเองอย่างเคยเท่านั้น

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

ป้ายกำกับ: , , , ,

20 เมษายน 2553

Productivity

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

สิ่งหนึ่งที่ผมสังเกตได้จาก Mini-DebCamp คือความขยันของ DD แต่ละคน ทันทีที่มีเวลาว่างจากกิจกรรมต่าง ๆ ก็จะเห็นเขาเปิดโน้ตบุ๊กขึ้นมาทำงาน ทั้งในล็อบบี้โรงแรม ระหว่างรอต่อเครื่องบิน (เจอเมลของ Christian ใน mailing list ของ Debian ระหว่างที่เขาเดินทางจากปารีสมาขอนแก่น!) ก็เลยเข้าใจทันทีเมื่อเห็นสไลด์เรื่อง "How to contribute to Debian" ของเขา ที่เอารูปท่าทางทำงานของ DD หลายคนมาเผย บางคนนั่งทำงานกับพื้นข้างตู้ขายน้ำหยอดเหรียญในสนามบิน บางคนนั่งแฮ็กในห้องน้ำ คือที่ไหนก็ได้ ขอให้มีสัญญาณ Wi-Fi และยิ่งมีปลั๊กไฟให้ใช้ยิ่งดีใหญ่ ถึงไม่มี Wi-Fi ก็ยังทำงานแบบออฟไลน์ได้

ผมเองเคยเป็นแบบนี้อยู่พักหนึ่ง ตอนที่พยายามดันงานแปล GNOME ภาษาไทยให้ขึ้นแท่น supported language ซึ่งสำเร็จในรุ่น 2.12 ตอนนั้นว่างเมื่อไรเป็นเปิดโน้ตบุ๊กมาแปล (แต่ยังไม่เข้มข้นขนาด DD ต่างประเทศที่ว่ามา เพราะโน้ตบุ๊กผมแบตเสื่อมแล้วในตอนนั้น) ทำงานสะสมไปวันละนิดละหน่อย แต่ขอให้ต่อเนื่อง ในที่สุดมันก็กลายเป็นปริมาณที่มากพอ

อารมณ์คงประมาณคนติด twitter หรือ BB chat ล่ะมั้ง ว่างเมื่อไรเป็นนั่งจิ้ม เพียงแต่เปลี่ยนจาก tweet หรือ chat มาเป็นงานแปลหรืองานแฮ็กเท่านั้น เอ.. หรือว่าจริง ๆ ถ้าเปลี่ยนได้ เมืองไทยอาจมี FOSS contributor เพิ่มขึ้นอีกเยอะแยะก็เป็นได้?

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

ความจริง ผมเคยบอกว่าผมจะ ลดบทบาทงานแปล ของตัวเองลง แต่ปล่อยมาปีหนึ่ง ก็ไม่ปรากฏว่ามีผู้เข้ามาแปลเพิ่มมากนัก แล้วข้อความใหม่ก็สะสมเป็นดินพอกหางหมูขึ้นเรื่อย ๆ พอดีผมมีเวลาว่างก็เลยเข้ามาเคลียร์เพื่อช่วยลดภาระของคนที่จะเข้ามาช่วยแปล ไม่ให้มันดูน่ากลัวเกินไป ก็ยังรอคนมาช่วยแปลอยู่นะครับ โดยเฉพาะใน GNOME 2.30.1 ที่จะ tarballs due วันที่ 26 เม.ย. นี้ (แหล่งข้อความ)

ปล. productivity ในช่วงนี้ดูจะเป็นปฏิภาคผกผันกับปริมาณข่าวการเมืองที่ติดตาม หลายคนคงพบว่า วันไหนห่างไกลการเมือง วันนั้นชีวิตดู productive ขึ้นทันตาเห็น :P

ป้ายกำกับ: , ,

03 กุมภาพันธ์ 2553

Use GT200, Luke

…เพราะเราจะ ล้างป่าช้า OSS Glossary กันอีกครั้ง ต้องเตรียมการ์ดชนิดไหนมา ก็ขอให้ดูรายละเอียดที่เคยแจงไว้ใน blog เก่าเมื่อครั้งที่แล้ว นะครับ

กำหนดการ: 6 ก.พ. 2553 ตั้งแต่ 10.00 น. เป็นต้นไป ที่ห้อง #tlwg ณ irc.linux.in.th (OFTC)

สำหรับที่มาของการนัดล้างป่าช้าครั้งนี้ มาจาก gumara ครับ ดังที่ได้ คุยกันใน thai-l10n mailing list และมาจากความต้องการที่มีมานานแล้วของเหล่านักแปล ที่จะใช้งาน OSS Glossary กันอย่างมีประสิทธิภาพอย่างที่ควรจะเป็นเสียที

ป้ายกำกับ:

29 สิงหาคม 2552

How Translation is in need

GNOME 2.28 string freeze แล้ว ได้เวลามาคิดเกี่ยวกับเรื่องแปลอีกแล้ว

ผมเคย blog ไว้ ว่า จะลดบทบาทงานแปลใน GNOME ลง ให้เหลือเพียงการประสานงาน (ตรวจทานและ commit และ maintain เล็ก ๆ น้อย ๆ) เท่านั้น โดยไม่ลงมือแปลเองให้มากเหมือนเมื่อก่อน เพราะต้องการเวลาไปทำงานพัฒนาส่วนที่เป็น coding ที่เคยเป็นงานหลักของผมบ้าง

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

เรื่องการปล่อยมือจากงานแปล ก็ทำให้ผมมีเวลาไปให้ความสนใจกับงานพัฒนา ตามที่ได้ blog มาเป็นระยะ ๆ แล้ว และสำหรับ GNOME 2.28 (ทั้ง UI และ doc) นี้ ผมก็พยายามจะทำตามที่ตั้งใจไว้ คือไม่ลงมือแปลเอง ยกเว้นกรณีขาดเล็กขาดน้อย แต่ยินดีรับคำแปลที่นักแปลส่งมาให้

เรื่องประเด็นว่างานแปลจำเป็นแค่ไหน ผมเองยังมีความรู้สึกว่า ผู้ใช้คนไทยส่วนใหญ่ที่ผมพบ จะไม่เปิดใช้คำแปลไทยกัน และผมก็เคยพยายามอธิบายให้ฝรั่งฟังตอนที่ถกหาทางออกเรื่อง โลโก้ของ GNOME โดยมีแนวคิดให้ localize โลโก้ตามภาษาของข้อความ ว่าสำหรับเมืองไทยอาจใช้ไม่ได้ เพราะผู้ใช้ส่วนใหญ่ยังชอบใช้เมนูอังกฤษอยู่ แม้ว่าทักษะภาษาอังกฤษโดยเฉลี่ยของประชากรจะยังไม่สูงนักก็ตาม และการใช้เมนูอังกฤษ ก็ไม่มีอะไรสัมพันธ์กับความชอบหรือไม่ชอบส้นตีน

ต่อมา GNOME เขาก็มี การสำรวจพฤติกรรมผู้ใช้ GNOME ก็ปรากฏว่าสำหรับคนทั้งโลกแล้ว ประมาณ 70% จะใช้โปรแกรมในภาษาของตัวเอง อีก 30% ที่เหลือจึงจะใช้เมนูที่ไม่ใช่ภาษาตัวเอง (หมายความว่า ผู้ที่พูดภาษาอังกฤษเปิดโปรแกรมภาษาอังกฤษ จะนับรวมอยู่ในกลุ่มเดียวกับผู้ที่พูดภาษาไทยเปิดโปรแกรมฉบับแปลไทย ดังนั้น ตัวเลข 30% จึงเป็นการนับผู้ใช้ที่พูดภาษาอื่นแต่ยังเปิดโปรแกรมเป็นภาษาอังกฤษเท่านั้น โดยอาจเป็นไปได้ที่จะนับรวมคนที่เปิดโปรแกรมฉบับแปลเป็นภาษาอื่นที่ไม่ใช่ทั้งภาษาพูดของตนและภาษาอังกฤษบ้าง แต่คงมีน้อย :P)

อันนั้นผมยังคิดว่าเป็นพฤติกรรมโดยรวมของประชากรโลก ยังไม่ใช่ของคนไทย ก็เลยลองเปิด โพลล์ ที่ debianclub ดู โดยในขณะที่เขียน blog นี้ มีผู้ลงมติ 292 ราย โดย 67% จะเปิดใช้เมนูไทย

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

เป็นอันว่าผมคงเอาไปอ้างกับฝรั่งไม่ได้อีกแล้ว ว่าคนไทยส่วนใหญ่เปิดเมนูอังกฤษ เพราะผลสำรวจไม่เหมือนกับที่คิดไว้ แต่โพลล์นี้ไม่ได้มีเจตนาจะเอามาสนับสนุนความจำเป็นของงานแปล เพราะแม้จะไม่มีโพลล์นี้ ผมก็ยังคงคิดว่างานแปลสำคัญอยู่นั่นเอง ตามที่ได้ว่าไปแล้วใน blog ก่อน ๆ

ป้ายกำกับ: , ,

23 มีนาคม 2552

Thai X locale, Extended Grapheme Cluster in Pango

หลังจากที่ GNOME 2.26 ออกไปแล้ว ก่อนที่จะเริ่มเคลียร์ TODO list ก็แปล Rhythmbox ที่มีการ แจ้งการออกรุ่นล่วงหน้า ให้กับนักแปลไว้เสียก่อน ดูเหมือนจะทันนาทีสุดท้ายก่อน 0.12.0 จะออกพอดี (วันพฤหัสที่ผ่านมา)

จากนั้น ก็มีอีกรายการหนึ่งที่ผมลืมใส่ไว้ใน TODO list คือการ update libx11 deb ซึ่งมีการปรับรุ่นเป็น 1.2 ใน sid โดยเพิ่มแพตช์ภาษาไทยเข้าไปใหม่ (ตามรายการสรุปใน blog เก่า) แต่พร้อมกันนั้น ก็ไปพบเพิ่มเติม ว่า X locale ไทยมีแฟ้ม Compose เปล่า ๆ โผล่มาด้วย ไม่แน่ใจว่ามีมาตั้งแต่รุ่นไหน แต่ผลของมันก็คือ การกำหนดโลแคล LC_CTYPE ให้เป็นไทยจะไม่เพียงพออีกต่อไปที่จะเปิดใช้ XIM ไทย แต่จะต้องกำหนด locale modifier ใน XMODIFIERS แบบเฉพาะเจาะจงด้วย (ดูรายละเอียดการกำหนด XMODIFIERS ใน บทความใน homepage) มิฉะนั้น แฟ้ม Compose จะทำให้ XIM ของยุโรปที่ชื่อ "local" ถูกเรียกขึ้นมาใช้แทน

การใช้ Compose นี้ นักพัฒนา Xandros ที่เคยรายงานบั๊กเข้ามา (ตามที่ เล่าไว้ใน blog เก่า) ได้บอกไว้ตอนนั้นว่า เขาแก้ขัดปัญหา SCIM บนโลแคลไทยไป ด้วยการคัดลอกข้อมูล X locale ของ en_US เข้ามาทับของไทย ..ซะงั้น ผมไม่แน่ใจว่าตรงนี้ได้มีการติดต่ออะไรไปที่ต้นน้ำจนมีการใส่ Compose มาใน X locale ไทยตั้งแต่ต้นน้ำหรือเปล่า หรือที่เป็นไปได้อีกอย่าง คือระบบ Makefile ของ libx11 ต้นน้ำนั้น ใช้วิธี include common rule ในทุกโลแคล โดยต้องการให้ทุกโลแคลมีแฟ้ม Compose ทั้งหมด!

จะยังไงก็ตามแต่.. ผมได้รายงานบั๊ก Debian #520509 พร้อมชี้แจงว่า upstream ได้เพิกเฉยต่อบั๊กและแพตช์ต่าง ๆ ที่รายงานไป แต่วิธีแก้แบบนี้ไม่น่าจะถูกต้อง พร้อมกันนั้น ก็ได้ update deb ที่ debclub เอาไว้ด้วย

เรื่องถัดมาที่ทำไป คือเรื่อง extended grapheme cluster ใน Pango กับการเลื่อนเคอร์เซอร์และการลบเซลล์ด้วย Delete (เช่น ใน Mozilla #474068) หลังจากได้ทราบรายละเอียดจาก comment ใน Mozilla แล้ว ก็ตรวจสอบโค้ดของ Pango อีกที และได้ file GNOME #576156 พร้อมเสนอแพตช์แฮ็ก ๆ ไปแพตช์หนึ่ง

เรื่องการ file bug นี้ หยิบขึ้นมาทำก่อน เพราะเป็นเรื่องที่ต้องรอคำตอบ เรา file ไว้แล้วไปทำอย่างอื่นระหว่างรอได้

เรื่องต่อไป คิดว่าจะเป็นเรื่องฟอนต์ เกี่ยวกับปัญหาที่ Davide Viti ได้ ตรวสอบ ไว้

ป้ายกำกับ: , , ,

20 มีนาคม 2552

Skills for Translation

ในตอนท้ายของ blog ก่อน ผมได้เขียนถึงลักษณะของงานแปล ว่าเป็นงานที่มีแรงจูงใจเชิงพาณิชย์ต่ำมาก แม้แรงกระตุ้นใด ๆ ที่ทฤษฎีโอเพนซอร์สกล่าวถึงก็ใช้การไม่ได้ รวมถึงเรื่องการยอมรับในวัฒนธรรมแฮกเกอร์ด้วย แม้พวกแฮกเกอร์จะยกย่องนักแปล ก็มักจะยกย่องในแง่ของความอุตสาหะ แต่ไม่ได้ยอมรับในทักษะอื่น ๆ เท่าไรนัก

จริงอยู่ การแปลโปรแกรมนั้น ใช้ทักษะทางเทคโนโลยีน้อยกว่าการเขียนโปรแกรมมาก แต่จากการที่ได้สัมผัสกับหลาย ๆ คนที่ไม่เคยทำงานแปล ผมรู้สึกได้ว่าคนส่วนใหญ่ยังประเมินทักษะที่จำเป็นต่องานแปลต่ำเกินไป ซึ่งส่งผลไปถึงการไม่ยอมรับงานแปลในฐานะของงานที่ต้องใช้ฝีมือเท่าไรนัก

ในแง่เทคโนโลยีที่ใช้ งานแปลไม่ต้องการเครื่องมือที่ซับซ้อนอะไรมาก แค่ PO editor สักตัวก็พอแล้ว หรืออย่างหรูหน่อยก็เป็น web-based อย่าง pootle หรือ launchpad (ที่ผมไม่ชอบ เพราะเชื่องช้าเกินไป สู้การทำงานออฟไลน์ไม่ได้) หรือเครื่องมือจัดการ translation memory และ glossary แต่เขาไม่ต้องรู้เทคโนโลยีอะไรที่มากกว่านั้นอย่างที่การเขียนโปรแกรมต้องการ นั่นคือสิ่งที่คนทั่วไปประเมินงานแปล แต่มักจะไม่ได้คำนึงถึงทักษะอื่น ๆ ของผู้แปล เพื่อให้ได้งานแปลที่ดีด้วย

พูดสั้น ๆ คือ แปลน่ะง่าย แต่แปลให้ดีนั้น ต้องมีกึ๋นพอสมควร

บอกไว้ก่อนว่าเจตนาของการเขียน blog นี้ คือการอธิบายถึงทักษะที่จำเป็นสำหรับงานแปล โดยหวังให้งานแปลได้รับการยอมรับหรือใส่ใจมากขึ้น ไม่ได้เขียนเพื่อทำให้ผู้ที่อยากร่วมแปลกลัวจนไม่กล้าเข้าร่วม ทักษะนั้นฝึกกันได้ครับ อย่างที่ Brian Kernighan บอก ว่า "วิธีที่ดีที่สุดในการเรียนเขียนโปรแกรม ก็คือการลงมือเขียน" งานแปลก็ไม่ต่างกันครับ

ขอแยกทักษะที่จำเป็นเป็นสองเรื่อง คือสำหรับนักแปลโดยทั่วไป และสำหรับผู้ประสานงานแปลที่ต้องทำงานกับ source tree โดยตรง

สำหรับนักแปลทั่วไป

การแปลซอฟต์แวร์ ก็คล้ายกับการแปลทั่วไป ตรงที่ต้องมีความเข้าใจในสิ่งที่แปลพอสมควร ดังนั้น ทักษะที่จำเป็นก็คงเป็น:

  • ภาษาอังกฤษ ต้องอ่านภาษาอังกฤษเข้าใจ รู้จักรูปประโยคหรือสำนวนต่าง ๆ และสามารถจับใจความของทั้งประโยคได้อย่างถูกต้อง อย่างน้อย ๆ ต้องไม่ใช่การแปลแบบคำต่อคำ แต่ต้องเข้าใจทั้งประโยคก่อนแปล
  • ภาษาไทย อันนี้สำคัญไม่แพ้กัน เมื่อเข้าใจประโยคภาษาอังกฤษแล้ว ก็ต้องสามารถเลือกคำภาษาไทยที่อธิบายความหมายได้อย่างเหมาะเจาะ พร้อมทั้งเรียบเรียงได้อย่างสละสลวย ผมพบว่า ทักษะนี้บางครั้งต้องใช้ความคิดสร้างสรรค์อย่างมาก ซึ่งการระดมความคิดในชุมชนสามารถช่วยได้ นอกจากนี้ เพื่อคุณภาพงานแปลที่ดี การสะกดคำก็ต้องแม่น รู้ศัพท์บัญญัติอย่างเพียงพอ หรือสามารถสืบค้นได้
  • เข้าใจเทคโนโลยี เป็นทักษะที่ทำให้นักแปลนิยายกับนักแปลซอฟต์แวร์ต่างกัน นักแปลซอฟต์แวร์อาจไม่ต้องรุ่มรวยสำนวนอะไรมาก แต่จะแปลอะไรก็ต้องเข้าใจในสิ่งนั้น ต้องเข้าใจความหมายที่แตกต่างจากคำสามัญของศัพท์เทคนิคต่าง ๆ เพื่อที่จะตีความได้ไม่ผิดเพี้ยน
  • เข้าใจการทำงานของโปรแกรม ข้อความจำนวนมากเป็นข้อความสั้น ๆ แต่ตีความได้หลายแบบ การที่จะเลือกความหมายที่เหมาะสม ก็ต้องเข้าใจการทำงานของโปรแกรมด้วย ว่าข้อความไปปรากฏที่ไหน เวลาใด โปรแกรมมีเงื่อนไขการทำงานอย่างไร ความเข้าใจอย่างถ่องแท้จะทำให้ได้คำแปลที่ไม่ทำให้ผู้ใช้งง ตัวอย่างที่ผมยกบ่อย ๆ คือ "Receiving mails" จะแปลว่า "การรับเมล" หรือ "กำลังรับเมล" ก็ต้องพิสูจน์ทราบให้ได้ ถ้าสามารถแกะซอร์สโค้ดได้ก็จะยิ่งชัดเจน แต่ถ้าไม่ได้ ก็อาจต้องใช้วิธีทดลองเอา
  • ความรู้รอบตัว เนื่องจากงานแปลมักมีขอบเขตครอบคลุมหลายโปรแกรม บางครั้งก็จำเป็นต้องอาศัยความรู้รอบตัวเกี่ยวกับสาขาต่าง ๆ เช่น เรื่องชื่อประเทศ ชื่อเมือง วัฒนธรรมต่าง ๆ ในโลกที่อาจเป็นต้นตอของการยืมชื่อมาใช้ในโปรแกรม คำศัพท์ที่ใช้กันในวงการที่เกี่ยวข้อง เช่น แปลโปรแกรมกราฟิกส์ก็ต้องเข้าใจศัพท์ของศิลปะและสิ่งพิมพ์ แปลโปรแกรมสื่อประสมก็ต้องเข้าใจศัพท์กล้อง ศัพท์การทำสื่อ ฯลฯ
  • เข้าใจเรื่องทางเทคนิคที่จำเป็น เช่น เข้าใจ format string ของภาษา C, C#, Python เพียงพอ เข้าใจ format string ของ strftime การกำหนดปุ่มลัดของเมนู และเรื่องที่เกี่ยวกับการแปลโดยตรง เช่น plural form, การใช้เครื่องมือ gettext เบื้องต้น

ฉะนั้น งานแปลจึงไม่ใช่แค่งานที่อาศัยความอึดอย่างเดียว แต่ต้องอาศัยทักษะรอบด้านพอสมควร ผมเคยไปได้ยินใครบางคนปรามาสทีมเนคเทคในสมัยที่เขาเริ่มงานแปล ว่าทำได้แค่แปลโปรแกรม งานแบบนี้ใคร ๆ ก็ทำได้ แต่จากการที่ได้สัมผัสงานแปลมา ผมไม่เห็นด้วยครับ ว่ามันจะเป็นงานที่ใคร ๆ ก็ทำได้ และเมื่อคำนึงถึงข้อเท็จจริงที่ว่า มันเป็นงานที่แรงจูงใจเชิงพาณิชย์ต่ำมากด้วยแล้ว หน่วยงานรัฐอย่างเนคเทคยิ่งเหมาะสมที่จะรับเป็นแม่งานเรื่องนี้ หรือจะเป็นผู้ให้ทุนอย่าง SIPA รวมทั้งสถานศึกษาอย่าง ม.บูรพา ด้วย

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

สำหรับผู้ประสานงานแปล

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

ดังนั้น ทักษะเพิ่มเติมที่ควรมีนอกเหนือจากการแปลตามปกติคือ:

  • การใช้ version control หรือระบบติดตามบั๊ก เพื่อจะได้ทำงานกับ source tree ได้ การใช้งานนี้ รวมถึง การ checkout, update, commit ธรรมดา และการ diff เพื่อมองหาการเปลี่ยนแปลงของข้อความในโปรแกรม หรือข้อความที่มีคำแปลใหม่เข้ามา
  • การใช้เครื่องมือของ gettext หรือ intltool เพื่อจัดการกับแฟ้ม PO และสร้าง diff ที่เล็กที่สุดเพื่อความสะดวกในการตรวจทานการเปลี่ยนแปลงต่าง ๆ เครื่องมือที่ผมเองใช้บ่อย (คนอื่นอาจใช้มากกว่านี้) คือ:
    • intltool-prepare - สร้าง POT โดยดึงข้อความจากโปรแกรม เพื่อเริ่มแปลโปรแกรมที่ไม่เคยแปลมาก่อน (DL ของ GNOME ทำให้ได้)
    • intltool-update - ดึงข้อความจากโปรแกรมมาใหม่ และ merge เข้ากับ PO ที่มีอยู่เพื่อเริ่มแปลต่อ (DL ของ GNOME ทำให้ได้)
    • msgfmt - แปลง PO เป็น MO เพื่อตรวจสอบความถูกต้อง และดูอัตราการแปล
    • msgcat - จัดข้อมูล PO ให้อยู่ในรูปปกติ เช่น แบ่งบรรทัดละไม่เกิน 80 คอลัมน์, จัดบรรทัด comment เป็นต้น การจัดรูปแบบก่อน diff จะทำให้ได้ diff ที่เล็กที่สุด
    • msgmerge - merge คำแปลจาก PO ใหม่เข้าใน PO เก่า เพื่อปรับข้อมูลคำแปลก่อน diff

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

บางคนอาจจะบอกว่า เครื่องมืออย่าง pootle, transifex หรือ launchpad มีการรองรับเรื่องพวกนี้อยู่แล้ว ก็ไม่มีปัญหาครับ แต่ถ้าจะทำงานกับ VCS โดยตรง เครื่องมือพวกนี้ก็จำเป็น

รายละเอียดปลีกย่อยอื่น ๆ ก็เป็นเรื่องของสไตล์ของแต่ละคนนะครับ บางคนอาจจะไม่นิยมทำงานแปลก่อน string freeze แต่สำหรับผม เป็นประเภทชอบทยอยผ่อนส่ง บางทีก็จะเริ่มแปลตั้งแต่ยังเป็น development snapshot อยู่ โดยปกติสำหรับ GNOME ก็จะเริ่ม switch jhbuild ให้ไปเป็น development branch หลังจากที่ออก stable *.1 release แล้ว แล้วก็ตาม update คำแปลไปเรื่อย ๆ ซึ่งจะทำให้ปริมาณงานในแต่ละครั้งไม่มากนัก ช่วยลดปริมาณงานในขั้น string freeze ได้พอสมควรทีเดียว

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

ป้ายกำกับ:

16 มีนาคม 2552

My (Partial) TODO List

ชักยาวเป็นหางว่าวแล้ว TODO list ของผม.. แค่ช่วงที่ติดงานแปล GNOME 2.26 นี่เท่านั้น จดไว้กันลืมเสียหน่อย 2.26 ออกเมื่อไรต้องรีบทยอยเคลียร์..

  • ออก libdatrie, libthai, swath รุ่นใหม่ที่ได้ ทำค้างเอาไว้
  • จัดการเรื่องปัญหา extended cluster ของ pango ซึ่งมีผลกับการเลื่อนเคอร์เซอร์ข้าม cluster ในรูป "เก" และ "กะ" (รวมทั้ง "เกะ") -- สิ่งที่เกี่ยวข้อง: Mozilla #474068, Unicode UAX #29
  • ออกแบบเรื่อง UI การใช้ภาษาอังกฤษในโลแคลไทย เพื่อแก้ปัญหา ผู้ใช้ไม่ยอมใช้โลแคลไทย จนไปกระทบ feature ภาษาไทยของระบบ และหาที่เสนอแนวคิด
  • แก้ปัญหาเรื่องความกว้างของตัวเลข ตามที่ Davide Viti ได้ ตรวจสอบ เอาไว้ แพกเกจที่กระทบคือ ttf-thai-arundina และ ttf-thai-tlwg
  • update Debian package ภาษาไทย โดย update ข้อมูล VCS ของแพกเกจที่ host ที่ LTN จาก CVS เป็น SVN, update ตาม Debian policy 3.8.1, update debhelper เป็น level 7
  • ผลักดัน Thai Fonts Siampradesh (non-free) เข้าใน Debian

มีรายการอื่นอีก ที่คงไม่สะดวกที่จะเขียนลง blog เนื่องจากเป็นการติดต่อเป็นการส่วนตัวกับคนอื่น

วันนี้เป็นวันสุดท้ายก่อน tarballs due ของ GNOME 2.26 แล้ว คงจะพยายามแปล user guide ให้ได้มากที่สุด จากนั้นก็เป็นคิวของ release notes ที่ควรจะเสร็จภายในวันพุธ (18 มี.ค.) แล้วหลังจากนั้นถึงจะเป็นอิสระจากงานแปล ไปเคลียร์ TODO list ได้..

ป้ายกำกับ: , , , , , , , , , ,

02 มีนาคม 2552

Some Thoughts on Translation

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

งานแปลนั้น ที่ผ่านมาก็ได้เจอแนวคิดจากหลายคนเรื่องจะแปลหรือไม่แปลดี ซึ่งเรื่องนี้ก็ไม่ได้เจอเฉพาะภาษาไทย ภาษาอื่น ๆ เขาก็เจอ จึงถือได้ว่าเป็นเรื่องธรรมดา ลองประมวลแนวคิดต่าง ๆ ก็เช่น

pros

  • ลด digital divide ยังมีผู้ใช้อยู่มากที่ไม่สามารถใช้ภาษาอังกฤษได้ สำหรับเด็กประถมที่เพิ่งหัดอ่าน ก ข ก กา นี่ยังถือว่าก้ำกึ่ง เพราะแม้เด็กจะรู้ศัพท์ภาษาอังกฤษน้อย แต่ความเป็นเด็กก็ยังพอลองผิดลองถูกในแนวทางของเด็กได้ อีกทั้งงานที่เด็กใช้ก็ยังไม่วิกฤตมาก แต่อีกกลุ่มหนึ่งที่ลืมไม่ได้ คือผู้อาวุโสที่ในรุ่นของท่านยังไม่ได้เน้นเรียนภาษาอังกฤษมาก โดยเฉพาะในต่างจังหวัด หรือแม้แต่เด็กรุ่นใหม่ก็ตาม มีบางสาขาวิชาที่ไม่เคยต้องอ่านตำราภาษาอังกฤษเลย แต่ต้องมาทำงานรูทีนที่ต้องแข่งกับเวลา การมีภาษาไทยเป็นทางเลือก จึงเป็นการอำนวยความสะดวกแก่คนกลุ่มนี้
  • กระแสโลกาภิวัตน์ (globalization) ในส่วนเจาะกลุ่มท้องถิ่น พร้อม ๆ กับกระแสที่ทำให้ทั้งโลกเริ่มทำอะไรเหมือน ๆ กันหมด แต่โลกาภิวัตน์ก็มีแนวคิดเรื่องการปรับให้เข้ากับท้องถิ่นด้วย เช่น แมคโดนัลด์ก็มีสูตรกะเพราไก่ หรือจะเป็นเรื่องบังคับอย่างรถยนต์ที่ทำสำหรับประเทศที่วิ่งถนนเลนซ้าย-เลนขวา ซอฟต์แวร์ก็เช่นกัน แนวคิดโลกาภิวัตน์นี้เองที่ทำให้ซอฟต์แวร์เกิดแนวคิด internationalization (I18N) วินโดวส์เลิกทำ Thai Edition, Chinese Edition แล้วเริ่มใช้ I18N มาตั้งแต่ Windows 95 ก็เพื่อเตรียมพร้อมสำหรับการเจาะกลุ่มท้องถิ่นอย่างมีประสิทธิภาพ แนวคิดที่อยู่เบื้องหลังทั้งหมดนี้ ก็คือการปรับตัวในทิศทางย้อนกลับ จากเดิมที่ผู้บริโภคต้องคอยปรับตัวให้เข้ากับส่วนกลาง โลกาภิวัตน์ก็กลับทิศเสียใหม่ ด้วยการให้ส่วนกลางปรับตัวเข้าหาท้องถิ่นด้วย เพื่อความครอบคลุมให้กว้างที่สุด กระแสนี้ทำให้ภาษาท้องถิ่นเริ่มได้รับความสำคัญมากขึ้น คนในยุคโลกาภิวัตน์จึงรู้สึกเท่าเทียมกันมากขึ้นในแง่ภาษา การแปลภาษาจึงเป็นการสะท้อนการตระหนักในความสำคัญของภาษาตนเองอย่างหนึ่ง ท่ามกลางโลกที่ทุกประเทศต่างพร้อมแสดงท่าทีนี้
  • เพิ่มความเป็นที่รู้จักของภาษาไทย การที่ภาษาไทยมีการแปลจนขึ้นทำเนียบ supported language นั้น ทำให้ระดับความใส่ใจในการรองรับภาษาไทยของนักพัฒนาส่วนกลางดีขึ้น อันที่จริงแล้ว ในช่วงเริ่มแรกนั้น เราจำเป็นต้องพยายามต่อสู้เอาเองเพื่อให้ได้มาซึ่งการรองรับในระดับโครงสร้างพื้นฐาน เช่น ใน rendering engine และ input method แล้วจึงเริ่มแปลได้ แต่เมื่อแปลแล้ว และ GNOME ได้ประกาศใน release notes ว่าภาษาไทยเป็น supported language แล้ว การร้องขอในเรื่องอื่น ๆ ที่สูงขึ้นไป เช่น การตัดคำ หรือการแก้ปัญหาทั่วไป ก็ย่อมได้รับการตอบรับที่ดีขึ้น หรือแม้แต่ทาง Mozilla ก็เช่นกัน กว่าที่เขาจะรับคำแปลของเราได้ เขาก็ต้องแน่ใจว่าภาษาไทยมีการรองรับโดยพื้นฐานดีพอสมควร แต่การแปลก็ทำให้เกิดความคุ้นเคยบางอย่าง ที่ทำให้เราไม่ต้องรอ check-in แพตช์เป็นปี ๆ เหมือนเมื่อก่อน การแปลเป็นการส่งสัญญาณที่มีประสิทธิภาพอย่างหนึ่ง ว่ามีความต้องการใช้ภาษาไทยเพียงใดในซอฟต์แวร์ของเขา

cons

  • ทำให้เด็กไม่กระตือรือร้นเรียนภาษาอังกฤษ แม้ภาษาท้องถิ่นจะมีความสำคัญเพิ่มขึ้นในยุคโลกาภิวัตน์ แต่เวลาที่ติดต่อกับชาวต่างประเทศ ภาษาอังกฤษก็ยังเป็นภาษาที่สะดวกที่สุดอยู่ดี ดังนั้น การแปลข้อความจึงมีผลด้านลบต่อการพัฒนาประเทศ ในแง่ที่ทำให้ประชากรขาดแรงจูงใจ หรือเครื่องมือช่วย ในการเรียนภาษาอังกฤษไปเรื่องหนึ่ง ประเด็นนี้มีนัยสำคัญพอสมควร ดังจะเห็นได้จากการที่เด็กจบใหม่จำนวนมากอ่อนภาษาอังกฤษ หลังจากมีตำราแปลออกมามากมาย การตอบถามปัญหาตามเว็บบอร์ดต่าง ๆ จะเริ่มยุ่งยาก เมื่อผู้ถามต่างเรียกร้องแต่คำตอบภาษาไทย แนะนำลิงก์คำอธิบายภาษาอังกฤษก็โอดครวญ
  • แปล doc ดีกว่า อันนี้เป็นบทเสริมของข้อที่แล้ว คือมีบางความเห็น เห็นว่าไม่ควรแปลโปรแกรม แต่แปลเอกสารกับ help ดีกว่า เพื่อช่วยให้คนไทยได้เข้าถึงเทคโนโลยีง่ายเข้า
  • ทำให้ผู้ใช้ไทยไม่ใช้โลแคลไทย อันนี้เป็นประเด็นตรงกันข้าม คือเกิดจากผู้ใช้ที่นิยมใช้ UI ภาษาอังกฤษมากกว่าฉบับแปล ..ชอบดูหนังซาวนด์แทร็ก ว่างั้น.. ทำให้เวลาติดตั้งและเข้าระบบ ก็จะเลือกโลแคล en_US ไว้ก่อน ซึ่งผลก็คือ ทำให้ไม่ได้ใช้ส่วนรองรับภาษาไทยที่ขึ้นกับโลแคล เช่น input method และเรื่องอื่น ๆ ที่อาศัยโลแคลเป็นพื้นฐานในการตัดสินใจของโปรแกรม ทำให้การพัฒนาต่าง ๆ เรื่องภาษาไทย แทบจะสูญเปล่า เรื่องนี้ผมก็เคย blog ไว้

ความเห็นของผมเป็นดังนี้:

  • ใน blog เรื่องผมเข้าร่วมทีมแปลได้ยังไง ผมได้เล่าไว้ว่า ก่อนที่จะร่วมทีมแปลนั้น ผมไม่เคยเปิดใช้ภาษาไทยเลยเหมือนกัน แต่หลังจากไปเจอกรณีลูกค้าที่ยอมใช้ลินุกซ์ แต่ต้องใช้เมนูภาษาไทย เพราะเขาไม่คล่องภาษาอังกฤษ และต้องการความรวดเร็วในการทำงาน ทำให้ผมต้องเปิดใช้คำแปลภาษาไทยเป็นครั้งแรก และได้รับคำติมามากมายเกี่ยวกับคำแปลที่ขาด ๆ โบ๋ ๆ และใช้ภาษาตลก ๆ ในหลายที่ในตอนนั้น จนนำมาสู่การรายงานปัญหากับทีมแปล และร่วมแปลในแพกเกจที่เจอปัญหา นั่นก็เป็นหลักฐานหนึ่งที่ผมปฏิเสธไม่ได้ ว่า ความต้องการโปรแกรมที่แปลไทยนั้น มีอยู่จริง
  • ก่อนที่จะพบกรณีนั้น ผมไม่เคยคิดจะแตะต้องงานแปลเลย เพราะต้องการเน้นงานพัฒนามากกว่า แต่เมื่อได้เปิดใช้เมนูไทยแล้ว ก็พบว่า โปรแกรมที่แปลไม่สมบูรณ์นั้น ให้ความรู้สึกแย่ยิ่งกว่าไม่แปลเลยเสียอีก เพราะจะรู้สึกได้ถึงความไม่เนี้ยบเป็นเนื้อเดียวของเมนูและกล่องโต้ตอบต่าง ๆ ดังนั้น แม้จะไม่พูดถึงว่าควรแปลหรือไม่ แต่ถ้าได้เริ่มแปลแล้ว ควรแปลให้สมบูรณ์
  • ประเด็นเรื่องไม่แปลโปรแกรมแต่แปลเฉพาะ help นั้น จะขัดแย้งกันเองในทางปฏิบัติ เพราะโดยทั่วไป วิธีทำงานที่ดีคือ แปลโปรแกรมให้เสร็จ แล้วจึงแปล help เพราะ help จะอ้างถึงเมนู กล่องโต้ตอบต่าง ๆ รวมทั้งภาพหน้าจอตัวอย่าง ถ้าในภายหลังมีการแปลโปรแกรม คุณก็จะต้องไล่แก้ help ทั้งหมดให้ใช้ข้อความตามโปรแกรมด้วยอยู่ดี การที่จะลดความซ้ำซ้อนของงาน จึงควรทำในลำดับกลับกันมากกว่า
  • เรื่องการไม่ส่งเสริมการเรียนรู้ภาษาอังกฤษนั้น ผมเห็นด้วยพอสมควร แต่ผมเชื่อว่า การให้ทางเลือกน่าจะดีกว่าอยู่ดี เพราะในบางกรณีเราก็บังคับใช้แต่ภาษาอังกฤษไม่ได้จริง ๆ และเมื่อรวมกับเรื่องผู้ชอบใช้โปรแกรมฉบับไม่แปล ผมก็เห็นว่ายังมีผู้ใช้ที่พยายามจะใช้ภาษาอังกฤษอยู่ดี เพียงแต่จุดบอดของเรื่องนี้ก็คือ ยังขาด UI ที่ดี ในการเลือกภาษาโปรแกรมโดยไม่กระทบกับโลแคลหมวดอื่น ๆ ซึ่งเรื่องนี้ ออกจะ convince นักพัฒนายากสักหน่อย เพราะประเทศพัฒนาแล้ว เขานิยมใช้โปรแกรมฉบับแปลกันเป็นหลัก และเขาก็ถูกทำให้เชื่อในเรื่อง digital divide อย่างฝังลึก เราต้องทำให้เขาเชื่อ ว่าประเทศกำลังพัฒนายังคงต้องการใช้โปรแกรมภาษาอังกฤษอยู่ ก่อนที่จะอภิปรายถึงทางออกต่าง ๆ ต่อไป จุดนี้ ผมคิดว่าจะพยายามหาทางแก้ดู

ในฐานะที่ผมไม่ได้เป็นผู้ริเริ่มการแปล GNOME ผมจึงไม่สามารถพูดแทนกลุ่มผู้ริเริ่มได้ ผมพูดได้เพียงว่า งานแปลนั้นต้อง all-or-none ถ้าได้เริ่มแล้ว ต้องทำให้จบ ไม่งั้นก็ไม่ต้องทำเลย แต่ถ้าถามว่าผมเห็นด้วยไหมที่เขาเริ่ม ผมชั่งน้ำหนักข้อดีข้อเสียและทางออกต่าง ๆ ก็คิดว่าเห็นด้วย

สุดท้าย ก็ขอสรุปลักษณะต่าง ๆ เกี่ยวกับงานแปลในทัศนะของผม:

  • งานแปลที่ดี ถ้าได้เริ่มแล้ว ต้องทำให้สมบูรณ์
  • งานแปล เป็นงานที่ไม่มีวันเสร็จ ตราบใดที่ซอฟต์แวร์ยังมีการพัฒนาอยู่ งานแปลก็ยังต้องทำควบคู่ต่อไป
  • งานแปล เป็นงานที่มีแรงจูงใจเชิงพาณิชย์ต่ำมาก ดังนั้น สมมุติฐานในทฤษฎีโอเพนซอร์สที่อ้างถึง selfish agent ในระบบทุนนิยม ที่เป็นแรงกระตุ้นให้นักพัฒนาสร้างงานออกเผยแพร่แบบโอเพนซอร์สนั้น แทบจะใช้ไม่ได้กับงานแปลเลย งานแปลสามารถขาย service ได้ไหม? ยากครับ แค่จะมีใครยอมใช้โปรแกรมฉบับแปลยังสงสัยกันอยู่ มีใครยอมควักกระเป๋าจ่ายเพื่อให้ได้ฉบับแปลก่อนคนอื่น หรือให้ได้คำแปลในแบบฉบับที่ต้องการไหม? ยากครับ อย่างมาก งานแปลก็เป็นแค่ส่วนเล็ก ๆ ส่วนหนึ่งในโครงการที่ใหญ่กว่าเท่านั้น ชื่อเสียงในวัฒนธรรมแฮกเกอร์เหรอ? เมินซะเถอะ แค่แปลโปรแกรมนี่นะ? งานแปลจึงเป็นงานที่นอกจากจะหนักแบบมาราธอนแล้ว ยังต้องอาศัยใจอย่างมากด้วย

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

ป้ายกำกับ: ,

25 กุมภาพันธ์ 2552

Fading Out the Translation

เดิมคิดว่าจะรอให้เสร็จงานแปล GNOME 2.26 แล้วค่อยเขียนเรื่องนี้ แต่คิดว่าเขียนตั้งแต่ยังแปลไม่เสร็จน่าจะเป็นประโยชน์กว่า เผื่อว่าจะช่วยเรื่องการส่งต่องานได้

ผมได้ตัดสินใจที่จะทำงานแปล GNOME 2.26 เองเป็นรุ่นสุดท้าย ในรุ่นถัด ๆ ไป ผมคิดว่าจะรับตรวจทานและ commit คำแปลจากอาสาสมัครให้เท่านั้น การตัดสินใจลดบทบาทงานแปลนี้ ก็ด้วยปัจจัยหลาย ๆ อย่าง:

  • ผมคิดว่าผมทำงานแปลมานานเกินไปแล้ว ผมเริ่มเข้าร่วมงานแปลเมื่อประมาณปี 2546 ด้วยเหตุผลที่ เคย blog ไว้ จนถึงตอนนี้ก็เกือบ 6 ปี ผ่านรอบการออกรุ่นของ GNOME มาราว 10 รุ่นในฐานะผู้ประสานงานแปล สมควรที่จะมีผู้รับช่วงต่อได้แล้ว
  • สุขภาพไม่เอื้ออำนวย โดยปกติแล้ว ผมจะไม่โหมแปลหนัก ๆ แต่จะใช้ความสม่ำเสมอ ทำเก็บเล็กผสมน้อยไปเรื่อย ๆ ทำให้เบาแรงในระยะยาว แต่ในระยะหลังนี้ ปัญหาตาแห้งและปวดนิ้ว ทำให้ผมแปลได้น้อยลงอีก ทำให้ไม่สามารถเร่งงานได้แม้ในช่วง string freeze นี้
  • งานแปลได้ทำให้ผมห่างจากงานพัฒนามานาน โดยเฉพาะในช่วงหลัง ๆ ที่นักแปลขาประจำได้ทยอยผละออกไป ทำให้งานแปลมาตกที่ผมมากขึ้น และได้เข้ามากินเวลาการทำงานพัฒนาและงานอื่น ๆ ทำให้ความคืบหน้าของงานเหล่านั้นเป็นไปได้ช้า หรือสะดุดบ่อย ๆ ตัวอย่างเช่น:
    • งานพัฒนาใน GNOME การมายุ่งกับงานแปลทำให้ผมห่างหายจาก bugzilla ของ GNOME ในขณะที่บทบาทของ "translator" ถูกเน้นให้เด่นชัดขึ้น เวลาที่มีบั๊กภาษาไทยหรือบั๊กทั่ว ๆ ไป ผมจึงต้องเริ่มต้นสร้างความคุ้นเคยกับทีมงานซึ่งมีการผลัดเปลี่ยนเข้ามาใหม่ ความเสียหายหนึ่งที่เห็นได้คือ ผมได้เสียสิทธิ์ในการเป็น maintainer ของมอดูลภาษาไทยใน GTK+ และ Pango ไปแล้ว (เช่น ตัวอย่างใน GNOME #457086)
    • งานพัฒนาที่ LTN ไม่ว่าจะเป็นเรื่องฟอนต์, libthai และอื่น ๆ ผมจำต้องพักงานเหล่านี้ตามจังหวะ string freeze ของ GNOME ซึ่งเท่ากับว่า ผมมีเวลาในช่วง 3-4 เดือนเท่านั้นในการทำงานทุกอย่าง รวมถึงงานต่าง ๆ นอก LTN ด้วย (เช่น งานใน Debian, Mozilla) ก่อนที่จะมาอุทิศให้กับงานแปล ทำให้งานพัฒนาเหล่านั้นทำได้ไม่เต็มเม็ดเต็มหน่วยนัก
    • กระบวนการสมัครเป็น Debien Developer มีบางจังหวะที่ได้รับข้อสอบมาในช่วงที่ GNOME กำลัง string freeze ทำให้ผมต้องแจ้งชะลอการทำข้อสอบออกไป เปิดโอกาสให้ Application Manager ของผมไปทำการสอบผู้สมัครคนอื่นไปก่อน แล้วก็รอจนถึงรอบที่เขาว่างอีกทีถึงกลับมาตรวจข้อสอบผม ทำให้กระบวนการต้องยืดเยื้อออกไปเป็นปี
    • งานรับจ้างต่าง ๆ การทำงานอิสระนั้น ไม่ได้อิสระทุกอย่าง สุดท้ายก็ยังมีเรื่องที่ควบคุมไม่ได้ ผมเคยพูดถึง "ฤดูงานเข้า" บ่อย ๆ ซึ่งมักจะมาพ้องกับช่วงก่อน GNOME ออกรุ่นเสมอ ๆ ทำให้จัดตารางงานได้ลำบากในช่วงนี้.. ผมแอบคิดว่า มันต้องไม่บังเอิญแน่ ๆ ที่ทุกอย่างมาประดังพร้อมกันอย่างมีจังหวะ อย่างน้อย รอบการออกรุ่นของสองอย่าง คือ GNOME และ Ubuntu ก็น่าจะมีอิทธิพลไม่มากก็น้อย หรือไม่ ก็อาจจะอยู่ในช่วงจบไตรมาส ซึ่งเป็นจังหวะของธุรกิจก็ได้ ซึ่งถ้าผมเป็นอิสระจากงานแปลมากกว่านี้ ก็อาจจัดการอะไร ๆ ได้ง่ายเข้า งานต่าง ๆ บางงานนั้น เกี่ยวข้องกับงานพัฒนา FOSS เสียด้วยสิ
  • ประโยชน์ที่ได้จากงานแปล ผมยังคงเชื่อว่างานแปลนั้นมีผู้ใช้ประโยชน์ แม้จะไปได้ยินเสียงบ่นต่าง ๆ ว่า "แปลไปทำไม ใคร ๆ ก็ใช้เมนูอังกฤษ" (ลองอ่าน คำอธิบายของ mk เขาเขียนไว้ยาวแล้ว รวมทั้ง เหตุผลที่ผมเข้าร่วมงานแปล ด้วย) เพียงแต่ภาระต่าง ๆ มันหนักเกินไปสำหรับคนตัวเล็ก ๆ อย่างผมจะทำโดยลำพังได้ งานแปลนั้นสำคัญ แต่งานอื่นก็สำคัญไม่แพ้กัน

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

ในช่วง string freeze ที่เหลือนี้ ผมคงพยายามแปลให้ได้มากที่สุดเท่าที่สุขภาพจะอำนวย ก่อนที่จะไม่ได้แปลอีก แต่ถ้าใครจะเข้ามาช่วยในช่วงนี้ ก็จะทำให้การส่งต่องานไปยังรุ่นหน้าราบรื่นขึ้นครับ ใครจะช่วยตรวจทาน หรือกระทั่งช่วย commit (ขอสงวนสิทธิ์ในการเลือกผู้ที่ไว้วางใจ เพราะนี่จะกระทบกับสิทธิ์การเป็นผู้ประสานงาน หรือกระทั่งสิทธิ์การ commit ของผมเองด้วย) ก็ยินดีครับ

ป้ายกำกับ: , ,

19 กุมภาพันธ์ 2552

GNOME 2.26 Translation Begins

GNOME 2.25.91 (2.26 beta 1) ออกแล้ว อันเป็นการเข้าสู่ช่วง string freeze เพื่อให้นักแปลสามารถทำงานได้เต็มที่ ก่อนที่จะออก GNOME 2.26 ตัวจริงในอีก 1 เดือนข้างหน้า (ตาม กำหนดการ)

พ่อแม่พี่น้องที่รู้สึกว่าหงุดหงิดกับคำแปลของ GNOME อยากปรับให้ได้อย่างใจ หรือไม่ได้หงุดหงิด แต่อยากได้ GNOME ที่แปลไทยสมบูรณ์ หรือไม่ได้อยากได้ฉบับแปลสมบูรณ์ แค่อยากแปลเอามัน ก็ ขอเชิญ ครับ

ป้ายกำกับ: ,

20 มกราคม 2552

Recovery

หลังจาก ฮาร์ดดิสก์พังไป ก็แก้ปัญหาแล้วด้วยการเปลี่ยนฮาร์ดดิสก์โน้ตบุ๊กใหม่ แล้วก็เริ่มลง debian ใหม่แต่ต้น

เสียดายข้อมูลหลายอย่าง เช่น รูปถ่ายที่ถ่ายไว้ทั้งหมดตลอด 3 ปี กู้คืนไม่ได้ รวมทั้งงานรับจ้างทั้งหลาย แต่สำหรับงานพัฒนาส่วนใหญ่ที่เผยแพร่แบบโอเพนซอร์สไปแล้ว ไม่มีปัญหา สามารถดึงกลับมาจากแหล่งที่เผยแพร่ไปแล้วได้

เหตุการณ์แบบนี้ ถ้าเป็นไปได้ก็ไม่อยากเจอ แต่ก็พยายามมองในด้านบวก ว่าทำให้เจอประเด็นอะไรหลาย ๆ อย่าง:

  • เรียนรู้ที่จะทำ backup เผื่อไว้เยอะ ๆ อย่าผัดวันประกันพรุ่ง ตอนนี้เริ่มวางแผนเตรียมการ backup ไว้หลายอย่าง เช่น ใช้สื่อแบบต่าง ๆ แล้วก็รวมไปถึงการจัดระบบข้อมูลหลายอย่างในเครื่องให้เหมาะกับการ backup ด้วย เช่น:
    • เตรียม thumbdrive ไว้ backup ข้อมูลที่เป็น dynamic โดยคิดว่าจะ rsync และใช้ version control ควบคุมซอร์สที่เป็นงานรับจ้างให้มากที่สุด พร้อมทั้งทำ live image ไว้บูตทำงานในกรณีฉุกเฉินด้วย
    • ใช้ CD/DVD สำรองข้อมูลถาวรเป็นระยะ ๆ (อาจใช้ CD-RW กับบางงาน)
    • build ซอฟต์แวร์ต่าง ๆ ไว้นอก source tree ทั้งหมด หลังจากที่ทำเฉพาะที่ build แบบ manual โดยไม่ครอบคลุมถึง การ build อัตโนมัติด้วย JHBuild ก็พยายาม config JHBuild ด้วย เพื่อให้ clean ได้ง่าย ๆ รวมทั้งทำ live snapshot ไว้ทำงานโดยไม่ติดเอา binary object ไปด้วยได้อย่างสะดวก
    • พบว่า การเขียนบทความเผยแพร่บางอันก็มีประโยชน์ เช่น พวก smart bookmark ของ epiphany ผมก็เพียงไปเปิด บทความที่ตัวเองเคยเขียน โดยไปไล่คลิกขวาที่ URL ของ smart bookmark ที่ยกตัวอย่างไว้ แล้วเลือก "เพิ่มลิงก์ในที่คั่นหน้า..." แค่นี้ก็ไม่ต้องมาทำใหม่แต่ต้น
  • ได้ติดตาม debian-installer หลังจากที่ติดตั้ง debian ครั้งสุดท้ายเมื่อ 3 ปีที่แล้ว แล้วก็ใช้แบบ dist-upgrade มาตลอด การได้ลง debian ใหม่ ก็ทำให้ได้ติดตามระบบ debian-installer ล่าสุด ว่าเขาไปถึงไหนแล้ว มีปัญหาอะไรบ้าง ประเด็นที่ได้พบก็เช่น:
    • ปรับคำแปลไทยบางส่วนของ d-i เอง
    • ได้พบว่า default desktop ของ lenny มีเฟอร์นิเจอร์เพิ่มเติมพอสมควร เช่น มี update-manager จาก Ubuntu, ลง NetworkManager มาให้ด้วย ก็ทดลองใช้ดู เจอคำสะกดผิดในคำแปลของ update-manager ก็เลยลงมือแก้แล้วส่งไปที่ debian รวมทั้งขอ update ที่ LP ผ่านทาง Thai-L10N และ ubuntuclub ด้วย
  • ได้โอกาสกลั่นกรองระบบการทำงานอีกครั้ง การเริ่มติดตั้งใหม่จากศูนย์ ก็ทำให้ได้คิดใหม่อีกรอบ ว่าซอฟต์แวร์ไหนจะใช้จริง อันไหนจะทิ้ง วิธีการทำงานแบบไหนที่ต้องปรับเปลี่ยน อันนี้ก็อาจจะรวมไปถึงการลองซอฟต์แวร์ใหม่ ๆ ด้วย ซึ่งก็ต้องรอดูไปสักระยะ ว่าจะมีอะไรเปลี่ยนแปลงบ้าง แต่ที่ตัดสินใจได้ตอนนี้ก็คือ:
    • เลิกใช้ apt-move ในการ maintain mirror ส่วนตัว หันไปใช้ apt-cacher-ng [homepage] ทำแคชแทน และถ้าต้องการสร้าง package tree ไว้ใช้ในงานต่าง ๆ ก็ใช้ reprepro [homepage] แทน สะดวกขึ้นเยอะ (เรื่องพวกนี้ได้ทดลองใช้มาแล้วพอสมควร ตอนนี้ก็ได้โอกาสตัดส่วนที่ไม่จำเป็นทิ้งไป)

ทยอยฟื้นตัวไปเรื่อย ๆ ครับ ขณะเดียวกันก็ถือโอกาสปรับเปลี่ยนตัวเองไปด้วย :-)

ป้ายกำกับ: , , , ,

06 ตุลาคม 2551

Using Thai through English Locale

ผลพวงจาก LP #273856 เกี่ยวกับปัญหาการป้อนภาษาไทย ทำให้ผมได้พบความจริงอย่างหนึ่งที่ไม่ได้นึกถึงมานาน และเป็นคำตอบให้กับอะไรหลาย ๆ อย่าง

นั่นคือ ยังมีผู้ใช้จำนวนมากที่ใช้ภาษาไทยบนโลแคลภาษาอังกฤษ!

เรื่องนี้เป็นเรื่องที่ผมลืมมานานแล้ว เนื่องจากได้ปรับตัวให้เข้ากับ UI ภาษาไทยของ GNOME มาไม่ต่ำกว่า 8 ปี นับตั้งแต่เริ่มเข้าร่วมทีมแปลในช่วง GNOME 2.6 หลังจากรับฟังเสียงบ่นจากผู้ว่าจ้างที่ต้องการคำแปลภาษาไทยที่มีคุณภาพกว่าตอนนั้น โดยในช่วงแรก ๆ ผมเน้นปรับตัวสะกดและการใช้คำ จนต่อมาก็ทำส่วนอื่นมากขึ้นเรื่อย ๆ โดยใช้แต่ UI ภาษาไทยมาตลอด เพื่อให้ตัวเองมีโอกาสพบความผิดพลาดและแก้ไขให้มากที่สุด

เรื่องภาษาของ UI นี้ เป็นเรื่องนานาจิตตัง หลายคนอาจจะชอบ UI ภาษาอังกฤษ เพราะยังติดภาพลบของคำแปลภาษาไทยในซอฟต์แวร์หลาย ๆ ตัว แต่ผลข้างเคียงที่ผมไม่เคยนึกถึง คือมันทำให้ผมไม่เข้าใจปัญหาหลาย ๆ เรื่องที่ได้พบเห็นในเว็บบอร์ดต่าง ๆ โดยเฉพาะเรื่องการป้อนภาษาไทย

ผมไม่เข้าใจ เพราะผมทดสอบยังไงก็ได้ผลต่างจากเขา ผมใช้ input method ภาษาไทยที่มีทั้งการตรวจสอบและแก้ลำดับการพิมพ์ หากจะมีอาการผิดปกติบางอย่าง ผมก็สามารถแก้ไขและทดสอบแล้วได้ผล แต่ผมเพิ่งจะมาถึงบางอ้อด้วยประโยคนี้ใน ความเห็นหนึ่ง:

but If I switch session to thai everything work fine. ???

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

จากนั้น ความกระจ่างก็ตามมาอีกเป็นระลอก ๆ

ผมเข้าใจแล้ว ว่าทำไมจึงยังพบเห็นการป้อนภาษาไทยผิดลำดับตามเว็บต่าง ๆ ของชุมชนผู้ใช้ลินุกซ์ โดย pango จะวาดลำดับที่ผิดเหล่านั้นให้เห็นอย่างชัดเจน เช่น วรรณยุกต์มาก่อนสระบน หรือมีสระอิ สระอี อยู่ต้นบรรทัด ฯลฯ ทั้ง ๆ ที่ลำดับเหล่านี้ควรถูก XIM กรองออกหมดแล้ว ผมคิดไปอีกแบบ ว่าผู้ใช้อาจจะมาจาก OS อื่นที่ยังรองรับภาษาไทยไม่เต็มที่ (วินโดวส์ไม่น่าจะใช่ ส่วน MacOSX ผมไม่แน่ใจ เพราะไม่เคยใช้) แต่ผมไม่เคยนึกถึงกรณีที่จะมาจากผู้ใช้ลินุกซ์ที่ใช้โลแคลภาษาอังกฤษเลย

และครั้งนี้ก็เช่นกัน เมื่อได้ยินเสียงบ่นว่าการป้อนภาษาไทยมีปัญหา ผมก็นึกถึงแต่ ปัญหาในโลแคลไทยของ Xlib ซึ่งหากแก้ไขตามแพตช์แล้ว ก็ควรจะใช้การได้ แต่กลับไม่ใช่

การเข้าระบบด้วยวาระภาษาอังกฤษนั้น ไม่มีอะไรรับประกันได้เลย ว่าผู้ใช้จะสามารถป้อนภาษาไทยได้ กลไกต่าง ๆ ไม่ว่าจะของเดสก์ท็อปหรือของดิสโทรที่ได้เตรียมไว้ให้ผู้ใช้ภาษาไทย ต่างอาศัยการเข้าระบบด้วยวาระภาษาไทยทั้งสิ้น!

เริ่มตั้งแต่:

  • XIM ของ X Window จะเปิดใช้การป้อนภาษาไทยก็ต่อเมื่อ LC_CTYPE จะต้องเป็นไทย (th_TH.UTF-8 หรือ th_TH.TIS-620 แล้วแต่กรณี) ซึ่งสามารถกำหนดได้หลายวิธี เช่น:

    • LANG=th_TH.UTF-8 ซึ่งจะเป็นค่านี้เมื่อเข้าระบบด้วยวาระภาษาไทย และจะใช้ธรรมเนียมไทยทั้งหมด ทั้งรูปแบบวันเวลา การเรียงลำดับคำ ข้อความใน UI และการป้อนข้อความ
    • LANG=th_TH.UTF-8, LC_MESSAGES=en_US.UTF-8 คือใช้ธรรมเนียมไทยทั้งหมด ยกเว้นข้อความใน UI เป็นภาษาอังกฤษ เหมาะสำหรับผู้ใช้ภาษาไทยที่ต้องการใช้ UI ภาษาอังกฤษ
    • LANG=en_US.UTF-8, LC_CTYPE=th_TH.UTF-8 คือใช้ธรรมเนียมภาษาอังกฤษหมด ทั้งวันเวลา หน่วยเงินตราและอื่น ๆ การเรียงลำดับคำภาษาไทยจะไม่เรียงตามพจนานุกรมไทย ข้อความภาษาไทยใน UI ก็ไม่ขึ้น เหมาะสำหรับผู้ที่ต้องการแค่ป้อนภาษาไทยได้เท่านั้น โดยไม่แตะต้องอย่างอื่น

    มีหลายวิธีที่จะกำหนดค่าตัวแปรเหล่านี้ เช่น สำหรับทั้งระบบก็ที่ /etc/environment (สำหรับ Debian/Ubuntu) แต่ถ้ากำหนดเฉพาะส่วนบุคคลก็โดย export ตัวแปรที่ ~/.bashrc

    แต่อย่าลืมว่า การกำหนดค่านี้ จะมีผลกับการป้อนข้อความก็ต่อเมื่อ im-switch เลือกใช้ XIM เท่านั้น ดูข้อถัดไปประกอบ

  • im-switch ของ Debian/Ubuntu ซึ่งจะใช้กำหนดวิธีป้อนข้อความปริยายเมื่อเปิดโปรแกรมต่าง ๆ ในวาระที่เข้าระบบ ก็จะอาศัยโลแคลของวาระเป็นเกณฑ์เช่นกัน ถ้าเป็นภาษาอังกฤษ ก็จะใช้วิธีป้อนข้อความสำหรับภาษาอังกฤษ ถ้าเป็นโลแคลไทย ก็จะใช้วิธีป้อนสำหรับภาษาไทย ดังนั้น สำหรับการติดตั้งโดยใช้ภาษาอังกฤษโดยไม่มีการปรับแต่งอะไร คุณก็ยังคงไม่ได้ใช้การป้อนข้อความที่ออกแบบมาสำหรับภาษาไทยอยู่ดี ถ้าคุณเข้าระบบเป็นภาษาอังกฤษ

    ถ้าคุณต้องการเข้าระบบด้วยวาระภาษาอังกฤษ แต่ต้องการป้อนภาษาไทยแบบมีการกรอง/แก้ลำดับ คุณก็สามารถทำได้โดยกำหนด im-switch:

    • เรียกดู im-switch ที่มีทั้งหมด:

      $ im-switch -l
      Your input method setup under en_US locale as below.
      =======================================================
      No private "/home/thep/.xinput.d/en_US or /home/thep/.x
      input.d/all_ALL" is defined.
      =======================================================
      The system wide default is pointed by "/etc/alternative
      s/xinput-all_ALL" .
      xinput-all_ALL - status is auto.
       link currently points to default
      default-xim - priority 0
      none - priority 0
      default - priority 10
      scim - priority 0
      scim-immodule - priority 0
      Current `best' version is default.
      =======================================================
      The available input method configuration files are:
      /usr/bin/find: `/home/thep/.xinput.d': No such file or 
      directory
      default default-xim none scim scim-immodule th-gtk-im-l
      ibthai th-xim 
      =======================================================
      

      จะเห็นรายละเอียด บอกว่าไม่มีการกำหนด im-switch ไว้ และระบบพยายามหาค่าปริยาย ซึ่งค่าที่ดีที่สุดในกรณีนี้ซึ่งใช้โลแคล en_US คือ "default" จากนั้นก็ให้รายชื่อ config ที่มีทั้งหมดไว้ท้ายสุด

    • กำหนด im-switch config ที่ต้องการ:

      • ถ้าจะใช้ gtk-im-libthai:
        $ im-switch -s th-gtk-im-libthai
        
      • ถ้าจะใช้ XIM:
        $ im-switch -s th-xim
        
      • ถ้าจะใช้ SCIM:
        $ im-switch -s scim-immodule
        

      แต่เข้าระบบด้วยวาระภาษาไทย ค่าที่ดีที่สุดจะกลายเป็น "th-gtk-im-libthai" โดยอัตโนมัติ หรือถ้าไม่ได้ติดตั้ง gtk-im-libthai ก็จะเป็น "th-xim" แทนอยู่แล้ว ไม่ต้องกำหนดอะไรเพิ่ม

ทั้งหมดนี้ เป็นสิ่งที่ต้องกำหนดเพิ่ม ถ้าผู้ใช้พยายามจะหลีกเลี่ยง UI ภาษาไทย แต่ยังต้องการใช้ภาษาไทยในโปรแกรมอยู่ ซึ่งผมคิดว่าวิธีที่ง่ายที่สุดคือ เข้าระบบด้วยวาระภาษาไทย แต่กำหนด LC_MESSAGES เป็น en_US.UTF-8

คงจะไปตามบอกผู้ใช้ที่นิยมเข้าระบบเป็นภาษาอังกฤษทั้งหมดไม่ได้ แต่ความต้องการแบบนี้ก็ยังคงมีอยู่ จึงได้เสนอแพตช์แก้ใน GTK+ ให้กลับมาป้อนภาษาไทยแบบไม่ตรวจลำดับได้อีกครั้งในบั๊กที่ว่า ส่วนทางแก้ในระยะยาว ไว้ค่อยเขียนถึงในโอกาสต่อไป เนื่องจาก blog เริ่มยาวมากแล้ว

ป้ายกำกับ: , , , ,

29 กันยายน 2551

Translations from Ubuntuclub

ไม่ได้ blog ยาวเลย เว็บไหนก็แทบไม่ได้แจม เพราะยุ่งอยู่ครับ เป็นความยุ่งที่ชอบ เพราะมีนักแปลจาก ubuntuclub ส่งคำแปล GNOME เข้ามาอย่างต่อเนื่อง หลังจากที่จัด Traning10 สำหรับฝึกแปล GNOME โดยเฉพาะไป (ภาพบรรยากาศ) หัวกระไดไม่แห้งขนาดไหน ดูจาก สถิติการ commit ของผม ได้

สำหรับ GNOME 2.24 ที่เพิ่ง ออก ไปเมื่อ 24 ก.ย. นั้น ภาษาไทยสามารถทำสถิติได้สองอย่าง คือแปล UI ถึงหลัก 90% เป็นครั้งแรก (อยู่อันดับที่ 32) และเริ่มแปล Help เป็นภาษาไทยเป็นรุ่นแรก

สำหรับงานแปลจาก ubuntuclub เนื่องจาก UI ของ official GNOME ได้แปลไปมากแล้ว จึงเน้นที่ UI ของแพกเกจ non-official และ Help ของแพกเกจ official

UI ที่มีการแปลไปก็ได้แก่:

  • xchat-gnome โดยคุณศิระ นกยูงทอง (gumara) และคุณมนัสวิน หาญมงคลชัย (willwill)
  • gedit-plugins โดยคุณ Visal Srivisal
  • drivel โดยคุณ Chanin Tanaponvisal
  • gnome-pkgview โดยคุณกฤษฎา ปินะโต
  • nemiver โดยคุณ Piya Wanishsujit
  • diary (almanah) โดยคุณอนุชิต สกุลวิไลเลิศ
  • galeon โดยคุณศิระ นกยูงทอง (gumara)
  • gthumb (update) โดยคุณมนัสวิน หาญมงคลชัย (willwill)
  • tracker (update) โดยคุณมนัสวิน หาญมงคลชัย (willwill)
  • nautilus-open-terminal (update) โดยคุณมนัสวิน หาญมงคลชัย (willwill)
  • camorama โดยคุณมนัสวิน หาญมงคลชัย (willwill)

ส่วน Help ก็ได้แก่:

  • gconf-editor โดยคุณ Pongsatorn Parnpreeda (iaeee)
  • vinagre โดยคุณศิระ นกยูงทอง (gumara)
  • eog โดยคุณศิระ นกยูงทอง (gumara)

รวมทั้งนักแปลที่ช่วยแปลอยู่แล้ว ในรุ่นนี้ก็มี:

  • cheese (UI) โดยคุณ Akom C.
  • anjuta (UI) โดยคุณ Akom C.
  • cheese (Help) โดยคุณอิสริยะ ไพรีพ่ายฤทธิ์ (Mk)
  • GNOME 2.24 Release Notes ผมแปลร่วมกับคุณ Akom C.

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

Update (2008-09-30, 09:42): แก้ข่าว training11 ไม่ใช่เรื่องแปล help ครับ เรื่องแปล help คงเป็นการโปรโมทนอกรอบ

ป้ายกำกับ: , ,

10 กันยายน 2551

What to Translate

นับจาก blog ก่อน ที่ได้ ตั้งเป้า 90% + เริ่มแปล Help ข่าวดีคือ ขณะนี้ อัตราการแปล GNOME 2.24 ของภาษาไทย ได้ขึ้นหลัก 90% แล้ว แต่เป็น 90% แบบปริ่ม ๆ พร้อมจะหล่นได้ทุกเมื่อถ้ามีข้อความใหม่ ฉะนั้น งานแปล UI ยังคงต้องดำเนินต่อไป

สำหรับ Help นั้น ปริมาณงานมีแค่ไหน สามารถดูได้คร่าว ๆ จากเมนู "ระบบ > วิธีใช้" ของ GNOME ซึ่งจะนำมาสู่หน้าต่างนี้:

GNOME Help

ที่รายชื่อหมวดทางด้านซ้าย คลิกไปจะพบเอกสารของโปรแกรมต่าง ๆ หลายรายการ ส่วนที่หน้าหลัก มีทั้งเอกสารหลักของ GNOME และเอกสารของ Debian ที่ได้ลงทะเบียนไว้กับ rarian ของ GNOME ด้วย

หลังจากได้ทดลองแปล help เล่น ๆ ไปสองสามแพกเกจ ก็คิดว่าควรหาเอกสารสำคัญที่จะแปลจริงจัง สำหรับตอนนี้ เห็นว่าควรเริ่มจาก Desktop User Guide ของ GNOME (เวอร์ชันออนไลน์):

GNOME Desktop User Guide

ซึ่งปริมาณงานหลังจาก merge คำแปลเก่าเข้าไปแล้ว ก็ยังเยอะไม่ใช่เล่น:

$ msgfmt -cv th.po
21 translated messages, 147 fuzzy translations, 2763 untranslated messages.

อย่าลืมว่า แต่ละข้อความของ help นั้น โดยเฉลี่ยจะยาวกว่าของ UI เพราะหนึ่งข้อความก็คือหนึ่งย่อหน้า

งานแปล UI ที่ทำได้ 90% นั้น เป็นแค่ยอดของภูเขาน้ำแข็งจริง ๆ

นี่ยังไม่นับรวม UI และ help ของแพกเกจชุดอื่นที่อยู่นอก official GNOME นะครับ

ทีมแปล GNOME ต้องการคุณ!

ป้ายกำกับ: ,

05 กันยายน 2551

Toward 90% + Help

เมื่อช่วงโอลิมปิก blog เรื่อง Translation Olympic ไป ตอนนั้น อันดับแปล GNOME 2.24 ของไทยอยู่ที่อันดับ 33 แต่ช่วงโอลิมปิกก็แปลด้วยอารมณ์ร่วมกับกีฬา เลยไต่อันดับขึ้นมาเรื่อย ๆ โดยตอนพิธีปิดนั้น ภาษาไทยขึ้นมาอยู่อันดับ 29 ต่อท้ายภาษากรีก ต้นกำเนิดโอลิมปิกพอดี ต่อจากนั้นก็ติดลม ไต่ต่อขึ้นมา ตอนนี้อยู่อันดับ 22 แล้ว เข้ามาอยู่ในกลุ่มเดียวกับภาษายุโรปละ น่าจะเป็นอันดับที่ดีที่สุดเท่าที่เคยแปลมา ขอแสดงความยินดีกับผู้มีส่วนร่วมแปลทั้งหมดที่ผ่านมาด้วยครับ

แต่อันดับคงอยู่อย่างนี้ไม่นาน เพราะตอนนี้เริ่ม string freeze แล้ว ทีมแปลอื่น ๆ คงเริ่มทำงานเต็มที่ เอาง่าย ๆ ว่าภาษายุโรปที่ไล่เลี่ยกับเราอยู่ตอนนี้ แค่แก้ fuzzy ให้หมดก็แซงเราสบาย ๆ แล้ว

ตั้งเป้าแข่งกับตัวเองดีกว่าน่ะ.. ตอนนี้คิดว่า GNOME 2.24 สามารถเป็นรุ่นแรกที่อัตราการแปลภาษาไทยแตะหลัก 90% ได้ไม่ยาก ตอนนี้ก็ใกล้เต็มทีแล้ว คืออยู่ที่ 89% ต้องการอีกเพียง 141 ข้อความ ก็จะถึง 90%

แต่ระวังว่าไม่ใช่เอาแค่ปริมาณอย่างเดียวนะครับ คุณภาพก็สำคัญ ใครเจอคำแปลที่ไม่เหมาะสมก็กรุณารายงานได้ที่ mailing list ครับ

พร้อมกันนี้ ก็ได้ ประกาศเริ่มแปล help ของ GNOME ด้วย ก็เป็นอีกสถิติหนึ่งใน GNOME 2.24 นี้ ที่จะเริ่มมี help ภาษาไทยเป็นครั้งแรก!

สำหรับ help ผมเคยลองแปลบ้างแล้วในรุ่นก่อน ๆ รวมทั้งมีนักแปลส่งคำแปลมาแล้วด้วย แต่ปัญหาคือ yelp ซึ่งเป็นโปรแกรมแสดง help ของ GNOME นั้น ยังมีปัญหากับการแสดงภาษาไทยอยู่ โดยปัญหาหลักคือเรื่อง justified paragraph ซึ่ง Gecko และ Pango ในตอนนั้นยังไม่รองรับกรณีที่มี combining character โดยถ้ามี ตัวหนังสือจะซ้อนเหลื่อมกัน ใครใช้ Firefox®/Iceweasel 2.x ที่ enable Pango คงพอจำได้ แล้วก็อีกปัญหาหนึ่งคือเรื่องการตัดคำ

แต่ตอนนี้ไม่ใช่แล้ว Gecko 1.9 ที่มากับ Firefox®/Iceweasel 3 ไม่มีปัญหากับภาษาไทยอีกต่อไป เท่ากับว่า yelp ซึ่งใช้ xulrunner เป็น backend ก็พร้อมสำหรับการแสดง help ภาษาไทยแล้วด้วยเหมือนกัน

ฉะนั้น ใครสนใจแปล help ของ GNOME หรือช่วยจับ screenshot ภาษาไทยประกอบ help ก็ขอเชิญนะครับ ผมพร้อมแล้วที่จะรับและ commit เข้า SVN

ป้ายกำกับ: ,

hacker emblem