$wgLanguages->outputMessagesList( $messagesWithoutVariables, $code, "\n$messagesWithoutVariablesNumber messages of $messagesNumber in $code don't use some variables while en uses them:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
}
+ # Messages without plural
+ if ( in_array( 'plural', $wgChecks ) ) {
+ $messagesWithoutPlural = $wgLanguages->getMessagesWithoutPlural( $code );
+ $messagesWithoutPluralNumber = count( $messagesWithoutPlural );
+ $wgLanguages->outputMessagesList( $messagesWithoutPlural, $code, "\n$messagesWithoutPluralNumber messages of $messagesNumber in $code don't use {{plural}} while en uses it:", $wgDisplayLevel, $wgLinks, $wgWikiLanguage );
+ }
+
# Empty messages
if ( in_array( 'empty', $wgChecks ) ) {
$emptyMessages = $wgLanguages->getEmptyMessages( $code );
* whitelist: Make only the following checks (form: code,code).
* blacklist: Don't make the following checks (form: code,code).
* duplicate: Additionally check for messages which are translated the same to English (default off).
+ * plural: Additionally check for messages that don't use plural while English does (default off).
* noexif: Don't check for EXIF messages (a bit hard and boring to translate), if you know that they are currently not translated and want to focus on other problems (default off).
Check codes (ideally, all of them should result 0; all the checks are executed by default):
* untranslated: Messages which are required to translate, but are not translated.
$wgChecks = array_diff( $wgChecks, explode( ',', $options['blacklist'] ) );
}
-# Add duplicate option if specified
+# Add duplicate and plural options if specified
if ( isset( $options['duplicate'] ) ) {
$wgChecks[] = 'duplicate';
}
+if ( isset( $options['plural'] ) ) {
+ $wgChecks[] = 'plural';
+}
# Should check for EXIF?
$wgCheckEXIF = !isset( $options['noexif'] );
return $messagesWithoutVariables;
}
+ /**
+ * Get the messages which do not use plural.
+ *
+ * @param $code The langauge code.
+ *
+ * @return The messages which do not use plural in this language.
+ */
+ public function getMessagesWithoutPlural( $code ) {
+ $this->loadGeneralMessages();
+ $this->loadMessages( $code );
+ $messagesWithoutPlural = array();
+ foreach ( $this->mMessages[$code]['translated'] as $key => $value ) {
+ if ( stripos( $this->mGeneralMessages['translatable'][$key], '{{plural:' ) !== false && stripos( $value, '{{plural:' ) === false ) {
+ $messagesWithoutPlural[$key] = $value;
+ }
+ }
+ return $messagesWithoutPlural;
+ }
+
/**
* Get the empty messages.
*