猿问

国际化究竟是在客户端还是在服务器实现

有点小纠结,

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

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

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

收到一只叮咚
浏览 758回答 6
6回答

慕码人2483693

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

翻阅古今

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

UYOU

常改的东西 : 客户端检测系统语言发送Accept-Language,服务器端根据客户端发送的Accept-Language返回错误信息文本,要注意编码问题 不常改的东西 : 写死 一般来说错误信息什么的不常改...如果是更复杂的,很多都是Webview吧?例如各种音乐客户端那种,如果是可以离线使用的应用,可以考虑定期更新语言文件的方式,也没多大,不然断网了...

慕标5832272

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

繁花不似锦

如果是客户端软件,那么就是在客户端加载相应的语言包,如果是做的web 那么应该在 服务器端加载语言包
随时随地看视频慕课网APP

相关分类

Java
我要回答