C# Multi Language

วันนี้มาเขียน C# Multi Language กันครับ

1. เริ่มจากสร้าง new website project

2. สร้าง folder  App_GlobalResources  ดูได้จากรูปครับ

httptheintelligenceproject.com16

 

3. คลิกขวา App_GlobalRrsources เลือก Resources File ใหม่ เพื่อเพิ่มภาษา และเราสามารถเพิ่มไฟล์ภาษาเขียนตามฟอแมทนี้ครับ “name.language-culture.resx”

4. เปิด resource files  มาเพื่อใส่ค่า ตามรูป

httptheintelligenceproject.com17

 

5. สร้าง  class file  ร่วมกับ  BasePage เช่น

Original: public partial class Default : System.Web.UI.Page

Now: public partial class Default : BasePage

6. สร้าง webpage  Default.aspx โดย codeข้างใน inheritance  มาจาก System.Web.UI.Page to BasePage.

7. ใช้ asp:Literal control  ตัวอย่าง code

<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();
        }
    }
}







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

namespace ASPNetMultiLanguage
{
    public partial class Default : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            #region--Show/hide language link
            if (!string.IsNullOrEmpty(Convert.ToString(Session["lang"])))
            {
                if (Convert.ToString(Session["lang"]) == "en")
                {
                    linkVietnameseLang.Visible = true;
                    linkEnglishLang.Visible = false;
                }
                else
                {
                    linkEnglishLang.Visible = true;
                    linkVietnameseLang.Visible = false;
                }
            }
            else
            {
                linkVietnameseLang.Visible = false;
                linkEnglishLang.Visible = true;
            }
            #endregion--
        }
    }
}

Leave a Reply