7

I've been learning a bit of gettext but I can't grasp those two functions. I've been wondering if I could use multiple translations in a APP written in PHP. For an instance, I've 1) the system translation 2) extensions translations 3) theme translations to divide those in different files. My question is, if I load the system translation, then load the theme translation will the first one be "unset"?

I'd appreciate any links related to gettext and php.

Thanks

allenskd
  • 1,795
  • 2
  • 21
  • 33

1 Answers1

27

You can readily swap between textdomains whenever you like. e.g:

Given

./locale/en/LC_MESSAGES/template.po 

with the contents

msgid "foo"
msgstr "foobar"

and

./locale/en/LC_MESSAGES/messages.po

with the contents

msgid "Basic test"
msgstr "A basic test"

You could use something like the following PHP code to switch from one textdomain to the other, and then back:

<?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";
TML
  • 12,813
  • 3
  • 38
  • 45