Gettext不能在我的localhost上运行

时间:2015-03-03 15:08:13

标签: php localhost gettext

我尝试从gettext()开始,但它在我的localhost上不起作用。

我的简单代码:

<?php
$language='en';
putenv("LANG=$language"); 
setlocale(LC_ALL,$language);

$domain='test';
bindtextdomain($domain,"languages"); 
textdomain($domain);

echo _("Simple string to translate");

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

1 个答案:

答案 0 :(得分:0)

这是设置语言并从.po文件调用翻译的好方法。 PHP只读.po,因此请务必使用该文件的扩展名。另外,测试locale系统是否支持xy_XY格式或xy格式:在linux下使用此行:locale -a,您将检查语言环境的写入方式并支持。在Windows下: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);