Sito multilingua in php con supporto file xml

Ciao a tutti,

come posso creare un sistema di gestione sito multilingua in php5 con supporto di files xml?

Grazie

inviato 9 anni fa
vecchia
X 0 X

cioè vuoi usare dei file XML contenenti le traduzioni?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

si esattamente

risposto 9 anni fa
vecchia
X 0 X

e perché proprio un file XML?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

bè, posso anche un file php con le costanti...

risposto 9 anni fa
vecchia
X 0 X

Secondo me. l'idea di un file xml per ogni lingua è una buona cosa, però ci sono altri metodi senza dubbio più veloci come ad esempio gettext http://wiki.grusp.it/articoli:metodi_e_strumenti_per_gestire_piu_lingue

risposto 9 anni fa
Marco Grazia
X 0 X

Se vuoi usare un file XML potresti organizzarlo in questo modo:

<parola id="1">benvenuto</parola>
<parola id="2">ciao</parola>

oppure, usando delle chiavi di tipo stringa al posto degli indici numerici:

<parola id="wellcome">benvenuto</parola>
<parola id="hello">ciao</parola>

potresti usare anche un file csv:

1, benvenuto
2, viao

oppure

wellcome, benvenuto
hello, ciao

In tutti i casi dovresti caricare il file XML (o CSV) della lingua che ti interessa, magari in un array associativo, e di volta in volta prelevare la parola che ti serve, utilizzando la chiave.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

esatto, il problema è che non ho la più pallida idea di come si faccia tutto questo con php :o :'(

risposto 9 anni fa
vecchia
X 0 X

XML o CVS? PHP 4 o 5?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

grazie del gentilissimo aiuto che mi date con questa faccenda complicata... :)

Ritornando a noi:

Versione PHP: 5

File della lingua: XML

risposto 9 anni fa
vecchia
X 0 X

Supponendo di avere un file della lingua italiano.xml di questo tipo:

<?xml version="1.0" encoding="UTF-8"?>
<translation lang="italiano">
<item key="wellcome">benvenuto</item>
<item key="hello">ciao</item>
</translation>

con questo semplice script carichi la traduzione in un array "pronto all'uso":

<?php
$xml = simplexml_load_file('italiano.xml');
$lang = array();
foreach ($xml->item as $item) {
   $lang[(string)$item['key']] = $item;
}

echo "$lang[hello], $lang[wellcome]";
?>

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

funzione egregiamente... Sei un mito O0

risposto 9 anni fa
vecchia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda