260 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			260 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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 arUtil.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 arUtil.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<string> LangList
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 List<string> retval = new List<string>();
 | |
|                 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
 | |
| 
 | |
| 
 | |
|     }
 | |
| }
 | |
| 
 | 
