Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/10/2009, 10:42
Avatar de dyegox
dyegox
 
Fecha de Ingreso: enero-2008
Mensajes: 173
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: Sitio Multilingue

hola justo estoy intentando lo mismo estoy haciendo algo asi

este archivo contiene la funcion que extrae del xml y genera un array
con la variable $over se obtienen los distintos textos
Código PHP:
<?php
session_start
();
error_reporting();

function 
fetch_xml($xml){ 

    if(
is_file($xml)){ 
        
$xml_data file_get_contents($xml); 
    } 
    else{ 
        
$xml_data $xml;     
    } 
    
$parser xml_parser_create(); 
    
xml_parse_into_struct($parser$xml_data, &$assoc_arr, &$idx_arr); 
    
xml_parser_set_option($parserXML_OPTION_CASE_FOLDING0); 
    
xml_parser_set_option($parserXML_OPTION_SKIP_WHITE1); 
    
$root_tag $assoc_arr[0]['tag']; 
    
$base_tag strtolower($assoc_arr[1]['tag']); 
    
$i 0
    foreach(
$assoc_arr as $key => $element){ 
        if(
$element['tag'] != $root_tag){ 
            if(!
preg_match('/^\s+$/'$element['value'])){ 
                
$tag strtolower($element['tag']); 
                
$items[$i][$tag] = $element['value']; 
                if(
$tag == $base_tag){ 
                    
$i++; 
                } 
            } 
            elseif(isset(
$element['attributes'])){ 
                
$items[$i]['id'] = $element['attributes']['ID']; 
            } 
        } 
    } 

    return 
$items


$over fetch_xml('lang/es_ES/default.xml'); 

$lang $over[0];

function 
__($value){
return 
$over[0][$value];
}

echo 
$over[0]["exit"];

echo 
__("exit"); // NO SE POR QUE NO FUNCIONA


?>
nos eporque no funciona una pequeña funcion que haria que para obtener el texto teng aque hacer algo asi

Código PHP:
<?php
echo __("exit");
?>
lo que imprimiria "logout"

mis archivo xml son asi

Código HTML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xml:lang>
	<traslate id="es_ES">
		<home>Inicio</home>
		<register>Registro</register>
		<exit>Salir</exit>
	</traslate>
</xml:lang>