public static bool LoadCaptionResource(string sCaptionFile) { const int MENU_TYPE = 0; const int BUTTON_TYPE = 1; const int OTHER_TYPE = 2; System.IO.FileStream fs = null; System.Xml.XmlTextReader xtr = null; GlobalVariable.gLanguageData lang; int iCapType = 0; string[] sTemp = new string[5]; int i; CaptionLangSort langSort; try { GlobalVariable.gaButtonLanguage.Clear(); GlobalVariable.gaMenuLanguage.Clear(); GlobalVariable.gaTextLanguage.Clear(); // Open XML File if (File.Exists(sCaptionFile) == false) { return(true); } fs = new System.IO.FileStream(sCaptionFile, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite); // Set xmlReader xtr = new XmlTextReader(fs); while (xtr.Read()) { switch (xtr.NodeType) { case XmlNodeType.Element: switch (xtr.Name.ToUpper()) { case "BUTTON": iCapType = BUTTON_TYPE; break; case "MENU": iCapType = MENU_TYPE; break; case "OTHER": iCapType = OTHER_TYPE; break; case "TEXT": xtr.MoveToAttribute("Key"); lang.Key = xtr.Value.Trim().ToUpper(); i = 0; while (xtr.Read()) { if (xtr.NodeType == XmlNodeType.Text) { sTemp[i] = xtr.Value.Trim(); i++; } else if (xtr.NodeType == XmlNodeType.EndElement && xtr.Name.ToUpper() == "TEXT") { break; } } // 2020-01-28-김미경 : message 를 다국어 버전으로 만들기 위하여 배열을 늘림 lang.Lang_1 = sTemp[0]; lang.Lang_2 = sTemp[1]; lang.Lang_3 = sTemp[2]; lang.Lang_4 = sTemp[3]; lang.Lang_5 = sTemp[4]; switch (iCapType) { case BUTTON_TYPE: GlobalVariable.gaButtonLanguage.Add(lang); break; case MENU_TYPE: GlobalVariable.gaMenuLanguage.Add(lang); break; case OTHER_TYPE: GlobalVariable.gaTextLanguage.Add(lang); break; } break; } break; } } langSort = new CaptionLangSort(); GlobalVariable.gaButtonLanguage.Sort(langSort); GlobalVariable.gaMenuLanguage.Sort(langSort); GlobalVariable.gaTextLanguage.Sort(langSort); } catch (Exception) { if (!(xtr == null)) { CmnFunction.ShowMsgBox(GetMessage(8) + "\r\n" + "\r\n" + "\'" + xtr.Name + xtr.Value + "\'", "XML Read Error", MessageBoxButtons.OK, System.Convert.ToInt32(MessageBoxIcon.Warning)); } } finally { // Close XML File if (!(xtr == null)) { xtr.Close(); } if (!(fs == null)) { fs.Close(); } } return(true); }
public static bool LoadCaptionResource() { const int MENU_TYPE = 0; const int BUTTON_TYPE = 1; const int OTHER_TYPE = 2; System.IO.FileStream fs = null; System.Xml.XmlTextReader xtr = null; GlobalVariable.gLanguageData lang; int iCapType = 0; string[] sTemp = new string[3]; int i; CaptionLangSort langSort; try { GlobalVariable.gaButtonLanguage.Clear(); GlobalVariable.gaMenuLanguage.Clear(); GlobalVariable.gaTextLanguage.Clear(); // Open XML File if (Microsoft.VisualBasic.FileSystem.Dir(modGlobalConstant.MP_CAPTION_FILE, 0) == "") { return(true); } fs = new System.IO.FileStream(modGlobalConstant.MP_CAPTION_FILE, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite); // Set xmlReader xtr = new XmlTextReader(fs); while (xtr.Read()) { switch (xtr.NodeType) { case XmlNodeType.Element: switch (xtr.Name.ToUpper()) { case "BUTTON": iCapType = BUTTON_TYPE; break; case "MENU": iCapType = MENU_TYPE; break; case "OTHER": iCapType = OTHER_TYPE; break; case "TEXT": xtr.MoveToAttribute("Key"); lang.Key = xtr.Value.ToUpper(); i = 0; while (xtr.Read()) { if (xtr.NodeType == XmlNodeType.Text) { sTemp[i] = xtr.Value; i++; } else if (xtr.NodeType == XmlNodeType.EndElement && xtr.Name.ToUpper() == "TEXT") { break; } } lang.Lang_1 = sTemp[0]; lang.Lang_2 = sTemp[1]; lang.Lang_3 = sTemp[2]; switch (iCapType) { case BUTTON_TYPE: GlobalVariable.gaButtonLanguage.Add(lang); break; case MENU_TYPE: GlobalVariable.gaMenuLanguage.Add(lang); break; case OTHER_TYPE: GlobalVariable.gaTextLanguage.Add(lang); break; } break; } break; } } langSort = new CaptionLangSort(); GlobalVariable.gaButtonLanguage.Sort(langSort); GlobalVariable.gaMenuLanguage.Sort(langSort); GlobalVariable.gaTextLanguage.Sort(langSort); } catch (Exception) { if (!(xtr == null)) { CmnFunction.ShowMsgBox("Occured error in read language file." + "\r\n" + "\r\n" + "\'" + xtr.Name + xtr.Value + "\'", "FMB Client", MessageBoxButtons.OK, 1); } } finally { // Close XML File if (!(xtr == null)) { xtr.Close(); } if (!(fs == null)) { fs.Close(); } } return(true); }