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