Hai semua berjumpa lagi, dihari Idul Adha ini daripada bengong nungguin sate mateng mending kita coding :). pada kali ini saya akan menerangkan bagaimana cara mengganti bahasa pada halaman website sesuai dengan bahasa local (multi language) menggunakan asp.net mvc.
Pertama-tama kita buat new ASP.NET MVC application seperti pada gambar dibawah.
Lalu kita pilih Internet Application dan razor sebaga view engine, jangan lupa un-checked create a unit test project, karena kita tidak akan membuat unit test pada tutorial kali ini.
Lalu akan muncul folder-folder seperti dibawah.
Untuk membuat multi language page, kita membutuhkan sebuah tempat untuk menyimpan template yang akan ditampilkan dihalaman website. template ini berupa sebuah file resource (.resx). untuk menambah resource tersebut, kita add folder App_GlobalResources. Klik kanan project -> add -> add ASP.Net Folder ->; App_GlobalResources, kemudian akan muncul folder seperti gambar dibawah
kemudian kita add resource file. klik kanan pada folder App_GlobalResources -> add -> Resources file beri nama Global untuk bahasa Inggris dan Global.Id untuk resources bahasa Indonesia
Resource tersebut kita isi seperti gambar dibawah ini
Bahasa Inggris |
Bahasa Indonesia |
Lalu kita build dan running maka akan halaman website akan seperti ini
Tulisan yang digaris bawahi merupakan value dari resource file yang kita buat tadi. bagaimana cara merubah bahasa menjadi bahasa Indonesia. pertama-tama kita akan membuat sebuah Map.Route baru pada RouteConfig,cs yang memetakan url yang mengandung bahasa (lang). kita tambahkan sebelum default route
// Comment routes.MapRoute( "Localization", //route Name "{lang}/{contoller}/{action}/{id}", //URL with parameter new { controller = "Home", action = "Index", id = UrlParameter.Optional } //default parameter );
kemudian kita tambahkan satu buah class Attribute. kita beri nama Localization attribute,
public class LocalizationAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.RouteData.Values["lang"] != null && !string.IsNullOrWhiteSpace(filterContext.RouteData.Values["lang"].ToString())) { // set the culture from the route data (url) var lang = filterContext.RouteData.Values["lang"].ToString(); Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(lang); } else { // load the culture info from the cookie var cookie = filterContext.HttpContext.Request.Cookies["MultiLanguage.CurrentUICulture"]; var langHeader = string.Empty; if (cookie != null) { // set the culture by the cookie content langHeader = cookie.Value; Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(langHeader); } else { // set the culture by the location if not speicified langHeader = filterContext.HttpContext.Request.UserLanguages[0]; Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(langHeader); } // set the lang value into route data filterContext.RouteData.Values["lang"] = langHeader; } // save the location into cookie HttpCookie _cookie = new HttpCookie("MultiLanguage.CurrentUICulture", Thread.CurrentThread.CurrentUICulture.Name); _cookie.Expires = DateTime.Now.AddYears(1); filterContext.HttpContext.Response.SetCookie(_cookie); base.OnActionExecuting(filterContext); } }Lalu kita tambahkan attribute tersebut pada action index di HomeController
[Localization] public ActionResult Index() { return View(); }
Kita build dan voila halaman website kita berubah bahasa
Web Bahasa Inggris |
Web Bahasa Indonesia |
Cukup sekian tutorial kali ini. tutorial ini masih ada lanjutanya loh, jadi tunggu post berikutnya
untuk source codenya bisa di-download disini
24 komentar :
Infonya bermanfaat..
Mampir ke blog saya juga ya gan, ada banyak tips-tips ASP.NET MVC . Untuk yang mau tau manfaatnya mengembangkan website ASP.NET MVC baca aja ni artikel ini ..
http://blog.jaringanhosting.com/index.php/asp-net-mvc-hosting-jaringahosting-com-manfaat-mengembangkan-website-asp-net-mvc/
Semoga bermanfaat
info yang manarik :) web hosting
terima kasih banyak infonya banyak membantu :>) piala dunia 2014
Anda memiliki postingan yang sangat berguna. Terima kasih telah berbagi ...
jasa pembuatan website
king88.asia
Saya selalu menjelajahi Internet untuk informasi baru dan belajar apapun yang saya bisa, dan
dengan berbuat demikian saya kadang-kadang meninggalkan komentar di blog. saya tidak
melakukannya untuk tujuan SEO , tetapi untuk belajar hal-hal baru.
BOKEP INDO
Sangat jarang saya menemukan sebuah blog yang informatif dan menghibur seperti ini.
nagapoker.biz
Blog Anda sangat penting bagi semua orang, teruslah berbagi.
npselalu.com
saya harus mengatakan bahwa secara keseluruhan saya benar-benar terkesan dengan blog ini.
PREDIKSI TOGEL
blog yang bagus dan informatif, yang berisi semua informasi dan juga memiliki dampak yang
besar pada teknologi baru.
SBOBET01
Teruslah berbagi ide sampai masa mendatang .pada dasarnya apa yang saya cari sudah saya
temukan disini, dan saya senang sudah tiba disini.
DEWA TANGKAS
Terima kasih atas postingan yang bermanfaat.
BANDAR BOLA
Di mana lagi orang bisa mendapatkan jenis informasi sedemikian cara yang sempurna untuk menulis? kalau bukan dari blog ini :)
Sangat jarang saya menemukan sebuah blog yang informatif dan menghibur seperti ini.
Togel
bolatangkas
saya harus mengatakan bahwa secara keseluruhan saya benar-benar terkesan dengan blog ini.
blog yang bagus dan informatif, yang berisi semua informasi dan juga memiliki dampak yang
besar pada teknologi baru.
agen sbobet
I agree with you. This post is truly inspiring. I like your post and everything you share with us is current and very informative, I want to bookmark the page so I can return here from you that you have done a fantastic job. Agen Bola Terpercaya
mantap this blog...good luck
bandar domino online
Great post! I?m just starting out in community management/marketing media and trying to learn how to do it well - resources like this article are incredibly helpful. As our company is based in the US, it?s all a bit new to us. The example above is something that I worry about as well, how to show your own genuine enthusiasm and share the fact that your product is useful in that case.
Also visit our website : Agen Judi Online
http://tangkasnet9.com/
maaf linknya rusak, tolong infonya
thx
link baru
https://www.dropbox.com/s/aadi0iuz196dn53/MultiLanguage.rar?dl=0
thanks gan.
thanks for share you info ..
lotere indonesia
togel indonesia
toto indonesia
thank you for all the information that has been conveyed here, hopefully it can be useful.
Posting Komentar