🌍 Globalization = Localization
Reach global audience. Globalization adds localization. Multiple languages, cultures, formats.
📝 Setup
// Program.cs
builder.Services.AddLocalization(options =>
options.ResourcesPath = "Resources");
builder.Services.AddControllersWithViews()
.AddViewLocalization()
.AddDataAnnotationsLocalization();
builder.Services.Configure(options =>
{
var supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("tr-TR"),
new CultureInfo("de-DE"),
new CultureInfo("fr-FR")
};
options.DefaultRequestCulture = new RequestCulture("en-US");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
});
app.UseRequestLocalization();
// Resource files
// Resources/Controllers/HomeController.en-US.resx
// Resources/Views/Home/Index.en-US.resx
// Resources/Shared/SharedResources.en-US.resx
🎯 Using Localization
// In Controller
public class HomeController : Controller
{
private readonly IStringLocalizer _localizer;
public HomeController(IStringLocalizer localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
ViewBag.Title = _localizer["Welcome"];
return View();
}
}
// In View
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@Localizer["Welcome"]
@Localizer["Description"]
// Shared Resources
public class SharedResources
{
}
public class HomeController : Controller
{
private readonly IStringLocalizer _localizer;
public HomeController(IStringLocalizer localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
var message = _localizer["SharedMessage"];
return View();
}
}
// Data Annotations
public class User
{
[Required(ErrorMessage = "NameRequired")]
[Display(Name = "Name")]
public string Name { get; set; }
}
// Globalization Tips
- Use resource files for strings
- Support multiple cultures
- Use IStringLocalizer for DI
- Use IViewLocalizer in views
- Format dates, numbers, currency
💡 Globalization Tips
- Use resource files for strings
- Support multiple cultures
- Use IStringLocalizer for DI
- Use IViewLocalizer in views
- Format dates, numbers, currency
“Globalization reaches global audience. Multiple languages, cultures. Essential for international apps.”
