diff options
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/ConfirmEdit/Asirra.class.php | 55 | ||||
-rw-r--r-- | extensions/ConfirmEdit/Asirra.i18n.php | 549 | ||||
-rw-r--r-- | extensions/ConfirmEdit/Asirra.php | 42 | ||||
-rw-r--r-- | extensions/ConfirmEdit/README | 4 | ||||
-rw-r--r-- | extensions/ConfirmEdit/resources/ext.confirmEdit.asirra.js | 54 | ||||
-rw-r--r-- | extensions/PdfHandler/CreatePdfThumbnailsJob.class.php | 126 | ||||
-rw-r--r-- | extensions/PdfHandler/PdfHandler.i18n.php | 1186 | ||||
-rw-r--r-- | extensions/PdfHandler/PdfHandler.image.php | 309 | ||||
-rw-r--r-- | extensions/PdfHandler/PdfHandler.php | 64 | ||||
-rw-r--r-- | extensions/PdfHandler/PdfHandler_body.php | 362 | ||||
-rw-r--r-- | extensions/SimpleAntiSpam/SimpleAntiSpam.php | 5 | ||||
-rw-r--r-- | extensions/Vector/README | 9 | ||||
-rw-r--r-- | extensions/Vector/Vector.php | 6 |
13 files changed, 20 insertions, 2751 deletions
diff --git a/extensions/ConfirmEdit/Asirra.class.php b/extensions/ConfirmEdit/Asirra.class.php deleted file mode 100644 index ae1178a1..00000000 --- a/extensions/ConfirmEdit/Asirra.class.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** - * @author Bachsau - * @author Niklas Laxström - */ - -class Asirra extends SimpleCaptcha { - public $asirra_clientscript = '//challenge.asirra.com/js/AsirraClientSide.js'; - - // As we don't have to store anything but some other things to do, - // we're going to replace that constructor completely. - function __construct() { - global $wgExtensionAssetsPath; - $this->asirra_localpath = "$wgExtensionAssetsPath/ConfirmEdit"; - } - - function getForm() { - global $wgOut; - - $wgOut->addModules( 'ext.confirmEdit.asirra' ); - $js = Html::linkedScript( $this->asirra_clientscript ); - - $message = Xml::encodeJsVar( wfMessage( 'asirra-createaccount-fail' )->plain() ); - $js .= Html::inlineScript( <<<JAVASCRIPT -var asirra_js_failed = '$message'; -JAVASCRIPT - ); - $js .= '<noscript>' . wfMessage( 'asirra-nojs' )->parse() . '</noscript>'; - return $js; - } - - function getMessage( $action ) { - $name = 'asirra-' . $action; - $text = wfMessage( $name )->text(); - # Obtain a more tailored message, if possible, otherwise, fall - # back to the default for edits - return wfMessage( $name, $text )->isDisabled() ? wfMessage( 'asirra-edit' )->text() : $text; - } - - function passCaptcha() { - global $wgRequest; - - $ticket = $wgRequest->getVal( 'Asirra_Ticket' ); - $api = 'http://challenge.asirra.com/cgi/Asirra?'; - $params = array( - 'action' => 'ValidateTicket', - 'ticket' => $ticket, - ); - - $response = Http::get( $api . wfArrayToCgi( $params ) ); - $xml = simplexml_load_string( $response ); - $result = $xml->xpath( '/AsirraValidation/Result' ); - return strval( $result[0] ) === 'Pass'; - } -} diff --git a/extensions/ConfirmEdit/Asirra.i18n.php b/extensions/ConfirmEdit/Asirra.i18n.php deleted file mode 100644 index 23190c29..00000000 --- a/extensions/ConfirmEdit/Asirra.i18n.php +++ /dev/null @@ -1,549 +0,0 @@ -<?php -/** - * Internationalisation file for the Asirra module of the ConfirmEdit - * extension. - * - * @file - * @ingroup Extensions - */ - -$messages = array(); - -$messages['en'] = array( - 'asirra-desc' => 'Asirra module for ConfirmEdit', - 'asirra-edit' => 'To protect the wiki against automated edit spam, we kindly ask you to select just the cat photos in the box below:', - 'asirra-addurl' => 'Your edit includes new external links. To protect the wiki against automated edit spam, we kindly ask you to select just the cat photos in the box below:', - 'asirra-badlogin' => 'To protect the wiki against automated password cracking, we kindly ask you to select just the cat photos in the box below:', - 'asirra-createaccount' => 'To protect the wiki against automated account creation, we kindly ask you to select just the cat photos in the box below:', - 'asirra-createaccount-fail' => "Please correctly identify the cats.", - 'asirra-create' => 'To protect the wiki against automated page creation, we kindly ask you to select just the cat photos in the box below:', - 'asirra-nojs' => '\'\'\'Please enable JavaScript and resubmit the page.\'\'\'', - 'asirra-failed' => 'Please identify all cat images', -); - -/** Message documentation (Message documentation) - * @author 2nd-player - * @author Beta16 - * @author Raymond - * @author Shirayuki - */ -$messages['qqq'] = array( - 'asirra-desc' => '{{desc|name=Asirra|url=http://www.mediawiki.org/wiki/Extension:Asirra}}', - 'asirra-edit' => '{{Related|ConfirmEdit-edit}}', - 'asirra-addurl' => '{{Related|ConfirmEdit-addurl}}', - 'asirra-badlogin' => '{{Related|ConfirmEdit-badlogin}}', - 'asirra-createaccount' => '{{Related|ConfirmEdit-createaccount}}', - 'asirra-createaccount-fail' => 'Used as failure message in JavaScript code. -{{Related|ConfirmEdit-createaccount-fail}}', - 'asirra-create' => '{{Related|ConfirmEdit-create}}', - 'asirra-nojs' => 'Used in HTML <code><nowiki><noscript></nowiki></code> tag.', - 'asirra-failed' => 'Used as alert message in JavaScript code.', -); - -/** Asturian (asturianu) - * @author Xuacu - */ -$messages['ast'] = array( - 'asirra-desc' => 'Módulu Asirra pa ConfirmEdit', - 'asirra-edit' => "Pa protexer la wiki escontra'l spam d'edición automáticu, pidimos-y qu'esbille namái les fotos de gatos del cuadru d'abaxo:", - 'asirra-addurl' => "La so edición incluye enllaces esternos nuevos. Pa protexer la wiki escontra'l spam automáticu, pidimos-y qu'esbille namái les fotos de gatos del cuadru d'abaxo:", - 'asirra-badlogin' => "Pa protexer la wiki escontra'l frayamientu de claves automáticu, pidimos-y qu'esbille namái les fotos de gatos del cuadru d'abaxo:", - 'asirra-createaccount' => "Pa protexer la wiki escontra la creación de cuentes automática, pidimos-y qu'esbille namái les fotos de gatos del cuadru d'abaxo:", - 'asirra-createaccount-fail' => 'Identifique correutamente los gatos.', - 'asirra-create' => "Pa protexer la wiki escontra la creación de páxines automática, pidimos-y qu'esbille namái les fotos de gatos del cuadru d'abaxo:", - 'asirra-nojs' => "'''Por favor active JavaScript y vuelva a unviar la páxina.'''", - 'asirra-failed' => 'Identifique toles imaxes de gatos', -); - -/** Belarusian (Taraškievica orthography) (беларуская (тарашкевіца)) - * @author EugeneZelenko - * @author Jim-by - * @author Wizardist - */ -$messages['be-tarask'] = array( - 'asirra-desc' => 'Модуль Asirra для ConfirmEdit', - 'asirra-edit' => 'Для абароны супраць спаму, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', # Fuzzy - 'asirra-addurl' => 'Вашае рэдагаваньне ўтрымлівае новыя вонкавыя спасылкі. Для абароны супраць спаму, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', # Fuzzy - 'asirra-badlogin' => 'Для абароны супраць аўтаматычнага падбору паролю, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', # Fuzzy - 'asirra-createaccount' => 'Для абароны супраць аўтаматычнага стварэньня рахункаў, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', # Fuzzy - 'asirra-createaccount-fail' => 'Калі ласка, слушна выберыце катоў.', - 'asirra-create' => 'Для абароны супраць аўтаматычнага стварэньня старонак, калі ласка, выберыце толькі фота з катом ў полі ніжэй:', # Fuzzy - 'asirra-nojs' => "'''Калі ласка, дазвольце JavaScript і дашліце старонку зноў.'''", - 'asirra-failed' => 'Калі ласка, вызначце ўсе выявы з катамі', -); - -/** Breton (brezhoneg) - * @author Fohanno - */ -$messages['br'] = array( - 'asirra-nojs' => "'''Gweredekait JavaScript, mar plij, hag adkasit ar bajenn.'''", -); - -/** Czech (česky) - * @author Vks - */ -$messages['cs'] = array( - 'asirra-createaccount-fail' => 'Prosíme, správně identifikujte kočky.', -); - -/** German (Deutsch) - * @author Kghbln - * @author Metalhead64 - */ -$messages['de'] = array( - 'asirra-desc' => 'Ermöglicht die Nutzung des Anti-Spam-Moduls Asirra', - 'asirra-edit' => 'Zum Schutz des Wikis vor automatisiertem Spam bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', - 'asirra-addurl' => 'Deine Bearbeitung enthält neue externe Links. Zum Schutz des Wikis vor automatisiertem Spam bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', - 'asirra-badlogin' => 'Zum Schutz des Wikis gegen automatisiertes Knacken von Passwörtern bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', - 'asirra-createaccount' => 'Zum Schutz des Wikis gegen automatisiertes Erstellen von Benutzerkonten bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', - 'asirra-createaccount-fail' => 'Bitte wähle nur die Fotos mit Katzen aus.', - 'asirra-create' => 'Zum Schutz des Wikis gegen automatisiertes Erstellen von Seiten bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', - 'asirra-nojs' => "'''Bitte JavaScript aktivieren und die Seiten nochmals Speichern.'''", - 'asirra-failed' => 'Bitte wähle nur die Fotos mit Katzen aus.', -); - -/** German (formal address) (Deutsch (Sie-Form)) - * @author Kghbln - */ -$messages['de-formal'] = array( - 'asirra-addurl' => 'Ihre Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spam bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', # Fuzzy - 'asirra-badlogin' => 'Zum Schutz gegen automatisiertes Knacken von Passwörtern bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', # Fuzzy - 'asirra-createaccount' => 'Zum Schutz gegen automatisiertes Erstellen von Benutzerkonten bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', # Fuzzy - 'asirra-createaccount-fail' => 'Bitte wählen Sie nur die Fotos mit Katzen aus.', - 'asirra-create' => 'Zum Schutz gegen automatisiertes Erstellen von Seiten bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:', # Fuzzy - 'asirra-failed' => 'Bitte wählen Sie nur die Fotos mit Katzen aus.', -); - -/** Zazaki (Zazaki) - * @author Erdemaslancan - */ -$messages['diq'] = array( - 'asirra-desc' => 'Qandê Asirra modulê RaştkerdenVurnen', -); - -/** Spanish (español) - * @author Armando-Martin - */ -$messages['es'] = array( - 'asirra-desc' => 'Módulo de Asirra para ConfirmEdit', - 'asirra-edit' => 'Para ayudar a protegernos contra el spam de edición automática, seleccione sólo las fotos de gatos en el cuadro siguiente:', # Fuzzy - 'asirra-addurl' => 'Su edición incluye nuevos enlaces externos. Para ayudar a protegernos contra el spam automatizado, por favor, seleccione solo las fotos de gato en el cuadro siguiente:', # Fuzzy - 'asirra-badlogin' => 'Para ayudar a protegernos del robo automatizado de contraseñas, seleccione sólo las fotos de gatos en el cuadro siguiente:', # Fuzzy - 'asirra-createaccount' => 'Para ayudar a protegernos contra la creación automatizada de cuentas, seleccione sólo las fotos de gato en el cuadro siguiente:', # Fuzzy - 'asirra-createaccount-fail' => 'Identifique correctamente los gatos.', - 'asirra-create' => 'Para ayudar a protegernos contra la creación automática de páginas, seleccione sólo las fotos de gato en el cuadro siguiente:', # Fuzzy - 'asirra-nojs' => "'''Por favor active JavaScript y vuelva a la página.'''", - 'asirra-failed' => 'Identifique todas las imágenes de gatos', -); - -/** Finnish (suomi) - * @author VezonThunder - */ -$messages['fi'] = array( - 'asirra-desc' => 'Asirra-moduuli muokkauksen varmennukseen', - 'asirra-edit' => 'Suojana automaattisia roskamuokkauksia vastaan sinun on valittava kissan kuvat laatikosta alla:', # Fuzzy - 'asirra-addurl' => 'Muokkauksesi sisältää uusia ulkoisia linkkejä. Suojana automaattista roskapostia vastaan sinun on valittava kissan kuvat laatikosta alla:', # Fuzzy - 'asirra-badlogin' => 'Suojana automaattisia salasanamurtoja vastaan sinun on valittava kissan kuvat laatikosta alla:', # Fuzzy - 'asirra-createaccount' => 'Suojana automaattista tunnusten luontia vastaan sinun on valittava kissan kuvat laatikosta alla:', # Fuzzy - 'asirra-createaccount-fail' => 'Tunnista kissat.', - 'asirra-create' => 'Suojana automaattista sivujen luontia vastaan sinun on valittava kissan kuvat laatikosta alla:', # Fuzzy - 'asirra-nojs' => "'''Salli JavaScript ja lähetä uudelleen.'''", - 'asirra-failed' => 'Tunnista kaikki kissan kuvat', -); - -/** French (français) - * @author Gomoko - * @author Nicolas NALLET - * @author Seb35 - */ -$messages['fr'] = array( - 'asirra-desc' => 'Module Asirra pour ConfirmEdit', - 'asirra-edit' => 'Pour protéger le wiki contre le spam d’édition automatique, nous vous demandons de bien vouloir sélectionner uniquement les photos de chats dans la boîte ci-dessous :', - 'asirra-addurl' => 'Votre édition contient des liens externes. Pour protéger le wiki contre le spam de modification automatique, nous vous demandons de bien vouloir sélectionner uniquement les photos de chats dans la boîte ci-dessous :', - 'asirra-badlogin' => 'Pour protéger le wiki des essais automatiques de cassage de mot de passe, nous vous demandons de bien vouloir sélectionner uniquement les photos de chats dans la boîte ci-dessous :', - 'asirra-createaccount' => 'Pour protéger le wiki contre la création automatique de comptes, nous vous demandons de bien vouloir sélectionner uniquement les photos de chats dans la boîte ci-dessous :', - 'asirra-createaccount-fail' => 'Veuillez identifier correctement les chats.', - 'asirra-create' => 'Pour protéger le wiki contre la création automatique de pages, nous vous demandons de bien vouloir sélectionner uniquement les photos de chats dans la boîte ci-dessous :', - 'asirra-nojs' => "'''Veuillez activer le JavaScript et re-soumettre la page.'''", - 'asirra-failed' => 'Veuillez identifier toutes les images de chat', -); - -/** Galician (galego) - * @author Toliño - */ -$messages['gl'] = array( - 'asirra-desc' => 'Módulo Asirra para ConfirmEdit', - 'asirra-edit' => 'Para protexer o wiki contra o spam automático, seleccione só as fotos de gatos na caixa:', - 'asirra-addurl' => 'A súa edición inclúe novas ligazóns externas. Para protexer o wiki contra o spam automático, seleccione só as fotos de gatos na caixa:', - 'asirra-badlogin' => 'Para protexer o wiki contra o roubo de contrasinais, seleccione só as fotos de gatos na caixa:', - 'asirra-createaccount' => 'Para protexer o wiki contra a creación automática de contas, seleccione só as fotos de gatos na caixa:', - 'asirra-createaccount-fail' => 'Identifique correctamente os gatos.', - 'asirra-create' => 'Para protexer o wiki contra a creación automática de páxinas, seleccione só as fotos de gatos na caixa:', - 'asirra-nojs' => "'''Active o JavaScript e volva enviar a páxina.'''", - 'asirra-failed' => 'Identifique todas as fotos de gatos', -); - -/** Upper Sorbian (hornjoserbsce) - * @author Michawiki - */ -$messages['hsb'] = array( - 'asirra-desc' => 'Modul Asirra za ConfirmEdit', - 'asirra-edit' => 'Za škit přećiwo awtomatizowanemu spamej, prošu wubjer jenož fota kóčkow w slědowacym polu:', # Fuzzy - 'asirra-addurl' => 'Twoja změna wobsahuje nowe eksterne wotkazy. Za škit přećiwo awtomatizowanemu spamej, prošu wubjer jenož fota kóčkow w slědowacym polu:', # Fuzzy - 'asirra-badlogin' => 'Za škit přećiwo awtomatizowanemu złamanju hesłow, prošu wubjer jenož fota kóčkow w slědowacym polu:', # Fuzzy - 'asirra-createaccount' => 'Za škit přećiwo awtomatiskemu wutworjenju konta, prošu wubjer jenož fota kóčkow w slědowacym polu:', # Fuzzy - 'asirra-createaccount-fail' => 'Prošu identifikuj kóčki.', - 'asirra-create' => 'Za škit přećiwo awtomatiskemu wutworjenju strony, prošu wubjer jenož fota kóčkow w slědowacym polu:', # Fuzzy - 'asirra-nojs' => "'''Prošu zmóžń JavaScript a składuj stronu hišće raz.'''", - 'asirra-failed' => 'Prošu identifikuj wšě wobrazy z kóčkami', -); - -/** Interlingua (interlingua) - * @author McDutchie - */ -$messages['ia'] = array( - 'asirra-desc' => 'Modulo de Asirra pro ConfirmEdit', - 'asirra-edit' => 'Pro adjutar a proteger le wiki contra le spam automatisate, per favor selige solmente le photos de cattos in le quadro sequente:', - 'asirra-addurl' => 'Iste modification include nove ligamines externe. Pro adjutar a proteger le wiki contra le spam automatisate, per favor selige solmente le photos de cattos in le quadro sequente:', - 'asirra-badlogin' => 'Pro adjutar a proteger le wiki contra le furto automatisate de contrasignos, per favor selige solmente le photos de cattos in le quadro sequente:', - 'asirra-createaccount' => 'Pro adjutar a proteger le wiki contra le creation automatisate de contos, per favor selige solmente le photos de cattos in le quadro sequente:', - 'asirra-createaccount-fail' => 'Per favor identifica correctemente le cattos.', - 'asirra-create' => 'Pro adjutar a proteger le wiki contra le creation automatisate de paginas, per favor selige solmente le photos de cattos in le quadro sequente:', - 'asirra-nojs' => "'''Per favor activa JavaScript e resubmitte le pagina.'''", - 'asirra-failed' => 'Per favor identifica tote le imagines de cattos', -); - -/** Italian (italiano) - * @author Beta16 - */ -$messages['it'] = array( - 'asirra-desc' => 'Modulo ASIRRA per ConfirmEdit', - 'asirra-edit' => 'Per proteggere il wiki dalle modifiche automatiche che aggiungono spam, ti chiediamo gentilmente di selezionare solo le foto di gatti nel riquadro sottostante:', - 'asirra-addurl' => 'La tua modifica aggiunge qualche nuovo collegamento esterno. Per proteggere il wiki dallo spam automatico, ti chiediamo gentilmente di selezionare solo le foto di gatti nel riquadro sottostante:', - 'asirra-badlogin' => 'Per proteggere il wiki dalla forzatura automatica delle password, ti chiediamo gentilmente di selezionare solo le foto di gatti nel riquadro sottostante:', - 'asirra-createaccount' => 'Per proteggere il wiki dalla creazione automatica di nuovi accessi, ti chiediamo gentilmente di selezionare solo le foto di gatti nel riquadro sottostante:', - 'asirra-createaccount-fail' => 'Identifica correttamente i gatti.', - 'asirra-create' => 'Per proteggere il wiki dalla creazione automatica di pagine, ti chiediamo gentilmente di selezionare solo le foto di gatti nel riquadro sottostante:', - 'asirra-nojs' => "'''Attiva JavaScript ed invia di nuovo la pagina.'''", - 'asirra-failed' => 'Identifica tutte le immagini di gatti', -); - -/** Japanese (日本語) - * @author 2nd-player - * @author Shirayuki - */ -$messages['ja'] = array( - 'asirra-desc' => 'ConfirmEdit 用 Asirra モジュール', - 'asirra-edit' => 'ウィキでの自動編集のスパム攻撃を防ぐため、お手数をおかけしますが猫が写っている画像を以下から選択してください:', - 'asirra-addurl' => 'あなたは新しい外部リンクを追加しようとしています。ウィキへの自動スパム攻撃を防ぐため、お手数をおかけしますが猫が写っている画像を以下から選択してください:', - 'asirra-badlogin' => 'ウィキへの自動パスワードクラック攻撃を防ぐため、お手数をおかけしますが猫が写っている画像を以下から選択してください:', - 'asirra-createaccount' => 'ウィキでのアカウント自動作成を防ぐため、お手数をおかけしますが猫が写っている画像を以下から選択してください:', - 'asirra-createaccount-fail' => '猫を正しく選択してください。', - 'asirra-create' => 'ウィキでのページ自動作成を防ぐため、お手数をおかけしますが猫が写っている画像を以下から選択してください:', - 'asirra-nojs' => "'''JavaScript を有効にしてページを再読込してください。'''", - 'asirra-failed' => '猫が写っている画像をすべて選択してください', -); - -/** Korean (한국어) - * @author 아라 - */ -$messages['ko'] = array( - 'asirra-desc' => 'ConfirmEdit에 대한 Asirra 모듈', - 'asirra-edit' => '자동화된 편집 스팸으로부터 보호하기 위해, 아래 상자에 있는 고양이 사진을 선택하세요:', # Fuzzy - 'asirra-addurl' => '편집에 새로운 바깥 링크가 포함되어 있습니다. 자동화된 스팸으로부터 보호하기 위해, 아래 상자에 있는 고양이 사진을 선택하세요:', # Fuzzy - 'asirra-badlogin' => '비밀번호 깨기로부터 보호하기 위해, 아래 상자에 있는 고양이 사진을 선택하세요:', # Fuzzy - 'asirra-createaccount' => '자동화된 계정 만들기로부터 보호하기 위해, 아래 상자에 있는 고양이 사진을 선택하세요:', # Fuzzy - 'asirra-createaccount-fail' => '고양이를 올바르게 선택하세요.', - 'asirra-create' => '자동화된 문서 만들기로부터 보호하기 위해, 아래 상자에 있는 고양이 사진을 선택하세요:', # Fuzzy - 'asirra-nojs' => "'''자바스크립트를 활성화하고 문서를 다시 제출하세요.'''", - 'asirra-failed' => '고양이 그림을 모두 선택하세요', -); - -/** Colognian (Ripoarisch) - * @author Purodha - */ -$messages['ksh'] = array( - 'asirra-desc' => 'Dä Zohsaz <i lang="en">Asirra</i> för et Zohsazprojramm <i lang="en">ConfirmEdit</i>.', - 'asirra-edit' => 'Heh dat Wiki well sesch jääje <i lang="en">SPAM</i> schöze. Dröm moß mer beim Ändere noch en Prööfong aflääje, dat mer ene Minsch un kei Projramm es. Söhk bloß de Katzebelder em Kaßte us:', # Fuzzy - 'asirra-addurl' => 'Heh dat Wiki well sesch jääje <i lang="en">SPAM</i> schöze. Dröm moß mer, wam_mer lengks noh ußerhallef enfööje well, noch en Prööfong aflääje, dat mer ene Minsch un kei Projramm es. Söhk bloß de Katzebelder em Kaßte us:', # Fuzzy - 'asirra-badlogin' => 'Heh dat Wiki well sesch jääje et automattesche Paßwoot_Knacke schöze. Dröm moß mer heh nor_en Prööfong aflääje, dat mer ene Minsch un kei Projramm es. Söhk bloß de Katzebelder em Kaßte us:', # Fuzzy - 'asirra-createaccount' => 'Heh dat Wiki well sesch jääje automattesch aanjelaate „Metmaacher“ schöze. Dröm moß mer heh nor_en Prööfong aflääje, dat mer ene Minsch un kei Projramm es. Söhk bloß de Katzebelder em Kaßte us:', # Fuzzy - 'asirra-createaccount-fail' => 'Bes esu jood un don de Kazebelder ußwähle.', - 'asirra-create' => 'Heh dat Wiki well sesch jääje automattesch neu aanjelaate Sigge schöze. Dröm moß mer heh nor_en Prööfong aflääje, dat mer ene Minsch un kei Projramm es. Söhk bloß de Katzebelder em Kaßte us:', # Fuzzy - 'asirra-nojs' => "'''Bes esu jood un donn JavaSkrep en Dingem Brauser aanschallde un scheck heh di Sigg norr_ens af.'''", - 'asirra-failed' => 'Bes esu jood un don all de Kazebelder ußwähle.', -); - -/** Luxembourgish (Lëtzebuergesch) - * @author Robby - */ -$messages['lb'] = array( - 'asirra-desc' => 'Asirra-Modul fir ConfirmEdit', - 'asirra-edit' => "Fir d'Wiki géint automatiséierte Spam ze schützen froe mir Iech just d'Fotoe mat Kazen, déi Dir an der Këscht ënnendrënner gesitt, erauszesichen:", - 'asirra-addurl' => "An Ärer Ännerung sinn nei extern Linken. Fir d'Wiki géint automatiséierte Spam ze schützen, froe mir Iech d'Kategorie vun de Fotoen an der Këscht ënnendrënner erauszesichen:", - 'asirra-createaccount-fail' => "Identifizéiert d'Kaze w.e.g. richteg.", - 'asirra-nojs' => "'''Aktivéiert w.e.g. JavaScript a schéckt d'Säit nachemol.'''", - 'asirra-failed' => 'Identifizéiert w.e.g. all Biller wou Kazen drop sinn', -); - -/** Macedonian (македонски) - * @author Bjankuloski06 - */ -$messages['mk'] = array( - 'asirra-desc' => 'Asirra-модул за ПотврдиУредување', - 'asirra-edit' => 'Како заштитна мерка против автоматизиран спам, би ве замолиле да ги изберете само сликите со мачка прикажани во полето:', - 'asirra-addurl' => 'Во вашите измени има нови надворешни врски. Како заштитна мерка против автоматизиран спам, би ве замолиле да ги изберете само сликите со мачка прикажани во полето:', - 'asirra-badlogin' => 'Како заштитна мерка против автоматизирано провалување на лозинки, би ве замолиле да ги изберете само сликите со мачка прикажани во полето:', - 'asirra-createaccount' => 'Како заштитна мерка против автоматизирано создавање на сметки, би ве замолиле да ги изберете само сликите со мачка прикажани во полето:', - 'asirra-createaccount-fail' => 'Посочете кои од следниве се мачки.', - 'asirra-create' => 'Како заштитна мерка против автоматизирано создавање на страници, би ве замолиле да ги изберете само сликите со мачка прикажани во полето:', - 'asirra-nojs' => "'''Овозможете JavaScript и поднесете ја страницата повторно.'''", - 'asirra-failed' => 'Изберете ги сликите што имаат мачка', -); - -/** Malay (Bahasa Melayu) - * @author Anakmalaysia - */ -$messages['ms'] = array( - 'asirra-desc' => 'Modul Asirra untuk ConfirmEdit', - 'asirra-edit' => 'Untuk mencegah suntingan spam automatik, sila pilih gambar-gambar kucing sahaja dalam petak di bawah:', # Fuzzy - 'asirra-addurl' => 'Suntingan anda mengandungi pautan luar yang baru. Untuk mencegah spam janaan automatik, sila pilih gambar-gambar kucing sahaja dalam petak di bawah:', # Fuzzy - 'asirra-badlogin' => 'Untuk mencegah pemecahan kata laluan automatik, sila pilih gambar-gambar kucing sahaja dalam petak di bawah:', # Fuzzy - 'asirra-createaccount' => 'Untuk mencegah pembukaan akaun automatik, sila pilih gambar-gambar kucing sahaja dalam petak di bawah:', # Fuzzy - 'asirra-createaccount-fail' => 'Sila kenal pasti kucing-kucing dengan betul.', - 'asirra-create' => 'Untuk mencegah pembukaan halaman automatik, sila pilih gambar-gambar kucing sahaja dalam petak di bawah:', # Fuzzy - 'asirra-nojs' => "'''Sila hidupkan JavaScript dan hantar semula halaman ini.'''", - 'asirra-failed' => 'Sila kenal pasti semua gambar kucing', -); - -/** Maltese (Malti) - * @author Chrisportelli - */ -$messages['mt'] = array( - 'asirra-desc' => 'Modulu ASIRRA għal ConfirmEdit', - 'asirra-edit' => "Sabiex tgħinna nipproteġu kontra l-modifiki li jżidu spam, jekk jogħġbok agħżel ir-ritratti tal-qtates fil-kaxxa t'hawn taħt:", # Fuzzy - 'asirra-addurl' => "Il-modifika tiegħek tinkludi ħoloq esterni ġodda. Sabiex tipproteġi kontra spam awtomatiku, jekk jogħġbok agħżel ir-ritratti tal-qtates fil-kaxxa t'hawn taħt:", # Fuzzy - 'asirra-badlogin' => "Sabiex tgħinna nipproteġu kontra l-infurzar awtomatiku tal-passwords, jekk jogħġbok agħżel ir-ritratti tal-qtates fil-kaxxa t'hawn taħt:", # Fuzzy - 'asirra-createaccount' => "Sabiex tgħinna nipproteġu kontra l-ħolqien awtomatiku ta' kontijiet ġodda, jekk jogħġbok agħżel ir-ritratti tal-qtates fil-kaxxa t'hawn taħt:", # Fuzzy - 'asirra-createaccount-fail' => 'Sib il-qtates.', - 'asirra-create' => "Sabiex tgħinna nipproteġu kontra l-ħolqien awtomatiku ta' paġni, jekk jogħġbok agħżel ir-ritratti tal-qtates fil-kaxxa t'hawn taħt:", # Fuzzy - 'asirra-nojs' => "'''Jekk jogħġbok attiva l-JavaScript u erġa' ibgħat din il-paġna.'''", - 'asirra-failed' => 'Sib l-istampi kollha tal-qtates', -); - -/** Norwegian Bokmål (norsk bokmål) - * @author Event - */ -$messages['nb'] = array( - 'asirra-desc' => 'Assirra-modulen for ConfirmEdit', - 'asirra-edit' => 'Som beskyttelse mot automatisk redigert spam, vennligst velg kun kattebildene i boksen under:', # Fuzzy - 'asirra-addurl' => 'Din redigering inneholder nye eksterne lenker. Som beskyttelse mot automatisk redigert spam, vennligst velg kun kattebildene i boksen under:', # Fuzzy - 'asirra-badlogin' => 'Som beskyttelse mot automatisk passordknekking, vennligst velg kun kattebildene i boksen under:', # Fuzzy - 'asirra-createaccount' => 'Som beskyttelse mot automatisk opprettelse av brukerkonto, vennligst velg kun kattebildene i boksen under:', # Fuzzy - 'asirra-createaccount-fail' => 'Vennligst angi hva som er katter.', - 'asirra-create' => 'Som beskyttelse mot automatisk opprettelse av sider, vennligst velg kun kattebildene i boksen under:', # Fuzzy - 'asirra-nojs' => "'''Vennligst åpne for JavaScript og lagre siden en gang til.'''", - 'asirra-failed' => 'Vennligst merk alle kattebilder', -); - -/** Dutch (Nederlands) - * @author HanV - * @author SPQRobin - * @author Siebrand - */ -$messages['nl'] = array( - 'asirra-desc' => 'Asirra-module voor ConfirmEdit', - 'asirra-edit' => 'Kies ter bescherming tegen geautomatiseerde spam de afbeeldingen met een poes in het onderstaande venster:', - 'asirra-addurl' => "Uw bewerking bevat nieuwe externe koppelingen. Selecteer de foto's van katten in het vak hieronder om de wiki te beschermen tegen geautomatiseerde spam:", - 'asirra-badlogin' => 'Kies ter bescherming tegen het automatisch kraken van wachtwoorden de afbeeldingen met een poes in het onderstaande venster:', - 'asirra-createaccount' => 'Kies om het automatisch aanmaken van gebruikers tegen te gaan de afbeeldingen met een poes in het onderstaande venster:', - 'asirra-createaccount-fail' => 'Identificeer de katten juist.', - 'asirra-create' => 'Kies om het automatisch aanmaken van een pagina tegen te gaan de afbeeldingen met een poes in het onderstaande venster:', - 'asirra-nojs' => "'''Schakel JavaScript in en probeer de pagina opnieuw op te slaan.'''", - 'asirra-failed' => 'Identificeer alle afbeeldingen van katten.', -); - -/** Nederlands (informeel) (Nederlands (informeel)) - * @author Siebrand - */ -$messages['nl-informal'] = array( - 'asirra-addurl' => "Je bewerking bevat nieuwe externe koppelingen. Selecteer de foto's van katten in het vak hieronder om te helpen beschermen tegen geautomatiseerde spam:", # Fuzzy -); - -/** Polish (polski) - * @author BeginaFelicysym - */ -$messages['pl'] = array( - 'asirra-desc' => 'Moduł Asirra dla ConfirmEdit', - 'asirra-edit' => 'Aby uchronić się przed automatami wprowadzającymi spam, proszę wybrać tylko zdjęcia kotów w poniższym polu:', # Fuzzy - 'asirra-addurl' => 'Wprowadzony przez ciebie tekst zawiera linki zewnętrzne. Aby uchronić nas przed automatycznym spamem, proszę wskazać tylko zdjęcia kotów w poniższym polu:', # Fuzzy - 'asirra-badlogin' => 'Aby uchronić się przed zautomatyzowanym łamaniem haseł, proszę wybrać tylko zdjęcia kotów w poniższym polu:', # Fuzzy - 'asirra-createaccount' => 'Aby uchronić się przed automatycznym tworzeniem kont, proszę wybrać tylko zdjęcia kotów w poniższym polu:', # Fuzzy - 'asirra-createaccount-fail' => 'Prosimy prawidłowo zidentyfikować koty.', - 'asirra-create' => 'Aby uchronić się przed automatycznym tworzeniem stron, proszę wybrać tylko zdjęcia kotów w poniższym polu:', # Fuzzy - 'asirra-nojs' => "'''Prosimy włączyć obsługę języka JavaScript i ponowne przesłanie strony.'''", - 'asirra-failed' => 'Prosimy wskazać wszystkie obrazy kotów', -); - -/** Piedmontese (Piemontèis) - * @author Borichèt - * @author Dragonòt - */ -$messages['pms'] = array( - 'asirra-desc' => 'Mòdul Asirra për ConfirmEdit', - 'asirra-edit' => "Për giuté a protege contra la rumenta dle modìfiche automàtiche, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:", # Fuzzy - 'asirra-addurl' => "Soa modìfica a conten dle liure esterne neuve. Për giuté a protege contra la rumenta dle modìfiche automàtiche, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:", # Fuzzy - 'asirra-badlogin' => "Për giuté a protege contra la forsadura automatisà ëd le ciav, për piasì ch'a selession-a mach la fòto dël gat ant ël quàder sì-sota:", # Fuzzy - 'asirra-createaccount' => "Për giuté a protege contra la creassion automatisà ëd cont, për piasì ch'a selession-a mach la fòto dël gat ant ël quàder sì-sota:", # Fuzzy - 'asirra-createaccount-fail' => 'Për piasì identifica coretament ij gat.', - 'asirra-create' => "Për giuté a protege contra la creassion automatisà ëd pàgine, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:", # Fuzzy - 'asirra-nojs' => "'''Për piasì, ch'a abìlita JavaScript e ch'a spedissa torna la pàgina.'''", - 'asirra-failed' => 'Për piasì identìfica tute le figure ëd gat', -); - -/** Portuguese (português) - * @author Hamilton Abreu - * @author Luckas - */ -$messages['pt'] = array( - 'asirra-desc' => 'Módulo Asirra para o ConfirmEdit', - 'asirra-edit' => "Como prevenção contra sistemas automatizados de inserção de ''spam'', selecione só as fotografias de gatos na caixa abaixo:", # Fuzzy - 'asirra-addurl' => "A sua edição contém links externos novos. Como prevenção contra sistemas automatizados de inserção de ''spam'', selecione só as fotografias de gatos na caixa abaixo:", # Fuzzy - 'asirra-badlogin' => 'Como prevenção com sistemas automatizados de descoberta de palavras-chave, selecione só as fotografias de gatos na caixa abaixo:', # Fuzzy - 'asirra-createaccount' => 'Como prevenção contra sistemas automatizados de criação de contas, selecione só as fotografias de gatos na caixa abaixo:', # Fuzzy - 'asirra-createaccount-fail' => 'Identifique corretamente os gatos, por favor.', - 'asirra-create' => 'Como prevenção contra sistemas automatizados de criação de páginas, selecione só as fotografias de gatos na caixa abaixo:', # Fuzzy - 'asirra-nojs' => "'''Possibilite o uso de JavaScript e reenvie a página, por favor.'''", -); - -/** tarandíne (tarandíne) - * @author Joetaras - */ -$messages['roa-tara'] = array( - 'asirra-desc' => 'Module Asirra pe confermà le cangiaminde', - 'asirra-edit' => "Pe darne 'na màne a proteggere condre le cangiaminde automatece de le rummate, pe piacere scacchie ìa categorije de le fote jndr'à buatte aqquà sotte:", # Fuzzy - 'asirra-addurl' => "Le cangiaminde tune 'ngludone collegaminde de fore nuève. Pe darne 'na màne a proteggere condre le cangiaminde automatece de le rummate, pe piacere scacchie 'a categorije d'a fote 'ndruche jndr'à buatte aqquà sotte:", # Fuzzy - 'asirra-badlogin' => "Pe darne 'na màne a proteggere condre le futteminde automatece de le passuord, pe piacere scacchie 'a categorije de le fote jndr'à buatte aqquà sotte:", # Fuzzy - 'asirra-createaccount' => "Pe darne 'na màne a proteggere condre le ccrejaziune automatece de le cunde, pe piacere scacchie 'a categorije de le fote jndr'à buatte aqquà sotte:", # Fuzzy - 'asirra-createaccount-fail' => 'Pe piacere idendifiche correttamende le categorije.', - 'asirra-create' => "Pe darne 'na màne a proteggere condre le ccrejaziune automatece de le pàggene, pe piacere scacchie 'a categorije de le fote jndr'à buatte aqquà sotte:", # Fuzzy - 'asirra-nojs' => "'''Pe piacere abbilite JavaScript e conferme arrete 'a pàgene.'''", - 'asirra-failed' => 'Pe piacere idendifiche tutte le categorije de le immaggine', -); - -/** Russian (русский) - * @author DCamer - * @author Lockal - * @author Okras - */ -$messages['ru'] = array( - 'asirra-desc' => 'Модуль Asirra для ConfirmEdit', - 'asirra-edit' => 'В целях защиты проекта от автоматического спама в правках, просим вас выбрать среди нижеприведённых изображений только фотографии кошек:', - 'asirra-addurl' => 'Ваша правка содержит новые внешние ссылки. В целях защиты проекта от автоматического спама в правках просим вас выбрать среди нижеприведённых изображений только фотографии кошек:', - 'asirra-badlogin' => 'В целях защиты от автоматического подбора пароля просим вас выбрать среди нижеприведённых изображений только фотографии кошек:', - 'asirra-createaccount' => 'В целях защиты от автоматического создания учётных записей просим вас выбрать среди нижеприведённых изображений только фотографии кошек:', - 'asirra-createaccount-fail' => 'Пожалуйста правильно идентифицируйте котов.', - 'asirra-create' => 'В целях защиты от автоматического создания страниц просим вас выбрать среди нижеприведённых изображений только фотографии кошек:', - 'asirra-nojs' => "'''Пожалуйста, включите JavaScript и обновите страницу.'''", - 'asirra-failed' => 'Пожалуйста, идентифицируйте все фотографии кота', -); - -/** Sinhala (සිංහල) - * @author පසිඳු කාවින්ද - */ -$messages['si'] = array( - 'asirra-desc' => 'ConfirmEdit සඳහා Asirra මොඩියුලය', - 'asirra-failed' => 'කරුණාකර සියලුම cat පින්තූරයන් හඳුනාගන්න', -); - -/** Swedish (svenska) - * @author Jopparn - * @author Rotsee - * @author WikiPhoenix - */ -$messages['sv'] = array( - 'asirra-edit' => 'För att skydda wikin mot spam ber vi dig att markera de fotografier som föreställer katter i rutan nedan:', - 'asirra-addurl' => 'Din redigering innehåller nya externa länkar. För att skydda wikin mot automatiserat redigerings-spam ber vi dig att endast markera fotografierna på katter i rutan nedan:', - 'asirra-badlogin' => 'För att skydda wikin mot automatiserade försök att knäcka lösenord ber vi dig att endast markera fotografierna på katter i rutan nedan:', - 'asirra-createaccount' => 'För att skydda wikin mot automatiserat kontoskapande ber vi dig att endast markera fotografierna på katter i rutan nedan:', - 'asirra-create' => 'För att skydda wikin mot automatiserat sidskapande ber vi dig att endast markera fotografierna på katter i rutan nedan:', - 'asirra-nojs' => "'''Var god aktivera JavaScript och hämta sidan igen.'''", - 'asirra-failed' => 'Var god identifiera alla kattbilder', -); - -/** Tagalog (Tagalog) - * @author AnakngAraw - */ -$messages['tl'] = array( - 'asirra-desc' => 'Modyul ng Asirra para sa ConfirmEdit', - 'asirra-edit' => 'Upang makatulong sa pagprutekta laban sa kusang basurang pamamatnugot, paki piliin iyong mga litrato lamang ng pusa na nasa loob ng kahong nasa ibaba:', # Fuzzy - 'asirra-addurl' => 'Ang pagbabago mo ay nagsasama ng bagong panlabas na mga kawing. Upang makatulong sa pagprutekta laban sa kusang paglusob ng basurang-liham, paki piliin iyong mga litrato lamang ng pusa na nasa loob ng kahong nasa ibaba:', # Fuzzy - 'asirra-badlogin' => 'Upang makatulong sa pagprutekta laban sa kusang pag-alam ng hudyat, paki piliin lamang iyong mga litrato ng pusa na nasa loob ng kahong nasa ibaba:', # Fuzzy - 'asirra-createaccount' => 'Upang makatulong sa pagprutekta laban sa kusang paglikha ng akawnt, paki piliin lamang iyong mga litrato ng pusa na nasa loob ng kahong nasa ibaba:', # Fuzzy - 'asirra-createaccount-fail' => 'Paki kilalanin ng tama ang mga pusa.', - 'asirra-create' => 'Upang makatulong sa pagprutekta laban sa kusang paglikha ng pahina, paki piliin lamang iyong mga litrato ng pusa na nasa loob ng kahong nasa ibaba:', # Fuzzy - 'asirra-nojs' => "'''Paki paganahin ang JavaScript at muling ipasa ang pahina.'''", - 'asirra-failed' => 'Paki kilalanin ang lahat ng mga imahe ng pusa', -); - -/** Ukrainian (українська) - * @author Andriykopanytsia - * @author Base - */ -$messages['uk'] = array( - 'asirra-desc' => 'Модуль Asirra для ConfirmEdit', - 'asirra-edit' => 'З метою захисту вікі від автоматичного спаму у статтях, просимо вас обрати фотографії кота, у блоці нижче:', - 'asirra-addurl' => 'Ваше повідомлення включає нові зовнішні посилання. З метою захисту вікі проти автоматичного спаму у статтях, просимо вас обрати фотографії кота, у блоці нижче:', - 'asirra-badlogin' => 'З метою захисту вікі проти автоматичного підбору паролю, просимо вас обрати фотографії кота у блоці нижче:', - 'asirra-createaccount' => 'З метою захисту вікі проти автоматичного створення облікових записів просимо вас обрати фотографії кота у блоці нижче:', - 'asirra-createaccount-fail' => 'Будь ласка, правильно ідентифікуйте котів.', - 'asirra-create' => 'З метою захисту вікі проти автоматичного створення статей просимо вас обрати фотографії кота у блоці нижче:', - 'asirra-nojs' => "'''Будь ласка увімкніть JavaScript і оновіть сторінку.'''", - 'asirra-failed' => 'Будь ласка, ідентифікуйте усі фотографії кота', -); - -/** Walloon (walon) - * @author Srtxg - */ -$messages['wa'] = array( - 'asirra-desc' => "Module Asirra pol passete d' acertinaedje des candjmints (ConfirmEdit)", - 'asirra-edit' => "Po s' mete a houte des des robots di spam, nos vs dimandans d' acertiner ki vos estoz bén ene djin, po çoula tchoezixhoz seulmint les imådjes avou des tchets e l' boesse chal pa dzo:", # Fuzzy - 'asirra-addurl' => "Dins vos candjmints i gn a des dfoûtrinnès hårdêyes (URL). -Po s' mete a houte des des robots di spam, nos vs dimandans d' acertiner ki vos estoz bén ene djin, po çoula tchoezixhoz seulmint les imådjes avou des tchets e l' boesse chal pa dzo:", # Fuzzy - 'asirra-badlogin' => "Po s' mete a houte des des robots ki sayèt d' adviner les screts, nos vs dimandans d' acertiner ki vos estoz bén ene djin, po çoula tchoezixhoz seulmint les imådjes avou des tchets e l' boesse chal pa dzo:", # Fuzzy - 'asirra-createaccount' => "Po s' mete a houte des des robots k' ahivèt des contes otomaticmint, nos vs dimandans d' acertiner ki vos estoz bén ene djin, po çoula tchoezixhoz seulmint les imådjes avou des tchets e l' boesse chal pa dzo:", # Fuzzy - 'asirra-createaccount-fail' => 'Tchoezixhoz comifåt les tchets (les biesses ki gnawèt).', - 'asirra-create' => "Po s' mete a houte des des robots k' ahivèt des pådjes otomaticmint, nos vs dimandans d' acertiner ki vos estoz bén ene djin, po çoula tchoezixhoz seulmint les imådjes avou des tchets e l' boesse chal pa dzo:", # Fuzzy - 'asirra-nojs' => "'''Metoz s' i vs plait en alaedje li JavaScrit et s' revoyî l' pådje.'''", - 'asirra-failed' => 'Idintifyî totes les imådjes avou des tchets', -); - -/** Simplified Chinese (中文(简体)) - * @author Fantasticfears - * @author Hzy980512 - */ -$messages['zh-hans'] = array( - 'asirra-desc' => 'ConfirmEdit的Asirra模块', - 'asirra-edit' => '为了防止垃圾编辑攻击,请在下面的方框中选出猫的图片:', - 'asirra-addurl' => '您的编辑包含新的外部链接。为了帮助防止垃圾编辑攻击,请在下面的方框中选出猫的图片:', - 'asirra-badlogin' => '为防止自动程序破解密码,请在下面的方框中选出猫的图片:', - 'asirra-createaccount' => '为了防止自动程序创建帐户,请在下面的方框中选出猫的图片:', - 'asirra-createaccount-fail' => '请正确辨认出猫的图片。', - 'asirra-create' => '为了防止自动程序创建页面,请在下面的方框中选出猫的图片:', - 'asirra-nojs' => "'''请启动JavaScript后再提交页面。'''", - 'asirra-failed' => '请选出所有猫的图片', -); - -/** Traditional Chinese (中文(繁體)) - */ -$messages['zh-hant'] = array( - 'asirra-desc' => 'ConfirmEdit的Asirra模塊', - 'asirra-edit' => '為了防止垃圾編輯攻擊,請在下面的方框中選出貓的圖片:', # Fuzzy - 'asirra-addurl' => '您的編輯包含新的外部鏈接。為了幫助防止自動垃圾郵件,請在下面的方框中選出貓的圖片:', # Fuzzy - 'asirra-badlogin' => '為防止自動程序破解密碼,請在下面的方框中選出貓的圖片:', # Fuzzy - 'asirra-createaccount' => '為了防止自動程序創建帳戶,請在下面的方框中選出貓的圖片:', # Fuzzy - 'asirra-createaccount-fail' => '請正確辨認出貓的圖片。', - 'asirra-create' => '為了防止自動程序創建頁面,請在下面的方框中選出貓的圖片:', # Fuzzy - 'asirra-nojs' => "'''請啟動JavaScript後再提交頁面。'''", - 'asirra-failed' => '請選出所有貓的圖片', -); diff --git a/extensions/ConfirmEdit/Asirra.php b/extensions/ConfirmEdit/Asirra.php deleted file mode 100644 index 923b0b9e..00000000 --- a/extensions/ConfirmEdit/Asirra.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Asirra CAPTCHA module for the ConfirmEdit MediaWiki extension. - * @author Bachsau - * @author Niklas Laxström - * - * Makes use of the Asirra (Animal Species Image Recognition for - * Restricting Access) CAPTCHA service, developed by John Douceur, Jeremy - * Elson and Jon Howell at Microsoft Research. - * - * Asirra uses a large set of images from http://petfinder.com. - * - * For more information about Asirra, see: - * http://research.microsoft.com/en-us/um/redmond/projects/asirra/ - * - * This MediaWiki code is released into the public domain, without any - * warranty. YOU CAN DO WITH IT WHATEVER YOU LIKE! - * - * @file - * @ingroup Extensions - */ - -if ( !defined( 'MEDIAWIKI' ) ) { - exit; -} - -$dir = __DIR__; -require_once( $dir . '/ConfirmEdit.php' ); - -$wgCaptchaClass = 'Asirra'; -$wgExtensionMessagesFiles['Asirra'] = $dir . '/Asirra.i18n.php'; -$wgAutoloadClasses['Asirra'] = $dir . '/Asirra.class.php'; - -$wgResourceModules['ext.confirmEdit.asirra'] = array( - 'localBasePath' => $dir . '/resources', - 'remoteExtPath' => 'ConfirmEdit/resources', - 'scripts' => 'ext.confirmEdit.asirra.js', - 'messages' => array( - 'asirra-failed', - ), -); - diff --git a/extensions/ConfirmEdit/README b/extensions/ConfirmEdit/README index acfe481a..7a331e6b 100644 --- a/extensions/ConfirmEdit/README +++ b/extensions/ConfirmEdit/README @@ -19,8 +19,6 @@ in a stylized way questions defined by the administrator(s) * ReCaptcha - users have to identify a series of characters, either visually or audially, from a widget provided by the reCAPTCHA service -* Asirra - users have to identify the cats in a set of photos of cats -and dogs, from a widget provided by the Microsoft Asirra service == License == @@ -37,8 +35,6 @@ The QuestyCaptcha module was written by Benjamin Lees. The reCAPTCHA module was written by Mike Crawford and Ben Maurer. -The Asirra module was written by Bachsau. - Additional maintenance work was done by Yaron Koren. == Changelog == diff --git a/extensions/ConfirmEdit/resources/ext.confirmEdit.asirra.js b/extensions/ConfirmEdit/resources/ext.confirmEdit.asirra.js deleted file mode 100644 index 34296d03..00000000 --- a/extensions/ConfirmEdit/resources/ext.confirmEdit.asirra.js +++ /dev/null @@ -1,54 +0,0 @@ -/*======================================================================*\ -|| #################################################################### || -|| # Asirra module for ConfirmEdit by Bachsau # || -|| # ---------------------------------------------------------------- # || -|| # This code is released into public domain, in the hope that it # || -|| # will be useful, but without any warranty. # || -|| # ------------ YOU CAN DO WITH IT WHATEVER YOU LIKE! ------------- # || -|| #################################################################### || -\*======================================================================*/ - -jQuery( function( $ ) { - // Selectors for create account, login, and page edit forms. - var asirraform = $( 'form#userlogin2, #userloginForm form, form#editform' ); - var submitButtonClicked = document.createElement("input"); - var passThroughFormSubmit = false; - - function PrepareSubmit() { - submitButtonClicked.type = "hidden"; - var inputFields = asirraform.find( "input" ); - for (var i=0; i<inputFields.length; i++) { - if (inputFields[i].type === "submit") { - inputFields[i].onclick = function(event) { - submitButtonClicked.name = this.name; - submitButtonClicked.value = this.value; - } - } - } - - asirraform.submit( function() { - return MySubmitForm(); - } ); - } - - function MySubmitForm() { - if (passThroughFormSubmit) { - return true; - } - Asirra_CheckIfHuman(HumanCheckComplete); - return false; - } - - function HumanCheckComplete(isHuman) { - if (!isHuman) { - window.alert( mediaWiki.msg( 'asirra-failed' ) ); - } else { - asirraform.append(submitButtonClicked); - passThroughFormSubmit = true; - asirraform.submit(); - } - } - - PrepareSubmit(); - -} ); diff --git a/extensions/PdfHandler/CreatePdfThumbnailsJob.class.php b/extensions/PdfHandler/CreatePdfThumbnailsJob.class.php deleted file mode 100644 index aba204f2..00000000 --- a/extensions/PdfHandler/CreatePdfThumbnailsJob.class.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php - -class CreatePdfThumbnailsJob extends Job { - /** - * Flags for thumbnail jobs - */ - const BIG_THUMB = 1; - const SMALL_THUMB = 2; - - /** - * Construct a thumbnail job - * - * @param $title Title Title object - * @param $params array Associative array of options: - * page: page number for which the thumbnail will be created - * jobtype: CreatePDFThumbnailsJob::BIG_THUMB or CreatePDFThumbnailsJob::SMALL_THUMB - * BIG_THUMB will create a thumbnail visible for full thumbnail view, - * SMALL_THUMB will create a thumbnail shown in "previous page"/"next page" boxes - * - */ - public function __construct( $title, $params ) { - parent::__construct( 'createPdfThumbnailsJob', $title, $params ); - } - - /** - * Run a thumbnail job on a given PDF file. - * @return bool true - */ - public function run() { - if ( !isset( $this->params['page'] ) ) { - wfDebugLog('thumbnails', 'A page for thumbnails job of ' . $this->title->getText() . ' was not specified! That should never happen!'); - return true; // no page set? that should never happen - } - - $file = wfLocalFile( $this->title ); // we just want a local file - if ( !$file ) { - return true; // Just silently fail, perhaps the file was already deleted, don't bother - } - - switch ($this->params['jobtype']) { - case self::BIG_THUMB: - global $wgImageLimits; - // Ignore user preferences, do default thumbnails - // everything here shamelessy copied and reused from includes/ImagePage.php - $sizeSel = User::getDefaultOption( 'imagesize' ); - - // The user offset might still be incorrect, specially if - // $wgImageLimits got changed (see bug #8858). - if ( !isset( $wgImageLimits[$sizeSel] ) ) { - // Default to the first offset in $wgImageLimits - $sizeSel = 0; - } - $max = $wgImageLimits[$sizeSel]; - $maxWidth = $max[0]; - $maxHeight = $max[1]; - - $width_orig = $file->getWidth( $this->params['page'] ); - $width = $width_orig; - $height_orig = $file->getHeight( $this->params['page'] ); - $height = $height_orig; - if ( $width > $maxWidth || $height > $maxHeight ) { - # Calculate the thumbnail size. - # First case, the limiting factor is the width, not the height. - if ( $width / $height >= $maxWidth / $maxHeight ) { - //$height = round( $height * $maxWidth / $width ); - $width = $maxWidth; - # Note that $height <= $maxHeight now. - } else { - $newwidth = floor( $width * $maxHeight / $height ); - //$height = round( $height * $newwidth / $width ); - $width = $newwidth; - # Note that $height <= $maxHeight now, but might not be identical - # because of rounding. - } - $transformParams = array( 'page' => $this->params['page'], 'width' => $width ); - $file->transform( $transformParams ); - } - break; - - case self::SMALL_THUMB: - Linker::makeThumbLinkObj( $this->title, $file, '', '', 'none', array( 'page' => $this->params['page'] ) ); - break; - } - - return true; - } - - /** - * @param $upload UploadBase - * @param $mime - * @param $error - * @return bool - */ - public static function insertJobs( $upload, $mime, &$error ) { - global $wgPdfCreateThumbnailsInJobQueue; - if ( !$wgPdfCreateThumbnailsInJobQueue ) { - return true; - } - if (!MimeMagic::singleton()->isMatchingExtension('pdf', $mime)) { - return true; // not a PDF, abort - } - - $title = $upload->getTitle(); - $uploadFile = $upload->getLocalFile(); - if ( is_null( $uploadFile ) ) { - wfDebugLog('thumbnails', '$uploadFile seems to be null, should never happen...'); - return true; // should never happen, but it's better to be secure - } - - $metadata = $uploadFile->getMetadata(); - $unserialized = unserialize( $metadata ); - $pages = intval( $unserialized['Pages'] ); - - $jobs = array(); - for ( $i = 1; $i <= $pages; $i++ ) { - $jobs[] = new CreatePdfThumbnailsJob( $title, - array( 'page' => $i, 'jobtype' => self::BIG_THUMB ) - ); - $jobs[] = new CreatePdfThumbnailsJob( $title, - array( 'page' => $i, 'jobtype' => self::SMALL_THUMB ) - ); - } - Job::batchInsert( $jobs ); - return true; - } -} diff --git a/extensions/PdfHandler/PdfHandler.i18n.php b/extensions/PdfHandler/PdfHandler.i18n.php deleted file mode 100644 index 06143e7b..00000000 --- a/extensions/PdfHandler/PdfHandler.i18n.php +++ /dev/null @@ -1,1186 +0,0 @@ -<?php -/** - * Internationalisation file for extension PdfHandler. - * - * @file - * @ingroup Extensions - */ - -$messages = array(); - -$messages['en'] = array( - 'pdf-desc' => 'Handler for viewing PDF files in image mode.', - 'pdf_no_metadata' => 'Cannot get metadata from PDF.', - 'pdf_page_error' => 'Page number not in range.', - 'exif-pdf-producer' => 'Conversion program', - 'exif-pdf-version' => 'Version of PDF format', - 'exif-pdf-encrypted' => 'Encrypted', - 'exif-pdf-pagesize' => 'Page size', -); - -/** Message documentation (Message documentation) - * @author Purodha - * @author Shirayuki - * @author The Evil IP address - */ -$messages['qqq'] = array( - 'pdf-desc' => '{{desc|name=Pdf Handler|url=http://www.mediawiki.org/wiki/Extension:PdfHandler}}', - 'pdf_no_metadata' => 'Error message given when metadata cannot be retrieved from a PDF file', - 'pdf_page_error' => 'Error message given when a PDF does not have the requested page number', - 'exif-pdf-producer' => 'The label used in the metadata table at the bottom of the file description page for the program used to convert this PDF file into a PDF. - -This is separate from the program used to create the original file (Which is labeled by {{msg-mw|Exif-software}}).', - 'exif-pdf-version' => 'Label for the version of the pdf file format in the metadata table at the bottom of an image description page. Usually a number between 1.2 and 1.6', - 'exif-pdf-encrypted' => 'Label for field in metadata table at bottom of an image description page to denote if the PDF file is encrypted. The value of the field this references is either "no" (most common) or something like "yes (print:yes copy:no change:no addNotes:no)"', - 'exif-pdf-pagesize' => 'Label for the field in the metadata table at the bottom of an image description page to denote the size of the pages in the pdf. If there is more than one size of page used in this document, each size is listed once.', -); - -/** Afrikaans (Afrikaans) - * @author Naudefj - * @author පසිඳු කාවින්ද - */ -$messages['af'] = array( - 'pdf-desc' => 'Handler vir die lees van PDF-lêers in beeld af', - 'pdf_no_metadata' => 'Kan nie metadata uit PDF kry nie', - 'pdf_page_error' => 'Bladsynommer kom nie in dokument voor nie', -); - -/** Gheg Albanian (Gegë) - * @author Mdupont - */ -$messages['aln'] = array( - 'pdf-desc' => 'Mbajtës për shikimin PDF files në imazh mode', - 'pdf_no_metadata' => 'Nuk mund të merrni nga metadata PDF', - 'pdf_page_error' => 'numrin e faqes nuk është në varg', -); - -/** Aragonese (aragonés) - * @author Juanpabl - */ -$messages['an'] = array( - 'pdf-desc' => 'Maneyador ta veyer fichers PDF en modo imachen', - 'pdf_no_metadata' => "No s'obtenioron metadatos d'o PDF", - 'pdf_page_error' => 'Numero de pachina difuera de rango', -); - -/** Arabic (العربية) - * @author Meno25 - * @author Mido - * @author أحمد - */ -$messages['ar'] = array( - 'pdf-desc' => 'معالج عرض ملفات PDF في طور الصور', - 'pdf_no_metadata' => 'تعذّر استخراج البيانات الفوقية من ملف PDF', - 'pdf_page_error' => 'رقم الصفحة خارج عن النطاق', - 'exif-pdf-producer' => 'برمجية التحويل', - 'exif-pdf-version' => 'إصدارة صيغة PDF', - 'exif-pdf-encrypted' => 'مُعمّى', - 'exif-pdf-pagesize' => 'حجم الصفحة', -); - -/** Egyptian Spoken Arabic (مصرى) - * @author Meno25 - */ -$messages['arz'] = array( - 'pdf-desc' => 'متحكم لرؤية ملفات PDF فى نمط صورة', - 'pdf_no_metadata' => 'لم يمكن أخذ معلومات ميتا من PDF', - 'pdf_page_error' => 'رقم الصفحة ليس فى النطاق', -); - -/** Assamese (অসমীয়া) - * @author Bishnu Saikia - */ -$messages['as'] = array( - 'pdf-desc' => 'পিডিএফ ফাইল ছবি হিচাপে ব্যৱহাৰৰ পদ্ধতি', - 'pdf_no_metadata' => 'পি.ডি.এফ.ৰ পৰা মেটাডাটা উপলদ্ধ নহয়', - 'pdf_page_error' => 'পৃষ্ঠাৰ নম্বৰ সীমাৰ ভিতৰত নাই', - 'exif-pdf-producer' => 'ৰূপান্তৰক প্ৰগ্ৰাম', - 'exif-pdf-version' => 'পি.ডি.এফ. ৰূপত সংস্কৰণ', - 'exif-pdf-pagesize' => 'পৃষ্ঠাৰ আকাৰ', -); - -/** Asturian (asturianu) - * @author Xuacu - */ -$messages['ast'] = array( - 'pdf-desc' => "Xestor pa ver los ficheros PDF en mou d'imaxe", - 'pdf_no_metadata' => 'Nun se pudieron sacar los metadatos del PDF', - 'pdf_page_error' => 'El númberu de la páxina nun ta nel rangu', - 'exif-pdf-producer' => 'Programa de conversión', - 'exif-pdf-version' => 'Versión del formatu PDF', - 'exif-pdf-encrypted' => 'Cifráu', - 'exif-pdf-pagesize' => 'Tamañu de la páxina', -); - -/** South Azerbaijani (تورکجه) - * @author Amir a57 - */ -$messages['azb'] = array( - 'exif-pdf-pagesize' => 'صحیفه اولچوسو', -); - -/** Bashkir (башҡортса) - * @author Assele - */ -$messages['ba'] = array( - 'pdf-desc' => 'PDF файлдарҙы рәсемдәр рәүешендә ҡарау өсөн эшкәртеүсе ҡорал', - 'pdf_no_metadata' => 'PDF-тан мета-мәғлүмәтте алыу мөмкин түгел', - 'pdf_page_error' => 'Бит һаны биттәр һанынан ашҡан', -); - -/** Bikol Central (Bikol Central) - * @author Geopoet - */ -$messages['bcl'] = array( - 'pdf-desc' => 'An tagapagkapot para sa pagtatanaw kan PDF na mga sagunson na yaon sa moda nin imahe.', - 'pdf_no_metadata' => 'Dae makakakua nin datos na meta gikan sa PDF.', - 'pdf_page_error' => 'An numero kan pahina dae tabi abot.', - 'exif-pdf-producer' => 'Programa nin kombersyon', - 'exif-pdf-version' => 'Bersyon kan PDF pormat', - 'exif-pdf-encrypted' => 'Enkriptado', - 'exif-pdf-pagesize' => 'Sukol kan pahina', -); - -/** Belarusian (Taraškievica orthography) (беларуская (тарашкевіца)) - * @author EugeneZelenko - * @author Jim-by - * @author Wizardist - */ -$messages['be-tarask'] = array( - 'pdf-desc' => 'Апрацоўшчык для прагляду PDF-файлаў у выглядзе выяваў', - 'pdf_no_metadata' => 'Немагчыма атрымаць мэта-зьвесткі з PDF-файла', - 'pdf_page_error' => 'Нумар старонкі паза дыяпазонам', - 'exif-pdf-producer' => 'Праграма канвэртацыі', - 'exif-pdf-version' => 'Вэрсія фармату PDF', - 'exif-pdf-encrypted' => 'Зашыфравана', - 'exif-pdf-pagesize' => 'Памер старонкі', -); - -/** Bulgarian (български) - * @author DCLXVI - * @author Stanqo - * @author Turin - */ -$messages['bg'] = array( - 'pdf_no_metadata' => 'невъзможно е да бъдат извлечени метаданни от PDF', - 'pdf_page_error' => 'Номерът на страница е извън обхвата', - 'exif-pdf-encrypted' => 'Криптиране', - 'exif-pdf-pagesize' => 'Размер на страницата', -); - -/** Bengali (বাংলা) - * @author Nasir8891 - * @author Wikitanvir - */ -$messages['bn'] = array( - 'pdf-desc' => 'পিডিএফ ফাইল ছবি হিসাবে ব্যবহারের পদ্ধতি', - 'pdf_no_metadata' => 'পিডিএফ থেকে মেটাডেটা পাওয়া যায়নি', - 'pdf_page_error' => 'পাতার নম্বর সীমার মধ্যে নেই', -); - -/** Breton (brezhoneg) - * @author Fohanno - * @author Fulup - */ -$messages['br'] = array( - 'pdf-desc' => 'Maveg evit gwelet ar restroù PDF e mod skeudenn', - 'pdf_no_metadata' => 'Dibosupl tapout meta-roadennoù digant ar restr PDF', - 'pdf_page_error' => "N'emañ ket niverenn ar bajenn er skeuliad", - 'exif-pdf-producer' => 'Program amdreiñ', - 'exif-pdf-pagesize' => 'Ment ar bajenn', -); - -/** Bosnian (bosanski) - * @author CERminator - */ -$messages['bs'] = array( - 'pdf-desc' => 'Uređivač za pregled PDF datoteka u modu za slike', - 'pdf_no_metadata' => 'Ne mogu se naći metapodaci u PDFu', - 'pdf_page_error' => 'Broj stranice nije u rasponu', -); - -/** Catalan (català) - * @author Aleator - */ -$messages['ca'] = array( - 'pdf-desc' => 'Gestor per a visualitzar arxius PDF en mode imatge', - 'pdf_no_metadata' => "No s'han pogut obtenir metadades del PDF", - 'pdf_page_error' => "Número de pàgina fora d'abast", -); - -/** Chechen (нохчийн) - * @author Sasan700 - * @author Умар - */ -$messages['ce'] = array( - 'pdf-desc' => 'Хьажа аттон кечйо PDF-файлаш суьрта куьцехь', - 'pdf_no_metadata' => 'схьацаэцало чура бух оцу PDF', - 'pdf_page_error' => 'Агlон терахь дозан чулацамца дац', - 'exif-pdf-pagesize' => 'АгӀона барам', -); - -/** Sorani Kurdish (کوردی) - * @author Calak - */ -$messages['ckb'] = array( - 'exif-pdf-pagesize' => 'قەبارەی پەڕە', -); - -/** Czech (česky) - * @author Matěj Grabovský - * @author Mormegil - */ -$messages['cs'] = array( - 'pdf-desc' => 'Ovladač pro prohlížení PDF souborů jako obrázků', - 'pdf_no_metadata' => 'Z PDF se nepodařilo získat metadata', - 'pdf_page_error' => 'Číslo stránky mimo rozsah', - 'exif-pdf-producer' => 'Konverzní program', - 'exif-pdf-version' => 'Verze formátu PDF', - 'exif-pdf-encrypted' => 'Šifrovaný', - 'exif-pdf-pagesize' => 'Velikost stránky', -); - -/** Welsh (Cymraeg) - * @author Lloffiwr - */ -$messages['cy'] = array( - 'pdf-desc' => 'Teclyn i weld ffeiliau PDF ar lun delwedd', - 'pdf_no_metadata' => "Yn methu cael y metadata o'r PDF", - 'pdf_page_error' => "Nid yw'r rhif hwn oddi mewn i ystod rhifau'r tudalennau", - 'exif-pdf-producer' => 'Rhaglen trosi', - 'exif-pdf-version' => 'Fersiwn y fformat PDF', - 'exif-pdf-encrypted' => 'Amgriptiwyd', - 'exif-pdf-pagesize' => 'Maint y dudalen', -); - -/** Danish (dansk) - * @author Peter Alberti - */ -$messages['da'] = array( - 'pdf-desc' => 'Håndtering af PDF-visning i billedtilstand', - 'pdf_no_metadata' => 'Kan ikke hente metadata fra PDF', - 'pdf_page_error' => 'Sidetallet er større end antallet af sider i dokumentet', - 'exif-pdf-producer' => 'Konverteringsprogram', - 'exif-pdf-version' => 'Version af PDF-format', - 'exif-pdf-encrypted' => 'Krypteret', - 'exif-pdf-pagesize' => 'Sidestørrelse', -); - -/** German (Deutsch) - * @author Kghbln - * @author Metalhead64 - * @author Raimond Spekking - */ -$messages['de'] = array( - 'pdf-desc' => 'Stellt eine Schnittstelle zur Ansicht von PDF-Dateien im Bildermodus bereit', - 'pdf_no_metadata' => 'Keine Metadaten im PDF vorhanden.', - 'pdf_page_error' => 'Seitenzahl außerhalb des Dokumentes.', - 'exif-pdf-producer' => 'Umwandlungsprogramm', - 'exif-pdf-version' => 'Version des PDF-Formats', - 'exif-pdf-encrypted' => 'Verschlüsselt', - 'exif-pdf-pagesize' => 'Seitengröße', -); - -/** Swiss High German (Schweizer Hochdeutsch) - * @author Geitost - */ -$messages['de-ch'] = array( - 'pdf_page_error' => 'Seitenzahl ausserhalb des Dokumentes.', -); - -/** Zazaki (Zazaki) - * @author Aspar - * @author Erdemaslancan - */ -$messages['diq'] = array( - 'pdf-desc' => 'şuxulnayoxo ke dosyayê PDFyan modê mocnayiş de mocneno', - 'pdf_no_metadata' => 'PDF ra metadata nêgeriyeno', - 'pdf_page_error' => 'numreyê peli benate de niyo', - 'exif-pdf-producer' => 'Programa çerxiney', - 'exif-pdf-version' => 'Versiyona babet da PDF', - 'exif-pdf-encrypted' => 'Kodıno', - 'exif-pdf-pagesize' => 'Ebata perer', -); - -/** Lower Sorbian (dolnoserbski) - * @author Michawiki - */ -$messages['dsb'] = array( - 'pdf-desc' => 'Źěłowy rěd za woglědowanje PDF-datajow we wobrazowem modusu', - 'pdf_no_metadata' => 'Metadaty njedaju se z PDF dobyś', - 'pdf_page_error' => 'Bokowe cysło zwenka wobcerka', - 'exif-pdf-producer' => 'Konwertěrowański program', - 'exif-pdf-version' => 'Wersija PDF-formata', - 'exif-pdf-encrypted' => 'Skoděrowany', - 'exif-pdf-pagesize' => 'Wjelikosć boka', -); - -/** Greek (Ελληνικά) - * @author Omnipaedista - */ -$messages['el'] = array( - 'pdf-desc' => 'Διαχειριστής για την εμφάνιση αρχείων PDF σε μορφή εικόνας', - 'pdf_no_metadata' => 'Αδύνατη η απόκτηση μεταδεδομένων από PDF', - 'pdf_page_error' => 'Αριθμός σελίδας εκτός ορίου', -); - -/** British English (British English) - * @author Shirayuki - */ -$messages['en-gb'] = array( - 'exif-pdf-producer' => 'Conversion programme', -); - -/** Esperanto (Esperanto) - * @author Yekrats - */ -$messages['eo'] = array( - 'pdf-desc' => 'Ilo por vidi PDF-dosierojn en bilda reĝimo', - 'pdf_no_metadata' => 'Ne povas preni metadatenon el PDF', - 'pdf_page_error' => 'Paĝnombro ekster valida intervalo', - 'exif-pdf-version' => 'Versio de PDF-formato', - 'exif-pdf-encrypted' => 'Ĉifrita', - 'exif-pdf-pagesize' => 'Grandeco de paĝo', -); - -/** Spanish (español) - * @author Armando-Martin - * @author Sanbec - */ -$messages['es'] = array( - 'pdf-desc' => 'Manejador para ver archivos PDF en modo imagen', - 'pdf_no_metadata' => 'No se obtuvieron metadatos del PDF', - 'pdf_page_error' => 'Número de página fuera de rango', - 'exif-pdf-producer' => 'Programa de conversión', - 'exif-pdf-version' => 'Versión del formato PDF', - 'exif-pdf-encrypted' => 'Cifrado', - 'exif-pdf-pagesize' => 'Tamaño de página', -); - -/** Estonian (eesti) - * @author Avjoska - * @author Pikne - */ -$messages['et'] = array( - 'pdf-desc' => 'Töötleja PDF-failide piltidena kuvamiseks', - 'pdf_no_metadata' => 'Ei õnnestu PDF-faili meta-andmeid saada', - 'pdf_page_error' => 'Leheküljenumber pole vahemikus.', - 'exif-pdf-producer' => 'Teisendusprogramm', - 'exif-pdf-version' => 'PDF-vormingu versioon', - 'exif-pdf-encrypted' => 'Krüptitud', - 'exif-pdf-pagesize' => 'Lehe suurus', -); - -/** Persian (فارسی) - * @author Ebraminio - * @author Huji - * @author Reza1615 - * @author Sahim - * @author Wayiran - */ -$messages['fa'] = array( - 'pdf-desc' => 'گردانندهای برای مشاهدهٔ پروندههای پیدیاف در حالت تصویر', - 'pdf_no_metadata' => 'نمیتوان فرادادهها را از پیدیاف گرفت', - 'pdf_page_error' => 'شماره صفحه در محدوده نیست', - 'exif-pdf-producer' => 'برنامهٔ مبدل', - 'exif-pdf-version' => 'نسخهٔ قالب پیدیاف', - 'exif-pdf-encrypted' => 'رمز شده', - 'exif-pdf-pagesize' => 'حجم صفحه', -); - -/** Finnish (suomi) - * @author Crt - * @author Kulmalukko - * @author Nike - * @author VezonThunder - * @author Vililikku - */ -$messages['fi'] = array( - 'pdf-desc' => 'Käsittelijä PDF-tiedostojen katsomiseen kuvatilassa.', - 'pdf_no_metadata' => 'Metatietojen hakeminen PDF-tiedostosta epäonnistui', - 'pdf_page_error' => 'Sivunumero ei ole alueella.', - 'exif-pdf-producer' => 'Muunto-ohjelma', - 'exif-pdf-version' => 'PDF-muodon versio', - 'exif-pdf-encrypted' => 'Salattu', - 'exif-pdf-pagesize' => 'Sivun koko', -); - -/** French (français) - * @author Crochet.david - * @author Gomoko - * @author Grondin - * @author Verdy p - */ -$messages['fr'] = array( - 'pdf-desc' => 'Gestionnaire permettant de visualiser les fichiers PDF en mode image', - 'pdf_no_metadata' => 'Impossible d’obtenir les métadonnées du fichier PDF', - 'pdf_page_error' => 'Le numéro de page est hors de l’étendue.', - 'exif-pdf-producer' => 'Programme de conversion', - 'exif-pdf-version' => 'Version du format PDF', - 'exif-pdf-encrypted' => 'Crypté', - 'exif-pdf-pagesize' => 'Taille de la page', -); - -/** Franco-Provençal (arpetan) - * @author ChrisPtDe - */ -$messages['frp'] = array( - 'pdf-desc' => 'Utilitèro por vêre los fichiérs PDF en fôrma émâge.', - 'pdf_no_metadata' => 'Pôt pas avêr les mètabalyês du fichiér PDF.', - 'pdf_page_error' => 'Lo numerô de pâge est en defôr de la portâ.', -); - -/** Galician (galego) - * @author Alma - * @author Toliño - */ -$messages['gl'] = array( - 'pdf-desc' => 'Manipulador para ver ficheiros PDF no modo de imaxe', - 'pdf_no_metadata' => 'Non se puideron obter os metadatos do PDF.', - 'pdf_page_error' => 'O número da páxina non está no rango.', - 'exif-pdf-producer' => 'Programa de conversión', - 'exif-pdf-version' => 'Versión en formato PDF', - 'exif-pdf-encrypted' => 'Cifrado', - 'exif-pdf-pagesize' => 'Tamaño da páxina', -); - -/** Ancient Greek (Ἀρχαία ἑλληνικὴ) - * @author Omnipaedista - */ -$messages['grc'] = array( - 'pdf_no_metadata' => 'Ἀδύνατον τὸ ἀποκομίζειν μεταδεδομένα ἐκ PDF', - 'pdf_page_error' => 'Ἀριθμὸς δέλτου ἐκτὸς ἐμβελείας', -); - -/** Swiss German (Alemannisch) - * @author Als-Holder - */ -$messages['gsw'] = array( - 'pdf-desc' => 'Schnittstell fir d Aasicht vu PDF-Dateien im Bilder-Modus', - 'pdf_no_metadata' => 'Kei Metadate im PDF vorhande.', - 'pdf_page_error' => 'Sytezahl usserhalb vum Dokumänt.', - 'exif-pdf-producer' => 'Umwandligsprogramm', - 'exif-pdf-version' => 'Version vum PDF-Format', - 'exif-pdf-encrypted' => 'Verschlisslet', - 'exif-pdf-pagesize' => 'Sytegreßi', -); - -/** Gujarati (ગુજરાતી) - * @author KartikMistry - * @author Sushant savla - */ -$messages['gu'] = array( - 'pdf-desc' => 'PDF ફાઈલોને ચિત્ર સ્વરૂપે જોવાનું સાધન', - 'pdf_no_metadata' => 'PDFમાંથી મેટા ડાટા ન મેળવી શકાયો', - 'pdf_page_error' => 'પાનાં ક્રમાંક અવધિમાં નથી', -); - -/** Hebrew (עברית) - * @author Amire80 - * @author Rotemliss - * @author YaronSh - */ -$messages['he'] = array( - 'pdf-desc' => 'טיפול בצפייה בקובצי PDF במצב תמונה', - 'pdf_no_metadata' => 'לא ניתן לאחזר את נתוני המסמך מה־PDF', - 'pdf_page_error' => 'מספר הדף אינו בטווח', - 'exif-pdf-producer' => 'תוכנת המרה', - 'exif-pdf-version' => 'הגרסה של תסדיר PDF', - 'exif-pdf-encrypted' => 'מוצפן', - 'exif-pdf-pagesize' => 'גודל דף', -); - -/** Hindi (हिन्दी) - * @author Kaustubh - */ -$messages['hi'] = array( - 'pdf-desc' => 'चित्र मोड में पीडीएफ फ़ाईल देखनेके लिये आवश्यक प्रणाली', - 'pdf_no_metadata' => 'पीडीएफ से मेटाडाटा ले नहीं पायें', - 'pdf_page_error' => 'पन्ने का क्रमांक सीमामें नहीं हैं', -); - -/** Croatian (hrvatski) - * @author Ex13 - */ -$messages['hr'] = array( - 'pdf-desc' => 'Program za gledanje PDF datoteka u slikovnom modu', - 'pdf_no_metadata' => 'Nije moguće dobiti metapodatke iz PDF', - 'pdf_page_error' => 'Broj stranice nije u opsegu', -); - -/** Upper Sorbian (hornjoserbsce) - * @author Michawiki - */ -$messages['hsb'] = array( - 'pdf-desc' => 'Program za wobhladowanje datajow PDF we wobrazowym modusu', - 'pdf_no_metadata' => 'W PDF žane metadaty njejsu.', - 'pdf_page_error' => 'Ličba strony zwonka dokumenta.', - 'exif-pdf-producer' => 'Konwertowanski program', - 'exif-pdf-version' => 'Wersija PDF-formata', - 'exif-pdf-encrypted' => 'Zaklučowany', - 'exif-pdf-pagesize' => 'Wulkosć strony', -); - -/** Hungarian (magyar) - * @author Dani - * @author Dj - */ -$messages['hu'] = array( - 'pdf-desc' => 'PDF fájlok megjelenítse képként', - 'pdf_no_metadata' => 'nem sikerült lekérni a PDF metaadatait', - 'pdf_page_error' => 'Az oldalszám a tartományon kívül esik', - 'exif-pdf-producer' => 'Konvertáló program', - 'exif-pdf-version' => 'PDF formátum verziója', - 'exif-pdf-encrypted' => 'Titkosított', - 'exif-pdf-pagesize' => 'Lapméret', -); - -/** Interlingua (interlingua) - * @author McDutchie - */ -$messages['ia'] = array( - 'pdf-desc' => 'Gestor pro visualisar files PDF in modo de imagine', - 'pdf_no_metadata' => 'Non pote obtener metadatos ab PDF', - 'pdf_page_error' => 'Numero de pagina foras del intervallo', -); - -/** Indonesian (Bahasa Indonesia) - * @author Bennylin - */ -$messages['id'] = array( - 'pdf-desc' => 'Yang menangani tampilan berkas PDF dalam mode gambar', - 'pdf_no_metadata' => 'Tidak dapat membaca metadata dari PDF', - 'pdf_page_error' => 'Nomor halaman di luar batas', -); - -/** Iloko (Ilokano) - * @author Lam-ang - */ -$messages['ilo'] = array( - 'pdf-desc' => 'Panagtengngel para iti panagkita kadagiti PDF a papeles iti moda a ladawan', - 'pdf_no_metadata' => 'Saan a makaala ti metadata manipud idiay PDF.', - 'pdf_page_error' => 'Saan a masakupan ti numero ti panid.', - 'exif-pdf-producer' => 'Konbersion a programa', - 'exif-pdf-version' => 'Bersion iti PDF a pormat', - 'exif-pdf-encrypted' => 'Naenkripto', - 'exif-pdf-pagesize' => 'Kadakkel ti panid', -); - -/** Italian (italiano) - * @author Beta16 - * @author Darth Kule - */ -$messages['it'] = array( - 'pdf-desc' => 'Gestore per la visualizzazione di file PDF in modalità immagine', - 'pdf_no_metadata' => 'Impossibile ottenere i metadati da PDF', - 'pdf_page_error' => "Numero di pagina non compreso nell'intervallo", - 'exif-pdf-producer' => 'Programma di conversione', - 'exif-pdf-version' => 'Versione del formato PDF', - 'exif-pdf-encrypted' => 'Crittografato', - 'exif-pdf-pagesize' => 'Dimensioni pagina', -); - -/** Japanese (日本語) - * @author Fryed-peach - * @author Shirayuki - */ -$messages['ja'] = array( - 'pdf-desc' => '画像モードで PDF ファイルを表示するためのハンドラー', - 'pdf_no_metadata' => 'PDF ファイルからメタデータを取得できません', - 'pdf_page_error' => 'ページ番号が正しい範囲内にありません。', - 'exif-pdf-producer' => '変換プログラム', - 'exif-pdf-version' => 'PDF 形式のバージョン', - 'exif-pdf-encrypted' => '暗号化済み', - 'exif-pdf-pagesize' => 'ページのサイズ', -); - -/** Javanese (Basa Jawa) - * @author Meursault2004 - * @author NoiX180 - */ -$messages['jv'] = array( - 'pdf-desc' => 'Sing nadhangi kanggo ndelok berkas PDF mawa modé gambar', - 'pdf_no_metadata' => 'Ora bisa olèh metadata saka PDF', - 'pdf_page_error' => 'Nomèr kaca nèng njaba wates', -); - -/** Georgian (ქართული) - * @author BRUTE - * @author David1010 - */ -$messages['ka'] = array( - 'pdf-desc' => 'დამამუშავებელი PDF-ფაილების სურათების სახით დასათვალიერებლად', - 'pdf_no_metadata' => 'შეუძლებელია PDF-დან მეტამონაცემების მიღება', - 'pdf_page_error' => 'გვერდის ნომერი არ არის დიაპაზონში', - 'exif-pdf-producer' => 'პროგრამის გარდაქმნა', - 'exif-pdf-version' => 'ვერსია PDF ფორმატში', - 'exif-pdf-encrypted' => 'დაშიფრული', - 'exif-pdf-pagesize' => 'გვერდის ზომა', -); - -/** Khmer (ភាសាខ្មែរ) - * @author Chhorran - * @author Lovekhmer - * @author Thearith - * @author គីមស៊្រុន - */ -$messages['km'] = array( - 'pdf-desc' => 'កម្មវិធីសំរាប់បើកមើលឯកសារ PDF ជាទំរង់រូបភាព', - 'pdf_no_metadata' => 'មិនអាចទទួលយកទិន្នន័យមេតាពី PDF បានទេ', - 'pdf_page_error' => 'គ្មានលេខទំព័រ ក្នុងដែនកំណត់', -); - -/** Korean (한국어) - * @author Kwj2772 - * @author 아라 - */ -$messages['ko'] = array( - 'pdf-desc' => 'PDF 파일을 이미지 방식으로 볼 수 있게 하는 핸들러', - 'pdf_no_metadata' => 'PDF 파일에서 메타데이터를 추출할 수 없습니다.', - 'pdf_page_error' => '쪽수가 범위 안에 있지 않습니다.', - 'exif-pdf-producer' => '변환 프로그램', - 'exif-pdf-version' => 'PDF 형식 버전', - 'exif-pdf-encrypted' => '암호화함', - 'exif-pdf-pagesize' => '문서 크기', -); - -/** Colognian (Ripoarisch) - * @author Purodha - */ -$messages['ksh'] = array( - 'pdf-desc' => 'Määd et möjjelesch, PDF-Dateie wie Bellder ze beloore.', - 'pdf_no_metadata' => 'Kann de Metta-Date nit fun dä PDF-Datei holle.', - 'pdf_page_error' => 'En Sigge-Nommer es ußerhallef', - 'exif-pdf-producer' => 'Ömwandelongsprojramm', - 'exif-pdf-version' => 'PDF-Fommaat-Version', - 'exif-pdf-encrypted' => 'Verschlößelt', - 'exif-pdf-pagesize' => 'Dä Sigg(e) ier Jrüüße', # Fuzzy -); - -/** Kyrgyz (Кыргызча) - * @author Chorobek - */ -$messages['ky'] = array( - 'pdf-desc' => 'PDF файлдарды сүрөт түрүндө көрсөткүч', - 'pdf_no_metadata' => 'PDF-тин метамаалыматтарын алуу мүмкүн эмес', -); - -/** Luxembourgish (Lëtzebuergesch) - * @author Robby - */ -$messages['lb'] = array( - 'pdf-desc' => '"Programm" den et erméiglecht PDF-Fichieren als Bild ze kucken', - 'pdf_no_metadata' => 'Meta-Informatiounen aus dem PDF Dokument kënnen net gelies ginn', - 'pdf_page_error' => "D'Säitenzuel ass net an dem Beräich.", - 'exif-pdf-version' => 'Versioun vum PDF-Format', - 'exif-pdf-encrypted' => 'Verschlësselt', - 'exif-pdf-pagesize' => 'Gréisst vun der Säit', -); - -/** Limburgish (Limburgs) - * @author Ooswesthoesbes - */ -$messages['li'] = array( - 'pdf-desc' => "Hanjeltj PDF-bestenj aaf en maak 't meugelik die es aafbeildjing te zeen", - 'pdf_no_metadata' => 'Kèn gein metadata vanne PDF kriege', - 'pdf_page_error' => 'paginanómmer besteit neet', -); - -/** Lithuanian (lietuvių) - * @author Matasg - */ -$messages['lt'] = array( - 'pdf-desc' => 'Įrankis PDF failų peržiūrai vaizdo režime', - 'pdf_no_metadata' => 'Nepavyko gauti metaduomenų iš PDF', - 'pdf_page_error' => 'Puslapis numeris nėra diapazone', -); - -/** Macedonian (македонски) - * @author Bjankuloski06 - * @author Brest - */ -$messages['mk'] = array( - 'pdf-desc' => 'Ракувач за прегледување PDF податотеки во сликовен режим', - 'pdf_no_metadata' => 'Не може да се земат метаподатоци од PDF', - 'pdf_page_error' => 'Бројот на страница е надвор од опсег', - 'exif-pdf-producer' => 'Програм за претворање', - 'exif-pdf-version' => 'Верзија на PDF-форматот', - 'exif-pdf-encrypted' => 'Шифрирано', - 'exif-pdf-pagesize' => 'Големина на страницата', -); - -/** Malayalam (മലയാളം) - * @author Praveenp - * @author Shijualex - */ -$messages['ml'] = array( - 'pdf-desc' => 'പി.ഡി.എഫ്. പ്രമാണങ്ങൾ ചിത്രരൂപത്തിൽ കാണുന്നതിനുള്ള കൈകാര്യോപകരണം', - 'pdf_no_metadata' => 'PDF-ൽ നിന്നു മെറ്റാഡാറ്റ ലഭിച്ചില്ല', - 'pdf_page_error' => 'താളിന്റെ ക്രമസംഖ്യ പരിധിയിലധികമാണ്', - 'exif-pdf-producer' => 'പരിവർത്തന പ്രോഗ്രാം', - 'exif-pdf-version' => 'പി.ഡി.എഫ്. തരത്തിന്റെ പതിപ്പ്', - 'exif-pdf-encrypted' => 'നിഗൂഢീകരിക്കപ്പെട്ടത്', - 'exif-pdf-pagesize' => 'താളിന്റെ വലിപ്പം', -); - -/** Marathi (मराठी) - * @author Kaustubh - * @author Sankalpdravid - */ -$messages['mr'] = array( - 'pdf-desc' => 'चित्र मोडमध्ये पीडीएफ संचिका पाहण्यासाठी आवश्यक प्रणाली', - 'pdf_no_metadata' => 'पीडीएफमधून मेटाडाटा घेऊ शकत नाही', - 'pdf_page_error' => 'पान क्रमांक सीमेमध्ये नाही', -); - -/** Malay (Bahasa Melayu) - * @author Anakmalaysia - */ -$messages['ms'] = array( - 'pdf-desc' => 'Pengendali untuk melihat fail PDF dalam mod imej', - 'pdf_no_metadata' => 'Metadata tidak boleh diperoleh dari PDF', - 'pdf_page_error' => 'Nombor halaman tiada dalam julat', - 'exif-pdf-producer' => 'Program penukaran', - 'exif-pdf-version' => 'Versi format PDF', - 'exif-pdf-encrypted' => 'Disulitkan', - 'exif-pdf-pagesize' => 'Saiz halaman', -); - -/** Maltese (Malti) - * @author Chrisportelli - */ -$messages['mt'] = array( - 'pdf_page_error' => 'In-numru tal-paġna ma jinsabx fl-intervall', -); - -/** Norwegian Bokmål (norsk bokmål) - * @author Jsoby - */ -$messages['nb'] = array( - 'pdf-desc' => 'Håndtering av PDF-visning i bildemodus', - 'pdf_no_metadata' => 'kan ikke hente metadata fra PDF', - 'pdf_page_error' => 'Sidenummer overstiger antall sider i dokumentet', - 'exif-pdf-producer' => 'Koverteringsprogram', - 'exif-pdf-version' => 'Versjon av PDF-format', - 'exif-pdf-encrypted' => 'Kryptert', - 'exif-pdf-pagesize' => 'Sidestørrelse', -); - -/** Dutch (Nederlands) - * @author Siebrand - * @author Wiki13 - */ -$messages['nl'] = array( - 'pdf-desc' => 'Handelt pdfbestanden af en maakt het mogelijk ze als afbeeldingen te bekijken', - 'pdf_no_metadata' => 'De metadata van het pdfbestand kan niet uitgelezen worden', - 'pdf_page_error' => 'Het paginanummer ligt niet binnen het bereik', - 'exif-pdf-producer' => 'Conversieprogramma', - 'exif-pdf-version' => 'Versie van pdfopmaak', - 'exif-pdf-encrypted' => 'Versleuteld', - 'exif-pdf-pagesize' => 'Papierformaat', -); - -/** Norwegian Nynorsk (norsk nynorsk) - * @author Harald Khan - * @author Njardarlogar - */ -$messages['nn'] = array( - 'pdf-desc' => 'Handering av PDF-vising i biletmodus', - 'pdf_no_metadata' => 'Kan ikkje henta metadata frå PDF', - 'pdf_page_error' => 'Sidenummer overstig talet på sider i dokumentet', -); - -/** Occitan (occitan) - * @author Cedric31 - */ -$messages['oc'] = array( - 'pdf-desc' => 'Utilitari per visualizar los fichièrs PDF en mòde imatge', - 'pdf_no_metadata' => 'Pòt pas obténer las metadonadas del fichièr PDF', - 'pdf_page_error' => 'Lo numèro de pagina es pas dins la gama.', - 'exif-pdf-producer' => 'Programa de conversion', - 'exif-pdf-version' => 'Version del format PDF', - 'exif-pdf-encrypted' => 'Chifrat', - 'exif-pdf-pagesize' => 'Talha de la pagina', -); - -/** Oriya (ଓଡ଼ିଆ) - * @author Jnanaranjan Sahu - * @author Psubhashish - */ -$messages['or'] = array( - 'pdf-desc' => 'PDF ଫାଇଲକୁ ଛବି ମୋଡ଼ରେ ଦେଖିବାର ପରିଚାଳକ', - 'pdf_no_metadata' => 'ପି.ଡ଼ି.ଏଫ.ରୁ ମେଟାଡାଟା ବାହାର କରିପାରିଲୁଁ ନାହିଁ', - 'pdf_page_error' => 'ପୃଷ୍ଠା ସଂଖ୍ୟା ସୀମା ଭିତରେ ନାହିଁ', - 'exif-pdf-producer' => 'ବଦଳ କାର୍ଯ୍ୟ', - 'exif-pdf-version' => 'PDF ପ୍ରକାରର ସଂସ୍କରଣ', - 'exif-pdf-encrypted' => 'ଏନକ୍ରିପ୍ଟ ହୋଇଥିବା', - 'exif-pdf-pagesize' => 'ପୃଷ୍ଠା ଆକାର', -); - -/** Deitsch (Deitsch) - * @author Xqt - */ -$messages['pdc'] = array( - 'pdf_no_metadata' => 'Keene Meta-Daade im PDF', -); - -/** Polish (polski) - * @author Holek - * @author Matma Rex - * @author Sp5uhe - */ -$messages['pl'] = array( - 'pdf-desc' => 'Konwerter graficznego podglądu plików PDF', - 'pdf_no_metadata' => 'nie można pobrać metadanych z pliku PDF', - 'pdf_page_error' => 'Numer strony poza zakresem', - 'exif-pdf-producer' => 'Program użyty do konwersji', - 'exif-pdf-version' => 'Wersja formatu PDF', - 'exif-pdf-encrypted' => 'Zaszyfrowany', - 'exif-pdf-pagesize' => 'Wymiary strony', -); - -/** Piedmontese (Piemontèis) - * @author Borichèt - * @author Dragonòt - */ -$messages['pms'] = array( - 'pdf-desc' => 'Ël gestor për vëdde ij file PDF an manera image', - 'pdf_no_metadata' => 'as peulo nen pijesse ij metadat dal PDF', - 'pdf_page_error' => "Ël nùmer ëd pàgina a l'é pa ant ël range", - 'exif-pdf-producer' => 'Programa ëd conversion', - 'exif-pdf-version' => 'Version dël formà PDF', - 'exif-pdf-encrypted' => 'Criptà', - 'exif-pdf-pagesize' => 'Dimension dla pàgina', -); - -/** Western Punjabi (پنجابی) - * @author Khalid Mahmood - */ -$messages['pnb'] = array( - 'pdf-desc' => 'پی ڈی ایف فائلاں امیج موڈ چ ویکھن لئی ہینڈلر', - 'pdf_no_metadata' => 'پی ڈی ایف توں میٹاڈیٹا نئیں مل سکیا۔', - 'pdf_page_error' => 'صفہ نمبر ولگن چ نئیں۔', -); - -/** Portuguese (português) - * @author Hamilton Abreu - * @author Malafaya - */ -$messages['pt'] = array( - 'pdf-desc' => 'Manuseador de visionamento de ficheiros PDF em modo de imagem', - 'pdf_no_metadata' => 'não foi possível obter os metadados do PDF', - 'pdf_page_error' => 'Número de página fora do intervalo', -); - -/** Brazilian Portuguese (português do Brasil) - * @author Eduardo.mps - * @author 555 - */ -$messages['pt-br'] = array( - 'pdf-desc' => 'Ferramenta de visualização de arquivos PDF em modo de imagem', - 'pdf_no_metadata' => 'Não foi possível obter os metadados do PDF', - 'pdf_page_error' => 'Número de página fora do intervalo', - 'exif-pdf-producer' => 'Programa de conversão', - 'exif-pdf-version' => 'Versão do formato PDF', - 'exif-pdf-encrypted' => 'Criptografado', - 'exif-pdf-pagesize' => 'Tamanho da página', -); - -/** Romanian (română) - * @author Stelistcristi - */ -$messages['ro'] = array( - 'pdf-desc' => 'Operator pentru vizualizarea fișierelor PDF în modul de imagine', - 'pdf_no_metadata' => 'Nu se poate obține metadate din PDF', - 'pdf_page_error' => 'Numărul paginii nu e în șir', - 'exif-pdf-pagesize' => 'Dimensiunea paginii', -); - -/** tarandíne (tarandíne) - * @author Joetaras - */ -$messages['roa-tara'] = array( - 'pdf-desc' => 'Gestore pe vedè le file PDF in mode immaggine', - 'pdf_no_metadata' => "Non ge pozze pigghià le metadata da 'u PDF", - 'pdf_page_error' => "Numere de pàgene fore da l'indervalle", - 'exif-pdf-producer' => 'Programme de conversione', - 'exif-pdf-version' => "Versione d'u formate PDF", - 'exif-pdf-encrypted' => 'Criptate', - 'exif-pdf-pagesize' => "Dimenzione d'a pàgene", -); - -/** Russian (русский) - * @author DCamer - * @author Александр Сигачёв - */ -$messages['ru'] = array( - 'pdf-desc' => 'Обработчик для просмотра PDF-файлов в виде изображений', - 'pdf_no_metadata' => 'невозможно получить метаданные из PDF', - 'pdf_page_error' => 'Номер страницы вне диапазона', - 'exif-pdf-producer' => 'Программа преобразования', - 'exif-pdf-version' => 'Версия в формате PDF', - 'exif-pdf-encrypted' => 'Шифрование', - 'exif-pdf-pagesize' => 'Размер страницы', -); - -/** Rusyn (русиньскый) - * @author Gazeb - */ -$messages['rue'] = array( - 'pdf-desc' => 'Овладач про перегляд PDF файлів як образків', - 'pdf_no_metadata' => 'Не годен обтримати метадата з PDF', - 'pdf_page_error' => 'Чісло сторінкы не є в россягу', -); - -/** Sanskrit (संस्कृतम्) - * @author Shubha - */ -$messages['sa'] = array( - 'pdf-desc' => 'सुलेख(PDF)सञ्चिकाः चित्रदशायां दर्शनाय अपेक्षिता प्रणाली', - 'pdf_no_metadata' => 'सुलेखात् मेटादत्तांशः प्राप्तुम् अशक्यः', - 'pdf_page_error' => 'पृष्ठक्रमाङ्कः सीमायां न विद्यते', -); - -/** Sakha (саха тыла) - * @author HalanTul - */ -$messages['sah'] = array( - 'pdf-desc' => 'PDF билэлэри ойуу курдук көрдөрөөччү', - 'pdf_no_metadata' => 'PDF-тан мета дааннайдарын ылар кыах суох', - 'pdf_page_error' => 'Сирэй нүөмэрэ диапазоҥҥа киирбэт', -); - -/** Sinhala (සිංහල) - * @author Budhajeewa - * @author පසිඳු කාවින්ද - */ -$messages['si'] = array( - 'pdf-desc' => 'PDF ගොනු රූප මාදිලියෙන් හසුරුවනය', - 'pdf_no_metadata' => 'PDF ගොනුවෙන් මෙටාදත්ත ගත නොහැක', - 'pdf_page_error' => 'පිටු අංකය නිවැරදි පරාසයේ නොමැත', - 'exif-pdf-producer' => 'හැරවුම් වැඩසටහන', - 'exif-pdf-version' => 'PDF ආකෘතියේ අනුවාදය', - 'exif-pdf-encrypted' => 'ගුප්තකේතීකරණය වූ', - 'exif-pdf-pagesize' => 'පිටු ප්රමාණය', -); - -/** Slovak (slovenčina) - * @author Helix84 - */ -$messages['sk'] = array( - 'pdf-desc' => 'Obsluha zobrazovania PDF súborov v režime obrázkov', - 'pdf_no_metadata' => 'nie je možné získať metadáta z PDF', - 'pdf_page_error' => 'Číslo stránky nie je v intervale', -); - -/** Slovenian (slovenščina) - * @author Dbc334 - */ -$messages['sl'] = array( - 'pdf-desc' => 'Upravljavec ogledovanja datotek PDF v slikovnem načinu', - 'pdf_no_metadata' => 'Ne morem pridobiti metapodatkov iz PDF', - 'pdf_page_error' => 'Številka strani ni v dosegu', - 'exif-pdf-producer' => 'Pretvorbeni program', - 'exif-pdf-version' => 'Različica oblike PDF', - 'exif-pdf-encrypted' => 'Šifrirano', - 'exif-pdf-pagesize' => 'Velikost strani', -); - -/** Albanian (shqip) - * @author Olsi - */ -$messages['sq'] = array( - 'pdf-desc' => 'Mbajtës për pamjen e skedave PDF në mënyrën e figurave', - 'pdf_no_metadata' => 'Nuk mund të merren metadata nga PDF', - 'pdf_page_error' => 'Numri i faqes nuk është në varg', -); - -/** Serbian (Cyrillic script) (српски (ћирилица)) - * @author Rancher - * @author Михајло Анђелковић - */ -$messages['sr-ec'] = array( - 'pdf-desc' => 'Програм за прегледање PDF докумената у сликовном режиму', - 'pdf_no_metadata' => 'Не могу да преузмем метаподатке из PDF-а', - 'pdf_page_error' => 'Број страница ван опсега', -); - -/** Serbian (Latin script) (srpski (latinica)) - * @author Michaello - */ -$messages['sr-el'] = array( - 'pdf-desc' => 'Handler za pregled PDF fajlova kao slika', - 'pdf_no_metadata' => 'Ne mogu se dobiti meta-podaci iz PDF-a', - 'pdf_page_error' => 'Broj strane izlazi van opsega', -); - -/** Seeltersk (Seeltersk) - * @author Pyt - */ -$messages['stq'] = array( - 'pdf-desc' => 'Snitsteede foar dät Bekiekjen fon PDF-Doatäie in dän Bielde-Modus', - 'pdf_no_metadata' => 'Neen Metadoaten in dät PDF deer.', - 'pdf_page_error' => 'Siedentaal buute Riege.', -); - -/** Swedish (svenska) - * @author Ainali - * @author M.M.S. - */ -$messages['sv'] = array( - 'pdf-desc' => 'Hantering av PDF-visning i bildläge', - 'pdf_no_metadata' => 'Kan inte hämta metadata från PDF', - 'pdf_page_error' => 'Sidnummer överstiger antal sidor i dokumentet', - 'exif-pdf-producer' => 'Konverteringsprogram', - 'exif-pdf-version' => 'Version av PDF-format', - 'exif-pdf-encrypted' => 'Krypterad', - 'exif-pdf-pagesize' => 'Sidstorlek', -); - -/** Tamil (தமிழ்) - * @author Shanmugamp7 - * @author TRYPPN - * @author மதனாஹரன் - */ -$messages['ta'] = array( - 'pdf-desc' => 'PDF கோப்புகளை உருவ முறையில் பார்க்க கையாளுனர்', - 'pdf_no_metadata' => 'PDF இருந்து மேல்தரவை பெற இயலவில்லை', - 'pdf_page_error' => 'பக்கத்தின் எண் குறிப்பிட்ட வரையறையில் இல்லை', - 'exif-pdf-producer' => 'மாற்றனிரல்', - 'exif-pdf-pagesize' => 'பக்க அளவு', -); - -/** Telugu (తెలుగు) - * @author Veeven - */ -$messages['te'] = array( - 'pdf_page_error' => 'పుట సంఖ్య అవధిలో లేదు', -); - -/** Turkmen (Türkmençe) - * @author Hanberke - */ -$messages['tk'] = array( - 'pdf-desc' => 'PDF faýllaryny görkeziş režiminde görkezmek üçin işleýji', - 'pdf_no_metadata' => 'PDF-den meta-maglumat alyp bolanok', - 'pdf_page_error' => 'Sahypa belgisi diapazonda däl', -); - -/** Tagalog (Tagalog) - * @author AnakngAraw - */ -$messages['tl'] = array( - 'pdf-desc' => 'Tagapaghawak para sa pagtanaw ng mga talaksang PDF na nasa modalidad na panglarawan', - 'pdf_no_metadata' => 'Hindi makuha ang dato ng meta mula sa PDF', - 'pdf_page_error' => 'Wala sa sakop ang bilang ng pahina', -); - -/** Turkish (Türkçe) - * @author Joseph - */ -$messages['tr'] = array( - 'pdf-desc' => 'PDF dosyalarını görüntü modunda görüntülemek için işleyici', - 'pdf_no_metadata' => "PDF'den metadata alınamıyor", - 'pdf_page_error' => 'Sayfa numarası aralıkta değil', -); - -/** Uyghur (Arabic script) (ئۇيغۇرچە) - * @author Sahran - */ -$messages['ug-arab'] = array( - 'exif-pdf-encrypted' => 'شىفىرلانغان', - 'exif-pdf-pagesize' => 'بەت چوڭلۇقى', -); - -/** Ukrainian (українська) - * @author Base - * @author Prima klasy4na - */ -$messages['uk'] = array( - 'pdf-desc' => 'Оброблювач для перегляду PDF-файлів в режимі зображень', - 'pdf_no_metadata' => 'Не виходить отримати метадані з PDF', - 'pdf_page_error' => 'Номер сторінки не в діапазоні', - 'exif-pdf-producer' => 'програма конвертації', - 'exif-pdf-version' => 'Версія формату PDF', - 'exif-pdf-encrypted' => 'Зашифровано', - 'exif-pdf-pagesize' => 'Розмір сторінки', -); - -/** Urdu (اردو) - * @author පසිඳු කාවින්ද - */ -$messages['ur'] = array( - 'pdf_page_error' => 'صفحہ نمبر رینج میں نہیں', -); - -/** vèneto (vèneto) - * @author Candalua - * @author GatoSelvadego - */ -$messages['vec'] = array( - 'pdf-desc' => 'Handler par vardar i file PDF in modalità imagine', - 'pdf_no_metadata' => 'No se riesse a recuperar i metadati dal PDF', - 'pdf_page_error' => "Nùmaro de pagina mia conpreso in te l'intervalo", - 'exif-pdf-producer' => 'Programa de conversion', - 'exif-pdf-version' => 'Version del formato PDF', - 'exif-pdf-encrypted' => 'Critigrafà', - 'exif-pdf-pagesize' => 'Dimension pàjina', -); - -/** Vietnamese (Tiếng Việt) - * @author Minh Nguyen - * @author Vinhtantran - */ -$messages['vi'] = array( - 'pdf-desc' => 'Bộ xử lý để xem tập tin PDF ở dạng hình ảnh', - 'pdf_no_metadata' => 'Không thấy truy xuất siêu dữ liệu từ PDF', - 'pdf_page_error' => 'Số trang không nằm trong giới hạn', - 'exif-pdf-producer' => 'Chương trình chuyển đổi', - 'exif-pdf-version' => 'Phiên bản định dạng PDF', - 'exif-pdf-encrypted' => 'Mã hóa', - 'exif-pdf-pagesize' => 'Kích thước trang', -); - -/** Yoruba (Yorùbá) - * @author Demmy - */ -$messages['yo'] = array( - 'pdf_no_metadata' => 'Dátà-àtẹ̀yìnwá kó ṣe é mú láti inú PDF', -); - -/** Cantonese (粵語) - */ -$messages['yue'] = array( - 'pdf-desc' => '響圖像模式睇PDF檔嘅處理器', - 'pdf_no_metadata' => '唔能夠響PDF度拎metadata', - 'pdf_page_error' => '頁數唔響範圍度', -); - -/** Simplified Chinese (中文(简体)) - * @author Shirayuki - * @author Yfdyh000 - */ -$messages['zh-hans'] = array( - 'pdf-desc' => '在图像模式中查看PDF文件的处理器。', - 'pdf_no_metadata' => '无法在PDF中获取元数据。', - 'pdf_page_error' => '页数不在范围内。', - 'exif-pdf-producer' => '转换程序', - 'exif-pdf-version' => 'PDF格式的版本', - 'exif-pdf-encrypted' => '加密', - 'exif-pdf-pagesize' => '页面大小', -); - -/** Traditional Chinese (中文(繁體)) - * @author Justincheng12345 - * @author Mark85296341 - * @author Simon Shek - */ -$messages['zh-hant'] = array( - 'pdf-desc' => '在圖片模式中查看PDF檔案的處理器', - 'pdf_no_metadata' => '無法在 PDF 中擷取元數據', - 'pdf_page_error' => '頁數不在範圍中', - 'exif-pdf-producer' => '轉換程式', - 'exif-pdf-version' => 'PDF格式的版本', - 'exif-pdf-encrypted' => '加密', - 'exif-pdf-pagesize' => '頁面大小', -); diff --git a/extensions/PdfHandler/PdfHandler.image.php b/extensions/PdfHandler/PdfHandler.image.php deleted file mode 100644 index 49da7f4e..00000000 --- a/extensions/PdfHandler/PdfHandler.image.php +++ /dev/null @@ -1,309 +0,0 @@ -<?php -/** - * - * Copyright © 2007 Xarax <jodeldi@gmx.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * http://www.gnu.org/copyleft/gpl.html - */ - -/** - * inspired by djvuimage from Brion Vibber - * modified and written by xarax - */ - -class PdfImage { - - /** - * @param $filename - */ - function __construct( $filename ) { - $this->mFilename = $filename; - } - - /** - * @return bool - */ - public function isValid() { - return true; - } - - /** - * @return array|bool - */ - public function getImageSize() { - $data = $this->retrieveMetadata(); - $size = self::getPageSize( $data, 1 ); - - if( $size ) { - $width = $size['width']; - $height = $size['height']; - return array( $width, $height, 'Pdf', - "width=\"$width\" height=\"$height\"" ); - } - return false; - } - - /** - * @param $data array - * @param $page - * @return array|bool - */ - public static function getPageSize( $data, $page ) { - global $wgPdfHandlerDpi; - - if( isset( $data['pages'][$page]['Page size'] ) ) { - $o = $data['pages'][$page]['Page size']; - } elseif( isset( $data['Page size'] ) ) { - $o = $data['Page size']; - } else { - $o = false; - } - - if ( $o ) { - if( isset( $data['pages'][$page]['Page rot'] ) ) { - $r = $data['pages'][$page]['Page rot']; - } elseif( isset( $data['Page rot'] ) ) { - $r = $data['Page rot']; - } else { - $r = 0; - } - $size = explode( 'x', $o, 2 ); - - if ( $size ) { - $width = intval( trim( $size[0] ) / 72 * $wgPdfHandlerDpi ); - $height = explode( ' ', trim( $size[1] ), 2 ); - $height = intval( trim( $height[0] ) / 72 * $wgPdfHandlerDpi ); - if ( ( $r/90 ) & 1 ) { - // Swap width and height for landscape pages - $t = $width; - $width = $height; - $height = $t; - } - - return array( - 'width' => $width, - 'height' => $height - ); - } - } - - return false; - } - - /** - * @return array|bool|null - */ - public function retrieveMetaData() { - global $wgPdfInfo, $wgPdftoText; - - if ( $wgPdfInfo ) { - wfProfileIn( 'pdfinfo' ); - $cmd = wfEscapeShellArg( $wgPdfInfo ) . - " -enc UTF-8 " . # Report metadata as UTF-8 text... - " -l 9999999 " . # Report page sizes for all pages - " -meta " . # Report XMP metadata - wfEscapeShellArg( $this->mFilename ); - $retval = ''; - $dump = wfShellExec( $cmd, $retval ); - $data = $this->convertDumpToArray( $dump ); - wfProfileOut( 'pdfinfo' ); - } else { - $data = null; - } - - # Read text layer - if ( isset( $wgPdftoText ) ) { - wfProfileIn( 'pdftotext' ); - $cmd = wfEscapeShellArg( $wgPdftoText ) . ' '. wfEscapeShellArg( $this->mFilename ) . ' - '; - wfDebug( __METHOD__.": $cmd\n" ); - $retval = ''; - $txt = wfShellExec( $cmd, $retval ); - wfProfileOut( 'pdftotext' ); - if( $retval == 0 ) { - $txt = str_replace( "\r\n", "\n", $txt ); - $pages = explode( "\f", $txt ); - foreach( $pages as $page => $pageText ) { - # Get rid of invalid UTF-8, strip control characters - # Note we need to do this per page, as \f page feed would be stripped. - $pages[$page] = UtfNormal::cleanUp( $pageText ); - } - $data['text'] = $pages; - } - } - return $data; - } - - /** - * @param $dump string - * @return array|bool - */ - protected function convertDumpToArray( $dump ) { - if ( strval( $dump ) == '' ) { - return false; - } - - $lines = explode( "\n", $dump ); - $data = array(); - - // Metadata is always the last item, and spans multiple lines. - $inMetadata = false; - - // Basically this loop will go through each line, splitting key value - // pairs on the colon, until it gets to a "Metadata:\n" at which point - // it will gather all remaining lines into the xmp key. - foreach( $lines as $line ) { - if ( $inMetadata ) { - # Handle XMP differently due to diffence in line break - $data['xmp'] .= "\n$line"; - continue; - } - $bits = explode( ':', $line, 2 ); - if( count( $bits ) > 1 ) { - $key = trim( $bits[0] ); - if ( $key === 'Metadata' ) { - $inMetadata = true; - $data['xmp'] = ''; - continue; - } - $value = trim( $bits[1] ); - $matches = array(); - // "Page xx rot" will be in poppler 0.20's pdfinfo output - // See https://bugs.freedesktop.org/show_bug.cgi?id=41867 - if( preg_match( '/^Page +(\d+) (size|rot)$/', $key, $matches ) ) { - $data['pages'][$matches[1]][$matches[2] == 'size' ? 'Page size' : 'Page rot'] = $value; - } else { - $data[$key] = $value; - } - } - } - $data = $this->postProcessDump( $data ); - return $data; - } - - /** - * Postprocess the metadata (convert xmp into useful form, etc) - * - * This is used to generate the metadata table at the bottom - * of the image description page. - * - * @param $data Array metadata - * @return Array post-processed metadata - */ - protected function postProcessDump( array $data ) { - - $meta = new BitmapMetadataHandler(); - $items = array(); - foreach( $data as $key => $val ) { - switch ( $key ) { - case 'Title': - $items['ObjectName'] = $val; - break; - case 'Subject': - $items['ImageDescription'] = $val; - break; - case 'Keywords': - // Sometimes we have empty keywords. This seems - // to be a product of how pdfinfo deals with keywords - // with spaces in them. Filter such empty keywords - $keyList = array_filter( explode( ' ', $val ) ); - if ( count( $keyList ) > 0 ) { - $items['Keywords'] = $keyList; - } - break; - case 'Author': - $items['Artist'] = $val; - break; - case 'Creator': - // Program used to create file. - // Different from program used to convert to pdf. - $items['Software'] = $val; - break; - case 'Producer': - // Conversion program - $items['pdf-Producer'] = $val; - break; - case 'ModTime': - $timestamp = wfTimestamp( TS_EXIF, $val ); - if ( $timestamp ) { - // 'if' is just paranoia - $items['DateTime'] = $timestamp; - } - break; - case 'CreationTime': - $timestamp = wfTimestamp( TS_EXIF, $val ); - if ( $timestamp ) { - $items['DateTimeDigitized'] = $timestamp; - } - break; - // These last two (version and encryption) I was unsure - // if we should include in the table, since they aren't - // all that useful to editors. I leaned on the side - // of including. However not including if file - // is optimized/linearized since that is really useless - // to an editor. - case 'PDF version': - $items['pdf-Version'] = $val; - break; - case 'Encrypted': - // @todo: The value isn't i18n-ised. The appropriate - // place to do that is in FormatMetadata.php - // should add a hook a there. - // For reference, if encrypted this fields value looks like: - // "yes (print:yes copy:no change:no addNotes:no)" - $items['pdf-Encrypted'] = $val; - break; - // Note 'pages' and 'Pages' are different keys (!) - case 'pages': - // A pdf document can have multiple sized pages in it. - // (However 95% of the time, all pages are the same size) - // get a list of all the unique page sizes in document. - // This doesn't do anything with rotation as of yet, - // mostly because I am unsure of what a good way to - // present that information to the user would be. - $pageSizes = array(); - foreach( $val as $page ) { - if( isset( $page['Page size'] ) ) { - $pageSizes[ $page['Page size'] ] = true; - } - } - - $pageSizeArray = array_keys( $pageSizes ); - if ( count( $pageSizeArray ) > 0 ) { - $items['pdf-PageSize'] = $pageSizeArray; - } - break; - } - - } - $meta->addMetadata( $items, 'native' ); - - if ( isset( $data['xmp'] ) && function_exists( 'xml_parser_create_ns' ) ) { - // func exists verifies that the xml extension required for XMPReader - // is present (Almost always is present) - // @todo: This only handles generic xmp properties. Would be improved - // by handling pdf xmp properties (pdf and pdfx) via XMPInfo hook. - $xmp = new XMPReader(); - $xmp->parse( $data['xmp'] ); - $xmpRes = $xmp->getResults(); - foreach ( $xmpRes as $type => $xmpSection ) { - $meta->addMetadata( $xmpSection, $type ); - } - } - unset( $data['xmp'] ); - $data['mergedMetadata'] = $meta->getMetadataArray(); - return $data; - } -} diff --git a/extensions/PdfHandler/PdfHandler.php b/extensions/PdfHandler/PdfHandler.php deleted file mode 100644 index dbae091f..00000000 --- a/extensions/PdfHandler/PdfHandler.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * PDF Handler extension -- handler for viewing PDF files in image mode. - * - * @file - * @ingroup Extensions - * @author Martin Seidel (Xarax) <jodeldi@gmx.de> - * @copyright Copyright © 2007 Martin Seidel (Xarax) <jodeldi@gmx.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * http://www.gnu.org/copyleft/gpl.html - */ - -# Not a valid entry point, skip unless MEDIAWIKI is defined -if ( !defined( 'MEDIAWIKI' ) ) { - echo 'PdfHandler extension'; - exit( 1 ); -} - -$wgExtensionCredits['media'][] = array( - 'path' => __FILE__, - 'name' => 'PDF Handler', - 'author' => array( 'Martin Seidel', 'Mike Połtyn' ), - 'descriptionmsg' => 'pdf-desc', - 'url' => 'https://www.mediawiki.org/wiki/Extension:PdfHandler', -); - -// External program requirements... -$wgPdfProcessor = 'gs'; -$wgPdfPostProcessor = 'convert'; -$wgPdfInfo = 'pdfinfo'; -$wgPdftoText = 'pdftotext'; - -$wgPdfOutputExtension = 'jpg'; -$wgPdfHandlerDpi = 150; - -// This setting, if enabled, will put creating thumbnails into a job queue, -// so they do not have to be created on-the-fly, -// but rather inconspicuously during normal wiki browsing -$wgPdfCreateThumbnailsInJobQueue = false; - -// To upload new PDF files you'll need to do this too: -// $wgFileExtensions[] = 'pdf'; - -$dir = dirname( __FILE__ ) . '/'; -$wgExtensionMessagesFiles['PdfHandler'] = $dir . 'PdfHandler.i18n.php'; -$wgAutoloadClasses['PdfImage'] = $dir . 'PdfHandler.image.php'; -$wgAutoloadClasses['PdfHandler'] = $dir . 'PdfHandler_body.php'; -$wgAutoloadClasses['CreatePdfThumbnailsJob'] = $dir . 'CreatePdfThumbnailsJob.class.php'; -$wgMediaHandlers['application/pdf'] = 'PdfHandler'; -$wgJobClasses['createPdfThumbnailsJob'] = 'CreatePdfThumbnailsJob'; -$wgHooks['UploadVerifyFile'][] = 'CreatePdfThumbnailsJob::insertJobs'; diff --git a/extensions/PdfHandler/PdfHandler_body.php b/extensions/PdfHandler/PdfHandler_body.php deleted file mode 100644 index d9ed4884..00000000 --- a/extensions/PdfHandler/PdfHandler_body.php +++ /dev/null @@ -1,362 +0,0 @@ -<?php -/** - * Copyright © 2007 Martin Seidel (Xarax) <jodeldi@gmx.de> - * - * Inspired by djvuhandler from Tim Starling - * Modified and written by Xarax - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * http://www.gnu.org/copyleft/gpl.html - */ - -class PdfHandler extends ImageHandler { - - /** - * @return bool - */ - function isEnabled() { - global $wgPdfProcessor, $wgPdfPostProcessor, $wgPdfInfo; - - if ( !isset( $wgPdfProcessor ) || !isset( $wgPdfPostProcessor ) || !isset( $wgPdfInfo ) ) { - wfDebug( "PdfHandler is disabled, please set the following\n" ); - wfDebug( "variables in LocalSettings.php:\n" ); - wfDebug( "\$wgPdfProcessor, \$wgPdfPostProcessor, \$wgPdfInfo\n" ); - return false; - } - return true; - } - - /** - * @param $file - * @return bool - */ - function mustRender( $file ) { - return true; - } - - /** - * @param $file - * @return bool - */ - function isMultiPage( $file ) { - return true; - } - - /** - * @param $name - * @param $value - * @return bool - */ - function validateParam( $name, $value ) { - if ( in_array( $name, array( 'width', 'height', 'page' ) ) ) { - return ( $value > 0 ); - } - return false; - } - - /** - * @param $params array - * @return bool|string - */ - function makeParamString( $params ) { - $page = isset( $params['page'] ) ? $params['page'] : 1; - if ( !isset( $params['width'] ) ) { - return false; - } - return "page{$page}-{$params['width']}px"; - } - - /** - * @param $str string - * @return array|bool - */ - function parseParamString( $str ) { - $m = false; - - if ( preg_match( '/^page(\d+)-(\d+)px$/', $str, $m ) ) { - return array( 'width' => $m[2], 'page' => $m[1] ); - } - - return false; - } - - /** - * @param $params array - * @return array - */ - function getScriptParams( $params ) { - return array( - 'width' => $params['width'], - 'page' => $params['page'], - ); - } - - /** - * @return array - */ - function getParamMap() { - return array( - 'img_width' => 'width', - 'img_page' => 'page', - ); - } - - /** - * @param $width - * @param $height - * @param $msg - * @return MediaTransformError - */ - protected function doThumbError( $width, $height, $msg ) { - return new MediaTransformError( 'thumbnail_error', - $width, $height, wfMessage( $msg )->inContentLanguage()->text() ); - } - - /** - * @param $image File - * @param $dstPath string - * @param $dstUrl string - * @param $params array - * @param $flags int - * @return MediaTransformError|MediaTransformOutput|ThumbnailImage|TransformParameterError - */ - function doTransform( $image, $dstPath, $dstUrl, $params, $flags = 0 ) { - global $wgPdfProcessor, $wgPdfPostProcessor, $wgPdfHandlerDpi; - - $metadata = $image->getMetadata(); - - if ( !$metadata ) { - return $this->doThumbError( - isset( $params['width'] ) ? $params['width'] : null, - isset( $params['height'] ) ? $params['height'] : null, - 'pdf_no_metadata' - ); - } - - if ( !$this->normaliseParams( $image, $params ) ) { - return new TransformParameterError( $params ); - } - - $width = $params['width']; - $height = $params['height']; - $page = $params['page']; - - if ( $page > $this->pageCount( $image ) ) { - return $this->doThumbError( $width, $height, 'pdf_page_error' ); - } - - if ( $flags & self::TRANSFORM_LATER ) { - return new ThumbnailImage( $image, $dstUrl, $width, $height, false, $page ); - } - - if ( !wfMkdirParents( dirname( $dstPath ), null, __METHOD__ ) ) { - return $this->doThumbError( $width, $height, 'thumbnail_dest_directory' ); - } - - $srcPath = $image->getLocalRefPath(); - - $cmd = '(' . wfEscapeShellArg( - $wgPdfProcessor, - "-sDEVICE=jpeg", - "-sOutputFile=-", - "-dFirstPage={$page}", - "-dLastPage={$page}", - "-r{$wgPdfHandlerDpi}", - "-dBATCH", - "-dNOPAUSE", - "-q", - $srcPath - ); - $cmd .= " | " . wfEscapeShellArg( - $wgPdfPostProcessor, - "-depth", - "8", - "-resize", - $width, - "-", - $dstPath - ); - $cmd .= ") 2>&1"; - - wfProfileIn( 'PdfHandler' ); - wfDebug( __METHOD__ . ": $cmd\n" ); - $retval = ''; - $err = wfShellExec( $cmd, $retval ); - wfProfileOut( 'PdfHandler' ); - - $removed = $this->removeBadFile( $dstPath, $retval ); - - if ( $retval != 0 || $removed ) { - wfDebugLog( 'thumbnail', - sprintf( 'thumbnail failed on %s: error %d "%s" from "%s"', - wfHostname(), $retval, trim( $err ), $cmd ) ); - return new MediaTransformError( 'thumbnail_error', $width, $height, $err ); - } else { - return new ThumbnailImage( $image, $dstUrl, $width, $height, $dstPath, $page ); - } - } - - /** - * @param $image File - * @param $path string - * @return PdfImage - */ - function getPdfImage( $image, $path ) { - if ( !$image ) { - $pdfimg = new PdfImage( $path ); - } elseif ( !isset( $image->pdfImage ) ) { - $pdfimg = $image->pdfImage = new PdfImage( $path ); - } else { - $pdfimg = $image->pdfImage; - } - - return $pdfimg; - } - - /** - * @param $image File - * @return bool - */ - function getMetaArray( $image ) { - if ( isset( $image->pdfMetaArray ) ) { - return $image->pdfMetaArray; - } - - $metadata = $image->getMetadata(); - - if ( !$this->isMetadataValid( $image, $metadata ) ) { - wfDebug( "Pdf metadata is invalid or missing, should have been fixed in upgradeRow\n" ); - return false; - } - - wfProfileIn( __METHOD__ ); - wfSuppressWarnings(); - $image->pdfMetaArray = unserialize( $metadata ); - wfRestoreWarnings(); - wfProfileOut( __METHOD__ ); - - return $image->pdfMetaArray; - } - - /** - * @param $image File - * @param $path string - * @return array|bool - */ - function getImageSize( $image, $path ) { - return $this->getPdfImage( $image, $path )->getImageSize(); - } - - /** - * @param $ext - * @param $mime string - * @param $params null - * @return array - */ - function getThumbType( $ext, $mime, $params = null ) { - global $wgPdfOutputExtension; - static $mime; - - if ( !isset( $mime ) ) { - $magic = MimeMagic::singleton(); - $mime = $magic->guessTypesForExtension( $wgPdfOutputExtension ); - } - return array( $wgPdfOutputExtension, $mime ); - } - - /** - * @param $image File - * @param $path string - * @return string - */ - function getMetadata( $image, $path ) { - return serialize( $this->getPdfImage( $image, $path )->retrieveMetaData() ); - } - - /** - * @param $image File - * @param $metadata string - * @return bool - */ - function isMetadataValid( $image, $metadata ) { - if ( !$metadata || $metadata === serialize(array()) ) { - return self::METADATA_BAD; - } elseif ( strpos( $metadata, 'mergedMetadata' ) === false ) { - return self::METADATA_COMPATIBLE; - } - return self::METADATA_GOOD; - } - - /** - * @param $image File - * @return bool|int - */ - function formatMetadata( $image ) { - $meta = $image->getMetadata(); - - if ( !$meta ) { - return false; - } - wfSuppressWarnings(); - $meta = unserialize( $meta ); - wfRestoreWarnings(); - - if ( !isset( $meta['mergedMetadata'] ) - || !is_array( $meta['mergedMetadata'] ) - || count( $meta['mergedMetadata'] ) < 1 - ) { - return false; - } - - // Inherited from MediaHandler. - return $this->formatMetadataHelper( $meta['mergedMetadata'] ); - } - - /** - * @param $image - * @return bool|int - */ - function pageCount( $image ) { - $data = $this->getMetaArray( $image ); - if ( !$data || !isset( $data['Pages'] ) ) { - return false; - } - return intval( $data['Pages'] ); - } - - /** - * @param $image File - * @param $page int - * @return array|bool - */ - function getPageDimensions( $image, $page ) { - $data = $this->getMetaArray( $image ); - return PdfImage::getPageSize( $data, $page ); - } - - /** - * @param $image File - * @param $page int - * @return bool - */ - function getPageText( $image, $page ) { - $data = $this->getMetaArray( $image, true ); - if ( !$data || !isset( $data['text'] ) || !isset( $data['text'][$page - 1] ) ) { - return false; - } - return $data['text'][$page - 1]; - } - -} diff --git a/extensions/SimpleAntiSpam/SimpleAntiSpam.php b/extensions/SimpleAntiSpam/SimpleAntiSpam.php new file mode 100644 index 00000000..9a70ad9f --- /dev/null +++ b/extensions/SimpleAntiSpam/SimpleAntiSpam.php @@ -0,0 +1,5 @@ +<?php +// The SimpleAntiSpam extension has been discontinued and its +// functionality was moved into MediaWiki core in version 1.22. If you +//see this file, you should remove the extension from your MediaWiki +// installation. diff --git a/extensions/Vector/README b/extensions/Vector/README new file mode 100644 index 00000000..386c3c6d --- /dev/null +++ b/extensions/Vector/README @@ -0,0 +1,9 @@ +The Vector extension has been discontinued and most of its +functionality was moved into MediaWiki core. If you see this file, +you should remove the extension from your MediaWiki installation. + +It used to provide enhancements to the Vector skin, some experimental, +some well-established. The good parts have been integrated and the +failed experiments were removed. + +See: https://www.mediawiki.org/wiki/Extension:Vector diff --git a/extensions/Vector/Vector.php b/extensions/Vector/Vector.php new file mode 100644 index 00000000..041d5c84 --- /dev/null +++ b/extensions/Vector/Vector.php @@ -0,0 +1,6 @@ +<?php +// The Vector extension has been discontinued and most of its +// functionality was moved into MediaWiki core. If you see this file, +// you should remove the extension from your MediaWiki installation. +// +// See: https://www.mediawiki.org/wiki/Extension:Vector |