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

CMS 多语言 怎么设计呢?

  •  
  •   JasonTsang · 2020-07-05 01:34:17 +08:00 · 3084 次点击
    这是一个创建于 1631 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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