- 浏览: 201770 次
最新评论
-
抛出异常的爱:
netfishx 写道hurricane1026 写道冉翔 写 ...
Ruby way Rails way Milky way -
netfishx:
hurricane1026 写道冉翔 写道好久灭见LZ老,欢迎 ...
Ruby way Rails way Milky way -
冉翔:
好久灭见LZ老,欢迎回来^_^最近一段时间,还真是想念LZ发帖 ...
Ruby way Rails way Milky way -
darkjune:
应该有地方可以下载的么
Ruby way Rails way Milky way -
zlst:
好东西,学习
Four cool IBM的ruby教程, 有的教程放在ibm dev上凉的太久了
道喜技术高强, 下面两篇看完了就明了
http://www.hhtong.com/blog1/articles/2006/05/15/rails20060514_i18n_gettext
关键的步骤是
增加文件application.rb的代码,其中第四行和第十一行参数要调整。其目的在于,我们确定我们软件使用什么语言。在这个文件中,我们定义该软件项目文字区域(textdomain):i18n_gettext。这一点是很重要。它必须和后面谈到文件.po的文件名相同。
http://www.hhtong.com/blog1/articles/2006/05/15/tools20060514_use_poedit
比Globalize简洁易行
Download poedit最新版1.3.6的link
2006-10-30 03:36:
http://sourceforge.net/project/showfiles.php?group_id=27043&package_id=18746&release_id=459538
http://manuals.rubyonrails.com/read/chapter/105
有这么个笑话老鼠给猫挂铃铛, 敢挂是勇气, 要挂的太多了, 老鼠也不愿意干了
铃铛出在第六步, 手工要维护的括号太多了
是的
本贴使用的通俗说法汉化,打算就一个已有的程序,翻译成中文的界面的过程
还在试验其它的方法
http://wiki.rubyonrails.org/rails/pages/InternationalizationComparison
有体验的可以讲解一番
http://www.trikr.net/
这个原创的网站就是用Globalize 作的双语支持
http://www.hhtong.com/blog1/articles/2006/05/15/rails20060514_i18n_gettext
关键的步骤是
引用
增加文件application.rb的代码,其中第四行和第十一行参数要调整。其目的在于,我们确定我们软件使用什么语言。在这个文件中,我们定义该软件项目文字区域(textdomain):i18n_gettext。这一点是很重要。它必须和后面谈到文件.po的文件名相同。
http://www.hhtong.com/blog1/articles/2006/05/15/tools20060514_use_poedit
比Globalize简洁易行
Download poedit最新版1.3.6的link
2006-10-30 03:36:
http://sourceforge.net/project/showfiles.php?group_id=27043&package_id=18746&release_id=459538
http://manuals.rubyonrails.com/read/chapter/105
有这么个笑话老鼠给猫挂铃铛, 敢挂是勇气, 要挂的太多了, 老鼠也不愿意干了
铃铛出在第六步, 手工要维护的括号太多了
引用
#
# 我们要把所有文件D:\works_rails\i18n_gettext\*\*.rb,D:\works_rails\i18n_gettext\*\*.rhtml 需要翻译的文字写成为规定格式为:
_('原文')
例如,我们修改文件D:\works_rails\i18n_gettext\app\views\admin\list.rhtml
_('Show')
原来的形式为
‘Show’
# 我们要把所有文件D:\works_rails\i18n_gettext\*\*.rb,D:\works_rails\i18n_gettext\*\*.rhtml 需要翻译的文字写成为规定格式为:
_('原文')
例如,我们修改文件D:\works_rails\i18n_gettext\app\views\admin\list.rhtml
_('Show')
原来的形式为
‘Show’
评论
4 楼
歆渊
2006-11-03
恰好我刚写完了一个基于Java的文字国际化产品, 现在正在写教程, 基本思想是通过变量的注释块来定义消息模板, 里面可以定义消息参数和写js动态脚本, 程序运行的时候通过调用Messager.format()来生成输出, 一个简单例子如下:
编译的时候自动生成XML资源文件 Quick.msg.xml 如下:
然后翻译成中文的XML资源 Quick_zh.msg.xml 如下:
public class Quick { /** * {name} was {age} {! age>1?"years":"year"} old in year {year}. * * @arg name : name of the person * @arg age : his/her age in that year * @arg year = 2006 : the year * @usage This is a demo message declaiming one person's age in a past year. */ @Msg protected static final String YEAR_AGE = "yr-age"; /** * {! function r2(n) \{ return Math.round(n*100)/100; \} * }Current Memory Usage: \n * \t Free: {! r2(java.lang.Runtime.getRuntime().freeMemory()/1024)} KB\n * \tTotal: {! r2(java.lang.Runtime.getRuntime().totalMemory()/1024/1024)} MB\n * \t Max: {! r2(java.lang.Runtime.getRuntime().maxMemory()/1024/1024)} MB */ @Msg protected final static String MEM = "mem-usage"; /** * There {! num > 1 ? "are" : "is"} {! num <= 0 ? "no" : num} {!num > 1 ? "files" : "file"}. * * @arg num = 1 : the number of file(s). */ @Msg protected final static String FILE = "number-of-files"; /** * This is escaped text:\n * \t \{this-is-text-instead-of-arg}\n * \t \{! this-is-text-instead-of-expr } */ @Msg protected final static String ESC = "escaped-text"; public static void main(String[] args) { Messager msgr = Messager.get(); System.out.println(msgr.format(YEAR_AGE, "name", "Peter", "year", 2006, "age", 26)); System.out.println("------------------------------------------------"); System.out.println(msgr.format(MEM)); System.out.println("------------------------------------------------"); System.out.println(msgr.format(FILE, "num", 0)); System.out.println(msgr.format(FILE, "num", "0.5")); System.out.println(msgr.format(FILE, "num", "1")); System.out.println(msgr.format(FILE, "num", "1.5")); System.out.println(msgr.format(FILE, "num", 6)); System.out.println("------------------------------------------------"); System.out.println(msgr.format(ESC)); } }
编译的时候自动生成XML资源文件 Quick.msg.xml 如下:
<?xml version="1.0" encoding="UTF-8"?> <java> <text> <escaped-text> <![CDATA[This is escaped text: \{this-is-text-instead-of-arg} \{! this-is-text-instead-of-expr }]]> <args /> <defined>tutor.msg.Quick(Quick.java:54)</defined> <used>tutor.msg.Quick(Quick.java:54)</used> </escaped-text> <yr-age> <![CDATA[{name} was {age} {! age>1?"years":"year"} old in year {year}.]]> <args> <name>name of the person</name> <age>his/her age in that year</age> <year default-value="2006">the year</year> </args> <usage> This is a demo message declaiming one person's age in a past year. </usage> <defined>tutor.msg.Quick(Quick.java:24)</defined> <used>tutor.msg.Quick(Quick.java:24)</used> </yr-age> <mem-usage> <![CDATA[{! function r2(n) \{ return Math.round(n*100)/100; \} }Current Memory Usage: Free: {! r2(java.lang.Runtime.getRuntime().freeMemory()/1024)} KB Total: {! r2(java.lang.Runtime.getRuntime().totalMemory()/1024/1024)} MB Max: {! r2(java.lang.Runtime.getRuntime().maxMemory()/1024/1024)} MB]]> <args /> <defined>tutor.msg.Quick(Quick.java:38)</defined> <used>tutor.msg.Quick(Quick.java:38)</used> </mem-usage> <number-of-files> <![CDATA[There {! num > 1 ? "are" : "is"} {! num <= 0 ? "no" : num} {!num > 1 ? "files" : "file"}.]]> <args> <num default-value="1">the number of file(s).</num> </args> <defined>tutor.msg.Quick(Quick.java:46)</defined> <used>tutor.msg.Quick(Quick.java:46)</used> </number-of-files> </text> </java>
然后翻译成中文的XML资源 Quick_zh.msg.xml 如下:
<?xml version="1.0" encoding="UTF-8"?> <java> <text> <number-of-files> <![CDATA[有{num}个文件.]]> <args> <num default-value="1">the number of file(s).</num> </args> </number-of-files> <mem-usage> <![CDATA[{! function r2(n) \{ return Math.round(n*100)/100; \} }当前内存使用情况: 空闲: {! r2(java.lang.Runtime.getRuntime().freeMemory()/1024)} KB 总数: {! r2(java.lang.Runtime.getRuntime().totalMemory()/1024/1024)} MB 限制: {! r2(java.lang.Runtime.getRuntime().maxMemory()/1024/1024)} MB]]> <args /> </mem-usage> <yr-age> <![CDATA[{year} 年的时候, {name} {age} 岁.]]> <args> <name>name of the person</name> <age>his/her age in that year</age> <year default-value="2006">the year</year> </args> <usage> This is a demo message declaiming one person's age in a past year. </usage> </yr-age> <escaped-text> <![CDATA[以下文字是经过转义的: \{这不是参数,而是文字} \{! 这不是表达式,而是文字 }]]> <args /> </escaped-text> </text> </java>
3 楼
bd7lx
2006-11-03
是的
本贴使用的通俗说法汉化,打算就一个已有的程序,翻译成中文的界面的过程
还在试验其它的方法
http://wiki.rubyonrails.org/rails/pages/InternationalizationComparison
有体验的可以讲解一番
http://www.trikr.net/
这个原创的网站就是用Globalize 作的双语支持
2 楼
cookoo
2006-11-03
gettext只解决文字的多语言版本问题,globalize还解决日期,货币,度量格式的国际化问题。
1 楼
bd7lx
2006-11-02
算是给
http://www.iteye.com/topic/29540
接上个小尾巴
还有相关的汉化思考慢慢来
欢迎讨论,汉化的技术
http://www.iteye.com/topic/29540
接上个小尾巴
还有相关的汉化思考慢慢来
欢迎讨论,汉化的技术
发表评论
-
ROR 展厅
2006-11-15 13:11 2600http://happycodr.com/ 向朋友介绍有哪些 ... -
想看看model的关联, 带视觉化的-需要点黑客的技术
2006-11-14 11:46 2628最早发帖在 http://www.railscn.com/ ... -
宣传与广告
2006-11-14 11:27 2268其实 大家都有权利评论此书, 但谁也都没有真正意义上全面的评 ... -
Re: 别打了-改PK(呼吁版主开办ROR战场,不然沾上Ruby和Rails的帖子就卷入征战)
2006-11-14 11:03 1813玩点技术PK比较 ruby对 某某 -不一定当真 ht ... -
向Ning学习, 作一个多子域的程序, Clone开始吧
2006-11-14 10:37 2411是个给用户复制应用的网站, 用户可以定义属于自己的程序 ... -
Hamster 舵手公开招募
2006-11-15 11:38 95Palabre | Flash XML multiuse ... -
可视化你的Rails schema
2006-11-14 08:53 3918http://blog.zmok.net/articles/2 ... -
想起沉睡的Hamster, 心里有点凉
2006-11-13 17:37 3072http://www.railscn.com/viewto ... -
Re: 视觉化的思考:藏医学四部医典与唐卡的启示
2006-11-13 09:11 1607The Visual Display of Quantitat ... -
Java 留心! ROR来抢领地了(ROR camp 活动主题在何方)
2006-11-12 09:20 2085最近Ruby on Rails Camp 的主题说是Ru ... -
书评-松鼠中文
2006-11-10 17:26 1770http://radar.oreilly.com/archiv ... -
erlyweb 也上什么道 mvc -a component-oriented web 框架
2006-11-06 13:23 1727http://www.railscn.com/viewtopi ... -
ajax upload files
2006-11-06 11:20 90http://kpumuk.info/ruby-on-rail ... -
Dreamhost 流浪野猫之家
2006-11-06 11:15 1556[img]http://bd7lx.iteye.com/upl ... -
杰夫的下注------亚马孙和37信号公司全力打造互联网的超级ROR平台服务?
2006-11-04 15:17 4501http://www.businessweek.com/mag ... -
儿时的梦想-造自己的火车
2006-11-03 16:57 1744这篇自己造火车, 单轨 ... -
最佳实践系列之 Sidebars & Layouts in Ruby on Rails
2006-11-03 14:47 1321这也有BP 惊叹 http://web2withrubyo ... -
tips radrails
2006-11-03 17:07 57http://gotapi.com/ http://www. ... -
新手区, 也把Java和Ruby分隔开吧, 不然浅水区太乱了, 不方便阅读(分了已经分了)
2006-11-02 10:53 2650发了最新的回帖, 果然加速了灭顶的进程 http://www ... -
敏捷迁移
2006-11-03 10:04 1981看了白色星球后的感觉 ...
相关推荐
这个库提供了一个简单易用的gettext加载程序和分析器,使得在Laravel应用中实现i18n(国际化)变得更为便捷。 1. **gettext基础**: - Gettext是GNU项目开发的一个翻译工具,它允许开发者通过一种标准的方式来处理...
这里主要介绍两种关键工具:gettext和Poedit,它们在Django国际化过程中起着至关重要的作用。 **1. Gettext** Gettext是Unix/Linux系统下广泛使用的文本翻译工具,它可以帮助开发者将应用程序中的字符串提取出来,...
"GetText"是一个在IT行业中常见的术语,尤其在软件本地化和多语言支持领域。它主要涉及的是如何从软件中提取文本,以便进行翻译和其他语言处理工作。在提供的文件列表中,我们可以看到一系列与Delphi或类似RAD ...
`gettext`是一个在开源软件开发中广泛使用的工具集,主要用于多语言环境下的文本翻译。它提供了从源代码中提取可翻译字符串,管理翻译文件,以及最终将这些翻译整合回二进制可执行文件的功能。在Linux系统中,`...
DELPHI GETTEXT源代码是面向Delphi开发者的一个多语言支持解决方案。GETTEXT是一个广泛用于C和C++等编程语言的国际化(i18n)和本地化(l10n)工具,但同样可以被引入到Delphi项目中,以实现更灵活的多语言功能。在...
2. **README.gettext-runtime**:这是一个重要的文档,它提供了关于gettext-runtime库的详细信息,包括安装指南、使用方法、注意事项等。开发者应该首先阅读此文件来了解如何集成和使用这个库。 3. **include**:这...
`gettext-0.17.tar` 是一个包含 `gettext` 工具的...无论是开发开源项目还是商业软件,`gettext` 都是实现全球化战略的重要组成部分。通过理解并熟练运用 `gettext`,开发者可以构建更加友好且易于全球用户使用的软件。
然而,标题提到的“另类的国际化方式gettext”提供了一种不同的方法,特别是在处理多语言环境时,可能更为高效和灵活。 gettext是一个在开源世界广泛使用的工具,主要用于软件的本地化。它最初是为C和C++设计的,但...
`gettext-0.13.1.tar.gz` 是一个用于软件本地化的开源工具包,它在IT领域中扮演着至关重要的角色。这个压缩包包含了`gettext`...在IT行业中,`gettext`已经成为实现软件本地化的一种标准方法,被广泛应用在各种项目中。
`gettext`是一个广泛使用的工具集合,用于处理软件的国际化(i18n)和本地化(l10n)问题。这个"gettext-0.14.4-二进制版本"是`gettext`工具的一个特定发行版,适用于处理和管理多语言环境中的文本资源。在IT领域,...
本文将深入探讨“Avada”主题的汉化包及其使用方法。** Avada是WordPress平台上极其流行的一款多用途主题,以其丰富的自定义选项、响应式设计和优秀的用户体验而广受赞誉。然而,对于中文用户来说,英文版的主题...
**Angular.js与gettext的结合:前端本地化利器** 在现代Web开发中,前端应用程序往往需要支持多语言环境,以满足全球用户的使用需求。Angular.js,作为一款强大的前端框架,提供了丰富的功能来构建复杂的单页应用...
开发者可以通过简单的函数调用来标记需要翻译的文本,并通过`.po`文件进行翻译。 5. **.po文件支持**:`.po`(Portable Object)是GNU gettext标准的翻译文件格式,`gettext.js` 支持读取和写入这种文件,使得翻译...
gettext源码,安装glib过程中需要用到
`gettext-0.18.1.1.tar.zip` 是一个包含了 `gettext` 工具的源代码包,主要用于在Linux系统中进行多语言支持。`gettext` 是一个广泛使用的软件开发工具集,它提供了强大的国际化(i18n)和本地化(l10n)功能,使得...
`gettext-0.19.3.tar` 是一个包含了 `gettext` 工具集源代码的压缩文件。`gettext` 是一个广泛使用的开源工具,主要用于软件的国际化(i18n,Internationalization)和本地化(l10n,Localization)。这个版本号表示...
《GNU Gettext 0.22.1:国际化与本地化的重要工具》 在软件开发领域,尤其是在全球化的背景下,让软件能够适应不同语言和文化环境变得至关重要。GNU Gettext 是一个广泛使用的开源工具,它提供了强大的文本翻译功能...
在IT行业中,`gettext`是一个广泛使用的工具,用于软件的多语言化,即国际化(Internationalization)和本地化(Localization)。这个工具集主要是为Unix-like系统设计的,但也能在其他平台,包括Python的Django框架...
2. **汉化工具链**:可能包含用于翻译和本地化的工具,比如PoEdit,这是一款用于编辑gettext .po文件的工具,可以用于更新和维护ROS的汉化字符串。 3. **Web后台**:ROS全汉化模板可能会提供一个汉化的Web界面,...