文档章节

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

罗格林
 罗格林
发布于 2013/06/05 06:15
字数 368
阅读 2532
收藏 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。谢谢!

© 著作权归作者所有

共有 人打赏支持
罗格林

罗格林

粉丝 290
博文 43
码字总数 41912
作品 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
419
9
JFinal-BBS已经加入Rythm的支持

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

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

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

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

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

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

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

leon_rock
2013/06/05
0
12

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
1
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部