¿Cuáles son las buenas herramientas / marcos para i18n de un código base de php?

StackOverflow https://stackoverflow.com/questions/155706

  •  03-07-2019
  •  | 
  •  

Pregunta

He estado buscando algunas opciones para habilitar la localización e internacionalización de una aplicación dinámica de php. Parece que hay una variedad de herramientas disponibles, como gettext y Yahoo's R3, y estoy interesado en escuchar a los desarrolladores y traductores sobre qué herramientas son buenas para usar y qué funcionalidad es importante para facilitar la tarea de implementación y traducción.

¿Fue útil?

Solución

La implementación de PHP gettext funciona muy bien. Y los archivos po con po edit y gettext son la mejor manera de tratar con la localización teniendo en cuenta que ninguna solución de este tipo puede manejar completamente las complejidades de los diferentes idiomas. Por ejemplo, el método gettext es muy bueno en formas plurales, pero nada de lo que he visto puede manejar cosas como la conjugación.

Para obtener más información, vea mi publicación aquí: Cómo ¿usted construye un sitio web en varios idiomas?

Otros consejos

Hemos estado jugando con Zend_Translate , ya que usamos El Marco Zend de todos modos. Está muy bien documentado y hasta ahora es extremadamente sólido.

En el pasado, prácticamente he usado mi propia solución de cosecha propia . Lo que involucra archivos de idioma con constantes o variables que contienen todas las partes de texto y se reproducen en la vista / plantilla más adelante.

En cuanto a gettext, en el pasado he escuchado referencias sobre la implementación de gettext de PHP como defectuosa, pero realmente no puedo respaldar eso ni tengo ninguna referencia en este momento.

Hay varias extensiones útiles en pecl: http://pecl.php.net/packages.php?catpid=28& catname = Internacionalización

En particular, es posible que desee revisar php-intl, que proporciona la mayoría de las funciones clave de i18n de International Components for Unicode (ICU)

la solución basada en la base de datos para mostrar los mensajes no siempre es la mejor, trabajé en un sitio con más de 15 idiomas y las traducciones fueron un problema.

así que nuestro diseño fue:

  • aplicación de traducción en php-mysql (acceso de traducción, etc.)
  • luego las traducciones están escritas en php arrrays
  • estas matrices también se almacenan en caché en APC para acelerar el sitio.

para localizar diferentes idiomas, solo necesitas hacer una inclusión

me gusta

<?php
include('lang/en.php');
include('lang/en_us.php'); // this file overrides few keys from the last one.
?>

Xataface se puede utilizar para internacionalizar fácilmente una aplicación PHP / MySQL arbitraria. Admite la traducción de su texto estático y los datos de su base de datos. Todo lo que tienes que hacer es agregar una línea o 2 de código a un par de lugares en tu aplicación y ya está listo.

http://xataface.com/documentation/tutorial/internationalization-with-dataface-0.6

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