]> git.mjollnir.org Git - s9y.git/commitdiff
Added helper tool
authorgarvinhicking <garvinhicking>
Mon, 23 Jan 2006 14:57:37 +0000 (14:57 +0000)
committergarvinhicking <garvinhicking>
Mon, 23 Jan 2006 14:57:37 +0000 (14:57 +0000)
lang/plugin_lang.php [new file with mode: 0644]

diff --git a/lang/plugin_lang.php b/lang/plugin_lang.php
new file mode 100644 (file)
index 0000000..334dded
--- /dev/null
@@ -0,0 +1,81 @@
+<?php
+
+function help() {
+    echo "This helper application lists all missing constants from plugin translations.\n\n";
+    echo "==================================================\n";
+    echo "Call Syntax:\n";
+    echo "\tphp plugin_lang.php [lang]\n";
+    echo "==================================================\n";
+    echo "\n";
+    echo "[lang] needs to replaced with the language you want to compare against.\n";
+    echo "Example:\n";
+    echo "\tphp plugin_lang.php de\n";
+    echo "\tThis command will show all untranslated german strings.\n\n";
+}
+
+if (!is_array($argv) || empty($argv[1])) {
+    echo "==================================================\n";
+    echo "This tool is intended to be called via commandline!\n";
+    echo "==================================================\n\n";
+    help();
+    die();
+}
+
+$lang = preg_replace('@[^a-z0-9]@', '', strtolower($argv[1]));
+echo "Probing language $lang\n";
+$base = '../plugins/';
+$d = @opendir($base);
+
+if (!$d) {
+    die('Failure');
+}
+
+$const = array();
+$const['checked'] = get_defined_constants();
+while(($file = readdir($d)) !== false) {
+    if ($file{0} == '.') {
+        continue;
+    }
+    
+    if (!is_dir($base . '/' . $file)) {
+        continue;
+    }
+    
+    $tfile = $base . '/' . $file . '/lang_en.inc.php';
+    $sfile = $base . '/' . $file . '/lang_' . $lang . '.inc.php';
+
+    if (file_exists($tfile)) {
+        echo "Parsing english language from $file - ";
+        include $tfile;
+        $current = get_defined_constants();
+        $const['native'][$file] = array_diff($current, $const['checked']);
+        $const['checked'] = array_merge($const['checked'], $current);
+        echo count($const['native'][$file]) . " constants.\n";
+    } else {
+        echo "NOTICE: English language of $file does not exist.\n";
+        continue;
+    }
+    
+    if (file_exists($sfile)) {
+        echo "Parsing differences for $file - ";
+        include $sfile;
+        $current = get_defined_constants();
+        $const['missing'][$file] = array_diff($current, $const['checked']);
+        $const['checked'] = array_merge($const['checked'], $current);
+       
+        echo count($const['missing'][$file]) . " missing constants.\n";
+    } else {
+        $const['missing'][$file] = $const['native'][$file];
+    }
+    echo "\n";
+}
+
+echo "Showing missing constants:\n\n";
+foreach($const['missing'] AS $file => $constants) {
+    echo strtoupper($file) . ":\n";
+    foreach($constants AS $const => $val) {
+        echo "\t" . $const . "\n";
+        echo "\t\t" . $val . "\n";
+    }
+    echo "---------------------------\n";
+}