htwx
htwx
[CTS](https://gitee.com/HTWX/CHTypeScript)这个项目一直是我一个人在搞,前后耗时快7个多月了,现在0.0.1版本基本完成了。现在这个项目基本下载编译后就能使用,但现在没有写自述文件,本人原来曾经汉化过C#后来发现没有意义因为C#我只能汉化成中文关键字,.net是没有办法的,这个是因为需要CLR(运行时)的支持,就放弃了。这个TS是微软开源的类型化JS。可能本人多接触的是后端语言强类型的接触比较多,js用的不多,在后端人员看来这个js真的是问题太多了,微软的这个TS基本解决了js存在的一些问题,根据官方的说法TS是JS的超集,就是说JS的写法TS是完全能覆盖的。TS因为是编译时强类型的所以在程序开发阶段就能排除大多数的问题。微软说TS是为了使JS能具备开发大型程序而改进的,事实确实做到了,微软开源的vscode 也是TS开发的,从实际的运行来看,真的很不错。TS是自写自身的编程语言,近10万行的代码在VsCode上编译运行调试没什么压力。我这次改造是基于TS2.5版本开发的TS原有的功能没有一点改变,是在官方的基础上做的加法,这个完全可以当做TS的编译器来使用。TS、JS的英文版代码块(或源文件)。直接拷贝进来就可以用。时间上来讲这个版本我本来没打算公开出去,本来想在TS2.5.5的时候在跟进一版在公开,那时候估计基本的文档也能完善了,我的这个CTS重新增量开发了TS的语言服务(tss),IDE这块是在TSVsCode的插件基础上做的增量开发,从语法高亮到智能提示所有的TS原版具备的功能这个CTS都具备,基本能达到TS原版在VsCode开发时的开发体验(我自己反而不行,因为长期使用英文关键字开发反而使用中文做教程的时候卡壳,这是因为10几年基本形成习惯性动作了,一时半会还真不好改)。现在TS、JS的生态越来越强大成了一个真正的跨平台语言,在桌面有electron、nw等,移动端有ReactNative、微信、支付宝的小程序等、服务器本身node就是干这个的,社区有npm。因为TS为了类型化JS创造性的增加了个类型声明文件(.d.ts文件,作用类似于c语言的.h文件)。有了这个类型声明文件使得不用改变electric、nw、rn本身源码只是修改.d.ts文件就可以实现汉化成为可能。也就是我的这个CTS不但是一个汉化的强类型的JS超集同时也能汉化 electric、nw、rn、还有成千上万的js模块文件,汉化的方法也很简单只是在.d.ts文件上标注词典就可以了,我本人也写了工具。在翻译工具的帮助下几乎任何人都可以汉化LIB。解决了虽然能汉化C#但是不能汉化.net的尴尬。这个图片是es5以下版本的js默认类型支持库(LIB)在原版声明的基础上增加词典标注这个就是完全支持中文编程的支持库了,我设计了工具。标注起来不麻烦。像这种近2w行的类型声明文件没几个,90%的类型声明文件在500~5000行之间,包括electric、nw、react、reactnative、SQL、redis(键值数据库等等) 虽然注释是英文的但是鼠标悬停提示会有机器翻译的汉语注释  虽然注释是英文的但是鼠标悬停提示会有机器翻译的汉语注释.  格式化的文本也能翻译(虽然不是很准确,毕竟是机器翻译的) 
有些还是不行的虽然没改变ts的原有功能但是对他的大量内部函数数据类型都做了修改。现在合并肯定不行。但是我开发的时候就考虑到了以后版本跟进的问题。如果官方更新我可能2天内就能跟进,在他们不是结构化大量的的更改源码的情况下,本来要在他发布2.5.5 的时候跟进一次,原来设想 官方更新5次我更新1次,除非他们是有革命性的更新。估计这是不可能的在5个小版本间就大范围更新。因为ts已经很完善了
这个考虑过,但实际还在矛盾中。我是一直坚持中文标识符命名的,实际上搜狗输入法有时比智能提示还好用。只要你连续的输入几次相关的词组,这个是临时写的演示,输入法没有输入记录。如果自己做拼音补全不一定比搜狗好用(主要是实力不行啊)。
**钦佩毅力! 不知日常工作中是用TS开发吗?** 我是建筑设计专业的平时不做开发,我有自己的事业,我年龄比较大了,自己觉得还不错,我是以我自己学习这个的经历来考虑,中文编程能推广起来真的是对国对民都好的事情,现在难点不再这个到底可不可行上,而是没有大的公司采用中文编程,如果 阿里腾讯百度小米等等有1到2家是用中文编程的或是推动中文编程的,你不让他们学他们都不干。就那个帖子而言那些疯狂反对的,反而是对中文编程最熟悉的,弄不好他们就是那些整天到处问些低级问题的那些人,只是靠时间费了九牛二虎之力才一点点学会的人。我说他们中90%的人曾用过中文编程。 **请问能分享一下汉化方法/思路吗? 是扩展Roslyn实现?** 我在研究C#的时候C#才4.0那是Roslyn还没开源,我是从mono入的手,后来罗斯林开源了我也看了,要汉化C#现在肯定是要从罗斯林开始开发,但是C#的接口文件是通过反射取得的(就是从元数据)如果你要汉化.net就要改 MSIL和CLR了(前提是要保持和英文C#的兼容性),如果不考虑兼容问题到时不用直接从.netcode的源码改就行了。
事实是搜狗输入法简拼是最快的,但是已经养成了用全拼,要是强制改变用简拼一时还上不了手。
TS是自写自身的,你的编译器源码首先要编译的就是你的源码?就是说我写的这个最少编译过10w+的代码。
对于字符乱码的问题我是语言不支持就改语言,运行环境不支持就改环境。必须叫他支持。
VsCode 的代码没改动都是按VsCode插件开发的IDE.但是typescript的语言服务改了很多就是TSS 给他增加了好几个命令
VsConde 如果你不需要创建新的UI不用改源码在插件的环境下基本都能实现, 你可以看下源码.调用一些他没有公开的基础代码(就是写内部命令).
我的这个版本还没有打算推广, 我想实现的是 中文一条龙 中文HTML, 中文CSS, 中文TS, 中文Node, 中文React 这几天已经在搞 中文H5了