中文Scaffold

Rails1.2以后有一个scaffold_resource的generator,那些column在view里都展开了。相比老的scaffold要管用很多(老的scaffold基本上是个花瓶功能),开发可以在这个生成结果的基础上开展。

我在用rails做一个中文项目。每次生成scaffold_resource生成代码以后,都要去手工把Edit,View等等链接改成中文,还有那些column的名字,不胜其烦,根本没有享受到新版scaffold的便捷。有过同样经历的朋友会理解这种烦恼,最大的烦恼是做这些重复动作很傻,很不DRY。在多方搜索未果之下,决定自己改装出一个中文scaffold。

改装基于两个基础:[url=http://l10n-simplified.rubyforge.org/]l10n_simplified[/url]为主,[url=http://code.google.com/p/mod-i18n/]mod_i18n[/url]为辅。

[b]功能[/b]
改装好的plugin除了中文scaffold之外,还享受到了这两个基础plugin的几大好处:
1、Validation报错中文化
[color=red]h2.保存该客户时发生2 个错误。
p.错误字段如下:
* 客户名称 不能重复。
* 地址 不能为空。
[/color]
2、中文日期时间显示
>> Time.now.to_s(:long) # => 2007年6月6日(星期四)22时30分12秒
>> Time.now.to_s(:short) # => 6月6日 22:30
3、中文时间间隔
>> helper.distance_of_time_in_words 50.seconds.ago # => 不到1分钟
4、人民币显示
>> helper.number_to_currency 1039.12 # => ¥1,039.12
5、数组转换成中文句子
>> ["张三", "李四", "王二"].to_sentence # => "张三、李四和王二"
6、可以自定义翻译项

[b]安装[/b]
附件zip解压缩到你的$RAILS_ROOT/vender/plugins下就可以了。
注意,rails版本一定是1.2以上。

[b]Scaffold命令示例(其实就是rails1.2的scaffold_resource命令)[/b]
script/generate scaffold_resource customer name:string address:string

[b]用法[/b]
要在model文件里加一些const,比如刚才创建的:app/models/customer.rb
class Customer < ActiveRecord::Base
validates_presence_of :name, :address
validates_uniqueness_of :name

# human names
ModelName = "客户"
ColumnNames = {
:name => "客户名称",
:address => "地址"
}
end


[b]License[/b]
继承所参考的项目:MIT License

[b]TODO(如果有空的话)[/b]
1、递交给l10n-simplified.rubyforge.org
2、如果作者不接受,新建一个google code的project,这样就可以通过script/plugin install安装了。
3、完善它
4、做一个video,或者贴图,让人一看就懂
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值