Localization, bir uygulamanın içeriğini farklı dillere uyarlama sürecidir. Örneğin, bir e-ticaret uygulamanız olduğunu düşünün. Kullanıcılar İspanya’dan, Türkiye’den veya Almanya’dan giriş yaptığında, uygulamanızın arayüzü kullanıcıların diline göre değişebilirse, bu hem kullanıcı deneyimini artırır hem de global kullanıcı kitlesine hitap etmenizi sağlar. İşte .NET Core MVC'de, bunu gerçekleştirmek çok daha kolay hale geliyor.
Başlangıç: .NET Core MVC Projesinde Localization Özelliğini Etkinleştirme
1. Projenize Localization Özelliğini Ekleyin: .NET Core MVC’de yerelleştirme yapmak için Microsoft.Extensions.Localization paketine ihtiyacınız olacak. Bu paketi projenize eklemek için:
dotnet add package Microsoft.Extensions.Localization |
2. Startup.cs Dosyasını Düzenleyin: Startup.cs dosyasına gidin ve ConfigureServices metoduna Localization servislerini ekleyin. Bu, uygulamanızın yerelleştirme ayarlarını yönetmesini sağlar:
public void ConfigureServices(IServiceCollection services) { services.AddLocalization(options => options.ResourcesPath = "Resources"); services.AddMvc().AddViewLocalization().AddDataAnnotationsLocalization(); services.Configure<RequestLocalizationOptions>(options => { var supportedCultures = new[] { "en-US", "tr-TR", "es-ES" }; options.SetDefaultCulture("en-US") .AddSupportedCultures(supportedCultures) .AddSupportedUICultures(supportedCultures); }); } |
3. Desteklenen Dilleri Ayarlayın: supportedCultures dizisinde belirttiğimiz diller, uygulamanızın desteklediği dilleri ifade eder. Örneğimizde İngilizce, Türkçe ve İspanyolca desteklenmektedir.
Dil Kaynak Dosyaları ile Çeviri Yapma
Localization işlemi için her dil için birer kaynak dosyasına
ihtiyacınız var. Resources klasörünü oluşturun ve burada View veya Controller
isimleriyle uyumlu .resx dosyaları ekleyin.
Örnek:
HomeController.tr.resx ve HomeController.en.resx
Bu
dosyalarda her bir dil için karşılık gelen metinleri saklayabilirsiniz.
Örneğin:
HomeController.tr.resx
<data name="WelcomeMessage" xml:space="preserve"> <value>Hoş geldiniz!value> data> |
HomeController.en.resx
<data name="WelcomeMessage" xml:space="preserve"> <value>Welcome!value> data> |
Artık
uygulamanız kullanıcıya göre otomatik olarak “Hoş geldiniz!” veya “Welcome!”
mesajını gösterebilir.
Kodda Localization Nasıl Kullanılır?
Localization’ı
kullanmak için sınıfınıza IStringLocalizer arayüzünü ekleyin. Bu arayüz, dil
dosyalarındaki metinleri dinamik olarak çağırmanıza olanak tanır.
Örnek:
public class HomeController : Controller { private readonly IStringLocalizer<HomeController> _localizer; public HomeController(IStringLocalizer<HomeController> localizer) { _localizer = localizer; } public IActionResult Index() { ViewBag.WelcomeMessage = _localizer["WelcomeMessage"]; return View(); } } |
Bu örnekte, WelcomeMessage anahtarına karşılık gelen çeviri,
kullanıcının diline göre seçilecek ve Index sayfasında görüntülenecektir.
Kullanıcı
Dilini Otomatik Algılama
Kullanıcının tarayıcı dilini algılamak ve buna göre içerik
göstermek için RequestLocalizationOptions ayarlarını kullanabilirsiniz.
Kullanıcı Türkçe tarayıcı ile giriş yaparsa, uygulama otomatik olarak Türkçe
dilini seçer.
Localization’ın Faydaları
- -Kullanıcı Deneyimini Artırır: Kendi dilinde hizmet almak,
kullanıcıların daha rahat hissetmelerini sağlar.
- -Global Erişim Sağlar: Farklı dilleri destekleyerek
daha geniş bir kitleye hitap edebilirsiniz.
- -Kültürel Uyumluluk: Farklı bölgelerden gelen
kullanıcılar için kültürel olarak uygun mesajlar verebilirsiniz.
-.NET Core MVC’de Localization kullanarak uygulamanızı daha
erişilebilir hale getirmek oldukça kolaydır. Bu süreçte kullandığınız kaynak
dosyalar ve çeviri yöntemleriyle farklı dillerde aynı kaliteli kullanıcı -deneyimini sağlayabilirsiniz.
Uygulamanızı dünya çapında kullanılabilir hale getirmek için
şimdi bir adım atın ve Localization’ın gücünden faydalanarak kullanıcılarınıza
kendi dillerinde hitap edin.