java - 国际化究竟是在客户端还是在服务器实现
天蓬老师
天蓬老师 2017-04-17 15:35:19
[Java讨论组]

有点小纠结,

客户端的国际化,如果在服务器端实现,那么客户端就不用管任何事情了,所有的调用接口就行了,当有需要改一些提示语的时候,直接改后台就行了,不用让客户端再去升级,当时这样的话,后台压力就很大,文案这种东西老是会修改的,后台会很崩溃。

如果放在客户端实现国际化,服务器只用给对应的错误码,客户端根据错误码翻译成对应的提示语,这样后台就不用经常去改了,但是如果要改提示语,客户端又得去升级,真是纠结啊。~

有哪些大神,支支招~~~

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
PHP中文网

config.ini或者config.xml 我看他们都是这么干的,更新资源包就可以了

阿神

常改的东西 : 客户端检测系统语言发送Accept-Language,服务器端根据客户端发送的Accept-Language返回错误信息文本,要注意编码问题

不常改的东西 : 写死

一般来说错误信息什么的不常改...如果是更复杂的,很多都是Webview吧?例如各种音乐客户端那种,如果是可以离线使用的应用,可以考虑定期更新语言文件的方式,也没多大,不然断网了...

阿神

1)资源的变更内容保存到服务器端
2)客户端只根据客户端的选择显示对应的语言
3)客户端最下化下载相应地语言资源包到本地,显示内容
4)在需要升级的时候发送通知给客户端,客户端下载对应的资源包到本地再解析,没有必要升级整个客户端
5)功能性的变更需要升级客户端那就另论了

迷茫

建议在服务器端都做缓存,后台压力就减少了。

PHP中文网

我们是服务端和客户端都做。
服务端的好理解,就是读取文件,输出到缓存里面。
其实客户端也类似,只不过需要服务端配合,我们是客户端有一个js文件请求 /xxx/i18n.js 这个文件是服务端输出的 map 数据结构,在页面上或者 js 代码中配合一些类库(比如 Handlebars helper, I18nJs)来输出语言信息。

迷茫

如果是客户端软件,那么就是在客户端加载相应的语言包,如果是做的web 那么应该在 服务器端加载语言包

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号