PHP gettext函数只返回原始的非翻译字符串
发布时间:2020-12-13 18:15:23 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用gettext添加本地化支持到我的网站.我已经按照各种指南介绍了如何设置gettext并完成了以下操作: 我在项目目录的根目录中创建了以下文件和目录: test.phplocale/ de_DE LC_MESSAGES messages.mo messages.po en_GB LC_MESSAGES messages.mo me
我正在尝试使用gettext添加本地化支持到我的网站.我已经按照各种指南介绍了如何设置gettext并完成了以下操作:
我在项目目录的根目录中创建了以下文件和目录: test.php locale/ de_DE LC_MESSAGES messages.mo messages.po en_GB LC_MESSAGES messages.mo messages.po 我用Poedit来创建上面的.po和mo文件.我已经使用Unix行结尾,UTF-8并相应地设置语言和国家. 然后我创建了一个名为test.php的PHP脚本,其中包含以下代码: <?php define('LOCALE','de_DE'); // Set up environmental variables putenv("LC_ALL=" . LOCALE); setlocale(LC_ALL,LOCALE); bindtextdomain("messages","./locale"); bind_textdomain_codeset("messages",LOCALE .".utf8"); textdomain("messages"); die(gettext('This is a test.')); ?> 我导入了“这是一个测试”的文字.到Poedit并提供翻译并保存. 但由于某种原因,test.php脚本只会输出未翻译的原始文本.它拒绝加载翻译文件的版本. 值得注意的是服务器正在运行Linux(Ubuntu),
您的问题可能与系统上缺少的区域设置有关.请安装德语区域设置,一切都应该工作:
sudo apt-get install language-pack-de-base 然后,发出以下命令,您应该看到德语区域设置: locale -a 之后,假设您在所描述的目录结构中仍然具有.po和.mo文件,则以下代码应该可以正常工作: <?php setlocale(LC_ALL,'de_DE.UTF-8'); bindtextdomain('messages','./locale'); textdomain('messages'); echo gettext('This is a test.'); ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |