[英]PHP - bindtextdomain stops working on certain pages of localised Website
我希望有人可以帮助我解决这个问题。 我的网站已本地化为德语、法语、西班牙语和英语。 一切似乎都正常工作,但在测试期间并且通常是零星的,本地化文本不会出现,除了字符串代码出现。 变量 $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
任何人都可以帮助我,甚至可以提供有关如何调试的详细信息
您将需要确保您的bindtextdomain路径正确。 我建议在您的引导文件中:
define('ROOT_PATH', dirname(__FILE__));
然后在您的脚本中
bindtextdomain($domain, ROOT_PATH . '/locale');
这样,如果您进入诸如product/product_name.php
的子文件夹, bindtextdomain
将不会尝试在product
文件夹中找到locale
文件夹。
谢谢 Nikolaos,我遇到了同样的问题,解决方案是在 bindtextdomain 的第二个参数中始终使用绝对路径
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.