From 15a5b9601de3e0e59390376868acf4309ec94ef3 Mon Sep 17 00:00:00 2001 From: lvjunjie Date: Wed, 21 Oct 2026 11:21:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(nmNum):=20=E8=A1=A5=E5=85=85=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bin/Config/Lang/cn/nmNum_cn.qm | Bin 183354 -> 187462 bytes Bin/Config/Lang/cn/nmNum_cn.ts | 179 ++++++++++++++++++++++ Src/nmNum/nmData/nmTranslationManager.cpp | 9 ++ Src/nmNum/nmSubWxs/nmWxForecast.cpp | 28 ++-- 4 files changed, 202 insertions(+), 14 deletions(-) diff --git a/Bin/Config/Lang/cn/nmNum_cn.qm b/Bin/Config/Lang/cn/nmNum_cn.qm index 317704631996df21e361dac3f42db3f7499efaf9..b65878ca06b9fc04f4bf56b2739854178837454b 100644 GIT binary patch delta 19557 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 WqXS~r9|Ow?b>LR{Y6tGLH@< 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 时间 + + Flow + 流量 + Pressure 压力 @@ -3604,6 +3608,22 @@ Solve time: %2 ms Sensitivity loglog plot 敏感性分析双对数图 + + Forecast - %1 + 预测 - %1 + + + Production rate + 产量 + + + Bottomhole pressure + 井底压力 + + + Cumulative production + 累计产量 + nmSubWndPostprocessing @@ -4441,6 +4461,38 @@ Supported types: Vertical, Vertical Fractured, and Horizontal Multi-Fractured We Max Delta T 最大时间间隔 + + Initial pressure + 初始压力 + + + Abandonment rate + 废弃产量 + + + Maximum rate + 最大产量 + + + Forecast duration + 预测时长 + + + Producing pressure + 生产压力 + + + Producing pressure (start) + 起始生产压力 + + + Producing pressure (end) + 终止生产压力 + + + Pressure change period + 压力变化时长 + nmWxAutomaticFitting @@ -6626,6 +6678,10 @@ Please check your input coordinates. Generate the model to enable sensitivity analysis. 生成模型后可进行敏感性分析。 + + Generate the model to enable forecast. + 生成模型后可使用预测功能。 + nmWxParaProperty @@ -8354,6 +8410,42 @@ Average pressure in contour: %2 MPa Regenerate the model before running sensitivity. 请重新生成模型后再进行敏感性分析。 + + Forecast input is unavailable. + 预测输入数据不可用。 + + + Generate the current model before forecasting. + 请先生成当前模型,再进行预测。 + + + Rate forecast currently supports single-phase models only. + 产量预测目前仅支持单相模型。 + + + Rate forecast currently requires one rate-controlled well. + 产量预测目前要求模型中仅有一口井,且该井采用产量控制。 + + + Enter a positive initial pressure and a complete rate schedule. + 请输入大于零的初始压力和完整的分段产量制度。 + + + Each duration must be positive and each production rate non-negative. + 每段持续时间必须大于零,产量不得小于零。 + + + The solver returned incomplete forecast pressure data. + 求解器返回的预测压力数据不完整。 + + + Invalid forecast pressure or time. Check the rate schedule and model. + 预测压力或时间无效,请检查分段产量制度和模型。 + + + The solver did not reach the end of the forecast schedule. + 求解器未计算到预测制度的结束时刻。 + nmParameterField @@ -8639,4 +8731,91 @@ Average pressure in contour: %2 MPa 取消 + + nmWxForecast + + Forecast + 预测 + + + Forecast options + 预测选项 + + + Constant pressure + 恒定压力 + + + Declining pressure (ramp) + 压力递减(线性) + + + Multiple pressures + 多段压力 + + + Multiple rates + 多段产量 + + + Use past history + 使用历史数据 + + + Surface pressures + 井口压力 + + + Parameters + 参数 + + + Load data + 加载数据 + + + Generate + 生成 + + + Cancel + 取消 + + + Duration + 持续时间 + + + Pressure + 压力 + + + Rate + 产量 + + + Generate the current model before forecasting. + 请先生成当前模型,再进行预测。 + + + Rate forecast currently supports single-well, single-phase models only. + 产量预测目前仅支持单井单相模型。 + + + Enter a positive initial pressure. + 请输入大于零的初始压力。 + + + Row %1: enter a positive duration and a non-negative production rate (0 for shut-in). + 第 %1 行:持续时间必须大于零,产量不得小于零(0 表示关井)。 + + + Enter at least one duration and production rate. + 请至少输入一段持续时间和产量。 + + + The model changed. Generate the forecast again. + 模型已发生变化,请重新生成预测。 + + diff --git a/Src/nmNum/nmData/nmTranslationManager.cpp b/Src/nmNum/nmData/nmTranslationManager.cpp index 84437965..da6d1fba 100644 --- a/Src/nmNum/nmData/nmTranslationManager.cpp +++ b/Src/nmNum/nmData/nmTranslationManager.cpp @@ -4,6 +4,15 @@ QMap nmTranslationManager::m_mapEnToZh; void nmTranslationManager::initTranslations() { m_mapEnToZh = QMap(); + // 预测参数组件沿用名称映射,保留数据中的英文名称与单位代码。 + m_mapEnToZh.insert("Initial pressure", tr("Initial pressure")); + m_mapEnToZh.insert("Abandonment rate", tr("Abandonment rate")); + m_mapEnToZh.insert("Maximum rate", tr("Maximum rate")); + m_mapEnToZh.insert("Forecast duration", tr("Forecast duration")); + m_mapEnToZh.insert("Producing pressure", tr("Producing pressure")); + m_mapEnToZh.insert("Producing pressure (start)", tr("Producing pressure (start)")); + m_mapEnToZh.insert("Producing pressure (end)", tr("Producing pressure (end)")); + m_mapEnToZh.insert("Pressure change period", tr("Pressure change period")); // 油藏 m_mapEnToZh.insert("Initial Pressure",tr("Initial Pressure")); //m_mapEnToZh.insert("Reservoir type",tr("Reservoir type")); diff --git a/Src/nmNum/nmSubWxs/nmWxForecast.cpp b/Src/nmNum/nmSubWxs/nmWxForecast.cpp index 66c8155c..455b602c 100644 --- a/Src/nmNum/nmSubWxs/nmWxForecast.cpp +++ b/Src/nmNum/nmSubWxs/nmWxForecast.cpp @@ -33,7 +33,7 @@ nmWxForecast::nmWxForecast(QWidget *parent, nmDataAnalyzeManager* manager) , m_extStackedWidget(nullptr) , m_extEmpty(nullptr) { - setWindowTitle("Forecast"); + setWindowTitle(tr("Forecast")); setFixedSize(520, 560); setAttribute(Qt::WA_DeleteOnClose); @@ -108,13 +108,13 @@ void nmWxForecast::setupUI() m_mainLayout = new QVBoxLayout(this); // ========== Forecast options ========== - m_forecastOptionsGroup = new QGroupBox("Forecast options", this); + m_forecastOptionsGroup = new QGroupBox(tr("Forecast options"), this); m_forecastOptionsLayout = new QVBoxLayout(m_forecastOptionsGroup); - m_constantPressureRadio = new QRadioButton("Constant pressure", this); - m_decliningPressureRadio = new QRadioButton("Declining pressure (ramp)", this); - m_multiplePressuresRadio = new QRadioButton("Multiple pressures", this); - m_multipleRatesRadio = new QRadioButton("Multiple rates", this); + m_constantPressureRadio = new QRadioButton(tr("Constant pressure"), this); + m_decliningPressureRadio = new QRadioButton(tr("Declining pressure (ramp)"), this); + m_multiplePressuresRadio = new QRadioButton(tr("Multiple pressures"), this); + m_multipleRatesRadio = new QRadioButton(tr("Multiple rates"), this); // 求解器目前仅接通产量控制;压力控制保留入口但不允许生成。 m_constantPressureRadio->setEnabled(false); m_decliningPressureRadio->setEnabled(false); @@ -126,8 +126,8 @@ void nmWxForecast::setupUI() m_forecastButtonGroup->addButton(m_multiplePressuresRadio, 2); m_forecastButtonGroup->addButton(m_multipleRatesRadio, 3); - m_usePastHistoryCheck = new QCheckBox("Use past history", this); - m_surfacePressuresCheck = new QCheckBox("Surface pressures", this); + m_usePastHistoryCheck = new QCheckBox(tr("Use past history"), this); + m_surfacePressuresCheck = new QCheckBox(tr("Surface pressures"), this); m_usePastHistoryCheck->setEnabled(false); m_surfacePressuresCheck->setEnabled(false); @@ -143,7 +143,7 @@ void nmWxForecast::setupUI() m_forecastOptionsLayout->addLayout(checkBoxLayout); // ========== Parameters ========== - m_parametersGroup = new QGroupBox("Parameters", this); + m_parametersGroup = new QGroupBox(tr("Parameters"), this); QVBoxLayout *parametersOuterLayout = new QVBoxLayout(m_parametersGroup); parametersOuterLayout->setContentsMargins(6, 6, 6, 6); @@ -247,9 +247,9 @@ void nmWxForecast::setupUI() // ========== Buttons ========== m_buttonLayout = new QHBoxLayout(); - m_loadDataButton = new QPushButton("Load data", this); - m_generateButton = new QPushButton("Generate", this); - m_cancelButton = new QPushButton("Cancel", this); + m_loadDataButton = new QPushButton(tr("Load data"), this); + m_generateButton = new QPushButton(tr("Generate"), this); + m_cancelButton = new QPushButton(tr("Cancel"), this); m_loadDataButton->setEnabled(false); m_buttonLayout->addWidget(m_loadDataButton); @@ -333,7 +333,7 @@ QWidget* nmWxForecast::buildExtMultiPressurePage() // 创建表格 m_pressureTableWidget = new QTableWidget(0, 2); - m_pressureTableWidget->setHorizontalHeaderLabels(QStringList() << "Duration" << "Pressure"); + m_pressureTableWidget->setHorizontalHeaderLabels(QStringList() << tr("Duration") << tr("Pressure")); m_pressureTableWidget->verticalHeader()->setVisible(false); m_pressureTableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch); @@ -401,7 +401,7 @@ QWidget* nmWxForecast::buildExtMultiRatePage() // 创建表格 m_rateTableWidget = new QTableWidget(0, 2); // 根据截图设置表头 - m_rateTableWidget->setHorizontalHeaderLabels(QStringList() << "Duration" << "Rate"); + m_rateTableWidget->setHorizontalHeaderLabels(QStringList() << tr("Duration") << tr("Rate")); m_rateTableWidget->verticalHeader()->setVisible(false); m_rateTableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);