Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Docker/practica»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con «{{Usuario:ManuelRomero/ProgramacionWeb/Docker/nav}}»)
 
Línea 1: Línea 1:
 
{{Usuario:ManuelRomero/ProgramacionWeb/Docker/nav}}
 
{{Usuario:ManuelRomero/ProgramacionWeb/Docker/nav}}
 +
;Puedes clonar el proyecto base en
 +
{{MRM_Web|
 +
git clone https://github.com/MAlejandroR/Practica_Multiidioma/ 
 +
}}
 +
<br />
 +
===Práctica Multidioma===
 +
*Esta práctica consiste en tomar este fichero y usando la bibliteca gettext, generar los ficheros necesarios para que este proyecto se adapte a los diferentes idiomas
 +
 +
*Deberá de verse en los idiomas
 +
 +
** Inglés
 +
** Francés
 +
** Castellano
 +
 +
*No funciona por ajax, por lo que cada vez que cambiemos el idioma deberemos ir al servidor para que adapte los textos al idioma establecido.
 +
 +
*Tendremos en el index un formulario que pide dos datos.
 +
 +
*Obligatoriamente hay que rellenar los dos datos, si no, dará un mensaje en el idioma correspondiente y se quedará  en la página idex.
 +
 +
*Si rellenamos datos y presionamos el submit correspondiente iremos a una página llamada sitio.php donde  veremos un mensaje de bienvenida con el nombre del usuario
 +
 +
*Igualmente en esta página podremos cambiar el idioma y volver a la página anterior (index)
 +
 +
*En todo momento el idioma aparecerá con un texto en cabecera de la página, así como seleccionado el radio correspondinete
 +
 +
====Consideraciones====
 +
* Se debe de mantener el idioma establecido entre la páginas
 +
* Podemos navegar de una págiana a otra
 +
* Al ir de sitio.php a index.php, se debe de perder el nonmbre de usuario y su password
 +
* Por defecto el idioma debe de ser el castellano
 +
* Intenta no repetir código, usa las funciones por favor
 +
## Otras consideraciones
 +
*Al realizar la práctica he tenido las siguientes  situaciones
 +
1.- El idioma para establecer a las funciones putenv y setlocale he tenido que establecer es_ES.utf8, fr_FR.utf8 ....<br />
 +
Esta cuestión la he verificado por que veía que setlocale retornaba false, debe de retornar el valor establecido, si no es que no puede establecerlo <br />
 +
{{MRM_Web| http://php.net/manual/es/function.setlocale.php}}
 +
2.- utf8, a veces no está bien reconocido, por lo que es mejor establecer el charset a ISO-8859-1<br />
 +
  {{MRM_Web| https://www.gnu.org/software/gettext/FAQ.html#nonascii_strings}}
 +
  En caso de hacer esto, habrá que ponerlo tanto en cada página como al generar los ficheros po (portable object)<br />
 +
<source lang=php>
 +
    xgettext --from-code=ISO-8859-1 --language=PHP -j messages.po /var/www/idiomas/index.php /var/www/idiomas/sitio.php xxx
 +
</source>
 +
  Lo de xxx es por si hay mas ficheros   
 +
==== Ver ejemplo====
 +
* Podemos probar el ejemplo aquí
 +
{{MRM_Web|
 +
  http://manuel.infenlaces.com/distancia/practicas/practica_9_Multiidioma/
 +
}}

Revisión de 20:57 19 dic 2019


Puedes clonar el proyecto base en




Práctica Multidioma

  • Esta práctica consiste en tomar este fichero y usando la bibliteca gettext, generar los ficheros necesarios para que este proyecto se adapte a los diferentes idiomas
  • Deberá de verse en los idiomas
    • Inglés
    • Francés
    • Castellano
  • No funciona por ajax, por lo que cada vez que cambiemos el idioma deberemos ir al servidor para que adapte los textos al idioma establecido.
  • Tendremos en el index un formulario que pide dos datos.
  • Obligatoriamente hay que rellenar los dos datos, si no, dará un mensaje en el idioma correspondiente y se quedará en la página idex.
  • Si rellenamos datos y presionamos el submit correspondiente iremos a una página llamada sitio.php donde veremos un mensaje de bienvenida con el nombre del usuario
  • Igualmente en esta página podremos cambiar el idioma y volver a la página anterior (index)
  • En todo momento el idioma aparecerá con un texto en cabecera de la página, así como seleccionado el radio correspondinete

Consideraciones

  • Se debe de mantener el idioma establecido entre la páginas
  • Podemos navegar de una págiana a otra
  • Al ir de sitio.php a index.php, se debe de perder el nonmbre de usuario y su password
  • Por defecto el idioma debe de ser el castellano
  • Intenta no repetir código, usa las funciones por favor
    1. Otras consideraciones
  • Al realizar la práctica he tenido las siguientes situaciones

1.- El idioma para establecer a las funciones putenv y setlocale he tenido que establecer es_ES.utf8, fr_FR.utf8 ....

Esta cuestión la he verificado por que veía que setlocale retornaba false, debe de retornar el valor establecido, si no es que no puede establecerlo 



2.- utf8, a veces no está bien reconocido, por lo que es mejor establecer el charset a ISO-8859-1



  En caso de hacer esto, habrá que ponerlo tanto en cada página como al generar los ficheros po (portable object)
    xgettext --from-code=ISO-8859-1 --language=PHP -j messages.po /var/www/idiomas/index.php /var/www/idiomas/sitio.php xxx
  Lo de xxx es por si hay mas ficheros    

Ver ejemplo

  • Podemos probar el ejemplo aquí