• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

ازتباط بین صفحه انگلیسی و فارسی با لینک

niterider

Registered User
تاریخ عضویت
27 دسامبر 2002
نوشته‌ها
414
لایک‌ها
3
محل سکونت
The Most Beautifull Love , Tehran
سلام.
من مشغول طراحی یک سایت دو زبانه هستم که هر صفحه انگلیسی که باز میشه باید بوسیله یک لینک به معادل فارسی خودش وصل شیم و برعکس.
می خوام این کار رو بصورتی دینامیکی کنترل کنم. این لینک توی صفحه master قرار داره و باید به نوعی کدنویسی بشه که بفهمه باید الان در چه صفحه ای هستیم که مثلا وقتی لینک فارسی رو زدیم به صفحه فارسیش بره.
چه کاری میشه انجام داد؟
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
شما استراکچر صفحه رو یکسان پیاده سازی کن و فقط توی یک query string به صفحت بگو که فارسی باشه یا انگلیسی باشه ، یکی رو هم که مهم تره بذار به عنوان دیفالت و بدون کوئری استرینگ .
 

niterider

Registered User
تاریخ عضویت
27 دسامبر 2002
نوشته‌ها
414
لایک‌ها
3
محل سکونت
The Most Beautifull Love , Tehran
من برای این کار یه ایده ای دارم. اینکه اسم صفحات انگلیسی و فارسی در یک بخش با هم متفاوت باشن. مثلا اسم همه صفحات فارسی یک پیشوند Fa داشته باشه. مثلا صفحه Contact.aspx برای انگلیسی و FaContact.aspx برای فارسی. و یک کنترل LinkButton بزاریم که Event کلیک کردنش رو مثلا همچین چیزی بزاریم.

کد:
Response.Redirect(" به صفحه فارسی");

حالا نمی دونم چه جوری باید بهش بفهمونم که برو به همین صفحه حالا یه پسوند Fa بزار اولش یا مثلا Fa رو حذف کن. خب اصلا این فکر درسته ؟ راه دیگه چیه البته بطور کامل توضیح بدین که من مبتدی بفهمم.:)
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
راهی که مد نظر شما هست رو میشه اینجوری پیاده کرد
شما با
request.path
آدرس صفحه رو بگیر
با استفاده از توابع string ، ببین تو صفحه فارسی هستی یا نه ، مثلا با indexof ببین که fa رو داری یا نه
بعد از رو اون، آدرس جدید رو بساز و بفرست به اونجا
 

niterider

Registered User
تاریخ عضویت
27 دسامبر 2002
نوشته‌ها
414
لایک‌ها
3
محل سکونت
The Most Beautifull Love , Tehran
مرسی. از کدی مثل این استفاده کردم و داره کار می کنه. اگه نیاز به اصلاح یا بهتر شدن داره بفرمائید.
کد:
protected void LinkButton1_Click(object sender, EventArgs e)
    {
        string ExchangeLink;
        ExchangeLink = Request.Path.ToString();
        if (ExchangeLink.IndexOf("/Fa/") > 0)
        {
            ExchangeLink = ExchangeLink.Replace("/Fa/", "/En/");
        }
        Response.Redirect(ExchangeLink);
    }
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
مرسی. از کدی مثل این استفاده کردم و داره کار می کنه. اگه نیاز به اصلاح یا بهتر شدن داره بفرمائید.
کد:
protected void LinkButton1_Click(object sender, EventArgs e)
    {
        string ExchangeLink;
        ExchangeLink = Request.Path.ToString();
        if (ExchangeLink.IndexOf("/Fa/") > 0)
        {
            ExchangeLink = ExchangeLink.Replace("/Fa/", "/En/");
        }
        Response.Redirect(ExchangeLink);
    }
اگر از یک لینک برای انتخاب زبان استفاده میکنی
کد شما یک طرفه هست، الان اگه در صفحه انگلیسی باشیم، این نیاز به else هم داره خوب ;)
با همین روش ، خاصیت text رو هم عوض کن ، که بسته به زبان کنونی، چی نشون بده
 

niterider

Registered User
تاریخ عضویت
27 دسامبر 2002
نوشته‌ها
414
لایک‌ها
3
محل سکونت
The Most Beautifull Love , Tehran
برای من چون صفحات انگلیسی و فارسی از دوتا master page جدا استفاده می کنه نیاز به else نشد. ممنون که کمک می کنی.
 
بالا