求助国际化该怎么做

求助大佬,我现在需要做一个同时给国内国外提供机械零部件数据服务的网站,网站里面会有零部件的技术参数文件,还有介绍说明,我后台维护数据的时候,是不是每有一种语言,就得加个对应的字段存储数据?我可能有七八种语言的国际化,请问有什么好的解决办法吗?

简单一点

需要国际化的字段,都增加对应的语言列。

id titlle title_lang_zh title_lang_en
1 默认标题 default title 默认标题

客户端查询的时候,获取到 Accept-Language Header,把客户端的语言信息拼接到 SQL 字段中去查询:

SELECT `id` title_lang_${locale} FROM ....

这种方式好处是简单,不好的地方就是扩展性不高。添加新的语言支持需要改数据库。

复杂一点

对于需要国际化的内容,专门创建一个独立的内容表。

id titlle_id
1 999
id lang content
999 zh 默认标题
999 en default title

检索的时候,根据客户端的语言环境,关联检索即可。这种方式可以动态的维护支持的语言。

最后

对于大部分,能让客户端去处理的国际化内容就让客户端去处理。例如对于异常信息的提示,服务器没有必要给出提示的文本信息,给出对应的异常代码即可,客户端根据自己的字典来进行翻译和显示。