以下内容引自here:
<?php
$directory = dirname(__FILE__).'/locale';
$domain = 'mydomain';
$locale ="pt_BR.utf8";
//putenv("LANG=".$locale); //not needed for my tests, but people say it's useful for windows
setlocale( LC_MESSAGES, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
但它在做什么?
答案 0 :(得分:1)
textdomain()
专门用于在多个文本源之间切换。在Web应用程序中,您通常只有一个textdomain,因为它通常只是一个大的应用程序。
如果您的应用程序被分成多个模块,您将使用它。优点是可以为每个应用程序部分单独编辑和更新翻译文本(.mo和.po)文件。
当在模块之间切换时,每个模块都可以重置其域:
# mail.php
textdomain("mail");
print _("Application"); # prints "Mail app"
VS
# calendar.php
textdomain("calendar");
print _("Application"); # prints "Calendar app" e.g.
为此目的还有一个捷径:
print dgettext("main", "Application"); # "Foobar app"
在常见情况下,您使用textdomain()
,但只使用主应用程序名称。然后它成为转换来源myapp.mo
的基本名称:
textdomain("myapp");