Detectar idioma em php

  • Autor Autor Sindulfo Santacruz
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
S

Sindulfo Santacruz

Zeta
Buscando en internet, he encontrado, modificado y adaptado a mis necesidades algo (relativamente sencillo)

La idea es dejar en el directorio raiz en un archivo index.php el siguiente código:

Inserir CODE, HTML ou PHP:
<?php
//Creamos una función que detecte el idioma del navegador del cliente.
function getUserLanguage() {
$idioma =substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
return $idioma;
}
//Almacenamos dicho idioma en una variable
$user_language=getUserLanguage();
if($user_language=='en'){
header( 'Location: http://sitio.com/en' );
}
elseif($user_language=='es'){
header( 'Location: http://sitio.com/es' );
}
else{
header('Location: http://sitio.com/es')
}
?>

Pero me arroja el ya famoso mensaje:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator

Alguna sugerencia?

Agradecido desde ya.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Sabés que hace unos días buscaba lo mismo y encontré este mismo código.

Respecto a tu problema, fijate si en tu servidor se subió algún historial de error (generalmente aparece como error_log). Abrilo con un bloc de notas y publicalo acá para poder detectar bien el inconveniente :encouragement:
 
Sabés que hace unos días buscaba lo mismo y encontré este mismo código.

Respecto a tu problema, fijate si en tu servidor se subió algún historial de error (generalmente aparece como error_log). Abrilo con un bloc de notas y publicalo acá para poder detectar bien el inconveniente :encouragement:
 
Sabés que hace unos días buscaba lo mismo y encontré este mismo código.

Respecto a tu problema, fijate si en tu servidor se subió algún historial de error (generalmente aparece como error_log). Abrilo con un bloc de notas y publicalo acá para poder detectar bien el inconveniente :encouragement:
 
pero y entonces los usuario que estén en español nunca podrán ver la versión en ingles?
 
Crea una Sesión/Cookie/condición/etc para saber cuando redirigirlo y cuando no, si no estaras en un ciclo que nuca acabará, lo mas seguro es que por eso te sale el error, se queda redirigiendo todo el tiempo hasta que el server te marca el error.

Saludos.
 
Crea una Sesión/Cookie/condición/etc para saber cuando redirigirlo y cuando no, si no estaras en un ciclo que nuca acabará, lo mas seguro es que por eso te sale el error, se queda redirigiendo todo el tiempo hasta que el server te marca el error.

Saludos.

Encontré esto (con lo de las cookies incluidas)

Con PHP, detectar idioma, redireccionar página y guardar preferencia del lenguaje en una cookie | Solosequenosenada

Capaz que los tiros vayan por esos lares.

- - - Actualizado - - -

De lo que me estoy dando cuenta es que necesito de un debug en php.

En el siglo pasado, cuando todavía programaba en rpg, cobol, c++ o visual basic, siempre tenía a mano la herramienta para ir viendo paso a paso qué hace el código en todo momento.

Esto del php, me tiene de las guirnaldas.

😕
 
Encontré esto (con lo de las cookies incluidas)

Con PHP, detectar idioma, redireccionar página y guardar preferencia del lenguaje en una cookie | Solosequenosenada

Capaz que los tiros vayan por esos lares.

- - - Actualizado - - -

De lo que me estoy dando cuenta es que necesito de un debug en php.

En el siglo pasado, cuando todavía programaba en rpg, cobol, c++ o visual basic, siempre tenía a mano la herramienta para ir viendo paso a paso qué hace el código en todo momento.

Esto del php, me tiene de las guirnaldas.

😕

Si estás en local puedes usar xdebug.
 
y creo que debería de implementar algo así en forma local, para encontrar el error.. con el xdebug.
Sucede que trabajo vía ssh, directamente en los servidores. Poco y nada uso el cPanel.

Vieja escuela que le llaman.

:ambivalence:

- - - Actualizado - - -

Sabés que hace unos días buscaba lo mismo y encontré este mismo código.

Respecto a tu problema, fijate si en tu servidor se subió algún historial de error (generalmente aparece como error_log). Abrilo con un bloc de notas y publicalo acá para poder detectar bien el inconveniente :encouragement:

[Fri Jul 29 10:56:20 2016] [error] [client 181.332.336.33] SoftException in Application.cpp:261: File "/home/site/public_html/www.sitio.com/index.php" is writeable by group

- - - Actualizado - - -

miércoles!
Estaba a la vista y no lo veía... era un simple drama de permisos, solucionable con una simple línea de chmod 644
Ya me estaba sacando canas verdes.

- - - Actualizado - - -

Por cierto, el código original tiene un error:

PHP:
<?php
//Creamos una función que detecte el idioma del navegador del cliente.
function getUserLanguage() {
$idioma =substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
return $idioma;
}
//Almacenamos dicho idioma en una variable
$user_language=getUserLanguage();
if($user_language=='en'){
header( 'Location: http://sitio.com/en' );
}
elseif($user_language=='es'){
header( 'Location: http://sitio.com/es' );
}
else{
header('Location: http://sitio.com/es' );
}
?>

éste es el corregido y queda disponible para el grupo.

:encouragement:
 
Voltar
Topo