gpt4 book ai didi

asp.net - ASP.Net Multi-Tenancy SaaS 应用程序中的本地化 (i18N)

转载 作者:行者123 更新时间:2023-12-03 17:58:51 25 4
gpt4 key购买 nike

问题场景:
在基于 SaaS 的应用程序中实现 ASP.Net 本地化。
额外的复杂性:租户应该能够编辑本地化的内容。因此,如果托管应用程序有 10 个租户,每个租户支持 5 种语言,我们最终可以得到 50 个翻译内容单元。
鉴于上述情况,请建议什么是理想的方法。
下面列出了过去使用的方法(用于我的其他应用程序)以及为什么它们现在不相关:
选项1:
ASP.Net 资源文件

问题:
每个可本地化资源(.aspx 页)仅创建一个语言文件。因此,不可能为每个租户翻译都有一个 Home.aspx.resx 文件。
虽然可以修改 resx 键以包含 TenantId (lblFirstName_44) 并存储在同一个 resx 文件中,但这将很难维护,我们最终可能会得到大文件。
选项 2:
在专用数据库表(标签、消息、菜单项)中存储多语言内容

问题:
这在过去很有效(在最终用户需要动态更新可本地化内容的情况下)。早期的解决方案严重依赖缓存数据,在 Multi-Tenancy 解决方案的情况下,数据需要每页(每个租户)进行大量缓存。缓存也可以按内容类型(标签、消息、菜单项)完成
另一种方法可能是实现自定义资源提供程序(通过在 .Net 的现有提供程序上构建)
选项 3:
FairlyLocal 等第三方开源解决方案

问题:
尽管实现起来非常简单,但它也有与 .resx 文件相同的缺点——不是为允许最终用户修改内容和维护同一文件的多个版本(租户方面)而设计的。
注意:如果找不到其他解决方案,我们可能会选择选项 2

最佳答案

我会选择第二个选项。特别是因为您的资源条目可能会被修改,所以 resex 文件不是您所说的选项。

.你可以很容易地找到一个好的资源提供者,比如westwind一个或编写自定义提供程序。

关于asp.net - ASP.Net Multi-Tenancy SaaS 应用程序中的本地化 (i18N),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6571481/

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