gpt4 book ai didi

c# - ASP.Net 本地化(卫星程序集与带有自定义 ResourceProvider 的数据库)

转载 作者:太空狗 更新时间:2023-10-29 19:44:32 26 4
gpt4 key购买 nike

我正在寻找最好的解决方案,以便在不部署/构建现有代码库的情况下轻松地将新语言添加到 asp.net 网站。

根据我的研究,您似乎可以将资源文件即时编译成卫星程序集,但我不确定如何让应用程序使用这些已生成的 DLL?

我看到的另一种选择是将翻译存储在数据库中,并编写自定义 ResourceProvider 以便可以使用内置本地化方法,同时抽象实际实现(在本例中为数据库)。

无论哪种方式,该站点的前端都是相同的(meta:resourcekey 用于控件等)。

但我正在努力决定哪种方法最容易维护。例如,发布一个新的 Satellite Assembly 会重新启动应用程序池还是一切都会顺利进行?

编辑

翻译将由第 3 方 API 提供,因此人工维护质量并不重要。由于收到的答案,我想我会添加这个。

最佳答案

有了 Asp.Net(目前),您不必自己编译,只需部署 resx 文件(到 App_LocalResources 或 App_GlobalResources 文件夹),Asp.Net 会负责将它们编译到 Satellite Assemblies 中。太棒了。

使用数据库方法,您将面临同步问题的风险:您如何知道给定的资源字符串是否已翻译?此外,纠正它们也不是很容易(对于翻译人员/本地化工程师)。无论如何你都需要准备“安装”脚本。如果这就是您要给翻译人员的东西,祝您好运。您将面临大量过度翻译,您将不得不更正它们(手动?)。

Resx 文件(简单的 XML)更容易验证(根据给定的 XSD,它要么是有效的 XML,要么不是)。此外,它是标准技术,您不需要自己实现任何东西。这就是为什么我会推荐它。


编辑

数据库驱动资源的另一个问题可能是字符编码。您需要创建自己的翻译工具包。我的经验是,结果可能有几种不同的编码。特别是,如果您想使用纯文本文件。另一方面,XML 文件的默认编码是 UTF-8...

关于c# - ASP.Net 本地化(卫星程序集与带有自定义 ResourceProvider 的数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941226/

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