SystemTrayMenu/Utilities/Language.cs

48 lines
1.5 KiB
C#

using System.Globalization;
using System.Resources;
using System.Threading;
using SystemTrayMenu.Properties;
using SystemTrayMenu.UserInterface;
namespace SystemTrayMenu.Utilities
{
internal static class Language
{
internal static CultureInfo Culture;
internal static void Initialize()
{
if (string.IsNullOrEmpty(
Settings.Default.CurrentCultureInfoName))
{
Settings.Default.CurrentCultureInfoName = "en";
CultureInfo currentCulture =
Thread.CurrentThread.CurrentCulture;
foreach (string language in MenuDefines.Languages)
{
string twoLetter = currentCulture.Name.
Substring(0, 2);
if (language == currentCulture.Name ||
language == twoLetter)
{
Settings.Default.
CurrentCultureInfoName = language;
}
}
Settings.Default.Save();
}
Culture = CultureInfo.CreateSpecificCulture(
Settings.Default.CurrentCultureInfoName);
}
internal static string Translate(string id)
{
ResourceManager rm = new ResourceManager(
"SystemTrayMenu.Resources.lang",
typeof(Menu).Assembly);
return rm.GetString(id, Culture);
}
}
}