From 095b3d81037f5a3b3de44444845651c9c4f5c411 Mon Sep 17 00:00:00 2001 From: Romain d'Alverny Date: Thu, 24 May 2012 13:45:06 +0000 Subject: reporting tools --- langs/lib.php | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 langs/lib.php (limited to 'langs/lib.php') diff --git a/langs/lib.php b/langs/lib.php new file mode 100644 index 000000000..86b13bf6f --- /dev/null +++ b/langs/lib.php @@ -0,0 +1,97 @@ + count($fa), + 'bCount' => count($fb), + 'diff' => count($fa) - count($fb), + ); + $missing = array(); + $notrans = array(); + + $ka = array_keys($fa); + $kb = array_keys($fb); + + $missing = array_diff($ka, $kb); + $extra = array_diff($kb, $ka); + + // search for untranslated strings + foreach ($fa as $k => $v) { + if (array_key_exists($k, $fb)) { + if ($v == $fb[$k] || '' == $fb[$k]) { + $notrans[] = $k . ': ' . $v; + } + } + } + + return array( + 'a' => count($fa), + 'b' => count($fb), + 'missing' => $missing, + 'notrans' => $notrans, + 'extra' => $extra + ); +} + + +if ( ! function_exists('glob_recursive')) +{ + // Does not support flag GLOB_BRACE + + function glob_recursive($pattern, $flags = 0) + { + $files = glob($pattern, $flags); + + foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) + { + $files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags)); + } + + return $files; + } +} + +function _lang_file_switch($s, $l) +{ + return $l . substr(str_replace('.en.lang', '.' . $l . '.lang', $s), 2); +} + +function get_lang_references() +{ + return glob_recursive('en/*', GLOB_MARK); +} + +function get_other_langs() +{ + $ls = glob('*'); + $re = array(); + foreach ($ls as $l) { + if (!is_dir($l)) continue; + if ($l == 'en') continue; + $re[] = $l; + } + array_unshift($re, 'en'); + return $re; +} \ No newline at end of file -- cgit v1.2.1