Index: branches/snapshot-work/maintenance/parserTests.inc |
— | — | @@ -360,7 +360,7 @@ |
361 | 361 | $GLOBALS['wgContLang'] = $langObj; |
362 | 362 | |
363 | 363 | $GLOBALS['wgLoadBalancer']->loadMasterPos(); |
364 | | - $GLOBALS['wgMessageCache'] = new MessageCache( new BagOStuff(), false, 0, $GLOBALS['wgDBname'] ); |
| 364 | + //$GLOBALS['wgMessageCache'] = new MessageCache( new BagOStuff(), false, 0, $GLOBALS['wgDBname'] ); |
365 | 365 | $this->setupDatabase(); |
366 | 366 | |
367 | 367 | global $wgUser; |
Index: branches/snapshot-work/maintenance/mysql5/tables.sql |
— | — | @@ -809,7 +809,8 @@ |
810 | 810 | INDEX rc_namespace_title (rc_namespace, rc_title), |
811 | 811 | INDEX rc_cur_id (rc_cur_id), |
812 | 812 | INDEX new_name_timestamp(rc_new,rc_namespace,rc_timestamp), |
813 | | - INDEX rc_ip (rc_ip) |
| 813 | + INDEX rc_ip (rc_ip), |
| 814 | + INDEX rc_ns_usertext ( rc_namespace, rc_user_text ) |
814 | 815 | |
815 | 816 | ) TYPE=InnoDB, DEFAULT CHARSET=utf8; |
816 | 817 | |
Index: branches/snapshot-work/maintenance/updaters.inc |
— | — | @@ -762,6 +762,23 @@ |
763 | 763 | echo "Done. Please run maintenance/refreshLinks.php for a more thorough templatelinks update.\n"; |
764 | 764 | } |
765 | 765 | |
| 766 | +# July 2006 |
| 767 | +# Add ( rc_namespace, rc_user_text ) index [R. Church] |
| 768 | +function do_rc_indices_update() { |
| 769 | + global $wgDatabase; |
| 770 | + echo( "Checking for additional recent changes indices...\n" ); |
| 771 | + # See if we can find the index we want |
| 772 | + $info = $wgDatabase->indexInfo( 'recentchanges', 'rc_ns_usertext', __METHOD__ ); |
| 773 | + if( !$info ) { |
| 774 | + # None, so create |
| 775 | + echo( "...index on ( rc_namespace, rc_user_text ) not found; creating\n" ); |
| 776 | + dbsource( archive( 'patch-recentchanges-utindex.sql' ) ); |
| 777 | + } else { |
| 778 | + # Index seems to exist |
| 779 | + echo( "...seems to be ok\n" ); |
| 780 | + } |
| 781 | +} |
| 782 | + |
766 | 783 | function do_all_updates( $doShared = false ) { |
767 | 784 | global $wgNewTables, $wgNewFields, $wgRenamedTables, $wgSharedDB, $wgDatabase; |
768 | 785 | |
— | — | @@ -820,6 +837,8 @@ |
821 | 838 | do_logging_timestamp_index(); flush(); |
822 | 839 | |
823 | 840 | do_page_random_update(); flush(); |
| 841 | + |
| 842 | + do_rc_indices_update(); flush(); |
824 | 843 | |
825 | 844 | initialiseMessages(); flush(); |
826 | 845 | } |
Index: branches/snapshot-work/maintenance/archives/patch-ipb_anon_only.sql |
— | — | @@ -33,8 +33,8 @@ |
34 | 34 | ) TYPE=InnoDB; |
35 | 35 | |
36 | 36 | INSERT IGNORE INTO /*$wgDBprefix*/ipblocks_newunique |
37 | | - (ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end) |
38 | | - SELECT ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end |
| 37 | + (ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end, ipb_anon_only, ipb_create_account) |
| 38 | + SELECT ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end, 0 , ipb_user=0 |
39 | 39 | FROM /*$wgDBprefix*/ipblocks; |
40 | 40 | |
41 | 41 | DROP TABLE IF EXISTS /*$wgDBprefix*/ipblocks_old; |
Index: branches/snapshot-work/maintenance/archives/patch-recentchanges-utindex.sql |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +--- July 2006 |
| 3 | +--- Index on recentchanges.( rc_namespace, rc_user_text ) |
| 4 | +--- Helps the username filtering in Special:Newpages |
| 5 | +ALTER TABLE /*$wgDBprefix*/recentchanges ADD INDEX `rc_ns_usertext` ( `rc_namespace` , `rc_user_text` ); |
\ No newline at end of file |
Property changes on: branches/snapshot-work/maintenance/archives/patch-recentchanges-utindex.sql |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Index: branches/snapshot-work/maintenance/tables.sql |
— | — | @@ -795,7 +795,8 @@ |
796 | 796 | INDEX rc_namespace_title (rc_namespace, rc_title), |
797 | 797 | INDEX rc_cur_id (rc_cur_id), |
798 | 798 | INDEX new_name_timestamp(rc_new,rc_namespace,rc_timestamp), |
799 | | - INDEX rc_ip (rc_ip) |
| 799 | + INDEX rc_ip (rc_ip), |
| 800 | + INDEX rc_ns_usertext ( rc_namespace, rc_user_text ) |
800 | 801 | |
801 | 802 | ) TYPE=InnoDB; |
802 | 803 | |
Index: branches/snapshot-work/includes/Sanitizer.php |
— | — | @@ -327,7 +327,7 @@ |
328 | 328 | * @param array $args for the processing callback |
329 | 329 | * @return string |
330 | 330 | */ |
331 | | - function removeHTMLtags( $text, $processCallback = null, $args = array() ) { |
| 331 | + static function removeHTMLtags( $text, $processCallback = null, $args = array() ) { |
332 | 332 | global $wgUseTidy, $wgUserHtml; |
333 | 333 | $fname = 'Parser::removeHTMLtags'; |
334 | 334 | wfProfileIn( $fname ); |
— | — | @@ -501,7 +501,7 @@ |
502 | 502 | * @param string $text |
503 | 503 | * @return string |
504 | 504 | */ |
505 | | - function removeHTMLcomments( $text ) { |
| 505 | + static function removeHTMLcomments( $text ) { |
506 | 506 | $fname='Parser::removeHTMLcomments'; |
507 | 507 | wfProfileIn( $fname ); |
508 | 508 | while (($start = strpos($text, '<!--')) !== false) { |
— | — | @@ -551,7 +551,7 @@ |
552 | 552 | * @todo Check for legal values where the DTD limits things. |
553 | 553 | * @todo Check for unique id attribute :P |
554 | 554 | */ |
555 | | - function validateTagAttributes( $attribs, $element ) { |
| 555 | + static function validateTagAttributes( $attribs, $element ) { |
556 | 556 | $whitelist = array_flip( Sanitizer::attributeWhitelist( $element ) ); |
557 | 557 | $out = array(); |
558 | 558 | foreach( $attribs as $attribute => $value ) { |
— | — | @@ -626,7 +626,7 @@ |
627 | 627 | * @param string $element |
628 | 628 | * @return string |
629 | 629 | */ |
630 | | - function fixTagAttributes( $text, $element ) { |
| 630 | + static function fixTagAttributes( $text, $element ) { |
631 | 631 | if( trim( $text ) == '' ) { |
632 | 632 | return ''; |
633 | 633 | } |
— | — | @@ -649,7 +649,7 @@ |
650 | 650 | * @param $text |
651 | 651 | * @return HTML-encoded text fragment |
652 | 652 | */ |
653 | | - function encodeAttribute( $text ) { |
| 653 | + static function encodeAttribute( $text ) { |
654 | 654 | $encValue = htmlspecialchars( $text ); |
655 | 655 | |
656 | 656 | // Whitespace is normalized during attribute decoding, |
— | — | @@ -670,7 +670,7 @@ |
671 | 671 | * @param $text |
672 | 672 | * @return HTML-encoded text fragment |
673 | 673 | */ |
674 | | - function safeEncodeAttribute( $text ) { |
| 674 | + static function safeEncodeAttribute( $text ) { |
675 | 675 | $encValue = Sanitizer::encodeAttribute( $text ); |
676 | 676 | |
677 | 677 | # Templates and links may be expanded in later parsing, |
— | — | @@ -713,7 +713,7 @@ |
714 | 714 | * @param string $id |
715 | 715 | * @return string |
716 | 716 | */ |
717 | | - function escapeId( $id ) { |
| 717 | + static function escapeId( $id ) { |
718 | 718 | static $replace = array( |
719 | 719 | '%3A' => ':', |
720 | 720 | '%' => '.' |
— | — | @@ -730,7 +730,7 @@ |
731 | 731 | * @return string |
732 | 732 | * @private |
733 | 733 | */ |
734 | | - function armorLinksCallback( $matches ) { |
| 734 | + private static function armorLinksCallback( $matches ) { |
735 | 735 | return str_replace( ':', ':', $matches[1] ); |
736 | 736 | } |
737 | 737 | |
— | — | @@ -742,7 +742,7 @@ |
743 | 743 | * @param string |
744 | 744 | * @return array |
745 | 745 | */ |
746 | | - function decodeTagAttributes( $text ) { |
| 746 | + static function decodeTagAttributes( $text ) { |
747 | 747 | $attribs = array(); |
748 | 748 | |
749 | 749 | if( trim( $text ) == '' ) { |
— | — | @@ -780,7 +780,7 @@ |
781 | 781 | * @return string |
782 | 782 | * @private |
783 | 783 | */ |
784 | | - function getTagAttributeCallback( $set ) { |
| 784 | + private static function getTagAttributeCallback( $set ) { |
785 | 785 | if( isset( $set[6] ) ) { |
786 | 786 | # Illegal #XXXXXX color with no quotes. |
787 | 787 | return $set[6]; |
— | — | @@ -814,7 +814,7 @@ |
815 | 815 | * @return string |
816 | 816 | * @private |
817 | 817 | */ |
818 | | - function normalizeAttributeValue( $text ) { |
| 818 | + private static function normalizeAttributeValue( $text ) { |
819 | 819 | return str_replace( '"', '"', |
820 | 820 | preg_replace( |
821 | 821 | '/\r\n|[\x20\x0d\x0a\x09]/', |
— | — | @@ -836,7 +836,7 @@ |
837 | 837 | * @return string |
838 | 838 | * @private |
839 | 839 | */ |
840 | | - function normalizeCharReferences( $text ) { |
| 840 | + static function normalizeCharReferences( $text ) { |
841 | 841 | return preg_replace_callback( |
842 | 842 | MW_CHAR_REFS_REGEX, |
843 | 843 | array( 'Sanitizer', 'normalizeCharReferencesCallback' ), |
— | — | @@ -846,7 +846,7 @@ |
847 | 847 | * @param string $matches |
848 | 848 | * @return string |
849 | 849 | */ |
850 | | - function normalizeCharReferencesCallback( $matches ) { |
| 850 | + static function normalizeCharReferencesCallback( $matches ) { |
851 | 851 | $ret = null; |
852 | 852 | if( $matches[1] != '' ) { |
853 | 853 | $ret = Sanitizer::normalizeEntity( $matches[1] ); |
— | — | @@ -871,8 +871,9 @@ |
872 | 872 | * |
873 | 873 | * @param string $name |
874 | 874 | * @return string |
| 875 | + * @static |
875 | 876 | */ |
876 | | - function normalizeEntity( $name ) { |
| 877 | + static function normalizeEntity( $name ) { |
877 | 878 | global $wgHtmlEntities; |
878 | 879 | if( isset( $wgHtmlEntities[$name] ) ) { |
879 | 880 | return "&$name;"; |
— | — | @@ -881,7 +882,7 @@ |
882 | 883 | } |
883 | 884 | } |
884 | 885 | |
885 | | - function decCharReference( $codepoint ) { |
| 886 | + static function decCharReference( $codepoint ) { |
886 | 887 | $point = intval( $codepoint ); |
887 | 888 | if( Sanitizer::validateCodepoint( $point ) ) { |
888 | 889 | return sprintf( '&#%d;', $point ); |
— | — | @@ -890,7 +891,7 @@ |
891 | 892 | } |
892 | 893 | } |
893 | 894 | |
894 | | - function hexCharReference( $codepoint ) { |
| 895 | + static function hexCharReference( $codepoint ) { |
895 | 896 | $point = hexdec( $codepoint ); |
896 | 897 | if( Sanitizer::validateCodepoint( $point ) ) { |
897 | 898 | return sprintf( '&#x%x;', $point ); |
— | — | @@ -904,7 +905,7 @@ |
905 | 906 | * @param int $codepoint |
906 | 907 | * @return bool |
907 | 908 | */ |
908 | | - function validateCodepoint( $codepoint ) { |
| 909 | + private static function validateCodepoint( $codepoint ) { |
909 | 910 | return ($codepoint == 0x09) |
910 | 911 | || ($codepoint == 0x0a) |
911 | 912 | || ($codepoint == 0x0d) |
— | — | @@ -920,8 +921,9 @@ |
921 | 922 | * @param string $text |
922 | 923 | * @return string |
923 | 924 | * @public |
| 925 | + * @static |
924 | 926 | */ |
925 | | - function decodeCharReferences( $text ) { |
| 927 | + public static function decodeCharReferences( $text ) { |
926 | 928 | return preg_replace_callback( |
927 | 929 | MW_CHAR_REFS_REGEX, |
928 | 930 | array( 'Sanitizer', 'decodeCharReferencesCallback' ), |
— | — | @@ -932,7 +934,7 @@ |
933 | 935 | * @param string $matches |
934 | 936 | * @return string |
935 | 937 | */ |
936 | | - function decodeCharReferencesCallback( $matches ) { |
| 938 | + static function decodeCharReferencesCallback( $matches ) { |
937 | 939 | if( $matches[1] != '' ) { |
938 | 940 | return Sanitizer::decodeEntity( $matches[1] ); |
939 | 941 | } elseif( $matches[2] != '' ) { |
— | — | @@ -953,7 +955,7 @@ |
954 | 956 | * @return string |
955 | 957 | * @private |
956 | 958 | */ |
957 | | - function decodeChar( $codepoint ) { |
| 959 | + static function decodeChar( $codepoint ) { |
958 | 960 | if( Sanitizer::validateCodepoint( $codepoint ) ) { |
959 | 961 | return codepointToUtf8( $codepoint ); |
960 | 962 | } else { |
— | — | @@ -969,7 +971,7 @@ |
970 | 972 | * @param string $name |
971 | 973 | * @return string |
972 | 974 | */ |
973 | | - function decodeEntity( $name ) { |
| 975 | + static function decodeEntity( $name ) { |
974 | 976 | global $wgHtmlEntities; |
975 | 977 | if( isset( $wgHtmlEntities[$name] ) ) { |
976 | 978 | return codepointToUtf8( $wgHtmlEntities[$name] ); |
— | — | @@ -985,7 +987,7 @@ |
986 | 988 | * @param string $element |
987 | 989 | * @return array |
988 | 990 | */ |
989 | | - function attributeWhitelist( $element ) { |
| 991 | + static function attributeWhitelist( $element ) { |
990 | 992 | static $list; |
991 | 993 | if( !isset( $list ) ) { |
992 | 994 | $list = Sanitizer::setupAttributeWhitelist(); |
— | — | @@ -996,9 +998,10 @@ |
997 | 999 | } |
998 | 1000 | |
999 | 1001 | /** |
| 1002 | + * @todo Document it a bit |
1000 | 1003 | * @return array |
1001 | 1004 | */ |
1002 | | - function setupAttributeWhitelist() { |
| 1005 | + static function setupAttributeWhitelist() { |
1003 | 1006 | $common = array( 'id', 'class', 'lang', 'dir', 'title', 'style' ); |
1004 | 1007 | $block = array_merge( $common, array( 'align' ) ); |
1005 | 1008 | $tablealign = array( 'align', 'char', 'charoff', 'valign' ); |
— | — | @@ -1082,9 +1085,9 @@ |
1083 | 1086 | # 11.2.1 |
1084 | 1087 | 'table' => array_merge( $common, |
1085 | 1088 | array( 'summary', 'width', 'border', 'frame', |
1086 | | - 'rules', 'cellspacing', 'cellpadding', |
1087 | | - 'align', 'bgcolor', 'frame', 'rules', |
1088 | | - 'border' ) ), |
| 1089 | + 'rules', 'cellspacing', 'cellpadding', |
| 1090 | + 'align', 'bgcolor', 'rules', |
| 1091 | + ) ), |
1089 | 1092 | |
1090 | 1093 | # 11.2.2 |
1091 | 1094 | 'caption' => array_merge( $common, array( 'align' ) ), |
— | — | @@ -1142,7 +1145,7 @@ |
1143 | 1146 | * @param string $text HTML fragment |
1144 | 1147 | * @return string |
1145 | 1148 | */ |
1146 | | - function stripAllTags( $text ) { |
| 1149 | + static function stripAllTags( $text ) { |
1147 | 1150 | # Actual <tags> |
1148 | 1151 | $text = preg_replace( '/ < .*? > /x', '', $text ); |
1149 | 1152 | |
— | — | @@ -1169,7 +1172,7 @@ |
1170 | 1173 | * @return string |
1171 | 1174 | * @static |
1172 | 1175 | */ |
1173 | | - function hackDocType() { |
| 1176 | + static function hackDocType() { |
1174 | 1177 | global $wgHtmlEntities; |
1175 | 1178 | $out = "<!DOCTYPE html [\n"; |
1176 | 1179 | foreach( $wgHtmlEntities as $entity => $codepoint ) { |
Index: branches/snapshot-work/includes/SpecialNewpages.php |
— | — | @@ -11,10 +11,13 @@ |
12 | 12 | * @subpackage SpecialPage |
13 | 13 | */ |
14 | 14 | class NewPagesPage extends QueryPage { |
| 15 | + |
15 | 16 | var $namespace; |
| 17 | + var $username = ''; |
16 | 18 | |
17 | | - function NewPagesPage( $namespace = NS_MAIN ) { |
| 19 | + function NewPagesPage( $namespace = NS_MAIN, $username = '' ) { |
18 | 20 | $this->namespace = $namespace; |
| 21 | + $this->username = $username; |
19 | 22 | } |
20 | 23 | |
21 | 24 | function getName() { |
— | — | @@ -26,12 +29,18 @@ |
27 | 30 | return false; |
28 | 31 | } |
29 | 32 | |
| 33 | + function makeUserWhere( &$dbo ) { |
| 34 | + return $this->username ? ' AND rc_user_text = ' . $dbo->addQuotes( $this->username ) : ''; |
| 35 | + } |
| 36 | + |
30 | 37 | function getSQL() { |
31 | 38 | global $wgUser, $wgUseRCPatrol; |
32 | 39 | $usepatrol = ( $wgUseRCPatrol && $wgUser->isAllowed( 'patrol' ) ) ? 1 : 0; |
33 | 40 | $dbr =& wfGetDB( DB_SLAVE ); |
34 | 41 | extract( $dbr->tableNames( 'recentchanges', 'page', 'text' ) ); |
35 | 42 | |
| 43 | + $uwhere = $this->makeUserWhere( $dbr ); |
| 44 | + |
36 | 45 | # FIXME: text will break with compression |
37 | 46 | return |
38 | 47 | "SELECT 'Newpages' as type, |
— | — | @@ -50,7 +59,8 @@ |
51 | 60 | page_latest as rev_id |
52 | 61 | FROM $recentchanges,$page |
53 | 62 | WHERE rc_cur_id=page_id AND rc_new=1 |
54 | | - AND rc_namespace=" . $this->namespace . " AND page_is_redirect=0"; |
| 63 | + AND rc_namespace=" . $this->namespace . " AND page_is_redirect=0 |
| 64 | + {$uwhere}"; |
55 | 65 | } |
56 | 66 | |
57 | 67 | function preprocessResults( &$dbo, &$res ) { |
— | — | @@ -112,34 +122,20 @@ |
113 | 123 | } |
114 | 124 | |
115 | 125 | /** |
116 | | - * Show a namespace selection form for filtering |
| 126 | + * Show a form for filtering namespace and username |
117 | 127 | * |
118 | 128 | * @return string |
119 | 129 | */ |
120 | 130 | function getPageHeader() { |
121 | | - $thisTitle = Title::makeTitle( NS_SPECIAL, $this->getName() ); |
122 | | - $form = wfOpenElement( 'form', array( |
123 | | - 'method' => 'post', |
124 | | - 'action' => $thisTitle->getLocalUrl() ) ); |
125 | | - $form .= wfElement( 'label', array( 'for' => 'namespace' ), |
126 | | - wfMsg( 'namespace' ) ) . ' '; |
127 | | - $form .= HtmlNamespaceSelector( $this->namespace ); |
128 | | - # Preserve the offset and limit |
129 | | - $form .= wfElement( 'input', array( |
130 | | - 'type' => 'hidden', |
131 | | - 'name' => 'offset', |
132 | | - 'value' => $this->offset ) ); |
133 | | - $form .= wfElement( 'input', array( |
134 | | - 'type' => 'hidden', |
135 | | - 'name' => 'limit', |
136 | | - 'value' => $this->limit ) ); |
137 | | - $form .= wfElement( 'input', array( |
138 | | - 'type' => 'submit', |
139 | | - 'name' => 'submit', |
140 | | - 'id' => 'submit', |
141 | | - 'value' => wfMsg( 'allpagessubmit' ) ) ); |
142 | | - $form .= wfCloseElement( 'form' ); |
143 | | - return( $form ); |
| 131 | + $self = Title::makeTitle( NS_SPECIAL, $this->getName() ); |
| 132 | + $form = wfOpenElement( 'form', array( 'method' => 'post', 'action' => $self->getLocalUrl() ) ); |
| 133 | + $form .= '<table><tr><td align="right">' . wfMsgHtml( 'namespace' ) . '</td>'; |
| 134 | + $form .= '<td>' . HtmlNamespaceSelector( $this->namespace ) . '</td><tr>'; |
| 135 | + $form .= '<tr><td align="right">' . wfMsgHtml( 'newpages-username' ) . '</td>'; |
| 136 | + $form .= '<td>' . wfInput( 'username', 30, $this->username ) . '</td></tr>'; |
| 137 | + $form .= '<tr><td></td><td>' . wfSubmitButton( wfMsg( 'allpagessubmit' ) ) . '</td></tr></table>'; |
| 138 | + $form .= wfHidden( 'offset', $this->offset ) . wfHidden( 'limit', $this->limit ) . '</form>'; |
| 139 | + return $form; |
144 | 140 | } |
145 | 141 | |
146 | 142 | /** |
— | — | @@ -148,7 +144,7 @@ |
149 | 145 | * @return array |
150 | 146 | */ |
151 | 147 | function linkParameters() { |
152 | | - return( array( 'namespace' => $this->namespace ) ); |
| 148 | + return( array( 'namespace' => $this->namespace, 'username' => $this->username ) ); |
153 | 149 | } |
154 | 150 | |
155 | 151 | } |
— | — | @@ -161,6 +157,7 @@ |
162 | 158 | |
163 | 159 | list( $limit, $offset ) = wfCheckLimits(); |
164 | 160 | $namespace = NS_MAIN; |
| 161 | + $username = ''; |
165 | 162 | |
166 | 163 | if ( $par ) { |
167 | 164 | $bits = preg_split( '/\s*,\s*/', trim( $par ) ); |
— | — | @@ -184,12 +181,14 @@ |
185 | 182 | } else { |
186 | 183 | if( $ns = $wgRequest->getInt( 'namespace', 0 ) ) |
187 | 184 | $namespace = $ns; |
| 185 | + if( $un = $wgRequest->getText( 'username' ) ) |
| 186 | + $username = $un; |
188 | 187 | } |
189 | 188 | |
190 | 189 | if ( ! isset( $shownavigation ) ) |
191 | 190 | $shownavigation = ! $specialPage->including(); |
192 | 191 | |
193 | | - $npp = new NewPagesPage( $namespace ); |
| 192 | + $npp = new NewPagesPage( $namespace, $username ); |
194 | 193 | |
195 | 194 | if ( ! $npp->doFeed( $wgRequest->getVal( 'feed' ), $limit ) ) |
196 | 195 | $npp->doQuery( $offset, $limit, $shownavigation ); |
Index: branches/snapshot-work/includes/MagicWord.php |
— | — | @@ -196,7 +196,7 @@ |
197 | 197 | * Factory: creates an object representing an ID |
198 | 198 | * @static |
199 | 199 | */ |
200 | | - function &get( $id ) { |
| 200 | + static function &get( $id ) { |
201 | 201 | global $wgMagicWords; |
202 | 202 | |
203 | 203 | if ( !is_array( $wgMagicWords ) ) { |
Index: branches/snapshot-work/includes/Title.php |
— | — | @@ -108,7 +108,7 @@ |
109 | 109 | * @static |
110 | 110 | * @access public |
111 | 111 | */ |
112 | | - function newFromText( $text, $defaultNamespace = NS_MAIN ) { |
| 112 | + public static function newFromText( $text, $defaultNamespace = NS_MAIN ) { |
113 | 113 | $fname = 'Title::newFromText'; |
114 | 114 | |
115 | 115 | if( is_object( $text ) ) { |
— | — | @@ -233,7 +233,7 @@ |
234 | 234 | * @static |
235 | 235 | * @access public |
236 | 236 | */ |
237 | | - function &makeTitle( $ns, $title ) { |
| 237 | + public static function &makeTitle( $ns, $title ) { |
238 | 238 | $t =& new Title(); |
239 | 239 | $t->mInterwiki = ''; |
240 | 240 | $t->mFragment = ''; |
— | — | @@ -256,7 +256,7 @@ |
257 | 257 | * @static |
258 | 258 | * @access public |
259 | 259 | */ |
260 | | - function makeTitleSafe( $ns, $title ) { |
| 260 | + public static function makeTitleSafe( $ns, $title ) { |
261 | 261 | $t = new Title(); |
262 | 262 | $t->mDbkeyform = Title::makeName( $ns, $title ); |
263 | 263 | if( $t->secureAndSplit() ) { |
— | — | @@ -273,7 +273,7 @@ |
274 | 274 | * @return Title the new object |
275 | 275 | * @access public |
276 | 276 | */ |
277 | | - function newMainPage() { |
| 277 | + public static function newMainPage() { |
278 | 278 | return Title::newFromText( wfMsgForContent( 'mainpage' ) ); |
279 | 279 | } |
280 | 280 | |
— | — | @@ -285,7 +285,7 @@ |
286 | 286 | * @static |
287 | 287 | * @access public |
288 | 288 | */ |
289 | | - function newFromRedirect( $text ) { |
| 289 | + public static function newFromRedirect( $text ) { |
290 | 290 | $mwRedir = MagicWord::get( MAG_REDIRECT ); |
291 | 291 | $rt = NULL; |
292 | 292 | if ( $mwRedir->matchStart( $text ) ) { |
— | — | @@ -336,7 +336,7 @@ |
337 | 337 | * @static |
338 | 338 | * @access public |
339 | 339 | */ |
340 | | - function legalChars() { |
| 340 | + public static function legalChars() { |
341 | 341 | global $wgLegalTitleChars; |
342 | 342 | return $wgLegalTitleChars; |
343 | 343 | } |
— | — | @@ -376,7 +376,7 @@ |
377 | 377 | * @param string $title the DB key form the title |
378 | 378 | * @return string the prefixed form of the title |
379 | 379 | */ |
380 | | - /* static */ function makeName( $ns, $title ) { |
| 380 | + public static function makeName( $ns, $title ) { |
381 | 381 | global $wgContLang; |
382 | 382 | |
383 | 383 | $n = $wgContLang->getNsText( $ns ); |
Index: branches/snapshot-work/includes/RecentChange.php |
— | — | @@ -243,9 +243,14 @@ |
244 | 244 | return( $rc->mAttribs['rc_id'] ); |
245 | 245 | } |
246 | 246 | |
247 | | - # Makes an entry in the database corresponding to page creation |
248 | | - # Note: the title object must be loaded with the new id using resetArticleID() |
249 | | - /*static*/ function notifyNew( $timestamp, &$title, $minor, &$user, $comment, $bot = "default", |
| 247 | + /** |
| 248 | + * Makes an entry in the database corresponding to page creation |
| 249 | + * Note: the title object must be loaded with the new id using resetArticleID() |
| 250 | + * @todo Document parameters and return |
| 251 | + * @public |
| 252 | + * @static |
| 253 | + */ |
| 254 | + public static function notifyNew( $timestamp, &$title, $minor, &$user, $comment, $bot = "default", |
250 | 255 | $ip='', $size = 0, $newId = 0 ) |
251 | 256 | { |
252 | 257 | if ( !$ip ) { |
Index: branches/snapshot-work/includes/Namespace.php |
— | — | @@ -65,7 +65,7 @@ |
66 | 66 | * Check if the give namespace is a talk page |
67 | 67 | * @return bool |
68 | 68 | */ |
69 | | - function isTalk( $index ) { |
| 69 | + static function isTalk( $index ) { |
70 | 70 | return ($index > NS_MAIN) // Special namespaces are negative |
71 | 71 | && ($index % 2); // Talk namespaces are odd-numbered |
72 | 72 | } |
Index: branches/snapshot-work/includes/SpecialUnlockdb.php |
— | — | @@ -11,10 +11,11 @@ |
12 | 12 | function wfSpecialUnlockdb() { |
13 | 13 | global $wgUser, $wgOut, $wgRequest; |
14 | 14 | |
15 | | - if ( ! $wgUser->isAllowed('siteadmin') ) { |
16 | | - $wgOut->developerRequired(); |
| 15 | + if( !$wgUser->isAllowed( 'siteadmin' ) ) { |
| 16 | + $wgOut->permissionRequired( 'siteadmin' ); |
17 | 17 | return; |
18 | 18 | } |
| 19 | + |
19 | 20 | $action = $wgRequest->getVal( 'action' ); |
20 | 21 | $f = new DBUnlockForm(); |
21 | 22 | |
Index: branches/snapshot-work/includes/Linker.php |
— | — | @@ -1081,7 +1081,7 @@ |
1082 | 1082 | * |
1083 | 1083 | * @static |
1084 | 1084 | */ |
1085 | | - function splitTrail( $trail ) { |
| 1085 | + static function splitTrail( $trail ) { |
1086 | 1086 | static $regex = false; |
1087 | 1087 | if ( $regex === false ) { |
1088 | 1088 | global $wgContLang; |
Index: branches/snapshot-work/includes/Block.php |
— | — | @@ -24,7 +24,7 @@ |
25 | 25 | const EB_FOR_UPDATE = 2; |
26 | 26 | const EB_RANGE_ONLY = 4; |
27 | 27 | |
28 | | - function Block( $address = '', $user = '', $by = 0, $reason = '', |
| 28 | + function Block( $address = '', $user = 0, $by = 0, $reason = '', |
29 | 29 | $timestamp = '' , $auto = 0, $expiry = '', $anonOnly = 0, $createAccount = 0 ) |
30 | 30 | { |
31 | 31 | $this->mId = 0; |
— | — | @@ -339,6 +339,12 @@ |
340 | 340 | $dbw =& wfGetDB( DB_MASTER ); |
341 | 341 | $dbw->begin(); |
342 | 342 | |
| 343 | + # Unset ipb_anon_only and ipb_create_account for user blocks, makes no sense |
| 344 | + if ( $this->mUser ) { |
| 345 | + $this->mAnonOnly = 0; |
| 346 | + $this->mCreateAccount = 0; |
| 347 | + } |
| 348 | + |
343 | 349 | # Don't collide with expired blocks |
344 | 350 | Block::purgeExpired(); |
345 | 351 | |
Index: branches/snapshot-work/includes/Parser.php |
— | — | @@ -1325,7 +1325,7 @@ |
1326 | 1326 | * the URL differently; as a workaround, just use the output for |
1327 | 1327 | * statistical records, not for actual linking/output. |
1328 | 1328 | */ |
1329 | | - function replaceUnusualEscapes( $url ) { |
| 1329 | + static function replaceUnusualEscapes( $url ) { |
1330 | 1330 | return preg_replace_callback( '/%[0-9A-Fa-f]{2}/', |
1331 | 1331 | array( 'Parser', 'replaceUnusualEscapesCallback' ), $url ); |
1332 | 1332 | } |
— | — | @@ -1336,7 +1336,7 @@ |
1337 | 1337 | * @static |
1338 | 1338 | * @private |
1339 | 1339 | */ |
1340 | | - function replaceUnusualEscapesCallback( $matches ) { |
| 1340 | + private static function replaceUnusualEscapesCallback( $matches ) { |
1341 | 1341 | $char = urldecode( $matches[0] ); |
1342 | 1342 | $ord = ord( $char ); |
1343 | 1343 | // Is it an unsafe or HTTP reserved character according to RFC 1738? |
— | — | @@ -4573,7 +4573,7 @@ |
4574 | 4574 | * Get parser options |
4575 | 4575 | * @static |
4576 | 4576 | */ |
4577 | | - function newFromUser( &$user ) { |
| 4577 | + static function newFromUser( &$user ) { |
4578 | 4578 | return new ParserOptions( $user ); |
4579 | 4579 | } |
4580 | 4580 | |
Index: branches/snapshot-work/includes/SpecialPage.php |
— | — | @@ -313,7 +313,7 @@ |
314 | 314 | * @param $title a title object |
315 | 315 | * @param $including output is being captured for use in {{special:whatever}} |
316 | 316 | */ |
317 | | - function executePath( &$title, $including = false ) { |
| 317 | + static function executePath( &$title, $including = false ) { |
318 | 318 | global $wgOut, $wgTitle; |
319 | 319 | $fname = 'SpecialPage::executePath'; |
320 | 320 | wfProfileIn( $fname ); |
Index: branches/snapshot-work/includes/ParserCache.php |
— | — | @@ -13,7 +13,7 @@ |
14 | 14 | /** |
15 | 15 | * Get an instance of this object |
16 | 16 | */ |
17 | | - function &singleton() { |
| 17 | + public static function &singleton() { |
18 | 18 | static $instance; |
19 | 19 | if ( !isset( $instance ) ) { |
20 | 20 | global $parserMemc; |
Index: branches/snapshot-work/includes/LinkCache.php |
— | — | @@ -21,7 +21,7 @@ |
22 | 22 | /** |
23 | 23 | * Get an instance of this class |
24 | 24 | */ |
25 | | - function &singleton() { |
| 25 | + static function &singleton() { |
26 | 26 | static $instance; |
27 | 27 | if ( !isset( $instance ) ) { |
28 | 28 | $instance = new LinkCache; |
Index: branches/snapshot-work/includes/Revision.php |
— | — | @@ -25,7 +25,7 @@ |
26 | 26 | * @static |
27 | 27 | * @access public |
28 | 28 | */ |
29 | | - function newFromId( $id ) { |
| 29 | + public static function newFromId( $id ) { |
30 | 30 | return Revision::newFromConds( |
31 | 31 | array( 'page_id=rev_page', |
32 | 32 | 'rev_id' => intval( $id ) ) ); |
— | — | @@ -42,7 +42,7 @@ |
43 | 43 | * @access public |
44 | 44 | * @static |
45 | 45 | */ |
46 | | - function newFromTitle( &$title, $id = 0 ) { |
| 46 | + public static function newFromTitle( &$title, $id = 0 ) { |
47 | 47 | if( $id ) { |
48 | 48 | $matchId = intval( $id ); |
49 | 49 | } else { |
— | — | @@ -66,7 +66,7 @@ |
67 | 67 | * @return Revision |
68 | 68 | * @access public |
69 | 69 | */ |
70 | | - function loadFromPageId( &$db, $pageid, $id = 0 ) { |
| 70 | + public static function loadFromPageId( &$db, $pageid, $id = 0 ) { |
71 | 71 | $conds=array('page_id=rev_page','rev_page'=>intval( $pageid ), 'page_id'=>intval( $pageid )); |
72 | 72 | if( $id ) { |
73 | 73 | $conds['rev_id']=intval($id); |
— | — | @@ -130,7 +130,7 @@ |
131 | 131 | * @static |
132 | 132 | * @access private |
133 | 133 | */ |
134 | | - function newFromConds( $conditions ) { |
| 134 | + private static function newFromConds( $conditions ) { |
135 | 135 | $db =& wfGetDB( DB_SLAVE ); |
136 | 136 | $row = Revision::loadFromConds( $db, $conditions ); |
137 | 137 | if( is_null( $row ) ) { |
— | — | @@ -150,7 +150,7 @@ |
151 | 151 | * @static |
152 | 152 | * @access private |
153 | 153 | */ |
154 | | - function loadFromConds( &$db, $conditions ) { |
| 154 | + private static function loadFromConds( &$db, $conditions ) { |
155 | 155 | $res = Revision::fetchFromConds( $db, $conditions ); |
156 | 156 | if( $res ) { |
157 | 157 | $row = $res->fetchObject(); |
— | — | @@ -192,7 +192,7 @@ |
193 | 193 | * @static |
194 | 194 | * @access public |
195 | 195 | */ |
196 | | - function fetchRevision( &$title ) { |
| 196 | + public static function fetchRevision( &$title ) { |
197 | 197 | return Revision::fetchFromConds( |
198 | 198 | wfGetDB( DB_SLAVE ), |
199 | 199 | array( 'rev_id=page_latest', |
— | — | @@ -212,7 +212,7 @@ |
213 | 213 | * @static |
214 | 214 | * @access private |
215 | 215 | */ |
216 | | - function fetchFromConds( &$db, $conditions ) { |
| 216 | + private static function fetchFromConds( &$db, $conditions ) { |
217 | 217 | $res = $db->select( |
218 | 218 | array( 'page', 'revision' ), |
219 | 219 | array( 'page_namespace', |
Index: branches/snapshot-work/includes/Xml.php |
— | — | @@ -56,8 +56,8 @@ |
57 | 57 | }
|
58 | 58 |
|
59 | 59 | // Shortcuts
|
60 | | - function openElement( $element, $attribs = null ) { return self::element( $element, $attribs, null ); }
|
61 | | - function closeElement( $element ) { return "</$element>"; }
|
| 60 | + public static function openElement( $element, $attribs = null ) { return self::element( $element, $attribs, null ); }
|
| 61 | + public static function closeElement( $element ) { return "</$element>"; }
|
62 | 62 |
|
63 | 63 | /**
|
64 | 64 | * Create a namespace selector
|
— | — | @@ -216,7 +216,7 @@ |
217 | 217 | * @param string $string
|
218 | 218 | * @return string
|
219 | 219 | */
|
220 | | - function escapeJsString( $string ) {
|
| 220 | + public static function escapeJsString( $string ) {
|
221 | 221 | // See ECMA 262 section 7.8.4 for string literal format
|
222 | 222 | $pairs = array(
|
223 | 223 | "\\" => "\\\\",
|
Index: branches/snapshot-work/includes/SpecialLockdb.php |
— | — | @@ -11,10 +11,18 @@ |
12 | 12 | function wfSpecialLockdb() { |
13 | 13 | global $wgUser, $wgOut, $wgRequest; |
14 | 14 | |
15 | | - if ( ! $wgUser->isAllowed('siteadmin') ) { |
16 | | - $wgOut->developerRequired(); |
| 15 | + if( !$wgUser->isAllowed( 'siteadmin' ) ) { |
| 16 | + $wgOut->permissionRequired( 'siteadmin' ); |
17 | 17 | return; |
18 | 18 | } |
| 19 | + |
| 20 | + # If the lock file isn't writable, we can do sweet bugger all |
| 21 | + global $wgReadOnlyFile; |
| 22 | + if( !is_writable( dirname( $wgReadOnlyFile ) ) ) { |
| 23 | + DBLockForm::notWritable(); |
| 24 | + return; |
| 25 | + } |
| 26 | + |
19 | 27 | $action = $wgRequest->getVal( 'action' ); |
20 | 28 | $f = new DBLockForm(); |
21 | 29 | |
— | — | @@ -91,10 +99,13 @@ |
92 | 100 | $this->showForm( wfMsg( 'locknoconfirm' ) ); |
93 | 101 | return; |
94 | 102 | } |
95 | | - $fp = fopen( $wgReadOnlyFile, 'w' ); |
| 103 | + $fp = @fopen( $wgReadOnlyFile, 'w' ); |
96 | 104 | |
97 | 105 | if ( false === $fp ) { |
98 | | - $wgOut->showFileNotFoundError( $wgReadOnlyFile ); |
| 106 | + # This used to show a file not found error, but the likeliest reason for fopen() |
| 107 | + # to fail at this point is insufficient permission to write to the file...good old |
| 108 | + # is_writable() is plain wrong in some cases, it seems... |
| 109 | + $this->notWritable(); |
99 | 110 | return; |
100 | 111 | } |
101 | 112 | fwrite( $fp, $this->reason ); |
— | — | @@ -113,6 +124,12 @@ |
114 | 125 | $wgOut->setSubtitle( wfMsg( 'lockdbsuccesssub' ) ); |
115 | 126 | $wgOut->addWikiText( wfMsg( 'lockdbsuccesstext' ) ); |
116 | 127 | } |
| 128 | + |
| 129 | + function notWritable() { |
| 130 | + global $wgOut; |
| 131 | + $wgOut->errorPage( 'lockdb', 'lockfilenotwritable' ); |
| 132 | + } |
| 133 | + |
117 | 134 | } |
118 | 135 | |
119 | 136 | ?> |
Index: branches/snapshot-work/includes/Skin.php |
— | — | @@ -33,7 +33,7 @@ |
34 | 34 | * @return array of strings |
35 | 35 | * @static |
36 | 36 | */ |
37 | | - function &getSkinNames() { |
| 37 | + static function &getSkinNames() { |
38 | 38 | global $wgValidSkinNames; |
39 | 39 | static $skinsInitialised = false; |
40 | 40 | if ( !$skinsInitialised ) { |
— | — | @@ -68,7 +68,7 @@ |
69 | 69 | * @return string |
70 | 70 | * @static |
71 | 71 | */ |
72 | | - function normalizeKey( $key ) { |
| 72 | + static function normalizeKey( $key ) { |
73 | 73 | global $wgDefaultSkin; |
74 | 74 | $skinNames = Skin::getSkinNames(); |
75 | 75 | |
— | — | @@ -107,7 +107,7 @@ |
108 | 108 | * @return Skin |
109 | 109 | * @static |
110 | 110 | */ |
111 | | - function &newFromKey( $key ) { |
| 111 | + static function &newFromKey( $key ) { |
112 | 112 | global $wgStyleDirectory; |
113 | 113 | |
114 | 114 | $key = Skin::normalizeKey( $key ); |
Index: branches/snapshot-work/includes/LoadBalancer.php |
— | — | @@ -50,7 +50,7 @@ |
51 | 51 | $this->mAllowLag = false; |
52 | 52 | } |
53 | 53 | |
54 | | - function newFromParams( $servers, $failFunction = false, $waitTimeout = 10 ) |
| 54 | + static function newFromParams( $servers, $failFunction = false, $waitTimeout = 10 ) |
55 | 55 | { |
56 | 56 | $lb = new LoadBalancer; |
57 | 57 | $lb->initialise( $servers, $failFunction, $waitTimeout ); |
Index: branches/snapshot-work/includes/Math.php |
— | — | @@ -259,7 +259,7 @@ |
260 | 260 | return $path; |
261 | 261 | } |
262 | 262 | |
263 | | - function renderMath( $tex ) { |
| 263 | + public static function renderMath( $tex ) { |
264 | 264 | global $wgUser; |
265 | 265 | $math = new MathRenderer( $tex ); |
266 | 266 | $math->setOutputMode( $wgUser->getOption('math')); |
Index: branches/snapshot-work/RELEASE-NOTES |
— | — | @@ -41,15 +41,22 @@ |
42 | 42 | attempts to create an account. Fixed inefficiency of Special:Ipblocklist in |
43 | 43 | the presence of large numbers of blocks; added indexes and implemented an |
44 | 44 | indexed pager. |
| 45 | +* (bug 6448) Allow filtering of Special:Newpages according to username |
| 46 | +* (bug 6618) Improve permissions/error detection in Special:Lockdb |
| 47 | +* Quick hack for extension testing: parser test doesn't create new message |
| 48 | + cache object. |
45 | 49 | |
| 50 | + |
46 | 51 | == Languages updated == |
47 | 52 | |
48 | 53 | * Albanian (sq) |
| 54 | +* Brazilian Portuguese (pt-br) |
49 | 55 | * Catalan (ca) |
50 | 56 | * English (en) |
51 | 57 | * German (de) |
52 | 58 | * Hebrew (he) |
53 | 59 | * Hungarian (hu) |
| 60 | +* Indonesian (id) |
54 | 61 | * Russian (ru) |
55 | 62 | * Telugu (te) |
56 | 63 | |
Index: branches/snapshot-work/languages/MessagesDe.php |
— | — | @@ -483,6 +483,9 @@ |
484 | 484 | 'nocreatetext' => 'Der Server hat das Erstellen neuer Seiten eingeschränkt. |
485 | 485 | |
486 | 486 | Sie können bestehende Seiten ändern oder sich [[{{ns:special}}:Userlogin|anmelden]].', |
| 487 | +'cantcreateaccounttitle' => 'Benutzerkonto kann nicht erstellt werden', |
| 488 | +'cantcreateaccounttext' => 'Die Erstellung eines Benutzerkontos von dieser IP-Adresse (<b>$1</b>) wurde gesperrt. |
| 489 | +Dies geschah vermutlich auf Grund von wiederholtem Vandalismus von Ihrer Bildungseinrichtung oder anderen Benutzern Ihres Internet-Service-Provider.', |
487 | 490 | |
488 | 491 | # History pages |
489 | 492 | # |
— | — | @@ -817,6 +820,7 @@ |
818 | 821 | 'recentchangeslinked' => 'Änderungen an verlinkten Seiten', |
819 | 822 | 'rclsub' => '(auf Artikel von „$1“)', |
820 | 823 | "newpages" => "Neue Artikel", |
| 824 | +'newpages-username' => 'Benutzername:', |
821 | 825 | 'ancientpages' => 'Lange unbearbeitete Artikel', |
822 | 826 | "movethispage" => "Artikel verschieben", |
823 | 827 | 'unusedimagestext' => '<p>Bitte beachten Sie, dass andere Wikis möglicherweise einige dieser Dateien verwenden.', |
— | — | @@ -1068,6 +1072,8 @@ |
1069 | 1073 | "ipaddress" => "IP-Adresse", |
1070 | 1074 | 'ipadressorusername' => 'IP-Adresse oder Benutzername', |
1071 | 1075 | 'ipbreason' => 'Begründung', |
| 1076 | +'ipbanononly' => 'Nur anonyme Benutzer sperren', |
| 1077 | +'ipbcreateaccount' => 'Erstellung von Benutzerkonten verhindern', |
1072 | 1078 | 'ipbsubmit' => 'Benutzer blockieren', |
1073 | 1079 | 'ipbother' => 'Andere Dauer', |
1074 | 1080 | 'ipboptions' => '1 Stunde:1 hour,2 Stunden:2 hours,6 Stunden:6 hours,1 Tag:1 day,3 Tage:3 days,1 Woche:1 week,2 Wochen:2 weeks,1 Monat:1 month,3 Monate:3 months,1 Jahr:1 year,Unbeschränkt:indefinite', |
— | — | @@ -1086,6 +1092,8 @@ |
1087 | 1093 | "blocklistline" => "$1, $2 blockierte $3 ($4)", |
1088 | 1094 | 'infiniteblock' => 'unbegrenzt', |
1089 | 1095 | 'expiringblock' => 'erlischt $1', |
| 1096 | +'anononlyblock' => 'nur Anonyme', |
| 1097 | +'createaccountblock' => 'Erstellung von Benutzerkonten gesperrt', |
1090 | 1098 | "blocklink" => "blockieren", |
1091 | 1099 | "unblocklink" => "freigeben", |
1092 | 1100 | "contribslink" => "Beiträge", |
— | — | @@ -1107,6 +1115,7 @@ |
1108 | 1116 | "lockdbsuccesstext" => "Die {{SITENAME}}-Datenbank wurde gesperrt. |
1109 | 1117 | <br />Bitte geben Sie die Datenbank wieder frei, sobald die Wartung abgeschlossen ist.", |
1110 | 1118 | "unlockdbsuccesstext" => "Die {{SITENAME}}-Datenbank wurde freigegeben.", |
| 1119 | +'lockfilenotwritable' => 'Die Datenbank-Sperrdatei ist nicht beschreibbar. Zum Sperren oder Freigeben der Datenbank muss diese für den Webserver beschreibbar sein.', |
1111 | 1120 | |
1112 | 1121 | # User levels special page |
1113 | 1122 | # |
— | — | @@ -1304,6 +1313,7 @@ |
1305 | 1314 | 'unblocklogentry' => 'Blockade von [[{{ns:user}}:$1]] aufgehoben', |
1306 | 1315 | "range_block_disabled" => "Die Möglichkeit, ganze Adressräume zu sperren, ist nicht aktiviert.", |
1307 | 1316 | "ipb_expiry_invalid" => "Die angegebeben Ablaufzeit ist ungültig.", |
| 1317 | +'ipb_already_blocked' => '„$1“ ist bereits gesperrt', |
1308 | 1318 | "ip_range_invalid" => "Ungültiger IP-Addressbereich.", |
1309 | 1319 | "confirmprotect" => "Sperrung bestätigen", |
1310 | 1320 | 'protectmoveonly' => 'Nur vor dem Verschieben schützen', |
— | — | @@ -1315,6 +1325,7 @@ |
1316 | 1326 | 'protect-viewtext' => 'Sie sind nicht berechtigt, den Seitenschutzstatus zu ändern. Hier ist der aktuelle Schutzstatus der Seite: [[$1]]', |
1317 | 1327 | 'protect-default' => '(Standard)', |
1318 | 1328 | "proxyblocker" => "Proxyblocker", |
| 1329 | +'ipb_cant_unblock' => 'Fehler: Block ID $1 nicht gefunden. Die Sperre wurde vermutlich bereits aufgehoben.', |
1319 | 1330 | "proxyblockreason" => "Ihre IP-Adresse wurde gesperrt, da sie ein offener Proxy ist. Bitte kontaktieren Sie Ihren Provider oder Ihre Systemtechnik und informieren Sie sie über dieses mögliche Sicherheitsproblem.", |
1320 | 1331 | "proxyblocksuccess" => "Fertig.", |
1321 | 1332 | 'sorbs' => 'SORBS DNSbl', |
Index: branches/snapshot-work/languages/Messages.php |
— | — | @@ -981,6 +981,7 @@ |
982 | 982 | 'recentchangeslinked' => 'Related changes', |
983 | 983 | 'rclsub' => "(to pages linked from \"$1\")", |
984 | 984 | 'newpages' => 'New pages', |
| 985 | +'newpages-username' => 'Username:', |
985 | 986 | 'ancientpages' => 'Oldest pages', |
986 | 987 | 'intl' => 'Interlanguage links', |
987 | 988 | 'move' => 'Move', |
— | — | @@ -1343,6 +1344,7 @@ |
1344 | 1345 | 'lockdbsuccesstext' => 'The database has been locked. |
1345 | 1346 | <br />Remember to remove the lock after your maintenance is complete.', |
1346 | 1347 | 'unlockdbsuccesstext' => 'The database has been unlocked.', |
| 1348 | +'lockfilenotwritable' => 'The database lock file is not writable. To lock or unlock the database, this needs to be writable by the web server.', |
1347 | 1349 | |
1348 | 1350 | # Make sysop |
1349 | 1351 | 'makesysoptitle' => 'Make a user into a sysop', |
Index: branches/snapshot-work/languages/MessagesHe.php |
— | — | @@ -513,6 +513,8 @@ |
514 | 514 | "edittools" => "<!-- הטקסט הנכתב כאן יוצג מתחת לטפסי עריכת דפים והעלאת קבצים, ולפיכך ניתן לכתוב להציג בו תווים קשים לכתיבה, קטעים מוכנים של טקסט ועוד. -->", |
515 | 515 | "nocreatetitle" => "יצירת הדפים הוגבלה", |
516 | 516 | "nocreatetext" => "אתר זה מגביל את האפשרות ליצור דפים חדשים. באפשרותכם לחזור אחורה ולערוך דף קיים, או [[{{ns:special}}:Userlogin|להיכנס לחשבון]].", |
| 517 | +"cantcreateaccounttitle" => "לא ניתן ליצור את החשבון", |
| 518 | +"cantcreateaccounttext" => "אפשרות יצירת החשבונות מכתובת ה־IP הזו (<b>$1</b>) נחסמה, כנראה עקב השחתות מתמשכות מבית־הספר או ספק האינטרנט שלך.", |
517 | 519 | |
518 | 520 | # History pages |
519 | 521 | "revhistory" => "היסטוריית שינויים", |
— | — | @@ -886,6 +888,7 @@ |
887 | 889 | "recentchangeslinked" => "שינויים בדפים המקושרים", |
888 | 890 | "rclsub" => '(לדפים המקושרים מהדף "$1")', |
889 | 891 | "newpages" => "דפים חדשים", |
| 892 | +"newpages-username" => "שם משתמש:", |
890 | 893 | "ancientpages" => "דפים מוזנחים", |
891 | 894 | "intl" => "קישורים בינלשוניים", |
892 | 895 | "move" => "העבר", |
— | — | @@ -1140,9 +1143,11 @@ |
1141 | 1144 | "ipadressorusername" => "כתובת IP או שם משתמש", |
1142 | 1145 | "ipbexpiry" => "פקיעה", |
1143 | 1146 | "ipbreason" => "סיבה", |
| 1147 | +"ipbanononly" => "חסום משתמשים אנונימיים בלבד", |
| 1148 | +"ipbcreateaccount" => "חסום יצירת חשבונות", |
1144 | 1149 | "ipbsubmit" => "חסום משתמש זה", |
1145 | 1150 | "ipbother" => "זמן אחר", |
1146 | | -"ipboptions" => "5 דקות:5 minutes,10 דקות:10 minutes,חצי שעה:30 minutes,שעה:1 hours,שעתיים:2 hours,יום:1 day,שלושה ימים:3 days,שבוע:1 week,שבועיים:2 weeks,חודש:1 month,שלושה חודשים:3 months,חצי שנה:6 months,שנה:1 year,לצמיתות:infinite", |
| 1151 | +"ipboptions" => "שעתיים:2 hours,יום:1 day,שלושה ימים:3 days,שבוע:1 week,שבועיים:2 weeks,חודש:1 month,שלושה חודשים:3 months,חצי שנה:6 months,שנה:1 year,לצמיתות:infinite", |
1147 | 1152 | "ipbotheroption" => "אחר", |
1148 | 1153 | "badipaddress" => "משתמש או כתובת IP שגויים.", |
1149 | 1154 | "blockipsuccesssub" => "החסימה הושלמה בהצלחה", |
— | — | @@ -1157,6 +1162,8 @@ |
1158 | 1163 | "blocklistline" => '$1 $2 חסם את $3 ($4)', |
1159 | 1164 | "infiniteblock" => "לצמיתות", |
1160 | 1165 | "expiringblock" => "פוקע $1", |
| 1166 | +"anononlyblock" => "משתמשים אנונימיים בלבד", |
| 1167 | +"createaccountblock" => "יצירת חשבונות נחסמה", |
1161 | 1168 | "ipblocklistempty" => "רשימת המשתמשים החסומים ריקה.", |
1162 | 1169 | "blocklink" => "חסום", |
1163 | 1170 | "unblocklink" => "שחרר חסימה", |
— | — | @@ -1170,7 +1177,9 @@ |
1171 | 1178 | "unblocklogentry" => "שיחרר את [[$1]]", |
1172 | 1179 | "range_block_disabled" => "היכולת לחסום טווח כתובות איננה פעילה.", |
1173 | 1180 | "ipb_expiry_invalid" => "זמן פקיעת חסימה בלתי חוקי", |
| 1181 | +"ipb_already_blocked" => 'המשתמש "$1" כבר נחסם', |
1174 | 1182 | "ip_range_invalid" => "טווח IP שגוי.", |
| 1183 | +"ipb_cant_unblock" => "שגיאה: חסימה מספר $1 לא נמצאה. ייתכן שהיא כבר שוחררה.", |
1175 | 1184 | "proxyblocker" => "חוסם פרוקסי", |
1176 | 1185 | "proxyblockreason" => "כתובת ה־IP שלכם נחסמה משום שהיא כתובת פרוקסי פתוחה. אנא צרו קשר עם ספק האינטרנט שלכם והודיעו לו על בעיית האבטחה החמורה הזו.", |
1177 | 1186 | "proxyblocksuccess" => "בוצע.", |
— | — | @@ -1197,6 +1206,7 @@ |
1198 | 1207 | |
1199 | 1208 | זכרו לשחרר את הנעילה לאחר שפעולת התחזוקה הסתיימה.", |
1200 | 1209 | "unlockdbsuccesstext" => "שוחררה הנעילה של בסיס הנתונים", |
| 1210 | +"lockfilenotwritable" => "קובץ נעילת מסד הנתונים אינו ניתן לכתיבה. כדי שאפשר יהיה לנעול את מסד הנתונים או לבטל את נעילתו, שרת האינטרנט צריך לקבל הרשאות לכתוב אליו.", |
1201 | 1211 | |
1202 | 1212 | # Make sysop |
1203 | 1213 | "makesysoptitle" => "הפוך משתמש למפעיל מערכת", |
Index: branches/snapshot-work/languages/MessagesId.php |
— | — | @@ -454,6 +454,9 @@ |
455 | 455 | 'edittools' => '<!-- Teks di sini akan dimunculkan dibawah isian suntingan dan pemuatan.-->', |
456 | 456 | 'nocreatetitle' => 'Pembuatan halaman baru dibatasi', |
457 | 457 | 'nocreatetext' => 'Situs ini membatasi kemampuan membuat halaman baru. Anda dapat kembali dan menyunting halaman yang telah ada, atau silakan [[{{ns:special}}:Userlogin|masuk log atau mendaftar]]', |
| 458 | +'cantcreateaccounttitle' => 'Akun tak dapat dibuat', |
| 459 | +'cantcreateaccounttext' => 'Pembuatan akun dari alamat IP ini (<b>$1</b>) diblokir. |
| 460 | +Hal ini mungkin disebabkan adanya vandalisme berulang yang berasal dari sekolah atau penyedia jasa Internet Anda.', |
458 | 461 | |
459 | 462 | # History pages |
460 | 463 | # |
— | — | @@ -821,6 +824,7 @@ |
822 | 825 | "recentchangeslinked" => "Perubahan terkait", |
823 | 826 | "rclsub" => "(untuk halaman yang berpaut dari \"$1\")", |
824 | 827 | "newpages" => "Halaman baru", |
| 828 | +'newpages-username' => 'Nama pengguna:', |
825 | 829 | "ancientpages" => "Artikel tertua", |
826 | 830 | "intl" => "Pranala antarbahasa", |
827 | 831 | 'move' => 'Pindahkan', |
— | — | @@ -1071,6 +1075,8 @@ |
1072 | 1076 | 'ipadressorusername' => 'Alamat IP atau nama pengguna', |
1073 | 1077 | "ipbexpiry" => "Kadaluwarsa", |
1074 | 1078 | "ipbreason" => "Alasan", |
| 1079 | +'ipbanononly' => 'Hanya blokir pengguna anonim', |
| 1080 | +'ipbcreateaccount' => 'Cegah pembuatan akun', |
1075 | 1081 | "ipbsubmit" => "Kirimkan", |
1076 | 1082 | 'ipbother' => 'Waktu lain', |
1077 | 1083 | 'ipboptions' => '2 jam:2 hours,1 hari:1 day,3 hari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 tahun:1 year,selamanya:infinite', |
— | — | @@ -1086,6 +1092,8 @@ |
1087 | 1093 | "blocklistline" => "$1, $2 memblokir $3 ($4)", |
1088 | 1094 | 'infiniteblock' => 'tak terbatas', |
1089 | 1095 | 'expiringblock' => 'kadaluwarsa $1', |
| 1096 | +'anononlyblock' => 'hanya anon', |
| 1097 | +'createaccountblock' => 'pembuatan akun diblokir', |
1090 | 1098 | 'ipblocklistempty' => 'Daftar pemblokiran kosong.', |
1091 | 1099 | "blocklink" => "blokir", |
1092 | 1100 | "unblocklink" => "hilangkan blokir", |
— | — | @@ -1097,8 +1105,10 @@ |
1098 | 1106 | "unblocklogentry" => 'menghilangkan blokir "$1"', |
1099 | 1107 | "range_block_disabled" => "Kemampuan pengurus dalam membuat blokir blok IP dimatikan.", |
1100 | 1108 | "ipb_expiry_invalid" => "Waktu kadaluwarsa tidak sah.", |
| 1109 | +'ipb_already_blocked' => '"$1" telah diblokir', |
1101 | 1110 | "ip_range_invalid" => "Blok IP tidak sah.", |
1102 | 1111 | "proxyblocker" => "Pemblokir proxy", |
| 1112 | +'ipb_cant_unblock' => 'Kesalahan: Blokir dengan ID $1 tidak ditemukan. Blokir tersebut kemungkinan telah dibuka.', |
1103 | 1113 | "proxyblockreason" => "Alamat IP Anda telah diblokir karena alamat IP Anda adalah proxy terbuka. Silakan hubungi penyedia jasa internet Anda atau dukungan teknis dan beritahukan mereka masalah keamanan serius ini.", |
1104 | 1114 | "proxyblocksuccess" => "Selesai.", |
1105 | 1115 | 'sorbs' => 'SORBS DNSBL', |
— | — | @@ -1142,6 +1152,7 @@ |
1143 | 1153 | "unlockdbsuccesssub" => "Pembukaan kunci basis data berhasil", |
1144 | 1154 | "lockdbsuccesstext" => "Basis data telah dikunci. <br />Pastikan Anda membuka kuncinya setelah pemeliharaan selesai.", |
1145 | 1155 | "unlockdbsuccesstext" => "Kunci basis data telah dibuka.", |
| 1156 | +'lockfilenotwritable' => 'Berkas kunci basis data tidak dapat ditulis. Untuk mengunci atau membuka basis data, berkas ini harus dapat ditulis oleh server web.', |
1146 | 1157 | |
1147 | 1158 | # Move page |
1148 | 1159 | # |
— | — | @@ -1216,7 +1227,7 @@ |
1217 | 1228 | "thumbnail-more" => "Perbesar", |
1218 | 1229 | "missingimage" => "<strong>Gambar hilang</strong><br /><em>$1</em>", |
1219 | 1230 | 'filemissing' => 'Berkas hilang', |
1220 | | -'thumbnail_error' => 'Kesalahan sewaktu pembuatan gambar kecil (<em>thumbnail</em>): $1', |
| 1231 | +'thumbnail_error' => 'Kesalahan sewaktu pembuatan gambar kecil (thumbnail): $1', |
1221 | 1232 | |
1222 | 1233 | # Special:Import |
1223 | 1234 | "import" => "Impor halaman", |
Index: branches/snapshot-work/languages/MessagesPt_br.php |
— | — | @@ -159,7 +159,7 @@ |
160 | 160 | com a função\"$2\". |
161 | 161 | MySQL retornou o erro \"$3: $4\".", |
162 | 162 | "noconnect" => "Desculpe! O wiki está passando por algumas |
163 | | -dificuldades técnicas, e não pode contatar o servidor de bando de dados.", |
| 163 | +dificuldades técnicas, e não pode contactar o servidor de bando de dados.", |
164 | 164 | "nodb" => "Não foi possível selecionar o banco de dados $1", |
165 | 165 | "cachederror" => "O que segue é uma cópia em cache da página |
166 | 166 | solicitada, e pode não estar atualizada.", |
— | — | @@ -188,8 +188,8 @@ |
189 | 189 | "badarticleerror" => "Esta acção não pode ser performada nesta página.", |
190 | 190 | "cannotdelete" => "Não foi possível excluir página ou imagem especificada. (Ela já pode ter sido deletada por alguém.)", |
191 | 191 | "badtitle" => "Título ruim", |
192 | | -"badtitletext" => "O título de pagina requisitado era inválido, vazio, ou |
193 | | -uma ligação incorreta de inter-linguagem ou título inter-wiki .", |
| 192 | +"badtitletext" => "O título de página requisitado era inválido, vazio, ou |
| 193 | +um link incorreto de inter-linguagem ou título inter-wiki .", |
194 | 194 | "perfdisabled" => "Desculpe! Esta opção foi temporariamente desabilitada |
195 | 195 | porque tornava o banco de dados lento demais a ponto de impossibilitar o wiki.", |
196 | 196 | "perfdisabledsub" => "Aqui está uma cópia salva de $1:", |
— | — | @@ -264,16 +264,16 @@ |
265 | 265 | "accmailtext" => "A senha de '$1' foi enviada para $2.", |
266 | 266 | "newarticle" => "(Novo)", |
267 | 267 | "newarticletext" => |
268 | | -"Você seguiu um link para um artigo que não existe mais. |
269 | | -Para criar a página, começe escrevendo na caixa a baixo |
270 | | -(veja [[{{ns:4}}:Ajuda| a página de ajuda]] para mais informações). |
271 | | -Se você chegou aqui por engano, apenas clique no botão '''volta''' do seu navegador.", |
| 268 | +"Você seguiu um link para um artigo que não existe. |
| 269 | +Para criá-lo, começe escrevendo na caixa abaixo |
| 270 | +(veja [[{{ns:4}}:Ajuda|a página de ajuda]] para mais informações). |
| 271 | +Se você chegou aqui por engano, apenas clique no botão '''voltar''' do seu navegador.", |
272 | 272 | |
273 | | -"anontalkpagetext" => "---- ''Esta é a página de discussão para um usuário anônimo que não criou uma conta ainda ou que não a usa. Então nós temos que usar o endereço numérico de IP para identificá-lo(la). Um endereço de IP pode ser compartilhado por vários usuários. Se você é um usuário anônimo e acha irrelevante que os comentários sejam direcionados a você, por favor [[Especial:Userlogin|crie uma conta ou autentifique-se]] para evitar futuras confusões com outros usuários anônimos.'' ", |
| 273 | +"anontalkpagetext" => "---- ''Esta é a página de discussão para um usuário anônimo que não criou uma conta ainda ou que não a usa. Então nós temos que usar o endereço numérico de IP para identificá-lo. Um endereço de IP pode ser compartilhado por vários usuários. Se você é um usuário anônimo e acha irrelevante que os comentários sejam direcionados a você, por favor [[Especial:Userlogin|crie uma conta ou autentique-se]] para evitar futuras confusões com outros usuários anônimos.'' ", |
274 | 274 | "noarticletext" => "(Não há atualmente nenhum texto nesta página)", |
275 | 275 | "updated" => "(Atualizado)", |
276 | 276 | "note" => "<strong>Nota:</strong> ", |
277 | | -"previewnote" => "Lembre-se que isto é apenas uma previsão, e não foi ainda salvo!", |
| 277 | +"previewnote" => "Lembre-se que isto é apenas uma previsão. O conteúdo ainda não foi salvo!", |
278 | 278 | "previewconflict" => "Esta previsão reflete o texto que está na área de edição acima e como ele aparecerá se você escolher salvar.", |
279 | 279 | "editing" => "Editando $1", |
280 | 280 | "editingsection" => "Editando $1 (seção)", |
— | — | @@ -281,7 +281,7 @@ |
282 | 282 | "editconflict" => "Conflito de edição: $1", |
283 | 283 | "explainconflict" => "Alguém mudou a página enquanto você a estava editando. |
284 | 284 | A área de texto acima mostra o texto original. |
285 | | -Suas mudanças são mostradas na área a baixo. |
| 285 | +Suas mudanças são mostradas na área abaixo. |
286 | 286 | Você terá que mesclar suas modificações no texto existente. |
287 | 287 | <b>SOMENTE</b> o texto na área acima será salvo quando você pressionar \"Salvar página\".<br />", |
288 | 288 | "yourtext" => "Seu texto", |
— | — | @@ -296,9 +296,9 @@ |
297 | 297 | <strong>NÃO ENVIE TRABALHO SOB COPYRIGHT SEM PERMISSÃO!</strong>",*/ |
298 | 298 | "longpagewarning" => "<strong>CUIDADO: Esta página tem $1 kilobytes ; alguns browsers podem ter problemas ao editar páginas maiores que 32kb. |
299 | 299 | Por favor considere quebrar a página em sessões menores.</strong>", |
300 | | -"readonlywarning" => "<strong>CUIDADO: O banco de dados está sendo bloqueado para manutenção, |
301 | | -você não está habilitado a salvar suas edições. Você pode copiar e colar o texto em um arquivo de texto e salvá-lo em seu computador para adicioná-lo mais tarde.</strong>", |
302 | | -"protectedpagewarning" => "<strong>CUIDADO: Está página foi bloqueada então apenas os usuários com privilégios de sysop podem editá-la. Certifique-se de que você está seguindo o [[Project:Guia_de_páginas_protegidas|guia de páginas protegidas]].</strong>", |
| 300 | +"readonlywarning" => "<strong>CUIDADO: O banco de dados está sendo bloqueado para manutenção. |
| 301 | +No momento não é possível salvar suas edições. Você pode copiar e colar o texto em um arquivo de texto e salvá-lo em seu computador para adicioná-lo ao wiki mais tarde.</strong>", |
| 302 | +"protectedpagewarning" => "<strong>CUIDADO: Apenas os usuários com privilégios de sysop podem editar esta página pois ela foi bloqueada. Certifique-se de que você está seguindo o [[Project:Guia_de_páginas_protegidas|guia de páginas protegidas]].</strong>", |
303 | 303 | |
304 | 304 | # History pages |
305 | 305 | # |
— | — | @@ -333,7 +333,7 @@ |
334 | 334 | "badquery" => "Linha de busca incorretamente formada", |
335 | 335 | "badquerytext" => "Nós não pudemos processar seu pedido de busca. |
336 | 336 | Isto acoenteceu provavelmente porque você tentou procurar uma palavra de menos que três letras, coisa que o software ainda não consegue realizar. Isto também pode ter ocorrido porque você digitou incorretamente a expressão, por |
337 | | -exemplo \"peixes <strong>and and</strong> scales\". |
| 337 | +exemplo: \"peixes <strong>and and</strong> scales\". |
338 | 338 | Por favor realize ouro pedido de busca.", |
339 | 339 | "matchtotals" => "A pesquisa \"$1\" resultou $2 títulos de artigos |
340 | 340 | e $3 artigos com o texto procurado.", |
— | — | @@ -366,7 +366,7 @@ |
367 | 367 | "qbsettings" => "Configurações da Barra Rápida", |
368 | 368 | "changepassword" => "Mudar senha", |
369 | 369 | "skin" => "Aparência(Skin)", |
370 | | -"math" => "Rendering math", |
| 370 | +"math" => "Renderização matemática", |
371 | 371 | "dateformat" => "Formato da Data", |
372 | 372 | "math_failure" => "Falhou ao checar gramática(parse)", |
373 | 373 | "math_unknown_error" => "erro desconhecido", |
— | — | @@ -374,11 +374,11 @@ |
375 | 375 | "math_lexing_error" => "erro léxico", |
376 | 376 | "math_syntax_error" => "erro de síntaxe", |
377 | 377 | "saveprefs" => "Salvar preferências", |
378 | | -"resetprefs" => "Reconfigurar preferências", |
| 378 | +"resetprefs" => "Redefinir preferências", |
379 | 379 | "oldpassword" => "Senha antiga", |
380 | 380 | "newpassword" => "Nova senha", |
381 | 381 | "retypenew" => "Redigite a nova senha", |
382 | | -"textboxsize" => "Tamanho da Caixa de texto", |
| 382 | +"textboxsize" => "Tamanho da caixa de texto", |
383 | 383 | "rows" => "Linhas", |
384 | 384 | "columns" => "Colunas", |
385 | 385 | "searchresultshead" => "Configurar resultados de pesquisas", |
— | — | @@ -554,7 +554,7 @@ |
555 | 555 | "wantedpages" => "Páginas procuradas", |
556 | 556 | "nlinks" => "$1 links", |
557 | 557 | "allpages" => "Todas as páginas", |
558 | | -"randompage" => "Página randômica", |
| 558 | +"randompage" => "Página aleatória", |
559 | 559 | "shortpages" => "Páginas Curtas", |
560 | 560 | "longpages" => "Paginas Longas", |
561 | 561 | "listusers" => "Lista de Usuários", |
— | — | @@ -569,7 +569,7 @@ |
570 | 570 | "intl" => "Links interlínguas", |
571 | 571 | "movethispage" => "Mover esta página", |
572 | 572 | "unusedimagestext" => "<p>Por favor note que outros websites como |
573 | | -as Wikipedias internacionais podem apontar para uma imagem com uma URL direta, e por isto pode estar aparecendo aqui mesmo estando em uso ativo.", |
| 573 | +as Wikipédias internacionais podem apontar para uma imagem com uma URL direta, e por isto pode estar aparecendo aqui mesmo estando em uso ativo.", |
574 | 574 | "booksources" => "Fontes de livros", |
575 | 575 | "booksourcetext" => "Segue uma lista de links para outros sites que vendem livros novos e usados , e podem ter informações adicionais sobre livros que você esteja procurando. |
576 | 576 | A {{SITENAME}} não é afiliada a nenhum destes empreendimentos, e a lista não deve ser construída como apoio.", |
— | — | @@ -577,14 +577,14 @@ |
578 | 578 | |
579 | 579 | # Email this user |
580 | 580 | # |
581 | | -"mailnologin" => "No send address", |
| 581 | +"mailnologin" => "Sem endereço ed envio", |
582 | 582 | "mailnologintext" => "Você deve estar [[Special:Userlogin|autenticado]] |
583 | 583 | e ter um e-mail válido em suas [[Special:Preferences|preferências]] |
584 | 584 | para poder enviar e-mails para outros usuários.", |
585 | 585 | "emailuser" => "Contactar usuário", |
586 | 586 | "emailpage" => "Enviar e-mail ao usuário", |
587 | | -"emailpagetext" => "Se este usuário disponibilizou um endereço válido de -mail em suas preferências, o formulário a seguir enviará uma mensagem única. |
588 | | -O endereço de e-mail que você disponibilizou em suas preferências aparecerá como Remetente da mensagem, então, o usuário poderá responder a você diretamente.", |
| 587 | +"emailpagetext" => "Se este usuário disponibilizou um endereço válido de e-mail em suas preferências, o formulário a seguir enviará uma mensagem única. |
| 588 | +O endereço de e-mail que você disponibilizou em suas preferências aparecerá como remetente da mensagem, então, o usuário poderá responder a você diretamente.", |
589 | 589 | "noemailtitle" => "Sem endereço de e-mail", |
590 | 590 | "noemailtext" => "Este usuário não especificou um endereço de e-mail válido, ou optou por não receber mensagens de outros usuários.", |
591 | 591 | "emailfrom" => "De", |
— | — | @@ -602,21 +602,21 @@ |
603 | 603 | "nowatchlist" => "Você não está monitorando nenhum artigo.", |
604 | 604 | "watchnologin" => "Não está autenticado", |
605 | 605 | "watchnologintext" => "Você deve estar [[Special:Userlogin|autenticado]] |
606 | | -para modificar sua lista de artigos interessantes.", |
| 606 | +para modificar a lista de artigos do seu interesse.", |
607 | 607 | /*"addedwatch" => "Adicionados � lista",*/ |
608 | | -"addedwatchtext" => "A página \"$1\" foi adicionada a sua <a href=\"{{localurle:Special:Watchlist}}\">lista de artigos de vosso interesse</a>. |
609 | | -Modificações futuras neste artigo e páginas Talk associadas serão listadas aqui, |
610 | | -e a página aparecerá <b>negritada</b> na <a href=\"{{localurle:Special:Recentchanges}}\">lista de mudanças recentes</a> para que |
611 | | -possa pegá-lo com maior facilidade.</p> |
| 608 | +"addedwatchtext" => "A página \"$1\" foi adicionada à <a href=\"{{localurle:Special:Watchlist}}\">lista de artigos do seu interesse</a>. |
| 609 | +Modificações futuras neste artigo e páginas de discussão associadas serão listadas aqui, |
| 610 | +e a página aparecerá <b>em negrito</b> na <a href=\"{{localurle:Special:Recentchanges}}\">lista de mudanças recentes</a> para que |
| 611 | +possa achá-la com maior facilidade.</p> |
612 | 612 | |
613 | | -<p>Se você quiser remover futuramente o artigo da sua lista monitoramento, clique em \"Desinteressar-se\" na barra lateral.", |
614 | | -"removedwatch" => "Removida da lista de observações", |
| 613 | +<p>Se você quiser remover futuramente o artigo da sua lista de artigos vigiados, clique em \"Desinteressar-se\" na barra lateral.", |
| 614 | +"removedwatch" => "Removida da lista de monitoramento", |
615 | 615 | "removedwatchtext" => "A página \"$1\" não é mais de seu interesse e portanto foi removida de sua lista de monitoramento.", |
616 | 616 | "watchthispage" => "Interessar-se por esta página", |
617 | 617 | "unwatchthispage" => "Desinteressar-se", |
618 | 618 | "notanarticle" => "Não é um artigo", |
619 | 619 | "watchnochange" => "Nenhum dos itens monitorados foram editados no período exibido.", |
620 | | -"watchdetails" => "($1 páginas monitoradas excluindo-se as páginas talk; |
| 620 | +"watchdetails" => "($1 páginas monitoradas excluindo-se as páginas de discussão; |
621 | 621 | $2 páginas editadas desde data limite; |
622 | 622 | $3... |
623 | 623 | [$4 mostrar e editar a lista completa].)", |
— | — | @@ -640,9 +640,9 @@ |
641 | 641 | "exblank" => "página estava vazia", |
642 | 642 | "confirmdelete" => "Confirmar deleção", |
643 | 643 | "deletesub" => "(Apagando \"$1\")", |
644 | | -"historywarning" => "Atenção: A página que você quer deletar tem um histório: ", |
| 644 | +"historywarning" => "Atenção: A página que você quer deletar tem um histórico: ", |
645 | 645 | "confirmdeletetext" => "Você está prestes a deletar permanentemente uma página ou imagem junto com todo seu histórico do banco de dados. |
646 | | -Por favor, confirme que você realmente pretende fazer isto, que você compreende as consequências, e que você está fazendo isto em acordo com a [[{{ns:4}}:Policy| Política da Wkipedia]].", |
| 646 | +Por favor, confirme que você realmente pretende fazer isto, que você compreende as consequências, e que você está fazendo isto em acordo com a [[{{ns:4}}:Policy| Política da {{SITENAME}}]].", |
647 | 647 | "actioncomplete" => "Ação efetuada com sucesso", |
648 | 648 | "deletedtext" => "\"$1\" foi deletada. |
649 | 649 | Veja $2 para um registro de deleções recentes.", |
— | — | @@ -661,7 +661,7 @@ |
662 | 662 | "rollbackfailed" => "Rollback falhou", |
663 | 663 | "cantrollback" => "Não foi possível reverter a edição; o último contribuidor é o único autor deste artigo.", |
664 | 664 | "alreadyrolled" => "Não foi possível reverter as edições de [[$1]] |
665 | | -por [[User:$2|$2]] ([[User talk:$2|Talk]]); alguém o editou ou já o reverteu. |
| 665 | +por [[User:$2|$2]] ([[User talk:$2|discussão]]); alguém o editou ou já o reverteu. |
666 | 666 | |
667 | 667 | A última edição foi de [[User:$3|$3]] ([[User talk:$3|Conversar com ele]]). ", |
668 | 668 | # only shown if there is an edit comment |
— | — | @@ -680,7 +680,7 @@ |
681 | 681 | "undeletebtn" => "Restaurar!", |
682 | 682 | "undeletedarticle" => " \"$1\" restaurado", |
683 | 683 | "undeletedtext" => "O artigo [[:$1|$1]] foi restaurado com sucesso. |
684 | | -Veja [[{{ns:4}}:Deletion_log]] for a record of recent deletions and restorations.", |
| 684 | +Veja [[{{ns:4}}:Deletion_log]] para um registro das deleções e das restaurações recentes.", |
685 | 685 | |
686 | 686 | # Contributions |
687 | 687 | # |
— | — | @@ -697,8 +697,8 @@ |
698 | 698 | "whatlinkshere" => "Artigos Relacionado", |
699 | 699 | "notargettitle" => "Sem alvo", |
700 | 700 | "notargettext" => "Você não especificou um alvo ou usuário para performar esta função.", |
701 | | -"linklistsub" => "(Lista de ligações)", |
702 | | -"linkshere" => "Os seguintes artigos contém ligações que apontam para cá:", |
| 701 | +"linklistsub" => "(Lista de links)", |
| 702 | +"linkshere" => "Os seguintes artigos contém links que apontam para cá:", |
703 | 703 | /*"nolinkshere" => "Nenhuma página relaciona-se � esta.",*/ |
704 | 704 | "isredirect" => "página de redirecionamento", |
705 | 705 | |
— | — | @@ -729,9 +729,9 @@ |
730 | 730 | # |
731 | 731 | "lockdb" => "Trancar Banco de Dados", |
732 | 732 | "unlockdb" => "Destrancar Banco de Dados", |
733 | | -"lockdbtext" => "Trancar o banco de dados suspenderá a abilidade de todos os usuários de editarem páginas, mudarem suas preferências, lista de monitoração e outras coisas que requerem mudanças no banco de dados. |
| 733 | +"lockdbtext" => "Trancar o banco de dados suspenderá a habilidade de todos os usuários de editarem páginas, mudarem suas preferências, listas de monitoramento e outras coisas que requerem mudanças no banco de dados. |
734 | 734 | Por favor confirme que você realmente pretende fazer isto, e que você vai desbloquear o banco de dados quando sua manutenção estiver completa.", |
735 | | -"unlockdbtext" => "Desbloquear o banco de dados vai restaurar a abilidade de todos os usuários de editar artigos, mudar suas preferências, editar suas listas de monitoramento e outras coisas que requerem mudanças no banco de dados. Por favor , confirme que você realmente pretende fazer isto.", |
| 735 | +"unlockdbtext" => "Desbloquear o banco de dados vai restaurar a habilidade de todos os usuários de editar artigos, mudar suas preferências, editar suas listas de monitoramento e outras coisas que requerem mudanças no banco de dados. Por favor, confirme que você realmente pretende fazer isto.", |
736 | 736 | "lockconfirm" => "SIM, eu realmente pretendo trancar o banco de dados.", |
737 | 737 | "unlockconfirm" => "SIM, eu realmente pretendo destrancar o banco de dados.", |
738 | 738 | "lockbtn" => "Trancar banco", |
— | — | @@ -746,7 +746,7 @@ |
747 | 747 | # Move page |
748 | 748 | # |
749 | 749 | "movepage" => "Mover página", |
750 | | -"movepagetext" => "Usando o formulário a seguir você poderá renomear uma página , movendo todo o histórico para o novo nome. |
| 750 | +"movepagetext" => "Usando o formulário a seguir você poderá renomear uma página, movendo todo o histórico para o novo nome. |
751 | 751 | O título antigo será transformado num redirecionamento para o novo título. |
752 | 752 | Links para as páginas antigas não serão mudados; certifique-se de checar redirecionamentos quebrados ou artigos duplos. |
753 | 753 | Você é responsável por certificar-se que os links continuam apontando para onde eles deveriam apontar. |
— | — | @@ -772,11 +772,11 @@ |
773 | 773 | "pagemovedtext" => "Página \"[[$1]]\" movida para \"[[$2]]\".", |
774 | 774 | "articleexists" => "Uma página com este nome já existe, ou o nome que você escolheu é inválido. |
775 | 775 | Por favor, escolha outro nome.", |
776 | | -"talkexists" => "A página em si foi movida com sucesso, porém a página talk não pode ser movida por que já existe uma com este nome. Por favor, mescle-as manualmente.", |
| 776 | +"talkexists" => "A página em si foi movida com sucesso, porém a página de discussão não pode ser movida por que já existe uma com este nome. Por favor, mescle-as manualmente.", |
777 | 777 | "movedto" => "movido para", |
778 | | -"movetalk" => "Mover página \"talk\" também, se aplicável.", |
779 | | -"talkpagemoved" => "A página talk correspondente foi movida com sucesso.", |
780 | | -"talkpagenotmoved" => "A página talk correspondente <strong>não</strong> foi movida.", |
| 778 | +"movetalk" => "Mover página de discussão também, se aplicável.", |
| 779 | +"talkpagemoved" => "A página de discussão correspondente foi movida com sucesso.", |
| 780 | +"talkpagenotmoved" => "A página de discussão correspondente <strong>não</strong> foi movida.", |
781 | 781 | # Math |
782 | 782 | 'mw_math_png' => "Sempre renderizar PNG", |
783 | 783 | 'mw_math_simple' => "HTML se for bem simples e PNG", |
— | — | @@ -788,4 +788,4 @@ |
789 | 789 | ); |
790 | 790 | |
791 | 791 | |
792 | | -?> |
\ No newline at end of file |
| 792 | +?> |