Yii2 – Como desarrollar una aplicación multilenguaje

Hace ya tiempo hablamos de cómo desarrollar una aplicación multilenguaje para yii versión 1, y hoy os traemos los pasos para realizarlo con la versión yii2:

Básicamente hay que seguir los siguientes pasos:

1 – Abrir una línea de comandos (cmd) y acceder a la raíz de nuestro proyecto. Y una vez ahí incluir la siguiente orden. Esto generará un archivo dentro de la ruta config/ llamado i18n.php, que será el que contenga los valores globales de la internacionalización.

yii message/config @app/config/i18n.php

2 – Tendremos que modificar la línea languages indicando los idiomas que queramos:

'languages' => ['es_ES','en_US'],

3 – También será necesario modificar el sourcePath y el messagePath con los siguiente valores:

'sourcePath' => __DIR__. DIRECTORY_SEPARATOR .'..',
'messagePath' => __DIR__ . DIRECTORY_SEPARATOR .'..'. DIRECTORY_SEPARATOR . 'messages',

4 – Será necesario crear la carpeta messages en el directorio raíz de la aplicación.
5 – Incluir dentro del congif/web.php la siguientes líneas dentro de components (en caso de que no se haga sólo se podrán introducir traducciones en el fichero app)

'i18n' => [
        'translations' => [
            '*' => [
                'class' => 'yii\i18n\PhpMessageSource',
                'basePath' => '@app/messages',
                'sourceLanguage' => 'en',
                'fileMap' => [
                    //'main' => 'main.php',
                ],
            ],
        ],
    ],

6 – Una vez tengamos eso, tendremos que generar los ficheros de dichos idiomas (o cuando queramos actualizarlos). Para ello es necesario ejecutar:

yii message/extract @app/config/i18n.php

Recomendación:
En config/i18n.php si queréis que el extract de todos los mensajes vaya más rápido podéis introducir un except de los vender.

Leave a Reply

Your email address will not be published. Required fields are marked *