2010-06-08 15 views
5

Sono attualmente in fase di pianificazione di un progetto piuttosto ampio che svilupperò in Zend Framework. Uno dei problemi che sto affrontando è che i clienti vorranno tradurre non solo il contenuto ma anche l'interfaccia. Attualmente sto usando gettext e poedit per gestire i miei file di lingua, ma questa non è un'opzione per il cliente in quanto, per uno, non hanno accesso FTP al sito.Adattatore Mysql per Zend_Translate

Quindi, sto pensando a un backend mysql con un'interfaccia nel front-end per il cliente per gestire le proprie traduzioni dell'interfaccia. Tuttavia, non esiste ancora mysql adapater per Zend_Translate.

Quindi, qualcuno ora di uno script adattatore per Zend_Translate in modo che possa funzionare con una tabella mysql? O qualche argomento contro l'uso di mysql e possibili altre soluzioni per questo problema?

risposta

7

Si potrebbe risolvere questo problema su diversi modi:

Estendere Zend_Translate_Adapter per creare il proprio. Tutti i nuovi adattatori sono responsabili solo di ottenere le traduzioni dalla fonte. Cioè, avresti bisogno solo di recuperare le traduzioni dal database. Guarda altri adattatori e vedi come sono implementati.

recuperare i dati dal database e passarlo al Zend_Translate_Adapter_Array

Usa Zend_Translate_Adapter_Csv o Ini. Poiché ci sarebbe più lettura della scrittura sulle traduzioni, questa soluzione ridurrebbe il numero di query al database. Quando il client aggiunge una nuova lingua o ne modifica una esistente, è sufficiente scriverla in un file, non nel database.

Se si decide di andare con l'adattatore del database, forse si potrebbe "taggare" in qualche modo le traduzioni, in modo che sulla home page si recuperino solo le traduzioni per la home page, nella pagina di contatto solo le traduzioni per il contatto pagina ...

HTH!

3

Gli adattatori Zend predefiniti gestiscono bene la memorizzazione nella cache, quindi mi attenerei a loro, a meno che non sia effettivamente necessario il database.

Invece di memorizzare i dati di traduzione nel database, è possibile operare direttamente sui file di traduzione (ad esempio modelli po). Questa sarebbe la scelta migliore se fosse sufficiente aggiungere (aggiungere al file) nuove stringhe di traduzione.

È possibile utilizzare Zend_Translate's option to log untranslated messages (su file o qualsiasi adattatore di registro, incluso il database), e quindi gestire i registri o persino creare listener che traduce le stringhe salvate.

0
+0

Compagno di acclamazioni! Ormai avevo scritto qualcosa di simile anch'io. – Peter

+0

Questo è un cattivo esempio, egli modifica: o i file framework, doh. – markus

+0

pensa a un framework che non fornisce l'helper di traduzione db nativo. l'onore della vergogna non è il diritto di cloetensbrencht, invece è chiamato framesuck. – nerkn

Problemi correlati