Tuesday, March 21, 2006

Rails Localization Plugin

Localization Plugin เป็น Plugin ที่ช่วยทำ localize อย่างง่ายๆ
ไม่ต้องไปยุ่งกับโปรแกรม gettext

หลักการ ก็คือเราต้องสร้าง ruby program ใต้
${RAILS_ROOT}/lang
จะแยกเป็น file ตาม language หรือ รวมทุก lang ไว้ใน file เดียวก็ได้
เนื้อหาใน file จะเป็นดังนี้
Localization.define('th') do |l|
l.store 'yes', 'ตกลง'
l.store 'no', 'ไม่ตกลง'
l.store 'hello world', 'สวัสดีครับ'
end

เวลาใช้ใน view ก็เรียกใช้ผ่าน method _
 <body>
<%= _ 'hello world' %>
</body>

การ switch ภาษา จะทำผ่าน Object Localization

Localization.lang = params[:lang] == nil ? :default : params[:lang]


feature ที่ดูน่าสนใจ อยู่ที่ตรงการ Localization.define
ที่เราสามารถทำอะไรแบบนี้ได้
l.store '(time)', lambda { |t| t.strftime('%H:%M') }

ใน view จะเขียนแบบนี้
<%= _ '(time)', Time.now %>

Related link from Roti

No comments: