Hello community,
here is the log from the commit of package mediawiki
checked in at Thu Jun 15 15:24:09 CEST 2006.
--------
--- mediawiki/mediawiki.changes 2006-05-23 14:15:47.000000000 +0200
+++ mediawiki/mediawiki.changes 2006-06-15 15:18:27.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Jun 15 15:16:40 CEST 2006 - anicka@suse.cz
+
+- update to 1.6.7:
+ * fix HTML/JavaScript-injection vulnerability in the edit form
+ * add some localization and user interface updates
+
+-------------------------------------------------------------------
Old:
----
mediawiki-1.6.6.tar.bz2
New:
----
mediawiki-1.6.7.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mediawiki.spec ++++++
--- /var/tmp/diff_new_pack.Y9q3dl/_old 2006-06-15 15:21:52.000000000 +0200
+++ /var/tmp/diff_new_pack.Y9q3dl/_new 2006-06-15 15:21:52.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package mediawiki (Version 1.6.6)
+# spec file for package mediawiki (Version 1.6.7)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -17,7 +17,7 @@
URL: http://wikipedia.sourceforge.net/
Requires: mod_php_any php-session php-gettext php-zlib php-mysql ImageMagick-Magick++ tetex cjk-latex
Autoreqprov: on
-Version: 1.6.6
+Version: 1.6.7
Release: 1
Summary: A Web-Based Collaborative Editing Environment
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -96,6 +96,10 @@
%attr(-, root, www) %{mediawiki_path}/config
%changelog -n mediawiki
+* Thu Jun 15 2006 - anicka@suse.cz
+- update to 1.6.7:
+ * fix HTML/JavaScript-injection vulnerability in the edit form
+ * add some localization and user interface updates
* Tue May 23 2006 - anicka@suse.cz
- update to 1.6.6
* The account creation form has been separated from the user login form.
++++++ mediawiki-1.6.6.tar.bz2 -> mediawiki-1.6.7.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/RELEASE-NOTES new/mediawiki-1.6.7/RELEASE-NOTES
--- old/mediawiki-1.6.6/RELEASE-NOTES 2006-05-23 12:27:41.000000000 +0200
+++ new/mediawiki-1.6.7/RELEASE-NOTES 2006-06-06 11:04:48.000000000 +0200
@@ -3,6 +3,44 @@
Security reminder: MediaWiki does not require PHP's register_globals
setting since version 1.2.0. If you have it on, turn it *off* if you can.
+== Mediawiki 1.6.7 ==
+
+June 6, 2006
+
+MediaWiki 1.6.7 is a security and bugfix maintenance release of the
+Spring 2006 snapshot:
+
+An HTML/JavaScript-injection vulnerability in the edit form has been closed.
+This vulnerability was new in 1.6.0; MediaWiki versions 1.5.x or earlier are
+not affected.
+
+Extensions, comments, and <nowiki> sections are now handled in a one-pass
+way which is more reliable and safer. Under earlier versions of MediaWiki,
+certain extensions could be abused to inject HTML/JavaScript into the page.
+
+Additional precautions are made against offsite form submissions when
+the restricted raw HTML mode is enabled.
+
+Some small localization and user interface updates are also included.
+
+* (bug 6051) Improvement to German localisation (de)
+* (bug 6017) Update bookstore list for German language (de)
+* (bug 6138) Minor grammar tweak in "loginreqlink"
+* (bug 5957) Update for Hebrew language (he)
+* Increase robustness of parser placeholders; fixes some glitches when
+ adjacent to identifier-ish constructs such as URLs.
+* (bug 5384) Fix <!-- comments --> in <ref> extension
+* Nesting of different tag extensions and comments should now work more
+ consistently and more safely. A cleaner, one-pass tag strip lets the
+ 'outer' tag either take source (<nowiki>-style) or pass it down to
+ further parsing (<ref>-style). There should no longer be surprise
+ expansion of foreign extensions inside HTML output, or differences
+ in behavior based on the order tags are loaded.
+* (bug 885) Pre-save transform no longer silently appends close tags
+* Pre-save transform no longer changes the case of close tags
+* Edit security precautions in raw HTML mode, etc
+
+
== MediaWiki 1.6.6 ==
May 23, 2006
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/includes/DefaultSettings.php new/mediawiki-1.6.7/includes/DefaultSettings.php
--- old/mediawiki-1.6.6/includes/DefaultSettings.php 2006-05-23 12:27:26.000000000 +0200
+++ new/mediawiki-1.6.7/includes/DefaultSettings.php 2006-06-06 11:04:17.000000000 +0200
@@ -32,7 +32,7 @@
$wgConf = new SiteConfiguration;
/** MediaWiki version number */
-$wgVersion = '1.6.6';
+$wgVersion = '1.6.7';
/** Name of the site. It must be changed in LocalSettings.php */
$wgSitename = 'MediaWiki';
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/includes/EditPage.php new/mediawiki-1.6.7/includes/EditPage.php
--- old/mediawiki-1.6.6/includes/EditPage.php 2006-05-23 12:27:25.000000000 +0200
+++ new/mediawiki-1.6.7/includes/EditPage.php 2006-06-06 11:04:15.000000000 +0200
@@ -23,7 +23,7 @@
var $formtype;
var $firsttime;
var $lastDelete;
- var $mTokenOk = true;
+ var $mTokenOk = false;
var $tooBig = false;
var $kblength = false;
var $missingComment = false;
@@ -356,19 +356,17 @@
$this->preview = $request->getCheck( 'wpPreview' ) || $request->getCheck( 'wpLivePreview' );
$this->diff = $request->getCheck( 'wpDiff' );
- if( !$this->preview ) {
- if ( $this->tokenOk( $request ) ) {
- # Some browsers will not report any submit button
- # if the user hits enter in the comment box.
- # The unmarked state will be assumed to be a save,
- # if the form seems otherwise complete.
- wfDebug( "$fname: Passed token check.\n" );
- } else {
- # Page might be a hack attempt posted from
- # an external site. Preview instead of saving.
- wfDebug( "$fname: Failed token check; forcing preview\n" );
- $this->preview = true;
- }
+ if ( $this->tokenOk( $request ) ) {
+ # Some browsers will not report any submit button
+ # if the user hits enter in the comment box.
+ # The unmarked state will be assumed to be a save,
+ # if the form seems otherwise complete.
+ wfDebug( "$fname: Passed token check.\n" );
+ } else {
+ # Page might be a hack attempt posted from
+ # an external site. Preview instead of saving.
+ wfDebug( "$fname: Failed token check; forcing preview\n" );
+ $this->preview = true;
}
}
$this->save = ! ( $this->preview OR $this->diff );
@@ -1084,7 +1082,7 @@
# For a bit more sophisticated detection of blank summaries, hash the
# automatic one and pass that in a hidden field.
$autosumm = $this->autoSumm ? $this->autoSumm : md5( $this->summary );
- $wgOut->addHTML( "\n" );
+ $wgOut->addHtml( wfHidden( 'wpAutoSummary', $autosumm ) );
if ( $this->isConflict ) {
require_once( "DifferenceEngine.php" );
@@ -1245,9 +1243,17 @@
$parserOptions = ParserOptions::newFromUser( $wgUser );
$parserOptions->setEditSection( false );
+ global $wgRawHtml;
+ if( $wgRawHtml && !$this->mTokenOk ) {
+ // Could be an offsite preview attempt. This is very unsafe if
+ // HTML is enabled, as it could be an attack.
+ return $wgOut->parse( "<div class='previewnote'>" .
+ wfMsg( 'session_fail_preview_html' ) . "</div>" );
+ }
+
# don't parse user css/js, show message about preview
# XXX: stupid php bug won't let us use $wgTitle->isCssJsSubpage() here
-
+
if ( $this->isCssJsSubpage ) {
if(preg_match("/\\.css$/", $wgTitle->getText() ) ) {
$previewtext = wfMsg('usercsspreview');
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/includes/Parser.php new/mediawiki-1.6.7/includes/Parser.php
--- old/mediawiki-1.6.6/includes/Parser.php 2006-05-23 12:27:25.000000000 +0200
+++ new/mediawiki-1.6.7/includes/Parser.php 2006-06-06 11:04:15.000000000 +0200
@@ -9,6 +9,7 @@
/** */
require_once( 'Sanitizer.php' );
require_once( 'HttpFunctions.php' );
+require_once( 'ImageGallery.php' );
/**
* Update this version number when the ParserOutput format
@@ -151,7 +152,15 @@
'titles' => array()
);
$this->mRevisionId = null;
- $this->mUniqPrefix = 'UNIQ' . Parser::getRandomString();
+
+ /**
+ * Prefix for temporary replacement strings for the multipass parser.
+ * \x07 should never appear in input as it's disallowed in XML.
+ * Using it at the front also gives us a little extra robustness
+ * since it shouldn't match when butted up against identifier-like
+ * string constructs.
+ */
+ $this->mUniqPrefix = "\x07UNIQ" . Parser::getRandomString();
# Clear these on every parse, bug 4549
$this->mTemplates = array();
@@ -204,8 +213,6 @@
$this->mRevisionId = $revid;
$this->mOutputType = OT_HTML;
- $this->mStripState = NULL;
-
//$text = $this->strip( $text, $this->mStripState );
// VOODOO MAGIC FIX! Sometimes the above segfaults in PHP5.
$x =& $this->mStripState;
@@ -304,100 +311,87 @@
function getOptions() { return $this->mOptions; }
/**
- * Replaces all occurrences of <$tag>content$tag> in the text
- * with a random marker and returns the new text. the output parameter
- * $content will be an associative array filled with data on the form
- * $unique_marker => content.
- *
- * If $content is already set, the additional entries will be appended
- * If $tag is set to STRIP_COMMENTS, the function will extract
- * <!-- HTML comments -->
+ * Replaces all occurrences of HTML-style comments and the given tags
+ * in the text with a random marker and returns teh next text. The output
+ * parameter $matches will be an associative array filled with data in
+ * the form:
+ * 'UNIQ-xxxxx' => array(
+ * 'element',
+ * 'tag content',
+ * array( 'param' => 'x' ),
+ * '<element param="x">tag content</element>' ) )
+ *
+ * @param $elements list of element names. Comments are always extracted.
+ * @param $text Source text string.
+ * @param $uniq_prefix
*
- * @access private
+ * @private
* @static
*/
- function extractTagsAndParams($tag, $text, &$content, &$tags, &$params, $uniq_prefix = ''){
- $rnd = $uniq_prefix . '-' . $tag . Parser::getRandomString();
- if ( !$content ) {
- $content = array( );
- }
+ function extractTagsAndParams($elements, $text, &$matches, $uniq_prefix = ''){
+ $rand = Parser::getRandomString();
$n = 1;
$stripped = '';
+ $matches = array();
- if ( !$tags ) {
- $tags = array( );
- }
-
- if ( !$params ) {
- $params = array( );
- }
-
- if( $tag == STRIP_COMMENTS ) {
- $start = '/<!--()/';
- $end = '/-->/';
- } else {
- $start = "/<$tag(\\s+[^>]*|\\s*\/?)>/i";
- $end = "/<\\/$tag\\s*>/i";
- }
+ $taglist = implode( '|', $elements );
+ $start = "/<($taglist)(\\s+[^>]*?|\\s*?)(\/?>)|<(!--)/i";
while ( '' != $text ) {
$p = preg_split( $start, $text, 2, PREG_SPLIT_DELIM_CAPTURE );
$stripped .= $p[0];
- if( count( $p ) < 3 ) {
+ if( count( $p ) < 5 ) {
break;
}
- $attributes = $p[1];
- $inside = $p[2];
-
- // If $attributes ends with '/', we have an empty element tag, <tag />
- if( $tag != STRIP_COMMENTS && substr( $attributes, -1 ) == '/' ) {
- $attributes = substr( $attributes, 0, -1);
- $empty = '/';
+ if( count( $p ) > 5 ) {
+ // comment
+ $element = $p[4];
+ $attributes = '';
+ $close = '';
+ $inside = $p[5];
} else {
- $empty = '';
+ // tag
+ $element = $p[1];
+ $attributes = $p[2];
+ $close = $p[3];
+ $inside = $p[4];
}
- $marker = $rnd . sprintf('%08X', $n++);
+ $marker = "$uniq_prefix-$element-$rand" . sprintf('%08X', $n++) . '-QINU';
$stripped .= $marker;
- $tags[$marker] = "<$tag$attributes$empty>";
- $params[$marker] = Sanitizer::decodeTagAttributes( $attributes );
-
- if ( $empty === '/' ) {
+ if ( $close === '/>' ) {
// Empty element tag, <tag />
- $content[$marker] = null;
+ $content = null;
$text = $inside;
+ $tail = null;
} else {
- $q = preg_split( $end, $inside, 2 );
- $content[$marker] = $q[0];
- if( count( $q ) < 2 ) {
+ if( $element == '!--' ) {
+ $end = '/(-->)/';
+ } else {
+ $end = "/(<\\/$element\\s*>)/i";
+ }
+ $q = preg_split( $end, $inside, 2, PREG_SPLIT_DELIM_CAPTURE );
+ $content = $q[0];
+ if( count( $q ) < 3 ) {
# No end tag -- let it run out to the end of the text.
- break;
+ $tail = '';
+ $text = '';
} else {
- $text = $q[1];
+ $tail = $q[1];
+ $text = $q[2];
}
}
+
+ $matches[$marker] = array( $element,
+ $content,
+ Sanitizer::decodeTagAttributes( $attributes ),
+ "<$element$attributes$close$content$tail" );
}
return $stripped;
}
/**
- * Wrapper function for extractTagsAndParams
- * for cases where $tags and $params isn't needed
- * i.e. where tags will never have params, like <nowiki>
- *
- * @access private
- * @static
- */
- function extractTags( $tag, $text, &$content, $uniq_prefix = '' ) {
- $dummy_tags = array();
- $dummy_params = array();
-
- return Parser::extractTagsAndParams( $tag, $text, $content,
- $dummy_tags, $dummy_params, $uniq_prefix );
- }
-
- /**
* Strips and renders nowiki, pre, math, hiero
* If $render is set, performs necessary rendering operations on plugins
* Returns the text, and fills an array with data needed in unstrip()
@@ -408,105 +402,82 @@
* for section editing, where these comments cause confusion when
* counting the sections in the wikisource
*
- * @access private
+ * @private
*/
function strip( $text, &$state, $stripcomments = false ) {
$render = ($this->mOutputType == OT_HTML);
- $html_content = array();
- $nowiki_content = array();
- $math_content = array();
- $pre_content = array();
- $comment_content = array();
- $ext_content = array();
- $ext_tags = array();
- $ext_params = array();
- $gallery_content = array();
# Replace any instances of the placeholders
$uniq_prefix = $this->mUniqPrefix;
#$text = str_replace( $uniq_prefix, wfHtmlEscapeFirst( $uniq_prefix ), $text );
-
- # html
+ $commentState = array();
+
+ $elements = array_merge(
+ array( 'nowiki', 'pre', 'gallery' ),
+ array_keys( $this->mTagHooks ) );
global $wgRawHtml;
if( $wgRawHtml ) {
- $text = Parser::extractTags('html', $text, $html_content, $uniq_prefix);
- foreach( $html_content as $marker => $content ) {
- if ($render ) {
- # Raw and unchecked for validity.
- $html_content[$marker] = $content;
- } else {
- $html_content[$marker] = '<html>'.$content.'</html>';
- }
- }
+ $elements[] = 'html';
}
-
- # nowiki
- $text = Parser::extractTags('nowiki', $text, $nowiki_content, $uniq_prefix);
- foreach( $nowiki_content as $marker => $content ) {
- if( $render ){
- $nowiki_content[$marker] = wfEscapeHTMLTagsOnly( $content );
- } else {
- $nowiki_content[$marker] = '<nowiki>'.$content.'</nowiki>';
- }
- }
-
- # math
if( $this->mOptions->getUseTeX() ) {
- $text = Parser::extractTags('math', $text, $math_content, $uniq_prefix);
- foreach( $math_content as $marker => $content ){
- if( $render ) {
- $math_content[$marker] = renderMath( $content );
- } else {
- $math_content[$marker] = '<math>'.$content.'</math>';
- }
- }
- }
-
- # pre
- $text = Parser::extractTags('pre', $text, $pre_content, $uniq_prefix);
- foreach( $pre_content as $marker => $content ){
- if( $render ){
- $pre_content[$marker] = '<pre>' . wfEscapeHTMLTagsOnly( $content ) . '</pre>';
- } else {
- $pre_content[$marker] = '<pre>'.$content.'</pre>';
- }
- }
-
- # gallery
- $text = Parser::extractTags('gallery', $text, $gallery_content, $uniq_prefix);
- foreach( $gallery_content as $marker => $content ) {
- require_once( 'ImageGallery.php' );
- if ( $render ) {
- $gallery_content[$marker] = $this->renderImageGallery( $content );
- } else {
- $gallery_content[$marker] = '<gallery>'.$content.'</gallery>';
- }
- }
-
- # Comments
- $text = Parser::extractTags(STRIP_COMMENTS, $text, $comment_content, $uniq_prefix);
- foreach( $comment_content as $marker => $content ){
- $comment_content[$marker] = '<!--'.$content.'-->';
+ $elements[] = 'math';
}
+
- # Extensions
- foreach ( $this->mTagHooks as $tag => $callback ) {
- $ext_content[$tag] = array();
- $text = Parser::extractTagsAndParams( $tag, $text, $ext_content[$tag],
- $ext_tags[$tag], $ext_params[$tag], $uniq_prefix );
- foreach( $ext_content[$tag] as $marker => $content ) {
- $full_tag = $ext_tags[$tag][$marker];
- $params = $ext_params[$tag][$marker];
- if ( $render )
- $ext_content[$tag][$marker] = call_user_func_array( $callback, array( $content, $params, &$this ) );
- else {
- if ( is_null( $content ) ) {
- // Empty element tag
- $ext_content[$tag][$marker] = $full_tag;
+ $matches = array();
+ $text = Parser::extractTagsAndParams( $elements, $text, $matches, $uniq_prefix );
+
+ foreach( $matches as $marker => $data ) {
+ list( $element, $content, $params, $tag ) = $data;
+ if( $render ) {
+ $tagName = strtolower( $element );
+ switch( $tagName ) {
+ case '!--':
+ // Comment
+ if( substr( $tag, -3 ) == '-->' ) {
+ $output = $tag;
+ } else {
+ // Unclosed comment in input.
+ // Close it so later stripping can remove it
+ $output = "$tag-->";
+ }
+ break;
+ case 'html':
+ if( $wgRawHtml ) {
+ $output = $content;
+ break;
+ }
+ // Shouldn't happen otherwise. :)
+ case 'nowiki':
+ $output = wfEscapeHTMLTagsOnly( $content );
+ break;
+ case 'math':
+ $output = renderMath( $content );
+ break;
+ case 'pre':
+ // Backwards-compatibility hack
+ $content = preg_replace( '!<nowiki>(.*?)</nowiki>!is', '\\1', $content );
+ $output = '<pre>' . wfEscapeHTMLTagsOnly( $content ) . '</pre>';
+ break;
+ case 'gallery':
+ $output = $this->renderImageGallery( $content );
+ break;
+ default:
+ if( isset( $this->mTagHooks[$tagName] ) ) {
+ $output = call_user_func_array( $this->mTagHooks[$tagName],
+ array( $content, $params, &$this ) );
} else {
- $ext_content[$tag][$marker] = "$full_tag$content$tag>";
+ wfDebugDieBacktrace( "Invalid call hook $element" );
}
}
+ } else {
+ // Just stripping tags; keep the source
+ $output = $tag;
+ }
+ if( !$stripcomments && $element == '!--' ) {
+ $commentState[$marker] = $output;
+ } else {
+ $state[$element][$marker] = $output;
}
}
@@ -515,38 +486,14 @@
# not invoke any extension tags / parser hooks contained within
# a comment.)
if ( !$stripcomments ) {
- $tempstate = array( 'comment' => $comment_content );
- $text = $this->unstrip( $text, $tempstate );
- $comment_content = array();
- }
-
- # Merge state with the pre-existing state, if there is one
- if ( $state ) {
- $state['html'] = $state['html'] + $html_content;
- $state['nowiki'] = $state['nowiki'] + $nowiki_content;
- $state['math'] = $state['math'] + $math_content;
- $state['pre'] = $state['pre'] + $pre_content;
- $state['gallery'] = $state['gallery'] + $gallery_content;
- $state['comment'] = $state['comment'] + $comment_content;
-
- foreach( $ext_content as $tag => $array ) {
- if ( array_key_exists( $tag, $state ) ) {
- $state[$tag] = $state[$tag] + $array;
- }
- }
- } else {
- $state = array(
- 'html' => $html_content,
- 'nowiki' => $nowiki_content,
- 'math' => $math_content,
- 'pre' => $pre_content,
- 'gallery' => $gallery_content,
- 'comment' => $comment_content,
- ) + $ext_content;
+ // Put them all back and forget them
+ $text = strtr( $text, $commentState );
}
+
return $text;
}
+
/**
* restores pre, math, and hiero removed by strip()
*
@@ -558,20 +505,21 @@
return $text;
}
- # Must expand in reverse order, otherwise nested tags will be corrupted
- foreach( array_reverse( $state, true ) as $tag => $contentDict ) {
+ $replacements = array();
+ foreach( $state as $tag => $contentDict ) {
if( $tag != 'nowiki' && $tag != 'html' ) {
- foreach( array_reverse( $contentDict, true ) as $uniq => $content ) {
- $text = str_replace( $uniq, $content, $text );
+ foreach( $contentDict as $uniq => $content ) {
+ $replacements[$uniq] = $content;
}
}
}
+ $text = strtr( $text, $replacements );
return $text;
}
/**
- * always call this after unstrip() to preserve the order
+ * Always call this after unstrip() to preserve the order
*
* @access private
*/
@@ -580,17 +528,15 @@
return $text;
}
- # Must expand in reverse order, otherwise nested tags will be corrupted
- for ( $content = end($state['nowiki']); $content !== false; $content = prev( $state['nowiki'] ) ) {
- $text = str_replace( key( $state['nowiki'] ), $content, $text );
- }
-
- global $wgRawHtml;
- if ($wgRawHtml) {
- for ( $content = end($state['html']); $content !== false; $content = prev( $state['html'] ) ) {
- $text = str_replace( key( $state['html'] ), $content, $text );
+ $replacements = array();
+ foreach( $state as $tag => $contentDict ) {
+ if( $tag == 'nowiki' || $tag == 'html' ) {
+ foreach( $contentDict as $uniq => $content ) {
+ $replacements[$uniq] = $content;
+ }
}
}
+ $text = strtr( $text, $replacements );
return $text;
}
@@ -605,14 +551,7 @@
function insertStripItem( $text, &$state ) {
$rnd = $this->mUniqPrefix . '-item' . Parser::getRandomString();
if ( !$state ) {
- $state = array(
- 'html' => array(),
- 'nowiki' => array(),
- 'math' => array(),
- 'pre' => array(),
- 'comment' => array(),
- 'gallery' => array(),
- );
+ $state = array();
}
$state['item'][$rnd] = $text;
return $rnd;
@@ -935,7 +874,7 @@
wfProfileIn( $fname );
for ( $i = 6; $i >= 1; --$i ) {
$h = str_repeat( '=', $i );
- $text = preg_replace( "/^{$h}(.+){$h}(\\s|$)/m",
+ $text = preg_replace( "/^{$h}(.+){$h}\\s*$/m",
"\\1\\2", $text );
}
wfProfileOut( $fname );
@@ -3588,6 +3527,7 @@
* @return The old value of the mTagHooks array associated with the hook
*/
function setHook( $tag, $callback ) {
+ $tag = strtolower( $tag );
$oldVal = @$this->mTagHooks[$tag];
$this->mTagHooks[$tag] = $callback;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/includes/Sanitizer.php new/mediawiki-1.6.7/includes/Sanitizer.php
--- old/mediawiki-1.6.6/includes/Sanitizer.php 2006-05-23 12:27:25.000000000 +0200
+++ new/mediawiki-1.6.7/includes/Sanitizer.php 2006-06-06 11:04:16.000000000 +0200
@@ -391,8 +391,8 @@
if ( $t == 'table' ) {
$tagstack = array_pop( $tablestack );
}
- $newparams = '';
}
+ $newparams = '';
} else {
# Keep track for later
if ( in_array( $t, $tabletags ) &&
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/languages/LanguageDe.php new/mediawiki-1.6.7/languages/LanguageDe.php
--- old/mediawiki-1.6.6/languages/LanguageDe.php 2006-05-23 12:27:35.000000000 +0200
+++ new/mediawiki-1.6.7/languages/LanguageDe.php 2006-06-06 11:04:42.000000000 +0200
@@ -50,9 +50,10 @@
/* private */ $wgBookstoreListDe = array(
- 'Verzeichnis lieferbarer Bücher' => 'http://www.buchhandel.de/sixcms/list.php?page=buchhandel_profisuche_frameset&suchfeld=isbn&suchwert=$1&x=0&y=0',
+ 'Verzeichnis lieferbarer Bücher' => 'http://www.buchhandel.de/vlb/vlb.cgi?type=voll&isbn=$1',
'abebooks.de' => 'http://www.abebooks.de/servlet/BookSearchPL?ph=2&isbn=$1',
'Amazon.de' => 'http://www.amazon.de/exec/obidos/ISBN=$1',
+ 'buch.de' => 'http://www.buch.de/de.buch.shop/shop/1/home/schnellsuche/buch/?fqbi=$1',
'Lehmanns Fachbuchhandlung' => 'http://www.lob.de/cgi-bin/work/suche?flag=new&stich1=$1',
);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/languages/LanguageHe.php new/mediawiki-1.6.7/languages/LanguageHe.php
--- old/mediawiki-1.6.6/languages/LanguageHe.php 2006-05-23 12:27:37.000000000 +0200
+++ new/mediawiki-1.6.7/languages/LanguageHe.php 2006-06-06 11:04:43.000000000 +0200
@@ -7,7 +7,7 @@
require_once("LanguageUtf8.php");
/* private */ $wgNamespaceNamesHe = array(
- NS_MEDIA => "Media",
+ NS_MEDIA => "מדיה",
NS_SPECIAL => "מיוחד",
NS_MAIN => "",
NS_TALK => "שיחה",
@@ -42,8 +42,6 @@
'chick' => 'Chick'
) + $wgSkinNamesEn;
-
-
/* private */ $wgBookstoreListHe = array(
"מיתוס" => "http://www.mitos.co.il/ ",
"iBooks" => "http://www.ibooks.co.il/",
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/languages/Messages.php new/mediawiki-1.6.7/languages/Messages.php
--- old/mediawiki-1.6.6/languages/Messages.php 2006-05-23 12:27:35.000000000 +0200
+++ new/mediawiki-1.6.7/languages/Messages.php 2006-06-06 11:04:42.000000000 +0200
@@ -484,7 +484,7 @@
'confirmedittitle' => 'E-mail confirmation required to edit',
'confirmedittext' => 'You must confirm your e-mail address before editing pages. Please set and validate your e-mail address through your [[Special:Preferences|user preferences]].',
'loginreqtitle' => 'Login Required',
-'loginreqlink' => 'login',
+'loginreqlink' => 'log in',
'loginreqpagetext' => 'You must $1 to view other pages.',
'accmailtitle' => 'Password sent.',
'accmailtext' => 'The password for "$1" has been sent to $2.',
@@ -511,6 +511,13 @@
Please try again. If it still doesn\'t work, try logging out and logging back in.</strong>',
'previewconflict' => 'This preview reflects the text in the upper
text editing area as it will appear if you choose to save.',
+'session_fail_preview_html' => '<strong>Sorry! We could not process your edit due to a loss of session data.</strong>
+
+\'\'Because this wiki has raw HTML enabled, the preview is hidden as a precaution against JavaScript attacks.\'\'
+
+<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>',
+'previewconflict' => 'This preview reflects the text in the upper
+text editing area as it will appear if you choose to save.',
'importing' => 'Importing $1',
'editing' => 'Editing $1',
'editingsection' => 'Editing $1 (section)',
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/languages/MessagesDe.php new/mediawiki-1.6.7/languages/MessagesDe.php
--- old/mediawiki-1.6.6/languages/MessagesDe.php 2006-05-23 12:27:39.000000000 +0200
+++ new/mediawiki-1.6.7/languages/MessagesDe.php 2006-06-06 11:04:46.000000000 +0200
@@ -97,17 +97,17 @@
"mainpagedocfooter" => "Siehe die [http://meta.wikipedia.org/wiki/MediaWiki_i18n Dokumentation zur Anpassung der Benutzeroberfläche]
und das [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide Benutzerhandbuch] für Hilfe zur Benutzung und Konfiguration.",
'portal' => "{{SITENAME}}-Portal",
-"portal-url" => "{{ns:4}}:Portal",
+'portal-url' => '{{ns:project}}:Portal',
"about" => "Über",
"aboutsite" => "Über {{SITENAME}}",
"aboutpage" => "{{ns:project}}:Über_{{SITENAME}}",
"article" => "Artikel",
"help" => "Hilfe",
-"helppage" => "Project:Hilfe",
+'helppage' => '{{ns:project}}:Hilfe',
"bugreports" => "Kontakt",
-"bugreportspage" => "Project:Kontakt",
+'bugreportspage' => '{{ns:project}}:Kontakt',
"sitesupport" => "Spenden",
-'sitesupport-url' => 'Project:Spenden',
+'sitesupport-url' => '{{ns:project}}:Spenden',
"faq" => "FAQ",
"faqpage" => "{{ns:project}}:Häufig_gestellte_Fragen",
"edithelp" => "Bearbeitungshilfe",
@@ -123,7 +123,7 @@
"qbspecialpages" => "Spezialseiten",
"moredotdotdot" => "Mehr...",
"mypage" => "Meine Seite",
-"mytalk" => "Meine Diskussion",
+'mytalk' => 'Eigene Diskussion',
"anontalk" => "Diskussionsseite dieser IP",
"navigation" => "Navigation",
"currentevents" => "Aktuelle Ereignisse",
@@ -131,7 +131,7 @@
"disclaimers" => "Lizenzbestimmungen",
"disclaimerpage" => "{{ns:4}}:Lizenzbestimmungen",
'privacy' => 'Datenschutz',
-'privacypage' => 'Project:Datenschutz',
+'privacypage' => '{{ns:project}}:Datenschutz',
"errorpagetitle" => "Fehler",
"returnto" => "Zurück zu $1.",
'tagline' => 'Aus {{SITENAME}}',
@@ -171,8 +171,9 @@
"lastmodified" => "Diese Seite wurde zuletzt geändert um $1.",
"viewcount" => "Diese Seite wurde bisher $1 mal abgerufen.",
"copyright" => "Inhalt ist verfügbar unter der $1.",
+'printsubtitle' => '(Aus {{SERVER}})',
"protectedpage" => "Geschützte Seite",
-"administrators" => "Project:Administratoren",
+'administrators' => '{{ns:project}}:Administratoren',
'jumpto' => 'Wechseln zu:',
'jumptonavigation' => 'Navigation',
'jumptosearch' => 'Suche',
@@ -185,9 +186,11 @@
'versionrequired' => 'Version $1 von MediaWiki ist erforderlich',
'versionrequiredtext' => 'Version $1 von MediaWiki ist erforderlich um diese Seite zu nutzen. Siehe [[{{ns:special}}:Version]]',
"nbytes" => "$1 Byte",
+'ncategories' => '$1 Kategorien',
+'nrevisions' => '$1 Versionen',
'widthheight' => '$1 x $2',
-"go" => "Los",
-"ok" => "OK",
+'go' => 'Artikel',
+'ok' => 'Suche',
'retrievedfrom' => 'Von "$1"',
'youhavenewmessages' => 'Sie haben $1 ($2).',
"newmessageslink" => "neue Nachrichten",
@@ -302,9 +305,10 @@
Vergessen Sie nicht, Ihre Einstellungen anzupassen.",
"loginpagetitle" => "Benutzer-Anmeldung",
-"yourname" => "Ihr Benutzername",
-"yourpassword" => "Ihr Passwort",
+"yourname" => "Benutzername",
+"yourpassword" => "Passwort",
"yourpasswordagain" => "Passwort wiederholen",
+'newusersonly' => ' (nur neue Benutzer)',
"remembermypassword" => "Dauerhaftes Einloggen",
'yourdomainname' => 'Ihre Domain',
"loginproblem" => "<b>Es gab ein Problem mit Ihrer Anmeldung.</b><br />Bitte versuchen Sie es nochmal!",
@@ -345,8 +349,10 @@
"nosuchuser" => "Der Benutzername \"$1\" existiert nicht.
Überprüfen Sie die Schreibweise, oder melden Sie sich als neuer Benutzer an.",
'nosuchusershort' => 'Der Benutzername „$1“ existiert nicht. Bitte überprüfen Sie die Schreibweise.',
+'nouserspecified' => 'Bitte geben Sie einen Benutzernamen an.',
"wrongpassword" => "Das Passwort ist falsch (oder fehlt). Bitte versuchen Sie es erneut.",
-"mailmypassword" => "Ein neues (temporäres) Passwort schicken",
+'mailmypassword' => 'Passwort vergessen?',
+'passwordremindertitle' => '[{{SITENAME}}] Neues Passwort',
"noemail" => "Benutzer \"$1\" hat keine E-Mail-Adresse angegeben.",
"passwordsent" => "Ein temporäres Passwort wurde an die E-Mail-Adresse von Benutzer \"$1\" gesendet.
Bitte melden Sie sich damit an, sobald Sie es erhalten.",
@@ -372,6 +378,7 @@
"savearticle" => "Artikel speichern",
"preview" => "Vorschau",
"showpreview" => "Vorschau zeigen",
+'showlivepreview' => 'Live-Vorschau',
"showdiff" => "Änderungen zeigen",
'missingcommenttext' => 'Bitte geben Sie eine Zusammenfassung ein.',
'anoneditwarning' => "Du bearbeitest unangemeldet. Statt eines Benutzernamens wird die IP-Adresse in der Versionsgeschichte aufgezeichnet.",
@@ -425,6 +432,11 @@
<strong>Bitte <big>kopieren Sie keine Webseiten</big>, die nicht Ihre eigenen sind, benutzen Sie <big>keine urheberrechtlich geschützten Werke</big> ohne Erlaubnis des Copyright-Inhabers!</strong><br />
Sie geben uns hiermit ihre Zusage, dass Sie den Text <strong>selbst verfasst</strong> haben, dass der Text Allgemeingut (<strong>public domain</strong>) ist, oder dass der <strong>Copyright-Inhaber</strong> seine <strong>Zustimmung</strong> gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weisen Sie bitte auf der 'Diskussion:'-Seite darauf hin.
<i>Bitte beachten Sie, dass alle {{SITENAME}}-Beiträge automatisch unter der \"$2\" stehen. Falls Sie nicht möchten, dass Ihre Arbeit hier von anderen verändert und verbreitet wird, dann drücken Sie nicht auf \"Speichern\".</i>",
+'copyrightwarning2' => 'Bitte beachten Sie, dass alle Beiträge zu {{SITENAME}} von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können.
+Reichen Sie hier keine Texte ein, falls Sie nicht wollen dass diese ohne Einschränkung geändert werden können.
+
+Sie bestätigen hiermit auch, dass Sie diese Texte selbst geschrieben haben oder diese von einer gemeinfreien Quelle kopiert haben
+(siehe $1 für weitere Details). <strong>ÜBERTRAGEN SIE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZEN INHALTE!</strong>',
"longpagewarning" => "<strong>WARNUNG: Diese Seite ist $1KB groß; einige Browser könnten Probleme haben, Seiten zu bearbeiten, die größer als 32KB sind.
Überlegen Sie bitte, ob eine Aufteilung der Seite in kleinere Abschnitte möglich ist.</strong>",
"readonlywarning" => "<strong>WARNUNG: Die Datenbank wurde während dem Ändern der
@@ -552,7 +564,7 @@
"oldpassword" => "Altes Passwort",
"newpassword" => "Neues Passwort",
"retypenew" => "Neues Passwort (nochmal)",
-"textboxsize" => "Textfeld-Größe",
+"textboxsize" => "Bearbeiten",
"rows" => "Zeilen",
"columns" => "Spalten",
"searchresultshead" => "Suchergebnisse",
@@ -574,6 +586,7 @@
'files' => 'Dateien',
'imagemaxsize' => 'Maximale Bildgröße auf Bildbeschreibungsseiten:',
'thumbsize' => 'Größe der Vorschaubilder (Thumbnails):',
+'showbigimage' => 'Version mit hoher Auflösung herunterladen ($1 x $2 Pixel, $3 KB)',
# Recent changes
#
@@ -591,9 +604,14 @@
"hist" => "Versionen",
"hide" => "ausblenden",
"show" => "einblenden",
-"minoreditletter" => "M",
+'tableform' => 'Tabelle',
+'listform' => 'Liste',
+'nchanges' => '$1 Änderungen',
+"minoreditletter" => 'K',
"newpageletter" => "N",
'number_of_watching_users_pageview' => '[$1 Benutzer beobachten diese Seite]',
+'rc_categories' => 'Kategorienbegrenzung (getrennt mit "|")',
+'rc_categories_any' => 'Alle',
# Upload
@@ -636,7 +654,7 @@
'fileuploadsummary' => 'Beschreibung/Quelle:',
"filestatus" => "Copyright-Status",
"filesource" => "Quelle",
-"copyrightpage" => "Project:Copyright",
+'copyrightpage' => '{{ns:project}}:Copyright',
"copyrightpagename" => "{{SITENAME}} copyright",
"uploadedfiles" => "Hochgeladene Dateien",
'ignorewarning' => 'Warnung ignorieren und Datei trotzdem speichern.',
@@ -692,6 +710,8 @@
"imagelinks" => "Bildverweise",
"linkstoimage" => "Die folgenden Artikel benutzen dieses Bild:",
"nolinkstoimage" => "Kein Artikel benutzt dieses Bild.",
+'shareduploadwiki' => 'Für weitere Informationen siehe $1.',
+'shareduploadwiki-linktext' => 'Datei-Beschreibungsseite',
'noimage' => 'Eine Datei mit diesem Namen existiert nicht, Sie können sie jedoch $1.',
'noimage-linktext' => 'hochladen',
'uploadnewversion' => '[$1 Eine neue Version dieser Datei hochladen]',
@@ -724,6 +744,7 @@
# Miscellaneous special pages
#
+'orphans' => 'Verwaiste Seiten',
"lonelypages" => "Verwaiste Seiten",
"unusedimages" => "Verwaiste Bilder",
"popularpages" => "Beliebte Seiten",
@@ -939,7 +960,7 @@
# Contributions
#
"contributions" => "Benutzerbeiträge",
-"mycontris" => "Meine Beiträge",
+'mycontris' => 'Eigene Beiträge',
"contribsub" => "Für $1",
"nocontribs" => "Es wurden keine Änderungen für diese Kriterien gefunden.",
"ucnote" => "Dies sind die letzten <b>$1</b> Beiträge des Benutzers in den letzten <b>$2</b> Tagen.",
@@ -981,6 +1002,8 @@
"ipblocklist" => "Liste blockierter IP-Adressen",
'ipblocklistempty' => 'Die Liste der Benutzersperrungen hat keine Einträge.',
"blocklistline" => "$1, $2 blockierte $3 ($4)",
+'infiniteblock' => 'unbegrenzt',
+'expiringblock' => 'erlischt $1',
"blocklink" => "blockieren",
"unblocklink" => "freigeben",
"contribslink" => "Beiträge",
@@ -1063,6 +1086,8 @@
"exporttext" => "Sie können den Text und die Bearbeitungshistorie einer bestimmten oder einer Auswahl von Seiten nach XML exportieren. Das Ergebnis kann in ein anderes Wiki mit Mediawiki Software eingespielt werden, bearbeitet oder archiviert werden.",
"exportcuronly" => "Nur die aktuelle Version der Seite exportieren",
"missingimage" => "<b>Fehlendes Bild</b><br /><i>$1</i>",
+'filemissing' => 'Datei fehlt',
+'thumbnail_error' => 'Fehler beim Erstellen des Vorschaubildes: $1',
#Tooltips:
'tooltip-watch' => 'Diese Seite beobachten. [alt-w]',
@@ -1073,6 +1098,19 @@
'tooltip-diff' => 'Zeigt Ihre Änderungen am Text tabellarisch an [alt-d]',
'tooltip-compareselectedversions' => 'Unterschiede zwischen zwei ausgewählten Versionen dieser Seite vergleichen. [alt-v]',
+# Metadata
+'nodublincore' => 'Dublin Core RDF-Metadaten sind für diesen Server deaktiviert.',
+'nocreativecommons' => 'Creative Commons RDF-Metadaten sind für diesen Server deaktiviert.',
+'notacceptable' => 'Der Wiki-Server kann die Daten nicht für Ihr Ausgabegerät aufbereiten.',
+
+# Attribution
+'anonymous' => 'Anonyme(r) Benutzer auf {{SITENAME}}',
+'lastmodifiedby' => 'Diese Seite wurde zuletzt geändert am $1 von $2.',
+'othercontribs' => 'Basiert auf der Arbeit von $1',
+'others' => 'andere',
+'creditspage' => 'Seiteninformationen',
+'nocredits' => 'Für diese Seite sind keine Informationen vorhanden.',
+
# Info page
'infosubtitle' => 'Seiteninformation',
'numedits' => 'Anzahl der Änderungen (Artikel): $1',
@@ -1112,6 +1150,7 @@
'movelogpage' => 'Verschiebungs-Logbuch',
'movelogpagetext' => 'Dies ist eine Liste aller verschobenen Seiten.',
"allmessages" => "Alle MediaWiki-Meldungen",
+'allmessagesname' => 'Name',
"allmessagestext" => "Dies ist eine Liste aller möglichen Meldungen im MediaWiki-Namensraum.",
'allmessagesdefault' => 'Standardtext',
'allmessagescurrent' => 'Aktueller Text',
@@ -1322,10 +1361,10 @@
'exif-gpsdestlongitude' => 'Länge',
'exif-gpsdestlongituderef' => 'Referenz für die Länge',
#'exif-gpsdifferential' => 'GPS differential correction',
-#'exif-gpsdirection-m' => 'Magnetic direction',
+'exif-gpsdirection-m' => 'Magnetische Richtung',
#'exif-gpsdirection-t' => 'True direction',
-#'exif-gpsdop' => 'Measurement precision',
-#'exif-gpsimgdirection' => 'Direction of image',
+'exif-gpsdop' => 'Maßpräzision',
+'exif-gpsimgdirection' => 'Bildrichtung',
#'exif-gpsimgdirectionref' => 'Reference for direction of image',
'exif-gpslatitude' => 'Geografische Breite',
'exif-gpslatitude-n' => 'nördl. Breite',
@@ -1347,7 +1386,7 @@
'exif-gpsspeed-n' => 'Knoten',
'exif-gpsspeedref' => 'Geschwindigkeitseinheit',
'exif-gpsstatus' => 'Empfänger Status',
-#'exif-gpsstatus-a' => 'Measurement in progress',
+'exif-gpsstatus-a' => 'Messung läuft',
#'exif-gpsstatus-v' => 'Measurement interoperability',
'exif-gpstimestamp' => 'GPS-Zeit ([[Internationale Atomzeit|TAI]])',
'exif-gpstrack' => 'Bewegungsrichtung',
@@ -1420,7 +1459,7 @@
'exif-relatedsoundfile' => 'Zugehörige Tondatei',
'exif-resolutionunit' => 'Masseinheit der Auflösung',
'exif-rowsperstrip' => 'Anzahl Zeilen pro Streifen',
-#'exif-samplesperpixel' => 'Number of components',
+'exif-samplesperpixel' => 'Anzahl Komponenten',
'exif-saturation' => 'Sättigung',
'exif-saturation-0' => 'Normal',
'exif-saturation-1' => 'Gering',
@@ -1451,7 +1490,7 @@
'exif-spectralsensitivity' => 'Spectral Sensitivity',
#'exif-stripbytecounts' => 'Bytes per compressed strip',
'exif-stripoffsets' => 'Bilddaten-Versatz',
-#'exif-subjectarea' => 'Subject area',
+'exif-subjectarea' => 'Bereich',
'exif-subjectdistance' => 'Entfernung',
'exif-subjectdistance-value' => '$1 Meter',
'exif-subjectdistancerange' => 'Motiventfernung',
@@ -1579,10 +1618,10 @@
ta[\'ca-nstab-main\'] = new Array(\'c\',\'Artikel anzeigen\');
ta[\'ca-nstab-user\'] = new Array(\'c\',\'Benutzerseite anzeigen\');
ta[\'ca-nstab-media\'] = new Array(\'c\',\'Mediendateienseite anzeigen\');
-ta[\'ca-nstab-special\'] = new Array(\'\',\'This is a special page, you can\\\'t edit the page itself.\');
+ta[\'ca-nstab-special\'] = new Array(\'\',\'Dies ist eine Spezialseite. Sie können diese nicht ändern.\');
ta[\'ca-nstab-wp\'] = new Array(\'a\',\'Projektseite anzeigen\');
ta[\'ca-nstab-image\'] = new Array(\'c\',\'Bilderseite anzeigen\');
-ta[\'ca-nstab-mediawiki\'] = new Array(\'c\',\'View the system message\');
+ta[\'ca-nstab-mediawiki\'] = new Array(\'c\',\'Systemmeldungen anzeigen\');
ta[\'ca-nstab-template\'] = new Array(\'c\',\'Vorlage anzeigen\');
ta[\'ca-nstab-help\'] = new Array(\'c\',\'Hilfeseite anzeigen\');
ta[\'ca-nstab-category\'] = new Array(\'c\',\'Kategorieseite anzeigen\');',
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/languages/MessagesHe.php new/mediawiki-1.6.7/languages/MessagesHe.php
--- old/mediawiki-1.6.6/languages/MessagesHe.php 2006-05-23 12:27:36.000000000 +0200
+++ new/mediawiki-1.6.7/languages/MessagesHe.php 2006-06-06 11:04:42.000000000 +0200
@@ -89,7 +89,7 @@
== קישורים שימושיים ==
* [http://www.mediawiki.org/wiki/Help:Configuration_settings רשימת ההגדרות]
* [http://www.mediawiki.org/wiki/Help:FAQ שאלות נפוצות]
-* [http://mail.wikipedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]",
+* [http://mail.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]",
"portal" => "שער הקהילה",
"portal-url" => "{{ns:project}}:שער הקהילה",
@@ -203,9 +203,7 @@
"nrevisions" => "$1 גרסאות",
"widthheight" => "$1x$2",
"ok" => "אישור",
-"sitetitle" => "{{SITENAME}}",
"pagetitle" => "$1 – {{SITENAME}}",
-"sitesubtitle" => "",
"retrievedfrom" => '<br /><span style="font-size: smaller;">מקור: $1</span>',
"youhavenewmessages" => "יש לכם $1 ($2).",
"newmessageslink" => "הודעות חדשות",
@@ -358,7 +356,7 @@
"yournick" => "בחרו כינוי (לחתימות)",
"badsig" => "חתימה מסוגננת שגויה; אנא בדקו את תגיות ה־HTML.",
"email" => 'דוא"ל',
-"emailforlost" => "",
+"emailforlost" => '<div style="width: 30em;"><p>* אופציונאלי. כתובת דוא"ל מאפשרת לאחרים ליצור איתכם קשר דרך האתר מבלי שתצטרכו לגלות להם את כתובתך, ומאפשרת לנו לשלוח לכם סיסמה חדשה באם תשכחו אותה.</p><p>שמכם האמיתי ישמש כדי לייחס את עבדותך אליכם.</p></div>',
"prefs-help-email-enotif" => 'כתובת זו משמשת גם למשלוח עדכונים דרך הדוא"ל (אם אפשרתם זאת).',
"prefs-help-realname" => "* שם אמיתי (אופציונאלי): אם תבחרו לספק שם זה, הוא ישמש לייחוס עבודתכם אליכם.",
"loginerror" => "שגיאה בכניסה לאתר",
@@ -457,12 +455,10 @@
"newarticletext" => 'הגעתם לדף שעדיין איננו קיים. כדי ליצור דף חדש, כתבו את התוכן שלכם בתיבת הטקסט למטה.
אם הגעתם לכאן בטעות, פשוט לחצו על מקש ה־\'\'\'Back\'\'\' בדפדפן שלכם.',
-"newarticletextanon" => "{{int:newarticletext}}",
"anontalkpagetext" => "----
'''זהו דף שיחה של משתמש אנונימי שעדיין לא יצר חשבון במערכת, או שהוא לא משתמש בו. כיוון שכך, אנו צריכים להשתמש בכתובת ה־IP כדי לזהותו. ייתכן שכתובת IP זו תייצג מספר משתמשים. אם אתם משתמשים אנונימיים ומרגישים שקיבלתם הודעות בלתי רלוונטיות, אנא [[{{ns:special}}:Userlogin|צרו חשבון או הכנסו]] כדי להימנע מבלבול עתידי עם משתמשים אנונימיים נוספים.'''
----",
"noarticletext" => "אין עדיין טקסט בדף זה. באפשרותכם [[{{ns:special}}:Search/{{PAGENAME}}|לחפש את {{PAGENAME}} באתר]], או [{{fullurl:{{FULLPAGENAME}}|action=edit}} ליצור דף זה].",
-"noarticletextanon" => "{{int:noarticletext}}",
"clearyourcache" => "'''הערה:''' לאחר השמירה, עליכם לנקות את זכרון המטמון (Cache) של הדפדפן על־מנת להבחין בשינויים.
* ב'''מוזילה''', '''פיירפוקס''' או '''ספארי''', לחצו על מקש ה־Shift בעת לחיצתכם על '''העלה מחדש''' (Reload), או הקישו Ctrl+Shift+R (או Cmd+Shift+R במקינטוש של אפל).
* ב'''אינטרנט אקספלורר''', לחצו על מקש ה־Ctrl בעת לחיצתכם על '''רענן''' (Refresh), או הקישו על Ctrl+F5.
@@ -725,7 +721,7 @@
"uploadnologintext" => "עליכם [[{{ns:special}}:Userlogin|להיכנס לחשבון]] כדי להעלות קבצים.",
"upload_directory_read_only" => "תיקיית ההעלאות ($1) אינה ניתנת לכתיבה על־ידי שרת האינטרנט, ולפיכך הוא אינו יכול להעלות את התמונה.",
"uploaderror" => "שגיאה בהעלאת הקובץ",
-"uploadtext" => "השתמשו בטופס להלן כדי להעלות תמונות. כדי לראות או לחפש תמונות שהועלו בעבר אנא פנו ל[[{{ns:special}}:Imagelist|רשימת הקבצים המועלים]], וכמו כן, העלאות ומחיקות מתוארות ב[[{{ns:special}}:Log/delete]].
+"uploadtext" => "השתמשו בטופס להלן כדי להעלות תמונות. כדי לראות או לחפש תמונות שהועלו בעבר אנא פנו ל[[{{ns:special}}:Imagelist|רשימת הקבצים המועלים]], וכמו כן, העלאות מוצגות ב[[{{ns:special}}:Log/upload|יומן ההעלאות]], ומחיקות ב[[{{ns:special}}:Log/delete|יומן המחיקות]].
כדי לכלול תמונה בדף, השתמשו בקישור בצורות '''<nowiki>[[{{ns:image}}:file.jpg]]</nowiki>''' לתמונות בפורמט JPG (המיועד לתצלומים), '''<nowiki>[[{{ns:image}}:file.png]]</nowiki>''' לתמונות בפורמט PNG (לאיורים, שרטוטים וסמלים). כדי לקשר ישירות לקובץ קול, השתמשו בקישור בצורה '''<nowiki>[[{{ns:media}}:file.jpg]]</nowiki>''' לקבצי קול בפורמט OGG.",
"uploadlog" => "יומן העלאות קבצים",
@@ -773,6 +769,7 @@
# Image list
"imagelist" => "רשימת תמונות",
"imagelisttext" => "להלן רשימה של <strong>$1</strong> תמונות, ממוינות <strong>$2</strong>:",
+"imagelistforuser" => "מוצגות רק התמונות שהועלו על־ידי $1.",
"getimagelist" => "מושך את רשימת התמונות",
"ilsubmit" => "חיפוש",
"showlast" => "הצג $1 תמונות אחרונות ממוינות $2",
@@ -887,8 +884,6 @@
"booksourcetext" => "להלן רשימת קישורים לאתרים אחרים המוכרים ספרים חדשים ויד־שנייה, ושבהם עשוי להיות מידע נוסף לגבי ספרים שאתם מחפשים. לאתר אין קשר לעקסים אלו, ואין לראות ברשימה זו המלצה, פרסום או עידוד לעשות שימוש באתרים אלו ספציפית.",
"isbn" => "ISBN",
-"rfcurl" => "http://www.ietf.org/rfc/rfc$1.txt",
-"pubmedurl" => "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=pubmed&dopt=Abstract&list_uids=$1",
"alphaindexline" => "$1 עד $2",
"version" => "גרסת התוכנה",
"log" => "יומנים",
@@ -1069,9 +1064,9 @@
"undeletebtn" => "שחזר!",
"undeletedarticle" => "שיחזר את [[:$1]]",
"undeletedrevisions" => "שיחזר $1 גרסאות",
-"undeletedtext" => "הדף [[:$1]] שוחזר בהצלחה.
+"undeletedtext" => "'''הדף [[:$1]] שוחזר בהצלחה.'''
-ראו [[{{ns:special}}:Log/delete]] לרשימה של מחיקות ושיחזורים אחרונים.",
+ראו את [[{{ns:special}}:Log/delete|יומן המחיקות]] לרשימה של מחיקות ושיחזורים אחרונים.",
# Namespace form on various pages
"namespace" => "מרחב שם:",
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mediawiki-1.6.6/maintenance/parserTests.txt new/mediawiki-1.6.7/maintenance/parserTests.txt
--- old/mediawiki-1.6.6/maintenance/parserTests.txt 2006-05-23 12:27:14.000000000 +0200
+++ new/mediawiki-1.6.7/maintenance/parserTests.txt 2006-06-06 11:03:47.000000000 +0200
@@ -265,6 +265,14 @@
</p>
!! end
+!! test
+Comment semantics: unclosed comment at end
+!! input
+
Reply