diff options
| author | Nils Adermann <naderman@naderman.de> | 2006-05-12 23:45:27 +0000 |
|---|---|---|
| committer | Nils Adermann <naderman@naderman.de> | 2006-05-12 23:45:27 +0000 |
| commit | 215693d897a6bc0ccb247da783cd9f8abce9ca94 (patch) | |
| tree | 398a607bb1bf5d26392ab7ea44e1845c7c1c9a84 /phpBB/develop/lang_duplicates.php | |
| parent | 08e708f76b9924133dc196d736adac4b0e992707 (diff) | |
| download | forums-215693d897a6bc0ccb247da783cd9f8abce9ca94.tar forums-215693d897a6bc0ccb247da783cd9f8abce9ca94.tar.gz forums-215693d897a6bc0ccb247da783cd9f8abce9ca94.tar.bz2 forums-215693d897a6bc0ccb247da783cd9f8abce9ca94.tar.xz forums-215693d897a6bc0ccb247da783cd9f8abce9ca94.zip | |
- adding a file which displays duplicate language keys
- removed a few duplicates with equal contents [Bug #1193]
git-svn-id: file:///svn/phpbb/trunk@5904 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/develop/lang_duplicates.php')
| -rw-r--r-- | phpBB/develop/lang_duplicates.php | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/phpBB/develop/lang_duplicates.php b/phpBB/develop/lang_duplicates.php new file mode 100644 index 0000000000..666a9a084e --- /dev/null +++ b/phpBB/develop/lang_duplicates.php @@ -0,0 +1,131 @@ +<html> + <head> + <title>Duplicate Language Keys</title> + </head> + <body> +<?php +// ------------------------------------------------------------- +// +// $Id$ +// +// @copyright (c) 2005 phpBB Group +// @license http://opensource.org/licenses/gpl-license.php GNU Public License +// +// ------------------------------------------------------------- +// Thanks to arod-1 + +define('IN_PHPBB', 1); +$phpEx = substr(strrchr(__FILE__, '.'), 1); +$phpbb_root_path='./../'; +include($phpbb_root_path . 'common.'.$phpEx); + +$mode = request_var('mode', ''); + +$modules = find_modules($phpbb_root_path . 'language/en'); + +$kkeys = $keys = array(); +$langdir = dirname(__FILE__); + +if (isset($lang)) +{ + unset($lang); +} + +foreach($modules as $module) +{ + require_once("$langdir$module"); + if (isset($lang)) + { + $kkeys[$module] = $lang; + $keys[] = $module; + unset($lang); + } +} + +$equal = $case = $diff = 0; +$output = array(); + +while ($module = array_shift($keys)) +{ + $keys_1 = array_keys($kkeys[$module]); + + foreach ($keys as $other_module) + { + $keys_2 = array_keys($kkeys[$other_module]); + + foreach(array_intersect($keys_1, $keys_2) as $dup) + { + if ($kkeys[$module][$dup] == $kkeys[$other_module][$dup]) + { + $compare = "Equal"; + $equal++; + } + elseif (strcasecmp($kkeys[$module][$dup], $kkeys[$other_module][$dup]) == 0) + { + $compare = "Differ in case"; + $case++; + } + else + { + $compare = "'{$kkeys[$module][$dup]}' - '{$kkeys[$other_module][$dup]}'"; + $diff++; + } + + $color = ''; + if ((basename($module) == "common.$phpEx") || (basename($other_module) == "common.$phpEx")) + { + $color = ' style="color:#B00000;"'; + } + + switch ($mode) + { + case 'module': + $output[$module][] = "<tr$color><td>" . ((isset($output[$module])) ? ' ' : "<b>$module</b>" ) . "</td><td>$dup</td><td>$other_module</td><td>$compare</td></tr>"; + break; + + default: + $output[$dup][] = "<tr$color><td><b>$dup</b></td><td>$module</td><td>$other_module</td><td>$compare</td></tr>"; + break; + } + } + } +}//var_dump($output); + +echo "<p><a href=\"lang_duplicates.php\">By Key</a> <a href=\"lang_duplicates.php?mode=module\">By Module</a></p><p>Equal: <b>$equal</b>, Differ in case only: $case, differ in content: $diff</p>"; +switch ($mode) +{ + case 'module': + echo "<table cellpadding=\"4\"><tr><th>Key</th><th>First File</th><th>Second File</th><th>Difference</th></tr>"; + foreach ($output as $module => $html) + { + echo implode('', $html); + } + break; + + default: + ksort($output); + echo "<table cellpadding=\"4\"><tr><th>File</th><th>Key</th><th>Conflicting File</th><th>Difference</th></tr>"; + foreach ($output as $dup) + { + echo implode('', $dup); + } + break; +} + +echo "</table>"; + + +function find_modules($dirname) +{ + $list = glob("$dirname/*.php"); + + foreach(glob("$dirname/*", GLOB_ONLYDIR) as $name) + { + $list = array_merge($list, find_modules($name)); + } + return $list; +} + +?> + </body> +</html>
\ No newline at end of file |
