00001 <?php
00008 require_once( dirname(__FILE__).'/../commandLine.inc' );
00009 $messagesDir = dirname(__FILE__).'/../../languages/messages/';
00010 $runTest = false;
00011 $run = false;
00012 $runMode = 'text';
00013
00014
00015 if ( isset( $options['lang'] ) && isset( $options['clang'] )) {
00016 if (!isset( $options['mode'] )) {
00017 $runMode = 'text';
00018 } else {
00019 if (!strcmp($options['mode'],'wiki')) {
00020 $runMode = 'wiki';
00021 } else if (!strcmp($options['mode'],'php')) {
00022 $runMode = 'php';
00023 } else if (!strcmp($options['mode'],'raw')) {
00024 $runMode = 'raw';
00025 } else {
00026 }
00027 }
00028 $runTest = true;
00029 } else {
00030 echo <<<TEXT
00031 Run this script to print out the duplicates against a message array.
00032 Parameters:
00033 * lang: Language code to be checked.
00034 * clang: Language code to be compared.
00035 Options:
00036 * mode: Output format, can be either:
00037 * text: Text output on the console (default)
00038 * wiki: Wiki format, with * at beginning of each line
00039 * php: Output text as PHP syntax in a array $dupeMessages
00040 * raw: Raw output for duplicates
00041 TEXT;
00042 }
00043
00044
00045 if ( $runTest ) {
00046 $langCode = $options['lang'];
00047 $langCodeC = $options['clang'];
00048 $langCodeF = ucfirst(strtolower(preg_replace('/-/','_',$langCode)));
00049 $langCodeFC = ucfirst(strtolower(preg_replace('/-/','_',$langCodeC)));
00050 $messagesFile = $messagesDir.'Messages'.$langCodeF.'.php';
00051 $messagesFileC = $messagesDir.'Messages'.$langCodeFC.'.php';
00052 if (file_exists($messagesFile) && file_exists($messagesFileC)) {
00053 $run = true;
00054 }
00055 else {
00056 echo "Messages file(s) could not be found.\nMake sure both files are exists.\n";
00057 }
00058 }
00059
00060
00061 if ( $run ) {
00062 if (!strcmp($runMode,'wiki')) {
00063 $runMode = 'wiki';
00064 } else if (!strcmp($runMode,'raw')) {
00065 $runMode = 'raw';
00066 }
00067 include( $messagesFile );
00068 $messageExist = isset($messages);
00069 if ($messageExist)
00070 $wgMessages[$langCode] = $messages;
00071 include( $messagesFileC );
00072 $messageCExist = isset($messages);
00073 if ($messageCExist)
00074 $wgMessages[$langCodeC] = $messages;
00075 $count = 0;
00076
00077 if (($messageExist) && ($messageCExist)) {
00078
00079 if (!strcmp($runMode,'php')) {
00080 print("<?php\n");
00081 print('$dupeMessages = array('."\n");
00082 }
00083 foreach ($wgMessages[$langCodeC] as $key => $value) {
00084 foreach ($wgMessages[$langCode] as $ckey => $cvalue) {
00085 if (!strcmp($key,$ckey)) {
00086 if ((!strcmp($key,$ckey)) && (!strcmp($value,$cvalue))) {
00087 if (!strcmp($runMode,'raw')) {
00088 print("$key\n");
00089 } else if (!strcmp($runMode,'php')) {
00090 print("'$key' => '',\n");
00091 } else if (!strcmp($runMode,'wiki')) {
00092 $uKey = ucfirst($key);
00093 print("* MediaWiki:$uKey/$langCode\n");
00094 } else {
00095 print("* $key\n");
00096 }
00097 $count++;
00098 }
00099 }
00100 }
00101 }
00102 if (!strcmp($runMode,'php')) {
00103 print(");\n");
00104 }
00105 if (!strcmp($runMode,'text')) {
00106 if ($count == 1) {
00107 echo "\nThere are $count duplicated message in $langCode, against to $langCodeC.\n";
00108 } else {
00109 echo "\nThere are $count duplicated messages in $langCode, against to $langCodeC.\n";
00110 }
00111 }
00112 } else {
00113 if (!$messageExist)
00114 echo "There are no messages defined in $langCode.\n";
00115 if (!$messageCExist)
00116 echo "There are no messages defined in $langCodeC.\n";
00117 }
00118 }