Gettext不';我不在本地主机上工作


Gettext doesn't work on my localhost

我尝试从gettext()开始,但它在本地主机上不起作用。

我的简单代码:

<?php
$language='en';
putenv("LANG=$language"); 
setlocale(LC_ALL,$language);
$domain='test';
bindtextdomain($domain,"languages"); 
textdomain($domain);
echo _("Simple string to translate");

我有文件夹语言,在这个文件夹中有另一个文件夹,但没有创建文件。感谢的帮助

这是一个很好的解决方案,可以设置语言并从.po文件调用翻译。PHP只读取.po,所以请确保具有该文件的扩展名。此外,测试您的locale系统是否支持xy_XY格式或xy格式:在linux下,使用此行:locale -a,您将检查区域设置是如何写入和支持的。在窗口下:check the system.io file

//get the location and set the languages
define('SESSION_LOCALE_KEY', 'ix_locale');
define('DEFAULT_LOCALE', 'en_US');
define('LOCALE_REQUEST_PARAM', 'lang');
define('WEBSITE_DOMAIN', 'messages');
if (array_key_exists(LOCALE_REQUEST_PARAM, $_REQUEST)) {
    $current_locale = $_REQUEST[LOCALE_REQUEST_PARAM];
    $_SESSION[SESSION_LOCALE_KEY] = $current_locale;
} elseif (array_key_exists(SESSION_LOCALE_KEY, $_SESSION)) {
    $current_locale = $_SESSION[SESSION_LOCALE_KEY];
} else {
    $current_locale = DEFAULT_LOCALE;
}
putenv("LC_ALL=$current_locale");
setlocale(LC_ALL, $current_locale);
bindtextdomain(WEBSITE_DOMAIN, dirname(__FILE__) . '/lang');
bind_textdomain_codeset(WEBSITE_DOMAIN, 'UTF-8');
textdomain(WEBSITE_DOMAIN);