Merge "Improve "selfmove" message's wording"
[lhc/web/wiklou.git] / includes / specials / SpecialPageLanguage.php
index 78a453e..a68f08f 100644 (file)
@@ -49,12 +49,20 @@ class SpecialPageLanguage extends FormSpecialPage {
        protected function getFormFields() {
                // Get default from the subpage of Special page
                $defaultName = $this->par;
+               $title = $defaultName ? Title::newFromText( $defaultName ) : null;
+               if ( $title ) {
+                       $defaultPageLanguage =
+                               ContentHandler::getForTitle( $title )->getPageLanguage( $title );
+                       $hasCustomLanguageSet = !$defaultPageLanguage->equals( $title->getPageLanguage() );
+               } else {
+                       $hasCustomLanguageSet = false;
+               }
 
                $page = [];
                $page['pagename'] = [
                        'type' => 'title',
                        'label-message' => 'pagelang-name',
-                       'default' => $defaultName,
+                       'default' => $title ? $title->getPrefixedText() : $defaultName,
                        'autofocus' => $defaultName === null,
                        'exists' => true,
                ];
@@ -68,7 +76,7 @@ class SpecialPageLanguage extends FormSpecialPage {
                        'id' => 'mw-pl-options',
                        'type' => 'radio',
                        'options' => $selectoptions,
-                       'default' => 1
+                       'default' => $hasCustomLanguageSet ? 2 : 1
                ];
 
                // Building a language selector
@@ -86,7 +94,9 @@ class SpecialPageLanguage extends FormSpecialPage {
                        'type' => 'select',
                        'options' => $options,
                        'label-message' => 'pagelang-language',
-                       'default' => $this->getConfig()->get( 'LanguageCode' ),
+                       'default' => $title ?
+                               $title->getPageLanguage()->getCode() :
+                               $this->getConfig()->get( 'LanguageCode' ),
                ];
 
                // Allow user to enter a comment explaining the change