0 امتیاز
قبل در کامپیوتر و اینترنت توسط (760 امتیاز)
برچسب گذاری دوباره قبل توسط
میشه روش پیاده سازیش رو در DB بفرمایید؟

ببینم این صحت داره که از طریق Resource (جز آیتم های VS) هم می توان اینکار را انجام داد؟

اگه میشه، بفرمایید که Resource چه هست و کار با آن و پیاده سازی پروژه چندزبانه به چه شکلی است؟

1 پاسخ

+1 امتیاز
قبل توسط (2.4هزار امتیاز)
ویرایش شده قبل توسط

والا در net. یه تکنولوژی هست به نام API و به وسیله اون میشه همچین کاری رو کرد به این شکل که برای هر کنترولتون تکتک برگردانش رو به همون زبان بنویسید که این کار وقت گیر و طاقت فرساییه

که من پیشنهاد می کنم اگر یه وبسایت جمع و جوره از روش بالا برید و بگید تا چگونگی انجامشو توضیح بدهم

 

ولی اگر به وبسایت داینامیک و تپل دارید باید مراحل زیر رو شئ گرا ، ساخت یافته و مخصوصا تپل انجام دهید :

قبل از انجام این کار به  این لینک رفته،  دو تا فایل زیپ هست دانلود کنید (من آموزش رو از توی همین سایت دارم توضیح می دم اگر راحت ترید هم می تونید به همون لینک رفته و توضیحات رو با عکس دنبال کنید )

1. یه پروژه جدید ایجاد کنید 

2.بعد روی Solution Explorer پروژه تون یه فلدر جدید به نام App_GlobalResources می سازید (یا هر نام دیگه ، فقط باید توی همون روت وبسایتت بسازی ) 

3. روی پوشه App_GlobalResources  راست کلیک و add و سپس Resources File رو انتخاب کنید .

4. شما می تونید هر تعداد که زبان می خواهید به همین طیق اظافه کنید (فقط حواستون باشه به خواصیت نامش دست نزنید)

5. یه کلاس جدید به نام BasePage ایجاد کنید (این کلاسی که می سازیم میشه گفت یه فرهنگ لغت اولیه هست که بعدا صفحات دیگرمون به جای System.Web.UI.Page ازش ارث بری کنند )

مثل :

قدیمی: public partial class Default : System.Web.UI.Page
جدید: public partial class Default : BasePage

6.خوب یه صفحه جدید با نام Default.aspx بسازید و در کد پس زمینه اون ارث بری رو از System.Web.UI.Page به BasePage تغییر دهید.

7. در اخر هم از asp:Literal استفاده می کنیم تا از منبعمان اطلاعات دریافت کنید .

 

پروژه تمومه کد ها رو این کپی پیست می کنم همینجا ولی چون این جا رنگی نشون نمی ده توصیه می کنم به همون لینک بالا مراجعه کنید .

<asp:Literal ID="Literal3" runat="server" Text="<%$Resources:chienvh.language,mnuHome%>"/>

                      ********************************************

using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;
using System.Globalization;
using System;

namespace ASPNetMultiLanguage
{
    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;
            /* // In case, if you want to set vietnamese as default language, then removing this comment
            if(lang.ToLower().CompareTo("vi") == 0 ||string.IsNullOrEmpty(culture))
            {              
    culture = "vi-VN";
            }
             */
            if (lang.ToLower().CompareTo("en") == 0 || string.IsNullOrEmpty(culture))
            {
                culture = "en-US";
            }
            if (lang.ToLower().CompareTo("vi") == 0)
            {              
    culture = "vi-VN";
            }
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);

            base.InitializeCulture();
        }
    }
} 

}

می تونم بگم این یکی از بهترین و کامل ترین جواب هایی بود که تا حالا دادم :)

متاسفانه چون به تعداد کاراکتر ها گیر داد نتونستم تمام کد ها رو بذارم 

یادتون نره حتما به لینک بالا مراجعه کنید 

سوالات مشابه

+1 امتیاز
1 پاسخ 1.9هزار بازدید
0 امتیاز
0 پاسخ 424 بازدید
+1 امتیاز
1 پاسخ 505 بازدید
+1 امتیاز
2 پاسخ 1.2هزار بازدید
–1 امتیاز
1 پاسخ 825 بازدید
...