Index: branches/wmf/1.16wmf4/extensions/Collection/Collection.i18n.php |
— | — | @@ -119,6 +119,8 @@ |
120 | 120 | |
121 | 121 | Notes: |
122 | 122 | * Not satisfied with the output? See [[{{MediaWiki:Coll-helppage}}|the help page about books]] for possibilities to improve it.", |
| 123 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering page info text', |
| 124 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering collection info text', |
123 | 125 | 'coll-notfound_title' => 'Book not found', |
124 | 126 | 'coll-notfound_text' => 'Could not find book page.', |
125 | 127 | 'coll-download_notfound_title' => 'File not found', |
— | — | @@ -160,6 +162,7 @@ |
161 | 163 | 'coll-suggest_article_remove' => "Page <strong>$1</strong> has been removed from your book ($2).", |
162 | 164 | 'coll-suggest_undo_tooltip' => 'Undo this action', |
163 | 165 | 'coll-suggest_undo' => 'undo', |
| 166 | + 'coll-load_local_book' => 'Click OK to continue with your book %TITLE% which contains %NUMPAGES% wiki pages. Click Cancel to delete it and start with an empty book.', |
164 | 167 | |
165 | 168 | 'right-collectionsaveasuserpage' => 'Save books as user page', |
166 | 169 | 'right-collectionsaveascommunitypage' => 'Save books as community page', |
— | — | @@ -186,7 +189,8 @@ |
187 | 190 | 'coll-collection' => '{{Identical|Book}}', |
188 | 191 | 'coll-collections' => '{{Identical|Book}}', |
189 | 192 | 'coll-exclusion_category_title' => 'The message text is the name of a category.', |
190 | | - 'coll-print_template_prefix' => 'Prefix added to the templates name if you want to get a special for-print version of the template. So in a page instead of Template:Foo Template:PrintFoo is used if it exists.', |
| 193 | + 'coll-print_template_prefix' => 'Prefix added to the templates name if you want to get a special for-print version of the template. So in a page instead of Template:Foo Template:PrintFoo is used if it exists. |
| 194 | +{{Identical|Print}}', |
191 | 195 | 'coll-print_template_pattern' => 'Use print templates being subpages of regular templates. |
192 | 196 | |
193 | 197 | $1 is a placeholder and will be replaced by content during the rendering process.', |
— | — | @@ -815,6 +819,8 @@ |
816 | 820 | |
817 | 821 | Заўвага: |
818 | 822 | * Не задаволены створаным дакумэнтам? Глядзіце [[{{MediaWiki:Coll-helppage}}|старонку дапамогі па калекцыі]], каб даведацца, як яго палепшыць.', |
| 823 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Стварэньне тэксту з інфармацыяй пра старонку', |
| 824 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Стварэньне тэксту з інфармацыяй пра калекцыю', |
819 | 825 | 'coll-notfound_title' => 'Кніга ня знойдзеная', |
820 | 826 | 'coll-notfound_text' => 'Немагчыма знайсьці старонку кнігі.', |
821 | 827 | 'coll-download_notfound_title' => 'Файл ня знойдзены', |
— | — | @@ -853,6 +859,7 @@ |
854 | 860 | 'coll-suggest_article_remove' => 'Старонка <strong>$1</strong> была выдаленая з Вашай кнігі ($2).', |
855 | 861 | 'coll-suggest_undo_tooltip' => 'Адмяніць гэтае дзеяньне', |
856 | 862 | 'coll-suggest_undo' => 'адмяніць', |
| 863 | + 'coll-load_local_book' => 'Націсьніце «Добра» каб працягваць працу з Вашай кнігай %TITLE%, якая ўтрымлівае %NUMPAGES% вікі-старонак. Націсьніце «Адмена», каб выдаліць яе і пачаць з пустой кнігі.', |
857 | 864 | 'right-collectionsaveasuserpage' => 'захаваньне кніг як старонак ўдзельніка', |
858 | 865 | 'right-collectionsaveascommunitypage' => 'захаваньне кніг як старонак супольнасьці', |
859 | 866 | ); |
— | — | @@ -1028,7 +1035,7 @@ |
1029 | 1036 | আপনি কি ওভাররাইট করবেন?', |
1030 | 1037 | 'coll-overwrite_text' => '[[:$1]] নামের একটি পাতা ইতিমধ্যে রয়েছে। </br> |
1031 | 1038 | আপনি কি আপনার বই এই নামে প্রতিস্থাপন করতে চান?', |
1032 | | - 'coll-yes' => 'হ্যা', |
| 1039 | + 'coll-yes' => 'হ্যাঁ', |
1033 | 1040 | 'coll-no' => 'না', |
1034 | 1041 | 'coll-load_overwrite_text' => 'আপনার বইয়ে আগে থেকেই কিছু পাতা রয়েছে। |
1035 | 1042 | আপনি কি বর্তমান বই দিয়ে তা প্রতিস্থাপন করবেন, নতুন কন্টেন্ট আগের কন্টেন্টের শেষে যোগ করবেন, নাকি এই বইটি লোড বাতিল করবেন?', |
— | — | @@ -1190,12 +1197,16 @@ |
1191 | 1198 | 'coll-rendering_status' => '<strong>Stad :</strong> $1', |
1192 | 1199 | 'coll-rendering_article' => '(pajenn wiki : $1)', |
1193 | 1200 | 'coll-rendering_page' => '(pajenn : $1)', |
| 1201 | + 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Testenn titouroù war deouez ar pajennoù', |
| 1202 | + 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Testenn titouroù war deouez an dastumadegoù', |
1194 | 1203 | 'coll-rendering_finished_title' => 'Argerzh echu', |
1195 | 1204 | 'coll-rendering_finished_text' => "<strong>Ganet eo bet ar restr teul.</strong> |
1196 | 1205 | <strong>[$1 Pellgargit ar restr]</strong> war hoc'h urzhiataer. |
1197 | 1206 | |
1198 | 1207 | Notennoù : |
1199 | 1208 | * N'eo ket an disoc'h diouzhoc'h ? Gwelit [[{{MediaWiki:Coll-helppage}}|ar bajenn skoazell diwar-benn al levrioù]] evit kavout doareoù da wellaat an traoù.", |
| 1209 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Deouez testenn titouroù ar bajenn', |
| 1210 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Deouez testenn titouroù an dastumadeg', |
1200 | 1211 | 'coll-notfound_title' => "N'eo ket bet kavet al levr", |
1201 | 1212 | 'coll-notfound_text' => "N'eus ket bet tu da gavout pajenn al levr.", |
1202 | 1213 | 'coll-download_notfound_title' => "N'eo ket bet kavet ar restr", |
— | — | @@ -1484,7 +1495,7 @@ |
1485 | 1496 | 'coll-download_notfound_title' => "No s'ha trobat el fitxer", |
1486 | 1497 | 'coll-download_notfound_text' => 'El fitxer que intenteu descarregar no existeix: Potser ha estat esborrat i cal que sigui regenerat.', |
1487 | 1498 | 'coll-download_failed_title' => 'Error durant la baixada', |
1488 | | - 'coll-download_failed_text' => "S'ha produït un error en descarregar l'arxiu: \$ 1", |
| 1499 | + 'coll-download_failed_text' => "S'ha produït un error en descarregar l'arxiu: $1", |
1489 | 1500 | 'coll-is_cached' => '<ul><li>S\'ha trobat una versió del document en la memòria cau i per tant no ha estat necessària cap renderització. <a href="$1">Forçar renderització.</a></li></ul>', |
1490 | 1501 | 'coll-excluded-templates' => "* No s'han inclòs les plantilles de la categoria [[:Category:$1|$1]].", |
1491 | 1502 | 'coll-blacklisted-templates' => "* S'han exclòs les plantilles de la llista negra [[:$1]].", |
— | — | @@ -1610,6 +1621,8 @@ |
1611 | 1622 | |
1612 | 1623 | Poznámky: |
1613 | 1624 | * Nejste spokojeni s výsledkem? Podívejte se na [[{{MediaWiki:Coll-helppage}}|stránku s nápovědou ke kolekcím]], jak ho vylepšit.', |
| 1625 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informace při vykreslování stránky', |
| 1626 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informace při vykreslování knihy', |
1614 | 1627 | 'coll-notfound_title' => 'Kniha nenalezena', |
1615 | 1628 | 'coll-notfound_text' => 'Nebylo možné najít stránku knihy.', |
1616 | 1629 | 'coll-download_notfound_title' => 'Soubor nenalezen', |
— | — | @@ -1648,6 +1661,7 @@ |
1649 | 1662 | 'coll-suggest_article_remove' => 'Stránka <strong>$1</strong> byla odstraněna z vaší knihy. ($2)', |
1650 | 1663 | 'coll-suggest_undo_tooltip' => 'Vrátit tuto akci zpět', |
1651 | 1664 | 'coll-suggest_undo' => 'zpět', |
| 1665 | + 'coll-load_local_book' => 'Pokračovat v tvorbě knihy %TITLE%, která obsahuje %NUMPAGES% stran wiki, můžete kliknutím na OK. Kliknutím na Storno ji smažete a začnete s prázdnou knihou.', |
1652 | 1666 | 'right-collectionsaveasuserpage' => 'Ukládání knih jako uživatelských stránek', |
1653 | 1667 | 'right-collectionsaveascommunitypage' => 'Ukládání knih jako stránek komunity', |
1654 | 1668 | ); |
— | — | @@ -1741,7 +1755,7 @@ |
1742 | 1756 | 'coll-rendering_status' => '<strong>Statws:</strong> $1', |
1743 | 1757 | 'coll-rendering_article' => '(tudalen wici: $1)', |
1744 | 1758 | 'coll-rendering_page' => '(tudalen: $1)', |
1745 | | - 'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r gwybodaeth am y dudalen", |
| 1759 | + 'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r wybodaeth am y dudalen", |
1746 | 1760 | 'coll-rendering_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r gwybodaeth am y casgliad", |
1747 | 1761 | 'coll-rendering_finished_title' => 'Wedi gorffen cynhyrchu', |
1748 | 1762 | 'coll-rendering_finished_text' => "<strong>Mae ffeil y ddogfen wedi cael ei gynhyrchu.</strong> |
— | — | @@ -1749,6 +1763,8 @@ |
1750 | 1764 | |
1751 | 1765 | Nodiadau: |
1752 | 1766 | * Os nad ydych yn bles â'r cynnyrch gwelwch [[{{MediaWiki:Coll-helppage}}|y dudalen gymorth ar gynhyrchu llyfrau]] er mwyn deall sut mae gwella arno.", |
| 1767 | + 'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r wybodaeth am y dudalen", |
| 1768 | + 'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r wybodaeth am y casgliad", |
1753 | 1769 | 'coll-notfound_title' => 'Heb ganfod y llyfr', |
1754 | 1770 | 'coll-notfound_text' => 'Heb ganfod y dudalen yn y llyfr.', |
1755 | 1771 | 'coll-download_notfound_title' => 'Heb lwyddo canfod y ffeil', |
— | — | @@ -1920,6 +1936,7 @@ |
1921 | 1937 | /** German (Deutsch) |
1922 | 1938 | * @author Heuler06 |
1923 | 1939 | * @author Jbeigel |
| 1940 | + * @author Kghbln |
1924 | 1941 | * @author Melancholie |
1925 | 1942 | * @author Metalhead64 |
1926 | 1943 | * @author Pill |
— | — | @@ -2020,6 +2037,8 @@ |
2021 | 2038 | |
2022 | 2039 | Hinweise: |
2023 | 2040 | * Bist du mit dem Ergebnis nicht zufrieden? Möglichkeiten zur Verbesserung der Ausgabe findest du auf der [[{{MediaWiki:Coll-helppage}}|Hilfeseite über Bücher]].', |
| 2041 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendern der Seiteninformation', |
| 2042 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendern des Buchs', |
2024 | 2043 | 'coll-notfound_title' => 'Buch nicht gefunden', |
2025 | 2044 | 'coll-notfound_text' => 'Dein Buch konnte nicht gefunden werden.', |
2026 | 2045 | 'coll-download_notfound_title' => 'Datei nicht gefunden', |
— | — | @@ -2057,6 +2076,7 @@ |
2058 | 2077 | 'coll-suggest_article_remove' => 'Die Seite <strong>$1</strong> wurde aus deinem Buch entfernt ($2).', |
2059 | 2078 | 'coll-suggest_undo_tooltip' => 'Diese Aktion rückgängig machen', |
2060 | 2079 | 'coll-suggest_undo' => 'rückgängig', |
| 2080 | + 'coll-load_local_book' => 'Klicke auf OK, um mit deinem Buch %TITLE% fortzufahren, bestehend aus %NUMPAGES% Wikiseiten. Klicke auf Abbrechen, um es zu löschen und um mit einem leeren Buch zu starten.', |
2061 | 2081 | 'right-collectionsaveasuserpage' => 'Bücher als Benutzerseite speichern', |
2062 | 2082 | 'right-collectionsaveascommunitypage' => 'Bücher als Gemeinschaftsseite speichern', |
2063 | 2083 | ); |
— | — | @@ -2347,6 +2367,8 @@ |
2348 | 2368 | |
2349 | 2369 | Pśispomnjeśa: |
2350 | 2370 | * Njespokojom z wudaśim? Glědaj [[{{MediaWiki:Coll-helppage}}|bok pomocy wó zběrkach]] za móžnosći, jo pólěpšyś.', |
| 2371 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informaciski tekst boka wuceriś', |
| 2372 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informaciski tekst zběrki wuceriś', |
2351 | 2373 | 'coll-notfound_title' => 'Knigły njenamakane', |
2352 | 2374 | 'coll-notfound_text' => 'Bok knigłow njejo se dał namakaś.', |
2353 | 2375 | 'coll-download_notfound_title' => 'Dataja njenamakana', |
— | — | @@ -2385,6 +2407,7 @@ |
2386 | 2408 | 'coll-suggest_article_remove' => 'Bok <strong>$1</strong> jo se z twójich knigłow wótpórał ($2).', |
2387 | 2409 | 'coll-suggest_undo_tooltip' => 'Akciju slědk wześ', |
2388 | 2410 | 'coll-suggest_undo' => 'slědk wześ', |
| 2411 | + 'coll-load_local_book' => 'Klikni na W pórědku, aby pókšacowak z knigłami %TITLE%, kótaraž wopśimujo %NUMPAGES% {{PLURAL:%NUMPAGES%|wikibok|wikiboka|wikiboki|wikibokow}}. Klikni na Pśetergnuś, aby ju wulašował a startuj z proznymi knigłami.', |
2389 | 2412 | 'right-collectionsaveasuserpage' => 'Knigły ako wužywarski bok składowaś', |
2390 | 2413 | 'right-collectionsaveascommunitypage' => 'Knigły ako bok zgromaźeństwa składowaś', |
2391 | 2414 | ); |
— | — | @@ -2565,7 +2588,7 @@ |
2566 | 2589 | 'coll-unknown_subpage_text' => 'Ĉi tiu subpaĝo de [[Special:Book|Libro]] ne ekzistas', |
2567 | 2590 | 'coll-couldnotaddarticle_title' => 'Ne eblis aldoni vikian paĝon', |
2568 | 2591 | 'coll-couldnotaddarticle_msg' => 'Ne eblis aldoni ĉi tiun vikian paĝon.', |
2569 | | - 'coll-couldnotremovearticle_title' => 'Ne eblas forigi vikipaĝon', |
| 2592 | + 'coll-couldnotremovearticle_title' => 'Ne povis forigi vikipaĝon', |
2570 | 2593 | 'coll-couldnotremovearticle_msg' => 'Ne eblis forigi ĉi tiun vikian paĝon.', |
2571 | 2594 | 'coll-noscript_text' => '<h1>JavaScript-o estas deviga!<h1> |
2572 | 2595 | <strong>Via retumilo ne subtenas JavaScript-on aŭ JavaScript-o estis malŝaltita. |
— | — | @@ -2640,8 +2663,10 @@ |
2641 | 2664 | |
2642 | 2665 | Notoj: |
2643 | 2666 | * Ĉu la eligo ne plaĉus al vi? Vidu [[{{MediaWiki:Coll-helppage}}|la helpan paĝon pri kolektoj]] por fojoj por plibonigi ĝin.', |
| 2667 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informoteksto pri bildigante paĝon', |
| 2668 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informoteksto pri bildigante kolekton', |
2644 | 2669 | 'coll-notfound_title' => 'Libro ne trovita', |
2645 | | - 'coll-notfound_text' => 'Ne eblas trovi libran paĝon.', |
| 2670 | + 'coll-notfound_text' => 'Ne povis trovi libran paĝon.', |
2646 | 2671 | 'coll-download_notfound_title' => 'Dosiero ne trovita', |
2647 | 2672 | 'coll-download_notfound_text' => 'La dosiero kiun vi celas elŝuti ne ekzistas. Eble ĝi estis forigita kaj bezonas esti regenerata.', |
2648 | 2673 | 'coll-download_failed_title' => 'Eraro dum elŝuto', |
— | — | @@ -2654,8 +2679,8 @@ |
2655 | 2680 | 'coll-book_text' => 'Akiri presitan libron de nia ek-eldoneja partnero:', |
2656 | 2681 | 'coll-order_from_pp' => 'Antaŭvidi kun $1', |
2657 | 2682 | 'coll-about_pp' => 'Pri $1', |
2658 | | - 'coll-invalid_podpartner_title' => 'Nevalida ek-eldoneja partnero', |
2659 | | - 'coll-invalid_podpartner_msg' => 'La donita ek-eldoneja partnero estas nevalida. |
| 2683 | + 'coll-invalid_podpartner_title' => 'Malvalida ek-eldoneja partnero', |
| 2684 | + 'coll-invalid_podpartner_msg' => 'La donita ek-eldoneja partnero estas malvalida. |
2660 | 2685 | Bonvolu kontakti vian administranton de MediaWiki.', |
2661 | 2686 | 'coll-license' => 'Licenco', |
2662 | 2687 | 'coll-return_to' => 'Reiri al [[:$1]]', |
— | — | @@ -2690,7 +2715,9 @@ |
2691 | 2716 | * @author Jatrobat |
2692 | 2717 | * @author Lin linao |
2693 | 2718 | * @author Locos epraix |
| 2719 | + * @author Manuelt15 |
2694 | 2720 | * @author McDutchie |
| 2721 | + * @author Pertile |
2695 | 2722 | * @author Platonides |
2696 | 2723 | * @author Remember the dot |
2697 | 2724 | * @author Sanbec |
— | — | @@ -2700,7 +2727,7 @@ |
2701 | 2728 | 'coll-desc' => '[[Special:Book|Crear libros]]', |
2702 | 2729 | 'coll-book_creator_intro' => "<big>Con el ''creador de libros'' puedes crear un libro consistente de páginas wiki de tu preferencia. Puedes exportar tu libro en diferentes formatos (por ejemplo PDF o ODF) u ordenar una copia impresa.</big>", |
2703 | 2730 | 'coll-manage_your_book' => 'Gestionar tu libro', |
2704 | | - 'coll-book_creator_help' => 'Ver [[{{MediaWiki:Coll-helppage}}|la página de ayuda acerca de los libros]] para mayor información.', |
| 2731 | + 'coll-book_creator_help' => 'Para más información véase [[{{MediaWiki:Coll-helppage}}|la página de ayuda acerca de los libros]].', |
2705 | 2732 | 'coll-start_book_creator' => 'Comenzar creador de libro', |
2706 | 2733 | 'coll-book_creator_continue' => 'Continuar usando creador de libro', |
2707 | 2734 | 'coll-book_creator_disable_text' => "''Creador de libros'' se descargará y el libro en que estás trabajando será removido.", |
— | — | @@ -2790,6 +2817,8 @@ |
2791 | 2818 | |
2792 | 2819 | Notas: |
2793 | 2820 | * ¿No estás satisfecho con el resultado? Mira [[{{MediaWiki:Coll-helppage}}|la página de ayuda sobre libros]] para ver las posibilidades de mejorarlo.', |
| 2821 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo de la página de renderización', |
| 2822 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo de la colección de renderización', |
2794 | 2823 | 'coll-notfound_title' => 'No se encuentra el libro', |
2795 | 2824 | 'coll-notfound_text' => 'No se encuentra la página de libro.', |
2796 | 2825 | 'coll-download_notfound_title' => 'Archivo no encontrado', |
— | — | @@ -2828,6 +2857,7 @@ |
2829 | 2858 | 'coll-suggest_article_remove' => 'Página <strong>$1</strong> ha sido removida de tu libro ($2).', |
2830 | 2859 | 'coll-suggest_undo_tooltip' => 'Deshacer esta acción', |
2831 | 2860 | 'coll-suggest_undo' => 'deshacer', |
| 2861 | + 'coll-load_local_book' => 'Haz click en OK para continuar con tu libro %TITLE% que contiene %NUMPAGES% página wiki. Haz click en Cancelar para borrarlo y comenzar con un libro vacío.', |
2832 | 2862 | 'right-collectionsaveasuserpage' => 'Grabar libros como página de usuario', |
2833 | 2863 | 'right-collectionsaveascommunitypage' => 'Grabar libros como página de la comunidad', |
2834 | 2864 | ); |
— | — | @@ -3429,6 +3459,8 @@ |
3430 | 3460 | |
3431 | 3461 | Notes : |
3432 | 3462 | * Vous n’êtes pas satisfait du résultat ? Consultez [[{{MediaWiki:Coll-helppage}}|la page d’aide des livres]] pour les façons possibles de l’améliorer.', |
| 3463 | + 'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Rendu du texte d'information de la page", |
| 3464 | + 'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Rendu du texte d'information de la collection", |
3433 | 3465 | 'coll-notfound_title' => 'Livre non trouvé', |
3434 | 3466 | 'coll-notfound_text' => 'La page du livre n’a pas pu être trouvée.', |
3435 | 3467 | 'coll-download_notfound_title' => 'Fichier introuvable', |
— | — | @@ -3467,6 +3499,7 @@ |
3468 | 3500 | 'coll-suggest_article_remove' => 'La page <strong>$1</strong> a été retirée de votre livre ($2).', |
3469 | 3501 | 'coll-suggest_undo_tooltip' => 'Défaire cette action', |
3470 | 3502 | 'coll-suggest_undo' => 'défaire', |
| 3503 | + 'coll-load_local_book' => 'Cliquez sur OK pour continuer votre livre %TITLE% qui contient %NUMPAGES% pages wiki. Cliquez sur Annuler pour le supprimer et commencer avec un livre vide.', |
3471 | 3504 | 'right-collectionsaveasuserpage' => 'Sauvegarder des livres sur des pages utilisateur', |
3472 | 3505 | 'right-collectionsaveascommunitypage' => 'Sauvegarder des livres sur des pages communautaires', |
3473 | 3506 | ); |
— | — | @@ -3700,6 +3733,8 @@ |
3701 | 3734 | |
3702 | 3735 | Notas: |
3703 | 3736 | *Non está satisfeito co ficheiro obtido? Vexa [[{{MediaWiki:Coll-helppage}}|a páxina de axuda acerca das coleccións]] para comprobar as posibilidades de melloralo.', |
| 3737 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre o renderizado de páxinas', |
| 3738 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre o renderizado de coleccións', |
3704 | 3739 | 'coll-notfound_title' => 'Non se pode atopar o libro', |
3705 | 3740 | 'coll-notfound_text' => 'Non se pode atopar a páxina do libro.', |
3706 | 3741 | 'coll-download_notfound_title' => 'Non se atopou o ficheiro', |
— | — | @@ -3738,6 +3773,7 @@ |
3739 | 3774 | 'coll-suggest_article_remove' => 'A páxina "<strong>$1</strong>" foi eliminada do seu libro ($2).', |
3740 | 3775 | 'coll-suggest_undo_tooltip' => 'Desfacer esta acción', |
3741 | 3776 | 'coll-suggest_undo' => 'desfacer', |
| 3777 | + 'coll-load_local_book' => 'Prema en "Aceptar" para continuar co seu libro titulado "%TITLE%", formado por %NUMPAGES% páxinas wiki. Prema en "Cancelar" para borralo e comezar un libro novo.', |
3742 | 3778 | 'right-collectionsaveasuserpage' => 'Gardar libros como unha páxina de usuario', |
3743 | 3779 | 'right-collectionsaveascommunitypage' => 'Gardar libros como unha páxina da comunidade', |
3744 | 3780 | ); |
— | — | @@ -3866,6 +3902,8 @@ |
3867 | 3903 | |
3868 | 3904 | Hiiwyys: |
3869 | 3905 | * Bisch mit em Ergebnis nit zfride? Megligkeite d Uusgab z verbessere findsch uf dr [[{{MediaWiki:Coll-helppage}}|Hilfsyte iber d Sammlige]].', |
| 3906 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendere vu dr Syteinformation', |
| 3907 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendere vum Buech', |
3870 | 3908 | 'coll-notfound_title' => 'Buech nit gfunde', |
3871 | 3909 | 'coll-notfound_text' => 'Dyyni Buech het nit chenne gfunde wäre.', |
3872 | 3910 | 'coll-download_notfound_title' => 'Datei nit gfunde', |
— | — | @@ -4402,6 +4440,8 @@ |
4403 | 4441 | |
4404 | 4442 | Přispomnjenka: |
4405 | 4443 | * Njejsy spokojny z wudaćom? Hlej [[{{MediaWiki:Coll-helppage}}|stronu pomocy wo zběrkach]] za móžnosće je polěpšić.', |
| 4444 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informaciski tekst strony rysować', |
| 4445 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informaciski tekst zběrki rysować', |
4406 | 4446 | 'coll-notfound_title' => 'Kniha njenamakana', |
4407 | 4447 | 'coll-notfound_text' => 'Strona knihi njebu namakana.', |
4408 | 4448 | 'coll-download_notfound_title' => 'Dataja njenamakana', |
— | — | @@ -4440,6 +4480,7 @@ |
4441 | 4481 | 'coll-suggest_article_remove' => 'Strona <strong>$1</strong> bu z twojeje knihi wotstronjena ($2).', |
4442 | 4482 | 'coll-suggest_undo_tooltip' => 'Tutu akciju cofnyć', |
4443 | 4483 | 'coll-suggest_undo' => 'cofnyć', |
| 4484 | + 'coll-load_local_book' => 'Klikń W porjadku, zo by ze swojej knihu %TITLE% pokročował , kotraž %NUMPAGES% {{PLURAL:%NUMPAGES%|wikistronu|wikistronje|wikistrony|wikistronow}} wobsahuje. Klikń na Přetorhnyć, zo by ju zhašał a startuj z prózdnej knihu.', |
4444 | 4485 | 'right-collectionsaveasuserpage' => 'Knihi jako wužiwarsku stronu składować', |
4445 | 4486 | 'right-collectionsaveascommunitypage' => 'Knihi jako stronu zhromadźenstwa składować', |
4446 | 4487 | ); |
— | — | @@ -4783,6 +4824,8 @@ |
4784 | 4825 | |
4785 | 4826 | Notas: |
4786 | 4827 | * Non satisfacite con le resultato? Vide [[{{MediaWiki:Coll-helppage}}|le pagina de adjuta super le libros]] pro possibilitates de meliorar lo.', |
| 4828 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informative super le rendition de paginas', |
| 4829 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informative super le rendition de collectiones', |
4787 | 4830 | 'coll-notfound_title' => 'Libro non trovate', |
4788 | 4831 | 'coll-notfound_text' => 'Non poteva trovar le pagina del libro.', |
4789 | 4832 | 'coll-download_notfound_title' => 'File non trovate', |
— | — | @@ -4821,6 +4864,7 @@ |
4822 | 4865 | 'coll-suggest_article_remove' => 'Le pagina <strong>$1</strong> ha essite removite de tu libro ($2).', |
4823 | 4866 | 'coll-suggest_undo_tooltip' => 'Disfacer iste action', |
4824 | 4867 | 'coll-suggest_undo' => 'disfacer', |
| 4868 | + 'coll-load_local_book' => 'Clicca super OK pro continuar con tu libro %TITLE% que contine %NUMPAGES% paginas wiki. Clicca super Cancellar pro deler lo e comenciar con un libro vacue.', |
4825 | 4869 | 'right-collectionsaveasuserpage' => 'Salveguardar libros como pagina de usator', |
4826 | 4870 | 'right-collectionsaveascommunitypage' => 'Salveguardar libros como pagina de communitate', |
4827 | 4871 | ); |
— | — | @@ -4830,6 +4874,7 @@ |
4831 | 4875 | * @author Farras |
4832 | 4876 | * @author Irwangatot |
4833 | 4877 | * @author IvanLanin |
| 4878 | + * @author Iwan Novirion |
4834 | 4879 | * @author Rex |
4835 | 4880 | */ |
4836 | 4881 | $messages['id'] = array( |
— | — | @@ -4918,6 +4963,8 @@ |
4919 | 4964 | 'coll-rendering_status' => '<strong>Status:</strong> $1', |
4920 | 4965 | 'coll-rendering_article' => '(halaman wiki: $1)', |
4921 | 4966 | 'coll-rendering_page' => '(halaman: $1)', |
| 4967 | + 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Mengubah teks halaman info', |
| 4968 | + 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Mengubah teks koleksi info', |
4922 | 4969 | 'coll-rendering_finished_title' => 'Pengolahan selesai', |
4923 | 4970 | 'coll-rendering_finished_text' => '<strong>Berkas dokumen telah dibuat.</strong> |
4924 | 4971 | <strong>[$1 Unduh berkas]</strong> ke komputer Anda. |
— | — | @@ -5017,6 +5064,7 @@ |
5018 | 5065 | |
5019 | 5066 | /** Italian (Italiano) |
5020 | 5067 | * @author BrokenArrow |
| 5068 | + * @author Civvì |
5021 | 5069 | * @author Darth Kule |
5022 | 5070 | * @author Melos |
5023 | 5071 | * @author Pietrodn |
— | — | @@ -5107,12 +5155,16 @@ |
5108 | 5156 | 'coll-rendering_status' => '<strong>Stato:</strong> $1', |
5109 | 5157 | 'coll-rendering_article' => '(pagina wiki: $1)', |
5110 | 5158 | 'coll-rendering_page' => '(pagina: $1)', |
| 5159 | + 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informazioni sul rendering delle pagine', |
| 5160 | + 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informazioni sul rendering di collezioni', |
5111 | 5161 | 'coll-rendering_finished_title' => 'Conversione terminata', |
5112 | 5162 | 'coll-rendering_finished_text' => '<strong>Il documento è stato generato.</strong> |
5113 | 5163 | <strong>[$1 Scarica il file]</strong> sul tuo computer. |
5114 | 5164 | |
5115 | 5165 | Note: |
5116 | 5166 | * Non sei soddisfatto del risultato? Leggi [[{{MediaWiki:Coll-helppage}}|la pagina di aiuto sulle raccolte]] riguardo alle possibilità per migliorarlo.', |
| 5167 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informazioni sul rendering delle pagine', |
| 5168 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informazioni sul rendering di collezioni', |
5117 | 5169 | 'coll-notfound_title' => 'Libro non trovato', |
5118 | 5170 | 'coll-notfound_text' => 'Non è possibile trovare la pagina del libro.', |
5119 | 5171 | 'coll-download_notfound_title' => 'File non trovato', |
— | — | @@ -5150,6 +5202,7 @@ |
5151 | 5203 | 'coll-suggest_article_remove' => 'La pagina <strong>$1</strong> è stata rimossa dal tuo libro ($2).', |
5152 | 5204 | 'coll-suggest_undo_tooltip' => 'Annulla questa azione', |
5153 | 5205 | 'coll-suggest_undo' => 'annulla', |
| 5206 | + 'coll-load_local_book' => 'Fai clic su OK per continuare con il tuo libro %TITLE% composto da %NUMPAGES% pagine wiki. Clicca Annulla per cancellarlo e cominciare con un libro vuoto.', |
5154 | 5207 | 'right-collectionsaveasuserpage' => 'Salva libri in pagine utente', |
5155 | 5208 | 'right-collectionsaveascommunitypage' => 'Salva libri nelle pagine della comunità', |
5156 | 5209 | ); |
— | — | @@ -5240,12 +5293,16 @@ |
5241 | 5294 | 'coll-rendering_status' => '<strong>状況:</strong> $1', |
5242 | 5295 | 'coll-rendering_article' => '(ウィキページ: $1)', |
5243 | 5296 | 'coll-rendering_page' => '(ページ: $1)', |
| 5297 | + 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/ページ情報文を生成中', |
| 5298 | + 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/コレクション情報文を生成中', |
5244 | 5299 | 'coll-rendering_finished_title' => 'レンダリング完了', |
5245 | 5300 | 'coll-rendering_finished_text' => '<strong>ドキュメントファイルは生成されました。</strong> |
5246 | 5301 | あなたのコンピュータに<strong>[$1 ファイルをダウンロード]</strong>してください。 |
5247 | 5302 | |
5248 | 5303 | 注: |
5249 | 5304 | * 出力に満足できませんか?改善が可能か、[[{{MediaWiki:Coll-helppage}}|ブックについてのヘルプページ]]をご覧ください。', |
| 5305 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/ページ情報テキストを生成中', |
| 5306 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/コレクション情報テキストを生成中', |
5250 | 5307 | 'coll-notfound_title' => 'ブックが見つかりません', |
5251 | 5308 | 'coll-notfound_text' => 'ブックの保存ページが見つかりませんでした。', |
5252 | 5309 | 'coll-download_notfound_title' => 'ファイルが見つかりません', |
— | — | @@ -5282,6 +5339,7 @@ |
5283 | 5340 | 'coll-suggest_article_remove' => 'ページ「<strong>$1</strong>」はあなたのブックから除去されました($2)。', |
5284 | 5341 | 'coll-suggest_undo_tooltip' => 'この操作を取り消し', |
5285 | 5342 | 'coll-suggest_undo' => '取り消し', |
| 5343 | + 'coll-load_local_book' => 'OKをクリックすると %NUMPAGES% 件のウィキページを含む本を %TITLE% という題で作成します。この本を削除して新しい本を作成する場合はキャンセルをクリックしてください。', |
5286 | 5344 | 'right-collectionsaveasuserpage' => 'ブックを利用者ページとして保存', |
5287 | 5345 | 'right-collectionsaveascommunitypage' => 'ブックを共有ページとして保存', |
5288 | 5346 | ); |
— | — | @@ -5488,6 +5546,7 @@ |
5489 | 5547 | 'coll-suggest_add_selected' => 'არჩეული გვერდების დამატება', |
5490 | 5548 | 'coll-suggest_your_book' => 'თქვენი წიგნი', |
5491 | 5549 | 'coll-suggest_show' => 'ჩვენება', |
| 5550 | + 'coll-suggest_undo_tooltip' => 'ცვლილების გაუქმება', |
5492 | 5551 | 'coll-suggest_undo' => 'გაუქმება', |
5493 | 5552 | 'right-collectionsaveasuserpage' => 'შეინახე წიგნი, როგორც მომხმარებლის გვერდი', |
5494 | 5553 | 'right-collectionsaveascommunitypage' => 'შეინახეთ წიგნი, როგორც საზოგადოების გვერდი', |
— | — | @@ -5571,8 +5630,10 @@ |
5572 | 5631 | */ |
5573 | 5632 | $messages['kn'] = array( |
5574 | 5633 | 'coll-show' => 'ತೋರಿಸು', |
| 5634 | + 'coll-title' => 'ಶೀರ್ಷಿಕೆ:', |
5575 | 5635 | 'coll-yes' => 'ಹೌದು', |
5576 | 5636 | 'coll-no' => 'ಇಲ್ಲ', |
| 5637 | + 'coll-rendering_status' => '<strong>ಸ್ಥಾನಮಾನ:</strong> $1', |
5577 | 5638 | 'coll-suggest_show' => 'ತೋರಿಸು', |
5578 | 5639 | ); |
5579 | 5640 | |
— | — | @@ -5701,7 +5762,7 @@ |
5702 | 5763 | 'coll-about_pp' => 'Angut sa Iwan $1', |
5703 | 5764 | ); |
5704 | 5765 | |
5705 | | -/** Ripoarisch (Ripoarisch) |
| 5766 | +/** Colognian (Ripoarisch) |
5706 | 5767 | * @author Purodha |
5707 | 5768 | */ |
5708 | 5769 | $messages['ksh'] = array( |
— | — | @@ -5837,7 +5898,7 @@ |
5838 | 5899 | 'right-collectionsaveascommunitypage' => 'E Boch als en Jemeinschaffß_Sigg avspeichere', |
5839 | 5900 | ); |
5840 | 5901 | |
5841 | | -/** Cornish (Kernowek) |
| 5902 | +/** Cornish (Kernewek) |
5842 | 5903 | * @author Kernoweger |
5843 | 5904 | * @author Kw-Moon |
5844 | 5905 | */ |
— | — | @@ -5981,6 +6042,7 @@ |
5982 | 6043 | 'coll-suggest_article_remove' => "D'Säit <strong>$1</strong> gouf aus Ärem Buch erausgeholl ($2).", |
5983 | 6044 | 'coll-suggest_undo_tooltip' => 'Dës Aktioun réckgängeg maachen', |
5984 | 6045 | 'coll-suggest_undo' => 'réckgängeg maachen', |
| 6046 | + 'coll-load_local_book' => 'Klickt OK fir mat Ärem Buch %TITLE% dat %NUMPAGES% Wikisäiten huet weiderzefueren. Klickt Ofbriechen fir et ze läschen a mat engem eidele Buch unzefänken.', |
5985 | 6047 | 'right-collectionsaveasuserpage' => 'Bicher als Benotzersäit späicheren', |
5986 | 6048 | 'right-collectionsaveascommunitypage' => 'Bicher als Gemeinschaftssäit späicheren', |
5987 | 6049 | ); |
— | — | @@ -6234,6 +6296,8 @@ |
6235 | 6297 | |
6236 | 6298 | Белешки: |
6237 | 6299 | * Не сте задоволни со резултатот? Погледајте ја нашата [[{{MediaWiki:Coll-helppage}}|страница за помош со книги]] за да ги видите можностите за нејзино подобрување.', |
| 6300 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Изработка на информативен текст за страницата', |
| 6301 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Изработка на информативен текст за збирката', |
6238 | 6302 | 'coll-notfound_title' => 'Книгата не е пронајдена', |
6239 | 6303 | 'coll-notfound_text' => 'Не можев да ја пронајдам страницата.', |
6240 | 6304 | 'coll-download_notfound_title' => 'Податотеката не е пронајдена', |
— | — | @@ -6274,6 +6338,7 @@ |
6275 | 6339 | 'coll-suggest_article_remove' => 'Страницата <strong>$1</strong> е отстранета од вашата книга ($2).', |
6276 | 6340 | 'coll-suggest_undo_tooltip' => 'Врати го ова дејство', |
6277 | 6341 | 'coll-suggest_undo' => 'врати', |
| 6342 | + 'coll-load_local_book' => 'Кликнете на „ОК“ за да продолжите со книгата %TITLE% којашто содржи %NUMPAGES% вики-страници. Кликнете на „Откажи“ за да ја избришете и да започнете со празна книга.', |
6278 | 6343 | 'right-collectionsaveasuserpage' => 'Зачувување на книги како корисничка страница', |
6279 | 6344 | 'right-collectionsaveascommunitypage' => 'Зачувување на книги како страница на заедницата', |
6280 | 6345 | ); |
— | — | @@ -6307,7 +6372,7 @@ |
6308 | 6373 | ജാവാസ്ക്രിപ്റ്റ് സജ്ജമാക്കിയില്ലെങ്കിൽ, ഈ താൾ ശരിയായ രീതിയിൽ പ്രവർത്തിക്കില്ല.</strong>', |
6309 | 6374 | 'coll-savedbook_template' => 'ശേഖരിക്കപ്പെട്ട_പുസ്തകം', |
6310 | 6375 | 'coll-your_book' => 'താങ്കളുടെ പുസ്തകം', |
6311 | | - 'coll-download_title' => 'ഡൗണ്ലോഡ്', |
| 6376 | + 'coll-download_title' => 'ഡൗൺലോഡ്', |
6312 | 6377 | 'coll-download_text' => 'താങ്കളുടെ പുസ്തകം ഡൗൺലോഡ് ചെയ്യുന്നതിനായി ഫോർമാറ്റ് തിരഞ്ഞെടുത്ത ശേഷം ബട്ടൺ ഞെക്കുക.', |
6313 | 6378 | 'coll-download_as_text' => 'താങ്കളുടെ പുസ്തകം $1 ഫോർമാറ്റിൽ ഡൗൺലോഡ് ചെയ്യാൻ ബട്ടൺ അമർത്തുക.', |
6314 | 6379 | 'coll-download' => 'ഡൗൺലോഡ്', |
— | — | @@ -6318,44 +6383,44 @@ |
6319 | 6384 | 'coll-move_up' => 'മുകളിലേക്കു നീങ്ങുക', |
6320 | 6385 | 'coll-move_down' => 'താഴേക്ക് നീങ്ങുക', |
6321 | 6386 | 'coll-move_to_bottom' => 'ഏറ്റവും താഴേക്ക് നീങ്ങുക', |
6322 | | - 'coll-title' => 'ശീര്ഷകം:', |
6323 | | - 'coll-subtitle' => 'ഉപശീര്ഷകം:', |
| 6387 | + 'coll-title' => 'ശീർഷകം:', |
| 6388 | + 'coll-subtitle' => 'ഉപശീർഷകം:', |
6324 | 6389 | 'coll-contents' => 'ഉള്ളടക്കം', |
6325 | 6390 | 'coll-drag_and_drop' => 'വിക്കി താളുകളും അദ്ധ്യായങ്ങളും ക്രമം മാറ്റാൻ വലിച്ചിടൽ ഉപയോഗിക്കുക', |
6326 | 6391 | 'coll-create_chapter' => 'അദ്ധ്യായം സൃഷ്ടിക്കുക', |
6327 | | - 'coll-sort_alphabetically' => 'താളുകള് അകാദാരിക്രമത്തില് ക്രമീകരിക്കുക', |
6328 | | - 'coll-rename' => 'പുനഃര്നാമകരണം ചെയ്യുക', |
| 6392 | + 'coll-sort_alphabetically' => 'താളുകൾ അകാദാരിക്രമത്തിൽ ക്രമീകരിക്കുക', |
| 6393 | + 'coll-rename' => 'പുനഃർനാമകരണം ചെയ്യുക', |
6329 | 6394 | 'coll-new_chapter' => 'പുതിയ അദ്ധ്യായത്തിനു ഒരു പേരു കൊടുക്കുക', |
6330 | 6395 | 'coll-rename_chapter' => 'അദ്ധ്യായത്തിനു പുതിയൊരു പേരു കൊടുക്കുക', |
6331 | | - 'coll-no_such_category' => 'അങ്ങനെ ഒരു വര്ഗ്ഗം നിലവിലില്ല', |
6332 | | - 'coll-notitle_title' => 'താളിന്റെ തലക്കെട്ട് നിര്ണ്ണയിക്കുന്നതിനു കഴിഞ്ഞില്ല.', |
| 6396 | + 'coll-no_such_category' => 'അങ്ങനെ ഒരു വർഗ്ഗം നിലവിലില്ല', |
| 6397 | + 'coll-notitle_title' => 'താളിന്റെ തലക്കെട്ട് നിർണ്ണയിക്കുന്നതിനു കഴിഞ്ഞില്ല.', |
6333 | 6398 | 'coll-post_failed_title' => 'POST അഭ്യർത്ഥന പരാജയപ്പെട്ടു', |
6334 | 6399 | 'coll-post_failed_msg' => '$1 എന്നതിലേയ്ക്കുള്ള POST അഭ്യർത്ഥന പരാജയപ്പെട്ടു ($2).', |
6335 | 6400 | 'coll-mwserve_failed_title' => 'റെൻഡർ സെർവർ പിഴവ്', |
6336 | 6401 | 'coll-mwserve_failed_msg' => 'റെൻഡർ സെർവറിൽ പിഴവ് സംഭവിച്ചിരിക്കുന്നു: <nowiki>$1</nowiki>', |
6337 | | - 'coll-error_reponse' => 'സെര്വറില് നിന്നു പിഴവാണെന്ന മറുപടി കിട്ടി.', |
| 6402 | + 'coll-error_reponse' => 'സെർവറിൽ നിന്നു പിഴവാണെന്ന മറുപടി കിട്ടി.', |
6338 | 6403 | 'coll-empty_collection' => 'ശൂന്യമായ പുസ്തകം', |
6339 | 6404 | 'coll-revision' => 'പതിപ്പ്: $1', |
6340 | 6405 | 'coll-save_collection_title' => 'താങ്കളുടെ പുസ്തകം സേവ് ചെയ്യുക പങ്ക് വെയ്ക്കുക', |
6341 | 6406 | 'coll-save_collection_text' => 'താങ്കളുടെ പുസ്തകം ശേഖരിച്ചു വെയ്ക്കേണ്ട സ്ഥലം തിരഞ്ഞെടുത്തു നൽകുക:', |
6342 | | - 'coll-login_to_save' => 'പുസ്തകങ്ങൾ പിന്നീടുള്ള ഉപയോഗത്തിനായി സൂക്ഷിക്കണമെങ്കില്, ദയവായി [[Special:UserLogin|ലോഗിന് ചെയ്യുകയോ പുതിയൊരു അംഗത്വം ഉണ്ടാക്കുകയോ ചെയ്യുക]].', |
| 6407 | + 'coll-login_to_save' => 'പുസ്തകങ്ങൾ പിന്നീടുള്ള ഉപയോഗത്തിനായി സൂക്ഷിക്കണമെങ്കിൽ, ദയവായി [[Special:UserLogin|ലോഗിൻ ചെയ്യുകയോ പുതിയൊരു അംഗത്വം ഉണ്ടാക്കുകയോ ചെയ്യുക]].', |
6343 | 6408 | 'coll-personal_collection_label' => 'സ്വകാര്യ പുസ്തകം:', |
6344 | 6409 | 'coll-community_collection_label' => 'സമൂഹ പുസ്തകം:', |
6345 | 6410 | 'coll-save_collection' => 'പുസ്തകം സേവ് ചെയ്യുക', |
6346 | 6411 | 'coll-save_category' => 'സേവ് ചെയ്ത പുസ്തകങ്ങളെല്ലാം [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] വർഗ്ഗത്തിലേയ്ക്ക് ചേർത്തിരിക്കുന്നു.', |
6347 | | - 'coll-overwrite_title' => 'താള് നിലവിലുണ്ട്. അതിനെ ഓവര്റൈറ്റ് ചെയ്യട്ടെ?', |
6348 | | - 'coll-overwrite_text' => '[[:$1]] എന്ന പേരില് ഒരു താള് നിലവിലുണ്ട്. താങ്കളുടെ പുസ്തകം ആ താളിനു ബദലാക്കണോ?', |
| 6412 | + 'coll-overwrite_title' => 'താൾ നിലവിലുണ്ട്. അതിനെ ഓവർറൈറ്റ് ചെയ്യട്ടെ?', |
| 6413 | + 'coll-overwrite_text' => '[[:$1]] എന്ന പേരിൽ ഒരു താൾ നിലവിലുണ്ട്. താങ്കളുടെ പുസ്തകം ആ താളിനു ബദലാക്കണോ?', |
6349 | 6414 | 'coll-yes' => 'ശരി', |
6350 | 6415 | 'coll-no' => 'ഇല്ല', |
6351 | | - 'coll-load_overwrite_text' => 'താങ്കളുടെ പുസ്തകത്തില് ഇപ്പോള് തന്നെ കുറച്ചു താളുകള് ഉണ്ട്. |
6352 | | -താങ്കള്ക്കു നിലവിലുള്ള പുസ്തകം മാറ്റണോ, പുതിയ താളുകള് നിലവിലുള്ളതില് ചേര്ക്കണോ, അതോ പുസ്തകം ശേഖരിക്കുന്നതു റദ്ദാക്കണമോ?', |
6353 | | - 'coll-overwrite' => 'ഓവര്റൈറ്റ്', |
6354 | | - 'coll-append' => 'കൂട്ടിചേര്ക്കുക', |
| 6416 | + 'coll-load_overwrite_text' => 'താങ്കളുടെ പുസ്തകത്തിൽ ഇപ്പോൾ തന്നെ കുറച്ചു താളുകൾ ഉണ്ട്. |
| 6417 | +താങ്കൾക്കു നിലവിലുള്ള പുസ്തകം മാറ്റണോ, പുതിയ താളുകൾ നിലവിലുള്ളതിൽ ചേർക്കണോ, അതോ പുസ്തകം ശേഖരിക്കുന്നതു റദ്ദാക്കണമോ?', |
| 6418 | + 'coll-overwrite' => 'ഓവർറൈറ്റ്', |
| 6419 | + 'coll-append' => 'കൂട്ടിചേർക്കുക', |
6355 | 6420 | 'coll-cancel' => 'റദ്ദാക്കുക', |
6356 | 6421 | 'coll-update' => 'പുതുക്കുക', |
6357 | 6422 | 'coll-limit_exceeded_title' => 'പുസ്തകത്തിന്റെ വലിപ്പം വളരെ കൂടുതലാണ്', |
6358 | 6423 | 'coll-limit_exceeded_text' => 'താങ്കളുടെ പുസ്തകം വളരെ വലുതാണ്. |
6359 | | -ഇനി കൂടുതല് താളുകള് ചേര്ക്കുന്നതിനു സാദ്ധ്യമല്ല.', |
| 6424 | +ഇനി കൂടുതൽ താളുകൾ ചേർക്കുന്നതിനു സാദ്ധ്യമല്ല.', |
6360 | 6425 | 'coll-rendering_title' => 'റെൻഡർ ചെയ്യുന്നു', |
6361 | 6426 | 'coll-rendering_text' => '<p><strong>പ്രമാണം സൃഷ്ടിക്കപ്പെടുന്നതു വരെ ദയവായി കാത്തിരിക്കുക.</strong></p> |
6362 | 6427 | <p><strong>പുരോഗതി:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p> |
— | — | @@ -6363,14 +6428,18 @@ |
6364 | 6429 | 'coll-rendering_status' => '<strong>സ്ഥിതി:</strong> $1', |
6365 | 6430 | 'coll-rendering_article' => '(വിക്കി താൾ:$1)', |
6366 | 6431 | 'coll-rendering_page' => '(താൾ: $1)', |
| 6432 | + 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/താളിന്റെ വിവരങ്ങളുള്ള എഴുത്ത് പ്രദർശനയോഗ്യമാക്കുന്നു', |
| 6433 | + 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ശേഖരത്തിന്റെ വിവരങ്ങളുള്ള എഴുത്ത് പ്രദർശനയോഗ്യമാക്കുന്നു', |
6367 | 6434 | 'coll-rendering_finished_title' => 'റെൻഡർ ചെയ്യൽ പൂർണ്ണം', |
6368 | 6435 | 'coll-rendering_finished_text' => '<strong>വിവര പ്രമാണം സൃഷ്ടിച്ചിരിക്കുന്നു.</strong> |
6369 | 6436 | താങ്കളുടെ കമ്പ്യൂട്ടറിലേയ്ക്ക് <strong>[$1 പ്രമാണം ഡൗൺലോഡ് ചെയ്യുക]</strong>. |
6370 | 6437 | |
6371 | 6438 | കുറിപ്പുകൾ: |
6372 | 6439 | * ലഭ്യമായതിൽ സംതൃപ്തനല്ലേ? അത് മെച്ചപ്പെടുത്താനുള്ള സാധ്യതകളെ കുറിച്ചറിയാൻ [[{{MediaWiki:Coll-helppage}}|പുസ്തകങ്ങൾ സംബന്ധിച്ച സഹായം താൾ കാണുക]]', |
| 6440 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/താളിന്റെ വിവരങ്ങളുള്ള എഴുത്ത് പ്രദർശനയോഗ്യമാക്കുന്നു', |
| 6441 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ശേഖരത്തിന്റെ വിവരങ്ങളുള്ള എഴുത്ത് പ്രദർശനയോഗ്യമാക്കുന്നു', |
6373 | 6442 | 'coll-notfound_title' => 'പുസ്തകം കണ്ടെത്താനായില്ല', |
6374 | | - 'coll-notfound_text' => 'പുസ്തക താള് കണ്ടെത്താന് കഴിഞ്ഞില്ല.', |
| 6443 | + 'coll-notfound_text' => 'പുസ്തക താൾ കണ്ടെത്താൻ കഴിഞ്ഞില്ല.', |
6375 | 6444 | 'coll-download_notfound_title' => 'പ്രമാണം കണ്ടെത്താൻ കഴിഞ്ഞില്ല', |
6376 | 6445 | 'coll-download_notfound_text' => 'താങ്കൾ ഡൗൺലോഡ് ചെയ്യാൻ ശ്രമിക്കുന്ന പ്രമാണം നിലവിലില്ല: |
6377 | 6446 | ചിലപ്പോളത് മായ്ക്കപ്പെട്ടിരിക്കുന്നതാവാം, അങ്ങനെയെങ്കിൽ അത് പുനഃസൃഷ്ടിക്കേണ്ടതുണ്ട്.', |
— | — | @@ -6381,7 +6450,7 @@ |
6382 | 6451 | 'coll-excluded-templates' => '*[[:Category:$1|$1]] എന്ന വർഗ്ഗത്തിലുൾപ്പെട്ട ഫലകങ്ങൾ ഒഴിവാക്കി.', |
6383 | 6452 | 'coll-blacklisted-templates' => '*കരിമ്പട്ടികയിലുള്ള ഫലകങ്ങൾ [[:$1]] ഒഴിവാക്കിയിരിക്കുന്നു.', |
6384 | 6453 | 'coll-return_to_collection' => '<p><a href="$1">$2</a></p>-ലേക്കു തിരിച്ചു പോവുക', |
6385 | | - 'coll-book_title' => 'അച്ചടിച്ച പുസ്തകം ഓര്ഡര് ചെയ്യുക', |
| 6454 | + 'coll-book_title' => 'അച്ചടിച്ച പുസ്തകം ഓർഡർ ചെയ്യുക', |
6386 | 6455 | 'coll-book_text' => 'ഞങ്ങളുടെ ആവശ്യപ്പെട്ടാൽ-അച്ചടിച്ചു-തരുന്ന പങ്കാളിയുടെ പക്കൽ നിന്നും അച്ചടിച്ച പുസ്തകം സ്വന്തമാക്കുക.', |
6387 | 6456 | 'coll-order_from_pp' => '$1 വഴി എങ്ങനെയുണ്ടെന്നു കാണുക', |
6388 | 6457 | 'coll-about_pp' => '$1-നെ കുറിച്ച്', |
— | — | @@ -6409,6 +6478,7 @@ |
6410 | 6479 | 'coll-suggest_article_remove' => 'താൾ <strong>$1</strong>, താങ്കളുടെ പുസ്തകത്തിൽ നിന്നും നീക്കം ചെയ്തു ($2).', |
6411 | 6480 | 'coll-suggest_undo_tooltip' => 'ഈ പ്രവൃത്തി തിരസ്കരിക്കുക', |
6412 | 6481 | 'coll-suggest_undo' => 'പ്രവൃത്തി തിരസ്കരിക്കുക', |
| 6482 | + 'coll-load_local_book' => '%NUMPAGES% വിക്കി താളുകൾ ഉൾക്കൊള്ളുന്ന %TITLE% പുസ്തകത്തിന്റെ പ്രവൃത്തികൾ തുടരാൻ ശരി എന്നത് ഞെക്കുക. അത് മായ്ച്ച് ശൂന്യമായ പുസ്തകത്തിൽ തുടങ്ങാൻ റദ്ദാക്കുക ഞെക്കുക.', |
6413 | 6483 | 'right-collectionsaveasuserpage' => 'പുസ്തകങ്ങൾ ഉപയോക്തൃതാളായി സേവ് ചെയ്യുക', |
6414 | 6484 | 'right-collectionsaveascommunitypage' => 'പുസ്തകങ്ങൾ സമൂഹ താളായി സേവ് ചെയ്യുക', |
6415 | 6485 | ); |
— | — | @@ -6615,6 +6685,7 @@ |
6616 | 6686 | $messages['myv'] = array( |
6617 | 6687 | 'coll-collection' => 'Кинига', |
6618 | 6688 | 'coll-collections' => 'Кинигат', |
| 6689 | + 'coll-download_title' => 'Таргамо', |
6619 | 6690 | 'coll-download' => 'Таргамс', |
6620 | 6691 | 'coll-remove' => 'Нардык', |
6621 | 6692 | 'coll-title' => 'Коняксозо:', |
— | — | @@ -6866,6 +6937,8 @@ |
6867 | 6938 | |
6868 | 6939 | Opmerkingen: |
6869 | 6940 | * Niet tevreden met de uitvoer? Op de [[{{MediaWiki:Coll-helppage}}|hulppagina over boeken]] staan tips om deze uitvoer te verbeteren.', |
| 6941 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informatietekst bij renderen pagina', |
| 6942 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informatietekst bij renderen verzameling', |
6870 | 6943 | 'coll-notfound_title' => 'Boek niet gevonden', |
6871 | 6944 | 'coll-notfound_text' => 'Boekpagina is niet gevonden.', |
6872 | 6945 | 'coll-download_notfound_title' => 'Het bestand is niet gevonden', |
— | — | @@ -6906,6 +6979,7 @@ |
6907 | 6980 | 'coll-suggest_article_remove' => 'De pagina <strong>$1</strong> is verwijderd uit uw boek ($2).', |
6908 | 6981 | 'coll-suggest_undo_tooltip' => 'Deze handeling ongedaan maken', |
6909 | 6982 | 'coll-suggest_undo' => 'ongedaan maken', |
| 6983 | + 'coll-load_local_book' => 'Klik "OK" om door te gaan met uw boek %TITLE% dat %NUMPAGES% wikipagina\'s bevat. Klik op "Annuleren" om het te verwijderen en opnieuw te beginnen met een leeg boek.', |
6910 | 6984 | 'right-collectionsaveasuserpage' => 'Boeken opslaan als gebruikerspagina', |
6911 | 6985 | 'right-collectionsaveascommunitypage' => 'Boeken opslaan als gemeenschapspagina', |
6912 | 6986 | ); |
— | — | @@ -7147,6 +7221,8 @@ |
7148 | 7222 | |
7149 | 7223 | Merk: |
7150 | 7224 | * Ikke fornøyd med resultatet? Se [[{{MediaWiki:Coll-helppage}}|hjelpsiden om samlinger]] for muligheter til å forbedre den.', |
| 7225 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Gjengir sideinformasjonstekst', |
| 7226 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Gjengir samlingsinformasjonstekst', |
7151 | 7227 | 'coll-notfound_title' => 'Bok ikke funnet', |
7152 | 7228 | 'coll-notfound_text' => 'Kunne ikke finne bokside.', |
7153 | 7229 | 'coll-download_notfound_title' => 'Fil ikke funnet', |
— | — | @@ -7285,6 +7361,8 @@ |
7286 | 7362 | |
7287 | 7363 | Nòtas : |
7288 | 7364 | * Pas satisfach(a) de la sortida ? Vejatz [[{{MediaWiki:Coll-helppage}}|la pagina d’ajuda que concernís las colleccions]] per las possibilitats de melhorament.', |
| 7365 | + 'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Rendut del tèxte d'informacion de la pagina", |
| 7366 | + 'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Rendut del tèxte d'informacion de la colleccion", |
7289 | 7367 | 'coll-notfound_title' => 'Libre pas trobat', |
7290 | 7368 | 'coll-notfound_text' => 'Pòt pas trobar lo libre.', |
7291 | 7369 | 'coll-download_notfound_title' => 'Fichièr introbable', |
— | — | @@ -7470,6 +7548,8 @@ |
7471 | 7549 | |
7472 | 7550 | Uwaga: |
7473 | 7551 | * Nie jesteś zadowolony z wygenerowanego dokumentu? Zajrzyj na [[{{MediaWiki:Coll-helppage}}|stronę pomocy dotyczącą kolekcji]], aby dowiedzieć się jakie są możliwości poprawy dokumentu.', |
| 7552 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst informacyjny przetwarzania strony', |
| 7553 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst informacyjny przetwarzania kolekcji', |
7474 | 7554 | 'coll-notfound_title' => 'Książki nie odnaleziono', |
7475 | 7555 | 'coll-notfound_text' => 'Nie udało się odnaleźć strony z ksiązki.', |
7476 | 7556 | 'coll-download_notfound_title' => 'Nie odnaleziono pliku', |
— | — | @@ -7509,6 +7589,7 @@ |
7510 | 7590 | 'coll-suggest_article_remove' => 'Strona <strong>$1</strong> została usunięta z Twojej książki ($2).', |
7511 | 7591 | 'coll-suggest_undo_tooltip' => 'Cofnij tę operację', |
7512 | 7592 | 'coll-suggest_undo' => 'cofnij', |
| 7593 | + 'coll-load_local_book' => 'Kliknij „OK” aby kontynuować tworzenie książki %TITLE% zawierającej %NUMPAGES% stron wiki. Kliknij „Anuluj” aby usunąć istniejącą i rozpocząć tworzenie nowej książki.', |
7513 | 7594 | 'right-collectionsaveasuserpage' => 'Zapisywanie książek jako stronę użytkownika', |
7514 | 7595 | 'right-collectionsaveascommunitypage' => 'Zapisywanie książek jako wspólną stronę', |
7515 | 7596 | ); |
— | — | @@ -7611,6 +7692,8 @@ |
7612 | 7693 | |
7613 | 7694 | Nòte: |
7614 | 7695 | * Pa sodisfàit ëd l'arzultà? Ch'a varda [[{{MediaWiki:Coll-helppage}}|la pàgina d'agiut an sij lìber]] për dle possibilità d'ameliorelo.", |
| 7696 | + 'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Visualisassion dël test d'anformassion ëd la pàgina", |
| 7697 | + 'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Visualisassion dël test d'anformassion dla colession", |
7615 | 7698 | 'coll-notfound_title' => 'Lìber pa trovà', |
7616 | 7699 | 'coll-notfound_text' => "La pàgina dël lìber a l'é pa podusse trové.", |
7617 | 7700 | 'coll-download_notfound_title' => 'Archivi pa trovà', |
— | — | @@ -7735,7 +7818,7 @@ |
7736 | 7819 | 'coll-couldnotremovearticle_title' => 'Não foi possível remover a página wiki', |
7737 | 7820 | 'coll-couldnotremovearticle_msg' => 'A página wiki não pôde ser removida.', |
7738 | 7821 | 'coll-noscript_text' => '<h1>É necessário o JavaScript!</h1> |
7739 | | -<strong>Ou o seu navegador não suporta JavaScript ou o JavaScript foi desactivado. |
| 7822 | +<strong>Ou o seu browser não suporta JavaScript ou o JavaScript foi desactivado. |
7740 | 7823 | Esta página não funcionará correctamente sem o JavaScript.</strong>', |
7741 | 7824 | 'coll-savedbook_template' => 'livro_gravado', |
7742 | 7825 | 'coll-your_book' => 'O seu livro', |
— | — | @@ -7763,8 +7846,8 @@ |
7764 | 7847 | 'coll-notitle_title' => 'Não foi possível determinar o título da página.', |
7765 | 7848 | 'coll-post_failed_title' => 'Pedido POST falhou', |
7766 | 7849 | 'coll-post_failed_msg' => 'O pedido POST feito a $1 falhou ($2).', |
7767 | | - 'coll-mwserve_failed_title' => 'Erro no servidor de renderização', |
7768 | | - 'coll-mwserve_failed_msg' => 'Ocorreu um erro no servidor de renderização: <nowiki>$1</nowiki>', |
| 7850 | + 'coll-mwserve_failed_title' => 'Erro no servidor de composição de imagem', |
| 7851 | + 'coll-mwserve_failed_msg' => 'Ocorreu um erro no servidor de composição de imagem: <nowiki>$1</nowiki>', |
7769 | 7852 | 'coll-error_reponse' => 'Resposta de erro do servidor', |
7770 | 7853 | 'coll-empty_collection' => 'Livro vazio', |
7771 | 7854 | 'coll-revision' => 'Revisão: $1', |
— | — | @@ -7789,24 +7872,26 @@ |
7790 | 7873 | 'coll-limit_exceeded_title' => 'Livro demasiado grande', |
7791 | 7874 | 'coll-limit_exceeded_text' => 'O seu livro é demasiado grande. |
7792 | 7875 | Não podem ser adicionadas mais páginas.', |
7793 | | - 'coll-rendering_title' => 'Renderizando', |
| 7876 | + 'coll-rendering_title' => 'A compor imagem', |
7794 | 7877 | 'coll-rendering_text' => '<p><strong>Por favor, aguarde enquanto o documento é gerado.</strong></p> |
7795 | 7878 | |
7796 | 7879 | <p><strong>Progresso:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p> |
7797 | 7880 | |
7798 | 7881 | <p>Esta página deverá actualizar-se automaticamente com frequência. |
7799 | | -Se não o fizer, por favor use o botão "actualizar" ("refresh") do seu navegador.</p>', |
| 7882 | +Se não o fizer, por favor use o botão "actualizar" ("refresh") do seu browser.</p>', |
7800 | 7883 | 'coll-rendering_status' => '<strong>Estado:</strong> $1', |
7801 | 7884 | 'coll-rendering_article' => '(página wiki: $1)', |
7802 | 7885 | 'coll-rendering_page' => '(página: $1)', |
7803 | | - 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Mostrando o texto de informação da página', |
7804 | | - 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Mostrando o texto de informação do livro', |
7805 | | - 'coll-rendering_finished_title' => 'Renderização concluída', |
| 7886 | + 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/A compor o texto de informação da página', |
| 7887 | + 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/A compor o texto de informação do livro', |
| 7888 | + 'coll-rendering_finished_title' => 'Composição da imagem concluída', |
7806 | 7889 | 'coll-rendering_finished_text' => '<strong>O ficheiro foi gerado.</strong> |
7807 | 7890 | <strong>[$1 Transfira o ficheiro]</strong> para o seu computador. |
7808 | 7891 | |
7809 | 7892 | Notas: |
7810 | 7893 | * Não está satisfeito com o resultado? Consulte [[{{MediaWiki:Coll-helppage}}|a página de ajuda sobre livros]] para conhecer as possibilidades de aprimoramento.', |
| 7894 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/A compor o texto de informação da página', |
| 7895 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/A compor o texto de informação do livro', |
7811 | 7896 | 'coll-notfound_title' => 'Livro não foi encontrado', |
7812 | 7897 | 'coll-notfound_text' => 'Não foi possível encontrar a página do livro.', |
7813 | 7898 | 'coll-download_notfound_title' => 'Ficheiro não encontrado', |
— | — | @@ -7814,7 +7899,8 @@ |
7815 | 7900 | Talvez tenha sido apagado e precise de ser regenerado.', |
7816 | 7901 | 'coll-download_failed_title' => 'Erro durante o descarregamento', |
7817 | 7902 | 'coll-download_failed_text' => 'Ocorreu um erro ao descarregar o ficheiro: $1', |
7818 | | - 'coll-is_cached' => '<ul><li>Foi encontrada uma versão deste documento em cache, dispensando a renderização. <a href="$1"> Forçar nova renderização.</a></li></ul>', |
| 7903 | + 'coll-is_cached' => '<ul><li>Foi encontrada uma versão deste documento em cache, dispensando a sua composição. |
| 7904 | +<a href="$1">Forçar nova composição.</a></li></ul>', |
7819 | 7905 | 'coll-excluded-templates' => '* As predefinições na categoria [[:Category:$1|$1]] foram excluídas.', |
7820 | 7906 | 'coll-blacklisted-templates' => '* As predefinições na lista negra [[:$1]] foram excluídas.', |
7821 | 7907 | 'coll-return_to_collection' => '<p>Regressar a <a href="$1">$2</a></p>', |
— | — | @@ -7846,6 +7932,7 @@ |
7847 | 7933 | 'coll-suggest_article_remove' => 'A página <strong>$1</strong> foi removida do seu livro ($2).', |
7848 | 7934 | 'coll-suggest_undo_tooltip' => 'Desfazer esta acção', |
7849 | 7935 | 'coll-suggest_undo' => 'desfazer', |
| 7936 | + 'coll-load_local_book' => 'Clique OK para continuar com o seu livro %TITLE% que contém %NUMPAGES% páginas wiki. Clique Cancelar para apagá-lo e começar com um livro vazio.', |
7850 | 7937 | 'right-collectionsaveasuserpage' => 'Gravar livros como página de utilizador', |
7851 | 7938 | 'right-collectionsaveascommunitypage' => 'Gravar livros como página comunitária', |
7852 | 7939 | ); |
— | — | @@ -8263,14 +8350,16 @@ |
8264 | 8351 | 'coll-rendering_status' => '<strong>Статус:</strong> $1', |
8265 | 8352 | 'coll-rendering_article' => '(статья: $1)', |
8266 | 8353 | 'coll-rendering_page' => '(страница: $1)', |
8267 | | - 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отображение информации о странице', |
8268 | | - 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отображение информации о коллекции', |
8269 | | - 'coll-rendering_finished_title' => 'Создание завершено', |
| 8354 | + 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отрисовка текста сведений о странице', |
| 8355 | + 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отрисовка текста сведений о коллекции', |
| 8356 | + 'coll-rendering_finished_title' => 'Отрисовка завершена', |
8270 | 8357 | 'coll-rendering_finished_text' => '<strong>Файл документа создан.</strong> |
8271 | 8358 | <strong>[$1 Скачать файл]</strong> на свой компьютер. |
8272 | 8359 | |
8273 | 8360 | Замечание: |
8274 | 8361 | * Не удовлетворены результатом? Возможности его улучшения описаны на [[{{MediaWiki:Coll-helppage}}|справочной странице о книгах]].', |
| 8362 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отрисовка текста сведений о странице', |
| 8363 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отрисовка текста сведений о коллекции', |
8275 | 8364 | 'coll-notfound_title' => 'Книга не найдена', |
8276 | 8365 | 'coll-notfound_text' => 'Невозможно найти страницу книги.', |
8277 | 8366 | 'coll-download_notfound_title' => 'Файл не найден', |
— | — | @@ -8309,6 +8398,7 @@ |
8310 | 8399 | 'coll-suggest_article_remove' => 'Из вашей книги ($2) была удалена страница <strong>$1</strong>.', |
8311 | 8400 | 'coll-suggest_undo_tooltip' => 'Отменить это действие', |
8312 | 8401 | 'coll-suggest_undo' => 'отменить', |
| 8402 | + 'coll-load_local_book' => 'Нажмите «ОК», чтобы продолжить работу с вашей книгой %TITLE%, содержащей %NUMPAGES% вики-страниц. Нажмите «Отмена», чтобы удалить её и начать с пустой книги.', |
8313 | 8403 | 'right-collectionsaveasuserpage' => 'сохранение книг, как страницу участника', |
8314 | 8404 | 'right-collectionsaveascommunitypage' => 'сохранение книг, как страницу сообщества', |
8315 | 8405 | ); |
— | — | @@ -10334,12 +10424,16 @@ |
10335 | 10425 | 'coll-rendering_status' => '<strong>Trạng thái:</strong> $1', |
10336 | 10426 | 'coll-rendering_article' => '(trang wiki: $1)', |
10337 | 10427 | 'coll-rendering_page' => '(trang: $1)', |
| 10428 | + 'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kết xuất văn bản thông tin trang', |
| 10429 | + 'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kết xuất văn bản thông tin tuyển tập', |
10338 | 10430 | 'coll-rendering_finished_title' => 'Kết xuất xong', |
10339 | 10431 | 'coll-rendering_finished_text' => '<strong>Xong kết xuất tập tin tài liệu.</strong> |
10340 | 10432 | <strong>[$1 Tải nó về]</strong> máy tính của mình. |
10341 | 10433 | |
10342 | 10434 | Chú ý: |
10343 | 10435 | * Không vừa lòng với bản kết xuất này? Hãy đọc [[{{MediaWiki:Coll-helppage}}|trợ giúp về tập hợp]] để biết về những cách để cải tiến nó.', |
| 10436 | + 'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kết xuất văn bản thông tin trang', |
| 10437 | + 'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kết xuất văn bản thông tin tuyển tập', |
10344 | 10438 | 'coll-notfound_title' => 'Không tìm thấy sách', |
10345 | 10439 | 'coll-notfound_text' => 'Không tìm thấy trang sách.', |
10346 | 10440 | 'coll-download_notfound_title' => 'Không tìm thấy tập tin', |
— | — | @@ -10378,6 +10472,7 @@ |
10379 | 10473 | 'coll-suggest_article_remove' => 'Trang <strong>$1</strong> đã bị xóa ra khỏi cuốn sách ($2).', |
10380 | 10474 | 'coll-suggest_undo_tooltip' => 'Phục hồi tác vụ này', |
10381 | 10475 | 'coll-suggest_undo' => 'phục hồi', |
| 10476 | + 'coll-load_local_book' => 'Nhấn OK để tiếp tục quyển sách %TITLE% hiện có %NUMPAGES% trang wiki. Nhấn Cancel để xóa và làm việc với quyển sách trắng.', |
10382 | 10477 | 'right-collectionsaveasuserpage' => 'Lưu sách vở thành trang cá nhân', |
10383 | 10478 | 'right-collectionsaveascommunitypage' => 'Lưu sách thành trang cộng đồng', |
10384 | 10479 | ); |
— | — | @@ -10462,7 +10557,31 @@ |
10463 | 10558 | 'coll-rendering_page' => '(בלאַט: $1)', |
10464 | 10559 | ); |
10465 | 10560 | |
10466 | | -/** Yue (粵語) |
| 10561 | +/** Yoruba (Yorùbá) |
| 10562 | + * @author Demmy |
| 10563 | + */ |
| 10564 | +$messages['yo'] = array( |
| 10565 | + 'coll-desc' => '[[Special:Book|Dá àwọn ìwé]]', |
| 10566 | + 'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Lẹ́tà ọ̀rọ̀ olùdá ìwé', |
| 10567 | + 'coll-collection' => 'Ìwé', |
| 10568 | + 'coll-collections' => 'Àwọn ìwé', |
| 10569 | + 'coll-print_template_prefix' => 'Ìtẹ́síìwé', |
| 10570 | + 'coll-print_template_pattern' => '$1/Ìtẹ́síìwé', |
| 10571 | + 'coll-your_book' => 'Ìwé yín', |
| 10572 | + 'coll-title' => 'Àkọlé:', |
| 10573 | + 'coll-subtitle' => 'Àkọléabẹ́:', |
| 10574 | + 'coll-contents' => 'Àwọn àkóónú', |
| 10575 | + 'coll-create_chapter' => 'Dá orí ìwé', |
| 10576 | + 'coll-sort_alphabetically' => 'Títò bi ABD', |
| 10577 | + 'coll-rename' => 'Àtúnṣọlọ́rúkọ', |
| 10578 | + 'coll-yes' => 'Bẹ́ẹ̀ni', |
| 10579 | + 'coll-no' => 'Bẹ́ẹ̀kọ́', |
| 10580 | + 'coll-cancel' => 'Fagilé', |
| 10581 | + 'coll-about_pp' => 'Nípa $1', |
| 10582 | + 'coll-return_to' => 'Padà sí [[:$1]]', |
| 10583 | +); |
| 10584 | + |
| 10585 | +/** Cantonese (粵語) |
10467 | 10586 | * @author Shinjiman |
10468 | 10587 | */ |
10469 | 10588 | $messages['yue'] = array( |
Index: branches/wmf/1.16wmf4/extensions/Collection/Collection.php |
— | — | @@ -30,7 +30,7 @@ |
31 | 31 | exit( 1 ); |
32 | 32 | } |
33 | 33 | |
34 | | -$dir = dirname(__FILE__) . '/'; |
| 34 | +$dir = dirname( __FILE__ ) . '/'; |
35 | 35 | |
36 | 36 | # Extension version |
37 | 37 | $wgCollectionVersion = "1.4"; |
— | — | @@ -40,7 +40,7 @@ |
41 | 41 | # Configuration: |
42 | 42 | |
43 | 43 | /** Bump the version number every time you change any of the JavaScript files */ |
44 | | -$wgCollectionStyleVersion = 6; |
| 44 | +$wgCollectionStyleVersion = 8; |
45 | 45 | |
46 | 46 | /** URL of mw-serve render server */ |
47 | 47 | $wgCollectionMWServeURL = 'http://tools.pediapress.com/mw-serve/'; |
— | — | @@ -162,9 +162,9 @@ |
163 | 163 | |
164 | 164 | $wgAjaxExportList[] = 'wfAjaxGetCollection'; |
165 | 165 | |
166 | | -function wfAjaxPostCollection( $collection='' ) { |
| 166 | +function wfAjaxPostCollection( $collection = '' ) { |
167 | 167 | $json = new Services_JSON( SERVICES_JSON_LOOSE_TYPE ); |
168 | | - if( session_id() == '' ) { |
| 168 | + if ( session_id() == '' ) { |
169 | 169 | wfSetupSession(); |
170 | 170 | } |
171 | 171 | $collection = $json->decode( $collection ); |
— | — | @@ -176,12 +176,15 @@ |
177 | 177 | |
178 | 178 | $wgAjaxExportList[] = 'wfAjaxPostCollection'; |
179 | 179 | |
180 | | -function wfAjaxGetMWServeStatus( $collection_id='', $writer='rl' ) { |
| 180 | +function wfAjaxGetMWServeStatus( $collection_id = '', $writer = 'rl' ) { |
181 | 181 | $json = new Services_JSON(); |
182 | 182 | $result = SpecialCollection::mwServeCommand( 'render_status', array( |
183 | 183 | 'collection_id' => $collection_id, |
184 | 184 | 'writer' => $writer |
185 | 185 | ) ); |
| 186 | + if ( isset( $result['status']['progress'] ) ) { |
| 187 | + $result['status']['progress'] = number_format( $result['status']['progress'], 2, '.', '' ); |
| 188 | + } |
186 | 189 | $r = new AjaxResponse( $json->encode( $result ) ); |
187 | 190 | $r->setContentType( 'application/json' ); |
188 | 191 | return $r; |
— | — | @@ -189,32 +192,39 @@ |
190 | 193 | |
191 | 194 | $wgAjaxExportList[] = 'wfAjaxGetMWServeStatus'; |
192 | 195 | |
193 | | -function wfAjaxCollectionAddArticle( $namespace=0, $title='', $oldid='' ) { |
| 196 | +function wfAjaxCollectionAddArticle( $namespace = 0, $title = '', $oldid = '' ) { |
194 | 197 | SpecialCollection::addArticleFromName( $namespace, $title, $oldid ); |
195 | | - return ''; |
| 198 | + return wfAjaxCollectionGetItemList(); |
196 | 199 | } |
197 | 200 | |
198 | 201 | $wgAjaxExportList[] = 'wfAjaxCollectionAddArticle'; |
199 | 202 | |
200 | | -function wfAjaxCollectionRemoveArticle( $namespace=0, $title='', $oldid='' ) { |
| 203 | +function wfAjaxCollectionRemoveArticle( $namespace = 0, $title = '', $oldid = '' ) { |
201 | 204 | SpecialCollection::removeArticleFromName( $namespace, $title, $oldid ); |
202 | | - return ''; |
| 205 | + return wfAjaxCollectionGetItemList(); |
203 | 206 | } |
204 | 207 | |
205 | 208 | $wgAjaxExportList[] = 'wfAjaxCollectionRemoveArticle'; |
206 | 209 | |
207 | | -function wfAjaxCollectionAddCategory( $title='' ) { |
| 210 | +function wfAjaxCollectionAddCategory( $title = '' ) { |
208 | 211 | SpecialCollection::addCategoryFromName( $title ); |
209 | | - return ''; |
| 212 | + return wfAjaxCollectionGetItemList(); |
210 | 213 | } |
211 | 214 | |
212 | 215 | $wgAjaxExportList[] = 'wfAjaxCollectionAddCategory'; |
213 | 216 | |
214 | | -function wfAjaxCollectionGetBookCreatorBoxContent( $ajaxHint='', $oldid=null ) { |
215 | | - if( !is_null( $oldid ) ) { |
| 217 | +function wfAjaxCollectionGetBookCreatorBoxContent( $ajaxHint = '', $oldid = null ) { |
| 218 | + if ( !is_null( $oldid ) ) { |
216 | 219 | $oldid = intval( $oldid ); |
217 | 220 | } |
218 | | - return CollectionHooks::getBookCreatorBoxContent( $ajaxHint, $oldid ); |
| 221 | + $html = CollectionHooks::getBookCreatorBoxContent( $ajaxHint, $oldid ); |
| 222 | + |
| 223 | + $json = new Services_JSON(); |
| 224 | + $result = array(); |
| 225 | + $result['html'] = $html; |
| 226 | + $r = new AjaxResponse( $json->encode( $result ) ); |
| 227 | + $r->setContentType( 'application/json' ); |
| 228 | + return $r; |
219 | 229 | } |
220 | 230 | |
221 | 231 | $wgAjaxExportList[] = 'wfAjaxCollectionGetBookCreatorBoxContent'; |
— | — | @@ -222,14 +232,24 @@ |
223 | 233 | function wfAjaxCollectionGetItemList() { |
224 | 234 | wfLoadExtensionMessages( 'CollectionCore' ); |
225 | 235 | wfLoadExtensionMessages( 'Collection' ); |
| 236 | + |
| 237 | + $collection = $_SESSION['wsCollection']; |
| 238 | + |
226 | 239 | $template = new CollectionListTemplate(); |
227 | | - $template->set( 'collection', $_SESSION['wsCollection'] ); |
| 240 | + $template->set( 'collection', $collection ); |
228 | 241 | $template->set( 'is_ajax', true ); |
229 | 242 | ob_start(); |
230 | 243 | $template->execute(); |
231 | 244 | $html = ob_get_contents(); |
232 | 245 | ob_end_clean(); |
233 | | - return $html; |
| 246 | + |
| 247 | + $json = new Services_JSON(); |
| 248 | + $result = array(); |
| 249 | + $result['html'] = $html; |
| 250 | + $result['collection'] = $collection; |
| 251 | + $r = new AjaxResponse( $json->encode( $result ) ); |
| 252 | + $r->setContentType( 'application/json' ); |
| 253 | + return $r; |
234 | 254 | } |
235 | 255 | |
236 | 256 | $wgAjaxExportList[] = 'wfAjaxCollectionGetItemList'; |
— | — | @@ -257,7 +277,7 @@ |
258 | 278 | |
259 | 279 | function wfAjaxCollectionSetTitles( $title, $subtitle ) { |
260 | 280 | SpecialCollection::setTitles( $title, $subtitle ); |
261 | | - return ''; |
| 281 | + return wfAjaxCollectionGetItemList(); |
262 | 282 | } |
263 | 283 | |
264 | 284 | $wgAjaxExportList[] = 'wfAjaxCollectionSetTitles'; |
— | — | @@ -292,7 +312,7 @@ |
293 | 313 | $json = new Services_JSON(); |
294 | 314 | $result = array(); |
295 | 315 | $imagePath = "$wgScriptPath/extensions/Collection/images"; |
296 | | - if ( CollectionSession::findArticle( $title ) == -1 ) { |
| 316 | + if ( CollectionSession::findArticle( $title ) == - 1 ) { |
297 | 317 | $result['action'] = 'add'; |
298 | 318 | $result['text'] = wfMsg( 'coll-add_linked_article' ); |
299 | 319 | $result['img'] = "$imagePath/silk-add.png"; |
— | — | @@ -324,7 +344,7 @@ |
325 | 345 | array( |
326 | 346 | 'href' => SkinTemplate::makeSpecialUrl( |
327 | 347 | 'Book', |
328 | | - array('bookcmd' => 'suggest', 'undo' => $action, 'arttitle' => $article ) |
| 348 | + array( 'bookcmd' => 'suggest', 'undo' => $action, 'arttitle' => $article ) |
329 | 349 | ), |
330 | 350 | 'onclick' => "collectionSuggestCall('UndoArticle'," . |
331 | 351 | Xml::encodeJsVar( array( $action, $article ) ) . "); return false;", |
— | — | @@ -337,6 +357,7 @@ |
338 | 358 | htmlspecialchars( $article ), |
339 | 359 | $undoLink |
340 | 360 | ); |
| 361 | + $result['collection'] = CollectionSession::getCollection(); |
341 | 362 | $r = new AjaxResponse( $json->encode( $result ) ); |
342 | 363 | $r->setContentType( 'application/json' ); |
343 | 364 | return $r; |
Index: branches/wmf/1.16wmf4/extensions/Collection/Collection.suggest.php |
— | — | @@ -51,7 +51,7 @@ |
52 | 52 | * or a number of articles to add or a value (1 - 1.5) all articles with a |
53 | 53 | * higher value will be added to the collection |
54 | 54 | */ |
55 | | - public function run( $mode='', $param='' ) { |
| 55 | + public function run( $mode = '', $param = '' ) { |
56 | 56 | global $wgOut; |
57 | 57 | |
58 | 58 | wfLoadExtensionMessages( 'CollectionCore' ); |
— | — | @@ -118,10 +118,10 @@ |
119 | 119 | |
120 | 120 | // remove the suggestion data from the session |
121 | 121 | public static function clear() { |
122 | | - if( isset( $_SESSION['wsCollectionSuggestBan'] ) ) { |
| 122 | + if ( isset( $_SESSION['wsCollectionSuggestBan'] ) ) { |
123 | 123 | unset( $_SESSION['wsCollectionSuggestBan'] ); |
124 | 124 | } |
125 | | - if( isset( $_SESSION['wsCollectionSuggestProp'] ) ) { |
| 125 | + if ( isset( $_SESSION['wsCollectionSuggestProp'] ) ) { |
126 | 126 | unset( $_SESSION['wsCollectionSuggestProp'] ); |
127 | 127 | } |
128 | 128 | } |
— | — | @@ -161,20 +161,20 @@ |
162 | 162 | private static function getCollectionSuggestTemplate( $mode, $param ) { |
163 | 163 | global $wgCollectionMaxSuggestions; |
164 | 164 | |
165 | | - switch($mode) { |
| 165 | + switch( $mode ) { |
166 | 166 | case 'add': |
167 | | - SpecialCollection::addArticleFromName(NS_MAIN, $param); |
| 167 | + SpecialCollection::addArticleFromName( NS_MAIN, $param ); |
168 | 168 | self::unban( $param ); |
169 | 169 | break; |
170 | 170 | case 'ban': |
171 | 171 | $_SESSION['wsCollectionSuggestBan'][] = $param; |
172 | 172 | break; |
173 | 173 | case 'remove': |
174 | | - SpecialCollection::removeArticleFromName(NS_MAIN, $param); |
| 174 | + SpecialCollection::removeArticleFromName( NS_MAIN, $param ); |
175 | 175 | $_SESSION['wsCollectionSuggestBan'][] = $param; |
176 | 176 | break; |
177 | 177 | case 'removeonly': // remove w/out banning (for undo) |
178 | | - SpecialCollection::removeArticleFromName(NS_MAIN, $param); |
| 178 | + SpecialCollection::removeArticleFromName( NS_MAIN, $param ); |
179 | 179 | break; |
180 | 180 | case 'unban': // for undo |
181 | 181 | self::unban( $param ); |
— | — | @@ -209,7 +209,7 @@ |
210 | 210 | * @param $prop the proposal-Object |
211 | 211 | */ |
212 | 212 | private static function addArticlesFromName( $articleList, $prop ) { |
213 | | - foreach( $articleList as $article ) { |
| 213 | + foreach ( $articleList as $article ) { |
214 | 214 | SpecialCollection::addArticleFromName( NS_MAIN, $article ); |
215 | 215 | } |
216 | 216 | $prop->setCollection( $_SESSION['wsCollection'] ); |
— | — | @@ -299,14 +299,14 @@ |
300 | 300 | * - 'val' : a value between 1 and 1.5, the higher the |
301 | 301 | * more this article is proposed |
302 | 302 | */ |
303 | | - public function getProposals( $num=0, $doUpdate=true ) { |
| 303 | + public function getProposals( $num = 0, $doUpdate = true ) { |
304 | 304 | if ( $doUpdate ) { |
305 | 305 | $this->updateLinkList(); |
306 | 306 | } |
307 | 307 | |
308 | 308 | $this->getPropList(); |
309 | 309 | |
310 | | - if ($num > 0) { |
| 310 | + if ( $num > 0 ) { |
311 | 311 | return array_slice( $this->mPropList, 0, $num ); |
312 | 312 | } else { |
313 | 313 | return $this->mPropList; |
— | — | @@ -314,7 +314,7 @@ |
315 | 315 | } |
316 | 316 | |
317 | 317 | public function hasBans() { |
318 | | - return count($this->mBanList) > 0; |
| 318 | + return count( $this->mBanList ) > 0; |
319 | 319 | } |
320 | 320 | |
321 | 321 | /* |
— | — | @@ -338,8 +338,8 @@ |
339 | 339 | return; |
340 | 340 | } |
341 | 341 | |
342 | | - foreach( $this->mColl['items'] as $item ) { |
343 | | - if ( $this->searchEntry( $item['title'], $this->mLinkList ) === false |
| 342 | + foreach ( $this->mColl['items'] as $item ) { |
| 343 | + if ( $this->searchEntry( $item['title'], $this->mLinkList ) === false |
344 | 344 | && $item['type'] == 'article' |
345 | 345 | ) { |
346 | 346 | $articleName = $item['title']; |
— | — | @@ -362,7 +362,7 @@ |
363 | 363 | private function deleteUnusedArticles() { |
364 | 364 | $newList = array(); |
365 | 365 | foreach ( $this->mLinkList as $item ) { |
366 | | - if ( CollectionSession::findArticle( $item['name'] ) != -1 ) { |
| 366 | + if ( CollectionSession::findArticle( $item['name'] ) != - 1 ) { |
367 | 367 | $newList[] = $item; |
368 | 368 | } |
369 | 369 | } |
— | — | @@ -423,7 +423,7 @@ |
424 | 424 | } |
425 | 425 | $link = $this->resolveRedirects( $title )->getText(); |
426 | 426 | |
427 | | - if ( isset ($linkmap[$link] ) ) { |
| 427 | + if ( isset ( $linkmap[$link] ) ) { |
428 | 428 | $linkmap[$link][$link] = true; |
429 | 429 | } else { |
430 | 430 | $linkmap[$link] = array( $link => true ); |
— | — | @@ -465,7 +465,7 @@ |
466 | 466 | // normalize: |
467 | 467 | $lc_max = 0; |
468 | 468 | foreach ( $linkcount as $link => $count ) { |
469 | | - if ( $count > $lc_max) { |
| 469 | + if ( $count > $lc_max ) { |
470 | 470 | $lc_max = $count; |
471 | 471 | } |
472 | 472 | } |
— | — | @@ -473,7 +473,7 @@ |
474 | 474 | $result = array(); |
475 | 475 | if ( $norm > 0 ) { |
476 | 476 | foreach ( $linkcount as $link => $count ) { |
477 | | - $result[$link] = 1 + 0.5*log($count)/$norm; |
| 477 | + $result[$link] = 1 + 0.5 * log( $count ) / $norm; |
478 | 478 | } |
479 | 479 | } else { |
480 | 480 | foreach ( $linkcount as $link => $count ) { |
— | — | @@ -485,7 +485,7 @@ |
486 | 486 | } else { |
487 | 487 | // cheaper algorithm: just count links |
488 | 488 | foreach ( $linkmap as $alias => $linked ) { |
489 | | - foreach ( $linked as $link => $dummy) { |
| 489 | + foreach ( $linked as $link => $dummy ) { |
490 | 490 | $linkcount[$link] = 1; |
491 | 491 | } |
492 | 492 | } |
— | — | @@ -498,8 +498,8 @@ |
499 | 499 | private function getPropList() { |
500 | 500 | $prop = array(); |
501 | 501 | foreach ( $this->mLinkList as $article ) { |
502 | | - foreach ( $article['links'] as $linkName => $val) { |
503 | | - if ( !$this->checkLink( $linkName ) ) { |
| 502 | + foreach ( $article['links'] as $linkName => $val ) { |
| 503 | + if ( !$this->checkLink( $linkName ) ) { |
504 | 504 | continue; |
505 | 505 | } |
506 | 506 | $key = $this->searchEntry( $linkName, $prop ); |
— | — | @@ -588,6 +588,6 @@ |
589 | 589 | if ( $a['val'] < $b['val'] ) { |
590 | 590 | return 1; |
591 | 591 | } else { |
592 | | - return -1; |
| 592 | + return - 1; |
593 | 593 | } |
594 | 594 | } |
Index: branches/wmf/1.16wmf4/extensions/Collection/Collection.hooks.php |
— | — | @@ -29,9 +29,9 @@ |
30 | 30 | global $wgUser; |
31 | 31 | global $wgCollectionPortletForLoggedInUsersOnly; |
32 | 32 | |
33 | | - if( !$wgCollectionPortletForLoggedInUsersOnly || $wgUser->isLoggedIn() ) { |
| 33 | + if ( !$wgCollectionPortletForLoggedInUsersOnly || $wgUser->isLoggedIn() ) { |
34 | 34 | $html = self::getPortlet(); |
35 | | - if( $html ) { |
| 35 | + if ( $html ) { |
36 | 36 | $bar[ 'coll-print_export' ] = $html; |
37 | 37 | } |
38 | 38 | } |
— | — | @@ -42,8 +42,8 @@ |
43 | 43 | global $wgUser; |
44 | 44 | global $wgCollectionPortletForLoggedInUsersOnly; |
45 | 45 | |
46 | | - if( !$wgCollectionPortletForLoggedInUsersOnly || $wgUser->isLoggedIn() ) { |
47 | | - if( isset( $navUrls['print'] ) ) { |
| 46 | + if ( !$wgCollectionPortletForLoggedInUsersOnly || $wgUser->isLoggedIn() ) { |
| 47 | + if ( isset( $navUrls['print'] ) ) { |
48 | 48 | // We move this guy out to our own box |
49 | 49 | unset( $navUrls['print'] ); |
50 | 50 | } |
— | — | @@ -60,7 +60,7 @@ |
61 | 61 | |
62 | 62 | $html = self::getPortlet(); |
63 | 63 | |
64 | | - if( $html ) { |
| 64 | + if ( $html ) { |
65 | 65 | $portletTitle = wfMsg( 'coll-print_export' ); |
66 | 66 | print "<div id=\"p-coll-print_export\" class=\"portlet\"> |
67 | 67 | <h5>$portletTitle</h5> |
— | — | @@ -92,8 +92,8 @@ |
93 | 93 | return false; |
94 | 94 | } |
95 | 95 | |
96 | | - $action = $wgRequest->getVal('action'); |
97 | | - if( $action != '' && $action != 'view' && $action != 'purge' ) { |
| 96 | + $action = $wgRequest->getVal( 'action' ); |
| 97 | + if ( $action != '' && $action != 'view' && $action != 'purge' ) { |
98 | 98 | return false; |
99 | 99 | } |
100 | 100 | |
— | — | @@ -133,12 +133,12 @@ |
134 | 134 | ); |
135 | 135 | } |
136 | 136 | |
137 | | - $params = array( |
| 137 | + $params = array( |
138 | 138 | 'bookcmd' => 'render_article', |
139 | 139 | 'arttitle' => $wgTitle->getPrefixedText(), |
140 | 140 | ); |
141 | 141 | |
142 | | - if( $wgArticle ) { |
| 142 | + if ( $wgArticle ) { |
143 | 143 | $oldid = $wgArticle->getOldID(); |
144 | 144 | if ( $oldid ) { |
145 | 145 | $params['oldid'] = $oldid; |
— | — | @@ -166,7 +166,7 @@ |
167 | 167 | |
168 | 168 | // Move the 'printable' link into our section for consistency |
169 | 169 | $action = $wgRequest->getVal( 'action', 'view' ); |
170 | | - if( $action == 'view' || $action == 'purge' ) { |
| 170 | + if ( $action == 'view' || $action == 'purge' ) { |
171 | 171 | global $wgOut; |
172 | 172 | if ( !$wgOut->isPrintable() ) { |
173 | 173 | $attribs = array( |
— | — | @@ -199,8 +199,8 @@ |
200 | 200 | global $wgRequest; |
201 | 201 | global $wgTitle; |
202 | 202 | |
203 | | - $action = $wgRequest->getVal('action'); |
204 | | - if( $action != '' && $action != 'view' && $action != 'purge' ) { |
| 203 | + $action = $wgRequest->getVal( 'action' ); |
| 204 | + if ( $action != '' && $action != 'view' && $action != 'purge' ) { |
205 | 205 | return true; |
206 | 206 | } |
207 | 207 | |
— | — | @@ -211,7 +211,7 @@ |
212 | 212 | |
213 | 213 | $myTitle = SpecialPage::getTitleFor( 'Book' ); |
214 | 214 | if ( $myTitle->equals( $wgTitle ) ) { |
215 | | - $cmd = $wgRequest->getVal('bookcmd', ''); |
| 215 | + $cmd = $wgRequest->getVal( 'bookcmd', '' ); |
216 | 216 | if ( $cmd == 'suggest' ) { |
217 | 217 | $siteNotice .= self::renderBookCreatorBox( 'suggest' ); |
218 | 218 | } else if ( $cmd == '' ) { |
— | — | @@ -234,7 +234,7 @@ |
235 | 235 | return true; |
236 | 236 | } |
237 | 237 | |
238 | | - static function renderBookCreatorBox( $mode='' ) { |
| 238 | + static function renderBookCreatorBox( $mode = '' ) { |
239 | 239 | global $wgArticle; |
240 | 240 | global $wgCollectionArticleNamespaces; |
241 | 241 | global $wgCollectionStyleVersion; |
— | — | @@ -258,7 +258,7 @@ |
259 | 259 | $oldid = $wgArticle->getOldID(); |
260 | 260 | if ( !$oldid || $oldid == $wgArticle->getLatest() ) { |
261 | 261 | $oldid = 0; |
262 | | - } |
| 262 | + } |
263 | 263 | } |
264 | 264 | |
265 | 265 | $html = ''; |
— | — | @@ -275,9 +275,25 @@ |
276 | 276 | ); |
277 | 277 | } |
278 | 278 | |
279 | | - $html .= Xml::element( 'script', |
| 279 | + $html .= Xml::element( 'script', |
280 | 280 | array( |
281 | 281 | 'type' => $wgJsMimeType, |
| 282 | + 'src' => "$jsPath/jquery.json.js?$wgCollectionStyleVersion", |
| 283 | + ), |
| 284 | + '', false |
| 285 | + ); |
| 286 | + |
| 287 | + $html .= Xml::element( 'script', |
| 288 | + array( |
| 289 | + 'type' => $wgJsMimeType, |
| 290 | + 'src' => "$jsPath/jstorage.js?$wgCollectionStyleVersion", |
| 291 | + ), |
| 292 | + '', false |
| 293 | + ); |
| 294 | + |
| 295 | + $html .= Xml::element( 'script', |
| 296 | + array( |
| 297 | + 'type' => $wgJsMimeType, |
282 | 298 | 'src' => "$jsPath/bookcreator.js?$wgCollectionStyleVersion", |
283 | 299 | ), |
284 | 300 | '', false |
— | — | @@ -323,7 +339,7 @@ |
324 | 340 | array( 'style' => 'float: right' ), |
325 | 341 | $sk->link( |
326 | 342 | Title::newFromText( wfMsg( 'coll-helppage' ) ), |
327 | | - Xml::element('img', |
| 343 | + Xml::element( 'img', |
328 | 344 | array( |
329 | 345 | 'src' => "$imagePath/silk-help.png", |
330 | 346 | 'alt' => '', |
— | — | @@ -333,7 +349,7 @@ |
334 | 350 | ) |
335 | 351 | ) |
336 | 352 | . ' ' . wfMsgHtml( 'coll-help' ), |
337 | | - array( |
| 353 | + array( |
338 | 354 | 'rel' => 'nofollow', |
339 | 355 | 'title' => wfMsg( 'coll-help_tooltip' ), |
340 | 356 | ), |
— | — | @@ -371,7 +387,7 @@ |
372 | 388 | return $html; |
373 | 389 | } |
374 | 390 | |
375 | | - static function getBookCreatorBoxContent( $ajaxHint=null, $oldid=null ) { |
| 391 | + static function getBookCreatorBoxContent( $ajaxHint = null, $oldid = null ) { |
376 | 392 | global $wgUser; |
377 | 393 | global $wgScriptPath; |
378 | 394 | |
— | — | @@ -398,7 +414,7 @@ |
399 | 415 | $oldid = $wgArticle->getOldID(); |
400 | 416 | if ( !$oldid || $oldid == $wgArticle->getLatest() ) { |
401 | 417 | $oldid = 0; |
402 | | - } |
| 418 | + } |
403 | 419 | } |
404 | 420 | |
405 | 421 | if ( $ajaxHint == 'suggest' || $ajaxHint == 'showbook' ) { |
— | — | @@ -409,7 +425,7 @@ |
410 | 426 | 'src' => "$imagePath/disabled.png", |
411 | 427 | 'alt' => '', |
412 | 428 | 'width' => '16', |
413 | | - 'height'=> '16', |
| 429 | + 'height' => '16', |
414 | 430 | 'style' => 'vertical-align: text-bottom', |
415 | 431 | ) |
416 | 432 | ) |
— | — | @@ -426,7 +442,7 @@ |
427 | 443 | $onclick = "collectionCall('AddCategory', ['addcategory', wgTitle]); return false;"; |
428 | 444 | } else { |
429 | 445 | if ( $ajaxHint == 'addarticle' |
430 | | - || ($ajaxHint == '' && CollectionSession::findArticle( $ptext, $oldid ) == -1) ) { |
| 446 | + || ( $ajaxHint == '' && CollectionSession::findArticle( $ptext, $oldid ) == - 1 ) ) { |
431 | 447 | $id = 'coll-add_article'; |
432 | 448 | $icon = 'silk-add.png'; |
433 | 449 | $captionMsg = 'coll-add_this_page'; |
— | — | @@ -447,7 +463,7 @@ |
448 | 464 | |
449 | 465 | return $sk->link( |
450 | 466 | SpecialPage::getTitleFor( 'Book' ), |
451 | | - Xml::element('img', |
| 467 | + Xml::element( 'img', |
452 | 468 | array( |
453 | 469 | 'src' => "$imagePath/$icon", |
454 | 470 | 'alt' => '', |
— | — | @@ -476,7 +492,7 @@ |
477 | 493 | array( |
478 | 494 | 'style' => 'margin-left: 10px;', |
479 | 495 | ), |
480 | | - Xml::element('img', |
| 496 | + Xml::element( 'img', |
481 | 497 | array( |
482 | 498 | 'src' => "$imagePath/silk-book_open.png", |
483 | 499 | 'alt' => '', |
— | — | @@ -491,7 +507,7 @@ |
492 | 508 | } else { |
493 | 509 | return $sk->link( |
494 | 510 | SpecialPage::getTitleFor( 'Book' ), |
495 | | - Xml::element('img', |
| 511 | + Xml::element( 'img', |
496 | 512 | array( |
497 | 513 | 'src' => "$imagePath/silk-book_open.png", |
498 | 514 | 'alt' => '', |
— | — | @@ -523,7 +539,7 @@ |
524 | 540 | array( |
525 | 541 | 'style' => 'margin-left: 10px;', |
526 | 542 | ), |
527 | | - Xml::element('img', |
| 543 | + Xml::element( 'img', |
528 | 544 | array( |
529 | 545 | 'src' => "$imagePath/silk-wand.png", |
530 | 546 | 'alt' => '', |
— | — | @@ -537,7 +553,7 @@ |
538 | 554 | } else { |
539 | 555 | return $sk->link( |
540 | 556 | SpecialPage::getTitleFor( 'Book' ), |
541 | | - Xml::element('img', |
| 557 | + Xml::element( 'img', |
542 | 558 | array( |
543 | 559 | 'src' => "$imagePath/silk-wand.png", |
544 | 560 | 'alt' => '', |
Index: branches/wmf/1.16wmf4/extensions/Collection/Collection.session.php |
— | — | @@ -27,7 +27,7 @@ |
28 | 28 | } |
29 | 29 | |
30 | 30 | static function startSession() { |
31 | | - if( session_id() == '' ) { |
| 31 | + if ( session_id() == '' ) { |
32 | 32 | wfSetupSession(); |
33 | 33 | } |
34 | 34 | self::clearCollection(); |
— | — | @@ -78,20 +78,20 @@ |
79 | 79 | } |
80 | 80 | $count = 0; |
81 | 81 | foreach ( $_SESSION['wsCollection']['items'] as $item ) { |
82 | | - if ( $item['type'] == 'article') { |
| 82 | + if ( $item['type'] == 'article' ) { |
83 | 83 | $count++; |
84 | 84 | } |
85 | 85 | } |
86 | 86 | return $count; |
87 | 87 | } |
88 | 88 | |
89 | | - static function findArticle( $title, $oldid=0 ) { |
| 89 | + static function findArticle( $title, $oldid = 0 ) { |
90 | 90 | if ( !self::hasSession() ) { |
91 | | - return -1; |
| 91 | + return - 1; |
92 | 92 | } |
93 | 93 | |
94 | 94 | foreach ( $_SESSION['wsCollection']['items'] as $index => $item ) { |
95 | | - if ( $item['type'] == 'article' && $item['title'] == $title) { |
| 95 | + if ( $item['type'] == 'article' && $item['title'] == $title ) { |
96 | 96 | if ( $oldid ) { |
97 | 97 | if ( $item['revision'] == strval( $oldid ) ) { |
98 | 98 | return $index; |
— | — | @@ -103,20 +103,22 @@ |
104 | 104 | } |
105 | 105 | } |
106 | 106 | } |
107 | | - return -1; |
| 107 | + return - 1; |
108 | 108 | } |
109 | 109 | |
110 | 110 | static function purge() { |
111 | 111 | $coll = $_SESSION['wsCollection']; |
112 | 112 | $newitems = array(); |
113 | | - foreach ( $coll['items'] as $index => $item ) { |
114 | | - if ( $item['type'] == 'article' ) { |
115 | | - $t = Title::newFromText( $item['title'] ); |
116 | | - if ( $t->exists() ) { |
| 113 | + if ( isset( $coll['items'] ) ) { |
| 114 | + foreach ( $coll['items'] as $index => $item ) { |
| 115 | + if ( $item['type'] == 'article' ) { |
| 116 | + $t = Title::newFromText( $item['title'] ); |
| 117 | + if ( $t->exists() ) { |
| 118 | + $newitems[] = $item; |
| 119 | + } |
| 120 | + } else { |
117 | 121 | $newitems[] = $item; |
118 | 122 | } |
119 | | - } else { |
120 | | - $newitems[] = $item; |
121 | 123 | } |
122 | 124 | } |
123 | 125 | $coll['items'] = $newitems; |
— | — | @@ -128,7 +130,7 @@ |
129 | 131 | return $_SESSION['wsCollection']; |
130 | 132 | } |
131 | 133 | |
132 | | - static function setCollection($collection) { |
| 134 | + static function setCollection( $collection ) { |
133 | 135 | $_SESSION['wsCollection'] = $collection; |
134 | 136 | self::touchSession(); |
135 | 137 | } |
Index: branches/wmf/1.16wmf4/extensions/Collection/CollectionCore.i18n.php |
— | — | @@ -349,6 +349,8 @@ |
350 | 350 | 'coll-disable' => 'diweredekaat', |
351 | 351 | 'coll-book_creator_disable' => 'Diweredekaat ar saver levrioù', |
352 | 352 | 'coll-book_creator_disable_tooltip' => "Paouez d'ober gant ar saver levrioù", |
| 353 | + 'coll-add_linked_article' => 'Ouzhpennañ ar bajenn wiki liammet gant ho levr', |
| 354 | + 'coll-remove_linked_article' => "Tennañ ar bajenn wiki liammet d'ho levr", |
353 | 355 | 'coll-add_category' => "Ouzhpennañ ar rummad-mañ d'ho levr", |
354 | 356 | 'coll-add_category_tooltip' => "Ouzhpennañ an holl pajennoù wiki er rummad-mañ d'ho levr", |
355 | 357 | 'coll-add_this_page' => "Ouzhpennañ ar bajenn-mañ d'ho levr", |
— | — | @@ -1382,6 +1384,7 @@ |
1383 | 1385 | * @author Bennylin |
1384 | 1386 | * @author Irwangatot |
1385 | 1387 | * @author IvanLanin |
| 1388 | + * @author Iwan Novirion |
1386 | 1389 | * @author Rex |
1387 | 1390 | */ |
1388 | 1391 | $messages['id'] = array( |
— | — | @@ -1394,6 +1397,8 @@ |
1395 | 1398 | 'coll-disable' => 'matikan', |
1396 | 1399 | 'coll-book_creator_disable' => 'Pembuatan buku dinonaktifkan', |
1397 | 1400 | 'coll-book_creator_disable_tooltip' => 'Berhenti menggunakan pembuatan buku', |
| 1401 | + 'coll-add_linked_article' => 'Tambahkan pranala halaman wiki ke buku Anda', |
| 1402 | + 'coll-remove_linked_article' => 'Hapus pranala halaman wiki dari buku Anda', |
1398 | 1403 | 'coll-add_category' => 'Tambahkan kategori ini ke buku Anda', |
1399 | 1404 | 'coll-add_category_tooltip' => 'Tambahkan semua halaman wiki pada kategori ini ke buku Anda', |
1400 | 1405 | 'coll-add_this_page' => 'Tambahkan halaman ini ke buku Anda', |
— | — | @@ -1449,6 +1454,7 @@ |
1450 | 1455 | ); |
1451 | 1456 | |
1452 | 1457 | /** Italian (Italiano) |
| 1458 | + * @author Beta16 |
1453 | 1459 | * @author BrokenArrow |
1454 | 1460 | * @author Darth Kule |
1455 | 1461 | * @author Melos |
— | — | @@ -1464,6 +1470,8 @@ |
1465 | 1471 | 'coll-disable' => 'disattiva', |
1466 | 1472 | 'coll-book_creator_disable' => 'Disattiva il creatore di libri', |
1467 | 1473 | 'coll-book_creator_disable_tooltip' => 'Smetti di usare il creatore di libri', |
| 1474 | + 'coll-add_linked_article' => 'Aggiungi le pagine collegate a questa al tuo libro.', |
| 1475 | + 'coll-remove_linked_article' => 'Rimuovi le pagine collegate a questa dal tuo libro.', |
1468 | 1476 | 'coll-add_category' => 'Aggiungi questa categoria al tuo libro', |
1469 | 1477 | 'coll-add_category_tooltip' => 'Aggiungi tutte le pagine wiki di questa categoria al tuo libro', |
1470 | 1478 | 'coll-add_this_page' => 'Aggiungi questa pagina al tuo libro', |
— | — | @@ -1479,7 +1487,7 @@ |
1480 | 1488 | 'coll-load_collection_tooltip' => 'Carica questo libro come libro corrente', |
1481 | 1489 | 'coll-n_pages' => '$1 {{PLURAL:$1|pagina|pagine}}', |
1482 | 1490 | 'coll-printable_version_pdf' => 'Versione PDF', |
1483 | | - 'coll-remove_this_page' => 'Rimuovi questa pagina del tuo libro', |
| 1491 | + 'coll-remove_this_page' => 'Rimuovi questa pagina dal tuo libro', |
1484 | 1492 | 'coll-remove_page_tooltip' => 'Rimuovi la pagina wiki corrente dal tuo libro', |
1485 | 1493 | 'coll-show_collection' => 'Mostra libro', |
1486 | 1494 | 'coll-show_collection_tooltip' => 'Fai clic per modificare, scaricare o ordinare il tuo libro', |
— | — | @@ -1506,6 +1514,7 @@ |
1507 | 1515 | 'coll-disable' => '無効化', |
1508 | 1516 | 'coll-book_creator_disable' => 'ブッククリエーターを無効化', |
1509 | 1517 | 'coll-book_creator_disable_tooltip' => 'ブッククリエーターを使うのを止める', |
| 1518 | + 'coll-add_linked_article' => 'リンクされているウィキページをブックに追加する', |
1510 | 1519 | 'coll-remove_linked_article' => 'あなたの本からウィキページのリンクを削除', |
1511 | 1520 | 'coll-add_category' => 'このカテゴリを自分のブックに追加する', |
1512 | 1521 | 'coll-add_category_tooltip' => 'このカテゴリ中のすべてのページをあなたのブックに追加する', |
— | — | @@ -1610,6 +1619,13 @@ |
1611 | 1620 | 'coll-show_collection_tooltip' => 'ចុចដើម្បីកែប្រែ/ទាញយក/បញ្ជាទិញសៀវភៅរបស់អ្នក', |
1612 | 1621 | ); |
1613 | 1622 | |
| 1623 | +/** Kannada (ಕನ್ನಡ) |
| 1624 | + * @author Nayvik |
| 1625 | + */ |
| 1626 | +$messages['kn'] = array( |
| 1627 | + 'coll-help' => 'ಸಹಾಯ', |
| 1628 | +); |
| 1629 | + |
1614 | 1630 | /** Korean (한국어) |
1615 | 1631 | * @author Ilovesabbath |
1616 | 1632 | * @author Klutzy |
— | — | @@ -1617,6 +1633,7 @@ |
1618 | 1634 | * @author Yknok29 |
1619 | 1635 | */ |
1620 | 1636 | $messages['ko'] = array( |
| 1637 | + 'coll-print_export' => '인쇄/내보내기', |
1621 | 1638 | 'coll-create_a_book' => '책 만들기', |
1622 | 1639 | 'coll-download_as' => '$1로 다운로드', |
1623 | 1640 | 'coll-add_category' => '이 분류를 책에 추가하기', |
— | — | @@ -1646,7 +1663,7 @@ |
1647 | 1664 | 'coll-create_a_book' => 'Mek buk', |
1648 | 1665 | ); |
1649 | 1666 | |
1650 | | -/** Ripoarisch (Ripoarisch) |
| 1667 | +/** Colognian (Ripoarisch) |
1651 | 1668 | * @author Purodha |
1652 | 1669 | */ |
1653 | 1670 | $messages['ksh'] = array( |
— | — | @@ -1813,7 +1830,7 @@ |
1814 | 1831 | 'coll-book_creator_disable_tooltip' => 'പുസ്തക സൃഷ്ടി ഉപകരണം ഉപയോഗിക്കുന്നതു നിർത്തുക', |
1815 | 1832 | 'coll-add_linked_article' => 'താങ്കളുടെ പുസ്തകത്തിൽ കണ്ണിയുള്ള വിക്കിതാൾ കൂട്ടിച്ചേർക്കുക', |
1816 | 1833 | 'coll-remove_linked_article' => 'താങ്കളുടെ പുസ്തകത്തിൽനിന്നും കണ്ണിചേർക്കപ്പെട്ട വിക്കിതാൾ നീക്കംചെയ്യുക', |
1817 | | - 'coll-add_category' => 'താങ്കളുടെ പുസ്തകത്തിൽ ഈ വര്ഗ്ഗം ചേര്ക്കുക', |
| 1834 | + 'coll-add_category' => 'താങ്കളുടെ പുസ്തകത്തിൽ ഈ വർഗ്ഗം ചേർക്കുക', |
1818 | 1835 | 'coll-add_category_tooltip' => 'ഈ വർഗ്ഗത്തിലുള്ള എല്ലാ വിക്കി താളുകളും താങ്കളുടെ പുസ്തകത്തിലേയ്ക്ക് കൂട്ടിച്ചേർക്കുക', |
1819 | 1836 | 'coll-add_this_page' => 'ഈ താൾ താങ്കളുടെ പുസ്തകത്തിലേയ്ക്ക് കൂട്ടിച്ചേർക്കുക', |
1820 | 1837 | 'coll-add_page_tooltip' => 'ഇപ്പോഴത്തെ താൾ താങ്കളുടെ പുസ്തകത്തിലേയ്ക്ക് ചേർക്കുക', |
— | — | @@ -1894,7 +1911,9 @@ |
1895 | 1912 | * @author Botuzhaleny-sodamo |
1896 | 1913 | */ |
1897 | 1914 | $messages['myv'] = array( |
1898 | | - 'coll-add_category' => 'Поладомс категория', |
| 1915 | + 'coll-create_a_book' => 'Шкамс кинига', |
| 1916 | + 'coll-book_creator' => 'Кинигань шкиця', |
| 1917 | + 'coll-add_category' => 'Поладомс кинигазот те категориянть', |
1899 | 1918 | 'coll-bookscategory' => 'Кинигат', |
1900 | 1919 | 'coll-helppage' => 'Help:Кинигат', |
1901 | 1920 | ); |
— | — | @@ -2075,6 +2094,8 @@ |
2076 | 2095 | 'coll-disable' => 'desactivar', |
2077 | 2096 | 'coll-book_creator_disable' => 'Desactivar lo creator de libre', |
2078 | 2097 | 'coll-book_creator_disable_tooltip' => "Quitar d'utilizar lo creator de libre", |
| 2098 | + 'coll-add_linked_article' => 'Apondre la pagina wiki ligada a vòstre libre', |
| 2099 | + 'coll-remove_linked_article' => 'Levar la pagina ligada de vòstre libre', |
2079 | 2100 | 'coll-add_category' => 'Apondre una categoria a vòstre libre', |
2080 | 2101 | 'coll-add_category_tooltip' => "Apondre totes los articles d'aquesta categoria a vòstre libre", |
2081 | 2102 | 'coll-add_this_page' => 'Apondre aquesta pagina a vòstre libre', |
— | — | @@ -2929,6 +2950,8 @@ |
2930 | 2951 | 'coll-disable' => 'tắt', |
2931 | 2952 | 'coll-book_creator_disable' => 'Tắt bộ tạo sách', |
2932 | 2953 | 'coll-book_creator_disable_tooltip' => 'Ngừng sử dụng bộ tạo sách', |
| 2954 | + 'coll-add_linked_article' => 'Thêm trang wiki được liên kết vào quyển sách', |
| 2955 | + 'coll-remove_linked_article' => 'Bỏ trang wiki được liên kết khỏi quyển sách', |
2933 | 2956 | 'coll-add_category' => 'Thêm thể loại này vào cuốn sách', |
2934 | 2957 | 'coll-add_category_tooltip' => 'Thêm vào sách các trang wiki thuộc thể loại được liên kết', |
2935 | 2958 | 'coll-add_this_page' => 'Thêm trang này vào cuốn sách', |
— | — | @@ -2979,7 +3002,39 @@ |
2980 | 3003 | 'coll-help' => 'הילף', |
2981 | 3004 | ); |
2982 | 3005 | |
2983 | | -/** Yue (粵語) */ |
| 3006 | +/** Yoruba (Yorùbá) |
| 3007 | + * @author Demmy |
| 3008 | + */ |
| 3009 | +$messages['yo'] = array( |
| 3010 | + 'coll-print_export' => 'Ìtẹ́síìwé/ìkójáde', |
| 3011 | + 'coll-create_a_book' => 'Dá ìwé', |
| 3012 | + 'coll-create_a_book_tooltip' => 'Dá ìwé tàbí ìkójọ ojúewé', |
| 3013 | + 'coll-book_creator' => 'Olùdá ìwé', |
| 3014 | + 'coll-download_as' => 'Rùsílẹ̀ gẹ́gẹ́ bíi $1', |
| 3015 | + 'coll-download_as_tooltip' => 'Rùsílẹ̀ àtẹ́jáde $1 ojúewé wiki yìí', |
| 3016 | + 'coll-disable' => 'ìdálẹ́kun', |
| 3017 | + 'coll-book_creator_disable' => 'Ìdálẹ́kun olùdá ìwé', |
| 3018 | + 'coll-book_creator_disable_tooltip' => 'Jáwọ́ lílo olùdá ìwé', |
| 3019 | + 'coll-add_linked_article' => 'Ṣàfikún ojúewé wiki jíjápọ̀ mọ́ ìwé yín', |
| 3020 | + 'coll-add_category' => 'Ṣàfikún ẹ̀ka yìí mọ́ ìwé yín', |
| 3021 | + 'coll-add_this_page' => 'Ṣàfikún ojúewé yìí mọ́ ìwé yín', |
| 3022 | + 'coll-bookscategory' => 'Àwọn ìwé', |
| 3023 | + 'coll-help' => 'Ìrànwọ́', |
| 3024 | + 'coll-help_tooltip' => 'Àfihàn ìránwọ́ nípa dídá àwọn ìwé', |
| 3025 | + 'coll-helppage' => 'Help:Àwọn ìwé', |
| 3026 | + 'coll-load_collection' => 'Gbé ìwé síta', |
| 3027 | + 'coll-load_collection_tooltip' => 'Gbé ìwé yìí síta bíi ìwé yín lọ́wọ́lọ́wọ́', |
| 3028 | + 'coll-n_pages' => '{{PLURAL:$1|ojúewé|àwọn ojúewé}} $1', |
| 3029 | + 'coll-printable_version_pdf' => 'Àtẹ̀jáde PDF', |
| 3030 | + 'coll-remove_this_page' => 'Ẹ yọ ojúewé yìí kúrò nínú ìwé yín', |
| 3031 | + 'coll-remove_page_tooltip' => 'Ẹ yọ ojúewé wiki lọ́wọ́lọ́wó yìí kúrò nínú ìwé yín', |
| 3032 | + 'coll-show_collection' => 'Àfihàn ìwé', |
| 3033 | + 'coll-not_addable' => 'Ojúewé yìí kò ṣe é ṣàfikún', |
| 3034 | + 'coll-make_suggestions' => 'Ìdámọ́ràn ojúewé', |
| 3035 | + 'coll-make_suggestions_tooltip' => 'Àfihàn àwọn ìdámọ̀ràn nípa àwọn ojúewé inú ìwé yín', |
| 3036 | +); |
| 3037 | + |
| 3038 | +/** Cantonese (粵語) */ |
2984 | 3039 | $messages['yue'] = array( |
2985 | 3040 | 'coll-create_a_book' => '整一本書', |
2986 | 3041 | 'coll-download_as' => '下載做$1', |
Index: branches/wmf/1.16wmf4/extensions/Collection/js/json2.js |
— | — | @@ -1,273 +0,0 @@ |
2 | | -/* |
3 | | - json2.js |
4 | | - 2008-01-17 |
5 | | - |
6 | | - Public Domain |
7 | | - |
8 | | - No warranty expressed or implied. Use at your own risk. |
9 | | - |
10 | | - See http://www.JSON.org/js.html |
11 | | - |
12 | | - This file creates a global JSON object containing two methods: |
13 | | - |
14 | | - JSON.stringify(value, whitelist) |
15 | | - value any JavaScript value, usually an object or array. |
16 | | - |
17 | | - whitelist an optional array prameter that determines how object |
18 | | - values are stringified. |
19 | | - |
20 | | - This method produces a JSON text from a JavaScript value. |
21 | | - There are three possible ways to stringify an object, depending |
22 | | - on the optional whitelist parameter. |
23 | | - |
24 | | - If an object has a toJSON method, then the toJSON() method will be |
25 | | - called. The value returned from the toJSON method will be |
26 | | - stringified. |
27 | | - |
28 | | - Otherwise, if the optional whitelist parameter is an array, then |
29 | | - the elements of the array will be used to select members of the |
30 | | - object for stringification. |
31 | | - |
32 | | - Otherwise, if there is no whitelist parameter, then all of the |
33 | | - members of the object will be stringified. |
34 | | - |
35 | | - Values that do not have JSON representaions, such as undefined or |
36 | | - functions, will not be serialized. Such values in objects will be |
37 | | - dropped; in arrays will be replaced with null. |
38 | | - JSON.stringify(undefined) returns undefined. Dates will be |
39 | | - stringified as quoted ISO dates. |
40 | | - |
41 | | - Example: |
42 | | - |
43 | | - var text = JSON.stringify(['e', {pluribus: 'unum'}]); |
44 | | - // text is '["e",{"pluribus":"unum"}]' |
45 | | - |
46 | | - JSON.parse(text, filter) |
47 | | - This method parses a JSON text to produce an object or |
48 | | - array. It can throw a SyntaxError exception. |
49 | | - |
50 | | - The optional filter parameter is a function that can filter and |
51 | | - transform the results. It receives each of the keys and values, and |
52 | | - its return value is used instead of the original value. If it |
53 | | - returns what it received, then structure is not modified. If it |
54 | | - returns undefined then the member is deleted. |
55 | | - |
56 | | - Example: |
57 | | - |
58 | | - // Parse the text. If a key contains the string 'date' then |
59 | | - // convert the value to a date. |
60 | | - |
61 | | - myData = JSON.parse(text, function (key, value) { |
62 | | - return key.indexOf('date') >= 0 ? new Date(value) : value; |
63 | | - }); |
64 | | - |
65 | | - This is a reference implementation. You are free to copy, modify, or |
66 | | - redistribute. |
67 | | - |
68 | | - Use your own copy. It is extremely unwise to load third party |
69 | | - code into your pages. |
70 | | -*/ |
71 | | - |
72 | | -/*jslint evil: true */ |
73 | | - |
74 | | -/*global JSON */ |
75 | | - |
76 | | -/*members "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, |
77 | | - charCodeAt, floor, getUTCDate, getUTCFullYear, getUTCHours, |
78 | | - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, length, |
79 | | - parse, propertyIsEnumerable, prototype, push, replace, stringify, test, |
80 | | - toJSON, toString |
81 | | -*/ |
82 | | - |
83 | | -if (!this.JSON) { |
84 | | - |
85 | | - JSON = function () { |
86 | | - |
87 | | - function f(n) { // Format integers to have at least two digits. |
88 | | - return n < 10 ? '0' + n : n; |
89 | | - } |
90 | | - |
91 | | - Date.prototype.toJSON = function () { |
92 | | - |
93 | | -// Eventually, this method will be based on the date.toISOString method. |
94 | | - |
95 | | - return this.getUTCFullYear() + '-' + |
96 | | - f(this.getUTCMonth() + 1) + '-' + |
97 | | - f(this.getUTCDate()) + 'T' + |
98 | | - f(this.getUTCHours()) + ':' + |
99 | | - f(this.getUTCMinutes()) + ':' + |
100 | | - f(this.getUTCSeconds()) + 'Z'; |
101 | | - }; |
102 | | - |
103 | | - |
104 | | - var m = { // table of character substitutions |
105 | | - '\b': '\\b', |
106 | | - '\t': '\\t', |
107 | | - '\n': '\\n', |
108 | | - '\f': '\\f', |
109 | | - '\r': '\\r', |
110 | | - '"' : '\\"', |
111 | | - '\\': '\\\\' |
112 | | - }; |
113 | | - |
114 | | - function stringify(value, whitelist) { |
115 | | - var a, // The array holding the partial texts. |
116 | | - i, // The loop counter. |
117 | | - k, // The member key. |
118 | | - l, // Length. |
119 | | - r = /["\\\x00-\x1f\x7f-\x9f]/g, |
120 | | - v; // The member value. |
121 | | - |
122 | | - switch (typeof value) { |
123 | | - case 'string': |
124 | | - |
125 | | -// If the string contains no control characters, no quote characters, and no |
126 | | -// backslash characters, then we can safely slap some quotes around it. |
127 | | -// Otherwise we must also replace the offending characters with safe sequences. |
128 | | - |
129 | | - return r.test(value) ? |
130 | | - '"' + value.replace(r, function (a) { |
131 | | - var c = m[a]; |
132 | | - if (c) { |
133 | | - return c; |
134 | | - } |
135 | | - c = a.charCodeAt(); |
136 | | - return '\\u00' + Math.floor(c / 16).toString(16) + |
137 | | - (c % 16).toString(16); |
138 | | - }) + '"' : |
139 | | - '"' + value + '"'; |
140 | | - |
141 | | - case 'number': |
142 | | - |
143 | | -// JSON numbers must be finite. Encode non-finite numbers as null. |
144 | | - |
145 | | - return isFinite(value) ? String(value) : 'null'; |
146 | | - |
147 | | - case 'boolean': |
148 | | - case 'null': |
149 | | - return String(value); |
150 | | - |
151 | | - case 'object': |
152 | | - |
153 | | -// Due to a specification blunder in ECMAScript, |
154 | | -// typeof null is 'object', so watch out for that case. |
155 | | - |
156 | | - if (!value) { |
157 | | - return 'null'; |
158 | | - } |
159 | | - |
160 | | -// If the object has a toJSON method, call it, and stringify the result. |
161 | | - |
162 | | - if (typeof value.toJSON === 'function') { |
163 | | - return stringify(value.toJSON()); |
164 | | - } |
165 | | - a = []; |
166 | | - if (typeof value.length === 'number' && |
167 | | - !(value.propertyIsEnumerable('length'))) { |
168 | | - |
169 | | -// The object is an array. Stringify every element. Use null as a placeholder |
170 | | -// for non-JSON values. |
171 | | - |
172 | | - l = value.length; |
173 | | - for (i = 0; i < l; i += 1) { |
174 | | - a.push(stringify(value[i], whitelist) || 'null'); |
175 | | - } |
176 | | - |
177 | | -// Join all of the elements together and wrap them in brackets. |
178 | | - |
179 | | - return '[' + a.join(',') + ']'; |
180 | | - } |
181 | | - if (whitelist) { |
182 | | - |
183 | | -// If a whitelist (array of keys) is provided, use it to select the components |
184 | | -// of the object. |
185 | | - |
186 | | - l = whitelist.length; |
187 | | - for (i = 0; i < l; i += 1) { |
188 | | - k = whitelist[i]; |
189 | | - if (typeof k === 'string') { |
190 | | - v = stringify(value[k], whitelist); |
191 | | - if (v) { |
192 | | - a.push(stringify(k) + ':' + v); |
193 | | - } |
194 | | - } |
195 | | - } |
196 | | - } else { |
197 | | - |
198 | | -// Otherwise, iterate through all of the keys in the object. |
199 | | - |
200 | | - for (k in value) { |
201 | | - if (typeof k === 'string') { |
202 | | - v = stringify(value[k], whitelist); |
203 | | - if (v) { |
204 | | - a.push(stringify(k) + ':' + v); |
205 | | - } |
206 | | - } |
207 | | - } |
208 | | - } |
209 | | - |
210 | | -// Join all of the member texts together and wrap them in braces. |
211 | | - |
212 | | - return '{' + a.join(',') + '}'; |
213 | | - } |
214 | | - } |
215 | | - |
216 | | - return { |
217 | | - stringify: stringify, |
218 | | - parse: function (text, filter) { |
219 | | - var j; |
220 | | - |
221 | | - function walk(k, v) { |
222 | | - var i, n; |
223 | | - if (v && typeof v === 'object') { |
224 | | - for (i in v) { |
225 | | - if (Object.prototype.hasOwnProperty.apply(v, [i])) { |
226 | | - n = walk(i, v[i]); |
227 | | - if (n !== undefined) { |
228 | | - v[i] = n; |
229 | | - } |
230 | | - } |
231 | | - } |
232 | | - } |
233 | | - return filter(k, v); |
234 | | - } |
235 | | - |
236 | | - |
237 | | -// Parsing happens in three stages. In the first stage, we run the text against |
238 | | -// regular expressions that look for non-JSON patterns. We are especially |
239 | | -// concerned with '()' and 'new' because they can cause invocation, and '=' |
240 | | -// because it can cause mutation. But just to be safe, we want to reject all |
241 | | -// unexpected forms. |
242 | | - |
243 | | -// We split the first stage into 4 regexp operations in order to work around |
244 | | -// crippling inefficiencies in IE's and Safari's regexp engines. First we |
245 | | -// replace all backslash pairs with '@' (a non-JSON character). Second, we |
246 | | -// replace all simple value tokens with ']' characters. Third, we delete all |
247 | | -// open brackets that follow a colon or comma or that begin the text. Finally, |
248 | | -// we look to see that the remaining characters are only whitespace or ']' or |
249 | | -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. |
250 | | - |
251 | | - if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@'). |
252 | | -replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). |
253 | | -replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { |
254 | | - |
255 | | -// In the second stage we use the eval function to compile the text into a |
256 | | -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity |
257 | | -// in JavaScript: it can begin a block or an object literal. We wrap the text |
258 | | -// in parens to eliminate the ambiguity. |
259 | | - |
260 | | - j = eval('(' + text + ')'); |
261 | | - |
262 | | -// In the optional third stage, we recursively walk the new structure, passing |
263 | | -// each name/value pair to a filter function for possible transformation. |
264 | | - |
265 | | - return typeof filter === 'function' ? walk('', j) : j; |
266 | | - } |
267 | | - |
268 | | -// If the text is not JSON parseable, then a SyntaxError is thrown. |
269 | | - |
270 | | - throw new SyntaxError('parseJSON'); |
271 | | - } |
272 | | - }; |
273 | | - }(); |
274 | | -} |
Index: branches/wmf/1.16wmf4/extensions/Collection/js/jquery.json.js |
— | — | @@ -0,0 +1,178 @@ |
| 2 | +/* |
| 3 | + * jQuery JSON Plugin |
| 4 | + * version: 2.1 (2009-08-14) |
| 5 | + * |
| 6 | + * This document is licensed as free software under the terms of the |
| 7 | + * MIT License: http://www.opensource.org/licenses/mit-license.php |
| 8 | + * |
| 9 | + * Brantley Harris wrote this plugin. It is based somewhat on the JSON.org |
| 10 | + * website's http://www.json.org/json2.js, which proclaims: |
| 11 | + * "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that |
| 12 | + * I uphold. |
| 13 | + * |
| 14 | + * It is also influenced heavily by MochiKit's serializeJSON, which is |
| 15 | + * copyrighted 2005 by Bob Ippolito. |
| 16 | + */ |
| 17 | + |
| 18 | +(function($) { |
| 19 | + /** jQuery.toJSON( json-serializble ) |
| 20 | + Converts the given argument into a JSON respresentation. |
| 21 | + |
| 22 | + If an object has a "toJSON" function, that will be used to get the representation. |
| 23 | + Non-integer/string keys are skipped in the object, as are keys that point to a function. |
| 24 | + |
| 25 | + json-serializble: |
| 26 | + The *thing* to be converted. |
| 27 | + **/ |
| 28 | + $.toJSON = function(o) |
| 29 | + { |
| 30 | + if (typeof(JSON) == 'object' && JSON.stringify) |
| 31 | + return JSON.stringify(o); |
| 32 | + |
| 33 | + var type = typeof(o); |
| 34 | + |
| 35 | + if (o === null) |
| 36 | + return "null"; |
| 37 | + |
| 38 | + if (type == "undefined") |
| 39 | + return undefined; |
| 40 | + |
| 41 | + if (type == "number" || type == "boolean") |
| 42 | + return o + ""; |
| 43 | + |
| 44 | + if (type == "string") |
| 45 | + return $.quoteString(o); |
| 46 | + |
| 47 | + if (type == 'object') |
| 48 | + { |
| 49 | + if (typeof o.toJSON == "function") |
| 50 | + return $.toJSON( o.toJSON() ); |
| 51 | + |
| 52 | + if (o.constructor === Date) |
| 53 | + { |
| 54 | + var month = o.getUTCMonth() + 1; |
| 55 | + if (month < 10) month = '0' + month; |
| 56 | + |
| 57 | + var day = o.getUTCDate(); |
| 58 | + if (day < 10) day = '0' + day; |
| 59 | + |
| 60 | + var year = o.getUTCFullYear(); |
| 61 | + |
| 62 | + var hours = o.getUTCHours(); |
| 63 | + if (hours < 10) hours = '0' + hours; |
| 64 | + |
| 65 | + var minutes = o.getUTCMinutes(); |
| 66 | + if (minutes < 10) minutes = '0' + minutes; |
| 67 | + |
| 68 | + var seconds = o.getUTCSeconds(); |
| 69 | + if (seconds < 10) seconds = '0' + seconds; |
| 70 | + |
| 71 | + var milli = o.getUTCMilliseconds(); |
| 72 | + if (milli < 100) milli = '0' + milli; |
| 73 | + if (milli < 10) milli = '0' + milli; |
| 74 | + |
| 75 | + return '"' + year + '-' + month + '-' + day + 'T' + |
| 76 | + hours + ':' + minutes + ':' + seconds + |
| 77 | + '.' + milli + 'Z"'; |
| 78 | + } |
| 79 | + |
| 80 | + if (o.constructor === Array) |
| 81 | + { |
| 82 | + var ret = []; |
| 83 | + for (var i = 0; i < o.length; i++) |
| 84 | + ret.push( $.toJSON(o[i]) || "null" ); |
| 85 | + |
| 86 | + return "[" + ret.join(",") + "]"; |
| 87 | + } |
| 88 | + |
| 89 | + var pairs = []; |
| 90 | + for (var k in o) { |
| 91 | + var name; |
| 92 | + var type = typeof k; |
| 93 | + |
| 94 | + if (type == "number") |
| 95 | + name = '"' + k + '"'; |
| 96 | + else if (type == "string") |
| 97 | + name = $.quoteString(k); |
| 98 | + else |
| 99 | + continue; //skip non-string or number keys |
| 100 | + |
| 101 | + if (typeof o[k] == "function") |
| 102 | + continue; //skip pairs where the value is a function. |
| 103 | + |
| 104 | + var val = $.toJSON(o[k]); |
| 105 | + |
| 106 | + pairs.push(name + ":" + val); |
| 107 | + } |
| 108 | + |
| 109 | + return "{" + pairs.join(", ") + "}"; |
| 110 | + } |
| 111 | + }; |
| 112 | + |
| 113 | + /** jQuery.evalJSON(src) |
| 114 | + Evaluates a given piece of json source. |
| 115 | + **/ |
| 116 | + $.evalJSON = function(src) |
| 117 | + { |
| 118 | + if (typeof(JSON) == 'object' && JSON.parse) |
| 119 | + return JSON.parse(src); |
| 120 | + return eval("(" + src + ")"); |
| 121 | + }; |
| 122 | + |
| 123 | + /** jQuery.secureEvalJSON(src) |
| 124 | + Evals JSON in a way that is *more* secure. |
| 125 | + **/ |
| 126 | + $.secureEvalJSON = function(src) |
| 127 | + { |
| 128 | + if (typeof(JSON) == 'object' && JSON.parse) |
| 129 | + return JSON.parse(src); |
| 130 | + |
| 131 | + var filtered = src; |
| 132 | + filtered = filtered.replace(/\\["\\\/bfnrtu]/g, '@'); |
| 133 | + filtered = filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'); |
| 134 | + filtered = filtered.replace(/(?:^|:|,)(?:\s*\[)+/g, ''); |
| 135 | + |
| 136 | + if (/^[\],:{}\s]*$/.test(filtered)) |
| 137 | + return eval("(" + src + ")"); |
| 138 | + else |
| 139 | + throw new SyntaxError("Error parsing JSON, source is not valid."); |
| 140 | + }; |
| 141 | + |
| 142 | + /** jQuery.quoteString(string) |
| 143 | + Returns a string-repr of a string, escaping quotes intelligently. |
| 144 | + Mostly a support function for toJSON. |
| 145 | + |
| 146 | + Examples: |
| 147 | + >>> jQuery.quoteString("apple") |
| 148 | + "apple" |
| 149 | + |
| 150 | + >>> jQuery.quoteString('"Where are we going?", she asked.') |
| 151 | + "\"Where are we going?\", she asked." |
| 152 | + **/ |
| 153 | + $.quoteString = function(string) |
| 154 | + { |
| 155 | + if (string.match(_escapeable)) |
| 156 | + { |
| 157 | + return '"' + string.replace(_escapeable, function (a) |
| 158 | + { |
| 159 | + var c = _meta[a]; |
| 160 | + if (typeof c === 'string') return c; |
| 161 | + c = a.charCodeAt(); |
| 162 | + return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16); |
| 163 | + }) + '"'; |
| 164 | + } |
| 165 | + return '"' + string + '"'; |
| 166 | + }; |
| 167 | + |
| 168 | + var _escapeable = /["\\\x00-\x1f\x7f-\x9f]/g; |
| 169 | + |
| 170 | + var _meta = { |
| 171 | + '\b': '\\b', |
| 172 | + '\t': '\\t', |
| 173 | + '\n': '\\n', |
| 174 | + '\f': '\\f', |
| 175 | + '\r': '\\r', |
| 176 | + '"' : '\\"', |
| 177 | + '\\': '\\\\' |
| 178 | + }; |
| 179 | +})(jQuery); |
Property changes on: branches/wmf/1.16wmf4/extensions/Collection/js/jquery.json.js |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 180 | + native |
Index: branches/wmf/1.16wmf4/extensions/Collection/js/bookcreator.js |
— | — | @@ -21,23 +21,38 @@ |
22 | 22 | |
23 | 23 | (function($) { |
24 | 24 | |
| 25 | +var script_url = wgServer + ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript); |
| 26 | + |
| 27 | +function save_collection(collection) { |
| 28 | + $.jStorage.set('collection', collection); |
| 29 | +} |
| 30 | + |
| 31 | +window.wfCollectionSave = save_collection; |
| 32 | + |
25 | 33 | function refreshBookCreatorBox(hint, oldid) { |
26 | | - sajax_request_type = 'GET'; |
27 | | - sajax_do_call('wfAjaxCollectionGetBookCreatorBoxContent', [hint, oldid], function(xhr) { |
28 | | - $('#coll-book_creator_box').html(xhr.responseText); |
29 | | - }); |
| 34 | + $.getJSON(script_url, { |
| 35 | + 'action': 'ajax', |
| 36 | + 'rs': 'wfAjaxCollectionGetBookCreatorBoxContent', |
| 37 | + 'rsargs[]': [hint, oldid] |
| 38 | + }, function(result) { |
| 39 | + $('#coll-book_creator_box').html(result.html); |
| 40 | + }); |
30 | 41 | } |
31 | 42 | |
32 | 43 | function collectionCall(func, args) { |
33 | 44 | var hint = args.shift(); |
34 | | - sajax_request_type = 'POST'; |
35 | | - sajax_do_call('wfAjaxCollection' + func, args, function() { |
| 45 | + $.post(script_url, { |
| 46 | + 'action': 'ajax', |
| 47 | + 'rs': 'wfAjaxCollection' + func, |
| 48 | + 'rsargs[]': args |
| 49 | + }, function(result) { |
36 | 50 | var oldid = null; |
37 | 51 | if (args.length == 3) { |
38 | 52 | oldid = args[2]; |
39 | 53 | } |
40 | 54 | refreshBookCreatorBox(hint, oldid); |
41 | | - }); |
| 55 | + save_collection(result.collection); |
| 56 | + }, 'json'); |
42 | 57 | } |
43 | 58 | |
44 | 59 | window.collectionCall = collectionCall; // public |
— | — | @@ -49,7 +64,6 @@ |
50 | 65 | var visible = false; |
51 | 66 | var show_soon_timeout = null; |
52 | 67 | var get_data_xhr = null; |
53 | | -var script_url = wgServer + ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript); |
54 | 68 | var current_link = null; |
55 | 69 | var title = null; |
56 | 70 | |
— | — | @@ -66,10 +80,11 @@ |
67 | 81 | 'action': 'ajax', |
68 | 82 | 'rs': 'wfAjaxCollection' + action.charAt(0).toUpperCase() + action.slice(1) + 'Article', |
69 | 83 | 'rsargs[]': [0, title, ''] |
70 | | - }, function() { |
| 84 | + }, function(result) { |
71 | 85 | hide(); |
72 | 86 | refreshBookCreatorBox(null, null); |
73 | | - }); |
| 87 | + save_collection(result.collection); |
| 88 | + }, 'json'); |
74 | 89 | } |
75 | 90 | |
76 | 91 | function show(link) { |
Index: branches/wmf/1.16wmf4/extensions/Collection/js/collection.js |
— | — | @@ -19,10 +19,8 @@ |
20 | 20 | * http://www.gnu.org/copyleft/gpl.html |
21 | 21 | */ |
22 | 22 | |
23 | | -(function() { |
| 23 | +(function($) { |
24 | 24 | |
25 | | -var jQuery = collection_jQuery; |
26 | | - |
27 | 25 | /******************************************************************************/ |
28 | 26 | |
29 | 27 | var requiredVersion = '1.4'; |
— | — | @@ -45,20 +43,28 @@ |
46 | 44 | return txt; |
47 | 45 | } |
48 | 46 | |
| 47 | +function req(func, args, callback) { |
| 48 | + $.post(script_url, { |
| 49 | + 'action': 'ajax', |
| 50 | + 'rs': 'wfAjaxCollection' + func, |
| 51 | + 'rsargs[]': args |
| 52 | + }, callback, 'json'); |
| 53 | +} |
| 54 | + |
49 | 55 | var script_url = wgServer + |
50 | 56 | ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript); |
51 | 57 | |
52 | 58 | /******************************************************************************/ |
53 | 59 | |
54 | 60 | function getMWServeStatus() { |
55 | | - jQuery.getJSON(script_url, { |
| 61 | + $.getJSON(script_url, { |
56 | 62 | 'action': 'ajax', |
57 | 63 | 'rs': 'wfAjaxGetMWServeStatus', |
58 | 64 | 'rsargs[]': [collection_id, writer] |
59 | 65 | }, function(result) { |
60 | 66 | if (result.state == 'progress' ) { |
61 | 67 | if ( result.status.progress ) { |
62 | | - jQuery('#renderingProgress').html('' + result.status.progress); |
| 68 | + $('#renderingProgress').html('' + result.status.progress); |
63 | 69 | } |
64 | 70 | if (result.status.status) { |
65 | 71 | var status = result.status.status; |
— | — | @@ -67,7 +73,7 @@ |
68 | 74 | } else if (result.status.page) { |
69 | 75 | status += gettext('#renderingPage', result.status.page); |
70 | 76 | } |
71 | | - jQuery('#renderingStatus').html(gettext('#renderingStatusText', status)); |
| 77 | + $('#renderingStatus').html(gettext('#renderingStatusText', status)); |
72 | 78 | } |
73 | 79 | setTimeout(getMWServeStatus, 500); |
74 | 80 | } else { |
— | — | @@ -80,13 +86,12 @@ |
81 | 87 | |
82 | 88 | function clear_collection() { |
83 | 89 | if (confirm(gettext('#clearCollectionConfirmText'))) { |
84 | | - sajax_request_type = "POST"; |
85 | | - sajax_do_call('wfAjaxCollectionClear', |
| 90 | + req('Clear', |
86 | 91 | [], |
87 | | - function(xhr) { |
88 | | - refresh_list(xhr); |
89 | | - sajax_do_call('wfAjaxCollectionGetBookCreatorBoxContent', ['showbook', null], function(xhr2) { |
90 | | - jQuery('#coll-book_creator_box').html(xhr2.responseText); |
| 92 | + function(result) { |
| 93 | + refresh_list(result); |
| 94 | + req('GetBookCreatorBoxContent', ['showbook', null], function(result2) { |
| 95 | + $('#coll-book_creator_box').html(result2.html); |
91 | 96 | }); |
92 | 97 | }); |
93 | 98 | } |
— | — | @@ -96,10 +101,7 @@ |
97 | 102 | function create_chapter() { |
98 | 103 | var name = prompt(gettext('#newChapterText')); |
99 | 104 | if (name) { |
100 | | - sajax_request_type = "POST"; |
101 | | - sajax_do_call('wfAjaxCollectionAddChapter', |
102 | | - [name], |
103 | | - refresh_list); |
| 105 | + req('AddChapter', [name], refresh_list); |
104 | 106 | } |
105 | 107 | return false; |
106 | 108 | } |
— | — | @@ -107,109 +109,105 @@ |
108 | 110 | function rename_chapter(index, old_name) { |
109 | 111 | var new_name = prompt(gettext('#renameChapterText'), old_name); |
110 | 112 | if (new_name) { |
111 | | - sajax_request_type = "POST"; |
112 | | - sajax_do_call('wfAjaxCollectionRenameChapter', |
113 | | - [index, new_name], |
114 | | - refresh_list); |
| 113 | + req('RenameChapter', [index, new_name], refresh_list); |
115 | 114 | } |
116 | 115 | return false; |
117 | 116 | } |
118 | 117 | |
119 | 118 | function remove_item(index) { |
120 | | - sajax_request_type = "POST"; |
121 | | - sajax_do_call('wfAjaxCollectionRemoveItem', |
| 119 | + req('RemoveItem', |
122 | 120 | [index], |
123 | | - function(xhr) { |
124 | | - refresh_list(xhr); |
125 | | - sajax_do_call('wfAjaxCollectionGetBookCreatorBoxContent', ['showbook', null], function(xhr2) { |
126 | | - jQuery('#coll-book_creator_box').html(xhr2.responseText); |
| 121 | + function(result) { |
| 122 | + refresh_list(result); |
| 123 | + req('GetBookCreatorBoxContent', ['showbook', null], function(result2) { |
| 124 | + $('#coll-book_creator_box').html(result2.html); |
127 | 125 | }); |
128 | 126 | }); |
129 | 127 | return false; |
130 | 128 | } |
131 | 129 | |
132 | 130 | function set_titles() { |
133 | | - sajax_request_type = "POST"; |
134 | | - sajax_do_call('wfAjaxCollectionSetTitles', |
135 | | - [jQuery('#titleInput').val(), jQuery('#subtitleInput').val()], function() {}); |
| 131 | + req('SetTitles', [$('#titleInput').val(), $('#subtitleInput').val()], function(result) { |
| 132 | + wfCollectionSave(result.collection); |
| 133 | + }); |
136 | 134 | return false; |
137 | 135 | } |
138 | 136 | |
139 | 137 | function set_sorting(items_string) { |
140 | | - sajax_request_type = "POST"; |
141 | | - sajax_do_call('wfAjaxCollectionSetSorting', [items_string], refresh_list); |
| 138 | + req('SetSorting', [items_string], refresh_list); |
142 | 139 | return false; |
143 | 140 | } |
144 | 141 | |
145 | 142 | function update_save_button() { |
146 | | - if (!jQuery('#saveButton').length) { |
| 143 | + if (!$('#saveButton').length) { |
147 | 144 | return; |
148 | 145 | } |
149 | | - if (jQuery('#collectionList .article').length == 0) { |
150 | | - jQuery('#saveButton').attr('disabled', 'disabled'); |
| 146 | + if ($('#collectionList .article').length == 0) { |
| 147 | + $('#saveButton').attr('disabled', 'disabled'); |
151 | 148 | return; |
152 | 149 | } |
153 | | - if (!jQuery('#communityCollTitle').length || jQuery('#personalCollType:checked').val()) { |
154 | | - jQuery('#personalCollTitle').attr('disabled', ''); |
155 | | - jQuery('#communityCollTitle').attr('disabled', 'disabled'); |
156 | | - if (!jQuery.trim(jQuery('#personalCollTitle').val())) { |
157 | | - jQuery('#saveButton').attr('disabled', 'disabled'); |
| 150 | + if (!$('#communityCollTitle').length || $('#personalCollType:checked').val()) { |
| 151 | + $('#personalCollTitle').attr('disabled', ''); |
| 152 | + $('#communityCollTitle').attr('disabled', 'disabled'); |
| 153 | + if (!$.trim($('#personalCollTitle').val())) { |
| 154 | + $('#saveButton').attr('disabled', 'disabled'); |
158 | 155 | return; |
159 | 156 | } |
160 | | - } else if (!jQuery('#personalCollTitle').length || jQuery('#communityCollType:checked').val()) { |
161 | | - jQuery('#communityCollTitle').attr('disabled', ''); |
162 | | - jQuery('#personalCollTitle').attr('disabled', 'disabled'); |
163 | | - if (!jQuery.trim(jQuery('#communityCollTitle').val())) { |
164 | | - jQuery('#saveButton').attr('disabled', 'disabled'); |
| 157 | + } else if (!$('#personalCollTitle').length || $('#communityCollType:checked').val()) { |
| 158 | + $('#communityCollTitle').attr('disabled', ''); |
| 159 | + $('#personalCollTitle').attr('disabled', 'disabled'); |
| 160 | + if (!$.trim($('#communityCollTitle').val())) { |
| 161 | + $('#saveButton').attr('disabled', 'disabled'); |
165 | 162 | return; |
166 | 163 | } |
167 | 164 | } |
168 | | - jQuery('#saveButton').attr('disabled', ''); |
| 165 | + $('#saveButton').attr('disabled', ''); |
169 | 166 | } |
170 | 167 | |
171 | 168 | function make_sortable() { |
172 | | - jQuery('#collectionList').sortable({ |
| 169 | + $('#collectionList').sortable({ |
173 | 170 | axis: 'y', |
174 | 171 | update: function(evt, ui) { |
175 | | - set_sorting(jQuery('#collectionList').sortable('serialize')); |
| 172 | + set_sorting($('#collectionList').sortable('serialize')); |
176 | 173 | } |
177 | 174 | }); |
178 | | - jQuery('#collectionList .sortableitem').css('cursor', 'move'); |
| 175 | + $('#collectionList .sortableitem').css('cursor', 'move'); |
179 | 176 | } |
180 | 177 | |
181 | | -function refresh_list(xhr) { |
182 | | - jQuery('#collectionListContainer').html(xhr.responseText); |
183 | | - jQuery('.makeVisible').css('display', 'inline'); |
| 178 | +function refresh_list(data) { |
| 179 | + wfCollectionSave(data.collection); |
| 180 | + $('#collectionListContainer').html(data.html); |
| 181 | + $('.makeVisible').css('display', 'inline'); |
184 | 182 | make_sortable(); |
185 | | - if (jQuery('#collectionList .article').length == 0) { |
186 | | - jQuery('#downloadButton').attr('disabled', 'disabled'); |
187 | | - jQuery('input.order').attr('disabled', 'disabled'); |
| 183 | + if ($('#collectionList .article').length == 0) { |
| 184 | + $('#downloadButton').attr('disabled', 'disabled'); |
| 185 | + $('input.order').attr('disabled', 'disabled'); |
188 | 186 | } else { |
189 | | - jQuery('#downloadButton').attr('disabled', ''); |
190 | | - jQuery('input.order').attr('disabled', ''); |
| 187 | + $('#downloadButton').attr('disabled', ''); |
| 188 | + $('input.order').attr('disabled', ''); |
191 | 189 | } |
192 | 190 | update_save_button(); |
193 | 191 | } |
194 | 192 | |
195 | 193 | function toggle_order_info(flag) { |
196 | 194 | if (flag) { |
197 | | - jQuery('#coll-more_info').css('display', 'none'); |
198 | | - jQuery('#coll-order_info').css('display', 'block'); |
199 | | - jQuery('#coll-hide_info').css('display', 'block'); |
| 195 | + $('#coll-more_info').css('display', 'none'); |
| 196 | + $('#coll-order_info').css('display', 'block'); |
| 197 | + $('#coll-hide_info').css('display', 'block'); |
200 | 198 | } else { |
201 | | - jQuery('#coll-more_info').css('display', 'block'); |
202 | | - jQuery('#coll-order_info').css('display', 'none'); |
203 | | - jQuery('#coll-hide_info').css('display', 'none'); |
| 199 | + $('#coll-more_info').css('display', 'block'); |
| 200 | + $('#coll-order_info').css('display', 'none'); |
| 201 | + $('#coll-hide_info').css('display', 'none'); |
204 | 202 | } |
205 | 203 | } |
206 | 204 | |
207 | | -jQuery(function() { |
| 205 | +$(function() { |
208 | 206 | if (requiredVersion != wgCollectionVersion) { |
209 | 207 | alert('ERROR: Version mismatch between Javascript and PHP code. Contact admin to fix the installation of Collection extension for MediaWiki.'); |
210 | 208 | return; |
211 | 209 | } |
212 | | - if (jQuery('#collectionList').length) { |
213 | | - jQuery('.makeVisible').css('display', 'inline'); |
| 210 | + if ($('#collectionList').length) { |
| 211 | + $('.makeVisible').css('display', 'inline'); |
214 | 212 | window.coll_create_chapter = create_chapter; |
215 | 213 | window.coll_remove_item = remove_item; |
216 | 214 | window.coll_rename_chapter = rename_chapter; |
— | — | @@ -218,18 +216,18 @@ |
219 | 217 | toggle_order_info(false); |
220 | 218 | update_save_button(); |
221 | 219 | make_sortable(); |
222 | | - jQuery('#personalCollTitle').keyup(update_save_button); |
223 | | - jQuery('#personalCollTitle').change(update_save_button); |
224 | | - jQuery('#communityCollTitle').keyup(update_save_button); |
225 | | - jQuery('#communityCollTitle').change(update_save_button); |
226 | | - jQuery('#personalCollType').change(update_save_button); |
227 | | - jQuery('#communityCollType').change(update_save_button); |
228 | | - jQuery('#titleInput').change(set_titles); |
229 | | - jQuery('#subtitleInput').change(set_titles); |
| 220 | + $('#personalCollTitle').keyup(update_save_button); |
| 221 | + $('#personalCollTitle').change(update_save_button); |
| 222 | + $('#communityCollTitle').keyup(update_save_button); |
| 223 | + $('#communityCollTitle').change(update_save_button); |
| 224 | + $('#personalCollType').change(update_save_button); |
| 225 | + $('#communityCollType').change(update_save_button); |
| 226 | + $('#titleInput').change(set_titles); |
| 227 | + $('#subtitleInput').change(set_titles); |
230 | 228 | } |
231 | 229 | if (typeof collection_rendering != 'undefined') { |
232 | 230 | getMWServeStatus(); |
233 | 231 | } |
234 | 232 | }); |
235 | 233 | |
236 | | -})(); |
| 234 | +})(collection_jQuery); |
Index: branches/wmf/1.16wmf4/extensions/Collection/js/check_load_from_localstorage.js |
— | — | @@ -0,0 +1,37 @@ |
| 2 | +(function($) { |
| 3 | + |
| 4 | +var script_url = wgServer + ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript); |
| 5 | + |
| 6 | +function count_articles(items) { |
| 7 | + var count = 0; |
| 8 | + return count; |
| 9 | +} |
| 10 | + |
| 11 | +$(function() { |
| 12 | + var c = $.jStorage.get('collection'); |
| 13 | + if (c) { |
| 14 | + var num_pages = 0; |
| 15 | + for (var i = 0; i < c.items.length; i++) { |
| 16 | + if (c.items[i]['type'] == 'article') { |
| 17 | + num_pages++; |
| 18 | + } |
| 19 | + } |
| 20 | + if (num_pages) { |
| 21 | + var txt = collection_dialogtxt; |
| 22 | + txt = txt.replace(/%TITLE%/, c.title ? '("' + c.title + '")' : ''); |
| 23 | + txt = txt.replace(/%NUMPAGES%/, num_pages); |
| 24 | + if (confirm(txt)) { |
| 25 | + $.post(script_url, { |
| 26 | + 'action': 'ajax', |
| 27 | + 'rs': 'wfAjaxPostCollection', |
| 28 | + 'rsargs[]': [JSON.stringify(c)] |
| 29 | + }, function() { |
| 30 | + window.location.href = collection_redirect_url; |
| 31 | + }, 'json'); |
| 32 | + } |
| 33 | + } |
| 34 | + } |
| 35 | +}); |
| 36 | + |
| 37 | +})(jQuery); |
| 38 | + |
Property changes on: branches/wmf/1.16wmf4/extensions/Collection/js/check_load_from_localstorage.js |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 39 | + native |
Index: branches/wmf/1.16wmf4/extensions/Collection/js/jstorage.js |
— | — | @@ -0,0 +1,212 @@ |
| 2 | +/** |
| 3 | + * ----------------------------- JSTORAGE ------------------------------------- |
| 4 | + * Simple local storage wrapper to save data on the browser side, supporting |
| 5 | + * all major browsers - IE6+, Firefox2+, Safari4+, Chrome4+ and Opera 10.5+ |
| 6 | + * |
| 7 | + * Copyright (c) 2010 Andris Reinman, andris.reinman@gmail.com |
| 8 | + * Project homepage: www.jstorage.info |
| 9 | + * |
| 10 | + * Licensed under MIT-style license: |
| 11 | + * |
| 12 | + * Permission is hereby granted, free of charge, to any person obtaining a copy |
| 13 | + * of this software and associated documentation files (the "Software"), to deal |
| 14 | + * in the Software without restriction, including without limitation the rights |
| 15 | + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| 16 | + * copies of the Software, and to permit persons to whom the Software is |
| 17 | + * furnished to do so, subject to the following conditions: |
| 18 | + * |
| 19 | + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 20 | + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 21 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| 22 | + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 23 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| 24 | + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| 25 | + * SOFTWARE. |
| 26 | + */ |
| 27 | + |
| 28 | +/** |
| 29 | + * USAGE: |
| 30 | + * |
| 31 | + * jStorage requires Prototype, MooTools or jQuery! If jQuery is used, then |
| 32 | + * jQuery-JSON (http://code.google.com/p/jquery-json/) is also needed. |
| 33 | + * (jQuery-JSON needs to be loaded BEFORE jStorage!) |
| 34 | + * |
| 35 | + * Methods: |
| 36 | + * |
| 37 | + * -set(key, value) |
| 38 | + * $.jStorage.set(key, value) -> saves a value |
| 39 | + * |
| 40 | + * -get(key[, default]) |
| 41 | + * value = $.jStorage.get(key [, default]) -> |
| 42 | + * retrieves value if key exists, or default if it doesn't |
| 43 | + * |
| 44 | + * -deleteKey(key) |
| 45 | + * $.jStorage.deleteKey(key) -> removes a key from the storage |
| 46 | + * |
| 47 | + * -flush() |
| 48 | + * $.jStorage.flush() -> clears the cache |
| 49 | + * |
| 50 | + * <value> can be any JSON-able value, including objects and arrays. |
| 51 | + * |
| 52 | + */ |
| 53 | + |
| 54 | +(function($){ |
| 55 | + if(!$ || !($.toJSON || Object.toJSON || window.JSON)){ |
| 56 | + throw new Error("jQuery, MooTools or Prototype needs to be loaded before jStorage!"); |
| 57 | + } |
| 58 | + $.jStorage = { |
| 59 | + |
| 60 | + /* Version number */ |
| 61 | + version: "0.1.2", |
| 62 | + |
| 63 | + /* This is the object, that holds the cached values */ |
| 64 | + _storage: {}, |
| 65 | + |
| 66 | + /* Actual browser storage (localStorage or globalStorage['domain']) */ |
| 67 | + _storage_service: {jStorage:"{}"}, |
| 68 | + |
| 69 | + /* DOM element for older IE versions, holds userData behavior */ |
| 70 | + _storage_elm: null, |
| 71 | + |
| 72 | + /* function to encode objects to JSON strings */ |
| 73 | + json_encode: $.toJSON || Object.toJSON || (window.JSON && JSON.encode), |
| 74 | + |
| 75 | + /* function to decode objects from JSON strings */ |
| 76 | + json_decode: $.evalJSON || (window.JSON && JSON.decode) || function(str){ |
| 77 | + return String(str).evalJSON(); |
| 78 | + }, |
| 79 | + |
| 80 | + ////////////////////////// PRIVATE METHODS //////////////////////// |
| 81 | + |
| 82 | + /** |
| 83 | + * Initialization function. Detects if the browser supports DOM Storage |
| 84 | + * or userData behavior and behaves accordingly. |
| 85 | + * @returns undefined |
| 86 | + */ |
| 87 | + _init: function(){ |
| 88 | + /* Check if browser supports localStorage */ |
| 89 | + if("localStorage" in window){ |
| 90 | + this._storage_service = window.localStorage; |
| 91 | + } |
| 92 | + /* Check if browser supports globalStorage */ |
| 93 | + else if("globalStorage" in window){ |
| 94 | + this._storage_service = window.globalStorage[document.domain] |
| 95 | + } |
| 96 | + /* Check if browser supports userData behavior */ |
| 97 | + else{ |
| 98 | + this._storage_elm = document.createElement('link') |
| 99 | + if("addBehavior" in this._storage_elm){ |
| 100 | + |
| 101 | + /* Use a DOM element to act as userData storage */ |
| 102 | + this._storage_elm.style.behavior = 'url(#default#userData)'; |
| 103 | + |
| 104 | + /* userData element needs to be inserted into the DOM! */ |
| 105 | + document.getElementsByTagName('head')[0].appendChild(this._storage_elm); |
| 106 | + |
| 107 | + this._storage_elm.load("jStorage"); |
| 108 | + try{ |
| 109 | + var data = this._storage_elm.getAttribute("jStorage") |
| 110 | + }catch(E){var data = "{}"} |
| 111 | + if(data && data.length){ |
| 112 | + this._storage_service.jStorage = data; |
| 113 | + } |
| 114 | + }else{ |
| 115 | + this._storage_elm = null; |
| 116 | + return; |
| 117 | + } |
| 118 | + } |
| 119 | + /* if jStorage string is retrieved, then decode it */ |
| 120 | + if("jStorage" in this._storage_service && this._storage_service.jStorage){ |
| 121 | + try{ |
| 122 | + this._storage = this.json_decode(this._storage_service.jStorage); |
| 123 | + }catch(E){this._storage_service.jStorage = "{}";} |
| 124 | + }else{ |
| 125 | + this._storage_service.jStorage = "{}"; |
| 126 | + } |
| 127 | + }, |
| 128 | + |
| 129 | + /** |
| 130 | + * This functions provides the "save" mechanism to store the jStorage object |
| 131 | + * @returns undefined |
| 132 | + */ |
| 133 | + _save:function(){ |
| 134 | + if(this._storage_service){ |
| 135 | + try{ |
| 136 | + this._storage_service.jStorage = this.json_encode(this._storage); |
| 137 | + }catch(E){/* probably cache is full, nothing is saved this way*/} |
| 138 | + // If userData is used as the storage engine, additional |
| 139 | + if(this._storage_elm){ |
| 140 | + try{ |
| 141 | + this._storage_elm.setAttribute("jStorage",this._storage_service.jStorage) |
| 142 | + this._storage_elm.save("jStorage"); |
| 143 | + }catch(E){/* probably cache is full, nothing is saved this way*/} |
| 144 | + } |
| 145 | + } |
| 146 | + }, |
| 147 | + |
| 148 | + /** |
| 149 | + * Function checks if a key is set and is string or numberic |
| 150 | + */ |
| 151 | + _checkKey: function(key){ |
| 152 | + if(!key || (typeof key != "string" && typeof key != "number")){ |
| 153 | + throw new TypeError('Key name must be string or numeric'); |
| 154 | + } |
| 155 | + return true; |
| 156 | + }, |
| 157 | + |
| 158 | + ////////////////////////// PUBLIC METHODS ///////////////////////// |
| 159 | + |
| 160 | + /** |
| 161 | + * Sets a key's value. |
| 162 | + * @param {String} key - Key to set. If this value is not set or not |
| 163 | + * a string an exception is raised. |
| 164 | + * @param value - Value to set. This can be any value that is JSON |
| 165 | + * compatible (Numbers, Strings, Objects etc.). |
| 166 | + * @returns the used value |
| 167 | + */ |
| 168 | + set: function(key, value){ |
| 169 | + this._checkKey(key); |
| 170 | + this._storage[key] = value; |
| 171 | + this._save(); |
| 172 | + return value; |
| 173 | + }, |
| 174 | + /** |
| 175 | + * Looks up a key in cache |
| 176 | + * @param {String} key - Key to look up. |
| 177 | + * @param {mixed} def - Default value to return, if key didn't exist. |
| 178 | + * @returns the key value, default value or <null> |
| 179 | + */ |
| 180 | + get: function(key, def){ |
| 181 | + this._checkKey(key); |
| 182 | + if(key in this._storage){ |
| 183 | + return this._storage[key]; |
| 184 | + } |
| 185 | + return def?def:null; |
| 186 | + }, |
| 187 | + /** |
| 188 | + * Deletes a key from cache. |
| 189 | + * @param {String} key - Key to delete. |
| 190 | + * @returns true if key existed or false if it didn't |
| 191 | + */ |
| 192 | + deleteKey: function(key){ |
| 193 | + this._checkKey(key); |
| 194 | + if(key in this._storage){ |
| 195 | + delete this._storage[key]; |
| 196 | + this._save(); |
| 197 | + return true; |
| 198 | + } |
| 199 | + return false; |
| 200 | + }, |
| 201 | + /** |
| 202 | + * Deletes everything in cache. |
| 203 | + * @returns true |
| 204 | + */ |
| 205 | + flush: function(){ |
| 206 | + this._storage = {}; |
| 207 | + this._save(); |
| 208 | + return true; |
| 209 | + } |
| 210 | + } |
| 211 | + // load saved data from browser |
| 212 | + $.jStorage._init(); |
| 213 | +})(typeof jQuery != "undefined" && jQuery || $); |
\ No newline at end of file |
Property changes on: branches/wmf/1.16wmf4/extensions/Collection/js/jstorage.js |
___________________________________________________________________ |
Name: svn:eol-style |
1 | 214 | + native |
Index: branches/wmf/1.16wmf4/extensions/Collection/js/suggest.js |
— | — | @@ -1,40 +1,43 @@ |
2 | | -(function() { |
| 2 | +(function($) { |
3 | 3 | |
4 | | -var jQuery = collection_jQuery; |
5 | | - |
6 | 4 | var script_url = wgServer + |
7 | 5 | ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript); |
8 | 6 | |
9 | 7 | function set_status(html) { |
10 | 8 | if (html) { |
11 | | - jQuery('#collectionSuggestStatus').css('visibility', 'visible').html(html); |
| 9 | + $('#collectionSuggestStatus').css('visibility', 'visible').html(html); |
12 | 10 | } else { |
13 | | - jQuery('#collectionSuggestStatus').css('visibility', 'hidden').html(' '); |
| 11 | + $('#collectionSuggestStatus').css('visibility', 'hidden').html(' '); |
14 | 12 | } |
15 | 13 | } |
16 | 14 | |
17 | 15 | function collectionSuggestCall(func, args) { |
18 | 16 | set_status('...'); |
19 | | - jQuery.post(script_url, { |
| 17 | + $.post(script_url, { |
20 | 18 | 'action': 'ajax', |
21 | 19 | 'rs': 'wfAjaxCollectionSuggest' + func, |
22 | 20 | 'rsargs[]': args |
23 | 21 | }, function(result) { |
| 22 | + wfCollectionSave(result.collection); |
24 | 23 | if (func == 'undo') { |
25 | 24 | set_status(false); |
26 | 25 | } else { |
27 | 26 | set_status(result.last_action); |
28 | 27 | } |
29 | | - jQuery('#collectionSuggestions').html(result.suggestions_html); |
30 | | - jQuery('#collectionMembers').html(result.members_html); |
31 | | - jQuery('#coll-num_pages').text(result.num_pages); |
32 | | - sajax_do_call('wfAjaxCollectionGetBookCreatorBoxContent', ['suggest', null], function(xhr) { |
33 | | - jQuery('#coll-book_creator_box').html(xhr.responseText); |
| 28 | + $('#collectionSuggestions').html(result.suggestions_html); |
| 29 | + $('#collectionMembers').html(result.members_html); |
| 30 | + $('#coll-num_pages').text(result.num_pages); |
| 31 | + $.getJSON(script_url, { |
| 32 | + 'action': 'ajax', |
| 33 | + 'rs': 'wfAjaxCollectionGetBookCreatorBoxContent', |
| 34 | + 'rsargs[]': ['suggest', null] |
| 35 | + }, function(result) { |
| 36 | + $('#coll-book_creator_box').html(result.html); |
34 | 37 | }); |
35 | 38 | }, 'json'); |
36 | 39 | } |
37 | 40 | |
38 | 41 | window.collectionSuggestCall = collectionSuggestCall; |
39 | 42 | |
40 | | -})(); |
| 43 | +})(collection_jQuery); |
41 | 44 | |
Index: branches/wmf/1.16wmf4/extensions/Collection/Collection.body.php |
— | — | @@ -146,7 +146,7 @@ |
147 | 147 | $wgOut->redirect( $redirectURL ); |
148 | 148 | return; |
149 | 149 | case 'set_titles': |
150 | | - self::setTitles( $wgRequest->getText( 'collectionTitle', '' ), $wgRequest->getText( 'collectionSubtitle', '') ); |
| 150 | + self::setTitles( $wgRequest->getText( 'collectionTitle', '' ), $wgRequest->getText( 'collectionSubtitle', '' ) ); |
151 | 151 | $wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book' ) ); |
152 | 152 | return; |
153 | 153 | case 'sort_items': |
— | — | @@ -262,7 +262,7 @@ |
263 | 263 | $this->renderArticle( $title, $oldid, $wgRequest->getVal( 'writer', 'rl' ) ); |
264 | 264 | return; |
265 | 265 | case 'render_collection': |
266 | | - $title = Title::newFromText( $wgRequest->getVal( 'colltitle', '' )); |
| 266 | + $title = Title::newFromText( $wgRequest->getVal( 'colltitle', '' ) ); |
267 | 267 | if ( !$title ) { |
268 | 268 | return; |
269 | 269 | } |
— | — | @@ -286,7 +286,7 @@ |
287 | 287 | } else if ( isset( $add ) ) { |
288 | 288 | CollectionSuggest::run( 'add', $add ); |
289 | 289 | } else if ( isset( $ban ) ) { |
290 | | - CollectionSuggest::run('ban', $ban ); |
| 290 | + CollectionSuggest::run( 'ban', $ban ); |
291 | 291 | } else if ( isset( $remove ) ) { |
292 | 292 | CollectionSuggest::run( 'remove', $remove ); |
293 | 293 | } else if ( isset( $addselected ) ) { |
— | — | @@ -310,6 +310,7 @@ |
311 | 311 | } |
312 | 312 | |
313 | 313 | function renderBookCreatorPage( $referer ) { |
| 314 | + global $wgCollectionStyleVersion; |
314 | 315 | global $wgOut; |
315 | 316 | global $wgScriptPath; |
316 | 317 | global $wgTitle; |
— | — | @@ -321,7 +322,31 @@ |
322 | 323 | $wgOut->addWikiMsg( 'coll-book_creator_intro' ); |
323 | 324 | |
324 | 325 | $imagepath = "$wgScriptPath/extensions/Collection/images"; |
| 326 | + $jspath = "$wgScriptPath/extensions/Collection/js"; |
325 | 327 | |
| 328 | + if ( method_exists( $wgOut, 'includeJQuery' ) ) { |
| 329 | + $wgOut->includeJQuery(); |
| 330 | + } else { |
| 331 | + $wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$jspath/jquery.js?" . |
| 332 | + "$wgCollectionStyleVersion\"></script>" ); |
| 333 | + } |
| 334 | + $wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$jspath/jquery.json.js?" . |
| 335 | + "$wgCollectionStyleVersion\"></script>" ); |
| 336 | + $wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$jspath/jstorage.js?" . |
| 337 | + "$wgCollectionStyleVersion\"></script>" ); |
| 338 | + $wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$jspath/check_load_from_localstorage.js?" . |
| 339 | + "$wgCollectionStyleVersion\"></script>" ); |
| 340 | + |
| 341 | + $coll = CollectionSession::getCollection(); |
| 342 | + $dialogtxt = wfMsg( 'coll-load_local_book' ); |
| 343 | + $redirecturl = SkinTemplate::makeSpecialUrl( 'Book' ); |
| 344 | + |
| 345 | + $wgOut->addScript( |
| 346 | + "<script type=\"$wgJsMimeType\">\n" . |
| 347 | + "var collection_dialogtxt = " . Xml::encodeJsVar( $dialogtxt ) . ";\n" . |
| 348 | + "var collection_redirect_url = " . Xml::encodeJsVar( $redirecturl ) . ";\n" . |
| 349 | + "</script>" ); |
| 350 | + |
326 | 351 | $wgOut->mScripts .= <<<EOS |
327 | 352 | <style type="text/css"> |
328 | 353 | .collection-button { |
— | — | @@ -411,7 +436,7 @@ |
412 | 437 | |
413 | 438 | $title_string = wfMsgForContent( 'coll-book_creator_text_article' ); |
414 | 439 | $t = Title::newFromText( $title_string ); |
415 | | - if ( !is_null($t) ) { |
| 440 | + if ( !is_null( $t ) ) { |
416 | 441 | $a = new Article( $t ); |
417 | 442 | if ( $a->exists() ) { |
418 | 443 | $wgOut->addWikiText( '{{:' . $title_string . '}}' ); |
— | — | @@ -480,7 +505,7 @@ |
481 | 506 | } |
482 | 507 | |
483 | 508 | $t = wfMsgForContent( 'coll-community_book_prefix' ); |
484 | | - if ( wfEmptyMsg( 'coll-community_book_prefix', $t) || $t == '-' ) { |
| 509 | + if ( wfEmptyMsg( 'coll-community_book_prefix', $t ) || $t == '-' ) { |
485 | 510 | $title = Title::makeTitle( |
486 | 511 | $wgCommunityCollectionNamespace, |
487 | 512 | wfMsgForContent( 'coll-collections' ) |
— | — | @@ -517,7 +542,7 @@ |
518 | 543 | $template = new CollectionPageTemplate(); |
519 | 544 | $template->set( 'collection', CollectionSession::getCollection() ); |
520 | 545 | $template->set( 'podpartners', $this->mPODPartners ); |
521 | | - $template->set( 'formats', $wgCollectionFormats); |
| 546 | + $template->set( 'formats', $wgCollectionFormats ); |
522 | 547 | $prefixes = self::getBookPagePrefixes(); |
523 | 548 | $template->set( 'user-book-prefix', $prefixes['user-prefix'] ); |
524 | 549 | $template->set( 'community-book-prefix', $prefixes['community-prefix'] ); |
— | — | @@ -531,8 +556,8 @@ |
532 | 557 | CollectionSession::setCollection( $collection ); |
533 | 558 | } |
534 | 559 | |
535 | | - static function title_cmp($a, $b) { |
536 | | - return strcasecmp($a['title'], $b['title']); |
| 560 | + static function title_cmp( $a, $b ) { |
| 561 | + return strcasecmp( $a['title'], $b['title'] ); |
537 | 562 | } |
538 | 563 | |
539 | 564 | static function sortItems() { |
— | — | @@ -563,7 +588,7 @@ |
564 | 589 | } |
565 | 590 | |
566 | 591 | static function renameChapter( $index, $name ) { |
567 | | - if (!is_int( $index ) ) { |
| 592 | + if ( !is_int( $index ) ) { |
568 | 593 | return; |
569 | 594 | } |
570 | 595 | $collection = CollectionSession::getCollection(); |
— | — | @@ -574,13 +599,13 @@ |
575 | 600 | CollectionSession::setCollection( $collection ); |
576 | 601 | } |
577 | 602 | |
578 | | - static function addArticleFromName( $namespace, $name, $oldid=0 ) { |
| 603 | + static function addArticleFromName( $namespace, $name, $oldid = 0 ) { |
579 | 604 | $title = Title::makeTitleSafe( $namespace, $name ); |
580 | | - if (!$title) return false; |
| 605 | + if ( !$title ) return false; |
581 | 606 | return self::addArticle( $title, $oldid ); |
582 | 607 | } |
583 | 608 | |
584 | | - static function addArticle( $title, $oldid=0 ) { |
| 609 | + static function addArticle( $title, $oldid = 0 ) { |
585 | 610 | $article = new Article( $title, $oldid ); |
586 | 611 | $latest = $article->getLatest(); |
587 | 612 | |
— | — | @@ -590,7 +615,7 @@ |
591 | 616 | $oldid = $latest; |
592 | 617 | } |
593 | 618 | $index = CollectionSession::findArticle( $title->getPrefixedText(), $oldid ); |
594 | | - if ( $index != -1 ) { |
| 619 | + if ( $index != - 1 ) { |
595 | 620 | return false; |
596 | 621 | } |
597 | 622 | |
— | — | @@ -613,18 +638,18 @@ |
614 | 639 | return true; |
615 | 640 | } |
616 | 641 | |
617 | | - static function removeArticleFromName( $namespace, $name, $oldid=0 ) { |
| 642 | + static function removeArticleFromName( $namespace, $name, $oldid = 0 ) { |
618 | 643 | $title = Title::makeTitleSafe( $namespace, $name ); |
619 | 644 | return self::removeArticle( $title, $oldid ); |
620 | 645 | } |
621 | 646 | |
622 | | - static function removeArticle( $title, $oldid=0 ) { |
| 647 | + static function removeArticle( $title, $oldid = 0 ) { |
623 | 648 | if ( !CollectionSession::hasSession() ) { |
624 | 649 | return false; |
625 | 650 | } |
626 | 651 | $collection = CollectionSession::getCollection(); |
627 | 652 | $index = CollectionSession::findArticle( $title->getPrefixedText(), $oldid ); |
628 | | - if ( $index != -1 ) { |
| 653 | + if ( $index != - 1 ) { |
629 | 654 | array_splice( $collection['items'], $index, 1 ); |
630 | 655 | } |
631 | 656 | CollectionSession::setCollection( $collection ); |
— | — | @@ -669,7 +694,7 @@ |
670 | 695 | } |
671 | 696 | if ( in_array( $row->page_namespace, $wgCollectionArticleNamespaces ) ) { |
672 | 697 | $articleTitle = Title::makeTitle( $row->page_namespace, $row->page_title ); |
673 | | - if ( CollectionSession::findArticle( $articleTitle->getPrefixedText() ) == -1 ) { |
| 698 | + if ( CollectionSession::findArticle( $articleTitle->getPrefixedText() ) == - 1 ) { |
674 | 699 | self::addArticle( $articleTitle ); |
675 | 700 | } |
676 | 701 | } |
— | — | @@ -685,7 +710,7 @@ |
686 | 711 | } |
687 | 712 | |
688 | 713 | static function removeItem( $index ) { |
689 | | - if (!is_int( $index ) ) { |
| 714 | + if ( !is_int( $index ) ) { |
690 | 715 | return false; |
691 | 716 | } |
692 | 717 | if ( !CollectionSession::hasSession() ) { |
— | — | @@ -716,7 +741,7 @@ |
717 | 742 | $collection = CollectionSession::getCollection(); |
718 | 743 | $old_items = $collection['items']; |
719 | 744 | $new_items = array(); |
720 | | - foreach ($items as $new_index => $old_index) { |
| 745 | + foreach ( $items as $new_index => $old_index ) { |
721 | 746 | $new_items[$new_index] = $old_items[$old_index]; |
722 | 747 | } |
723 | 748 | $collection['items'] = $new_items; |
— | — | @@ -725,11 +750,11 @@ |
726 | 751 | |
727 | 752 | function parseCollectionLine( &$collection, $line, $append ) { |
728 | 753 | $line = trim( $line ); |
729 | | - if ( !$append && preg_match( '/^===\s*(.*?)\s*===$/', $line, $match) ) { |
| 754 | + if ( !$append && preg_match( '/^===\s*(.*?)\s*===$/', $line, $match ) ) { |
730 | 755 | $collection['subtitle'] = $match[ 1 ]; |
731 | | - } elseif ( !$append && preg_match( '/^==\s*(.*?)\s*==$/', $line, $match) ) { |
| 756 | + } elseif ( !$append && preg_match( '/^==\s*(.*?)\s*==$/', $line, $match ) ) { |
732 | 757 | $collection['title'] = $match[ 1 ]; |
733 | | - } elseif (substr( $line, 0, 1 ) == ';') { // chapter |
| 758 | + } elseif ( substr( $line, 0, 1 ) == ';' ) { // chapter |
734 | 759 | return array( |
735 | 760 | 'type' => 'chapter', |
736 | 761 | 'title' => trim( substr( $line, 1 ) ), |
— | — | @@ -743,7 +768,7 @@ |
744 | 769 | } else { |
745 | 770 | $displayTitle = null; |
746 | 771 | } |
747 | | - $oldid = -1; |
| 772 | + $oldid = - 1; |
748 | 773 | $currentVersion = 1; |
749 | 774 | } elseif ( preg_match( '/^\[\{\{fullurl:(.*?)\|oldid=(.*?)\}\}\s+(.*?)\]$/', $articleTitle, $match ) ) { |
750 | 775 | $articleTitle = $match[1]; |
— | — | @@ -759,10 +784,10 @@ |
760 | 785 | } |
761 | 786 | |
762 | 787 | $articleTitle = Title::newFromText( $articleTitle ); |
763 | | - if( !$articleTitle ) { |
| 788 | + if ( !$articleTitle ) { |
764 | 789 | return null; |
765 | 790 | } |
766 | | - if ($oldid < 0) { |
| 791 | + if ( $oldid < 0 ) { |
767 | 792 | $article = new Article( $articleTitle ); |
768 | 793 | } else { |
769 | 794 | $article = new Article( $articleTitle, $oldid ); |
— | — | @@ -794,7 +819,7 @@ |
795 | 820 | return null; |
796 | 821 | } |
797 | 822 | |
798 | | - function loadCollection( $title, $append=false ) { |
| 823 | + function loadCollection( $title, $append = false ) { |
799 | 824 | global $wgOut; |
800 | 825 | |
801 | 826 | if ( is_null( $title ) ) { |
— | — | @@ -820,7 +845,7 @@ |
821 | 846 | |
822 | 847 | $article = new Article( $title ); |
823 | 848 | |
824 | | - foreach( preg_split( '/[\r\n]+/', $article->getContent() ) as $line ) { |
| 849 | + foreach ( preg_split( '/[\r\n]+/', $article->getContent() ) as $line ) { |
825 | 850 | $item = $this->parseCollectionLine( $collection, $line, $append ); |
826 | 851 | if ( !is_null( $item ) ) { |
827 | 852 | $items[] = $item; |
— | — | @@ -830,7 +855,7 @@ |
831 | 856 | return $collection; |
832 | 857 | } |
833 | 858 | |
834 | | - function saveCollection( $title, $forceOverwrite=false ) { |
| 859 | + function saveCollection( $title, $forceOverwrite = false ) { |
835 | 860 | global $wgUser; |
836 | 861 | |
837 | 862 | $article = new Article( $title ); |
— | — | @@ -839,7 +864,7 @@ |
840 | 865 | } |
841 | 866 | $articleText = "{{" . wfMsgForContent( 'coll-savedbook_template' ) . "}}\n\n"; |
842 | 867 | $collection = CollectionSession::getCollection(); |
843 | | - if( $collection['title'] ) { |
| 868 | + if ( $collection['title'] ) { |
844 | 869 | $articleText .= '== ' . $collection['title'] . " ==\n"; |
845 | 870 | } |
846 | 871 | if ( $collection['subtitle'] ) { |
— | — | @@ -850,7 +875,7 @@ |
851 | 876 | if ( $item['type'] == 'chapter' ) { |
852 | 877 | $articleText .= ';' . $item['title'] . "\n"; |
853 | 878 | } elseif ( $item['type'] == 'article' ) { |
854 | | - if ($item['currentVersion'] == 1) { |
| 879 | + if ( $item['currentVersion'] == 1 ) { |
855 | 880 | $articleText .= ":[[" . $item['title']; |
856 | 881 | if ( $item['displaytitle'] ) { |
857 | 882 | $articleText .= "|" . $item['displaytitle']; |
— | — | @@ -867,7 +892,7 @@ |
868 | 893 | $articleText .= "]\n"; |
869 | 894 | } |
870 | 895 | } |
871 | | - //$articleText .= $item['revision'] . "/" . $item['latest']."\n"; |
| 896 | + // $articleText .= $item['revision'] . "/" . $item['latest']."\n"; |
872 | 897 | } |
873 | 898 | } |
874 | 899 | $t = wfMsgForContent( 'coll-bookscategory' ); |
— | — | @@ -878,13 +903,13 @@ |
879 | 904 | } |
880 | 905 | } |
881 | 906 | |
882 | | - $req = new FauxRequest(array( |
| 907 | + $req = new FauxRequest( array( |
883 | 908 | 'action' => 'edit', |
884 | 909 | 'title' => $title->getPrefixedText(), |
885 | 910 | 'text' => $articleText, |
886 | 911 | 'token' => $wgUser->editToken(), |
887 | | - ), true); |
888 | | - $api = new ApiMain($req, true); |
| 912 | + ), true ); |
| 913 | + $api = new ApiMain( $req, true ); |
889 | 914 | $api->execute(); |
890 | 915 | return true; |
891 | 916 | } |
— | — | @@ -1071,9 +1096,9 @@ |
1072 | 1097 | switch ( $response['state'] ) { |
1073 | 1098 | case 'progress': |
1074 | 1099 | $url = htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', 'bookcmd=rendering&' . $query ) ); |
1075 | | - $wgOut->addHeadItem( 'refresh-nojs', '<noscript><meta http-equiv="refresh" content="2" /></noscript>'); |
1076 | | - $wgOut->addInlineScript( 'var collection_id = "' . urlencode( $response['collection_id']) . '";' ); |
1077 | | - $wgOut->addInlineScript( 'var writer = "' . urlencode( $response['writer']) . '";' ); |
| 1100 | + $wgOut->addHeadItem( 'refresh-nojs', '<noscript><meta http-equiv="refresh" content="2" /></noscript>' ); |
| 1101 | + $wgOut->addInlineScript( 'var collection_id = "' . urlencode( $response['collection_id'] ) . '";' ); |
| 1102 | + $wgOut->addInlineScript( 'var writer = "' . urlencode( $response['writer'] ) . '";' ); |
1078 | 1103 | $wgOut->addInlineScript( 'var collection_rendering = true;' ); |
1079 | 1104 | $wgOut->addInlineScript( "var wgCollectionVersion = \"$wgCollectionVersion\";" ); |
1080 | 1105 | $wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$wgScriptPath/extensions/Collection/js/jquery.js?$wgCollectionStyleVersion\"></script>" ); |
— | — | @@ -1081,7 +1106,7 @@ |
1082 | 1107 | $wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$wgScriptPath/extensions/Collection/js/collection.js?$wgCollectionStyleVersion\"></script>" ); |
1083 | 1108 | $wgOut->setPageTitle( wfMsg( 'coll-rendering_title' ) ); |
1084 | 1109 | |
1085 | | - if ( isset($response['status']['status'] ) && $response['status']['status'] ) { |
| 1110 | + if ( isset( $response['status']['status'] ) && $response['status']['status'] ) { |
1086 | 1111 | $statusText = $response['status']['status']; |
1087 | 1112 | if ( isset( $response['status']['article'] ) && $response['status']['article'] ) { |
1088 | 1113 | $statusText .= ' ' . wfMsg( 'coll-rendering_article', $response['status']['article'] ); |
— | — | @@ -1126,7 +1151,7 @@ |
1127 | 1152 | $errorMessage = ''; |
1128 | 1153 | $info = false; |
1129 | 1154 | if ( isset( $r['url'] ) ) { |
1130 | | - self::curlreq( 'GET', $r['url'], array(), $errorMessage, $info, $timeout=false, $toFile=$tempfile ); |
| 1155 | + self::curlreq( 'GET', $r['url'], array(), $errorMessage, $info, $timeout = false, $toFile = $tempfile ); |
1131 | 1156 | $content_type = $r['content_type']; |
1132 | 1157 | $content_length = $r['content_length']; |
1133 | 1158 | $content_disposition = $r['content_disposition']; |
— | — | @@ -1134,7 +1159,7 @@ |
1135 | 1160 | $info = self::mwServeCommand( 'download', array( |
1136 | 1161 | 'collection_id' => $wgRequest->getVal( 'collection_id' ), |
1137 | 1162 | 'writer' => $wgRequest->getVal( 'writer' ), |
1138 | | - ), $timeout=false, $toFile=$tempfile ); |
| 1163 | + ), $timeout = false, $toFile = $tempfile ); |
1139 | 1164 | $content_type = $info['content_type']; |
1140 | 1165 | $content_length = $info['download_content_length']; |
1141 | 1166 | $content_disposition = null; |
— | — | @@ -1145,9 +1170,15 @@ |
1146 | 1171 | } |
1147 | 1172 | wfResetOutputBuffers(); |
1148 | 1173 | header( 'Content-Type: ' . $content_type ); |
1149 | | - header( 'Content-Length: ' . $content_length); |
| 1174 | + header( 'Content-Length: ' . $content_length ); |
1150 | 1175 | if ( $content_disposition ) { |
1151 | 1176 | header( 'Content-Disposition: ' . $content_disposition ); |
| 1177 | + } else { |
| 1178 | + $ct_enc = split( ';', $content_type ); |
| 1179 | + $ct = $ct_enc[0]; |
| 1180 | + if ( isset( $wgCollectionContentTypeToFilename[$ct] ) ) { |
| 1181 | + header( 'Content-Disposition: ' . 'inline; filename=' . $wgCollectionContentTypeToFilename[$ct] ); |
| 1182 | + } |
1152 | 1183 | } |
1153 | 1184 | fseek( $tempfile, 0 ); |
1154 | 1185 | fpassthru( $tempfile ); |
— | — | @@ -1230,7 +1261,7 @@ |
1231 | 1262 | $wgOut->addTemplate( $template ); |
1232 | 1263 | } |
1233 | 1264 | |
1234 | | - static function mwServeCommand( $command, $args, $timeout=true, $toFile=null ) { |
| 1265 | + static function mwServeCommand( $command, $args, $timeout = true, $toFile = null ) { |
1235 | 1266 | global $wgOut; |
1236 | 1267 | global $wgCollectionMWServeURL; |
1237 | 1268 | global $wgCollectionMWServeCredentials; |
— | — | @@ -1284,22 +1315,22 @@ |
1285 | 1316 | } |
1286 | 1317 | |
1287 | 1318 | static function curlreq( $method, $url, $postFields, &$errorMessage, &$info, |
1288 | | - $timeout=true, $toFile=null ) { |
| 1319 | + $timeout = true, $toFile = null ) { |
1289 | 1320 | global $wgHTTPTimeout, $wgHTTPProxy, $wgTitle, $wgVersion; |
1290 | 1321 | global $wgCollectionMWServeCert; |
1291 | 1322 | global $wgCollectionVersion; |
1292 | 1323 | |
1293 | | - if ( $method == 'GET') { |
| 1324 | + if ( $method == 'GET' ) { |
1294 | 1325 | $url = wfAppendQuery( $url, wfArrayToCGI( $postFields ) ); |
1295 | 1326 | } |
1296 | 1327 | $c = curl_init( $url ); |
1297 | | - curl_setopt($c, CURLOPT_PROXY, $wgHTTPProxy); |
| 1328 | + curl_setopt( $c, CURLOPT_PROXY, $wgHTTPProxy ); |
1298 | 1329 | $userAgent = wfGetAgent(); |
1299 | 1330 | if ( !$userAgent ) { |
1300 | 1331 | $userAgent = "Unknown user agent"; |
1301 | 1332 | } |
1302 | 1333 | $userAgent .= " (via MediaWiki/$wgVersion, Collection/$wgCollectionVersion)"; |
1303 | | - curl_setopt( $c, CURLOPT_USERAGENT, $userAgent); |
| 1334 | + curl_setopt( $c, CURLOPT_USERAGENT, $userAgent ); |
1304 | 1335 | if ( $method == 'POST' ) { |
1305 | 1336 | curl_setopt( $c, CURLOPT_POST, true ); |
1306 | 1337 | curl_setopt( $c, CURLOPT_POSTFIELDS, $postFields ); |
— | — | @@ -1315,9 +1346,9 @@ |
1316 | 1347 | /* Allow the use of self-signed certificates by referencing |
1317 | 1348 | * a local (to the mediawiki install) copy of the signing |
1318 | 1349 | * certificate */ |
1319 | | - if ( !($wgCollectionMWServeCert === null) ) { |
1320 | | - curl_setopt ($c, CURLOPT_SSL_VERIFYPEER, TRUE); |
1321 | | - curl_setopt ($c, CURLOPT_CAINFO, $wgCollectionMWServeCert); |
| 1350 | + if ( !( $wgCollectionMWServeCert === null ) ) { |
| 1351 | + curl_setopt ( $c, CURLOPT_SSL_VERIFYPEER, TRUE ); |
| 1352 | + curl_setopt ( $c, CURLOPT_CAINFO, $wgCollectionMWServeCert ); |
1322 | 1353 | } |
1323 | 1354 | |
1324 | 1355 | if ( $toFile ) { |
Index: branches/wmf/1.16wmf4/extensions/Collection/Collection.templates.php |
— | — | @@ -4,35 +4,35 @@ |
5 | 5 | * @file |
6 | 6 | * @ingroup Templates |
7 | 7 | */ |
8 | | -if( !defined( 'MEDIAWIKI' ) ) die( -1 ); |
| 8 | +if ( !defined( 'MEDIAWIKI' ) ) die( - 1 ); |
9 | 9 | |
10 | 10 | /** |
11 | 11 | * HTML template for Special:Book |
12 | 12 | * @ingroup Templates |
13 | 13 | */ |
14 | 14 | class CollectionPageTemplate extends QuickTemplate { |
15 | | - function execute() { |
| 15 | + function execute() { |
16 | 16 | $mediapath = $GLOBALS['wgScriptPath'] . '/extensions/Collection/images/'; |
17 | 17 | ?> |
18 | 18 | |
19 | 19 | <div style="width: 47%; float: left; margin-right: 5%"> |
20 | 20 | |
21 | | -<form action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book')) ?>" method="post" id="mw-collection-title-form"> |
| 21 | +<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post" id="mw-collection-title-form"> |
22 | 22 | <table id="mw-collection-title-table" style="width: 80%; background-color: transparent;" align="center"> |
23 | 23 | <tbody> |
24 | 24 | <tr> |
25 | | - <td class="mw-label"><label for="titleInput"><?php $this->msg('coll-title') ?></label></td> |
26 | | - <td class="mw-input"><input id="titleInput" type="text" name="collectionTitle" value="<?php echo htmlspecialchars($this->data['collection']['title']) ?>" /></td> |
| 25 | + <td class="mw-label"><label for="titleInput"><?php $this->msg( 'coll-title' ) ?></label></td> |
| 26 | + <td class="mw-input"><input id="titleInput" type="text" name="collectionTitle" value="<?php echo htmlspecialchars( $this->data['collection']['title'] ) ?>" /></td> |
27 | 27 | </tr> |
28 | 28 | <tr> |
29 | | - <td class="mw-label"><label for="subtitleInput"><?php $this->msg('coll-subtitle') ?></label></td> |
30 | | - <td class="mw-input"><input id="subtitleInput" type="text" name="collectionSubtitle" value="<?php echo htmlspecialchars($this->data['collection']['subtitle']) ?>" /></td> |
| 29 | + <td class="mw-label"><label for="subtitleInput"><?php $this->msg( 'coll-subtitle' ) ?></label></td> |
| 30 | + <td class="mw-input"><input id="subtitleInput" type="text" name="collectionSubtitle" value="<?php echo htmlspecialchars( $this->data['collection']['subtitle'] ) ?>" /></td> |
31 | 31 | </tr> |
32 | 32 | </tbody> |
33 | 33 | </table> |
34 | 34 | <input type="hidden" name="bookcmd" value="set_titles" /> |
35 | 35 | <noscript> |
36 | | - <input type="submit" value="<?php $this->msg('coll-update') ?>" /> |
| 36 | + <input type="submit" value="<?php $this->msg( 'coll-update' ) ?>" /> |
37 | 37 | </noscript> |
38 | 38 | </form> |
39 | 39 | |
— | — | @@ -44,9 +44,9 @@ |
45 | 45 | ?> |
46 | 46 | </div> |
47 | 47 | <div style="display:none"> |
48 | | - <span id="newChapterText"><?php $this->msg('coll-new_chapter') ?></span> |
49 | | - <span id="renameChapterText"><?php $this->msg('coll-rename_chapter') ?></span> |
50 | | - <span id="clearCollectionConfirmText"><?php $this->msg('coll-clear_collection_confirm') ?></span> |
| 48 | + <span id="newChapterText"><?php $this->msg( 'coll-new_chapter' ) ?></span> |
| 49 | + <span id="renameChapterText"><?php $this->msg( 'coll-rename_chapter' ) ?></span> |
| 50 | + <span id="clearCollectionConfirmText"><?php $this->msg( 'coll-clear_collection_confirm' ) ?></span> |
51 | 51 | </div> |
52 | 52 | |
53 | 53 | </div> |
— | — | @@ -54,37 +54,37 @@ |
55 | 55 | <div style="width: 47%; float: left"> |
56 | 56 | |
57 | 57 | <div style="margin-bottom: 10px; padding: 10px; border: 1px solid #aaa; background-color: #f9f9f9;"> |
58 | | - <h2><span class="mw-headline"><?php $this->msg('coll-book_title') ?></span></h2> |
| 58 | + <h2><span class="mw-headline"><?php $this->msg( 'coll-book_title' ) ?></span></h2> |
59 | 59 | <?php |
60 | 60 | $partnerData = $this->data['podpartners']['pediapress']; |
61 | | -$this->msgWiki('coll-book_text'); |
| 61 | +$this->msgWiki( 'coll-book_text' ); |
62 | 62 | ?> |
63 | 63 | <div> |
64 | 64 | <div style="float:right"> |
65 | | - <form action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book')) ?>" method="post"> |
| 65 | + <form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post"> |
66 | 66 | <input type="hidden" name="bookcmd" value="post_zip" /> |
67 | 67 | <input type="hidden" name="partner" value="pediapress" /> |
68 | | - <input type="submit" value="<?php echo wfMsgHtml('coll-order_from_pp', htmlspecialchars($partnerData['name'])) ?>" class="order" <?php if (count($this->data['collection']['items']) == 0) { ?> disabled="disabled"<?php } ?> /> |
| 68 | + <input type="submit" value="<?php echo wfMsgHtml( 'coll-order_from_pp', htmlspecialchars( $partnerData['name'] ) ) ?>" class="order" <?php if ( count( $this->data['collection']['items'] ) == 0 ) { ?> disabled="disabled"<?php } ?> /> |
69 | 69 | </form> |
70 | 70 | </div> |
71 | 71 | <?php |
72 | | -$t = Title::newFromText(wfMsgForContent('coll-order_info_article')); |
| 72 | +$t = Title::newFromText( wfMsgForContent( 'coll-order_info_article' ) ); |
73 | 73 | if ( $t && $t->exists() ) { ?> |
74 | 74 | <div id="coll-more_info" style="display:none"> |
75 | | - <a href="javascript:void(0)" onclick="coll_toggle_order_info(true);"><img src="<?php echo htmlspecialchars($mediapath . "collapse.png") ?>" width="10" height="10" alt="" /> <?php $this->msg('coll-more_info') ?></a> |
| 75 | + <a href="javascript:void(0)" onclick="coll_toggle_order_info(true);"><img src="<?php echo htmlspecialchars( $mediapath . "collapse.png" ) ?>" width="10" height="10" alt="" /> <?php $this->msg( 'coll-more_info' ) ?></a> |
76 | 76 | </div> |
77 | 77 | <div id="coll-hide_info" style="display:none"> |
78 | | - <a href="javascript:void(0)" onclick="coll_toggle_order_info(false);"><img src="<?php echo htmlspecialchars($mediapath . "expand.png") ?>" width="10" height="10" alt="" /> <?php $this->msg('coll-hide_info') ?></a> |
| 78 | + <a href="javascript:void(0)" onclick="coll_toggle_order_info(false);"><img src="<?php echo htmlspecialchars( $mediapath . "expand.png" ) ?>" width="10" height="10" alt="" /> <?php $this->msg( 'coll-hide_info' ) ?></a> |
79 | 79 | </div> |
80 | 80 | <?php } else { ?> |
81 | | - <a href="<?php echo htmlspecialchars($partnerData['url']) ?>" target="_blank"><?php echo wfMsgHtml('coll-about_pp', htmlspecialchars($partnerData['name'])) ?></a> |
| 81 | + <a href="<?php echo htmlspecialchars( $partnerData['url'] ) ?>" target="_blank"><?php echo wfMsgHtml( 'coll-about_pp', htmlspecialchars( $partnerData['name'] ) ) ?></a> |
82 | 82 | <?php } ?> |
83 | 83 | </div> |
84 | 84 | <?php |
85 | | -if ($t && $t->exists() ) { ?> |
| 85 | +if ( $t && $t->exists() ) { ?> |
86 | 86 | <div id="coll-order_info" style="display:none; margin-top: 2em;"> |
87 | 87 | <?php |
88 | | -echo $GLOBALS['wgParser']->parse('{{:' . $t . '}}', |
| 88 | +echo $GLOBALS['wgParser']->parse( '{{:' . $t . '}}', |
89 | 89 | $GLOBALS['wgTitle'], |
90 | 90 | $GLOBALS['wgOut']->parserOptions(), |
91 | 91 | true |
— | — | @@ -95,92 +95,92 @@ |
96 | 96 | </div> |
97 | 97 | |
98 | 98 | <div style="margin-bottom: 10px; padding: 10px; border: 1px solid #aaa; background-color: #f9f9f9;"> |
99 | | - <h2><span class="mw-headline"><?php $this->msg('coll-download_title') ?></span></h2> |
100 | | - <?php if (count($this->data['formats']) == 1) { |
101 | | - $writer = array_rand($this->data['formats']); |
| 99 | + <h2><span class="mw-headline"><?php $this->msg( 'coll-download_title' ) ?></span></h2> |
| 100 | + <?php if ( count( $this->data['formats'] ) == 1 ) { |
| 101 | + $writer = array_rand( $this->data['formats'] ); |
102 | 102 | echo $GLOBALS['wgParser']->parse( |
103 | | - wfMsgNoTrans('coll-download_as_text', $this->data['formats'][$writer]), |
| 103 | + wfMsgNoTrans( 'coll-download_as_text', $this->data['formats'][$writer] ), |
104 | 104 | $GLOBALS['wgTitle'], |
105 | 105 | $GLOBALS['wgOut']->parserOptions(), |
106 | 106 | true |
107 | 107 | )->getText(); |
108 | | - $buttonLabel = wfMsgHtml('coll-download_as', htmlspecialchars($this->data['formats'][$writer])); |
| 108 | + $buttonLabel = wfMsgHtml( 'coll-download_as', htmlspecialchars( $this->data['formats'][$writer] ) ); |
109 | 109 | } else { |
110 | | - $this->msgWiki('coll-download_text'); |
111 | | - $buttonLabel = wfMsgHtml('coll-download'); |
| 110 | + $this->msgWiki( 'coll-download_text' ); |
| 111 | + $buttonLabel = wfMsgHtml( 'coll-download' ); |
112 | 112 | } ?> |
113 | | - <form id="downloadForm" action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book')) ?>" method="post"> |
| 113 | + <form id="downloadForm" action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post"> |
114 | 114 | <table style="width:100%; background-color: transparent;"><tr><td><tbody><tr><td> |
115 | | - <?php if (count($this->data['formats']) == 1) { ?> |
116 | | - <input type="hidden" name="writer" value="<?php echo htmlspecialchars($writer) ?>" /> |
| 115 | + <?php if ( count( $this->data['formats'] ) == 1 ) { ?> |
| 116 | + <input type="hidden" name="writer" value="<?php echo htmlspecialchars( $writer ) ?>" /> |
117 | 117 | <?php } else { ?> |
118 | | - <label for="formatSelect"><?php $this->msg('coll-format_label') ?></label> |
| 118 | + <label for="formatSelect"><?php $this->msg( 'coll-format_label' ) ?></label> |
119 | 119 | <select id="formatSelect" name="writer"> |
120 | | - <?php foreach ($this->data['formats'] as $writer => $name) { ?> |
121 | | - <option value="<?php echo htmlspecialchars($writer) ?>"><?php echo htmlspecialchars($name) ?></option> |
| 120 | + <?php foreach ( $this->data['formats'] as $writer => $name ) { ?> |
| 121 | + <option value="<?php echo htmlspecialchars( $writer ) ?>"><?php echo htmlspecialchars( $name ) ?></option> |
122 | 122 | <?php } ?> |
123 | 123 | </select> |
124 | 124 | <?php } ?> |
125 | 125 | </td><td style="text-align:right; vertical-align:bottom;"> |
126 | 126 | <input type="hidden" name="bookcmd" value="render" /> |
127 | | - <input id="downloadButton" type="submit" value="<?php echo $buttonLabel ?>"<?php if (count($this->data['collection']['items']) == 0) { ?> disabled="disabled"<?php } ?> /> |
| 127 | + <input id="downloadButton" type="submit" value="<?php echo $buttonLabel ?>"<?php if ( count( $this->data['collection']['items'] ) == 0 ) { ?> disabled="disabled"<?php } ?> /> |
128 | 128 | </td></tr></tbody></table> |
129 | 129 | </form> |
130 | 130 | </div> |
131 | 131 | |
132 | 132 | <?php |
133 | | - if ($GLOBALS['wgUser']->isLoggedIn()) { |
134 | | - $canSaveUserPage = $GLOBALS['wgUser']->isAllowed('collectionsaveasuserpage'); |
135 | | - $canSaveCommunityPage = $GLOBALS['wgUser']->isAllowed('collectionsaveascommunitypage'); |
| 133 | + if ( $GLOBALS['wgUser']->isLoggedIn() ) { |
| 134 | + $canSaveUserPage = $GLOBALS['wgUser']->isAllowed( 'collectionsaveasuserpage' ); |
| 135 | + $canSaveCommunityPage = $GLOBALS['wgUser']->isAllowed( 'collectionsaveascommunitypage' ); |
136 | 136 | } |
137 | | - if ($GLOBALS['wgEnableWriteAPI'] && ($canSaveUserPage || $canSaveCommunityPage)) { |
| 137 | + if ( $GLOBALS['wgEnableWriteAPI'] && ( $canSaveUserPage || $canSaveCommunityPage ) ) { |
138 | 138 | ?> |
139 | 139 | <div id="coll-savebox" style="margin-bottom: 10px; padding: 10px; border: 1px solid #aaa; background-color: #f9f9f9;"> |
140 | | - <h2><span class="mw-headline"><?php $this->msg('coll-save_collection_title') ?></span></h2> |
| 140 | + <h2><span class="mw-headline"><?php $this->msg( 'coll-save_collection_title' ) ?></span></h2> |
141 | 141 | <?php |
142 | | - $this->msgWiki('coll-save_collection_text'); |
143 | | - $bookname = wfMsgForContent('coll-collections'); |
| 142 | + $this->msgWiki( 'coll-save_collection_text' ); |
| 143 | + $bookname = wfMsgForContent( 'coll-collections' ); |
144 | 144 | $communityCollNS = $GLOBALS['wgCommunityCollectionNamespace']; |
145 | 145 | ?> |
146 | | - <form id="saveForm" action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book')) ?>" method="post"> |
| 146 | + <form id="saveForm" action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post"> |
147 | 147 | <table style="width:100%; background-color: transparent;"><tbody> |
148 | | - <?php if ($canSaveUserPage) { ?> |
| 148 | + <?php if ( $canSaveUserPage ) { ?> |
149 | 149 | <tr><td> |
150 | | - <?php if ($canSaveCommunityPage) { ?> |
| 150 | + <?php if ( $canSaveCommunityPage ) { ?> |
151 | 151 | <input id="personalCollType" type="radio" name="colltype" value="personal" checked="checked" /> |
152 | 152 | <?php } else { ?> |
153 | 153 | <input type="hidden" name="colltype" value="personal" /> |
154 | 154 | <?php } ?> |
155 | | - <label for="personalCollTitle"><a href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Prefixindex', 'prefix=' . wfUrlencode($this->data['user-book-prefix']))) ?>"><?php echo htmlspecialchars($this->data['user-book-prefix']) ?></a></label> |
| 155 | + <label for="personalCollTitle"><a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Prefixindex', 'prefix=' . wfUrlencode( $this->data['user-book-prefix'] ) ) ) ?>"><?php echo htmlspecialchars( $this->data['user-book-prefix'] ) ?></a></label> |
156 | 156 | </td> |
157 | 157 | <td style="text-align:right;"> |
158 | 158 | <input id="personalCollTitle" type="text" name="pcollname" /> |
159 | 159 | </td></tr> |
160 | 160 | <?php } // if ($canSaveUserPage) ?> |
161 | | - <?php if ($canSaveCommunityPage) { ?> |
| 161 | + <?php if ( $canSaveCommunityPage ) { ?> |
162 | 162 | <tr><td> |
163 | | - <?php if ($canSaveUserPage) { ?> |
| 163 | + <?php if ( $canSaveUserPage ) { ?> |
164 | 164 | <input id="communityCollType" type="radio" name="colltype" value="community" /> |
165 | 165 | <?php } else { ?> |
166 | 166 | <input type="hidden" name="colltype" value="community" /> |
167 | 167 | <?php } ?> |
168 | | - <label for="communityCollTitle"><a href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Prefixindex', 'prefix=' . wfUrlencode($this->data['community-book-prefix']))) ?>"><?php echo htmlspecialchars($this->data['community-book-prefix']) ?></a></label> |
| 168 | + <label for="communityCollTitle"><a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Prefixindex', 'prefix=' . wfUrlencode( $this->data['community-book-prefix'] ) ) ) ?>"><?php echo htmlspecialchars( $this->data['community-book-prefix'] ) ?></a></label> |
169 | 169 | </td> |
170 | 170 | <td style="text-align:right;"> |
171 | 171 | <input id="communityCollTitle" type="text" name="ccollname" disabled="disabled" /> |
172 | 172 | </td></tr> |
173 | 173 | <?php } // if ($canSaveCommunityPage) ?> |
174 | 174 | <tr><td> </td><td style="text-align:right;"> |
175 | | - <input id="saveButton" type="submit" value="<?php $this->msg('coll-save_collection') ?>"<?php if (count($this->data['collection']['items']) == 0) { ?> disabled="disabled"<?php } ?> /> |
| 175 | + <input id="saveButton" type="submit" value="<?php $this->msg( 'coll-save_collection' ) ?>"<?php if ( count( $this->data['collection']['items'] ) == 0 ) { ?> disabled="disabled"<?php } ?> /> |
176 | 176 | </tr></tbody></table> |
177 | | - <input name="token" type="hidden" value="<?php echo htmlspecialchars($GLOBALS['wgUser']->editToken()) ?>" /> |
| 177 | + <input name="token" type="hidden" value="<?php echo htmlspecialchars( $GLOBALS['wgUser']->editToken() ) ?>" /> |
178 | 178 | <input name="bookcmd" type="hidden" value="save_collection" /> |
179 | 179 | </form> |
180 | 180 | |
181 | 181 | <?php |
182 | | - $t = wfMsgForContent('coll-bookscategory'); |
183 | | - if ( !wfEmptyMsg('coll-bookscategory', $t) && $t != '-') { |
184 | | - $this->msgWiki('coll-save_category'); |
| 182 | + $t = wfMsgForContent( 'coll-bookscategory' ); |
| 183 | + if ( !wfEmptyMsg( 'coll-bookscategory', $t ) && $t != '-' ) { |
| 184 | + $this->msgWiki( 'coll-save_category' ); |
185 | 185 | } |
186 | 186 | ?> |
187 | 187 | </div> |
— | — | @@ -199,16 +199,16 @@ |
200 | 200 | * @ingroup Templates |
201 | 201 | */ |
202 | 202 | class CollectionListTemplate extends QuickTemplate { |
203 | | - function execute() { |
| 203 | + function execute() { |
204 | 204 | $mediapath = $GLOBALS['wgScriptPath'] . '/extensions/Collection/images/'; |
205 | 205 | ?> |
206 | 206 | |
207 | 207 | <div style="text-align: center; padding: 2px; margin-top: 20px; margin-bottom: 2px; border: 1px solid #aaa; background-color: #f9f9f9;"> |
208 | 208 | <div> |
209 | | -<a class="makeVisible" style="margin-right: 3em;<?php if (!isset($this->data['is_ajax'])) { echo ' display:none;'; } ?>" onclick="return coll_create_chapter()" href="javascript:void(0);"><?php $this->msg('coll-create_chapter') ?></a> |
210 | | -<?php if (count($this->data['collection']['items']) > 0) { ?> |
211 | | -<a style="margin-right: 3em" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'sort_items'))) ?>"><?php $this->msg('coll-sort_alphabetically') ?></a> |
212 | | -<a onclick="return coll_clear_collection()" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'clear_collection'))) ?>"><?php $this->msg('coll-clear_collection') ?></a> |
| 209 | +<a class="makeVisible" style="margin-right: 3em;<?php if ( !isset( $this->data['is_ajax'] ) ) { echo ' display:none;'; } ?>" onclick="return coll_create_chapter()" href="javascript:void(0);"><?php $this->msg( 'coll-create_chapter' ) ?></a> |
| 210 | +<?php if ( count( $this->data['collection']['items'] ) > 0 ) { ?> |
| 211 | +<a style="margin-right: 3em" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'sort_items' ) ) ) ?>"><?php $this->msg( 'coll-sort_alphabetically' ) ?></a> |
| 212 | +<a onclick="return coll_clear_collection()" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'clear_collection' ) ) ) ?>"><?php $this->msg( 'coll-clear_collection' ) ?></a> |
213 | 213 | <?php } ?> |
214 | 214 | </div> |
215 | 215 | </div> |
— | — | @@ -217,66 +217,66 @@ |
218 | 218 | <div style="padding: 10px 20px; border: 1px solid rgb(170, 170, 170)"> |
219 | 219 | |
220 | 220 | <?php |
221 | | -if (count($this->data['collection']['items']) == 0) { ?> |
222 | | -<em id="emptyCollection"><?php $this->msg('coll-empty_collection'); ?></em> |
| 221 | +if ( count( $this->data['collection']['items'] ) == 0 ) { ?> |
| 222 | +<em id="emptyCollection"><?php $this->msg( 'coll-empty_collection' ); ?></em> |
223 | 223 | <?php } else { ?> |
224 | 224 | <div style="text-align: center; margin-bottom: 10px"> |
225 | | -<em class="makeVisible" style="display:none; font-size: 95%"><?php $this->msg('coll-drag_and_drop') ?></em> |
| 225 | +<em class="makeVisible" style="display:none; font-size: 95%"><?php $this->msg( 'coll-drag_and_drop' ) ?></em> |
226 | 226 | </div> |
227 | | -<?php }?> |
| 227 | +<?php } ?> |
228 | 228 | |
229 | 229 | <ul id="collectionList" style="list-style: none; margin-left: 0;"> |
230 | 230 | |
231 | 231 | <?php |
232 | | -foreach($this->data['collection']['items'] as $index => $item) { |
233 | | - if ($item['type'] == 'article') { ?> |
| 232 | +foreach ( $this->data['collection']['items'] as $index => $item ) { |
| 233 | + if ( $item['type'] == 'article' ) { ?> |
234 | 234 | <li id="item-<?php echo intval( $index ) ?>" class="article"> |
235 | | - <a onclick="return coll_remove_item(<?php echo intval( $index ) ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'remove_item', 'index' => $index))) ?>" title="<?php $this->msg('coll-remove') ?>"><img src="<?php echo htmlspecialchars($mediapath . "remove.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-remove') ?>" /></a><a> |
| 235 | + <a onclick="return coll_remove_item(<?php echo intval( $index ) ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'remove_item', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-remove' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "remove.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-remove' ) ?>" /></a><a> |
236 | 236 | <noscript> |
237 | | - <?php if ($index == 0) { ?> |
238 | | - <img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" /> |
| 237 | + <?php if ( $index == 0 ) { ?> |
| 238 | + <img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" /> |
239 | 239 | <?php } else { ?> |
240 | | - <a onclick="return coll_move_item(<?php echo intval( $index ) . ', -1' ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array( 'bookcmd' => 'move_item', 'delta' => '-1', 'index' => $index))) ?>" title="<?php $this->msg('coll-move_up') ?>"><img src="<?php echo htmlspecialchars($mediapath . "up.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-move_up') ?>" /></a> |
| 240 | + <a onclick="return coll_move_item(<?php echo intval( $index ) . ', -1' ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta' => '-1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_up' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "up.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-move_up' ) ?>" /></a> |
241 | 241 | <?php } |
242 | | - if ($index == count($this->data['collection']['items']) - 1) { ?> |
243 | | - <img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" /> |
| 242 | + if ( $index == count( $this->data['collection']['items'] ) - 1 ) { ?> |
| 243 | + <img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" /> |
244 | 244 | <?php } else { ?> |
245 | | - <a onclick="return coll_move_item(<?php echo intval( $index ) . ', 1' ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'move_item', 'delta' => '1', 'index' => $index))) ?>" title="<?php $this->msg('coll-move_down') ?>"><img src="<?php echo htmlspecialchars($mediapath . "down.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-move_down') ?>" /></a> |
| 245 | + <a onclick="return coll_move_item(<?php echo intval( $index ) . ', 1' ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta' => '1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_down' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "down.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-move_down' ) ?>" /></a> |
246 | 246 | <?php } ?> |
247 | 247 | </noscript> |
248 | | - <?php if ($item['currentVersion'] == 0) { |
| 248 | + <?php if ( $item['currentVersion'] == 0 ) { |
249 | 249 | $url = $item['url'] . '?oldid=' . $item['revision']; |
250 | 250 | } else { |
251 | 251 | $url = $item['url']; |
252 | 252 | } |
253 | 253 | ?> |
254 | | - <a href="<?php echo htmlspecialchars( $url ) ?>" title="<?php $this->msg('coll-show') ?>"><img src="<?php echo htmlspecialchars($mediapath . "show.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-show') ?>" /></a> |
| 254 | + <a href="<?php echo htmlspecialchars( $url ) ?>" title="<?php $this->msg( 'coll-show' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "show.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-show' ) ?>" /></a> |
255 | 255 | <span class="title sortableitem" style="margin-left: 1em;"> |
256 | | - <?php if (isset($item['displaytitle']) && $item['displaytitle'] != '') { |
257 | | - echo htmlspecialchars($item['displaytitle']); |
| 256 | + <?php if ( isset( $item['displaytitle'] ) && $item['displaytitle'] != '' ) { |
| 257 | + echo htmlspecialchars( $item['displaytitle'] ); |
258 | 258 | } else { |
259 | | - echo htmlspecialchars($item['title']); |
| 259 | + echo htmlspecialchars( $item['title'] ); |
260 | 260 | } ?> |
261 | 261 | </span> |
262 | 262 | </li> |
263 | | - <?php } elseif ($item['type'] == 'chapter') { ?> |
| 263 | + <?php } elseif ( $item['type'] == 'chapter' ) { ?> |
264 | 264 | <li id="item-<?php echo intval( $index ) ?>" class="chapter" style="margin-top:0.3em;"> |
265 | | - <a onclick="return coll_remove_item(<?php echo intval( $index ) ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'remove_item', 'index=' => $index))) ?>" title="<?php $this->msg('coll-remove') ?>"><img src="<?php echo htmlspecialchars($mediapath . "remove.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-remove') ?>" /></a> |
| 265 | + <a onclick="return coll_remove_item(<?php echo intval( $index ) ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'remove_item', 'index=' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-remove' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "remove.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-remove' ) ?>" /></a> |
266 | 266 | <noscript> |
267 | | - <?php if ($index == 0) { ?> |
268 | | - <img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" /> |
| 267 | + <?php if ( $index == 0 ) { ?> |
| 268 | + <img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" /> |
269 | 269 | <?php } else { ?> |
270 | | - <a onclick="return coll_move_item(<?php echo intval( $index ) . ', -1' ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'move_item', 'delta' => '-1', 'index' => $index))) ?>" title="<?php $this->msg('coll-move_up') ?>"><img src="<?php echo htmlspecialchars($mediapath . "up.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-move_up') ?>" /></a> |
| 270 | + <a onclick="return coll_move_item(<?php echo intval( $index ) . ', -1' ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta' => '-1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_up' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "up.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-move_up' ) ?>" /></a> |
271 | 271 | <?php } |
272 | | - if ($index == count($this->data['collection']['items']) - 1) { ?> |
273 | | - <img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" /> |
| 272 | + if ( $index == count( $this->data['collection']['items'] ) - 1 ) { ?> |
| 273 | + <img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" /> |
274 | 274 | <?php } else { ?> |
275 | | - <a onclick="return coll_move_item(<?php echo intval( $index ) . ', 1' ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'move_item', 'delta' => '1', 'index' => $index))) ?>" title="<?php $this->msg('coll-move_down') ?>"><img src="<?php echo htmlspecialchars($mediapath . "down.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-move_down') ?>" /></a> |
| 275 | + <a onclick="return coll_move_item(<?php echo intval( $index ) . ', 1' ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta' => '1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_down' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "down.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-move_down' ) ?>" /></a> |
276 | 276 | <?php } ?> |
277 | 277 | </noscript> |
278 | | - <img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" /> |
279 | | - <strong class="title sortableitem" style="margin-left: 0.2em;"><?php echo htmlspecialchars($item['title']) ?></strong> |
280 | | - <a class="makeVisible" <?php if (!isset($this->data['is_ajax'])) { echo 'style="display:none"'; } ?> onclick="<?php echo htmlspecialchars('return coll_rename_chapter(' . intval($index) . ', ' . Xml::encodeJsVar($item['title']) . ')') ?>" href="javascript:void(0)">[<?php $this->msg('coll-rename') ?>]</a> |
| 278 | + <img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" /> |
| 279 | + <strong class="title sortableitem" style="margin-left: 0.2em;"><?php echo htmlspecialchars( $item['title'] ) ?></strong> |
| 280 | + <a class="makeVisible" <?php if ( !isset( $this->data['is_ajax'] ) ) { echo 'style="display:none"'; } ?> onclick="<?php echo htmlspecialchars( 'return coll_rename_chapter(' . intval( $index ) . ', ' . Xml::encodeJsVar( $item['title'] ) . ')' ) ?>" href="javascript:void(0)">[<?php $this->msg( 'coll-rename' ) ?>]</a> |
281 | 281 | </li> |
282 | 282 | <?php } |
283 | 283 | } ?> |
— | — | @@ -296,14 +296,14 @@ |
297 | 297 | function execute() { |
298 | 298 | ?> |
299 | 299 | |
300 | | -<?php $this->msgWiki('coll-load_overwrite_text'); ?> |
| 300 | +<?php $this->msgWiki( 'coll-load_overwrite_text' ); ?> |
301 | 301 | |
302 | | -<form action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book')) ?>" method="post"> |
303 | | - <input name="overwrite" type="submit" value="<?php $this->msg('coll-overwrite') ?>" /> |
304 | | - <input name="append" type="submit" value="<?php $this->msg('coll-append') ?>" /> |
305 | | - <input name="cancel" type="submit" value="<?php $this->msg('coll-cancel') ?>" /> |
| 302 | +<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post"> |
| 303 | + <input name="overwrite" type="submit" value="<?php $this->msg( 'coll-overwrite' ) ?>" /> |
| 304 | + <input name="append" type="submit" value="<?php $this->msg( 'coll-append' ) ?>" /> |
| 305 | + <input name="cancel" type="submit" value="<?php $this->msg( 'coll-cancel' ) ?>" /> |
306 | 306 | <input name="bookcmd" type="hidden" value="load_collection" /> |
307 | | - <input name="colltitle" type="hidden" value="<?php echo htmlspecialchars($this->data['title']->getPrefixedText()) ?>" /> |
| 307 | + <input name="colltitle" type="hidden" value="<?php echo htmlspecialchars( $this->data['title']->getPrefixedText() ) ?>" /> |
308 | 308 | </form> |
309 | 309 | |
310 | 310 | <?php |
— | — | @@ -318,17 +318,17 @@ |
319 | 319 | function execute() { |
320 | 320 | ?> |
321 | 321 | |
322 | | -<h2><span class="mw-headline"><?php $this->msg('coll-overwrite_title') ?></span></h2> |
| 322 | +<h2><span class="mw-headline"><?php $this->msg( 'coll-overwrite_title' ) ?></span></h2> |
323 | 323 | |
324 | | -<p><?php echo $GLOBALS['wgParser']->parse(wfMsgNoTrans('coll-overwrite_text', $this->data['title']->getPrefixedText()), $GLOBALS['wgTitle'], $GLOBALS['wgOut']->parserOptions(), true)->getText() ?></p> |
| 324 | +<p><?php echo $GLOBALS['wgParser']->parse( wfMsgNoTrans( 'coll-overwrite_text', $this->data['title']->getPrefixedText() ), $GLOBALS['wgTitle'], $GLOBALS['wgOut']->parserOptions(), true )->getText() ?></p> |
325 | 325 | |
326 | | -<form action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book')) ?>" method="post"> |
327 | | - <input name="overwrite" type="submit" value="<?php $this->msg('coll-yes') ?>" /> |
328 | | - <input name="abort" type="submit" value="<?php $this->msg('coll-no') ?>" /> |
329 | | - <input name="pcollname" type="hidden" value="<?php echo htmlspecialchars($this->data['pcollname']) ?>" /> |
330 | | - <input name="ccollname" type="hidden" value="<?php echo htmlspecialchars($this->data['ccollname']) ?>" /> |
331 | | - <input name="colltype" type="hidden" value="<?php echo htmlspecialchars($this->data['colltype']) ?>" /> |
332 | | - <input name="token" type="hidden" value="<?php echo htmlspecialchars($GLOBALS['wgUser']->editToken()) ?>" /> |
| 326 | +<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post"> |
| 327 | + <input name="overwrite" type="submit" value="<?php $this->msg( 'coll-yes' ) ?>" /> |
| 328 | + <input name="abort" type="submit" value="<?php $this->msg( 'coll-no' ) ?>" /> |
| 329 | + <input name="pcollname" type="hidden" value="<?php echo htmlspecialchars( $this->data['pcollname'] ) ?>" /> |
| 330 | + <input name="ccollname" type="hidden" value="<?php echo htmlspecialchars( $this->data['ccollname'] ) ?>" /> |
| 331 | + <input name="colltype" type="hidden" value="<?php echo htmlspecialchars( $this->data['colltype'] ) ?>" /> |
| 332 | + <input name="token" type="hidden" value="<?php echo htmlspecialchars( $GLOBALS['wgUser']->editToken() ) ?>" /> |
333 | 333 | <input name="bookcmd" type="hidden" value="save_collection" /> |
334 | 334 | </form> |
335 | 335 | |
— | — | @@ -345,21 +345,21 @@ |
346 | 346 | ?> |
347 | 347 | |
348 | 348 | |
349 | | -<span style="display:none" id="renderingStatusText"><?php echo wfMsg('coll-rendering_status', '%PARAM%') ?></span> |
350 | | -<span style="display:none" id="renderingArticle"><?php echo ' ' . wfMsg('coll-rendering_article', '%PARAM%') ?></span> |
351 | | -<span style="display:none" id="renderingPage"><?php echo ' ' . wfMsg('coll-rendering_page', '%PARAM%') ?></span> |
| 349 | +<span style="display:none" id="renderingStatusText"><?php echo wfMsg( 'coll-rendering_status', '%PARAM%' ) ?></span> |
| 350 | +<span style="display:none" id="renderingArticle"><?php echo ' ' . wfMsg( 'coll-rendering_article', '%PARAM%' ) ?></span> |
| 351 | +<span style="display:none" id="renderingPage"><?php echo ' ' . wfMsg( 'coll-rendering_page', '%PARAM%' ) ?></span> |
352 | 352 | |
353 | | -<?php echo wfMsg('coll-rendering_text', $GLOBALS['wgLang']->formatNum($this->data['progress']), $this->data['status']) ?> |
| 353 | +<?php echo wfMsg( 'coll-rendering_text', number_format( $this->data['progress'], 2, '.', '' ), $this->data['status'] ) ?> |
354 | 354 | |
355 | 355 | <?php |
356 | 356 | if ( CollectionSession::isEnabled() ) { |
357 | | - $title_string = wfMsgForContent('coll-rendering_collection_info_text_article'); |
| 357 | + $title_string = wfMsgForContent( 'coll-rendering_collection_info_text_article' ); |
358 | 358 | } else { |
359 | | - $title_string = wfMsgForContent('coll-rendering_page_info_text_article'); |
| 359 | + $title_string = wfMsgForContent( 'coll-rendering_page_info_text_article' ); |
360 | 360 | } |
361 | | - $t = Title::newFromText($title_string); |
| 361 | + $t = Title::newFromText( $title_string ); |
362 | 362 | if ( $t && $t->exists() ) { |
363 | | - echo $GLOBALS['wgParser']->parse('{{:' . $t . '}}', |
| 363 | + echo $GLOBALS['wgParser']->parse( '{{:' . $t . '}}', |
364 | 364 | $GLOBALS['wgTitle'], |
365 | 365 | $GLOBALS['wgOut']->parserOptions(), |
366 | 366 | true |
— | — | @@ -376,42 +376,56 @@ |
377 | 377 | function execute() { |
378 | 378 | |
379 | 379 | echo $GLOBALS['wgParser']->parse( |
380 | | - wfMsgNoTrans('coll-rendering_finished_text', $this->data['download_url']), |
| 380 | + wfMsgNoTrans( 'coll-rendering_finished_text', $this->data['download_url'] ), |
381 | 381 | $GLOBALS['wgTitle'], |
382 | 382 | $GLOBALS['wgOut']->parserOptions(), |
383 | 383 | true |
384 | 384 | )->getText(); |
385 | 385 | |
386 | | -if ($this->data['is_cached']) { |
387 | | - $forceRenderURL = SkinTemplate::makeSpecialUrl('Book', 'bookcmd=forcerender&' . $this->data['query']); |
388 | | - echo wfMsg('coll-is_cached', htmlspecialchars($forceRenderURL)); |
| 386 | +if ( $this->data['is_cached'] ) { |
| 387 | + $forceRenderURL = SkinTemplate::makeSpecialUrl( 'Book', 'bookcmd=forcerender&' . $this->data['query'] ); |
| 388 | + echo wfMsg( 'coll-is_cached', htmlspecialchars( $forceRenderURL ) ); |
389 | 389 | } |
390 | 390 | echo $GLOBALS['wgParser']->parse( |
391 | | - wfMsgNoTrans('coll-excluded-templates', wfMsgForContent('coll-exclusion_category_title')), |
| 391 | + wfMsgNoTrans( 'coll-excluded-templates', wfMsgForContent( 'coll-exclusion_category_title' ) ), |
392 | 392 | $GLOBALS['wgTitle'], |
393 | 393 | $GLOBALS['wgOut']->parserOptions(), |
394 | 394 | true |
395 | 395 | )->getText(); |
396 | | -$title_string = wfMsgForContent('coll-template_blacklist_title'); |
397 | | -$t = Title::newFromText($title_string); |
| 396 | +$title_string = wfMsgForContent( 'coll-template_blacklist_title' ); |
| 397 | +$t = Title::newFromText( $title_string ); |
398 | 398 | if ( $t && $t->exists() ) { |
399 | 399 | echo $GLOBALS['wgParser']->parse( |
400 | | - wfMsgNoTrans('coll-blacklisted-templates', $title_string), |
| 400 | + wfMsgNoTrans( 'coll-blacklisted-templates', $title_string ), |
401 | 401 | $GLOBALS['wgTitle'], |
402 | 402 | $GLOBALS['wgOut']->parserOptions(), |
403 | 403 | true |
404 | 404 | )->getText(); |
405 | 405 | } |
406 | | -if ($this->data['return_to']) { |
| 406 | +if ( $this->data['return_to'] ) { |
407 | 407 | // We are doing this the hard way (i.e. via the HTML detour), to prevent |
408 | 408 | // the parser from replacing [[:Special:Book]] with a selflink. |
409 | | - $t = Title::newFromText($this->data['return_to']); |
| 409 | + $t = Title::newFromText( $this->data['return_to'] ); |
410 | 410 | echo wfMsg( |
411 | 411 | 'coll-return_to_collection', |
412 | | - htmlspecialchars($t->getFullURL()), |
413 | | - htmlspecialchars($this->data['return_to']) |
| 412 | + htmlspecialchars( $t->getFullURL() ), |
| 413 | + htmlspecialchars( $this->data['return_to'] ) |
414 | 414 | ); |
415 | 415 | } |
| 416 | + |
| 417 | +if ( CollectionSession::isEnabled() ) { |
| 418 | + $title_string = wfMsgForContent( 'coll-finished_collection_info_text_article' ); |
| 419 | +} else { |
| 420 | + $title_string = wfMsgForContent( 'coll-finished_page_info_text_article' ); |
| 421 | +} |
| 422 | +$t = Title::newFromText( $title_string ); |
| 423 | +if ( $t && $t->exists() ) { |
| 424 | + echo $GLOBALS['wgParser']->parse( '{{:' . $t . '}}', |
| 425 | + $GLOBALS['wgTitle'], |
| 426 | + $GLOBALS['wgOut']->parserOptions(), |
| 427 | + true |
| 428 | + )->getText(); |
| 429 | +} |
416 | 430 | ?> |
417 | 431 | |
418 | 432 | <?php |
— | — | @@ -430,7 +444,7 @@ |
431 | 445 | class CollectionSuggestTemplate extends QuickTemplate { |
432 | 446 | function execute () { |
433 | 447 | ?> |
434 | | -<script src="<?php echo htmlspecialchars($GLOBALS['wgScriptPath'] . "/extensions/Collection/js/jquery.js?" . $GLOBALS['wgCollectionStyleVersion']) ?>" type="<?php echo $GLOBALS['wgJsMimeType']; ?>"></script> |
| 448 | +<script src="<?php echo htmlspecialchars( $GLOBALS['wgScriptPath'] . "/extensions/Collection/js/jquery.js?" . $GLOBALS['wgCollectionStyleVersion'] ) ?>" type="<?php echo $GLOBALS['wgJsMimeType']; ?>"></script> |
435 | 449 | <script type="<?php echo $GLOBALS['wgJsMimeType']; ?>"> |
436 | 450 | /*<![CDATA[*/ |
437 | 451 | var collection_jQuery = jQuery.noConflict(); |
— | — | @@ -442,13 +456,13 @@ |
443 | 457 | <div id="collectionSuggestStatus" style="text-align: center; margin: 5px auto 10px auto; padding: 0 4px; border: 1px solid #ed9; background-color: #fea; visibility: hidden;"> </div> |
444 | 458 | <table style="width: 100%; border-spacing: 10px;"><tbody><tr> |
445 | 459 | <td style="padding: 10px; vertical-align: top;"> |
446 | | - <form method="post" action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'suggest'))) ?>"> |
447 | | - <strong style="font-size: 1.2em;"><?php $this->msg('coll-suggested_articles') ?></strong> |
448 | | - (<a href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'suggest', 'resetbans' => '1'))) ?>" title="<?php $this->msg('coll-suggest_reset_bans_tooltip') ?>"><?php $this->msg('coll-suggest_reset_bans') ?></a>) |
449 | | - <?php if (count($this->data['proposals']) > 0) { ?> |
| 460 | + <form method="post" action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest' ) ) ) ?>"> |
| 461 | + <strong style="font-size: 1.2em;"><?php $this->msg( 'coll-suggested_articles' ) ?></strong> |
| 462 | + (<a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'resetbans' => '1' ) ) ) ?>" title="<?php $this->msg( 'coll-suggest_reset_bans_tooltip' ) ?>"><?php $this->msg( 'coll-suggest_reset_bans' ) ?></a>) |
| 463 | + <?php if ( count( $this->data['proposals'] ) > 0 ) { ?> |
450 | 464 | <noscript> |
451 | 465 | <div style="float: right;"> |
452 | | - <input type="submit" value="<?php $this->msg('coll-suggest_add_selected') ?>" name="addselected" /> |
| 466 | + <input type="submit" value="<?php $this->msg( 'coll-suggest_add_selected' ) ?>" name="addselected" /> |
453 | 467 | </div> |
454 | 468 | </noscript> |
455 | 469 | <?php } ?> |
— | — | @@ -459,8 +473,8 @@ |
460 | 474 | </td> |
461 | 475 | <td style="width: 45%; vertical-align: top;"> |
462 | 476 | <div style="padding: 10px; border: 1px solid #aaa; background-color: #f9f9f9;"> |
463 | | - <strong style="font-size: 1.2em;"><?php $this->msg('coll-suggest_your_book') ?></strong> |
464 | | - (<span id="coll-num_pages"><?php echo wfMsgExt( 'coll-n_pages', 'parsemag', $GLOBALS['wgLang']->formatNum( $this->data['num_pages'] ) )?></span><?php echo wfMsg( 'pipe-separator' )?><a href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Book')) ?>" title="<?php $this->msg('coll-show_collection_tooltip') ?>"><?php $this->msg('coll-suggest_show') ?></a>) |
| 477 | + <strong style="font-size: 1.2em;"><?php $this->msg( 'coll-suggest_your_book' ) ?></strong> |
| 478 | + (<span id="coll-num_pages"><?php echo wfMsgExt( 'coll-n_pages', 'parsemag', $GLOBALS['wgLang']->formatNum( $this->data['num_pages'] ) )?></span><?php echo wfMsg( 'pipe-separator' )?><a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" title="<?php $this->msg( 'coll-show_collection_tooltip' ) ?>"><?php $this->msg( 'coll-suggest_show' ) ?></a>) |
465 | 479 | <ul id="collectionMembers" style="list-style: none; margin-left: 0;"> |
466 | 480 | <?php echo $this->getMemberList(); ?> |
467 | 481 | </ul> |
— | — | @@ -473,38 +487,38 @@ |
474 | 488 | |
475 | 489 | // needed for Ajax functions |
476 | 490 | function getProposalList () { |
477 | | - global $wgServer; |
| 491 | + global $wgServer; |
478 | 492 | global $wgScript; |
479 | 493 | |
480 | 494 | $mediapath = $GLOBALS['wgScriptPath'] . '/extensions/Collection/images/'; |
481 | | - $baseUrl = $wgServer . $wgScript ."/"; |
| 495 | + $baseUrl = $wgServer . $wgScript . "/"; |
482 | 496 | |
483 | 497 | $prop = $this->data['proposals']; |
484 | 498 | $out = ''; |
485 | 499 | |
486 | | - $num = count($prop); |
487 | | - if ($num == 0) { |
| 500 | + $num = count( $prop ); |
| 501 | + if ( $num == 0 ) { |
488 | 502 | return "<li>" . wfMsgHtml( 'coll-suggest_empty' ) . "</li>"; |
489 | 503 | } |
490 | 504 | |
491 | | - $artName= $prop[0]['name']; |
| 505 | + $artName = $prop[0]['name']; |
492 | 506 | $title = Title::newFromText( $artName ); |
493 | 507 | $url = $title->getLocalUrl(); |
494 | 508 | $out .= '<li style="margin-bottom: 10px; padding: 4px 4px; background-color: #ddddff; font-size: 1.4em; font-weight: bold;">'; |
495 | | - $out .= '<noscript><input type="checkbox" value="' . htmlspecialchars($artName) . '" name="articleList[]" /></noscript>'; |
496 | | - $out .= '<a onclick="' . htmlspecialchars('collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar(array($artName)) . '); return false;') . '" href="' . htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'suggest', 'add' => $artName))) . '" title="' . wfMsgHtml('coll-add_this_page') . '"><img src="' . htmlspecialchars($mediapath . 'silk-add.png') . '" width="16" height="16" alt=""></a> '; |
497 | | - $out .= '<a onclick="' . htmlspecialchars('collectionSuggestCall("BanArticle", ' . Xml::encodeJsVar(array($artName)) . '); return false;') . '" href="' . htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'suggest', 'ban' => $artName))) . '" title="' . wfMsgHtml('coll-suggest_ban_tooltip') . '"><img src="' . htmlspecialchars($mediapath . 'silk-cancel.png') . '" width="16" height="16" alt=""></a> '; |
498 | | - $out .= '<a href="' . htmlspecialchars($url) . '" title="' . htmlspecialchars($artName) . '">' . htmlspecialchars($artName) . '</a>'; |
| 509 | + $out .= '<noscript><input type="checkbox" value="' . htmlspecialchars( $artName ) . '" name="articleList[]" /></noscript>'; |
| 510 | + $out .= '<a onclick="' . htmlspecialchars( 'collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar( array( $artName ) ) . '); return false;' ) . '" href="' . htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'add' => $artName ) ) ) . '" title="' . wfMsgHtml( 'coll-add_this_page' ) . '"><img src="' . htmlspecialchars( $mediapath . 'silk-add.png' ) . '" width="16" height="16" alt=""></a> '; |
| 511 | + $out .= '<a onclick="' . htmlspecialchars( 'collectionSuggestCall("BanArticle", ' . Xml::encodeJsVar( array( $artName ) ) . '); return false;' ) . '" href="' . htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'ban' => $artName ) ) ) . '" title="' . wfMsgHtml( 'coll-suggest_ban_tooltip' ) . '"><img src="' . htmlspecialchars( $mediapath . 'silk-cancel.png' ) . '" width="16" height="16" alt=""></a> '; |
| 512 | + $out .= '<a href="' . htmlspecialchars( $url ) . '" title="' . htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) . '</a>'; |
499 | 513 | $out .= '</li>'; |
500 | 514 | |
501 | | - for ($i = 1; $i < $num; $i++) { |
502 | | - $artName= $prop[$i]['name']; |
| 515 | + for ( $i = 1; $i < $num; $i++ ) { |
| 516 | + $artName = $prop[$i]['name']; |
503 | 517 | $url = $baseUrl . $artName; |
504 | | - $url = str_replace(" ", "_", $url); |
| 518 | + $url = str_replace( " ", "_", $url ); |
505 | 519 | $out .= '<li style="padding-left: 4px;">'; |
506 | | - $out .= '<noscript><input type="checkbox" value="' . htmlspecialchars($artName) . '" name="articleList[]" /></noscript>'; |
507 | | - $out .= '<a onclick="' . htmlspecialchars('collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar(array($artName)) . '); return false;') . '" href="' . htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array('bookcmd' => 'suggest', 'add' => $artName))) . '" title="' . wfMsgHtml('coll-add_this_page') . '"><img src="' . htmlspecialchars($mediapath . 'silk-add.png') . '" width="16" height="16" alt=""></a> '; |
508 | | - $out .= '<a href="' . htmlspecialchars($url) . '" title="' . htmlspecialchars($artName) . '">' . htmlspecialchars($artName) . '</a>'; |
| 520 | + $out .= '<noscript><input type="checkbox" value="' . htmlspecialchars( $artName ) . '" name="articleList[]" /></noscript>'; |
| 521 | + $out .= '<a onclick="' . htmlspecialchars( 'collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar( array( $artName ) ) . '); return false;' ) . '" href="' . htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'add' => $artName ) ) ) . '" title="' . wfMsgHtml( 'coll-add_this_page' ) . '"><img src="' . htmlspecialchars( $mediapath . 'silk-add.png' ) . '" width="16" height="16" alt=""></a> '; |
| 522 | + $out .= '<a href="' . htmlspecialchars( $url ) . '" title="' . htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) . '</a>'; |
509 | 523 | $out .= '</li>'; |
510 | 524 | } |
511 | 525 | |
— | — | @@ -517,14 +531,14 @@ |
518 | 532 | $coll = $this->data['collection']; |
519 | 533 | $out = ''; |
520 | 534 | |
521 | | - $num = count($coll['items']); |
522 | | - if ($num == 0) $out .= "<li>" . wfMsgHtml( 'coll-suggest_empty' ) . "</li>"; |
| 535 | + $num = count( $coll['items'] ); |
| 536 | + if ( $num == 0 ) $out .= "<li>" . wfMsgHtml( 'coll-suggest_empty' ) . "</li>"; |
523 | 537 | |
524 | | - for ($i = 0; $i < $num; $i++) { |
| 538 | + for ( $i = 0; $i < $num; $i++ ) { |
525 | 539 | $artName = $coll['items'][$i]['title']; |
526 | | - if ($coll['items'][$i]['type'] == 'article') { |
527 | | - $out .= '<li><a href="' . htmlspecialchars(SkinTemplate::makeSpecialUrl('Book', array( 'bookcmd' => 'suggest', 'remove' => $artName))) . '" onclick="' . htmlspecialchars('collectionSuggestCall("RemoveArticle", ' . Xml::encodeJsVar(array($artName)) . '); return false;') . '" title="' . wfMsgHtml('coll-remove_this_page') . '"><img src="'.htmlspecialchars($mediapath . 'remove.png').'" width="10" height="10" alt=""></a> '; |
528 | | - $out .= '<a href="' . htmlspecialchars($coll['items'][$i]['url']) . '" title="' . htmlspecialchars($artName) . '">' . htmlspecialchars($artName) . '</a></li>'; |
| 540 | + if ( $coll['items'][$i]['type'] == 'article' ) { |
| 541 | + $out .= '<li><a href="' . htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'remove' => $artName ) ) ) . '" onclick="' . htmlspecialchars( 'collectionSuggestCall("RemoveArticle", ' . Xml::encodeJsVar( array( $artName ) ) . '); return false;' ) . '" title="' . wfMsgHtml( 'coll-remove_this_page' ) . '"><img src="' . htmlspecialchars( $mediapath . 'remove.png' ) . '" width="10" height="10" alt=""></a> '; |
| 542 | + $out .= '<a href="' . htmlspecialchars( $coll['items'][$i]['url'] ) . '" title="' . htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) . '</a></li>'; |
529 | 543 | } |
530 | 544 | } |
531 | 545 | |
Property changes on: branches/wmf/1.16wmf4/extensions/Collection |
___________________________________________________________________ |
Name: svn:mergeinfo |
532 | 546 | - /branches/wmf-deployment/extensions/Collection:60970 |
/trunk/extensions/Collection:62820-64656 |
533 | 547 | + /branches/wmf-deployment/extensions/Collection:60970 |
/trunk/extensions/Collection:62820-65974 |