Index: trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 13501)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 13502)
@@ -67,4 +67,5 @@
 import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
+import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.MultiMap;
@@ -743,4 +744,6 @@
              InputStream s = zip != null ? zip : cache.getInputStream();
              Reader reader = new BufferedReader(UTFInputStreamReader.create(s))) {
+            if (zip != null)
+                I18n.addTextsZip(cache.getFile());
             result = TagCheck.readMapCSS(reader);
             checks.remove(url);
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 13501)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 13502)
@@ -22,4 +22,5 @@
 import java.util.jar.JarInputStream;
 import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
 
 /**
@@ -367,4 +368,9 @@
     }
 
+    /**
+     * I18n initialization for plugins.
+     * @param source file path/name of the JAR file containing translation strings
+     * @since 4159
+     */
     public static void addTexts(File source) {
         if ("en".equals(loadedCode))
@@ -398,4 +404,26 @@
                 }
             }
+        } catch (IOException | InvalidPathException e) {
+            Logging.trace(e);
+        }
+    }
+
+    /**
+     * I18n initialization for Zip based resources.
+     * @param source input Zip source
+     * @since xxx
+     */
+    public static void addTextsZip(File source) {
+        if ("en".equals(loadedCode))
+            return;
+        final ZipEntry enfile = new ZipEntry("data/en.lang");
+        final ZipEntry langfile = new ZipEntry("data/"+loadedCode+".lang");
+        try (
+            ZipFile zipFile = new ZipFile(source, StandardCharsets.UTF_8);
+            InputStream orig = zipFile.getInputStream(enfile);
+            InputStream trans = zipFile.getInputStream(langfile);
+        ) {
+            if (orig != null && trans != null)
+                load(orig, trans, true);
         } catch (IOException | InvalidPathException e) {
             Logging.trace(e);
