V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
anonnymous
V2EX  ›  问与答

多域名、多语言 网站的解决方案是什么?

  •  
  •   anonnymous · 2019-03-12 09:18:02 +08:00 · 2422 次点击
    这是一个创建于 2083 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们团队运营了一个中文版设计师社区,类似站酷网( https://www.zcool.com.cn/ ),访客绝大多数来自国内,日均产生帖子 300 个、新用户 50 人。网站采用常见的 MVC 框架--CodeIgnitor

    假设中文版域名是 Wesbite.cn ,现在我们想开通一个英文版的网站、面向海外用户,拟使用的域名为 Website.com ,且要求这个站是英文的,两个站的内容相同、语言不同。请问在数据库层面、前端层面,有没有合理的解决方案?

    1. 最初想到在 Wesbite.cn 的 header 上,放置一个 Google Translate 按钮,如果海外用户单击,会全站翻译成英文。但是不太喜欢多余的这一步,又考虑的如果老外第一眼看到全是中文的 Wesbite.cn ,不容易发现翻译按钮。舍弃这个方案。

    2.有什么办法可以同步翻译部分数据库字段?比如一个表中有 20 个字段,只把 title, content, 的内容翻译成 title_english, content_english, 这样在英文版 Website.com 的代码中,调用 _english 的数据字段就可以了。这个可行吗?
    5 条回复    2019-03-12 13:19:01 +08:00
    xfcy
        1
    xfcy  
       2019-03-12 09:31:21 +08:00 via Android
    抛砖引玉下_(:з」∠)_
    1. ci 框架自带 i18n 功能。对于网站的非内容性文字,可以预先写好语言包,然后根据用户访问的域名来加载对应语言包;
    2. 内容性文字可以有两种做法:对翻译准确度要求不太高的可以在添加数据入库前,调用下翻译 api,存一份其他语言的数据;如果准确度要求高,那就人工录入其他语言的数据。后面的操作也就是根据用户访问的域名去取数据了。
    v2epS
        2
    v2epS  
       2019-03-12 09:31:34 +08:00
    1 判断 ip 进行跳转,前端使用语言包替换界面语言
    2 内容不进行翻译,靠语言分区就好了,什么语言的发在什么区(翻译不切实际)
    anonnymous
        3
    anonnymous  
    OP
       2019-03-12 12:10:42 +08:00
    @v2epS
    暂时不采用判断 ip 跳转的方法。因为海外宣传直接就采用 Website.com 这个域名,不推广 Website.cn 所以海外用户一般不会知道.cn 这个站。不过也可以预留一下,万一真的是海外用户访问.cn可以跳到.com


    @xfcy
    1 CI 的非内容文字比较好办。语言包也很容易。
    2 这个方法不错。在写入数据库前翻译一份。不过不知道这样操作,会不会延迟反馈和加载内容的时间。
    xfcy
        4
    xfcy  
       2019-03-12 13:13:26 +08:00
    @anonnymous #3 同步操作怕阻塞的话,可以丢队列做异步操作啊~~
    DreamCMS
        5
    DreamCMS  
       2019-03-12 13:19:01 +08:00
    2 个前端公用一个后端。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1158 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:36 · PVG 02:36 · LAX 10:36 · JFK 13:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.