SharePoint Projesinde Çoklu Dil Desteği İçin Resource Yapısını Kullanmak

Merhaba arkadaşlar bugün sizlere sharepoint projenizde çoklu dil desteği sağlayabilmeniz için kullanabileceğiniz “Resource” yapısını nasıl kullanacağınızdan bahsedeceğim.

Resource yapısını ekleyeceğimiz prokeyi açıyoruz.

1

Projemize sağ tıklıyoruz ve gelen menülerden “Add” kısmında “SharePoint Mapped Folder…” yolunu izliyoruz.

2

Açılan folder liste poppup ekranından “Resources” klasörünü seçerek “OK” butonuna basarak projemize dahil ediyoruz.

3

Gördüğünüz gibi sharepoint “Resources” klasörünü projemize mapplemiş olduk. Bu klasörü bu şekilde projeye dahil etme dışında bir klasör oluşturup isim verme vs herhangi bir yol kullanıldığı zaman çalışmayacaktır. Ondan dolayı klasörü mapplamaniz gerekmektedir.

4

“Resources” klasörüne sağ tıklayarak açılan menüden “Add” ve “New Item…” yollarını izleyerek her dil için resource dosyalarımızı bu klasöre ekliyoruz.

5

Karşımıza açılacak olan NewItem ekranında sol menüden “General” sekmesini seçerek “Resources File” template ini seçiyoruz. İsim kısmında ise proje ismine özel bir isim belirleyim ismin sonunda ve .resx öncesinde olacak şekilde bu dosyanın hangi dil için olacağını belirtmemiz gerekmektedir. Türkçe için “.tr-TR” ingilizce için “.en-US” gibi hangi dili kullanacaksak onu yazarak isimlendirmemiz gerekmektedir.

6

Gördüğünüz gibi ben örnek projem için iki dil kullanacağım için bir Türkçe için birde İngilizce için reource dosyası oluşturdum. Bu dosyalarda “Name” kolonuna tüm bu kelime veya cümle için bir anahtar belirlememiz gerekmektedir ve “Value” kısmına da bu anahtar kelime çağrıldığında geri dönecek değer yazılmalıdır. Tüm resource dosyalarında “Name” kısmındaki değerler aynı şekilde eklenmelidir ve “Value” karşılığında ise bu anahtar kelimenin sonuç döneceği değerin her dil dosyasında o dildeki karşılığı eklenmelidir.

Bu şekilde projelerimizde kullanacağımız kelime veya cümlelerimizin kullanacak dillerde çevirileri eklenmiş olacaktır.

Şimdi gelelim bu çevirileri projelerimizde nasıl kullanacağımız kısmına ve örnek olarak bir webpart modülünde hem .ascx (html) hemde .ascx.cs (code behind) kısmında kullanımından bahsedeceğim.

Projemizim html yani .ascx kısmında kullanırken

<%$Resources:SPResource,Title %>

yazılacak ve “SPResource” kısmında projemizin resource dosyalarında kullanılan ortak dosya ismi yazılacak ve “Title” kısmında ise resource dosyasında hangi parametre değeri çekilecekse o yazılacaktır.

Ama bu kısımda bu kodu direk yazarak kullanamazsınız. Ondan dolayı bu kodu bir html tagının elementinin içinde kullanabilirsiniz.

Örneğin bendeki gibi bir başlığı çekmeniz gerekmektedir ve bu isim bir div arasına gelmesi gerekiyorsa ilk önce div arasına bir label ekleyerek onun “Text” attiribute ne bu kodu ekleyerek kullanabilirsiniz.

<div class=”header”><asp:Label runat=”server” Text=”<%$Resources:SPResource,Title %>”></asp:Label></div>

7

Bu dil kontrolünü code behind yani .ascx.cs kısmında kullanacaksak eğer SPUtility yi kullanarak bunu sağlıyoruz.

string text = SPUtility.GetLocalizedString(“$Resources:SPResource, Title”, “Title”, SPContext.Current.Site.OpenWeb().Language);

8

Burada çekeceğimiz değeri hangi değişkene atayacaksak karşısında SPUtility.GetLocalizedString() metodunu çağırarak eşitliyoruz.

Bu kısımda “SPResource” kısmında projemizin resource dosyalarında kullanılan ortak dosya ismi yazılacak ve “Title” kısmında ise resource dosyasında hangi parametre değeri çekilecekse o yazılacaktır. “SPContext.Current.Site.OpenWeb().Language” kısmı ise kodun çalıştığı sayfanın dil kodunu alacaktır.

Gördüğünüz gibi projemize dil deteği kazandırmış olduk. 🙂

Bir Cevap Yazın