• 技术文章 >后端开发 >php教程

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

    2016-08-30 09:36:42原创570
    除了使用多套数据表方案,还有其他方案吗?要做到 所有从数据库读出来的数据都实现多语言的。

    回复内容:

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

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php yii2
    上一篇:php,CI框架中如何使用hook设置路由? 下一篇:ngnix +php fastcgi 超时了

    相关文章推荐

    • PHP GUI趣味实现一个贪吃蛇• php中simplexml_load_string使用实例分享_php实例• php正则有关问题eregi_replace("<(iframe|script)[^>]+>" "")这样能替换恶意代码吗• 大侠一个Smarty的有关问题• sql中执行没有关问题php中执行出错~

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网