最近一段时间做国际化,平常页面调用App_LocalResources都很正常,全部弄完后,剩下ajax调用的.ashx文件未正常显示,今天调了 半天,原来是因为平常页面都继承了basepage这个页面,都调用了SetCulture()的方法,而.ashx不能继承此类,所以只能自己手动调 用,方法如下:
#region lang
/// <summary>
/// 设置国际化语言
/// </summary>
private void SetCulture()
{
try
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(Lang);
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(Lang);
}
catch (Exception ex)
{
WriteString(ex.Message);
return;
}
}
/// <summary>
/// 国际化标签
/// </summary>
/// <returns></returns>
public string Lang
{
get
{
string lang = OConst.Comm.LANG_DEFAULT;
if (OCookie.Site.LangID < 1)
{
return lang;
}
cLanguage langET = BLL.Language.GetByID(OCookie.Site.LangID);
if (langET != null && !string.IsNullOrEmpty(langET.Lang))
{
lang = langET.Lang;
}
return lang;
}
}
#endregion
public void ProcessRequest(HttpContext context)
{
//设置语言
SetCulture();
switch (action)
{
case "Test":
Test();
break;
}
}
private static void Test()
{
//因为调用的是App_GlobalResources里的资源文件,所以下面的文件名为ajax.resx,里面有个Key值为Test
//GlobalResources下的文件都已经自动强类型了,App_LocalResources下的好像不可以,刚弄,具体也不是很清楚
WriteString(Resources.ajax.Test);
}
搞定。。有好的建议可以共同探讨探讨。。。
#region lang
/// <summary>
/// 设置国际化语言
/// </summary>
private void SetCulture()
{
try
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(Lang);
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(Lang);
}
catch (Exception ex)
{
WriteString(ex.Message);
return;
}
}
/// <summary>
/// 国际化标签
/// </summary>
/// <returns></returns>
public string Lang
{
get
{
string lang = OConst.Comm.LANG_DEFAULT;
if (OCookie.Site.LangID < 1)
{
return lang;
}
cLanguage langET = BLL.Language.GetByID(OCookie.Site.LangID);
if (langET != null && !string.IsNullOrEmpty(langET.Lang))
{
lang = langET.Lang;
}
return lang;
}
}
#endregion
public void ProcessRequest(HttpContext context)
{
//设置语言
SetCulture();
switch (action)
{
case "Test":
Test();
break;
}
}
private static void Test()
{
//因为调用的是App_GlobalResources里的资源文件,所以下面的文件名为ajax.resx,里面有个Key值为Test
//GlobalResources下的文件都已经自动强类型了,App_LocalResources下的好像不可以,刚弄,具体也不是很清楚
WriteString(Resources.ajax.Test);
}
搞定。。有好的建议可以共同探讨探讨。。。
浙公网安备 33010602011771号