using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Project { public static class Lang { ////main public static string OK { get; set; } public static string Q_EXIT { get; set; } public static string ERROR { get; set; } public static string NO { get; set; } public static string YES { get; set; } public static string MENU_RESET { get; set; } public static string MENU_LOGIN { get; set; } public static string MENU_LOGOUT { get; set; } public static string MENU_RESULT { get; set; } public static string MENU_MODELEDIT { get; set; } public static string MENU_SETUP { get; set; } public static string RESULT { get; set; } public static string LOG { get; set; } public static string HISTORY { get; set; } public static string NOT_READY { get; set; } public static string CAN_NOT_RUN_AUTOMODE { get; set; } public static string m_오류_AIROFF { get; set; } public static string m_오류_AIRDETECT { get; set; } public static string m_오류_SAFTYAREA { get; set; } public static string m_오류_REQUIRELOTLIST { get; set; } public static string m_진행중 { get; set; } public static string m_준비완료 { get; set; } public static string m_트레이로드 { get; set; } public static string m_시작조건검사 { get; set; } public static string m_시작조건프로그램 { get; set; } public static string m_시작조건장치 { get; set; } public static string m_카메라촬영 { get; set; } public static string m_이미지수집 { get; set; } public static string m_비젼검사_원점 { get; set; } public static string m_비젼검사_DOT { get; set; } public static string m_LASERMARKING { get; set; } public static string m_AIRBLOW { get; set; } public static string m_트레이언로드 { get; set; } public static void CreateFile() { //utf8파일로 파일을 생성한다. //if (System.IO.File.Exists(FileName)) System.IO.File.Delete(FileName); iniHelper.CreateFile(); //System.IO.File.WriteAllText(FileName, "//INI FILE", System.Text.Encoding.Unicode); int i = 1; SetINIValue(string.Format("MSG{0:0000}", i++), Lang.Q_EXIT); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.OK); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.ERROR); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.NO); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.YES); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_RESULT); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_LOGOUT); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_LOGIN); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_MODELEDIT); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_SETUP); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_RESET); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.RESULT); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.LOG); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.HISTORY); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.NOT_READY); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.CAN_NOT_RUN_AUTOMODE); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_AIROFF); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_AIRDETECT); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_SAFTYAREA); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_REQUIRELOTLIST); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_진행중); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_준비완료); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_트레이로드); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건검사); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건프로그램); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건장치); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_카메라촬영); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_이미지수집); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_비젼검사_원점 ); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_비젼검사_DOT ); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_LASERMARKING ); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_AIRBLOW); SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_트레이언로드); iniHelper.Flush(); } public static bool Loading(string langName) { Lang.SelectedLang = langName; iniHelper = new AR.INIHelper(FileName); int i = 1; Lang.Q_EXIT = GetINIValue(string.Format("MSG{0:0000}", i++), "종료하시겠습니까?"); Lang.OK = GetINIValue(string.Format("MSG{0:0000}", i++), "확인"); Lang.ERROR = GetINIValue(string.Format("MSG{0:0000}", i++), "오류"); Lang.NO = GetINIValue(string.Format("MSG{0:0000}", i++), "아니오"); Lang.YES = GetINIValue(string.Format("MSG{0:0000}", i++), "예"); Lang.MENU_RESULT = GetINIValue(string.Format("MSG{0:0000}", i++), "History"); Lang.MENU_LOGOUT = GetINIValue(string.Format("MSG{0:0000}", i++), "Logout"); Lang.MENU_LOGIN = GetINIValue(string.Format("MSG{0:0000}", i++), "Login"); Lang.MENU_MODELEDIT = GetINIValue(string.Format("MSG{0:0000}", i++), "Model Editor"); Lang.MENU_SETUP = GetINIValue(string.Format("MSG{0:0000}", i++), "Setting"); Lang.MENU_RESET = GetINIValue(string.Format("MSG{0:0000}", i++), "Clear"); Lang.RESULT = GetINIValue(string.Format("MSG{0:0000}", i++), "Result"); Lang.LOG = GetINIValue(string.Format("MSG{0:0000}", i++), "Log"); Lang.HISTORY = GetINIValue(string.Format("MSG{0:0000}", i++), "History"); Lang.NOT_READY = GetINIValue(string.Format("MSG{0:0000}", i++), "Input sensor condition not completed."); Lang.CAN_NOT_RUN_AUTOMODE = "AUTO-RUN MODE{n}[자동실행] 중에는 사용할 수 없습니다{n}중지 후 다시 시도하세요"; Lang.m_오류_AIROFF = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR OFF{n}AIR 공급상태가 [OFF] 입니다{n}전면의 [AIR S/W]를 누르세요{n}출력포트 : Y004"); Lang.m_오류_AIRDETECT = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR NOT DETECTED{n}장비 전면커버를 열고 AIR 감지 센서의 출력을 확인합니다{n}감지센서 : X005"); Lang.m_오류_SAFTYAREA = GetINIValue(string.Format("MSG{0:0000}", i++), "SAFTY AREA SENSOR ERROR{n}매거진 투입구 안전 센서가 감지되었습니다{n}감지센서 : X00A"); Lang.m_오류_REQUIRELOTLIST = GetINIValue(string.Format("MSG{0:0000}", i++), "REQUIRE LOT-LIST{n}LOT 목록이 조회 되어야 합니다{n}바코드를 이용하여 A/L TAG를 입력하세요"); Lang.m_진행중 = GetINIValue(string.Format("MSG{0:0000}", i++), "진행 중"); Lang.m_준비완료 = GetINIValue(string.Format("MSG{0:0000}", i++), "준비 완료"); Lang.m_트레이로드 = GetINIValue(string.Format("MSG{0:0000}", i++), "TRAY LOAD"); Lang.m_시작조건검사 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK INIT"); Lang.m_시작조건프로그램 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK S/W"); Lang.m_시작조건장치 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK H/W"); Lang.m_카메라촬영 = GetINIValue(string.Format("MSG{0:0000}", i++), "CAMERA ON"); Lang.m_이미지수집 = GetINIValue(string.Format("MSG{0:0000}", i++), "GRAB IMAGE"); Lang.m_비젼검사_원점 = GetINIValue(string.Format("MSG{0:0000}", i++), "IMAGE(ORIGNE)"); Lang.m_비젼검사_DOT = GetINIValue(string.Format("MSG{0:0000}", i++), "IMAGE(DOT)"); Lang.m_LASERMARKING = GetINIValue(string.Format("MSG{0:0000}", i++), "LASER MARKING"); Lang.m_AIRBLOW = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR BLOW"); Lang.m_트레이언로드 = GetINIValue(string.Format("MSG{0:0000}", i++), "TRAY UNLOAD"); Type thClass = typeof(Lang); foreach (var method in thClass.GetMethods()) { var parameters = method.GetParameters(); if (method.Name.StartsWith("get_m_")==false) continue; //set은 사용하지 않는다. //key string keyname = method.Name.Substring(4); string methodName = method.Name; string valuetype = method.ReturnType.Name.ToLower(); var odata = thClass.GetMethod(methodName).Invoke(null, null).ToString(); if(odata.Contains("{n}")) { var ndata = odata.Replace("{n}", "\n"); thClass.GetMethod("set_" + keyname).Invoke(thClass, new object[] { ndata }); } } //171104 없다면 생성 if (!isExist()) CreateFile(); return true; } #region "Common " public static Boolean ReLoad() { return Loading(SelectedLang); } private static AR.INIHelper iniHelper; private static string GetINIValue(string key, string def = "") { if (!System.IO.File.Exists(Lang.FileName)) return def; string retval = iniHelper.get_Data("lang", key, def); return retval; } private static void SetINIValue(string key, string value) { iniHelper.set_Data("lang", key, value); } public static Boolean isExist() { return System.IO.File.Exists(FileName); } ////local data private static string _path = ""; private static string _selectedLang = ""; public static string SelectedLang { get { if ((string.IsNullOrWhiteSpace(_selectedLang))) { return "kor"; } else { string fullname = Path + "\\" + _selectedLang + ".ini"; //if ((!System.IO.File.Exists(fullname))) //{ // CreateFile(); //} return _selectedLang; } } set { _selectedLang = value; } } public static string Path { get { if (string.IsNullOrWhiteSpace(_path)) { _path = AppDomain.CurrentDomain.BaseDirectory + "\\Language"; if (!System.IO.Directory.Exists(_path)) System.IO.Directory.CreateDirectory(_path); } return _path; } set { _path = value; } } public static List LangList { get { List retval = new List(); if ((System.IO.Directory.Exists(Path))) { string[] files = System.IO.Directory.GetFiles(Path, "*.ini"); foreach (string file in files) { retval.Add(file.Substring(file.LastIndexOf("\\") + 1)); } } return retval; } } public static string FileName { get { string fn = Path + "\\" + SelectedLang; if(fn.ToLower().LastIndexOf(".ini") == -1) fn += ".ini"; return fn.Replace("\\\\", "\\"); } } #endregion } }