r80105 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r80104‎ | r80105 | r80106 >
Date:19:04, 12 January 2011
Author:yaron
Status:deferred
Tags:
Comment:
Tag for version 0.9.2
Modified paths:
  • /tags/extensions/Widgets/REL_0_9_2 (added) (history)
  • /tags/extensions/Widgets/REL_0_9_2/Widgets.php (replaced) (history)

Diff [purge]

Index: tags/extensions/Widgets/REL_0_9_2/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+ array('WidgetRenderer', 'wiki_get_template'),
 47+ array('WidgetRenderer', 'wiki_get_timestamp'),
 48+ array('WidgetRenderer', 'wiki_get_secure'),
 49+ array('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_2/WidgetRenderer.php
___________________________________________________________________
Added: svn:eol-style
1195 + native
Index: tags/extensions/Widgets/REL_0_9_2/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_2/smarty_plugins/modifier.validate.php
___________________________________________________________________
Added: svn:eol-style
133 + native
Index: tags/extensions/Widgets/REL_0_9_2/Widgets.i18n.magic.php
@@ -0,0 +1,63 @@
 2+<?php
 3+
 4+$magicWords = array();
 5+
 6+/** English (English) */
 7+$magicWords['en'] = array(
 8+ 'widget' => array( 0, 'widget' ),
 9+);
 10+
 11+/** Arabic (العربية) */
 12+$magicWords['ar'] = array(
 13+ 'widget' => array( 0, 'ودجة', 'widget' ),
 14+);
 15+
 16+/** Egyptian Spoken Arabic (مصرى) */
 17+$magicWords['arz'] = array(
 18+ 'widget' => array( 0, 'ودجة', 'widget' ),
 19+);
 20+
 21+/** Chechen (Нохчийн) */
 22+$magicWords['ce'] = array(
 23+ 'widget' => array( 0, 'тlехьажар', 'виджет', 'widget' ),
 24+);
 25+
 26+/** Esperanto (Esperanto) */
 27+$magicWords['eo'] = array(
 28+ 'widget' => array( 0, 'fenestraĵo', 'fenestrajxo' ),
 29+);
 30+
 31+/** Japanese (日本語) */
 32+$magicWords['ja'] = array(
 33+ 'widget' => array( 0, 'ウィジェット' ),
 34+);
 35+
 36+/** Korean (한국어) */
 37+$magicWords['ko'] = array(
 38+ 'widget' => array( 0, '위젯' ),
 39+);
 40+
 41+/** Malayalam (മലയാളം) */
 42+$magicWords['ml'] = array(
 43+ 'widget' => array( 0, 'കൂട' ),
 44+);
 45+
 46+/** Marathi (मराठी) */
 47+$magicWords['mr'] = array(
 48+ 'widget' => array( 0, 'विसाधन', 'widget' ),
 49+);
 50+
 51+/** Russian (Русский) */
 52+$magicWords['ru'] = array(
 53+ 'widget' => array( 0, 'виджет', 'widget' ),
 54+);
 55+
 56+/** Sinhala (සිංහල) */
 57+$magicWords['si'] = array(
 58+ 'widget' => array( 0, 'ගැජට්', 'widget' ),
 59+);
 60+
 61+/** Vietnamese (Tiếng Việt) */
 62+$magicWords['vi'] = array(
 63+ 'widget' => array( 0, 'côngcụđanăng' ),
 64+);
\ No newline at end of file
Property changes on: tags/extensions/Widgets/REL_0_9_2/Widgets.i18n.magic.php
___________________________________________________________________
Added: svn:keywords
165 + Id
Added: svn:eol-style
266 + native
Index: tags/extensions/Widgets/REL_0_9_2/Widgets.i18n.php
@@ -0,0 +1,619 @@
 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+ * @author Nike
 200+ */
 201+$messages['fi'] = array(
 202+ 'widgets-desc' => 'Mahdollistaa wikin ylläpitäjille vapaamuotoisten pienoisohjelmien lisäämisen sivua nimiavaruudessa {{ns:widget}} muokkaamalla.
 203+Yhteisön tekemiä pienoisohjelmia löytyy osoitteesta [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org].',
 204+ 'widgets-error' => 'Virhe [[{{ns:widget}}:$1|pienoisohjelmassa $1]]',
 205+ 'group-widgeteditor' => 'pienoisohjelmien muokkaajat',
 206+ 'group-widgeteditor-member' => 'pienoisohjelman muokkaaja',
 207+ 'grouppage-widgeteditor' => 'Project:Pienoisohjelmien muokkaajat',
 208+ 'right-editwidgets' => 'Luoda ja muokata [http://www.mediawiki.org/wiki/Extension:Widgets pienoisohjelmia] nimiavaruudessa <tt>{{ns:widget}}</tt>',
 209+);
 210+
 211+/** French (Français)
 212+ * @author IAlex
 213+ * @author Jean-Frédéric
 214+ * @author Urhixidur
 215+ */
 216+$messages['fr'] = array(
 217+ '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]",
 218+ 'widgets-error' => 'Erreur dans le [[{{ns:widget}}:$1|widget $1]]',
 219+ 'group-widgeteditor' => 'Modificateurs de widgets',
 220+ 'group-widgeteditor-member' => 'modificateur de widgets',
 221+ 'grouppage-widgeteditor' => 'Project:Modificateurs de widgets',
 222+ 'right-editwidgets' => 'Créer et modifier les [http://www.mediawiki.org/wiki/Extension:Widgets widgets] dans l’espace de noms « {{ns:widget}} »',
 223+);
 224+
 225+/** Franco-Provençal (Arpetan)
 226+ * @author ChrisPtDe
 227+ */
 228+$messages['frp'] = array(
 229+ 'widgets-error' => 'Èrror dens lo [[{{ns:widget}}:$1|vouidgèt $1]]',
 230+ 'group-widgeteditor' => 'Changiors de vouidgèts',
 231+ 'group-widgeteditor-member' => 'Changior de vouidgèts',
 232+ 'grouppage-widgeteditor' => 'Project:Changiors de vouidgèts',
 233+ '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}} »',
 234+);
 235+
 236+/** Galician (Galego)
 237+ * @author Toliño
 238+ */
 239+$messages['gl'] = array(
 240+ 'widgets-desc' => 'Permite aos administradores do wiki engadir widgets ao editar páxinas no espazo de nomes "{{ns:widget}}".
 241+Pódense atopar os widgets desenvolvidos para a comunidade en [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 242+ 'widgets-error' => 'Erro no [[{{ns:widget}}:$1|widget "$1"]]',
 243+ 'group-widgeteditor' => 'Editores de widgets',
 244+ 'group-widgeteditor-member' => 'Editor de widgets',
 245+ 'grouppage-widgeteditor' => 'Project:Editores de widgets',
 246+ 'right-editwidgets' => 'Crear e editar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] no espazo de nomes <tt>{{ns:widget}}</tt>',
 247+);
 248+
 249+/** Swiss German (Alemannisch)
 250+ * @author Als-Holder
 251+ */
 252+$messages['gsw'] = array(
 253+ 'widgets-desc' => 'Erlaubt Wikiadministratore Frej-Form-Widgets zum Wiki zuezfiege dur d Bearbeitig vu Syte im {{ns:widget}}-Namensruum.
 254+Vu dr Gmeinschaft aagleiti Widgets chenne unter [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] gfunde wäre.',
 255+ 'widgets-error' => 'Fähler im [[{{ns:widget}}:$1|Widget $1]]',
 256+ 'group-widgeteditor' => 'Widget-Editore',
 257+ 'group-widgeteditor-member' => 'Widget-Editor',
 258+ 'grouppage-widgeteditor' => 'Project:Widget-Editore',
 259+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets Widgets] im <tt>{{ns:widget}}</tt>-Namensruum aalege un bearbeite',
 260+);
 261+
 262+/** Hebrew (עברית)
 263+ * @author Rotemliss
 264+ * @author YaronSh
 265+ */
 266+$messages['he'] = array(
 267+ 'widgets-desc' => 'מתן האפשרות למנהלי אתר הוויקי להוסיף וידג׳טים הבנויים בצורה חופשית לאתר הוויקי באמצעות עריכת הדפים שבמרחב השם {{ns:widget}}.
 268+ניתן למצוא וידג׳טים שנתרמו על ידי הקהילה ב־[http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 269+ 'widgets-error' => "שגיאה ב[[{{ns:widget}}:$1|ווידג'ט $1]]",
 270+ 'group-widgeteditor' => "עורכי וידג'טים",
 271+ 'group-widgeteditor-member' => "עורך וידג'טים",
 272+ 'grouppage-widgeteditor' => "Project:עורכי וידג'טים",
 273+ 'right-editwidgets' => 'יצירה ועריכה של [http://www.mediawiki.org/wiki/Extension:Widgets וידג׳טים] במרחב השם <tt>{{ns:widget}}</tt>',
 274+);
 275+
 276+/** Upper Sorbian (Hornjoserbsce)
 277+ * @author Michawiki
 278+ */
 279+$messages['hsb'] = array(
 280+ 'widgets-desc' => '↓ Dowola wikijowym administratoram wikijej přez wobdźěłowanje stronow znutřka mjenjoweho ruma {{ns:widget}} swójske miniprogramy přidać.
 281+Wot zhromadźenstwa wutowrjene miniprogramy móžeš na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] namakać.',
 282+ 'widgets-error' => 'Zmylk w [[{{ns:widget}}:$1|miniprogramje $1]]',
 283+ 'group-widgeteditor' => 'Wobdźěłowarjo miniprogramow',
 284+ 'group-widgeteditor-member' => 'Wobdźěłowar miniprogramow',
 285+ 'grouppage-widgeteditor' => 'Project:Wobdźěłowarjo miniprogramow',
 286+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets Woknowe elementy] w mjenowym rumje <tt>{{ns:widget}}</tt> wutworić a wobdźěłać',
 287+);
 288+
 289+/** Hungarian (Magyar)
 290+ * @author Glanthor Reviol
 291+ */
 292+$messages['hu'] = array(
 293+ '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',
 294+ 'widgets-error' => 'Hiba a(z) [[{{ns:widget}}:$1|$1 minialkalmazásban]]',
 295+ 'group-widgeteditor' => 'Minialkalmazás szerkesztői',
 296+ 'group-widgeteditor-member' => 'Minialkalmazás-szerkesztő',
 297+ 'grouppage-widgeteditor' => 'Project:Minialkalmazás-szerkesztők',
 298+ 'right-editwidgets' => 'widgetek létrehozása és szerkesztése a <tt>{{ns:widget}}</tt> névtérben',
 299+);
 300+
 301+/** Interlingua (Interlingua)
 302+ * @author McDutchie
 303+ */
 304+$messages['ia'] = array(
 305+ 'widgets-desc' => 'Permitte al administratores del wiki inserer widgets qualcunque in le wiki, per modificar paginas intra le spatio de nomines {{ns:widget}}.
 306+Le widgets contribuite per le communitate se trova a [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 307+ 'widgets-error' => 'Error in [[{{ns:widget}}:$1|widget $1]]',
 308+ 'group-widgeteditor' => 'Modificatores de widgets',
 309+ 'group-widgeteditor-member' => 'Modificator de widgets',
 310+ 'grouppage-widgeteditor' => 'Project:Modificatores de widgets',
 311+ 'right-editwidgets' => 'Crear e modificar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] in le spatio de nomines <tt>{{ns:widget}}</tt>',
 312+);
 313+
 314+/** Indonesian (Bahasa Indonesia)
 315+ * @author Bennylin
 316+ * @author Irwangatot
 317+ */
 318+$messages['id'] = array(
 319+ 'widgets-desc' => 'Mengijinkan pengurus wiki untuk menambahkan formulir bebas widget ke wiki dengan menyunting halaman di ruang nama {{ns:widget}}.
 320+komunitas kontribusi widgets dapat di temuai pada [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 321+ 'widgets-error' => 'Kesalahan pada [[{{ns:widget}}:$1|widget $1]]',
 322+ 'group-widgeteditor' => 'Penyunting widget',
 323+ 'group-widgeteditor-member' => 'Penyunting widget',
 324+ 'grouppage-widgeteditor' => 'Project:Penyunting widget',
 325+ 'right-editwidgets' => 'Buat dan Sunting halaman [http://www.mediawiki.org/wiki/Extension:Widgets widgets] di <tt>{{ns:widget}}</tt> ruang nama',
 326+);
 327+
 328+/** Italian (Italiano)
 329+ * @author Beta16
 330+ * @author Civvì
 331+ * @author Darth Kule
 332+ */
 333+$messages['it'] = array(
 334+ 'widgets-desc' => 'Permette agli amministratori del sito di aggiungere widget liberi al sito modificando pagine nel namespace {{ns:widget}}.
 335+Widget creati dalla comunità possono essere trovati su [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 336+ 'widgets-error' => 'Errore nel [[{{ns:widget}}:$1|widget $1]]',
 337+ 'group-widgeteditor' => 'Editori widget',
 338+ 'group-widgeteditor-member' => 'Editore widget',
 339+ 'grouppage-widgeteditor' => 'Project:Editori widget',
 340+ 'right-editwidgets' => 'Crea e modifica [http://www.mediawiki.org/wiki/Extension:Widgets widget] nel namespace <tt>{{ns:widget}}</tt>',
 341+);
 342+
 343+/** Japanese (日本語)
 344+ * @author Fryed-peach
 345+ * @author Iwai.masaharu
 346+ * @author 青子守歌
 347+ */
 348+$messages['ja'] = array(
 349+ 'widgets-desc' => '管理者が「{{ns:widget}}」名前空間内のページを編集し、ウィキに自由な形式のウィジェットを追加できるようにする。
 350+コミュニティから提供されているウィジェットは [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] にあります。',
 351+ 'widgets-error' => '[[{{ns:widget}}:$1|ウィジェット $1]]にエラー',
 352+ 'group-widgeteditor' => 'ウィジェット編集者',
 353+ 'group-widgeteditor-member' => 'ウィジェット編集者',
 354+ 'grouppage-widgeteditor' => 'Project:ウィジェット編集者',
 355+ 'right-editwidgets' => '<tt>{{ns:widget}}</tt>名前空間で[http://www.mediawiki.org/wiki/Extension:Widgets ウィジット]を作成または編集する',
 356+);
 357+
 358+/** Colognian (Ripoarisch)
 359+ * @author Purodha
 360+ */
 361+$messages['ksh'] = array(
 362+ '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.
 363+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.',
 364+ 'widgets-error' => 'Doh es ene Fähler em [[{{ns:widget}}:$1|<i lang="en">Widget</i> $1]]',
 365+ 'group-widgeteditor' => 'Schriiver för <i lang="en">Widgets</i>',
 366+ 'group-widgeteditor-member' => '<i lang="en">Widget</i>-Schriiver',
 367+ 'grouppage-widgeteditor' => 'Project:Widget-Schriiver',
 368+ 'right-editwidgets' => 'Sigge, alsu <i lang="en">[http://www.mediawiki.org/wiki/Extension:Widgets Widgets]</i>, em Appachemang „{{ns:widget}}“ ändere udder aanlääje',
 369+);
 370+
 371+/** Luxembourgish (Lëtzebuergesch)
 372+ * @author Robby
 373+ */
 374+$messages['lb'] = array(
 375+ 'widgets-error' => 'Feeler an [[{{ns:widget}}:$1|widget $1]]',
 376+ 'group-widgeteditor' => 'Widget-Editeuren',
 377+ 'group-widgeteditor-member' => 'Widget-Editeur',
 378+ 'grouppage-widgeteditor' => 'Project:Widget Editeuren',
 379+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets widgets] am <tt>{{ns:widget}}</tt> Nummraum uleeën an änneren',
 380+);
 381+
 382+/** Macedonian (Македонски)
 383+ * @author Bjankuloski06
 384+ */
 385+$messages['mk'] = array(
 386+ 'widgets-desc' => 'Им овозможува на администраторите да додаваат посреднички елементи со уредување на страници во именскиот простор {{ns:widget}}.
 387+Елементи изработени од учесници од заедницата можете да најдете на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 388+ 'widgets-error' => 'Грешка во [[{{ns:widget}}:$1|посредничкиот елемент $1]]',
 389+ 'group-widgeteditor' => 'Уредници на посреднички елементи',
 390+ 'group-widgeteditor-member' => 'Уредник на посреднички елементи',
 391+ 'grouppage-widgeteditor' => 'Project:Уредници на посреднички елементи',
 392+ 'right-editwidgets' => 'Создавање и уредување на [http://www.mediawiki.org/wiki/Extension:Widgets направи] во именскиот простор <tt>{{ns:widget}}</tt>',
 393+);
 394+
 395+/** Dutch (Nederlands)
 396+ * @author Siebrand
 397+ */
 398+$messages['nl'] = array(
 399+ '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}}.
 400+Door de gemeenschap ontwikkelde widgets zijn te vinden op [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 401+ 'widgets-error' => 'Fout in [[{{ns:widget}}:$1|widget $1]]',
 402+ 'group-widgeteditor' => 'Widgetbewerkers',
 403+ 'group-widgeteditor-member' => 'Widgetbewerker',
 404+ 'grouppage-widgeteditor' => 'Project:Widgetbewerkers',
 405+ 'right-editwidgets' => '[http://www.mediawiki.org/wiki/Extension:Widgets Widgets] aanmaken en bewerken in de naamruimte <tt>{{ns:widget}}</tt>',
 406+);
 407+
 408+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
 409+ * @author Harald Khan
 410+ */
 411+$messages['nn'] = array(
 412+ 'right-editwidgets' => 'Endra sider i «{{ns:widget}}»-namnerommet',
 413+);
 414+
 415+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
 416+ * @author Nghtwlkr
 417+ */
 418+$messages['no'] = array(
 419+ 'widgets-desc' => 'Tillater wikiadministratorer å legge til fri-form skjermelement til wikien ved å redigere siden innen {{ns:widget}}-navnerommet.
 420+Fellesskaps-bidratte skjermelement kan finnes på [http://mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 421+ 'widgets-error' => 'Feil i [[{{ns:widget}}:$1|skjermelement $1]]',
 422+ 'group-widgeteditor' => 'Bidragsytere for skjermelement',
 423+ 'group-widgeteditor-member' => 'Bidragsyter for skjermelement',
 424+ 'grouppage-widgeteditor' => 'Project:Bidragsytere for skjermelement',
 425+ 'right-editwidgets' => 'Lag og rediger [http://www.mediawiki.org/wiki/Extension:Widgets skjermelement] i <tt>{{ns:widget}}</tt>-navnerommet',
 426+);
 427+
 428+/** Occitan (Occitan)
 429+ * @author Cedric31
 430+ */
 431+$messages['oc'] = array(
 432+ '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]",
 433+ 'widgets-error' => 'Error dins lo [[{{ns:widget}}:$1|widget $1]]',
 434+ 'group-widgeteditor' => 'Modificators de widgets',
 435+ 'group-widgeteditor-member' => 'modificator de widgets',
 436+ 'grouppage-widgeteditor' => 'Project:Modificators de widgets',
 437+ 'right-editwidgets' => "Crear e modificar las [http://www.mediawiki.org/wiki/Extension:Widgets widgets] dins l'espaci de noms « {{ns:widget}} »",
 438+);
 439+
 440+/** Polish (Polski)
 441+ * @author Sp5uhe
 442+ * @author ToSter
 443+ */
 444+$messages['pl'] = array(
 445+ 'widgets-desc' => 'Pozwala administratorom wiki na dodawanie widżetów w dowolnej formie do wiki poprzez edycję stron w przestrzeni nazw {{ns:widget}}.
 446+Widżety stworzone przez społeczność można odnaleźć na stronie [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 447+ 'widgets-error' => 'Błąd w [[{{ns:widget}}:$1|widżecie $1]]',
 448+ 'group-widgeteditor' => 'Edytorzy widżetów',
 449+ 'group-widgeteditor-member' => 'Edytor widżetów',
 450+ 'grouppage-widgeteditor' => 'Project:Edytorzy widżetów',
 451+ 'right-editwidgets' => 'Tworzenie i edycja [http://www.mediawiki.org/wiki/Extension:Widgets widżetów] w przestrzeni nazw <tt>{{ns:widget}}</tt>',
 452+);
 453+
 454+/** Piedmontese (Piemontèis)
 455+ * @author Borichèt
 456+ * @author Dragonòt
 457+ */
 458+$messages['pms'] = array(
 459+ '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}}.
 460+Dij widget creà da la comunità a peulo esse trovà su [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 461+ 'widgets-error' => 'Eror an [[{{ns:widget}}:$1|widget $1]]',
 462+ 'group-widgeteditor' => 'Editor ëd widget',
 463+ 'group-widgeteditor-member' => 'Editor ëd widget',
 464+ 'grouppage-widgeteditor' => 'Project:Editor ëd widget',
 465+ 'right-editwidgets' => 'Crea e modìfica [http://www.mediawiki.org/wiki/Extension:Widgets widgets] ant lë spassi nominal <tt>{{ns:widget}}</tt>',
 466+);
 467+
 468+/** Portuguese (Português)
 469+ * @author Hamilton Abreu
 470+ */
 471+$messages['pt'] = array(
 472+ 'widgets-desc' => "Permite que os administradores da wiki adicionem ''widgets free-form'' à wiki, editando páginas no espaço nominal {{ns:widget}}.
 473+Widgets fornecidos pela comunidade podem ser encontrados na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 474+ 'widgets-error' => "Erro no [[{{ns:widget}}:$1|''widget'' $1]]",
 475+ 'group-widgeteditor' => "Editores de ''widgets''",
 476+ 'group-widgeteditor-member' => "Editor de ''widgets''",
 477+ 'grouppage-widgeteditor' => "Project:Editores de ''widgets''",
 478+ 'right-editwidgets' => 'Criar e editar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] no espaço nominal <tt>{{ns:widget}}</tt>',
 479+);
 480+
 481+/** Brazilian Portuguese (Português do Brasil)
 482+ * @author Eduardo.mps
 483+ * @author Giro720
 484+ * @author Heldergeovane
 485+ */
 486+$messages['pt-br'] = array(
 487+ 'widgets-desc' => "Permite que os administradores da wiki adicionem ''widgets free-form'' à wiki, editando páginas no espaço nominal {{ns:widget}}.
 488+Widgets fornecidos pela comunidade podem ser encontrados na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]",
 489+ 'widgets-error' => 'Erro em [[{{ns:widget}}:$1|widget $1]]',
 490+ 'group-widgeteditor' => 'Editores de widget',
 491+ 'group-widgeteditor-member' => 'Editor de widget',
 492+ 'grouppage-widgeteditor' => 'Project:Editores de widget',
 493+ 'right-editwidgets' => 'Criar e editar [http://www.mediawiki.org/wiki/Extension:Widgets widgets] no espaço nominal <tt>{{ns:widget}}</tt>',
 494+);
 495+
 496+/** Tarandíne (Tarandíne)
 497+ * @author Joetaras
 498+ */
 499+$messages['roa-tara'] = array(
 500+ 'widgets-error' => "Errore jndr'à [[{{ns:widget}}:$1|widget $1]]",
 501+);
 502+
 503+/** Russian (Русский)
 504+ * @author G0rn
 505+ * @author Александр Сигачёв
 506+ */
 507+$messages['ru'] = array(
 508+ 'widgets-desc' => 'Позволяет администраторам вики добавлять различные виджеты, посредством редактирования страниц пространства имён {{ns:widget}}. Поддерживаемые сообществом виджеты можно найти на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org].',
 509+ 'widgets-error' => 'Ошибка в [[{{ns:widget}}:$1|виджете $1]]',
 510+ 'group-widgeteditor' => 'Редакторы виджетов',
 511+ 'group-widgeteditor-member' => 'Редактор виджетов',
 512+ 'grouppage-widgeteditor' => 'Project:Редакторы виджетов',
 513+ 'right-editwidgets' => 'создавать и редактировать [http://www.mediawiki.org/wiki/Extension:Widgets виджеты] страницы в пространстве имён <tt>{{ns:widget}}</tt>',
 514+);
 515+
 516+/** Slovak (Slovenčina)
 517+ * @author Helix84
 518+ */
 519+$messages['sk'] = array(
 520+ 'widgets-desc' => 'Umožňuje správcom wiki pridávať ovládacie prvky na wiki úpravou stránky v mennom priestore {{ns:widget}}.
 521+Pôvodne vyvinuté pre [http://www.ardorado.com Ardorado.com]',
 522+ 'widgets-error' => 'Chyba v [[{{ns:widget}}:$1|ovládacom prvku $1]]',
 523+ 'group-widgeteditor' => 'Editori ovládacích prvkov',
 524+ 'group-widgeteditor-member' => 'Editor ovládacích prvkov',
 525+ 'grouppage-widgeteditor' => 'Project:Editori ovládacích prvkov',
 526+ 'right-editwidgets' => 'upravovať stránky v mennom priestore „{{ns:widget}}“',
 527+);
 528+
 529+/** Swedish (Svenska)
 530+ * @author Ozp
 531+ * @author Per
 532+ */
 533+$messages['sv'] = array(
 534+ 'widgets-error' => 'Fel i [[{{ns:widget}}:$1|widget $1]]',
 535+ 'group-widgeteditor' => 'Widgeteditorer',
 536+);
 537+
 538+/** Telugu (తెలుగు)
 539+ * @author Ravichandra
 540+ */
 541+$messages['te'] = array(
 542+ 'group-widgeteditor' => 'విడ్జెట్ ఎడిటర్లు',
 543+ 'group-widgeteditor-member' => 'విడ్జెట్ ఎడిటర్',
 544+);
 545+
 546+/** Tagalog (Tagalog)
 547+ * @author AnakngAraw
 548+ */
 549+$messages['tl'] = array(
 550+ '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}}.
 551+Ang mga widyet na inambag ng pamayan ay matatagpuan sa [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 552+ 'widgets-error' => 'Kamalian sa loob ng [[{{ns:widget}}:$1|widyet na $1]]',
 553+ 'group-widgeteditor' => 'Mga patnugot ng widyet',
 554+ 'group-widgeteditor-member' => 'Patnugot ng widyet',
 555+ 'grouppage-widgeteditor' => 'Project:Mga patnugot ng widyet',
 556+ '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>',
 557+);
 558+
 559+/** Ukrainian (Українська)
 560+ * @author Prima klasy4na
 561+ * @author Тест
 562+ */
 563+$messages['uk'] = array(
 564+ 'widgets-desc' => 'Дозволяє адміністраторам вікі додавати різноманітні віджети шляхом редагування сторінок простору назв {{ns:widget}}.
 565+Підтримувані спільнотою віджети можна знайти на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]',
 566+ 'widgets-error' => 'Помилка [[{{ns:widget}}:$1|віджету $1]]',
 567+ 'group-widgeteditor' => 'Редактори віджетів',
 568+ 'group-widgeteditor-member' => 'Редактор віджетів',
 569+ 'grouppage-widgeteditor' => 'Project:Редактори віджетів',
 570+ 'right-editwidgets' => 'Створювати і редагувати [http://www.mediawiki.org/wiki/Extension:Widgets віджети] у просторі назв <tt>{{ns:widget}}</tt>',
 571+);
 572+
 573+/** Vietnamese (Tiếng Việt)
 574+ * @author Minh Nguyen
 575+ */
 576+$messages['vi'] = array(
 577+ '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}}.
 578+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].',
 579+ 'widgets-error' => 'Lỗi trong [[{{ns:widget}}:$1|công cụ đa năng $1]]',
 580+ 'group-widgeteditor' => 'Người sửa công cụ đa năng',
 581+ 'group-widgeteditor-member' => 'Người sửa công cụ đa năng',
 582+ 'grouppage-widgeteditor' => 'Project:Người sửa công cụ đa năng',
 583+ '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>',
 584+);
 585+
 586+/** Cantonese (粵語) */
 587+$messages['yue'] = array(
 588+ 'widgets-desc' => '容許wiki管理員響{{ns:widget}}空間名度加入自由形式嘅widget響個wiki度。
 589+原先為[http://www.ardorado.com Ardorado.com]而設計嘅',
 590+ 'widgets-error' => '響[[{{ns:widget}}:$1|widget $1]]出錯',
 591+ 'group-widgeteditor' => 'Widget編輯器',
 592+ 'group-widgeteditor-member' => 'Widget編輯器',
 593+ 'grouppage-widgeteditor' => 'Project:Widget編輯器',
 594+ 'right-editwidgets' => '響"{{ns:widget}}"空間名度編輯頁',
 595+);
 596+
 597+/** Simplified Chinese (‪中文(简体)‬)
 598+ * @author Xiaomingyan
 599+ */
 600+$messages['zh-hans'] = array(
 601+ 'widgets-desc' => '允许wiki管理员通过编辑{{ns:widget}}名称空间中的页面以添加自由形式的小工具至wiki。
 602+[http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]提供社区贡献的小工具',
 603+ 'widgets-error' => '[[{{ns:widget}}:$1|小工具$1]]出错',
 604+ 'group-widgeteditor' => '小工具编辑器',
 605+ 'group-widgeteditor-member' => '小工具编辑器',
 606+ 'grouppage-widgeteditor' => 'Project:小工具编辑器',
 607+ 'right-editwidgets' => '创建并编辑<tt>{{ns:widget}}</tt>名称空间中的[http://www.mediawiki.org/wiki/Extension:Widgets 小工具]',
 608+);
 609+
 610+/** Traditional Chinese (‪中文(繁體)‬) */
 611+$messages['zh-hant'] = array(
 612+ 'widgets-desc' => '容許wiki管理員在{{ns:widget}}名字空間中加入自由形式的widget至wiki中。
 613+原先為[http://www.ardorado.com Ardorado.com]設計',
 614+ 'widgets-error' => '在[[{{ns:widget}}:$1|widget $1]]發生錯誤',
 615+ 'group-widgeteditor' => 'Widget編輯器',
 616+ 'group-widgeteditor-member' => 'Widget編輯器',
 617+ 'grouppage-widgeteditor' => 'Project:Widget編輯器',
 618+ 'right-editwidgets' => '在"{{ns:widget}}"名字空間中編輯頁面',
 619+);
 620+
Property changes on: tags/extensions/Widgets/REL_0_9_2/Widgets.i18n.php
___________________________________________________________________
Added: svn:eol-style
1621 + native
Index: tags/extensions/Widgets/REL_0_9_2/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_2/compiled_templates/.htaccess
___________________________________________________________________
Added: svn:eol-style
15 + native
Property changes on: tags/extensions/Widgets/REL_0_9_2/compiled_templates
___________________________________________________________________
Added: svn:ignore
26 + *
Index: tags/extensions/Widgets/REL_0_9_2/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.2',
 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_2/Widgets.php
___________________________________________________________________
Added: svn:eol-style
1107 + native
Index: tags/extensions/Widgets/REL_0_9_2/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_2/Makefile
___________________________________________________________________
Added: svn:eol-style
131 + native
Property changes on: tags/extensions/Widgets/REL_0_9_2
___________________________________________________________________
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/

Status & tagging log