'untranslated' => 'getUntranslatedMessages',
'duplicate' => 'getDuplicateMessages',
'obsolete' => 'getObsoleteMessages',
- 'variables' => 'getMessagesWithoutVariables',
+ 'variables' => 'getMessagesWithMismatchVariables',
'plural' => 'getMessagesWithoutPlural',
'empty' => 'getEmptyMessages',
'whitespace' => 'getMessagesWithWhitespace',
'untranslated' => '$1 message(s) of $2 are not translated to $3, but exist in en:',
'duplicate' => '$1 message(s) of $2 are translated the same in en and $3:',
'obsolete' => '$1 message(s) of $2 do not exist in en or are in the ignore list, but exist in $3:',
- 'variables' => '$1 message(s) of $2 in $3 don\'t use some variables that en uses:',
+ 'variables' => '$1 message(s) of $2 in $3 don\'t match the variables used in en:',
'plural' => '$1 message(s) of $2 in $3 don\'t use {{plural}} while en uses:',
'empty' => '$1 message(s) of $2 in $3 are empty or -:',
'whitespace' => '$1 message(s) of $2 in $3 have trailing whitespace:',
* untranslated: Messages which are required to translate, but are not translated.
* duplicate: Messages which translation equal to fallback
* obsolete: Messages which are untranslatable or do not exist, but are translated.
- * variables: Messages without variables which should be used.
+ * variables: Messages without variables which should be used, or with variables which shouldn't be used.
* empty: Empty messages and messages that contain only -.
* whitespace: Messages which have trailing whitespace.
* xhtml: Messages which are not well-formed XHTML (checks only few common errors).
* untranslated: Messages which are required to translate, but are not translated.
* duplicate: Messages which translation equal to fallback
* obsolete: Messages which are untranslatable, but translated.
- * variables: Messages without variables which should be used.
+ * variables: Messages without variables which should be used, or with variables which shouldn't be used.
* empty: Empty messages.
* whitespace: Messages which have trailing whitespace.
* xhtml: Messages which are not well-formed XHTML (checks only few common errors).
}
/**
- * Get the messages which do not use some variables.
+ * Get the messages whose variables do not match the original ones.
*
* @param $code The language code.
*
- * @return The messages which do not use some variables in this language.
+ * @return The messages whose variables do not match the original ones.
*/
- public function getMessagesWithoutVariables( $code ) {
+ public function getMessagesWithMismatchVariables( $code ) {
$this->loadGeneralMessages();
$this->loadMessages( $code );
$variables = array( '\$1', '\$2', '\$3', '\$4', '\$5', '\$6', '\$7', '\$8', '\$9' );
- $messagesWithoutVariables = array();
+ $mismatchMessages = array();
foreach ( $this->mMessages[$code]['translated'] as $key => $value ) {
$missing = false;
foreach ( $variables as $var ) {
!preg_match( "/$var/sU", $value ) ) {
$missing = true;
}
+ if ( !preg_match( "/$var/sU", $this->mGeneralMessages['translatable'][$key] ) &&
+ preg_match( "/$var/sU", $value ) ) {
+ $missing = true;
+ }
}
if ( $missing ) {
- $messagesWithoutVariables[$key] = $value;
+ $mismatchMessages[$key] = $value;
}
}
- return $messagesWithoutVariables;
+ return $mismatchMessages;
}
/**