From db3873454253dab13b8ab5c6207c00c0c38463d7 Mon Sep 17 00:00:00 2001 From: Rotem Liss Date: Sat, 5 Aug 2006 17:13:55 +0000 Subject: [PATCH] =?utf8?q?Adding=20a=20check=20for=20non-XHTML=20messages?= =?utf8?q?=20(mostly=20written=20by=20Niklas=20Laxstr=C3=B6m),=20and=20a?= =?utf8?q?=20fix.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- maintenance/checkLanguage.php | 5 +++++ maintenance/languages.inc | 28 +++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) 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. * -- 2.20.1