r73353 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r73352‎ | r73353 | r73354 >
Date:23:39, 19 September 2010
Author:sergeychernyshev
Status:deferred
Tags:
Comment:
Some code structure changes and fix to a bug 25219
Modified paths:
  • /tags/extensions/Widgets/REL_0_9_1 (added) (history)
  • /tags/extensions/Widgets/REL_0_9_1/Widgets.php (replaced) (history)
  • /tags/extensions/Widgets/REL_0_9_1/smarty_plugins/modifier.validate.php (replaced) (history)

Diff [purge]

Index: tags/extensions/Widgets/REL_0_9_1/WidgetRenderer.php
@@ -0,0 +1,193 @@
 2+<?php
 3+/**
 4+ * Class holding functions for displaying widgets.
 5+ */
 6+
 7+if ( !defined( 'MEDIAWIKI' ) ) {
 8+ echo "This file is not a valid entry point.";
 9+ exit( 1 );
 10+}
 11+
 12+class WidgetRenderer {
 13+
 14+public static function renderWidget ( &$parser, $widgetName ) {
 15+ global $IP;
 16+
 17+ $smarty = new Smarty;
 18+ $smarty->left_delimiter = '<!--{';
 19+ $smarty->right_delimiter = '}-->';
 20+ $smarty->compile_dir = "$IP/extensions/Widgets/compiled_templates/";
 21+
 22+ // registering custom Smarty plugins
 23+ $smarty->plugins_dir[] = "$IP/extensions/Widgets/smarty_plugins/";
 24+
 25+ $smarty->security = true;
 26+ $smarty->security_settings = array(
 27+ 'IF_FUNCS' => array(
 28+ 'is_array',
 29+ 'isset',
 30+ 'array',
 31+ 'list',
 32+ 'count',
 33+ 'sizeof',
 34+ 'in_array',
 35+ 'true',
 36+ 'false',
 37+ 'null'
 38+ ),
 39+ 'MODIFIER_FUNCS' => array( 'validate' )
 40+ );
 41+
 42+ // register the resource name "db"
 43+ $smarty->register_resource(
 44+ 'wiki',
 45+ array(
 46+ 'WidgetRenderer::wiki_get_template',
 47+ 'WidgetRenderer::wiki_get_timestamp',
 48+ 'WidgetRenderer::wiki_get_secure',
 49+ 'WidgetRenderer::wiki_get_trusted'
 50+ )
 51+ );
 52+
 53+ $params = func_get_args();
 54+ array_shift( $params ); # first one is parser - we don't need it
 55+ array_shift( $params ); # second one is widget name
 56+
 57+ $params_tree = array();
 58+
 59+ foreach ( $params as $param ) {
 60+ $pair = explode('=', $param, 2);
 61+
 62+ if ( count( $pair ) == 2 ) {
 63+ $key = trim($pair[0]);
 64+ $val = trim($pair[1]);
 65+ } else {
 66+ $key = $param;
 67+ $val = true;
 68+ }
 69+
 70+ if ( $val == 'false' ) {
 71+ $val = false;
 72+ }
 73+
 74+ /* If the name of the parameter has object notation
 75+
 76+ a.b.c.d
 77+
 78+ then we assign stuff to hash of hashes, not scalar
 79+
 80+ */
 81+ $keys = explode( '.', $key );
 82+
 83+ // $subtree will be moved from top to the bottom and at the end will point to the last level
 84+ $subtree =& $params_tree;
 85+
 86+ // go throught all the keys but last one
 87+ $last_key = array_pop( $keys );
 88+
 89+ foreach ( $keys as $subkey ) {
 90+ // if next level of subtree doesn't exist yet, create an empty one
 91+ if ( !array_key_exists( $subkey, $subtree ) ) {
 92+ $subtree[$subkey] = array();
 93+ }
 94+
 95+ // move to the lower level
 96+ $subtree =& $subtree[$subkey];
 97+ }
 98+
 99+ // last portion of the key points to itself
 100+ if ( isset( $subtree[$last_key] ) ) {
 101+ // if already an array, push into it, otherwise, convert into array first
 102+ if ( !is_array( $subtree[$last_key] ) ) {
 103+ $subtree[$last_key] = array( $subtree[$last_key] );
 104+ }
 105+
 106+ $subtree[$last_key][] = $val;
 107+ } else {
 108+ // doesn't exist yet, just setting a value
 109+ $subtree[$last_key] = $val;
 110+ }
 111+ }
 112+
 113+ $smarty->assign( $params_tree );
 114+
 115+ try {
 116+ $output = $smarty->fetch( "wiki:$widgetName" );
 117+ } catch ( Exception $e ) {
 118+ wfLoadExtensionMessages( 'Widgets' );
 119+ return '<div class=\"error\">' . wfMsgExt( 'widgets-desc', array( 'parsemag' ), htmlentities($widgetName) ) . '</div>';
 120+ }
 121+
 122+ // Hide the widget from the parser
 123+ $output = 'ENCODED_CONTENT '.base64_encode($output).' END_ENCODED_CONTENT';
 124+ return $output;
 125+}
 126+
 127+public static function processEncodedWidgetOutput( &$out, &$text ) {
 128+ // Find all hidden content and restore to normal
 129+ $text = preg_replace(
 130+ '/ENCODED_CONTENT ([0-9a-zA-Z\/+]+=*)* END_ENCODED_CONTENT/esm',
 131+ 'base64_decode("$1")',
 132+ $text
 133+ );
 134+
 135+ return true;
 136+}
 137+
 138+ // the following four functions are all registered with Smarty
 139+ public static function wiki_get_template( $widgetName, &$widgetCode, &$smarty_obj ) {
 140+ global $wgWidgetsUseFlaggedRevs;
 141+
 142+ $widgetTitle = Title::newFromText($widgetName, NS_WIDGET);
 143+ if ( $widgetTitle && $widgetTitle->exists() ) {
 144+ if ($wgWidgetsUseFlaggedRevs)
 145+ {
 146+ $flaggedWidgetArticle = FlaggedArticle::getTitleInstance( $widgetTitle );
 147+ $flaggedWidgetArticleRevision = $flaggedWidgetArticle->getStableRev();
 148+ if ($flaggedWidgetArticleRevision)
 149+ {
 150+ $widgetCode = $flaggedWidgetArticleRevision->getRevText();
 151+ }
 152+ else
 153+ {
 154+ $widgetCode = '';
 155+ }
 156+ }
 157+ else
 158+ {
 159+ $widgetArticle = new Article( $widgetTitle, 0 );
 160+ $widgetCode = $widgetArticle->getContent();
 161+ }
 162+
 163+ // Remove <noinclude> sections and <includeonly> tags from form definition
 164+ $widgetCode = StringUtils::delimiterReplace( '<noinclude>', '</noinclude>', '', $widgetCode );
 165+ $widgetCode = strtr( $widgetCode, array( '<includeonly>' => '', '</includeonly>' => '' ) );
 166+
 167+ return true;
 168+ } else {
 169+ return false;
 170+ }
 171+ }
 172+
 173+ public static function wiki_get_timestamp( $widgetName, &$widgetTimestamp, &$smarty_obj ) {
 174+ $widgetTitle = Title::newFromText( $widgetName, NS_WIDGET );
 175+ if ($widgetTitle && $widgetTitle->exists()) {
 176+ $widgetArticle = new Article( $widgetTitle, 0 );
 177+ $widgetTimestamp = $widgetArticle->getTouched();
 178+
 179+ return true;
 180+ } else {
 181+ return false;
 182+ }
 183+ }
 184+
 185+ public static function wiki_get_secure( $tpl_name, &$smarty_obj ) {
 186+ // assume all templates are secure
 187+ return true;
 188+ }
 189+
 190+ public static function wiki_get_trusted( $tpl_name, &$smarty_obj ) {
 191+ // not used for templates
 192+ }
 193+
 194+}
Property changes on: tags/extensions/Widgets/REL_0_9_1/WidgetRenderer.php
___________________________________________________________________
Added: svn:eol-style
1195 + native
Index: tags/extensions/Widgets/REL_0_9_1/smarty_plugins/modifier.validate.php
@@ -0,0 +1,31 @@
 2+<?php
 3+/*
 4+ * Smarty plugin
 5+ * -------------------------------------------------------------
 6+ * File: modifier.validate.php
 7+ * Type: modifier
 8+ * Name: validate
 9+ * Purpose: Validates parameter format ('url' by default).
 10+ * Useful when you need to validate but not escape.
 11+ * -------------------------------------------------------------
 12+ */
 13+function smarty_modifier_validate($string, $type='url')
 14+{
 15+ // mapping for PHP filters (http://us2.php.net/manual/en/filter.constants.php)
 16+ $filters = array(
 17+ 'url' => FILTER_VALIDATE_URL,
 18+ 'int' => FILTER_VALIDATE_INT,
 19+ 'boolean' => FILTER_VALIDATE_BOOLEAN,
 20+ 'float' => FILTER_VALIDATE_FLOAT,
 21+ 'email' => FILTER_VALIDATE_EMAIL,
 22+ 'ip' => FILTER_VALIDATE_IP
 23+ );
 24+
 25+ if (array_key_exists($type, $filters) && filter_var($string, $filters[$type]) !== FALSE)
 26+ {
 27+ return $string;
 28+ }
 29+
 30+ // unless it matched some validation rule, it's not valid
 31+ return '';
 32+}
Property changes on: tags/extensions/Widgets/REL_0_9_1/smarty_plugins/modifier.validate.php
___________________________________________________________________
Added: svn:eol-style
133 + native
Index: tags/extensions/Widgets/REL_0_9_1/Widgets.i18n.magic.php
@@ -0,0 +1,43 @@
 2+<?php
 3+
 4+$magicWords = array();
 5+
 6+$magicWords['en'] = array(
 7+ 'widget' => array( 0, 'widget' ),
 8+);
 9+
 10+$magicWords['ar'] = array(
 11+ 'widget' => array( '0', 'ودجة', 'widget' ),
 12+);
 13+
 14+$magicWords['arz'] = array(
 15+ 'widget' => array( '0', 'ودجة', 'widget' ),
 16+);
 17+
 18+$magicWords['ce'] = array(
 19+ 'widget' => array( '0', 'тlехьажар', 'виджет', 'widget' ),
 20+);
 21+
 22+$magicWords['eo'] = array(
 23+ 'widget' => array( '0', 'fenestraĵo', 'fenestrajxo', 'widget' ),
 24+);
 25+
 26+$magicWords['ja'] = array(
 27+ 'widget' => array( '0', 'ウィジェット', 'widget' ),
 28+);
 29+
 30+$magicWords['ko'] = array(
 31+ 'widget' => array( '0', '위젯', 'widget' ),
 32+);
 33+
 34+$magicWords['mr'] = array(
 35+ 'widget' => array( '0', 'विसाधन', 'widget' ),
 36+);
 37+
 38+$magicWords['ru'] = array(
 39+ 'widget' => array( '0', 'виджет', 'widget' ),
 40+);
 41+
 42+$magicWords['si'] = array(
 43+ 'widget' => array( '0', 'ගැජට්', 'widget' ),
 44+);
Property changes on: tags/extensions/Widgets/REL_0_9_1/Widgets.i18n.magic.php
___________________________________________________________________
Added: svn:keywords
145 + Id
Added: svn:eol-style
246 + native
Index: tags/extensions/Widgets/REL_0_9_1/Widgets.i18n.php
@@ -0,0 +1,618 @@
 2+<?php
 3+/**
 4+ * Internationalisation file for Widgets extension.
 5+ *
 6+ */
 7+
 8+$messages = array();
 9+
 10+$messages['en'] = array(
 11+ 'widgets-desc' => 'Allows wiki administrators to add free-form widgets to the wiki by editing pages within the {{ns:widget}} namespace.
 12+Community-contributed widgets can be found on [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 13+ 'widgets-error' => 'Error in [[{{ns:widget}}:$1|widget $1]]',
 14+ 'group-widgeteditor' => 'Widget editors',
 15+ 'group-widgeteditor-member' => 'Widget editor',
 16+ 'grouppage-widgeteditor' => 'Project:Widget editors',
 17+ 'right-editwidgets' => 'Create and edit [http://www.mediawiki.org/wiki/Extension:Widgets widgets] in the <tt>{{ns:widget}}</tt> namespace',
 18+);
 19+
 20+/** Message documentation (Message documentation)
 21+ * @author Fryed-peach
 22+ * @author Khaledelmansoury
 23+ * @author Purodha
 24+ * @author Siebrand
 25+ * @author Umherirrender
 26+ */
 27+$messages['qqq'] = array(
 28+ 'widgets-desc' => '{{desc}}',
 29+ 'grouppage-widgeteditor' => '{{doc-important|Leave "Project:" untranslated}}',
 30+ 'right-editwidgets' => '{{doc-right}}',
 31+);
 32+
 33+/** Gheg Albanian (Gegë)
 34+ * @author Mdupont
 35+ */
 36+$messages['aln'] = array(
 37+ 'widgets-desc' => 'Wiki jep mundësin administratorëve të shtoni pa-formë Widgets në wiki nga faqet redaktimi brenda {{ns:widget}} hapësira. Zhvilluar Fillimisht për [http://www.ardorado.com Ardorado.com]',
 38+ 'widgets-error' => 'Gabim në [[{{ns:widget}}:$1|widget $1]]',
 39+ 'group-widgeteditor' => 'redaktorët widget',
 40+ 'group-widgeteditor-member' => 'editor widget',
 41+ 'grouppage-widgeteditor' => 'Projekti: redaktorët widget',
 42+ 'right-editwidgets' => 'Krijo dhe ndrysho http://www.mediawiki.org/wiki/Extension:Widgets [Widgets] në <tt>{{ns:widget}}</tt> namespace',
 43+);
 44+
 45+/** Arabic (العربية)
 46+ * @author ;Hiba;1
 47+ * @author OsamaK
 48+ */
 49+$messages['ar'] = array(
 50+ 'widgets-desc' => 'يسمح لإداري الويكي بإضافة ودجات حرة الشكل إلى الويكي بتحرير صفحات النطاق {{ns:widget}}.
 51+طُور أصلًا ب[http://www.ardorado.com Ardorado.com]',
 52+ 'widgets-error' => 'خطأ في [[{{ns:widget}}:$1|الودجة $1]]',
 53+ 'group-widgeteditor' => 'محررو الودجات',
 54+ 'group-widgeteditor-member' => 'محرر ودجات',
 55+ 'grouppage-widgeteditor' => 'Project:محررو الودجات',
 56+ 'right-editwidgets' => 'إنشاء وتحرير [http://www.mediawiki.org/wiki/Extension:Widgets widgets] في الــ <tt>{{ns:widget}}</tt> مكان الاسم',
 57+);
 58+
 59+/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
 60+ * @author EugeneZelenko
 61+ * @author Jim-by
 62+ */
 63+$messages['be-tarask'] = array(
 64+ 'widgets-desc' => 'Дазваляе адміністратарам {{GRAMMAR:родны|{{SITENAME}}}} дадаваць віджэты вольных формаў у {{GRAMMAR:вінавальны|{{SITENAME}}}} праз рэдагаваньне старонак у прасторы назваў {{ns:widget}}.
 65+Віджэты, якія падтрымліваюцца супольнасьцю, можна знайсьці на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 66+ 'widgets-error' => 'Памылка ў [[{{ns:widget}}:$1|віджэце $1]]',
 67+ 'group-widgeteditor' => 'Рэдактар віджэтаў',
 68+ 'group-widgeteditor-member' => 'Рэдактар віджэта',
 69+ 'grouppage-widgeteditor' => 'Project:Рэдактары віджэтаў',
 70+ 'right-editwidgets' => 'стварэньне і рэдагаваньне [http://www.mediawiki.org/wiki/Extension:Widgets дапаўненьняў] у прасторы назваў <tt>{{ns:widget}}</tt>',
 71+);
 72+
 73+/** Breton (Brezhoneg)
 74+ * @author Fulup
 75+ * @author Y-M D
 76+ */
 77+$messages['br'] = array(
 78+ 'widgets-desc' => "Talvezout a ra d'ar verourien da ouzhpennañ widgetoù d'ar wiki en ur gemmañ pajennoù en esaouenn anv {{ns:widget}}.
 79+Ar widgetoù kinniget gant ar gumuniezh a gaver war [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 80+ 'widgets-error' => 'Fazi e [[{{ns:widget}}:$1|widget $1]]',
 81+ 'group-widgeteditor' => 'Aozerien widget',
 82+ 'group-widgeteditor-member' => 'Aozer widget',
 83+ 'grouppage-widgeteditor' => 'Project:Aozerien widget',
 84+ 'right-editwidgets' => 'Krouiñ ha kemmañ ar [http://www.mediawiki.org/wiki/Extension:Widgets widgetoù] en esaouenn anv <tt>{{ns:widget}}<tt>',
 85+);
 86+
 87+/** Bosnian (Bosanski)
 88+ * @author CERminator
 89+ */
 90+$messages['bs'] = array(
 91+ 'widgets-desc' => 'Omogućuje wiki administratorima da dodaju dodatke u slobodnoj formi na wiki putem uređivanja stranica unutar imenskog prostora {{ns:widget}}.
 92+Prvobitno razvijeni dodaci se mogu naći na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org].',
 93+ 'widgets-error' => 'Greška u [[{{ns:widget}}:$1|widgetu $1]]',
 94+ 'group-widgeteditor' => 'Uređivači dodataka',
 95+ 'group-widgeteditor-member' => 'Uređivač dodataka',
 96+ 'grouppage-widgeteditor' => 'Project:Uređivač dodataka',
 97+ 'right-editwidgets' => 'Pravljenje i uređivanje [http://www.mediawiki.org/wiki/Extension:Widgets widgeta] u imenskom prostoru <tt>{{ns:widget}}</tt>',
 98+);
 99+
 100+/** Catalan (Català)
 101+ * @author Paucabot
 102+ */
 103+$messages['ca'] = array(
 104+ 'right-editwidgets' => "Creeu i editeu [http://www.mediawiki.org/wiki/Extension:Widgets ginys] a l'espai de noms <tt>{{ns:widget}}</tt>",
 105+);
 106+
 107+/** Czech (Česky)
 108+ * @author Kuvaly
 109+ * @author Matěj Grabovský
 110+ * @author Mormegil
 111+ * @author Reaperman
 112+ */
 113+$messages['cs'] = array(
 114+ 'widgets-desc' => 'Umožňuje správcům wiki přidávat na wiki ovládací prvky úpravou stránek ve jmenném prostoru {{ns:widget}}.
 115+Prvky vytvořené komunitou lze nalézt na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 116+ 'widgets-error' => 'Chyba ve [[{{ns:widget}}:$1|widgetu $1]]',
 117+ 'group-widgeteditor' => 'Editoři ovládacích prvků',
 118+ 'group-widgeteditor-member' => 'editor ovládacích prvků',
 119+ 'grouppage-widgeteditor' => 'Project:Editoři ovládacích prvků',
 120+ 'right-editwidgets' => 'Tvorba a úprava stránek [http://www.mediawiki.org/wiki/Extension:Widgets ovládacích prvků] ve jmenném prostoru <tt>{{ns:widget}}</tt>',
 121+);
 122+
 123+/** German (Deutsch)
 124+ * @author Jan Luca
 125+ * @author Kghbln
 126+ * @author Pill
 127+ * @author Sebastian Wallroth
 128+ * @author The Evil IP address
 129+ * @author Umherirrender
 130+ */
 131+$messages['de'] = array(
 132+ 'widgets-desc' => 'Ermöglicht Administratoren das Hinzufügen von Freiformat-Widgets durch das Bearbeiten von Seiten im {{ns:widget}}-Namensraum.
 133+Von der Gemeinschaft erstellte Widgets können unter [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] gefunden werden',
 134+ 'widgets-error' => 'Fehler im [[{{ns:widget}}:$1|Widget $1]]',
 135+ 'group-widgeteditor' => 'Widget-Bearbeiter',
 136+ 'group-widgeteditor-member' => 'Widget-Bearbeiter',
 137+ 'grouppage-widgeteditor' => 'Project:Widget-Bearbeiter',
 138+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets Widgets] im <tt>{{ns:widget}}</tt>-Namensraum bearbeiten und erstellen',
 139+);
 140+
 141+/** Lower Sorbian (Dolnoserbski)
 142+ * @author Michawiki
 143+ */
 144+$messages['dsb'] = array(
 145+ 'widgets-desc' => 'Dowólujo wikijowym administratoram wikijeju pśez wobźěłowanje w mjenjowem rumje {{ns:widget}} swójske miniprogramy pśidaś.
 146+Miniprogramy, kótarež su se napórali wót zromaźeństwa, móžoš na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] namakaś.',
 147+ 'widgets-error' => 'Zmólka w [[{{ns:widget}}:$1|miniprogramje $1]]',
 148+ 'group-widgeteditor' => 'Wobźěłowarje miniprogramow',
 149+ 'group-widgeteditor-member' => 'Wobźěłowaŕ miniprogramow',
 150+ 'grouppage-widgeteditor' => 'Project: Wobźěłowarje miniprogramow',
 151+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets Woknowe elementy] w mjenjowem rumje <tt>{{ns:widget}}</tt> napóraś a wobźěłaś',
 152+);
 153+
 154+/** Greek (Ελληνικά)
 155+ * @author Lou
 156+ * @author Omnipaedista
 157+ * @author ZaDiak
 158+ */
 159+$messages['el'] = array(
 160+ 'widgets-desc' => 'Επιτρέπει στους βικι-διαχειριστές να προσθέσουν ελεύθερης μορφής γουίτζετ στο βίκι μέσω της επεξεργασίας σελίδων μέσα στον ονοματικό χώρο {{ns:widget}}.
 161+Ανεπτυγμένο αρχικά για το [http://www.ardorado.com Ardorado.com]',
 162+ 'widgets-error' => 'Σφάλμα στο [[{{ns:widget}}:$1|widget $1]]',
 163+ 'group-widgeteditor' => 'Επεξεργαστές Widget',
 164+ 'group-widgeteditor-member' => 'Επεξεργαστής Widget',
 165+ 'grouppage-widgeteditor' => 'Project:Επεξεργαστές Widget',
 166+ 'right-editwidgets' => 'Δημιουργία και επεξεργασία [http://www.mediawiki.org/wiki/Extension:Widgets widgets] στην περιοχή ονομάτων <tt>{{ns:widget}}</tt>',
 167+);
 168+
 169+/** Esperanto (Esperanto)
 170+ * @author Airon90
 171+ */
 172+$messages['eo'] = array(
 173+ 'widgets-error' => 'Eraro en [[{{ns:widget}}:$1|fenestraĵo $1]]',
 174+ 'group-widgeteditor' => 'Fenestraĵaj eldonistoj',
 175+ 'group-widgeteditor-member' => 'Fenestraĵa eldonisto',
 176+ 'grouppage-widgeteditor' => 'Project:Fenestraĵaj eldonistoj',
 177+ 'right-editwidgets' => 'Krei kaj redakti [http://www.mediawiki.org/vikia/Extension:Widgets fenestraĵojn] en la nomspaco <tt>{{ns:widget}}</tt>',
 178+);
 179+
 180+/** Spanish (Español)
 181+ * @author Antur
 182+ * @author Crazymadlover
 183+ * @author Diego Grez
 184+ * @author Peter17
 185+ */
 186+$messages['es'] = array(
 187+ 'widgets-desc' => 'Permite a los administradores agregar widgets a la wiki editando páginas dentro del espacio de nombres {{ns:widget}}.
 188+Widgets desarrollados comunitariamente pueden ser encontrados en [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 189+ 'widgets-error' => 'Error en [[{{ns:widget}}:$1|widget $1]]',
 190+ 'group-widgeteditor' => 'Editores de widget',
 191+ 'group-widgeteditor-member' => 'Editor de widget',
 192+ 'grouppage-widgeteditor' => 'Project:Editores de widget',
 193+ 'right-editwidgets' => 'Crear y editar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] en el espacio de nombre "{{ns:widget}}"',
 194+);
 195+
 196+/** Finnish (Suomi)
 197+ * @author Cimon Avaro
 198+ * @author Crt
 199+ */
 200+$messages['fi'] = array(
 201+ 'widgets-desc' => 'Mahdollistaa wikin ylläpitäjille pienoisohjelmien lisäyksen vapaamuotoisina muokkaamalla sivua nimiavaruudessa {{ns:widget}}.
 202+Alun perin kehitetty [http://www.ardorado.com Ardorado.com]-sivustoa varten.',
 203+ 'widgets-error' => 'Virhe [[{{ns:widget}}:$1|pienoisohjelmassa $1]]',
 204+ 'group-widgeteditor' => 'pienoisohjelmien muokkaajat',
 205+ 'group-widgeteditor-member' => 'pienoisohjelman muokkaaja',
 206+ 'grouppage-widgeteditor' => 'Project:Pienoisohjelmien muokkaajat',
 207+ 'right-editwidgets' => 'Luoda ja muokata [http://www.mediawiki.org/wiki/Extension:Widgets pienoisohjelmia] nimiavaruudessa <tt>{{ns:widget}}</tt>',
 208+);
 209+
 210+/** French (Français)
 211+ * @author IAlex
 212+ * @author Jean-Frédéric
 213+ * @author Urhixidur
 214+ */
 215+$messages['fr'] = array(
 216+ 'widgets-desc' => "Permet aux administrateurs du wiki d'ajouter des ''widgets'' (gadgets logiciels) au wiki en modifiant des pages dans l’espace de noms {{ns:widget}}. Les ''widgets'' proposés par la communauté sont disponibles sur [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 217+ 'widgets-error' => 'Erreur dans le [[{{ns:widget}}:$1|widget $1]]',
 218+ 'group-widgeteditor' => 'Modificateurs de widgets',
 219+ 'group-widgeteditor-member' => 'modificateur de widgets',
 220+ 'grouppage-widgeteditor' => 'Project:Modificateurs de widgets',
 221+ 'right-editwidgets' => 'Créer et modifier les [http://www.mediawiki.org/wiki/Extension:Widgets widgets] dans l’espace de noms « {{ns:widget}} »',
 222+);
 223+
 224+/** Franco-Provençal (Arpetan)
 225+ * @author ChrisPtDe
 226+ */
 227+$messages['frp'] = array(
 228+ 'widgets-error' => 'Èrror dens lo [[{{ns:widget}}:$1|vouidgèt $1]]',
 229+ 'group-widgeteditor' => 'Changiors de vouidgèts',
 230+ 'group-widgeteditor-member' => 'Changior de vouidgèts',
 231+ 'grouppage-widgeteditor' => 'Project:Changiors de vouidgèts',
 232+ 'right-editwidgets' => 'Fâre et changiér los [http://www.mediawiki.org/wiki/Extension:Widgets vouidgèts] dens l’èspâço de noms « {{ns:widget}} »',
 233+);
 234+
 235+/** Galician (Galego)
 236+ * @author Toliño
 237+ */
 238+$messages['gl'] = array(
 239+ 'widgets-desc' => 'Permite aos administradores do wiki engadir widgets ao editar páxinas no espazo de nomes "{{ns:widget}}".
 240+Pódense atopar os widgets desenvolvidos para a comunidade en [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 241+ 'widgets-error' => 'Erro no [[{{ns:widget}}:$1|widget "$1"]]',
 242+ 'group-widgeteditor' => 'Editores de widgets',
 243+ 'group-widgeteditor-member' => 'Editor de widgets',
 244+ 'grouppage-widgeteditor' => 'Project:Editores de widgets',
 245+ 'right-editwidgets' => 'Crear e editar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] no espazo de nomes <tt>{{ns:widget}}</tt>',
 246+);
 247+
 248+/** Swiss German (Alemannisch)
 249+ * @author Als-Holder
 250+ */
 251+$messages['gsw'] = array(
 252+ 'widgets-desc' => 'Erlaubt Wikiadministratore Frej-Form-Widgets zum Wiki zuezfiege dur d Bearbeitig vu Syte im {{ns:widget}}-Namensruum.
 253+Vu dr Gmeinschaft aagleiti Widgets chenne unter [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] gfunde wäre.',
 254+ 'widgets-error' => 'Fähler im [[{{ns:widget}}:$1|Widget $1]]',
 255+ 'group-widgeteditor' => 'Widget-Editore',
 256+ 'group-widgeteditor-member' => 'Widget-Editor',
 257+ 'grouppage-widgeteditor' => 'Project:Widget-Editore',
 258+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets Widgets] im <tt>{{ns:widget}}</tt>-Namensruum aalege un bearbeite',
 259+);
 260+
 261+/** Hebrew (עברית)
 262+ * @author Rotemliss
 263+ * @author YaronSh
 264+ */
 265+$messages['he'] = array(
 266+ 'widgets-desc' => "מתן האפשרות למנהלי אתר הוויקי להוסיף וידג'טים הבנויים בצורה חופשית לאתר הוויקי באמצעות עריכת הדפים שבמרחב השם {{ns:widget}}.
 267+פותח במקור עבור [http://www.ardorado.com Ardorado.com]",
 268+ 'widgets-error' => "שגיאה ב[[{{ns:widget}}:$1|ווידג'ט $1]]",
 269+ 'group-widgeteditor' => "עורכי וידג'טים",
 270+ 'group-widgeteditor-member' => "עורך וידג'טים",
 271+ 'grouppage-widgeteditor' => "Project:עורכי וידג'טים",
 272+ 'right-editwidgets' => 'עריכת דפים במרחב השם "{{ns:widget}}"',
 273+);
 274+
 275+/** Upper Sorbian (Hornjoserbsce)
 276+ * @author Michawiki
 277+ */
 278+$messages['hsb'] = array(
 279+ 'widgets-desc' => '↓ Dowola wikijowym administratoram wikijej přez wobdźěłowanje stronow znutřka mjenjoweho ruma {{ns:widget}} swójske miniprogramy přidać.
 280+Wot zhromadźenstwa wutowrjene miniprogramy móžeš na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] namakać.',
 281+ 'widgets-error' => 'Zmylk w [[{{ns:widget}}:$1|miniprogramje $1]]',
 282+ 'group-widgeteditor' => 'Wobdźěłowarjo miniprogramow',
 283+ 'group-widgeteditor-member' => 'Wobdźěłowar miniprogramow',
 284+ 'grouppage-widgeteditor' => 'Project:Wobdźěłowarjo miniprogramow',
 285+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets Woknowe elementy] w mjenowym rumje <tt>{{ns:widget}}</tt> wutworić a wobdźěłać',
 286+);
 287+
 288+/** Hungarian (Magyar)
 289+ * @author Glanthor Reviol
 290+ */
 291+$messages['hu'] = array(
 292+ 'widgets-desc' => 'Lehetővé teszi a wiki adminisztrátorainak, hogy kötetlen alakú minialkalmazásokat adjanak a wikihez lapok szerkesztésével a(z) {{ns:widget}} névtérben. Eredetileg az [http://www.ardorado.com Ardorado.com] számára kifejlesztve',
 293+ 'widgets-error' => 'Hiba a(z) [[{{ns:widget}}:$1|$1 minialkalmazásban]]',
 294+ 'group-widgeteditor' => 'Minialkalmazás szerkesztői',
 295+ 'group-widgeteditor-member' => 'Minialkalmazás-szerkesztő',
 296+ 'grouppage-widgeteditor' => 'Project:Minialkalmazás-szerkesztők',
 297+ 'right-editwidgets' => 'widgetek létrehozása és szerkesztése a <tt>{{ns:widget}}</tt> névtérben',
 298+);
 299+
 300+/** Interlingua (Interlingua)
 301+ * @author McDutchie
 302+ */
 303+$messages['ia'] = array(
 304+ 'widgets-desc' => 'Permitte al administratores del wiki inserer widgets qualcunque in le wiki, per modificar paginas intra le spatio de nomines {{ns:widget}}.
 305+Le widgets contribuite per le communitate se trova a [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 306+ 'widgets-error' => 'Error in [[{{ns:widget}}:$1|widget $1]]',
 307+ 'group-widgeteditor' => 'Modificatores de widgets',
 308+ 'group-widgeteditor-member' => 'Modificator de widgets',
 309+ 'grouppage-widgeteditor' => 'Project:Modificatores de widgets',
 310+ 'right-editwidgets' => 'Crear e modificar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] in le spatio de nomines <tt>{{ns:widget}}</tt>',
 311+);
 312+
 313+/** Indonesian (Bahasa Indonesia)
 314+ * @author Bennylin
 315+ * @author Irwangatot
 316+ */
 317+$messages['id'] = array(
 318+ 'widgets-desc' => 'Mengijinkan pengurus wiki untuk menambahkan formulir bebas widget ke wiki dengan menyunting halaman di ruang nama {{ns:widget}}.
 319+komunitas kontribusi widgets dapat di temuai pada [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 320+ 'widgets-error' => 'Kesalahan pada [[{{ns:widget}}:$1|widget $1]]',
 321+ 'group-widgeteditor' => 'Penyunting widget',
 322+ 'group-widgeteditor-member' => 'Penyunting widget',
 323+ 'grouppage-widgeteditor' => 'Project:Penyunting widget',
 324+ 'right-editwidgets' => 'Buat dan Sunting halaman [http://www.mediawiki.org/wiki/Extension:Widgets widgets] di <tt>{{ns:widget}}</tt> ruang nama',
 325+);
 326+
 327+/** Italian (Italiano)
 328+ * @author Beta16
 329+ * @author Civvì
 330+ * @author Darth Kule
 331+ */
 332+$messages['it'] = array(
 333+ 'widgets-desc' => 'Permette agli amministratori del sito di aggiungere widget liberi al sito modificando pagine nel namespace {{ns:widget}}.
 334+Widget creati dalla comunità possono essere trovati su [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 335+ 'widgets-error' => 'Errore nel [[{{ns:widget}}:$1|widget $1]]',
 336+ 'group-widgeteditor' => 'Editori widget',
 337+ 'group-widgeteditor-member' => 'Editore widget',
 338+ 'grouppage-widgeteditor' => 'Project:Editori widget',
 339+ 'right-editwidgets' => 'Crea e modifica [http://www.mediawiki.org/wiki/Extension:Widgets widget] nel namespace <tt>{{ns:widget}}</tt>',
 340+);
 341+
 342+/** Japanese (日本語)
 343+ * @author Fryed-peach
 344+ * @author Iwai.masaharu
 345+ * @author 青子守歌
 346+ */
 347+$messages['ja'] = array(
 348+ 'widgets-desc' => '管理者が「{{ns:widget}}」名前空間内のページを編集し、ウィキに自由な形式のウィジェットを追加できるようにする。
 349+コミュニティから提供されているウィジェットは [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] にあります。',
 350+ 'widgets-error' => '[[{{ns:widget}}:$1|ウィジェット $1]]にエラー',
 351+ 'group-widgeteditor' => 'ウィジェット編集者',
 352+ 'group-widgeteditor-member' => 'ウィジェット編集者',
 353+ 'grouppage-widgeteditor' => 'Project:ウィジェット編集者',
 354+ 'right-editwidgets' => '<tt>{{ns:widget}}</tt>名前空間で[http://www.mediawiki.org/wiki/Extension:Widgets ウィジット]を作成または編集する',
 355+);
 356+
 357+/** Colognian (Ripoarisch)
 358+ * @author Purodha
 359+ */
 360+$messages['ksh'] = array(
 361+ 'widgets-desc' => 'Määt et müjjelesch, dat Wiki-Köbeße <i lang="en">Widgets</i> en ene freie Forrem en däm Appachtemang „{{ns:widget}}“ enndraare.
 362+Divärse Lück han ehr <i lang="en">Widgets</i> op <i lang="en">[http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]</i> öffentlesch jemaat.',
 363+ 'widgets-error' => 'Doh es ene Fähler em [[{{ns:widget}}:$1|<i lang="en">Widget</i> $1]]',
 364+ 'group-widgeteditor' => 'Schriiver för <i lang="en">Widgets</i>',
 365+ 'group-widgeteditor-member' => '<i lang="en">Widget</i>-Schriiver',
 366+ 'grouppage-widgeteditor' => 'Project:Widget-Schriiver',
 367+ 'right-editwidgets' => 'Sigge, alsu <i lang="en">[http://www.mediawiki.org/wiki/Extension:Widgets Widgets]</i>, em Appachemang „{{ns:widget}}“ ändere udder aanlääje',
 368+);
 369+
 370+/** Luxembourgish (Lëtzebuergesch)
 371+ * @author Robby
 372+ */
 373+$messages['lb'] = array(
 374+ 'widgets-error' => 'Feeler an [[{{ns:widget}}:$1|widget $1]]',
 375+ 'group-widgeteditor' => 'Widget-Editeuren',
 376+ 'group-widgeteditor-member' => 'Widget-Editeur',
 377+ 'grouppage-widgeteditor' => 'Project:Widget Editeuren',
 378+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets widgets] am <tt>{{ns:widget}}</tt> Nummraum uleeën an änneren',
 379+);
 380+
 381+/** Macedonian (Македонски)
 382+ * @author Bjankuloski06
 383+ */
 384+$messages['mk'] = array(
 385+ 'widgets-desc' => 'Им овозможува на администраторите да додаваат посреднички елементи со уредување на страници во именскиот простор {{ns:widget}}.
 386+Елементи изработени од учесници од заедницата можете да најдете на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 387+ 'widgets-error' => 'Грешка во [[{{ns:widget}}:$1|посредничкиот елемент $1]]',
 388+ 'group-widgeteditor' => 'Уредници на посреднички елементи',
 389+ 'group-widgeteditor-member' => 'Уредник на посреднички елементи',
 390+ 'grouppage-widgeteditor' => 'Project:Уредници на посреднички елементи',
 391+ 'right-editwidgets' => 'Создавање и уредување на [http://www.mediawiki.org/wiki/Extension:Widgets направи] во именскиот простор <tt>{{ns:widget}}</tt>',
 392+);
 393+
 394+/** Dutch (Nederlands)
 395+ * @author Siebrand
 396+ */
 397+$messages['nl'] = array(
 398+ 'widgets-desc' => "Stelt wikibeheerders in staat naar eigen inzicht widgets aan de wiki toe te voegen door het bewerken van pagina's in de naamruimte {{ns:widget}}.
 399+Door de gemeenschap ontwikkelde widgets zijn te vinden op [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 400+ 'widgets-error' => 'Fout in [[{{ns:widget}}:$1|widget $1]]',
 401+ 'group-widgeteditor' => 'Widgetbewerkers',
 402+ 'group-widgeteditor-member' => 'Widgetbewerker',
 403+ 'grouppage-widgeteditor' => 'Project:Widgetbewerkers',
 404+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets Widgets] aanmaken en bewerken in de naamruimte <tt>{{ns:widget}}</tt>',
 405+);
 406+
 407+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
 408+ * @author Harald Khan
 409+ */
 410+$messages['nn'] = array(
 411+ 'right-editwidgets' => 'Endra sider i «{{ns:widget}}»-namnerommet',
 412+);
 413+
 414+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
 415+ * @author Nghtwlkr
 416+ */
 417+$messages['no'] = array(
 418+ 'widgets-desc' => 'Tillater wikiadministratorer å legge til fri-form skjermelement til wikien ved å redigere siden innen {{ns:widget}}-navnerommet.
 419+Fellesskaps-bidratte skjermelement kan finnes på [http://mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 420+ 'widgets-error' => 'Feil i [[{{ns:widget}}:$1|skjermelement $1]]',
 421+ 'group-widgeteditor' => 'Bidragsytere for skjermelement',
 422+ 'group-widgeteditor-member' => 'Bidragsyter for skjermelement',
 423+ 'grouppage-widgeteditor' => 'Project:Bidragsytere for skjermelement',
 424+ 'right-editwidgets' => 'Lag og rediger [http://www.mediawiki.org/wiki/Extension:Widgets skjermelement] i <tt>{{ns:widget}}</tt>-navnerommet',
 425+);
 426+
 427+/** Occitan (Occitan)
 428+ * @author Cedric31
 429+ */
 430+$messages['oc'] = array(
 431+ 'widgets-desc' => "Permet als administrators del wiki d'apondre de widgets al wiki en modificant de paginas dins l'espac de noms {{ns:widget}}. Desvolopat a la basa per [http://www.ardorado.com Ardorado.com]",
 432+ 'widgets-error' => 'Error dins lo [[{{ns:widget}}:$1|widget $1]]',
 433+ 'group-widgeteditor' => 'Modificators de widgets',
 434+ 'group-widgeteditor-member' => 'modificator de widgets',
 435+ 'grouppage-widgeteditor' => 'Project:Modificators de widgets',
 436+ 'right-editwidgets' => "Crear e modificar las [http://www.mediawiki.org/wiki/Extension:Widgets widgets] dins l'espaci de noms « {{ns:widget}} »",
 437+);
 438+
 439+/** Polish (Polski)
 440+ * @author Sp5uhe
 441+ * @author ToSter
 442+ */
 443+$messages['pl'] = array(
 444+ 'widgets-desc' => 'Pozwala administratorom wiki na dodawanie widżetów w dowolnej formie do wiki poprzez edycję stron w przestrzeni nazw {{ns:widget}}.
 445+Widżety stworzone przez społeczność można odnaleźć na stronie [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 446+ 'widgets-error' => 'Błąd w [[{{ns:widget}}:$1|widżecie $1]]',
 447+ 'group-widgeteditor' => 'Edytorzy widżetów',
 448+ 'group-widgeteditor-member' => 'Edytor widżetów',
 449+ 'grouppage-widgeteditor' => 'Project:Edytorzy widżetów',
 450+ 'right-editwidgets' => 'Tworzenie i edycja [http://www.mediawiki.org/wiki/Extension:Widgets widżetów] w przestrzeni nazw <tt>{{ns:widget}}</tt>',
 451+);
 452+
 453+/** Piedmontese (Piemontèis)
 454+ * @author Borichèt
 455+ * @author Dragonòt
 456+ */
 457+$messages['pms'] = array(
 458+ 'widgets-desc' => "A përmët a j'aministrator dla wiki ëd gionté ëd widget a forma lìbera a la wiki an modificand dle pàgine ant lë spassi nominal {{ns:widget}}.
 459+Dij widget creà da la comunità a peulo esse trovà su [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 460+ 'widgets-error' => 'Eror an [[{{ns:widget}}:$1|widget $1]]',
 461+ 'group-widgeteditor' => 'Editor ëd widget',
 462+ 'group-widgeteditor-member' => 'Editor ëd widget',
 463+ 'grouppage-widgeteditor' => 'Project:Editor ëd widget',
 464+ 'right-editwidgets' => 'Crea e modìfica [http://www.mediawiki.org/wiki/Extension:Widgets widgets] ant lë spassi nominal <tt>{{ns:widget}}</tt>',
 465+);
 466+
 467+/** Portuguese (Português)
 468+ * @author Hamilton Abreu
 469+ */
 470+$messages['pt'] = array(
 471+ 'widgets-desc' => "Permite que os administradores da wiki adicionem ''widgets free-form'' à wiki, editando páginas no espaço nominal {{ns:widget}}.
 472+Widgets fornecidos pela comunidade podem ser encontrados na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 473+ 'widgets-error' => "Erro no [[{{ns:widget}}:$1|''widget'' $1]]",
 474+ 'group-widgeteditor' => "Editores de ''widgets''",
 475+ 'group-widgeteditor-member' => "Editor de ''widgets''",
 476+ 'grouppage-widgeteditor' => "Project:Editores de ''widgets''",
 477+ 'right-editwidgets' => 'Criar e editar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] no espaço nominal <tt>{{ns:widget}}</tt>',
 478+);
 479+
 480+/** Brazilian Portuguese (Português do Brasil)
 481+ * @author Eduardo.mps
 482+ * @author Giro720
 483+ * @author Heldergeovane
 484+ */
 485+$messages['pt-br'] = array(
 486+ 'widgets-desc' => "Permite que os administradores da wiki adicionem ''widgets free-form'' à wiki, editando páginas no espaço nominal {{ns:widget}}.
 487+Widgets fornecidos pela comunidade podem ser encontrados na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 488+ 'widgets-error' => 'Erro em [[{{ns:widget}}:$1|widget $1]]',
 489+ 'group-widgeteditor' => 'Editores de widget',
 490+ 'group-widgeteditor-member' => 'Editor de widget',
 491+ 'grouppage-widgeteditor' => 'Project:Editores de widget',
 492+ 'right-editwidgets' => 'Criar e editar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] no espaço nominal <tt>{{ns:widget}}</tt>',
 493+);
 494+
 495+/** Tarandíne (Tarandíne)
 496+ * @author Joetaras
 497+ */
 498+$messages['roa-tara'] = array(
 499+ 'widgets-error' => "Errore jndr'à [[{{ns:widget}}:$1|widget $1]]",
 500+);
 501+
 502+/** Russian (Русский)
 503+ * @author G0rn
 504+ * @author Александр Сигачёв
 505+ */
 506+$messages['ru'] = array(
 507+ 'widgets-desc' => 'Позволяет администраторам вики добавлять различные виджеты, посредством редактирования страниц пространства имён {{ns:widget}}. Поддерживаемые сообществом виджеты можно найти на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org].',
 508+ 'widgets-error' => 'Ошибка в [[{{ns:widget}}:$1|виджете $1]]',
 509+ 'group-widgeteditor' => 'Редакторы виджетов',
 510+ 'group-widgeteditor-member' => 'Редактор виджетов',
 511+ 'grouppage-widgeteditor' => 'Project:Редакторы виджетов',
 512+ 'right-editwidgets' => 'создавать и редактировать [http://www.mediawiki.org/wiki/Extension:Widgets виджеты] страницы в пространстве имён <tt>{{ns:widget}}</tt>',
 513+);
 514+
 515+/** Slovak (Slovenčina)
 516+ * @author Helix84
 517+ */
 518+$messages['sk'] = array(
 519+ 'widgets-desc' => 'Umožňuje správcom wiki pridávať ovládacie prvky na wiki úpravou stránky v mennom priestore {{ns:widget}}.
 520+Pôvodne vyvinuté pre [http://www.ardorado.com Ardorado.com]',
 521+ 'widgets-error' => 'Chyba v [[{{ns:widget}}:$1|ovládacom prvku $1]]',
 522+ 'group-widgeteditor' => 'Editori ovládacích prvkov',
 523+ 'group-widgeteditor-member' => 'Editor ovládacích prvkov',
 524+ 'grouppage-widgeteditor' => 'Project:Editori ovládacích prvkov',
 525+ 'right-editwidgets' => 'upravovať stránky v mennom priestore „{{ns:widget}}“',
 526+);
 527+
 528+/** Swedish (Svenska)
 529+ * @author Ozp
 530+ * @author Per
 531+ */
 532+$messages['sv'] = array(
 533+ 'widgets-error' => 'Fel i [[{{ns:widget}}:$1|widget $1]]',
 534+ 'group-widgeteditor' => 'Widgeteditorer',
 535+);
 536+
 537+/** Telugu (తెలుగు)
 538+ * @author Ravichandra
 539+ */
 540+$messages['te'] = array(
 541+ 'group-widgeteditor' => 'విడ్జెట్ ఎడిటర్లు',
 542+ 'group-widgeteditor-member' => 'విడ్జెట్ ఎడిటర్',
 543+);
 544+
 545+/** Tagalog (Tagalog)
 546+ * @author AnakngAraw
 547+ */
 548+$messages['tl'] = array(
 549+ 'widgets-desc' => 'Nagpapahintulot sa mga tagapangasiwa ng wiki na makapagdagdag ng may malayang anyong mga widyet sa wiki sa pamamagitan ng pagbago sa mga pahinang nasa loob ng puwang pampangalan na {{ns:widget}}.
 550+Ang mga widyet na inambag ng pamayan ay matatagpuan sa [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 551+ 'widgets-error' => 'Kamalian sa loob ng [[{{ns:widget}}:$1|widyet na $1]]',
 552+ 'group-widgeteditor' => 'Mga patnugot ng widyet',
 553+ 'group-widgeteditor-member' => 'Patnugot ng widyet',
 554+ 'grouppage-widgeteditor' => 'Project:Mga patnugot ng widyet',
 555+ 'right-editwidgets' => 'Lumikha at baguhin ang [http://www.mediawiki.org/wiki/Extension:Widgets mga widyet] sa loob ng puwang na pampangalan ng <tt>{{ns:widget}}</tt>',
 556+);
 557+
 558+/** Ukrainian (Українська)
 559+ * @author Prima klasy4na
 560+ * @author Тест
 561+ */
 562+$messages['uk'] = array(
 563+ 'widgets-desc' => 'Дозволяє адміністраторам вікі додавати різноманітні віджети шляхом редагування сторінок простору назв {{ns:widget}}.
 564+Підтримувані спільнотою віджети можна знайти на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 565+ 'widgets-error' => 'Помилка [[{{ns:widget}}:$1|віджету $1]]',
 566+ 'group-widgeteditor' => 'Редактори віджетів',
 567+ 'group-widgeteditor-member' => 'Редактор віджетів',
 568+ 'grouppage-widgeteditor' => 'Project:Редактори віджетів',
 569+ 'right-editwidgets' => 'Створювати і редагувати [http://www.mediawiki.org/wiki/Extension:Widgets віджети] у просторі назв <tt>{{ns:widget}}</tt>',
 570+);
 571+
 572+/** Vietnamese (Tiếng Việt)
 573+ * @author Minh Nguyen
 574+ */
 575+$messages['vi'] = array(
 576+ 'widgets-desc' => 'Cho phép các quản lý viên wiki thêm công cụ đa năng vào wiki bằng cách sửa đổi trang trong không gian tên {{ns:widget}}.
 577+Có thể lấy thêm công cụ đa năng do cộng đồng đóng góp tại [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org].',
 578+ 'widgets-error' => 'Lỗi trong [[{{ns:widget}}:$1|công cụ đa năng $1]]',
 579+ 'group-widgeteditor' => 'Người sửa công cụ đa năng',
 580+ 'group-widgeteditor-member' => 'Người sửa công cụ đa năng',
 581+ 'grouppage-widgeteditor' => 'Project:Người sửa công cụ đa năng',
 582+ 'right-editwidgets' => 'Tạo và sửa [http://www.mediawiki.org/wiki/Extension:Widgets?uselang=vi công cụ đa năng] trong không gian tên <tt>{{ns:widget}}</tt>',
 583+);
 584+
 585+/** Cantonese (粵語) */
 586+$messages['yue'] = array(
 587+ 'widgets-desc' => '容許wiki管理員響{{ns:widget}}空間名度加入自由形式嘅widget響個wiki度。
 588+原先為[http://www.ardorado.com Ardorado.com]而設計嘅',
 589+ 'widgets-error' => '響[[{{ns:widget}}:$1|widget $1]]出錯',
 590+ 'group-widgeteditor' => 'Widget編輯器',
 591+ 'group-widgeteditor-member' => 'Widget編輯器',
 592+ 'grouppage-widgeteditor' => 'Project:Widget編輯器',
 593+ 'right-editwidgets' => '響"{{ns:widget}}"空間名度編輯頁',
 594+);
 595+
 596+/** Simplified Chinese (‪中文(简体)‬)
 597+ * @author Xiaomingyan
 598+ */
 599+$messages['zh-hans'] = array(
 600+ 'widgets-desc' => '允许wiki管理员通过编辑{{ns:widget}}名称空间中的页面以添加自由形式的小工具至wiki。
 601+[http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]提供社区贡献的小工具',
 602+ 'widgets-error' => '[[{{ns:widget}}:$1|小工具$1]]出错',
 603+ 'group-widgeteditor' => '小工具编辑器',
 604+ 'group-widgeteditor-member' => '小工具编辑器',
 605+ 'grouppage-widgeteditor' => 'Project:小工具编辑器',
 606+ 'right-editwidgets' => '创建并编辑<tt>{{ns:widget}}</tt>名称空间中的[http://www.mediawiki.org/wiki/Extension:Widgets 小工具]',
 607+);
 608+
 609+/** Traditional Chinese (‪中文(繁體)‬) */
 610+$messages['zh-hant'] = array(
 611+ 'widgets-desc' => '容許wiki管理員在{{ns:widget}}名字空間中加入自由形式的widget至wiki中。
 612+原先為[http://www.ardorado.com Ardorado.com]設計',
 613+ 'widgets-error' => '在[[{{ns:widget}}:$1|widget $1]]發生錯誤',
 614+ 'group-widgeteditor' => 'Widget編輯器',
 615+ 'group-widgeteditor-member' => 'Widget編輯器',
 616+ 'grouppage-widgeteditor' => 'Project:Widget編輯器',
 617+ 'right-editwidgets' => '在"{{ns:widget}}"名字空間中編輯頁面',
 618+);
 619+
Property changes on: tags/extensions/Widgets/REL_0_9_1/Widgets.i18n.php
___________________________________________________________________
Added: svn:eol-style
1620 + native
Index: tags/extensions/Widgets/REL_0_9_1/compiled_templates/.htaccess
@@ -0,0 +1,3 @@
 2+<Files *.php>
 3+ deny from all
 4+</Files>
Property changes on: tags/extensions/Widgets/REL_0_9_1/compiled_templates/.htaccess
___________________________________________________________________
Added: svn:eol-style
15 + native
Property changes on: tags/extensions/Widgets/REL_0_9_1/compiled_templates
___________________________________________________________________
Added: svn:ignore
26 + *
Index: tags/extensions/Widgets/REL_0_9_1/Widgets.php
@@ -0,0 +1,105 @@
 2+<?php
 3+/**
 4+ *
 5+ * {{#widget:<WidgetName>|<name1>=<value1>|<name2>=<value2>}}
 6+ *
 7+ * @author Sergey Chernyshev
 8+ * @version $Id: Widgets.php 15 2008-06-25 21:22:40Z sergey.chernyshev $
 9+ */
 10+
 11+if ( !defined( 'MEDIAWIKI' ) ) {
 12+ echo "This file is not a valid entry point.";
 13+ exit( 1 );
 14+}
 15+
 16+$wgExtensionCredits['parserhook'][] = array(
 17+ 'path' => __FILE__,
 18+ 'name' => 'Widgets',
 19+ 'descriptionmsg' => 'widgets-desc',
 20+ 'version' => '0.9.1',
 21+ 'author' => '[http://www.sergeychernyshev.com Sergey Chernyshev]',
 22+ 'url' => 'http://www.mediawiki.org/wiki/Extension:Widgets'
 23+);
 24+
 25+/**
 26+ * Set this to the index of the Widget namespace
 27+ */
 28+if ( !defined( 'NS_WIDGET' ) ) {
 29+ define( 'NS_WIDGET', 274 );
 30+}
 31+if ( !defined( 'NS_WIDGET_TALK' ) ) {
 32+ define( 'NS_WIDGET_TALK', NS_WIDGET + 1 );
 33+} elseif ( NS_WIDGET_TALK != NS_WIDGET + 1 ) {
 34+ throw new MWException( 'Configuration error. Do not define NS_WIDGET_TALK, it is automatically set based on NS_WIDGET.' );
 35+}
 36+
 37+// Define new namespaces
 38+$wgExtraNamespaces[NS_WIDGET] = 'Widget';
 39+$wgExtraNamespaces[NS_WIDGET_TALK] = 'Widget_talk';
 40+
 41+// Support subpages only for talk pages by default
 42+$wgNamespacesWithSubpages[NS_WIDGET_TALK] = true;
 43+
 44+// Define new right
 45+$wgAvailableRights[] = 'editwidgets';
 46+
 47+// Set this to true to use FlaggedRevs extension's stable version for widget security
 48+$wgWidgetsUseFlaggedRevs = false;
 49+
 50+$dir = dirname( __FILE__ ) . '/';
 51+
 52+// Initialize Smarty
 53+require_once( $dir . 'smarty/Smarty.class.php' );
 54+$wgExtensionMessagesFiles['Widgets'] = $dir . 'Widgets.i18n.php';
 55+$wgAutoloadClasses['WidgetRenderer'] = $dir . 'WidgetRenderer.php';
 56+
 57+if( defined('MW_SUPPORTS_LOCALISATIONCACHE') ) {
 58+ $wgExtensionMessagesFiles['WidgetsMagic'] = $dir . 'Widgets.i18n.magic.php';
 59+} else {
 60+ // Pre 1.16alpha backward compatibility for magic words
 61+ $wgHooks['LanguageGetMagic'][] = 'widgetLanguageGetMagic';
 62+}
 63+
 64+function widgetLanguageGetMagic( &$magicWords, $langCode = 'en' ) {
 65+ switch ( $langCode ) {
 66+ default:
 67+ $magicWords['widget'] = array ( 0, 'widget' );
 68+ }
 69+ return true;
 70+}
 71+
 72+// Parser function registration
 73+$wgExtensionFunctions[] = 'widgetNamespacesInit';
 74+$wgHooks['ParserFirstCallInit'][] = 'widgetParserFunctions';
 75+$wgHooks['ParserAfterTidy'][] = 'processEncodedWidgetOutput';
 76+
 77+function widgetParserFunctions( &$parser ) {
 78+ $parser->setFunctionHook( 'widget', array( 'WidgetRenderer', 'renderWidget' ) );
 79+
 80+ return true;
 81+}
 82+
 83+function processEncodedWidgetOutput( &$out, &$text ) {
 84+ // Find all hidden content and restore to normal
 85+ $text = preg_replace(
 86+ '/ENCODED_CONTENT ([0-9a-zA-Z\/+]+=*)* END_ENCODED_CONTENT/esm',
 87+ 'base64_decode("$1")',
 88+ $text
 89+ );
 90+
 91+ return true;
 92+}
 93+
 94+function widgetNamespacesInit() {
 95+ global $wgGroupPermissions, $wgNamespaceProtection, $wgWidgetsUseFlaggedRevs;
 96+
 97+ if (!$wgWidgetsUseFlaggedRevs)
 98+ {
 99+ // Assign editing to widgeteditor group only (widgets can be dangerous so we do it here, not in LocalSettings)
 100+ $wgGroupPermissions['*']['editwidgets'] = false;
 101+ $wgGroupPermissions['widgeteditor']['editwidgets'] = true;
 102+
 103+ // Setting required namespace permission rights
 104+ $wgNamespaceProtection[NS_WIDGET] = array( 'editwidgets' );
 105+ }
 106+}
Property changes on: tags/extensions/Widgets/REL_0_9_1/Widgets.php
___________________________________________________________________
Added: svn:eol-style
1107 + native
Index: tags/extensions/Widgets/REL_0_9_1/Makefile
@@ -0,0 +1,29 @@
 2+all:
 3+
 4+rel: release
 5+release:
 6+ifndef v
 7+ # Must specify version as 'v' param
 8+ #
 9+ # make rel v=1.1.1
 10+ #
 11+else
 12+ #
 13+ # Tagging it with release tag
 14+ #
 15+ svn copy . svn+ssh://sergeychernyshev@svn.wikimedia.org/svnroot/mediawiki/tags/extensions/Widgets/REL_${subst .,_,${v}}/
 16+ #
 17+ # Creating release tarball and zip
 18+ #
 19+ svn export http://svn.wikimedia.org/svnroot/mediawiki/tags/extensions/Widgets/REL_${subst .,_,${v}}/ Widgets
 20+ # Not including Makefile into the package since it's not doing anything but release packaging
 21+ rm Widgets/Makefile
 22+ tar -c Widgets |gzip > Widgets_${v}.tgz
 23+ zip -r Widgets_${v}.zip Widgets
 24+ rm -rf Widgets
 25+
 26+ # upload to Google Code repository (need account with enough permissions)
 27+ googlecode/googlecode_upload.py -s "MediaWiki Widgets Extension v${v} (tarball)" -p mediawiki-widgets -l "Featured,Type-Archive,OpSys-All" Widgets_${v}.tgz
 28+ googlecode/googlecode_upload.py -s "MediaWiki Widgets Extension v${v} (zip)" -p mediawiki-widgets -l "Featured,Type-Archive,OpSys-All" Widgets_${v}.zip
 29+ rm Widgets_${v}.tgz Widgets_${v}.zip
 30+endif
Property changes on: tags/extensions/Widgets/REL_0_9_1/Makefile
___________________________________________________________________
Added: svn:eol-style
131 + native
Property changes on: tags/extensions/Widgets/REL_0_9_1
___________________________________________________________________
Added: svn:externals
232 + smarty http://smarty-php.googlecode.com/svn/tags/Smarty_2_6_18/libs/
googlecode http://support.googlecode.com/svn/trunk/scripts/

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r73350Fixed validation comparison for a falsy string (bug 25219)sergeychernyshev23:27, 19 September 2010

Status & tagging log