适用于Typecho 1.1, 其他版本应该不会有太大变化。
原理:
typecho原生自带了翻译功能, 但不支持随客户端语言自动切换。 因此获取客户端语言, 并替换原生翻译功能所调用的翻译文件即可。
注意:需要先开启Typecho原生的多国语功能。
关于原生的翻译功能 —> https://www.typechodev.com/case/typecho-language.html
更改Typecho根目录下/var/Typecho/I18n.php里的77行:
/**
* 初始化语言文件
*
* @access private
*/
private static function init()
{
/** GetText支持 */
if (false === self::$_loaded && self::$_lang && file_exists(self::$_lang)) {
self::$_loaded = new Typecho_I18n_GetTextMulti(self::$_lang);
}
}
更改为如下:
/**
* 初始化语言文件
*
* @access private
*/
private static function init()
{
/** 检查客户端语言 */
if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$langConfig = substr($lang,0,5);
if(preg_match("/zh