ResourceCulture.cs 11.6 KB
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Resources;
using System.Text;
using System.Threading;
using System.Threading.Tasks; 
namespace OnlineStore.AutoInOutStore
{
    public class ResourceCulture
    {
        public static string China = "zh-CN";
        public static string English = "en-US";
        public static string German = "ge-DE";
         

        public static string CurrLanguage = "zh-CN";
         
        public static Dictionary<string, string> defaultMap = new Dictionary<string, string>();
        /// <summary>
        /// Set current culture by name
        /// </summary>
        /// <param name="name">name</param>
        public static void SetCurrentCulture(string name)
        {
            ResourceControl.GetStrEvent += GetString;
            ResourceControl.GetStringEvent += GetString;

            //UserFromControl.UserControlResource.GetStrEvent += GetString;
            //UserFromControl.UserControlResource.GetStringEvent += GetString;
            if (string.IsNullOrEmpty(name))
            {
                name = "en-US";
            }
            CurrLanguage = name;
            Thread.CurrentThread.CurrentCulture = new CultureInfo(name);
        }

        private static  Assembly assembly = Assembly.GetExecutingAssembly();
        public static string GetString(string id,string defaultStr)
        {
            string strCurLanguage = "";

            try
            {
                ResourceManager rm = new ResourceManager("OnlineStore.AutoInOutStore.Properties.Resource", assembly);
                CultureInfo ci = Thread.CurrentThread.CurrentCulture;
                strCurLanguage = rm.GetString(id, ci).Trim();
                if (strCurLanguage.Equals("") && (!defaultStr.Equals("")))
                {
                    strCurLanguage = defaultStr;
                    NoIdLog(id, defaultStr);
                }
            }
            catch (Exception ex)
            {
                if (defaultStr.Equals(""))
                {
                }
                else
                {
                    strCurLanguage = "No id:[" + id + "], please add.";
                    strCurLanguage = defaultStr;
                    NoIdLog(id, defaultStr);
                }
            }
            return strCurLanguage;
        }
        public static string GetString(string id, string defaultStr, params object[] param)
        {
            string strCurLanguage = "";

            try
            {
                ResourceManager rm = new ResourceManager("OnlineStore.AutoInOutStore.Properties.Resource", Assembly.GetExecutingAssembly());
                CultureInfo ci = Thread.CurrentThread.CurrentCulture;
                strCurLanguage = rm.GetString(id, ci).Trim();
                if(strCurLanguage.Equals("")&&(!defaultStr.Equals(""))){
                    strCurLanguage = defaultStr;
                    NoIdLog(id, defaultStr);
                }
            }
            catch (Exception ex)
            {
                if (defaultStr.Equals(""))
                {
                }
                else
                {
                    strCurLanguage = "No id:[" + id + "], please add.";
                    strCurLanguage = defaultStr;
                    NoIdLog(id, defaultStr);
                }
            }
            return String.Format(strCurLanguage,param);
        }

        private static void NoIdLog(string id, string defaultStr)
        {
          
            LogUtil.info("No id:[" + id + "], please add,use default string :" + defaultStr);
            if (!defaultMap.ContainsKey(id))
            {
                defaultMap.Add(id, defaultStr);
            }
        }
        public static void LogDefaultMap()
        {
            LogUtil.info("开始打印缺少的文字配置" + defaultMap.Count);
            foreach (string key in defaultMap.Keys)
            {
                string value = defaultMap[key];
                LogUtil.info("     缺少文字配置[" + key + "]     默认值[" + value + "]");
            } 
            LogUtil.info("结束打印缺少的文字配置");
        }
        private static  string spiltStr = "_";
        private static string Text = "Text";
        public static string GetIdStr(string className, string controlName, string propertyName)
        {
            return className + spiltStr + controlName + spiltStr + propertyName;
        }
        public static string GetIdStr(string className, string propertyName)
        {
            return className + spiltStr + propertyName;
        }
        public static string GetTextIdStr(string className, string controlName )
        {
            return className + spiltStr + controlName + spiltStr + Text;
        }
        public static string GetTextIdStr(string className )
        {
            return className + spiltStr + Text;
        }
        /// <summary>
        /// 保存成功!
        /// </summary>
        public static string SaveOk = "SaveOk";
        /// <summary>
        /// 提示
        /// </summary>
        public static string MsgTitle = "MsgTitle";
        /// <summary>
        /// 打开串口失败
        /// </summary>
        public static string OpenComFail = "OpenComFail";

         
        /// <summary>
        /// 请先启动料仓
        /// </summary>
        public static string PleaseStartStore = "PleaseStartStore";
        /// <summary>
        /// 定位气缸不在下降端,不能移动进出轴
        /// </summary>
        public static string CannotMove = "CannotMove";
        /// <summary>
        /// 警告
        /// </summary>
        public static string WarnMsg = "WarnMsg";
        /// <summary>
        /// 保存失败
        /// </summary>
        public static string SaveError = "SaveError";
        /// <summary>
        /// 无报警,无出入库或者重置操作时,才可以回待机点
        /// </summary>
        public static string CanotReset = "CanotReset";
        /// <summary>
        /// 请先输入正确的速度
        /// </summary>
        public static string PWSpeed = "PWSpeed";
        /// <summary>
        /// 是否确定退出
        /// </summary>
        public static string SureExit = "SureExit";
        /// <summary>
        /// AutoOut 自动出库:
        /// </summary>
        public static string AutoOut = "AutoOut";
        /// <summary>
        /// AutoIn 自动入库:
        /// </summary>
        public static string AutoIn = "AutoIn";
        /// <summary>
        /// AutoEnd 自动出入库结束
        /// </summary>
        public static string AutoEnd = "AutoEnd";

 
        /// <summary>
        /// 前门未关
        /// </summary>
        public static string DoorOpen = "DoorOpen";
        /// <summary>
        /// 叉子料盘检测有料,请检查
        /// </summary>
        public static string HasWare = "HasWare";
        /// <summary>
        /// 开始自动出入库
        /// </summary>
        public static string StartAuto = "StartAuto";
        /// <summary>
        /// 停止自动出入库
        /// </summary>
        public static string StopAuto = "StopAuto";
        /// <summary>
        /// 等待启动
        /// </summary>
        public static string WaitStart = "WaitStart";
        ///// <summary>
        /////  
        ///// </summary>
        //public static string AutoEnd = "AutoEnd";

        /// <summary>      
        /// 此设备不支持单个入库	 
        ///  </summary>  
        public static string  	CanotSingleInStore	= "CanotSingleInStore";
        /// <summary>    
        ///叉子不在待机位,请先将叉子退回待机位	 
        /// </summary> 
        public static string  	InoutNotOk	= "InoutNotOk";
        /// <summary>    
        ///警告(叉子在待机位时,才能移动升降轴和旋转轴)
        /// </summary>
        public static string  	InoutWarn	= "InoutWarn";
        /// <summary>     
        ///无报警,无出入库或者重置操作时,才可以回待机点	 
        /// </summary>
        public static string  	CanotBack	= "CanotBack";
        /// <summary>   
        ///请先关闭批量上下料门	 
        /// </summary> 
        public static string          PCloseDoor	= "PCloseDoor";
        /// <summary>   
        ///请输入正确的密码	 
        /// </summary>  
        public static string  	PWPwd	= "PWPwd";
        /// <summary>      
        ///忙碌中,无法打开门锁	 
        /// </summary>  
        public static string  	CnotOpen	= "CnotOpen";
        /// <summary>     
        ///批量入库失败:请先关闭上料机构	
        /// </summary>  
        public static string  	batchInError	= "batchInError";
        /// <summary>     
        ///批量入库失败:叉子料盘检测有料,请检查后再入库	 
        /// </summary> 
        public static string  	batchInError2	= "batchInError2";
        /// <summary>   
        ///取出料盘失败:无料盘可取	 
        /// </summary>  
        public static string  	GetError	= "GetError";
        /// <summary>     
        ///取出料盘失败:忙碌中,无法打开门锁	  
        /// </summary>  
        public static string  	GetError2	= "GetError2";
        /// <summary>      
        ///锁门失败:请先关闭上料机构
        /// </summary>  
        public static string  	CloseError	= "CloseError";
        /// <summary>     
        ///已确认料盘已手动拿出	 
        /// </summary> 
        public static string  	TakeTrayOut	= "TakeTrayOut";
        /// <summary>  
        ///未检测到气压信号	 
        /// </summary>  
        public static string  	NoAIr	= "NoAIr";
        /// <summary>    
        ///料盘高度	  
        /// </summary> 
        public static string  	trayHeight	= "trayHeight";
        /// <summary>   
        ///负限位	  
        /// </summary> 
        public static string  	FuLimit	= "FuLimit";
        /// <summary>   
        ///正限位	 
        /// </summary>  
        public static string  	ZhLimit	= "ZhLimit";
        /// <summary>  
        ///上料轴运动停止	 
        /// </summary> 
        public static string  	BatchStop	= "BatchStop";
        /// <summary>   
        ///扫码结束	 
        /// </summary>  public static string  	ScanOk	= "ScanOk";
        /// <summary>   
        ///操作人员拿走料盘	
        /// </summary>  
        public static string  	TakeTrayGo	= "TakeTrayGo";
        /// <summary>    
        ///等待送料结束	
        /// </summary>
        public static string  	WaitEnd	= "WaitEnd";
        /// <summary>    
        ///吸盘吸料失败	  
        /// </summary>  
        public static string  	XiLiaoError	= "XiLiaoError";

        /// <summary>    
        ///伺服OFF	  
        /// </summary>  
        public static string ServoOff = "ServoOff";
        /// <summary>    
        ///伺服ON	  
        /// </summary>  
        public static string servoON = "servoON";
        /// <summary>    
        ///仓门状态未知	  
        /// </summary>  
        public static string NoDoorStatus = "NoDoorStatus";
        /// <summary>    
        ///批量出入库信息:    入库:	  
        /// </summary>  
        public static string InstoreInfo = "InstoreInfo";
        /// <summary>    
        ///出库	  
        /// </summary>  
        public static string oustore = "oustore";
        /// <summary>    
        ///门锁关闭	  
        /// </summary>  
        public static string doorClose = "doorClose";
        /// <summary>    
        ///门锁打开	  
        /// </summary>  
        public static string doorOpen = "doorOpen";
    }
}