您的位置:首页 > 编程语言 > Java开发

ROR I10N问题及关于javaeye论坛的一些闲话

2007-06-02 00:47 477 查看
先来一点闲话:众所周知,javaeye是国内开发者知名论坛,因为昨天下了个Typo(ROR开源的weblog引擎),想打造自己的一个blog,因为没有看源码,大致跑了一下,首先想到的一个问题就是本地化(I10N),就到javaeye发了个帖子,无可厚非的发到了Ruby区,可是管理员通知我了,被评为新手贴,郁闷的我,我的问题是太简单了,是因为我比较懒,没有时间去看源码具体实现,然后就挨javaeye老大的批斗了。。。因为这件事,发了个牢骚贴,被设置为隐藏贴,搞的我论坛回帖功能被封了4天,郁闷呀。。。javaeye这种制度,我知道是为了维护javaeye帖子的高质量,可是我看了其他的帖子,有很多都是研究Ruby语法,讨论的没有深度,还不如PR2ed上面说的透彻呢,这些帖子都不是新手贴,凭什么就把我的帖子放到那个无人问津的地方?这一点欠公平,我就不服这一点,因为这牢骚贴要发到javaeye又被隐藏了,又该挨批,所以就发到51cto吧。。。当然javaeye的技术氛围我还是很喜欢的,robbin老大对于我问过的及其菜的问题也能回复,也许是javaeye某个有权重的人看我不顺眼吧。。。姑且这么认为了。。。。。。牢骚发完了,下面给出一个本地化解决方案,而且是pure Ruby实现的适合少量种类语言的本地化Rails插件,和gettext比起来属于轻量级。
这帖子下面这部分我也发在了javaeye。。。

现在记录那个localization插件的用法。
我用SVN在这个地址checkout出location插件:
http://dev.rubyonrails.org/svn/rails/plugins/localization/
我没有指定check out路径,就默认存放在了/root目录下。
然后把localization插件copy到工程的vendor/plugins目录下。然后我们做的工作就是:
1。在lang目录下定义个.rb文件,类似de_DE.rb
Localization.define('de_DE') do |l|
l.store "blah", "blub"
l.store "testing %d", ["Singular: %d", "Plural: %d"]
end
2。假设blash和testing %d就是你要替换的文本,再你程序里这两个文本出现的地方使用如下形式:
_('blah')
_('testing %d', 5)

3。在.rhtml中,用如下形式:

<%=_ 'testing %d', 1 %>

4。在application.rb中设置

Localization.lang = 'de_DE'
(别忘了。。。Typo不是自动根据操作系统来本地化的,需要人工加载。。。郁闷的一点)

5。在environment.rb中
config.plugins = [ 'localization'
。。。]
6。别忘了include localization.rb
当然Typo用了好多插件,为了一次性的导入全部插件,就用了sidebar_generator.rb,大家可以参考一下。

(才发现SuseLinux里自带的gedit支持Ruby语法,但是奇怪的是SuseLinux10里没有自带Ruby)
现在觉得很简单的,难怪那些高手们懒的留口水。。。可是有投票的功夫也能打出如下这一行字了:
请参考localization插件和读Typo源码!
参考资料:
http://mir.aculo.us/2005/10/03/ruby-on-rails-i18n-revisited
[code]


本文出自 “悟道集” 博客,请务必保留此出处http://blackanger.blog.51cto.com/140924/28824
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: