Pginer has submitted this change and it was merged.

Change subject: Turn edit tab to translate tab on translation pages
......................................................................


Turn edit tab to translate tab on translation pages

Bug: 35946
Change-Id: I78effa8ce1c696970803d7d4463341048591e2e5
---
M PageTranslation.i18n.php
M TranslateHooks.php
M tag/PageTranslationHooks.php
M tag/TranslatablePage.php
4 files changed, 41 insertions(+), 8 deletions(-)

Approvals:
  Pginer: Looks good to me, approved



diff --git a/PageTranslation.i18n.php b/PageTranslation.i18n.php
index 94a23f8..d750bc4 100644
--- a/PageTranslation.i18n.php
+++ b/PageTranslation.i18n.php
@@ -92,6 +92,7 @@
        'tpt-languages-legend' => 'Other languages:',
        'tpt-languages-separator' => ' • ',
        'tpt-languages-zero' => 'Start translation for this language',
+       'tpt-tab-translate' => 'Translate',
 
        'tpt-target-page' => 'This page cannot be updated manually.
 This page is a translation of the page [[$1]] and the translation can be 
updated using [$2 the translation tool].',
@@ -227,7 +228,6 @@
        'pt-deletepage-intro' => 'This special page allows you delete a whole 
translatable page, or an individual translation page in a language.
 The delete action will not be instant, because all the pages depending on them 
will also be deleted.
 Failures will be logged in the [[Special:Log/pagetranslation|page translation 
log]] and they need to be repaired by hand.',
-
 );
 
 /** Message documentation (Message documentation)
@@ -450,6 +450,7 @@
 * {{msg-mw|Pt-movepage-list-count}}',
        'pt-deletepage-full-logreason' => 'See definition on 
[[mw:Help:Extension:Translate/Glossary]].',
        'pt-deletepage-lang-logreason' => 'See definition on 
[[mw:Help:Extension:Translate/Glossary]].',
+       'tpt-tab-translate' => 'Replaces the edit tab with translation tab for 
translation pages.',
 );
 
 /** Afrikaans (Afrikaans)
diff --git a/TranslateHooks.php b/TranslateHooks.php
index 629556b..be9be0b 100644
--- a/TranslateHooks.php
+++ b/TranslateHooks.php
@@ -153,6 +153,9 @@
 
                        // Show page source code when export tab is opened
                        $wgHooks['SpecialTranslate::executeTask'][] = 
'PageTranslationHooks::sourceExport';
+
+                       // Replaced edit tab with translation tab for 
translation pages
+                       $wgHooks['SkinTemplateNavigation'][] = 
'PageTranslationHooks::translateTab';
                }
        }
 
diff --git a/tag/PageTranslationHooks.php b/tag/PageTranslationHooks.php
index 774edf1..aeaaaf7 100644
--- a/tag/PageTranslationHooks.php
+++ b/tag/PageTranslationHooks.php
@@ -602,7 +602,8 @@
                                $result = array(
                                        'tpt-target-page',
                                        $page->getTitle()->getPrefixedText(),
-                                       $page->getTranslationUrl( $code )
+                                       // This url shouldn't get cached
+                                       wfExpandUrl( $page->getTranslationUrl( 
$code ) )
                                );
 
                                return false;
@@ -742,7 +743,9 @@
                        $per = $pers[$code] * 100;
                }
                $titleText = $page->getTitle()->getPrefixedText();
-               $url = $page->getTranslationUrl( $code );
+
+               // This url might get cached
+               $url = wfExpandUrl( $page->getTranslationUrl( $code ), 
PROTO_RELATIVE );
 
                // Output
                $wrap = '<div class="mw-translate-page-info">$1</div>';
@@ -859,4 +862,28 @@
 
                return false;
        }
+
+       /**
+        * Converts the edit tab (if exists) for translation pages to translate 
tab.
+        * Hook: SkinTemplateNavigation
+        * @since 2013.06
+        */
+       static function translateTab( Skin $skin, array &$tabs ) {
+               $title = $skin->getTitle();
+               // Set display title
+               $page = TranslatablePage::isTranslationPage( $title );
+               if ( !$page ) {
+                       return true;
+               }
+
+               $handle = new MessageHandle( $title );
+               $code = $handle->getCode();
+
+               if ( isset( $tabs['views']['edit'] ) ) {
+                       $tabs['views']['edit']['text'] = $skin->msg( 
'tpt-tab-translate' )->text();
+                       $tabs['views']['edit']['href'] = 
$page->getTranslationUrl( $code );
+               }
+
+               return true;
+       }
 }
diff --git a/tag/TranslatablePage.php b/tag/TranslatablePage.php
index dba2cce..d82a415 100644
--- a/tag/TranslatablePage.php
+++ b/tag/TranslatablePage.php
@@ -560,18 +560,20 @@
        }
 
        /**
-        * @param bool|string $code
-        * @return string
+        * Produces a link to translation view of a translation page.
+        * @param string $code MediaWiki language code
+        * @return string Relative url
         */
        public function getTranslationUrl( $code = false ) {
-               $translate = SpecialPage::getTitleFor( 'Translate' );
                $params = array(
                        'group' => $this->getMessageGroupId(),
-                       'task' => 'view',
+                       'action' => 'page',
+                       'filter' => '',
                        'language' => $code,
                );
 
-               return $translate->getFullURL( $params );
+               $translate = SpecialPage::getTitleFor( 'Translate' );
+               return $translate->getLocalURL( $params );
        }
 
        public function getMarkedRevs() {

-- 
To view, visit https://gerrit.wikimedia.org/r/69162
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I78effa8ce1c696970803d7d4463341048591e2e5
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <[email protected]>
Gerrit-Reviewer: Amire80 <[email protected]>
Gerrit-Reviewer: Pginer <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to