วิธีการแปล Redmine เป็นภาษาใดก็ได้
หนึ่งในคุณสมบัติที่ยอดเยี่ยมของ Redmine คือคุณสามารถ แปลแอปพลิเคชันการจัดการโครงการนี้เป็นภาษาใดก็ได้ ที่คุณต้องการได้อย่างง่ายดาย

คำเตือน: ข้อมูลในบทความนี้ใช้กับ Redmine เท่านั้นและไม่ใช้กับ Easy Redmine
เมื่อเรื่องการแปล Redmine คุณต้องแปลสิ่งต่อไปนี้:
- ไฟล์ภาษาหลัก: ไฟล์นี้ตั้งอยู่ในตำแหน่งปัจจุบันที่ trunk ที่แหล่งที่มา: /trunk/config/locales
- ไฟล์ภาษาแถบเครื่องมือวิกิ: ไฟล์นี้ตั้งอยู่ในตำแหน่งแหล่งที่มา: trunk/public/javascripts/jstoolbar/lang
- ไฟล์วิธีใช้ช่วยเหลือ 4 ไฟล์: ไฟล์เหล่านี้ตั้งอยู่ในตำแหน่งแหล่งที่มา: trunk/public/help/ ภายใต้โฟลเดอร์ย่อยที่ชื่อตามภาษาย่อ
เป็นตัวอย่างเช่น ถ้าคุณต้องการแปลแอปพลิเคชัน Redmine เป็นภาษาฟินแลนด์ (ภาษาย่อภาษาฟินแลนด์ถูกกำหนดในทะเบียนภาษาย่อว่า "fi") คุณควรทำตามขั้นตอนต่อไปนี้:
ขั้นตอน
- ขั้นตอนที่ 1: คัดลอกและวาง /config/locales/en.yml ไปยัง /config/locales/fi.yml
- ขั้นตอนที่ 2: คัดลอกและวาง /public/javascripts/jstoolbar/lang/jstoolbar-en.js ไปยัง /public/javascripts/jstoolbar/lang/jstoolbar-fi.js
- ขั้นตอนที่ 3: คัดลอกและวาง /public/help/en/* ไปยัง /public/help/fi/*
- ขั้นตอนที่ 4: แก้ไขคีย์ general_lang_name ด้วยชื่อเต็มของภาษาใหม่ใน fi.yml (ในกรณีนี้: general_lang_name: Finnish)
- ขั้นตอนที่ 5: จากนั้น, ล้างแคชแอปพลิเคชัน นี้จะทำให้ภาษาใหม่ (ภาษาฟินแลนด์) สามารถใช้งานได้ในซอฟต์แวร์ Redmine (ตัวอย่างเช่น rake tmp: cache: clear)
หลังจากทำตามขั้นตอนดังกล่าว ดำเนินการต่อดังนี้:
- ขั้นตอนที่ 6: แปลสตริงแต่ละตัวใน jstoolbar-fi.js และ fi.yml และแปลเนื้อหาของไฟล์ช่วยเหลือ 4 ไฟล์ (wiki_syntax_markdown.html ,wiki_syntax_textile.html, wiki_syntax_detailed_markdown.html และ wiki_syntax_detailed_textile.html)
- ขั้นตอนที่ 7: ใช้งาน rake tasks (รายละเอียดอยู่ด้านล่าง) เพื่อทดสอบการแปลของคุณ คุณต้องแก้ไขข้อผิดพลาด (หากคุณได้รับข้อผิดพลาด) ที่เกี่ยวข้องกับภาษา
- ขั้นตอนที่ 8: ส่งแปลของคุณในรูปแบบแพทช์หรือไฟล์ธรรมดา (จะต้องเข้าสู่ระบบ) จากกล่องรายการหมวดหมู่เลือก "แปล"
- ขั้นตอนที่ 9: สุดท้ายและสำคัญที่สุด สนุกกับงานแปลของคุณ!
การทดสอบ rake tasks:
- หากคุณใช้เวอร์ชัน Ruby 1.9 หรือสูงกว่า:
rake locales: check_parsing_by_psych
- บนเวอร์ชัน Ruby ทั้งหมด:
rake locales: check_interpolation
- ทดสอบทั้งหมด (นี้เป็นทางเลือก) : rake test
โปรดทราบว่า "rake test" ใช้เวลานานมากและเรียกใช้โดยอัตโนมัติบนเซิร์ฟเวอร์ CI (Continuous Integration)
ข้อจำกัดที่มีอยู่
โปรดทราบว่ามีข้อจำกัดบางประการ
- ไฟล์ทั้งหมดต้องเป็นรูปแบบ UTF-8 (Unicode Transformation Format 8-bit) ในสตริงที่แปล อย่าใช้เอนทิตี้ HTML (Hypertext Markup Language)
- ตรวจสอบให้แน่ใจว่าไฟล์ของคุณไม่มีเครื่องหมายต้นแบบไบต์ (BOM) คุณสามารถลบเครื่องหมายต้นแบบไบต์ด้วยคำสั่งนี้: awk '{if(NR==1)sub(/^\xef\xbb\xbf/, "");print}' < oldfile > newfile
- คุณควรส่งอัปเดตเฉพาะตามไฟล์แปลใหม่ (คุณสามารถค้นหาอัปเดตเหล่านี้ใน /config/locales)
การอัปเดตไฟล์ภาษา
ไฟล์ "en.yml" ทำหน้าที่เป็นไฟล์ภาษาหลัก โดยการเรียกใช้ rake locales: update คุณสามารถตรวจสอบว่ามีสตริงใหม่หรือไม่ คำสั่งนี้จะคัดลอกสตริงใหม่ไปยังไฟล์แปลอื่น (ค่าเริ่มต้นคือการแปลภาษาอังกฤ
การปรับแต่งคำศัพท์เกี่ยวกับการแปลใน Redmine
- ตั้งค่าไดเรกทอรีที่มีอยู่ให้เป็น config/overrides/<locale> ภายในปลั๊กอิน
- คัดลอกและวาง 000.yml ปัจจุบันไปยัง ./XXX.yml ที่นี่ "XXX" คือตัวเลขสามหลักที่กำหนดลำดับความสำคัญของคำจำกัดความของคุณ: ตัวเลขมากกว่าคือลำดับความสำคัญที่สูงกว่า แต่ควรเลี่ยงการสร้าง 999.yml นี้จะช่วยให้คุณเหลือพื้นที่มากขึ้นสำหรับการแทนที่เพิ่มเติม
- กรองคำจำกัดความที่คุณไม่ต้องการแก้ไข ด้วยวิธีนี้ไฟล์ที่มีลำดับความสำคัญต่ำกว่าจะสามารถนำการแก้ไขไปใช้กับองค์ประกอบที่คุณไม่ต้องการแทรกแซง
- นำคำจำกัดความที่เหลืออยู่มาใช้กับคำจำกัดความของคุณเอง
คำศัพท์ที่สนับสนุนและสามารถปรับแต่งได้ในปลั๊กอินของคุณ
- เช่นเคย ให้ใส่ไฟล์แปลใน config/locales เพื่อให้ทำงานอย่างถูกต้องเมื่อคุณยังไม่ได้ติดตั้งปลั๊กอิน หากคุณไม่ได้ทำเช่นนั้นคุณควรระบุการติดตั้งปลั๊กอินนี้ใน init.rb หากคุณต้องการข้อมูลเพิ่มเติมโปรดตรวจสอบเอกสาร Redmine
- คัดลอกและวางโลเคลส์ของคุณไว้ที่ config/locales
- สำหรับทุกคำจำกัดความที่สามารถแทนที่ได้ใน 000.yml เปลี่ยนแปลงคำแปลเพื่อใช้ตัวแทนระหว่างการแทรกแทรก ตัวอย่างเช่น เมื่อคุณพิมพ์คำสั่ง คุณควรแทนคำด้วย %{issue} นอกจากนี้ เมื่อคุณพิมพ์คำสั่ง issue(s) คุณควรแทนคำด้วย %{issue_or_issues}
- คุณสามารถสนับสนุ