为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

收到一只叮咚 2019-02-16 03:40:48
有点小纠结, 客户端的国际化,如果在服务器端实现,那么客户端就不用管任何事情了,所有的调用接口就行了,当有需要改一些提示语的时候,直接改后台就行了,不用让客户端再去升级,当时这样的话,后台压力就很大,文案这种东西老是会修改的,后台会很崩溃。 如果放在客户端实现国际化,服务器只用给对应的错误码,客户端根据错误码翻译成对应的提示语,这样后台就不用经常去改了,但是如果要改提示语,客户端又得去升级,真是纠结啊。~ 有哪些大神,支支招~~~
查看完整描述

6 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

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

查看完整回答
反对 回复 2019-03-01
?
翻阅古今

TA贡献1780条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-03-01
?
UYOU

TA贡献1878条经验 获得超4个赞

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

不常改的东西 : 写死

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

查看完整回答
反对 回复 2019-03-01
?
慕标5832272

TA贡献1966条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-01
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-01
  • 6 回答
  • 0 关注
  • 757 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信