: 推 david50407: 太好了XDD 顺便求大家帮忙翻译 tw.crystal-lang.org 02/22 13:44
: 小弟我不知道 Crystal 社群需要这个
: 可否写个文章说明一下如何帮忙
: 搞不好大家可以见证一个新语言的成长 (挺)
其实一开始我是有打算跟着版工在板上 PO 一篇“用 Crystal 写 Gem”的教学文的
(可是工作跟学业繁忙就(ry)
关于 http://tw.crystal-lang.org 的部份是
我在接触了 Crystal 这个语言之后发现在台湾玩的人好像很少,
(或是还没看到社群)
不过看到 Crystal-JP 日本的社群还满活跃的,所以异想天开地就在 GitHub 上面
(一开始真的是异想天开想说自己有没有机会也来带起这个风气(?)
开了一个 Organization 看能不能作为 Crystal Taiwan Users Group 的根据地,
(网址在此: https://github.com/crystal-tw )
里面已经先拉了几个也有兴趣的朋友进去帮忙翻译,
这边先说说如果大家对于 Crystal 有兴趣或是想帮忙贡献翻译的话,
这里有几个入门的方式给大家参考,先说说怎么玩 Crystal:
首先是直接从中文入门文件开始看(就是等等我们要来翻译的那个),
网址: http://tw.crystal-lang.org/docs/
不过里面也是部分翻译而已,大部分的内容还是原文……
然后对应原文版本的网址都是将 tw. 去掉就可以了
(例如中文页面是 http://tw.crystal-lang.org/docs/installation/
那么原文网址就是 http://crystal-lang.org/docs/installation/ )
照着里面的安装步骤就可以把 Crystal 装起来,
如果你是想要自己编译 Crystal 的,还是要请你先取得一个可以用的 Crystal binary
因为 Crystal 现在是自编译的(用 Crystal 编译 Crystal)。
最基本的 Crystal 用法有两种,一个是直接执行,另一种是编译成执行档——
假设我们现在有一个范例程式(hello_world.cr):
puts "Hello, World!"
对的,Crystal 的语法跟 Ruby 有 87% 像呢,所以熟悉 Ruby 的同学可能会觉得我
胡咙大家,怎么会拿 Ruby 的程式来跑,但这的的确确是合法的 Crystal 程式哦 >.0
(一)直接执行的用法
$ crystal hello_world.cr
Hello, World!
$
默认状态下,Crystal 会将吃进来的程式码编译到 /tmp 下面存放并执行,
感觉就好像是直接执行 ruby xxx.rb 一样,但在 Crystal 的世界里面其实
一切都要先编译过才会执行。
(二)编译成执行档的用法
$ crystal build hello_world.cr
$ ./hello_world
Hello, World!
$
当执行 crystal build 的时候,他只会进行编译并产生一个同名的执行档,
就像是我们跑 gcc xxx.c 一般,我们可以直接执行产生的执行档而不需要安装 Crystal
这边关于 Crystal 更多的用法可能要之后我才有更多时间来板上跟大家多多介绍,
接下来是要进入正题——如果我想贡献翻译怎么办?
在 Crystal-TW 下面,分别有两个 Repo,一个是首页的仓库,一个是入门文件的仓库
https://github.com/crystal-tw/crystal-tw.github.io 是首页的仓库,
目前只有翻译了首页的部分,并在页尾加上了 Crystal-TW 的相关资讯,
不过我希望有机会的话也能把原文站的 Blog 也翻译过来,里面的内容也是满有趣的
这边跟原文站用到的工具相同,都是 jekyll,可以直接在 GitHub Pages 上面 render
如果有兴趣的同好可以帮忙翻译看看 blog post 的地方……
因为我现在主要注意的是入门文件的部分。
再来是 https://github.com/crystal-tw/docs 这部份就是前面大家看到的入门文件,
虽然我自己喜欢叫他入门文件,因为里面的内容真的满简单的,也很基础,
不过原文其实是直接叫 Docs 了,这部份是我有空就会翻译,
然后基本上有 PR 就会 Merge,这边用的工具是 Gitbook CLI(跟原文一样)
这边如果大家有兴趣翻译的话可以先看看 README.md 里面有一些说明,
还有如果有任何的想法欢迎开 issue 出来讨论或是在 Crystal-TW 的 Gitter 上面讨论
大家可以 fork 回家,然后改好之后送 PR 到 master branch,
不是 gh-pages 哦,Travis CI 会在 master 有变动的时候跑 gitbook build 出
static pages 并 commit 到 gh-pages,所以大家只要安心的送 PR 到 master,
网站就会更新了!
(这部份是参考原来 Crystal 跟 Crystal-JP 的设计,如果有更好的方法欢迎提供 :D)
然后基本上最小的要求就是可能要符合 README.md 上的要点,如果你觉得哪里做的不够好
欢迎直接上来讨论 <(_ _)>
最后你可能会问,那 API 文件呢?需不需要翻译?
因为目前 API doc 是根据 Crystal 原始码自动产生的,我个人是觉得不太好 sync
但如果有人有兴趣的话我们也可以一起来讨论,
另外就是因为我最近比较忙一点点点点,所以如果有勇者可以来帮忙维护 PR 品质的话
我也绝对可以给你 Organization 的权限XDDDD"
最后的最后,Crystal 其实是很好玩的,不过还有些 Stdlib 还在改进中,
如果大家有空有机会有想法也可以在官方的 repo 开 issue 跟大家讨论
不过 Crystal 是在阿根廷诞生的,所以大部分的作息刚好跟台湾相反,请大家有耐心
我个人比较关注的 issue 是跟类别继承有关的还有 Windows porting 的部分,
(对,还没有 Windows 版)
我觉得这个语言还满有趣的,所以也可以私下来找我讨论XDDD
大概就是这样了,谢谢大家(鞠躬)
BTW, 欢迎阿公揪阿爸、楼顶揪楼脚、大家一起来推广 Crystal XD