我尝试从gettext()开始,但它在我的localhost上不起作用。
我的简单代码:
<?php
$language='en';
putenv("LANG=$language");
setlocale(LC_ALL,$language);
$domain='test';
bindtextdomain($domain,"languages");
textdomain($domain);
echo _("Simple string to translate");
我有文件夹语言,在此文件夹中有另一个文件夹,但文件没有创建。谢谢你的帮助
答案 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);