Ez nagyon egyszerű. Ha csinálunk egy új gem-et saját locale fájlokkal, elsőkörben a lokális fájlokat kell létrehoznunk a gem lib/locales könyvtárban (en.yml és hu.yml). Ezután az .rb fájlunkban, aminek a lib könyvtárban kell lennie, csinálunk egy új methódust: translate_string.
class Example require 'rubygems' require 'active_support' require 'i18n' def initialize path=File.dirname(__FILE__) I18n.load_path += Dir[ File.join(path, 'locales', '*.{rb,yml}') ] end def translate_string(var) return I18n.t(var, :scope=>[:example, :vars]) end end
Ezután szerkesszük meg a locale fájlokat, en.yml:
en: example: vars: title: example
És a hu.yml:
hu: example: vars: title: példa
Vigyázzunk, hogy space-eket használjunk tabok helyett. Ezután építsük fel a gem-ünket, majd tegyük be a Gemfile-ba, ami rails3 alkalmazás könyvtárában van. Ne felejtsük el újraindítani az alkalmazásunkat. Ezután már meg tudjuk hívni az új osztályunkat a controllerünkből:
e=Example.new
e.translate_string("title")
Ez pedig ezt adja vissza: "példa". Ennyi az egész!
További angol nyelvű információ az I18n fájlokról és bállításokról: I18n yml files in Rails3
Az eredeti cikk angol verziója megtalálható: ruby-on-rails-tutorials.blogspot.com/2010/10/how-to-load-i18n-locale-files-in-rails3.html