<?php

define('IN_COPPERMINE', true);
define('LANG_DIR', 'lang');
define('SMILIES_PHP',true);
define('MODE_PHP',true);
define('ALBMGR_PHP',true);
define('BANNING_PHP',true);
define('BRIDGEMGR_PHP',true);
define('CALENDAR_PHP',true);
define('CATMGR_PHP',true);
define('ADMIN_PHP',true);
define('DB_ECARD_PHP',true);
define('DB_INPUT_PHP',true);
define('DELETE_PHP',true);
define('DISPLAYECARD_PHP',true);
define('DISPLAYIMAGE_PHP',true);
define('ECARDS_PHP',true);
define('REPORT_FILE_PHP',true);
define('DISPLAYREPORT_PHP',true);
define('EDITPICS_PHP',true);
define('FAQ_PHP',true);
define('FORGOT_PASSWD_PHP',true);
define('GROUPMGR_PHP',true);
define('INDEX_PHP',true);
define('KEYWORDMGR_PHP',true);
define('LOGIN_PHP',true);
define('LOGOUT_PHP',true);
define('MINIBROWSER_PHP',true);
define('MODIFYALB_PHP',true);
define('PHPINFO_PHP',true);
define('PICMGR_PHP',true);
define('PLUGINMGR_PHP',true);
define('RATEPIC_PHP',true);
define('REVIEWCOM_PHP',true);
define('SEARCH_PHP',true);
define('SEARCHNEW_PHP',true);
define('STAT_DETAILS_PHP',true);
define('UPLOAD_PHP',true);
define('USERMGR_PHP',true);
define('UTIL_PHP',true);
define('VERSIONCHECK_PHP',true);
define('VIEWLOG_PHP',true);
define('XP_PUBLISH_PHP',true);

require('include/init.inc.php');

if (!GALLERY_ADMIN_MODE) cpg_die(ERROR, $lang_errors['access_denied'], __FILE__, __LINE__);

function cap_lang($file) {
    include($file);
    $lang=get_defined_vars();
    return $lang;       
}

function key_diff($array1,$array2='',$level=0,$output=true) {
    $errors=0;
    if (is_array($array1)) {
        foreach ($array1 as $key=>$ar_item) {
            $extra='';
            if (!is_array($ar_item) and is_numeric($key)) {
                $extra = '- '.$ar_item;
            }             
            if (!isset($array2[$key])) {
                if ($output) {
                    echo str_repeat('&nbsp;',$level)."Missing: $key $extra</br>";
                }
                $errors++; 
                $array2[$key]=array();
            }
            $errors+=key_diff($array1[$key],$array2[$key],$level+2,$output);
        }
    }        
    return $errors;
}   

pageheader();

$lang_select=languageSelect();
$lang_select=str_replace('cpgChooseLanguage','check_lang_form',$lang_select);
$lang_select=str_replace('cpgLanguageSelect','check_lang_select',$lang_select);
$lang_select=str_replace('langcheck.php?lang','langcheck.php?check_lang',$lang_select);
$lang_select=str_replace(';lang=',';check_lang=',$lang_select);
echo '<br/>Select Language to Evaluate: '.$lang_select.'<br/>';

if (isset($_REQUEST['check_lang']) AND $_REQUEST['check_lang']!='xxx') {
    $key=$_REQUEST['check_lang'];
    echo "<h2>Lang: $key</h2>";
    $english=cap_lang(LANG_DIR . '/' . 'english.php');
    $lang_file=cap_lang(LANG_DIR . '/' . $key.'.php');
    $errors=key_diff($english,$lang_file);
    echo "<h3>Errors: $errors</h3>";
} elseif (!isset($_REQUEST['check_lang']) OR $_REQUEST['check_lang']=='xxx') {
    $dir = opendir(LANG_DIR);
    $lang_files = array();
    while ($file = readdir($dir)) {
        if (is_file(LANG_DIR . '/' . $file)) {
            $lang_files[$file] = cap_lang(LANG_DIR . '/' . $file);
        }
    }
    closedir($dir);
    ksort($lang_files);
    $english=$lang_files['english.php'];
    unset($lang_files['english.php']);
    echo "<table><tr><th>Name</th><th>Errors</th><tr>";
    foreach ($lang_files as $key=>$file) {
           $errors=0;
           $errors+=key_diff($english,$file,0,false);
           $key=str_replace('.php','',$key);
           echo "<tr><td><a href=\"{$PHP_SELF}?check_lang=$key\">$key</a></td><td>$errors</td></tr>";
    }
    echo "</table>";
    
}        


pagefooter();
?>
