Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/php/multilenguaje»
De WikiEducator
(→Estructura de dierectorios) |
(→Estructura de dierectorios) |
||
Línea 34: | Línea 34: | ||
*Se crean directorios con el nombre | *Se crean directorios con el nombre | ||
ii_PP | ii_PP | ||
− | '''''ii''''' son dos letras para especificar el idioma de acuerdo a la especificación IDO-639-1 | + | *'''''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 | + | *'''''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''''' | *Dentro de cada directorio crearemos el directorio '''''LC_MESSAGES''''' | ||
[[Archivo:dir_idiomas.png]] | [[Archivo:dir_idiomas.png]] |
Revisión de 01:59 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