r62165 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r62164‎ | r62165 | r62166 >
Date:06:04, 9 February 2010
Author:tstarling
Status:ok
Tags:
Comment:
Almost completely rewrote ExternalPages:
* Made it generically useful and not at all WMF-dependent.
* Changed the URL scheme, so that external pages appear as subpages of [[Special:ExternalPages]] instead of requiring URL parameters like EPyear.
* Allow only a whitelist of pages instead of all pages in some particular hierarchical scheme.
* Made the expiry configurable in the usual way.
* Use $wgOut->setSquidMaxage() instead of DIY hook nonsense.
* Made Special:ExternalPages unlisted, instead of listed in the user section.
* Removed most i18n messages. Some are unnecessary because of the new URL scheme, others because I am using the messages from HttpFunctions.php instead.
* Removed unnecessary invocation guards.
* Removed funny-looking DIY special page alias system presumably lifted from some other extension.
Modified paths:
  • /trunk/extensions/ExternalPages/ExternalPages.i18n.php (modified) (history)
  • /trunk/extensions/ExternalPages/ExternalPages.php (modified) (history)
  • /trunk/extensions/ExternalPages/ExternalPages_body.php (modified) (history)

Diff [purge]

Index: trunk/extensions/ExternalPages/ExternalPages_body.php
@@ -1,32 +1,19 @@
22 <?php
33
4 -if ( !defined( 'MEDIAWIKI' ) ) {
5 - echo "ExternalPages extension\n";
6 - exit( 1 );
7 -}
8 -
94 /**
105 * Special page allows retrieval and display of pages from remote WMF sites
116 * with year, lang and project specifable
127 */
13 -class ExternalPages extends SpecialPage {
 8+class ExternalPages extends UnlistedSpecialPage {
 9+ protected $epSites, $epPages, $epExpiry;
1410
15 - private $mYear = '';
16 - private $mLang = '';
17 - private $mProject = '';
18 - private $mPage = false;
19 - private $mPageURL = '';
20 - private $mPageText = false;
21 - private $mFromCache = false;
22 -
23 - // adjust these as needed to change cache expiry
24 - const EP_SMAXAGE = 600;
25 - const EP_MAXAGE = 600;
26 - const EP_MEMCACHE_EXP = 600;
27 -
2811 public function __construct() {
 12+ global $wgExternalPagesSites, $wgExternalPages, $wgExternalPagesCacheExpiry;
2913 parent::__construct( 'ExternalPages' );
3014 wfLoadExtensionMessages( 'ExternalPages' );
 15+ $this->epSites = $wgExternalPagesSites;
 16+ $this->epPages = $wgExternalPages;
 17+ $this->epExpiry = $wgExternalPagesCacheExpiry;
3118 }
3219
3320 /**
@@ -34,194 +21,99 @@
3522 * URLs that direct to the remote site
3623 * $par would be the subpage. we don't need it
3724 */
38 - public function execute( $par ) {
39 - global $wgUser, $wgRequest;
 25+ public function execute( $subpage ) {
 26+ global $wgUser, $wgOut, $wgMemc, $wgRequest;
4027
41 - wfLoadExtensionMessages( 'ExternalPages' );
4228 $this->setHeaders();
4329
44 - if ( !$this->parseParams() ) {
45 - return( false );
 30+ if ( strval( $subpage ) === '' ) {
 31+ $this->showError( 'externalpages-no-page' );
 32+ return;
4633 }
47 - if ( !$this->userCanExecute( $wgUser ) ) {
48 - $this->displayRestrictionError();
49 - return( false );
 34+
 35+ if ( !isset( $this->epPages[$subpage] ) ) {
 36+ $this->showError( 'externalpages-bad-page' );
 37+ return;
5038 }
5139
52 - $this->constructURL();
53 - $this->retrieveExternalPage();
54 - }
 40+ $siteName = $this->epPages[$subpage]['site'];
 41+ $titleText = $this->epPages[$subpage]['title'];
5542
56 - /**
57 - * Process parameters of the request
58 - */
59 - private function parseParams() {
60 - global $wgRequest, $wgServer;
61 -
62 - if ( !$wgRequest->getVal( 'EPyear' ) ) {
63 - $this->mYear = false;
64 - } else {
65 - $this->mYear = $wgRequest->getInt( 'EPyear' );
66 - // if this code is still being used 50 years from now, replace it :-P
67 - if (! ( ( $this->mYear > 2000 ) && ( $this->mYear < 2050 ) ) ) {
68 - ExternalPagesErrors::showError( 'externalpages-bad-year' );
69 - return( false );
70 - }
 43+ if ( !isset( $this->epSites[$siteName] ) ) {
 44+ throw new MWException( __METHOD__.': configuration error: invalid site name' );
7145 }
72 -
73 - if ( !$wgRequest->getVal( 'EPlanguage' ) ) {
74 - $this->mLang = false;
75 - } else {
76 - $this->mLang = $wgRequest->getVal( 'EPlanguage' );
77 - $knownLanguages = Language::getLanguageNames( false );
78 - if ( !array_key_exists( $this->mLang, $knownLanguages ) ) {
79 - ExternalPagesErrors::showError( 'externalpages-bad-language' );
80 - return( false );
81 - }
 46+ $siteConf = $this->epSites[$siteName];
 47+ if ( !isset( $siteConf['scriptUrl'] ) ) {
 48+ throw new MWException( __METHOD__.': configuration error: missing API URL' );
8249 }
 50+ $scriptUrl = $siteConf['scriptUrl'];
 51+ $title = Title::newFromText( $titleText );
 52+ if ( !$title ) {
 53+ throw new MWException( __METHOD__.': configuration error: invalid title' );
 54+ }
 55+ $titleText = $title->getPrefixedDBkey();
8356
84 - if ( !$wgRequest->getVal( 'EPproject' ) ) {
85 - ExternalPagesErrors::showError( 'externalpages-no-project' );
86 - return( false );
87 - } else {
88 - $this->mProject = $wgRequest->getVal( 'EPproject' );
89 - // for initial fundraiser rollout, just allow pages from one project.
90 - // This can be generalized later
91 - if ( 'wikimediafoundation.org' != $this->mProject ) {
92 - ExternalPagesErrors::showError( 'externalpages-bad-project' );
93 - return( false );
 57+ // Try the cache
 58+ $action = $wgRequest->getVal( 'action' );
 59+ $cacheKey = wfMemcKey( 'externalpages', $siteName, $titleText );
 60+ if ( $action !== 'purge' ) {
 61+ $entry = $wgMemc->get( $cacheKey );
 62+ if ( $entry && is_array( $entry ) ) {
 63+ wfDebug( __CLASS__.": got $titleText from cache\n" );
 64+ $this->showExternalPage( $title, $entry );
 65+ return;
9466 }
9567 }
9668
97 - if ( !$wgRequest->getVal( 'EPpage' ) ) {
98 - ExternalPagesErrors::showError( 'externalpages-no-page' );
99 - return( false );
 69+ $status = $this->sendRequest( $scriptUrl, $titleText );
 70+ if ( !$status->isOK() ) {
 71+ $this->showStatusError( $status );
 72+ return;
10073 }
101 - $this->mPage = $wgRequest->getVal( 'EPpage' );
102 - // strictly speaking this may behave differently on the local wiki, oh well
103 - if ( !Title::newFromText( $this->mPage ) ) {
104 - ExternalPagesErrors::showError( 'externalpages-bad-page' );
105 - return( false );
106 - }
107 - return( true );
108 - }
10974
110 - private function constructURL() {
111 - $url = 'http://' . $this->mProject . '/w/api.php?action=parse&page=';
112 - $title = ( $this->mYear ? $this->mYear . '/' : '' ) . $this->mPage;
113 - $title .= $this->mLang ? '/' . $this->mLang : '';
114 - $title = urlencode( $title );
115 - $url = $url . $title . '&format=php';
116 - $this->mPageURL = $url;
117 - }
 75+ $entry = $status->value;
11876
119 - public function cacheHeaders() {
120 - global $wgRequest;
 77+ // Save to the cache
 78+ wfDebug( __CLASS__.": storing $titleText to cache\n" );
 79+ $wgMemc->set( $cacheKey, $entry, $this->epExpiry );
12180
122 - $smaxage = self::EP_SMAXAGE;
123 - $maxage = self::EP_MAXAGE;
 81+ // Display the page
 82+ $this->showExternalPage( $title, $entry );
 83+ }
12484
125 - $public = ( session_id() == '' );
126 -
127 - if ( $public ) {
128 - $wgRequest->response()->header( "Cache-Control: public, s-maxage=$smaxage, max-age=$maxage" );
 85+ function showExternalPage( $title, $data ) {
 86+ global $wgOut;
 87+ if ( isset( $data['displaytitle'] ) && strval( $data['displaytitle'] ) !== '' ) {
 88+ $wgOut->setPageTitle( $data['displaytitle'] );
12989 } else {
130 - $wgRequest->response()->header( "Cache-Control: private, s-maxage=0, max-age=$maxage" );
 90+ $wgOut->setPageTitle( $title->getPrefixedText() );
13191 }
132 - $time = time() + self::EP_MAXAGE;
133 - $wgRequest->response()->header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', $time ) . ' GMT' );
134 - return( true );
 92+ $wgOut->setSquidMaxage( $this->epExpiry );
 93+ $wgOut->enableClientCache( true );
 94+ $wgOut->addHTML( $data['text'] );
13595 }
13696
137 - private function getCacheKey( $string ) {
138 - return( wfMemcKey( 'externalpages', $string ) );
 97+ function showError( $msg ) {
 98+ global $wgOut;
 99+ $wgOut->wrapWikiMsg( "<div class=\"errorbox\" style=\"float:none;\">\n$1</div>", $msg );
139100 }
140101
141 - private function getPageFromCache() {
142 - global $wgMemc;
143 -
144 - wfProfileIn( __METHOD__ );
145 -
146 - if ( !$this->mPageURL ) {
147 - $this->constructURL();
148 - }
149 -
150 - $this->mPageText = $wgMemc->get( $this->getCacheKey( $this->mPageURL ) );
151 - if ( !$this->mPageText ) {
152 - wfDebugLog( 'ExternalPages', "Remote Page Text: cache miss for {$this->mPageURL} " );
153 - wfProfileOut( __METHOD__ );
154 - return( false );
155 - }
156 - wfProfileOut( __METHOD__ );
157 - return( true );
 102+ function showStatusError( $status ) {
 103+ global $wgOut;
 104+ $text = $status->getWikiText();
 105+ $wgOut->addWikiText( "<div class=\"errorbox\" style=\"float:none;\">\n$text</div>" );
158106 }
159107
160 - private function savePageToCache() {
161 - global $wgMemc;
162 -
163 - wfDebugLog( 'ExternalPages', "Saving text {$this->mPageURL} to cache." );
164 - $wgMemc->set( $this->getCacheKey( $this->mPageURL ), $this->mPageText, self::EP_MEMCACHE_EXP );
165 - }
166 -
167 - private function retrieveExternalPage() {
168 - global $wgOut, $wgRequest, $wgHooks;
169 -
170 - if ( !$this->mPageURL ) {
171 - $this->constructURL();
 108+ function sendRequest( $scriptUrl, $titleText ) {
 109+ $url = $scriptUrl . '?' . wfArrayToCGI( array(
 110+ 'action' => 'render',
 111+ 'title' => $titleText
 112+ ) );
 113+ $req = HttpRequest::factory( $url );
 114+ $status = $req->execute();
 115+ if ( !$status->isOK() ) {
 116+ return $status;
172117 }
173 -
174 - // try from cache first
175 - $this->getPageFromCache();
176 -
177 - if ( !$this->mPageText ) {
178 - $serializedText = Http::get( $this->mPageURL );
179 -
180 - if ( empty( $serializedText ) ) {
181 - ExternalPagesErrors::showError( 'externalpages-bad-url' );
182 - return( false );
183 - } else {
184 - $text = unserialize( $serializedText );
185 - }
186 -
187 - if ( isset( $text['parse'] ) && ( isset( $text['parse']['text'] ) ) ) {
188 - $this->mPageText = $text['parse']['text']['*'];
189 - $absurl = '<a href="http://' . $this->mProject . '/';
190 - $this->mPageText = str_replace( '<a href="https://www.mediawiki.org/', $absurl, $this->mPageText );
191 - }
192 - $this->savePageToCache();
193 - } else {
194 - wfDebugLog( 'ExternalPages', "Retrieved {$this->mPageURL} from cache." );
195 - }
196 -
197 - if ( $this->mPageText ) {
198 - $wgHooks['CacheHeadersAfterSet'][] = array( $this, 'cacheHeaders' );
199 - $wgOut->addHTML( $this->mPageText );
200 - } else {
201 - ExternalPagesErrors::showError( 'externalpages-bad-url-data' );
202 - return( false );
203 - }
204 - return;
 118+ return Status::newGood( array( 'text' => $req->getContent() ) );
205119 }
206120 }
207 -
208 -/**
209 - * Error handler for some formatting of error messages
210 - */
211 -class ExternalPagesErrors {
212 -
213 - static function showError( $errorText = 'externalpages-error-generic', $phpErrorText = false ) {
214 - global $wgOut;
215 -
216 - $args = func_get_args();
217 -
218 - array_shift( $args );
219 - $msg = wfMsg( $errorText, $args );
220 -
221 - $wgOut->addWikiText(
222 - '<div class="errorbox" style="float:none;">' .
223 - $msg .
224 - '</div>'
225 - );
226 - }
227 -
228 -}
\ No newline at end of file
Index: trunk/extensions/ExternalPages/ExternalPages.i18n.php
@@ -14,15 +14,8 @@
1515 $messages['en'] = array(
1616 'externalpages' => 'External Pages',
1717 'externalpages-desc' => 'Retrieves and displays pages from remote WMF sites',
18 - 'externalpages-bad-year' => 'Bad year specified',
19 - 'externalpages-bad-language' => 'Bad language specified',
20 - 'externalpages-bad-project' => 'Bad project specified',
21 - 'externalpages-no-project' => 'No project specified',
2218 'externalpages-bad-page' => 'Bad page specified',
2319 'externalpages-no-page' => 'No page specified',
24 - 'externalpages-error-generic' => 'Error encountered',
25 - 'externalpages-bad-url' => 'Failed to retrieve URL',
26 - 'externalpages-bad-url-data' => 'Failed to retrieve page contents',
2720 );
2821
2922 /** Message documentation (Message documentation)
@@ -38,15 +31,8 @@
3932 $messages['af'] = array(
4033 'externalpages' => 'Eksterne bladsye',
4134 'externalpages-desc' => 'Kry bladsye vanaf ander WMF werwe en gee hulle hier weer',
42 - 'externalpages-bad-year' => 'Ongeldige jaar gespesifiseer',
43 - 'externalpages-bad-language' => 'Ongeldige taal gespesifiseer',
44 - 'externalpages-bad-project' => 'Ongeldige projek gespesifiseer',
45 - 'externalpages-no-project' => 'Geen projek gespesifiseer nie',
4635 'externalpages-bad-page' => 'Ongeldige bladsy gespesifiseer',
4736 'externalpages-no-page' => 'Geen bladsy gespesifiseer nie',
48 - 'externalpages-error-generic' => "'n Fout het voorgekom",
49 - 'externalpages-bad-url' => 'Dit was nie moontlik om die URL te onttrek nie',
50 - 'externalpages-bad-url-data' => 'Kon nie die bladsyinhoud onttrek nie',
5137 );
5238
5339 /** Arabic (العربية)
@@ -55,15 +41,8 @@
5642 $messages['ar'] = array(
5743 'externalpages' => 'صفحات خارجية',
5844 'externalpages-desc' => 'يسترجع ويعرض الصفحات من مواقع مؤسسة ويكيميديا البعيدة',
59 - 'externalpages-bad-year' => 'حُدّدت سنة سيئة',
60 - 'externalpages-bad-language' => 'حُدّدت لغة سيئة',
61 - 'externalpages-bad-project' => 'حُدّد مشروع سيء',
62 - 'externalpages-no-project' => 'لم تحدد المشروع',
6345 'externalpages-bad-page' => 'حُدّدت صفحة سيئة',
6446 'externalpages-no-page' => 'لم تحدد الصفحة',
65 - 'externalpages-error-generic' => 'صودف خطأ',
66 - 'externalpages-bad-url' => 'فشل في استرجاع المسار',
67 - 'externalpages-bad-url-data' => 'فشل في استرجاع محتويات الصفحة',
6847 );
6948
7049 /** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
@@ -73,15 +52,8 @@
7453 $messages['be-tarask'] = array(
7554 'externalpages' => 'Вонкавыя старонкі',
7655 'externalpages-desc' => 'Выбірае і паказвае старонкі з іншых сайтаў фундацыі «Вікімэдыя»',
77 - 'externalpages-bad-year' => 'Пазначаны няслушны год',
78 - 'externalpages-bad-language' => 'Пазначаная няслушная мова',
79 - 'externalpages-bad-project' => 'Пазначаны няслушны праект',
80 - 'externalpages-no-project' => 'Праект не пазначаны',
8156 'externalpages-bad-page' => 'Пазначана няслушная старонка',
8257 'externalpages-no-page' => 'Старонка не пазначаная',
83 - 'externalpages-error-generic' => 'Узьнікла памылка',
84 - 'externalpages-bad-url' => 'Не атрымалася атрымаць URL',
85 - 'externalpages-bad-url-data' => 'Не атрымалася атрымаць зьмест старонкі',
8658 );
8759
8860 /** Bulgarian (Български)
@@ -90,15 +62,8 @@
9163 $messages['bg'] = array(
9264 'externalpages' => 'Външни страници',
9365 'externalpages-desc' => 'Изтегляне и показване на страници от отдалечени сайтове на WMF',
94 - 'externalpages-bad-year' => 'Зададена е неправилна година',
95 - 'externalpages-bad-language' => 'Зададен е неправилен език',
96 - 'externalpages-bad-project' => 'Зададен е неправилен проект',
97 - 'externalpages-no-project' => 'Не е указан проект',
9866 'externalpages-bad-page' => 'Зададена е неправилна страница',
9967 'externalpages-no-page' => 'Не е указана страница',
100 - 'externalpages-error-generic' => 'Възникна грешка',
101 - 'externalpages-bad-url' => 'Неуспех при получаване на URL-адреса',
102 - 'externalpages-bad-url-data' => 'Неуспех при получаване съдържанието на страницата',
10368 );
10469
10570 /** Bengali (বাংলা)
@@ -115,15 +80,8 @@
11681 */
11782 $messages['br'] = array(
11883 'externalpages' => 'Pajennoù diavaez',
119 - 'externalpages-bad-year' => 'Bloavezh lakaet direizh',
120 - 'externalpages-bad-language' => 'Yezh lakaet direizh',
121 - 'externalpages-bad-project' => 'Raktres lakaet direizh',
122 - 'externalpages-no-project' => "N'eus bet diferet raktres ebet",
12384 'externalpages-bad-page' => 'Pajenn lakaet direizh',
12485 'externalpages-no-page' => "N'eus bet resisaet anv pajenn ebet",
125 - 'externalpages-error-generic' => 'Kavet ez eus bet ur fazi',
126 - 'externalpages-bad-url' => "N'eo ket bet adtapet an URL",
127 - 'externalpages-bad-url-data' => "N'eo ket bet adtapet danvez ar bajenn",
12886 );
12987
13088 /** Bosnian (Bosanski)
@@ -132,15 +90,8 @@
13391 $messages['bs'] = array(
13492 'externalpages' => 'Vanjske stranice',
13593 'externalpages-desc' => 'Preuzima i prikazuje stranice sa udaljenih WMF sajtova',
136 - 'externalpages-bad-year' => 'Navedena pogrešna godina',
137 - 'externalpages-bad-language' => 'Naveden pogrešan jezik',
138 - 'externalpages-bad-project' => 'Naveden pogrešan projekt',
139 - 'externalpages-no-project' => 'Nije naveden projekt',
14094 'externalpages-bad-page' => 'Navedena pogrešna stranica',
14195 'externalpages-no-page' => 'Nije navedena stranica',
142 - 'externalpages-error-generic' => 'Desila se greška',
143 - 'externalpages-bad-url' => 'Nije uspjelo preuzimanje URL',
144 - 'externalpages-bad-url-data' => 'Nije uspjelo preuzimanje sadržaja stranice',
14596 );
14697
14798 /** Czech (Česky)
@@ -149,15 +100,8 @@
150101 $messages['cs'] = array(
151102 'externalpages' => 'Externí stránky',
152103 'externalpages-desc' => 'Získává a zobrazuje stránky ze stránek WMF',
153 - 'externalpages-bad-year' => 'Uveden špatný rok',
154 - 'externalpages-bad-language' => 'Uveden špatný jazyk',
155 - 'externalpages-bad-project' => 'Uveden špatný projekt',
156 - 'externalpages-no-project' => 'Nebyl uveden projekt',
157104 'externalpages-bad-page' => 'Uvedena špatná stránka',
158105 'externalpages-no-page' => 'Nebyla uvedena stránka',
159 - 'externalpages-error-generic' => 'Vyskytla se chyba',
160 - 'externalpages-bad-url' => 'Nepodařilo se získat URL',
161 - 'externalpages-bad-url-data' => 'Nepodařilo se získat obsah stránky',
162106 );
163107
164108 /** German (Deutsch)
@@ -166,15 +110,8 @@
167111 $messages['de'] = array(
168112 'externalpages' => 'Externe Seiten',
169113 'externalpages-desc' => 'Empfängt und zeigt Seiten von externen Websites der Wikimedia Foundation an',
170 - 'externalpages-bad-year' => 'Falsches Jahr angegeben',
171 - 'externalpages-bad-language' => 'Falsche Sprache angegeben',
172 - 'externalpages-bad-project' => 'Falsches Projekt angegeben',
173 - 'externalpages-no-project' => 'Kein Projekt angegeben',
174114 'externalpages-bad-page' => 'Falsche Seite angegeben',
175115 'externalpages-no-page' => 'Keine Seite angegeben',
176 - 'externalpages-error-generic' => 'Fehler gefunden',
177 - 'externalpages-bad-url' => 'Kann die URL nicht empfangen',
178 - 'externalpages-bad-url-data' => 'Kann keine Seiteninhalte empfangen',
179116 );
180117
181118 /** Zazaki (Zazaki)
@@ -183,15 +120,8 @@
184121 $messages['diq'] = array(
185122 'externalpages' => 'Pelê Teberi',
186123 'externalpages-desc' => 'Siteyanê WMFyê duri ra pelan ano u mocneno',
187 - 'externalpages-bad-year' => 'Serra ğelete name biya',
188 - 'externalpages-bad-language' => 'Zıwano ğelet name biyo',
189 - 'externalpages-bad-project' => 'Proceyo ğelet name biyo',
190 - 'externalpages-no-project' => 'Proce name nêbiyo',
191124 'externalpages-bad-page' => 'Pela ğelete name biya',
192125 'externalpages-no-page' => 'Pele name nêbiya',
193 - 'externalpages-error-generic' => 'Xeta biya',
194 - 'externalpages-bad-url' => 'Ardena URLi beşar nêbiye',
195 - 'externalpages-bad-url-data' => 'Ardena tedeesteyanê pele beşar nêbiye',
196126 );
197127
198128 /** Lower Sorbian (Dolnoserbski)
@@ -200,15 +130,8 @@
201131 $messages['dsb'] = array(
202132 'externalpages' => 'Eksterne boki',
203133 'externalpages-desc' => 'Wótwołujo a zwobraznjujo boki z internetnych sedłow WMF',
204 - 'externalpages-bad-year' => 'Njepłaśiwe lěto pódane',
205 - 'externalpages-bad-language' => 'Njepłaśiwa rěc pódana',
206 - 'externalpages-bad-project' => 'Njepłaśiwy projekt pódany',
207 - 'externalpages-no-project' => 'Žeden projekt pódany',
208134 'externalpages-bad-page' => 'Njepłaśiwy bok pódany',
209135 'externalpages-no-page' => 'Žeden bok pódany',
210 - 'externalpages-error-generic' => 'Zmólka namakana',
211 - 'externalpages-bad-url' => 'URL njejo se dał wótwołaś',
212 - 'externalpages-bad-url-data' => 'Wopśimjeśe boka njejo se dało wótwołaś',
213136 );
214137
215138 /** Greek (Ελληνικά)
@@ -216,15 +139,8 @@
217140 */
218141 $messages['el'] = array(
219142 'externalpages' => 'Εξωτερικές Σελίδες',
220 - 'externalpages-bad-year' => 'Λανθασμένη χρονιά',
221 - 'externalpages-bad-language' => 'Λανθασμένη γλώσσα',
222 - 'externalpages-bad-project' => 'Λανθασμένο εγχείρημα',
223 - 'externalpages-no-project' => 'Δεν διευκρινίζεται κάποιο εγχείρημα',
224143 'externalpages-bad-page' => 'Λανθασμένη σελίδα',
225144 'externalpages-no-page' => 'Δεν διευκρινίζεται κάποια σελίδα',
226 - 'externalpages-error-generic' => 'Αντιμετωπίστηκε σφάλμα',
227 - 'externalpages-bad-url' => 'Αποτυχία ανάκτησης του URL',
228 - 'externalpages-bad-url-data' => 'Αποτυχία ανάκτησης περιεχομένων σελίδας',
229145 );
230146
231147 /** Esperanto (Esperanto)
@@ -233,15 +149,8 @@
234150 $messages['eo'] = array(
235151 'externalpages' => 'Eksteraj Paĝoj',
236152 'externalpages-desc' => 'Trovas kaj montras paĝojn de eksteraj WMF-retejoj',
237 - 'externalpages-bad-year' => 'Malĝusta jaro estis enigita',
238 - 'externalpages-bad-language' => 'Malĝusta lingvo eniĝis',
239 - 'externalpages-bad-project' => 'Malĝusta projekto estis enigita',
240 - 'externalpages-no-project' => 'Neniu projekto estis enigita',
241153 'externalpages-bad-page' => 'Malĝusta paĝo specifiĝis',
242154 'externalpages-no-page' => 'Neniu paĝo estis enigita',
243 - 'externalpages-error-generic' => 'Eraraj okazis',
244 - 'externalpages-bad-url' => 'Malsukcesis ricevi URL-on',
245 - 'externalpages-bad-url-data' => 'Malsukcesis ricevi paĝenhavon',
246155 );
247156
248157 /** Spanish (Español)
@@ -251,15 +160,8 @@
252161 $messages['es'] = array(
253162 'externalpages' => 'Páginas externas',
254163 'externalpages-desc' => 'Recupera y muestra páginas de sitios remotos de la Fundación Wikimedia',
255 - 'externalpages-bad-year' => 'Año especificado incorrecto',
256 - 'externalpages-bad-language' => 'Idioma especificado mal',
257 - 'externalpages-bad-project' => 'Proyecto especificado mal',
258 - 'externalpages-no-project' => 'No se ha especificado un proyecto',
259164 'externalpages-bad-page' => 'Página especificada incorrecta',
260165 'externalpages-no-page' => 'No se ha especificado una página',
261 - 'externalpages-error-generic' => 'Se ha encontrado un error',
262 - 'externalpages-bad-url' => 'No se pudo recuperar la dirección URL',
263 - 'externalpages-bad-url-data' => 'No se pudo recuperar el contenido de la página',
264166 );
265167
266168 /** Estonian (Eesti)
@@ -267,13 +169,8 @@
268170 */
269171 $messages['et'] = array(
270172 'externalpages' => 'Välisleheküljed',
271 - 'externalpages-bad-year' => 'Aasta märgitud valesti',
272 - 'externalpages-bad-language' => 'Keel märgitud valesti',
273 - 'externalpages-bad-project' => 'Projekt märgitud valesti',
274 - 'externalpages-no-project' => 'Projekti ei märgitud',
275173 'externalpages-bad-page' => 'Lehekülg märgitud valesti',
276174 'externalpages-no-page' => 'Lehte ei märgitud',
277 - 'externalpages-error-generic' => 'Ilmnes viga',
278175 );
279176
280177 /** Finnish (Suomi)
@@ -283,15 +180,8 @@
284181 $messages['fi'] = array(
285182 'externalpages' => 'Ulkoiset sivut',
286183 'externalpages-desc' => 'Hakee ja näyttää sivuja ei-paikallisilta WMF-sivustoilta.',
287 - 'externalpages-bad-year' => 'Annettu vuosi virheellinen',
288 - 'externalpages-bad-language' => 'Annettu kieli virheellinen',
289 - 'externalpages-bad-project' => 'Annettu projekti virheellinen',
290 - 'externalpages-no-project' => 'Projektia ei annettu',
291184 'externalpages-bad-page' => 'Annetti sivu virheellinen',
292185 'externalpages-no-page' => 'Sivua ei annettu',
293 - 'externalpages-error-generic' => 'Tapahtui virhe',
294 - 'externalpages-bad-url' => 'URL-osoitteen hakeminen epäonnistui',
295 - 'externalpages-bad-url-data' => 'Sivun sisällön hakeminen epäonnistui',
296186 );
297187
298188 /** French (Français)
@@ -300,15 +190,8 @@
301191 $messages['fr'] = array(
302192 'externalpages' => 'Pages externes',
303193 'externalpages-desc' => 'Recouvre et affiche les pages depuis des sites distants de la WMF',
304 - 'externalpages-bad-year' => 'Année indiquée incorrecte',
305 - 'externalpages-bad-language' => 'Langue indiquée incorrecte',
306 - 'externalpages-bad-project' => 'Projet indiqué incorrect',
307 - 'externalpages-no-project' => 'Aucun projet indiqué',
308194 'externalpages-bad-page' => 'Page indiquée incorrecte',
309195 'externalpages-no-page' => 'Aucune page indiquée',
310 - 'externalpages-error-generic' => 'Erreur rencontrée',
311 - 'externalpages-bad-url' => "Échec pour récupérer l'URL",
312 - 'externalpages-bad-url-data' => 'Échec pour récupérer les données de la page',
313196 );
314197
315198 /** Franco-Provençal (Arpetan)
@@ -317,15 +200,8 @@
318201 $messages['frp'] = array(
319202 'externalpages' => 'Pâges de defôr',
320203 'externalpages-desc' => 'Recôvre et montre les pâges dês des setos distants de la WMF.',
321 - 'externalpages-bad-year' => 'An spècefiâ fôx',
322 - 'externalpages-bad-language' => 'Lengoua spècefiâ fôssa',
323 - 'externalpages-bad-project' => 'Projèt spècefiâ fôx',
324 - 'externalpages-no-project' => 'Gins de projèt spècefiâ',
325204 'externalpages-bad-page' => 'Pâge spècefiâ fôssa',
326205 'externalpages-no-page' => 'Gins de pâge spècefiâ',
327 - 'externalpages-error-generic' => 'Èrror rencontrâ',
328 - 'externalpages-bad-url' => 'Falyita por rècupèrar l’URL',
329 - 'externalpages-bad-url-data' => 'Falyita por rècupèrar les balyês de la pâge',
330206 );
331207
332208 /** Galician (Galego)
@@ -334,15 +210,8 @@
335211 $messages['gl'] = array(
336212 'externalpages' => 'Páxinas externas',
337213 'externalpages-desc' => 'Recupera e mostra as páxinas de sitios remotos con respecto á Fundación Wikimedia',
338 - 'externalpages-bad-year' => 'O ano especificado é incorrecto',
339 - 'externalpages-bad-language' => 'A lingua especificada é incorrecta',
340 - 'externalpages-bad-project' => 'O proxecto especificado é incorrecto',
341 - 'externalpages-no-project' => 'Non se especificou ningún proxecto',
342214 'externalpages-bad-page' => 'A páxina especificada é incorrecta',
343215 'externalpages-no-page' => 'Non se especificou ningunha páxina',
344 - 'externalpages-error-generic' => 'Atopouse un erro',
345 - 'externalpages-bad-url' => 'Non se puido recuperar o enderezo URL',
346 - 'externalpages-bad-url-data' => 'Non se puido recuperar o contido da páxina',
347216 );
348217
349218 /** Swiss German (Alemannisch)
@@ -351,15 +220,8 @@
352221 $messages['gsw'] = array(
353222 'externalpages' => 'Extärni Syte',
354223 'externalpages-desc' => 'Rueft Syte ab vu abglägene WMF-Sites un zeigt si aa',
355 - 'externalpages-bad-year' => 'Schlächt Johr spezifiziert',
356 - 'externalpages-bad-language' => 'Schlächti Sproch spezifiziert',
357 - 'externalpages-bad-project' => 'Schlächt Porjäkt spezifiziert',
358 - 'externalpages-no-project' => 'Kei Projäkt spezifiziert',
359224 'externalpages-bad-page' => 'Schlächti Syte spezifiziert',
360225 'externalpages-no-page' => 'Kei Syte spezifiziert',
361 - 'externalpages-error-generic' => 'Fähler gfunde',
362 - 'externalpages-bad-url' => 'Abruef vu dr URL fählgschlaa',
363 - 'externalpages-bad-url-data' => 'Abruef vum Syteinhalt fählgschlaa',
364226 );
365227
366228 /** Hebrew (עברית)
@@ -368,15 +230,8 @@
369231 $messages['he'] = array(
370232 'externalpages' => 'דפים חיצוניים',
371233 'externalpages-desc' => 'אחזור והצגה של עמודים מאתרים מרוחקים של קרן ויקימדיה',
372 - 'externalpages-bad-year' => 'השנה שצוינה שגויה',
373 - 'externalpages-bad-language' => 'השפה שצוינה שגויה',
374 - 'externalpages-bad-project' => 'המיזם שצוין שגוי',
375 - 'externalpages-no-project' => 'לא צוין דף',
376234 'externalpages-bad-page' => 'הדף שצוין שגוי',
377235 'externalpages-no-page' => 'לא צוין דף',
378 - 'externalpages-error-generic' => 'ארעה שגיאה',
379 - 'externalpages-bad-url' => 'ארע כשל באיחזור הכתובת',
380 - 'externalpages-bad-url-data' => 'ארע כשל באיחזור תכני הדף',
381236 );
382237
383238 /** Upper Sorbian (Hornjoserbsce)
@@ -385,15 +240,8 @@
386241 $messages['hsb'] = array(
387242 'externalpages' => 'Eksterne strony',
388243 'externalpages-desc' => 'Wotwołuje a zwobraznjuje strony z internetnych sydłow WMF',
389 - 'externalpages-bad-year' => 'Njepłaćiwe lěto podate',
390 - 'externalpages-bad-language' => 'Njepłaćiwa rěč podata',
391 - 'externalpages-bad-project' => 'Njepłaćiwy projekt podaty',
392 - 'externalpages-no-project' => 'Žadyn projekt podaty',
393244 'externalpages-bad-page' => 'Njepłaćiwa strona podata',
394245 'externalpages-no-page' => 'Žana strona podata',
395 - 'externalpages-error-generic' => 'Zmylk namakany',
396 - 'externalpages-bad-url' => 'URL njeda so wotwołać',
397 - 'externalpages-bad-url-data' => 'Wobsah strony njeda so wotwołać',
398246 );
399247
400248 /** Hungarian (Magyar)
@@ -402,15 +250,8 @@
403251 $messages['hu'] = array(
404252 'externalpages' => 'Külső lapok',
405253 'externalpages-desc' => 'Lapok lekérése és megjelenítése távoli WMF oldalakról',
406 - 'externalpages-bad-year' => 'A megadott év hibás',
407 - 'externalpages-bad-language' => 'A megadott nyelv hibás',
408 - 'externalpages-bad-project' => 'A megadott projekt hibás',
409 - 'externalpages-no-project' => 'Nincs megadva projekt',
410254 'externalpages-bad-page' => 'A megadott lap hibás',
411255 'externalpages-no-page' => 'Nincs megadott lap',
412 - 'externalpages-error-generic' => 'Hiba történt',
413 - 'externalpages-bad-url' => 'Nem sikerült lekérni az URL-t',
414 - 'externalpages-bad-url-data' => 'Nem sikerült lekérni a lap tartalmát',
415256 );
416257
417258 /** Interlingua (Interlingua)
@@ -419,15 +260,8 @@
420261 $messages['ia'] = array(
421262 'externalpages' => 'Paginas externe',
422263 'externalpages-desc' => 'Recupera e presenta paginas ex sitos WMF remote',
423 - 'externalpages-bad-year' => 'Anno invalide specificate',
424 - 'externalpages-bad-language' => 'Lingua invalide specificate',
425 - 'externalpages-bad-project' => 'Projecto invalide specificate',
426 - 'externalpages-no-project' => 'Nulle projecto specificate',
427264 'externalpages-bad-page' => 'Pagina invalide specificate',
428265 'externalpages-no-page' => 'Nulle pagina specificate',
429 - 'externalpages-error-generic' => 'Error incontrate',
430 - 'externalpages-bad-url' => 'Falleva de recuperar URL',
431 - 'externalpages-bad-url-data' => 'Falleva de recuperar contento de pagina',
432266 );
433267
434268 /** Indonesian (Bahasa Indonesia)
@@ -436,29 +270,15 @@
437271 $messages['id'] = array(
438272 'externalpages' => 'Halaman Eksternal',
439273 'externalpages-desc' => 'Mengambil dan menampilkan halaman dari situs WMF jauh',
440 - 'externalpages-bad-year' => 'Tahun salah',
441 - 'externalpages-bad-language' => 'Bahasa salah',
442 - 'externalpages-bad-project' => 'Proyek salah',
443 - 'externalpages-no-project' => 'Proyek tak diberikan',
444274 'externalpages-bad-page' => 'Halaman salah',
445275 'externalpages-no-page' => 'Halaman tak diberikan',
446 - 'externalpages-error-generic' => 'Ditemukan kesalahan',
447 - 'externalpages-bad-url' => 'Gagal mengambil URL',
448 - 'externalpages-bad-url-data' => 'Gagal mengambil isi halaman',
449276 );
450277
451278 /** Italian (Italiano)
452279 * @author Aushulz
453280 */
454281 $messages['it'] = array(
455 - 'externalpages-bad-year' => "Errore nell'immissione dell'anno",
456 - 'externalpages-bad-language' => "Errore nell'immissione della lingua",
457 - 'externalpages-bad-project' => "Errore nell'immissione del progetto",
458 - 'externalpages-no-project' => 'Nessun progetto specificato',
459282 'externalpages-bad-page' => "Errore nell'immissione della pagina",
460 - 'externalpages-error-generic' => 'Errore incontrato',
461 - 'externalpages-bad-url' => "Non è stato possibile ottenere l'URL",
462 - 'externalpages-bad-url-data' => 'Non è stato possibile ottenere i contenuti della pagina',
463283 );
464284
465285 /** Japanese (日本語)
@@ -467,30 +287,16 @@
468288 $messages['ja'] = array(
469289 'externalpages' => '外部ページ',
470290 'externalpages-desc' => '他の WMF サイトのページを読み込み表示する',
471 - 'externalpages-bad-year' => '不正な年の指定',
472 - 'externalpages-bad-language' => '不正な言語の指定',
473 - 'externalpages-bad-project' => '不正なプロジェクトの指定',
474 - 'externalpages-no-project' => 'プロジェクトの指定なし',
475291 'externalpages-bad-page' => '不正なページの指定',
476292 'externalpages-no-page' => 'ページの指定なし',
477 - 'externalpages-error-generic' => 'エラー発生',
478 - 'externalpages-bad-url' => 'URL の読み込みに失敗',
479 - 'externalpages-bad-url-data' => 'ページ内容の読み込みに失敗',
480293 );
481294
482295 /** Georgian (ქართული)
483296 * @author BRUTE
484297 */
485298 $messages['ka'] = array(
486 - 'externalpages-bad-year' => 'წელი შეცდომითაა მითითებული',
487 - 'externalpages-bad-language' => 'ენა შეცდომითაა მითითებული',
488 - 'externalpages-bad-project' => 'პროექტი შეცდომითა მითითებული',
489 - 'externalpages-no-project' => 'პროექტი არ არის მითითებული',
490299 'externalpages-bad-page' => 'გვერდი შეცდომითაა მითითებული',
491300 'externalpages-no-page' => 'გვერდი არ არის მითითებული',
492 - 'externalpages-error-generic' => 'მოხდა შეცდომა',
493 - 'externalpages-bad-url' => 'ვერ მოხერხდა URL-ს მიღება',
494 - 'externalpages-bad-url-data' => 'ვერ მოხერხდა გვერდის შიგთავსის მიღება',
495301 );
496302
497303 /** Ripoarisch (Ripoarisch)
@@ -499,15 +305,8 @@
500306 $messages['ksh'] = array(
501307 'externalpages' => 'Sigge vun Ußerhallef',
502308 'externalpages-desc' => 'Röf Sigge von ander Projäkte vun de WikiMedia-Schtefftung af, un zeijsch se aan.',
503 - 'externalpages-bad-year' => 'Et es e verkiehrt Johr aanjejovve',
504 - 'externalpages-bad-language' => 'En onjöltijje Shprooch wood aanjejovve',
505 - 'externalpages-bad-project' => 'En onjöltesch Projäk wood aanjejovve',
506 - 'externalpages-no-project' => 'Kei Projäk aanjejovve',
507309 'externalpages-bad-page' => 'En kappodde Sigg wood aanjejovve',
508310 'externalpages-no-page' => 'Keijn Sigg aanjejovve',
509 - 'externalpages-error-generic' => 'Ene Fähler es opjetrodde',
510 - 'externalpages-bad-url' => 'Kunnt dä <i lang="en">URL</i> nit eraan holle',
511 - 'externalpages-bad-url-data' => 'Kunnt dä Ennhald vun dä Sigg nit eraan holle',
512311 );
513312
514313 /** Luxembourgish (Lëtzebuergesch)
@@ -516,15 +315,8 @@
517316 $messages['lb'] = array(
518317 'externalpages' => 'Extern Säiten',
519318 'externalpages-desc' => 'Eriwwerhuelen a weise vu Säiten vu WMF-Siten déi op engem anere Server (remote) stinn',
520 - 'externalpages-bad-year' => 'Falscht Joer uginn',
521 - 'externalpages-bad-language' => 'Falsch Sprooch uginn',
522 - 'externalpages-bad-project' => 'Falsche Projet uginn',
523 - 'externalpages-no-project' => 'Kee Projet uginn',
524319 'externalpages-bad-page' => 'Falsch Säit uginn',
525320 'externalpages-no-page' => 'Keng Säit uginn',
526 - 'externalpages-error-generic' => 'Et ass e Feeler opgetrat',
527 - 'externalpages-bad-url' => 'Feeler beim recuperéiere vun der URL',
528 - 'externalpages-bad-url-data' => 'Et ass net gelong den Inhalt vun de Säiten eriwwerzehuelen',
529321 );
530322
531323 /** Macedonian (Македонски)
@@ -533,15 +325,8 @@
534326 $messages['mk'] = array(
535327 'externalpages' => 'Надворешни страници',
536328 'externalpages-desc' => 'Извлекува и прикажува страници од други WMF веб-страници',
537 - 'externalpages-bad-year' => 'Назначена е неправилна година',
538 - 'externalpages-bad-language' => 'Назначен е неправилен јазик',
539 - 'externalpages-bad-project' => 'Назначен е неправилен проект',
540 - 'externalpages-no-project' => 'Нема назначено проект',
541329 'externalpages-bad-page' => 'Назначена е неправилна страница',
542330 'externalpages-no-page' => 'Нема назначено страница',
543 - 'externalpages-error-generic' => 'Настана грешка',
544 - 'externalpages-bad-url' => 'Не можев да ја добијам URL адресата',
545 - 'externalpages-bad-url-data' => 'Не можев да ја добијам содржината на страницата',
546331 );
547332
548333 /** Malayalam (മലയാളം)
@@ -550,15 +335,8 @@
551336 $messages['ml'] = array(
552337 'externalpages' => 'പുറത്തുനിന്നുള്ള താളുകൾ',
553338 'externalpages-desc' => 'വിദൂര ഡബ്ല്യൂ.എം.എഫ്. സൈറ്റുകളിൽ നിന്നുമുള്ള താളുകൾ ശേഖരിക്കുകയും പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു',
554 - 'externalpages-bad-year' => 'നൽകിയ വർഷം തെറ്റാണ്',
555 - 'externalpages-bad-language' => 'നൽകിയ ഭാഷ തെറ്റാണ്',
556 - 'externalpages-bad-project' => 'വ്യക്തമാക്കിയ പദ്ധതി തെറ്റാണ്',
557 - 'externalpages-no-project' => 'പദ്ധതികളൊന്നും വ്യക്തമാക്കിയിട്ടില്ല',
558339 'externalpages-bad-page' => 'നൽകിയ താൾ തെറ്റാണ്',
559340 'externalpages-no-page' => 'താളുകളൊന്നും വ്യക്തമാക്കിയിട്ടില്ല',
560 - 'externalpages-error-generic' => 'പിഴവ് നേരിടപ്പെട്ടു',
561 - 'externalpages-bad-url' => 'യൂ.ആർ.എൽ. ശേഖരിക്കുന്നതിൽ പരാജയപ്പെട്ടു',
562 - 'externalpages-bad-url-data' => 'താളിന്റെ ഉള്ളടക്കം ശേഖരിക്കുന്നതിൽ പരാജയപ്പെട്ടു',
563341 );
564342
565343 /** Dutch (Nederlands)
@@ -567,15 +345,8 @@
568346 $messages['nl'] = array(
569347 'externalpages' => "Externe pagina's",
570348 'externalpages-desc' => "Haalt pagina's op van andere WMF-sites en geeft deze weer",
571 - 'externalpages-bad-year' => 'Er is een verkeerd jaar opgegeven',
572 - 'externalpages-bad-language' => 'Er is een verkeerde taal opgegeven',
573 - 'externalpages-bad-project' => 'Er is een verkeerd project opgegeven',
574 - 'externalpages-no-project' => 'Er is geen project opgegeven',
575349 'externalpages-bad-page' => 'Er is een verkeerde pagina opgegeven',
576350 'externalpages-no-page' => 'Er is geen pagina opgegeven',
577 - 'externalpages-error-generic' => 'Er is een fout opgetreden',
578 - 'externalpages-bad-url' => 'Het was niet mogelijk de URL op te halen',
579 - 'externalpages-bad-url-data' => 'Het was niet mogelijk de paginainhoud op te halen',
580351 );
581352
582353 /** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
@@ -585,15 +356,8 @@
586357 $messages['no'] = array(
587358 'externalpages' => 'Eksterne sider',
588359 'externalpages-desc' => 'Henter og viser sider fra andre WMF-steder',
589 - 'externalpages-bad-year' => 'Ugyldig år spesifisert',
590 - 'externalpages-bad-language' => 'Feil språk valgt',
591 - 'externalpages-bad-project' => 'Feil prosjekt valgt',
592 - 'externalpages-no-project' => 'Inget prosjekt spesifisert',
593360 'externalpages-bad-page' => 'Ugyldig side spesifisert',
594361 'externalpages-no-page' => 'Ingen side spesifisert',
595 - 'externalpages-error-generic' => 'Feil oppstått',
596 - 'externalpages-bad-url' => 'Feilet ved henting av URL',
597 - 'externalpages-bad-url-data' => 'Klarte ikke å hente sideinnhold',
598362 );
599363
600364 /** Occitan (Occitan)
@@ -602,15 +366,8 @@
603367 $messages['oc'] = array(
604368 'externalpages' => 'Paginas extèrnas',
605369 'externalpages-desc' => 'Recobrís e aficha las paginas dempuèi de sites distants de la WMF',
606 - 'externalpages-bad-year' => 'Annada indicada incorrècta',
607 - 'externalpages-bad-language' => 'Lenga indicada incorrècta',
608 - 'externalpages-bad-project' => 'Projècte indicat incorrècte',
609 - 'externalpages-no-project' => 'Cap de projècte pas indicat',
610370 'externalpages-bad-page' => 'Pagina indicada incorrècta',
611371 'externalpages-no-page' => 'Cap de pagina pas indicada',
612 - 'externalpages-error-generic' => 'Error rencontrada',
613 - 'externalpages-bad-url' => "Fracàs per recuperar l'URL",
614 - 'externalpages-bad-url-data' => 'Fracàs per recuperar las donadas de la pagina',
615372 );
616373
617374 /** Polish (Polski)
@@ -620,15 +377,8 @@
621378 $messages['pl'] = array(
622379 'externalpages' => 'Strony zewnętrzne',
623380 'externalpages-desc' => 'Pobiera i wyświetla strony ze zdalnych witryn Fundacji Wikimedia',
624 - 'externalpages-bad-year' => 'Podano nieprawidłowy rok',
625 - 'externalpages-bad-language' => 'Podano nieprawidłowy język',
626 - 'externalpages-bad-project' => 'Podano nieprawidłowy projekt',
627 - 'externalpages-no-project' => 'Nie określono projektu',
628381 'externalpages-bad-page' => 'Określono nieprawidłową stronę',
629382 'externalpages-no-page' => 'Nie określono strony',
630 - 'externalpages-error-generic' => 'Wystąpił błąd',
631 - 'externalpages-bad-url' => 'Nie można pobrać z URL',
632 - 'externalpages-bad-url-data' => 'Nie można pobrać zawartości strony',
633383 );
634384
635385 /** Piedmontese (Piemontèis)
@@ -638,15 +388,8 @@
639389 $messages['pms'] = array(
640390 'externalpages' => 'Pàgine esterne',
641391 'externalpages-desc' => 'A treuva e a visualisa dle pàgine da sit WMF leugn',
642 - 'externalpages-bad-year' => 'Ann pa bon spessificà',
643 - 'externalpages-bad-language' => 'Lenga pa bon-a spessificà',
644 - 'externalpages-bad-project' => 'Proget pa bon spessificà',
645 - 'externalpages-no-project' => 'Pa gnun proget spessificà',
646392 'externalpages-bad-page' => 'Pàgina pa bon-a spessificà',
647393 'externalpages-no-page' => 'Pa gnun-e pàgine spessificà',
648 - 'externalpages-error-generic' => 'Eror capità',
649 - 'externalpages-bad-url' => "Pa podù trové l'URL",
650 - 'externalpages-bad-url-data' => 'Pa podù trové ij contnù dla pàgina',
651394 );
652395
653396 /** Pashto (پښتو)
@@ -662,15 +405,8 @@
663406 $messages['pt'] = array(
664407 'externalpages' => 'Páginas Externas',
665408 'externalpages-desc' => 'Importa e apresenta páginas de sítios WMF remotos',
666 - 'externalpages-bad-year' => 'Ano incorrecto',
667 - 'externalpages-bad-language' => 'Língua incorrecta',
668 - 'externalpages-bad-project' => 'Projecto incorrecto',
669 - 'externalpages-no-project' => 'Projecto não introduzido',
670409 'externalpages-bad-page' => 'Página incorrecta',
671410 'externalpages-no-page' => 'Página não introduzida',
672 - 'externalpages-error-generic' => 'Erro detectado',
673 - 'externalpages-bad-url' => 'Importação da URL falhou',
674 - 'externalpages-bad-url-data' => 'Importação do conteúdo da página falhou',
675411 );
676412
677413 /** Brazilian Portuguese (Português do Brasil)
@@ -680,15 +416,8 @@
681417 $messages['pt-br'] = array(
682418 'externalpages' => 'Páginas Externas',
683419 'externalpages-desc' => 'Importar e apresentar páginas de sítios WMF remotos',
684 - 'externalpages-bad-year' => 'Ano incorreto',
685 - 'externalpages-bad-language' => 'Língua incorreta',
686 - 'externalpages-bad-project' => 'Projeto incorrecto',
687 - 'externalpages-no-project' => 'Projeto não especificado',
688420 'externalpages-bad-page' => 'Página incorrecta',
689421 'externalpages-no-page' => 'Página não especificada',
690 - 'externalpages-error-generic' => 'Erro detectado',
691 - 'externalpages-bad-url' => 'Importação da URL falhou',
692 - 'externalpages-bad-url-data' => 'Importação do conteúdo da página falhou',
693422 );
694423
695424 /** Romanian (Română)
@@ -696,15 +425,8 @@
697426 */
698427 $messages['ro'] = array(
699428 'externalpages' => 'Pagini externe',
700 - 'externalpages-bad-year' => 'An greşit specificat',
701 - 'externalpages-bad-language' => 'Limbă greşită specificată',
702 - 'externalpages-bad-project' => 'Proiect greşit specificat',
703 - 'externalpages-no-project' => 'Niciun proiect specificat',
704429 'externalpages-bad-page' => 'Pagină greşită specificată',
705430 'externalpages-no-page' => 'Nicio pagină specificată',
706 - 'externalpages-error-generic' => 'Eroare întâlnită',
707 - 'externalpages-bad-url' => 'Acţiune eşuată pentru a prelua URL',
708 - 'externalpages-bad-url-data' => 'Acţiune eşuată pentru a prelua conţinutul paginii',
709431 );
710432
711433 /** Tarandíne (Tarandíne)
@@ -713,15 +435,8 @@
714436 $messages['roa-tara'] = array(
715437 'externalpages' => 'Pàggene esterne',
716438 'externalpages-desc' => 'Pigghie e face vedè pàggene da le site remote WMF',
717 - 'externalpages-bad-year' => 'Anne sbagliate specificate',
718 - 'externalpages-bad-language' => 'Lengà sbagliate specificate',
719 - 'externalpages-bad-project' => 'Progette sbagliate specificate',
720 - 'externalpages-no-project' => 'Nisciune progette specificate',
721439 'externalpages-bad-page' => 'Pàgena sbagliate specificate',
722440 'externalpages-no-page' => 'Nisciuna pàgene specificate',
723 - 'externalpages-error-generic' => 'Errore acchiate',
724 - 'externalpages-bad-url' => "Recupere de l'URL fallite",
725 - 'externalpages-bad-url-data' => "Recupere de le condenute d'a pàgene fallite",
726441 );
727442
728443 /** Russian (Русский)
@@ -730,15 +445,8 @@
731446 $messages['ru'] = array(
732447 'externalpages' => 'Внешние страницы',
733448 'externalpages-desc' => 'Извлекает и отображает страницы с других сайтов WMF',
734 - 'externalpages-bad-year' => 'Указан неправильный год',
735 - 'externalpages-bad-language' => 'Указан неправильный язык',
736 - 'externalpages-bad-project' => 'Указан неправильный проект',
737 - 'externalpages-no-project' => 'Не указан проект',
738449 'externalpages-bad-page' => 'Указана неправильная страница',
739450 'externalpages-no-page' => 'Не указана страница',
740 - 'externalpages-error-generic' => 'Произошла ошибка',
741 - 'externalpages-bad-url' => 'Не удалось получить URL',
742 - 'externalpages-bad-url-data' => 'Не удалось получить содержание страницы',
743451 );
744452
745453 /** Slovak (Slovenčina)
@@ -747,15 +455,8 @@
748456 $messages['sk'] = array(
749457 'externalpages' => 'Externé stránky',
750458 'externalpages-desc' => 'Získa a zobrazí stránky zo vzdialených lokalít WMF',
751 - 'externalpages-bad-year' => 'Uvedený chybný rok',
752 - 'externalpages-bad-language' => 'Uvedený chybný jazyk',
753 - 'externalpages-bad-project' => 'Uvedený chybný projekt',
754 - 'externalpages-no-project' => 'Neuvedený projekt',
755459 'externalpages-bad-page' => 'Uvedená chybná stránka',
756460 'externalpages-no-page' => 'Neuvedená stránka',
757 - 'externalpages-error-generic' => 'Vyskytla sa chyba',
758 - 'externalpages-bad-url' => 'Nepodarilo sa získať URL',
759 - 'externalpages-bad-url-data' => 'Nepodarilo sa získať obsah stránky',
760461 );
761462
762463 /** Swedish (Svenska)
@@ -765,15 +466,8 @@
766467 $messages['sv'] = array(
767468 'externalpages' => 'Externa sidor',
768469 'externalpages-desc' => 'Hämtar och visar sidor från externa WMF-sajter',
769 - 'externalpages-bad-year' => 'Ogiltigt år angivet',
770 - 'externalpages-bad-language' => 'Ogiltigt språk angivet',
771 - 'externalpages-bad-project' => 'Ogiltigt projekt angivet',
772 - 'externalpages-no-project' => 'Inget projekt angivet',
773470 'externalpages-bad-page' => 'Ogiltig sida angiven',
774471 'externalpages-no-page' => 'Ingen sida angiven',
775 - 'externalpages-error-generic' => 'Stött på fel',
776 - 'externalpages-bad-url' => 'Misslyckades med att hämta URL',
777 - 'externalpages-bad-url-data' => 'Misslyckades med att hämta sidinnehåll',
778472 );
779473
780474 /** Telugu (తెలుగు)
@@ -781,9 +475,6 @@
782476 */
783477 $messages['te'] = array(
784478 'externalpages' => 'బయటి పేజీలు',
785 - 'externalpages-bad-year' => 'తప్పుడు సంవత్సరాన్ని ఇచ్చారు',
786 - 'externalpages-bad-language' => 'తప్పుడు భాషని ఇచ్చారు',
787 - 'externalpages-no-project' => 'ప్రాజెక్టుని పేర్కొనలేదు',
788479 'externalpages-bad-page' => 'తప్పుడు పేజీని ఇచ్చారు',
789480 'externalpages-no-page' => 'పేజీని పేర్కొనలేదు',
790481 );
@@ -794,15 +485,8 @@
795486 $messages['tk'] = array(
796487 'externalpages' => 'Daşarky Sahypalar',
797488 'externalpages-desc' => 'Uzak WMF saýtlaryndan sahypalary alýar we görkezýär',
798 - 'externalpages-bad-year' => 'Nädogry ýyl görkezildi',
799 - 'externalpages-bad-language' => 'Nädogry dil görkezildi',
800 - 'externalpages-bad-project' => 'Nädogry taslama görkezildi',
801 - 'externalpages-no-project' => 'Hiç hili taslama görkezilmedi',
802489 'externalpages-bad-page' => 'Nädogry sahypa görkezildi',
803490 'externalpages-no-page' => 'Hiç hili sahypa görkezilmedi',
804 - 'externalpages-error-generic' => 'Säwlige duçar bolundy',
805 - 'externalpages-bad-url' => 'URL almaklyk şowsuz',
806 - 'externalpages-bad-url-data' => 'Sahypa mazmunyny almaklyk şowsuz',
807491 );
808492
809493 /** Turkish (Türkçe)
@@ -811,15 +495,8 @@
812496 $messages['tr'] = array(
813497 'externalpages' => 'Dış sayfalar',
814498 'externalpages-desc' => 'Uzak WMF sitelerinden sayfaları alır ve görüntüler',
815 - 'externalpages-bad-year' => 'Yanlış yıl belirtildi',
816 - 'externalpages-bad-language' => 'Yanlış dil belirtildi',
817 - 'externalpages-bad-project' => 'Yanlış proje belirtildi',
818 - 'externalpages-no-project' => 'Hiçbir proje belirtilmedi',
819499 'externalpages-bad-page' => 'Yanlış sayfa belirtildi',
820500 'externalpages-no-page' => 'Hiçbir sayfa belirtilmedi',
821 - 'externalpages-error-generic' => 'Hatayla karşılaşıldı',
822 - 'externalpages-bad-url' => 'URL alımı başarısız',
823 - 'externalpages-bad-url-data' => 'Sayfa içeriği alımı başarısız',
824501 );
825502
826503 /** Ukrainian (Українська)
@@ -829,15 +506,8 @@
830507 $messages['uk'] = array(
831508 'externalpages' => 'Зовнішні сторінки',
832509 'externalpages-desc' => 'Отримує і показує сторінки з віддалених WMF сайтів',
833 - 'externalpages-bad-year' => 'Неправильно вказаний рік',
834 - 'externalpages-bad-language' => 'Неправильно вказана мова',
835 - 'externalpages-bad-project' => 'Неправильно вказаний проект',
836 - 'externalpages-no-project' => 'Не вказано проект',
837510 'externalpages-bad-page' => 'Неправильно вказана сторінка',
838511 'externalpages-no-page' => 'Не вказано сторінку',
839 - 'externalpages-error-generic' => 'Виникла помилка',
840 - 'externalpages-bad-url' => 'Не вдалося отримати URL',
841 - 'externalpages-bad-url-data' => 'Не вдалося отримати зміст сторінки',
842512 );
843513
844514 /** Vèneto (Vèneto)
@@ -846,15 +516,8 @@
847517 $messages['vec'] = array(
848518 'externalpages' => 'Pagine esterne',
849519 'externalpages-desc' => 'Recupera e fà védar pagine da siti WMF remoti',
850 - 'externalpages-bad-year' => 'Ano mia giusto',
851 - 'externalpages-bad-language' => 'Lengua mia giusta',
852 - 'externalpages-bad-project' => 'Projeto mia giusto',
853 - 'externalpages-no-project' => 'Nissun projeto indicà',
854520 'externalpages-bad-page' => 'Pagina mia giusta',
855521 'externalpages-no-page' => 'Nissuna pagina indicà',
856 - 'externalpages-error-generic' => 'Xe vegnesto fora un eròr',
857 - 'externalpages-bad-url' => "No se riesse a recuperar l'URL",
858 - 'externalpages-bad-url-data' => 'No se riesse a recuperar el contenuto de la pagina',
859522 );
860523
861524 /** Vietnamese (Tiếng Việt)
@@ -863,28 +526,19 @@
864527 $messages['vi'] = array(
865528 'externalpages' => 'Trang ngoài',
866529 'externalpages-desc' => 'Lấy và hiển thị nội dung của các trang khác trực thuộc Quỹ Wikimedia',
867 - 'externalpages-bad-year' => 'Đã định rõ năm không hợp lệ',
868 - 'externalpages-bad-language' => 'Đã định rõ ngôn ngữ không hợp lệ',
869 - 'externalpages-bad-project' => 'Đã định rõ dự án không hợp lệ',
870 - 'externalpages-no-project' => 'Chưa định rõ dự án',
871530 'externalpages-bad-page' => 'Đã định rõ trang không hợp lệ',
872531 'externalpages-no-page' => 'Chưa định rõ trang',
873 - 'externalpages-error-generic' => 'Đã gặp lỗi',
874 - 'externalpages-bad-url' => 'Không thể truy cập URL',
875 - 'externalpages-bad-url-data' => 'Không thể lấy nội dung trang',
876532 );
877533
878534 /** Simplified Chinese (‪中文(简体)‬)
879535 * @author Liangent
880536 */
881537 $messages['zh-hans'] = array(
882 - 'externalpages-bad-url-data' => '获取页面内容失败',
883538 );
884539
885540 /** Traditional Chinese (‪中文(繁體)‬)
886541 * @author Liangent
887542 */
888543 $messages['zh-hant'] = array(
889 - 'externalpages-bad-url-data' => '獲取頁面內容失敗',
890544 );
891545
Index: trunk/extensions/ExternalPages/ExternalPages.php
@@ -11,14 +11,48 @@
1212 * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 3.0 or later
1313 */
1414
15 -if ( !defined( 'MEDIAWIKI' ) ) {
16 - echo <<<EOT
17 -To install the ExternalPages extension, put the following line in LocalSettings.php:
18 -require_once( "\$IP/extensions/ExternalPages/SpecialExternalPages.php" );
19 -EOT;
20 - exit( 1 );
21 -}
 15+/** Configuration */
2216
 17+/**
 18+ * Expiry time for the server-side source cache and the squid cache, in seconds
 19+ */
 20+$wgExternalPagesCacheExpiry = 600;
 21+
 22+/**
 23+ * Allowed page configuration.
 24+ * This should be a map of local subpage name to a remote page info structure.
 25+ * Valid keys in the remote page structure are:
 26+ * site: A site as specified in $wgExternalPagesSites
 27+ * title: The full page title, as you would use in an internal link
 28+ *
 29+ * For example:
 30+ *
 31+ * $wgExternalPages = array(
 32+ * 'news' => array(
 33+ * 'site' => 'wmf',
 34+ * 'title' => 'Current events'
 35+ * )
 36+ * );
 37+ *
 38+ * Then this page becomes accessible via [[Special:ExternalPages/news]].
 39+ */
 40+$wgExternalPages = array();
 41+
 42+/**
 43+ * Site configuration
 44+ * Allowed keys are:
 45+ * scriptUrl: the URL of index.php
 46+ *
 47+ * Example:
 48+ *
 49+ * $wgExternalPagesSites = array(
 50+ * 'wmf' => array( 'scriptUrl' => 'http://wikimediafoundation.org/w/index.php' )
 51+ * );
 52+ */
 53+$wgExternalPagesSites = array();
 54+
 55+/** Registration */
 56+
2357 // Extension credits that will show up on Special:Version
2458 $wgExtensionCredits['specialpage'][] = array(
2559 'name' => 'ExternalPages',
@@ -36,15 +70,3 @@
3771 $wgAutoloadClasses['ExternalPages'] = $dir . 'ExternalPages_body.php';
3872
3973 $wgSpecialPages['ExternalPages'] = 'ExternalPages';
40 -$wgSpecialPageGroups['ExternalPages'] = 'users';
41 -$wgHooks['LanguageGetSpecialPageAliases'][] = 'externalPagesLocalizedPageName';
42 -
43 -function externalPagesLocalizedPageName( &$specialPageArray, $code ) {
44 - wfLoadExtensionMessages( 'ExternalPages' );
45 - $text = wfMsg( 'externalpages' );
46 -
47 - # Convert from title in text form to DBKey and put it into the alias array:
48 - $title = Title::newFromText( $text );
49 - $specialPageArray['ExternalPages'][] = $title->getDBKey();
50 - return true;
51 -}
\ No newline at end of file

Status & tagging log