Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/php/multilenguaje»
De WikiEducator
(→Instalación) |
(→Estructura de dierectorios) |
||
Línea 25: | Línea 25: | ||
===Estructura de dierectorios=== | ===Estructura de dierectorios=== | ||
*Se trata de tener un directorio por cada idioma que queramos hacer traducir | *Se trata de tener un directorio por cada idioma que queramos hacer traducir | ||
− | *Estos directorios se espera bajo ''''' | + | *Estos directorios se espera bajo '''''locale''''' |
*Los nombres de cada directorio de cada idioma a de ser un nombre estandarizado | *Los nombres de cada directorio de cada idioma a de ser un nombre estandarizado | ||
*Podemos obtener una lista de las localizaciones instaladas en nuestro sistema | *Podemos obtener una lista de las localizaciones instaladas en nuestro sistema | ||
Línea 31: | Línea 31: | ||
locale -a | locale -a | ||
</source> | </source> | ||
+ | *Como ejemplo crearemos 3 idiomas (fr, en, es) | ||
+ | *Se crean directorios con el nombre | ||
+ | ii_PP | ||
+ | '''''ii''''' son dos letras para especificar el idioma de acuerdo a la especificación IDO-639-1 | ||
+ | '''''PP''''' son dos letras en mayúsculas correspondinetes al país según la especificación IDO-3166-1 | ||
+ | *Dentro de cada directorio crearemos el directorio '''''LC_MESSAGES''''' | ||
+ | [[Archivo:dir_idiomas.png]] | ||
===Creando los ficheros de texto=== | ===Creando los ficheros de texto=== |
Revisión de 01:57 8 sep 2018
Contenido
gettext()
- Función en php que nos va a permitir tener nuestra página en varios lenguajes, lo que se llama internacionalizar nuestra aplicación de una forma profesional
https://www.gnu.org/software/gettext/manual/gettext.html
Instalación
- Para poder usar esta función debemos tener instalado el paquete de ubuntu identificado con el mismo nombre.
apt-get install gettext
- Fichero de configuración de php (En mi caso)
/etct/php/7.2/apache/php.ini
y quitamos el comentario ; de la extensión 'gettext
.... ;extension=gd2 extension=gettext ;extension=gmp ....
- Reiniciamos servicio
sudo service apache2 restart
Estructura de dierectorios
- Se trata de tener un directorio por cada idioma que queramos hacer traducir
- Estos directorios se espera bajo locale
- Los nombres de cada directorio de cada idioma a de ser un nombre estandarizado
- Podemos obtener una lista de las localizaciones instaladas en nuestro sistema
locale -a
- Como ejemplo crearemos 3 idiomas (fr, en, es)
- Se crean directorios con el nombre
ii_PP
ii son dos letras para especificar el idioma de acuerdo a la especificación IDO-639-1 PP son dos letras en mayúsculas correspondinetes al país según la especificación IDO-3166-1
- Dentro de cada directorio crearemos el directorio LC_MESSAGES
Creando los ficheros de texto
- Una herramienta a usar puede ser poedit (Hay varias, esta parece que tiene mucha aceptación)
apt-get install poedit
La página oficial
https://poedit.net/
Funciones a usar para traducir
- bind_textdomain_codeset
- Especifica el juego de caracteres en que los mensajes del catálogo del dominio serán devueltos
- bindtextdomain
- Establece la ruta del dominio
- dcgettext
- Sobrescribe el dominio de la búsqueda única del mensaje
- dcngettext
- Versión plural de dcgettext
- dgettext
- Sobrescribe el dominio actual
- dngettext
- Versión plural de dgettext
- gettext
- Consultar un mensaje en el dominio actual
- ngettext
- Versión plural de gettext
- textdomain
- Establece el dominio actual