应用中本地资源(文本、图片等)可以做相应的国际化,但从接口请求的数据资源在客户端如何做国际化?
一般这一点都是根据本地设备的语言作为API请求的参数,从Server端获取该参数代表的语言。。
由于简体和繁体并不是单纯转换文字就能用的(繁体和简体的用词,语义很多都不同,只能人工做i18n)
比如
chs - cht
硬盘 - 硬碟
内存 - 記憶體
这些并不能直接通过转换繁简体来完成,需要有一个繁简分歧词表
分歧词表参考 : 维基百科 - 繁简分歧词表
方案1:把分歧词汇表做好对应放在服务端,服务端资源在部署的时候进行自动繁简体转换,设备方获取语言,作为参数发送到服务端请求对应语言参数
chs = zh_cn
cht = zh_tw , zh_hk
请求区别:http://xxx.com/data.php?token=xxx&lan=chs&data=1
http://xxx.com/data.php?token=xxx&lan=cht&data=1
优点:
可以随时更新分歧词汇表
服务端性能强大
一次转换存入数据库终身使用
补充:
服务端数据库表chs和cht做两个,用来存储对应数据。
方案2:把分析表做好放在客户端内,直接请求数据,然后根据本机语言或者用户选择的语言做i18n处理。
优点:似乎相对服务端方案没有任何优点。。
update 2016-1-11 10:52:11
更新一个汉语言处理开源库,希望有所帮助
https://github.com/hankcs/HanLP