使用资源文件本地化ASP.NET WebForm应用程序

时间:2018-12-11 20:40:51

标签: c# asp.net webforms localization resources

我有基于c#的ASP.NET WebForms应用程序。

我输入了文字

<input type="text" id="txtUsername" name="username" runat="server"
       placeholder="<%$ Resources:Resource, Username %>" />

和标签

<label for="Username"><%= Resources.Resource.Username%></label>

我还在 App_GlobalResources

下创建了2个资源文件 Resource.resx Resource.en-GB.resx

Resource.resx:

用户名:用户名

Resource.en-GB.resx:

用户名:电子邮件

当用户在两种语言之间切换时,我使用了以下代码

System.Threading.Thread.CurrentThread.CurrentUICulture = new 
System.Globalization.CultureInfo(code);
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(code);
Resources.Resource.Culture = new System.Globalization.CultureInfo(code);

,根据用户选择,代码将等于 en en-GB

问题:

当我们运行项目并且代码= en-GB 时,标签资源显示为 Resource.en-GB.resx(电子邮件),而占位符显示为< b> Resource.resx(用户名)。

这意味着 <%= Resources.Resource.Username%> 可以完美工作,而更改区域性并不会更改 <%$ Resources:Resource,Username%> >。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

假设您代码中的“代码”变量是区域性代码:

Thread.CurrentThread.CurrentUICulture = new CultureInfo(code);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(code);

希望这会有所帮助!