Come costruire una applicazione PHP con il supporto di più lingue (inglese, francese, Cinese, ecc..)

StackOverflow https://stackoverflow.com/questions/691218

  •  22-08-2019
  •  | 
  •  

Domanda

Sto costruendo un'applicazione web che utilizza la LAMPADA e il Smarty template framework.Il sito web avrà un sacco di contenuti statici (pagina su di noi, gli avvisi di errore, e-mail di conferma, ecc...).

L'applicazione web deve supportare più lingue.È il seguente approccio appropriato?

1) Tutti copia statica su Smarty template di pagine html (pagine) sarà sostituito da chiamate a smarty plugins {lang file= "about.xml' getTerm='titolo'} che restituisce una stringa per il tag del titolo nella lingua appropriata

2) Il file about.xml è un documento xml sul server web che agisce come un multiplo dizionario di lingua.Così avrà nodi xml, ad esempio

<term value="title">
   <en>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; is a great site</en>
   <fr>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; c'est website magnifique</fr>
   <ch>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; complex looking chinese characters I don't udnerstand</ch>
</term>
<term value="signupmessage">
   <en>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; great deals!</en>
   <fr>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; magnifique deals!</fr>
   <ch>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; complex looking chinese characters I don't udnerstand</ch>
</term>

3) La struttura degli url per il sito sarà http://mywebsite.com/language/index.php.Per fare questo, il mio webserver avrà collegamenti simbolici come ln -s ./en ./ in modo che http://mywebsite.com/en/index.php punti alla stessa pagina php come http://mywebsite.com/fr/index.php, ma io controllo la url per le impostazioni della lingua.La mia speranza è che google indice di entrambe le versioni del sito.

Questo è un buon approccio?Xml è un formato per la memorizzazione del contenuto di lingue diverse, anche se ha htmlentity codificato tag html?Mi ha fatto trascurare nulla di ciò?

È stato utile?

Soluzione

Non sono sicuro circa i dettagli della tua domanda, ma si potrebbe desiderare di dare un'occhiata a Zend_Translate.

Altri suggerimenti

XML è un formato contenitore e questo uso non è troppo male.Ha il vantaggio di essere relativamente leggibili, fatta eccezione per le entità HTML.Si potrebbe provare a utilizzare le sezioni CDATA per che.Un vantaggio dell'utilizzo di XML per questo è che si potrebbe usare una DTD per verificare che tutte le lingue sono traduzioni presente per tutti i tasti.Assicurarsi che si codifica il file utilizzando la codifica UTF-8 o UTF-16 e probabilmente aiuta se si mette la codifica all'inizio del file.Mi raccomando UTF-8.

Per quanto riguarda come si carica il file XML di dati e di incorporarlo in una pagina, non so "smarty" ma l'approccio globale sembra ragionevole.L'unico aspetto negativo che posso vedere è che è necessario il rilascio di tutte le traduzioni in simultanea (difficile evitare questo problema).

Una cosa che ho notato è che si utilizza ch come il codice della lingua Cinese. Si dovrebbe usare zh.Che è il codice ISO per esso.ch qualcosa d'altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top