关于国际化问题

关于国际化有个想法,不知道可行不可行。

1:首先打开网站通过request的header里面的locale参数获取默认的网站语言。

2:用户可以通过在网站首页选择语言版本,选择后通过_locale参数传递到controller层。

3:controller获取之后在放入到threadlocal中 传递到dao层,进行数据库多语言查询。

我没做过类似的,不知道这个思路是不是对的 ,请老大指教下。

评论区

JFinal

2017-12-12 16:54

思路大致方向对的,实现的时候直接用一下 jfinal 的 com.jfinal.i18n 包下面的实现,都是现成的,考虑了各种情况,locale 的切换、传参全部都现成的

mrbai2018

2017-12-12 17:35

看了你的源码,有一个问题,就是我怎么能获取到你i18n下获取到的locale。因为我要传递到Dao层。

mrbai2018

2017-12-12 18:00

还有个问题就是浏览器的语言和这个Locale我应该用哪个呢,还请赐教。

JFinal

2017-12-12 18:07

@mrbai2018 locale 用哪个取决于你希望用哪个,你也可以通过判断用户浏览器的 locale 来启用一个,启用的时候还要判断你的项目中有没有准备好这个 locale 下的国际化资源文件,如果没有准备好,就要用别的来代替

使用 I18n.use() 系列的方法就可以获取到一个 Res 对象,然后通过穿上 res 对象就可以很方便获取到你想要的数据了

热门反馈

扫码入社