备份
This commit is contained in:
@@ -302,15 +302,4 @@ add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
||||
string(TIMESTAMP RUN_TIME)
|
||||
message( " project end : " ${RUN_TIME} "TYPE:"${CMAKE_BUILD_TYPE})
|
||||
|
||||
execute_process(
|
||||
COMMAND git rev-parse --short HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/git_version.h.in
|
||||
${CMAKE_BINARY_DIR}/git_version.h
|
||||
@ONLY
|
||||
)
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
#ifndef GIT_VERSION_H
|
||||
#define GIT_VERSION_H
|
||||
#define GIT_COMMIT_HASH "@GIT_COMMIT_HASH@"
|
||||
#endif
|
||||
@@ -0,0 +1,192 @@
|
||||
("默认标题") -> ("Default Title")
|
||||
("编辑参数") -> ("Edit Parameters")
|
||||
("值:") -> ("Value:")
|
||||
("重试") -> ("Retry")
|
||||
("重新进行初始化") -> ("Reinitialize")
|
||||
("离线模式") -> ("Offline Mode")
|
||||
("正在初始化...") -> ("Initializing...")
|
||||
("控制台日志...") -> ("Console Log...")
|
||||
("History") -> ("History")
|
||||
("历史记录") -> ("History")
|
||||
("Camera Label") -> ("Camera Label")
|
||||
("相机标签") -> ("Camera Label")
|
||||
("放大窗口") -> ("Zoom In")
|
||||
("缩小窗口") -> ("Zoom Out")
|
||||
("Go Back") -> ("Go Back")
|
||||
("返回上一级") -> ("Go Back")
|
||||
("Back to Menu") -> ("Back to Menu")
|
||||
("返回目录") -> ("Back to Menu")
|
||||
("Current Run Data") -> ("Current Run Data")
|
||||
("长度") -> ("Length")
|
||||
("待读取") -> ("Pending")
|
||||
("宽度:") -> ("Width:")
|
||||
("Detecting...") -> ("Detecting...")
|
||||
("系统状态: %1\n") -> ("System status: %1\n")
|
||||
("监控异常") -> ("Monitoring Error")
|
||||
("监控错误: %1") -> ("Monitor error: %1")
|
||||
("执行命令") -> ("Execute Command")
|
||||
("提示") -> ("Confirm")
|
||||
("确定要执行此操作吗?") -> ("Are you sure you want to execute this action?")
|
||||
("班次") -> ("Shift")
|
||||
("SN查询") -> ("SN Search")
|
||||
("导出为CSV") -> ("Export as CSV")
|
||||
("CSV文件 (*.csv)") -> ("CSV File (*.csv)")
|
||||
("导出成功") -> ("Export Successful")
|
||||
("数据已成功导出到:\n") -> ("Data successfully exported to:\n")
|
||||
("导出失败") -> ("Export Failed")
|
||||
("导出CSV文件失败,请检查路径或数据库状态。") -> ("Failed to export CSV. Please check the path or database status.")
|
||||
("刷新") -> ("Refresh")
|
||||
("查询") -> ("Search")
|
||||
("导出") -> ("Export")
|
||||
("数据库操作界面") -> ("Database Operations")
|
||||
("服务已离线") -> ("Service is offline")
|
||||
("权限不足") -> ("Insufficient permissions")
|
||||
("您没有足够的权限执行此操作。\n\n需要权限级别: %1\n当前权限级别: %2") -> ("You do not have sufficient permissions to perform this action.\n\nRequired level: %1\nCurrent level: %2")
|
||||
("日志") -> ("Log")
|
||||
("控制台") -> ("Console")
|
||||
("系统日志") -> ("System Log")
|
||||
("打开日志文件夹") -> ("Open Log Folder")
|
||||
("自动滚动") -> ("Auto Scroll")
|
||||
("确定") -> ("Confirm")
|
||||
("欢迎!") -> ("Welcome!")
|
||||
("工程师") -> ("Engineer")
|
||||
("售后") -> ("After-sales")
|
||||
("调试") -> ("Debug")
|
||||
("退出") -> ("Exit")
|
||||
("生产数据采集") -> ("Production Data Collection")
|
||||
("(规格上限)") -> ("(Spec Upper Limit)")
|
||||
("(均值)") -> ("(Mean)")
|
||||
("(标准差)") -> ("(Std Dev)")
|
||||
("(规格下限)") -> ("(Spec Lower Limit)")
|
||||
("CPK计算") -> ("CPK Calculation")
|
||||
("cpk长度") -> ("CPK Length")
|
||||
("cpk宽度") -> ("CPK Width")
|
||||
("输入坐标") -> ("Enter Coordinates")
|
||||
("请输入X坐标") -> ("Enter X coordinate")
|
||||
("请输入Y坐标") -> ("Enter Y coordinate")
|
||||
("X坐标:") -> ("X Coordinate:")
|
||||
("Y坐标:") -> ("Y Coordinate:")
|
||||
("输入错误") -> ("Input Error")
|
||||
("请输入有效的坐标数值") -> ("Please enter valid coordinates")
|
||||
("左上") -> ("Top-Left")
|
||||
("中上") -> ("Top-Center")
|
||||
("右上") -> ("Top-Right")
|
||||
("中右") -> ("Right-Center")
|
||||
("中心") -> ("Center")
|
||||
("中左") -> ("Left-Center")
|
||||
("左下") -> ("Bottom-Left")
|
||||
("中下") -> ("Bottom-Center")
|
||||
("右下") -> ("Bottom-Right")
|
||||
("请按照数字顺序依次拍摄标定点图像") -> ("Please capture calibration point images in numeric order")
|
||||
("拍摄当前点") -> ("Capture Current Point")
|
||||
("上一个") -> ("Previous")
|
||||
("下一个") -> ("Next")
|
||||
("修改坐标") -> ("Modify Coordinates")
|
||||
("重新拍摄当前点") -> ("Retake Current Point")
|
||||
("全部重新拍照") -> ("Retake All Points")
|
||||
("准备开始标定") -> ("Ready to start calibration")
|
||||
("第 %1 个标定点已经拍摄过了") -> ("Point %1 has already been captured")
|
||||
("已拍摄第 %1 个标定点") -> ("Captured point %1")
|
||||
("已取消第 %1 个标定点的坐标输入") -> ("Cancelled coordinate input for point %1")
|
||||
("第 %1 个标定点没有图像,无法修改坐标") -> ("Point %1 has no image, cannot modify coordinates")
|
||||
("已修改第 %1 个标定点的坐标") -> ("Modified coordinates for point %1")
|
||||
("重新拍摄选项") -> ("Retake Options")
|
||||
("请选择操作:") -> ("Select an action:")
|
||||
("重新拍摄图像") -> ("Retake Image")
|
||||
("仅修改坐标") -> ("Modify Coordinates Only")
|
||||
("已重新拍摄第 %1 个标定点") -> ("Retook point %1")
|
||||
("确认重新拍摄") -> ("Confirm Retake")
|
||||
("确定要全部重新拍摄吗?\n这将清除所有已拍摄的图像和坐标数据!") -> ("Are you sure you want to retake all points?\nThis will clear all captured images and coordinate data!")
|
||||
("已重置所有标定点,请重新开始标定") -> ("All calibration points have been reset. Please start calibration again")
|
||||
("九点标定完成!正在处理数据...") -> ("Nine-point calibration complete! Processing data...")
|
||||
("标定计算完成!") -> ("Calibration calculations complete!")
|
||||
("保存标定结果...") -> ("Saving calibration results...")
|
||||
("开始时间:") -> ("Start Time:")
|
||||
("结束时间:") -> ("End Time:")
|
||||
("导出数据为表格") -> ("Export Data to Table")
|
||||
("请选择日期") -> ("Please select a date")
|
||||
("导出选项") -> ("Export Options")
|
||||
("选择导出路径") -> ("Select Export Path")
|
||||
("导出指定时间段数据为csv表格") -> ("Export specified time-range data to CSV")
|
||||
("导出数据为CSV表格") -> ("Export data to CSV")
|
||||
("搜索结果") -> ("Search Results")
|
||||
("找不到数据") -> ("No data found")
|
||||
("检索不到数据!") -> ("No data found!")
|
||||
("CSV文件保存成功") -> ("CSV file saved successfully")
|
||||
("无法创建CSV文件") -> ("Unable to create CSV file")
|
||||
("没有权限或空间不足!") -> ("No permission or insufficient space!")
|
||||
("成功!") -> ("Export succeeded!")
|
||||
("无法打开CSV文件") -> ("Unable to open CSV file")
|
||||
("文件已存在且无法被写入!") -> ("File already exists and cannot be written!")
|
||||
("刷新相机") -> ("Refresh Cameras")
|
||||
("开始取流") -> ("Start Grabbing")
|
||||
("保存图像") -> ("Save Image")
|
||||
("实时取流") -> ("Real-time Grabbing")
|
||||
("提示") -> ("Notice")
|
||||
("没有可保存的图像") -> ("No image available to save")
|
||||
("保存失败") -> ("Save Failed")
|
||||
("无法保存图像到所选位置") -> ("Unable to save image to selected location")
|
||||
("停止取流") -> ("Stop Grabbing")
|
||||
("当前版本: v%1 | 提交版本: %2") -> ("Current version: v%1 | Commit: %2")
|
||||
("选择语言/Language/Bahasa:") -> ("Select Language / Language / Bahasa:")
|
||||
("设置1920x1040") -> ("Set 1920x1040")
|
||||
("九点标定") -> ("Nine-Point Calibration")
|
||||
("相机实时取流(只适配软触发相机)") -> ("Camera Real-time Capture (soft-trigger only)")
|
||||
("打开配置文件") -> ("Open Config File")
|
||||
("小工具") -> ("Toolbox")
|
||||
("运行数据") -> ("Run Data")
|
||||
("OK数量") -> ("OK Count")
|
||||
("NG数量") -> ("NG Count")
|
||||
("总数量") -> ("Total Count")
|
||||
("JSON 表格编辑器") -> ("JSON Table Editor")
|
||||
("选项") -> ("Option")
|
||||
("值") -> ("Value")
|
||||
("保存") -> ("Save")
|
||||
("取消") -> ("Cancel")
|
||||
("第 %1 行数据不完整") -> ("Row %1 data is incomplete")
|
||||
("第 %1 行 key 为空") -> ("Row %1 key is empty")
|
||||
("第 %1 行找不到原始类型信息") -> ("Original type information not found for row %1")
|
||||
("类型验证失败") -> ("Type Validation Failed")
|
||||
("第 %1 行值验证失败:\n%2") -> ("Row %1 value validation failed:\n%2")
|
||||
("布尔值控件类型错误") -> ("Boolean control type mismatch")
|
||||
("数字控件类型错误") -> ("Number control type mismatch")
|
||||
("字符串控件类型错误") -> ("String control type mismatch")
|
||||
("获取值错误: %1") -> ("Get value error: %1")
|
||||
("字符串") -> ("String")
|
||||
("数字") -> ("Number")
|
||||
("布尔") -> ("Boolean")
|
||||
("数组") -> ("Array")
|
||||
("对象") -> ("Object")
|
||||
("空值") -> ("Null")
|
||||
("未知") -> ("Unknown")
|
||||
("输入字符串值(不需要引号)") -> ("Enter a string value (no quotes required)")
|
||||
("输入数字值(整数或小数)") -> ("Enter a numeric value (integer or decimal)")
|
||||
("输入布尔值(true 或 false)") -> ("Enter a boolean value (true or false)")
|
||||
("输入JSON数组格式,如:[1,2,3] 或 [\"a\",\"b\"]") -> ("Enter a JSON array, e.g., [1,2,3] or [\"a\",\"b\"]")
|
||||
("输入JSON对象格式,如:{\"key\":\"value\"}") -> ("Enter a JSON object, e.g., {\"key\":\"value\"}")
|
||||
("空值(输入 null)") -> ("Null (enter null)")
|
||||
("请输入有效的JSON值") -> ("Please enter a valid JSON value")
|
||||
("输入值过大(超过10240字符)") -> ("Input value too large (exceeds 10240 characters)")
|
||||
("无效的数字格式") -> ("Invalid numeric format")
|
||||
("布尔值只能是 true 或 false") -> ("Boolean must be true or false")
|
||||
("空值只能是 null") -> ("Null value must be null")
|
||||
("期望数组格式,如:[1,2,3]") -> ("Expected array format, e.g., [1,2,3]")
|
||||
("期望对象格式,如:{\"key\":\"value\"}") -> ("Expected object format, e.g., {\"key\":\"value\"}")
|
||||
("未知的数据类型") -> ("Unknown data type")
|
||||
("JSON解析错误: %1") -> ("JSON parse error: %1")
|
||||
("转换错误: %1") -> ("Conversion error: %1")
|
||||
("通用 JSON 编辑") -> ("General JSON Editor")
|
||||
("确定") -> ("OK")
|
||||
("请输入 JSON:") -> ("Please enter JSON:")
|
||||
("警告") -> ("Warning")
|
||||
("JSON 内容不能为空") -> ("JSON content cannot be empty")
|
||||
("JSON 内容过大,可能导致崩溃") -> ("JSON content is too large and may cause a crash")
|
||||
("解析错误") -> ("Parse Error")
|
||||
("JSON 解析失败:\n%1") -> ("JSON parse failed:\n%1")
|
||||
("错误") -> ("Error")
|
||||
("数字控件INT类型错误") -> ("Integer number control type mismatch")
|
||||
("输入数字值(整数)") -> ("Enter an integer value")
|
||||
("输入数字值(小数)") -> ("Enter a decimal value")
|
||||
("执行命令") -> ("Execute Command")
|
||||
("提示") -> ("Confirm")
|
||||
("确定要执行此操作吗?") -> ("Are you sure you want to execute this action?")
|
||||
@@ -453,9 +453,9 @@ private:
|
||||
case JsonValueType::Boolean:
|
||||
return TR("Enter a boolean value (true or false)");
|
||||
case JsonValueType::Array:
|
||||
return TR("Enter a JSON array, e.g., [1,2,3] or [\"a\",\"b\"]");
|
||||
return "输入JSON数组格式,如:[1, 2, 3] or [\"a\",\"b\"]";
|
||||
case JsonValueType::Object:
|
||||
return TR("Enter a JSON object, e.g., {\"key\":\"value\"}");
|
||||
return "输入JSON对象格式,如: {\"key\":\"value\"}";
|
||||
case JsonValueType::Null:
|
||||
return TR("Null (enter null)");
|
||||
default:
|
||||
@@ -524,11 +524,11 @@ private:
|
||||
|
||||
// 验证类型是否匹配
|
||||
if (expectedType == JsonValueType::Array && !result.is_array()) {
|
||||
errorMsg = TR("Expected array format, e.g., [1,2,3]");
|
||||
errorMsg = "期望数组格式,如:[1,2,3]";
|
||||
return false;
|
||||
}
|
||||
if (expectedType == JsonValueType::Object && !result.is_object()) {
|
||||
errorMsg = TR("Expected object format, e.g., {\"key\":\"value\"}");
|
||||
errorMsg = "期望对象格式,如:{key:value}";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <qwidget.h>
|
||||
#include <translation.h>
|
||||
#include <qwidget.h>
|
||||
#include <qpainter.h>
|
||||
#include <Qlabel>
|
||||
#include <opencv.hpp>
|
||||
@@ -18,8 +19,8 @@ public:
|
||||
QMovie* movie = nullptr;
|
||||
QTextEdit* initLog = nullptr;
|
||||
QTextEdit* consoleLog = nullptr;
|
||||
fancyButtonText* retryBtn = new fancyButtonText("重试", 100, 50, "重新进行初始化");
|
||||
fancyButtonText* manualBtn = new fancyButtonText("离线模式", 180, 50, "离线模式");
|
||||
fancyButtonText* retryBtn = new fancyButtonText(TR("Retry"), 100, 50, TR("Reinitialize"));
|
||||
fancyButtonText* manualBtn = new fancyButtonText(TR("Offline Mode"), 180, 50, TR("Offline Mode"));
|
||||
QGridLayout* glayout = new QGridLayout(this);
|
||||
QGridLayout* logLayout = new QGridLayout(this);
|
||||
loadingWidget(fSignalHub* bridgeIn){
|
||||
@@ -52,11 +53,11 @@ public:
|
||||
"border: 0px solid red;"
|
||||
"border-radius: 0px;"));
|
||||
initLog->setReadOnly(true);
|
||||
QFont font("微软雅黑", 8);
|
||||
QFont font("Microsoft YaHei", 8);
|
||||
|
||||
initLog->setFont(font);
|
||||
initLog->setTextColor(Qt::white);
|
||||
initLog->append("正在初始化...");
|
||||
initLog->setFont(font);
|
||||
initLog->setTextColor(Qt::white);
|
||||
initLog->append(TR("Initializing..."));
|
||||
|
||||
logLayout->addWidget(initLog, 0, 0);
|
||||
|
||||
@@ -68,10 +69,10 @@ public:
|
||||
"border-radius: 0px;"));
|
||||
consoleLog->setReadOnly(true);
|
||||
consoleLog->setFixedWidth(720);
|
||||
QFont font2("微软雅黑", 7);
|
||||
consoleLog->setFont(font2);
|
||||
consoleLog->setTextColor(Qt::white);
|
||||
consoleLog->append("控制台日志...");
|
||||
QFont font2("Microsoft YaHei", 7);
|
||||
consoleLog->setFont(font2);
|
||||
consoleLog->setTextColor(Qt::white);
|
||||
consoleLog->append(TR("Console Log..."));
|
||||
logLayout->addWidget(consoleLog, 1, 0,Qt::AlignCenter|Qt::AlignTop);
|
||||
|
||||
//重试或者离线模式等按钮
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <QApplication>
|
||||
#include <translation.h>
|
||||
#include <QApplication>
|
||||
#include <QDialog>
|
||||
#include <QVBoxLayout>
|
||||
#include <QRegion>
|
||||
@@ -31,15 +32,15 @@ public:
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
|
||||
layout= new QVBoxLayout(this);
|
||||
button = new fancyButtonText("确定", 100, 40, "");
|
||||
button = new fancyButtonText(TR("Confirm"), 100, 40, "");
|
||||
|
||||
label=new QLabel("欢迎!");
|
||||
label=new QLabel(TR("Welcome!"));
|
||||
label->setAlignment(Qt::AlignHCenter);
|
||||
label->setFont(QFont("Microsoft YaHei", 30, QFont::Bold));
|
||||
label->setPalette(palette);
|
||||
|
||||
comboBox= new QComboBox;
|
||||
comboBox->addItems({ u8"工程师",u8"售后",u8"调试" });
|
||||
comboBox->addItems({ TR("Engineer"),TR("After-sales"),TR("Debug") });
|
||||
comboBox->setFont(QFont("Microsoft YaHei", 14));
|
||||
comboBox->setStyleSheet("QComboBox { padding-left: 4px; padding-right: 4px; }"
|
||||
"QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: right; }"
|
||||
@@ -56,7 +57,7 @@ public:
|
||||
passwordEdit.setFont(QFont("Microsoft YaHei", 12, QFont::Bold));
|
||||
layout->addWidget(&passwordEdit);
|
||||
|
||||
exitBtn = new fancyButtonText(u8"退出", 100, 40, "");
|
||||
exitBtn = new fancyButtonText(TR("Exit"), 100, 40, "");
|
||||
QObject::connect(exitBtn, &QPushButton::clicked, [=]() {
|
||||
exit(0);
|
||||
});
|
||||
|
||||
@@ -79,9 +79,9 @@ public:
|
||||
layout->addWidget(rightWidget);
|
||||
|
||||
// 左侧
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font("微软雅黑", 18, QFont::Bold);
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font("Microsoft YaHei", 18, QFont::Bold);
|
||||
|
||||
QLabel* factoryIconLabel = new QLabel();
|
||||
factoryIconLabel->setPixmap(QPixmap(":/icon/icon/logo_Dongsheng.png")); // 设置图标
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
logWidget() {
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font("微软雅黑", 24, QFont::Bold);
|
||||
QFont font("Microsoft YaHei", 24, QFont::Bold);
|
||||
|
||||
// 初始化批量处理定时器
|
||||
batchUpdateTimer = new QTimer(this);
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
Layout->setContentsMargins(0, 0, 0, 0);
|
||||
Layout->setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
||||
|
||||
Title = new QLabel(u8"日志");
|
||||
Title = new QLabel(TR("Log"));
|
||||
Title->setFont(font);
|
||||
Title->setPalette(palette);
|
||||
Title->setAlignment(Qt::AlignLeft);
|
||||
@@ -104,8 +104,8 @@ public:
|
||||
stdConsoleOutput.setStyleSheet(textEditStyle);
|
||||
qtConsoleOutput.setStyleSheet(textEditStyle);
|
||||
|
||||
addLogWidget(u8"控制台", &stdConsoleOutput, logType::stdConsle);
|
||||
addLogWidget(u8"系统日志", &qtConsoleOutput, logType::qtConsle);
|
||||
addLogWidget(TR("Console"), &stdConsoleOutput, logType::stdConsle);
|
||||
addLogWidget(TR("System Log"), &qtConsoleOutput, logType::qtConsle);
|
||||
btns[0]->pressed();
|
||||
|
||||
Layout->addWidget(widgets);
|
||||
@@ -118,7 +118,7 @@ public:
|
||||
void addLogWidget(QString btnText, QPlainTextEdit* textWidget, logType type) {
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font2("微软雅黑", 8);
|
||||
QFont font2("Microsoft YaHei", 8);
|
||||
|
||||
int index = btns.size();
|
||||
gradientButton* btn = new gradientButton(160, 50, btnText, "");
|
||||
@@ -144,8 +144,8 @@ public:
|
||||
QHBoxLayout* toolHLayout2 = new QHBoxLayout();
|
||||
widgetLayout->addLayout(toolHLayout2);
|
||||
|
||||
QPushButton* openDirBtn = new QPushButton("打开日志文件夹");
|
||||
QPushButton* autoScrollBtn = new QPushButton("自动滚动");
|
||||
QPushButton* openDirBtn = new QPushButton(TR("Open Log Folder"));
|
||||
QPushButton* autoScrollBtn = new QPushButton(TR("Auto Scroll"));
|
||||
autoScrollBtn->setCheckable(true);
|
||||
autoScrollBtn->setChecked(true);
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ public:
|
||||
Title->setPalette(palette);
|
||||
Title->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||||
|
||||
QLabel* versionShow = new QLabel(QString(u8"当前版本: v%1 | 提交版本: %2").arg(QString::fromStdString(softwareVersion)).arg(GIT_COMMIT_HASH));
|
||||
QLabel* versionShow = new QLabel(QString(TR("Current version: v%1")).arg(QString::fromStdString(softwareVersion)));
|
||||
versionShow->setFont(font2);
|
||||
versionShow->setPalette(palette);
|
||||
versionShow->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||||
@@ -133,13 +133,13 @@ public:
|
||||
//语言设置
|
||||
{
|
||||
// 创建语言设置分组容器
|
||||
QGroupBox* languageGroupBox = new QGroupBox(QString::fromStdString(Translation::getInstance().translate("Language Settings")));
|
||||
QGroupBox* languageGroupBox = new QGroupBox(TR("Language Settings"));
|
||||
languageGroupBox->setObjectName("languageGroupBox");
|
||||
languageGroupBox->setStyleSheet(R"(
|
||||
QGroupBox#languageGroupBox {
|
||||
background: rgb(50, 55, 60);
|
||||
border-radius: 10px;
|
||||
font-family: "微软雅黑";
|
||||
font-family: "Microsoft YaHei";
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
@@ -159,7 +159,7 @@ public:
|
||||
QHBoxLayout* languageSelectLayout = new QHBoxLayout();
|
||||
languageSelectLayout->setSpacing(15);
|
||||
|
||||
QLabel* languageSelectLabel = new QLabel(u8"选择语言/Language/Bahasa:");
|
||||
QLabel* languageSelectLabel = new QLabel(TR("Select Language / Language / Bahasa:"));
|
||||
languageSelectLabel->setFont(font2);
|
||||
languageSelectLabel->setPalette(palette);
|
||||
languageSelectLabel->setMinimumWidth(200);
|
||||
@@ -218,7 +218,7 @@ public:
|
||||
//控制台
|
||||
{
|
||||
// 创建控制台设置分组容器
|
||||
QGroupBox* consoleGroupBox = new QGroupBox(QString::fromStdString(Translation::getInstance().translate("Window Settings")));
|
||||
QGroupBox* consoleGroupBox = new QGroupBox(TR("Window Settings"));
|
||||
consoleGroupBox->setObjectName("consoleGroupBox");
|
||||
consoleGroupBox->setStyleSheet(R"(
|
||||
QGroupBox#consoleGroupBox {
|
||||
@@ -242,7 +242,7 @@ public:
|
||||
consoleMainLayout->setSpacing(10);
|
||||
|
||||
// 添加说明文字
|
||||
QLabel* consoleDescription = new QLabel(QString::fromStdString(Translation::getInstance().translate("Control the visibility of the debug console window")));
|
||||
QLabel* consoleDescription = new QLabel(TR("Control the visibility of the debug console window"));
|
||||
consoleDescription->setFont(font2);
|
||||
consoleDescription->setPalette(palette);
|
||||
consoleDescription->setStyleSheet("color: rgb(180, 180, 180);");
|
||||
@@ -281,7 +281,7 @@ public:
|
||||
}
|
||||
)");
|
||||
|
||||
fancyButtonText* setResolutionBtn = new fancyButtonText(u8"设置1920x1040");
|
||||
fancyButtonText* setResolutionBtn = new fancyButtonText(TR("Set 1920x1040"));
|
||||
setResolutionBtn->setStyleSheet(R"(
|
||||
fancyButtonText {
|
||||
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
|
||||
@@ -378,7 +378,7 @@ public:
|
||||
//小工具
|
||||
{
|
||||
// 创建控制台设置分组容器
|
||||
QGroupBox* GroupBox = new QGroupBox(QString::fromStdString(Translation::getInstance().translate("小工具")));
|
||||
QGroupBox* GroupBox = new QGroupBox(TR("Toolbox"));
|
||||
GroupBox->setObjectName("toolsGroupBox");
|
||||
GroupBox->setStyleSheet(R"(
|
||||
QGroupBox#toolsGroupBox {
|
||||
@@ -401,17 +401,17 @@ public:
|
||||
consoleMainLayout->setContentsMargins(15, 15, 15, 15);
|
||||
consoleMainLayout->setSpacing(10);
|
||||
{
|
||||
fancyButtonText* btn = new fancyButtonText(u8"九点标定");
|
||||
QObject::connect(btn, &QPushButton::clicked, &_calibration,&QWidget::show);
|
||||
fancyButtonText* btn = new fancyButtonText(TR("Nine-Point Calibration"));
|
||||
QObject::connect(btn, &QPushButton::clicked, &_calibration, &QWidget::show);
|
||||
consoleMainLayout->addWidget(btn);
|
||||
}
|
||||
{
|
||||
fancyButtonText* btn = new fancyButtonText(u8"相机实时取流(只适配软触发相机)");
|
||||
fancyButtonText* btn = new fancyButtonText(TR("Camera Real-time Capture (soft-trigger only)"));
|
||||
QObject::connect(btn, &QPushButton::clicked, &_cameraRealTimeCapture, &QWidget::show);
|
||||
consoleMainLayout->addWidget(btn);
|
||||
}
|
||||
{
|
||||
fancyButtonText* btn = new fancyButtonText(u8"打开配置文件");
|
||||
fancyButtonText* btn = new fancyButtonText(TR("Open Config File"));
|
||||
consoleMainLayout->addWidget(btn);
|
||||
connect(btn, &QPushButton::clicked, [=]() {
|
||||
QDesktopServices::openUrl(QUrl::fromLocalFile(QString::fromStdString(appConfig::getInstance().missionJsonPath)));
|
||||
|
||||
@@ -14,8 +14,8 @@ class sqliteReader : public QWidget{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
sqliteReader(SQLiteDB* dbIn):db(dbIn) {
|
||||
QFont font("微软雅黑", 12, QFont::Bold);
|
||||
sqliteReader(SQLiteDB* dbIn):db(dbIn) {
|
||||
QFont font("Microsoft YaHei", 12, QFont::Bold);
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
layout->addLayout(vLayout);
|
||||
|
||||
//1-1-1
|
||||
QLabel* showLabel = new QLabel(u8"班次");
|
||||
QLabel* showLabel = new QLabel(TR("Shift"));
|
||||
showLabel->setFont(font);
|
||||
showLabel->setPalette(palette);
|
||||
vLayout->addWidget(showLabel);
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
connect(refreshBtn, &QPushButton::clicked,
|
||||
this, [=]() {refreshTable(); });
|
||||
|
||||
QLabel* showLabel2 = new QLabel(u8"SN查询");
|
||||
QLabel* showLabel2 = new QLabel(TR("SN Search"));
|
||||
showLabel2->setFont(font);
|
||||
showLabel2->setPalette(palette);
|
||||
vLayout->addWidget(showLabel2);
|
||||
@@ -101,9 +101,9 @@ public:
|
||||
// 打开文件管理器,默认文件名为表名.csv
|
||||
QString filePath = QFileDialog::getSaveFileName(
|
||||
this,
|
||||
u8"导出为CSV",
|
||||
TR("Export as CSV"),
|
||||
QDir::homePath() + "/" + tableName + ".csv",
|
||||
u8"CSV文件 (*.csv)"
|
||||
TR("CSV File (*.csv)")
|
||||
);
|
||||
|
||||
if (filePath.isEmpty()) {
|
||||
@@ -118,9 +118,9 @@ public:
|
||||
|
||||
// 提示导出结果
|
||||
if (success) {
|
||||
QMessageBox::information(this, u8"导出成功", u8"数据已成功导出到:\n" + filePath);
|
||||
QMessageBox::information(this, TR("Export Successful"), TR("Data successfully exported to:\n") + filePath);
|
||||
} else {
|
||||
QMessageBox::warning(this, u8"导出失败", u8"导出CSV文件失败,请检查路径或数据库状态。");
|
||||
QMessageBox::warning(this, TR("Export Failed"), TR("Failed to export CSV. Please check the path or database status."));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,9 +130,9 @@ private:
|
||||
QComboBox* tableSelectComboBox = new QComboBox();
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
QTableView* tableWidget = new QTableView();
|
||||
fancyButtonText* refreshBtn = new fancyButtonText(u8"刷新", 80, 25, "");
|
||||
fancyButtonText* searchSnBtn = new fancyButtonText(u8"查询", 80, 25, "");
|
||||
fancyButtonText* dumpToCsvBtn = new fancyButtonText(u8"导出", 80, 25, "");
|
||||
fancyButtonText* refreshBtn = new fancyButtonText(TR("Refresh"), 80, 25, "");
|
||||
fancyButtonText* searchSnBtn = new fancyButtonText(TR("Search"), 80, 25, "");
|
||||
fancyButtonText* dumpToCsvBtn = new fancyButtonText(TR("Export"), 80, 25, "");
|
||||
protected:
|
||||
void showEvent(QShowEvent* event) override {
|
||||
QWidget::showEvent(event);
|
||||
@@ -148,7 +148,7 @@ public:
|
||||
QStackedWidget* widgets = new QStackedWidget();
|
||||
sqliteReader _sqliteReader;
|
||||
QTableWidget* sqlWidget = new QTableWidget();
|
||||
QLabel* disconnnectedLabel = new QLabel("服务已离线");
|
||||
QLabel* disconnnectedLabel = new QLabel(TR("Service is offline"));
|
||||
|
||||
sqlControlWidget(appConfig* _configIN):_sqliteReader(_configIN->dataBase){
|
||||
this->setObjectName("sqlControlWidget");
|
||||
@@ -160,8 +160,8 @@ public:
|
||||
)");
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font("微软雅黑", 24, QFont::Bold);
|
||||
QFont font2("微软雅黑", 108, QFont::Bold);
|
||||
QFont font("Microsoft YaHei", 24, QFont::Bold);
|
||||
QFont font2("Microsoft YaHei", 108, QFont::Bold);
|
||||
|
||||
widgets->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
widgets->setMaximumSize(9999, 9999);
|
||||
@@ -173,7 +173,7 @@ public:
|
||||
Layout->setContentsMargins(0, 0, 0, 0);
|
||||
Layout->setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
||||
|
||||
Title = new QLabel(u8"数据库操作界面");
|
||||
Title = new QLabel(TR("Database Operations"));
|
||||
Title->setFont(font);
|
||||
Title->setPalette(palette);
|
||||
Title->setAlignment(Qt::AlignLeft);
|
||||
|
||||
@@ -20,16 +20,16 @@ public:
|
||||
:m_config(config),m_json(json){
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font("微软雅黑", 24, QFont::Bold);
|
||||
QFont font2("微软雅黑", 108, QFont::Bold);
|
||||
QFont font("Microsoft YaHei", 24, QFont::Bold);
|
||||
QFont font2("Microsoft YaHei", 108, QFont::Bold);
|
||||
|
||||
this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
this->setObjectName(u8"生产数据采集");
|
||||
this->setObjectName(TR("Production Data Collection"));
|
||||
|
||||
m_layout->setContentsMargins(0, 0, 0, 0);
|
||||
m_layout->setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
||||
|
||||
m_title = new QLabel(u8"生产数据采集");
|
||||
m_title = new QLabel(TR("Production Data Collection"));
|
||||
m_title->setFont(font);
|
||||
m_title->setPalette(palette);
|
||||
m_title->setAlignment(Qt::AlignLeft);
|
||||
|
||||
@@ -19,12 +19,12 @@ public:
|
||||
m_title(new QLabel(this)),
|
||||
m_plot(new QCustomPlot(this))
|
||||
{
|
||||
QString title = QString::fromStdString(json.value("key", "默认标题"));
|
||||
QString title = QString::fromStdString(json.value("key", "Default Title"));
|
||||
m_limitHigh = json.value("limitHigh", 100.0);
|
||||
m_limitLow = json.value("limitLow", 0.0);
|
||||
m_maxPoints = json.value("maxPoints", 50);
|
||||
|
||||
QFont font("微软雅黑", 24, QFont::Bold);
|
||||
QFont font("Microsoft YaHei", 24, QFont::Bold);
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
// 文本提示
|
||||
m_tracerText = new QCPItemText(m_plot);
|
||||
m_tracerText->setColor(Qt::white); // 文字颜色
|
||||
m_tracerText->setFont(QFont("微软雅黑", 10, QFont::Bold));
|
||||
m_tracerText->setFont(QFont("Microsoft YaHei", 10, QFont::Bold));
|
||||
m_tracerText->position->setType(QCPItemPosition::ptPlotCoords);
|
||||
m_tracerText->setBrush(QBrush(QColor(0, 0, 0, 150))); // 半透明背景
|
||||
m_tracerText->setPadding(QMargins(5, 2, 5, 2)); // 留点内边距
|
||||
@@ -89,7 +89,7 @@ public:
|
||||
|
||||
// 绑定鼠标移动事件
|
||||
connect(m_plot, &QCustomPlot::mouseMove, this, &WaveFormWidget::onMouseMoveInPlot);
|
||||
if (title.contains("对齐度")) {
|
||||
if (title.contains("对齐度")) {
|
||||
auto fixedTicker = QSharedPointer<QCPAxisTickerFixed>(new QCPAxisTickerFixed);
|
||||
fixedTicker->setTickStep(0.1);
|
||||
fixedTicker->setScaleStrategy(QCPAxisTickerFixed::ssNone); // 不自动放大
|
||||
@@ -160,7 +160,7 @@ public:
|
||||
protected:
|
||||
void contextMenuEvent(QContextMenuEvent* event) override {
|
||||
QMenu menu(this);
|
||||
menu.addAction("编辑参数", this, &WaveFormWidget::editJsonParameters);
|
||||
menu.addAction(TR("Edit Parameters"), this, &WaveFormWidget::editJsonParameters);
|
||||
menu.exec(event->globalPos());
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ private slots:
|
||||
m_tracer->updatePosition();
|
||||
m_tracer->setVisible(true);
|
||||
|
||||
m_tracerText->setText(QString("%1\n值:%2")
|
||||
m_tracerText->setText(QString("%1\nValue: %2")
|
||||
.arg(static_cast<int>(std::round(x)))
|
||||
.arg(y, 0, 'f', 2));
|
||||
m_tracerText->setVisible(true);
|
||||
|
||||
@@ -57,14 +57,14 @@ public:
|
||||
QComboBox* cameraSelectBox = new QComboBox();
|
||||
vLayout2->addWidget(cameraSelectBox, 0, Qt::AlignTop);
|
||||
|
||||
QPushButton* refreshCameraBtn = new QPushButton("刷新相机");
|
||||
QPushButton* refreshCameraBtn = new QPushButton(TR("Refresh Cameras"));
|
||||
vLayout2->addWidget(refreshCameraBtn, 0, Qt::AlignTop);
|
||||
|
||||
QPushButton* startGrabbing = new QPushButton("开始取流");
|
||||
QPushButton* startGrabbing = new QPushButton(TR("Start Grabbing"));
|
||||
startGrabbing->setDisabled(true);
|
||||
vLayout2->addWidget(startGrabbing, 0, Qt::AlignTop);
|
||||
|
||||
QPushButton* saveImageBtn = new QPushButton("保存图像");
|
||||
QPushButton* saveImageBtn = new QPushButton(TR("Save Image"));
|
||||
saveImageBtn->setDisabled(true);
|
||||
vLayout2->addWidget(saveImageBtn, 0, Qt::AlignTop);
|
||||
|
||||
@@ -82,20 +82,20 @@ public:
|
||||
QLabel* showNowTimeImageLabel = new QLabel;
|
||||
vLayout2->addWidget(showNowTimeImageLabel, 1, Qt::AlignTop);
|
||||
|
||||
showNowTimeImageLabel->setText("实时取流");
|
||||
showNowTimeImageLabel->setText(TR("Real-time Grabbing"));
|
||||
showNowTimeImageLabel->setStyleSheet(" border - radius: 10px; border: 1px solid rgb(70, 75, 80);");
|
||||
showNowTimeImageLabel->setFixedSize(800, 800);
|
||||
_GrabbingThread = new GrabbingThread(showNowTimeImageLabel,&mutex);
|
||||
connect(startGrabbing, &QPushButton::clicked, [=]() {
|
||||
if (_GrabbingThread->isRunning() == false) {
|
||||
if (_GrabbingThread->isRunning() == false) {
|
||||
showNowTimeImageLabel->clear();
|
||||
_GrabbingThread->setCameraName(cameraSelectBox->currentText().toStdString());
|
||||
_GrabbingThread->start();
|
||||
startGrabbing->setText("停止取流");
|
||||
startGrabbing->setText(TR("Stop Grabbing"));
|
||||
}
|
||||
else {
|
||||
_GrabbingThread->stop();
|
||||
startGrabbing->setText("开始取流");
|
||||
startGrabbing->setText(TR("Start Grabbing"));
|
||||
}
|
||||
});
|
||||
connect(this, &cameraRealTimeCapture::close, [=]() {
|
||||
@@ -107,17 +107,17 @@ public:
|
||||
connect(saveImageBtn, &QPushButton::clicked, [=]() {
|
||||
QMutexLocker locker(&mutex);
|
||||
const QPixmap* pix = showNowTimeImageLabel->pixmap();
|
||||
if (!pix || pix->isNull()) {
|
||||
QMessageBox::warning(this, "提示", "没有可保存的图像");
|
||||
if (!pix || pix->isNull()) {
|
||||
QMessageBox::warning(this, TR("Notice"), TR("No image available to save"));
|
||||
return;
|
||||
}
|
||||
QString ts = QDateTime::currentDateTime().toString("yyyyMMdd_HHmmsszzz");
|
||||
QString suggested = QString("snapshot_%1.png").arg(ts);
|
||||
QString filePath = QFileDialog::getSaveFileName(this, "保存图像", QDir::homePath() + "/" + suggested,
|
||||
QString filePath = QFileDialog::getSaveFileName(this, TR("Save Image"), QDir::homePath() + "/" + suggested,
|
||||
"PNG (*.png);;JPEG (*.jpg *.jpeg);;BMP (*.bmp)");
|
||||
if (filePath.isEmpty()) return;
|
||||
if (!pix->save(filePath)) {
|
||||
QMessageBox::warning(this, "保存失败", "无法保存图像到所选位置");
|
||||
QMessageBox::warning(this, TR("Save Failed"), TR("Unable to save image to selected location"));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -132,7 +132,7 @@ protected:
|
||||
}
|
||||
// 复位按钮文本(如果按钮仍存在)
|
||||
if (auto btn = this->findChild<QPushButton*>("btn_startGrabbing")) {
|
||||
btn->setText("开始取流");
|
||||
btn->setText(TR("Start Grabbing"));
|
||||
}
|
||||
QWidget::closeEvent(event);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ public:
|
||||
layout->setAlignment(Qt::AlignTop);
|
||||
|
||||
title = new QLabel(Name);
|
||||
QFont font("微软雅黑", 14, QFont::Bold);
|
||||
QFont font("Microsoft YaHei", 14, QFont::Bold);
|
||||
title->setFont(font);
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
@@ -33,8 +33,8 @@ public:
|
||||
calwidget = new QWidget();
|
||||
QHBoxLayout* hLayout1 = new QHBoxLayout(calwidget);
|
||||
|
||||
QFont font2("微软雅黑", 26, QFont::Bold);
|
||||
QFont font3("微软雅黑", 7, QFont::Bold);
|
||||
QFont font2("Microsoft YaHei", 26, QFont::Bold);
|
||||
QFont font3("Microsoft YaHei", 7, QFont::Bold);
|
||||
|
||||
//MIN
|
||||
QLabel* minLabel = new QLabel("MIN(");
|
||||
@@ -47,11 +47,11 @@ public:
|
||||
QVBoxLayout* vLayout1 = new QVBoxLayout();
|
||||
|
||||
QHBoxLayout* topLayout1 = new QHBoxLayout();
|
||||
QLabel* uslLabel = new QLabel(QString::number(USL) + "(规格上限)");
|
||||
QLabel* uslLabel = new QLabel(QString::number(USL) + TR(" (Spec Upper Limit)"));
|
||||
uslLabel->setFont(font3);
|
||||
uslLabel->setPalette(palette);
|
||||
|
||||
QLabel* avgLabel = new QLabel("-" + QString::number(USL) + u8"(均值)");
|
||||
QLabel* avgLabel = new QLabel("-" + QString::number(USL) + TR(" (Mean)"));
|
||||
avgLabel->setFont(font3);
|
||||
avgLabel->setPalette(palette);
|
||||
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
line->setPalette(palette);
|
||||
line->setFixedHeight(5);
|
||||
|
||||
QLabel* deviationLabel = new QLabel(u8"(标准差)");
|
||||
QLabel* deviationLabel = new QLabel(TR("(Std Dev)"));
|
||||
deviationLabel->setFont(font3);
|
||||
deviationLabel->setPalette(palette);
|
||||
deviationLabel->setAlignment(Qt::AlignCenter);
|
||||
@@ -87,11 +87,11 @@ public:
|
||||
QVBoxLayout* vLayout1 = new QVBoxLayout();
|
||||
|
||||
QHBoxLayout* topLayout1 = new QHBoxLayout();
|
||||
QLabel* uslLabel = new QLabel(QString::number(USL) + "(均值)");
|
||||
QLabel* uslLabel = new QLabel(QString::number(USL) + TR(" (Mean)"));
|
||||
uslLabel->setFont(font3);
|
||||
uslLabel->setPalette(palette);
|
||||
|
||||
QLabel* avgLabel = new QLabel("-" + QString::number(USL) + u8"(规格下限)");
|
||||
QLabel* avgLabel = new QLabel("-" + QString::number(USL) + TR(" (Spec Lower Limit)"));
|
||||
avgLabel->setFont(font3);
|
||||
avgLabel->setPalette(palette);
|
||||
|
||||
@@ -142,8 +142,8 @@ public:
|
||||
"}");
|
||||
layout = new QVBoxLayout(this);
|
||||
|
||||
title = new QLabel("CPK计算");
|
||||
QFont font("微软雅黑", 16, QFont::Bold);
|
||||
title = new QLabel(TR("CPK Calculation"));
|
||||
QFont font("Microsoft YaHei", 16, QFont::Bold);
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
|
||||
@@ -158,10 +158,10 @@ public:
|
||||
title->setFixedHeight(40);
|
||||
layout->addWidget(title);
|
||||
|
||||
window1 = new perCpkWidget("cpk长度");
|
||||
window1 = new perCpkWidget(TR("CPK Length"));
|
||||
layout->addWidget(window1);
|
||||
|
||||
window2 = new perCpkWidget("cpk宽度");
|
||||
window2 = new perCpkWidget(TR("CPK Width"));
|
||||
layout->addWidget(window2);
|
||||
}
|
||||
~cpkCalculatePanel()
|
||||
|
||||
@@ -43,11 +43,11 @@ private:
|
||||
void setupUi() {
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
|
||||
QLabel* startLabel = new QLabel("开始时间:", this);
|
||||
QLabel* startLabel = new QLabel(TR("Start Time:"), this);
|
||||
startTimeEdit = new QDateTimeEdit(this);
|
||||
startTimeEdit->setDisplayFormat("HH:mm");
|
||||
|
||||
QLabel* endLabel = new QLabel("结束时间:", this);
|
||||
QLabel* endLabel = new QLabel(TR("End Time:"), this);
|
||||
endTimeEdit = new QDateTimeEdit(this);
|
||||
endTimeEdit->setDisplayFormat("HH:mm");
|
||||
|
||||
@@ -77,7 +77,7 @@ public:
|
||||
TimeRangeSelectorWidget* timeSelector;
|
||||
dumpToExcel()
|
||||
{
|
||||
showMainWidgetBtn = new QPushButton(u8"导出数据为表格");
|
||||
showMainWidgetBtn = new QPushButton(TR("Export Data to Table"));
|
||||
showMainWidgetBtn->setStyleSheet("color: white;");
|
||||
mainWidget = new QWidget;
|
||||
QHBoxLayout* layout = new QHBoxLayout;
|
||||
@@ -90,7 +90,7 @@ public:
|
||||
dateWIdget = new QWidget();
|
||||
QVBoxLayout* layoutTemp = new QVBoxLayout();
|
||||
dateWIdget->setLayout(layoutTemp);
|
||||
QLabel* labelTemp = new QLabel(u8"请选择日期");
|
||||
QLabel* labelTemp = new QLabel(TR("Please select a date"));
|
||||
labelTemp->setAlignment(Qt::AlignCenter);
|
||||
layoutTemp->addWidget(labelTemp);
|
||||
layoutTemp->addWidget(calendarW);
|
||||
@@ -103,11 +103,11 @@ public:
|
||||
QVBoxLayout* layoutTemp = new QVBoxLayout();
|
||||
controlPanel->setLayout(layoutTemp);
|
||||
|
||||
QLabel* title = new QLabel(u8"导出选项");
|
||||
QLabel* title = new QLabel(TR("Export Options"));
|
||||
title->setAlignment(Qt::AlignCenter);
|
||||
|
||||
QLabel* space = new QLabel();
|
||||
QLabel* selectFolderLabel = new QLabel(u8"选择导出路径");
|
||||
QLabel* selectFolderLabel = new QLabel(TR("Select Export Path"));
|
||||
|
||||
QHBoxLayout* layoutTemp2 = new QHBoxLayout();
|
||||
openPathSelectBtn = new QPushButton("...");
|
||||
@@ -119,8 +119,8 @@ public:
|
||||
filePathLineEdit = new QLineEdit("D://");
|
||||
layoutTemp2->addWidget(filePathLineEdit);
|
||||
|
||||
dumpToCsvWithDateLimitBtn = new QPushButton(u8"导出指定时间段数据为csv表格");
|
||||
dumpToCsvBtn = new QPushButton(u8"导出数据为CSV表格");
|
||||
dumpToCsvWithDateLimitBtn = new QPushButton(TR("Export specified time-range data to CSV"));
|
||||
dumpToCsvBtn = new QPushButton(TR("Export data to CSV"));
|
||||
|
||||
layoutTemp->addWidget(title);
|
||||
//layoutTemp->addWidget(data);
|
||||
@@ -173,8 +173,8 @@ public:
|
||||
if (res.rowDatas.size() == 0)
|
||||
{
|
||||
tV->clearAllData();
|
||||
tV->Init({u8"搜索结果"});
|
||||
std::vector<QString> strVec({ "找不到数据" });
|
||||
tV->Init({TR("Search Results")});
|
||||
std::vector<QString> strVec({ TR("No data found") });
|
||||
tV->addRowDataValue(strVec);
|
||||
return;
|
||||
}
|
||||
@@ -246,7 +246,7 @@ public:
|
||||
#pragma region
|
||||
if (res.rowDatas.size() == 0)
|
||||
{
|
||||
QMessageBox::critical(nullptr, "Error", u8"检索不到数据!");
|
||||
QMessageBox::critical(nullptr, "Error", TR("No data found!"));
|
||||
return;
|
||||
}
|
||||
#pragma endregion 没有数据的对策
|
||||
@@ -285,11 +285,11 @@ public:
|
||||
}
|
||||
stream << "\n";
|
||||
}
|
||||
qDebug() << "CSV文件保存成功";
|
||||
qDebug() << TR("CSV file saved successfully");
|
||||
}
|
||||
else {
|
||||
qDebug() << "无法创建CSV文件";
|
||||
QMessageBox::critical(nullptr, "Error", u8"没有权限或空间不足!");
|
||||
qDebug() << TR("Unable to create CSV file");
|
||||
QMessageBox::critical(nullptr, "Error", TR("No permission or insufficient space!"));
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -315,12 +315,12 @@ public:
|
||||
}
|
||||
system(command.c_str());
|
||||
#pragma endregion 打开文件夹
|
||||
QMessageBox::information(nullptr, "Success", u8"成功!");
|
||||
qDebug() << "CSV文件保存成功";
|
||||
QMessageBox::information(nullptr, "Success", TR("Export succeeded!"));
|
||||
qDebug() << TR("CSV file saved successfully");
|
||||
return;
|
||||
}
|
||||
else {
|
||||
qDebug() << "无法打开CSV文件";
|
||||
qDebug() << TR("Unable to open CSV file");
|
||||
#pragma region
|
||||
std::string command = "explorer /select, \"" + fileName.toStdString() + "\"";
|
||||
size_t pos = 0;
|
||||
@@ -329,7 +329,7 @@ public:
|
||||
}
|
||||
system(command.c_str());
|
||||
#pragma endregion 打开文件夹
|
||||
QMessageBox::critical(nullptr, "Error", u8"文件已存在且无法被写入!");
|
||||
QMessageBox::critical(nullptr, "Error", TR("File already exists and cannot be written!"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -352,7 +352,7 @@ public:
|
||||
stream << QString::fromStdString(data.value) << ",";
|
||||
stream << "\n";
|
||||
}
|
||||
qDebug() << "CSV文件保存成功";
|
||||
qDebug() << TR("CSV file saved successfully");
|
||||
}
|
||||
else {
|
||||
qDebug() << "无法创建CSV文件";
|
||||
@@ -381,7 +381,7 @@ public:
|
||||
return;
|
||||
}
|
||||
else {
|
||||
qDebug() << "无法打开CSV文件";
|
||||
qDebug() << TR("Unable to open CSV file");
|
||||
#pragma region
|
||||
std::string command = "explorer /select, \"" + fileName.toStdString() + "\"";
|
||||
size_t pos = 0;
|
||||
@@ -390,7 +390,7 @@ public:
|
||||
}
|
||||
system(command.c_str());
|
||||
#pragma endregion 打开文件夹
|
||||
QMessageBox::critical(nullptr, "Error", u8"文件已存在且无法被写入!");
|
||||
QMessageBox::critical(nullptr, "Error", TR("File already exists and cannot be written!"));
|
||||
}
|
||||
}
|
||||
#pragma endregion 不需要判断时间的循环
|
||||
|
||||
@@ -20,12 +20,12 @@ public:
|
||||
QLabel* fileNameLabel = new QLabel(this);
|
||||
|
||||
QLabel* imgShow = new QLabel();
|
||||
historyItemWidget(QString title, QSize parentSize, historyPack historyPackIn)
|
||||
historyItemWidget(QString title, QSize parentSize, historyPack historyPackIn)
|
||||
{
|
||||
if (historyPackIn.img.isNull())
|
||||
return;
|
||||
_historyPack = historyPackIn;
|
||||
QFont font(u8"微软雅黑", 12, QFont::Bold);
|
||||
if (historyPackIn.img.isNull())
|
||||
return;
|
||||
_historyPack = historyPackIn;
|
||||
QFont font("Microsoft YaHei", 12, QFont::Bold);
|
||||
this->setObjectName("historyItemWidget");
|
||||
QVBoxLayout* vlayout = new QVBoxLayout();
|
||||
resultLabel->setText(title);
|
||||
@@ -129,11 +129,11 @@ public:
|
||||
QListWidget* showDataListWidget = new QListWidget();
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
historyShowListSubThread _historyShowListSubThread;
|
||||
historyShowListWidget()
|
||||
historyShowListWidget()
|
||||
{
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font(u8"微软雅黑", 16, QFont::Bold);
|
||||
QFont font("Microsoft YaHei", 16, QFont::Bold);
|
||||
QHBoxLayout* hLayout = new QHBoxLayout();
|
||||
|
||||
title->setPalette(palette);
|
||||
|
||||
@@ -16,7 +16,7 @@ public:
|
||||
QLabel* dirLabel = new QLabel();
|
||||
toolItemWidget(QString title)
|
||||
{
|
||||
QFont font("微软雅黑", 24, QFont::Bold);
|
||||
QFont font("Microsoft YaHei", 24, QFont::Bold);
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
QString path;
|
||||
for (auto p : pathList)
|
||||
path.append(p + "/");
|
||||
QFont font("微软雅黑", 18, QFont::Bold);
|
||||
QFont font("Microsoft YaHei", 18, QFont::Bold);
|
||||
std::vector<std::string> result = fileManager::getAllDirs(path);
|
||||
for (auto dirName : result)
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ class softwareDataDisplay : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
softwareDataDisplay(QWidget* parent = nullptr) : QWidget(parent) {
|
||||
QFont font("微软雅黑", 12);
|
||||
QFont font("Microsoft YaHei", 12);
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QHBoxLayout* layout = new QHBoxLayout(this);
|
||||
|
||||
@@ -123,10 +123,10 @@ public:
|
||||
FrequencyBar* _3DCtBar;
|
||||
summaryDataManager()
|
||||
{
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font("微软雅黑", 14, QFont::Bold);
|
||||
QFont font2("微软雅黑", 20, QFont::Bold);
|
||||
QPalette palette;
|
||||
palette.setColor(QPalette::WindowText, Qt::white);
|
||||
QFont font("Microsoft YaHei", 14, QFont::Bold);
|
||||
QFont font2("Microsoft YaHei", 20, QFont::Bold);
|
||||
widget = new fancyWidget(TR(" Run Data"));
|
||||
|
||||
/* fancyButtonText* resetBtn = new fancyButtonText(80,40,u8"重置", u8"重置跑料数据");
|
||||
|
||||
@@ -316,9 +316,9 @@ namespace Auth {
|
||||
std::cerr << errorMessage << std::endl;
|
||||
|
||||
// 显示权限不足的弹窗
|
||||
QMessageBox::warning(nullptr,
|
||||
"权限不足",
|
||||
QString("您没有足够的权限执行此操作。\n\n需要权限级别: %1\n当前权限级别: %2")
|
||||
QMessageBox::warning(nullptr,
|
||||
TR("Insufficient permissions"),
|
||||
QString(TR("您没有足够的权限执行此操作。\n\n需要权限级别: %1\n当前权限级别: %2"))
|
||||
.arg(QString::fromStdString(userLevelToString(requiredLevel)))
|
||||
.arg(QString::fromStdString(userLevelToString(currentUserLevel))));
|
||||
}
|
||||
@@ -333,9 +333,9 @@ namespace Auth {
|
||||
std::cerr << errorMessage << std::endl;
|
||||
|
||||
// 显示权限不足的弹窗(指定父窗口)
|
||||
QMessageBox::warning(parent,
|
||||
QString::fromLocal8Bit("权限不足"),
|
||||
QString::fromLocal8Bit("您没有足够的权限执行此操作。\n\n需要权限级别: %1\n当前权限级别: %2")
|
||||
QMessageBox::warning(parent,
|
||||
TR("Insufficient permissions"),
|
||||
QString(TR("You do not have sufficient permissions to perform this action.\n\nRequired level: %1\nCurrent level: %2"))
|
||||
.arg(QString::fromStdString(userLevelToString(requiredLevel)))
|
||||
.arg(QString::fromStdString(userLevelToString(currentUserLevel))));
|
||||
}
|
||||
|
||||
+485
-310
@@ -1,26 +1,106 @@
|
||||
{
|
||||
"current_language": "zh-CN",
|
||||
"current_language": "us-EN",
|
||||
"section": [
|
||||
"us-EN",
|
||||
"zh-CN",
|
||||
"ms-MY"
|
||||
],
|
||||
"translate": {
|
||||
"(Mean)": {
|
||||
"ms-MY": "(Purata)",
|
||||
"us-EN": "(Mean)",
|
||||
"zh-CN": "(均值)"
|
||||
},
|
||||
"(Spec Lower Limit)": {
|
||||
"ms-MY": "(Had Bawah Spesifikasi)",
|
||||
"us-EN": "(Spec Lower Limit)",
|
||||
"zh-CN": "(规格下限)"
|
||||
},
|
||||
"(Spec Upper Limit)": {
|
||||
"ms-MY": "(Had Atas Spesifikasi)",
|
||||
"us-EN": "(Spec Upper Limit)",
|
||||
"zh-CN": "(规格上限)"
|
||||
},
|
||||
"(Std Dev)": {
|
||||
"ms-MY": "(Sisihan Piawai)",
|
||||
"us-EN": "(Std Dev)",
|
||||
"zh-CN": "(标准差)"
|
||||
},
|
||||
"AI Detection System": {
|
||||
"ms-MY": "Sistem Pengesanan AI",
|
||||
"us-EN": "AI Detection System",
|
||||
"zh-CN": "AI检测系统"
|
||||
},
|
||||
"After-sales": {
|
||||
"ms-MY": "Perkhidmatan Selepas Jualan",
|
||||
"us-EN": "After-sales",
|
||||
"zh-CN": "售后"
|
||||
},
|
||||
"All password fields cannot be empty": {
|
||||
"ms-MY": "Semua medan kata laluan tidak boleh kosong",
|
||||
"us-EN": "All password fields cannot be empty",
|
||||
"zh-CN": "所有密码字段都不能为空"
|
||||
},
|
||||
"Are you sure you want to execute this action?": {
|
||||
"ms-MY": "Adakah anda pasti mahu melaksanakan tindakan ini?",
|
||||
"us-EN": "Are you sure you want to execute this action?",
|
||||
"zh-CN": "确定要执行此操作吗?"
|
||||
},
|
||||
"Auto Logout": {
|
||||
"ms-MY": "Auto Log Keluar",
|
||||
"us-EN": "Auto Logout",
|
||||
"zh-CN": "自动注销"
|
||||
},
|
||||
"Auto Scroll": {
|
||||
"ms-MY": "Tatal Automatik",
|
||||
"us-EN": "Auto Scroll",
|
||||
"zh-CN": "自动滚动"
|
||||
},
|
||||
"Back to Menu": {
|
||||
"ms-MY": "Kembali ke Menu",
|
||||
"us-EN": "Back to Menu",
|
||||
"zh-CN": "返回目录"
|
||||
},
|
||||
"Boolean control type mismatch": {
|
||||
"ms-MY": "Jenis kawalan boolean tidak sepadan",
|
||||
"us-EN": "Boolean control type mismatch",
|
||||
"zh-CN": "布尔值控件类型错误"
|
||||
},
|
||||
"Boolean must be true or false": {
|
||||
"ms-MY": "Boolean mesti true atau false",
|
||||
"us-EN": "Boolean must be true or false",
|
||||
"zh-CN": "布尔值只能是 true 或 false"
|
||||
},
|
||||
"CPK Calculation": {
|
||||
"ms-MY": "Pengiraan CPK",
|
||||
"us-EN": "CPK Calculation",
|
||||
"zh-CN": "CPK计算"
|
||||
},
|
||||
"CPK Length": {
|
||||
"ms-MY": "CPK Panjang",
|
||||
"us-EN": "CPK Length",
|
||||
"zh-CN": "cpk长度"
|
||||
},
|
||||
"CPK Width": {
|
||||
"ms-MY": "CPK Lebar",
|
||||
"us-EN": "CPK Width",
|
||||
"zh-CN": "cpk宽度"
|
||||
},
|
||||
"CSV File (*.csv)": {
|
||||
"ms-MY": "Fail CSV (*.csv)",
|
||||
"us-EN": "CSV File (*.csv)",
|
||||
"zh-CN": "CSV文件 (*.csv)"
|
||||
},
|
||||
"Camera Label": {
|
||||
"ms-MY": "Label Kamera",
|
||||
"us-EN": "Camera Label",
|
||||
"zh-CN": "相机标签"
|
||||
},
|
||||
"Cancel": {
|
||||
"ms-MY": "Batal",
|
||||
"us-EN": "Cancel",
|
||||
"zh-CN": "取消"
|
||||
},
|
||||
"Change Password": {
|
||||
"ms-MY": "Tukar Kata Laluan",
|
||||
"us-EN": "Change Password",
|
||||
@@ -31,16 +111,36 @@
|
||||
"us-EN": "Close",
|
||||
"zh-CN": "关闭"
|
||||
},
|
||||
"Confirm": {
|
||||
"ms-MY": "Sahkan",
|
||||
"us-EN": "Confirm",
|
||||
"zh-CN": "提示"
|
||||
},
|
||||
"Confirm Password:": {
|
||||
"ms-MY": "Sahkan Kata Laluan:",
|
||||
"us-EN": "Confirm Password:",
|
||||
"zh-CN": "确认密码:"
|
||||
},
|
||||
"Console": {
|
||||
"ms-MY": "Konsol",
|
||||
"us-EN": "Console",
|
||||
"zh-CN": "控制台"
|
||||
},
|
||||
"Console Log...": {
|
||||
"ms-MY": "Log Konsol...",
|
||||
"us-EN": "Console Log...",
|
||||
"zh-CN": "控制台日志..."
|
||||
},
|
||||
"Console Settings": {
|
||||
"ms-MY": "Tetapan Konsol",
|
||||
"us-EN": "Console Settings",
|
||||
"zh-CN": "控制台设置"
|
||||
},
|
||||
"Conversion error: %1": {
|
||||
"ms-MY": "Ralat penukaran: %1",
|
||||
"us-EN": "Conversion error: %1",
|
||||
"zh-CN": "转换错误: %1"
|
||||
},
|
||||
"Create User": {
|
||||
"ms-MY": "Cipta Pengguna",
|
||||
"us-EN": "Create User",
|
||||
@@ -51,6 +151,11 @@
|
||||
"us-EN": "Current Password:",
|
||||
"zh-CN": "当前密码:"
|
||||
},
|
||||
"Current Run Data": {
|
||||
"ms-MY": "Data Larian Semasa",
|
||||
"us-EN": "Current Run Data",
|
||||
"zh-CN": "本次运行数据"
|
||||
},
|
||||
"Current User Information": {
|
||||
"ms-MY": "Maklumat Pengguna Semasa",
|
||||
"us-EN": "Current User Information",
|
||||
@@ -71,26 +176,136 @@
|
||||
"us-EN": "Current user logged out",
|
||||
"zh-CN": "已注销当前用户"
|
||||
},
|
||||
"Current version: v%1": {
|
||||
"ms-MY": "Versi semasa: v%1",
|
||||
"us-EN": "Current version: v%1",
|
||||
"zh-CN": "当前版本: v%1"
|
||||
},
|
||||
"Data successfully exported to:\n": {
|
||||
"ms-MY": "Data berjaya dieksport ke:\\n",
|
||||
"us-EN": "Data successfully exported to:\n",
|
||||
"zh-CN": "数据已成功导出到:\n"
|
||||
},
|
||||
"Database Operations": {
|
||||
"ms-MY": "Operasi Pangkalan Data",
|
||||
"us-EN": "Database Operations",
|
||||
"zh-CN": "数据库操作界面"
|
||||
},
|
||||
"Debug": {
|
||||
"ms-MY": "Penyelesaian Masalah",
|
||||
"us-EN": "Debug",
|
||||
"zh-CN": "故障排查"
|
||||
},
|
||||
"Default Title": {
|
||||
"ms-MY": "Tajuk Lalai",
|
||||
"us-EN": "Default Title",
|
||||
"zh-CN": "默认标题"
|
||||
},
|
||||
"Detecting...": {
|
||||
"ms-MY": "Mengesan...",
|
||||
"us-EN": "Detecting...",
|
||||
"zh-CN": "正在检测..."
|
||||
},
|
||||
"Do you want to exit the application?": {
|
||||
"ms-MY": "Adakah anda mahu keluar daripada aplikasi?",
|
||||
"us-EN": "Do you want to exit the application?",
|
||||
"zh-CN": "是否退出程序?"
|
||||
},
|
||||
"Edit Parameters": {
|
||||
"ms-MY": "Sunting Parameter",
|
||||
"us-EN": "Edit Parameters",
|
||||
"zh-CN": "编辑参数"
|
||||
},
|
||||
"Engineer": {
|
||||
"ms-MY": "Jurutera",
|
||||
"us-EN": "Engineer",
|
||||
"zh-CN": "工程师"
|
||||
},
|
||||
"Enter a boolean value (true or false)": {
|
||||
"ms-MY": "Masukkan nilai boolean (true atau false)",
|
||||
"us-EN": "Enter a boolean value (true or false)",
|
||||
"zh-CN": "输入布尔值(true 或 false)"
|
||||
},
|
||||
"Enter a decimal value": {
|
||||
"ms-MY": "Masukkan nilai perpuluhan",
|
||||
"us-EN": "Enter a decimal value",
|
||||
"zh-CN": "输入数字值(小数)"
|
||||
},
|
||||
"Enter a numeric value (integer or decimal)": {
|
||||
"ms-MY": "Masukkan nilai nombor (integer atau perpuluhan)",
|
||||
"us-EN": "Enter a numeric value (integer or decimal)",
|
||||
"zh-CN": "输入数字值(整数或小数)"
|
||||
},
|
||||
"Enter a string value (no quotes required)": {
|
||||
"ms-MY": "Masukkan nilai rentetan (tidak perlu tanda petik)",
|
||||
"us-EN": "Enter a string value (no quotes required)",
|
||||
"zh-CN": "输入字符串值(不需要引号)"
|
||||
},
|
||||
"Enter an integer value": {
|
||||
"ms-MY": "Masukkan nilai integer",
|
||||
"us-EN": "Enter an integer value",
|
||||
"zh-CN": "输入数字值(整数)"
|
||||
},
|
||||
"Error": {
|
||||
"ms-MY": "Ralat",
|
||||
"us-EN": "Error",
|
||||
"zh-CN": "错误"
|
||||
},
|
||||
"Execute Command": {
|
||||
"ms-MY": "Jalankan Perintah",
|
||||
"us-EN": "Execute Command",
|
||||
"zh-CN": "执行命令"
|
||||
},
|
||||
"Exit": {
|
||||
"ms-MY": "Keluar",
|
||||
"us-EN": "Exit",
|
||||
"zh-CN": "退出"
|
||||
},
|
||||
"Exit Confirmation": {
|
||||
"ms-MY": "Pengesahan Keluar",
|
||||
"us-EN": "Exit Confirmation",
|
||||
"zh-CN": "退出确认"
|
||||
},
|
||||
"Export": {
|
||||
"ms-MY": "Eksport",
|
||||
"us-EN": "Export",
|
||||
"zh-CN": "导出"
|
||||
},
|
||||
"Export Failed": {
|
||||
"ms-MY": "Eksport Gagal",
|
||||
"us-EN": "Export Failed",
|
||||
"zh-CN": "导出失败"
|
||||
},
|
||||
"Export Successful": {
|
||||
"ms-MY": "Eksport Berjaya",
|
||||
"us-EN": "Export Successful",
|
||||
"zh-CN": "导出成功"
|
||||
},
|
||||
"Export as CSV": {
|
||||
"ms-MY": "Eksport sebagai CSV",
|
||||
"us-EN": "Export as CSV",
|
||||
"zh-CN": "导出为CSV"
|
||||
},
|
||||
"Failed to export CSV. Please check the path or database status.": {
|
||||
"ms-MY": "Gagal mengeksport CSV. Sila semak laluan atau status pangkalan data.",
|
||||
"us-EN": "Failed to export CSV. Please check the path or database status.",
|
||||
"zh-CN": "导出CSV文件失败,请检查路径或数据库状态。"
|
||||
},
|
||||
"General JSON Editor": {
|
||||
"ms-MY": "Penyunting JSON Am",
|
||||
"us-EN": "General JSON Editor",
|
||||
"zh-CN": "通用 JSON 编辑"
|
||||
},
|
||||
"Get value error: %1": {
|
||||
"ms-MY": "Ralat mendapat nilai: %1",
|
||||
"us-EN": "Get value error: %1",
|
||||
"zh-CN": "获取值错误: %1"
|
||||
},
|
||||
"Go Back": {
|
||||
"ms-MY": "Kembali",
|
||||
"us-EN": "Go Back",
|
||||
"zh-CN": "返回上一级"
|
||||
},
|
||||
"Guest": {
|
||||
"ms-MY": "Tetamu",
|
||||
"us-EN": "Guest",
|
||||
@@ -101,16 +316,71 @@
|
||||
"us-EN": "Hardware Information",
|
||||
"zh-CN": "硬件信息"
|
||||
},
|
||||
"History": {
|
||||
"ms-MY": "Sejarah",
|
||||
"us-EN": "History",
|
||||
"zh-CN": "历史记录"
|
||||
},
|
||||
"Initializing...": {
|
||||
"ms-MY": "Memulakan...",
|
||||
"us-EN": "Initializing...",
|
||||
"zh-CN": "正在初始化..."
|
||||
},
|
||||
"Input value too large (exceeds 10240 characters)": {
|
||||
"ms-MY": "Nilai input terlalu besar (melebihi 10240 aksara)",
|
||||
"us-EN": "Input value too large (exceeds 10240 characters)",
|
||||
"zh-CN": "输入值过大(超过10240字符)"
|
||||
},
|
||||
"Insufficient permissions": {
|
||||
"ms-MY": "Kebenaran tidak mencukupi",
|
||||
"us-EN": "Insufficient permissions",
|
||||
"zh-CN": "权限不足"
|
||||
},
|
||||
"Integer number control type mismatch": {
|
||||
"ms-MY": "Jenis kawalan nombor integer tidak sepadan",
|
||||
"us-EN": "Integer number control type mismatch",
|
||||
"zh-CN": "数字控件INT类型错误"
|
||||
},
|
||||
"Invalid numeric format": {
|
||||
"ms-MY": "Format nombor tidak sah",
|
||||
"us-EN": "Invalid numeric format",
|
||||
"zh-CN": "无效的数字格式"
|
||||
},
|
||||
"JSON Table Editor": {
|
||||
"ms-MY": "Editor Jadual JSON",
|
||||
"us-EN": "JSON Table Editor",
|
||||
"zh-CN": "JSON 表格编辑器"
|
||||
},
|
||||
"JSON content cannot be empty": {
|
||||
"ms-MY": "Kandungan JSON tidak boleh kosong",
|
||||
"us-EN": "JSON content cannot be empty",
|
||||
"zh-CN": "JSON 内容不能为空"
|
||||
},
|
||||
"JSON content is too large and may cause a crash": {
|
||||
"ms-MY": "Kandungan JSON terlalu besar dan mungkin menyebabkan kerosakan",
|
||||
"us-EN": "JSON content is too large and may cause a crash",
|
||||
"zh-CN": "JSON 内容过大,可能导致崩溃"
|
||||
},
|
||||
"JSON parse error: %1": {
|
||||
"ms-MY": "Ralat parse JSON: %1",
|
||||
"us-EN": "JSON parse error: %1",
|
||||
"zh-CN": "JSON解析错误: %1"
|
||||
},
|
||||
"JSON parse failed:\n%1": {
|
||||
"ms-MY": "Parse JSON gagal:\\n%1",
|
||||
"us-EN": "JSON parse failed:\\n%1",
|
||||
"zh-CN": "JSON 解析失败:\\n%1"
|
||||
},
|
||||
"Language Settings": {
|
||||
"ms-MY": "Tetapan Bahasa",
|
||||
"us-EN": "Language Settings",
|
||||
"zh-CN": "语言设置"
|
||||
},
|
||||
"Length": {
|
||||
"ms-MY": "Panjang",
|
||||
"us-EN": "Length",
|
||||
"zh-CN": "长度"
|
||||
},
|
||||
"Log": {
|
||||
"ms-MY": "Analisis Log",
|
||||
"us-EN": "Log",
|
||||
@@ -141,6 +411,21 @@
|
||||
"us-EN": "Logout",
|
||||
"zh-CN": "注销"
|
||||
},
|
||||
"Monitor error: %1": {
|
||||
"ms-MY": "Ralat pemantauan: %1",
|
||||
"us-EN": "Monitor error: %1",
|
||||
"zh-CN": "监控错误: %1"
|
||||
},
|
||||
"Monitoring Error": {
|
||||
"ms-MY": "Ralat Pemantauan",
|
||||
"us-EN": "Monitoring Error",
|
||||
"zh-CN": "监控异常"
|
||||
},
|
||||
"NG Count": {
|
||||
"ms-MY": "Kiraan NG",
|
||||
"us-EN": "NG Count",
|
||||
"zh-CN": "NG数量"
|
||||
},
|
||||
"New Password:": {
|
||||
"ms-MY": "Kata Laluan Baru:",
|
||||
"us-EN": "New Password:",
|
||||
@@ -156,11 +441,61 @@
|
||||
"us-EN": "New password must be at least 4 characters",
|
||||
"zh-CN": "新密码长度至少为4位"
|
||||
},
|
||||
"Null (enter null)": {
|
||||
"ms-MY": "Null (masukkan null)",
|
||||
"us-EN": "Null (enter null)",
|
||||
"zh-CN": "空值(输入 null)"
|
||||
},
|
||||
"Null value must be null": {
|
||||
"ms-MY": "Nilai null mesti null",
|
||||
"us-EN": "Null value must be null",
|
||||
"zh-CN": "空值只能是 null"
|
||||
},
|
||||
"Number control type mismatch": {
|
||||
"ms-MY": "Jenis kawalan nombor tidak sepadan",
|
||||
"us-EN": "Number control type mismatch",
|
||||
"zh-CN": "数字控件类型错误"
|
||||
},
|
||||
"OK": {
|
||||
"ms-MY": "OK",
|
||||
"us-EN": "OK",
|
||||
"zh-CN": "确定"
|
||||
},
|
||||
"OK Count": {
|
||||
"ms-MY": "Kiraan OK",
|
||||
"us-EN": "OK Count",
|
||||
"zh-CN": "OK数量"
|
||||
},
|
||||
"Offline Mode": {
|
||||
"ms-MY": "Mod Luar Talian",
|
||||
"us-EN": "Offline Mode",
|
||||
"zh-CN": "离线模式"
|
||||
},
|
||||
"Open Log Folder": {
|
||||
"ms-MY": "Buka Folder Log",
|
||||
"us-EN": "Open Log Folder",
|
||||
"zh-CN": "打开日志文件夹"
|
||||
},
|
||||
"Option": {
|
||||
"ms-MY": "Pilihan",
|
||||
"us-EN": "Option",
|
||||
"zh-CN": "选项"
|
||||
},
|
||||
"Original type information not found for row %1": {
|
||||
"ms-MY": "Maklumat jenis asal tidak ditemui untuk baris %1",
|
||||
"us-EN": "Original type information not found for row %1",
|
||||
"zh-CN": "第 %1 行找不到原始类型信息"
|
||||
},
|
||||
"Param": {
|
||||
"ms-MY": "Tetapan Parameter",
|
||||
"us-EN": "Param",
|
||||
"zh-CN": "参数设置"
|
||||
},
|
||||
"Parse Error": {
|
||||
"ms-MY": "Ralat Parse",
|
||||
"us-EN": "Parse Error",
|
||||
"zh-CN": "解析错误"
|
||||
},
|
||||
"Password change failed, please check current password": {
|
||||
"ms-MY": "Penukaran kata laluan gagal, sila periksa kata laluan semasa",
|
||||
"us-EN": "Password change failed, please check current password",
|
||||
@@ -181,6 +516,11 @@
|
||||
"us-EN": "Password:",
|
||||
"zh-CN": "密码:"
|
||||
},
|
||||
"Pending": {
|
||||
"ms-MY": "Tertunda",
|
||||
"us-EN": "Pending",
|
||||
"zh-CN": "待读取"
|
||||
},
|
||||
"Permission Level:": {
|
||||
"ms-MY": "Tahap Kebenaran:",
|
||||
"us-EN": "Permission Level:",
|
||||
@@ -201,21 +541,111 @@
|
||||
"us-EN": "Please create user first",
|
||||
"zh-CN": "请先创建用户"
|
||||
},
|
||||
"Please enter JSON:": {
|
||||
"ms-MY": "Sila masukkan JSON:",
|
||||
"us-EN": "Please enter JSON:",
|
||||
"zh-CN": "请输入 JSON:"
|
||||
},
|
||||
"Please enter a valid JSON value": {
|
||||
"ms-MY": "Sila masukkan nilai JSON yang sah",
|
||||
"us-EN": "Please enter a valid JSON value",
|
||||
"zh-CN": "请输入有效的JSON值"
|
||||
},
|
||||
"Production Data Collection": {
|
||||
"ms-MY": "Pengumpulan Data Pengeluaran",
|
||||
"us-EN": "Production Data Collection",
|
||||
"zh-CN": "生产数据采集"
|
||||
},
|
||||
"Refresh": {
|
||||
"ms-MY": "Segarkan",
|
||||
"us-EN": "Refresh",
|
||||
"zh-CN": "刷新"
|
||||
},
|
||||
"Reinitialize": {
|
||||
"ms-MY": "Inisialisasi Semula",
|
||||
"us-EN": "Reinitialize",
|
||||
"zh-CN": "重新进行初始化"
|
||||
},
|
||||
"Remaining: ": {
|
||||
"ms-MY": "Baki: ",
|
||||
"us-EN": "Remaining: ",
|
||||
"zh-CN": "剩余: "
|
||||
},
|
||||
"Retry": {
|
||||
"ms-MY": "Cuba Semula",
|
||||
"us-EN": "Retry",
|
||||
"zh-CN": "重试"
|
||||
},
|
||||
"Row %1 data is incomplete": {
|
||||
"ms-MY": "Data baris %1 tidak lengkap",
|
||||
"us-EN": "Row %1 data is incomplete",
|
||||
"zh-CN": "第 %1 行数据不完整"
|
||||
},
|
||||
"Row %1 key is empty": {
|
||||
"ms-MY": "Kekunci baris %1 kosong",
|
||||
"us-EN": "Row %1 key is empty",
|
||||
"zh-CN": "第 %1 行 key 为空"
|
||||
},
|
||||
"Row %1 value validation failed:\n%2": {
|
||||
"ms-MY": "Pengesahan nilai baris %1 gagal:\\n%2",
|
||||
"us-EN": "Row %1 value validation failed:\\n%2",
|
||||
"zh-CN": "第 %1 行值验证失败:\\n%2"
|
||||
},
|
||||
"Run Data": {
|
||||
"ms-MY": "Data Larian",
|
||||
"us-EN": "Run Data",
|
||||
"zh-CN": "运行数据"
|
||||
},
|
||||
"SN Search": {
|
||||
"ms-MY": "Carian SN",
|
||||
"us-EN": "SN Search",
|
||||
"zh-CN": "SN查询"
|
||||
},
|
||||
"Save": {
|
||||
"ms-MY": "Simpan",
|
||||
"us-EN": "Save",
|
||||
"zh-CN": "保存"
|
||||
},
|
||||
"Search": {
|
||||
"ms-MY": "Carian",
|
||||
"us-EN": "Search",
|
||||
"zh-CN": "查询"
|
||||
},
|
||||
"Service is offline": {
|
||||
"ms-MY": "Perkhidmatan luar talian",
|
||||
"us-EN": "Service is offline",
|
||||
"zh-CN": "服务已离线"
|
||||
},
|
||||
"Setting": {
|
||||
"ms-MY": "Tetapan",
|
||||
"us-EN": "Setting",
|
||||
"zh-CN": "设置"
|
||||
},
|
||||
"Shift": {
|
||||
"ms-MY": "Syif",
|
||||
"us-EN": "Shift",
|
||||
"zh-CN": "班次"
|
||||
},
|
||||
"String control type mismatch": {
|
||||
"ms-MY": "Jenis kawalan rentetan tidak sepadan",
|
||||
"us-EN": "String control type mismatch",
|
||||
"zh-CN": "字符串控件类型错误"
|
||||
},
|
||||
"Success": {
|
||||
"ms-MY": "Berjaya",
|
||||
"us-EN": "Success",
|
||||
"zh-CN": "成功"
|
||||
},
|
||||
"System Log": {
|
||||
"ms-MY": "Log Sistem",
|
||||
"us-EN": "System Log",
|
||||
"zh-CN": "系统日志"
|
||||
},
|
||||
"System status: %1\\n": {
|
||||
"ms-MY": "Status sistem: %1\\\\n",
|
||||
"us-EN": "System status: %1\\\\n",
|
||||
"zh-CN": "系统状态: %1\\\\n"
|
||||
},
|
||||
"TOOLS": {
|
||||
"ms-MY": "Alat",
|
||||
"us-EN": "TOOLS",
|
||||
@@ -226,6 +656,21 @@
|
||||
"us-EN": "Timed out",
|
||||
"zh-CN": "已超时"
|
||||
},
|
||||
"Total Count": {
|
||||
"ms-MY": "Jumlah Kiraan",
|
||||
"us-EN": "Total Count",
|
||||
"zh-CN": "总数量"
|
||||
},
|
||||
"Type Validation Failed": {
|
||||
"ms-MY": "Pengesahan Jenis Gagal",
|
||||
"us-EN": "Type Validation Failed",
|
||||
"zh-CN": "类型验证失败"
|
||||
},
|
||||
"Unknown data type": {
|
||||
"ms-MY": "Jenis data tidak diketahui",
|
||||
"us-EN": "Unknown data type",
|
||||
"zh-CN": "未知的数据类型"
|
||||
},
|
||||
"User Management": {
|
||||
"ms-MY": "Pengurusan Pengguna",
|
||||
"us-EN": "User Management",
|
||||
@@ -251,11 +696,36 @@
|
||||
"us-EN": "Username:",
|
||||
"zh-CN": "用户名:"
|
||||
},
|
||||
"Value": {
|
||||
"ms-MY": "Nilai",
|
||||
"us-EN": "Value",
|
||||
"zh-CN": "值"
|
||||
},
|
||||
"Value:": {
|
||||
"ms-MY": "Nilai:",
|
||||
"us-EN": "Value:",
|
||||
"zh-CN": "值:"
|
||||
},
|
||||
"ViewImage": {
|
||||
"ms-MY": "Lihat Imej",
|
||||
"us-EN": "View Image",
|
||||
"zh-CN": "查看图片"
|
||||
},
|
||||
"Warning": {
|
||||
"ms-MY": "Amaran",
|
||||
"us-EN": "Warning",
|
||||
"zh-CN": "警告"
|
||||
},
|
||||
"Welcome!": {
|
||||
"ms-MY": "Selamat Datang!",
|
||||
"us-EN": "Welcome!",
|
||||
"zh-CN": "欢迎!"
|
||||
},
|
||||
"Width:": {
|
||||
"ms-MY": "Lebar:",
|
||||
"us-EN": "Width:",
|
||||
"zh-CN": "宽度:"
|
||||
},
|
||||
"Window Settings": {
|
||||
"ms-MY": "Tetapan Tetingkap",
|
||||
"us-EN": "Window Settings",
|
||||
@@ -266,6 +736,16 @@
|
||||
"us-EN": "You need administrator permissions to create users",
|
||||
"zh-CN": "您需要管理员权限才能创建用户"
|
||||
},
|
||||
"Zoom In": {
|
||||
"ms-MY": "Zum Masuk",
|
||||
"us-EN": "Zoom In",
|
||||
"zh-CN": "放大窗口"
|
||||
},
|
||||
"Zoom Out": {
|
||||
"ms-MY": "Zum Keluar",
|
||||
"us-EN": "Zoom Out",
|
||||
"zh-CN": "缩小窗口"
|
||||
},
|
||||
"hideConsole": {
|
||||
"ms-MY": "Sembunyikan Konsol",
|
||||
"us-EN": "Hide Console",
|
||||
@@ -285,315 +765,10 @@
|
||||
"ms-MY": "Akan berubah selepas restart",
|
||||
"zh-CN": "重启后将会更改"
|
||||
},
|
||||
"History": {
|
||||
"ms-MY": "History",
|
||||
"us-EN": "History",
|
||||
"zh-CN": "历史记录"
|
||||
},
|
||||
"Camera Label": {
|
||||
"ms-MY": "Camera Label",
|
||||
"us-EN": "Camera Label",
|
||||
"zh-CN": "相机标签"
|
||||
},
|
||||
"Zoom In": {
|
||||
"ms-MY": "Zoom In",
|
||||
"us-EN": "Zoom In",
|
||||
"zh-CN": "放大窗口"
|
||||
},
|
||||
"Zoom Out": {
|
||||
"ms-MY": "Zoom Out",
|
||||
"us-EN": "Zoom Out",
|
||||
"zh-CN": "缩小窗口"
|
||||
},
|
||||
"Go Back": {
|
||||
"ms-MY": "Go Back",
|
||||
"us-EN": "Go Back",
|
||||
"zh-CN": "返回上一级"
|
||||
},
|
||||
"Back to Menu": {
|
||||
"ms-MY": "Back to Menu",
|
||||
"us-EN": "Back to Menu",
|
||||
"zh-CN": "返回目录"
|
||||
},
|
||||
"Current Run Data": {
|
||||
"ms-MY": "Current Run Data",
|
||||
"us-EN": "Current Run Data",
|
||||
"zh-CN": "本次运行数据"
|
||||
},
|
||||
"Length": {
|
||||
"ms-MY": "Length",
|
||||
"us-EN": "Length",
|
||||
"zh-CN": "长度"
|
||||
},
|
||||
"Pending": {
|
||||
"ms-MY": "Pending",
|
||||
"us-EN": "Pending",
|
||||
"zh-CN": "待读取"
|
||||
},
|
||||
"Width:": {
|
||||
"ms-MY": "Width:",
|
||||
"us-EN": "Width:",
|
||||
"zh-CN": "宽度:"
|
||||
},
|
||||
"Detecting...": {
|
||||
"ms-MY": "Detecting...",
|
||||
"us-EN": "Detecting...",
|
||||
"zh-CN": "正在检测..."
|
||||
},
|
||||
"System status: %1\n": {
|
||||
"ms-MY": "System status: %1\\n",
|
||||
"us-EN": "System status: %1\\n",
|
||||
"zh-CN": "系统状态: %1\\n"
|
||||
},
|
||||
"Monitoring Error": {
|
||||
"ms-MY": "Monitoring Error",
|
||||
"us-EN": "Monitoring Error",
|
||||
"zh-CN": "监控异常"
|
||||
},
|
||||
"Monitor error: %1": {
|
||||
"ms-MY": "Monitor error: %1",
|
||||
"us-EN": "Monitor error: %1",
|
||||
"zh-CN": "监控错误: %1"
|
||||
},
|
||||
"Execute Command": {
|
||||
"ms-MY": "Execute Command",
|
||||
"us-EN": "Execute Command",
|
||||
"zh-CN": "执行命令"
|
||||
},
|
||||
"Confirm": {
|
||||
"ms-MY": "Confirm",
|
||||
"us-EN": "Confirm",
|
||||
"zh-CN": "提示"
|
||||
},
|
||||
"Are you sure you want to execute this action?": {
|
||||
"ms-MY": "Are you sure you want to execute this action?",
|
||||
"us-EN": "Are you sure you want to execute this action?",
|
||||
"zh-CN": "确定要执行此操作吗?"
|
||||
},
|
||||
"Run Data": {
|
||||
"ms-MY": "Run Data",
|
||||
"us-EN": "Run Data",
|
||||
"zh-CN": "运行数据"
|
||||
},
|
||||
"OK Count": {
|
||||
"ms-MY": "OK Count",
|
||||
"us-EN": "OK Count",
|
||||
"zh-CN": "OK数量"
|
||||
},
|
||||
"NG Count": {
|
||||
"ms-MY": "NG Count",
|
||||
"us-EN": "NG Count",
|
||||
"zh-CN": "NG数量"
|
||||
},
|
||||
"Total Count": {
|
||||
"ms-MY": "Total Count",
|
||||
"us-EN": "Total Count",
|
||||
"zh-CN": "总数量"
|
||||
},
|
||||
"JSON Table Editor": {
|
||||
"ms-MY": "JSON Table Editor",
|
||||
"us-EN": "JSON Table Editor",
|
||||
"zh-CN": "JSON 表格编辑器"
|
||||
},
|
||||
"Option": {
|
||||
"ms-MY": "Option",
|
||||
"us-EN": "Option",
|
||||
"zh-CN": "选项"
|
||||
},
|
||||
"Value": {
|
||||
"ms-MY": "Value",
|
||||
"us-EN": "Value",
|
||||
"zh-CN": "值"
|
||||
},
|
||||
"Save": {
|
||||
"ms-MY": "Save",
|
||||
"us-EN": "Save",
|
||||
"zh-CN": "保存"
|
||||
},
|
||||
"Cancel": {
|
||||
"ms-MY": "Cancel",
|
||||
"us-EN": "Cancel",
|
||||
"zh-CN": "取消"
|
||||
},
|
||||
"Row %1 data is incomplete": {
|
||||
"ms-MY": "Row %1 data is incomplete",
|
||||
"us-EN": "Row %1 data is incomplete",
|
||||
"zh-CN": "第 %1 行数据不完整"
|
||||
},
|
||||
"Row %1 key is empty": {
|
||||
"ms-MY": "Row %1 key is empty",
|
||||
"us-EN": "Row %1 key is empty",
|
||||
"zh-CN": "第 %1 行 key 为空"
|
||||
},
|
||||
"Original type information not found for row %1": {
|
||||
"ms-MY": "Original type information not found for row %1",
|
||||
"us-EN": "Original type information not found for row %1",
|
||||
"zh-CN": "第 %1 行找不到原始类型信息"
|
||||
},
|
||||
"Type Validation Failed": {
|
||||
"ms-MY": "Type Validation Failed",
|
||||
"us-EN": "Type Validation Failed",
|
||||
"zh-CN": "类型验证失败"
|
||||
},
|
||||
"Row %1 value validation failed:\n%2": {
|
||||
"ms-MY": "Row %1 value validation failed:\\n%2",
|
||||
"us-EN": "Row %1 value validation failed:\\n%2",
|
||||
"zh-CN": "第 %1 行值验证失败:\\n%2"
|
||||
},
|
||||
"Boolean control type mismatch": {
|
||||
"ms-MY": "Boolean control type mismatch",
|
||||
"us-EN": "Boolean control type mismatch",
|
||||
"zh-CN": "布尔值控件类型错误"
|
||||
},
|
||||
"Number control type mismatch": {
|
||||
"ms-MY": "Number control type mismatch",
|
||||
"us-EN": "Number control type mismatch",
|
||||
"zh-CN": "数字控件类型错误"
|
||||
},
|
||||
"String control type mismatch": {
|
||||
"ms-MY": "String control type mismatch",
|
||||
"us-EN": "String control type mismatch",
|
||||
"zh-CN": "字符串控件类型错误"
|
||||
},
|
||||
"Get value error: %1": {
|
||||
"ms-MY": "Get value error: %1",
|
||||
"us-EN": "Get value error: %1",
|
||||
"zh-CN": "获取值错误: %1"
|
||||
},
|
||||
"Enter a string value (no quotes required)": {
|
||||
"ms-MY": "Enter a string value (no quotes required)",
|
||||
"us-EN": "Enter a string value (no quotes required)",
|
||||
"zh-CN": "输入字符串值(不需要引号)"
|
||||
},
|
||||
"Enter a numeric value (integer or decimal)": {
|
||||
"ms-MY": "Enter a numeric value (integer or decimal)",
|
||||
"us-EN": "Enter a numeric value (integer or decimal)",
|
||||
"zh-CN": "输入数字值(整数或小数)"
|
||||
},
|
||||
"Enter a boolean value (true or false)": {
|
||||
"ms-MY": "Enter a boolean value (true or false)",
|
||||
"us-EN": "Enter a boolean value (true or false)",
|
||||
"zh-CN": "输入布尔值(true 或 false)"
|
||||
},
|
||||
"Enter a JSON array, e.g., [1,2,3] or [\"a\",\"b\"]": {
|
||||
"ms-MY": "Enter a JSON array, e.g., [1,2,3] or [\"a\",\"b\"]",
|
||||
"us-EN": "Enter a JSON array, e.g., [1,2,3] or [\"a\",\"b\"]",
|
||||
"zh-CN": "输入JSON数组格式,如:[1,2,3] 或 [\"a\",\"b\"]"
|
||||
},
|
||||
"Enter a JSON object, e.g., {\"key\":\"value\"}": {
|
||||
"ms-MY": "Enter a JSON object, e.g., {\\\"key\\\":\\\"value\\\"}",
|
||||
"us-EN": "Enter a JSON object, e.g., {\\\"key\\\":\\\"value\\\"}",
|
||||
"zh-CN": "输入JSON对象格式,如:{\\\"key\\\":\\\"value\\\"}"
|
||||
},
|
||||
"Null (enter null)": {
|
||||
"ms-MY": "Null (enter null)",
|
||||
"us-EN": "Null (enter null)",
|
||||
"zh-CN": "空值(输入 null)"
|
||||
},
|
||||
"Please enter a valid JSON value": {
|
||||
"ms-MY": "Please enter a valid JSON value",
|
||||
"us-EN": "Please enter a valid JSON value",
|
||||
"zh-CN": "请输入有效的JSON值"
|
||||
},
|
||||
"Input value too large (exceeds 10240 characters)": {
|
||||
"ms-MY": "Input value too large (exceeds 10240 characters)",
|
||||
"us-EN": "Input value too large (exceeds 10240 characters)",
|
||||
"zh-CN": "输入值过大(超过10240字符)"
|
||||
},
|
||||
"Invalid numeric format": {
|
||||
"ms-MY": "Invalid numeric format",
|
||||
"us-EN": "Invalid numeric format",
|
||||
"zh-CN": "无效的数字格式"
|
||||
},
|
||||
"Boolean must be true or false": {
|
||||
"ms-MY": "Boolean must be true or false",
|
||||
"us-EN": "Boolean must be true or false",
|
||||
"zh-CN": "布尔值只能是 true 或 false"
|
||||
},
|
||||
"Null value must be null": {
|
||||
"ms-MY": "Null value must be null",
|
||||
"us-EN": "Null value must be null",
|
||||
"zh-CN": "空值只能是 null"
|
||||
},
|
||||
"Expected array format, e.g., [1,2,3]": {
|
||||
"ms-MY": "Expected array format, e.g., [1,2,3]",
|
||||
"us-EN": "Expected array format, e.g., [1,2,3]",
|
||||
"zh-CN": "期望数组格式,如:[1,2,3]"
|
||||
},
|
||||
"Expected object format, e.g., {\"key\":\"value\"}": {
|
||||
"ms-MY": "Expected object format, e.g., {\\\"key\\\":\\\"value\\\"}",
|
||||
"us-EN": "Expected object format, e.g., {\\\"key\\\":\\\"value\\\"}",
|
||||
"zh-CN": "期望对象格式,如:{\\\"key\\\":\\\"value\\\"}"
|
||||
},
|
||||
"Unknown data type": {
|
||||
"ms-MY": "Jenis data tidak diketahui",
|
||||
"us-EN": "Unknown data type",
|
||||
"zh-CN": "未知的数据类型"
|
||||
},
|
||||
"JSON parse error: %1": {
|
||||
"ms-MY": "Ralat parse JSON: %1",
|
||||
"us-EN": "JSON parse error: %1",
|
||||
"zh-CN": "JSON解析错误: %1"
|
||||
},
|
||||
"Conversion error: %1": {
|
||||
"ms-MY": "Ralat penukaran: %1",
|
||||
"us-EN": "Conversion error: %1",
|
||||
"zh-CN": "转换错误: %1"
|
||||
},
|
||||
"General JSON Editor": {
|
||||
"ms-MY": "Penyunting JSON Am",
|
||||
"us-EN": "General JSON Editor",
|
||||
"zh-CN": "通用 JSON 编辑"
|
||||
},
|
||||
"OK": {
|
||||
"ms-MY": "OK",
|
||||
"us-EN": "OK",
|
||||
"zh-CN": "确定"
|
||||
},
|
||||
"Please enter JSON:": {
|
||||
"ms-MY": "Sila masukkan JSON:",
|
||||
"us-EN": "Please enter JSON:",
|
||||
"zh-CN": "请输入 JSON:"
|
||||
},
|
||||
"Warning": {
|
||||
"ms-MY": "Amaran",
|
||||
"us-EN": "Warning",
|
||||
"zh-CN": "警告"
|
||||
},
|
||||
"JSON content cannot be empty": {
|
||||
"ms-MY": "Kandungan JSON tidak boleh kosong",
|
||||
"us-EN": "JSON content cannot be empty",
|
||||
"zh-CN": "JSON 内容不能为空"
|
||||
},
|
||||
"JSON content is too large and may cause a crash": {
|
||||
"ms-MY": "Kandungan JSON terlalu besar dan mungkin menyebabkan kerosakan",
|
||||
"us-EN": "JSON content is too large and may cause a crash",
|
||||
"zh-CN": "JSON 内容过大,可能导致崩溃"
|
||||
},
|
||||
"Parse Error": {
|
||||
"ms-MY": "Ralat Parse",
|
||||
"us-EN": "Parse Error",
|
||||
"zh-CN": "解析错误"
|
||||
},
|
||||
"JSON parse failed:\n%1": {
|
||||
"ms-MY": "Parse JSON gagal:\\n%1",
|
||||
"us-EN": "JSON parse failed:\\n%1",
|
||||
"zh-CN": "JSON 解析失败:\\n%1"
|
||||
},
|
||||
"Integer number control type mismatch": {
|
||||
"ms-MY": "Jenis kawalan nombor integer tidak sepadan",
|
||||
"us-EN": "Integer number control type mismatch",
|
||||
"zh-CN": "数字控件INT类型错误"
|
||||
},
|
||||
"Enter an integer value": {
|
||||
"ms-MY": "Masukkan nilai integer",
|
||||
"us-EN": "Enter an integer value",
|
||||
"zh-CN": "输入数字值(整数)"
|
||||
},
|
||||
"Enter a decimal value": {
|
||||
"ms-MY": "Masukkan nilai perpuluhan",
|
||||
"us-EN": "Enter a decimal value",
|
||||
"zh-CN": "输入数字值(小数)"
|
||||
"您没有足够的权限执行此操作。\n\n需要权限级别: %1\n当前权限级别: %2": {
|
||||
"ms-MY": "Anda tidak mempunyai kebenaran yang mencukupi untuk melaksanakan tindakan ini.\n\nTahap diperlukan: %1\nTahap semasa: %2",
|
||||
"us-EN": "You do not have sufficient permissions to perform this action.\n\nRequired level: %1\nCurrent level: %2",
|
||||
"zh-CN": "您没有足够的权限执行此操作。\n\n所需等级: %1\n当前等级: %2"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user