在ASP.Net中将不同的CSS链接到多语言网站。

时间:2016-11-15 19:57:22

标签: css asp.net right-to-left multilingual left-to-right

我正在Asp.Net中创建多语言(En和Ar)网站。我想知道如何将RTL CSS链接到从英语到阿拉伯语的切换文化。我已成功创建了多语言网站,只是在链接CSS。我知道如何在MVC中使用bundle,但不确定一个简单的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 Page:

<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>

2 个答案:

答案 0 :(得分:2)

试试这个:

<% if (System.Globalization.CultureInfo.CurrentCulture.DisplayName == "English (United States)")
   { %>
      <link href="LTR.css" rel="stylesheet" />
   <% }
   else
   { %>
      <link href="RTL.css" rel="stylesheet" />
   <% } %>

答案 1 :(得分:0)

您可以在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-->
 <%}%>

我假设您不想为每个页面更改它,否则您可以将此代码移动到页面而不是头部。