$strlanguage -> $strmissingstrings"; $title = $strmissingstrings; break; case "compare": $navigation = "$strlanguage -> $strcomparelanguage"; $title = $strcomparelanguage; break; default: $title = $strlanguage; $navigation = $strlanguage; break; } $currentlang = current_language(); print_header("$site->shortname: $title", "$site->fullname", "$stradministration -> $navigation"); if (!$mode) { print_heading("$strcurrentlanguage: $currentlang - ".get_string("thislanguage")); print_heading("$strmissingstrings"); print_heading("$strcomparelanguage"); echo "
".get_string("filemissing", "", "$langdir/$file")."
"; continue; } unset($string); include("$enlangdir/$file"); $enstring = $string; unset($string); include("$langdir/$file"); $first = true; foreach ($enstring as $key => $value) { if (!isset($string[$key]) or $string[$key] == "") { $value = htmlspecialchars($value); $value = str_replace("$"."a", "\\$"."a", $value); $value = str_replace("%%","%",$value); if ($first) { echo "".get_string("stringsnotset","","$langdir/$file")."
"; $first = false; $somethingfound = true; } echo "$"."string['$key'] = \"$value\";"; } print_continue("lang.php"); } print_footer(); ////////////////////////////////////////////////////////////////////// function lang_save_file($path, $file, $strings) { // Thanks to Petri Asikainen for the original version of code // used to save language files. // // $path is a full pathname to the file // $file is the file to overwrite. // $strings is an array of strings to write global $CFG; error_reporting(0); if (!$f = fopen("$path/$file","w")) { return false; } error_reporting(7); fwrite($f, "release ($CFG->version)\n\n\n"); ksort($strings); foreach ($strings as $key => $value) { list($id, $stringname) = explode("-",$key); if ($CFG->lang != "zh_hk" and $CFG->lang != "zh_tw") { // Some MB languages include backslash bytes $value = str_replace("\\","",$value); // Delete all slashes } $value = str_replace("$"."a", "\\$"."a", $value); // Add slashes for $a $value = str_replace("\"", "\\\\\\\"", $value); // Add slashes for " $value = str_replace("%","%%",$value); // Escape % characters if ($id == "string" and $value != ""){ fwrite($f,"\$string['$stringname'] = \"$value\";\n"); } } fwrite($f,"\n?>\n"); fclose($f); return true; } ?>
"; } } } if (! $files = get_directory_list("$CFG->dirroot/lang/en/help", "CVS")) { error("Could not find English language help files!"); } foreach ($files as $filekey => $file) { // check all the help files. if (!file_exists("$langdir/help/$file")) { echo "".get_string("filemissing", "", "$langdir/help/$file")."
"; $somethingfound = true; continue; } } if (! $files = get_directory_list("$CFG->dirroot/lang/en/docs", "CVS")) { error("Could not find English language docs files!"); } foreach ($files as $filekey => $file) { // check all the docs files. if (!file_exists("$langdir/docs/$file")) { echo "".get_string("filemissing", "", "$langdir/docs/$file")."
"; $somethingfound = true; continue; } } if (!empty($somethingfound)) { print_continue("lang.php"); } else { notice(get_string("languagegood"), "lang.php"); } } else if ($mode == "compare") { if (isset($_POST['file'])){ // Save a file $newstrings = $_POST; $file = $newstrings['file']; unset($newstrings['file']); if (lang_save_file($langdir, $file, $newstrings)) { notify(get_string("changessaved")." ($langdir/$file)"); } else { error("Could not save the file '$file'!", "lang.php?mode=compare"); } } print_heading($strcomparelanguage); echo ""; helpbutton("langedit",$strcomparelanguage); echo " "; foreach ($stringfiles as $file) { print_heading("$file", "LEFT", 4); if (!file_exists("$langdir/$file")) { echo "".get_string("filemissing", "", "$langdir/$file")."
"; continue; } error_reporting(0); if ($f = fopen("$langdir/$file","r+")) { $editable = true; fclose($f); } else { $editable = false; echo "".get_string("makeeditable", "", "$langdir/$file")."
"; } error_reporting(7); unset($string); include("$enlangdir/$file"); $enstring = $string; ksort($enstring); unset($string); include("$langdir/$file"); if ($editable) { echo "