1

我希望有人可以帮助我解决这个问题。我的网站已本地化为德语、法语、西班牙语和英语。一切似乎都正常工作,但在测试期间并且经常是零星的,本地化文本不会出现,除了字符串代码出现。变量 $language 已正确设置,因为图像是特定于语言的并且它们始终显示。

我正在使用的代码如下:

// I18N support information here
putenv("LANG=" . $language); 
setlocale(LC_ALL, $language);

// Set the text domain as "messages"
$domain = "messages";
bindtextdomain($domain, "./locale"); 
bind_textdomain_codeset($domain, 'UTF-8');

textdomain($domain);

我似乎注意到的一件事是这个问题只发生在以下格式的页面中: http ://example.com/product/product_name.php 它总是在格式为http://example.com/page.php的页面中工作

任何人都可以帮助我,甚至可以给我有关如何调试的详细信息

4

2 回答 2

0

您需要确保您的bindtextdomain路径是正确的。我会在你的引导文件中建议这个:

define('ROOT_PATH', dirname(__FILE__));

然后在你的脚本中

bindtextdomain($domain, ROOT_PATH . '/locale');

这样如果你进入一个子文件夹如product/product_name.php bindtextdomain不会尝试在locale文件夹中找到该文件product夹​​。

于 2012-11-05T23:50:20.547 回答
0

谢谢你,尼古拉斯!我遇到了同样的问题,解决方案是在 bindtextdomain 的第二个参数中始终使用绝对路径

于 2021-09-30T07:52:33.610 回答