public static string GetDescription(Enum value, MultilingualDictionaryType dictType) { if (value == null) { return(string.Empty); } if (dictType == MultilingualDictionaryType.Japanese) { string description = value.ToString(); var fieldInfo = value.GetType().GetField(description); var attributes = (EnumDescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(EnumDescriptionAttribute), false); if (attributes != null && attributes.Length > 0) { description = attributes[0].Description; } return(description); } else { string dictTypeHeader = dictType.ToString(); string dictTypeKey = string.Format("{0}_{1}.{2}", dictTypeHeader, value.GetType().ToString(), value.ToString()); return(DictionaryInfo.GetDictValueForDictKeyForEnum(dictTypeKey)); } }
/// <summary> /// ini設定ファイルを読込 /// </summary> public static void GetStationFromFile(string file) { //iniフォルダ iniFileDir = Path.GetDirectoryName(file); //CanOutputLog canOutputLog = Utility.ToInt(GetIniFileString("MAINTE", "CanOutputLog", file)) == 0 ? false : true; //ShowExample showExample = Utility.ToInt(GetIniFileString("MAINTE", "ShowExample", file)) == 0 ? false : true; //moveMessage moveMessage = Utility.ToInt(GetIniFileString("MAINTE", "MoveMessage", file)) == 0 ? false : true; //mediaDevice string mediaDeviceValue = GetIniFileString("MAINTE", "MediaDevice", file); foreach (MediaDeivceType type in Enum.GetValues(typeof(MediaDeivceType))) { if (mediaDeviceValue == type.ToString() || mediaDeviceValue == EnumHelper.GetDescription(type)) { mediaDevice = type; break; } } //MediaReadaheadTime mediaReadaheadTime = Utility.ToInt(GetIniFileString("MAINTE", "MediaReadaheadTime", file)); if (mediaReadaheadTime <= 10) { mediaReadaheadTime = 10; } //MultilingualDictionaryType string multiDictTypeValue = GetIniFileString("MAINTE", "MultilingualDictionaryType", file); foreach (MultilingualDictionaryType type in Enum.GetValues(typeof(MultilingualDictionaryType))) { if (multiDictTypeValue == EnumHelper.GetDescription(type)) { multiDictType = type; break; } } DictionaryInfo.InitMultilingualDictionaryForMessage(); //WebApiAddress webApiAddress = GetIniFileString("MAINTE", "WebApiAddress", file); playerID = GetIniFileString("MAINTE", "PlayerID", file); }
/// <summary> /// 言語辞書ロード /// </summary> /// <param name="multilingualDictionaryList">言語辞書</param> /// <param name="dictList">言語辞書List</param> /// <param name="dictType">言語辞書種別</param> public static void InitMultilingualDictionary(Dictionary <string, MultilingualDictionary> multilingualDictionaryList, List <List <string> > dictList, MultilingualDictionaryType dictType) { try { multilingualDictionaryList.Clear(); string dictTypeHeader = dictType.ToString(); foreach (List <string> dictionaryNode in dictList) { string dictKey = dictionaryNode[0]; string dictValue = dictionaryNode[1]; string multiDictKey = string.Format("{0}_{1}", dictTypeHeader, dictKey); if (multilingualDictionaryList.ContainsKey(multiDictKey) == false) { multilingualDictionaryList.Add(multiDictKey, new MultilingualDictionary(multiDictKey, dictValue)); } else { ////後は準 //multilingualDictionaryList.Remove(multiDictKey); //multilingualDictionaryList.Add(multiDictKey, new MultilingualDictionary(multiDictKey, dictValue)); } } } catch (Exception ex) { throw ex; } }
/// <summary> /// 言語辞書ロード /// </summary> /// <param name="multilingualDictionaryList">言語辞書</param> /// <param name="dictFile">言語辞書ファイル</param> /// <param name="dictType">言語辞書種別</param> public static void InitMultilingualDictionary(Dictionary <string, MultilingualDictionary> multilingualDictionaryList, string dictFile, MultilingualDictionaryType dictType) { try { if (File.Exists(dictFile) == false) { return; } multilingualDictionaryList.Clear(); string dictTypeHeader = dictType.ToString(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(dictFile); XmlElement root = xmlDoc.DocumentElement; XmlNodeList dictionaryNodeList = root.SelectNodes("Dictionary"); foreach (XmlNode dictionaryNode in dictionaryNodeList) { string dictKey = dictionaryNode.Attributes["Key"].Value; string dictValue = dictionaryNode.InnerText.Trim().Replace("\\r", "\r").Replace("\\n", "\n"); string multiDictKey = string.Format("{0}_{1}", dictTypeHeader, dictKey); if (multilingualDictionaryList.ContainsKey(multiDictKey) == false) { multilingualDictionaryList.Add(multiDictKey, new MultilingualDictionary(multiDictKey, dictValue)); } else { ////後は準 //multilingualDictionaryList.Remove(multiDictKey); //multilingualDictionaryList.Add(multiDictKey, new MultilingualDictionary(multiDictKey, dictValue)); } } } catch (Exception ex) { throw ex; } }
/// <summary> /// 言語辞書取得 /// </summary> /// <param name="multilingualDictionaryList">言語辞書</param> /// <param name="dictKey">言語辞書key</param> /// <param name="dictType">言語辞書種別</param> /// <returns></returns> public static string GetDictValueForDictKey(Dictionary <string, MultilingualDictionary> multilingualDictionaryList, string dictKey, MultilingualDictionaryType dictType) { try { string reDictionary = string.Empty; string dictTypeHeader = dictType.ToString(); string multiDictKey = string.Format("{0}_{1}", dictTypeHeader, dictKey); if (multilingualDictionaryList.ContainsKey(multiDictKey)) { reDictionary = (multilingualDictionaryList[multiDictKey] as MultilingualDictionary).DictValue; } return(reDictionary); } catch { return(string.Empty); } }