请教一下各位大佬 这种国际化多语言版本怎么设计的喃?
请求的时候 根据字段返回不同语言,大概需要翻译成30多种语言,这种怎么设计数据库,有没有比较好的方案?
传lang=zh
返回如下:
{
"status": "success",
"code": 200,
"data": [
{
"id": 1,
"name": "全球",
"logo": null
},
{
"id": 2,
"name": "欧洲",
"logo": null
}
],
"error": null
}
传:lang=en
返回如下:
{
"status": "success",
"code": 200,
"data": [
{
"id": 1,
"name": "World",
"logo": null
},
{
"id": 2,
"name": "Europe",
"logo": null
}
],
"error": null
}
两种方案:一种是把字段所有翻译存储为 JSON,根据当前语言输出不同的翻译。第二种就是将每种语言设计一个字段。
看下这个包 github.com/spatie/laravel-translat...
语言很少的话每种语言单独一个字段
语言很多的话按行存储
还有一种是用json格式存储
个人推荐第二种
建议把 name 存一个字段,多语言名称以 json 方式存一个字段,例如 name 和 names。
这种方式以最简单的方式实现对多语言名称的展示以及兼容如果某个语言不存在的情况。
laravel 有多语言版本
之前看到论坛有个公司类似宣传的博客:BeikeShop
系统文件 就是用 laravel 的多语言那个功能
数据库的话,可以下载看看他的设计思路