我有基于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.resxResource.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%> >。
有什么建议吗?
答案 0 :(得分:0)
假设您代码中的“代码”变量是区域性代码:
Thread.CurrentThread.CurrentUICulture = new CultureInfo(code);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(code);
希望这会有所帮助!