【问题标题】:Localizing WebForms without excessively using meta:resourcekey在不过度使用 meta:resourcekey 的情况下本地化 WebForms
【发布时间】:2010-11-05 02:52:34
【问题描述】:

我刚接到一个需要本地化的项目。
我刚刚遇到了 meta:resourcekey 以及它是如何与本地资源文件结合使用的。

我的问题是:我必须这样做吗?
考虑一下 MSDN 上的这个例子:

<asp:Button ID="Button1" runat="server" Text="DefaultText" 
       meta:resourcekey="Button1" />

如果我是第一次阅读这篇文章(我是第一次),我会说“为什么要指定 Button1 两次?”
如果&lt;@ Page @&gt; 已经将Culture 设置为auto,并且有本地资源文件,则去查找每个控件的本地资源(如果有),而不必为页面上的每个控件重复提及。 我查看了一个我们已经拥有的页面,如果你问我,它看起来很混乱。

我在这里遗漏了什么吗?
或者这种方法已经过时了,有更好的方法吗? 感谢所有输入 (+/-)。
谢谢!

【问题讨论】:

  • 您可以在撰写本文时避免“指定两次”。然后您可以编写简单的脚本(即 Perl 脚本),将 meta:resourceKey 属性添加到每个标签;这也可以通过添加 resx 文件来外部化所需的文本。我不确定是否没有 Visual Studio 命令或扩展可以做到这一点。

标签: asp.net localization internationalization culture


【解决方案1】:

我同意在meta:resourcekey 属性中再次指定控件标识符似乎是多余的,但它的存在是有充分理由的。

假设您要维护一个本地化的应用程序,例如 42 种语言。假设其中一些语言的翻译外包给了 6 个不同的承包商。

现在假设您必须将按钮的IDButton1 更改为defaultButton。最好的方法是什么?

  • 更改ID 属性,保持meta:resourcekey 不变,然后继续前进,或者

  • 更改ID 属性,然后修改数十个资源文件以便他们使用新的ID,然后打电话给您的所有承包商,要求他们修改他们提供给您的资源文件?

【讨论】:

  • 我同意你的观点。我会接受的。
  • 感谢您的解释。但是,它没有解释为什么 meta:resourcekey 是本地化工作所必需的,而不是在未指定时默认为控件 ID。
  • @Medinoc,这是因为本地化是可选的。如果没有该属性,ASP.NET 根本不会尝试本地化元素。
猜你喜欢
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 2016-02-25
  • 2010-10-05
相关资源
最近更新 更多