源码已经更新在CSDN的码库里:
git clone https://gitcode.com/funsion/CLua.git
在src文件夹下的loadlib.c 动态库加载器函数,此模块包含适用于具有dlfcn的Unix系统的loadlib实现,适用于Windows系统的实现,以及适用于其他系统的占位符实现。
增加中文版luaL_Reg pk_funcs 包的使用列表,保留英文版luaL_Reg pk_funcs 包的使用列表。
原始的代码为:
static const luaL_Reg pk_funcs[] = {{"loadlib", ll_loadlib},{"searchpath", ll_searchpath},/* placeholders */{"preload", NULL},{"cpath", NULL},{"path", NULL},{"searchers", NULL},{"loaded", NULL},{NULL, NULL}
};static const luaL_Reg ll_funcs[] = {{"require", ll_require},{NULL, NULL}
};
更改成以下代码:
static const luaL_Reg pk_funcs[] = {{"loadlib", ll_loadlib},{"加载库", ll_loadlib},{"searchpath", ll_searchpath},{"搜索路径", ll_searchpath},/* placeholders */{"preload", NULL},{"cpath", NULL},{"path", NULL},{"searchers", NULL},{"loaded", NULL},{NULL, NULL}
};static const luaL_Reg ll_funcs[] = {{"require", ll_require},{"引入", ll_require},{NULL, NULL}
};
为了保证中英文 函数都可以加载,以便你可以复制英文原码来进行更改。所以保留了英文版 函数名列表,这样就能使用两种文的函数。
{"require", ll_require}, // 引入
{"引入", ll_require}, // 和require相同,但是使用中文名称
其实它们都是加载同样的库名,算是加载了2次,以Lua内部算法,应该只会加载一次。
更改完之后,同样需要重新编译Lua的源码,实现以上列出的关键词的中文化。
注意,在Window系统下编译Lua, 最好将所有Lua的源码,重新保存成ANSI格式的文件,刚下载的默认的源码会是UTF-8格式的。
这个事情说三遍,
1,不然就会出现,Window下的UTF-8源码可编译,但Shell里的中文输出会乱码。
2,要不然就是Window的ANSI源码不可编译(假如你没做以上步骤),
3,如果是用ANSI格式的源码编译的Lua.exe,对应的,你在Window下写的Lua程序也是需要保存成ANSI格式的。这样就可以在Shell里输出正确的中文显示。