From 57d188e69a17788ff78fd1b9ad1afa2b232f6536 Mon Sep 17 00:00:00 2001 From: Michael Peter Christen Date: Tue, 7 Jul 2026 21:36:59 +0200 Subject: Major fix for localization: finalizing German, French, Spanish, Italian, Greek, Slovak, Ukrainian, Turkish and Russian. Also added full support for Polish language. All servlets are now fully supported by those languages. --- test/java/net/yacy/data/TranslatorTest.java | 17 ++++++++ .../translation/GenerateSourceMasterXliffTest.java | 45 ++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 test/java/net/yacy/utils/translation/GenerateSourceMasterXliffTest.java (limited to 'test/java') diff --git a/test/java/net/yacy/data/TranslatorTest.java b/test/java/net/yacy/data/TranslatorTest.java index df5380d59..cc447f3a0 100644 --- a/test/java/net/yacy/data/TranslatorTest.java +++ b/test/java/net/yacy/data/TranslatorTest.java @@ -60,4 +60,21 @@ public class TranslatorTest { } } + @Test + public void testTranslateSkipsTechnicalTargets() { + final Translator translator = new Translator(); + final Map translationTable = new HashMap(); + translationTable.put("Network", "Réseau"); + translationTable.put("share", "partager"); + translationTable.put("localhost", "hôte-local"); + + assertEquals("Réseau", translator.translate(new StringBuilder("Network"), translationTable)); + assertEquals("Réseau", + translator.translate(new StringBuilder("Network"), translationTable)); + assertEquals("servlet share.json", + translator.translate(new StringBuilder("servlet share.json"), translationTable)); + assertEquals("http://localhost:8090/Network.html", + translator.translate(new StringBuilder("http://localhost:8090/Network.html"), translationTable)); + } + } diff --git a/test/java/net/yacy/utils/translation/GenerateSourceMasterXliffTest.java b/test/java/net/yacy/utils/translation/GenerateSourceMasterXliffTest.java new file mode 100644 index 000000000..4aafd98e3 --- /dev/null +++ b/test/java/net/yacy/utils/translation/GenerateSourceMasterXliffTest.java @@ -0,0 +1,45 @@ +package net.yacy.utils.translation; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.Map; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +public class GenerateSourceMasterXliffTest { + + @Rule + public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + @Test + public void testMainExtractsSourceVisibleTextAndVerifiesOutput() throws Exception { + final File sourceRoot = this.temporaryFolder.newFolder("htroot"); + final File sourceFile = new File(sourceRoot, "Network.html"); + Files.write(sourceFile.toPath(), ( + "\n" + + "Network\n" + + "\n" + + "\n" + + "\n" + + "\n").getBytes(StandardCharsets.UTF_8)); + + final File outputFile = this.temporaryFolder.newFile("source-master.lng.xlf"); + GenerateSourceMasterXliff.main(new String[] { sourceRoot.getAbsolutePath(), outputFile.getAbsolutePath() }); + + final Map> master = new TranslatorXliff().loadTranslationsListsFromXliff(outputFile); + assertTrue(master.containsKey("Network.html")); + + final Map entries = master.get("Network.html"); + assertTrue(entries.containsKey("Network")); + assertTrue(entries.containsKey("\"Network link\"")); + assertTrue(entries.containsKey("\"Save\"")); + assertFalse(entries.containsKey("\"Internal secret\"")); + assertFalse(entries.containsKey("Ignored script text")); + } +} -- cgit v1.2.3