Link 与 ASP.Net 中的多语言网站不同 CSS?
Link different CSS to multi-language website in ASP.Net?
我正在 Asp.Net 创建多语言(英文和阿尔文)网站。我想知道如何 link RTL CSS 将文化从英语切换到阿拉伯语。我已经成功创建了多语言网站,只是停留在 linking 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" />
<% } %>
我正在 Asp.Net 创建多语言(英文和阿尔文)网站。我想知道如何 link RTL CSS 将文化从英语切换到阿拉伯语。我已经成功创建了多语言网站,只是停留在 linking 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" />
<% } %>