Show result of Special:Booksources in wiki content language always,
authorRaimond Spekking <raymond@users.mediawiki.org>
Wed, 6 Jun 2007 09:51:38 +0000 (09:51 +0000)
committerRaimond Spekking <raymond@users.mediawiki.org>
Wed, 6 Jun 2007 09:51:38 +0000 (09:51 +0000)
it's normally better maintained than the generic list from the standard message files

RELEASE-NOTES
includes/SpecialBooksources.php
languages/messages/MessagesDe.php
languages/messages/MessagesEn.php
maintenance/language/messages.inc

index ca20d16..3acf0f8 100644 (file)
@@ -61,6 +61,9 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 9886) Provide clear example "stub link" in Special:Preferences
 * (bug 10055) Populate email address and real name properties of User objects
   passed to the 'AbortNewAccount' hook
+* Show result of Special:Booksources in wiki content language always, it's
+  normally better maintained than the generic list from the standard message
+  files
 
 == Bugfixes since 1.10 ==
 
index 1903a8a..3538289 100644 (file)
@@ -14,14 +14,14 @@ class SpecialBookSources extends SpecialPage {
         * ISBN passed to the page, if any
         */
        private $isbn = '';
-       
+
        /**
         * Constructor
         */
        public function __construct() {
                parent::__construct( 'Booksources' );
        }
-       
+
        /**
         * Show the special page
         *
@@ -31,12 +31,13 @@ class SpecialBookSources extends SpecialPage {
                global $wgOut, $wgRequest;
                $this->setHeaders();
                $this->isbn = $this->cleanIsbn( $isbn ? $isbn : $wgRequest->getText( 'isbn' ) );
+               $this->lang = htmlspecialchars( $wgRequest->getText( 'uselang' ) );
                $wgOut->addWikiText( wfMsgNoTrans( 'booksources-summary' ) );
                $wgOut->addHtml( $this->makeForm() );
                if( strlen( $this->isbn ) > 0 )
                        $this->showList();
        }
-       
+
        /**
         * Trim ISBN and remove characters which aren't required
         *
@@ -46,7 +47,7 @@ class SpecialBookSources extends SpecialPage {
        private function cleanIsbn( $isbn ) {
                return trim( preg_replace( '![^0-9X]!', '', $isbn ) );
        }
-       
+
        /**
         * Generate a form to allow users to enter an ISBN
         *
@@ -64,7 +65,7 @@ class SpecialBookSources extends SpecialPage {
                $form .= '</fieldset>';
                return $form;
        }
-       
+
        /**
         * Determine where to get the list of book sources from,
         * format and output them
@@ -72,20 +73,28 @@ class SpecialBookSources extends SpecialPage {
         * @return string
         */
        private function showList() {
-               global $wgOut, $wgContLang;
-               
+               global $wgOut, $wgContLang, $wgUser, $wgContLanguageCode;
+               $this->userLanguage = $wgUser->getOption( 'language', $wgContLanguageCode );
+
                # Hook to allow extensions to insert additional HTML,
                # e.g. for API-interacting plugins and so on
                wfRunHooks( 'BookInformation', array( $this->isbn, &$wgOut ) );
-               
+
                # Check for a local page such as Project:Book_sources and use that if available
-               $title = Title::makeTitleSafe( NS_PROJECT, wfMsg( 'booksources' ) ); # Should this be wfMsgForContent()? -- RC
+               if ( $this->lang == '' || $this->lang == $wgContLanguageCode ) {
+                       $title = Title::makeTitleSafe( NS_PROJECT, wfMsgForContent( 'booksources' ) ); # Show list in content language
+               } else {
+                       $title = Title::makeTitleSafe( NS_PROJECT, wfMsg( 'booksources' ) ); # Show list in user language
+               }
                if( is_object( $title ) && $title->exists() ) {
                        $rev = Revision::newFromTitle( $title );
+                       if ( $this->userLanguage != $wgContLanguageCode && $this->lang == '' ) {
+                               $wgOut->addWikiText( '<span class="plainlinks">' . wfMsgHtml( 'booksources-language', $this->isbn, $this->userLanguage ) . '</span>' );
+                       }
                        $wgOut->addWikiText( str_replace( 'MAGICNUMBER', $this->isbn, $rev->getText() ) );
                        return true;
                }
-               
+
                # Fall back to the defaults given in the language file
                $wgOut->addWikiText( wfMsgNoTrans( 'booksources-text' ) );
                $wgOut->addHtml( '<ul>' );
index 0a4b6d2..fd7a669 100644 (file)
@@ -1239,6 +1239,7 @@ Davon {{PLURAL:$2|hat|haben}} '''$2''' (=$4%) $5-Rechte.",
 'booksources-isbn'          => 'ISBN:',
 'booksources-go'            => 'Suche',
 'booksources-text'          => 'Dies ist eine Liste mit Links zu Internetseiten, die neue und gebrauchte Bücher verkaufen. Dort kann es auch weitere Informationen über die Bücher geben. {{SITENAME}} ist mit keinem dieser Anbieter geschäftlich verbunden.',
+'booksources-language'      => "''Die nachfolgende Liste wird in der Sprache des Wikis ausgegeben. [{{fullurl:{{FULLPAGENAMEE}}|isbn=$1&uselang=$2}} Eine Liste in Ihrer Benutzersprache] enthält in der Regel nur wenige Einträge.''",
 
 'categoriespagetext' => 'Die folgenden Kategorien existieren in {{SITENAME}}:',
 'data'               => 'Daten',
index 0b4f7a8..cec8031 100644 (file)
@@ -1608,6 +1608,7 @@ in active use.</p>',
 'booksources-go'            => 'Go',
 'booksources-text'          => 'Below is a list of links to other sites that sell new and used books, and may also have
 further information about books you are looking for:',
+'booksources-language'      => "''The following list is written in the content language of this wiki. [{{fullurl:{{FULLPAGENAMEE}}|isbn=$1&uselang=$2}} A translations into your user language] contains normally a shortened list only.''",
 
 'categoriespagetext' => 'The following categories exist in the wiki.',
 'data'               => 'Data',
index 8b78c04..945f125 100644 (file)
@@ -1003,6 +1003,7 @@ $wgMessageStructure = array(
                'booksources-isbn',
                'booksources-go',
                'booksources-text',
+               'booksources-language',
        ),
        'specialpages2' => array(
                'categoriespagetext',