【问题标题】:WebForms Localization and Resource Files Practical ImplementationWebForms本地化和资源文件实战实现
【发布时间】:2014-06-21 11:46:50
【问题描述】:

我目前正在考虑本地化一个用 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

如您所见,我会在资源键前面加上页面名称和文本描述。对于子目录中的文件,我只需在页面名称前加上目录名称(即用户默认注销)。

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

我想就其他人实际做了什么以及这是否是一个实用的想法获得一些反馈。

【问题讨论】:

    标签: c# asp.net webforms localization resx


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-09-21
      • 2015-12-19
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多