首页 > 讨论 YII2 开发多语言动态网站方案

讨论 YII2 开发多语言动态网站方案

除了使用多套数据表方案,还有其他方案吗?要做到 所有从数据库读出来的数据都实现多语言的。

访问了以下几篇关于,Yii国际化的方案文章

基于谷歌 翻译API :《Web应用程序本地化任何国家的谷歌翻译API》

基于百度防疫API:《百度翻译api处理I18N未命中的情况》

基于Yii2 国际化组件:《如何与Yii2程序:本地化与国际化》


太少见使用 多套数据表的方案了,一般还是用语言文件...数据库里面可以只存放key,然后自动转换为翻译关键字,如category表
category.id = 1, category.name = 'Demo', category.slug = demo, category.meta = 'It is demo'
对应的翻译文件
category_id_1_name = '演示'
category_id_1_meta = '这是一个演示'
如果需要的话可以自行开发语言文件的管理页面,不过一般用类似PO的编辑器就行了。
当然有些东西是不能这样处理的,比如文档,需要额外的语言字段,而不是新建表。如 article 表会包含 id, language, title, content等,在显示的时候自动根据语言过滤不同的文档列表出来就行了。

归纳一下就是 简单的翻译使用语言文件,复杂的数据添加语言字段,不同语言的内容按多条记录进行管理。

至于 “所有从数据库读出来的数据都实现多语言” ,这方案太累了,数据库压力也大,数据的维护量也大,而且缺少弹性。通常我们认为翻译是前端为了优化交互使用的方案,而不是数据库的工作。类似的问题还有货币转换、数字格式、日期格式,难道你都要靠数据库?新建个商品存3种不同格式的价格?想想都觉得累。

【热门文章】
【热门文章】