使用gettext翻译我的应用程序时遇到问题。
我的代码是:
<?php
$language = 'cs_CZ';
$translatefile = 'default';
setlocale(LC_ALL, $language);
putenv("LANG=".$language);
bindtextdomain($translatefile, __DIR__.'/locale');
textdomain($translatefile);
echo gettext("ADMIN_LOGIN_PROFESSIONAL");
当我运行脚本时,它仍会显示“ADMIN_LOGIN_PROFESSIONAL”。
我的文件结构:
我正在运行Windows 7,Apache 2.2.22和PHP 5.3.13。
非常感谢您的帮助......
答案 0 :(得分:0)
这适用于win 7,php 5.3&amp; 5.4,iis。是不是在linux上测试过的。代码已准备好按strftime('%c')
等格式化日期:
/**
* Setup locale (strings and formats)
* @param string $lang Lang code in ISO format ('cs')
* @see locales: http://www.roseindia.net/tutorials/I18N/locales-list.shtml
* @see languages: http://msdn.microsoft.com/en-us/library/39cwe7zf%28vs.71%29.aspx
* @see regions: http://msdn.microsoft.com/en-us/library/cdax410z%28vs.71%29.aspx
*/
function setAppLocale($lang)
{
$domain = 'Tis';
switch ($lang)
{
case 'cs':
$locale = 'czech';
$strings = 'cs_CZ';
break;
case 'en':
$locale = 'english';
$strings = 'en_US';
break;
case 'de':
$locale = 'german';
$strings = 'de_DE';
break;
case 'hu':
$locale = 'hungarian';
$strings = 'hu_HU';
break;
case 'ru':
$locale = 'russian';
$strings = 'ru_RU';
break;
}
putenv("LANGUAGE=$strings");
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($domain, APPDIR . "/locale");
bind_textdomain_codeset($domain, "UTF-8");
textdomain($domain);
}