Gettext izar en Ruby on Rails (RoR)

De GALPon WiKi

Ruby on Rails é un contorno feito para traballar en inglés. O problema chega cando o noso cliente só fala galego (ou zulú) e quere o aplicativo, como é lóxico, no seu propio idioma.

E agora como traducimos as datas? E os formatos de moeda? Preguntas como estas xa teñen solución. Imos utilizar Gettext, a biblioteca GNU de localización de software por excelencia, e Localize, o plugin escrito por Ramon Salvadó, Miquel Ibero e Pau Colomer que nos permitirá manexar as funcións de Gettext desde o noso aplicativo RoR.


Instalación da xema Gettext

Pasemos á acción. O primeiro é instalar a xema Gettext:

sudo gem install gettext


Instalación do engadido Gettext Localize

A continuación, instalamos o engadido Gettext Localize no noso proxecto via github:

git clone git://github.com/rsalvado/gettext_localize.git vendor/plugins/gettext_localize

Agora temos que localizar todo o texto que queremos que sexa traducible e marcalo coa seguinte sintaxe:

_("text to translate")


Xerar a plantilla POT

Agora temos que xerar o fichero POT, o modelo base a partir da cal poderanse realizar todas as traducións. Imos ao terminal e escribimos:

rake gettext:updatepo

Si todo foi ben, veremos un novo cartafol no noso aplicativo co fichero POT dentro del:

po/nome_aplicativo.pot.


Xerar o ficheiro de tradución PO

Dentro dese cartafol temos que crear un ficheiro po/lang1/nome_aplicativo.po para cada tradución, onde lang1 é o ISO do idioma destino. Por exemplo, para a nosa tradución ao galego, o ficheiro será po/gl/nome_aplicativo.po. Para a tradución ao alemán o fichero será po/de/nome_aplicativo.po. E así sucesivamente.


Xerar o binario MO

Unha vez fixemos as traducións correspondentes co noso editor preferido (podemos facelo con Poedit ou con calquera outro como Lokalize ou Gtranslator etc...), imos de novo ao terminal e escribimos:

rake gettext:makemo


E iso é todo.

Gettext Localize foi probado cos seguintes idiomas: galego, catalán, español, inglés, francés e alemán. Para configurar novos idiomas, cambiar a configuración predeterminada, etc..., consultaremos a documentación que vén co plugin.