gpt4 book ai didi

.net - 如何国际化来自数据库的数据?

转载 作者:行者123 更新时间:2023-12-01 04:47:22 40 4
gpt4 key购买 nike

我有一个依赖资源文件进行 UI 国际化的 ASP.NET MVC 网站。
数据库中的一些数据将由用户生成(以他们的语言),但一些数据是由我生成的,用户不应该编辑它。对于该系统数据,我只需要在数据库中存储一个“ token ”,并在以用户的语言将其显示给用户时将其翻译。

我真的不喜欢在数据库中进行翻译并将每个文本列与翻译表连接起来的想法。

我有什么替代方案来实现这一目标?
可能是数据库和资源的混合体?

编辑:语言的数量是不确定的,目前我们正在使用 3 种语言,但我希望我们可能需要更多其他语言。

编辑 2:这主要是针对Catalog 数据...一些Catalog 的系统和用户数据在同一个表中。系统数据需要翻译,因为用户不可编辑。

最佳答案

您实际上可以只将标识符存储在数据库中,并在运行时将它们解析为来自资源文件(常规 *.resx)的语言内容。
尽管在这种情况下,将其存储在数据库中完全没有意义(仅使用资源文件就足够了)。当然,维护这将是一场噩梦(您需要将数据库的内容与资源文件实际同步)。

除此之外,您实际上可以创建自己的资源管理器来从数据库中读取内容,并将翻译与标识符一起放置 - 在这种情况下,您的主键需要在资源标识符和语言上定义(我认为它是称为复合键,不是吗?):

---------------------------------------------------------
| Id | Locale | Translation |
---------------------------------------------------------
| 1 | en-US | Something happened on the way to heaven |
| 1 | pl | Coś się stało na drodze do nieba |
---------------------------------------------------------

但这需要修改数据库模式......

关于.net - 如何国际化来自数据库的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7628656/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com