Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/08/2017, 10:54
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recargar una página con otro idioma

Hay algoritmos de traducción bien complejos, que no lo compartiria por aca debido a su complejidad, tambien hay empresas dedicadas a eso. Pero podrias usar get e ir aplicando mensajes con arrays algo asi

Código PHP:
Ver original
  1. function getLang($lang,$langs){
  2. if(!in_array($lang, $langs)){ return 0; } // spanish default??
  3. return $langs[$lang];
  4. }
  5.  
  6. function completeUrl($langs){
  7. $nlangs = array();
  8.     for($k=0;$k<sizeof($langs);$k++){
  9.     $nlangs["&lang=".key($langs)] = "";
  10.     next($langs);
  11.     }
  12. $keys = array_keys($nlangs);
  13. $values = array_values($nlangs);
  14. $url = str_ireplace($keys, $values, $_SERVER["REQUEST_URI"]);
  15. return $_SERVER["REQUEST_SCHEME"].'://'.$_SERVER["HTTP_HOST"].$url;
  16. }
  17. if(empty($_GET["lang"])){ $lang = "esp"; }else{ $lang = strtolower($_GET["lang"]); }
  18. $langs = array("esp"=>0,"eng"=>1,"ger"=>2,"fra"=>3, etc..);
  19.  
  20.  
  21. echo '<div>'.array("Hola", "Hello", "Hallo", "bonjour")[getLang($lang,$langs)].'</div>';
  22. echo '<div>'.array("Adios", "Bye", "Tschüss", "Au revoir")[getLang($lang,$langs)].'</div>';

Entonces en los botoncitos cambiar lenguajes, haces esto:

<a href="lang=esp">Español</a>
<a href="lang=fra">Français</a>
<a href="lang=eng">English</a>
<a href="lang=ger">Deutsch</a>

Ahora, lo unico que falta, es que el enlace te enviaría a "lang=fra", para eso lo arreglas asi:

<a href="<?=completeUrl($langs);?">&lang=fra">Françai s</a>

Y listo.

Es algo poco ortodoxo, pero son maneras de mostrarte como se pueden ir resolviendo problemas.

Saludos.

Edito, tube que modificar para resetear la url

Última edición por alvaro_trewhela; 25/08/2017 a las 12:08