All languages

'; echo ''; exit(); } else if (in_array($_GET['lang'], $languages)) { $languages = array($_GET['lang']); } $file_list = array('common', 'admin', 'install', 'upgrade'); $metalang = array(); // preload reference languages $metalang[ $page['ref_compare'] ] = load_metalang($page['ref_compare'], $file_list); $metalang[ $page['ref_default_values'] ] = load_metalang($page['ref_default_values'], $file_list); foreach ($languages as $language) { if (in_array($language, array($page['ref_compare'], $page['ref_default_values']))) { continue; } echo '

'.$language.'

'; $metalang[$language] = load_metalang($language, $file_list); foreach ($file_list as $file) { if (isset($metalang[ $language ][$file])) { $missing_keys = array_diff( array_keys($metalang[ $page['ref_compare'] ][$file]), array_keys($metalang[ $language ][$file]) ); $output_missing = ''; foreach ($missing_keys as $key) { $output_missing.= get_line_to_translate($file, $key); } // strings not "really" translated? $output_duplicated = ''; $output_lost = ''; foreach (array_keys($metalang[$language][$file]) as $key) { $exceptions = array('Level 0'); if (in_array($key, $exceptions)) { continue; } if (isset($validated_keys[$language]) and in_array($key, $validated_keys[$language])) { continue; } $local_value = $metalang[$language][$file][$key]; if (!isset($metalang[ $page['ref_default_values'] ][$file][$key])) { $output_lost.= '#'.$key.'# does not exist in the reference language'."\n"; } else { $ref_value = $metalang[ $page['ref_default_values'] ][$file][$key]; if ($local_value == $ref_value) { $output_duplicated.= get_line_to_translate($file, $key); } } } echo '

'.$file.'.lang.php

'; if ('' != $output_missing or '' != $output_duplicated) { $output = ''; if ('' != $output_missing) { $output.= "// missing translations\n".$output_missing; } if ('' != $output_duplicated) { $output.= "\n// untranslated yet\n".$output_duplicated; } echo ''; } if ('' != $output_lost) { echo '
'.$output_lost.'
'; } } else { echo '

'.$file.'.lang.php is missing

'; } } } function load_metalang($language, $file_list) { global $lang, $user; $metalang = array(); foreach ($file_list as $file) { $lang = array(); $user['language'] = $language; if (load_language($file.'.lang', '', array('language'=>$language, 'no_fallback'=>true))) { $metalang[$file] = $lang; } } return $metalang; } function get_line_to_translate($file, $key) { global $metalang, $page; $print_key = str_replace("'", '\\\'', $key); $print_value = str_replace("'", '\\\'', $metalang[ $page['ref_default_values'] ][$file][$key]); return '$'."lang['".$print_key."'] = '".$print_value."';\n"; } ?>