c# - 显式本地化

标签 c# asp.net localization

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

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

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

提前致谢。

最佳答案

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

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

您可以使用空合并运算符轻松添加回退值:

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

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

<globalization resourceProviderFactoryType="MyLocalizationProvider"/>

并通过子类化 ResourceProviderFactory 创建 MyLocalizationProvider

关于c# - 显式本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12501020/

相关文章:

c# - 在 C# 中返回对象列表的最快方法是什么?

c# - signalR、IE10 和 fiddler 的奇怪行为

html - 从包装容器中流出的网格面板

c# - EntityFramework 查询操作、数据库提供程序包装、数据库表达式树

c# - 迁移到 .NET Core 6 后 Blazor PageTitle 标签不起作用

c# - 当条件在数据库中验证时,EF Core 3.0 在 LINQ 中进行条件排序

c# - 无需安装即可发布 winforms 应用程序

asp.net - 存储word文档

asp.net - .net 中的全局化和本地化有什么区别?

java - JSF 语言环境问题