Edición de «KumbiaPHP y gettext»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 7: | Línea 7: | ||
aptitude install locale | aptitude install locale | ||
Además, también debe estar disponible el lenguaje, al cual se quiere hacer la traducción. | Además, también debe estar disponible el lenguaje, al cual se quiere hacer la traducción. | ||
− | |||
=== Tutorial === | === Tutorial === | ||
Línea 23: | Línea 22: | ||
<source lang="php"> | <source lang="php"> | ||
<?php echo Form::open('formularios/prueba') ?> | <?php echo Form::open('formularios/prueba') ?> | ||
− | + | _("Nombre:") <?php echo Form::text('nombre') ?> | |
</source> | </source> | ||
Con esto, ya sabemos como tenemos que escribir los textos, que queremos internacionalizar. Otra cosa que hay que tener en cuenta, es que deberemos crear (ahora explicaré como) un archivo '''.po''', por cada idioma que queramos tener en nuestra aplicación. | Con esto, ya sabemos como tenemos que escribir los textos, que queremos internacionalizar. Otra cosa que hay que tener en cuenta, es que deberemos crear (ahora explicaré como) un archivo '''.po''', por cada idioma que queramos tener en nuestra aplicación. | ||
− | Los '''códigos de idioma''' a utilizar | + | Los '''códigos de idioma''' a utilizar, son los que se definen en la norma '''ISO 639'''. Por ejemplo, es (español), fr (francés). |
− | + | Has de tener ubicado, la correspondiente carpeta de su idioma, dentro de la aplicación en app/locale. Por ejemplo, si yo quiero que mi aplicación se pueda mostrar en español y en inglés, la estructura sería esta: | |
− | |||
− | Has de tener ubicado, la correspondiente carpeta de su idioma, dentro de la aplicación en app/locale. Por ejemplo | ||
<pre> | <pre> | ||
Línea 41: | Línea 38: | ||
|-- LC_MESSAGES | |-- LC_MESSAGES | ||
|-- es.po | |-- es.po | ||
− | |-- | + | |-- en_EN |
|-- LC_MESSAGES | |-- LC_MESSAGES | ||
− | |-- | + | |-- en.po |
− | |||
− | |||
− | |||
|-- core | |-- core | ||
</pre> | </pre> | ||
Línea 93: | Línea 87: | ||
<source lang="php"> | <source lang="php"> | ||
<?php | <?php | ||
− | $language="en_EN"; | + | $language="en_EN"; |
− | putenv("LC_ALL=$language"); | + | putenv("LC_ALL=$language"); |
− | setlocale(LC_ALL, $language); | + | setlocale(LC_ALL, $language); |
− | bindtextdomain("messages", | + | bindtextdomain("messages", "./locale"); |
− | textdomain("messages"); | + | textdomain("messages"); |
?> | ?> | ||
</source> | </source> | ||
Línea 103: | Línea 97: | ||
'''''Nota:''''' El primer argumento de las funciones bindtextdomain y textdomain, tiene que ser el nombre del archivo .po que se haya creado. | '''''Nota:''''' El primer argumento de las funciones bindtextdomain y textdomain, tiene que ser el nombre del archivo .po que se haya creado. | ||
− | + | Ten en cuenta, que con ese código nos lo mostraría en inglés. Si quieres cambiarlo dinámicamente desde tu aplicación, tendrás que adecuar el código, para que la variable '''''$language''''', tome el idioma que te interese en cada momento. | |
− | |||
− | Si quieres | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Categoría:Tutoriales KumbiaPHP]] | [[Categoría:Tutoriales KumbiaPHP]] |