varios traductor traducir poner pagina otros mundo inglés ingles idiomas idioma español como cambiar php internationalization translation locale gettext

php - traductor - Hacer traducciones en múltiples idiomas



traductor el mundo (3)

Supongo que una respuesta obvia es rodar tu propia función global:

function getLocalText($string, $lang) { putenv("LC_ALL=$lang"); setlocale(LC_ALL, $lang); bindtextdomain("myPHPApp", "./locale"); textdomain("myPHPApp"); return gettext($string); } $word_fi = getLocalText($word, ''fi_FI'');

Tengo mi php gettext predeterminado en inglés, digamos

Me gustaría en uno de mis controladores, traducir algunas palabras en otros 2 idiomas y ponerlas en una matriz.

idealmente podría hacer

$word_sv = gettext($word, ''sv_SV''); $word_fi = gettext($word, ''fi_FI'');

pero no existe.

¿Es la única manera de cambiar la configuración general de gettext cada vez?

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);

related: lo vi en Google después de: i18n con gettext pero sin la molestia de la configuración regional?

Editar

aquí están las soluciones respondidas propuestas:


Sé lo difícil que es usar gettext, pero su rendimiento es lo que me mantiene con eso.

En su caso, es posible que desee ver este pequeño proyecto? ¡estoy bastante seguro de que esto podría ayudarte!

esto simplemente usa archivos .ini con traducciones, puede cambiar libremente entre los archivos y repetir los diferentes idiomas para la misma palabra.

https://github.com/Philipp15b/php-i18n


Si está obligado a obtener el texto aquí, deje que la computadora haga el trabajo por usted.

O bien tiene una lista de palabras que luego desea consultar en todos los idiomas, primero haga la lista de palabras para cada idioma. Eso le setlanguage poco de sobrecarga para llamar a la función de setlanguage entre cada palabra e idioma.

Si quiere ir a cada idioma, cada palabra, escriba las funciones de esa manera:

function gettext_by_lang($lang, $word) { putenv("LC_ALL=$lang"); setlocale(LC_ALL, $lang); bindtextdomain("myPHPApp", "./locale"); textdomain("myPHPApp"); return gettext($word); } $word_sv = gettext_by_lang(''sv_SV'', $word); $word_fi = gettext_by_lang(''fi_FI'', $word);

Esto al menos haría que tu código sea más compacto. Otra idea que me viene a la mente es usar un analizador para archivos PO y MO para que pueda verificar los datos.

En PHP uno de ellos es el envío con Wordpress / Glotpress:

Tal vez esto ayude. Esa biblioteca se mantiene.