summaryrefslogtreecommitdiff
path: root/maintenance/language/checktrans.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/language/checktrans.php')
-rw-r--r--maintenance/language/checktrans.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/maintenance/language/checktrans.php b/maintenance/language/checktrans.php
new file mode 100644
index 00000000..a5772d47
--- /dev/null
+++ b/maintenance/language/checktrans.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * @package MediaWiki
+ * @subpackage Maintenance
+ * Check to see if all messages have been translated into the selected language.
+ * To run this script, you must have a working installation, and you can specify
+ * a language, or the script will check the installation language.
+ */
+
+/** */
+require_once(dirname(__FILE__).'/../commandLine.inc');
+
+if ( isset( $args[0] ) ) {
+ $code = $args[0];
+} else {
+ $code = $wgLang->getCode();
+}
+
+if ( $code == 'en' ) {
+ print "Current selected language is English. Cannot check translations.\n";
+ exit();
+}
+
+$filename = Language::getMessagesFileName( $code );
+if ( file_exists( $filename ) ) {
+ require( $filename );
+} else {
+ $messages = array();
+}
+
+$count = $total = 0;
+$wgEnglishMessages = Language::getMessagesFor( 'en' );
+$wgLocalMessages = $messages;
+
+foreach ( $wgEnglishMessages as $key => $msg ) {
+ ++$total;
+ if ( !isset( $wgLocalMessages[$key] ) ) {
+ print "'{$key}' => \"$msg\",\n";
+ ++$count;
+ }
+}
+
+print "{$count} messages of {$total} are not translated in the language {$code}.\n";
+?>