我试图为我们设置一个多语言网站。我已经在web.config中包含了:
<globalization culture="auto:en-US" uiCulture="auto:en-US" enableClientBasedCulture="true" />
还检查了IIS,但没有运气
所有转换都适用于我的开发环境Windows 8.1,但在实时环境中,文本框显示十进制数字为US&#34;。&#34;对于南非而不是&#34;,&#34;它们用作小数分隔符,奇怪的标签和其他显示确实转换。实时环境是Windows srv 2008 R2。有什么指针吗?
答案 0 :(得分:0)
用Web.config
编写的设置总是可以通过多种方式覆盖。
了解可能全球化设置被覆盖的其他地方。
1。)首先检查页面的Page指令,
<%@ Page Culture="en-US" UICulture="en-US" Language="C#"
MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="Default" %>
检查属性的值:Culture
和UICulture
2。)搜索任何可能的实施:InitializeCulture()
方法,这是一种常用的覆盖文化设置的方法
运行。
使用Ctrl+Shift+F
在整个解决方案中搜索此方法。一个
此方法的示例实现如下:
protected override void InitializeCulture()
{
string value = Request.Form["dropdownlist1"];
if (!string.IsNullOrEmpty(value))
{
this.Culture = value;
this.UICulture = value;
}
base.InitializeCulture();
}
3.。)装配属性也很重要:
[assembly: AssemblyCulture("en-US")]
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]
4.)我认为无需检查Web.config
设置
在服务器(主机)上,因为你已经在你的网站上覆盖了它们
web.config中。
5.)作为最后一次检查,开发人员可能会使用global.asax来设置文化,例如:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
// Just a sample only...
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture =
Thread.CurrentThread.CurrentCulture;
}