Yo utilizo ésta clase para manipular un archivo xml donde almaceno las traducciones.
Código PHP:
class languages {
public $tr, $language;
private $engine;
function __construct() {
$this->xml=simplexml_load_file('inc/multilenguaje.xml');
$this->setLang();
}
public function setLang() {
// select language
if (!isset($lang)) {
if (isset($_GET['lang'])) {
$lang=$_GET['lang'];
} else {
$lang= getPreferredLanguage();
}
if (!$this->validateLang($lang)) {
echo sprintf("<h1>Language '%s' not supported!</h1>", $lang);
die;
}
$this->language=$lang;
@setcookie('lang', $lang);
} else { @setcookie('lang', $lang); $this->language=$lang; }
}
public function validateLang($language) {
if (strchr("ites", $language)) {
$this->language=$language;
return True;
} else {
return False;
}
}
public function gets($key, $item) {
$xpath='/translation2/pages/page[@key="' . $item . '"]/string[@key="' . $key . '"]/tr[@lang="' . $this->language . '"]';
$data=$this->xml->xpath($xpath);
return $data;
}
public function getPage($key) {
$xpath='/translation2/pages/page[@key="' . $key . '"]/string/tr[@lang="' . $this->language . '"]';
$xpath2='/translation2/pages/page[@key="' . $key . '"]/string/@key';
$xmlitems=$this->xml->xpath($xpath);
$xmlkeys=$this->xml->xpath($xpath2);
$pg=array();
for ($i=0;$i<=count($xmlitems);$i++) {
$pg["{$xmlkeys[$i]}"]=$xmlitems[$i];
}
return (array)$pg;
}
}
Y en cada página puedes poner :
Código PHP:
$l=new languages();
más adelante, para obtener cada definición :
Código PHP:
$c=$l->getPage('cabecera');
muestras el contenido con:
Código PHP:
<?=$c["hola"]; ?>
la sintaxis del archivo xml es la siguiente :
Código:
<?xml version="1.0" encoding="UTF-8"?>
<translation2>
<languages>
<lang id='es'>
<name>Castellano</name>
<meta/>
<error_text>No disponible</error_text>
<encoding>UTF-8</encoding>
</lang>
<lang id='en'>
<name>English</name>
<meta/>
<error_text>Not allowed</error_text>
<encoding>UTF-8</encoding>
</lang>
</languages>
<pages>
<page key='cabecera'>
<string key='hola'>
<tr lang='es'>Bienvenido a nuestra página</tr>
<tr lang='en'>Welcome to our home page</tr>
</string>
<string key='inicio'>
<tr lang='es'>Inicio</tr>
<tr lang='en'>Home</tr>
</string>
<string key='quienes_somos'>
<tr lang='es'>Quienes somos</tr>
<tr lang='en'>Who are we</tr>
</string>
</page>
</pages>
</translation2>
El acceso se hace mediante un parámetro get : page.com?lang=es
Si necesitas más información, no dudes en preguntar.
Saludos!