Pregunta

Estoy buscando una forma compatible con los estándares para almacenar contenido en varios idiomas para una aplicación web. Hasta ahora, he empleado mi propio " translate () " Funciones que leen datos de un archivo o una tabla de diccionario en una base de datos. Sin embargo, mantener los diccionarios actualizados en una tabla de base de datos es muy engorroso si trabaja con diferentes copias de la aplicación web.

Me gusta gettext porque hay una multitud de herramientas disponibles para ello. Sin embargo, desarrollo aplicaciones para diferentes plataformas. No estoy absolutamente dispuesto a lidiar con las malas formas de setlocale () y consortes, a saber, las docenas de diferentes variaciones de cadenas de locale que difieren de un sistema a otro que debe proporcionar para que funcione. Nunca jamás. Tengo un conjunto de idiomas, digamos de, en y es, y quiero cargar el diccionario apropiado y trabajar con _ () sin tocar setlocale () o bindtexdomain () una vez.

¿Es esto posible de alguna manera usando gettext? ¿O alguien sabe otra solución simple, pequeña, rápida (!) I18n para PHP que pueda funcionar con archivos .po / .mo, preferiblemente sin requerir una extensión de PHP?

Otros consejos

Este método debería funcionar incluso con configuraciones regionales no estándar:

$locale = 'someWeirdLocale';

putenv('LC_MESSAGES=' . $locale);
bindtextdomain('domain', './locale');
textdomain('domain');

¡Disfruta!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top