JasonTsang
V2EX  ›  PHP

CMS 多语言 怎么设计呢?

  •  
  •   JasonTsang · Jul 5, 2020 · 4299 views
    This topic created in 2314 days ago, the information mentioned may be changed or developed.

    除了页面版面一些文字内,数据库里的内容也想是多语言的,比如文章内容。哪就是说一篇文章 有多少个语言,就应该对应有多少个文章内容。

    这个业务逻辑应该怎么设计好呢?

    13 replies  •  2020-07-11 13:39:01 +08:00
    somalia
    somalia
    Jul 5, 2020
    1
    设计到什么程度了,一般分个表换个字段分个库都可行。
    AngryPanda
    AngryPanda
    Jul 5, 2020 via Android
    2
    这样的话,直接 copy 出多个站点好了。
    JasonTsang
    JasonTsang
    OP
    Jul 5, 2020
    3
    @AngryPanda 这样的设计太复杂了,哈哈哈
    JasonTsang
    JasonTsang
    OP
    Jul 5, 2020
    4
    @somalia 我试过 这个也不好。看了一下 所有的系统好像都是 一个语言包 ,但这并不附合要求。因为要文章也是多语言的。
    zsdroid
    zsdroid
    Jul 5, 2020
    5
    没看懂。。。
    你写了篇中文文章,然后选择韩日德语,就自动翻译出来???
    JasonTsang
    JasonTsang
    OP
    Jul 6, 2020 via iPhone
    6
    @zsdroid 不是自动翻译出来,是数据库中有一篇韩日德对应的文章。比如 公司简介,支持中英双语,那数据应该有两篇 中英的公司简介。
    xsseroot
    xsseroot
    Jul 6, 2020
    7
    可以参考下 dtcms 是怎么设计的
    ben1024
    ben1024
    Jul 6, 2020
    8
    两种
    1.水平复制主语言结构,粘贴成各种子语言
    2.挂靠在字段上,表进行语言关联
    JasonTsang
    JasonTsang
    OP
    Jul 9, 2020
    9
    @ben1024 嗯 应该第二种方案靠谱。
    JasonTsang
    JasonTsang
    OP
    Jul 9, 2020
    10
    @xsseroot 好的
    JasonTsang
    JasonTsang
    OP
    Jul 9, 2020
    11
    @ben1024 我自己想了一种 不知和你说的第二种方法 哪个更优。我的想法是这样的。
    现在 mysql 不是支持 json 搜索查询了吗?我想在文章表 分类 等表,都放一个扩展的字段 extend_data,这样其它语言的内容都可以保存到里面去。
    ben1024
    ben1024
    Jul 10, 2020
    12
    @JasonTsang
    MySQL 支持 JSON 的但不建议,使用起来不方便,存储也会压力比较麻烦
    简单就挂几个子表
    复杂就拆解语音模块(进行挂靠关联,放到搜索引擎 ES 一类中)
    JasonTsang
    JasonTsang
    OP
    Jul 11, 2020
    13
    @ben1024 嗯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1679 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:31 · PVG 01:31 · LAX 09:31 · JFK 12:31
    ♥ Do have faith in what you're doing.