From 19e065374bfb0e5cefff3b699abe4a77008bf9fd Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag <klapinklapin@gmail.com>
Date: Sat, 30 Apr 2016 00:54:10 +0200
Subject: [PATCH] let js.php also use the configcascade for localized
 translation

---
 lib/exe/js.php | 62 ++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 48 insertions(+), 14 deletions(-)

diff --git a/lib/exe/js.php b/lib/exe/js.php
index e850218cf..0582ddfcc 100644
--- a/lib/exe/js.php
+++ b/lib/exe/js.php
@@ -219,18 +219,33 @@ function js_pluginscripts(){
  * @return array
  */
 function js_pluginstrings() {
-    global $conf;
+    global $conf, $config_cascade;
     $pluginstrings = array();
     $plugins = plugin_list();
-    foreach ($plugins as $p){
-        if (isset($lang)) unset($lang);
-        if (file_exists(DOKU_PLUGIN."$p/lang/en/lang.php")) {
-            include DOKU_PLUGIN."$p/lang/en/lang.php";
+    foreach($plugins as $p) {
+        $path = DOKU_PLUGIN . $p . '/lang/';
+
+        if(isset($lang)) unset($lang);
+        if(file_exists($path . "en/lang.php")) {
+            include $path . "en/lang.php";
+        }
+        foreach($config_cascade['lang']['plugin'] as $config_file) {
+            if(file_exists($config_file . $p . '/en/lang.php')) {
+                include($config_file . $p . '/en/lang.php');
+            }
         }
-        if (isset($conf['lang']) && $conf['lang']!='en' && file_exists(DOKU_PLUGIN."$p/lang/".$conf['lang']."/lang.php")) {
-            include DOKU_PLUGIN."$p/lang/".$conf['lang']."/lang.php";
+        if(isset($conf['lang']) && $conf['lang'] != 'en') {
+            if(file_exists($path . $conf['lang'] . "/lang.php")) {
+                include($path . $conf['lang'] . '/lang.php');
+            }
+            foreach($config_cascade['lang']['plugin'] as $config_file) {
+                if(file_exists($config_file . $p . '/' . $conf['lang'] . '/lang.php')) {
+                    include($config_file . $p . '/' . $conf['lang'] . '/lang.php');
+                }
+            }
         }
-        if (isset($lang['js'])) {
+
+        if(isset($lang['js'])) {
             $pluginstrings[$p] = $lang['js'];
         }
     }
@@ -247,15 +262,34 @@ function js_pluginstrings() {
  * @return array
  */
 function js_templatestrings($tpl) {
-    global $conf;
+    global $conf, $config_cascade;
+
+    $path = tpl_incdir() . 'lang/';
+
     $templatestrings = array();
-    if (file_exists(tpl_incdir($tpl)."lang/en/lang.php")) {
-        include tpl_incdir($tpl)."lang/en/lang.php";
+    if(file_exists($path . "en/lang.php")) {
+        include $path . "en/lang.php";
     }
-    if (isset($conf['lang']) && $conf['lang']!='en' && file_exists(tpl_incdir($tpl)."lang/".$conf['lang']."/lang.php")) {
-        include tpl_incdir($tpl)."lang/".$conf['lang']."/lang.php";
+    foreach($config_cascade['lang']['template'] as $config_file) {
+        if(file_exists($config_file . $conf['template'] . '/en/lang.php')) {
+            include($config_file . $conf['template'] . '/en/lang.php');
+        }
     }
-    if (isset($lang['js'])) {
+    if(isset($conf['lang']) && $conf['lang'] != 'en' && file_exists($path . $conf['lang'] . "/lang.php")) {
+        include $path . $conf['lang'] . "/lang.php";
+    }
+    if(isset($conf['lang']) && $conf['lang'] != 'en') {
+        if(file_exists($path . $conf['lang'] . "/lang.php")) {
+            include $path . $conf['lang'] . "/lang.php";
+        }
+        foreach($config_cascade['lang']['template'] as $config_file) {
+            if(file_exists($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php')) {
+                include($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php');
+            }
+        }
+    }
+
+    if(isset($lang['js'])) {
         $templatestrings[$tpl] = $lang['js'];
     }
     return $templatestrings;
-- 
GitLab