Localize JS fragments by using datasets
Change-Id: I8a05be11d04f52686d63d56f2c93ed20b82745d5
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
index 26b246c..0f5d4f1 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
@@ -61,8 +61,7 @@
* - Rename to "Kalamar-Plugin-Export".
* - Improve Readme.
* - Add opaque source, in case source is an internal IP.
- * - Include limitation to form.
- * - Localize javascript induced "with" in the title.
+ * - Add screenshot.
*
* TODO:
* - Localize RTF export.
diff --git a/src/main/resources/assets/export.js b/src/main/resources/assets/export.js
index 65f10fd..af55b93 100644
--- a/src/main/resources/assets/export.js
+++ b/src/main/resources/assets/export.js
@@ -12,16 +12,18 @@
let v = d.value;
if (v !== undefined && v["q"]) {
let e = v["q"];
+ const eq = document.getElementById("export-query");
+
document.getElementById("q").value=v["q"];
if (v["ql"]) {
- e += " with " + v["ql"];
+ e += " " + (eq.dataset.withql || "with") + " " + v["ql"];
document.getElementById("ql").value=v["ql"];
};
if (v["cq"]) {
- e += " in " + v["cq"];
+ e += " " + (eq.dataset.incq || "in") + " " + v["cq"];
document.getElementById("cq").value=v["cq"];
};
- document.getElementById("export-query").innerText = e;
+ eq.innerText = e;
}
else {
diff --git a/src/main/resources/assets/templates/export.ftl b/src/main/resources/assets/templates/export.ftl
index 4f6c481..a68cca4 100644
--- a/src/main/resources/assets/templates/export.ftl
+++ b/src/main/resources/assets/templates/export.ftl
@@ -62,7 +62,7 @@
</head>
<body>
<!-- <div class="banner" data-note="${dict.banner}"></div> -->
- <h1>${dict.export}: <code id="export-query"></code></h1>
+ <h1>${dict.export}: <code id="export-query" data-withql="${dict.with_ql}" data-incq="${dict.in_cq}"></code></h1>
<section>
<form id="export" class="form-table" action="export" method="POST">
<fieldset>
diff --git a/src/main/resources/locales/export.properties b/src/main/resources/locales/export.properties
index bb54079..6d14cbc 100644
--- a/src/main/resources/locales/export.properties
+++ b/src/main/resources/locales/export.properties
@@ -3,4 +3,6 @@
hitc = Limit to the first matches:
max_hitc = Maximum number of exportable matches:
export_button = Exportieren
-banner = Experimental
\ No newline at end of file
+banner = Experimental
+with_ql = with
+in_cq = in
\ No newline at end of file
diff --git a/src/main/resources/locales/export_de.properties b/src/main/resources/locales/export_de.properties
index e454d15..024bec5 100644
--- a/src/main/resources/locales/export_de.properties
+++ b/src/main/resources/locales/export_de.properties
@@ -6,4 +6,6 @@
hitc = Einschr\u00e4nken auf die ersten Treffer:
max_hitc = Maximal zu exportierende Treffer:
export_button = Exportieren
-banner = Experimentell
\ No newline at end of file
+banner = Experimentell
+with_ql = mit
+in_cq = in
\ No newline at end of file
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
index b6f1336..2c5b22c 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
@@ -68,6 +68,31 @@
};
@Test
+ public void testFormJsLocalization () {
+
+ // Check german
+ Response responsehtml = target("/export").request()
+ .header("Accept-Language","fr-CH, fr;q=0.9, de;q=0.8, en;q=0.7, *;q=0.5").get();
+ assertEquals("HTTP Code",
+ Status.OK.getStatusCode(), responsehtml.getStatus());
+ String str = responsehtml.readEntity(String.class);
+
+ assertTrue("HTTP Body (de1)", str.contains("data-withql=\"mit\""));
+ assertTrue("HTTP Body (de2)", str.contains("data-incq=\"in\""));
+
+ // Check English
+ responsehtml = target("/export").request()
+ .header("Accept-Language","fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5").get();
+ assertEquals("HTTP Code",
+ Status.OK.getStatusCode(), responsehtml.getStatus());
+ str = responsehtml.readEntity(String.class);
+
+ assertTrue("HTTP Body (en1)", str.contains("data-withql=\"with\""));
+ assertTrue("HTTP Body (en2)", str.contains("data-incq=\"in\""));
+ };
+
+
+ @Test
public void testFormHtmlMaxHitc () {
// Check german