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

2019-03-12 09:18:02 +08:00
 anonnymous
我们团队运营了一个中文版设计师社区,类似站酷网( 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 的数据字段就可以了。这个可行吗?
2452 次点击
所在节点    问与答
5 条回复
xfcy
2019-03-12 09:31:21 +08:00
抛砖引玉下_(:з」∠)_
1. ci 框架自带 i18n 功能。对于网站的非内容性文字,可以预先写好语言包,然后根据用户访问的域名来加载对应语言包;
2. 内容性文字可以有两种做法:对翻译准确度要求不太高的可以在添加数据入库前,调用下翻译 api,存一份其他语言的数据;如果准确度要求高,那就人工录入其他语言的数据。后面的操作也就是根据用户访问的域名去取数据了。
v2epS
2019-03-12 09:31:34 +08:00
1 判断 ip 进行跳转,前端使用语言包替换界面语言
2 内容不进行翻译,靠语言分区就好了,什么语言的发在什么区(翻译不切实际)
anonnymous
2019-03-12 12:10:42 +08:00
@v2epS
暂时不采用判断 ip 跳转的方法。因为海外宣传直接就采用 Website.com 这个域名,不推广 Website.cn 所以海外用户一般不会知道.cn 这个站。不过也可以预留一下,万一真的是海外用户访问.cn可以跳到.com


@xfcy
1 CI 的非内容文字比较好办。语言包也很容易。
2 这个方法不错。在写入数据库前翻译一份。不过不知道这样操作,会不会延迟反馈和加载内容的时间。
xfcy
2019-03-12 13:13:26 +08:00
@anonnymous #3 同步操作怕阻塞的话,可以丢队列做异步操作啊~~
DreamCMS
2019-03-12 13:19:01 +08:00
2 个前端公用一个后端。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/543545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX