将不同的CSS链接到ASP.Net中的多语言网站?
我正在Asp.Net中创建多语言(En和Ar)网站。我想知道如何将RTL CSS与从英语到阿拉伯语的文化转换联系起来。我已经成功创建了多语言网站,只是停留在链接CSS。我知道如何在MVC中使用捆绑包,但不知道如何使用简单的ASP.Net应用程序。以下是我的代码:将不同的CSS链接到ASP.Net中的多语言网站?,css,asp.net,right-to-left,multilingual,left-to-right,Css,Asp.net,Right To Left,Multilingual,Left To Right,我正在Asp.Net中创建多语言(En和Ar)网站。我想知道如何将RTL CSS与从英语到阿拉伯语的文化转换联系起来。我已经成功创建了多语言网站,只是停留在链接CSS。我知道如何在MVC中使用捆绑包,但不知道如何使用简单的ASP.Net应用程序。以下是我的代码: public class BasePage : System.Web.UI.Page { protected override void InitializeCulture() { if (!string
public class BasePage : System.Web.UI.Page
{
protected override void InitializeCulture()
{
if (!string.IsNullOrEmpty(Request["lang"]))
{
Session["lang"] = Request["lang"];
}
string lang = Convert.ToString(Session["lang"]);
string culture = string.Empty;
if (lang.ToLower().CompareTo("en") == 0 || string.IsNullOrEmpty(culture))
{
culture = "en-US";
}
if (lang.ToLower().CompareTo("ar") == 0)
{
culture = "ar-SA";
}
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
base.InitializeCulture();
}
}
Aspx页面:
<head runat="server">
<link href="RTL.css" rel="stylesheet" />
<!-- AR, Use this CSS if culture is Arabic -->
<link href="LTR.css" rel="stylesheet" />
<!-- EN, Use this CSS if culture is English-->
</head>
<body>
<a href="?lang=en" runat="server" id="enLang">
<asp:Literal ID="Literal1" runat="server" Text="<%$Resources:myWeb.language, langEnglish%>" /></a>
<a href="?lang=ar" runat="server" id="arLang">
<asp:Literal ID="Literal2" runat="server" Text="<%$Resources:myWeb.language, langArabic%>" /></a>
</body>
您可以使用ASPX页面中的服务器端标记有条件地添加css文件。比如:
<% if(Session["lang"]=="ar") { %>
<link href="RTL.css" rel="stylesheet" />
<!-- AR, Use this CSS if culture is Arabic -->
<%} else {%>
<link href="LTR.css" rel="stylesheet" />
<!-- EN, Use this CSS if culture is English-->
<%}%>
我假设您不想更改每页的代码,否则您可以将此代码移到该页而不是页眉。尝试以下操作:
<% if (System.Globalization.CultureInfo.CurrentCulture.DisplayName == "English (United States)")
{ %>
<link href="LTR.css" rel="stylesheet" />
<% }
else
{ %>
<link href="RTL.css" rel="stylesheet" />
<% } %>
理论上,您可以使用,但我还没有测试过它是否真的有效……不起作用!问题:加载网站时会应用LTR样式,因为EN是web应用程序的默认语言。然而,当我将文化转换为阿拉伯语时,所有的风格都消失了。同样,当我把文化从阿拉伯语转回到英语时,没有风格。