欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-03 17:34:48
...
除了使用多套数据表方案,还有其他方案吗?要做到 所有从数据库读出来的数据都实现多语言的。

回复内容:

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

太少见使用 多套数据表的方案了,一般还是用语言文件...数据库里面可以只存放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种不同格式的价格?想想都觉得累。

相关标签: php yii2