什么是gettext中的bindtextdomain,textdomain?

all*_*skd 6 php gettext php-gettext

我一直在学习一些gettext但我无法掌握这两个功能.我一直想知道我是否可以在用PHP编写的APP中使用多个翻译.例如,我1)系统翻译2)扩展翻译3)主题翻译,以划分不同的文件.我的问题是,如果我加载系统翻译,然后加载主题翻译将第一个"未设置"?

我很感激任何与gettext和php相关的链接.

谢谢

TML*_*TML 24

您可以随时在文本域之间切换.例如:

特定

./locale/en/LC_MESSAGES/template.po 
Run Code Online (Sandbox Code Playgroud)

与内容

msgid "foo"
msgstr "foobar"
Run Code Online (Sandbox Code Playgroud)

./locale/en/LC_MESSAGES/messages.po
Run Code Online (Sandbox Code Playgroud)

与内容

msgid "Basic test"
msgstr "A basic test"
Run Code Online (Sandbox Code Playgroud)

您可以使用类似以下PHP代码的内容从一个textdomain切换到另一个,然后返回:

<?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";
Run Code Online (Sandbox Code Playgroud)