PHP - bindtextdomain停止在本地化网站的某些页面上工作

时间:2012-11-05 23:18:45

标签: php gettext

我希望有人可以帮我解决这个问题。我的网站已本地化为德语,法语,西班牙语和英语。一切似乎都能正常工作,但在测试期间经常是零星的,本地化的文本不会出现,除了出现字符串代码。变量$ 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

的页面工作

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

1 个答案:

答案 0 :(得分:0)

您需要确保bindtextdomain的路径正确无误。我会在你的bootstrap文件中建议这个:

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

然后在你的脚本中

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

这样,如果您进入product/product_name.php bindtextdomain这样的子文件夹,则不会尝试在locale文件夹中找到product文件夹。