2009-11-16 19 views
5

Ci sono molti modi per progettare un'applicazione multilingue in PHP. Alcuni file di lingua basati, altri database basati.PHP - Progettazione dell'applicazione multilingue

  • Sto cercando di usarlo per lo più piccole quantità di errori di testo per esempio - a più un paragrafo.

  • Suppongo che mi serviranno una ventina di lingue
    .

Realmente sto cercando raccomandazioni piuttosto che una risposta definitiva. Che cosa hai usato prima, ciò che è più veloce, più semplice per aggiornare ecc

Molte grazie,

risposta

8

La Gettext famiglia di funzioni è un buon punto di partenza:

Le funzioni gettext implementare un NLS (Native Language Support) API che può essere utilizzato per internazionalizzare le tue applicazioni PHP .

Zend_Translate è estremamente flessibile e ha un'implementazione thread-safe di gettext. Il manuale che affronta i seguenti problemi con le implementazioni di internazionalizzazione nativi:

  • incoerente API: Non c'è una sola API per la diversa fonte formati. L'utilizzo di gettext per l'esempio è molto complicato.
  • PHP supporta solo gettext e array nativo: PHP stesso offre solo il supporto per array o gettext. Tutti gli altri formati di origine devono essere codificati manualmente , in quanto non è disponibile il supporto nativo .
  • Nessun rilevamento della lingua predefinita: la lingua predefinita di non può essere rilevata senza la conoscenza degli sfondi per i diversi browser Web.
  • Gettext non è thread-safe: la libreria gettext di PHP non è thread-safe e non deve essere utilizzata in un ambiente con multithreading. Ciò è dovuto a problemi con gettext stesso, non a PHP, ma è un problema esistente.

Vale la pena notare che la Zend Framework non è un quadrofull-stack - in altre parole, non sarà necessario utilizzare il tutto solo per fare uso della sua API di internazionalizzazione.

Quello che mi piace davvero è il supporto per multiple adapters for different data sources, che è possibile combinare, modificare e modificare facilmente solo applicando modifiche molto leggere all'applicazione. Spero possa aiutare.

0

Ho affrontato entrambe le soluzioni. (database e file flat.) Ma ti darò un'altra prospettiva. quando progetti la tua applicazione o il tuo software, c'è un altro punto importante che dovresti pensare dall'inizio.Salverai gli elementi della tua lingua nel database e nel file flat. il supporto linguistico del database (o tabella) e del file di testo è importante. Se si tenta di mantenere i caratteri turchi nel database 1 latino, si incontreranno dei problemi con il personaggio. Il turco è un esempio. Il database deve supportare i caratteri del tuo elemento lingua.

Problemi correlati