c# - 这两种在 aspx/ascx 文件中本地化字符串的方法之间的区别?

标签 c# localization resharper-5.0

当我第一次开始对网站进行本地化时,我是这样进行本地化的:

<%= Resources.ResourceFile.ResourceName %>

它似乎工作得很好。然而,ReSharper 5.0 Beta 是这样做的:

<asp:Localize Text="<%$ Resources: ResourceFile, ResourceName %>" runat="server">
  Value
</asp:Localize>

完成方式重要吗?

另外,为什么 ReSharper 将原始文本保留在本地化控件中?我认为如果资源文件中的值是空的,它可以显示“默认”文本。情况似乎并非如此。删除它并自行关闭本地化控件是否安全?

最佳答案

嗯,您不能在 asp 服务器控件上使用 <%= %> 服务器标记。

所以

<asp:Localize Text="<%= Resources.ResourceFile.ResourceName %>" runat="server">
  Value
</asp:Localize>

会导致编译错误。 不幸的是,您不能将动态数据传递给服务器控件属性,除非它是数据绑定(bind)的,您可以在其中应用 <%# %>服务器标签,例如:

<asp:Repeater runat="server">
...
  <asp:Localize Text="<%# Resources.ResourceFile.ResourceName %>" runat="server">
   Value
  </asp:Localize>
...
</asp:Repeater>

您始终可以将它移至代码隐藏,但这很糟糕。

<%$ %>但是,如果您准备进入维护 hell ,“东西”会起作用(当然,除非我们谈论的是一个 3 页的应用程序...)

我个人使用 <%= %>而且我从不使用 re-sharper 来全局化/本地化我的应用程序。 另外,我从未使用过 <asp:Localize />服务器控制,我没有遇到任何问题...

关于c# - 这两种在 aspx/ascx 文件中本地化字符串的方法之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2883163/

相关文章:

android - 如何检测android设备的绝对旋转

BottomNavigationBar 项目的 Flutter 本地化

python - Django 标签和翻译 - 模型设计

visual-studio-2010 - 如何暂停 ReSharper 5.0 并恢复 Visual Studio 2010 中的默认按键设置?

c# - 如何查找仅由测试调用的代码

c# - 如何使用 Xamarin.Forms 在 iOS 中创建带圆角的进度条

c# - 在 C# 中解析 json w 变量键值对

c# - C# 中 pred 和 succ 的等价物是什么?

c# - 如何根据 'Bikes'的Id获取 'Station'的列表?

C# .Net 4.0 mscorlib 包含 ReadOnlyDictionary?