将不同的CSS链接到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

我正在Asp.Net中创建多语言(En和Ar)网站。我想知道如何将RTL CSS与从英语到阿拉伯语的文化转换联系起来。我已经成功创建了多语言网站,只是停留在链接CSS。我知道如何在MVC中使用捆绑包,但不知道如何使用简单的ASP.Net应用程序。以下是我的代码:

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应用程序的默认语言。然而,当我将文化转换为阿拉伯语时,所有的风格都消失了。同样,当我把文化从阿拉伯语转回到英语时,没有风格。