-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLocalizationHelper.cs
More file actions
44 lines (36 loc) · 1.27 KB
/
Copy pathLocalizationHelper.cs
File metadata and controls
44 lines (36 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System.Globalization;
using System.Reflection;
using System.Resources;
namespace AIAFBackupTool;
/// <summary>
/// Thin localization accessor.
/// Uses Resources/Strings.resx as English fallback and culture-specific
/// Resources/Strings.xx.resx files when available.
/// </summary>
internal static class L
{
private static readonly ResourceManager ResourceManager = new(
"AIAFBackupTool.Resources.Strings",
Assembly.GetExecutingAssembly());
public static string CurrentLanguage { get; private set; } = "auto";
public static void ApplyLanguage(string language)
{
CurrentLanguage = string.IsNullOrWhiteSpace(language) ? "auto" : language;
CultureInfo culture = CurrentLanguage switch
{
"de-DE" => new CultureInfo("de-DE"),
"en-US" => new CultureInfo("en-US"),
_ => CultureInfo.InstalledUICulture
};
CultureInfo.CurrentUICulture = culture;
CultureInfo.CurrentCulture = culture;
}
public static string T(string key)
{
return ResourceManager.GetString(key, CultureInfo.CurrentUICulture) ?? $"[{key}]";
}
public static string F(string key, params object[] args)
{
return string.Format(CultureInfo.CurrentCulture, T(key), args);
}
}