#region Imports
|
|
using System.Data;
|
using System.IO;
|
using System.Reflection;
|
using System.Windows.Forms;
|
|
#endregion
|
|
namespace DPumpHydr.WinFrmUI.RLT.Localization.Poison
|
{
|
#region PoisonLocalizeLocalization
|
|
internal class PoisonLocalize
|
{
|
private DataSet languageDataset;
|
|
public static string DefaultLanguage()
|
{
|
return "en";
|
}
|
|
public static string CurrentLanguage()
|
{
|
string language = Application.CurrentCulture.TwoLetterISOLanguageName;
|
//string language = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName;
|
if (language.Length == 0)
|
{
|
language = DefaultLanguage();
|
}
|
|
return language.ToLower();
|
}
|
|
public PoisonLocalize(string ctrlName)
|
{
|
ImportManifestResource(ctrlName);
|
}
|
|
public PoisonLocalize(Control ctrl)
|
{
|
ImportManifestResource(ctrl.Name);
|
}
|
|
private void ImportManifestResource(string ctrlName)
|
{
|
Assembly callingAssembly = Assembly.GetEntryAssembly();
|
Stream xmlStream = null;
|
string localizationFilename;
|
if (callingAssembly != null)
|
{
|
localizationFilename = callingAssembly.GetName().Name + ".Localization.Poison." + CurrentLanguage() + "." + ctrlName + ".xml";
|
xmlStream = callingAssembly.GetManifestResourceStream(localizationFilename);
|
}
|
|
if (xmlStream == null)
|
{
|
callingAssembly = Assembly.GetCallingAssembly();
|
localizationFilename = callingAssembly.GetName().Name + ".Localization.Poison." + CurrentLanguage() + "." + ctrlName + ".xml";
|
xmlStream = callingAssembly.GetManifestResourceStream(localizationFilename);
|
|
if (xmlStream == null)
|
{
|
localizationFilename = callingAssembly.GetName().Name + ".Localization.Poison." + DefaultLanguage() + "." + ctrlName + ".xml";
|
xmlStream = callingAssembly.GetManifestResourceStream(localizationFilename);
|
}
|
}
|
|
if (languageDataset == null)
|
{
|
languageDataset = new();
|
}
|
|
if (xmlStream != null)
|
{
|
DataSet importDataset = new();
|
importDataset.ReadXml(xmlStream);
|
|
languageDataset.Merge(importDataset);
|
xmlStream.Close();
|
}
|
}
|
|
private static string ConvertVar(object var)
|
{
|
if (var == null)
|
{
|
return "";
|
}
|
|
return var.ToString();
|
}
|
|
public string Translate(string key)
|
{
|
if (string.IsNullOrEmpty(key))
|
{
|
return "";
|
}
|
|
if (languageDataset == null)
|
{
|
return "&" + key;
|
}
|
|
if (languageDataset.Tables["Localization"] == null)
|
{
|
return "&" + key;
|
}
|
|
DataRow[] languageRows = languageDataset.Tables["Localization"].Select("Key='" + key + "'");
|
if (languageRows.Length <= 0)
|
{
|
return "~" + key;
|
}
|
|
return languageRows[0]["Value"].ToString();
|
}
|
|
public string Translate(string key, object var1)
|
{
|
string str = Translate(key);
|
return str.Replace("#1", ConvertVar(var1));
|
}
|
|
public string Translate(string key, object var1, object var2)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
return str.Replace("#2", ConvertVar(var2));
|
}
|
|
public string GetValue(string key, object var1, object var2, object var3)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
str = str.Replace("#2", ConvertVar(var2));
|
return str.Replace("#3", ConvertVar(var3));
|
}
|
|
public string GetValue(string key, object var1, object var2, object var3, object var4)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
str = str.Replace("#2", ConvertVar(var2));
|
str = str.Replace("#3", ConvertVar(var3));
|
return str.Replace("#4", ConvertVar(var4));
|
}
|
|
public string GetValue(string key, object var1, object var2, object var3, object var4, object var5)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
str = str.Replace("#2", ConvertVar(var2));
|
str = str.Replace("#3", ConvertVar(var3));
|
str = str.Replace("#4", ConvertVar(var4));
|
return str.Replace("#5", ConvertVar(var5));
|
}
|
|
public string GetValue(string key, object var1, object var2, object var3, object var4, object var5, object var6)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
str = str.Replace("#2", ConvertVar(var2));
|
str = str.Replace("#3", ConvertVar(var3));
|
str = str.Replace("#4", ConvertVar(var4));
|
str = str.Replace("#5", ConvertVar(var5));
|
return str.Replace("#6", ConvertVar(var6));
|
}
|
|
public string GetValue(string key, object var1, object var2, object var3, object var4, object var5, object var6, object var7)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
str = str.Replace("#2", ConvertVar(var2));
|
str = str.Replace("#3", ConvertVar(var3));
|
str = str.Replace("#4", ConvertVar(var4));
|
str = str.Replace("#5", ConvertVar(var5));
|
str = str.Replace("#6", ConvertVar(var6));
|
return str.Replace("#7", ConvertVar(var7));
|
}
|
|
public string GetValue(string key, object var1, object var2, object var3, object var4, object var5, object var6, object var7, object var8)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
str = str.Replace("#2", ConvertVar(var2));
|
str = str.Replace("#3", ConvertVar(var3));
|
str = str.Replace("#4", ConvertVar(var4));
|
str = str.Replace("#5", ConvertVar(var5));
|
str = str.Replace("#6", ConvertVar(var6));
|
str = str.Replace("#7", ConvertVar(var7));
|
return str.Replace("#8", ConvertVar(var8));
|
}
|
|
public string GetValue(string key, object var1, object var2, object var3, object var4, object var5, object var6, object var7, object var8, object var9)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
str = str.Replace("#2", ConvertVar(var2));
|
str = str.Replace("#3", ConvertVar(var3));
|
str = str.Replace("#4", ConvertVar(var4));
|
str = str.Replace("#5", ConvertVar(var5));
|
str = str.Replace("#6", ConvertVar(var6));
|
str = str.Replace("#7", ConvertVar(var7));
|
str = str.Replace("#8", ConvertVar(var8));
|
return str.Replace("#9", ConvertVar(var9));
|
}
|
|
public string GetValue(string key, object var1, object var2, object var3, object var4, object var5, object var6, object var7, object var8, object var9, object var10)
|
{
|
string str = Translate(key);
|
str = str.Replace("#1", ConvertVar(var1));
|
str = str.Replace("#2", ConvertVar(var2));
|
str = str.Replace("#3", ConvertVar(var3));
|
str = str.Replace("#4", ConvertVar(var4));
|
str = str.Replace("#5", ConvertVar(var5));
|
str = str.Replace("#6", ConvertVar(var6));
|
str = str.Replace("#7", ConvertVar(var7));
|
str = str.Replace("#8", ConvertVar(var8));
|
str = str.Replace("#9", ConvertVar(var9));
|
return str.Replace("#10", ConvertVar(var10));
|
}
|
}
|
|
#endregion
|
}
|