我希望有人可以帮我解决这个问题。我的网站已本地化为德语,法语,西班牙语和英语。一切似乎都能正常工作,但在测试期间经常是零星的,本地化的文本不会出现,除了出现字符串代码。变量$ 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
的页面工作任何人都可以帮助甚至向我提供有关我如何调试的详细信息
答案 0 :(得分:0)
您需要确保bindtextdomain的路径正确无误。我会在你的bootstrap文件中建议这个:
define('ROOT_PATH', dirname(__FILE__));
然后在你的脚本中
bindtextdomain($domain, ROOT_PATH . '/locale');
这样,如果您进入product/product_name.php
bindtextdomain
这样的子文件夹,则不会尝试在locale
文件夹中找到product
文件夹。