2010-01-01 26 views
6

He estado aprendiendo un poco de gettext pero no puedo entender esas dos funciones. Me he estado preguntando si podría usar múltiples traducciones en una aplicación escrita en PHP. Para una instancia, tengo 1) la traducción del sistema 2) traducciones de extensiones 3) traducciones de temas para dividirlas en archivos diferentes. Mi pregunta es, si cargo la traducción del sistema, y ​​luego cargo la traducción del tema ¿la primera será "desarmada"?¿Qué es bindtextdomain, textdomain en gettext?

Agradecería cualquier enlace relacionado con gettext y php.

Gracias

Respuesta

23

Puede cambiar fácilmente entre dominios de texto siempre que lo desee. por ejemplo:

Dado

./locale/en/LC_MESSAGES/template.po 

con el contenido

msgid "foo" 
msgstr "foobar" 

y

./locale/en/LC_MESSAGES/messages.po 

con el contenido

msgid "Basic test" 
msgstr "A basic test" 

usted podría utilizar algo como el siguiente código PHP para cambiar de un textdomain a la otra, y luego de vuelta:

<?php 
setlocale(LC_ALL, 'en_US.UTF-8'); 
bindtextdomain ("messages", "./locale"); 
bindtextdomain ("template", "./locale"); 

textdomain ("messages"); 
echo gettext("Basic test"), "\n"; 

textdomain ("template"); 
echo _("foo"), "\n"; 

textdomain ("messages"); 
echo gettext("Basic test"), "\n"; 
+0

Gracias Creo que tengo una muy buena vista de gettext – allenskd

Cuestiones relacionadas