增加日志翻译

feature/AutoFit-Optimize-20260821
lvjunjie 2 weeks ago
parent e8278d6c87
commit 4a5500d927

Binary file not shown.

@ -638,6 +638,389 @@ Reason: %1</source>
<translation>stderr%1</translation>
</message>
</context>
<context>
<name>nmCalculationAutoFitLM</name>
<message>
<source>=== User Stop Request Received ===</source>
<translation>=== ===</translation>
</message>
<message>
<source>Gracefully stopping LM automatic fitting...</source>
<translation> LM ...</translation>
</message>
<message>
<source>Waiting for current solver evaluation to stop...</source>
<translation>...</translation>
</message>
<message>
<source>LM automatic fitting stop request processed</source>
<translation>LM </translation>
</message>
<message>
<source>Stop request received but optimization is not running</source>
<translation></translation>
</message>
<message>
<source>LM fitting trace: %1</source>
<translation>LM %1</translation>
</message>
<message>
<source>LM fitting trace metadata: %1</source>
<translation>LM %1</translation>
</message>
<message>
<source>=== LM Run Summary ===</source>
<translation>=== LM ===</translation>
</message>
<message>
<source>Stop reason: %1</source>
<translation>%1</translation>
</message>
<message>
<source>Result: %1, final error=%2, iterations=%3, evaluations=%4 (successful=%5, failed=%6)</source>
<translation>%1=%2=%3=%4=%5=%6</translation>
</message>
<message>
<source>SUCCESS</source>
<translation></translation>
</message>
<message>
<source>FAILED</source>
<translation></translation>
</message>
<message>
<source>Artifacts: trace=%1</source>
<translation>=%1</translation>
</message>
<message>
<source>Artifacts: trace_meta=%1</source>
<translation>=%1</translation>
</message>
<message>
<source>ERROR: Failed to load configuration from data manager</source>
<translation></translation>
</message>
<message>
<source>Algorithm: LM</source>
<translation>LM</translation>
</message>
<message>
<source>Enabled parameters count: %1</source>
<translation>%1</translation>
</message>
<message>
<source>ERROR: No parameters enabled for optimization</source>
<translation></translation>
</message>
<message>
<source>ERROR: Target LogLog data is empty or insufficient</source>
<translation></translation>
</message>
<message>
<source>ERROR: Target LogLog data arrays have inconsistent sizes</source>
<translation></translation>
</message>
<message>
<source>ERROR: Target well name is empty</source>
<translation></translation>
</message>
<message>
<source>Target data validation passed (%1 data points)</source>
<translation>%1 </translation>
</message>
<message>
<source>=== Evaluating Initial Solution (Elite Protection) ===</source>
<translation>=== ===</translation>
</message>
<message>
<source>Initial parameters: </source>
<translation></translation>
</message>
<message>
<source>Starting initial solution evaluation...</source>
<translation>...</translation>
</message>
<message>
<source>Initial solution evaluation successful</source>
<translation></translation>
</message>
<message>
<source>Initial Error: %1</source>
<translation>%1</translation>
</message>
<message>
<source>Initial solution evaluation failed</source>
<translation></translation>
</message>
<message>
<source>Exception during initial solution evaluation</source>
<translation></translation>
</message>
<message>
<source>Critical exception in automatic fitting: %1</source>
<translation>%1</translation>
</message>
<message>
<source>CRITICAL ERROR: %1</source>
<translation>%1</translation>
</message>
<message>
<source>Unknown critical exception in automatic fitting</source>
<translation></translation>
</message>
<message>
<source>CRITICAL ERROR: Unknown exception in automatic fitting</source>
<translation></translation>
</message>
<message>
<source>Applying optimized parameters to model...</source>
<translation>...</translation>
</message>
<message>
<source>Final full-field calculation skipped after user stop</source>
<translation></translation>
</message>
<message>
<source>Running final full-field calculation with optimized parameters...</source>
<translation>使...</translation>
</message>
<message>
<source>Final full-field calculation completed successfully</source>
<translation></translation>
</message>
<message>
<source>Final full-field calculation stopped by user</source>
<translation></translation>
</message>
<message>
<source>Optimized parameters were found, but the final full-field calculation failed</source>
<translation></translation>
</message>
<message>
<source>ERROR: Final full-field calculation failed</source>
<translation></translation>
</message>
<message>
<source>=== Optimization Results ===</source>
<translation>=== ===</translation>
</message>
<message>
<source>Final error: %1</source>
<translation>%1</translation>
</message>
<message>
<source>Total iterations: %1</source>
<translation>%1</translation>
</message>
<message>
<source>Total evaluations: %1 (successful: %2)</source>
<translation>%1%2</translation>
</message>
<message>
<source>Optimized parameters: </source>
<translation></translation>
</message>
<message>
<source>Parameters and full-field results applied successfully to data manager</source>
<translation></translation>
</message>
<message>
<source>Optimized parameters applied to data manager</source>
<translation></translation>
</message>
<message>
<source>ERROR: Failed to apply final parameters: %1</source>
<translation>%1</translation>
</message>
<message>
<source>ERROR: Unknown error applying final parameters</source>
<translation></translation>
</message>
<message>
<source>Target achieved. Best error: %1, Iterations: %2</source>
<translation>%1%2</translation>
</message>
<message>
<source>=== LM AUTOMATIC FITTING SUCCESSFUL ===</source>
<translation>=== LM ===</translation>
</message>
<message>
<source>Automatic fitting converged to a stable solution. Best error: %1, Iterations: %2</source>
<translation>%1%2</translation>
</message>
<message>
<source>=== LM AUTOMATIC FITTING CONVERGED ===</source>
<translation>=== LM ===</translation>
</message>
<message>
<source>Automatic fitting reached a local optimum. Best error: %1, Iterations: %2</source>
<translation>%1%2</translation>
</message>
<message>
<source>=== LM AUTOMATIC FITTING - LOCAL OPTIMUM ===</source>
<translation>=== LM - ===</translation>
</message>
<message>
<source>Max iterations reached. Best error: %1, Iterations: %2</source>
<translation>%1%2</translation>
</message>
<message>
<source>=== LM AUTOMATIC FITTING - MAX ITERATIONS ===</source>
<translation>=== LM - ===</translation>
</message>
<message>
<source>Best error: %1, Iterations: %2</source>
<translation>%1%2</translation>
</message>
<message>
<source>=== LM AUTOMATIC FITTING STOPPED BY USER ===</source>
<translation>=== LM ===</translation>
</message>
<message>
<source>Automatic fitting failed due to consecutive failures. Best error: %1, Iterations: %2</source>
<translation>%1%2</translation>
</message>
<message>
<source>=== LM AUTOMATIC FITTING FAILED ===</source>
<translation>=== LM ===</translation>
</message>
<message>
<source>Automatic fitting ended unexpectedly. Best error: %1, Iterations: %2</source>
<translation>%1%2</translation>
</message>
<message>
<source>=== LM AUTOMATIC FITTING - UNKNOWN END ===</source>
<translation>=== LM - ===</translation>
</message>
<message>
<source>No valid parameters are available for trust-region fitting</source>
<translation> LM </translation>
</message>
<message>
<source>The initial solution and parameter-range midpoint are both invalid</source>
<translation></translation>
</message>
<message>
<source>=== Starting LM Main Loop ===</source>
<translation>=== LM ===</translation>
</message>
<message>
<source>LM starting point error: %1; evaluation budget: %2</source>
<translation>LM %1%2</translation>
</message>
<message>
<source>No effective improvement for %1 consecutive steps; rebuilding sensitivity model for confirmation</source>
<translation> %1 </translation>
</message>
<message>
<source>Effective improvement threshold: max(%1, %2% of baseline error); %3 consecutive ineffective steps trigger convergence confirmation</source>
<translation> %1 %2% %3 </translation>
</message>
<message>
<source>Sensitivity probe accepted: error reduced to %1</source>
<translation> %1</translation>
</message>
<message>
<source>Sensitivity model rebuilt: %1/%2 parameter columns valid</source>
<translation>%1/%2 </translation>
</message>
<message>
<source>Sensitivity rebuild produced no effective improvement; local convergence detected</source>
<translation></translation>
</message>
<message>
<source>vertical deviation</source>
<translation></translation>
</message>
<message>
<source>horizontal deviation</source>
<translation></translation>
</message>
<message>
<source>shape deviation</source>
<translation></translation>
</message>
<message>
<source>total error</source>
<translation></translation>
</message>
<message>
<source>Iteration %1: focus=%2, parameters=%3, error=%4, result=%5</source>
<translation> %1=%2=%3=%4=%5</translation>
</message>
<message>
<source>accepted</source>
<translation></translation>
</message>
<message>
<source>rejected</source>
<translation></translation>
</message>
<message>
<source>No initial solution for elite protection</source>
<translation></translation>
</message>
<message>
<source>=== Final Result Validation (Elite Protection) ===</source>
<translation>=== ===</translation>
</message>
<message>
<source>Comparing results: Initial=%1, Final=%2</source>
<translation>=%1=%2</translation>
</message>
<message>
<source>Improvement: %1 (%2%)</source>
<translation>%1%2%</translation>
</message>
<message>
<source>Elite protection triggered: final result is invalid or worse than initial</source>
<translation></translation>
</message>
<message>
<source>Restoring initial solution as final result</source>
<translation></translation>
</message>
<message>
<source>Initial solution restored successfully</source>
<translation></translation>
</message>
<message>
<source>Final result validated - solution is not worse than initial</source>
<translation></translation>
</message>
<message>
<source>Target error achieved</source>
<translation></translation>
</message>
<message>
<source>Algorithm converged to stable solution</source>
<translation></translation>
</message>
<message>
<source>Local optimum detected</source>
<translation></translation>
</message>
<message>
<source>Maximum iterations reached</source>
<translation></translation>
</message>
<message>
<source>Stopped by user request</source>
<translation></translation>
</message>
<message>
<source>Too many consecutive failures</source>
<translation></translation>
</message>
<message>
<source>Optimization failed</source>
<translation></translation>
</message>
<message>
<source>Unknown reason</source>
<translation></translation>
</message>
</context>
<context>
<name>nmCalculationSolver</name>
<message>
@ -3446,6 +3829,12 @@ Supported types: Vertical, Vertical Fractured, and Horizontal Multi-Fractured We
</source>
<translation>PSO</translation>
</message>
<message>
<source>%1 Optimization completed:
</source>
<translation>%1
</translation>
</message>
<message>
<source>Best Error: %1
</source>
@ -3476,6 +3865,12 @@ Supported types: Vertical, Vertical Fractured, and Horizontal Multi-Fractured We
</source>
<translation>PSO</translation>
</message>
<message>
<source>%1 Optimization stopped by user:
</source>
<translation>%1
</translation>
</message>
<message>
<source>Current parameters have been applied to the model.</source>
<translation></translation>
@ -3678,6 +4073,10 @@ Supported types: Vertical, Vertical Fractured, and Horizontal Multi-Fractured We
<source>GA auto fitting started</source>
<translation></translation>
</message>
<message>
<source>%1 auto fitting started</source>
<translation>%1 </translation>
</message>
<message>
<source>%1 fitting parameters set: MaxIterations=%2, TargetAccuracy=%3, TargetWell=%4</source>
<translation>%1 =%2=%3=%4</translation>

@ -803,7 +803,11 @@ void nmCalculationAutoFitLM::initializeTraceFile()
writeTraceHeader();
writeTraceMetaFile();
emit logMessageGenerated(tr("LM automatic fitting trace: %1").arg(m_traceFilePath));
emit logMessageGenerated(tr("LM fitting trace: %1").arg(m_traceFilePath));
if(!m_traceMetaFilePath.isEmpty()) {
emit logMessageGenerated(
tr("LM fitting trace metadata: %1").arg(m_traceMetaFilePath));
}
}
void nmCalculationAutoFitLM::closeTraceFile()
@ -990,7 +994,7 @@ void nmCalculationAutoFitLM::emitRunSummary(bool success, StopReasonLM finalReas
emit logMessageGenerated(tr("Stop reason: %1").arg(getStopReasonDescription(finalReason)));
emit logMessageGenerated(
tr("Result: %1, final error=%2, iterations=%3, evaluations=%4 (successful=%5, failed=%6)")
.arg(success ? "SUCCESS" : "FAILED")
.arg(success ? tr("SUCCESS") : tr("FAILED"))
.arg(m_globalBestFitness, 0, 'e', 4)
.arg(m_currentIteration + 1)
.arg(m_totalEvaluations)
@ -1179,7 +1183,7 @@ bool nmCalculationAutoFitLM::startAutoFitting()
return false;
}
emit logMessageGenerated(tr("Algorithm: Finite Difference + LM"));
emit logMessageGenerated(tr("Algorithm: LM"));
const int enabledParams = getEnabledParameterCount();
emit logMessageGenerated(tr("Enabled parameters count: %1").arg(enabledParams));
@ -1209,8 +1213,8 @@ bool nmCalculationAutoFitLM::startAutoFitting()
}
emit logMessageGenerated(
tr("Candidate evaluation mode: solve all wells, retain target well '%1' only")
.arg(m_targetWellName));
tr("Target data validation passed (%1 data points)")
.arg(m_targetLogLogData[0].size()));
// resetOptimizer() 会清空运行状态,因此先保存从 DataManager 提取的初始值。
QVector<double> savedInitialValues = m_initialValues;
@ -1235,6 +1239,8 @@ bool nmCalculationAutoFitLM::startAutoFitting()
emit logMessageGenerated(paramStr);
try {
emit logMessageGenerated(
tr("Starting initial solution evaluation..."));
QTime initialEvalTimer;
initialEvalTimer.start();
m_totalEvaluations++;
@ -1747,8 +1753,9 @@ StopReasonLM nmCalculationAutoFitLM::runTrustRegionFitting()
}
restoreEvaluationState(current);
emit logMessageGenerated(tr("=== Starting LM Main Loop ==="));
emit logMessageGenerated(
tr("Trust-region initial error: %1; evaluation budget: %2")
tr("LM starting point error: %1; evaluation budget: %2")
.arg(current.fitness, 0, 'e', 4)
.arg(maximumEvaluations));
@ -2459,10 +2466,21 @@ StopReasonLM nmCalculationAutoFitLM::runTrustRegionFitting()
: QString("rejected_%1").arg(componentName),
&candidate.breakdown);
QString componentDisplayName = componentName;
if(componentName == "vertical") {
componentDisplayName = tr("vertical deviation");
} else if(componentName == "horizontal") {
componentDisplayName = tr("horizontal deviation");
} else if(componentName == "shape") {
componentDisplayName = tr("shape deviation");
} else if(componentName == "total") {
componentDisplayName = tr("total error");
}
emit logMessageGenerated(
tr("Iteration %1: focus=%2, parameters=%3, error=%4, result=%5")
.arg(iteration + 1)
.arg(componentName)
.arg(componentDisplayName)
.arg(selectedColumns.size())
.arg(candidate.fitness, 0, 'e', 4)
.arg(accepted ? tr("accepted") : tr("rejected")));

Loading…
Cancel
Save