ho la mia lingua php gettext predefinita in inglese diciamoeffettuare traduzioni in diverse lingue
Vorrei in uno dei miei controllore, di tradurre alcune parole in altre 2 lingue e metterli tutti in un array.
idealmente ho potuto fare
$word_sv = gettext($word, 'sv_SV');
$word_fi = gettext($word, 'fi_FI');
ma non esiste.
È l'unico modo per modificare l'intero gettext settings ogni volta?
function setLang($lang){
putenv("LC_ALL=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain("myPHPApp", "./locale");
textdomain("myPHPApp");
}
setLang('sv_SV');
$word_sv = gettext($word);
setLang('fi_FI');
$word_fi = gettext($word);
correlato: visto su Google dopo: i18n with gettext but without the locale hassle?
Modifica
ecco le soluzioni risposto proposte:
- https://github.com/Philipp15b/php-i18n (sembra la soluzione migliore)
- http://glotpress.trac.wordpress.org/browser/trunk/pomo (potrebbe usarlo se trovo un buon doc o tuto;))
- cambiamento locale al volo, probabilmente non buona
Solo una nota, è possibile utilizzare la ricerca superiore di Google per cercare siti specifici utilizzando una stringa di query come: 'site: stackoverflow.com php translate'. Cercherà solo SO per 'php translate'. – Josh
Hai visto http://www.php.net/manual/en/function.dcgettext.php? Potrebbe essere di aiuto. – hakre
Gettext non è chiaramente progettato per tale caso d'uso. L'idea è di impostare la lingua una volta e ottenere tutti i messaggi tradotti chiamando la funzione gettext. Qual è il caso d'uso qui? –