* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ echo ""; echo ""; echo ""; echo ""; echo "

If you call this file with the argument \"?unused=true\" it searches for the translation strings that exist in en_US but are never used

"; echo "

IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly

"; echo "

Happy translating :)

"; // directory containing the php and lang files $htdocs = "../../htdocs/"; // directory containing the english lang files $workdir = $htdocs."langs/en_US/"; $files = scandir($workdir); $exludefiles = array('.','..','README'); $files = array_diff($files,$exludefiles); $langstrings_3d = array(); $langstrings_full = array(); foreach ($files AS $file) { $path_file = pathinfo($file); // we're only interested in .lang files if ($path_file['extension']=='lang') { $content = file($workdir.$file); foreach ($content AS $line => $row) { // don't want comment lines if (substr($row,0,1) !== '#') { // don't want lines without the separator (why should those even be here, anyway...) if (strpos($row,'=')!==false) { $row_array = explode('=',$row); $langstrings_3d[$path_file['basename']][$line+1]=$row_array[0]; $langstrings_full[]=$row_array[0]; $langstrings_dist[$row_array[0]]=$row_array[0]; } } } } } foreach ($langstrings_3d AS $filename => $file) { foreach ($file AS $linenum => $value) { $keys = array_keys($langstrings_full, $value); if (count($keys)>1) { foreach ($keys AS $key) { $dups[$value][$filename][$linenum] = ''; } } } } echo "

Duplicate strings in lang files in $workdir - ".count($dups)." found

"; echo "
";

echo " ";
echo "";
echo "";
$count = 0;
foreach ($dups as $string => $pages) {
	$count++;
	echo "";
	echo "";
	echo "";
	echo "";
}
echo "";
echo "
#StringFile and lines
$count$string"; foreach ($pages AS $page => $lines ) { echo "$page "; foreach ($lines as $line => $nothing) { echo "($line) "; } echo "
"; } echo "
"; if ($_REQUEST['unused'] == 'true') { foreach ($langstrings_dist AS $value){ $search = '\'trans("'.$value.'")\''; $string = 'grep -R -m 1 -F --include=*.php '.$search.' '.$htdocs.'*'; exec($string,$output); if (empty($output)) { $unused[$value] = true; echo $value.'
'; } } echo "

Strings in en_US that are never used

"; echo "
";
	print_r($unused);
}
echo "";
echo "";