การทำ Localization โดยใช้ Resource File

Chotmanee Thong-aom
Arcadia Software Development
1 min readDec 14, 2018

การทำ Localization คือ การทำให้ web application สามารถรองรับได้มากกว่า 1 ภาษา และเปลี่ยนแปลงเนื้อหาไปตามที่กำหนดไว้

สามารถทำได้หลายวิธี หลายแบบ บทความนี้จะพูดถึงการทำ Localization โดยใช้ Resouce File ที่อยู่บนพื้นฐานของ ASP.NET MVC

สร้าง Resource File

เราสามารถกำหนดว่า resource file ที่เราสร้างเป็นภาษาอะไร โดยการกำหนดหลัง ชื่อไฟล์ ดังรูปข้างต้น โดยที่ชื่อไฟล์ที่ไม่ถูกกำหนด culture จะเป็นค่า default เมื่อมีการอ้างถึง key ที่ไม่พบในภาษาอื่นๆ

กำหนด Key และ Value ของเนื้อหาที่ต้องการแสดง

Name คือ ชื่อตัวแปรที่เราจะใช้อ้างอิงถึง

Value คือ เนื้อหาที่จะแสดง

Comment คือ รายละเอียดของเนื้อหา

สร้าง function ที่ Javascript สำหรับเปลี่ยนแปลงภาษา

function swicthLanguage(language){
$.ajax({
url: "~/Localication/SwicthLanguage",
dataType: "json",
type: "POST",
contentType: "application/json",
data: JSON.stringify({ language: language }),
success: function(response){
alert("Change Language!");
}
});
}

สร้าง function ที่ Controller เพื่อเรียกใช้ Resource File ตามภาษาที่ต้องการ

public ActionResult SwicthLanguage(string language){  var culture = language == "" ? "" : "th";

// กำหนด Application Session สำหรับเก็บว่า ณ ขณะนั้นกำลังใช้ภาษาอะไร
HttpContext.Current.Session["Language"] = language;
// กำหนด culture
CultureInfo.DefaultThreadCurrentUICulture
= new CultureInfo(culture);
}

การเรียกใช้ฝั่ง HTML ที่ไฟล์ .cshtml

<H1> 
@ProjectName.WebUI.Resources.Menu.Resource.IDS_TITLE
</H1>

การเรียกใช้ฝั่ง C# ที่ไฟล์ .cs

public getMenuTitleName()
{
string title = Resources.Menu.Resource.IDS_TITLE;
return Json({response: title},JsonRequestBehavior.AllowGet);
}

สรุป

เราสามารถนำ Resource File ไปประยุกต์ใช้ในเรื่องการแสดงเนื้อหาภายใน web application โดยเปลี่ยนแปลงไปตามตัวเลือกภาษาที่เราสร้างและกำหนดไว้

--

--