$englishMessagesNumber = count( $wgLanguages->getMessagesFor( 'en' ) );
$localMessagesNumber = count( $wgLanguages->getMessagesFor( $code ) );
-# Show numbers of defined messages
-echo "There are $englishMessagesNumber messages in en.\n";
-echo "There are $localMessagesNumber messages in $code.\n";
-
# Untranslated messages
$untranslatedMessages = $wgLanguages->getUntranslatedMessages( $code );
$untranslatedMessagesNumber = count( $untranslatedMessages );
$obsoleteMessagesNumber = count( $obsoleteMessages );
$wgLanguages->outputMessagesList( $obsoleteMessages, "\n$obsoleteMessagesNumber messages of $localMessagesNumber are not exist in en, but still exist in $code:" );
+# Messages without variables
+$messagesWithoutVariables = $wgLanguages->getMessagesWithoutVariables( $code );
+$messagesWithoutVariablesNumber = count( $messagesWithoutVariables );
+$wgLanguages->outputMessagesList( $messagesWithoutVariables, "\n$messagesWithoutVariablesNumber messages of $localMessagesNumber in $code don't use some variables while en uses them:" );
+
?>
return $obsoleteMessages;
}
+ /**
+ * Get the messages which do not use some variables.
+ *
+ * @param $code The langauge code.
+ *
+ * @return The obsolete messages for this language.
+ */
+ public function getMessagesWithoutVariables( $code ) {
+ $this->loadMessages( 'en' );
+ $this->loadMessages( $code );
+ $variables = array( '\$1', '\$2', '\$3', '\$4', '\$5', '\$6', '\$7', '\$8', '\$9' );
+ $messagesWithoutVariables = array();
+ foreach ( $this->mMessages['en'] as $key => $value ) {
+ if ( isset( $this->mMessages[$code][$key] ) ) {
+ $missing = array();
+ foreach ( $variables as $var ) {
+ if ( preg_match( "/$var/sU", $value ) &&
+ !preg_match( "/$var/sU", $this->mMessages[$code][$key] ) ) {
+ $missing[] = str_replace( '\$', '$', $var );
+ }
+ }
+ if ( count( $missing ) > 0 ) {
+ $messagesWithoutVariables[$key] = implode( ', ', $missing );
+ }
+ }
+ }
+ return $messagesWithoutVariables;
+ }
+
/**
* Output a messages list.
*
if ( $text ) {
echo "$text\n";
}
- foreach ( array_keys( $messages ) as $key ) {
- echo "* $key\n";
+ foreach ( $messages as $key => $value ) {
+ echo "* '$key': $value\n";
}
}
}