From: Rotem Liss Date: Sat, 5 Aug 2006 17:13:55 +0000 (+0000) Subject: Adding a check for non-XHTML messages (mostly written by Niklas Laxström), and a... X-Git-Tag: 1.31.0-rc.0~56059 X-Git-Url: https://git.cyclocoop.org/%28%28?a=commitdiff_plain;h=db3873454253dab13b8ab5c6207c00c0c38463d7;p=lhc%2Fweb%2Fwiklou.git Adding a check for non-XHTML messages (mostly written by Niklas Laxström), and a fix. --- diff --git a/maintenance/checkLanguage.php b/maintenance/checkLanguage.php index 7c5a50bccb..1681ff02c2 100644 --- a/maintenance/checkLanguage.php +++ b/maintenance/checkLanguage.php @@ -70,4 +70,9 @@ $messagesWithWhitespace = $wgLanguages->getMessagesWithWhitespace( $code ); $messagesWithWhitespaceNumber = count( $messagesWithWhitespace ); $wgLanguages->outputMessagesList( $messagesWithWhitespace, "\n$messagesWithWhitespaceNumber messages of $localMessagesNumber in $code have a trailing whitespace:", $wgHideMessages ); +# Non-XHTML messages +$nonXHTMLMessages = $wgLanguages->getNonXHTMLMessages( $code ); +$nonXHTMLMessagesNumber = count( $nonXHTMLMessages ); +$wgLanguages->outputMessagesList( $nonXHTMLMessages, "\n$nonXHTMLMessagesNumber messages of $localMessagesNumber in $code are not well-formed XHTML:", $wgHideMessages ); + ?> diff --git a/maintenance/languages.inc b/maintenance/languages.inc index f35220934e..82292ecec3 100644 --- a/maintenance/languages.inc +++ b/maintenance/languages.inc @@ -231,13 +231,39 @@ class languages { $messagesWithWhitespace = array(); foreach ( $this->mMessages[$code] as $key => $value ) { if ( isset( $this->mMessages['en'][$key] ) && $this->mMessages['en'][$key] !== '' && - $this->mMessages[$code][$key] !== rtrim( $this->mMessages[$code][$key] ) ) { + $value !== rtrim( $value ) ) { $messagesWithWhitespace[$key] = $value; } } return $messagesWithWhitespace; } + /** + * Get the non-XHTML messages. + * + * @param $code The langauge code. + * + * @return The non-XHTML messages for this language. + */ + public function getNonXHTMLMessages( $code ) { + $this->loadMessages( 'en' ); + $this->loadMessages( $code ); + $wrongPhrases = array( + '
', + '
', + '
', + '
', + ); + $wrongPhrases = '~(' . implode( '|', $wrongPhrases ) . ')~sDu'; + $nonXHTMLMessages = array(); + foreach ( $this->mMessages[$code] as $key => $value ) { + if ( isset( $this->mMessages['en'][$key] ) && preg_match( $wrongPhrases, $value ) ) { + $nonXHTMLMessages[$key] = $value; + } + } + return $nonXHTMLMessages; + } + /** * Output a messages list. *