V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JasonTsang
V2EX  ›  PHP

CMS 多语言 怎么设计呢?

  •  
  •   JasonTsang · 2020 年 7 月 5 日 · 3686 次点击
    这是一个创建于 2036 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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