layouts last framework for descargar yii internationalization gettext poedit

framework - yii2 last version



Yii y PHP Gettext (2)

Quiero hacer mi aplicación yii en varios idiomas. Para hacer esto, quiero usar gettext (porque es mucho más simple que los mensajes yii).

Para esto utilicé esta extensión yii , configuré los archivos PO, hice las traducciones, etc.

El gran problema: no pasó nada. Nada fue traducido.



Para usar gettext sin ninguna extensión, siga esos pasos. En config/main.php establece el idioma de destino de esta manera:

''language'' = ''ru'',

Establecer el componente de messages para usar CGettextMessageSource :

''messages'' => array( ''class'' => ''CGettextMessageSource'', ),

Cree el archivo messages.po en la carpeta protected/messages/ru (nota: el nombre de la carpeta es el mismo que el código de idioma). Si se usa poedit, el archivo messages.po debe tener encabezados apropiados. Ejemplo:

msgid "" msgstr "" "Project-Id-Version: FOO BAR 1.0/n" "Report-Msgid-Bugs-To: /n" "POT-Creation-Date: 2011-11-11 11:11+0300/n" "PO-Revision-Date: /n" "Language: ru/n" "MIME-Version: 1.0/n" "Content-Type: text/plain; charset=UTF-8/n" "Content-Transfer-Encoding: 8bit/n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;/n" "X-Poedit-SourceCharset: utf-8/n" "X-Poedit-Basepath: ./n" "X-Poedit-KeywordsList: _ngettext:1,2;t:1c,2/n" "X-Poedit-SearchPath-0: ../../n"

Nota t:1c,2 . Esto significa que el primer parámetro de la función Yii::app() se usará como contexto (ver msgctx ) y el segundo como cadena real para traducir. ¡Sin esto tu i18n no funcionará!

Ahora solo abra messages.po en poedit → Update → hacer traducciones → Save . Y Yii creará y usará el archivo messages.mo .

Para su cadena de plurales de lenguaje, vea la ayuda de gettext .