Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

汉化版LUA。 #147

Closed
xgongya opened this issue Apr 20, 2019 · 6 comments
Closed

汉化版LUA。 #147

xgongya opened this issue Apr 20, 2019 · 6 comments

Comments

@xgongya
Copy link

xgongya commented Apr 20, 2019

基于LUAJIT 支持中英双语,保留英文关键字的目的为了兼容现有的LUA库,要汉化的话就汉化接口就行了,库代码没有影响。

英文关键字

"and", "break", "do", "else", "elseif", "end", "false", "for", "function", "goto", "if", "in", "local", "nil", "not", "or", "repeat", "return", "then", "true", "until", "while"

中文关键字

"且", "跳出循环", "运行", "否则", "否则如果", "结束", "假", "循环", "函数", "跳转", "如果", "在", "局部", "空", "不是", "或", "循环判断尾", "返回", "则", "真", "判断尾", "判断循环"

标准库全局函数的汉化

`_G["导入"]

= require;
_G["标准输出"] = print;
_G["迭代"] = pairs;
_G["数组迭代"] = ipairs;
_G["运行文件"] = dofile;
_G["加载"] = load;
_G["加载文件"] = loadfile;
_G["加载文本"] = loadstring;
_G["判断"] = rawequal;
_G["取哈希表值"] = rawget;
_G["置哈希表值"] = rawset;
_G["选择"] = select;
_G["取函数环境"] = getfenv ;
_G["置函数环境"] = setfenv;
_G["取元表"] = getmetatable;
_G["置元表"] = setmetatable;
_G["到数字"] = tonumber;
_G["到文本"] = tostring;
_G["取类型"] = type;

package.path = package.path ..';.\lib\?.lua';

require("文件读写")
require("字符串")
require("哈希表")
require("协程")`

标准库汉化实例 哈希表.lua

哈希表 = {} 哈希表.插入= table.insert 哈希表.连接元素= table.concat 哈希表.连接元素= table.concat 哈希表.取最大索引= table.maxn 哈希表.删除元素= table.remove 哈希表.排序 = table.sort 返回 哈希表

实例代码

`局部 a,b = 文件读写.打开("1.txt","a+")
局部 content = 文件读写.读取(a,"*l")
文件读写.写入(a,"ssadass\nscsdfsdfsfsfs")
文件读写.关闭(a)

局部 s ="abcdE"

标准输出(字符串.到大写(s))
标准输出("测试标准输出\n")

函数 测试函数 (参数1)
局部 测试局部 = "wwww"
标准输出(参数1,测试局部)
结束

测试函数("调用函数")

全局变量2 = 真

如果(全局变量2) 则
标准输出("你好")
否则
标准输出("不好")
结束

临时表 = {"第一个", "第二个", "第三个"}

哈希表.插入(临时表,"第四个")
局部 biao = 哈希表.连接元素(临时表)
标准输出(biao)

哈希表.删除元素(临时表,2)

循环 计次, 元素 在 数组迭代(临时表) 运行
标准输出(计次, 元素)
结束 `

简单说下这玩意的由来,我入门语言是易语言,虽然后来学习了很多语言但是一直有用易语言做小工具的习惯。后来业务需要迁到MAC OS开发 易语言当然不适用了。于是 这东西诞生了,目的取代易语言做小工具 自动化等脚本,当然他本质是LUA 结合LUA社区,他能干的事情远不止于此吧。

@nobodxbodon
Copy link
Member

@xgongya 多谢介绍! 个人对Lua不大了解, 请问这是修改Lua源码实现的吗?

@xgongya
Copy link
Author

xgongya commented Apr 20, 2019

@nobodxbodon 关键字是改了一点lex代码 标准库的汉化是通过LUA自身机制汉化的,改动幅度非常小。如果有需要我把他放到git上面来。

@nobodxbodon
Copy link
Member

@xgongya 刚想起 @swizl 之前实现的Lua汉化, 不知是否类似技术途径, Lua版本是否不同?
代码如果可以分享到git的话会比较方便研究.
另外, 其他一些语言的汉化列表请见 #25

@xgongya
Copy link
Author

xgongya commented Apr 21, 2019

@nobodxbodon 上传上来了,https://github.com/xgongya/cnLua.git

@nobodxbodon
Copy link
Member

刚粗看了一下代码, 请问是基于哪个commit做的? 和官方最新的2.0版本比较了一下, 好像有不少不同(应该是最近的一些官方更新).
组内现在有两个活跃的语言汉化项目, 都是针对TypeScript, 一是LingaScript主要对关键字(简介, 入门), 另一个CTS还包括了核心/三方库, IDE辅助等等.
请问对这个Lua汉化项目的预期目标是? 打算发展成一个成熟开源项目向国内社区推广吗?

@nobodxbodon
Copy link
Member

已合并到 #25 ,如有更新或进展请在那里跟帖

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants