a_main Asked:2020-12-01 03:08:22 +0000 UTC2020-12-01 03:08:22 +0000 UTC 2020-12-01 03:08:22 +0000 UTC 如何为多语言网站设计数据库? 772 文章必须以三种语言在数据库中。 如何近似设计一个数据库,是否需要将支持的语言列表存储在单独的表中,是否需要使用插件(如果需要,是哪一个?)还是使用 Laravel 的功能? php 2 个回答 Voted Best Answer Alexxosipov 2020-12-01T06:37:47Z2020-12-01T06:37:47Z 这个问题很笼统,因为我们不知道将来是否需要考虑添加其他语言等。 Laravel 提供开箱即用的静态数据本地化,因此所有静态块都可以使用它来实现。 至于动态数据,我建议文章的结构如下: 语言表 文章表(这里是所有不需要翻译的信息,即 id、created_at、rating 等。 内容表。在此处添加任何列。例如:名称、描述、内容。授予编辑以不同语言撰写文章的权限。在这种情况下,当然,该表具有字段article_id和language_id. Акмаль Муминов 2020-12-02T20:45:17Z2020-12-02T20:45:17Z 关于网站的本地化,我为自己找到了一个通用的解决方案。 语言表。(语) 域表。(域)(例如用于 api、front 和 payment) 我们正在编写一个服务,它为我们提供语言/地区列表,缓存所有这些,使缓存无效,等等。 我们在provider中写singleton来获取语言/locales的列表(我们使用服务) 我们从请求/标头(Locale)中编写用于按区域设置本地化的中间件 在 CRUD'e 或 Observer'e 中,我们规定了缓存失效和缓存的逻辑。 您可以尝试使用以下包,已经在其他项目中使用过,非常简单的实现。 在单独的表中 https://github.com/dimsav/laravel-translatable 在 json https://github.com/spatie/laravel-translatable
这个问题很笼统,因为我们不知道将来是否需要考虑添加其他语言等。
Laravel 提供开箱即用的静态数据本地化,因此所有静态块都可以使用它来实现。
至于动态数据,我建议文章的结构如下:
article_id和language_id.关于网站的本地化,我为自己找到了一个通用的解决方案。
在 CRUD'e 或 Observer'e 中,我们规定了缓存失效和缓存的逻辑。
您可以尝试使用以下包,已经在其他项目中使用过,非常简单的实现。
在单独的表中 https://github.com/dimsav/laravel-translatable
在 json https://github.com/spatie/laravel-translatable