LANCommander/LANCommander.Launcher/Services/LocalizationService.cs
Pat Hartl 5a32bbf890 Add localization support to launcher
Adds localization across the launcher and includes English, German, Spanish, French, Italian, Japanese, Korean, Dutch, Portuguese, Ukranian, and Chinese. These localizations were generated by Claude 3.5 and need to be reviewed by a human for accuracy.
2025-08-18 21:29:38 -05:00

45 lines
No EOL
1.5 KiB
C#

using System.Globalization;
using System.Resources;
using LANCommander.Launcher.Models;
namespace LANCommander.Launcher.Services
{
public class LocalizationService
{
private readonly Settings _settings;
private readonly ResourceManager _resourceManager;
public LocalizationService()
{
_settings = SettingService.GetSettings();
_resourceManager = new ResourceManager("LANCommander.Launcher.Resources.SharedResources", typeof(LocalizationService).Assembly);
var culture = new CultureInfo(_settings.Culture);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
}
public string GetString(string key)
{
return _resourceManager.GetString(key) ?? key;
}
public string GetString(string key, params object[] args)
{
var format = _resourceManager.GetString(key) ?? key;
return string.Format(CultureInfo.CurrentCulture, format, args);
}
public string GetString(string key, CultureInfo culture)
{
return _resourceManager.GetString(key, culture) ?? key;
}
public string GetString(string key, CultureInfo culture, params object[] args)
{
var format = _resourceManager.GetString(key, culture) ?? key;
return string.Format(culture, format, args);
}
}
}