gpt4 book ai didi

c# - WebForms 本地化和资源文件实际实现

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:32 24 4
gpt4 key购买 nike

我目前正在考虑本地化一个用 C#.NET 4.5.1 编写的 ASP.NET 网站。现在我知道了本地资源文件和全局资源文件,但是我想更清楚地了解人们是如何做的,以使其更实用,因为我发现创建一个或多个本地资源并不是特别好每个网页的文件。

例如,站点有 100 多个 .aspx 网页。对于我需要支持的每种语言,我都需要创建一个单独的 .resx 文件。所以我的主页支持英语、法语和德语看起来像这样:

default.aspx.resx

default.aspx.fr.resx

default.aspx.de.resx

生成所有这些文件将是一项艰巨的任务。我正在考虑的是为什么我不能只对我的所有页面使用全局资源文件?如果我用页面名称和文本描述适本地为每个资源添加前缀,那么管理页面本地化维护的方法肯定会稍微简单一些。

例如,我的英语全局资源文件将包含:

Default-TitleText - My Web Page Title

Default-BodyText - This is some example text for the body of my home page.

Login-TitleText - Enter your login details:

Login-UsernameText - Username

Login-PasswordText - Password

Login-SubmitButton - Login

User-Default-TitleText - Welcome to your personal page.

User-Default-Username - Hello {0}

User-Default-Logout - Click here to logout

如您所见,我会在资源键前加上页面名称和文本描述。对于子目录中的文件,我只是在页面名称前加上目录名称(即 User-Default-Logout)。

对我来说,这是一个更简单的解决方案。是的,文件会变得很大,但所有内容都位于一个地方。

我想就其他人的实际做法以及这是否可行的想法获得一些反馈。

最佳答案

以及表单上不同元素的本地化。如果您使它们可本地化,您将无法将此信息存储在全局资源文件中。

.NET 具有继承文化支持,为什么不利用它。您只需使用适当的命名约定在资源文件中创建新的语言翻译,当用户文化发生变化时,他们就会选择适当的资源。否则您将不得不手动管理它,发生这种开销有什么意义?此外,资源被编译到附属程序集中,这意味着添加新的区域性可能意味着应用程序重新启动而不是应用程序重新编译(如果资源是在外部编辑的并且无需修复映射)。

此外,我敢猜测大多数工具都将依赖于这些约定。我最近使用了一个名为 Babylon.NET 的工具(这不是一个插件),并与一个德国交易商合作开发了一个最初是英文的应用程序。他能够编写适当的翻译,将它们返回给我们,我们可以根据需要发布更改。默认结构是这个工具工作的必要条件,我相信其他人也有这种依赖性。结果是,如果您采用定制方式,您可能会限制您的选择。

关于c# - WebForms 本地化和资源文件实际实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24341275/

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