Files
ATV_STDLabelAttach/Handler/Project/Language/Lang.cs
2025-07-17 16:11:46 +09:00

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
}
}