Foros del Web » Programando para Internet » PHP »

Problema idioma

Estas en el tema de Problema idioma en el foro de PHP en Foros del Web. Utilizo este programa para cambiar los idiomas que al tener algunas paginas a distinto, nivel una es la index y otras estan en distintas carpetas, ...
  #1 (permalink)  
Antiguo 15/11/2007, 06:07
 
Fecha de Ingreso: enero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
Problema idioma

Utilizo este programa para cambiar los idiomas
que al tener algunas paginas a distinto, nivel una es la index y otras estan en distintas carpetas, me daba problema las include('lang/es.php').

Alguien me dijo que poniendo una / delante del lang se solucionaba "include('/lang/es.php')",
pero no funciono, si algien sabe como puede funcionar me ayudaría mucho, ya que me urge

<?php session_start();
if (isset($_POST['sidioma'])) // vengo a la pagina a traves del boton cambiar idioma
{
$_SESSION['idioma'] = $_POST['sidioma']; // cambio el idioma
} else {
if (!isset($_SESSION['idioma'])) // es la primera vez que accedo a la pagina
{
$_SESSION['idioma'] = 'es'; // idioma por defecto
}
}
switch ($_SESSION['idioma']) {
case 'es':
include('lang/es.php');
break;
case 'en':
include('lang/en.php');
break;
case 'fr':
include('lang/fr.php');
break;
default :
include('lang/es.php');
break;
}
?>

y lo introduzco en las distintas páginas haciendo:
<?php include('idiomas/idiomas.php');?>

Tambien lo intente usando include('$_SERVER['DOCUMENT_ROOT']/lang/es.php'), pero me da errorcodigo y que me funcione?
  #2 (permalink)  
Antiguo 15/11/2007, 06:29
Avatar de jimi  
Fecha de Ingreso: mayo-2006
Ubicación: La Plata, Bs As, Argentina
Mensajes: 60
Antigüedad: 17 años, 11 meses
Puntos: 0
Re: Problema idioma

a ver si case la onda..
el include te anda barbaro, pero las referencias que tenes dentro del include no te andan??

la sentencia include($unArchivo), es similar a copiar pegar el codigo de $unArchivo dentro del bloque de codigo..
por lo tanto las referencias, ya sea a imagenes, o lo que sea dentro de $unArchivo, arrancan del nivel de donde este el archivo que hace el include..

Una solucion simple, no la mejor, hace de los archivos que incluis, direcciones absolutas.. o sea, que en.php, tenga todas las referencias con direcciones absolutas, y ahi no tendrias q tener drama..

un saludo
  #3 (permalink)  
Antiguo 16/11/2007, 05:30
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: Problema idioma

por que mejor no creas un archivo llamado. lenguaje_english.php entonces cuando tengas el menú de selección ingles castellano ejemplo..

si tienes ingles seria así

lenguaje_english.php

$lang = array();

$lang['BIENVENIDO'] = 'Welcome';
$lang['ERROR_LOGIN'] = 'Sorry but you cant login! try again';
$lang['SALUDO_USUARIO'] = 'hi user';

entonces ahora lo que tendras que hacer es salvar la session del nombre ejemplo

$idioma = $_POST['IDIOMA']; asumamos que tiene el valor de ingles
entonces seria asi $_SESSION['IDIOMA'] = $idioma;
y para mostrarlo en cada pagina tendrías que hacer de la siguiente forma.


require_once('includes/lang/lenguaje_'.$_SESSION['IDIOMA'].'');
y asi te evitas de hacer el uso de switch que ocupa mas memoria en php tambien te recomiendo usar require_once() por que así php no lo esta llamando a cada rato sino que lo almacena temporalmente en memoria de PHP asi aunmentaras el tiempo de respuesta... Saludos espero que te sirva cualquier duda responde por aqui..

un ejemplo en la vida real seria.

<?
// $_SESSION tiene el valor de ingles entonces el resultado de todo esto seria Welcome hi user, Eddwin

require_once('includes/lang/lenguaje_'.$_SESSION['IDIOMA'].'');


$sql = $mysql->query(SELECT nombre FROM empleados WHERE id='1' );
$data = mysql_fetch_array($sql) or die('Error Nivel Bajo-> Fetch SQL');

echo ''.$lang['SALUDO_USUARIO'].''.$lang['BIENVENIDO'].', '.$data['nombre'].'';

?>

Hacerca de las rutas ejemplo
librerias/lang.php
includes/pagina.php

si tu archivo lang esta en librerias entonces deberias usar ../archivo_punto_php para poder accesar a el. intenta con . si es un archivo o .. si son mas saludos xD

Última edición por eddwinpaz; 16/11/2007 a las 05:43
  #4 (permalink)  
Antiguo 16/11/2007, 05:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Re: Problema idioma

Código PHP:
include("{$_SERVER['DOCUMENT_ROOT']}/lang/es.php"); 
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 03:28.