Ok. La I18n (Internazionalizzazione) è una cosa abbastanza strana. Devi fare molte molte modifiche al tuo codice per renderlo multilingue.
Per me, la soluzione migliore è spostarlo su CakePHP che già supporta I18n in molti livelli. Ma questa soluzione ti farà trascorrere molto tempo. Quindi ....
Un metodo veloce per la traduzione di testi interni come
echo "Hello World"
o
<p>Hello World</p>
è quello di creare un file di linguaggio appropriato con l'estensione PHP per ogni lingua (es: es. php, el.php, en.php, un così via) che conterrà un array con chiavi e valori che assomiglia che:
$l = array(
'WEB_TITLE' => 'My web site title',
'GEN_HELLO' => 'Hello World',
'MENU_HOME' => 'Home',
'MENU_PRODUCTS' => 'Products',
...
);
Poi nel vostro sito web è necessario caricare il file della lingua appropriato, proprio all'inizio di ogni pagina e nella pagina devi fare una cosa del genere:
echo $l['GEN_HELLO'];
e
<p><?php echo $l['GEN_HELLO']; ?></p>
Cioè il lato frontale della tua applicazione. Ora per rendere i vostri dati multilingue dovete cambiare la struttura del database in qualche modo.
Diciamo che avere quel tavolo
ARTICLES
id Title Content Date Active
Nella struttura di cui sopra si deve fare Titolo e I18n contenuti compatibili. Per tradurre che le colonne si deve creare un'altra tabella denominata nell'esempio ARTICLES_L che sembra piacerà che
ARTICLES_L
ID POST_ID COLUMN LANGUAGE CONTENT
nella tabella sopra riportata si deve memorizzare l'articolo id, la colonna che la traduzione appartiene (es: titolo) la lingua e il contenuto tradotto.
Quindi, se avete che i record in articoli
ARTICLES
id Title Content Date Active
1 Title 1 This is content 1 2011-10-01 13:28:45 1
2 Title 2 This is content 2 2011-10-01 13:28:45 1
3 Title 3 This is content 3 2011-10-01 13:28:45 1
L'ARTICLES_L tabella contiene che i record
ARTICLES_L
ID POST_ID COLUMN LANGUAGE CONTENT
1 1 title es_ES Título 1
2 1 content es_ES Este es el contenido 1
3 1 title el_GR Τίτλος 1
4 1 content el_GR Αυτό είναι το περιεχόμενο 1
5 2 title es_ES Título 2
6 2 content es_ES Este es el contenido 1
....
in realtà ci sono molti molti altri compiti che devi fare, ma questa è la idea dietro la soluzione che ti sto dando :)
Good Luck
PN: Ancora meglio per il front-end della tua applicazione è quello di usare quello http://php.net/manual/en/book.gettext.php In questo modo viene utilizzato da WordPress e CakePHP, ma in un livello molto basso:? Dai un'occhiata. Questo sarà migliore della creazione di file per ogni lingua.
Era utile? –
Davvero, grazie !! – Ivan
Siete i benvenuti :) –