怎么做才是最佳多语言方案?

目前有一个需要,网站要能中英泰三语显示,我有两个问题:
1、网站上的常用文字,怎么才能靠lang文件夹里的文件自由切换,或者有什么别的方法?
2、网站里用户发布的内容也是三语的,用翻译接口吗?(这个问题好像是废话,但是万一大家有不一样的想法呢?)

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 24

难道没有大佬告诉我吗

3年前 评论
panda-sir

我之前倒是做过中英双文的 其实都会出现问题 比如常用的你可以用lang来切换 但用户发布的信息 如果你调翻译api就会有准确的的问题 :joy: 让用户录入三种语言就又显得麻烦 我觉得可以问问你们产品经理 怎么取舍

3年前 评论
wongvio (楼主) 3年前
panda-sir (作者) 3年前
ly560020

输入的内容不需要做多语言吧,facebook twitter那些 用户的内容都没做多语言

3年前 评论
wongvio (楼主) 3年前
Epona 3年前

用户输入内容是固定的吧,输什么语言就是什么语言。只是系统的显示内容,或者提示啦需要跟着语言包切换

3年前 评论
今之人兮

1.数据库保存内容的时候使用json,然后把不同语言保存在这个属性中,然后根据网站当前语言取出使用 2.数据库保存lang字段,通过lang字段来保存不同语言,然后不同语言的网站调用lang的对应语言属性 3.翻译

3年前 评论
wongvio (楼主) 3年前
wongvio (楼主) 3年前
今之人兮 (作者) 3年前
命中水

第一个问题,可以由前后端约定好语言类型。比如用户在前台把语言从中文切换成了en,传递参数给你的时候,middleware设置语言格式为en,然后所有的公用语言包方法__()lang()都会自动获取对应文件夹下的语言包

第二个问题,只能后端定义三个字段保存了。

3年前 评论

我最近刚接了私单,就是中英文切换,我就是用lang做的,动态的数据我直接在数据库设计上来了一个type,前端是中文的,显示出中文文章(这是经过客户同意的解决方案,客户要求翻译准确,所以API翻译这个就用不上了。) :see_no_evil: :see_no_evil: :see_no_evil:

3年前 评论
jcc123

这个插件借鉴下octobercms-translate

3年前 评论
wongvio (楼主) 3年前

多语言方案

建议可以采用数据库表分开的形式搞 ch_ en_ 这种, 毕竟每个语言不相同的数据还是多的,根据 域名判断 判断使用哪个表前缀即可,数据就可以在 共有控制器 进行数据读取方向的控制,非数据库语言也可以根据表前缀的 en_ 标识把语言包分开配置。
繁体的话可以使用 chinese.js 插件进行辅助。

3年前 评论
jcc123

@wongvio

file

插件放进去,就行了。当然之前你需要做的几件事

之后你可以用这个框架实现

或者参考框架的实现原理自己实现

3年前 评论
wongvio (楼主) 3年前
jcc123 (作者) 3年前

想了解一下前后端分离的话,api里面的多语言应该如果实现呢,每个接口都带一个language参数来判断是什么语言吗?

3年前 评论

@Taurus 我目前的做法是这样,每个请求都在请求头上的 Accept-Language 设置语言标识,中间件判断语言标识切换语言,目前为止没出现什么问题:joy:

3年前 评论
Taurus 2年前

也遇到同样的需求了。用了ajax结合翻译接口尝试翻译动态文章内容。会略有延迟,感觉还能接受。 实现方案可以参见 github

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!