2010-12-03 8 views
3

NopCommerceを変更して、addreessバーに言語を追加しようとしましたが、何か問題があるようです。NopCommerceのUrlRewritingで問題が発生しました

UrlRewritingを無効にすると、すべて有効になります。既定の言語になっていると、既定ではない別の言語に移動すると問題なく動作します。

は、私は、デフォルトのlangugeのためのコードの2つの部分を持っており、他の言語

のために私は少しにコードを変更し、その主な機能は今の言語のいずれかを選択:私が持っているデフォルト言語の

public static string GetCategoryUrl(Category category, int languageId) 
    { 
     if (category == null) 
      throw new ArgumentNullException("category"); 
     string seName = GetSEName(category.SEName); 

     if (String.IsNullOrEmpty(seName)) 
     { 
      var categoryLocalized = CategoryManager.GetCategoryLocalizedByCategoryIdAndLanguageId(category.CategoryId, languageId); 
      if (categoryLocalized != null) 
      { 
       seName = GetSEName(categoryLocalized.Name); 
      } 
      else 
      { 
      seName = GetSEName(category.Name); 
      } 
     }    

     int defaultLanguage = Convert.ToInt32(SettingManager.GetSettingValue("Localization.DefaultLanguageID")); 
     string url = String.Empty; 

     string url2 = String.Empty; 

     //***for default language*** 
     if (languageId == defaultLanguage) 
     { 
      url2 = SEOHelper.EnableUrlRewriting ? SettingManager.GetSettingValue("SEO.Category.UrlRewriteFormat") : "{0}Category.aspx?CategoryID={1}"; 
      url = string.Format(url2, CommonHelper.GetStoreLocation(), category.CategoryId, seName); 
     } 

     //***for other languages*** 
     else 
     { 
      url2 = SEOHelper.EnableUrlRewriting ? SettingManager.GetSettingValue("SEO.Category.UrlRewriteFormat2") : "{0}Category.aspx?Language={1}&CategoryID={2}"; 
      url = string.Format(url2, CommonHelper.GetStoreLocation(), GetLocaleSubFolder(languageId), category.CategoryId, seName); 
     } 
     return url.ToLowerInvariant(); 
    } 

また: SEO.Category.UrlRewriteFormatについて Iが既定の言語のデータベースを持っている:{0} C {1}/{2} UrlRewriting.configで

Iはデフォルト言語は、このルールを持っています:私は私のリンクは WWWのように見えるデフォルトの言語でカテゴリに行くときは、no urlと

が www.nopcomerce.com/category.aspx?categoryid=10

ように見える上記の私のリンクを書き換えます。他の言語についてはnopcomerce.com/c10/somecategory

:SEO.Category.UrlRewriについては

teFormat2 Iは、他の言語のためのデータベースを持っている:{0} {1}/C {2}/{3}

と他の言語のために私は

ような他の言語の外観なしのURL rewrithingとのリンクを有します www.nopcomerce.com/category.aspx?language=de区分= 10

&そして、私はドイツ語で同じカテゴリーの例に行くとき、私は www.nopcomerce.com/de/c10/を持っています部分分類局化者

NopCommerceでUrlRewritingを無効にすると、すべての言語のすべてのページが正常に動作するため、これまでのようにページが正常に動作することが分かりました。カテゴリ、製品、ポータル全体の言語をあらゆる言語で問題なく変更できます。

しかし、ときに私はUrlRewriting、デフォルトの言語でのカテゴリのためのリンクが正常に動作します(www.nopcomerce.com/c10/somecategory)を有効にしても、私は、他の言語でのリンクの上で、私はいずれかをクリックするたびにクリックしたときリンク、他の言語のカテゴリのリンクなど、表示されるコンテンツは既定のページ(そこにリダイレクトされているようなもの)からですが、私はいくつかの言語で表示したいリンクがアドレスバーに書き込まれていることがわかります(www.nopcomerce.com/de/c10/somecategorylocalizedingerman)。

私はすべてを試していますが、問題の原因を知っています。なにが問題ですか?

また、NopCommerceフォーラムでヘルプを依頼しようとしましたが、そこからの助けはありません。

この問題は、私が問題と思われる部分がなくなるまで書き始めました。事前にすべての助けを

http://www.nopcommerce.com/boards/t/1039/seo-and-multilingual-pages.aspx?p=1

感謝。

答えて

0

数日間の拷問と数時間後、私は1つのことをあきらめました。それは、私が望むようにリンクされることです。

nopcommerce.com /国/カテゴリ/名前のカテゴリ

私が管理している最も近い:私はデフォルトのリンク以外の言語のためのリンクは、のように見えることを行うために管理したことがない

達成するためには、私を見てリンクすることです

nopcommerce.com /カテゴリ/国/カテゴリの名前。

また私は、私が興味深い問題を抱えた通常のハイパーリンクやリンクよりも、私たちが古典的なImageButtonではないリンクを作ることができました。

NopCommerceは、言語を変更するためにCookieを使用します。

クッキーの名前が見つかりました。その名前をNopContext.Current.WorkingLanguageに書き込みます。

は、同様に、Iは、(JavaScriptの関数ますsetcookieを作成)

クッキーに選択された言語のログ値を作成し、ユーザが選択したのフラグをクリックしたときに活性化する
function setCookie(c_name, value, expiredays) { 
    var exdate = new Date(); 
    exdate.setDate(exdate.getDate() + expiredays); 
    document.cookie = c_name + "=" + escape(value) + 
     ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString()); 
} 

言語。

例えば

string coockie = String.Format("javascript:setCookie('{0}','{1}','{2}');", "Nop.CustomerLanguage", language.LanguageId.ToString(), new TimeSpan(365, 0, 0, 0, 0)); 
hpLanguage.Attributes.Add("onclick", coockie); 

そして今、我々は問題が発生した興味深い部分に来て、それがなぜ起こるか、それは私には明確ではありません。

は、私が最初のアドレスバーに、ドイツ語の旗をクリックすると、我々はドイツ語と英語

があると私はドイツ語へのリンクを示しているが、内容は英語のままです。 2度目のときだけ、(再び)ドイツ語のフラグをクリックすると、ページの内容がドイツ語に切り替わります。

なぜこれが今私に起こっているのか分かりません。

関連する問題