Estoy desarrollando una web que se traducirá a 3 idiomas. Cada traducción en un fichero php dentro una subcarpeta de la carpeta lang. (Así, castellano estará en /lang/es/es.php)
La traducción en sí, funciona perfectamente (gracias a lo que he aprendido sobre todo en este foro).
El problema está cuando se entra por primera vez en la web.
Entonces, la variable $lang (que uso para definir el lenguaje) todavía no ha adquirido ningún valor, y esto me genera el siguiente error:
Cita:
En cuanto se pasa un valor por GET a la variable todo funciona. Por ejemplo si entro por index.php?lang=enNotice: Undefined index: lang in D:\xampp\htdocs\webphp\index.php on line 10
Warning: require(lang//.php) [function.require]: failed to open stream: No such file or directory in D:\xampp\htdocs\webphp\index.php on line 15
Fatal error: require() [function.require]: Failed opening required 'lang//.php' (include_path='.;D:\xampp\php\PEAR') in D:\xampp\htdocs\webphp\index.php on line 15
Warning: require(lang//.php) [function.require]: failed to open stream: No such file or directory in D:\xampp\htdocs\webphp\index.php on line 15
Fatal error: require() [function.require]: Failed opening required 'lang//.php' (include_path='.;D:\xampp\php\PEAR') in D:\xampp\htdocs\webphp\index.php on line 15
(Por la ruta ya veis que estoy probando en servidor local utilizando Xampp)
El caso es que le he dado mil vueltas. Y la linea 10 en cuestión
Código PHP:
$lang=$_GET['lang'];
El código con el que comienza el index es el siguiente:
Código PHP:
<?php
session_start();
if(!isset($_SESSION['idioma']) || !empty($_GET['lang']))
{
if(empty($lang))
{
$lang="es";
$lang=$_GET['lang'];
}
$_SESSION['idioma']=$lang;
}
switch ($_SESSION['idioma']) {
case $_SESSION['idioma']: require("lang/".$_SESSION['idioma']."/".$_SESSION['idioma'].".php"); break; }
?>
Obviamente pasa por que $_GET['lang'] tenga un valor cuando aún no se ha recibido ninguno por url. Pero... ¿como?
En fin, que soy consciente de que he llegado a ese punto en el que me he liado de tal forma que seguramente los árboles no me están dejando ver el bosque.