hola a tod@s estoy implementando el modulo multilenguaje a mi web y he llegado a un problema que me esta dejando sin fuerzas..
tengo esta clase.
Código PHP:
class mi_clase {
var $str_leng = array();
//Inicia la clase
function mi_clase() {
$this->cargar_lenguaje();
}
//Obtenemos el lenguaje del usuario
private function obtener_lenguaje() {
$str_len_temp = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$lenguaje = explode(',',$str_len_temp);
$lenguaje = explode('-',$lenguaje[0]);
$lenguaje = strtoupper($lenguaje[0]);
return $lenguaje;
}
//Establecemos las cadenas del lenguaje de acuerdo al lenguaje del usuario
function cargar_lenguaje() {
$leng_usuario = $this->obtener_lenguaje();
include "lenguajes/$leng_usuario/cadenas.php";
$this->str_leng = $str_leng; // $str_leng es una matrix establecida en cadenas.php
}
}//clase
Esa clase incluye los archivos necesarios para el idioma del usuario que esta visitando la web.
funciona correcto cuando la incluyo en un archivo: ejmplo index.php
Código PHP:
require "clases/mi_clase.php";
$objeto_clase = new mi_clase();
echo $objeto_clase->str_leng['llave'];
ahora, el problema viene cuando ejecuto la clase dentro de un archivo que es llamado mediante ajax, es decir tengo un archivo llamado post_ajax.php, este archivo contiene funciones que se ejecutan mediante ajax y parametros.
post_ajax.php llama a la clase
mi_clase y obviamente al crearse la clase se ejecuta la funcion
cargar_lenguaje() y muestra el siguiente error.
Warning: mi_clase::include(lenguajes/ES/cadenas.php) [mi_clase.include]: failed to open stream: No such file or directory.
El error anterior lo solucione agregando esto a la hora de incluir los archivos del idioma
Código PHP:
include "../lenguajes/$leng_usuario/cadenas.php";
es decir que al ejecutar
post_ajax.php con ajax no muestra el error, pero aqui es donde comienza mi nuevo error, al agregar los dos puntos a la cadena del archivo a incluir, le dije a php que el archivo a incluir estaba una carpeta atras del archivo que ejecuto la clase por lo tanto me tira el mis error anterior al ejecutarse en cualquier otro script que no sea
post_ajax.php
Warning: mi_clase::include(lenguajes/ES/cadenas.php) [mi_clase.include]: failed to open stream: No such file or directory.
Como puedo solucionar este problema?
Espero me hayan entendido y Gracias!