ResourceCulture.cs
7.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
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.ACSingleStore
{
public class ResourceCulture
{
public static string China = "zh-CN";
public static string English = "en-US";
public static string German = "ge-DE";
private static ResourceManager rm = null;
public static string CurrLanguage = "zh-CN";
public static Dictionary<string, string> chineseMap = new Dictionary<string, string>();
public static Dictionary<string, string> englishMap = new Dictionary<string, string>();
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;
CodeLibrary.CodeResourceControl.GetLanguageEvent += GetLanguage;
if (string.IsNullOrEmpty(name))
{
name = "en-US";
}
CurrLanguage = name;
Thread.CurrentThread.CurrentCulture = new CultureInfo(name);
}
public static string GetLanguage()
{
return CurrLanguage;
}
private static Assembly assembly = Assembly.GetExecutingAssembly();
public static string GetString(string id,string defaultStr)
{
string strCurLanguage = "";
try
{
if (rm == null)
{
rm = new ResourceManager("OnlineStore.ACSingleStore.Properties.Resource", assembly);
}
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
ci= new CultureInfo(CurrLanguage);
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
{
if (rm == null)
{
rm = new ResourceManager("OnlineStore.ACSingleStore.Properties.Resource", assembly);
}
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
ci = new CultureInfo(CurrLanguage);
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";
}
}