php gettext无效解决
代码:
$lang = 'en_US'; //linux不支持zh-Hans,所以gettext、php都不支持。使用locale -a可以看到os支持的语言文字国家地区码。putenv('LANGUAGE=' . $lang); //ubuntu 需要,centos不需要此行setlocale(LC_ALL, $lang . '.utf8'); //ubuntu 需要.utf8,centos可有可无$domain = 'strings'; bindtextdomain($domain, dirname(__FILE__) . '/locale'); bind_textdomain_codeset($domain , 'UTF-8'); textdomain($domain);
代码其实很简单,主要问题点:
1、setlocale记得写utf8,否则有的系统就没效果; 2、确保有这个语言,比如Windows里有cn,但是Linux里就没有cn,只有zh_CN 3、注意翻译文件路径($domain对应了mo的文件名)
目录为en_US,如下:| |--- | |---en_US | | |---LC_MESSAGES | | | |---strings.mo 群晖支持的语言:
