2016-11-15 6 views
2

私はAsp.Netに多言語(EnとAr)ウェブサイトを作成しています。 RTL CSSを英語からアラビア語への切り替えにどのようにリンクさせることができますか?私は正常にCSSをリンクに固執した多言語のウェブサイトを作成しました。私はバンドルを使ってMVCでやる方法を知っていますが、単純なASP.Netアプリケーションについてはわかりません。ASP.Netの多言語ウェブサイトに異なるCSSをリンクしますか?

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

をそれが実際に動作するかどうかを確認してください... –

答えて

1

このお試しください:理論的には、あなたが(https://davidwalsh.name/link-hreflang)[ `link`要素に` hreflang`属性]を使用することができますが、私はテストしていない

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

私は、そうでない場合は、ページの代わりに、先頭にこのコードを移動することができ、各ページのためにそれを変更したくないと仮定しています。

+0

Not Working! 問題:ENがWebアプリケーションのデフォルト言語であるため、Webサイトが読み込まれるときにLTRスタイルが適用されます。しかし、文化をアラビア語に切り替えると、すべてのスタイルが消えてしまいます。同様に、カルチャーをアラビア語から英語に戻すと、スタイルはありません。 –

関連する問題