Commit a03fc2eb 刘韬

Merge branch 'NS100_WPF' of http://106.15.194.121:8083/zdl/NS100 into NS100_WPF

2 个父辈 c8aea94b 1f8d9ed5
......@@ -154,6 +154,7 @@
</Compile>
<Compile Include="MonitorMouseKeyboard.cs" />
<Compile Include="NamedPipeClient.cs" />
<Compile Include="Nexim\NeximApiUtil.cs" />
<Compile Include="PaddleOCRHelper.cs" />
<Compile Include="PrinterHelper.cs" />
<Compile Include="PrintLabelEdit.cs" />
......
......@@ -16,6 +16,8 @@ namespace BLL
public static LightSource lightSource;
public static ServerCommunication SCMM;
public static NeximApiUtil neximApiUtils;
public static List<string> macroKey;
public static List<string> macroKeyValue;
public static List<string> extraKey=new List<string>();
......
......@@ -362,6 +362,21 @@ namespace BLL
public static MyConfig<bool> Func_UseIDCamera=true;
[MyConfigComment("隐藏软件logo")]
public static MyConfig<bool> AppUI_HideLogo=false;
/// <summary>
/// Nexim参数, 授权地址不为空时启用Nexim功能
/// </summary>
public static MyConfig<string> Nexim_AuthUrl="";
public static MyConfig<string> Nexim_UserName = "";
public static MyConfig<string> Nexim_Password = "";
public static MyConfig<string> Nexim_RegisterDidInfoUrl = "";
/// <summary>
/// Nexim参数,key=需要的参数,value=对应的关键字
/// </summary>
public static MyConfig<string[]> Nexim_ParamKeyMap = new string[] {"RI=RI","QTY=QTY","SP=SP","BATCH=BATCH","PRODATE=PRODATE" };
// 在BLLCommon.config类中添加
public string CharacterTypeKeywords
{
......

using Model;
using Newtonsoft.Json;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Configuration;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
using Http = Model.Http;
namespace BLL
{
public class NeximApiUtil
{
public bool IsEnalbe()
{
//判断 Nexim_AuthUrl 是否为空
if (string.IsNullOrEmpty(Config.Nexim_AuthUrl))
{
return false;
}
return true;
}
private string OK = "ok";
private string ERROE = "error";
/**
* 获取登录的token
* @return
*/
private string getAccessToken()
{
Dictionary<string, object> paramMap = new Dictionary<string, object>();
paramMap.Add("userName", Config.Nexim_UserName);
paramMap.Add("password", Config.Nexim_Password);
//string paramStr = JsonConvert.ToString(paramMap);
//LogNet.log.Info("获取Fuji的token参数为:" + paramStr);
string apiUrl = Config.Nexim_AuthUrl;
string accessToken = "";
string result = "";
try
{
result = Model.Http.PostWithHeader(apiUrl, paramMap, new Dictionary<string, string>());
LogNet.log.Info("获取Fuji的token结果为:" + result);
Dictionary<string, object> resultObj = JsonConvert.DeserializeObject<Dictionary<string, object>>(result);
if (resultObj != null && resultObj.ContainsKey("accessToken"))
{
accessToken = resultObj["accessToken"].ToString();
}
}
catch (Exception e)
{
LogNet.log.Info("获取Fuji的token异常:", e);
accessToken = "";
}
string status = "";
if (String.IsNullOrEmpty(accessToken))
{
status = ERROE;
}
return accessToken;
}
private string getReelInfo(Dictionary<string, string> reelData, string key)
{
string dataKey = key;
Dictionary<string, string> paramKeyM = GetParamMap();
if (paramKeyM.ContainsKey(key))
{
dataKey = paramKeyM[key];
}
if (reelData.ContainsKey(dataKey))
{
return reelData[dataKey];
}
return "";
}
private string RI = "RI";
private string PN = "PN";
private string QTY = "QTY";
private string SP = "SP";
private string BATCH = "BATCH";
private string PRODATE = "PRODATE";
private Dictionary<string, string> _paramKeyMap = null;
private Dictionary<string, string> GetParamMap()
{
if (_paramKeyMap == null)
{
_paramKeyMap = new Dictionary<string, string>();
string[] configMap = Config.Nexim_ParamKeyMap; ;
foreach (string key in configMap)
{
string[] arrys = key.Trim().Split('=');
if (arrys.Length == 2 && arrys[0] != "" && arrys[1] != "")
{
_paramKeyMap.Add(arrys[0], arrys[1]);
}
}
}
return _paramKeyMap;
}
public bool registerNewDid(Dictionary<string, string> reelData, out string msg)
{
msg = "";
if (!IsEnalbe())
{
return true;
}
Dictionary<string, string> headerMap = new Dictionary<string, string>();
string token = getAccessToken();
if (String.IsNullOrEmpty(token))
{
//获取token为空
msg = "getAccessToken fail";
LogNet.log.Info("getAccessToken fail");
return false;
}
headerMap.Add("fujiAccessToken", getAccessToken());
Dictionary<string, Object> paramsMap = new Dictionary<string, object>();
paramsMap.Add("did", getReelInfo(reelData, RI));
paramsMap.Add("partBarcode", getReelInfo(reelData, PN));
paramsMap.Add("quantity", getReelInfo(reelData, QTY));
paramsMap.Add("packageType", "paper"); //默认是paper,
paramsMap.Add("partsoutWarning", getReelInfo(reelData, QTY));
paramsMap.Add("splicingWarning", getReelInfo(reelData, QTY));
paramsMap.Add("partNumber", getReelInfo(reelData, PN));
paramsMap.Add("vendorName", getReelInfo(reelData, SP));
paramsMap.Add("lotName", getReelInfo(reelData, BATCH));
paramsMap.Add("dateCode", getReelInfo(reelData, PRODATE));
paramsMap.Add("location", "");
paramsMap.Add("memo", "");
paramsMap.Add("note1", "");
paramsMap.Add("note2", "");
paramsMap.Add("note3", "");
paramsMap.Add("note4", "");
paramsMap.Add("useSplicing", true);
paramsMap.Add("useTrayPackage", true);
paramsMap.Add("trayStackCount", 1);
paramsMap.Add("trayPickupPositionX", 1);
paramsMap.Add("trayPickupPositionY", 1);
paramsMap.Add("traySizeX", 0);
paramsMap.Add("traySizeY", 0);
//string paramStr = JSON.toJSONstring(params);
//LogNet.log.Info("注册Fuji的did参数为:" + paramStr);
string result = "";
string apiUrl = Config.Nexim_RegisterDidInfoUrl;
try
{
result = Http.PostWithHeader(apiUrl, paramsMap, headerMap);
LogNet.log.Info("注册Fuji的did结果为:" + result);
Dictionary<string, object> resultObj = JsonConvert.DeserializeObject<Dictionary<string, object>>(result);
if (resultObj != null && resultObj.ContainsKey("addedCount"))
{
int addedCount = Convert.ToInt32(resultObj["addedCount"]);
if (addedCount > 0)
{
return true;
}
}
if (resultObj != null && resultObj.ContainsKey("details"))
{
string details = resultObj["details"].ToString();
msg ="Register new did failed: "+ details;
}
else
{
msg = "Register new did failed, result is null or not contains details ";
}
}
catch (Exception e)
{
//改为英文提示
msg = "Register new did failed, exception message:" + e.ToString();
LogNet.log.Info("注册Fuji的did失败:", e);
}
return false;
}
}
}
......@@ -46,7 +46,7 @@ namespace Model
return FormatContent(s);
}
public static string Post(string url, Dictionary<string, string> param)
public static string Post(string url, Dictionary<string, string > param)
{
List<string> body = new();
foreach (string key in param.Keys)
......@@ -114,6 +114,31 @@ namespace Model
LogNet.log.Info($"[GET][URL:{url}][Return:{s}]");
return FormatContent(s);
}
public static string PostWithHeader(string url, Dictionary<string, object> param, Dictionary<string, string> headerMap)
{
List<string> body = new();
foreach (string key in param.Keys)
body.Add(string.Format("{0}={1}", key, param[key]));
LogNet.log.Info("[Post]URL:" + url + " Body:" + string.Join(",", body));
RestClient client = new(url) { Timeout = 10000 };
RestRequest request = new(Method.POST);
//增加header
if (headerMap != null && headerMap.Count > 0)
{
foreach (var head in headerMap)
{
request.AddHeader(head.Key, head.Value);
}
}
request.AddHeader("Content-Type", "application/json;charset=utf-8");
foreach (string key in param.Keys)
request.AddParameter(key, param[key]);
IRestResponse response = client.Execute(request);
string s = response.Content;
LogNet.log.Info("[Post]URL:" + url + "Return:" + s);
return FormatContent(s);
}
}
public class CustSerialize : RestSharp.Serialization.IRestSerializer
{
......
......@@ -56,6 +56,7 @@ namespace SmartScan
BLLCommon.extension = new(BLLCommon.config);
BLLCommon.labelEdit = new();
BLLCommon.mateEdit = new();
BLLCommon.neximApiUtils = new();
//如果是直接启动ns100就不需要开启条码规则服务
//WebService.Open();
ReadMacro();
......
......@@ -95,20 +95,8 @@ namespace SmartScan
}
else
{
string YU = BLLCommon.config.Language;
if (YU == "English")
{
bool result = NeoAlertBox.Show("", "No valid print parameters available?", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
bool result = NeoAlertBox.Show("", "有効な印刷パラメータがありません?", AlertType.Warning, "NEO SCAN", true);
}
else
{
bool result = NeoAlertBox.Show("", "没有可用的打印参数?", AlertType.Warning, "NEO SCAN", true);
}
string msg = LanguageWwitchover.Dialog("NoValidParametersAvailable", "没有可用的打印参数?");
bool result = NeoAlertBox.Show("", msg, AlertType.Warning, "NEO SCAN", true);
}
}
......
......@@ -417,3 +417,44 @@ Dialog_NS_KetRight_Detect 已检测字段 Detected Fields 微软雅黑,12,,
Dialog_About_About 关于 About 微软雅黑,12,,
Dialog_About_mrs 物料注册系统 Material Registration System 微软雅黑,12,,
Dialog_Using_OCR_Result 是否使用OCR识别结果? Should OCR recognition results be used? 微软雅黑,12,,
Dialog_SkipOperation 是否跳过此操作? Whether to skip this operation?
Dialog_Waiting 等待中 Waiting
Dialog_WPFWorkMode_Printer 打印机 Printer
Dialog_WPFWorkMode_DefaultPrintTemplate 默认打印标签 Default Print Template
Dialog_WPFWorkMode_PrioritizeMatchTemplate 优先匹配模板 Prioritize Match Template
Dialog_NS_KetRight_PrintLabel 打印标签 Print Label
Dialog_NS_KetRight_Skip 跳过 Skip
Dialog_NS_KetRight_Title 元件信息 Component Information
Dialog_WorkMode_Printer 打印机 Printer
Dialog_WorkMode_DefaultTemplate 默认打印标签 Default Print Template
Dialog_WorkMode_PrioritizeMatchTemplate 优先匹配模板 Prioritize Match Template
Dialog_Notice 提示 Notice
Dialog_ApplicationNotFound 找不到应用程序 Application not found
Dialog_ApplicationLaunchError 启动应用程序时出错 Error launching application
Dialog_SelectAtLeastOneMatchingMethod 请至少选择一种匹配方式 Please select at least one matching method
Dialog_MatchingConditionCannotBeEmpty 匹配条件不能为空 Matching condition cannot be empty
Dialog_MinLengthCannotBeGreaterThanMaxLength 最小长度不能大于最大长度 Minimum length cannot be greater than maximum length
Dialog_PrintError 打印异常 Print Error
Dialog_UnableToPrintNoValidData 无法打印标签,没有有效的识别数据 Unable to print label, no valid identification data
Dialog_ErrorPrintingLabel 打印标签时出错 Error printing label
Dialog_Online 在线 Online
Dialog_Offline 离线 Offline
Dialog_NeedPrinter 是否打印? Whether to print or not?
Dialog_CameraNotConnected 相机未连接 Camera Not Connected
Dialog_CameraNotConnectedMsg 无法检测到相机设备或相机设备处于离线状态。\n请检查相机连接状态。 Unable to detect the camera device or the camera device is offline.\nPlease check the camera connection status.
Dialog_NeedSave 是否保存? Save changes?
Dialog_PSelectBarcode 请选择一个条码 Please select a barcode
Dialog_KeywordCannotBeEmpty 关键字不能为空 Keyword cannot be empty
Dialog_FileNotExist 文件不存在 File not found
Dialog_CloseNeoScan 是否关闭NeoScan? Close NeoScan?
Dialog_TitleName 物料注册系统 Material Registration System
Dialog_NewFiled 新增字段 Add Field
Dialog_characters (字符) (characters)
Dialog_Serial 流水 Serial
Dialog_serialnumber 序列号 serialnumber
Dialog_PrintFieldsNoData 无法打印标签,字段没有数据 Unable to print label, required fields contain no data
Dialog_SureDeleteSFields 是否要删除选中的字段? Are you sure you want to delete the selected fields?
Dialog_SureSaveSFields 是否要保存选中的字段? Save selected fields?
Dialog_NoValidParametersAvailable 没有可用的打印参数? No valid print parameters available?
Dialog_NoKeywordSelected 未选择关键字! No keyword selected!
......@@ -484,3 +484,43 @@ FrmSet_LblFieldSize 用紙サイズ 用紙サイズ 微软雅黑,12,,
FrmSet_pnlPrintTmpLstOp ラベルテンプレート操作 ラベルテンプレート操作 微软雅黑,12,,
Dialog_About_About 关于 About 微软雅黑,12,,
Dialog_About_mrs 物料注册系统 材料登録システム 微软雅黑,12,,
Dialog_SkipOperation 是否跳过此操作? この操作をスキップしますか?
Dialog_Waiting 等待中 待機中
Dialog_WPFWorkMode_Printer 打印机 プリンター
Dialog_WPFWorkMode_DefaultPrintTemplate 默认打印标签 デフォルト印刷ラベル
Dialog_WPFWorkMode_PrioritizeMatchTemplate 优先匹配模板 テンプレート優先マッチ
Dialog_NS_KetRight_PrintLabel 打印标签 ラベル印刷
Dialog_NS_KetRight_Skip 跳过 スキップ
Dialog_NS_KetRight_Title 元件信息 部品情報
Dialog_WorkMode_Printer 打印机 プリンター
Dialog_WorkMode_DefaultTemplate 默认打印标签 デフォルト印刷ラベル
Dialog_WorkMode_PrioritizeMatchTemplate 优先匹配模板 テンプレート優先マッチ
Dialog_Notice 提示 通知
Dialog_ApplicationNotFound 找不到应用程序 アプリケーションが見つかりません
Dialog_ApplicationLaunchError 启动应用程序时出错 アプリケーションの起動時にエラーが発生しました
Dialog_SelectAtLeastOneMatchingMethod 请至少选择一种匹配方式 少なくとも1つの照合方法を選択してください
Dialog_MatchingConditionCannotBeEmpty 匹配条件不能为空 一致条件を空にすることはできません
Dialog_MinLengthCannotBeGreaterThanMaxLength 最小长度不能大于最大长度 最小の長さは最大の長さより大きくすることはできません
Dialog_PrintError 打印异常 印刷に異常が発生しました
Dialog_UnableToPrintNoValidData 无法打印标签,没有有效的识别数据 ラベルを印刷できません。有効な認識データがありません
Dialog_ErrorPrintingLabel 打印标签时出错 ラベル印刷時にエラーが発生しました
Dialog_Online 在线 オンライン
Dialog_Offline 离线 オフライン
Dialog_NeedPrinter 是否打印? 印刷しますか?
Dialog_CameraNotConnected 相机未连接 カメラが接続されていません
Dialog_CameraNotConnectedMsg 无法检测到相机设备或相机设备处于离线状态。\n请检查相机连接状态。 カメラデバイスが検出できませんでした/カメラデバイスがオフライン状態です。\nカメラの接続状態をご確認ください。
Dialog_NeedSave 是否保存? 保存しますか?
Dialog_PSelectBarcode 请选择一个条码 バーコードを選択してください
Dialog_KeywordCannotBeEmpty 关键字不能为空 キーワードを空にすることはできません
Dialog_FileNotExist 文件不存在 ファイルが存在しません
Dialog_CloseNeoScan 是否关闭NeoScan? NeoScanを終了しますか?
Dialog_TitleName 物料注册系统 材料登録システム
Dialog_NewFiled 新增字段 フィールドを追加
Dialog_characters (字符) (文字)
Dialog_Serial 流水 シリアル
Dialog_serialnumber 序列号 シリアル番号
Dialog_PrintFieldsNoData 无法打印标签,字段没有数据 ラベルを印刷できません。フィールドにデータがありません
Dialog_SureDeleteSFields 是否要删除选中的字段? 選択されたフィールドを削除しますか?
Dialog_SureSaveSFields 是否要保存选中的字段? 選択されたフィールドを保存しますか?
NoValidParametersAvailable 没有可用的打印参数? 有効な印刷パラメータがありません?
NoKeywordSelected 未选择关键字! キーワードが選択されていません!
......@@ -517,3 +517,40 @@ FrmSet_LblFilestatus 文件状态: 文件状态: Arial,12,,
FrmSet_LblContent 标签数据源 标签数据源 Arial,12,,
Dialog_About_About 关于 关于
Dialog_About_mrs 物料注册系统 物料注册系统
Dialog_NS_KetRight_PrintLabel 打印标签 打印标签
Dialog_NS_KetRight_Skip 跳过 跳过
Dialog_NS_KetRight_Title 元件信息 元件信息
Dialog_WorkMode_Printer 打印机 打印机
Dialog_WorkMode_DefaultTemplate 默认打印标签 默认打印标签
Dialog_WorkMode_PrioritizeMatchTemplate 优先匹配模板 优先匹配模板
Dialog_Notice 提示 提示
Dialog_ApplicationNotFound 找不到应用程序 找不到应用程序
Dialog_ApplicationLaunchError 启动应用程序时出错 启动应用程序时出错
Dialog_SelectAtLeastOneMatchingMethod 请至少选择一种匹配方式 请至少选择一种匹配方式
Dialog_MatchingConditionCannotBeEmpty 匹配条件不能为空 匹配条件不能为空
Dialog_MinLengthCannotBeGreaterThanMaxLength 最小长度不能大于最大长度 最小长度不能大于最大长度
Dialog_SkipOperation 是否跳过此操作? 是否跳过此操作?
Dialog_Waiting 等待中 等待中
Dialog_PrintError 打印异常 打印异常
Dialog_UnableToPrintNoValidData 无法打印标签,没有有效的识别数据 无法打印标签,没有有效的识别数据
Dialog_ErrorPrintingLabel 打印标签时出错 打印标签时出错
Dialog_Online 在线 在线
Dialog_Offline 离线 离线
Dialog_NeedPrinter 是否打印? 是否打印?
Dialog_CameraNotConnected 相机未连接 相机未连接
Dialog_CameraNotConnectedMsg 无法检测到相机设备或相机设备处于离线状态。\n请检查相机连接状态。 无法检测到相机设备或相机设备处于离线状态。\n请检查相机连接状态。
Dialog_NeedSave 是否保存? 是否保存?
Dialog_PSelectBarcode 请选择一个条码 请选择一个条码
Dialog_KeywordCannotBeEmpty 关键字不能为空 关键字不能为空
Dialog_FileNotExist 文件不存在 文件不存在
Dialog_CloseNeoScan 是否关闭NeoScan? 是否关闭NeoScan?
Dialog_TitleName 物料注册系统 物料注册系统
Dialog_NewFiled 新增字段 新增字段
Dialog_characters (字符) (字符)
Dialog_Serial 流水 流水
Dialog_serialnumber 序列号 序列号
Dialog_PrintFieldsNoData 无法打印标签,字段没有数据 无法打印标签,字段没有数据
Dialog_SureDeleteSFields 是否要删除选中的字段? 是否要删除选中的字段?
Dialog_SureSaveSFields 是否要保存选中的字段? 是否要保存选中的字段?
Dialog_NoValidParametersAvailable 没有可用的打印参数? 没有可用的打印参数?
Dialog_NoKeywordSelected 未选择关键字! 未选择关键字!
using BLL;
using SmartScan.SetControl.WPF;
using SmartScan.SetControl.WPF.Model;
using System;
using System.Collections.Generic;
......@@ -27,19 +28,8 @@ namespace SmartScan.PlusSettingFrm
{
if (keyList.SelectedIndex==-1)
{
string YU = BLLCommon.config.Language;
if (YU == "English")
{
bool result = NeoAlertBox.Show("", "No keyword selected!", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
bool result = NeoAlertBox.Show("", "キーワードが選択されていません!", AlertType.Warning, "NEO SCAN", true);
}
else
{
bool result = NeoAlertBox.Show("", "未选择关键字!", AlertType.Warning, "NEO SCAN", true);
}
string msg = LanguageWwitchover.Dialog("NoKeywordSelected", "未选择关键字!");
bool resutl = NeoAlertBox.Show("", msg, AlertType.Warning, "NEO SCAN", true);
return;
}
keyname = keyList.SelectedText;
......
......@@ -3,6 +3,7 @@ using BLL;
using MemoryRead;
using Model;
using OnlineStore.Common.util;
using SmartScan.SetControl.WPF;
using SmartScan.SetControl.WPF.Model;
using System;
using System.Collections.Generic;
......@@ -142,19 +143,9 @@ namespace SmartScan
return;
}
string YU = BLLCommon.config.Language;
if (YU == "English")
{
LoadingScreen.Instance.Show("Matching", "Please wait...");
}
else if (YU == "日语")
{
LoadingScreen.Instance.Show("マッチング中", "少々お待ちください...");
}
else
{
LoadingScreen.Instance.Show("匹配中", "请稍候...");
}
string title = SmartScan.SetControl.WPF.LanguageWwitchover.Dialog("MaterialTemplateMatching", "匹配中");
string subtitle = SmartScan.SetControl.WPF.LanguageWwitchover.Dialog("PleaseWaiting", "请稍候...");
LoadingScreen.Instance.Show(title, subtitle);
Common.frmMain.Invoke(delegate ()
{
......@@ -193,23 +184,8 @@ namespace SmartScan
else
{
string text = "";
if (BLLCommon.config.Language.Equals("English"))
{
text = "Waiting";
}
else if (BLLCommon.config.Language.Equals("日语"))
{
text = "待機中";
}
else
{
text = "等待中";
}
Check2s?.Invoke("text");
string text =LanguageWwitchover.Dialog("Waiting", "等待中");
Check2s?.Invoke(text);
bool hasMatch = MatchingTemplate(out string templateName);
LogNet.log.Info($"模板匹配耗时{reckontime.ElapsedMilliseconds}ms");
reckontime.Restart();
......@@ -848,10 +824,13 @@ namespace SmartScan
LoadingScreen.Instance.Hide();
Common.frmMain.Showlogs("");
// 通过检查结果状态来判断是否需要打印
if (!a)
{
Check2s?.Invoke("NG");
}
// 检查结果是否为"等待中"/"Waiting"/"待機中",以判断是否是第一次拍照
if (BLLCommon.extension.labelText != null)
if (BLLCommon.extension.labelText != null && a)
{
string status = BLLCommon.extension.labelText;
WaitLabelRecheck = (status == "等待中" || status == "Waiting" || status == "待機中");
......@@ -876,20 +855,9 @@ namespace SmartScan
{
if (bendi)
{
string YU = BLLCommon.config.Language;
bool result1 = false;
if (YU == "English")
{
result1 = NeoAlertBox.Show("", "Whether to print or not?", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
result1 = NeoAlertBox.Show("", "印刷しますか?", AlertType.Warning, "NEO SCAN", true);
}
else
{
result1 = NeoAlertBox.Show("", "是否打印?", AlertType.Warning, "NEO SCAN", true);
}
string text = LanguageWwitchover.Dialog("NeedPrinter", "是否打印?");
bool result1 = NeoAlertBox.Show("", text, AlertType.Warning, "NEO SCAN", true);
if (result1)
{
//打印
......@@ -912,20 +880,8 @@ namespace SmartScan
if (bendi)
{
string YU = BLLCommon.config.Language;
bool result1 = false;
if (YU == "English")
{
result1 = NeoAlertBox.Show("", "Whether to print or not?", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
result1 = NeoAlertBox.Show("", "印刷しますか?", AlertType.Warning, "NEO SCAN", true);
}
else
{
result1 = NeoAlertBox.Show("", "是否打印?", AlertType.Warning, "NEO SCAN", true);
}
string text = LanguageWwitchover.Dialog("NeedPrinter", "是否打印?");
bool result1 = NeoAlertBox.Show("", text, AlertType.Warning, "NEO SCAN", true);
if (result1)
{
BLLCommon.extension.Print(hasMatch, workCodeKeyword);
......
......@@ -8,6 +8,7 @@ using Asa.FaceControl;
using BLL;
using ClosedXML.Excel;
using Model;
using SmartScan.SetControl.WPF;
using SmartScan.SetControl.WPF.Model;
using static SmartScan.SetControl.WPF.Model.NeoAlertBox;
......@@ -142,20 +143,9 @@ namespace SmartScan
Dictionary<int, Dictionary<string, string>> valuePairs = new Dictionary<int, Dictionary<string, string>>();
if (!File.Exists(filepath))
{
string YU = BLLCommon.config.Language;
string text = LanguageWwitchover.Dialog("FileNotExist", "文件不存在");
bool result= NeoAlertBox.Show("",text, AlertType.Warning, "NEO SCAN", true);
if (YU == "English")
{
bool result = NeoAlertBox.Show( "", "File not found", AlertType.Warning, "NEO SCAN", true);
}
else if (YU=="日语")
{
bool result = NeoAlertBox.Show("", "ファイルが存在しません", AlertType.Warning, "NEO SCAN", true);
}
else
{
bool result = NeoAlertBox.Show( "", "文件不存在", AlertType.Warning, "NEO SCAN", true);
}
return;
}
var Titles = ExtraFileData.ParseXLSFileTitle(filepath);
......
......@@ -53,7 +53,6 @@ namespace SmartScan.SetControl.WPF
}
}
};
string YU = BLLCommon.config.Language;
text1.Text = Asa.FaceControl.Language.Dialog("About_About", "关于");
text2.Text = Asa.FaceControl.Language.Dialog("About_mrs", "物料注册系统");
......
using Asa.FaceControl;
using Asa.FaceControl;
using DocumentFormat.OpenXml.Spreadsheet;
using DocumentFormat.OpenXml.Wordprocessing;
using Model;
......@@ -142,9 +142,14 @@ namespace SmartScan.SetControl.WPF
AdjustButtonTemplateTextBlocks(root);
}, System.Windows.Threading.DispatcherPriority.Render);
}
private static string lastPath = "";
public static void LoadPath(string path)
{
if(lastPath!=""&&lastPath == path&&langDict.Count>0)
{
return;
}
langDict.Clear();
filePath = path;
string[] files = Directory.GetFiles(path, "*.lngres");
......@@ -170,7 +175,7 @@ namespace SmartScan.SetControl.WPF
string[] array3 = lines;
foreach (var line in array3)
{
string[] parts = line.Split('\t');
string[] parts = line.Replace("\t\t","\t").Split('\t');
if (parts.Length >= 3)
{
var key = parts[0];
......@@ -756,7 +761,7 @@ namespace SmartScan.SetControl.WPF
return "";
}
string key2 = "Dialog_" + key;
string key2 = key.StartsWith("Dialog_") ? key : ("Dialog_" + key);
if (langDict[CurrentLng].TryGetValue(key2, out var value))
{
return value.Text;
......@@ -765,6 +770,29 @@ namespace SmartScan.SetControl.WPF
SetNoLangXML("Dialog", key, defaulttxt);
return defaulttxt;
}
public static bool IsSameText(string key, string text)
{
string key2 = key.StartsWith("Dialog_") ? key : ("Dialog_" + key);
if (langDict[CurrentLng].TryGetValue(key2, out var value))
{
if (value.Text .Trim()== text.Trim())
{
return true;
}
}
string[] langs = new string[] { "en-US", "zh-CN", "ja-JP" };
foreach (string lan in langs)
{
if (langDict[lan].TryGetValue(key2, out var newValue))
{
if (newValue.Text.Trim() == text.Trim())
{
return true;
}
}
}
return false;
}
// 在 LanguageWwitchover 类中添加此方法
private static void AdjustButtonTemplateTextBlocks(DependencyObject root)
{
......
......@@ -56,6 +56,7 @@ namespace SmartScan.SetControl.WPF
}
}
};
mf_name.Text = LanguageWwitchover.Dialog("TitleName", "物料注册系统");
//this.StateChanged += MainWindow_StateChanged;
}
// 这个方法将被WinForms宿主调用
......@@ -105,18 +106,19 @@ namespace SmartScan.SetControl.WPF
LanguageSelector.SelectedIndex = 0;
}
}
if (language == "简体中文")
{
mf_name.Text = "物料注册系统";
}
else if (language == "日语")
{
mf_name.Text = "材料登録システム";
}
else
{
mf_name.Text = "Material Registration System";
}
//if (language == "简体中文")
//{
// mf_name.Text = "物料注册系统";
//}
//else if (language == "日语")
//{
// mf_name.Text = "材料登録システム";
//}
//else
//{
// mf_name.Text = "Material Registration System";
//}
mf_name.Text = LanguageWwitchover.Dialog("TitleName", "物料注册系统");
// 重新启用事件处理
LanguageSelector.SelectionChanged += LanguageSelector_SelectionChanged;
}
......@@ -158,36 +160,15 @@ namespace SmartScan.SetControl.WPF
{
//MessageBoxResult result = System.Windows.MessageBox.Show("是否要关闭NeoScan?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Warning);
string YU = BLLCommon.config.Language;
if (YU == "English")
{
bool result = NeoAlertBox.Show("", "Close NeoScan?", AlertType.Warning, "NEO SCAN", true);
if (result)
{
CloseClicked?.Invoke(this, EventArgs.Empty);
}
}
else if (YU == "日语")
{
bool result = NeoAlertBox.Show("", "NeoScanを終了しますか?", AlertType.Warning, "NEO SCAN", true);
if (result)
{
CloseClicked?.Invoke(this, EventArgs.Empty);
}
}
else
{
bool result = NeoAlertBox.Show("", "是否关闭NeoScan?", AlertType.Warning, "NEO SCAN", true);
string msg = LanguageWwitchover.Dialog("CloseNeoScan", "是否关闭NeoScan?");
bool result = NeoAlertBox.Show("", msg, AlertType.Warning, "NEO SCAN", true);
if (result)
{
CloseClicked?.Invoke(this, EventArgs.Empty);
}
}
}
private void LanguageSelector_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
// 处理语言更改
......@@ -196,19 +177,9 @@ namespace SmartScan.SetControl.WPF
panel.Children[0] is System.Windows.Controls.TextBlock textBlock)
{
string language = textBlock.Text;
if (language== "简体中文")
{
mf_name.Text = "物料注册系统";
}
else if (language == "日语")
{
mf_name.Text = "材料登録システム";
}
else
{
mf_name.Text = "Material Registration System";
}
LanguageChanged?.Invoke(this, language);
mf_name.Text = LanguageWwitchover.Dialog("TitleName", "物料注册系统");
}
}
......
using BLL;
using BLL;
using Model;
using Newtonsoft.Json;
using SmartScan.SetControl.WPF.Model;
......@@ -265,7 +265,7 @@ namespace SmartScan.SetControl.WPF
// 打印标签按钮
printButton = new Button
{
Content = BLLCommon.config.Language == "English" ? "Print Label" : BLLCommon.config.Language == "日语" ? "ラベル印刷" : "打印标签",
Content = LanguageWwitchover.Dialog("NS_KetRight_PrintLabel", "打印标签"),
Margin = new Thickness(0, 5, 0, 5),
Padding = new Thickness(10, 5, 10, 5),
//Background = new SolidColorBrush(Color.FromRgb(0, 120, 215)),
......@@ -291,7 +291,7 @@ namespace SmartScan.SetControl.WPF
// 创建跳过按钮
skipButton = new Button
{
Content = BLLCommon.config.Language == "English" ? "Skip" : BLLCommon.config.Language == "日语" ? "スキップ" : "跳过",
Content = LanguageWwitchover.Dialog("NS_KetRight_Skip", "跳过"),
Margin = new Thickness(10, 5, 0, 5),
Padding = new Thickness(10, 5, 10, 5),
Foreground = Brushes.White,
......@@ -393,23 +393,21 @@ namespace SmartScan.SetControl.WPF
/// </summary>
public void UpdateLanguage()
{
string language = BLLCommon.config.Language;
bool isEnglish = language == "English";
// 更新标题
if (Wpf_right_name != null)
{
Wpf_right_name.Text = isEnglish ? "Component Information" : BLLCommon.config.Language == "日语" ? "部品情報" : "元件信息";
Wpf_right_name.Text = LanguageWwitchover.Dialog("NS_KetRight_Title", "元件信息");
}
// 更新按钮文本
if (printButton != null)
{
printButton.Content = isEnglish ? "Print Label" : BLLCommon.config.Language == "日语" ? "ラベル印刷" : "打印标签";
printButton.Content = LanguageWwitchover.Dialog("NS_KetRight_PrintLabel", "打印标签");
}
if (skipButton != null)
{
skipButton.Content = isEnglish ? "Skip" : BLLCommon.config.Language == "日语" ? "スキップ" : "跳过";
skipButton.Content = LanguageWwitchover.Dialog("NS_KetRight_Skip", "跳过");
}
// 更新识别结果标签
......@@ -857,11 +855,9 @@ namespace SmartScan.SetControl.WPF
private void UpdateRecognitionResults(Panel resultPanel)
{
Asa.FaceControl.Language.LoadLanguage(BLLCommon.config.Language);
lbl_Green.Text = Asa.FaceControl.Language.Dialog("NS_KetRight_Green", "绿色 - 完全正确");
lbl_yellow.Text = Asa.FaceControl.Language.Dialog("NS_KetRight_yllow", "黄色 - OCR识别结果,需要验证");
lbl_red.Text = Asa.FaceControl.Language.Dialog("NS_KetRight_Red", "红色 - 无法识别或有问题");
string YU = BLLCommon.config.Language;
lbl_Green.Text = LanguageWwitchover.Dialog("NS_KetRight_Green", "绿色 - 完全正确");
lbl_yellow.Text = LanguageWwitchover.Dialog("NS_KetRight_yllow", "黄色 - OCR识别结果,需要验证");
lbl_red.Text = LanguageWwitchover.Dialog("NS_KetRight_Red", "红色 - 无法识别或有问题");
//if (YU == "English")
......@@ -898,7 +894,7 @@ namespace SmartScan.SetControl.WPF
TextBlock titleBlock = new TextBlock
{
// Text = YU == "zh-CN" ? "识别结果" : (YU == "ja-JP" ? "認識結果" : "Recognition Result"),
Text = Asa.FaceControl.Language.Dialog("NS_KetRight_TextBlock", "识别结果") + " : " + templateName,
Text = LanguageWwitchover.Dialog("NS_KetRight_TextBlock", "识别结果") + " : " + templateName,
FontSize = 16,
Margin = new Thickness(0, 0, 0, 10),
Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#f0f0f0"))
......@@ -920,7 +916,7 @@ namespace SmartScan.SetControl.WPF
TextBlock statusLabel = new TextBlock
{
//Text = YU == "zh-CN" ? $"已检测字段: {validFields}/{totalFields}" : (YU == "ja-JP" ? $"検出されたフィールド: {validFields}/{totalFields}" : $"Detected Fields: {validFields}/{totalFields}"),
Text = Asa.FaceControl.Language.Dialog("NS_KetRight_Detect", "已检测字段") + $": {validFields}/{totalFields}",
Text = LanguageWwitchover.Dialog("NS_KetRight_Detect", "已检测字段") + $": {validFields}/{totalFields}",
FontWeight = FontWeights.Bold,
FontSize = 16,
Margin = new Thickness(0, 0, 0, 15),
......@@ -1157,20 +1153,8 @@ namespace SmartScan.SetControl.WPF
if (allFieldsEmpty)
{
string YU = BLLCommon.config.Language;
bool result;
if (YU == "English")
{
result = NeoAlertBox.Show("", "Unable to print label, required fields contain no data", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
result = NeoAlertBox.Show("", "ラベルを印刷できません。フィールドにデータがありません", AlertType.Warning, "NEO SCAN", true);
}
else
{
result = NeoAlertBox.Show("", "无法打印标签,字段没有数据", AlertType.Warning, "NEO SCAN", true);
}
string text = LanguageWwitchover.Dialog("PrintFieldsNoData", "无法打印标签,字段没有数据");
bool result=NeoAlertBox.Show("",text,AlertType.Warning,"NEO SCAN",true);
LogNet.log.Info("无法打印标签: " + JsonConvert.SerializeObject(recognizedData.Where(kvp => string.IsNullOrWhiteSpace(kvp.Value))));
// System.Windows.MessageBox.Show("无法打印标签,字段没有数据", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
//MessageBox.Show("无法打印标签,所有字段都没有数据", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
......
......@@ -529,23 +529,8 @@ namespace SmartScan.SetControl.WPF
private void BtnAddKey_Click(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
string text = "";
if (YU == "English")
{
text = "Add Field";
}
else if (YU == "日语")
{
text = "フィールドを追加";
string text = LanguageWwitchover.Dialog("NewFiled","新增字段");
}
else
{
text = "新增字段";
}
string ls_name = lst_name.Text;
bool isenable = (isEnable.IsChecked.HasValue) ? isEnable.IsChecked.Value : false; ;
int index = keyCopy.FindIndex(match => match == text);
......@@ -573,20 +558,9 @@ namespace SmartScan.SetControl.WPF
int index = LstKey.SelectedIndex;
if (index == -1 || index >= keyCopy.Count) return;
string YU = BLLCommon.config.Language;
bool result = false;
if (YU == "English")
{
result = NeoAlertBox.Show("", "Are you sure you want to delete the selected fields?", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
result = NeoAlertBox.Show("", "選択されたフィールドを削除しますか?", AlertType.Warning, "NEO SCAN", true);
}
else
{
result = NeoAlertBox.Show("", "是否要删除选中的字段?", AlertType.Warning, "NEO SCAN", true);
}
string text = LanguageWwitchover.Dialog("SureDeleteSFields", "是否要删除选中的字段?");
bool result = NeoAlertBox.Show("",text,AlertType.Warning,"NEO SCAN",true);
if (result)
{
keyCopy.RemoveAt(index);
......@@ -610,19 +584,10 @@ namespace SmartScan.SetControl.WPF
if (LstKey.SelectedIndex == -1) return;
BLLCommon.config.ReelIDMatch = PreviewTextBlock.Text;
BLLCommon.config.Save();
string YU = BLLCommon.config.Language;
bool result = false;
if (YU == "English")
{
result = NeoAlertBox.Show("", "Save selected fields?", AlertType.Success, "NEO SCAN", true);
}else if (YU == "日语")
{
result = NeoAlertBox.Show("", "選択されたフィールドを保存しますか?", AlertType.Success, "NEO SCAN", true);
}
else
{
result = NeoAlertBox.Show("", "是否要保存选中的字段?", AlertType.Success, "NEO SCAN", true);
}
string msg = LanguageWwitchover.Dialog("SureSaveSFields", "是否要保存选中的字段?");
bool result = NeoAlertBox.Show("", msg, AlertType.Success, "NEO SCAN", true);
if (result)
{
string text = lst_key.Text;
......@@ -774,9 +739,8 @@ namespace SmartScan.SetControl.WPF
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
// 检查LOT字段是否启用
CheckLOTFieldEnabled();
......@@ -831,7 +795,7 @@ namespace SmartScan.SetControl.WPF
// 确保DisplayText已经设置
string displayText = keyword.DisplayText ?? keyword.Text;
if (displayText.EndsWith(" (字符)")|| displayText.EndsWith(" (文字)") || displayText.EndsWith(" (characters)"))
if (displayText.EndsWith(" (字符)")|| displayText.EndsWith(" (文字)") || displayText.EndsWith(" (characters)")||LanguageWwitchover.IsSameText("Dialog_characters",displayText))
{
LogNet.log.Debug($"保存字符类型关键字: {keyword.Text}");
characterTypeKeywords.Add(keyword.Text);
......@@ -884,22 +848,7 @@ namespace SmartScan.SetControl.WPF
private void RuleWindow_KeywordGenerated(object sender, string keyword)
{
string YU = BLLCommon.config.Language;
string displayKeyword = "";
if (YU == "English")
{
displayKeyword = $"{keyword} (characters)";
//keyword.DisplayText = $"{keyword.Text} (characters)";
}
else if (YU == "日语")
{
displayKeyword = $"{keyword} (文字)";
// keyword.DisplayText = $"{keyword.Text} (文字)";
}
else
{
displayKeyword = $"{keyword} (字符)";
}
string displayKeyword = $"{keyword} "+LanguageWwitchover.Dialog("characters", " (字符)");
// 为显示添加(字符)标识
// 添加到已选关键词列表
......@@ -931,21 +880,21 @@ namespace SmartScan.SetControl.WPF
// 检查该关键字是否已被标记为字符类型
bool isCharacterType = characterTypeKeywords.Contains(keywordText);
string characterTypeLabel;
string characterTypeLabel= LanguageWwitchover.Dialog("characters", " (字符)");
// 添加到已选关键词列表
switch (BLLCommon.config.Language)
{
case "English":
characterTypeLabel = "(Character)";
break;
case "日语":
characterTypeLabel = "(文字)";
break;
case "中文":
default:
characterTypeLabel = "(字符)";
break;
}
//switch (BLLCommon.config.Language)
//{
// case "English":
// characterTypeLabel = "(Character)";
// break;
// case "日语":
// characterTypeLabel = "(文字)";
// break;
// case "中文":
// default:
// characterTypeLabel = "(字符)";
// break;
//}
var keyword = new KeywordItem
{
Text = keywordText,
......@@ -985,24 +934,8 @@ namespace SmartScan.SetControl.WPF
{
// 生成流水号预览示例
string serialExample = GetSerialNumberExample();
string serialLabel, serialText;
// 根据系统语言确定流水号的显示文本
switch (BLLCommon.config.Language)
{
case "English":
serialLabel = "Serial";
serialText = "serialnumber";
break;
case "日语":
serialLabel = "シリアル";
serialText = "シリアル番号"; // 日语翻译的serialnumber
break;
case "中文":
default:
serialLabel = "流水";
serialText = "序列号"; // 中文翻译的serialnumber
break;
}
string serialLabel = LanguageWwitchover.Dialog("Serial", "流水");
string serialText=LanguageWwitchover.Dialog("serialnumber", "序列号");
// 添加或更新流水号关键字
KeywordItem serialItem = new KeywordItem
{
......
......@@ -129,9 +129,8 @@ namespace SmartScan.SetControl.WPF
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
}
......
......@@ -62,9 +62,8 @@ namespace SmartScan.SetControl.WPF
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
}
......
......@@ -171,9 +171,8 @@ namespace SmartScan.SetControl.WPF
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
}
......
......@@ -383,26 +383,11 @@ namespace SmartScan.SetControl.WPF
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
if (YU=="English")
{
PrinterInfoGridtext.Header = "Printer";
PrinterInfoGridtext1.Header = "Default Print Template";
PrinterInfoGridtext2.Header = "Prioritize Match Template\r\n";
}
else if (YU == "日语") {
PrinterInfoGridtext.Header = "プリンター";
PrinterInfoGridtext1.Header = "デフォルト印刷ラベル";
PrinterInfoGridtext2.Header = "テンプレート優先マッチ";
}
else
{
PrinterInfoGridtext.Header = "打印机";
PrinterInfoGridtext1.Header = "默认打印标签";
PrinterInfoGridtext2.Header = "优先匹配模板";
}
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
PrinterInfoGridtext.Header = LanguageWwitchover.Dialog("WorkMode_Printer", "打印机");
PrinterInfoGridtext1.Header = LanguageWwitchover.Dialog("WorkMode_DefaultTemplate", "默认打印标签");
PrinterInfoGridtext2.Header = LanguageWwitchover.Dialog("WorkMode_PrioritizeMatchTemplate", "优先匹配模板");
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
}
......
using BLL;
using BLL;
using Model;
using SmartScan.SetControl.WPF.Model;
using System;
......@@ -114,9 +114,8 @@ namespace SmartScan.SetControl.WPF
// 初始设置值检查匹配结果
CheckMatch();
this.SizeToContent = SizeToContent.Manual;
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
......@@ -459,7 +458,7 @@ namespace SmartScan.SetControl.WPF
private void List_DelClick(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
//string YU = BLLCommon.config.Language;
// 如果只有一个匹配项,不允许删除
//if (matchButton.Count <= 1)
//{
......@@ -641,7 +640,6 @@ namespace SmartScan.SetControl.WPF
private string ExtractCodeText(string text, MaterialCodeMatch match, UserControl1 userControl)
{
string YU = BLLCommon.config.Language;
try
{
string result = text;
......@@ -816,7 +814,6 @@ namespace SmartScan.SetControl.WPF
{
// 保存当前设置
SaveCurrentMatchSettings();
string YU = BLLCommon.config.Language;
// 检查所有关键字是否有效
Dictionary<string, int> keyTemp = new Dictionary<string, int>();
......@@ -827,18 +824,9 @@ namespace SmartScan.SetControl.WPF
if (string.IsNullOrWhiteSpace(key))
{
if (YU == "English")
{
NeoAlertBox.Show("Notice", "Keyword cannot be empty", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
NeoAlertBox.Show("通知", "キーワードを空にすることはできません", AlertType.Warning, "NEO SCAN", true);
}
else
{
NeoAlertBox.Show("提示", "关键字不能为空", AlertType.Warning, "NEO SCAN", true);
}
string title= LanguageWwitchover.Dialog("Notice", "提示");
string msg = LanguageWwitchover.Dialog("KeywordCannotBeEmpty", "关键字不能为空");
NeoAlertBox.Show(title, msg, AlertType.Warning, "NEO SCAN", true);
return;
}
......@@ -857,6 +845,8 @@ namespace SmartScan.SetControl.WPF
{
if (keyTemp[key] > 1)
{
string YU = BLLCommon.config.Language;
if (YU == "English")
{
NeoAlertBox.Show("Notice", $"Keyword [{key}] is duplicated, please modify", AlertType.Warning, "NEO SCAN", true);
......@@ -905,18 +895,9 @@ namespace SmartScan.SetControl.WPF
if (!hasmatchselect)
{
if (YU == "English")
{
NeoAlertBox.Show("Notice", "Please select at least one matching method", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
NeoAlertBox.Show("通知", "少なくとも1つの照合方法を選択してください", AlertType.Warning, "NEO SCAN", true);
}
else
{
NeoAlertBox.Show("提示", "请至少选择一种匹配方式", AlertType.Warning, "NEO SCAN", true);
}
string title = LanguageWwitchover.Dialog("Notice", "提示");
string msg = LanguageWwitchover.Dialog("SelectAtLeastOneMatchingMethod", "请至少选择一种匹配方式");
NeoAlertBox.Show(title, msg, AlertType.Warning, "NEO SCAN", true);
return;
}
......@@ -926,36 +907,18 @@ namespace SmartScan.SetControl.WPF
(match.MatchStart && string.IsNullOrEmpty(match.StartText)) ||
(match.MatchMaxLength && match.MaxLength == 0))
{
if (YU == "English")
{
NeoAlertBox.Show("Notice", "Matching condition cannot be empty", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
NeoAlertBox.Show("通知", "一致条件を空にすることはできません", AlertType.Warning, "NEO SCAN", true);
}
else
{
NeoAlertBox.Show("提示", "匹配条件不能为空", AlertType.Warning, "NEO SCAN", true);
}
string title = LanguageWwitchover.Dialog("Notice", "提示");
string msg = LanguageWwitchover.Dialog("MatchingConditionCannotBeEmpty", "匹配条件不能为空");
NeoAlertBox.Show(title, msg, AlertType.Warning, "NEO SCAN", true);
return;
}
// 检查长度设置矛盾
if (match.MatchMinLength && match.MatchMaxLength && match.MinLength > match.MaxLength)
{
if (YU == "English")
{
NeoAlertBox.Show("Notice", "Minimum length cannot be greater than maximum length", AlertType.Warning, "NEO SCAN", true);
}
else if (YU == "日语")
{
NeoAlertBox.Show("通知", "最小の長さは最大の長さより大きくすることはできません", AlertType.Warning, "NEO SCAN", true);
}
else
{
NeoAlertBox.Show("提示", "最小长度不能大于最大长度", AlertType.Warning, "NEO SCAN", true);
}
string title = LanguageWwitchover.Dialog("Notice", "提示");
string msg = LanguageWwitchover.Dialog("MinLengthCannotBeGreaterThanMaxLength", "最小长度不能大于最大长度");
NeoAlertBox.Show(title, msg, AlertType.Warning, "NEO SCAN", true);
return;
}
......
......@@ -487,9 +487,8 @@ namespace SmartScan.SetControl.WPF
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
}
......
......@@ -319,10 +319,8 @@ namespace SmartScan.SetControl.WPF
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
......@@ -515,21 +513,8 @@ namespace SmartScan.SetControl.WPF
{
if (codeIndex == -1)
{
string YU = BLLCommon.config.Language;
if (YU=="English")
{
bool result = NeoAlertBox.Show("", "Please select a barcode", AlertType.Warning, "NEO SCAN", true);
}
else if(YU=="日语"){
bool result = NeoAlertBox.Show("", "バーコードを選択してください", AlertType.Warning, "NEO SCAN", true);
}
else
{
bool result = NeoAlertBox.Show("", "请选择一个条码", AlertType.Warning, "NEO SCAN", true);
}
string text = LanguageWwitchover.Dialog("PSelectBarcode", "请选择一个条码");
bool result = NeoAlertBox.Show("", text, AlertType.Warning, "NEO SCAN", true);
return;
}
MaterialCode code = mateCopy[mateIndex].Code[codeIndex];
......
......@@ -67,19 +67,8 @@ namespace SmartScan.SetControl.WPF
private void Button_Click(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
bool result = false;
if (YU == "English")
{
result = NeoAlertBox.Show("", "Save changes?", AlertType.Success, "NEO SCAN", true);
}else if (YU == "日语")
{
result = NeoAlertBox.Show("", "保存しますか?", AlertType.Success, "NEO SCAN", true);
}
else
{
result = NeoAlertBox.Show("", "是否保存", AlertType.Success, "NEO SCAN", true);
}
string text = LanguageWwitchover.Dialog("NeedSave", "是否保存?");
bool result = NeoAlertBox.Show("", text, AlertType.Success, "NEO SCAN", true);
if (result)
{
// 保存配置
......@@ -177,9 +166,8 @@ namespace SmartScan.SetControl.WPF
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
}
......
......@@ -68,20 +68,8 @@ namespace SmartScan.SetControl.WPF
private void Button_Click(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
bool result = false;
if (YU == "English")
{
result = NeoAlertBox.Show("", "Save changes?", AlertType.Success, "NEO SCAN", true);
}
else if (YU == "日语")
{
result = NeoAlertBox.Show("", "保存しますか?", AlertType.Success, "NEO SCAN", true);
}
else
{
result = NeoAlertBox.Show("", "是否保存", AlertType.Success, "NEO SCAN", true);
}
string text = LanguageWwitchover.Dialog("NeedSave", "是否保存?");
bool result = NeoAlertBox.Show("", text, AlertType.Success, "NEO SCAN", true);
if (result)
{
// 保存配置
......@@ -188,9 +176,8 @@ namespace SmartScan.SetControl.WPF
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string YU = BLLCommon.config.Language;
LanguageWwitchover.LoadPath(FilePath.LANGUAGE_DIR);
LanguageWwitchover.LoadLanguage(YU);
LanguageWwitchover.LoadLanguage(BLLCommon.config.Language);
LanguageWwitchover.SetLanguage(this);
}
}
......
......@@ -522,6 +522,9 @@
<None Include="Language\en-US.lngres">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Language\jn-JS.lngres">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Language\ja-JP.lngres">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!