管理后台国际化怎么做?

Xsank 发布于 2015/05/11 18:56
阅读 717
收藏 1

公司有个后端管理工程,历史只为中国语言做了处理,现在需要国际化,现在有以下问题比较难处理:

1.后台中写了很多辅助类,类的tostring方法被重写了,里面有中文并且是被servlet调用返回的,这种如何根据不同的用户显示不同的语言?

2.还有一些html页,里面也有很多中文,如何国际化?

PS:不能根据getLocale来处理,必须让用户选择


加载中
0
带我去火星
带我去火星
可以自动化的,先做个工具,把源代码中所有的包含中文的地方抽取出来,然后做翻译。翻译完成之后,设计一种机制,根据用户的选择,返回指定语言的字符串,再次利用工具,把这种转换的代码重新自动插入到原先是中文的地方。当然不一定能完全处理所有的情况,不过应该能处理掉90%以上的问题了。剩下的,就翻译好自己动手改,具体问题具体分析。我的思路,不一定可行,仅供参考。
带我去火星
带我去火星
不用获取user信息的,额外建立一个全局的locale,能获取user,你就用user的locale覆盖,不能获取就用全局的,相当于默认值一样
Xsank
Xsank
回复 @带我去火星 : 目前是语言必须让用户来控制,所以locale作为user的属性,设定到了用户信息里,但是部分场景不好获取user
带我去火星
带我去火星
回复 @Xsank : 有些类似setLocale,但又不同,字符编码应该是不会变的
带我去火星
带我去火星
回复 @Xsank : 不一定需要用户的信息,你可以做成一个动态的环境变量,需要的时候获取和修改
Xsank
Xsank
如果让用户选择,那么肯定一个用户要存一个语言类型,现在代码中有很多辅助类里面有返回的中文,但是获取不到用户信息
0
产品哥
产品哥
国际化这个东西,真正考验架构的抽象性时候到了。架构很重要。 当然这个要评估你们系统的国际化需求、国际化业务、界面、差异性、国际化扩展性、国际化交互、数据区分等等...各种细节来决定的。 如果仅仅只是翻译对应一下UI的话,MVVM模式很适合你,后台几乎不需要变动。
0
IRayChen
IRayChen
可以把所有的语句提取出来,用XML配置,程序中全部使用通用的名称,然后根据不同的语言场景选择使用不同的语言XML文件即可。
Xsank
Xsank
目前就是这么处理的,定义统一的key,然后根据user设定的lang属性选择语言,但是jsp和servlet还好处理写,其他辅助类中没法获取user的地方就难处理了,暂且使用threadlocal来搞
返回顶部
顶部