Jarry1250 has submitted this change and it was merged.
Change subject: Provide helper links on file description pages.
..
Provide helper links on file description pages.
These come in a few different flavours: no translations,
do you wish to start?; translations, just view; and
translations, view and translate.
The &chooselanguage=1 parameter doesn't do anything yet,
but it will shortly.
Change-Id: I360f2fdc219d96e5c10670c34796d6f40fbed2b4
---
M TranslateSvg.php
M TranslateSvgHooks.php
A resources/ext.translatesvg.filepage.js
3 files changed, 237 insertions(+), 0 deletions(-)
Approvals:
Nikerabbit: Looks good to me, but someone else must approve
Jarry1250: Verified; Looks good to me, approved
diff --git a/TranslateSvg.php b/TranslateSvg.php
index d6d31ff..5321d9c 100644
--- a/TranslateSvg.php
+++ b/TranslateSvg.php
@@ -53,7 +53,28 @@
'remoteExtPath' => 'TranslateSvg'
);
+$wgResourceModules['ext.translatesvg.filepage'] = array(
+ 'scripts' => array( 'resources/ext.translatesvg.filepage.js' ),
+ 'dependencies' => array( 'mediawiki.Uri' ),
+ 'messages' => array(
+ 'translate-svg-filepage-caption',
+ 'translate-svg-filepage-caption-translator',
+ 'translate-svg-filepage-edit',
+ 'translate-svg-filepage-finish',
+ 'translate-svg-filepage-item',
+ 'translate-svg-filepage-another',
+ 'translate-svg-filepage-other',
+ 'translate-svg-filepage-invite',
+ 'comma-separator'
+ ),
+ 'localBasePath' => dirname( __FILE__ ),
+ 'remoteExtPath' => 'TranslateSvg'
+);
+
+$wgHooks['BeforePageDisplay'][] =
'TranslateSvgHooks::updateFileDescriptionPages';
$wgHooks['LoadExtensionSchemaUpdates'][] = 'TranslateSvgHooks::schemaUpdates';
+$wgHooks['MakeGlobalVariablesScript'][] =
'TranslateSvgHooks::makeFilePageGlobalVariables';
+$wgHooks['TranslateBeforeAddModules'][] = 'TranslateSvgHooks::addModules';
$wgHooks['TranslateGetBoxes'][] = 'TranslateSvgHooks::addThumbnail';
$wgHooks['TranslateGetBoxes'][] = 'TranslateSvgHooks::removeQQQ';
$wgHooks['TranslateGetSpecialTranslateOptions'][] =
'TranslateSvgHooks::makeExportAsSvgOptionDefault';
diff --git a/TranslateSvgHooks.php b/TranslateSvgHooks.php
index 68c8b64..dd8db19 100644
--- a/TranslateSvgHooks.php
+++ b/TranslateSvgHooks.php
@@ -259,6 +259,21 @@
return true;
}
+ /*
+* Function used to add modules via the resource loader on
+* the file pages of SVG files via the BeforePageDisplay MediaWiki hook
+*
+* @param $out Contextual OutputPage instance
+* @return \bool true
+*/
+ public static function updateFileDescriptionPages( $out ) {
+ $title = $out->getTitle();
+ if( TranslateSvgUtils::isSVGFilePage( $title ) ) {
+ $out->addModules( 'ext.translatesvg.filepage' );
+ }
+ return true;
+ }
+
/**
* Process the thumbnail property for use with the mgprop parameter of
* action=query&meta=messagegroups API queries.
@@ -344,7 +359,60 @@
$group = Title::newFromRow( $r )->getText();
$list[$group] = new SVGMessageGroup( $group );
}
+ return true;
+ }
+ /**
+* Function used to expose various new globals to the
+* JavaScript of the file description pages of SVG files
+* via the MakeGlobalVariablesScript MediaWiki hook.
+*
+* @param &$vars Array of variables to be exposed to JavaScript
+* @param $out Contextual OutputPage instance
+* @return \bool true
+*/
+ public static function makeFilePageGlobalVariables( &$vars, $out ) {
+ global $wgLanguageNames;
+
+ $title = $out->getTitle();
+ if( !TranslateSvgUtils::isSVGFilePage( $title ) ) {
+ return true;
+ }
+
+ $user = $out->getUser();
+ $vars['wgUserLanguageName'] = Language::fetchLanguageName(
+ $user->getOption( 'language' )
+ );
+ $vars['wgUserCanTranslate'] = $user->isAllowed( 'translate' );
+
+ $id = $title->getText();
+ $messageGroup = new SVGMessageGroup( $id );
+ $reader = new SVGFormatReader( $messageGroup );
+ $vars['wgFileCanBeTranslated'] = ( $reader !== null );
+ if( !$vars['wgFileCanBeTranslated'] ||
!MessageGroups::getGroup( $id ) ) {
+ // Not translatable or not yet translated, let's save
time and return immediately
+ $vars['wgFileFullTranslations'] = array();
+ $vars['wgFilePartialTranslations'] = array();
+ return tru