显式本地化

时间:2012-09-19 18:50:47

标签: c# asp.net localization

我在我的网页中使用显式本地化,例如:

<asp:Literal ID="appTitle" runat="server" Text="<%$ Resources:TranslationResource, AppTitle %>"></asp:Literal></div>

如果AppTitle资源不存在,有没有办法避免“解析器错误”并显示空字符串或资源名称?

提前致谢。

1 个答案:

答案 0 :(得分:4)

如果密钥不存在,您可以使用GetGlobalResourceObject,它执行相同的操作但返回null,而不是抛出异常。

<div><%= GetGlobalResourceObject("TranslationResource", "AppTitle") %></div>

您可以使用null-coalescing运算符轻松添加回退值:

<div><%= GetGlobalResourceObject("TranslationResource", "AppTitle") ?? "No translation resource" %></div>

如果您需要以集中方式修改本地化提供程序的行为(无需修改页面中使用的语法),则可以覆盖resourceProviderFactoryType。将类型添加到web.config 全球化部分...

<globalization resourceProviderFactoryType="MyLocalizationProvider"/>

通过子类MyLocalizationProvider创建ResourceProviderFactory