From dbb2f077137d1eb438cc498d1cf267ba6adb5fbd Mon Sep 17 00:00:00 2001 From: Tri Vo Khac Date: Fri, 13 Nov 2026 22:08:45 +0700 Subject: [PATCH] fix(translate): leave user-edited translations alone on glossary edits --- src/translate/translationservice.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/translate/translationservice.cpp b/src/translate/translationservice.cpp index 204abac..5a069fd 100644 --- a/src/translate/translationservice.cpp +++ b/src/translate/translationservice.cpp @@ -255,6 +255,12 @@ void TranslationService::applyGlossaryEdits(const GlossaryStore::Glossary &previ if (m_lastTranslationPath.isEmpty() || !QFileInfo::exists(m_lastTranslationPath)) { return; } + // A translation the user has edited since is theirs; leave it alone. + const QString registryFile = TranslationStore::registryFile(); + TranslationStore::Registry registry = TranslationStore::load(registryFile); + if (!TranslationStore::isOwned(registry, m_lastTranslationPath)) { + return; + } QFile file(m_lastTranslationPath); if (!file.open(QIODevice::ReadOnly)) { return; @@ -307,8 +313,6 @@ void TranslationService::applyGlossaryEdits(const GlossaryStore::Glossary &previ return; } // Still QtPotato's file, so a later translation may replace it. - const QString registryFile = TranslationStore::registryFile(); - TranslationStore::Registry registry = TranslationStore::load(registryFile); TranslationStore::recordRewrite(registry, m_lastTranslationPath, data); TranslationStore::save(registryFile, registry); Q_EMIT translated(QUrl::fromLocalFile(m_lastTranslationPath), true);