<?php
	

	//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	// Obtenemos la traducción de una frase en un idioma
	//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	function traducir($frase, $idioma = NULL){
		return ( Traduccion::traducir($frase, $idioma) );
		/*$retorno = $frase;
		include('comunes/globals.php');
		if ($idioma == NULL){
			$idioma = Sesion::get('idioma');
		}
		$idioma = ($idioma != NULL)? $idioma : Shop::$configuracion->idioma;
		if ( ($conexionBD) && ($idioma != NULL) ){
			//Toda frase que no se encuentra como frase "maestra" la vamos a insertar con el idioma maestro (código MAE, es un idioma que no existe)
			//Tenemos que reemplazar las comillas simples por su carácter html
			$frase = str_replace("'", '&#39;', $frase);
			$sentencia_sql = "SELECT codigo FROM traduccion WHERE idioma = 'MAE' AND frase = '" . $frase . "'";
			//echo("$sentencia_sql<br />\n");
			$existe = false;
			if ($resultado = mysqli_query($conexionBD, $sentencia_sql)){
				$total = mysqli_num_rows($resultado);
				//echo("Para la frase $frase, hay un total de $total elementos<br />\n");
				if ($total > 0){
					$existe = true;
					//Vamos a coger cómo frase la primera que encontremos
				}
			}
			if (!$existe){
				//Vamos a coger el último código de ese idioma
				$ultimo_codigo = 0;
				$sentencia_sql = 'SELECT codigo FROM traduccion WHERE idioma = "MAE" ORDER BY codigo DESC LIMIT 0,1';
				//echo("$sentencia_sql<br />\n");
				if ($resultado = mysqli_query($conexionBD, $sentencia_sql)){
					if ($fila = mysqli_fetch_array($resultado)){
						$ultimo_codigo = $fila['codigo'];
					}
				}
				$ultimo_codigo++;
				$sentencia_sql = "INSERT INTO traduccion (idioma, codigo, frase) VALUES ('MAE', $ultimo_codigo, '$frase')";
				//echo("$sentencia_sql<br />\n");
				mysqli_query($conexionBD, $sentencia_sql);
			}
			//$sentencia_sql = "SELECT frase FROM traduccion WHERE idioma = '$idioma' AND codigo = (SELECT codigo FROM traduccion WHERE idioma = 'SPA' AND (frase REGEXP '[[:<:]]" . $frase . "[[:>:]]') )";
			$sentencia_sql = "SELECT frase FROM traduccion WHERE idioma = '$idioma' AND codigo = (SELECT codigo FROM traduccion WHERE idioma = 'MAE' AND frase = '" . $frase . "' LIMIT 0, 1)";
			if ($resultado = mysqli_query($conexionBD, $sentencia_sql)){
				if ($fila = mysqli_fetch_array($resultado)){
					$retorno = $fila['frase'];
				}
			}
		}
		
		//Modificado por Pedro el 24/Septiembre/2019 ==> vamos a tener los caracteres %- y -% como separadores de "literales"
		$inicioVariable = '%-';
		$finVariable = '-%';
		$listaVariables = array();
		$total_variables = substr_count($retorno, $inicioVariable);
		$posicion = 0;
		$siguiente = 0;
		while( (($siguiente) < strlen($retorno)) && ($posicion = strpos($retorno, $inicioVariable, $siguiente + strlen($finVariable))) !== false){
			$siguiente = strpos($retorno, $finVariable, $posicion);
			//Si siguiente es falso, entonces lo ponemos al final de la cadena:
			$siguiente = ($siguiente === false) ? strlen($retorno) : $siguiente;
			//Vamos a extraer la cadena:
			$start = $posicion + strlen($inicioVariable);
			$length = $siguiente - $start;
			$listaVariables[] = '%-' . substr($retorno, $start, $length) . '-%';
		}

		//Modificado por Pedro el 24/Septiembre/2019 ==> Vamos a obtener el resultado de ejecutar la variable, pero a nuestra manera
		$listaResultados = array();
		foreach($listaVariables as $key => $variable){
			$variable = trim($variable);
			//Identificamos la variable:
			$variable = str_replace(array('%-','-%'), '', $variable);
			$listaResultados[] = WsEval($variable);
		}
		//Sólo falta hacer el replace:
		$retorno = str_replace($listaVariables, $listaResultados, $retorno);
		
		return(htmlentities($retorno));
		//return($retorno);
		//return(htmlentities($retorno, ENT_HTML5, "ISO-8859-1"));
		*/
	}
	
	/*
	function WsEval($string, $objetoPadre = NULL){
		$return = '';
		//Si no tenemos objeto padre, tenemos que encontrarlo:
		if ($objetoPadre == NULL){
			//En esta primera parte vamos a extraer la clase y la primera variable a la que hacemos referencia
				//Esta variable ha de ser, por supuesto, estática para que sea visible desde todos sitios
			//Buscamo la clase:
			if ( ($posClass = strpos($string, '::$')) !== false){
				$clase = substr($string, 0, $posClass);
				$subStr = substr($string, $posClass + 3 );
				$posFlecha = strpos($subStr, '->');
				$posFlecha = ($posFlecha === false) ? strlen($subStr) : $posFlecha;
				//Ahora vamos a obtener el objeto que está en esta clase:
				$objeto = substr($subStr, 0, $posFlecha );
				//Vamos a obtener el objeto (que puede ser una variable:
				$objetoPadre = $clase::${$objeto};

				//En la cadena aún no hemos quitado el objeto, si hay subvariables hay que quitarlas, si no, ya tenemos la string:
				if ($posFlecha != strlen($subStr)){
					$subStr = substr($subStr, $posFlecha + 2 );
				}
				
				$string = $subStr;
			}
		}
		
		//La idea es que el objetoPadre contenga la variable estática si es la primera entrada
			//o contenga un objeto con subvariables
		//Llegados a este punto, si tenemos objetoPadre vamos ver si ejecutar de nuevo la función:
		if ($objetoPadre != NULL){
			//Si el objeto padre no es un objeto lo devolvemos directamente
			if (!is_object($objetoPadre)){
				$return = $objetoPadre;
			}else{
				//El objeto padre es un objeto y tengo una cadena de texto que hace referencia a algún hijo, vamos a llegar hasta ese hijos
				if ($string != ''){
					//Comprobamos que sólo tengamos un hijo o tengamos más bucando flechas
					$posFlecha = strpos($string, '->');
					$posFlecha = ($posFlecha === false) ? strlen($string) : $posFlecha;
					$substr = substr($string, 0, $posFlecha);
					$objetoPadre = $objetoPadre->$substr;
					//Aquí tenemos el hijo cargado en el objeto Padre, miramos si hay más hijos, si no lo s hay devolvemos ya el padre
					if ($posFlecha == strlen($string)){
						$return = $objetoPadre;
					}else{
						//Si hay más hijos, eliminamos el primer elemento de la lista de hijos y llamamos de nuevo a la función
						$string = substr($string, $posFlecha + 2);
						$return = WsEval($string, $objetoPadre);
					}
				}
			}

			if (is_object($objetoPadre)){
				if ($string != ''){
					
				}
			}else{
				$return = $objetoPadre;
			}
		}
		
		//Siempre devolvemos aquí una cadena vacía por seguridad:
		return($return);
	}
*/
	
	//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	// FIN Obtenemos la traducción de una frase en un idioma
	//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	
	function getLocale($idioma = NULL){
		include('comunes/globals.php');
		//Si no se nos ha pasado ningún idioma, cogemos el de la sesión
		$idioma = ($idioma == NULL) ? Sesion::get('idioma') : $idioma;
		$retorno = 'es_ES';
		$sentencia_sql = "SELECT `locale` FROM `idioma` WHERE UPPER(`codigo`) = '" . strtoupper($idioma) . "' AND disponible = 1 ";
		//echo("$sentencia_sql<br />\n");
		if ($resultado = mysqli_query($conexionBD, $sentencia_sql)){
			if ($fila = mysqli_fetch_array($resultado)){
				//print_r($fila);
				//echo("A" . $fila["locale"] . " pasa<br />\n");
				$retorno = $fila['locale'];
			}
		}
		return($retorno);
	}
?>
