r23662 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r23661‎ | r23662 | r23663 >
Date:03:01, 3 July 2007
Author:david
Status:old
Tags:
Comment:
Merged revisions 23581-23661 via svnmerge from
svn+ssh://david@svn.wikimedia.org/svnroot/mediawiki/trunk/phase3

........
r23584 | catrope | 2007-06-30 02:23:05 -0700 (Sat, 30 Jun 2007) | 3 lines

Adding rvprop=lastid parameter to prop=revisions that lists revid of
previous revision (bug 10297)
........
r23586 | catrope | 2007-06-30 02:31:51 -0700 (Sat, 30 Jun 2007) | 2 lines

Removing a ')' that broke the entire API
........
r23591 | rotem | 2007-06-30 03:33:17 -0700 (Sat, 30 Jun 2007) | 1 line

Update.
........
r23592 | rotem | 2007-06-30 03:43:06 -0700 (Sat, 30 Jun 2007) | 1 line

TODO list.
........
r23596 | yurik | 2007-06-30 23:45:14 -0700 (Sat, 30 Jun 2007) | 1 line

API: Reverted back to r23531 for the reasons listed in bug 10297
........
r23602 | magnusmanske | 2007-07-01 06:26:57 -0700 (Sun, 01 Jul 2007) | 1 line

New javascript for upload page that will show a warning if a file with the "destination filename" already exists. This uses api.php. As it is only used after someone already specified a file to upload, stress to servers should be minimal. Note that there is a hardcoded English warning text in there; not sure how to i18e it.
........
r23603 | magnusmanske | 2007-07-01 06:38:29 -0700 (Sun, 01 Jul 2007) | 1 line

making better use of DOM
........
r23604 | tstarling | 2007-07-01 06:56:05 -0700 (Sun, 01 Jul 2007) | 1 line

Fixed unnecessary use of the replaceafter option to wfMsgExt(). Using it causes links generated in wikitext from parameters to not work, due to conversion of $1 to %241. This does mean the success links are coloured like external links, but on the plus side, it means you can have things like "check [[Special:Whatlinkshere/$1|what links here]] and fix double redirects". Backwards compatibility with messages is retained.
........
r23607 | ivanlanin | 2007-07-01 08:08:49 -0700 (Sun, 01 Jul 2007) | 1 line

Indonesian (id) localisation updates.
........
r23608 | tstarling | 2007-07-01 11:24:47 -0700 (Sun, 01 Jul 2007) | 5 lines

* De-crappified JS upload dest check feature. Converted to sajax framework. Comprehensive destination checking like the previous behaviour on submission. 500ms typing delay for rate limiting, response cache. Don't display the warning on submission if the user has already seen it via AJAX.
* Added support for static member functions as AJAX callbacks.
* Moved all upload-related javascript to upload.js.
* Needs artwork, see TODO in upload.js.
* Removed UploadForm::showSuccess() as per wikitech-l discussion. Redirect to description page unconditionally.
........
r23610 | nikerabbit | 2007-07-01 11:49:15 -0700 (Sun, 01 Jul 2007) | 2 lines

* Updates to ti by Blake
........
r23612 | tstarling | 2007-07-01 11:50:31 -0700 (Sun, 01 Jul 2007) | 1 line

forgot to commit this
........
r23613 | nikerabbit | 2007-07-01 12:20:49 -0700 (Sun, 01 Jul 2007) | 2 lines

* Updates to Kabyle (kab)
........
r23617 | simetrical | 2007-07-01 12:57:30 -0700 (Sun, 01 Jul 2007) | 4 lines

* (bug 10422) Change <pre> on CSS/JS pages to <div> and allow wikitext
* Remove now-unused ShowRawCssJs hook, unless someone can think of a reason someone would want to use it when wikitext is allowed inside it

Patch to SyntaxHighlight_GeSHi to come in a moment.
........
r23619 | tstarling | 2007-07-01 14:50:33 -0700 (Sun, 01 Jul 2007) | 1 line

Respect $wgUseAjax
........
r23621 | tstarling | 2007-07-01 15:22:16 -0700 (Sun, 01 Jul 2007) | 1 line

Display a distinctive message when the edit token suffix is mangled. On report of widespread bot breakage, due to adding "+".
........
r23628 | wegge | 2007-07-02 01:58:54 -0700 (Mon, 02 Jul 2007) | 1 line

Updated translations for da
........
r23629 | raymond | 2007-07-02 02:06:24 -0700 (Mon, 02 Jul 2007) | 2 lines

* Updates German
* Updates maintenance messages. Removing one comment, it has nothing to do with localization.
........
r23631 | raymond | 2007-07-02 02:41:23 -0700 (Mon, 02 Jul 2007) | 2 lines

* (bug 10418) Swedish translation
Patch by Lejonel
........
r23632 | raymond | 2007-07-02 02:50:41 -0700 (Mon, 02 Jul 2007) | 2 lines

* (bug 10412) Update Chinese translations
Patch by Shinjiman
........
r23636 | catrope | 2007-07-02 04:52:14 -0700 (Mon, 02 Jul 2007) | 3 lines

API: Fixing a bug that caused inprop=protection to scream when no
existent titles were specified
........
r23645 | simetrical | 2007-07-02 08:46:55 -0700 (Mon, 02 Jul 2007) | 4 lines

* Add 'editsection-brackets' message to allow localization (or removal) of the brackets in the "[edit]" link for sections.
* rebuildMessages.php no longer adds the ending ?>
* Rebuilt MessagesEn.php
* Added Linker::doEditSectionLink to remove shared code from editSectionLink and editSectionLinkForOther
........
r23646 | raymond | 2007-07-02 08:54:43 -0700 (Mon, 02 Jul 2007) | 1 line

* (bug 10375) Change thousands separator character to &nbsp; for Latin (la)
........
r23647 | raymond | 2007-07-02 08:57:04 -0700 (Mon, 02 Jul 2007) | 5 lines

* (bug 10405) Update Farsi translation
Patch by Huji
* (bug 10363) Update Bulgarian translations
Patch by Borislav Manolov
........
r23648 | simetrical | 2007-07-02 09:15:27 -0700 (Mon, 02 Jul 2007) | 1 line

(bug 10437) Move texvc styling to shared.css. Also, apparently I forgot to commit RELEASE-NOTES changes from last commit.
........
r23649 | simetrical | 2007-07-02 09:19:25 -0700 (Mon, 02 Jul 2007) | 1 line

(bug 10438) HTML TeX formulas should not wrap, according to standard TeX behavior.
........
r23650 | tstarling | 2007-07-02 09:33:23 -0700 (Mon, 02 Jul 2007) | 1 line

Bug 10435: oi_name_archive_name index length overflow
........
r23657 | simetrical | 2007-07-02 16:22:39 -0700 (Mon, 02 Jul 2007) | 1 line

Revert r23617 per Brion
........
Modified paths:
  • /branches/liquidthreads (modified) (history)
  • /branches/liquidthreads/RELEASE-NOTES (modified) (history)
  • /branches/liquidthreads/includes/AjaxDispatcher.php (modified) (history)
  • /branches/liquidthreads/includes/DefaultSettings.php (modified) (history)
  • /branches/liquidthreads/includes/EditPage.php (modified) (history)
  • /branches/liquidthreads/includes/Linker.php (modified) (history)
  • /branches/liquidthreads/includes/Setup.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialMovepage.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialUpload.php (modified) (history)
  • /branches/liquidthreads/includes/User.php (modified) (history)
  • /branches/liquidthreads/includes/api/ApiQueryInfo.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesBg.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesDa.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesDe.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesEn.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesFa.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesHe.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesId.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesKab.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesLa.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesSv.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesTi.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesZh_classical.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesZh_cn.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesZh_tw.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesZh_yue.php (modified) (history)
  • /branches/liquidthreads/maintenance/archives/patch-oi_metadata.sql (modified) (history)
  • /branches/liquidthreads/maintenance/language/messageTypes.inc (modified) (history)
  • /branches/liquidthreads/maintenance/language/messages.inc (modified) (history)
  • /branches/liquidthreads/maintenance/language/writeMessagesArray.inc (modified) (history)
  • /branches/liquidthreads/skins/chick/main.css (modified) (history)
  • /branches/liquidthreads/skins/common/oldshared.css (modified) (history)
  • /branches/liquidthreads/skins/common/shared.css (modified) (history)
  • /branches/liquidthreads/skins/common/upload.js (modified) (history)
  • /branches/liquidthreads/skins/common/wikibits.js (modified) (history)
  • /branches/liquidthreads/skins/monobook/main.css (modified) (history)

Diff [purge]

Index: branches/liquidthreads/maintenance/language/writeMessagesArray.inc
@@ -1,6 +1,8 @@
22 <?php
33 /**
44 * Write a messages array as a PHP text.
 5+ * TODO: make it possible to use Windows endlines
 6+ * TODO: remove PHP ending tags recently removed from MediaWiki files
57 *
68 * @addtogroup Maintenance
79 */
@@ -27,13 +29,12 @@
2830 $contents = file_get_contents( $filename );
2931 if ( strpos( $contents, '$messages' ) !== false ) {
3032 $contents = explode( '$messages', $contents );
31 - if ( $messagesText . "\n?>\n" == '$messages' . $contents[1] ) {
32 - echo "Generated messages for language $code. Same to the current file.\n";
 33+ if ( $messagesText == '$messages' . $contents[1] ) {
 34+ echo "Generated messages for language $code. Same as the current file.\n";
3335 } else {
3436 if ( $write ) {
3537 $new = $contents[0];
3638 $new .= $messagesText;
37 - $new .= "\n?>\n";
3839 file_put_contents( $filename, $new );
3940 echo "Generated and wrote messages for language $code.\n";
4041 } else {
Index: branches/liquidthreads/maintenance/language/messages.inc
@@ -248,6 +248,7 @@
249249 'newmessageslink',
250250 'newmessagesdifflink',
251251 'editsection',
 252+ 'editsection-brackets',
252253 'editold',
253254 'editsectionhint',
254255 'toc',
@@ -477,6 +478,7 @@
478479 'previewconflict',
479480 'session_fail_preview',
480481 'session_fail_preview_html',
 482+ 'token_suffix_mismatch',
481483 'importing',
482484 'editing',
483485 'editinguser',
@@ -2312,7 +2314,6 @@
23132315 'exif-orientation-6' => '0th row: right; 0th column: top',
23142316 'exif-orientation-7' => '0th row: right; 0th column: bottom',
23152317 'exif-orientation-8' => '0th row: left; 0th column: bottom',
2316 - 'autoredircomment' => 'This should be changed to the new naming convention, but existed beforehand',
23172318 'movepage-moved' => 'The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message.'
23182319 );
23192320
Index: branches/liquidthreads/maintenance/language/messageTypes.inc
@@ -106,6 +106,7 @@
107107 $wgOptionalMessages = array(
108108 'imgmultigotopost',
109109 'linkprefix',
 110+ 'editsection-brackets',
110111 'feed-atom',
111112 'feed-rss',
112113 'sectionlink',
@@ -192,8 +193,7 @@
193194 'exif-filesource-3',
194195 'booksources-isbn',
195196 'isbn',
196 - 'userrights-list-separator',
197 - );
 197+);
198198
199199 /** EXIF messages, which may be set as optional in several checks, but are generally mandatory */
200200 $wgEXIFMessages = array(
Index: branches/liquidthreads/maintenance/archives/patch-oi_metadata.sql
@@ -8,7 +8,7 @@
99 ALTER TABLE /*$wgDBprefix*/oldimage
1010 DROP INDEX oi_name,
1111 ADD INDEX oi_name_timestamp (oi_name,oi_timestamp),
12 - ADD INDEX oi_name_archive_name (oi_name,oi_archive_name),
 12+ ADD INDEX oi_name_archive_name (oi_name,oi_archive_name(14)),
1313 ADD oi_metadata mediumblob NOT NULL,
1414 ADD oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
1515 ADD oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
Index: branches/liquidthreads/skins/monobook/main.css
@@ -808,12 +808,6 @@
809809 display: none;
810810 speak: none;
811811 }
812 -img.tex {
813 - vertical-align: middle;
814 -}
815 -span.texhtml {
816 - font-family: serif;
817 -}
818812
819813 /* Have a checkered background on images on the description pages and in galleries
820814 to make transparency visible
Index: branches/liquidthreads/skins/common/oldshared.css
@@ -115,10 +115,7 @@
116116 }
117117
118118 img { border: none; }
119 -img.tex { vertical-align: middle; }
120 -span.texhtml { font-family: serif; }
121119
122 -
123120 #toc,
124121 .toc {
125122 border: 1px solid #bba;
@@ -467,4 +464,4 @@
468465 text-align: center;
469466 vertical-align: middle;
470467 font-size: 90%;
471 -}
\ No newline at end of file
 468+}
Index: branches/liquidthreads/skins/common/shared.css
@@ -4,12 +4,22 @@
55 * another, but don't ignore the poor non-Monobook users either.
66 */
77 .mw-plusminus-null { color: #aaa; }
 8+
89 .texvc { direction: ltr; unicode-bidi: embed; }
 10+img.tex { vertical-align: middle; }
 11+span.texhtml {
 12+ font-family: serif;
 13+ white-space: nowrap;
 14+}
 15+
916 /* Stop floats from intruding into edit area in previews */
1017 #toolbar, #wpTextbox1 { clear: both; }
 18+
1119 div#mw-js-message {
1220 margin: 1em 5%;
1321 padding: 0.5em 2.5%;
1422 border: solid 1px #ddd;
1523 background-color: #fcfcfc;
1624 }
 25+
 26+
Index: branches/liquidthreads/skins/common/upload.js
@@ -11,13 +11,125 @@
1212 // for MSIE/Mac; non-breaking spaces cause the <option> not to render
1313 // but, for some reason, setting the text to itself works
1414 var selector = document.getElementById("wpLicense");
15 - var ua = navigator.userAgent;
16 - var isMacIe = (ua.indexOf("MSIE") != -1) && (ua.indexOf("Mac") != -1);
17 - if (isMacIe) {
18 - for (var i = 0; i < selector.options.length; i++) {
19 - selector.options[i].text = selector.options[i].text;
 15+ if (selector) {
 16+ var ua = navigator.userAgent;
 17+ var isMacIe = (ua.indexOf("MSIE") != -1) && (ua.indexOf("Mac") != -1);
 18+ if (isMacIe) {
 19+ for (var i = 0; i < selector.options.length; i++) {
 20+ selector.options[i].text = selector.options[i].text;
 21+ }
2022 }
2123 }
2224 }
2325
 26+var wgUploadWarningObj = {
 27+ 'responseCache' : { '' : '&nbsp;' },
 28+ 'nameToCheck' : '',
 29+ 'typing': false,
 30+ 'delay': 500, // ms
 31+ 'timeoutID': false,
 32+
 33+ 'keypress': function () {
 34+ // Find file to upload
 35+ var destFile = document.getElementById('wpDestFile');
 36+ var warningElt = document.getElementById( 'wpDestFile-warning' );
 37+ if ( !destFile || !warningElt ) return ;
 38+
 39+ this.nameToCheck = destFile.value ;
 40+
 41+ // Clear timer
 42+ if ( this.timeoutID ) {
 43+ window.clearTimeout( this.timeoutID );
 44+ }
 45+ // Check response cache
 46+ if ( this.nameToCheck in this.responseCache ) {
 47+ this.setWarning(this.responseCache[this.nameToCheck]);
 48+ return;
 49+ }
 50+
 51+ this.setInnerHTML(warningElt, '..'); // TODO: pretty animated GIF
 52+ this.timeoutID = window.setTimeout( 'wgUploadWarningObj.timeout()', this.delay );
 53+ },
 54+
 55+ 'checkNow': function (fname) {
 56+ if ( this.timeoutID ) {
 57+ window.clearTimeout( this.timeoutID );
 58+ }
 59+ this.nameToCheck = fname;
 60+ this.timeout();
 61+ },
 62+
 63+ 'timeout' : function() {
 64+ var warningElt = document.getElementById( 'wpDestFile-warning' );
 65+ this.setInnerHTML(warningElt, '....'); // TODO: pretty animated GIF
 66+
 67+ // Get variables into local scope so that they will be preserved for the
 68+ // anonymous callback. fileName is copied so that multiple overlapping
 69+ // ajax requests can be supported.
 70+ var obj = this;
 71+ var fileName = this.nameToCheck;
 72+ sajax_do_call( 'UploadForm::ajaxGetExistsWarning', [this.nameToCheck],
 73+ function (result) {
 74+ obj.processResult(result, fileName)
 75+ }
 76+ );
 77+ },
 78+
 79+ 'processResult' : function (result, fileName) {
 80+ this.setWarning(result.responseText);
 81+ this.responseCache[fileName] = result.responseText;
 82+ },
 83+
 84+ 'setWarning' : function (warning) {
 85+ var warningElt = document.getElementById( 'wpDestFile-warning' );
 86+ var ackElt = document.getElementById( 'wpDestFileWarningAck' );
 87+ this.setInnerHTML(warningElt, warning);
 88+
 89+ // Set a value in the form indicating that the warning is acknowledged and
 90+ // doesn't need to be redisplayed post-upload
 91+ if ( warning == '' || warning == '&nbsp' ) {
 92+ ackElt.value = '';
 93+ } else {
 94+ ackElt.value = '1';
 95+ }
 96+ },
 97+
 98+ 'setInnerHTML' : function (element, text) {
 99+ // Check for no change to avoid flicker in IE 7
 100+ if (element.innerHTML != text) {
 101+ element.innerHTML = text;
 102+ }
 103+ }
 104+}
 105+
 106+function fillDestFilename(id) {
 107+ if (!document.getElementById) {
 108+ return;
 109+ }
 110+ var path = document.getElementById(id).value;
 111+ // Find trailing part
 112+ var slash = path.lastIndexOf('/');
 113+ var backslash = path.lastIndexOf('\\');
 114+ var fname;
 115+ if (slash == -1 && backslash == -1) {
 116+ fname = path;
 117+ } else if (slash > backslash) {
 118+ fname = path.substring(slash+1, 10000);
 119+ } else {
 120+ fname = path.substring(backslash+1, 10000);
 121+ }
 122+
 123+ // Capitalise first letter and replace spaces by underscores
 124+ fname = fname.charAt(0).toUpperCase().concat(fname.substring(1,10000)).replace(/ /g, '_');
 125+
 126+ // Output result
 127+ var destFile = document.getElementById('wpDestFile');
 128+ if (destFile) {
 129+ destFile.value = fname;
 130+ if ( wgAjaxUploadDestCheck ) {
 131+ wgUploadWarningObj.checkNow(fname) ;
 132+ }
 133+ }
 134+}
 135+
24136 addOnloadHook(licenseSelectorFixup);
Index: branches/liquidthreads/skins/common/wikibits.js
@@ -766,33 +766,6 @@
767767 document.getElementById(idb).checked=false;
768768 }
769769
770 -function fillDestFilename(id) {
771 - if (!document.getElementById) {
772 - return;
773 - }
774 - var path = document.getElementById(id).value;
775 - // Find trailing part
776 - var slash = path.lastIndexOf('/');
777 - var backslash = path.lastIndexOf('\\');
778 - var fname;
779 - if (slash == -1 && backslash == -1) {
780 - fname = path;
781 - } else if (slash > backslash) {
782 - fname = path.substring(slash+1, 10000);
783 - } else {
784 - fname = path.substring(backslash+1, 10000);
785 - }
786 -
787 - // Capitalise first letter and replace spaces by underscores
788 - fname = fname.charAt(0).toUpperCase().concat(fname.substring(1,10000)).replace(/ /g, '_');
789 -
790 - // Output result
791 - var destFile = document.getElementById('wpDestFile');
792 - if (destFile) {
793 - destFile.value = fname;
794 - }
795 -}
796 -
797770 function scrollEditBox() {
798771 var editBoxEl = document.getElementById("wpTextbox1");
799772 var scrollTopEl = document.getElementById("wpScrolltop");
Index: branches/liquidthreads/skins/chick/main.css
@@ -328,8 +328,6 @@
329329 .hiddenStructure {
330330 display: none;
331331 }
332 -img.tex { vertical-align: middle; }
333 -span.texhtml { font-family: serif; }
334332
335333 /*
336334 ** classes for special content elements like town boxes
@@ -473,4 +471,4 @@
474472 /* Recreating-deleted-page warning and log entries */
475473 div#mw-recreate-deleted-warn ul li {
476474 font-size: 95%;
477 -}
\ No newline at end of file
 475+}
Index: branches/liquidthreads/includes/SpecialUpload.php
@@ -26,7 +26,7 @@
2727 var $mDestName, $mTempPath, $mFileSize, $mFileProps;
2828 var $mCopyrightStatus, $mCopyrightSource, $mReUpload, $mAction, $mUploadClicked;
2929 var $mSrcName, $mSessionKey, $mStashed, $mDesiredDestName, $mRemoveTempFile, $mSourceType;
30 - var $mCurlDestHandle;
 30+ var $mDestWarningAck, $mCurlDestHandle;
3131 var $mLocalFile;
3232
3333 # Placeholders for text injection by hooks (must be HTML)
@@ -65,7 +65,7 @@
6666 $this->mCopyrightSource = $request->getText( 'wpUploadSource' );
6767 $this->mWatchthis = $request->getBool( 'wpWatchthis' );
6868 $this->mSourceType = $request->getText( 'wpSourceType' );
69 - wfDebug( "UploadForm: watchthis is: '$this->mWatchthis'\n" );
 69+ $this->mDestWarningAck = $request->getText( 'wpDestFileWarningAck' );
7070
7171 $this->mAction = $request->getVal( 'action' );
7272
@@ -411,89 +411,9 @@
412412 $warning .= '<li>'.wfMsgHtml( 'emptyfile' ).'</li>';
413413 }
414414
415 - global $wgUser;
416 - $sk = $wgUser->getSkin();
417 -
418 - // Check for uppercase extension. We allow these filenames but check if an image
419 - // with lowercase extension exists already
420 - if ( $finalExt != strtolower( $finalExt ) ) {
421 - $nt_lc = Title::newFromText( $partname . '.' . strtolower( $finalExt ) );
422 - $image_lc = wfLocalFile( $nt_lc );
 415+ if ( !$this->mDestWarningAck ) {
 416+ $warning .= self::getExistsWarning( $this->mLocalFile );
423417 }
424 -
425 - if( $this->mLocalFile->exists() ) {
426 - $dlink = $sk->makeKnownLinkObj( $nt );
427 - if ( $this->mLocalFile->allowInlineDisplay() ) {
428 - $dlink2 = $sk->makeImageLinkObj( $nt, wfMsgExt( 'fileexists-thumb', 'parseinline', $dlink ),
429 - $nt->getText(), 'right', array(), false, true );
430 - } elseif ( !$this->mLocalFile->allowInlineDisplay() && $this->mLocalFile->isSafeFile() ) {
431 - $icon = $this->mLocalFile->iconThumb();
432 - $dlink2 = '<div style="float:right" id="mw-media-icon"><a href="' . $this->mLocalFile->getURL() . '">' .
433 - $icon->toHtml() . '</a><br />' . $dlink . '</div>';
434 - } else {
435 - $dlink2 = '';
436 - }
437 -
438 - $warning .= '<li>' . wfMsgExt( 'fileexists', 'parseline', $dlink ) . '</li>' . $dlink2;
439 -
440 - } elseif ( isset( $image_lc) && $image_lc->exists() ) {
441 - # Check if image with lowercase extension exists.
442 - # It's not forbidden but in 99% it makes no sense to upload the same filename with uppercase extension
443 - $dlink = $sk->makeKnownLinkObj( $nt_lc );
444 - if ( $image_lc->allowInlineDisplay() ) {
445 - $dlink2 = $sk->makeImageLinkObj( $nt_lc, wfMsgExt( 'fileexists-thumb', 'parseinline', $dlink ),
446 - $nt_lc->getText(), 'right', array(), false, true );
447 - } elseif ( !$image_lc->allowInlineDisplay() && $image_lc->isSafeFile() ) {
448 - $icon = $image_lc->iconThumb();
449 - $dlink2 = '<div style="float:right" id="mw-media-icon"><a href="' . $image_lc->getURL() . '">' .
450 - $icon->toHtml() . '</a><br />' . $dlink . '</div>';
451 - } else {
452 - $dlink2 = '';
453 - }
454 -
455 - $warning .= '<li>' . wfMsgExt( 'fileexists-extension', 'parsemag' , $partname . '.'
456 - . $finalExt , $dlink ) . '</li>' . $dlink2;
457 -
458 - } elseif ( ( substr( $partname , 3, 3 ) == 'px-' || substr( $partname , 2, 3 ) == 'px-' )
459 - && ereg( "[0-9]{2}" , substr( $partname , 0, 2) ) )
460 - {
461 - # Check for filenames like 50px- or 180px-, these are mostly thumbnails
462 - $nt_thb = Title::newFromText( substr( $partname , strpos( $partname , '-' ) +1 ) . '.' . $finalExt );
463 - $image_thb = wfLocalFile( $nt_thb );
464 - if ($image_thb->exists() ) {
465 - # Check if an image without leading '180px-' (or similiar) exists
466 - $dlink = $sk->makeKnownLinkObj( $nt_thb);
467 - if ( $image_thb->allowInlineDisplay() ) {
468 - $dlink2 = $sk->makeImageLinkObj( $nt_thb,
469 - wfMsgExt( 'fileexists-thumb', 'parseinline', $dlink ),
470 - $nt_thb->getText(), 'right', array(), false, true );
471 - } elseif ( !$image_thb->allowInlineDisplay() && $image_thb->isSafeFile() ) {
472 - $icon = $image_thb->iconThumb();
473 - $dlink2 = '<div style="float:right" id="mw-media-icon"><a href="' .
474 - $image_thb->getURL() . '">' . $icon->toHtml() . '</a><br />' .
475 - $dlink . '</div>';
476 - } else {
477 - $dlink2 = '';
478 - }
479 -
480 - $warning .= '<li>' . wfMsgExt( 'fileexists-thumbnail-yes', 'parsemag', $dlink ) .
481 - '</li>' . $dlink2;
482 - } else {
483 - # Image w/o '180px-' does not exists, but we do not like these filenames
484 - $warning .= '<li>' . wfMsgExt( 'file-thumbnail-no', 'parseinline' ,
485 - substr( $partname , 0, strpos( $partname , '-' ) +1 ) ) . '</li>';
486 - }
487 - }
488 - if ( $this->mLocalFile->wasDeleted() ) {
489 - # If the file existed before and was deleted, warn the user of this
490 - # Don't bother doing so if the image exists now, however
491 - $ltitle = SpecialPage::getTitleFor( 'Log' );
492 - $llink = $sk->makeKnownLinkObj( $ltitle, wfMsgHtml( 'deletionlog' ),
493 - 'type=delete&page=' . $nt->getPrefixedUrl() );
494 - $warning .= wfOpenElement( 'li' ) . wfMsgWikiHtml( 'filewasdeleted', $llink ) .
495 - wfCloseElement( 'li' );
496 - }
497 -
498418 if( $warning != '' ) {
499419 /**
500420 * Stash the file in a temporary location; the user can choose
@@ -519,17 +439,124 @@
520440 global $wgUser;
521441 $wgUser->addWatch( $this->mLocalFile->getTitle() );
522442 }
523 - if ( $status === '' ) {
524 - // New upload, redirect to description page
525 - $wgOut->redirect( $this->mLocalFile->getTitle()->getFullURL() );
 443+ // Success, redirect to description page
 444+ $wgOut->redirect( $this->mLocalFile->getTitle()->getFullURL() );
 445+ wfRunHooks( 'UploadComplete', array( &$img ) );
 446+ }
 447+ }
 448+
 449+ /**
 450+ * Do existence checks on a file and produce a warning
 451+ * This check is static and can be done pre-upload via AJAX
 452+ * Returns an HTML fragment consisting of one or more LI elements if there is a warning
 453+ * Returns an empty string if there is no warning
 454+ */
 455+ static function getExistsWarning( $file ) {
 456+ global $wgUser;
 457+ // Check for uppercase extension. We allow these filenames but check if an image
 458+ // with lowercase extension exists already
 459+ $warning = '';
 460+ $ext = $file->getExtension();
 461+ $sk = $wgUser->getSkin();
 462+ if ( $ext !== '' ) {
 463+ $partname = substr( $file->getName(), 0, -strlen( $ext ) - 1 );
 464+ } else {
 465+ $partname = $file->getName();
 466+ }
 467+
 468+ if ( $ext != strtolower( $ext ) ) {
 469+ $nt_lc = Title::newFromText( $partname . '.' . strtolower( $ext ) );
 470+ $file_lc = wfLocalFile( $nt_lc );
 471+ } else {
 472+ $file_lc = false;
 473+ }
 474+
 475+ if( $file->exists() ) {
 476+ $dlink = $sk->makeKnownLinkObj( $file->getTitle() );
 477+ if ( $file->allowInlineDisplay() ) {
 478+ $dlink2 = $sk->makeImageLinkObj( $file->getTitle(), wfMsgExt( 'fileexists-thumb', 'parseinline', $dlink ),
 479+ $file->getName(), 'right', array(), false, true );
 480+ } elseif ( !$file->allowInlineDisplay() && $file->isSafeFile() ) {
 481+ $icon = $file->iconThumb();
 482+ $dlink2 = '<div style="float:right" id="mw-media-icon"><a href="' . $file->getURL() . '">' .
 483+ $icon->toHtml() . '</a><br />' . $dlink . '</div>';
526484 } else {
527 - // Reupload, show success page
528 - $this->showSuccess();
 485+ $dlink2 = '';
529486 }
530 - wfRunHooks( 'UploadComplete', array( &$img ) );
 487+
 488+ $warning .= '<li>' . wfMsgExt( 'fileexists', 'parseline', $dlink ) . '</li>' . $dlink2;
 489+
 490+ } elseif ( $file_lc && $file_lc->exists() ) {
 491+ # Check if image with lowercase extension exists.
 492+ # It's not forbidden but in 99% it makes no sense to upload the same filename with uppercase extension
 493+ $dlink = $sk->makeKnownLinkObj( $nt_lc );
 494+ if ( $file_lc->allowInlineDisplay() ) {
 495+ $dlink2 = $sk->makeImageLinkObj( $nt_lc, wfMsgExt( 'fileexists-thumb', 'parseinline', $dlink ),
 496+ $nt_lc->getText(), 'right', array(), false, true );
 497+ } elseif ( !$file_lc->allowInlineDisplay() && $file_lc->isSafeFile() ) {
 498+ $icon = $file_lc->iconThumb();
 499+ $dlink2 = '<div style="float:right" id="mw-media-icon"><a href="' . $file_lc->getURL() . '">' .
 500+ $icon->toHtml() . '</a><br />' . $dlink . '</div>';
 501+ } else {
 502+ $dlink2 = '';
 503+ }
 504+
 505+ $warning .= '<li>' . wfMsgExt( 'fileexists-extension', 'parsemag' , $partname . '.'
 506+ . $ext , $dlink ) . '</li>' . $dlink2;
 507+
 508+ } elseif ( ( substr( $partname , 3, 3 ) == 'px-' || substr( $partname , 2, 3 ) == 'px-' )
 509+ && ereg( "[0-9]{2}" , substr( $partname , 0, 2) ) )
 510+ {
 511+ # Check for filenames like 50px- or 180px-, these are mostly thumbnails
 512+ $nt_thb = Title::newFromText( substr( $partname , strpos( $partname , '-' ) +1 ) . '.' . $ext );
 513+ $file_thb = wfLocalFile( $nt_thb );
 514+ if ($file_thb->exists() ) {
 515+ # Check if an image without leading '180px-' (or similiar) exists
 516+ $dlink = $sk->makeKnownLinkObj( $nt_thb);
 517+ if ( $file_thb->allowInlineDisplay() ) {
 518+ $dlink2 = $sk->makeImageLinkObj( $nt_thb,
 519+ wfMsgExt( 'fileexists-thumb', 'parseinline', $dlink ),
 520+ $nt_thb->getText(), 'right', array(), false, true );
 521+ } elseif ( !$file_thb->allowInlineDisplay() && $file_thb->isSafeFile() ) {
 522+ $icon = $file_thb->iconThumb();
 523+ $dlink2 = '<div style="float:right" id="mw-media-icon"><a href="' .
 524+ $file_thb->getURL() . '">' . $icon->toHtml() . '</a><br />' .
 525+ $dlink . '</div>';
 526+ } else {
 527+ $dlink2 = '';
 528+ }
 529+
 530+ $warning .= '<li>' . wfMsgExt( 'fileexists-thumbnail-yes', 'parsemag', $dlink ) .
 531+ '</li>' . $dlink2;
 532+ } else {
 533+ # Image w/o '180px-' does not exists, but we do not like these filenames
 534+ $warning .= '<li>' . wfMsgExt( 'file-thumbnail-no', 'parseinline' ,
 535+ substr( $partname , 0, strpos( $partname , '-' ) +1 ) ) . '</li>';
 536+ }
531537 }
 538+ if ( $file->wasDeleted() ) {
 539+ # If the file existed before and was deleted, warn the user of this
 540+ # Don't bother doing so if the image exists now, however
 541+ $ltitle = SpecialPage::getTitleFor( 'Log' );
 542+ $llink = $sk->makeKnownLinkObj( $ltitle, wfMsgHtml( 'deletionlog' ),
 543+ 'type=delete&page=' . $file->getTitle()->getPrefixedUrl() );
 544+ $warning .= '<li>' . wfMsgWikiHtml( 'filewasdeleted', $llink ) . '</li>';
 545+ }
 546+ return $warning;
532547 }
533548
 549+ static function ajaxGetExistsWarning( $filename ) {
 550+ $file = wfFindFile( $filename );
 551+ $s = '&nbsp;';
 552+ if ( $file ) {
 553+ $warning = self::getExistsWarning( $file );
 554+ if ( $warning !== '' ) {
 555+ $s = "<ul>$warning</ul>";
 556+ }
 557+ }
 558+ return $s;
 559+ }
 560+
534561 /**
535562 * Stash a file in a temporary directory for later processing
536563 * after the user has confirmed it.
@@ -602,24 +629,6 @@
603630 /* -------------------------------------------------------------- */
604631
605632 /**
606 - * Show some text and linkage on successful upload.
607 - * @access private
608 - */
609 - function showSuccess() {
610 - global $wgUser, $wgOut, $wgContLang;
611 -
612 - $sk = $wgUser->getSkin();
613 - $ilink = $sk->makeMediaLinkObj( $this->mLocalFile->getTitle() );
614 - $dname = $wgContLang->getNsText( NS_IMAGE ) . ':'.$this->mDestName;
615 - $dlink = $sk->makeKnownLink( $dname, $dname );
616 -
617 - $wgOut->addHTML( '<h2>' . wfMsgHtml( 'successfulupload' ) . "</h2>\n" );
618 - $text = wfMsgWikiHtml( 'fileuploaded', $ilink, $dlink );
619 - $wgOut->addHTML( $text );
620 - $wgOut->returnToMain( false );
621 - }
622 -
623 - /**
624633 * @param string $error as HTML
625634 * @access private
626635 */
@@ -703,9 +712,18 @@
704713 */
705714 function mainUploadForm( $msg='' ) {
706715 global $wgOut, $wgUser;
707 - global $wgUseCopyrightUpload;
708 - global $wgRequest, $wgAllowCopyUploads;
 716+ global $wgUseCopyrightUpload, $wgAjaxUploadDestCheck, $wgUseAjax;
 717+ global $wgRequest, $wgAllowCopyUploads, $wgEnableAPI;
 718+ global $wgStylePath;
709719
 720+ $useAjax = $wgAjaxUploadDestCheck && $wgUseAjax;
 721+
 722+ $wgOut->addScript(
 723+ "<script type='text/javascript'>wgAjaxUploadDestCheck = " .
 724+ ($useAjax ? 'true' : 'false' ) . ";</script>\n" .
 725+ "<script type='text/javascript' src=\"$wgStylePath/common/upload.js?1\"></script>\n"
 726+ );
 727+
710728 if( !wfRunHooks( 'UploadForm:initial', array( &$this ) ) )
711729 {
712730 wfDebug( "Hook 'UploadForm:initial' broke output of the upload form" );
@@ -776,6 +794,14 @@
777795 "size='40' />" .
778796 "<input type='hidden' name='wpSourceType' value='file' />" ;
779797 }
 798+ if ( $useAjax ) {
 799+ $warningRow = "<tr><td colspan='2' id='wpDestFile-warning'>&nbsp</td></tr>";
 800+ $destOnkeyup = 'onkeyup="wgUploadWarningObj.keypress();"';
 801+ } else {
 802+ $warningRow = '';
 803+ $destOnkeyup = '';
 804+ }
 805+
780806 $encComment = htmlspecialchars( $this->mComment );
781807
782808 $wgOut->addHTML( <<<EOT
@@ -791,7 +817,8 @@
792818 <tr>
793819 <td align='right'><label for='wpDestFile'>{$destfilename}:</label></td>
794820 <td align='left'>
795 - <input tabindex='2' type='text' name='wpDestFile' id='wpDestFile' size='40' value="$encDestName" />
 821+ <input tabindex='2' type='text' name='wpDestFile' id='wpDestFile' size='40'
 822+ value="$encDestName" $destOnkeyup />
796823 </td>
797824 </tr>
798825 <tr>
@@ -811,7 +838,6 @@
812839 $wgOut->addHTML( "
813840 <td align='right'><label for='wpLicense'>$license:</label></td>
814841 <td align='left'>
815 - <script type='text/javascript' src=\"$wgStylePath/common/upload.js\"></script>
816842 <select name='wpLicense' id='wpLicense' tabindex='4'
817843 onchange='licenseSelectorCheck()'>
818844 <option value=''>$nolicense</option>
@@ -843,7 +869,6 @@
844870 ");
845871 }
846872
847 -
848873 $wgOut->addHtml( "
849874 <td></td>
850875 <td>
@@ -853,11 +878,11 @@
854879 <label for='wpIgnoreWarning'>" . wfMsgHtml( 'ignorewarnings' ) . "</label>
855880 </td>
856881 </tr>
 882+ $warningRow
857883 <tr>
858884 <td></td>
859885 <td align='left'><input tabindex='9' type='submit' name='wpUpload' value=\"{$ulb}\" /></td>
860886 </tr>
861 -
862887 <tr>
863888 <td></td>
864889 <td align='left'>
@@ -868,6 +893,7 @@
869894 </tr>
870895
871896 </table>
 897+ <input type='hidden' name='wpDestFileWarningAck' id='wpDestFileWarningAck' value=''/>
872898 </form>" );
873899 }
874900
Index: branches/liquidthreads/includes/Linker.php
@@ -1060,34 +1060,66 @@
10611061 . "</script>\n";
10621062 }
10631063
1064 - /** @todo document */
 1064+ /**
 1065+ * Used to generate section edit links that point to "other" pages
 1066+ * (sections that are really part of included pages).
 1067+ *
 1068+ * @param $title Title string.
 1069+ * @param $section Integer: section number.
 1070+ */
10651071 public function editSectionLinkForOther( $title, $section ) {
1066 - global $wgContLang;
10671072 $title = Title::newFromText( $title );
1068 - $editurl = '&section='.$section;
1069 - $url = $this->makeKnownLinkObj( $title, wfMsg('editsection'), 'action=edit'.$editurl );
1070 - $result = null;
1071 - wfRunHooks( 'EditSectionLinkForOther', array( &$this, $title, $section, $url, &$result ) );
1072 - return is_null( $result )
1073 - ? "<span class=\"editsection\">[{$url}]</span>"
1074 - : "<span class=\"editsection\">[{$result}]</span>";
 1073+ return $this->doEditSectionLink( $title, $section, '', 'EditSectionLinkForOther' );
10751074 }
10761075
10771076 /**
1078 - * @param $title Title object.
 1077+ * @param $nt Title object.
10791078 * @param $section Integer: section number.
10801079 * @param $hint Link String: title, or default if omitted or empty
10811080 */
1082 - public function editSectionLink( $nt, $section, $hint='' ) {
 1081+ public function editSectionLink( Title $nt, $section, $hint='' ) {
 1082+ if( $hint != '' ) {
 1083+ $hint = wfMsgHtml( 'editsectionhint', htmlspecialchars( $hint ) );
 1084+ $hint = " title=\"$hint\"";
 1085+ }
 1086+ return $this->doEditSectionLink( $nt, $section, $hint, 'EditSectionLink' );
 1087+ }
 1088+
 1089+ /**
 1090+ * Implement editSectionLink and editSectionLinkForOther.
 1091+ *
 1092+ * @param $nt Title object
 1093+ * @param $section Integer, section number
 1094+ * @param $hint String, for HTML title attribute
 1095+ * @param $hook String, name of hook to run
 1096+ * @return String, HTML to use for edit link
 1097+ */
 1098+ private function doEditSectionLink( Title $nt, $section, $hint, $hook ) {
10831099 global $wgContLang;
10841100 $editurl = '&section='.$section;
1085 - $hint = ( $hint=='' ) ? '' : ' title="' . wfMsgHtml( 'editsectionhint', htmlspecialchars( $hint ) ) . '"';
1086 - $url = $this->makeKnownLinkObj( $nt, wfMsg('editsection'), 'action=edit'.$editurl, '', '', '', $hint );
 1101+ $url = $this->makeKnownLinkObj(
 1102+ $nt,
 1103+ wfMsg('editsection'),
 1104+ 'action=edit'.$editurl,
 1105+ '', '', '', $hint
 1106+ );
10871107 $result = null;
1088 - wfRunHooks( 'EditSectionLink', array( &$this, $nt, $section, $hint, $url, &$result ) );
1089 - return is_null( $result )
1090 - ? "<span class=\"editsection\">[{$url}]</span>"
1091 - : "<span class=\"editsection\">[{$result}]</span>";
 1108+
 1109+ // The two hooks have slightly different interfaces . . .
 1110+ if( $hook == 'EditSectionLink' ) {
 1111+ wfRunHooks( $hook, array( &$this, $nt, $section, $hint, $url, &$result ) );
 1112+ } elseif( $hook == 'EditSectionLinkForOther' ) {
 1113+ wfRunHooks( $hook, array( &$this, $nt, $section, $url, &$result ) );
 1114+ }
 1115+
 1116+ // For reverse compatibility, add the brackets *after* the hook is run,
 1117+ // and even add them to hook-provided text.
 1118+ if( is_null( $result ) ) {
 1119+ $result = wfMsg( 'editsection-brackets', $url );
 1120+ } else {
 1121+ $result = wfMsg( 'editsection-brackets', $result );
 1122+ }
 1123+ return "<span class=\"editsection\">$result</span>";
10921124 }
10931125
10941126 /**
Index: branches/liquidthreads/includes/AjaxDispatcher.php
@@ -84,8 +84,13 @@
8585 wfHttpError( 400, 'Bad Request',
8686 "unknown function " . (string) $this->func_name );
8787 } else {
 88+ if ( strpos( $this->func_name, '::' ) !== false ) {
 89+ $func = explode( '::', $this->func_name, 2 );
 90+ } else {
 91+ $func = $this->func_name;
 92+ }
8893 try {
89 - $result = call_user_func_array($this->func_name, $this->args);
 94+ $result = call_user_func_array($func, $this->args);
9095
9196 if ( $result === false || $result === NULL ) {
9297 wfHttpError( 500, 'Internal Error',
Index: branches/liquidthreads/includes/User.php
@@ -2312,7 +2312,6 @@
23132313 * @public
23142314 */
23152315 function matchEditToken( $val, $salt = '' ) {
2316 - global $wgMemc;
23172316 $sessionToken = $this->editToken( $salt );
23182317 if ( $val != $sessionToken ) {
23192318 wfDebug( "User::matchEditToken: broken session data\n" );
@@ -2321,6 +2320,14 @@
23222321 }
23232322
23242323 /**
 2324+ * Check whether the edit token is fine except for the suffix
 2325+ */
 2326+ function matchEditTokenNoSuffix( $val, $salt = '' ) {
 2327+ $sessionToken = $this->editToken( $salt );
 2328+ return substr( $sessionToken, 0, 32 ) == substr( $val, 0, 32 );
 2329+ }
 2330+
 2331+ /**
23252332 * Generate a new e-mail confirmation token and send a confirmation
23262333 * mail to the user's given address.
23272334 *
Index: branches/liquidthreads/includes/SpecialMovepage.php
@@ -274,22 +274,25 @@
275275 $old = Title::newFromText( $wgRequest->getText( 'oldtitle' ) );
276276 $new = Title::newFromText( $wgRequest->getText( 'newtitle' ) );
277277 $talkmoved = $wgRequest->getVal( 'talkmoved' );
278 -
279 - $olink = $wgUser->getSkin()->makeKnownLinkObj( $old, '', 'redirect=no' );
280 - $nlink = $wgUser->getSkin()->makeKnownLinkObj( $new );
 278+ $oldUrl = $old->getFullUrl( 'redirect=no' );
 279+ $newUrl = $new->getFullURl();
 280+ $oldText = $old->getPrefixedText();
 281+ $newText = $new->getPrefixedText();
 282+ $oldLink = "<span class='plainlinks'>[$oldUrl $oldText]</span>";
 283+ $newLink = "<span class='plainlinks'>[$newUrl $newText]</span>";
281284
282 - $wgOut->addHtml( wfMsgExt( 'movepage-moved', array( 'parseinline', 'replaceafter' ),
283 - $olink, $nlink, $old->getPrefixedText(), $new->getPrefixedText() ) );
 285+ $s = wfMsg( 'movepage-moved', $oldLink, $newLink, $oldText, $newText );
284286
285287 if ( $talkmoved == 1 ) {
286 - $wgOut->addWikiText( wfMsg( 'talkpagemoved' ) );
 288+ $s .= "\n\n" . wfMsg( 'talkpagemoved' );
287289 } elseif( 'articleexists' == $talkmoved ) {
288 - $wgOut->addWikiText( wfMsg( 'talkexists' ) );
 290+ $s .= "\n\n" . wfMsg( 'talkexists' );
289291 } else {
290292 if( !$old->isTalkPage() && $talkmoved != 'notalkpage' ) {
291 - $wgOut->addWikiText( wfMsg( 'talkpagenotmoved', wfMsg( $talkmoved ) ) );
 293+ $s .= "\n\n" . wfMsg( 'talkpagenotmoved', wfMsg( $talkmoved ) );
292294 }
293295 }
 296+ $wgOut->addWikiText( $s );
294297 }
295298
296299 function showLogFragment( $title, &$out ) {
Index: branches/liquidthreads/includes/api/ApiQueryInfo.php
@@ -68,7 +68,7 @@
6969 $pageLatest = $pageSet->getCustomField('page_latest');
7070 $pageLength = $pageSet->getCustomField('page_len');
7171
72 - if ($fld_protection) {
 72+ if ($fld_protection && count($titles) > 0) {
7373 $this->addTables('page_restrictions');
7474 $this->addFields(array('pr_page', 'pr_type', 'pr_level', 'pr_expiry'));
7575 $this->addWhereFld('pr_page', array_keys($titles));
Index: branches/liquidthreads/includes/EditPage.php
@@ -20,6 +20,7 @@
2121 var $firsttime;
2222 var $lastDelete;
2323 var $mTokenOk = false;
 24+ var $mTokenOkExceptSuffix = false;
2425 var $mTriedSave = false;
2526 var $tooBig = false;
2627 var $kblength = false;
@@ -582,7 +583,9 @@
583584 */
584585 function tokenOk( &$request ) {
585586 global $wgUser;
586 - $this->mTokenOk = $wgUser->matchEditToken( $request->getVal( 'wpEditToken' ) );
 587+ $token = $request->getVal( 'wpEditToken' );
 588+ $this->mTokenOk = $wgUser->matchEditToken( $token );
 589+ $this->mTokenOkExceptSuffix = $wgUser->matchEditTokenNoSuffix( $token );
587590 return $this->mTokenOk;
588591 }
589592
@@ -1379,7 +1382,11 @@
13801383 wfProfileIn( $fname );
13811384
13821385 if ( $this->mTriedSave && !$this->mTokenOk ) {
1383 - $msg = 'session_fail_preview';
 1386+ if ( $this->mTokenOkExceptSuffix ) {
 1387+ $msg = 'token_suffix_mismatch';
 1388+ } else {
 1389+ $msg = 'session_fail_preview';
 1390+ }
13841391 } else {
13851392 $msg = 'previewnote';
13861393 }
Index: branches/liquidthreads/includes/DefaultSettings.php
@@ -2552,6 +2552,11 @@
25532553 $wgAjaxWatch = true;
25542554
25552555 /**
 2556+ * Enable AJAX check for file overwrite, pre-upload
 2557+ */
 2558+$wgAjaxUploadDestCheck = true;
 2559+
 2560+/**
25562561 * Allow DISPLAYTITLE to change title display
25572562 */
25582563 $wgAllowDisplayTitle = true;
Index: branches/liquidthreads/includes/Setup.php
@@ -257,6 +257,7 @@
258258
259259 if ( $wgAjaxSearch ) $wgAjaxExportList[] = 'wfSajaxSearch';
260260 if ( $wgAjaxWatch ) $wgAjaxExportList[] = 'wfAjaxWatch';
 261+if ( $wgAjaxUploadDestCheck ) $wgAjaxExportList[] = 'UploadForm::ajaxGetExistsWarning';
261262
262263 wfSeedRandom();
263264
Index: branches/liquidthreads/languages/messages/MessagesBg.php
@@ -772,6 +772,7 @@
773773 ''Тъй като уикито приема обикновен HTML, предварителният преглед е скрит като предпазна мярка срещу атаки чрез Джаваскрипт.''
774774
775775 <strong>Опитайте отново. Ако все още не сработва, пробвайте да излезете и влезете отново.</strong>",
 776+'token_suffix_mismatch' => '<strong>Редакцията ви беше отхвърлена, защото браузърът ви е развалил пунктуационните знаци в редакционната отметка. Евентуалното съхранение би унищожило съдържанието на страницата. Понякога това се случва при използването на грешно работещи анонимни междинни сървъри.</strong>', # TODO разбираем превод на edit token
776777 'importing' => 'Внасяне на $1',
777778 'editing' => 'Редактиране на „$1“',
778779 'editinguser' => 'Редактиране на „$1“',
@@ -1005,18 +1006,18 @@
10061007 'files' => 'Файлове',
10071008
10081009 # User rights
1009 -'userrights-lookup-user' => 'Управляване на потребителските групи',
1010 -'userrights-user-editname' => 'Въведете потребителско име:',
1011 -'editusergroup' => 'Редактиране на потребителските групи',
1012 -'userrights-editusergroup' => 'Редактиране на потребителските групи',
1013 -'saveusergroups' => 'Съхранение на потребителските групи',
1014 -'userrights-groupsmember' => 'Член на:',
1015 -'userrights-groupsavailable' => 'Групи на разположение:',
1016 -'userrights-groupshelp' => 'Изберете групите, към които искате той да бъде прибавен или от които да бъде премахнат. Неизбраните групи няма да бъдат променени. Можете да отизберете група чрез &lt;CTRL&gt; + ляв бутон на мишката',
1017 -'userrights-reason' => 'Причина за смяната:',
1018 -'userrights-list' => 'Тъй като сте член на $1, можете да добавяте $2 и да премахвате $3.',
1019 -'userrights-list-nogroups' => 'няма групи',
1020 -'userrights-list-groups' => '{{PLURAL:$1|групата|групите}} $2',
 1010+'userrights-lookup-user' => 'Управляване на потребителските групи',
 1011+'userrights-user-editname' => 'Въведете потребителско име:',
 1012+'editusergroup' => 'Редактиране на потребителските групи',
 1013+'userrights-editusergroup' => 'Редактиране на потребителските групи',
 1014+'saveusergroups' => 'Съхранение на потребителските групи',
 1015+'userrights-groupsmember' => 'Член на:',
 1016+'userrights-groupsavailable' => 'Групи на разположение:',
 1017+'userrights-groupshelp' => 'Изберете групите, към които искате той да бъде прибавен или от които да бъде премахнат. Неизбраните групи няма да бъдат променени. Можете да отизберете група чрез &lt;CTRL&gt; + ляв бутон на мишката',
 1018+'userrights-reason' => 'Причина за смяната:',
 1019+'userrights-available-none' => 'Не можете да променяте групова принадлежност.',
 1020+'userrights-available-add' => 'Можете да добавяте потребители към групите $1.',
 1021+'userrights-available-remove' => 'Можете да премахвате потребители от групите $1.',
10211022
10221023 # Groups
10231024 'group' => 'Потребителска група:',
@@ -1666,11 +1667,11 @@
16671668 'ip_range_invalid' => 'Невалиден интервал за IP-адреси.',
16681669 'proxyblocker' => 'Блокировач на проксита',
16691670 'ipb_cant_unblock' => 'Грешка: Не е намерен блок с номер $1. Вероятно потребителят е вече отблокиран.',
1670 -'proxyblockreason' => 'Вашият IP-адрес беше блокиран, тъй като е отворено прокси. Моля, свържете се с доставчика ви на интернет и го информирайте за този сериозен проблем в сигурността.',
 1671+'proxyblockreason' => 'Вашият IP-адрес беше блокиран, тъй като е анонимно достъпен междинен сървър. Моля, свържете се с доставчика ви на интернет и го информирайте за този сериозен проблем в сигурността.',
16711672 'proxyblocksuccess' => 'Готово.',
16721673 'sorbs' => 'DNSBL',
1673 -'sorbsreason' => 'Вашият IP-адрес е записан като отворено прокси в DNSBL на {{SITENAME}}.',
1674 -'sorbs_create_account_reason' => 'Вашият IP-адрес е записан като отворено прокси в DNSBL на {{SITENAME}}. Не можете да създадете сметка.',
 1674+'sorbsreason' => 'Вашият IP-адрес е записан като анонимно достъпен междинен сървър в DNSBL на {{SITENAME}}.',
 1675+'sorbs_create_account_reason' => 'Вашият IP-адрес е записан като анонимно достъпен междинен сървър в DNSBL на {{SITENAME}}. Не можете да създадете сметка.',
16751676
16761677 # Developer tools
16771678 'lockdb' => 'Заключване на базата от данни',
@@ -1716,7 +1717,7 @@
17171718 'move-watch' => 'Наблюдаване на страницата',
17181719 'movepagebtn' => 'Преместване',
17191720 'pagemovedsub' => 'Преместването беше успешно',
1720 -'pagemovedtext' => 'Страницата „[[$1]]“ беше преместена под името „[[$2]]“.',
 1721+'movepage-moved' => "<big>'''Страницата „$1“ беше преместена под името „$2“.'''</big>",
17211722 'articleexists' => 'Вече съществува страница с това име или името, което сте избрали, е невалидно. Моля, изберете друго име.',
17221723 'talkexists' => "'''Страницата беше успешно преместена, но без съответната дискусионна страница, защото под новото име има една съществуваща. Моля, обединете ги ръчно.'''",
17231724 'movedto' => 'преместена като',
@@ -2269,4 +2270,3 @@
22702271
22712272 );
22722273
2273 -
Index: branches/liquidthreads/languages/messages/MessagesDa.php
@@ -641,6 +641,7 @@
642642 ''Da ren HTM er aktiveret i denne Wiki, er forhåndsvisningen blændet ud for at forebygge JavaScript-angreb.''
643643
644644 <strong>Forsøg venligst igen. Hvis problemet fortsætter, log af og log på igen.</strong>",
 645+'token_suffix_mismatch' => '<strong>Din redigering er afvist, da din browser har forvansket tegnsætningen i redigeringskontrolfilen. Afvisningen sker for at forhindre utilsigtede ændringer i artiklen. Denne fejl opstår nogle gange, når du regigerer gennem en fejlprogrammeret webbaseret anonymiseringstjeneste.</strong>',
645646 'importing' => 'importerer $1',
646647 'editing' => 'Redigerer $1',
647648 'editinguser' => 'Redigerer $1',
@@ -883,9 +884,9 @@
884885 'userrights-groupshelp' => 'Vælg grupper som du ønsker brugeren skal fjernes fra eller føjes til.
885886 Grupper som ikke er valgt, vil ikke blive ændret. Du kan ophæve valget af en gruppe ved hjælp af CTRL-tasten og et venstreklik.',
886887 'userrights-reason' => 'Årsag:',
887 -'userrights-list' => 'Som medlem af $1, kan du tilføje $2 og fjerne $3.',
888 -'userrights-list-nogroups' => 'ingen grupper',
889 -'userrights-list-groups' => '{{PLURAL:$1|gruppen|grupperne}} $2',
 888+'userrights-available-none' => 'Du kan ikke ændre gruppetilhørsforhold.',
 889+'userrights-available-add' => 'Du kan tilføje medlemmer til $1.',
 890+'userrights-available-remove' => 'Du kan fjerne medlemmer fra $1.',
890891
891892 # Groups
892893 'group' => 'Gruppe:',
@@ -1615,7 +1616,7 @@
16161617 'move-watch' => 'Denne side overvåges',
16171618 'movepagebtn' => 'Flyt side',
16181619 'pagemovedsub' => 'Flytning gennemført',
1619 -'pagemovedtext' => 'Siden "[[$1]]" er flyttet til "[[$2]]".',
 1620+'movepage-moved' => '<big>Siden \'\'\'"$1" er flyttet til "$2"\'\'\'</big>', # The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message.
16201621 'articleexists' => 'En side med det navn eksisterer allerede, eller det
16211622 navn du har valgt er ikke gyldigt. Vælg et andet navn.',
16221623 'talkexists' => 'Siden blev flyttet korrekt, men den tilhørende diskussionsside kunne ikke flyttes, fordi der allerede eksisterer en med den nye titel. Du er nødt til at flette dem sammen manuelt.',
Index: branches/liquidthreads/languages/messages/MessagesSv.php
@@ -854,6 +854,9 @@
855855 'userrights-groupsavailable' => 'Tillgängliga grupper:',
856856 'userrights-groupshelp' => 'Markera de grupper, som du vill lägga till eller ta bort användare i. De grupper som du inte markerar, kommer inte att förändras. Du kan avmarkera en grupp med CTRL + vänsterklick.',
857857 'userrights-reason' => 'Anledning till ändringen:',
 858+'userrights-available-none' => 'Du kan inte ändra några grupptillhörigheter.',
 859+'userrights-available-add' => 'Du kan lägga till användare i $1.',
 860+'userrights-available-remove'=> 'Du kan ta bort användare från $1.',
858861
859862 # Groups
860863 'group' => 'Grupp:',
@@ -934,7 +937,7 @@
935938 'uploadedfiles' => 'Uppladdade filer',
936939 'ignorewarning' => 'Ignorera varning och spara ändå.',
937940 'ignorewarnings' => 'Ignorera eventuella varningar',
938 -'minlength' => 'Filens namn måste vara minst tre bokstäver långt',
 941+'minlength1' => 'Filens namn måste innehålla minst ett tecken.',
939942 'illegalfilename' => 'Filnamnet "$1" innehåller tecken som inte är tillåtna i sidtitlar. Byt namn på filen och försök ladda upp igen.',
940943 'badfilename' => 'Filens namn har blivit ändrat till "$1".',
941944 'filetype-badmime' => 'Uppladdning av filer med MIME-typen "$1" är inte tillåten.',
@@ -1168,6 +1171,7 @@
11691172 'allpagessubmit' => 'Utför',
11701173 'allpagesprefix' => 'Visa sidor med prefixet:',
11711174 'allpagesbadtitle' => 'Den sökta sidtiteln var ogiltig eller så innehöll den ett prefix för annan språkversion eller interwiki-prefix. Titeln kan innehålla bokstäver som inte är tillåtna i sidtitlar.',
 1175+'allpages-bad-ns' => 'Namnrymden "$1" finns inte på {{SITENAME}}.',
11721176
11731177 # Special:Listusers
11741178 'listusersfrom' => 'Visa användare från och med:',
@@ -1397,11 +1401,13 @@
13981402 # Contributions
13991403 'contributions' => 'Användarbidrag',
14001404 'mycontris' => 'Mina bidrag',
1401 -'contribsub2' => 'För $1 ($2)',
 1405+'contribsub2' => 'För $1 ($2)',
14021406 'nocontribs' => 'Inga ändringar hittades, som motsvarar dessa kriterier',
14031407 'ucnote' => 'Nedan visas denna användarens senaste <b>$1</b> ändringar, under de senaste <b>$2</b> dagarna.',
14041408 'uclinks' => 'Visa de senaste $1 ändringarna. Visa de senaste $2 dagarna.',
14051409 'uctop' => ' (senaste)',
 1410+'month' => 'Månad:',
 1411+'year' => 'År:',
14061412
14071413 'sp-contributions-newest' => 'Nyaste',
14081414 'sp-contributions-oldest' => 'Äldsta',
@@ -1545,9 +1551,7 @@
15461552 'move-watch' => 'Bevaka denna sida',
15471553 'movepagebtn' => 'Flytta sidan',
15481554 'pagemovedsub' => 'Flyttningen lyckades',
1549 -'pagemovedtext' => 'Sidan "[[$1]]" flyttades till "[[$2]]".
1550 -
1551 -[[{{ns:Special}}:Whatlinkshere/$2|Kontrollera]] gärna att flytten inte orsakat några dubbla omdirigeringar.',
 1555+'movepage-moved' => '<big>"$1" har flyttats till "$2"</big>',
15521556 'articleexists' => 'Antingen existerar redan en sida med det namnet, eller så har du valt ett namn som inte är tillåtet.
15531557 Välj något annat namn istället.',
15541558 'talkexists' => 'Sidan flyttades, men eftersom en annan diskussionssida redan fanns på destinationen kunde diskussionssidan inte flyttas med. Försök att manuellt sammanfoga de bägge diskusionssidornas innehåll till en sida.',
@@ -1810,9 +1814,15 @@
18111815 'exif-orientation' => 'Orientering',
18121816 'exif-samplesperpixel' => 'Antal komponenter',
18131817 'exif-planarconfiguration' => 'Dataarrangemang',
 1818+'exif-ycbcrsubsampling' => 'Subsamplingsförhållande mellan Y och C',
 1819+'exif-ycbcrpositioning' => 'Positionering av Y och C',
18141820 'exif-xresolution' => 'Upplösning i horisontalplan',
18151821 'exif-yresolution' => 'Upplösning i vertikalplan',
18161822 'exif-resolutionunit' => 'Enhet för upplösning i X och Y',
 1823+'exif-stripoffsets' => 'Offset till bilddata',
 1824+'exif-rowsperstrip' => 'Antal rader per strip',
 1825+'exif-stripbytecounts' => 'Byte per komprimerad strip',
 1826+'exif-jpeginterchangeformat' => 'Offset till JPEG SOI',
18171827 'exif-jpeginterchangeformatlength' => 'Antal bytes JPEG-data',
18181828 'exif-transferfunction' => 'Överföringsfunktion',
18191829 'exif-whitepoint' => 'Vitpunktens renhet',
@@ -1838,22 +1848,29 @@
18391849 'exif-relatedsoundfile' => 'Relaterad ljudfil',
18401850 'exif-datetimeoriginal' => 'Exponeringstidpunkt',
18411851 'exif-datetimedigitized' => 'Tidpunkt för digitalisering',
 1852+'exif-subsectime' => 'Ändringstidpunkt, sekunddelar',
 1853+'exif-subsectimeoriginal' => 'Exponeringstidpunkt, sekunddelar',
 1854+'exif-subsectimedigitized' => 'Digitaliseringstidpunkt, sekunddelar',
18421855 'exif-exposuretime' => 'Exponeringstid',
18431856 'exif-exposuretime-format' => '$1 sek ($2)',
18441857 'exif-fnumber' => 'F-nummer',
18451858 'exif-exposureprogram' => 'Exponeringsprogram',
18461859 'exif-spectralsensitivity' => 'Spektral känslighet',
18471860 'exif-isospeedratings' => 'Filmhastighet (ISO)',
 1861+'exif-oecf' => 'Optoelektronisk konversionsfaktor',
18481862 'exif-shutterspeedvalue' => 'Slutarhastighet',
18491863 'exif-aperturevalue' => 'Bländare',
18501864 'exif-brightnessvalue' => 'Ljusstyrka',
18511865 'exif-exposurebiasvalue' => 'Exponeringsbias',
 1866+'exif-maxaperturevalue' => 'Maximal bländare',
18521867 'exif-subjectdistance' => 'Avstånd till motivet',
18531868 'exif-meteringmode' => 'Mätmetod',
18541869 'exif-lightsource' => 'Ljuskälla',
18551870 'exif-flash' => 'Blixt',
18561871 'exif-focallength' => 'Linsens brännvidd',
 1872+'exif-subjectarea' => 'Motivområde',
18571873 'exif-flashenergy' => 'Blixteffekt',
 1874+'exif-spatialfrequencyresponse' => 'Rumslig frekvensrespons',
18581875 'exif-focalplanexresolution' => 'Upplösning i fokalplan x',
18591876 'exif-focalplaneyresolution' => 'Upplösning i fokalplan y',
18601877 'exif-focalplaneresolutionunit' => 'Enhet för upplösning i fokalplan',
@@ -1922,6 +1939,9 @@
19231940 'exif-orientation-7' => 'Roterad 90° medurs och spegelvänd vertikalt', # 0th row: right; 0th column: bottom
19241941 'exif-orientation-8' => 'Roterad 90° moturs', # 0th row: left; 0th column: bottom
19251942
 1943+'exif-planarconfiguration-1' => 'chunkformat',
 1944+'exif-planarconfiguration-2' => 'planärformat',
 1945+
19261946 'exif-componentsconfiguration-0' => 'saknas',
19271947
19281948 'exif-exposureprogram-0' => 'Inte definierad',
@@ -2022,6 +2042,7 @@
20232043 'exif-gpslongitude-w' => 'Västlig longitud',
20242044
20252045 'exif-gpsstatus-a' => 'Mätning pågår',
 2046+'exif-gpsstatus-v' => 'Mätningsinteroperabilitet',
20262047
20272048 'exif-gpsmeasuremode-2' => 'Tvådimensionell mätning',
20282049 'exif-gpsmeasuremode-3' => 'Tredimensionell mätning',
@@ -2045,6 +2066,7 @@
20462067 'watchlistall1' => 'alla',
20472068 'watchlistall2' => 'alla',
20482069 'namespacesall' => 'alla',
 2070+'monthsall' => 'alla',
20492071
20502072 # E-mail address confirmation
20512073 'confirmemail' => 'Bekräfta e-postadress',
@@ -2106,9 +2128,6 @@
21072129 'articletitles' => "Artiklar som börjar med ''$1''",
21082130 'hideresults' => 'Göm resultat',
21092131
2110 -# DISPLAYTITLE
2111 -'displaytitle' => '(Länka till denna sida som [[:$1|$1]])',
2112 -
21132132 'loginlanguagelabel' => 'Språk: $1',
21142133
21152134 # Multipage image navigation
@@ -2156,3 +2175,4 @@
21572176 );
21582177
21592178
 2179+
Index: branches/liquidthreads/languages/messages/MessagesDe.php
@@ -665,6 +665,8 @@
666666 ''Da in diesem Wiki reines HTML aktiviert ist, wurde die Vorschau ausgeblendet um JavaScript Attacken vorzubeugen.''
667667
668668 <strong>Bitte versuchen Sie es erneut. Sollte das Problem bestehen bleiben, melden Sie sich kurz ab und wieder an.</strong>",
 669+'token_suffix_mismatch' => '<strong>Ihre Bearbeitung wurde zurückgewiesen, da Ihr Browser Zeichen im Bearbeiten-Token verstümmelt hat.
 670+Eine Speicherung kann den Seiteninhalt zerstören. Dies geschieht bisweilen durch die Benutzung eines fehlerhaft arbeitenden, anonymen Proxy-Dienstes.</strong>',
669671 'importing' => 'importiere $1',
670672 'editing' => 'Bearbeiten von $1',
671673 'editinguser' => 'Bearbeiten von Benutzer <b>$1</b>',
@@ -902,20 +904,19 @@
903905 'files' => 'Dateien',
904906
905907 # User rights
906 -'userrights-lookup-user' => 'Verwalte Gruppenzugehörigkeit',
907 -'userrights-user-editname' => 'Benutzername:',
908 -'editusergroup' => 'Benutzerrechte bearbeiten',
909 -'userrights-editusergroup' => 'Bearbeite Gruppenzugehörigkeit des Benutzers',
910 -'saveusergroups' => 'Gruppenzugehörigkeit speichern',
911 -'userrights-groupsmember' => 'Mitglied von:',
912 -'userrights-groupsavailable' => 'Verfügbare Gruppen:',
913 -'userrights-groupshelp' => "Wählen Sie die Gruppen, aus denen der Benutzer entfernt oder zu denen er hinzugefügt werden soll.
 908+'userrights-lookup-user' => 'Verwalte Gruppenzugehörigkeit',
 909+'userrights-user-editname' => 'Benutzername:',
 910+'editusergroup' => 'Benutzerrechte bearbeiten',
 911+'userrights-editusergroup' => 'Bearbeite Gruppenzugehörigkeit des Benutzers',
 912+'saveusergroups' => 'Gruppenzugehörigkeit speichern',
 913+'userrights-groupsmember' => 'Mitglied von:',
 914+'userrights-groupsavailable' => 'Verfügbare Gruppen:',
 915+'userrights-groupshelp' => "Wählen Sie die Gruppen, aus denen der Benutzer entfernt oder zu denen er hinzugefügt werden soll.
914916 Nicht selektierte Gruppen werden nicht geändert. Eine Selektion kann mit '''Strg + Linksklick''' (bzw. Ctrl + Linksklick) entfernt werden.",
915 -'userrights-reason' => 'Grund:',
916 -'userrights-list' => 'Sie sind Mitglied der $1 und dürfen Berechtigungen für $2 vergeben und für $3 entziehen.',
917 -'userrights-list-nogroups' => 'keine Benutzergruppe',
918 -'userrights-list-groups' => '{{PLURAL:$1|Benutzergruppe|Benutzergruppen}} „$2“',
919 -'userrights-list-separator' => ', ',
 917+'userrights-reason' => 'Grund:',
 918+'userrights-available-none' => 'Sie dürfen keine Benutzerrechte verändern.',
 919+'userrights-available-add' => 'Sie dürfen Benutzer den Grupppen $1 hinzufügen.',
 920+'userrights-available-remove' => 'Sie dürfen Benutzer aus den Grupppen $1 entfernen.',
920921
921922 # Groups
922923 'group' => 'Gruppe:',
@@ -2293,5 +2294,3 @@
22942295 'lag-warn-high' => 'Auf Grund hoher Datenbankauslastung werden die Bearbeitungen der letzten $1 Sekunden in dieser Liste noch nicht angezeigt.',
22952296
22962297 );
2297 -
2298 -
Index: branches/liquidthreads/languages/messages/MessagesLa.php
@@ -29,6 +29,8 @@
3030 NS_CATEGORY_TALK => 'Disputatio_Categoriae',
3131 );
3232
 33+$separatorTransformTable = array( ',' => "\xc2\xa0" );
 34+
3335 $dateFormats = array(
3436 'mdy time' => 'H:i',
3537 'mdy date' => 'xg j, Y',
Index: branches/liquidthreads/languages/messages/MessagesTi.php
@@ -37,10 +37,12 @@
3838 'qbmyoptions' => 'ፅሑፋተይ',
3939 'mypage' => 'ፅሑፈይ',
4040
 41+'help' => 'ፍንጪ',
4142 'search' => 'ድሉይ',
4243 'searchbutton' => 'ድሉይ',
4344 'history' => 'ናይ ፅሑፍ ታሪኽ',
4445 'history_short' => 'ታሪኽ',
 46+'newpage' => 'ሓዳስ ፅሑፍ',
4547 'jumptosearch' => 'ድሉይ',
4648
4749 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
@@ -57,10 +59,18 @@
5860 'viewsourcefor' => 'ን$1',
5961
6062 # Login and logout pages
 63+'yourname' => 'ናይ ኣባል ሽም:',
 64+'youremail' => 'ኢ-መይል:',
6165 'yourlanguage' => 'ቋንቋ:',
 66+'email' => 'ኢ-መይል',
6267
 68+# Edit pages
 69+'savearticle' => 'ፅሑፍ ኣቐምጥ',
 70+'newarticle' => '(ሓዳስ)',
 71+
6372 # History pages
64 -'next' => 'ዝቕጽል',
 73+'next' => 'ዝቕጽል',
 74+'historysize' => '($1 ባይታት)',
6575
6676 # Search results
6777 'prevn' => 'ናይ ቀደም $1',
@@ -70,7 +80,9 @@
7181 # Preferences page
7282 'preferences' => 'ኣማረጽቲ',
7383 'mypreferences' => 'ናተይ ኣማረጽቲ',
 84+'saveprefs' => 'ኣቐምጥ',
7485 'searchresultshead' => 'ድሉይ',
 86+'savedprefs' => 'ዘቕረብኩሞ መርኣይ ብትክክል ተቀሚጡ ኣሎ።',
7587 'files' => 'ምስልታት',
7688
7789 # Groups
@@ -80,30 +92,42 @@
8193 'group-sysop-member' => 'ሲሶፕ',
8294
8395 # Recent changes
84 -'hist' => 'ታሪኽ',
 96+'hist' => 'ታሪኽ',
 97+'newpageletter' => 'ሓ',
8598
 99+# Upload
 100+'savefile' => 'ምስሊ ኣቐምጥ',
 101+
86102 # Image list
87103 'imagelist' => 'ምስልታት',
88104 'ilsubmit' => 'ድሉይ',
89105 'imgfile' => 'ምስሊ',
90106 'imghistory' => 'ናይ ምስሊ ታሪኽ',
 107+'imagelist_name' => 'ሽም',
91108 'imagelist_user' => 'ኣባል',
92109
93110 # Miscellaneous special pages
94 -'nbytes' => '$1 {{PLURAL:$1|ባይት|ባይታት}}',
95 -'listusers' => 'ኣባላት',
96 -'newpages' => 'ሓደሽቲ ዛዕባታት',
 111+'nbytes' => '$1 {{PLURAL:$1|ባይት|ባይታት}}',
 112+'longpages' => 'ነዋሕቲ ፅሑፋት',
 113+'listusers' => 'ኣባላት',
 114+'newpages' => 'ሓደሽቲ ዛዕባታት',
 115+'newpages-username' => 'ናይ ኣባል ሽም:',
97116
 117+# Book sources
 118+'booksources-go' => 'ኪድ',
 119+
98120 'alphaindexline' => '$1 ናብ $2',
99121
100122 # Special:Log
101123 'specialloguserlabel' => 'ኣባል:',
 124+'log-search-submit' => 'ኪድ',
102125
103126 # Special:Allpages
104 -'nextpage' => 'ዝቕጽል ፅሑፍ ($1)',
105 -'prevpage' => 'ናይ ቀደም ፅሑፍ ($1)',
106 -'allpagesprev' => 'ናይ ቀደም',
107 -'allpagesnext' => 'ዝቕጽል',
 127+'nextpage' => 'ዝቕጽል ፅሑፍ ($1)',
 128+'prevpage' => 'ናይ ቀደም ፅሑፍ ($1)',
 129+'allpagesprev' => 'ናይ ቀደም',
 130+'allpagesnext' => 'ዝቕጽል',
 131+'allpagessubmit' => 'ኪድ',
108132
109133 # Watchlist
110134 'watchlistfor' => "(ን'''$1''')",
@@ -122,9 +146,15 @@
123147 # Block/unblock
124148 'ipblocklist-submit' => 'ድሉይ',
125149
 150+# Namespace 8 related
 151+'allmessagesname' => 'ሽም',
 152+
126153 # Tooltip help for the actions
127154 'tooltip-pt-preferences' => 'ናተይ ኣማረጽቲ',
128155
 156+# Metadata
 157+'metadata' => 'ሜታዳታ',
 158+
129159 'loginlanguagelabel' => 'ቋንቋ: $1',
130160
131161 # Multipage image navigation
@@ -132,9 +162,13 @@
133163 'imgmultipagenext' => 'ዝቕጽል ፅሑፍ →',
134164
135165 # Table pager
136 -'table_pager_next' => 'ዝቕጽል ፅሑፍ',
137 -'table_pager_prev' => 'ናይ ቀደም ፅሑፍ',
 166+'table_pager_next' => 'ዝቕጽል ፅሑፍ',
 167+'table_pager_prev' => 'ናይ ቀደም ፅሑፍ',
 168+'table_pager_limit_submit' => 'ኪድ',
138169
 170+# Auto-summaries
 171+'autosumm-new' => 'ሓዳስ ፅሑፍ: $1',
 172+
139173 # Size units
140174 'size-bytes' => '$1 ባይታት',
141175 'size-kilobytes' => '$1 ኪሎባይታት',
@@ -143,4 +177,4 @@
144178
145179 );
146180
147 -
 181+?>
Index: branches/liquidthreads/languages/messages/MessagesZh_classical.php
@@ -690,6 +690,7 @@
691691 'rightsnone' => '(凡)',
692692
693693 # Recent changes
 694+'nchanges' => '$1易',
694695 'recentchanges' => '近易',
695696 'recentchangestext' => '大典新易,悉列於此。',
696697 'rcnote' => '下為自<strong>$3</strong>起,<strong>$2</strong>日內<strong>$1</strong>近易也。',
@@ -882,7 +883,7 @@
883884 'watchnochange' => '皆無易也',
884885 'watchdetails' => '*共有$1哨,不含議論。
885886 * [[Special:Watchlist/edit|治哨站]]
886 -* [[Special:Watchlist/清哨]]',
 887+* [[Special:Watchlist/clear|清哨]]',
887888 'wlheader-enotif' => '*准報信。',
888889 'wlheader-showupdated' => "*有易者'''粗體'''。",
889890 'removechecked' => '撤已揀',
@@ -1071,7 +1072,7 @@
10721073 'newtitle' => '至新題:',
10731074 'movepagebtn' => '遷此頁',
10741075 'pagemovedsub' => '成',
1075 -'pagemovedtext' => '[[$1]]"遷"[[$2]]"矣。',
 1076+'movepage-moved' => '<big>\'\'\'「$1」遷「$2」矣\'\'\'</big>',
10761077 'articleexists' => '此頁復存,或名謬焉。請更之。',
10771078 'movedto' => '遷至',
10781079 'movetalk' => '並遷其議',
@@ -1247,3 +1248,4 @@
12481249 );
12491250
12501251
 1252+
Index: branches/liquidthreads/languages/messages/MessagesZh_cn.php
@@ -818,9 +818,9 @@
819819 'userrights-groupsavailable' => '可加入群组:',
820820 'userrights-groupshelp' => '选择您想使该用户退出或加入的组群。反选时组群将不改变。您可以通过按住 CTRL 键 + 单击鼠标左键来反选',
821821 'userrights-reason' => '更改原因:',
822 -'userrights-list' => '因为您是$1的成员,您可以加入$2以及移除$3。',
823 -'userrights-list-nogroups' => '无组别',
824 -'userrights-list-groups' => '$2{{PLURAL:$1|组别|组别}}',
 822+'userrights-available-none' => '您不可以更改组别成员。',
 823+'userrights-available-add' => '您可以加入用户到$1。',
 824+'userrights-available-remove' => '您可以从$1中移除用户。',
825825
826826 # Groups
827827 'group' => '群组:',
@@ -1139,6 +1139,7 @@
11401140 'allpagessubmit' => '提交',
11411141 'allpagesprefix' => '显示具有此前缀(名字空间)的页面:',
11421142 'allpagesbadtitle' => '给定的页面标题是非法的,或者具有一个内部语言或内部 wiki 的前缀。它可能包含一个或更多的不能用于标题的字符。',
 1143+'allpages-bad-ns' => '在{{SITENAME}}中没有一个叫做"$1"的名字空间。',
11431144
11441145 # Special:Listusers
11451146 'listusersfrom' => '给定显示用户条件:',
@@ -1379,7 +1380,6 @@
13801381 'ucnote' => '以下是该用户最近<b>$2</b>天内的最后<b>$1</b>次修改。',
13811382 'uclinks' => '参看最后$1次修改;参看最后$2天。',
13821383 'uctop' => ' (最新修改)',
1383 -
13841384 'month' => '月份:',
13851385 'year' => '年份:',
13861386
@@ -1538,7 +1538,7 @@
15391539 'move-watch' => '监视此页',
15401540 'movepagebtn' => '移动页面',
15411541 'pagemovedsub' => '移动成功',
1542 -'pagemovedtext' => '页面“[[$1]]”已经移动到“[[$2]]”。',
 1542+'movepage-moved' => '<big>\'\'\'“$1”已经移动到“$2”\'\'\'</big>',
15431543 'articleexists' => '该名字的页面已经存在,或者您选择的名字无效。请再选一个名字。',
15441544 'talkexists' => '页面本身移动成功,
15451545 但是由于新标题下已经有对话页存在,所以对话页无法移动。请手工合并两个页面。',
@@ -2188,3 +2188,4 @@
21892189 );
21902190
21912191
 2192+
Index: branches/liquidthreads/languages/messages/MessagesEn.php
@@ -686,29 +686,30 @@
687687 'versionrequired' => 'Version $1 of MediaWiki required',
688688 'versionrequiredtext' => 'Version $1 of MediaWiki is required to use this page. See [[Special:Version|version page]].',
689689
690 -'ok' => 'OK',
691 -'sitetitle' => '{{SITENAME}}', # don't translate or duplicate this message to other languages
692 -'pagetitle' => '$1 - {{SITENAME}}',
693 -'sitesubtitle' => '', # don't translate or duplicate this message to other languages
694 -'retrievedfrom' => 'Retrieved from "$1"',
695 -'youhavenewmessages' => 'You have $1 ($2).',
696 -'newmessageslink' => 'new messages',
697 -'newmessagesdifflink' => 'last change',
698 -'editsection' => 'edit',
699 -'editold' => 'edit',
700 -'editsectionhint' => 'Edit section: $1',
701 -'toc' => 'Contents',
702 -'showtoc' => 'show',
703 -'hidetoc' => 'hide',
704 -'thisisdeleted' => 'View or restore $1?',
705 -'viewdeleted' => 'View $1?',
706 -'restorelink' => '{{PLURAL:$1|one deleted edit|$1 deleted edits}}',
707 -'feedlinks' => 'Feed:',
708 -'feed-invalid' => 'Invalid subscription feed type.',
709 -'feed-atom' => 'Atom', # only translate this message to other languages if you have to change it
710 -'feed-rss' => 'RSS', # only translate this message to other languages if you have to change it
711 -'sitenotice' => '-', # the equivalent to wgSiteNotice; don't translate or duplicate this message to other languages
712 -'anonnotice' => '-', # don't translate or duplicate this message to other languages
 690+'ok' => 'OK',
 691+'sitetitle' => '{{SITENAME}}', # don't translate or duplicate this message to other languages
 692+'pagetitle' => '$1 - {{SITENAME}}',
 693+'sitesubtitle' => '', # don't translate or duplicate this message to other languages
 694+'retrievedfrom' => 'Retrieved from "$1"',
 695+'youhavenewmessages' => 'You have $1 ($2).',
 696+'newmessageslink' => 'new messages',
 697+'newmessagesdifflink' => 'last change',
 698+'editsection' => 'edit',
 699+'editsection-brackets' => '[$1]', # only translate this message to other languages if you have to change it
 700+'editold' => 'edit',
 701+'editsectionhint' => 'Edit section: $1',
 702+'toc' => 'Contents',
 703+'showtoc' => 'show',
 704+'hidetoc' => 'hide',
 705+'thisisdeleted' => 'View or restore $1?',
 706+'viewdeleted' => 'View $1?',
 707+'restorelink' => '{{PLURAL:$1|one deleted edit|$1 deleted edits}}',
 708+'feedlinks' => 'Feed:',
 709+'feed-invalid' => 'Invalid subscription feed type.',
 710+'feed-atom' => 'Atom', # only translate this message to other languages if you have to change it
 711+'feed-rss' => 'RSS', # only translate this message to other languages if you have to change it
 712+'sitenotice' => '-', # the equivalent to wgSiteNotice; don't translate or duplicate this message to other languages
 713+'anonnotice' => '-', # don't translate or duplicate this message to other languages
713714
714715 # Short words for each namespace, by default used in the 'article' tab in monobook
715716 'nstab-main' => 'Article',
@@ -999,6 +1000,9 @@
10001001 ''Because this wiki has raw HTML enabled, the preview is hidden as a precaution against JavaScript attacks.''
10011002
10021003 <strong>If this is a legitimate edit attempt, please try again. If it still doesn't work, try logging out and logging back in.</strong>",
 1004+'token_suffix_mismatch' => '<strong>Your edit has been rejected because your client mangled the punctuation characters
 1005+in the edit token. The edit has been rejected to prevent corruption of the article text.
 1006+This sometimes happens when you are using a buggy web-based anonymous proxy service.</strong>',
10031007 'importing' => 'Importing $1',
10041008 'editing' => 'Editing $1',
10051009 'editinguser' => 'Editing user <b>$1</b>',
@@ -1267,18 +1271,18 @@
12681272 'files' => 'Files',
12691273
12701274 # User rights
1271 -'userrights-lookup-user' => 'Manage user groups',
1272 -'userrights-user-editname' => 'Enter a username:',
1273 -'editusergroup' => 'Edit User Groups',
1274 -'userrights-editusergroup' => 'Edit user groups',
1275 -'saveusergroups' => 'Save User Groups',
1276 -'userrights-groupsmember' => 'Member of:',
1277 -'userrights-groupsavailable' => 'Available groups:',
1278 -'userrights-groupshelp' => 'Select groups you want the user to be removed from or added to.
 1275+'userrights-lookup-user' => 'Manage user groups',
 1276+'userrights-user-editname' => 'Enter a username:',
 1277+'editusergroup' => 'Edit User Groups',
 1278+'userrights-editusergroup' => 'Edit user groups',
 1279+'saveusergroups' => 'Save User Groups',
 1280+'userrights-groupsmember' => 'Member of:',
 1281+'userrights-groupsavailable' => 'Available groups:',
 1282+'userrights-groupshelp' => 'Select groups you want the user to be removed from or added to.
12791283 Unselected groups will not be changed. You can deselect a group with CTRL + Left Click',
1280 -'userrights-reason' => 'Reason for change:',
1281 -'userrights-available-none' => 'You may not alter group membership.',
1282 -'userrights-available-add' => 'You can add users to $1.',
 1284+'userrights-reason' => 'Reason for change:',
 1285+'userrights-available-none' => 'You may not alter group membership.',
 1286+'userrights-available-add' => 'You can add users to $1.',
12831287 'userrights-available-remove' => 'You can remove users from $1.',
12841288
12851289 # Groups
@@ -2853,7 +2857,7 @@
28542858 # Auto-summaries
28552859 'autosumm-blank' => 'Removing all content from page',
28562860 'autosumm-replace' => "Replacing page with '$1'",
2857 -'autoredircomment' => 'Redirecting to [[$1]]', # This should be changed to the new naming convention, but existed beforehand
 2861+'autoredircomment' => 'Redirecting to [[$1]]',
28582862 'autosumm-new' => 'New page: $1',
28592863
28602864 # Autoblock whitelist
@@ -2889,16 +2893,11 @@
28902894 # Live preview
28912895 'livepreview-loading' => 'Loading…',
28922896 'livepreview-ready' => 'Loading… Ready!',
2893 -'livepreview-failed' => 'Live preview failed!
2894 -Try normal preview.',
2895 -'livepreview-error' => 'Failed to connect: $1 "$2"
2896 -Try normal preview.',
 2897+'livepreview-failed' => 'Live preview failed! Try normal preview.',
 2898+'livepreview-error' => 'Failed to connect: $1 "$2". Try normal preview.',
28972899
28982900 # Friendlier slave lag warnings
28992901 'lag-warn-normal' => 'Changes newer than $1 seconds may not be shown in this list.',
2900 -'lag-warn-high' => 'Due to high database server lag, changes newer than $1 seconds
2901 -may not be shown in this list.',
 2902+'lag-warn-high' => 'Due to high database server lag, changes newer than $1 seconds may not be shown in this list.',
29022903
29032904 );
2904 -
2905 -
Index: branches/liquidthreads/languages/messages/MessagesFa.php
@@ -1216,6 +1216,7 @@
12171217 'specialloguserlabel' => 'کاربر:',
12181218 'speciallogtitlelabel' => 'عنوان:',
12191219 'log' => 'سیاهه‌ها',
 1220+'all-logs-page' => 'تمام سياهه‌ها',
12201221 'log-search-legend' => 'به دنبال سیاهه‌ها جستجو کن',
12211222 'log-search-submit' => 'برو',
12221223 'alllogstext' => 'نمایش یک‌جای بارکردن‌ها، حذف‌ها، حفاظت‌ها، بستن‌ها و سیاهه‌های مربوط به مدیران. می‌توانید با انتخاب نوع سیاهه، نام کاربری و صفحه‌های تغییریافته، نمایش را محدودتر سازید.',
@@ -2169,3 +2170,4 @@
21702171
21712172
21722173
 2174+
Index: branches/liquidthreads/languages/messages/MessagesZh_tw.php
@@ -791,9 +791,9 @@
792792 'userrights-groupsavailable' => '可用群組:',
793793 'userrights-groupshelp' => '請選擇您想讓用戶加入或退出的群組。沒有選擇的群組將不會被改變。您也可以用"CTRL + 左擊滑鼠"複選或取消已經選擇的群組。',
794794 'userrights-reason' => '更改原因:',
795 -'userrights-list' => '因為您是$1的成員,您可以加入$2以及移除$3。',
796 -'userrights-list-nogroups' => '無組別',
797 -'userrights-list-groups' => '$2{{PLURAL:$1|組別|組別}}',
 795+'userrights-available-none' => '您不可以更改組別成員。',
 796+'userrights-available-add' => '您可以加入用戶到$1。',
 797+'userrights-available-remove' => '您可以從$1中移除用戶。',
798798
799799 # Groups
800800 'group' => '群組:',
@@ -1112,6 +1112,7 @@
11131113 'allpagessubmit' => '提交',
11141114 'allpagesprefix' => '顯示具有此前綴(名字空間)的頁面:',
11151115 'allpagesbadtitle' => '給定的頁面標題是非法的,或者具有一個內部語言或內部 wiki 的前綴。它可能包含一個或更多的不能用於標題的字元。',
 1116+'allpages-bad-ns' => '在{{SITENAME}}中沒有一個叫做"$1"的名字空間。',
11161117
11171118 # Special:Listusers
11181119 'listusersfrom' => '給定顯示用戶條件:',
@@ -1353,7 +1354,6 @@
13541355 'ucnote' => '以下是該用戶最近<b>$2</b>天內的最後<b>$1</b>次修改。',
13551356 'uclinks' => '參看最後$1次修改;參看最後$2天。',
13561357 'uctop' => ' (最新修改)',
1357 -
13581358 'month' => '月份:',
13591359 'year' => '年份:',
13601360
@@ -1512,7 +1512,7 @@
15131513 'move-watch' => '監視此頁',
15141514 'movepagebtn' => '移動頁面',
15151515 'pagemovedsub' => '移動成功',
1516 -'pagemovedtext' => '頁面「[[$1]]」已經移動到「[[$2]]」。',
 1516+'movepage-moved' => '<big>\'\'\'「$1」已經移動到「$2」\'\'\'</big>',
15171517 'articleexists' => '該名字的頁面已經存在,或者您選擇的名字無效。請再選一個名字。',
15181518 'talkexists' => '頁面本身移動成功,
15191519 但是由於新標題下已經有對話頁存在,所以對話頁無法移動。請手工合併兩個頁面。',
@@ -2162,3 +2162,4 @@
21632163 );
21642164
21652165
 2166+
Index: branches/liquidthreads/languages/messages/MessagesHe.php
@@ -938,19 +938,19 @@
939939 'files' => 'קבצים',
940940
941941 # User rights
942 -'userrights-lookup-user' => 'נהלו קבוצות משתמש',
943 -'userrights-user-editname' => 'הכניסו שם משתמש:',
944 -'editusergroup' => 'ערכו קבוצות משתמשים',
945 -'userrights-editusergroup' => 'ערכו קבוצות משתמש',
946 -'saveusergroups' => 'שמור קבוצות משתמש',
947 -'userrights-groupsmember' => 'חבר בקבוצות:',
948 -'userrights-groupsavailable' => 'קבוצות זמינות:',
949 -'userrights-groupshelp' => 'אנא בחרו קבוצות שברצונכם שהמשתמש יתווסף אליהן או יוסר מהן.
 942+'userrights-lookup-user' => 'נהלו קבוצות משתמש',
 943+'userrights-user-editname' => 'הכניסו שם משתמש:',
 944+'editusergroup' => 'ערכו קבוצות משתמשים',
 945+'userrights-editusergroup' => 'ערכו קבוצות משתמש',
 946+'saveusergroups' => 'שמור קבוצות משתמש',
 947+'userrights-groupsmember' => 'חבר בקבוצות:',
 948+'userrights-groupsavailable' => 'קבוצות זמינות:',
 949+'userrights-groupshelp' => 'אנא בחרו קבוצות שברצונכם שהמשתמש יתווסף אליהן או יוסר מהן.
950950 קבוצות שלא נבחרו לא ישתנו. באפשרותכם לבטל בחירה של קבוצה באמצעות לחיצה על הכפתור השמאלי של העכבר ועל Ctrl מעליה.',
951 -'userrights-reason' => 'סיבה לשינוי:',
952 -'userrights-list' => 'כיוון שאתם חברים בקבוצה $1, באפשרותכם להוסיף $2 ולהסיר $3.',
953 -'userrights-list-nogroups' => 'אין קבוצות',
954 -'userrights-list-groups' => '{{PLURAL:$1|הקבוצה|הקבוצות}} $2',
 951+'userrights-reason' => 'סיבה לשינוי:',
 952+'userrights-available-none' => 'אינכם יכולים לשנות את ההשתייכות לקבוצות.',
 953+'userrights-available-add' => 'באפשרותכם להוסיף משתמשים לקבוצות $1.',
 954+'userrights-available-remove' => 'באפשרותכם להסיר משתמשים מהקבוצות $1.',
955955
956956 # Groups
957957 'group' => 'קבוצה:',
Index: branches/liquidthreads/languages/messages/MessagesKab.php
@@ -18,14 +18,19 @@
1919 NS_IMAGE_TALK => 'Amyannan_n_tugna',
2020 NS_MEDIAWIKI => 'MediaWiki',
2121 NS_MEDIAWIKI_TALK => 'Amyannan_n_MediaWiki',
22 - NS_TEMPLATE => 'Talγa',
23 - NS_TEMPLATE_TALK => 'Amyannan_n_talγa',
 22+ NS_TEMPLATE => 'Talɣa',
 23+ NS_TEMPLATE_TALK => 'Amyannan_n_talɣa',
2424 NS_HELP => 'Tallat',
2525 NS_HELP_TALK => 'Amyannan_n_tallat',
2626 NS_CATEGORY => 'Taggayt',
2727 NS_CATEGORY_TALK => 'Amyannan_n_taggayt'
2828 );
2929
 30+$namespaceAliases = array(
 31+ 'Talγa' => NS_TEMPLATE,
 32+ 'Amyannan_n_talγa' => NS_TEMPLATE_TALK,
 33+);
 34+
3035 $messages = array(
3136 # User preference toggles
3237 'tog-underline' => 'Derrer izdayen:',
@@ -38,9 +43,9 @@
3944 'tog-showtoolbar' => 'Ssken tanuga n dduzan n ubeddel (JavaScript)',
4045 'tog-editondblclick' => 'Beddel isebtaren asmi wekkiɣ snat n tikwal (JavaScript)',
4146 'tog-editsection' => 'Eğğ abeddel n umur s yizdayen [beddel]',
42 -'tog-editsectiononrightclick' => 'Eğğ abeddel n umur asmi wekkiɣ ɣef uyeffus<br /> γef yizwal n umur (JavaScript)',
 47+'tog-editsectiononrightclick' => 'Eğğ abeddel n umur asmi wekkiɣ ɣef uyeffus<br /> ɣef yizwal n umur (JavaScript)',
4348 'tog-showtoc' => 'Ssken agbur (i isebtaren i yesɛan kter n 3 izwalen)',
44 -'tog-rememberpassword' => 'Cfu ɣef yisem n umseqdac inu di uselkim-agi',
 49+'tog-rememberpassword' => 'Cfu ɣef yisem n wemseqdac inu di uselkim-agi',
4550 'tog-editwidth' => 'Tankult ubeddel tesɛa tehri ettmam',
4651 'tog-watchcreations' => 'Rnu isebtaren i xelqeɣ di umuɣ n uɛessi inu',
4752 'tog-watchdefault' => 'Rnu isebtaren i beddleɣ di umuruɣ n uɛessi inu',
@@ -185,7 +190,7 @@
186191 'talk' => 'Amyannan',
187192 'views' => 'Tuẓrin',
188193 'toolbox' => 'Dduzan',
189 -'userpage' => 'Ẓer asebtar n umseqdac',
 194+'userpage' => 'Ẓer asebtar n wemseqdac',
190195 'projectpage' => 'Ẓer asebtar n usenfar',
191196 'imagepage' => 'Ẓer asebtar n tugna',
192197 'mediawikipage' => 'Ẓer asebtar n izen',
@@ -256,7 +261,7 @@
257262
258263 # Short words for each namespace, by default used in the 'article' tab in monobook
259264 'nstab-main' => 'Amagrad',
260 -'nstab-user' => 'Asebtar n umseqdac',
 265+'nstab-user' => 'Asebtar n wemseqdac',
261266 'nstab-media' => 'Asebtar n media',
262267 'nstab-special' => 'Uslig',
263268 'nstab-project' => 'Awal ɣef...',
@@ -333,62 +338,62 @@
334339 # Login and logout pages
335340 'logouttitle' => 'Tuffɣa',
336341 'logouttext' => '<strong>Tura teffɣeḍ.</strong><br />
337 -Tzemreḍ ad tesseqdceḍ {{SITENAME}} d udrig, neɣ tzemreḍ ad tkecmeḍ daɣen s yisem umseqdac inek (neɣ nniḍen). Kra n yisebtaren zemren ad sskanen belli mazal-ik s yisem umseqdac inek armi temḥuḍ lkac.',
 342+Tzemreḍ ad tesseqdceḍ {{SITENAME}} d udrig, neɣ tzemreḍ ad tkecmeḍ daɣen s yisem n wemseqdac inek (neɣ nniḍen). Kra n yisebtaren zemren ad sskanen belli mazal-ik s yisem n wemseqdac inek armi temḥuḍ lkac.',
338343 'welcomecreation' => '== Anṣuf yis-k, $1! ==
339344
340 -Isem n umseqdac inek yettwaxleq. Ur tettuḍ ara ad tbeddleḍ Isemyifiyen n {{SITENAME}} inek.',
 345+Isem n wemseqdac inek yettwaxleq. Ur tettuḍ ara ad tbeddleḍ Isemyifiyen n {{SITENAME}} inek.',
341346 'loginpagetitle' => 'Takcemt',
342 -'yourname' => 'Isem n umseqdac',
 347+'yourname' => 'Isem n wemseqdac',
343348 'yourpassword' => 'Awal n tbaḍnit',
344349 'yourpasswordagain' => 'Ɛiwed ssekcem awal n tbaḍnit',
345350 'remembermypassword' => 'Cfu ɣef wawal n tbaḍnit inu di uselkim-agi.',
346351 'yourdomainname' => 'Taɣult inek',
347 -'externaldberror' => 'Yella ugul aberrani n database neɣ ur tettalaseḍ ara ad tbeddleḍ isem an umseqdac aberrani inek.',
 352+'externaldberror' => 'Yella ugul aberrani n database neɣ ur tettalaseḍ ara ad tbeddleḍ isem an wemseqdac aberrani inek.',
348353 'loginproblem' => '<b>Yella ugur akk d ukcam inek.</b><br />Ɛreḍ daɣen!',
349354 'alreadyloggedin' => '<strong>A(y) $1, tkecmeḍ yagi!</strong><br />',
350355 'login' => 'Kcem',
351 -'loginprompt' => 'Yessefk teğğiḍ ikukiyen (cookies) iwakken ad tkecmeḍ ar {{SITENAME}}.',
352 -'userlogin' => 'Kcem / Xleq isem n umseqdac',
 356+'loginprompt' => 'Yessefk ad teğğiḍ ikukiyen (cookies) iwakken ad tkecmeḍ ar {{SITENAME}}.',
 357+'userlogin' => 'Kcem / Xleq isem n wemseqdac',
353358 'logout' => 'Ffeɣ',
354359 'userlogout' => 'Ffeɣ',
355360 'notloggedin' => 'Ur tekcimeḍ ara',
356 -'nologin' => 'Ur tesɛiḍ ara isem n umseqdac? $1.',
357 -'nologinlink' => 'Xleq isem n umseqdac',
358 -'createaccount' => 'Xleq isem n umseqdac',
359 -'gotaccount' => 'Tesɛiḍ yagi isem n umseqdac? $1.',
 361+'nologin' => 'Ur tesɛiḍ ara isem n wemseqdac? $1.',
 362+'nologinlink' => 'Xleq isem n wemseqdac',
 363+'createaccount' => 'Xleq isem n wemseqdac',
 364+'gotaccount' => 'Tesɛiḍ yagi isem n wemseqdac? $1.',
360365 'gotaccountlink' => 'Kcem',
361366 'createaccountmail' => 's e-mail',
362367 'badretype' => 'Awal n tbaḍnit amezwaru d wis sin mačči d kif-kif.',
363 -'userexists' => 'Isem umseqdac yeddem-as amdan wayeḍ. Fren yiwen nniḍen.',
 368+'userexists' => 'Isem n wemseqdac yeddem-as amdan wayeḍ. Fren yiwen nniḍen.',
364369 'youremail' => 'E-mail *:',
365 -'username' => 'Isem n umseqdac:',
 370+'username' => 'Isem n wemseqdac:',
366371 'uid' => 'Amseqdac ID:',
367372 'yourrealname' => 'Isem n ṣṣeḥ *:',
368373 'yourlanguage' => 'Tutlayt:',
369374 'yourvariant' => 'Ameskil',
370375 'yournick' => 'Isem wis sin (mačči d amenṣib):',
371376 'badsig' => 'Azmul mačči d ṣaḥiḥ; Ssenqed tags n HTML.',
372 -'prefs-help-realname' => '* Isem n ṣṣeḥ (am tebγiḍ): ma textareḍ a t-tefkeḍ, ad yettuseqdac iwakken ad snen medden anwa yura tikkin inek.',
 377+'prefs-help-realname' => '* Isem n ṣṣeḥ (am tebɣiḍ): ma textareḍ a t-tefkeḍ, ad yettuseqdac iwakken ad snen medden anwa yura tikkin inek.',
373378 'loginerror' => 'Agul n ukcam',
374379 'prefs-help-email' => '* E-mail (am tebɣiḍ): Teğği imseqdacen wiyaḍ a k-aznen email mebla ma ẓren tansa email inek.',
375 -'nocookiesnew' => 'Isem umseqdac-agi yettwaxleq, meɛna ur tekcimeḍ ara. {{SITENAME}} yesseqdac ikukiyen (cookies) iwakken ad tkecmeḍ. Tekseḍ ikukiyen-nni. Eğğ-aten, umbeɛd kecm s yisem umseqdac akk d awal n tbaḍnit inek.',
 380+'nocookiesnew' => 'Isem n wemseqdac-agi yettwaxleq, meɛna ur tekcimeḍ ara. {{SITENAME}} yesseqdac ikukiyen (cookies) iwakken ad tkecmeḍ. Tekseḍ ikukiyen-nni. Eğğ-aten, umbeɛd kecm s yisem n wemseqdac akk d wawal n tbaḍnit inek.',
376381 'nocookieslogin' => '{{SITENAME}} yesseqdac ikukiyen (cookies) iwakken ad tkecmeḍ. Tekseḍ ikukiyen-nni. Eğğ-aten iwakken ad tkecmeḍ.',
377 -'noname' => 'Ur tefkiḍ ara isem n umseqdac ṣaḥiḥ.',
 382+'noname' => 'Ur tefkiḍ ara isem n wemseqdac ṣaḥiḥ.',
378383 'loginsuccesstitle' => 'Tkecmeḍ!',
379 -'loginsuccess' => "'''Tkecmeḍ ar {{SITENAME}} s yisem umseqdac \"\$1\".'''",
380 -'nosuchuser' => 'Ulac isem umseqdac s yisem "$1". Ssenqed tira n yisem-nni, neɣ xelq isem umseqdac amaynut.',
381 -'nosuchusershort' => 'Ulac isem umseqdac s yisem "$1". Ssenqed tira n yisem-nni.',
382 -'nouserspecified' => 'Yessefk ad tefkeḍ isem n umseqdac.',
 384+'loginsuccess' => "'''Tkecmeḍ ar {{SITENAME}} s yisem n wemseqdac \"\$1\".'''",
 385+'nosuchuser' => 'Ulac isem n wemseqdac s yisem "$1". Ssenqed tira n yisem-nni, neɣ xelq isem n wemseqdac amaynut.',
 386+'nosuchusershort' => 'Ulac isem n wemseqdac s yisem "$1". Ssenqed tira n yisem-nni.',
 387+'nouserspecified' => 'Yessefk ad tefkeḍ isem n wemseqdac.',
383388 'wrongpassword' => 'Awal n tbaḍnit ɣaleṭ. Ɛreḍ daɣen.',
384389 'wrongpasswordempty' => 'Awal n tbaḍnit ulac-it. Ɛreḍ daɣen.',
385390 'mailmypassword' => 'Awal n tbaḍnit n e-mail',
386391 'passwordremindertitle' => 'Asmekti n wawal n tbaḍnit seg {{SITENAME}}',
387392 'passwordremindertext' => 'Amdan (waqila d kečč, seg tansa IP $1)
388393 yesteqsa iwakken a nazen awal n tbaḍnit amaynut i {{SITENAME}} ($4).
389 -Awal n tbaḍnit iumseqdac "$2" yuɣal-d tura "$3".
 394+Awal n tbaḍnit i wemseqdac "$2" yuɣal-d tura "$3".
390395 Mliḥ lukan tkecmeḍ u tbeddleḍ awal n tbaḍnit tura.
391396
392 -Lukan mačči d kečč i yesteqsatn neɣ tecfiḍ ɣef awal n tbaḍnit, tzemreḍ ad tkemmleḍ mebla ma tbeddleḍ awal n tbaḍnit.',
 397+Lukan mačči d kečč i yesteqsan neɣ tecfiḍ ɣef awal n tbaḍnit, tzemreḍ ad tkemmleḍ mebla ma tbeddleḍ awal n tbaḍnit.',
393398 'noemail' => '"$1" ur yesɛi ara email.',
394399 'passwordsent' => 'Awal n tbaḍnit amaynut yettwazen i emal inek, aylaw n "$1".
395400 G leɛnaya-k, kcem tikelt nniḍen yis-s.',
@@ -399,14 +404,14 @@
400405 iwakken ad tbeyyneḍ belli tansa n email inek.',
401406 'throttled-mailpassword' => 'Asmekti n wawal n tbaḍnit yettwazen yagi deg $1 sswayeɛ i iɛeddan. Asmekti n wawal n tbaḍnit yettwazen tikelt kan mkul $1 swayeɛ.',
402407 'mailerror' => 'Agul asmi yettwazen e-mail: $1',
403 -'acct_creation_throttle_hit' => 'Surf-aɣ, txelqeḍ aṭas n ysimawen umseqdac ($1). Ur tettalaseḍ ara txelqeḍ kter.',
 408+'acct_creation_throttle_hit' => 'Surf-aɣ, txelqeḍ aṭas n yismawen n wemseqdac ($1). Ur tettalaseḍ ara ad txelqeḍ kter.',
404409 'emailauthenticated' => 'Tansa e-mail inek tettuɛqel deg $1.',
405410 'emailnotauthenticated' => 'Tansa e-mail inek mazal ur tettuɛqel. Ḥedd e-mail ur ttwazen i ulaḥedd n iḍaɣaren-agi.',
406411 'noemailprefs' => 'Efk tansa e-mail iwakken ad leḥḥun iḍaɣaren-nni.',
407412 'emailconfirmlink' => 'Sentem tansa e-mail inek',
408413 'invalidemailaddress' => 'Tansa e-mail-agi ur telhi, ur tesɛi ara taseddast n lɛali. Ssekcem tansa e-mail s taseddast n lɛali neɣ ur tefkiḍ acemma.',
409 -'accountcreated' => 'Isem umseqdac yettwaxleq',
410 -'accountcreatedtext' => 'Isem umseqdac i $1 yettwaxleq.',
 414+'accountcreated' => 'Isem n wemseqdac yettwaxleq',
 415+'accountcreatedtext' => 'Isem n wemseqdac i $1 yettwaxleq.',
411416
412417 # Password reset dialog
413418 'resetpass' => 'Iɛawed awal n tbaḍnit',
@@ -458,22 +463,22 @@
459464 'summary-preview' => 'Pre-timeẓriwt n ugzul',
460465 'subject-preview' => 'Pre-timeẓriwt asentel/azwel azellum',
461466 'blockedtitle' => 'Amseqdac iɛekkel',
462 -'blockedtext' => "<big>'''Isem umseqdac neɣ tansa n IP inek ɛekkelen.'''</big>
 467+'blockedtext' => "<big>'''Isem n wemseqdac neɣ tansa n IP inek ɛekkelen.'''</big>
463468
464469 $1 iɛekkel-it u yenna-d ''$2''.
465470
466471 Tzemreḍ ad tmeslayeḍ akk d $1 neɣ [[{{MediaWiki:grouppage-sysop}}|anedbal]] nniḍen iwakken ad tsmelayem ɣef uɛekkil-nni.
467 -Lukan ur tefkiḍ ara email saḥih deg [[Special:Preferences|isemyifiyen umseqdac]], ur tezmireḍ ara ad tazneḍ email. Tansa n IP inek n tura d $3, ID n uɛekkil d #$5. Smekti-ten u fka-ten i unedbal-nni.",
 472+Lukan ur tefkiḍ ara email saḥih deg [[Special:Preferences|isemyifiyen n wemseqdac]], ur tezmireḍ ara ad tazneḍ email. Tansa n IP inek n tura d $3, ID n uɛekkil d #$5. Smekti-ten u fka-ten i unedbal-nni.",
468473 'blockedoriginalsource' => "Aɣablu n '''$1''' hat deg ukessar:",
469474 'blockededitsource' => "Aḍris n '''ubeddel inek''' i '''$1''' hat deg ukessar:",
470475 'whitelistedittitle' => 'Yessefk ad tkecmeḍ iwakken ad tbeddleḍ',
471476 'whitelistedittext' => 'Yessefk ad $1 iwakken ad tbeddleḍ isebtaren.',
472477 'whitelistreadtitle' => 'Yessefk ad tkecmeḍ iwakken ad teqqareḍ',
473478 'whitelistreadtext' => 'Yessefk ad [[Special:Userlogin|tkecmeḍ]] iwakken ad teqqareḍ isebtaren.',
474 -'whitelistacctitle' => 'Ur tettalaseḍ ara txelqeḍ isem n umseqdac',
475 -'whitelistacctext' => 'Aakken ad txelqeḍ isem umseqdac deg wiki-yagi yessefk ad [[Special:Userlogin|tkecmeḍ]] u tesɛa izerfan usligen.',
 479+'whitelistacctitle' => 'Ur tettalaseḍ ara ad txelqeḍ isem n wemseqdac',
 480+'whitelistacctext' => 'Aakken ad txelqeḍ isem n wemseqdac deg wiki-yagi yessefk ad [[Special:Userlogin|tkecmeḍ]] u tesɛa izerfan usligen.',
476481 'confirmedittitle' => 'Yessef ad tsentmeḍ e-mail inek iwakken ad tbeddleḍ',
477 -'confirmedittext' => 'Yessefl ad tsentmeḍ tansa e-mail inek uqbel abeddel. Xtar tansa e-mail di [[Special:Preferences|isemyifiyen umseqdac]].',
 482+'confirmedittext' => 'Yessefk ad tsentmeḍ tansa e-mail inek uqbel abeddel. Xtar tansa e-mail di [[Special:Preferences|isemyifiyen n wemseqdac]].',
478483 'nosuchsectiontitle' => 'Amur ulac-it',
479484 'nosuchsectiontext' => 'Tɛerḍeḍ ad tbeddleḍ amur ulac-it. Ulac amur am akka deg usebtar $1.',
480485 'loginreqtitle' => 'Yessefk ad tkecmeḍ',
@@ -486,7 +491,7 @@
487492 Akken ad txelqeḍ asebtar-nni, aru deg tankult i tella deg ukessar
488493 (ẓer [[{{MediaWiki:helppage}}|asebtar n tallat]] akken ad tessneḍ kter).
489494 Ma tɣelṭeḍ, wekki kan ɣef tqeffalt "Back/Précédent" n browser/explorateur inek.',
490 -'anontalkpagetext' => "----''Wagi d asebtar n umyennan n umseqdac adrig. Ihi, yessef a nefk-as ID, nesseqdac tansa n IP ines akken a t-neɛqel. Tansa n IP nni ahat tettuseqdac sɣur aṭṭas n yimdanen. Lukan ula d kečč aqla-k amseqdac adrig u ur tebɣiḍ ara ad tettwabcreḍ izen am wigini, ihi [[Special:Userlogin|xleq isem umseqdac neɣ kcem]].''",
 495+'anontalkpagetext' => "----''Wagi d asebtar n umyennan n wemseqdac adrig. Ihi, yessef ad as nefk ID, nesseqdac tansa n IP ines akken a t-neɛqel. Tansa n IP nni ahat tettuseqdac sɣur aṭṭas n yimdanen. Lukan ula d kečč aqla-k amseqdac adrig u ur tebɣiḍ ara ad tettwabcreḍ izen am wigini, ihi [[Special:Userlogin|xleq isem n wemseqdac neɣ kcem]].''",
491496 'noarticletext' => 'Ulac aḍris deg usebtar-agi, tzemreḍ ad [[Special:Search/{{PAGENAME}}|tnadiḍ ɣef uzwel n usebtar-agi]] deg isebtaren wiyaḍ neɣ [{{fullurl:{{FULLPAGENAME}}|action=edit}} tettbeddileḍ asebtar-agi].',
492497 'clearyourcache' => "'''Tamawt:''' Beɛd asmekti, ahat yessefk ad temḥuḍ lkac n browser/explorateur inek akken teẓriḍ ibeddlen. '''Mozilla / Firefox / Safari:''' qqim twekkiḍ ''Shift'' u wekki ɣef ''Reload/Recharger'', neɣ wekki ɣef ''Ctrl-Shift-R'' (''Cmd-Shift-R'' deg Apple Mac); '''IE:''' qqim twekkiḍ ɣef ''Ctrl'' u wekki ɣef ''Refresh/Actualiser'', neɣ wekki ɣef ''Ctrl-F5''; '''Konqueror:''': wekki kan ɣef taqeffalt ''Reload'', neɣ wekki ɣef ''F5''; '''Opera''' yessefk ad tesseqdceḍ ''Tools→Preferences/Outils→Préférences'' akken ad temḥud akk lkac.",
493498 'usercssjsyoucanpreview' => "<strong>Tixidest:</strong> Sseqdec taqeffalt 'Ssken pre-timeẓriwt' iwakken ad tɛerḍeḍ CSS/JS amynut inek uqbel ma tesmektiḍ.",
@@ -506,7 +511,7 @@
507512 <strong>Lukan abeddel agi d aḥeqqani, g leɛnayek ɛreḍ tikelt nniḍen.. Lukan mazal yella ugur, ffeɣ umbeɛd kcem.</strong>",
508513 'importing' => 'Asekcam n $1',
509514 'editing' => 'Abeddel n $1',
510 -'editinguser' => 'Abeddel n umseqdac <b>$1</b>',
 515+'editinguser' => 'Abeddel n wemseqdac <b>$1</b>',
511516 'editingsection' => 'Abeddel n $1 (amur)',
512517 'editingcomment' => 'Abeddel n $1 (awennit)',
513518 'editconflict' => 'Amennuɣ deg ubeddel: $1',
@@ -534,7 +539,7 @@
535540 ihi ur tezmireḍ ara ad tesmektiḍ ibeddlen inek tura. Smekti aḍris inek
536541 deg afaylu nniḍen akken tesseqdceḍ-it umbeɛd.</strong>',
537542 'protectedpagewarning' => '<strong>AƔTAL: Asebtar-agi yettwaḥrez, ala inedbalen i zemren a t-beddlen</strong>',
538 -'semiprotectedpagewarning' => "'''Tamawt:''' Asebtar-agi yettwaḥrez, ala imseqdacen i yesɛan isem umseqdac i zemren a t-beddlen.",
 543+'semiprotectedpagewarning' => "'''Tamawt:''' Asebtar-agi yettwaḥrez, ala imseqdacen i yesɛan isem n wemseqdac i zemren a t-beddlen.",
539544 'cascadeprotectedwarning' => "'''Aɣtal:''' Asebtar-agi iɛekkel akken ad zemren ala sysop i t-beddlen, axaṭer yettwassekcem deg isebtaren i yettwaḥerzen agi (acercur):",
540545 'templatesused' => 'Talɣiwin ttuseqdacen deg usebtar-agi:',
541546 'templatesusedpreview' => 'Talɣiwin ttuseqdacen deg pre-timeẓriwt-agi:',
@@ -544,7 +549,7 @@
545550 'edittools' => '<!-- Aḍris yettbanen-d seddaw talɣa n ubeddil d uzen. -->',
546551 'nocreatetitle' => 'Axleq n yisebtaren meḥdud',
547552 'nocreatetext' => 'Adeg in internet agi iḥedd axleq n yisebtaren imaynuten.
548 -Tzemreḍ ad d-uɣaleḍ u tbeddleḍ asebtar i yellan, neɣ ad [[Special:Userlogin|tkecmeḍ neɣ ad txelqeḍ isem umseqdac]].',
 553+Tzemreḍ ad d-uɣaleḍ u tbeddleḍ asebtar i yellan, neɣ ad [[Special:Userlogin|tkecmeḍ neɣ ad txelqeḍ isem n wemseqdac]].',
549554
550555 # "Undo" feature
551556 'undo-success' => 'Tzemreḍ ad tessefsuḍ abeddil. Ssenqed asidmer akken ad tessneḍ ayen tebɣiḍ ad txdmeḍ d ṣṣeḥ, umbeɛd smekti ibeddlen u tkemmleḍ ad tessefsuḍ abeddil.',
@@ -552,8 +557,8 @@
553558 'undo-summary' => 'Ssefsu tasiwelt $1 sɣur [[Special:Contributions/$2|$2]] ([[User talk:$2|Meslay]])',
554559
555560 # Account creation failure
556 -'cantcreateaccounttitle' => 'Ur yezmir ara yexleq isem umseqdac',
557 -'cantcreateaccounttext' => 'Yeɛkel axleq n isem umseqdac n tansa n IP agi : (<b>$1</b>).
 561+'cantcreateaccounttitle' => 'Ur yezmir ara ad yexleq isem n wemseqdac',
 562+'cantcreateaccounttext' => 'Yeɛkel axlaq n yisem n wemseqdac n tansa n IP agi : (<b>$1</b>).
558563 Ahat llan aṭas n yimidanen icerrɛen seg lakul inek neɣ provider inek.',
559564
560565 # History pages
@@ -595,7 +600,7 @@
596601
597602 # Revision deletion
598603 'rev-deleted-comment' => '(awennit yettwakes)',
599 -'rev-deleted-user' => '(isem umseqdac yettwakes)',
 604+'rev-deleted-user' => '(isem n wemseqdac yettwakes)',
600605 'rev-deleted-event' => '(asekcem yettwakkes)',
601606 'rev-deleted-text-permission' => '<div class="mw-warning plainlinks">
602607 Tasiwelt-agi n tettwakkes seg weɣbar azayez.
@@ -620,7 +625,7 @@
621626 'revdelete-hide-text' => 'Ffer aḍris n tsiwelt',
622627 'revdelete-hide-name' => 'Ffer tigawt d nnican',
623628 'revdelete-hide-comment' => 'Ffer abeddel n uwennit',
624 -'revdelete-hide-user' => 'Ffer Isem-umseqdac/IP n umeskar',
 629+'revdelete-hide-user' => 'Ffer Isem n wemseqdac/IP n umeskar',
625630 'revdelete-hide-restricted' => 'Eg icekkilen i inedbalen d yimdanen wiyaḍ',
626631 'revdelete-suppress' => 'Kkes talɣut seg inedbalen d yimdanen wiyaḍ',
627632 'revdelete-hide-image' => 'Ffer ayen yellan deg ufaylu',
@@ -655,9 +660,9 @@
656661 'searchsubtitle' => "Tnadiḍ ɣef '''[[:$1]]'''",
657662 'searchsubtitleinvalid' => "Tnadiḍ ɣef '''$1'''",
658663 'badquery' => 'Anadi ur yelhi',
659 -'badquerytext' => 'Ur nezmir ara ad naf ayen tebγiḍ.
660 -Axaṭer balak tnadiḍ γef awal yesɛan qell n 3 isekkilen,
661 -Neγ ur turiḍ ara mliḥ γef wayen tnadiḍ,
 664+'badquerytext' => 'Ur nezmir ara ad naf ayen tebɣiḍ.
 665+Axaṭer balak tnadiḍ ɣef awal yesɛan qell n 3 isekkilen,
 666+Neɣ ur turiḍ ara mliḥ ɣef wayen tnadiḍ,
662667 s umedya : "izem d d wuccen".
663668 Ɛreḍ d wawal nniḍen.',
664669 'matchtotals' => 'Ayen tnadiḍ : "$1" yecban $2 n yizwal n usebtar
@@ -674,7 +679,7 @@
675680 'showingresultsnum' => "Tamuli n {{PLURAL:$3|'''Yiwen''' wegmud|'''$3''' n yigmad}} seg #'''$2'''.",
676681 'nonefound' => "'''Tamawt''': S umata, asmi ur tufiḍ acemma
677682 d ilmen awalen am \"ala\" and \"seg\",
678 -awalen-agi mačči deg tasmult, neγ tefkiḍ kter n yiwen n wawal (ala isebtaren
 683+awalen-agi mačči deg tasmult, neɣ tefkiḍ kter n yiwen n wawal (ala isebtaren
679684 i yesɛan akk awalen i banen-d).",
680685 'powersearch' => 'Nadi',
681686 'powersearchtext' => 'Nadi deg yismawen n taɣult:<br />$1<br />$2 Amuɣ n yisemmimḍen<br />Nadi ɣef $3 $9',
@@ -708,7 +713,7 @@
709714 'math_bad_tmpdir' => 'Ur yezmir ara ad yaru ɣef/ɣer tusnakt n temp directory/dossier',
710715 'math_bad_output' => 'Ur yezmir ara ad yaru ɣef/ɣer tusnakt n tuffɣa directory/dossier',
711716 'math_notexvc' => "''texvc executable'' / ''executable texvc'' ulac-it; ẓer math/README akken a textareḍ isemyifiyen.",
712 -'prefs-personal' => 'Profile n umseqdac',
 717+'prefs-personal' => 'Profile n wemseqdac',
713718 'prefs-rc' => 'Ibeddlen imaynuten',
714719 'prefs-watchlist' => 'Amuɣ uɛessi',
715720 'prefs-watchlist-days' => 'Geddac n wussan yessefk ad yesskan deg umuɣ uɛessi:',
@@ -734,16 +739,16 @@
735740 'timezoneoffset' => 'Amgirred n ukud',
736741 'servertime' => 'Akud n server',
737742 'guesstimezone' => 'Sseqdec azal n browser/explorateur',
738 -'allowemail' => 'Eğğ imseqdacen wiyaḍ ad azen-ik email',
 743+'allowemail' => 'Eğğ imseqdacen wiyaḍ a k-aznen email',
739744 'defaultns' => 'Nadi deg yismawen n taɣult s umeslugen:',
740745 'default' => 'ameslugen',
741746 'files' => 'Ifayluwen',
742747
743748 # User rights
744749 'userrights-lookup-user' => 'Laɛej iderman n yimseqdacen',
745 -'userrights-user-editname' => 'Ssekcem isem n umseqdac:',
 750+'userrights-user-editname' => 'Ssekcem isem n wemseqdac:',
746751 'editusergroup' => 'Beddel iderman n yimseqdacen',
747 -'userrights-editusergroup' => 'Beddel iderman n umseqdac',
 752+'userrights-editusergroup' => 'Beddel iderman n wemseqdac',
748753 'saveusergroups' => 'Smekti iderman n yimseqdacen',
749754 'userrights-groupsmember' => 'Amaslad deg:',
750755 'userrights-groupsavailable' => 'Iderman i yellan:',
@@ -760,7 +765,7 @@
761766 'grouppage-sysop' => '{{ns:project}}:Inedbalen',
762767
763768 # User rights log
764 -'rightslog' => 'Aɣmis n yizerfan n umseqdac',
 769+'rightslog' => 'Aɣmis n yizerfan n wemseqdac',
765770 'rightslogtext' => 'Wagi d aɣmis n yibeddlen n yizerfan n umseqdac',
766771 'rightslogentry' => 'Yettubeddel izerfan n umseqdac $1 seg $2 ar $3',
767772 'rightsnone' => '(ulaḥedd)',
@@ -818,15 +823,14 @@
819824 'uploadedfiles' => 'Ifayluwen yettwaznen',
820825 'ignorewarning' => 'Ttu aɣtal u smekti afaylu',
821826 'ignorewarnings' => 'Ttu iɣtalen',
822 -'minlength' => 'Isem n ufaylu yessefk ad yesɛu 3 isekkilen neɣ kter.',
823 -'illegalfilename' => 'Isem n ufaylu "$1" yesɛa isekkilen i ur tettalaseḍ ara tesseqdceḍ deg yizwal n yisebtaren. G leɛnayek beddel isem n ufaylu u azen-it tikelt nniḍen.',
 827+'illegalfilename' => 'Isem n ufaylu "$1" yesɛa isekkilen ur tettalaseḍ ara a ten-tesseqdceḍ deg yizwal n yisebtaren. G leɛnayek beddel isem n ufaylu u azen-it tikkelt nniḍen.',
824828 'badfilename' => 'Isem ufaylu yettubeddel ar "$1".',
825 -'filetype-badmime' => 'Ur tettalaseḍ ara tazneḍ ufayluwen n anaw n MIME "$1".',
 829+'filetype-badmime' => 'Ur tettalaseḍ ara ad tazneḍ ufayluwen n anaw n MIME "$1".',
826830 'filetype-badtype' => "Ur neqbil ara ufayluwen n anwan am '''\".\$1\"'''
827831 : Amuɣ n inawen i neqbel: \$2",
828832 'filetype-missing' => 'Afaylu ur yesɛi ara taseggiwit (am ".jpg").',
829833 'large-file' => 'Ilaq tiddi n ufayluwen ur tettili kter n $1; tiddi n ufaylu-agi $2.',
830 -'largefileserver' => 'Afaylu meqqer aṭṭas, server ur t-yebil ara.',
 834+'largefileserver' => 'Afaylu meqqer aṭṭas, server ur t-yeqbil ara.',
831835 'emptyfile' => 'Afaylu i tazneḍ d ilem. Waqila tɣelṭeḍ deg isem-is. G leɛnayek ssenqed-it.',
832836 'fileexists' => 'Afaylu s yisem-agi yewğed yagi, ssenqed <strong><tt>$1</tt></strong> ma telliḍ mačči meḍmun akken a t-tbeddleḍ.',
833837 'fileexists-extension' => 'Afaylu s yisem-agi yewğed:<br />
@@ -948,7 +952,7 @@
949953
950954 Ṭul n [http://meta.wikimedia.org/wiki/Help:Job_queue umuti n wexdam] '''\$7'''.",
951955 'userstatstext' => "{{PLURAL:$1|Yella '''yiwen''' umseqdac|Llan '''$1''' n yimseqdacen}}, seg-sen
952 -'''$2''' (neγ '''$4%''') {{PLURAL:$2|yesɛa|sɛan}} $5 n yizerfan.",
 956+'''$2''' (neɣ '''$4%''') {{PLURAL:$2|yesɛa|sɛan}} izerfan n $5.",
953957 'statistics-mostpopular' => 'Isebtaren mmeẓren aṭṭas',
954958
955959 'disambiguations' => 'Isebtaren n usefham',
@@ -1006,7 +1010,7 @@
10071011 'restrictedpheading' => 'Isebtaren usligen gedlen',
10081012 'rclsub' => '(ar isebtaren myezdin seg "$1")',
10091013 'newpages' => 'Isebtaren imaynuten',
1010 -'newpages-username' => 'Isem n umseqdac:',
 1014+'newpages-username' => 'Isem n wemseqdac:',
10111015 'ancientpages' => 'Isebtaren iqdimen',
10121016 'intl' => 'Izdayen ar tutlayin nniḍen zdaxel wikipedia',
10131017 'move' => 'Smimeḍ',
@@ -1022,7 +1026,7 @@
10231027
10241028 'categoriespagetext' => 'Llant taggayin-agi deg wiki-yagi.',
10251029 'data' => 'Talɣut',
1026 -'userrights' => 'Laɛej iserfan n umseqdac',
 1030+'userrights' => 'Laɛej iserfan n wemseqdac',
10271031 'groups' => 'Iderman n yimseqdacen',
10281032 'alphaindexline' => '$1 ar $2',
10291033 'version' => 'Tasiwelt',
@@ -1060,8 +1064,8 @@
10611065 'mailnologin' => 'Ur yufi ḥedd (tansa)',
10621066 'mailnologintext' => 'Yessefk ad [[Special:Userlogin|tkecmeḍ]] u tesɛiḍ tansa e-mail ṭaṣhiḥt deg [[Special:Preferences|isemyifiyen]] inek
10631067 iwakken ad tazneḍ email i imseqdacen wiyaḍ.',
1064 -'emailuser' => 'Azen e-mail i umseqdac-agi',
1065 -'emailpage' => 'Azen e-mail i umseqdac',
 1068+'emailuser' => 'Azen e-mail i wemseqdac-agi',
 1069+'emailpage' => 'Azen e-mail i wemseqdac',
10661070 'emailpagetext' => 'Lukan amseqdac-agi yefka-d tansa n email ṣaḥiḥ
10671071 deg imsifiyen ines, talɣa deg ukessar a t-tazen izen.
10681072 Tansa n email i tefkiḍ deg imisifyen inek ad tban-d
@@ -1108,7 +1112,7 @@
11091113 'notanarticle' => 'Mačči d amagrad',
11101114 'watchnochange' => 'Ulaḥedd n yiferdas n umuɣ n uɛessi inek ma yettubeddel deg tawala i textareḍ.',
11111115 'watchdetails' => '* ttɛassaɣ {{PLURAL:$1|$1 usebtar|$1 n yisebtaren}} mebla isebtaren "amyannan"
1112 -* [[Special:Watchlist/edit|Ssken u beddel amuɣ uɛesi]]
 1116+* [[Special:Watchlist/edit|Ssken u beddel amuɣ uɛessi]]
11131117 * [[Special:Watchlist/clear|Kkes akk isebtaren]]',
11141118 'wlheader-enotif' => '* Yeğğa Email n talɣut.',
11151119 'wlheader-showupdated' => "* Isebtaren ttubeddlen segwasmi tkecmeḍ tikelt taneggarut ttbanen-d s '''uḍris aberbuz'''",
@@ -1190,7 +1194,7 @@
11911195 'editcomment' => 'Agzul n ubeddel yella: "<i>$1</i>".', # only shown if there is an edit comment
11921196 'revertpage' => 'Yessuɣal ibeddlen n [[Special:Contributions/$2|$2]] ([[User talk:$2|Meslay]]); yettubeddel ɣer tasiwelt taneggarut n [[User:$1|$1]]',
11931197 'sessionfailure' => 'Yella ugul akk d takmect inek;
1194 -Axdam-agi yebṭel axaṭer waqila yella wemdan nniḍen i yeddem isem umseqdac inek.
 1198+Axdam-agi yebṭel axaṭer waqila yella wemdan nniḍen i yeddem isem n wemseqdac inek.
11951199 G leɛnayek wekki ɣef taqeffalt "Back/Précédent" n browser/explorateur inek, umbeɛd wekki ɣef "Actualiser/reload" akk ad tɛerḍeḍ tikelt nniḍen.',
11961200 'protectlogpage' => 'Aɣmis n wemḥay',
11971201 'protectedarticle' => '"[[$1]]" yettwaḥrez',
@@ -1220,7 +1224,7 @@
12211225 'invert' => 'Snegdam ayen textareḍ',
12221226
12231227 # Contributions
1224 -'contributions' => 'Tikkin n umseqdac',
 1228+'contributions' => 'Tikkin n wemseqdac',
12251229 'mycontris' => 'Tikkin inu',
12261230 'contribsub2' => 'n $1 ($2)',
12271231 'nocontribs' => 'Ur yufi ara abddel i tebɣiḍ.',
@@ -1236,7 +1240,7 @@
12371241 'sp-contributions-newbies-sub' => 'I yisem yimseqdacen imaynuten',
12381242 'sp-contributions-blocklog' => 'Aɣmis n uɛeṭṭil',
12391243 'sp-contributions-search' => 'Nadi i tikkin',
1240 -'sp-contributions-username' => 'Tansa IP neɣ isem umseqdac:',
 1244+'sp-contributions-username' => 'Tansa IP neɣ isem n wemseqdac:',
12411245 'sp-contributions-submit' => 'Nadi',
12421246
12431247 'sp-newimages-showfrom' => 'Ssken tugniwin timaynutin seg $1',
@@ -1244,7 +1248,7 @@
12451249 # What links here
12461250 'whatlinkshere' => 'Ayen yewwi-d ɣer dagi',
12471251 'notargettitle' => 'Ulac nnican',
1248 -'notargettext' => 'Ur textareḍ ara asebtar d nnican neɣ umseqdac d nnican.',
 1252+'notargettext' => 'Ur textareḍ ara asebtar d nnican neɣ asebtar n wemseqdac d nnican.',
12491253 'linklistsub' => '(Amuɣ n yizdayen)',
12501254 'linkshere' => "Isebtaren-agi sɛan azday ɣer '''[[:$1]]''':",
12511255 'nolinkshere' => "Ulac asebtar i yesɛan azday ɣer '''[[:$1]]'''.",
@@ -1256,7 +1260,7 @@
12571261
12581262 # Block/unblock
12591263 'ipaddress' => 'Tansa IP',
1260 -'ipadressorusername' => 'Tansa IP neɣ isem umseqdac',
 1264+'ipadressorusername' => 'Tansa IP neɣ isem n wemseqdac',
12611265 'ipbreason' => 'Ayɣer',
12621266 'ipbotheroption' => 'nniḍen',
12631267 'badipaddress' => 'Tansa IP mačči d ṣaḥiḥ',
@@ -1266,20 +1270,20 @@
12671271 'proxyblockreason' => 'Tansa n IP inek teɛkel axaṭer nettat "open proxy". G leɛnayek, meslay akk d provider inek.',
12681272 'proxyblocksuccess' => 'D ayen.',
12691273 'sorbsreason' => 'Tansa n IP inek teɛkel axaṭer nettat "open proxy" deg DNSBL yettuseqdac da.',
1270 -'sorbs_create_account_reason' => 'Tansa n IP inek teɛkel axaṭer nettat "open proxy" deg DNSBL yettuseqdac da. Ur tezmireḍ ara ad txelqeḍ isem umseqdac',
 1274+'sorbs_create_account_reason' => 'Tansa n IP inek teɛkel axaṭer nettat "open proxy" deg DNSBL yettuseqdac da. Ur tezmireḍ ara ad txelqeḍ isem n wemseqdac',
12711275
12721276 # Move page
12731277 'movepage' => 'Smimeḍ asebtar',
12741278 'movepagetext' => "Mi tedsseqdceḍ talɣa deg ukessar ad ibddel isem n usebtar, yesmimeḍ akk
1275 -umezruy-is γer isem amaynut.
1276 -Azwel aqdim ad yuγal azady n wesmimeḍ γer azwel amaynut.
1277 -Izdayen γer azwel aqdim ur ttubeddlen ara; ssenqd-iten
 1279+umezruy-is ɣer isem amaynut.
 1280+Azwel aqdim ad yuɣal azady n wesmimeḍ ɣer azwel amaynut.
 1281+Izdayen ɣer azwel aqdim ur ttubeddlen ara; ssenqd-iten
12781282 u ssenqed izdayen n snat d tlata tikkwal.
12791283 D kečč i yessefk a ten-yessenqed.
12801284
1281 -Meɛna, ma yella amagrad deg azwel amaynut neγ azday n wamsmimeḍ
 1285+Meɛna, ma yella amagrad deg azwel amaynut neɣ azday n wamsmimeḍ
12821286 mebla amezruy, asebtar-inek '''ur''' yettusmimeḍ '''ara'''.
1283 -Yernu, tzemreḍ ad tesmimeḍ asebtar γer isem-is aqdim ma tγelṭeḍ.",
 1287+Yernu, tzemreḍ ad tesmimeḍ asebtar ɣer isem-is aqdim ma tɣelṭeḍ.",
12841288 'movepagetalktext' => "Asebtar \"Amyannan\" yettusmimeḍ ula d netta '''ma ulac:'''
12851289 *Yella asebtar \"Amyannan\" deg isem amaynut, neɣ
12861290 *Trecmeḍ tankult deg ukessar.
@@ -1287,13 +1291,12 @@
12881292 Lukan akka, yessefk a t-tedmeḍ weḥdek.",
12891293 'movearticle' => 'Smimeḍ asebtar',
12901294 'movenologin' => 'Ur tekcimeḍ ara',
1291 -'movenologintext' => 'Yessefk ad tesɛuḍ isem n umseqdac u [[Special:Userlogin|tkecmeḍ]]
 1295+'movenologintext' => 'Yessefk ad tesɛuḍ isem n wemseqdac u [[Special:Userlogin|tkecmeḍ]]
12921296 iwakken ad tesmimḍeḍ asebtar.',
12931297 'newtitle' => 'Ar azwel amaynut',
12941298 'move-watch' => 'Ɛass asebtar-agi',
12951299 'movepagebtn' => 'Smimeḍ asebtar',
12961300 'pagemovedsub' => 'Asemmimeḍ yekfa',
1297 -'pagemovedtext' => 'Asebtar "[[$1]]" yettwasmimeḍ ar "[[$2]]".',
12981301 'articleexists' => 'Yella yagi yisem am wagi, neɣ
12991302 isem ayen textareḍ mačči d ṣaḥiḥ.
13001303 Xtar yiwen nniḍen.',
@@ -1370,8 +1373,8 @@
13711374 'import-logentry-interwiki-detail' => '$1 tasiwelt(tisiwal) seg $2',
13721375
13731376 # Tooltip help for the actions
1374 -'tooltip-pt-userpage' => 'Asebtar n umseqdac inu',
1375 -'tooltip-pt-anonuserpage' => 'Asebtar umseqdac n IP wukud tekkiḍ',
 1377+'tooltip-pt-userpage' => 'Asebtar n wemseqdac inu',
 1378+'tooltip-pt-anonuserpage' => 'Asebtar wemseqdac n IP wukud tekkiḍ',
13761379 'tooltip-pt-mytalk' => 'Asebtar n umyannan inu',
13771380 'tooltip-pt-anontalk' => 'Amyannan ɣef yibeddlen n tansa ip-yagi',
13781381 'tooltip-pt-preferences' => 'Isemyifiyen inu',
@@ -1404,12 +1407,12 @@
14051408 'tooltip-t-recentchangeslinked' => 'Ibeddlen imaynuten deg yisebtaren myezdin seg asebtar-agi',
14061409 'tooltip-feed-rss' => 'RSS feed n usebtar-agi',
14071410 'tooltip-feed-atom' => 'Atom feed n usebtar-agi',
1408 -'tooltip-t-contributions' => 'Ẓer amuɣ n tikkin n umseqdac-agi',
1409 -'tooltip-t-emailuser' => 'Azen e-mail i umseqdac-agi',
 1411+'tooltip-t-contributions' => 'Ẓer amuɣ n tikkin n wemseqdac-agi',
 1412+'tooltip-t-emailuser' => 'Azen e-mail i wemseqdac-agi',
14101413 'tooltip-t-upload' => 'Azen tugna neɣ afaylu nniḍen',
14111414 'tooltip-t-specialpages' => 'Amuɣ n akk isebtaren usligen',
14121415 'tooltip-ca-nstab-main' => 'Ẓer ayen yellan deg usebtar',
1413 -'tooltip-ca-nstab-user' => 'Ẓer asebtar umseqdac',
 1416+'tooltip-ca-nstab-user' => 'Ẓer asebtar n wemseqdac',
14141417 'tooltip-ca-nstab-media' => 'Ẓer asebtar n media',
14151418 'tooltip-ca-nstab-special' => 'Wagi asebtar uslig, ur tezmireḍ ara a t-tbeddleḍ',
14161419 'tooltip-ca-nstab-project' => 'Ẓer asebtar usenfar',
@@ -1431,7 +1434,7 @@
14321435 'siteuser' => '{{SITENAME}} amseqdac $1',
14331436 'lastmodifiedatby' => 'Tikelt taneggarut asmi yettubeddel asebtar-agi $2, $1 sɣur $3.', # $1 date, $2 time, $3 user
14341437 'and' => 'u',
1435 -'othercontribs' => 'Tikkin n umseqdac-agi.',
 1438+'othercontribs' => 'Tikkin n wemseqdac-agi.',
14361439 'others' => 'wiyaḍ',
14371440 'siteusers' => '{{SITENAME}} amseqdac(imseqdacen) $1',
14381441 'creditspage' => 'Win ixedmen asebtar',
@@ -1515,18 +1518,18 @@
15161519
15171520 # E-mail address confirmation
15181521 'confirmemail' => 'Sentem tansa n e-mail',
1519 -'confirmemail_noemail' => 'Ur tesɛiḍ ara tansa n email ṣaḥiḥ deg [[Special:Preferences|isemyifiyen umseqdac]] inek.',
 1522+'confirmemail_noemail' => 'Ur tesɛiḍ ara tansa n email ṣaḥiḥ deg [[Special:Preferences|isemyifiyen n wemseqdac]] inek.',
15201523 'confirmemail_text' => 'Deg wiki-yagi, yessefk ad tvalidiḍ tansa n email inek
15211524 qbel ma tesseqdceḍ iḍaɣaren n email. Tella taqeffalt d akessar, wekki fell-as
15221525 iwakken yettwazen ungal n usentem semail. Email-nni yesɛa azady, ldi-t.',
15231526 'confirmemail_pending' => '<div class="error">
1524 -Yettwazen-ak yagi ungal n usentem; lukan txelqeḍ isem umseqdac tura kan,
 1527+Yettwazen-ak yagi ungal n usentem; lukan txelqeḍ isem wemseqdac tura kan,
15251528 ahat yessefk ad tegguniḍ cwiṭ qbel ma tɛreḍeḍ ad testeqsiḍ ɣef ungal amaynut.
15261529 </div>',
15271530 'confirmemail_send' => 'Azen-iyi-d angal n usentem s e-mail iwakken ad snetmeɣ.',
15281531 'confirmemail_sent' => 'E-mail yettwazen iwakken ad tsentmeḍ.',
15291532 'confirmemail_oncreate' => 'Angal n usentem yettwazen ar tansa n e-mail inek.
1530 -Yessefk tesseqdceḍ angal-agi iwakken ad tkecmeḍ, meɛna yessefk a t-tefkeḍ
 1533+Yessefk ad tesseqdceḍ angal-agi iwakken ad tkecmeḍ, meɛna yessefk a t-tefkeḍ
15311534 iwakken ad xedmen yiḍaɣaren n email deg wiki-yagi.',
15321535 'confirmemail_sendfailed' => 'Ur yezmir ara ad yazen asentem n email. Ssenqed tansa n email inek.
15331536
@@ -1538,9 +1541,9 @@
15391542 'confirmemail_error' => 'Yella ugur s usmekti n usentem inek.',
15401543 'confirmemail_subject' => 'Asentem n tansa n email seg {{SITENAME}}',
15411544 'confirmemail_body' => 'Amdan, waqila d kečč, seg tansa IP $1, yexleq
1542 -isem umseqdac "$2" s tansa n e-mail deg {{SITENAME}}.
 1545+isem n wemseqdac "$2" s tansa n e-mail deg {{SITENAME}}.
15431546
1544 -Iwakken tbeyyneḍ belli isem umseqdac inek u terreḍ
 1547+Iwakken tbeyyneḍ belli isem n wemseqdac inek u terreḍ
15451548 iḍaɣaren n email ad xdemen deg {{SITENAME}}, ldi azday agi:
15461549
15471550 $3
@@ -1556,7 +1559,7 @@
15571560 # Scary transclusion
15581561 'scarytranscludedisabled' => '[Yettwakkes assekcam n yisebtaren seg wiki wiyaḍ]',
15591562 'scarytranscludefailed' => '[Ur yezmir ara yewwi-d talɣa n $1; suref-aɣ]',
1560 -'scarytranscludetoolong' => '[URL d aγezfan bezzaf; suref-aɣ]',
 1563+'scarytranscludetoolong' => '[URL d aɣezfan bezzaf; suref-aɣ]',
15611564
15621565 # Trackbacks
15631566 'trackbackbox' => '<div id="mw_trackbacks">
@@ -1589,9 +1592,6 @@
15901593 'articletitles' => "Imagraden i yebdan s ''$1''",
15911594 'hideresults' => 'Ffer igmad',
15921595
1593 -# DISPLAYTITLE
1594 -'displaytitle' => '(Xdem azday ar asebtar-agi akka [[$1]])',
1595 -
15961596 'loginlanguagelabel' => 'Tutlayt: $1',
15971597
15981598 # Multipage image navigation
@@ -1634,4 +1634,4 @@
16351635
16361636 );
16371637
1638 -
 1638+?>
Index: branches/liquidthreads/languages/messages/MessagesZh_yue.php
@@ -912,9 +912,9 @@
913913 'userrights-groupsavailable' => '可用嘅組:',
914914 'userrights-groupshelp' => '選擇你想畀用戶加入或移出嘅組。未選擇嘅組將唔會被改變。你可以用CTRL + 撳滑鼠左掣以取消已經選擇嘅一個組',
915915 'userrights-reason' => '更改嘅原因:',
916 -'userrights-list' => '因為你係$1嘅成員,你可以加入$2同埋拎走$3。',
917 -'userrights-list-nogroups' => '無組別',
918 -'userrights-list-groups' => '$2{{PLURAL:$1|組|組}}',
 916+'userrights-available-none' => '你唔可以改組成員。',
 917+'userrights-available-add' => '你可以加入用戶到$1。',
 918+'userrights-available-remove' => '你可以響$1度拎走用戶。',
919919
920920 # Groups
921921 #
@@ -1241,6 +1241,7 @@
12421242 'allpagessubmit' => '去搵',
12431243 'allpagesprefix' => '用以下開頭嘅頁面:',
12441244 'allpagesbadtitle' => '提供嘅頁面名無效,又或者有一個跨語言或跨wiki嘅字頭。佢可能包括一個或多個字係唔可以用響標題度嘅。',
 1245+'allpages-bad-ns' => '{{SITENAME}}係無一個空間名叫做"$1"。',
12451246
12461247 # Special:Listusers
12471248 'listusersfrom' => '顯示由呢個字開始嘅用戶:',
@@ -1491,7 +1492,6 @@
14921493 'ucnote' => "以下係呢個用戶喺最近<b>$2</b>日內嘅最後<b>$1</b>次修改。",
14931494 'uclinks' => "睇吓最近$2日;睇吓最近嘅$1次修改。",
14941495 'uctop' => ' (最頂)' ,
1495 -
14961496 'month' => '月:',
14971497 'year' => '年:',
14981498
@@ -1661,7 +1661,7 @@
16621662 'move-watch' => '睇實呢一版',
16631663 'movepagebtn' => '搬頁',
16641664 'pagemovedsub' => '搬頁成功',
1665 -'pagemovedtext' => "頁面\"[[$1]]\"已經搬到去\"[[$2]]\"。",
 1665+'movepage-moved' => '<big>\'\'\'"$1"已經搬到去"$2"\'\'\'</big>',
16661666 'articleexists' => '已經有頁面叫嗰個名,或者你揀嘅名唔合法。
16671667 請揀過第二個名。',
16681668 'talkexists' => "'''頁面本身已經成功搬咗,但係個討論頁搬唔到,因為已經有一個同名嘅討論頁。請手工合併佢哋。'''",
@@ -1934,8 +1934,8 @@
19351935 'variantname-kk-cn' => '哈薩克阿剌伯文',
19361936 'variantname-kk' => 'disable',
19371937 # Variants for Kurdish language
 1938+'variantname-ku-arab' => '庫爾德阿剌伯文',
19381939 'variantname-ku-latn' => '庫爾德拉丁文',
1939 -'variantname-ku-arab' => '庫爾德阿剌伯文',
19401940 'variantname-ku' => '無變換',
19411941
19421942 'passwordtooshort' => '你嘅密碼唔正確或者太短喇。佢最少要有$1個半形字元,同埋要同你嘅用戶名唔同。',
@@ -2343,3 +2343,4 @@
23442344 );
23452345
23462346
 2347+
Index: branches/liquidthreads/languages/messages/MessagesId.php
@@ -966,18 +966,18 @@
967967 'files' => 'Berkas',
968968
969969 # User rights
970 -'userrights-lookup-user' => 'Mengatur kelompok pengguna',
971 -'userrights-user-editname' => 'Masukkan nama pengguna:',
972 -'editusergroup' => 'Sunting kelompok pengguna',
973 -'userrights-editusergroup' => 'Sunting kelompok pengguna',
974 -'saveusergroups' => 'Simpan kelompok pengguna',
975 -'userrights-groupsmember' => 'Anggota dari:',
976 -'userrights-groupsavailable' => 'Kelompok yang tersedia:',
977 -'userrights-groupshelp' => 'Pilih kelompok yang Anda ingin hapus dari atau tambahkan pada pengguna. Kelompok yang tak dipilih tak akan diganti. Anda dapat membatalkan pilihan dengan menekan tombol CTRL + Klik kiri',
978 -'userrights-reason' => 'Alasan pengubahan:',
979 -'userrights-list' => 'Karena Anda adalah anggota dari $1, Anda dapat memberi akses untuk $2 serta mencabut akses untuk $3.',
980 -'userrights-list-nogroups' => 'tak satu pun kelompok',
981 -'userrights-list-groups' => '{{PLURAL:$1|kelompok|kelompok-kelompok}} $2',
 970+'userrights-lookup-user' => 'Mengatur kelompok pengguna',
 971+'userrights-user-editname' => 'Masukkan nama pengguna:',
 972+'editusergroup' => 'Sunting kelompok pengguna',
 973+'userrights-editusergroup' => 'Sunting kelompok pengguna',
 974+'saveusergroups' => 'Simpan kelompok pengguna',
 975+'userrights-groupsmember' => 'Anggota dari:',
 976+'userrights-groupsavailable' => 'Kelompok yang tersedia:',
 977+'userrights-groupshelp' => 'Pilih kelompok yang Anda ingin hapus dari atau tambahkan pada pengguna. Kelompok yang tak dipilih tak akan diganti. Anda dapat membatalkan pilihan dengan menekan tombol CTRL + Klik kiri',
 978+'userrights-reason' => 'Alasan pengubahan:',
 979+'userrights-available-none' => 'Anda tak dapat mengganti keangotaan kelompok.',
 980+'userrights-available-add' => 'Anda dapat memasukkan pengguna ke $1.',
 981+'userrights-available-remove' => 'Anda dapat mengeluarkan pengguna dari $1.',
982982
983983 # Groups
984984 'group' => 'Kelompok:',
@@ -1646,7 +1646,7 @@
16471647 'move-watch' => 'Pantau halaman ini',
16481648 'movepagebtn' => 'Pindahkan halaman',
16491649 'pagemovedsub' => 'Pemindahan berhasil',
1650 -'movepage-moved' => '<big>\'\'\'"$1" dipindahkan ke "$2".\'\'\'</big>',
 1650+'movepage-moved' => '<big>\'\'\'"$1" dipindahkan ke "$2".\'\'\'</big>', # The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message.
16511651 'articleexists' => 'Halaman dengan nama tersebut telah ada atau nama yang dipilih tidak sah. Silakan pilih nama lain.',
16521652 'talkexists' => 'Halaman tersebut berhasil dipindahkan, tetapi halaman pembicaraan dari halaman tersebut tidak dapat dipindahkan karena telah ada halaman pembicaraan pada judul yang baru. Silakan gabungkan halaman-halaman pembicaraan tersebut secara manual.',
16531653 'movedto' => 'dipindahkan ke',
Index: branches/liquidthreads/RELEASE-NOTES
@@ -113,7 +113,13 @@
114114 * (bug 10387) Detect and handle '.php5' extension environments at install time
115115 Patch by Edward Z. Yang.
116116 * Introduce 'ShowRawCssJs' hook; see docs/hooks.txt for more information
117 -* (bug 10404) Show rights log fragment for the selected user in Special:Userrights
 117+* (bug 10404) Show rights log for the selected user in Special:Userrights
 118+* New javascript for upload page that will show a warning if a file with the
 119+ "destination filename" already exists.
 120+* Add 'editsection-brackets' message to allow localization (or removal) of the
 121+ brackets in the "[edit]" link for sections.
 122+* (bug 10437) Move texvc styling to shared.css.
 123+* (bug 10438) HTML TeX formulas should not wrap.
118124
119125 == Bugfixes since 1.10 ==
120126
@@ -247,6 +253,7 @@
248254 * Fix empty message checks for message names containing &
249255 This corrects some odd behavior with sidebar items and custom namespaces
250256 containing ampersands.
 257+* (bug 10375) Change thousands separator character to &nbsp; for Latin (la)
251258
252259
253260 == API changes since 1.10 ==
@@ -287,6 +294,7 @@
288295 * (bug 10392) Include MediaWiki version details in version output
289296 * (bug 10411) Site language in meta=siteinfo
290297 * (bug 10391) action=help doesn't return help if format is fancy markup
 298+* (bug 10297) include previous revision ID in prop=revisions
291299
292300 == Maintenance script changes since 1.10 ==
293301
@@ -319,6 +327,7 @@
320328 * Kabyle (kab)
321329 * Kazakh (kk)
322330 * Kurdish (ku)
 331+* Latin (la)
323332 * Lithuanian (lt)
324333 * Malayalam (ml)
325334 * Burmese (my)
Property changes on: branches/liquidthreads
___________________________________________________________________
Modified: svnmerge-integrated
326335 - /trunk/phase3:1-23580
327336 + /trunk/phase3:1-23661

Follow-up revisions

RevisionCommit summaryAuthorDate
r23982Removed incorrect line - bug 10297 is still open.yurik00:20, 11 July 2007
r24018* (bug 10405) Update Farsi translation...raymond19:33, 11 July 2007
r24039* (bug 10405) Update Farsi translation...raymond16:52, 12 July 2007
r24096Merged revisions 23910-24094 via svnmerge from...david22:38, 14 July 2007
r25113* (bug 10405) Update Farsi translations...raymond08:04, 24 August 2007
r25126Merged revisions 25109-25125 via svnmerge from...david22:55, 24 August 2007

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r23522* (bug 10363) Update Bulgarian translations...raymond21:04, 28 June 2007
r23531Remove ?>'s from files. They're pointless, and just asking for people to mes...simetrical01:19, 29 June 2007
r23545* (bug 10405) Update Farsi translations...raymond08:47, 29 June 2007
r23581Merged revisions 23406-23580 via svnmerge from...david04:50, 30 June 2007
r23584Adding rvprop=lastid parameter to prop=revisions that lists revid of...catrope09:23, 30 June 2007
r23586Removing a ')' that broke the entire APIcatrope09:31, 30 June 2007
r23591Update.rotem10:33, 30 June 2007
r23592TODO list.rotem10:43, 30 June 2007
r23596API: Reverted back to r23531 for the reasons listed in bug 10297yurik06:45, 1 July 2007
r23602New javascript for upload page that will show a warning if a file with the "d...magnusmanske13:26, 1 July 2007
r23603making better use of DOMmagnusmanske13:38, 1 July 2007
r23604Fixed unnecessary use of the replaceafter option to wfMsgExt(). Using it caus...tstarling13:56, 1 July 2007
r23607Indonesian (id) localisation updates.ivanlanin15:08, 1 July 2007
r23608* De-crappified JS upload dest check feature. Converted to sajax framework. C...tstarling18:24, 1 July 2007
r23610* Updates to ti by Blakenikerabbit18:49, 1 July 2007
r23612forgot to commit thiststarling18:50, 1 July 2007
r23613* Updates to Kabyle (kab)nikerabbit19:20, 1 July 2007
r23617* (bug 10422) Change <pre> on CSS/JS pages to <div> and allow wikitext...simetrical19:57, 1 July 2007
r23619Respect $wgUseAjaxtstarling21:50, 1 July 2007
r23621Display a distinctive message when the edit token suffix is mangled. On repor...tstarling22:22, 1 July 2007
r23628Updated translations for dawegge08:58, 2 July 2007
r23629* Updates German...raymond09:06, 2 July 2007
r23631* (bug 10418) Swedish translation...raymond09:41, 2 July 2007
r23632* (bug 10412) Update Chinese translations...raymond09:50, 2 July 2007
r23636API: Fixing a bug that caused inprop=protection to scream when no...catrope11:52, 2 July 2007
r23645* Add 'editsection-brackets' message to allow localization (or removal) of th...simetrical15:46, 2 July 2007
r23646* (bug 10375) Change thousands separator character to &nbsp; for Latin (la)raymond15:54, 2 July 2007
r23647* (bug 10405) Update Farsi translation...raymond15:57, 2 July 2007
r23648(bug 10437) Move texvc styling to shared.css. Also, apparently I forgot to c...simetrical16:15, 2 July 2007
r23649(bug 10438) HTML TeX formulas should not wrap, according to standard TeX beha...simetrical16:19, 2 July 2007
r23650Bug 10435: oi_name_archive_name index length overflowtstarling16:33, 2 July 2007
r23657Revert r23617 per Brionsimetrical23:22, 2 July 2007

Status & tagging log