文档章节

使用Rythm插件轻松实现JFinal应用的国际化

开源老码农
 开源老码农
发布于 2013/06/05 06:15
字数 368
阅读 2.6K
收藏 30

刚看了@eyelee同学的JFinal 国际化的简单实现的文章,我打算分享一下自己为@紫电清霜JFinal-BBS示例应用添加Rythm模版引擎和国际化功能展示的经验。

在开始之前,大家可以先通过点击这个视频看看效果。

下面是实现步骤:

  1. 下载JFinal Rythm插件。解包后将lib中的jar文件加入到你的JFinal应用项目中

  2. 配置JFinal Rythm插件:

private Properties conf = null;

public void configConstant(Constants me) {
    this.conf = loadPropertyFile("path/to/properties/");
} 

 public void configPlugin(Plugins me) {
    ...
    me.add(new RythmPlugin(conf));
} 
  1. 在你的配置文件中加入以下配置:
# 设置模版根目录到 WEB-INF/rythm
rythm.home.template=../rythm

# 支持国际化
rythm.i18n.enabled=true
  1. 创建你的资源文件:
messages_zh_CN.properties
messages_en_US.properties

并在其中分别加入所需内容,例如:

layout.home=首页 #messages.zh_CN.properties
layout.home=Home #messages.en_US.properties
  1. 在模版中使用国际化:
<a href="/">@i18n("layout.home")</a>

好了,基本上就是这些了。

综上所述,在JFinal/Rythm的开发环境下,国际化主要工作在messages文件上面,完成之后你的国际化通过Rythm引擎内置指令@i18n()来完成。值得一提的是这个国际化机制是比较智能的。根据用户浏览器的语言设置,系统会自动加载所需资源,不需要开发人员在代码中做任何事情。

希望大家能喜欢[smile] 如有反馈可以@greenlaw110。谢谢!

© 著作权归作者所有

开源老码农

开源老码农

粉丝 354
博文 56
码字总数 65006
作品 4
其它
架构师
私信 提问
加载中

评论(13)

十月的星空
十月的星空
OK .我去看看
开源老码农
开源老码农 博主
Properties实现了Map,又便于从文件中加载配置数据,用在这里很合适啊。
十月的星空
十月的星空
me.add(new RythmPlugin(conf)); 源码中conf类型为map,但仁兄使用的是Properties,好奇怪啊
开源老码农
开源老码农 博主
嗯,谢谢报告错误,估计是因为版本问题吧。我这两天会看看。如果你有具体的错误重现步骤,欢迎到https://github.com/greenlaw110/jfinal-rythm/issues上提错误报告
c
cjane
报错太多,,启动很难25
开源老码农
开源老码农 博主
JFinal 可以参考一下 https://github.com/playframework/play/blob/master/framework/src/play/i18n/Lang.java。现在的主要问题是框架不提供解析http header和参数来获得当前请求Locale信息的逻辑。JFinal-Rythm使用了https://github.com/greenlaw110/jfinal-rythm/blob/master/src/main/java/org/rythmengine/jfinal/LocaleManager.java来做这个工作,LocaleManager是作为Interceptor实现的,并且在RythmPlugin启动的时候自动注册。LocaleManager的工作完全可以由框架自己来实现,这样在所有的模版中都可以获得当前请求的Locale信息了。
JFinal
JFinal
JFinal 一直未在国际上花费多大功夫,可能这一块的设计不是很好,还请大家多给些建议,先顶起来 :)
紫电清霜
紫电清霜
@罗格林 好的。嘿嘿
开源老码农
开源老码农 博主
@紫电清霜 不好意思啊,我是今天早上才发现资源文件没有加进去。重新提交了pull请求。麻烦你再上去merge一把
紫电清霜
紫电清霜
我已经及时更新了,接受了合并请求。^O^
JFinal Rythm插件开发完成

大家好, 我开发了一个JFinal的rythm插件,可以让JFinal应用很容已使用Rythm模版引擎。使用方法和代码都在: https://github.com/greenlaw110/jfinal-rythm 因为JFinal的jar不在maven中央苦衷...

罗格林
2013/06/03
454
9
JFinal-BBS已经加入Rythm的支持

JFinal-BBS现在已经加入了Rythm模版引擎的支持。这里是一个运用了rythm的国际化特性的示例视频: http://www.screenr.com/T7NH jfinal-rythm插件的使用方法和代码可以在这里找到:http://gi...

罗格林
2013/06/03
600
2
JFinal如何使用freemarker插件做国际化?

@JFinal 你好,想跟你请教个问题:JFinal如何使用freemarker插件做国际化?以前是使用Spring,在xml配置一下加载一个资源文件就可以使用了(加载一个spring.ftl)。通过session实现国际化。 ...

bing_chuan
2013/04/07
527
0
【JFinal国际化】如何实现国际化?

JFinal提倡的是不采用冗余的插件,而且JFinal本身就提供国际化的相关类,但是如何使用框架本身的国际化方法呢? 1.8版本的手册中没有相关的说明,请教@JFinal

00oo
2014/06/10
1.6K
2
JFinal 国际化 简单实现 beetl

JFinal自身带有国际化类com.jfinal.i18n.I18N 文档里没有实现的方法,自己实现了一下,在这里分享给大家,哪里有改进的地方请@eyelee 1、编写properties资源文件 yourfilenamezhCN.propertie...

leon_rock
2013/06/05
3.7K
12

没有更多内容

加载失败,请刷新页面

加载更多

Spring基础

主要用于service层; 轻量级java开发框架; 各层 web层:struts,spring-MVC service层:spring dao层:hibernate,mybatis , jdbcTemplate --> spring-data Spring核心:控制反转IOC 切面编...

七宝1
19分钟前
19
0
解决overflow+border-radius+transform圆角问题

网上还有其他版本,但是对我来说都不好使,下面是我在Chrome上的代码。overflow:hidden依然是不能正常使用,换成unset就可以,读者如果有更好的解决方案,请留言,谢谢。 <figure> <img...

hi懒喵
24分钟前
39
0
《C语言》—— 数组

书籍使我变成了一个幸福的人,使我的生活变成轻松而舒适的诗。——高尔基 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 点关注,不迷路!...

龙跃十二
37分钟前
60
0
Java小案例: 1000以内的水仙花数

要求在控制台分别展示1000以内的水仙花数。 如下:↓ 水仙花数规则: 水仙花数至少是一个3位数 每位数字的立方数的累加和,正好等于该数字本身。 例如:153就是一个水仙花数。每位数字分别...

漫路h
昨天
66
0
centos 防火墙端口设置

查看开放的端口号 firewall-cmd --lists-all 设置开放的端口号 firewall-cmd --add-service=http --permanent 1. //--permanent表示永久生效,不加这个参数的话只会针对本次执行完命令生效,重...

ACE_LCX
昨天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部