Php错误与本地化翻译

时间:2016-03-17 19:38:30

标签: php localization translation

您好我试着通过本地化翻译到我的网站 使用此代码:

    $locale = "he_IL.UTF-8";
    $domain = "./locale";

    putenv("LANG=$locale");
    putenv("LANGUAGE=$locale");
    putenv("LC_ALL=$locale");
    putenv("LC_MESSAGES=$locale");
    setlocale(LC_ALL, $locale);
    setlocale(LC_MESSAGES, $locale);

我得到了错误:

Notice: Use of undefined constant LC_MESSAGES - assumed 'LC_MESSAGES'
Deprecated: setlocale(): Passing locale category name as string is deprecated. Use the LC_* -constants instead in
Warning: setlocale(): Invalid locale category name LC_MESSAGES, must be one of LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, or LC_TIME in

并且语言不起作用...... 我试着设置:

 if (!defined('LC_MESSAGES'))
     define('LC_MESSAGES', 6);

它解决了错误,但仍然没有翻译... 我在这个网站上使用wamp, 但在网络服务器中,它的工作效果很好......只有在wamp中才能

tnx很多

1 个答案:

答案 0 :(得分:2)

PHP Manual entry for setlocale

  

系统响应的LC_MESSAGES(如果使用libintl编译PHP,则可用)

因此,我们可以假设您的网络服务器有一个用libintl编译的PHP版本,但是您的WAMP服务器没有。我的理解是LC_MESSAGES在Windows上不能很好地工作。

请尝试使用:

putenv("LC_ALL=$locale");
setlocale(LC_ALL=$locale);

如果您是using php-gettext,请确保已将区域设置安装到相应的文件夹中。