2010-09-21 15 views
10

Attualmente sto ricercando i metodi migliori per integrare i18n in progetti.Internazionalizzazione in PHP

Ci sono diversi metodi che ho pensato di fare questo, prima di tutto uno schema di database per memorizzare le stringhe e le impostazioni locali rilevanti, ma il problema con questo è che non sarebbe così facile selezionare le stringhe, perché non vorrei per eseguire quesries in questo modo:

SELECT text FROM locales WHERE locale = 'en_GB' AND text_id = 245543 

O

SELECT text FROM locales WHERE locale = 'en_GB' AND text_primary = 'hello' 

Il metodo successivo sarebbe quello di memorizzarle all'interno di file come ad esempio locales/en_gb/login/strings.php e poi cercare e accedervi tramite una classe specificamente sviluppata in questo modo:

$Language = Registry::Construct('Language',array('en_GB')); 
echo $Language->login->strings->hello; 

Il problema con questo è che avrei dovuto costruire un sistema in grado di aggiornare questi file tramite una strega pannello di amministrazione è molto tempo, non solo la costruzione del sistema per la gestione delle stringhe, ma in realtà la gestione delle stringhe come la sito cresce

  • quali altri metodi sono lì che sarà utile per un grande sistema
  • esiste un modo automatico per fare 'traduzione' in quanto tale
  • Devo attaccare con un metodo di database e costruire un sistema per gli utenti di tradurre stri ng con valutazione/suggerire una versione migliore?
  • Quali sistemi hai provato in passato e dovrei esaminarli o evitarli completamente.
+0

Hai provato a gettext()? – fabrik

+0

Cosa hai finito per fare? Sto avendo un problema simile. – Sunny

risposta

5

Ho implementato un'utilità di traduzione XML come parte di un progetto più grande. Lo puoi trovare here e un file di traduzione di esempio è here (en_US).

+0

ha UnitTests? – Gordon

+1

Non sono ancora stati chiamati. Questo progetto è relativamente nuovo, quindi sono in procinto di costruire il framework. I test unitari arriveranno nei prossimi giorni. – halfdan

+0

Grande, adoro la Formazione XML piuttosto che usare cose come Array/oggetti, rende la profondità più semplice :) +1 – RobertPitt

4

Il metodo più impressionante da studiare è l'implementazione di Drupal. In secondo luogo, sarebbe Wordpress. Entrambi usano gettext e .pot/.po/.mo per la localizzazione. E, la cosa buona è che c'è un bellissimo editor Open Source .po chiamato Poedit. È disponibile per gli utenti del sistema Windows, che offre un appeal più ampio. È disponibile anche per Mac e Linux. Dai un'occhiata qui: http://www.poedit.net/

Problemi correlati