Multilanguage ASP.Net Website tips (part 2)

*saya sadar judul diatas tidak tepat, berhubung postingan saya agak spesifik untuk website arabic, untuk menebus dosa ini saya berusaha menuliskan tidak terlalu spesifik ke sana*

Part 2: Memakai resource file (.resx)

Pada postingan sebelumnya, saya mengatakan kalau saya membuat sebuah master page dan menempatkan menu seperti pada gambar dibawah ini. tapi hanya beberapa tips untuk membuatnya, saya sendiri tidak memberitahukan bagaimana cara membuatnya. Pada part 2 ini pun masih belum, bahkan tidak. Karena agak males motong-motongnya saya anggap anda lebih tahu kode HTML dan CSS dibandingkan saya ini.

Pada part ini saya ingin membahas cara menggunakan resource files (.resx) dan localization pada ASP.Net terlebih dahulu.

 

Coba diperhatikan menu ini,


 

dengan kode HTML seperti berikut ini:


<!-- Menu + language button -->

<div id="interior_top">

   <div id="text-on-top">

       <asp:LinkButton ID="BtnLang" ValidationGroup="Language" meta:resourcekey="btnLang" runat="server" OnClick="btnLang_Click" />

   </div>

   <div id="menu_interior">

       <ul>

           <li> <asp:HyperLink ID="LinkHome" meta:resourcekey="Home" NavigateUrl="~/Default.aspx" runat="server" Text="Home" /> </li>

           <li> <asp:HyperLink ID="LinkRegister" meta:resourcekey="Register" NavigateUrl="~/Register.aspx" runat="server" /> </li>

           <li> <asp:HyperLink ID="LinkLogin" meta:resourcekey="Login" NavigateUrl="~/Login.aspx" runat="server" /> </li>

           <li> <asp:HyperLink ID="LinkSearch" meta:resourcekey="Search" NavigateUrl="~/Login.aspx" runat="server" /> </li>

           <li> <asp:HyperLink ID="LinkHelp" meta:resourcekey="Help" NavigateUrl="~/Help.aspx" runat="server" /> </li>

       </ul>

   </div>


   <br class="clear" />

</div><!-- /Menu + language button -->

 

Ah sekali lagi, soal cssnya, agak males motong-motongnya saya anggap anda lebih tahu dibandingkan saya ini


Selanjutnya saya harus membuat resource file untuk halaman master ini.

Saya menambahkan asp.net folder App_LocalResource, dan menempatkan semua resource files (.resx) disitu.

 

 

Saya mau folder saya terlihat rapih, makanya saya membuat 2 folder lagi yaitu ar-KW dan en-US

 

Untuk memetakan value pada control dan resource file bisa dengan cara membuat explisit expression dalam atribut sebuah contol. contoh saja demikian

 

<asp:Label ID="Label2" Runat="server" Text="<%$ Resources:LocalizedText, Msg1 %>">

 

Value dari Msg1 akan dicari di file resource. File resource yang mana itu tergantung culture code dan nama resource.

Misalnya LocalizedText.fr.resx, apabila culture code adalah fr (france) atau LocalizedText.ar.resx apabila arabic (ar)

Kalo ga ada yang cocok, default file yang dipilih adalah LocalizedText.resx

 

Eh tapi saya ga mau repot-repot mapping file resource mana untuk control ini dan itu. Oleh sebab itu, saya pilih cara yang implisit saja

 

<asp:HyperLink ID="LinkRegister" meta:resourcekey="LinkRegister" NavigateUrl="~/Register.aspx" runat="server" />

 

Value dari LinkRegister.Text dan LinkRegister.ToolTip akan didapat dari file Anonymous.master.resx berikut ini

 


Katakanlah master page anda bernama Kokotello.master, namakanlah resource anda Kokotello.master.resx (default) atau Kokotello.master.fr.resx (france) atau Kokotello.master.ar-KW.resx (kuwait) atau dan lain sebagainya, file resource akan dipilih sesuai dengan culture code.

 

Sedangkan saya juga butuh resource yang bahasa arab (kuwait), oleh sebab itu saya juga membuat  Anonymous.master.ar-KW.resx di folder ar-KW. Tidak penting sih saya letakkan dimana, diletakkan di folder en-US pun tidak masalah asalkan namanya tetap Anonymous.master.ar-KW.resx.

 

 

 

Apabila code culture saat itu adalah'ar-KW' maka menu tersebut menjadi seperti ini.

 

Karena saya sudah anggap anda lebih jago css, seharusnya anda bingug dong kok dari yang tadinya left-to-right, menjadi right-to-left. Untuk melakukan ini saya wajib membalik beberapa atribut css seperti float, direction.

Saya bisa saja memetakan nama css class di resource files juga, misalnya LinkRegister.CssClass yang nilainya berbeda di setiap kelompok resource files.

Tapi dengan cara itu, lebih repot, masa semua resourcekey file harus dipetakan ke class ini dan itu lewat resource files juga?

Saya pakai cara lain, tapi entar aja minggu depan atau tahun depan deh dibahasnya.

Tuh kan sudah saya bilang agak males ngebahasnya disini, jadi ga fokus.

 

Oke, saya harap sekarang anda mengerti bagaimana menggunakan resource file dan localization pada ASP.Net 2.0

Seharusnya, anda tidak menemukan cara untuk mengubah culture code pada part ini dan part sebelumnya. Saya akan lanjutkan di bab selanjutnya.

Share this post: | | | |
Published Saturday, June 21, 2008 10:05 PM by anwarchandra

Comments

# re: Multilanguage ASP.Net Website tips (part 2)

Thursday, July 10, 2008 7:59 AM by Jamie

Nice... i haven't no idea about this.

shame, i only use net 1.1

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Enter the numbers above:
Powered by Community Server (Commercial Edition), by Telligent Systems