i18n con gettext ma senza la seccatura locale?
-
06-07-2019 - |
Domanda
Sto cercando un modo conforme agli standard per archiviare contenuti multilingue per un'applicazione Web. Fino ad ora, ho utilizzato il mio " translate () " funzioni che leggono dati da un file o da una tabella di dizionari in un database. Tuttavia, mantenere aggiornati i dizionari in una tabella di database è molto complicato se si lavora con diverse copie dell'app Web.
Mi piace gettext perché è disponibile una moltitudine di strumenti. Tuttavia, sviluppo applicazioni per piattaforme diverse. Non sono assolutamente disposto a gestire i modi schifosi di setlocale () e dei consorti - vale a dire le dozzine di diverse variazioni delle stringhe locali che differiscono da sistema a sistema che è necessario fornire per farlo funzionare. Mai e poi mai. Ho un set di lingue - diciamo de, en ed es - e voglio caricare il dizionario appropriato e lavorare con _ () senza toccare setlocale () o bindtexdomain () una volta.
È possibile in qualche modo usare gettext? Oppure qualcuno conosce un'altra soluzione i18n semplice, piccola, veloce (!) Per PHP che può funzionare con file .po / .mo, preferibilmente senza richiedere un'estensione PHP?
Soluzione
Zend_Translate funziona con esso
Altri suggerimenti
Questo metodo dovrebbe funzionare anche con impostazioni locali non standard:
$locale = 'someWeirdLocale';
putenv('LC_MESSAGES=' . $locale);
bindtextdomain('domain', './locale');
textdomain('domain');
Enjoy!