Je crée un site Web multilingue (En et Ar) dans Asp.Net. Je me demande comment puis-je lier RTL CSS sur le changement de culture de l'anglais à l'arabe. J'ai réussi à créer le site Web multilingue juste coincé dans les liens CSS. Je sais comment faire dans MVC en utilisant des paquets, mais je ne suis pas sûr d'une simple application ASP.Net. À la suite de mon code:Lier différents CSS à un site Web multilingue dans 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>
Théoriquement, vous pouvez utiliser le [ 'attribut hreflang' sur l'élément' de link'] (https://davidwalsh.name/link-hreflang), mais je ne l'ai pas testé pour voir si cela fonctionne réellement ... –