繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM