Foros del Web » Programando para Internet » PHP »

redireccion segun idioma pero todo en una misma pagina

Estas en el tema de redireccion segun idioma pero todo en una misma pagina en el foro de PHP en Foros del Web. Hola fijense que tengo un sitio el cual quisiera ponerlo en tres idiomas ingles, español y aleman pero quisiera saber si hay alguna posibilidad de ...
  #1 (permalink)  
Antiguo 01/01/2006, 08:09
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Sonrisa redireccion segun idioma pero todo en una misma pagina

Hola fijense que tengo un sitio el cual quisiera ponerlo en tres idiomas ingles, español y aleman pero quisiera saber si hay alguna posibilidad de que segun el idioma del navegador la pagina se cargue automaticamente en su idioma pero sin Redireccionamiento, me explico?

Trataré de ser más exacto:

supongamos que tengo las variables:

$web = sitio web //español
$web = website //ingles
$web = website //aleman

$chat = charla //español
$chat = chat //ingles
$chat = chate //aleman

A lo que quiero llegar es que todas estas variables deben estar en un archivo index.php pero que este archivo detecte el idioma del navegador y automaticamente se carguen las variables que esten definidas para dicho idioma. Lo que me quiero ahorrar es tene rmultiples archivos como serian index.es.html index.gr.html etc etc etc.

Espero y me puedan ayudar. Saludos coordiales y Feliz Año 2006
__________________
Hospedaje Web al mejor costo!
  #2 (permalink)  
Antiguo 01/01/2006, 09:43
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 4
Lo que si podrias hacer es definir solo las constantes de cada idioma en archivos diferentes y despues mediante un include incluir el archivo de constantes correspondiente a cada idioma. Seria algo asi el codigo:

if(empty($sitelang)){ //primero preguntamos si la variable que va a contener el lenguage del visitante esta vacia
$sitelang = getenv("HTTP_ACCEPT_LANGUAGE"); // si esta vacia sacamos el lenguage del visitante y lo ponemos en la variable $sitelang
}
switch($sitelang){ //ahora cargamos el archivo que contiene el idioma segun la varible que sacamos antes
case "es" : //es = español
include("lang-esp.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
break;
case "en" : //en = ingles
include("lang-eng.php");
break;
default :
include("lang-esp.php"); //cargamos un idioma por defecto si no se encontro algun idioma
break;
}


Luego los archivos que contienen las palabras. El caso del archivo en español (lang-es.php) seria, por ejemplo:

<?php
define('_WEB','Sitio web');//lo definimos con una palabra que todos los archivos de lenguage tienen que tener para definir la funcion que cumple, despues la palabra que lo va a remplazar
define('_CHAT','Charla');
define('_HELO','Hola');
define('_ACCEPT','Aceptar');
?>


Y para poner la palabra correspondinete, desde el index.php:

<?
echo _WEB;//esto pondria en pantalla Sitio Web
?>


A ver si te sirve. Hasta luego.

Última edición por Cubatron; 02/01/2006 a las 07:43
  #3 (permalink)  
Antiguo 01/01/2006, 16:05
 
Fecha de Ingreso: agosto-2004
Mensajes: 349
Antigüedad: 19 años, 7 meses
Puntos: 3
más que variables, lo que necesitas son constantes.


Podrías tener distintos ficheros de idioma de este tipo:
español.php
define("CONSTANTE", "Hola mundo.");

ingles.php
define("CONSTANTE", "Hello World.");

y segun detectes el idioma del navegador llamas a un fichero o a otro, así cuando en tu index.php pongas:

echo CONSTANTE;

te saldrá en el idioma que requieres


Saludos!!
  #4 (permalink)  
Antiguo 01/01/2006, 16:23
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Ok los dos me van bien Gracias,

Tambien tengo otro pequeña dudita, si por ejemplo: Que tendria que hacer para que al detectar el idioma del navegador este redireccione asi:
Código PHP:
http://es.myweb.com //--> para el español, el cual cargue el archivo lang-es.php 
y asi sucesivamente. Gracias por sus respuestas
__________________
Hospedaje Web al mejor costo!

Última edición por urgido; 01/01/2006 a las 16:47
  #5 (permalink)  
Antiguo 02/01/2006, 07:43
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 18 años, 3 meses
Puntos: 4
Para redireccionar se usa la funcion header ("Location: paginaidioma.php");. Aunque creo que estas buscando crear un subdominio del tipo idioma.dominio.com no?

Hasta luego.
  #6 (permalink)  
Antiguo 02/01/2006, 10:16
 
Fecha de Ingreso: agosto-2004
Mensajes: 349
Antigüedad: 19 años, 7 meses
Puntos: 3
Como bien ha dicho cubatron, tienes que crear los subdominios que necesites por ejemplo:

es.myweb.com (desde tu panel de control deberías poder hacerlo sin problemas)

y despues con el header lo redireccionas

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:59.