ASP.NET Localization ve Globalization Rehberi


ASP.NET Localization ve Globalization Rehberi

Günümüzde yazılım uygulamalarının dünya genelinde farklı dillere ve kültürlere uyarlanarak yayınlanması büyük önem taşıyor. ASP.NET ile geliştirilen projelerde localization (yerelleştirme) ve globalization (küreselleştirme) özelliklerinin etkin kullanımı, uygulamanızın daha geniş bir kitleye ulaşmasını sağlar. Bu yazıda "ASP.NET Localization ve Globalization" konusunu teknik detaylarıyla ele alacak, SEO uyumlu ipuçları ve örnek kodlarla süreci sade şekilde açıklayacağız.

ASP.NET'te Globalization ve Localization Nedir?

ASP.NET'te Globalization, bir uygulamanın çok kültürlü ve çok dilli gereksinimleri karşılayacak şekilde tasarlanmasını ifade eder. Böylece uygulamanız tarih, saat, sayı formatlarını ve yerelleştirilmiş içerikleri farklı kültürlere göre otomatik uyarlayabilir. Localization ise, belirli bir dil veya kültüre özgü kaynakların (metinler, hata mesajları, görseller vb.) kullanıma sunulmasını sağlar.

Globalization ve Localization Farkı

Globalization, yapısal olarak uygulamayı çok dilli yapmaya imkan tanırken; Localization ise her dile/kültüre özel içeriklerin oluşturulmasını ve kullanılmasını sağlar. ASP.NET bu iki kavramı ayrı ayrı yapılandırabilmenize olanak tanıyarak esnek bir geliştirme ortamı sunar.

ASP.NET ile Localization ve Globalization Nasıl Yapılır?

ASP.NET projenizde localization ve globalization süreçlerini yönetmek için aşağıdaki adımları takip edebilirsiniz:

  • Kültür ve dil ayarlarını yapılandırın.
  • Kaynak dosyaları (.resx) oluşturun.
  • Uygulamada doğru kaynakları otomatik seçmek için RequestLocalization middleware’ini kullanın.

web.config ile Kültür Ayarı

Uygulamanızın varsayılan kültür ve UI kültürünü web.config üzerinden aşağıdaki gibi ayarlayabilirsiniz:

<globalization culture="tr-TR" uiCulture="tr" />

.NET Core'da Localization Middleware Kullanımı

ASP.NET Core projelerinde, localization işlemini middleware ile şu şekilde ekleyebilirsiniz:

public void ConfigureServices(IServiceCollection services)
{
    services.AddLocalization(options => options.ResourcesPath = "Resources");
    services.AddControllersWithViews()
            .AddViewLocalization();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    var supportedCultures = new[] { "en-US", "tr-TR" };
    var localizationOptions = new RequestLocalizationOptions()
        .SetDefaultCulture("tr-TR")
        .AddSupportedCultures(supportedCultures)
        .AddSupportedUICultures(supportedCultures);

    app.UseRequestLocalization(localizationOptions);
}

.resx Kaynak Dosyası ile Lokalizasyon

Her dil için ayrı .resx dosyası oluşturabilir ve metinlerinizi kolayca yönetebilirsiniz. Örneğin:

// Resources/SharedResource.tr.resx
// Resources/SharedResource.en.resx

// Controller veya Razor View'da
@inject IStringLocalizer<SharedResource> localizer
<p>@localizer["WelcomeMessage"]</p>

Sonuç: Globalleşen Dünyada ASP.NET Localization ve Globalization

ASP.NET ile localization ve globalization uygulayarak, yazılımınızı çok dilli ve çok kültürlü kullanıma açabilirsiniz. Bu sayede hem kullanıcı deneyimini arttırır hem de çok daha geniş bir kullanıcı tabanına hitap edebilirsiniz. Yalnızca teknik olarak değil, SEO açısından da farklı kültür ve dilleri destekleyen sayfalarınız Google gibi arama motorlarında daha görünür hale gelir. Uygulamanızı bir üst seviyeye taşımak için "ASP.NET Localization ve Globalization" adımlarını mutlaka devreye alın!