using System.Collections.Generic; using System.Globalization; namespace Kreta.Framework.Util { /// /// LCID alapján megmondja, hogy hanyadik indexű nyelv mezőt kell nézni. /// public class LanguageUtil { static Dictionary m_LanguageIndexes = null; private static LanguageUtil _instance; public static LanguageUtil Instance { get { if (_instance == null) { _instance = new LanguageUtil(); } return _instance; } } private LanguageUtil() { InitializeLanguageIndexes(); } static void InitializeLanguageIndexes() { Dictionary result = new Dictionary(); using (SDA.DataProvider.SDAConnection connection = SDAServer.Instance.CreateConnection()) { connection.Open(); using (SDA.DataProvider.SDACommand command = connection.CreateCommand()) { command.CommandText = @"select C_VALUE from T_SYSTEMPARAMETER where C_NAME = 'LANGUAGES'"; string temp = command.ExecuteScalar() as string; if (temp != null) { string[] languages = temp.Split(',', ';'); for (int index = 0; index < languages.Length; index++) { result[languages[index].Trim().ToLower()] = index; } } } } m_LanguageIndexes = result; } public int GetLanguageIndex(int LCID) { var cultureInfo = new CultureInfo(LCID); string key = cultureInfo.Name.ToLower().Substring(0, 2); if (m_LanguageIndexes.TryGetValue(key, out int value)) { return value; } if (!cultureInfo.IsNeutralCulture) { return GetLanguageIndex(cultureInfo.Parent.LCID); } return 0; } } }