'.$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 = ''; 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]; $ref_value = $metalang[ $page['ref_default_values'] ][$file][$key]; if ($local_value == $ref_value) { $output_duplicated.= get_line_to_translate($file, $key); } } 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 '

'.$file.'.lang.php

'; echo ''; } } 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"; } ?>