From 4ac9fa081a7c045f6a9f1cfc529d82423f485b2e Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 8 Dec 2013 09:55:49 +0100 Subject: Update to MediaWiki 1.22.0 --- extensions/Gadgets/ApiQueryGadgets.php | 4 + extensions/Gadgets/GadgetHooks.php | 257 ++++++++++++++++++++++++ extensions/Gadgets/Gadgets.alias.php | 13 +- extensions/Gadgets/Gadgets.i18n.php | 348 +++++++++++++++++++++++---------- extensions/Gadgets/Gadgets.php | 4 +- extensions/Gadgets/Gadgets_body.php | 264 +++---------------------- extensions/Gadgets/README | 2 +- 7 files changed, 551 insertions(+), 341 deletions(-) create mode 100644 extensions/Gadgets/GadgetHooks.php (limited to 'extensions/Gadgets') diff --git a/extensions/Gadgets/ApiQueryGadgets.php b/extensions/Gadgets/ApiQueryGadgets.php index 90e77a3b..a529daf0 100644 --- a/extensions/Gadgets/ApiQueryGadgets.php +++ b/extensions/Gadgets/ApiQueryGadgets.php @@ -54,6 +54,10 @@ class ApiQueryGadgets extends ApiQueryBase { private function getList() { $gadgets = Gadget::loadStructuredList(); + if ( $gadgets === false ) { + return array(); + } + $result = array(); foreach ( $gadgets as $category => $list ) { if ( $this->categories && !isset( $this->categories[$category] ) ) { diff --git a/extensions/Gadgets/GadgetHooks.php b/extensions/Gadgets/GadgetHooks.php new file mode 100644 index 00000000..ee1f4081 --- /dev/null +++ b/extensions/Gadgets/GadgetHooks.php @@ -0,0 +1,257 @@ +getTitle(); + if ( $title->getNamespace() == NS_MEDIAWIKI && $title->getText() == 'Gadgets-definition' ) { + Gadget::loadStructuredList( $text ); + } + wfProfileOut( __METHOD__ ); + return true; + } + + /** + * UserGetDefaultOptions hook handler + * @param $defaultOptions Array of default preference keys and values + * @return bool + */ + public static function userGetDefaultOptions( &$defaultOptions ) { + $gadgets = Gadget::loadStructuredList(); + if ( !$gadgets ) { + return true; + } + + /** + * @var $gadget Gadget + */ + foreach ( $gadgets as $thisSection ) { + foreach ( $thisSection as $gadgetId => $gadget ) { + if ( $gadget->isOnByDefault() ) { + $defaultOptions['gadget-' . $gadgetId] = 1; + } + } + } + + return true; + } + + /** + * GetPreferences hook handler. + * @param $user User + * @param $preferences Array: Preference descriptions + * @return bool + */ + public static function getPreferences( $user, &$preferences ) { + wfProfileIn( __METHOD__ ); + $gadgets = Gadget::loadStructuredList(); + if ( !$gadgets ) { + wfProfileOut( __METHOD__ ); + return true; + } + + $options = array(); + $default = array(); + foreach ( $gadgets as $section => $thisSection ) { + $available = array(); + + /** + * @var $gadget Gadget + */ + foreach ( $thisSection as $gadget ) { + if ( $gadget->isAllowed( $user ) ) { + $gname = $gadget->getName(); + # bug 30182: dir="auto" because it's often not translated + $desc = '' . $gadget->getDescription() . ''; + $available[$desc] = $gname; + if ( $gadget->isEnabled( $user ) ) { + $default[] = $gname; + } + } + } + + if ( $section !== '' ) { + $section = wfMessage( "gadget-section-$section" )->parse(); + + if ( count ( $available ) ) { + $options[$section] = $available; + } + } else { + $options = array_merge( $options, $available ); + } + } + + $preferences['gadgets-intro'] = + array( + 'type' => 'info', + 'label' => ' ', + 'default' => Xml::tags( 'tr', array(), + Xml::tags( 'td', array( 'colspan' => 2 ), + wfMessage( 'gadgets-prefstext' )->parseAsBlock() ) ), + 'section' => 'gadgets', + 'raw' => 1, + 'rawrow' => 1, + ); + + $preferences['gadgets'] = + array( + 'type' => 'multiselect', + 'options' => $options, + 'section' => 'gadgets', + 'label' => ' ', + 'prefix' => 'gadget-', + 'default' => $default, + ); + wfProfileOut( __METHOD__ ); + + return true; + } + + /** + * ResourceLoaderRegisterModules hook handler. + * @param $resourceLoader ResourceLoader + * @return bool + */ + public static function registerModules( &$resourceLoader ) { + $gadgets = Gadget::loadList(); + if ( !$gadgets ) { + return true; + } + + /** + * @var $g Gadget + */ + foreach ( $gadgets as $g ) { + $module = $g->getModule(); + if ( $module ) { + $resourceLoader->register( $g->getModuleName(), $module ); + } + } + return true; + + } + + /** + * BeforePageDisplay hook handler. + * @param $out OutputPage + * @return bool + */ + public static function beforePageDisplay( $out ) { + wfProfileIn( __METHOD__ ); + + $gadgets = Gadget::loadList(); + if ( !$gadgets ) { + wfProfileOut( __METHOD__ ); + return true; + } + + $lb = new LinkBatch(); + $lb->setCaller( __METHOD__ ); + $pages = array(); + + /** + * @var $gadget Gadget + */ + $user = $out->getUser(); + foreach ( $gadgets as $gadget ) { + if ( $gadget->isEnabled( $user ) && $gadget->isAllowed( $user ) ) { + if ( $gadget->hasModule() ) { + $out->addModuleStyles( $gadget->getModuleName() ); + $out->addModules( $gadget->getModuleName() ); + } + + foreach ( $gadget->getLegacyScripts() as $page ) { + $lb->add( NS_MEDIAWIKI, $page ); + $pages[] = $page; + } + } + } + + + // Allow other extensions, e.g. MobileFrontend, to disallow legacy gadgets + if ( wfRunHooks( 'Gadgets::allowLegacy', array( $out->getContext() ) ) ) { + $lb->execute( __METHOD__ ); + + $done = array(); + + foreach ( $pages as $page ) { + if ( isset( $done[$page] ) ) { + continue; + } + + $done[$page] = true; + self::applyScript( $page, $out ); + } + } + wfProfileOut( __METHOD__ ); + + return true; + } + + /** + * Adds one legacy script to output. + * + * @param string $page Unprefixed page title + * @param OutputPage $out + */ + private static function applyScript( $page, $out ) { + global $wgJsMimeType; + + # bug 22929: disable gadgets on sensitive pages. Scripts loaded through the + # ResourceLoader handle this in OutputPage::getModules() + # TODO: make this extension load everything via RL, then we don't need to worry + # about any of this. + if ( $out->getAllowedModules( ResourceLoaderModule::TYPE_SCRIPTS ) < ResourceLoaderModule::ORIGIN_USER_SITEWIDE ) { + return; + } + + $t = Title::makeTitleSafe( NS_MEDIAWIKI, $page ); + if ( !$t ) { + return; + } + + $u = $t->getLocalURL( 'action=raw&ctype=' . $wgJsMimeType ); + $out->addScriptFile( $u, $t->getLatestRevID() ); + } + + /** + * UnitTestsList hook handler + * @param array $files + * @return bool + */ + public static function onUnitTestsList( array &$files ) { + $testDir = __DIR__ . '/tests/'; + $files = array_merge( $files, glob( "$testDir/*Test.php" ) ); + return true; + } +} diff --git a/extensions/Gadgets/Gadgets.alias.php b/extensions/Gadgets/Gadgets.alias.php index 1371558d..3b041c51 100644 --- a/extensions/Gadgets/Gadgets.alias.php +++ b/extensions/Gadgets/Gadgets.alias.php @@ -5,6 +5,7 @@ * @file * @ingroup Extensions */ +// @codingStandardsIgnoreFile $specialPageAliases = array(); @@ -53,7 +54,12 @@ $specialPageAliases['bs'] = array( 'Gadgets' => array( 'Dodaci' ), ); -/** Czech (česky) */ +/** Chechen (нохчийн) */ +$specialPageAliases['ce'] = array( + 'Gadgets' => array( 'Гаджеташ' ), +); + +/** Czech (čeština) */ $specialPageAliases['cs'] = array( 'Gadgets' => array( 'Udělátka' ), ); @@ -193,6 +199,11 @@ $specialPageAliases['lb'] = array( 'Gadgets' => array( 'Gadgeten' ), ); +/** Minangkabau (Baso Minangkabau) */ +$specialPageAliases['min'] = array( + 'Gadgets' => array( 'Pakakeh' ), +); + /** Macedonian (македонски) */ $specialPageAliases['mk'] = array( 'Gadgets' => array( 'Алатки' ), diff --git a/extensions/Gadgets/Gadgets.i18n.php b/extensions/Gadgets/Gadgets.i18n.php index f0dae2e9..2a754600 100644 --- a/extensions/Gadgets/Gadgets.i18n.php +++ b/extensions/Gadgets/Gadgets.i18n.php @@ -88,7 +88,17 @@ See [[meta:Special:Gadgets|Gadgets page in meta.wikimedia.org]]", 'gadgets-export-title' => 'Used as page title. Example: [[Special:Gadgets/export/editbuttons]]', 'gadgets-not-found' => 'Used as error message. Parameters: * $1 - gadget name', - 'gadgets-export-text' => 'Used as page description. See example: [[Special:Gadgets/export/editbuttons]]', + 'gadgets-export-text' => 'Used as page description in [[Special:Gadgets]]. + +Refers to {{msg-mw|Gadgets-export-download}}. + +See example: [[Special:Gadgets/export/editbuttons]] + +Followed by the "Export" form. + +Parameters: +* $1 - gadget name +* $2 - gadget definition (code)', 'gadgets-export-download' => 'Use the verb for this message. Submit button. {{Identical|Download}}', ); @@ -229,8 +239,8 @@ $1', * @author Basharh */ $messages['arc'] = array( - 'gadgets' => 'ܬܘܣܦܝܬ̈ܐ', - 'gadgets-title' => 'ܬܘܣܦܝܬ̈ܐ', + 'gadgets' => 'ܬܘܣܦܬ̈ܐ', + 'gadgets-title' => 'ܬܘܣܦܬ̈ܐ', 'gadgets-export-download' => 'ܐܚܬ:', ); @@ -255,7 +265,7 @@ $messages['arz'] = array( 'gadgets-uses' => 'إستخدامات', ); -/** Assamese (অসমীয়া) +/** Assamese (অসমীয়া) * @author Bishnu Saikia * @author Gitartha.bordoloi */ @@ -397,6 +407,36 @@ $messages['bcc'] = array( 'gadgets-uses' => 'استفاده بیت', ); +/** Bikol Central (Bikol Central) + * @author Geopoet + */ +$messages['bcl'] = array( + 'gadgets-desc' => 'Minatugot sa mga paragamit na pumili nin kustombre [[Special:Gadgets|CSS and JavaScript gadgets]] sa saindang [[Special:Preferences#mw-prefsection-gadgets|preferences]]', + 'prefs-gadgets' => 'Mga gadyet', + 'gadgets-prefstext' => 'Sa ibaba yaon an sarong listahan kan espesyal na mga gadyet na saimong mapapagana para sa saimong panindog. +Ining mga gadyet haros nakabase sa JavaScript, kaya an JavaScript kaipong paganahon sa saimong kilyawan para an mga ini magagamit. +Tandai na ining mga gadyet mayo nin epekto kaining pahina nin mga kamuyahan. + +Tandai man na ining mga espesyal na gadyet bakong parte kan panuklob nin MediaWiki, asin pirmehang pinagpauswag asin pinagmamantine nin mga paragamit sa saimong lokal na wiki. + +An mga lokal na mga administrador makakaliwat kan [[MediaWiki:Gadgets-definition|mga pakahulugan]] asin [[Special:Gadgets|mga deskripsyon]] kan yaon na mga gadyet.', + 'gadgets' => 'Mga gadyet', + 'gadgets-title' => 'Mga gadyet', + 'gadgets-pagetext' => 'Sa ibaba yaon an sarong listahan kan espesyal na mga gadyet na an mga paragamit mapapagana sa saindang [[Special:Preferences#mw-prefsection-gadgets|pahina nin mga kamuyahan]], siring sa pinapakahulugan kan [[MediaWiki:Gadgets-definition|mga pakahulugan]]. Ining patanawon minatao nin yanong langkayan sa mga pahina kan mensahe sa sistema na minakahulugan sa lambang deskripsyon nin gadyet asin koda.', + 'gadgets-uses' => 'Mga magagamitan', + 'gadgets-required-rights' => 'Minahagad kan minasunod {{PLURAL:$2|katanosan|mga katanosan}}: + + +$1', + 'gadgets-required-skins' => 'Makukua sa {{PLURAL:$2|$1 kublit|minasunod na mga kublit: $1}}.', + 'gadgets-default' => 'Tugmadong pinagpapagana para sa kagabsan.', + 'gadgets-export' => 'Eksport', + 'gadgets-export-title' => 'Gadyet eksport', + 'gadgets-not-found' => 'Gadyet na "$1" dae nanagboan.', + 'gadgets-export-text' => 'Tanganing ma-eksport an $1 na gadyet, paki-klik an "{{int:gadgets-export-download}}" pindutan, itagama an naikargang sagunson, magduman sa Espesyal:Importaron sa wiking destinasyon and ikarga ini. An sunod idugang an minasunod sa MediaWiki:Mga Gadyet-pakahulugang pahina:
$2
Ika dapat magkaigwa nin makanigong mga permiso sa wiking destination (kabali na an katanosan na magliwat nin pansistemang mga mensahe) asin an mag-importa gikan sa ikinakargang mga sagunson na dapat kaipong pinagpagana.', + 'gadgets-export-download' => 'Kargahon', +); + /** Belarusian (Taraškievica orthography) (беларуская (тарашкевіца)‎) * @author Cesco * @author EugeneZelenko @@ -590,21 +630,23 @@ Heu de tenir els permisos adequats en el wiki de destinació (incloent-hi els pe /** Chechen (нохчийн) * @author Sasan700 + * @author Умар */ $messages['ce'] = array( 'gadgets-desc' => 'Атто бо декъашхошна харжам ба [[Special:Preferences#mw-prefsection-gadgets|гIирс нисбарца]] CSS- а JavaScript-хIоттончаш, лато лууш йерш', # Fuzzy - 'prefs-gadgets' => 'Хlоттончаш', - 'gadgets-prefstext' => 'Лаххьа балийна леррина хlоттончаш могlам, шуьга шайга латалур йолуш хьай долахь долучу дакъан. -Хlара хlоттончаш дукхачу хьоляхь болх беш ю оцу JavaScript тlяхь, цундела аша латоеза JavaScript шай дуьнена машан гlирса чохь, цаьрга болх байта. -Диц маделаш, хlара хlоттончаш болх бяш яз хlо гlирс нисбо агlон чохь. + 'prefs-gadgets' => 'Гаджеташ', + 'gadgets-prefstext' => 'Лаххьа балийна леррина гаджеташ могӀам, шуьга шайга латалур йолуш хьай долахь долучу дакъан. +ХӀара гаджеташ дуккхачу хьолехь болх беш ю оцу JavaScript тӀехь, цундела аша латоеза JavaScript шай браузер чохь, цаьрга болх байта. +Диц маделаш, хӀара гаджеташ болх бяш яц хӀо гӀирс нисбо агӀон чохь. -Ишта диц маде, хlара хlоттончаш юкъа йогуш яз кху MediaWiki гlирсашна, мадарра аьльча шу санна декъашхоша шаьш йеш ю. +Ишта диц маде, хӀара гаджеташ юкъа йогуш яц кху MediaWiki гlирсашна, мадарра аьльча шу санна декъашхоша шаьш йеш ю. Адманкуьйгалхошка шайг хийцало и хlоттончи могlам, хlокх могlам гlонца [[MediaWiki:Gadgets-definition|къастам бало]] а [[Special:Gadgets|церах лаьцна]].', - 'gadgets' => 'Хlоттончаш', - 'gadgets-title' => 'Хlоттончаш', + 'gadgets' => 'Гаджеташ', + 'gadgets-title' => 'Гаджеташ', 'gadgets-pagetext' => 'Гlирса хааман могlамаш, къастош йолу хlоттончи цlераш, хуьлаш йолу хIокху [[MediaWiki:Gadgets-definition|къастамца]]]]. ХIокху могIамо атто бо гIирсан хаамаш атта тIе кхочуш барца, цуьнах лаьцна хIоттош а йолш йолучу хIоттончи ишарца.', # Fuzzy 'gadgets-uses' => 'Лелош йу', + 'gadgets-export' => 'Экспорт ян', ); /** Sorani Kurdish (کوردی) @@ -806,22 +848,24 @@ Sie müssen über die notwendigen Berechtigungen auf dem für den Import vorgese /** Zazaki (Zazaki) * @author Erdemaslancan + * @author Gorizon + * @author Neribij * @author Olvörg * @author Xoser */ $messages['diq'] = array( - 'gadgets-desc' => 'Karberan rê destur bide ke pê [[Special:Preferences#mw-prefsection-gadgets|opsiyonan]] ra [[Special:Gadgets|Xacetanê CSS u JavaScriptî]] biweçî', - 'prefs-gadgets' => 'Xacetî', - 'gadgets-prefstext' => 'Cor de yew listeyê xacetanê xasî estê ke ti eşkenî xesabê xo de a bike. -Enê xecatan ser JavaScript gure kenê, aya ra ti gani browser xo de JavaScript a bike. -Ena pela opsiyonî de xacetan etki nikenê. - -Enê xecatanê xasî parçê sofwarê Mediyawîkî niyo, aye ra karberanê localî enê xecetî virazeno. -Adminstorê localî eşkenê xacetî [[MediaWiki:Gadgets-definition|definitions]] u [[Special:Gadgets|descriptions]] ra bivurne.', - 'gadgets' => 'Xacetî', - 'gadgets-title' => 'Xacetî', - 'gadgets-pagetext' => 'Cor de yew listeyê xacetanê xasî estê ke ti eşkenî [[Special:Preferences#mw-prefsection-gadgets|xesabê xo]] de a bike, descripsiyon [[MediaWiki:Gadgets-definition|definitions]] de esto. -Ena descripisyon kerberanê îmkan dano ke aye meajanê sistemî ra asani cikewtê.', + 'gadgets-desc' => "Karberan ré destur bidek [[Special:Preferences#mw-prefsection-gadgets|hesıbyayan]]'ra [[Special:Gadgets|Hacetanê CSS u JavaScriptî]] bışé weçiné", + 'prefs-gadgets' => 'Haleti', + 'gadgets-prefstext' => 'Cor de yew listeya hacetanê xasî esta ke ti eşkenî xesabê xo de a bikî. +Enê hacatî JavaScript ser o gurêyenê, aya ra ti ganî browserê xo de JavaScript a bikî. +Ena pela opsiyonî de hacetî tesîr nêkenê. + +Enê hacatanê xasî parçê sofwarê Mediyawîkî nîyê, aye ra karberê localî enê hacetî virazenê. +Îdarekarê mehelî eşkenê hacetan [[MediaWiki:Gadgets-definition|definitions]] û [[Special:Gadgets|descriptions]] ra bivurnê.', + 'gadgets' => 'Haleti', + 'gadgets-title' => 'Haleti', + 'gadgets-pagetext' => 'Cêr de yew listeya hacetanê xasan esta ke ti eşkenî [[Special:Preferences#mw-prefsection-gadgets|xesabê xo]] de a bikî, seke [[MediaWiki:Gadgets-definition|definitions]] nîşan dîyayo. +No ewnîyayîşo pêroyî îmkan dano ke merdim bi asanî bireso pelanê mesajanê sistemî ke descripisyon û kodê her hacetî nawneno.', 'gadgets-uses' => 'Karber', 'gadgets-required-rights' => 'Cêrêni icab kenê {{PLURAL:$2|raşti|raşteya}}: @@ -1072,20 +1116,21 @@ $1', 'gadgets-export-text' => 'برای برون‌بری ابزار $1، بر دکمهٔ «{{int:gadgets-export-download}}» کلیک کنید، پروندهٔ بارگیری‌شده را ذخیره کنید، به ویژه:درون‌ریزی در ویکی مقصد بروید و بارگذاری‌اش کنید. سپس این را به صفحهٔ مدیاویکی:Gadgets-definition بیفزایید:
$2
لازم است تا در ویکی مقصد دسترسی‌های مناسب (شامل حق ویرایش پیغام‌های سامانه) را داشته باشید و درون‌ریزی از بارگذاری‌های پرونده باید فعال شده باشد.', - 'gadgets-export-download' => 'بارگیری', + 'gadgets-export-download' => 'دریافت', ); /** Finnish (suomi) * @author Crt * @author Nike * @author Olli + * @author Stryn */ $messages['fi'] = array( 'gadgets-desc' => 'Tarjoaa mahdollisuuden käyttäjille ottaa käyttöön [[Special:Gadgets|määritettyjä CSS- ja JavaScript-pienoisohjelmia]] omista [[Special:Preferences#mw-prefsection-gadgets|asetuksistaan]].', 'prefs-gadgets' => 'Pienoisohjelmat', 'gadgets-prefstext' => 'Alla on lista pienoisohjelmista, joita käyttäjät voivat ottaa käyttöön. Nämä pienoisohjelmat pohjautuvat usein JavaScriptiin, joten toimiakseen selaimessasi pitää olla JavaScript käytössä. -Huomio myös, että nämä pienoisohjelmat eivät ole osa MediaWiki-ohjelmistoa – tavallisesti niitä kehittävät ja ylläpitävät paikallisen wikin käyttäjät. Paikalliset ylläpitäjät voivat muokata saatavilla olevia pienoisohjelmia [[MediaWiki:Gadgets-definition|määrityssivulla]] ja [[Special:Gadgets|kuvauksista]].', +Huomioi myös, että nämä pienoisohjelmat eivät ole osa MediaWiki-ohjelmistoa – tavallisesti niitä kehittävät ja ylläpitävät paikallisen wikin käyttäjät. Paikalliset ylläpitäjät voivat muokata saatavilla olevia pienoisohjelmia [[MediaWiki:Gadgets-definition|määrityssivulla]] ja [[Special:Gadgets|kuvauksista]].', 'gadgets' => 'Pienoisohjelmat', 'gadgets-title' => 'Pienoisohjelmat', 'gadgets-pagetext' => 'Alla on lista pienoisohjelmista, joita käyttäjät voivat ottaa käyttöön [[Special:Preferences#mw-prefsection-gadgets|asetussivulta]]. Pienoisohjelmat määritetään [[MediaWiki:Gadgets-definition|täältä]]. @@ -1189,6 +1234,35 @@ O est nècèssèro de d’avêr los drêts corrèspondents sur lo vouiqui de dè 'gadgets-export-download' => 'Tèlèchargiér', ); +/** Northern Frisian (Nordfriisk) + * @author Murma174 + */ +$messages['frr'] = array( + 'gadgets-desc' => 'Brükern kön uun hör [[Special:Preferences#mw-prefsection-gadgets|iinstelangen]] enkelt [[Special:Gadgets|CSS- an JavaScript-halpers]] aktiwiare', + 'prefs-gadgets' => 'Letj halpers', + 'gadgets-prefstext' => 'Diar stun enkelt letj halpers, diar arke brüke aktiwiare koon. Jo san miast uun JavaScript skrewen, an diaram kön jo bluas werke, wan JavaScript uun a browser aktiif as. Üüb detheer spezial-sidj werke jo oober ei. + +Jodiar letj halpers san nään dial faan MediaWiki an wurd miast faan enkelt brükern ütjspekeliaret. Administratooren kön jo letj halpers bewerke. Diarför jaft at [[MediaWiki:Gadgets-definition|definitjuunen]] an [[Special:Gadgets|beskriiwangen]].', + 'gadgets' => 'Letj halpers', + 'gadgets-title' => 'Letj halpers', + 'gadgets-pagetext' => 'Diar stun letj halpers, diar uun det [[MediaWiki:Gadgets-definition|definitjuun]] fäästlaanj san an diar arke brüker uun sin [[Special:Preferences#mw-prefsection-gadgets|iinstelangen]] iinracht koon. + +Auer detheer sidj komst dü tu a MediaWiki-süsteemnoorachten mä en beskriiwang an di program-code.', + 'gadgets-uses' => 'Tu brüken', + 'gadgets-required-rights' => 'Diarför brükst dü {{PLURAL:$2|detdiar brükerrocht|jodiar brükerrochten}}: + +$1', + 'gadgets-required-skins' => 'Koon mä {{PLURAL:$2|didiar skak|jodiar skaker}} brükt wurd: $1.', + 'gadgets-default' => 'Det as faan began för arken aktiif.', + 'gadgets-export' => 'Eksport', + 'gadgets-export-title' => 'Eksport faan letj halpers', + 'gadgets-not-found' => 'Letj halper "$1" ei fünjen.', + 'gadgets-export-text' => 'Am di letj halper $1 tu eksportiarin, trak üüb „{{int:gadgets-export-download}}“ an seekre det datei üüb dan reegner. Do gung tu "Spezial:Import" üüb det wiki, huar di letj halper importiaret wurd skal an schüür det datei huuch. Skriiw do noch didiar tekst üüb det sidj MediaWiki:Gadgets-definition: +
$2
+Huar dü det importiare wel, brükst dü jo nuadag brükerrochten tu importiarin an uk det brükerrocht, am MediaWiki-süsteemnoorachten tu bewerkin. An do skal natüürelk det importiarin uun detdiar wiki aktiwiaret wees.', + 'gadgets-export-download' => 'Deelloose', +); + /** Irish (Gaeilge) * @author පසිඳු කාවින්ද */ @@ -1305,6 +1379,8 @@ Special:Import નિયોજીત વિકિ પર Special:Import પર /** Hebrew (עברית) * @author Amire80 + * @author Guycn1 + * @author Guycn2 * @author Rotem Liss * @author YaronSh */ @@ -1326,9 +1402,9 @@ $messages['he'] = array( $1', 'gadgets-required-skins' => 'זמין {{PLURAL:$2|בערכות העיצוב הבאות: $1|בערכת העיצוב $1}}', - 'gadgets-default' => 'מופעל לכולם לפי בררת מחדל.', + 'gadgets-default' => 'מופעל לכולם כברירת מחדל.', 'gadgets-export' => 'יצוא', - 'gadgets-export-title' => 'יצוא גאדג׳טים', + 'gadgets-export-title' => "יצוא גאדג'טים", 'gadgets-not-found' => 'הגאדג׳ט "$1" לא נמצא.', 'gadgets-export-text' => 'כדי לייצא את הגאדג׳ט $1, יש ללחוץ על הלחצן "{{int:gadgets-export-download}}", לשמור את הקובץ שהתקבל, לגשת אל Special:Import באתר הוויקי המיועד ולהעלות אותו. ואז להוסיף את הדברים הבאים לדף MediaWiki:Gadgets-definition: @@ -1346,7 +1422,7 @@ $1', */ $messages['hi'] = array( 'gadgets-desc' => 'सदस्यों को उनकी [[Special:Preferences#mw-prefsection-gadgets|वरीयताओं]] में से चुनिंदा [[Special:Gadgets|CSS और जावालिपि जुगत]] चुनने दो।', - 'prefs-gadgets' => 'उपकरण (गैज़ेट)', + 'prefs-gadgets' => 'उपकरण (गैजेट)', 'gadgets-prefstext' => 'नीचे विशेष उपकरणों की सूची दी गई है, जिन्हें आप अपने खाते के लिये सक्षम कर सकते हैं। ये उपकरण अधिकांशतः जावास्क्रिप्ट पर आधारित है, इसलिए इनके कार्यशील होने के लिए आपके ब्राउज़र में जावास्क्रिप्ट सक्षम होनी चाहिये। ध्यान दें कि इन उपकरणों से आपके वरीयता पृष्ठ पर कोई असर नहीं होगा। @@ -1376,6 +1452,7 @@ $1', * @author Anton008 * @author Dalibor Bosits * @author Ex13 + * @author MaGa * @author Roberta F. * @author SpeedyGonsales */ @@ -1383,10 +1460,10 @@ $messages['hr'] = array( 'gadgets-desc' => 'Omogućava suradnicama biranje osobnih [[Special:Gadgets|CSS i JavaScript dodataka]] u svojim [[Special:Preferences#mw-prefsection-gadgets|postavkama]]', 'prefs-gadgets' => 'Dodaci', 'gadgets-prefstext' => 'Slijedi popis posebnih dodataka koje možete omogućiti. -One su većinom napisane u JavaScriptu, stoga JavaScript mora biti omogućen u vašem web pregledniku da bi dodaci radili. +Većinom su napisani u JavaScriptu, stoga JavaScript mora biti omogućen u vašem web pregledniku da bi radili. Nijedan dodatak nema učinka na ovu stranicu s postavkama. -Ovi posebni dodaci nisu dio MediaWiki softvera, najčešće su razvijane i održavane od suradnika na lokalnom wikiju. +Ovi posebni dodaci nisu dio MediaWiki softvera, najčešće ih razvijaju i održavaju suradnici na lokalnom wikiju. Lokalni administratori mogu uređivati dostupne dodatke putem [[MediaWiki:Gadgets-definition|definicija]] i [[Special:Gadgets|opisa]].', 'gadgets' => 'Dodaci', 'gadgets-title' => 'Dodatci', @@ -1561,32 +1638,32 @@ Anda harus memeroleh izin pada wiki tujuan (termasuk hak menyunting pesan sistem * @author Lam-ang */ $messages['ilo'] = array( - 'gadgets-desc' => 'Mabalin dagiti agar-aramat nga agpili iti [[Special:Gadgets|CSS ken JavaScript gadgets]] idiay [[Special:Preferences#mw-prefsection-gadgets|kaykayat da]]', - 'prefs-gadgets' => 'Gadgets', - 'gadgets-prefstext' => 'Adda dita baba ti listaan ti naipangruna a gadgets nga usaren idiay pakabilangam. -Dagitoy a gadgets ket naibasta iti JavaScript, masapul a pakabaelan ti JavaScript idiay "pagbasabasam" tapno agbalin da. -Saan a mabalin nga usaren dagitoy a gadgets ditoy kaykayat a panid. - -Dagitoy a gadgets ket saan a paset ti MediaWiki software, inaramid ken inayaywanan dagiti agar-aramat ti lokal a wiki. -Mabaliwan dagita administrador nga urnosen ti [[MediaWiki:Gadgets-definition|pinakailawag]] ken [[Special:Gadgets|deskripsion]] ti gadgets.', - 'gadgets' => 'Gadgets', - 'gadgets-title' => 'Gadgets', - 'gadgets-pagetext' => 'Dita baba ket adda listaan dagiti naipangruna a gadgets a dagiti agar-aramat ket mapagbalin da idiay [[Special:Preferences#mw-prefsection-gadgets|kaykayat da a panid]], a naipalawag iti [[MediaWiki:Gadgets-definition|dagiti pinakailawag]]. -Daytoy a pinakabuklan ket mangted ti nalaka a pinagserrek kadagit mensahe ti sistema a panid a nagpailawag iti deskripsion ti gadget ken kodigo.', + 'gadgets-desc' => 'Agpalubos kadagiti agar-aramat nga agpili kadagiti naiduma a [[Special:Gadgets|CSS ken JavaScript a gadget]] iti [[Special:Preferences#mw-prefsection-gadgets|kakaykayatanda]]', + 'prefs-gadgets' => 'Dagiti gadget', + 'gadgets-prefstext' => 'Dita baba ket listaan kadagiti naipangruna a gadget a mabalinmo a pakabaelan iti pakabilangam. +Dagitoy a gadget ket naibatay iti JavaScript, isunga masapul a pakabaelan ti JavaScript idiay "pagbasabasam" tapno agbalin dagitoy. +Laglagipen a dagitoy a gadget ket awan ti pagbanaganna iti daytoy panid ti kakaykayatan. + +Laglagipen pay a dagitoy a naipangruna a gadget ket saan a paset ti sopwer ti MediaWiki, ken kadawyan a pinarang-ay ken tinartaripato babaen dagiti agar-aramat iti lokal a wiki. +Dagiti lokal nga administrador ket mabalinda nga urnosen dagiti [[MediaWiki:Gadgets-definition|panangipalplawag]] ken dagiti [[Special:Gadgets|deskripsion]] dagiti magun-od a gadget.', + 'gadgets' => 'Dagiti gadget', + 'gadgets-title' => 'Dagiti gadget', + 'gadgets-pagetext' => 'Dita baba ket listaan dagiti naipangruna a gadget a mabalin a pakabaelan dagiti agar-aramat iti bukodda a [[Special:Preferences#mw-prefsection-gadgets|panid ti kakaykayatan]], a kas naipalawag babaen dagiti [[MediaWiki:Gadgets-definition|pannakaipalawag]]. +Daytoy a nakabuklan ket mangted ti nalaka a panagserrek kadagiti panid ti mensahe ti sistema a mangipalawag ti tungngal maysa a deskripsion ken kodigo ti gadget.', 'gadgets-uses' => 'Usar', - 'gadgets-required-rights' => 'Masapul dagiti sumaganad {{PLURAL:$2|a karbengan|dagiti karbengan}}: + 'gadgets-required-rights' => 'Masapul ti sumaganad a {{PLURAL:$2|karbengan|karkarbengan}}: $1', - 'gadgets-required-skins' => 'Adda mabalin idiay {{PLURAL:$2|$1 a kudil|dagiti sumaganad a kudil: $1}}.', - 'gadgets-default' => 'Pakabaelan a kinasigud iti amin nga agar-aramat.', + 'gadgets-required-skins' => 'Mabalin a magun-od {{PLURAL:$2|iti $1 a kudil|kadagiti sumaganad a kudil: $1}}.', + 'gadgets-default' => 'Pakabaelan a kasisigud para kadagiti amin.', 'gadgets-export' => 'Agipan', 'gadgets-export-title' => 'Agipan ti gadget', 'gadgets-not-found' => 'Saan a nabirukan ti "$1" a gadget.', - 'gadgets-export-text' => 'Ti pinag-ipan ti $1 a gadget, agtakla idiay "{{int:gadgets-export-download}}" a buton, idulin ti inkarga nga agpababa a papeles, -mapan idiay Special:Import ti papanan a wiki ken ikarga nga agpangato. Ken inayon dagiti sumaganad idiay MediaWiki:Gadgets-definition page: + 'gadgets-export-text' => 'Ti panag-ipan ti $1 a gadget, pinduten ti buton ti "{{int:gadgets-export-download}}", idulin ti naikarga a papeles, +mapan idiay Special:Import iti papanan a wiki ken ikarganto. Kalpasanna inayon dagiti sumaganad idiay panid ti MediaWiki:Gadgets-definition:
$2
-Masapul nga addaan ka ti husto a pammalubos iti papanan a wiki (nairaman ti karbegnan a pinagbaliw dagiti mensahe ti sistema) ken naipabalin ti pinagala kadagiti naggapu a papeles a naikarga nga agpangato.', - 'gadgets-export-download' => 'Ikarga nga agpababa', +Nasken nga addaanka ti maitunos a pammalubos iti papanan a wiki (mairaman ti karbengan a panag-urnos kadagiti mensahe ti sistema) ken nasken a napakabaelan ti panagikarga kadagiti papeles.', + 'gadgets-export-download' => 'Agikaraga', ); /** Ido (Ido) @@ -1637,7 +1714,7 @@ farðu á þann wiki sem á að flytja smátólið á, farðu á kerfisíðuna S $messages['it'] = array( 'gadgets-desc' => 'Consente agli utenti di selezionare [[Special:Gadgets|accessori CSS e JavaScript]] nelle proprie [[Special:Preferences#mw-prefsection-gadgets|preferenze]]', 'prefs-gadgets' => 'Accessori', - 'gadgets-prefstext' => "Di seguito viene presentata una lista di accessori speciali (''gadget'') che è possibile abilitare per il proprio account. + 'gadgets-prefstext' => "Di seguito viene presentata una lista di accessori speciali (''gadget'') che è possibile abilitare per la propria utenza. La maggior parte di questi accessori è basata su JavaScript, è quindi necessario abilitare JavaScript nel proprio browser perché funzionino correttamente. Si noti che gli accessori non hanno alcun effetto in questa pagina di preferenze. Inoltre, si noti che questi accessori speciali non sono compresi nel software MediaWiki e vengono di solito realizzati e gestiti dagli utenti di ciascun sito wiki. Gli amministratori del sito possono modificare la lista degli accessori disponibili tramite le pagine delle [[MediaWiki:Gadgets-definition|definizioni]] e delle [[Special:Gadgets|descrizioni]].", @@ -1792,21 +1869,27 @@ $messages['kk-arab'] = array( ); /** Kazakh (Cyrillic script) (қазақша (кирил)‎) + * @author Arystanbek */ $messages['kk-cyrl'] = array( 'prefs-gadgets' => 'Қажет құралдар', - 'gadgets-prefstext' => 'Төменде өз тіркелгіңізде қоса алатын арнаулы қажет құралдар тізімі беріледі. -Осы қажет құралдар көбінесе JavaScript әмірлеріне негізделінеді, сондықтан бұлар жұмыс істеуі үшін шолғышыңызда JavaScript қосылған болуы керек. -Бұл баптау бетіне осы қажет құралдар әсер етпейтінің ескеріңіз. + 'gadgets-prefstext' => 'Төменде өз тіркелгіңізде қоса алатын арнаулы қажет құралдар тізімі берілген. +Осы қажет құралдар көбінесе JavaScript әмірлеріне негізделеді, сондықтан бұлар жұмыс істеуі үшін шолғышыңызда JavaScript қосылған болуы керек. +Бұл баптау бетіне осы қажет құралдар әсер етпейтінін ескеріңіз. -Тағы да ескеріңіз: осы қажет құралдар MediaWiki бағдарламасының бөлігі емес, және де бұларды жайшылықта жергілікті уикидің қатысушылары дамытады және қоштайды. -Жергілікті әкімшілер жетімді қажет нәрсе тізімін [[{{ns:mediawiki}}:Gadgets-definition]] және [[{{ns:special}}:Gadgets]] беттері арқылы +Тағы да ескеріңіз: осы қажет құралдар MediaWiki бағдарламасының бөлігі емес және бұларды әдетте сіздің жергілікті уикиіңіздің қатысушылары дамытады және қоштайды. +Жергілікті [[Project:Әкімшілер|әкімшілер]] жетімді гаджеттерді [[MediaWiki:Gadgets-definition]] және [[special:Gadgets]] беттері арқылы өңдей алады.', # Fuzzy 'gadgets' => 'Қажет құралдар', 'gadgets-title' => 'Қажет құралдар', - 'gadgets-pagetext' => 'Төменде арнаулы қажет құралдар тізімі беріледі. [[{{ns:mediawiki}}:Gadgets-definition]] бетінде анықталған қажет құралдарды қатысушылар өзінің баптауында қоса алады. -Бұл шолу беті арқылы әрбір қажет құралдың сипаттамасы мен әмірін анықтайтын жүйе хабар беттеріне жеңіл қатынай аласыз.', # Fuzzy - 'gadgets-uses' => 'Қолданудағылар', + 'gadgets-pagetext' => 'Төменде қатысушылар өзінің [[Special:Preferences#mw-prefsection-gadgets|баптауларынан]] қоса алатын арнаулы қажет құралдар тізімі берілген. [[MediaWiki:Gadgets-definition]] шолу беті арқылы әрбір қажет құралдың сипаттамасы мен әмірін анықтайтын жүйе хабар беттеріне жеңіл қатынай аласыз.', + 'gadgets-uses' => 'Қолданыстағылар', + 'gadgets-required-rights' => 'Келесі {{PLURAL:$2|құқықты|құқықтарды}} қажет етеді: $1', + 'gadgets-default' => 'Әркімге автоматты түрде қосылады.', + 'gadgets-export' => 'Экспорттау', + 'gadgets-export-title' => 'Гаджетті экспорттау', + 'gadgets-not-found' => '"$1" гаджеті табылмады.', + 'gadgets-export-download' => 'Түсіру', ); /** Kazakh (Latin script) (qazaqşa (latın)‎) @@ -1851,7 +1934,7 @@ $messages['km'] = array( * @author 아라 */ $messages['ko'] = array( - 'gadgets-desc' => '각 사용자가 [[Special:Gadgets|CSS와 자바스크립트 소도구]]를 [[Special:Preferences#mw-prefsection-gadgets|사용자 환경 설정]]을 통해 사용할 수 있도록 허용', + 'gadgets-desc' => '각 사용자가 [[Special:Gadgets|CSS와 자바스크립트 소도구]]를 [[Special:Preferences#mw-prefsection-gadgets|사용자 환경 설정]]을 통해 사용할 수 있습니다', 'prefs-gadgets' => '소도구', 'gadgets-prefstext' => '아래 목록은 현재 사용 가능한 소도구의 목록입니다. 대부분의 소도구는 자바스크립트로 동작하며, 웹 브라우저에서 자바스크립트를 사용할 수 있어야 동작합니다. @@ -1863,7 +1946,7 @@ $messages['ko'] = array( 'gadgets-title' => '소도구', 'gadgets-pagetext' => '[[Special:Preferences#mw-prefsection-gadgets|사용자 환경 설정]]에서 설정할 수 있는 소도구 목록입니다. 해당 목록은 [[MediaWiki:Gadgets-definition|소도구 정의]]에서 편집할 수 있습니다. 이 문서에서는 각 소도구의 각 설명 문서와 코드의 시스템 메시지 링크를 제공합니다.', - 'gadgets-uses' => '다음 코드를 이용', + 'gadgets-uses' => '다음 코드를 사용', 'gadgets-required-rights' => '다음 {{PLURAL:$2|권한}}이 필요합니다: $1', @@ -1933,12 +2016,23 @@ Do moß en däm Wiki de nüüdijje Rääschde han, och dat Rääsch, aan Täxte /** Kurdish (Latin script) (Kurdî (latînî)‎) * @author George Animal + * @author Ghybu + * @author Gomada */ $messages['ku-latn'] = array( + 'prefs-gadgets' => 'Amûr', + 'gadgets' => 'Amûr', + 'gadgets-title' => 'Amûr', + 'gadgets-uses' => 'Bikaranîn', + 'gadgets-required-rights' => '{{PLURAL:$2|Mafa|Mafên}} di dorê de pêwîst in: + +$1', + 'gadgets-export' => 'Derxe', 'gadgets-not-found' => ' Gadget "$1" nehate dîtin.', + 'gadgets-export-download' => 'Daxe', ); -/** Kirghiz (Кыргызча) +/** Kyrgyz (Кыргызча) * @author Growingup */ $messages['ky'] = array( @@ -1950,19 +2044,20 @@ $messages['ky'] = array( /** Luxembourgish (Lëtzebuergesch) * @author Les Meloures * @author Robby + * @author Soued031 */ $messages['lb'] = array( 'gadgets-desc' => 'Erméiglecht de Benotzer et perséinlech [[Special:Gadgets|CSS a JavaScript Gadgeten]] an hiren [[Special:Preferences#mw-prefsection-gadgets|Astellunge]] festzeleeën.', 'prefs-gadgets' => 'Gadgeten', 'gadgets-prefstext' => "Lëscht vu spezielle Gadgeten déi fir Äre Benotzerkont aktivéiert kënne ginn. -D'Gadgete baséiere meeschtens op engem JavaScript, dofir muss JavaScript an Ärem Browser aktivéiert sinn, fir datt se fonctionéieren. -D'Gadgete fonctionéieren awer net op dëser Säit mat de perséinlechen Astellungen. +D'Gadgete baséiere meeschtens op engem JavaScript, dofir muss JavaScript an Ärem Browser aktivéiert sinn, fir datt se funktionéieren. +D'Gadgete funktionéieren awer net op dëser Säit mat de perséinlechen Astellungen. Ausserdeem sollt Dir wëssen, datt dës Gadgete generell net Deel vu MediaWiki sinn, a meeschtens vu Benotzer vu lokale Wikien entwéckelt an ënnerhale ginn. Lokal Wiki-Administrateure kënnen d'Lëscht von den disponibele Gadgeten op de Säiten [[MediaWiki:Gadgets-definition|Definitioune vun Gadgeten]] a [[Special:Gadgets|Beschreiwunge vu Gadgeten]] änneren.", 'gadgets' => 'Gadgeten', 'gadgets-title' => 'Gadgeten', - 'gadgets-pagetext' => "Ënnendrënner ass eng Lëscht vun de spezielle Gadgeten déi d'Benotzer op hire [[Special:Preferences#mw-prefsection-gadgets|Benotzer-Astellungen]] aschalte kënnen, esou wéi dat op [[MediaWiki:Gadgets-definition|definéiert]] ass. + 'gadgets-pagetext' => "Ënnendrënner ass eng Lëscht vun de spezielle Gadgeten déi d'Benotzer op hire [[Special:Preferences#mw-prefsection-gadgets|Benotzer-Astellungen]] aschalte kënnen, sou wéi dat op [[MediaWiki:Gadgets-definition|definéiert]] ass. Dës Iwwersiicht gëtt einfachen Zougang zu de Systemmessage-Säiten, déi all Gadget beschreiwen an zum Programméiercode vun dem Gadget.", 'gadgets-uses' => 'Benotzt', 'gadgets-required-rights' => "Erfuerdert {{PLURAL:$2|d'Recht|dës Rechter}}: $1.", @@ -1971,8 +2066,8 @@ Dës Iwwersiicht gëtt einfachen Zougang zu de Systemmessage-Säiten, déi all G 'gadgets-export' => 'Export', 'gadgets-export-title' => 'Export vu Gadgeten', 'gadgets-not-found' => 'Gadget "$1" net fonnt.', - 'gadgets-export-text' => 'Fir de Gadget $1 z\'exportéieren klickt w.e.g. op de(n) "{{int:gadgets-export-download}}"-Knäppchen, späichert den erofgelueden Fichier, gitt op Spezial:Import op der Zil-Wiki a lued en do erop. Duerno setzt der op d\'MediaWiki:Gadgets-Definitiouns Säit dëst derbäi:
$2
-Dir musst déi erfuerdert Rechter(inklusiv d\'Recht fir System-Messagen z\'änneren) op der Zil-Wiki hunn an den Import vun eropgelueden Fichiere muss ageschalt sinn.', + 'gadgets-export-text' => 'Fir de Gadget $1 z\'exportéieren klickt w.e.g. op de(n) "{{int:gadgets-export-download}}"-Knäppchen, späichert den erofgelueden Fichier, gitt op Spezial:Import op der Zil-Wiki a luet en do erop. Duerno setzt der op d\'MediaWiki:Gadgets-Definitiouns Säit dëst derbäi:
$2
+Dir musst déi erfuerdert Rechter(inklusiv d\'Recht fir Systemmessagen z\'änneren) op der Zil-Wiki hunn an den Import vun eropgelueden Fichiere muss ageschalt sinn.', 'gadgets-export-download' => 'Eroflueden', ); @@ -2019,6 +2114,18 @@ Doe mós de juuste rèchte höbben óppe doelwie, ouch óm bewirkinge aan systee 'gadgets-export-download' => 'Haol óp', ); +/** لوری (لوری) + * @author Mogoeilor + */ +$messages['lrc'] = array( + 'prefs-gadgets' => 'چيا هنی', + 'gadgets' => 'گجت یا', + 'gadgets-title' => 'گجت یا', + 'gadgets-uses' => 'کاروردیا', + 'gadgets-export' => 'وه صحرا ديئن', + 'gadgets-export-download' => 'گرتن', +); + /** Lithuanian (lietuvių) * @author Eitvys200 * @author Homo @@ -2203,7 +2310,7 @@ $messages['mr'] = array( 'gadgets-title' => 'गॅजेट', 'gadgets-pagetext' => 'खाली तुम्ही तुमच्या सदस्यत्वासाठी [[Special:Preferences#mw-prefsection-gadgets|माझ्या पसंती]] पानावर वापरू शकत असलेल्या [[MediaWiki:Gadgets-definition|व्याख्या]]ने सांगितलेल्या गॅजेट्सची यादी दिलेली आहे. हे पान तुम्हाला प्रत्येक गॅजेट्सचा कोड व व्याख्या देणार्‍या पानासाठी सोपी संपर्क सुविधा पुरविते.', 'gadgets-uses' => 'उपयोग', - 'gadgets-required-rights' => 'खलील गोष्ठी साठी विनंती {{PLURAL:$2|right|rights}}: + 'gadgets-required-rights' => 'खालील {{PLURAL:$2|अधिकार}} हवेच : $1', 'gadgets-required-skins' => '{{PLURAL:$2|$1 skin|खालील देखाव्यांवर : $1}} उपलब्ध आहेत', @@ -2211,11 +2318,11 @@ $1', 'gadgets-export' => 'निर्यात करा', 'gadgets-export-title' => 'उपकरण निर्यात', 'gadgets-not-found' => 'उपकरण "$1" सापडत नाही.', - 'gadgets-export-text' => '$1 उपकरण-सुविधा निर्यातकरण्या करिता, "{{int:gadgets-export-download}}" कलीवर टिचकी मारा, उतरवलेली संचिका-फाईल जतन करा + 'gadgets-export-text' => '$1 उपकरण-सुविधा निर्यात करण्याकरिता, "{{int:gadgets-export-download}}" कळीवर टिचकी मारा, उतरवलेली संचिका-फाईल जतन करा डेस्टिनेशन विकिच्या विशेष:आयात पानावर जाऊन संचिका-फाईल चढवावी.नंतर खालील MediaWiki:Gadgets-definition पान चढवावे :
$2
तुमच्याकडे डेस्टिनेशन विकिवर (सिस्टीम मेसेजेस सुद्धा संपादीत करण्यासहीत ) सुयोग्य परवानग्या उपलब्ध असणे अत्यावश्यक आहे आणि चढवलेल्या संचिकाकरिता आयात सुविधा सक्षम असणे आवश्यक आहे.', - 'gadgets-export-download' => 'उतरवा', + 'gadgets-export-download' => 'अधिभारण करा', ); /** Malay (Bahasa Melayu) @@ -2288,7 +2395,7 @@ $messages['mzn'] = array( 'gadgets-title' => 'ابزارون', ); -/** Norwegian Bokmål (norsk (bokmål)‎) +/** Norwegian Bokmål (norsk bokmål) * @author Laaknor * @author Nghtwlkr * @author Sjurhamre @@ -2337,7 +2444,7 @@ Disse Översicht gifft direkten Togang to de Systemnarichten, in de de Text to d 'gadgets-uses' => 'Bruukt', ); -/** Nedersaksies (Nedersaksies) +/** Low Saxon (Netherlands) (Nedersaksies) * @author Servien */ $messages['nds-nl'] = array( @@ -2438,7 +2545,7 @@ Voeg daarna het volgende toe aan de pagina "MediaWiki:Gadgets-definition": Je moet de juiste rechten hebben op de doelwiki, inclusief het recht om bewerkingen te maken aan de systeemberichten, en importeren uit bestanden moet ingeschakeld zijn.', ); -/** Norwegian Nynorsk (norsk (nynorsk)‎) +/** Norwegian Nynorsk (norsk nynorsk) * @author Eirik * @author Harald Khan * @author Nghtwlkr @@ -2466,7 +2573,7 @@ Dette oversynet gjev enkel tilgang til systemmeldingssidene som inneheld skildri $messages['oc'] = array( 'gadgets-desc' => 'Daissa als utilizaires los [[Special:Gadgets|gadgets CSS e JavaScript]] dins lor [[Special:Preferences#mw-prefsection-gadgets|preferéncias]]', 'prefs-gadgets' => 'Gadgets', - 'gadgets-prefstext' => "Çaijós apareis una tièra de gadgets que podètz activar per vòstre compte. Fan ampèl a JavaScript, deu doncas èsser activat per vòstre navigador Web. + 'gadgets-prefstext' => "Çaijós apareis una lista de gadgets que podètz activar per vòstre compte. Fan apèl a JavaScript, deu doncas èsser activat per vòstre navigador Web. An pas cap d'incidéncia sus aquesta pagina de preferéncias. E mai, son generalament desvolopats e mantenguts sus aqueste wiki. Los administrators pòdon modificar los gadgets en passant per [[MediaWiki:Gadgets-definition|las definicions]] e las [[Special:Gadgets|descripcions]].", @@ -2479,7 +2586,7 @@ Aqueste susvòl dona un accès rapid a las paginas de messatges del sistèma que 'gadgets-export-download' => 'Telecargar', ); -/** Oriya (ଓଡ଼ିଆ) +/** Oriya (ଓଡ଼ିଆ) * @author Ansumang * @author Odisha1 * @author Psubhashish @@ -2513,6 +2620,21 @@ $1', 'gadgets-export-download' => 'ଡାଉନଲୋଡ଼', ); +/** Punjabi (ਪੰਜਾਬੀ) + * @author Babanwalia + */ +$messages['pa'] = array( + 'prefs-gadgets' => 'ਗੈਜਟ', + 'gadgets' => 'ਗੈਜਟ', + 'gadgets-title' => 'ਗੈਜਟ', + 'gadgets-uses' => 'ਵਰਤਦਾ ਹੈ', + 'gadgets-default' => "ਮੂਲ ਤੌਰ 'ਤੇ ਸਾਰਿਆਂ ਲਈ ਚਾਲੂ ਹੈ।", + 'gadgets-export' => 'ਨਿਰਯਾਤ', + 'gadgets-export-title' => 'ਗੈਜਟ ਨਿਰਯਾਤ', + 'gadgets-not-found' => 'ਗੈਜਟ "$1" ਨਹੀਂ ਲੱਭਾ।', + 'gadgets-export-download' => 'ਡਾਊਨਲੋਡ ਕਰੋ', +); + /** Pampanga (Kapampangan) * @author Katimawan2005 */ @@ -2543,6 +2665,7 @@ $messages['pdc'] = array( ); /** Polish (polski) + * @author Chrumps * @author Derbeth * @author Marcin Łukasz Kiejzik * @author Matma Rex @@ -2553,7 +2676,7 @@ $messages['pl'] = array( 'gadgets-desc' => 'Pozwala użytkownikom wybrać [[Special:Gadgets|gadżety CSS i JavaScript]] na [[Special:Preferences#mw-prefsection-gadgets|stronie preferencji]]', 'prefs-gadgets' => 'Gadżety', 'gadgets-prefstext' => 'Poniżej znajduje się lista specjalnych gadżetów, które możesz włączyć dla swojego konta użytkownika. -Gadżety najczęściej wykorzystują JavaScript, więc by działały musisz mieć w swojej przeglądarce włączoną obsługę JavaScriptu. Gadżety nie mają wpływu na tę stronę preferencji. +Gadżety najczęściej wykorzystują JavaScript, więc by działały, musisz mieć w swojej przeglądarce włączoną obsługę JavaScriptu. Gadżety nie mają wpływu na tę stronę preferencji. Gadżety nie są częścią oprogramowania MediaWiki i najprawdopodobniej zostały stworzone przez użytkowników tej wiki. Lokalni administratorzy mogą edytować dostępne gadżety używając stron [[MediaWiki:Gadgets-definition|Definicje gadżetów]] oraz [[Special:Gadgets|Gadżety]].', @@ -2641,40 +2764,48 @@ Special:Import تے جاؤ وکی تے ، چرھاؤ اینوں۔ فیر تھل * @author Ahmed-Najib-Biabani-Ibrahimkhel */ $messages['ps'] = array( - 'prefs-gadgets' => 'ګاډجېټ', - 'gadgets' => 'ګاډجېټ', - 'gadgets-title' => 'ګاډجېټ', + 'prefs-gadgets' => 'گاډجېټ', + 'gadgets-prefstext' => 'دلته لاندې د ځانگړو گاډجېټونو (هوښيارتوکي) يو لړليک دی چې تاسې يې خپل گڼون لپاره چارنولی شی. +دا گاډجېټونه د جاواسکرېپټ پر بنسټ جوړ شوي، نو د دې لپاره چې همدا گاډجېټونه سم کار وکړي نو ستاسې د کتنمل جاواسکرېپټ بايد چارند وي. +په پام کې مو اوسه چې دا گاډجېټونه به په همدې غوره توبونو هېڅ اغېزه و نه لري. + +دا هم په پام کې ونيسئ چې دا ځانگړي گاډجېټونه د مېډياويکي د ساوترۍ برخه نه ده او دا اکثراً ستاسې د سيمه ايزې ويکي کارنانو لخوا پرمخ بېول کېږي. + +سيمه ايز پازوالان کولی شي د شته گاډجېټونو [[MediaWiki:Gadgets-definition|پېژندنې]] او [[Special:Gadgets|څرگندونې]] سمې کړي.', + 'gadgets' => 'گاډجېټ', + 'gadgets-title' => 'گاډجېټ', 'gadgets-uses' => 'کارونې', 'gadgets-export' => 'صادرول', - 'gadgets-not-found' => 'د "$1" ګاډجېټ و نه موندل شو.', + 'gadgets-not-found' => 'د "$1" گاډجېټ و نه موندل شو.', 'gadgets-export-download' => 'ښکته کول', ); /** Portuguese (português) * @author Hamilton Abreu * @author Helder.wiki + * @author Luckas * @author Malafaya * @author 555 */ $messages['pt'] = array( 'gadgets-desc' => "Permite que os utilizadores seleccionem [[Special:Gadgets|''\"gadgets\"'' em JavaScript e CSS]] personalizados nas suas [[Special:Preferences#mw-prefsection-gadgets|preferências]]", 'prefs-gadgets' => 'Gadgets', - 'gadgets-prefstext' => "Segue-se uma lista de ''\"gadgets\"'' especiais que pode activar na sua conta. -Estes ''gadgets'' são baseados principalmente em JavaScript, sendo necessário activar o suporte a JavaScript no seu browser para que funcionem. + 'gadgets-prefstext' => "Segue-se uma lista de ''\"gadgets\"'' especiais que pode ativar na sua conta. +Estes ''gadgets'' são baseados principalmente em JavaScript, sendo necessário ativar o suporte a JavaScript no seu browser para que funcionem. Note que não terão efeito nesta página de preferências. Note também que estes ''gadgets'' especiais não fazem parte do programa MediaWiki, sendo geralmente desenvolvidos e mantidos por utilizadores na sua wiki local. Administradores locais podem editar os ''gadgets'' disponíveis usando as [[MediaWiki:Gadgets-definition|definições]] e [[Special:Gadgets|descrições]].", 'gadgets' => 'Gadgets', 'gadgets-title' => 'Gadgets', - 'gadgets-pagetext' => "Segue-se uma lista de ''\"gadgets\"'' que podem ser activados pelos utilizadores nas suas [[Special:Preferences#mw-prefsection-gadgets|preferências]], como estabelecido pelas [[MediaWiki:Gadgets-definition|definições]]. + 'gadgets-pagetext' => "Segue-se uma lista de ''\"gadgets\"'' que podem ser ativados pelos utilizadores nas suas [[Special:Preferences#mw-prefsection-gadgets|preferências]], como estabelecido pelas [[MediaWiki:Gadgets-definition|definições]]. Este resumo proporciona acesso fácil às páginas das mensagens de sistema que definem a descrição e o código de cada ''gadget''.", 'gadgets-uses' => 'Utiliza', 'gadgets-required-rights' => 'Requer {{PLURAL:$2|o seguinte privilégio|os seguintes privilégios}}: $1', 'gadgets-required-skins' => 'Disponível {{PLURAL:$2|no tema $1|nos seguintes temas: $1}}', - 'gadgets-default' => 'Activado para todos por padrão.', + 'gadgets-default' => 'Ativado para todos por padrão.', 'gadgets-export' => 'Exportar', 'gadgets-export-title' => 'Exportação de gadget', 'gadgets-not-found' => 'O gadget "$1" não foi encontrado.', @@ -2691,34 +2822,35 @@ Na wiki de destino, tem de ter as permissões necessárias (incluindo o privilé * @author GoEThe * @author Helder.wiki * @author Rafael Vargas + * @author 555 */ $messages['pt-br'] = array( - 'gadgets-desc' => 'Permite aos utilizadores selecionarem [[Special:Gadgets|"gadgets" JavaScript e CSS]] personalizados nas suas [[Special:Preferences#mw-prefsection-gadgets|preferências]]', + 'gadgets-desc' => 'Permite que os usuários selecionem [[Special:Gadgets|"gadgets" JavaScript e CSS]] personalizados nas suas [[Special:Preferences#mw-prefsection-gadgets|preferências]]', 'prefs-gadgets' => 'Gadgets', 'gadgets-prefstext' => 'Segue-se uma lista de "gadgets" que podem ser ativados em sua conta. Tais gadgets normalmente são baseados em JavaScript, o que faz com que seja necessário que o suporte a JavaScript esteja ativado em seu navegador para que os mesmos funcionem. Note que os gadgets não possuem efeito nesta página (a página de preferências). -Note também que tais gadgets não são parte do software MediaWiki, geralmente sendo desenvolvidos e mantidos por usuários de sua wiki local. +Repare também que tais gadgets não são parte do software MediaWiki, geralmente sendo desenvolvidos e mantidos por usuários de seu wiki local. Administradores locais podem editar os gadgets disponíveis através de [[MediaWiki:Gadgets-definition|definições]] e [[Special:Gadgets|descrições]].', 'gadgets' => 'Gadgets', 'gadgets-title' => 'Gadgets', - 'gadgets-pagetext' => 'Segue-se uma lista de "gadgets" que podem ser ativados por utilizadores através de [[Special:Preferences#mw-prefsection-gadgets|suas páginas de preferências]], definidos em [[MediaWiki:Gadgets-definition|definições]]. -Esta visão geral proporciona um acesso fácil para as mensagens de sistema que definem as descrições e códigos de cada um dos gadgets.', - 'gadgets-uses' => 'Utiliza', + 'gadgets-pagetext' => 'Segue-se uma lista de "gadgets" que podem ser ativados pelos usuários através de [[Special:Preferences#mw-prefsection-gadgets|suas páginas de preferências]], definidos em [[MediaWiki:Gadgets-definition|suas definições]]. +Esta lista possibilita um acesso fácil para as mensagens de sistema que definem as descrições e códigos de cada um dos gadgets.', + 'gadgets-uses' => 'Usa', 'gadgets-required-rights' => 'Requer {{PLURAL:$2|o seguinte privilégio|os seguintes privilégios}}: $1', 'gadgets-required-skins' => 'Disponível {{PLURAL:$2|no skin $1|nos seguintes skins: $1}}.', 'gadgets-default' => 'Ativado para todos por padrão.', 'gadgets-export' => 'Exportar', - 'gadgets-export-title' => 'Exportação de gadget', - 'gadgets-not-found' => '*Gadget "$1" não encontrado.', + 'gadgets-export-title' => 'Exportar gadgets', + 'gadgets-not-found' => 'O gadget "$1" não encontrado.', 'gadgets-export-text' => 'Para exportar o gadget $1, clique no botão "{{int:gadgets-export-download}}", salve o arquivo transferido, -vá à página Special:Import na wiki de destino e faça o upload do arquivo. Depois adicione o seguinte à página MediaWiki:Gadgets-definition: +vá à página Special:Import no wiki de destino e faça o upload do arquivo. Depois, adicione o seguinte à página MediaWiki:Gadgets-definition:
$2
-Na wiki de destino, você deve ter as permissões necessárias (incluindo o privilégio de editar mensagens de sistema) e a importação por upload de arquivos deve estar habilitada na wiki.', - 'gadgets-export-download' => 'Baixar', +É necessário que você tenha, no wiki de destino, as permissões necessárias (incluindo o privilégio de editar mensagens de sistema) e a importação por upload de arquivos deve estar ativada.', + 'gadgets-export-download' => 'Fazer download', ); /** Quechua (Runa Simi) @@ -2989,6 +3121,7 @@ Musíte mať príslušné oprávnenia na cieľovej wiki (vrátane práva na úpr /** Slovenian (slovenščina) * @author Dbc334 + * @author Eleassar * @author Smihael */ $messages['sl'] = array( @@ -2998,7 +3131,7 @@ $messages['sl'] = array( Večinoma temeljijo na JavaScriptu, zato mora biti za njihovo delovanje omogočen v vašem brskalniku. Ti vtičniki nimajo nobenega vpliva na to nastavitveno stran. -Prav tako pomnite, da ti vtičniki niso del programja MediaWiki in jih običajno razvijajo ter vzdržujejo uporabniki na vašem lokalnem wikiju. +Prav tako upoštevajte, da ti vtičniki niso del programja MediaWiki in jih običajno razvijajo ter vzdržujejo uporabniki na vašem lokalnem wikiju. Administratorji lahko uredite seznam vtičnikov z uporabo [[MediaWiki:Gadgets-definition|opredelitev]] in [[Special:Gadgets|posebne strani]].', 'gadgets' => 'Vtičniki', 'gadgets-title' => 'Vtičniki', @@ -3055,6 +3188,7 @@ Ju duhet të keni leje të përshtatshme në wiki-n e destinuar (duke përfshir ); /** Serbian (Cyrillic script) (српски (ћирилица)‎) + * @author Milicevic01 * @author Millosh * @author Nikola Smolenski * @author Rancher @@ -3062,12 +3196,12 @@ Ju duhet të keni leje të përshtatshme në wiki-n e destinuar (duke përfshir */ $messages['sr-ec'] = array( 'gadgets-desc' => 'Омогућава корисницима да изаберу прилагођене [[Special:Gadgets|CSS и јаваскрипт гаџете]] у својим [[Special:Preferences#mw-prefsection-gadgets|подешавањима]]', - 'prefs-gadgets' => 'Гаџети', + 'prefs-gadgets' => 'Геџети', 'gadgets-prefstext' => 'Испод се налази списак посебних гаџета које можете да омогућите на свом налогу. Ове справице су углавном засноване на јаваскрипти, тако да она мора бити омогућена. Гаџети неће утицати на страницу за подешавање. -Они нису део софтвера Медијавики, већ се развијају и одржавају од стране корисника ваше викије. +Они нису део софтвера Медијавики, већ се развијају и одржавају од стране корисника на вашем локалном викију. Администратори могу да измене [[MediaWiki:Gadgets-definition|значења]] и [[Special:Gadgets|описе]] доступних гаџета.', 'gadgets' => 'Гаџети', 'gadgets-title' => 'Гаџети', @@ -3091,6 +3225,7 @@ $1', /** Serbian (Latin script) (srpski (latinica)‎) * @author Michaello + * @author Milicevic01 * @author Жељко Тодоровић */ $messages['sr-el'] = array( @@ -3100,7 +3235,7 @@ $messages['sr-el'] = array( Ove spravice su uglavnom zasnovane na javaskripti, tako da ona mora biti omogućena. Gadžeti neće uticati na stranicu za podešavanje. -Oni nisu deo softvera Medijaviki, već se razvijaju i održavaju od strane korisnika vaše vikije. +Oni nisu deo softvera Medijaviki, već se razvijaju i održavaju od strane korisnika na vašem lokalnom vikiju. Administratori mogu da izmene [[MediaWiki:Gadgets-definition|značenja]] i [[Special:Gadgets|opise]] dostupnih gadžeta.', 'gadgets' => 'gedžeti', 'gadgets-title' => 'gedžeti', @@ -3336,6 +3471,7 @@ Dapat kang mayroong nararapat na mga pahintulot sa kapupuntahang wiki (kasama an /** Turkish (Türkçe) * @author Emperyan * @author Erkan Yilmaz + * @author Incelemeelemani * @author Joseph * @author Karduelis * @author Koc61 @@ -3353,6 +3489,11 @@ Yerel yöneticiler [[MediaWiki:Gadgets-definition|tanımları]] ve [[Special:Gad 'gadgets-pagetext' => "Aşağıdaki, kullanıcıların [[Special:Preferences#mw-prefsection-gadgets|tercihler sayfasında]] etkin hale getirebileceği, [[MediaWiki:Gadgets-definition|tanımlarla]] belirtildiği gibi, özel gadgetlerin bir listesidir. Bu genel bakış, her gadget'in tanımını ve kodunu belirten sistem mesaj sayfalarına kolay erişim sağlar.", 'gadgets-uses' => 'Kullanıyor', + 'gadgets-required-rights' => 'Aşağıda gösterilen {{PLURAL:$2|hak|haklar}} gereklidir: + +$1', + 'gadgets-required-skins' => 'Kullanılabilecek {{PLURAL:$2|$1 tema|temalar: $1}}.', + 'gadgets-default' => 'Herkes için varsayılan olarak etkindir.', 'gadgets-export' => 'Dışa aktar', 'gadgets-export-title' => 'Gadget dışa aktarımı', 'gadgets-not-found' => 'Gadget "$1" bulunamadı.', @@ -3589,16 +3730,12 @@ $messages['yue'] = array( $messages['zh-hans'] = array( 'gadgets-desc' => '允许用户在其[[Special:Preferences#mw-prefsection-gadgets|系统设置]]中选择自定义[[Special:Gadgets|CSS和JavaScript工具]]', 'prefs-gadgets' => '小工具', - 'gadgets-prefstext' => '以下是您可以为您的帐户启用的特别小工具的名单。 -这些小工具大多都是基于JavaScript技术制作,所以您的浏览器的JavaScript功能必须可用才可使用它们。 -要稍作留意的是,这些小工具在这个参数设置页面中不会有任何效果。 + 'gadgets-prefstext' => '下面是你可以为你的账户启用的特殊小工具的列表。这些小工具大多数基于JavaScript,所以你必需使你的浏览器启用JavaScript以使它们工作。请注意这些小工具不会在这个设置页面上产生效果。 -亦请您了解这些特别的小工具不是MediaWiki软件的一部份,大多是由您本地wiki中的用户开发和维护。 -本地的管理员可以编辑可用小工具的[[MediaWiki:Gadgets-definition|定义]]及[[Special:Gadgets|描述]]。', +同时请注意,这些特殊小工具不是MediaWiki软件的组成部分,他们通常是由你的本地wiki的用户开发并维护的。本地管理员可以编辑可用小工具的[[MediaWiki:Gadgets-definition|定义]]和[[Special:Gadgets|说明]]。', 'gadgets' => '小工具', 'gadgets-title' => '小工具', - 'gadgets-pagetext' => '以下是一个按照[[MediaWiki:Gadgets-definition]]定义的特殊小工具列表,用户可以在他们的[[Special:Preferences#mw-prefsection-gadgets|参数设置页面]]中激活它们。 -通过这个概览可以方便的获得系统信息页面,从而可以定义每个小工具的描述以及源码。', + 'gadgets-pagetext' => '下面是用户可以在他们的[[Special:Preferences#mw-prefsection-gadgets|设置页面]]启用的特殊小工具的列表,由[[MediaWiki:Gadgets-definition|定义]]确定。这个概览提供便捷访问确定每个小工具的说明和代码的系统信息页面的途径。', 'gadgets-uses' => '使用', 'gadgets-required-rights' => '需要以下{{PLURAL:$2|权限|权限}}: @@ -3619,13 +3756,14 @@ $1', * @author Danny0838 * @author Gakmo * @author Horacewai2 + * @author Justincheng12345 * @author Liangent * @author Mark85296341 * @author Shinjiman * @author Waihorace */ $messages['zh-hant'] = array( - 'gadgets-desc' => '讓使用者可以在[[Special:Preferences#mw-prefsection-gadgets|偏好設定]]中自訂 [[Special:Gadgets|CSS與JavaScript工具]]', + 'gadgets-desc' => '讓使用者可以於[[Special:Preferences#mw-prefsection-gadgets|偏好設定]]中自訂[[Special:Gadgets|CSS與JavaScript工具]]', 'prefs-gadgets' => '小工具', 'gadgets-prefstext' => '以下列出各種特殊小工具,可在您的帳戶中啟用之。小工具多使用了JavaScript,瀏覽器必須啟用JavaScript才能正常運作。請注意小工具的效果不會作用在這個偏好設定頁。 diff --git a/extensions/Gadgets/Gadgets.php b/extensions/Gadgets/Gadgets.php index 59b0af69..b0b455c4 100644 --- a/extensions/Gadgets/Gadgets.php +++ b/extensions/Gadgets/Gadgets.php @@ -24,7 +24,7 @@ $wgExtensionCredits['other'][] = array( 'path' => __FILE__, 'name' => 'Gadgets', 'author' => array( 'Daniel Kinzler', 'Max Semenik' ), - 'url' => 'https://mediawiki.org/wiki/Extension:Gadgets', + 'url' => 'https://www.mediawiki.org/wiki/Extension:Gadgets', 'descriptionmsg' => 'gadgets-desc', ); @@ -42,7 +42,7 @@ $wgExtensionMessagesFiles['GadgetsAlias'] = $dir . 'Gadgets.alias.php'; $wgAutoloadClasses['ApiQueryGadgetCategories'] = $dir . 'ApiQueryGadgetCategories.php'; $wgAutoloadClasses['ApiQueryGadgets'] = $dir . 'ApiQueryGadgets.php'; $wgAutoloadClasses['Gadget'] = $dir . 'Gadgets_body.php'; -$wgAutoloadClasses['GadgetHooks'] = $dir . 'Gadgets_body.php'; +$wgAutoloadClasses['GadgetHooks'] = $dir . 'GadgetHooks.php'; $wgAutoloadClasses['GadgetResourceLoaderModule'] = $dir . 'Gadgets_body.php'; $wgAutoloadClasses['SpecialGadgets'] = $dir . 'SpecialGadgets.php'; diff --git a/extensions/Gadgets/Gadgets_body.php b/extensions/Gadgets/Gadgets_body.php index e787062a..1e043a82 100644 --- a/extensions/Gadgets/Gadgets_body.php +++ b/extensions/Gadgets/Gadgets_body.php @@ -11,235 +11,6 @@ * @license GNU General Public Licence 2.0 or later */ -class GadgetHooks { - /** - * ArticleSaveComplete hook handler. - * - * @param $article Article - * @param $user User - * @param $text String: New page text - * @return bool - */ - public static function articleSaveComplete( $article, $user, $text ) { - // update cache if MediaWiki:Gadgets-definition was edited - $title = $article->getTitle(); - if ( $title->getNamespace() == NS_MEDIAWIKI && $title->getText() == 'Gadgets-definition' ) { - Gadget::loadStructuredList( $text ); - } - return true; - } - - /** - * UserGetDefaultOptions hook handler - * @param $defaultOptions Array of default preference keys and values - * @return bool - */ - public static function userGetDefaultOptions( &$defaultOptions ) { - $gadgets = Gadget::loadStructuredList(); - if ( !$gadgets ) { - return true; - } - - /** - * @var $gadget Gadget - */ - foreach ( $gadgets as $thisSection ) { - foreach ( $thisSection as $gadgetId => $gadget ) { - if ( $gadget->isOnByDefault() ) { - $defaultOptions['gadget-' . $gadgetId] = 1; - } - } - } - - return true; - } - - /** - * GetPreferences hook handler. - * @param $user User - * @param $preferences Array: Preference descriptions - * @return bool - */ - public static function getPreferences( $user, &$preferences ) { - $gadgets = Gadget::loadStructuredList(); - if ( !$gadgets ) { - return true; - } - - $options = array(); - $default = array(); - foreach ( $gadgets as $section => $thisSection ) { - $available = array(); - - /** - * @var $gadget Gadget - */ - foreach ( $thisSection as $gadget ) { - if ( $gadget->isAllowed( $user ) ) { - $gname = $gadget->getName(); - # bug 30182: dir="auto" because it's often not translated - $desc = '' . $gadget->getDescription() . ''; - $available[$desc] = $gname; - if ( $gadget->isEnabled( $user ) ) { - $default[] = $gname; - } - } - } - - if ( $section !== '' ) { - $section = wfMessage( "gadget-section-$section" )->parse(); - - if ( count ( $available ) ) { - $options[$section] = $available; - } - } else { - $options = array_merge( $options, $available ); - } - } - - $preferences['gadgets-intro'] = - array( - 'type' => 'info', - 'label' => ' ', - 'default' => Xml::tags( 'tr', array(), - Xml::tags( 'td', array( 'colspan' => 2 ), - wfMessage( 'gadgets-prefstext' )->parseAsBlock() ) ), - 'section' => 'gadgets', - 'raw' => 1, - 'rawrow' => 1, - ); - - $preferences['gadgets'] = - array( - 'type' => 'multiselect', - 'options' => $options, - 'section' => 'gadgets', - 'label' => ' ', - 'prefix' => 'gadget-', - 'default' => $default, - ); - - return true; - } - - /** - * ResourceLoaderRegisterModules hook handler. - * @param $resourceLoader ResourceLoader - * @return bool - */ - public static function registerModules( &$resourceLoader ) { - $gadgets = Gadget::loadList(); - if ( !$gadgets ) { - return true; - } - - /** - * @var $g Gadget - */ - foreach ( $gadgets as $g ) { - $module = $g->getModule(); - if ( $module ) { - $resourceLoader->register( $g->getModuleName(), $module ); - } - } - return true; - - } - - /** - * BeforePageDisplay hook handler. - * @param $out OutputPage - * @return bool - */ - public static function beforePageDisplay( $out ) { - wfProfileIn( __METHOD__ ); - - $gadgets = Gadget::loadList(); - if ( !$gadgets ) { - wfProfileOut( __METHOD__ ); - return true; - } - - $lb = new LinkBatch(); - $lb->setCaller( __METHOD__ ); - $pages = array(); - - /** - * @var $gadget Gadget - */ - $user = $out->getUser(); - foreach ( $gadgets as $gadget ) { - if ( $gadget->isEnabled( $user ) && $gadget->isAllowed( $user ) ) { - if ( $gadget->hasModule() ) { - $out->addModuleStyles( $gadget->getModuleName() ); - $out->addModules( $gadget->getModuleName() ); - } - - foreach ( $gadget->getLegacyScripts() as $page ) { - $lb->add( NS_MEDIAWIKI, $page ); - $pages[] = $page; - } - } - } - - - // Allow other extensions, e.g. MobileFrontend, to disallow legacy gadgets - if ( wfRunHooks( 'Gadgets::allowLegacy', array( $out->getContext() ) ) ) { - $lb->execute( __METHOD__ ); - - $done = array(); - - foreach ( $pages as $page ) { - if ( isset( $done[$page] ) ) { - continue; - } - - $done[$page] = true; - self::applyScript( $page, $out ); - } - } - wfProfileOut( __METHOD__ ); - - return true; - } - - /** - * Adds one legacy script to output. - * - * @param string $page Unprefixed page title - * @param OutputPage $out - */ - private static function applyScript( $page, $out ) { - global $wgJsMimeType; - - # bug 22929: disable gadgets on sensitive pages. Scripts loaded through the - # ResourceLoader handle this in OutputPage::getModules() - # TODO: make this extension load everything via RL, then we don't need to worry - # about any of this. - if ( $out->getAllowedModules( ResourceLoaderModule::TYPE_SCRIPTS ) < ResourceLoaderModule::ORIGIN_USER_SITEWIDE ) { - return; - } - - $t = Title::makeTitleSafe( NS_MEDIAWIKI, $page ); - if ( !$t ) { - return; - } - - $u = $t->getLocalURL( 'action=raw&ctype=' . $wgJsMimeType ); - $out->addScriptFile( $u, $t->getLatestRevID() ); - } - - /** - * UnitTestsList hook handler - * @param array $files - * @return bool - */ - public static function onUnitTestsList( array &$files ) { - $testDir = __DIR__ . '/tests/'; - $files = array_merge( $files, glob( "$testDir/*Test.php" ) ); - return true; - } -} /** * Wrapper for one gadget. @@ -248,7 +19,7 @@ class Gadget { /** * Increment this when changing class structure */ - const GADGET_CLASS_VERSION = 6; + const GADGET_CLASS_VERSION = 7; private $version = self::GADGET_CLASS_VERSION, $scripts = array(), @@ -261,6 +32,7 @@ class Gadget { $requiredSkins = array(), $targets = array( 'desktop' ), $onByDefault = false, + $position = 'bottom', $category; /** @@ -310,6 +82,9 @@ class Gadget { case 'targets': $gadget->targets = $params; break; + case 'top': + $gadget->position = 'top'; + break; } } @@ -463,7 +238,7 @@ class Gadget { return null; } - return new GadgetResourceLoaderModule( $pages, $this->dependencies, $this->targets ); + return new GadgetResourceLoaderModule( $pages, $this->dependencies, $this->targets, $this->position ); } /** @@ -501,6 +276,14 @@ class Gadget { return $this->requiredSkins; } + /** + * Returns the position of this Gadget's ResourceLoader module + * @return String: 'bottom' or 'top' + */ + public function getPosition() { + return $this->position; + } + /** * Loads and returns a list of all gadgets * @return Mixed: Array of gadgets or false @@ -614,6 +397,13 @@ class Gadget { } } + if ( !count( $gadgets ) ) { + // Don't cache in case we couldn't find any gadgets. Bug 37228 + $gadgets = false; + wfProfileOut( __METHOD__ ); + return $gadgets; + } + // cache for a while. gets purged automatically when MediaWiki:Gadgets-definition is edited $wgMemc->set( $key, $gadgets, 60 * 60 * 24 ); $source = $forceNewText !== null ? 'input text' : 'MediaWiki:Gadgets-definition'; @@ -641,11 +431,13 @@ class GadgetResourceLoaderModule extends ResourceLoaderWikiModule { * ) * @param $dependencies Array: Names of resources this module depends on * @param $targets Array: List of targets this module support + * @param $position String: 'bottom' or 'top' */ - public function __construct( $pages, $dependencies, $targets ) { + public function __construct( $pages, $dependencies, $targets, $position ) { $this->pages = $pages; $this->dependencies = $dependencies; $this->targets = $targets; + $this->position = $position; } /** @@ -664,4 +456,12 @@ class GadgetResourceLoaderModule extends ResourceLoaderWikiModule { public function getDependencies() { return $this->dependencies; } + + /** + * Overrides ResourceLoaderModule::getPosition() + * @return String: 'bottom' or 'top' + */ + public function getPosition() { + return $this->position; + } } diff --git a/extensions/Gadgets/README b/extensions/Gadgets/README index cbe0862e..5fb3c353 100644 --- a/extensions/Gadgets/README +++ b/extensions/Gadgets/README @@ -8,7 +8,7 @@ Licenses: GNU General Public Licence (GPL) The Gadgets extension provides a way for users to pick JavaScript or CSS based "gadgets" that other wiki users provide. - + The Gadgets extension was originally written by Daniel Kinzler in 2007 and is released under the GNU General Public Licence (GPL). -- cgit v1.2.3-54-g00ecf