feat(translate): add per-series glossary with auto extraction

This commit was merged in pull request #2.
This commit is contained in:
tri committed 2026-11-07 13:28:32 +07:00
1 parent 18ba92a6e3
commit 9e55dba687
14 files changed
+380 -12

No files matched your search

+6
View File
@@ -8,6 +8,12 @@ ecm_add_test(mpvuserconfigtest.cpp
LINK_LIBRARIES qtpotato_core Qt6::Test
)
ecm_add_test(glossarystoretest.cpp ../src/translate/glossarystore.cpp
TEST_NAME glossarystoretest
LINK_LIBRARIES Qt6::Core Qt6::Test
)
target_include_directories(glossarystoretest PRIVATE ../src/translate)
ecm_add_test(playlistmodeltest.cpp ../src/playlist/playlistmodel.cpp
TEST_NAME playlistmodeltest
LINK_LIBRARIES Qt6::Qml Qt6::Test
+30
View File
@@ -0,0 +1,30 @@
// SPDX-License-Identifier: GPL-3.0-or-later
#include "glossarystore.h"
#include <QStandardPaths>
#include <QTest>
using namespace Qt::Literals::StringLiterals;
class GlossaryStoreTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void saveLoadMerge()
{
QTemporaryDir temp;
QStandardPaths::setTestModeEnabled(true);
const QString directory = temp.path() + u"/series"_s;
GlossaryStore::Glossary original{directory, {{u"Lin"_s, u"Lâm"_s}}};
QVERIFY(GlossaryStore::save(original));
const auto loaded = GlossaryStore::load(directory);
QCOMPARE(loaded.entries.size(), 1);
const auto merged = GlossaryStore::merge(loaded, {{u"Lin"_s, u"Other"_s}, {u"Sect"_s, u"Tông"_s}});
QCOMPARE(merged.entries.size(), 2);
QCOMPARE(merged.entries.at(0).target, u"Lâm"_s);
QCOMPARE(merged.entries.at(1).source, u"Sect"_s);
}
};
QTEST_MAIN(GlossaryStoreTest)
#include "glossarystoretest.moc"