If your PHP is configured as a CGI plug-in rather than an Apache module you may
experience problems, as this configuration is not well tested. safe_mode is also
-not tested and unlikely to work.
+not tested and unlikely to work.
If you want math support see the instructions in math/README
******************* WARNING *******************
-REMEMBER: ALWAYS BACK UP YOUR DATABASE BEFORE
+REMEMBER: ALWAYS BACK UP YOUR DATABASE BEFORE
ATTEMPTING TO INSTALL OR UPGRADE!!!
******************* WARNING *******************
-For system requirements, installation and upgrade details, see the files
+For system requirements, installation and upgrade details, see the files
RELEASE-NOTES, INSTALL, and UPGRADE.
== MediaWiki ==
released into the public domain, which does not impair the obligations of users
under the GPL for use of the whole code or other sections thereof.
-MediaWiki makes use of the Sajax Toolkit by modernmethod,
+MediaWiki makes use of the Sajax Toolkit by modernmethod,
http://www.modernmethod.com/sajax/ which has the following license:
'This work is licensed under the Creative Commons Attribution
* } else {
* $wgProfiler['class'] = 'ProfilerStub';
* }
- *
+ *
* Configuration of the profiler output can be done in LocalSettings.php
*/
==== From the web ====
-If you browse to the web-based installation script (usually at
-/mw-config/index.php) from your wiki installation you can follow the script and
+If you browse to the web-based installation script (usually at
+/mw-config/index.php) from your wiki installation you can follow the script and
upgrade your database in place.
==== From the command line ====
If you absolutely cannot make the UTF-8 upgrade work, you can try
doing it by hand: dump your old database, convert the dump file
-using iconv as described here:
+using iconv as described here:
http://portal.suse.com/sdb/en/2004/05/jbartsh_utf-8.html
and then reimport it. You can also convert filenames using convmv,
but note that the old directory hashes will no longer be valid,
* http://www.gnu.org/copyleft/gpl.html
*
* @file
- * @licence GNU GPL v2 or later
+ * @license GNU GPL v2 or later
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
* This allows for limited transactional logic across multiple backends for storing
* secondary data.
*
- * @static
* @param $updates array a list of DataUpdate instances
* @throws Exception|null
*/
* $wgSharedPrefix is the table prefix for the shared database. It defaults to
* $wgDBprefix.
*
- * @deprecated In new code, use the $wiki parameter to wfGetLB() to access
- * remote databases. Using wfGetLB() allows the shared database to reside on
- * separate servers to the wiki's own database, with suitable configuration
+ * @deprecated In new code, use the $wiki parameter to wfGetLB() to access
+ * remote databases. Using wfGetLB() allows the shared database to reside on
+ * separate servers to the wiki's own database, with suitable configuration
* of $wgLBFactoryConf.
*/
$wgSharedDB = null;
/**
* Whether to use a Host header in purge requests sent to the proxy servers
- * configured in $wgSquidServers. Set this to false to support Squid
+ * configured in $wgSquidServers. Set this to false to support Squid
* configured in forward-proxy mode.
*
* If this is set to true, a Host header will be sent, and only the path
* component of the URL will appear on the request line, as if the request
- * were a non-proxy HTTP 1.1 request. Varnish only supports this style of
+ * were a non-proxy HTTP 1.1 request. Varnish only supports this style of
* request. Squid supports this style of request only if reverse-proxy mode
* (http_port ... accel) is enabled.
*
* will be sent in the request line, as is the standard for an HTTP proxy
* request in both HTTP 1.0 and 1.1. This style of request is not supported
* by Varnish, but is supported by Squid in either configuration (forward or
- * reverse).
+ * reverse).
*
* @since 1.21
*/
*
* @file
*/
-
+
/**
- * Base class for general text storage via the "object" flag in old_flags, or
- * two-part external storage URLs. Used for represent efficient concatenated
+ * Base class for general text storage via the "object" flag in old_flags, or
+ * two-part external storage URLs. Used for represent efficient concatenated
* storage, and migration-related pointer objects.
*/
interface HistoryBlob
* @return bool
*/
public function isHappy() {
- return $this->mSize < $this->mMaxSize
+ return $this->mSize < $this->mMaxSize
&& count( $this->mItems ) < $this->mMaxCount;
}
}
/** Total uncompressed size */
var $mSize = 0;
- /**
- * Array of diffs. If a diff D from A to B is notated D = B - A, and Z is
+ /**
+ * Array of diffs. If a diff D from A to B is notated D = B - A, and Z is
* an empty string:
*
* { item[map[i]] - item[map[i-1]] where i > 0
- * diff[i] = {
+ * diff[i] = {
* { item[map[i]] - Z where i = 0
*/
var $mDiffs;
* The maximum number of text items before the object becomes sad
*/
var $mMaxCount = 100;
-
+
/** Constants from xdiff.h */
const XDL_BDOP_INS = 1;
const XDL_BDOP_CPY = 2;
* @throws MWException
*/
function compress() {
- if ( !function_exists( 'xdiff_string_rabdiff' ) ){
+ if ( !function_exists( 'xdiff_string_rabdiff' ) ){
throw new MWException( "Need xdiff 1.5+ support to write DiffHistoryBlob\n" );
}
if ( isset( $this->mDiffs ) ) {
# Pure PHP implementation
$header = unpack( 'Vofp/Vcsize', substr( $diff, 0, 8 ) );
-
+
# Check the checksum if hash/mhash is available
$ofp = $this->xdiffAdler32( $base );
if ( $ofp !== false && $ofp !== substr( $diff, 0, 4 ) ) {
wfDebug( __METHOD__. ": incorrect base length\n" );
return false;
}
-
+
$p = 8;
$out = '';
while ( $p < strlen( $diff ) ) {
}
/**
- * Compute a binary "Adler-32" checksum as defined by LibXDiff, i.e. with
+ * Compute a binary "Adler-32" checksum as defined by LibXDiff, i.e. with
* the bytes backwards and initialised with 0 instead of 1. See bug 34428.
*
* Returns false if no hashing library is available
if ( $init === null ) {
$init = str_repeat( "\xf0", 205 ) . "\xee" . str_repeat( "\xf0", 67 ) . "\x02";
}
- // The real Adler-32 checksum of $init is zero, so it initialises the
- // state to zero, as it is at the start of LibXDiff's checksum
+ // The real Adler-32 checksum of $init is zero, so it initialises the
+ // state to zero, as it is at the start of LibXDiff's checksum
// algorithm. Appending the subject string then simulates LibXDiff.
if ( function_exists( 'hash' ) ) {
$hash = hash( 'adler32', $init . $s, true );
if ( isset( $info['base'] ) ) {
// Old format
$this->mDiffMap = range( 0, count( $this->mDiffs ) - 1 );
- array_unshift( $this->mDiffs,
+ array_unshift( $this->mDiffs,
pack( 'VVCV', 0, 0, self::XDL_BDOP_INSB, strlen( $info['base'] ) ) .
$info['base'] );
} else {
* @return bool
*/
function isHappy() {
- return $this->mSize < $this->mMaxSize
+ return $this->mSize < $this->mMaxSize
&& count( $this->mItems ) < $this->mMaxCount;
}
'class', // html4, html5
'accesskey', // as of html5, multiple space-separated values allowed
// html4-spec doesn't document rel= as space-separated
- // but has been used like that and is now documented as such
+ // but has been used like that and is now documented as such
// in the html5-spec.
'rel',
);
// values. Implode/explode to get those into the main array as well.
if ( is_array( $value ) ) {
// If input wasn't an array, we can skip this step
-
$newValue = array();
foreach ( $value as $k => $v ) {
if ( is_string( $v ) ) {
# @todo FIXME: Is this really true?
$map['<'] = '<';
}
-
$ret .= " $key=$quote" . strtr( $value, $map ) . $quote;
}
}
* http://www.gnu.org/copyleft/gpl.html
*
* @file
- * @author Antoine Musso <hashar at free dot fr>, Aaron Schulz
+ * @author Antoine Musso "<hashar at free dot fr>", Aaron Schulz
*/
// Some regex definition to "play" with IP address and IP address blocks
/**
* Some functions to help implement an external link filter for spam control.
- *
+ *
* @todo implement the filter. Currently these are just some functions to help
* maintenance/cleanupSpam.php remove links to a single specified domain. The
* next thing is to implement functions for checking a given page against a big
// Reverse the labels in the hostname, convert to lower case
// For emails reverse domainpart only
if ( $prot == 'mailto:' && strpos($host, '@') ) {
- // complete email adress
+ // complete email adress
$mailparts = explode( '@', $host );
$domainpart = strtolower( implode( '.', array_reverse( explode( '.', $mailparts[1] ) ) ) );
$host = $domainpart . '@' . $mailparts[0];
$like = array( "$prot$host", $db->anyString() );
} elseif ( $prot == 'mailto:' ) {
// domainpart of email adress only. do not add '.'
- $host = strtolower( implode( '.', array_reverse( explode( '.', $host ) ) ) );
- $like = array( "$prot$host", $db->anyString() );
+ $host = strtolower( implode( '.', array_reverse( explode( '.', $host ) ) ) );
+ $like = array( "$prot$host", $db->anyString() );
} else {
- $host = strtolower( implode( '.', array_reverse( explode( '.', $host ) ) ) );
+ $host = strtolower( implode( '.', array_reverse( explode( '.', $host ) ) ) );
if ( substr( $host, -1, 1 ) !== '.' ) {
$host .= '.';
}
*/
public static function buildRollbackLink( $rev, IContextSource $context = null ) {
global $wgShowRollbackEditCount, $wgMiserMode;
-
+
// To config which pages are effected by miser mode
$disableRollbackEditCountSpecialPage = array( 'Recentchanges', 'Watchlist' );
*/
static function makeBrokenLink( $title, $text = '', $query = '', $trail = '' ) {
wfDeprecated( __METHOD__, '1.16' );
-
+
$nt = Title::newFromText( $title );
if ( $nt instanceof Title ) {
return self::makeBrokenLinkObj( $nt, $text, $query, $trail );
*/
static function makeLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' ) {
# wfDeprecated( __METHOD__, '1.16' ); // See r105985 and it's revert. Somewhere still used.
-
+
wfProfileIn( __METHOD__ );
$query = wfCgiToArray( $query );
list( $inside, $trail ) = self::splitTrail( $trail );
$title, $text = '', $query = '', $trail = '', $prefix = '' , $aprops = '', $style = ''
) {
# wfDeprecated( __METHOD__, '1.16' ); // See r105985 and it's revert. Somewhere still used.
-
+
wfProfileIn( __METHOD__ );
if ( $text == '' ) {
*/
static function makeBrokenLinkObj( $title, $text = '', $query = '', $trail = '', $prefix = '' ) {
wfDeprecated( __METHOD__, '1.16' );
-
+
wfProfileIn( __METHOD__ );
list( $inside, $trail ) = self::splitTrail( $trail );
*/
static function makeColouredLinkObj( $nt, $colour, $text = '', $query = '', $trail = '', $prefix = '' ) {
wfDeprecated( __METHOD__, '1.16' );
-
+
if ( $colour != '' ) {
$style = self::getInternalLinkAttributesObj( $nt, $text, $colour );
} else {
* This is used as a fallback to mime.types files.
* An extensive list of well known mime types is provided by
* the file mime.types in the includes directory.
- *
+ *
* This list concatenated with mime.types is used to create a mime <-> ext
* map. Each line contains a mime type followed by a space separated list of
- * extensions. If multiple extensions for a single mime type exist or if
+ * extensions. If multiple extensions for a single mime type exist or if
* multiple mime types exist for a single extension then in most cases
* MediaWiki assumes that the first extension following the mime type is the
* canonical extension, and the first time a mime type appears for a certain
* extension is considered the canonical mime type.
- *
+ *
* (Note that appending $wgMimeTypeFile to the end of MM_WELL_KNOWN_MIME_TYPES
- * sucks because you can't redefine canonical types. This could be fixed by
+ * sucks because you can't redefine canonical types. This could be fixed by
* appending MM_WELL_KNOWN_MIME_TYPES behind $wgMimeTypeFile, but who knows
* what will break? In practice this probably isn't a problem anyway -- Bryan)
*/
image/gif gif
image/jpeg jpeg jpg jpe
image/png png
-image/svg+xml svg
+image/svg+xml svg
image/svg svg
image/tiff tiff tif
image/vnd.djvu djvu
return self::$instance;
}
- /**
- * Returns a list of file extensions for a given mime type as a space
+ /**
+ * Returns a list of file extensions for a given mime type as a space
* separated string or null if the mime type was unrecognized. Resolves
* mime type aliases.
- *
+ *
* @param $mime string
* @return string|null
*/
return null;
}
- /**
- * Returns a list of mime types for a given file extension as a space
+ /**
+ * Returns a list of mime types for a given file extension as a space
* separated string or null if the extension was unrecognized.
- *
+ *
* @param $ext string
* @return string|null
*/
return $r;
}
- /**
+ /**
* Returns a single mime type for a given file extension or null if unknown.
* This is always the first type from the list returned by getTypesForExtension($ext).
- *
+ *
* @param $ext string
* @return string|null
*/
}
- /**
- * Tests if the extension matches the given mime type. Returns true if a
- * match was found, null if the mime type is unknown, and false if the
+ /**
+ * Tests if the extension matches the given mime type. Returns true if a
+ * match was found, null if the mime type is unknown, and false if the
* mime type is known but no matches where found.
- *
+ *
* @param $extension string
* @param $mime string
* @return bool|null
return in_array( $extension, $ext );
}
- /**
- * Returns true if the mime type is known to represent an image format
+ /**
+ * Returns true if the mime type is known to represent an image format
* supported by the PHP GD library.
*
* @param $mime string
- *
+ *
* @return bool
*/
public function isPHPImageType( $mime ) {
return in_array( strtolower( $extension ), $types );
}
- /**
+ /**
* Improves a mime type using the file extension. Some file formats are very generic,
- * so their mime type is not very meaningful. A more useful mime type can be derived
- * by looking at the file extension. Typically, this method would be called on the
+ * so their mime type is not very meaningful. A more useful mime type can be derived
+ * by looking at the file extension. Typically, this method would be called on the
* result of guessMimeType().
- *
+ *
* Currently, this method does the following:
*
* If $mime is "unknown/unknown" and isRecognizableExtension( $ext ) returns false,
- * return the result of guessTypesForExtension($ext).
+ * return the result of guessTypesForExtension($ext).
*
* If $mime is "application/x-opc+zip" and isMatchingExtension( $ext, $mime )
- * gives true, return the result of guessTypesForExtension($ext).
+ * gives true, return the result of guessTypesForExtension($ext).
*
* @param $mime String: the mime type, typically guessed from a file's content.
* @param $ext String: the file extension, as taken from the file name
public function improveTypeFromExtension( $mime, $ext ) {
if ( $mime === 'unknown/unknown' ) {
if ( $this->isRecognizableExtension( $ext ) ) {
- wfDebug( __METHOD__. ': refusing to guess mime type for .' .
+ wfDebug( __METHOD__. ': refusing to guess mime type for .' .
"$ext file, we should have recognized it\n" );
} else {
- // Not something we can detect, so simply
+ // Not something we can detect, so simply
// trust the file extension
$mime = $this->guessTypesForExtension( $ext );
}
// find the proper mime type for that file extension
$mime = $this->guessTypesForExtension( $ext );
} else {
- wfDebug( __METHOD__. ": refusing to guess better type for $mime file, " .
+ wfDebug( __METHOD__. ": refusing to guess better type for $mime file, " .
".$ext is not a known OPC extension.\n" );
$mime = 'application/zip';
}
return $mime;
}
- /**
- * Mime type detection. This uses detectMimeType to detect the mime type
- * of the file, but applies additional checks to determine some well known
- * file formats that may be missed or misinterpreter by the default mime
- * detection (namely XML based formats like XHTML or SVG, as well as ZIP
+ /**
+ * Mime type detection. This uses detectMimeType to detect the mime type
+ * of the file, but applies additional checks to determine some well known
+ * file formats that may be missed or misinterpreter by the default mime
+ * detection (namely XML based formats like XHTML or SVG, as well as ZIP
* based formats like OPC/ODF files).
*
* @param $file String: the file to check
* @param $ext Mixed: the file extension, or true (default) to extract it from the filename.
- * Set it to false to ignore the extension. DEPRECATED! Set to false, use
+ * Set it to false to ignore the extension. DEPRECATED! Set to false, use
* improveTypeFromExtension($mime, $ext) later to improve mime type.
*
* @return string the mime type of $file
// @todo FIXME: Shouldn't this be rb?
$f = fopen( $file, 'rt' );
wfRestoreWarnings();
-
+
if( !$f ) {
return 'unknown/unknown';
}
return false;
}
-
+
/**
* Detect application-specific file type of a given ZIP file from its
* header data. Currently works for OpenDocument and OpenXML types...
* @param $header String: some reasonably-sized chunk of file header
* @param $tail String: the tail of the file
* @param $ext Mixed: the file extension, or true to extract it from the filename.
- * Set it to false (default) to ignore the extension. DEPRECATED! Set to false,
+ * Set it to false (default) to ignore the extension. DEPRECATED! Set to false,
* use improveTypeFromExtension($mime, $ext) later to improve mime type.
*
* @return string
wfDebug( __METHOD__.": detected $mime from ZIP archive\n" );
} elseif ( preg_match( $openxmlRegex, substr( $header, 30 ) ) ) {
$mime = "application/x-opc+zip";
- # TODO: remove the block below, as soon as improveTypeFromExtension is used everywhere
- if ( $ext !== true && $ext !== false ) {
+ # TODO: remove the block below, as soon as improveTypeFromExtension is used everywhere
+ if ( $ext !== true && $ext !== false ) {
/** This is the mode used by getPropsFromPath
* These mime's are stored in the database, where we don't really want
* x-opc+zip, because we use it only for internal purposes
}
}
wfDebug( __METHOD__.": detected an Open Packaging Conventions archive: $mime\n" );
- } elseif ( substr( $header, 0, 8 ) == "\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1" &&
+ } elseif ( substr( $header, 0, 8 ) == "\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1" &&
($headerpos = strpos( $tail, "PK\x03\x04" ) ) !== false &&
preg_match( $openxmlRegex, substr( $tail, $headerpos + 30 ) ) ) {
if ( substr( $header, 512, 4) == "\xEC\xA5\xC1\x00" ) {
$mime = "application/msword";
- }
+ }
switch( substr( $header, 512, 6) ) {
case "\xEC\xA5\xC1\x00\x0E\x00":
case "\xEC\xA5\xC1\x00\x1C\x00":
return $mime;
}
- /**
- * Internal mime type detection. Detection is done using an external
- * program, if $wgMimeDetectorCommand is set. Otherwise, the fileinfo
- * extension and mime_content_type are tried (in this order), if they
- * are available. If the dections fails and $ext is not false, the mime
+ /**
+ * Internal mime type detection. Detection is done using an external
+ * program, if $wgMimeDetectorCommand is set. Otherwise, the fileinfo
+ * extension and mime_content_type are tried (in this order), if they
+ * are available. If the dections fails and $ext is not false, the mime
* type is guessed from the file extension, using guessTypesForExtension.
- *
- * If the mime type is still unknown, getimagesize is used to detect the
- * mime type if the file is an image. If no mime type can be determined,
+ *
+ * If the mime type is still unknown, getimagesize is used to detect the
+ * mime type if the file is an image. If no mime type can be determined,
* this function returns 'unknown/unknown'.
*
* @param $file String: the file to check
* @param $ext Mixed: the file extension, or true (default) to extract it from the filename.
- * Set it to false to ignore the extension. DEPRECATED! Set to false, use
+ * Set it to false to ignore the extension. DEPRECATED! Set to false, use
* improveTypeFromExtension($mime, $ext) later to improve mime type.
*
* @return string the mime type of $file
return $type;
}
- /**
+ /**
* Returns a media code matching the given mime type or file extension.
* File extensions are represented by a string starting with a dot (.) to
* distinguish them from mime types.
* @return int|string
*/
function findMediaType( $extMime ) {
- if ( strpos( $extMime, '.' ) === 0 ) {
+ if ( strpos( $extMime, '.' ) === 0 ) {
// If it's an extension, look up the mime types
$m = $this->getTypesForExtension( substr( $extMime, 1 ) );
if ( !$m ) {
}
/**
- * Get the MIME types that various versions of Internet Explorer would
+ * Get the MIME types that various versions of Internet Explorer would
* detect from a chunk of the content.
*
* @param $fileName String: the file name (unused at present)
// this is a fallback SQL file
$testSqlFile = false;
$testImageZip = false;
-
+
// if we find a request parameter containing the test name, set a cookie with the test name
if ( isset( $_GET['setupTestSuite'] ) ) {
$setupTestSuiteName = $_GET['setupTestSuite'];
true
);
}
-
+
$testIncludes = array(); // array containing all the includes needed for this test
$testGlobalConfigs = array(); // an array containg all the global configs needed for this test
$testResourceFiles = array(); // an array containing all the resource files needed for this test
if ( isset( $testResourceFiles['images'] ) ) {
$testImageZip = $testResourceFiles['images'];
}
-
+
if ( isset( $testResourceFiles['db'] ) ) {
$testSqlFile = $testResourceFiles['db'];
$testResourceName = getTestResourceNameFromTestSuiteName( $setupTestSuiteName );
-
+
switchToTestResources( $testResourceName, false ); // false means do not switch database yet
setupTestResources( $testResourceName, $testSqlFile, $testImageZip );
}
if ( isset( $_GET['clearTestSuite'] ) ) {
$testSuiteName = getTestSuiteNameFromCookie( $cookieName );
- $expire = time() - 600;
+ $expire = time() - 600;
setcookie(
$cookieName,
'',
$wgCookieSecure,
true
);
-
+
$testResourceName = getTestResourceNameFromTestSuiteName( $testSuiteName );
teardownTestResources( $testResourceName );
}
// if a cookie is found, run the appropriate callback to get the config params.
-if ( isset( $_COOKIE[$cookieName] ) ) {
+if ( isset( $_COOKIE[$cookieName] ) ) {
$testSuiteName = getTestSuiteNameFromCookie( $cookieName );
if ( !isset( $wgSeleniumTestConfigs[$testSuiteName] ) ) {
return;
}
-
+
$testIncludes = array(); // array containing all the includes needed for this test
$testGlobalConfigs = array(); // an array containg all the global configs needed for this test
$testResourceFiles = array(); // an array containing all the resource files needed for this test
- $callback = $wgSeleniumTestConfigs[$testSuiteName];
+ $callback = $wgSeleniumTestConfigs[$testSuiteName];
call_user_func_array( $callback, array( &$testIncludes, &$testGlobalConfigs, &$testResourceFiles));
if ( isset( $testResourceFiles['db'] ) ) {
require_once( $file );
}
foreach ( $testGlobalConfigs as $key => $value ) {
- if ( is_array( $value ) ) {
+ if ( is_array( $value ) ) {
$GLOBALS[$key] = array_merge( $GLOBALS[$key], $value );
-
} else {
$GLOBALS[$key] = $value;
}
if ( $testResourceName == '' ) {
die( 'Cannot identify a test the resources should be installed for.' );
}
-
+
// create tables
$dbw = wfGetDB( DB_MASTER );
$dbw->query( 'DROP DATABASE IF EXISTS ' . $testResourceName );
foreach ( array( 'id', 'class', 'active', 'tag' ) as $k ) {
unset( $link[$k] );
}
- if ( isset( $item['id'] ) ) {
+ if ( isset( $item['id'] ) && !isset( $item['single-id'] ) ) {
// The id goes on the <li> not on the <a> for single links
// but makeSidebarLink still needs to know what id to use when
// generating tooltips and accesskeys.
}
/**
- * Get the error message as HTML. This is done by parsing the wikitext error
+ * Get the error message as HTML. This is done by parsing the wikitext error
* message.
*/
public function getHTML( $shortContext = false, $longContext = false ) {
*
* @see self::getLocalURL
* @see wfExpandUrl
+ * @param $query
+ * @param $query2 bool
* @param $proto Protocol type to use in URL
* @return String the URL
*/
*
* See getLocalURL for the arguments.
*
+ * @param $query
+ * @param $query2 bool
* @param $proto Protocol to use; setting this will cause a full URL to be used
* @see self::getLocalURL
* @return String the URL
$linkCache = LinkCache::singleton();
$cached = $linkCache->getGoodLinkFieldObj( $this, 'redirect' );
- if ( $cached === null ) {
+ if ( $cached === null ) {
// TODO: check the assumption that the cache actually knows about this title
// and handle this, such as get the title from the database.
// See https://bugzilla.wikimedia.org/show_bug.cgi?id=37209
if( $count === null ) {
// it has not been initialized. do so.
- $dbw = wfGetDB( DB_MASTER );
- $count = $dbr->selectField(
- 'revision', 'count(*)',
- array( 'rev_user' => $this->mId ),
- __METHOD__
- );
- $dbw->update(
- 'user',
- array( 'user_editcount' => $count ),
- array( 'user_id' => $this->mId ),
- __METHOD__
- );
+ $count = $this->initEditCount();
}
wfProfileOut( __METHOD__ );
$this->mEditCount = $count;
}
/**
- * Add this existing user object to the database. If the user already
- * exists, a fatal status object is returned, and the user object is
+ * Add this existing user object to the database. If the user already
+ * exists, a fatal status object is returned, and the user object is
* initialised with the data from the database.
*
* Previously, this function generated a DB error due to a key conflict
* }
* // do something with $user...
*
- * However, this was vulnerable to a race condition (bug 16020). By
+ * However, this was vulnerable to a race condition (bug 16020). By
* initialising the user object if the user exists, we aim to support this
* calling sequence as far as possible.
*
* Note that if the user exists, this function will acquire a write lock,
- * so it is still advisable to make the call conditional on isLoggedIn(),
+ * so it is still advisable to make the call conditional on isLoggedIn(),
* and to commit the transaction after calling.
*
* @return Status
array( 'IGNORE' )
);
if ( !$dbw->affectedRows() ) {
- $this->mId = $dbw->selectField( 'user', 'user_id',
+ $this->mId = $dbw->selectField( 'user', 'user_id',
array( 'user_name' => $this->mName ), __METHOD__ );
$loaded = false;
if ( $this->mId ) {
public function incEditCount() {
if( !$this->isAnon() ) {
$dbw = wfGetDB( DB_MASTER );
- $dbw->update( 'user',
+ $dbw->update(
+ 'user',
array( 'user_editcount=user_editcount+1' ),
array( 'user_id' => $this->getId() ),
- __METHOD__ );
+ __METHOD__
+ );
// Lazy initialization check...
if( $dbw->affectedRows() == 0 ) {
- // Pull from a slave to be less cruel to servers
- // Accuracy isn't the point anyway here
- $dbr = wfGetDB( DB_SLAVE );
- $count = $dbr->selectField( 'revision',
- 'COUNT(rev_user)',
- array( 'rev_user' => $this->getId() ),
- __METHOD__ );
-
// Now here's a goddamn hack...
+ $dbr = wfGetDB( DB_SLAVE );
if( $dbr !== $dbw ) {
// If we actually have a slave server, the count is
// at least one behind because the current transaction
// has not been committed and replicated.
- $count++;
+ $this->initEditCount( 1 );
} else {
// But if DB_SLAVE is selecting the master, then the
// count we just read includes the revision that was
// just added in the working transaction.
+ $this->initEditCount();
}
-
- $dbw->update( 'user',
- array( 'user_editcount' => $count ),
- array( 'user_id' => $this->getId() ),
- __METHOD__ );
}
}
// edit count in user cache too
$this->invalidateCache();
}
+ /**
+ * Initialize user_editcount from data out of the revision table
+ *
+ * @param $add Integer Edits to add to the count from the revision table
+ * @return Integer Number of edits
+ */
+ protected function initEditCount( $add = 0 ) {
+ // Pull from a slave to be less cruel to servers
+ // Accuracy isn't the point anyway here
+ $dbr = wfGetDB( DB_SLAVE );
+ $count = $dbr->selectField(
+ 'revision',
+ 'COUNT(rev_user)',
+ array( 'rev_user' => $this->getId() ),
+ __METHOD__
+ );
+ $count = $count + $add;
+
+ $dbw = wfGetDB( DB_MASTER );
+ $dbw->update(
+ 'user',
+ array( 'user_editcount' => $count ),
+ array( 'user_id' => $this->getId() ),
+ __METHOD__
+ );
+
+ return $count;
+ }
+
/**
* Get the description of a given right
*
* @param $value String: value to give cookie
* @param $expire Int: number of seconds til cookie expires
* @param $prefix String: Prefix to use, if not $wgCookiePrefix (use '' for no prefix)
- * @param @domain String: Cookie domain to use, if not $wgCookieDomain
+ * @param $domain String: Cookie domain to use, if not $wgCookieDomain
* @param $forceSecure Bool:
* true: force the cookie to be set with the secure attribute
* false: force the cookie to be set without the secure attribute
* @param $expire Int: number of seconds til cookie expires (Default: 0)
* @param $prefix TODO DOCUMENT (Default: null)
* @param $domain TODO DOCUMENT (Default: null)
- *
+ * @param $forceSecure TODO DOCUMENT (Default: null)
*/
public function setcookie( $name, $value, $expire = 0, $prefix = null, $domain = null, $forceSecure = null ) {
$this->cookies[$name] = $value;
/**
* @param $section null|bool|int or a section number (0, 1, 2, T1, T2...)
- * @param $content Content: new content of the section
+ * @param $sectionContent Content: new content of the section
* @param $sectionTitle String: new section's subject, only if $section is 'new'
* @param $edittime String: revision timestamp or null to use the current revision
*
* @param $reason string delete reason for deletion log
* @param $suppress boolean suppress all revisions and log the deletion in
* the suppression log instead of the deletion log
+ * @param $id int article ID
* @param $commit boolean defaults to true, triggers transaction end
* @param &$error Array of errors to append to
* @param $user User The deleting user
}
/**
- * Returns the name that goes in the <h1> page title.
+ * Returns the name that goes in the "<h1>" page title.
*
* @return string
*/
}
/**
- * Returns the description that goes below the <h1> tag.
+ * Returns the description that goes below the "<h1>" tag.
*
* @return string
*/
*
* Created on Oct 22, 2006
*
- * Copyright © 2006 Yuri Astrakhan <Firstname><Lastname>@gmail.com
+ * Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com"
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
$oldid = $pageObj->getLatest();
}
-
$popts = $pageObj->makeParserOptions( $this->getContext() );
$popts->enableLimitReport( !$params['disablepp'] );
// Not cached (save or load)
if ( $params['pst'] ) {
- $p_result = $this->pstContent->getParserOutput( $titleObj, $popts );
+ $p_result = $this->pstContent->getParserOutput( $titleObj, null, $popts );
} else {
- $p_result = $this->content->getParserOutput( $titleObj, $popts );
+ $p_result = $this->content->getParserOutput( $titleObj, null, $popts );
}
}
private function getParsedContent( WikiPage $page, $popts, $pageId = null, $getWikitext = false ) {
$this->content = $page->getContent( Revision::RAW ); //XXX: really raw?
- if ( $this->section !== false ) {
+ if ( $this->section !== false && $this->content !== null ) {
$this->content = $this->getSectionContent(
$this->content,
!is_null( $pageId ) ? 'page id ' . $pageId : $page->getTitle()->getText() );
// Not cached (save or load)
- return $this->content->getParserOutput( $page->getTitle(), $popts );
+ return $this->content->getParserOutput( $page->getTitle(), null, $popts );
} else {
// Try the parser cache first
// getParserOutput will save to Parser cache if able
$data = $this->getResultData();
foreach ( $data['query']['pages'] as $pageid => $arr ) {
- if ( !isset( $arr['imagerepository'] ) ) {
+ if ( is_array( $arr ) && !isset( $arr['imagerepository'] ) ) {
$result->addValue(
array( 'query', 'pages', $pageid ),
'imagerepository', ''
* @file
* @ingroup API
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
abstract class ApiQueryORM extends ApiQueryBase {
/**
* Get the user-defined value
- * @return bool|\Mixed
+ * @return bool|Mixed
*/
function getValue() {
return $this->value;
*
* @since 1.21
*
- * @param $page \WikiPage the deleted page
- * @param $parserOutput null|\ParserOutput optional parser output object
+ * @param $page WikiPage the deleted page
+ * @param $parserOutput null|ParserOutput optional parser output object
* for efficient access to meta-information about the content object.
* Provide if you have one handy.
*
* @return string The wikitext to include when another page includes this
* content, or false if the content is not includable in a wikitext page.
*
- * @TODO: allow native handling, bypassing wikitext representation, like
+ * @todo allow native handling, bypassing wikitext representation, like
* for includable special pages.
- * @TODO: allow transclusion into other content models than Wikitext!
- * @TODO: used in WikiPage and MessageCache to get message text. Not so
+ * @todo allow transclusion into other content models than Wikitext!
+ * @todo used in WikiPage and MessageCache to get message text. Not so
* nice. What should we use instead?!
*/
public function getWikitextForTransclusion();
* string, a nested array structure, an object, a binary blob...
* anything, really.
*
- * @NOTE: Caller must be aware of content model!
+ * @note Caller must be aware of content model!
*/
public function getNativeData();
*
* @since 1.21
*
- * @param $page \WikiPage the deleted page
- * @param $parserOutput null|\ParserOutput optional parser output object
+ * @param $page WikiPage the deleted page
+ * @param $parserOutput null|ParserOutput optional parser output object
* for efficient access to meta-information about the content object.
* Provide if you have one handy.
*
*
* @since 1.21
*
- * @static
* @param $content Content|null
* @return null|string the textual form of $content, if available
* @throws MWException if $content is not an instance of TextContent and
*
* @since 1.21
*
- * @static
- *
* @param $text string the textual representation, will be
* unserialized to create the Content object
* @param $title null|Title the title of the page this text belongs to.
*
* @since 1.21
*
- * @static
* @param $title Title
* @return null|string default model name for the page given by $title
*/
*
* @since 1.21
*
- * @static
* @param $title Title
* @return ContentHandler
*/
*
* @since 1.21
*
- * @static
* @param $content Content
* @return ContentHandler
*/
*
* @since 1.21
*
- * @static
* @param $modelId String The ID of the content model for which to get a
* handler. Use CONTENT_MODEL_XXX constants.
* @return ContentHandler The ContentHandler singleton for handling the
* Model names are localized using system messages. Message keys
* have the form content-model-$name, where $name is getContentModelName( $id ).
*
- * @static
* @param $name String The content model ID, as given by a CONTENT_MODEL_XXX
* constant or returned by Revision::getContentModel().
*
*
* @since 1.21
*
- * @abstract
* @param $content Content The Content object to serialize
* @param $format null|String The desired serialization format
* @return string Serialized form of the content
*
* @since 1.21
*
- * @abstract
* @param $blob string serialized form of the content
* @param $format null|String the format used for serialization
* @return Content the Content object created by deserializing $blob
/**
* Returns the text represented by this Content object, as a string.
*
- * @param the raw text
+ * @return string: the raw text
*/
public function getNativeData( ) {
$text = $this->mText;
/**
* Returns the text represented by this Content object, as a string.
*
- * @param the raw text
+ * @return string: the raw text
*/
public function getTextForSearchIndex( ) {
return $this->getNativeData();
/**
* Returns the text represented by this Content object, as a string.
*
- * @param the raw text
+ * @return string: the raw text
*/
public function getWikitextForTransclusion( ) {
return $this->getNativeData();
}
/**
- * Diff this content object with another content object..
+ * Diff this content object with another content object.
*
* @since 1.21diff
*
- * @param $that Content the other content object to compare this content object to
- * @param $lang Language the language object to use for text segmentation.
+ * @param $that Content: The other content object to compare this content
+ * object to.
+ * @param $lang Language: The language object to use for text segmentation.
* If not given, $wgContentLang is used.
*
- * @return DiffResult a diff representing the changes that would have to be
+ * @return DiffResult: A diff representing the changes that would have to be
* made to this content object to make it equal to $that.
*/
public function diff( Content $that, Language $lang = null ) {
*
* This text-based implementation uses wfMerge().
*
- * @param $oldContent \Content|string String
- * @param $myContent \Content|string String
- * @param $yourContent \Content|string String
+ * @param $oldContent Content|string String
+ * @param $myContent Content|string String
+ * @param $yourContent Content|string String
*
* @return Content|Bool
*/
public function makeEmptyContent() {
return new TextContent( '' );
}
-}
\ No newline at end of file
+}
*
* @param $hasLinks Bool if it is known whether this content contains
* links, provide this information here, to avoid redundant parsing to
- * find out.
- * @param $title null|\Title
+ * find out (default: null).
+ * @param $title Title: (default: null)
*
* @internal param \IContextSource $context context for parsing if necessary
*
*
* @since 1.21
*
- * @param $content Content the content to render
- * @param $title \Title
- * @param $revId null
- * @param $options null|ParserOptions
- * @param $generateHtml bool
+ * @param $title Title
+ * @param $revId int Revision to pass to the parser (default: null)
+ * @param $options ParserOptions (default: null)
+ * @param $generateHtml bool (default: false)
*
* @internal param \IContextSource|null $context
* @return ParserOutput representing the HTML form of the text
* @param array|string $conds
* @param string $fname
* @throws DBUnexpectedError
- * @return bool|\ResultWrapper
+ * @return bool|ResultWrapper
*/
public function delete( $table, $conds, $fname = 'DatabaseIbm_db2::delete' ) {
if ( !$conds ) {
* @param array $insertOptions
* @param array $selectOptions
* @throws DBQueryError
- * @return null|\ResultWrapper
+ * @return null|ResultWrapper
*/
function insertSelect( $destTable, $srcTable, $varMap, $conds, $fname = 'DatabaseMssql::insertSelect',
$insertOptions = array(), $selectOptions = array() ) {
* @file
* @ingroup ORM
*
- * @licence GNU GPL v2 or later
+ * @license GNU GPL v2 or later
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
* @file
* @ingroup ORM
*
- * @licence GNU GPL v2 or later
+ * @license GNU GPL v2 or later
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
* @file
* @ingroup ORM
*
- * @licence GNU GPL v2 or later
+ * @license GNU GPL v2 or later
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
interface ORMIterator extends Iterator {
* @file ORMResult.php
* @ingroup ORM
*
- * @licence GNU GPL v2 or later
+ * @license GNU GPL v2 or later
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
* @file ORMRow.php
* @ingroup ORM
*
- * @licence GNU GPL v2 or later
+ * @license GNU GPL v2 or later
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
*
* @since 1.20
*
- * @param string $name
- * @param mixed $default
+ * @param $name string: Field name
+ * @param $default mixed: Default value to return when none is found
+ * (default: null)
*
* @throws MWException
* @return mixed
*
* @since 1.20
*
- * @param string$name
+ * @param $name string
*
* @return mixed
*/
* @file ORMTable.php
* @ingroup ORM
*
- * @licence GNU GPL v2 or later
+ * @license GNU GPL v2 or later
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
* @since 1.19
* @param $msg string
* @param $callerOffset int
+ * @param $level int A PHP error level. See sendWarning()
* @return mixed
*/
public static function warning( $msg, $callerOffset = 1, $level = E_USER_NOTICE ) {
* 'DBprefix' => '',
* );
*
- * All fields must be present. These mean the same things as $wgDBtype,
- * $wgDBserver, etc. This implementation is quite crude; it could easily
- * support multiple database servers, for instance, and memcached, and it
- * probably has bugs. Kind of hard to reuse code when things might rely on who
+ * All fields must be present. These mean the same things as $wgDBtype,
+ * $wgDBserver, etc. This implementation is quite crude; it could easily
+ * support multiple database servers, for instance, and memcached, and it
+ * probably has bugs. Kind of hard to reuse code when things might rely on who
* knows what configuration globals.
*
- * If either wiki uses the UserComparePasswords hook, password authentication
- * might fail unexpectedly unless they both do the exact same validation.
- * There may be other corner cases like this where this will fail, but it
+ * If either wiki uses the UserComparePasswords hook, password authentication
+ * might fail unexpectedly unless they both do the exact same validation.
+ * There may be other corner cases like this where this will fail, but it
* should be unlikely.
*
* @ingroup ExternalUser
* @return bool
*/
protected function initFromName( $name ) {
- # We might not need the 'usable' bit, but let's be safe. Theoretically
- # this might return wrong results for old versions, but it's probably
+ # We might not need the 'usable' bit, but let's be safe. Theoretically
+ # this might return wrong results for old versions, but it's probably
# good enough.
$name = User::getCanonicalName( $name, 'usable' );
}
public function authenticate( $password ) {
- # This might be wrong if anyone actually uses the UserComparePasswords hook
+ # This might be wrong if anyone actually uses the UserComparePasswords hook
# (on either end), so don't use this if you those are incompatible.
return User::comparePasswords( $this->mRow->user_password, $password,
- $this->mRow->user_id );
+ $this->mRow->user_id );
}
public function getPref( $pref ) {
- # @todo FIXME: Return other prefs too. Lots of global-riddled code that does
+ # @todo FIXME: Return other prefs too. Lots of global-riddled code that does
# this normally.
if ( $pref === 'emailaddress'
&& $this->row->user_email_authenticated !== null ) {
/**
* Guess the MIME type from the file contents alone
- *
- * @return string
+ *
+ * @return string
*/
public function getMimeType() {
return MimeMagic::singleton()->guessMimeType( $this->path, false );
/**
* Get the final file extension from a file system path
- *
+ *
* @param $path string
* @return string
*/
return true; // nothing to do
}
wfProfileIn( __METHOD__ );
+ trigger_error( "$path was not stored with SHA-1 metadata.", E_USER_WARNING );
$status = Status::newGood();
$scopeLockS = $this->getScopedFileLocks( array( $path ), LockManager::LOCK_UW, $status );
if ( $status->isOK() ) {
* $readGrps is a list of the possible criteria for a request to have
* access to read a container. Each item is one of the following formats:
* - account:user : Grants access if the request is by the given user
- * - .r:<regex> : Grants access if the request is from a referrer host that
+ * - ".r:<regex>" : Grants access if the request is from a referrer host that
* matches the expression and the request is not for a listing.
* Setting this to '*' effectively makes a container public.
- * - .rlistings:<regex> : Grants access if the request is from a referrer host that
+ * -".rlistings:<regex>": Grants access if the request is from a referrer host that
* matches the expression and the request for a listing.
*
* $writeGrps is a list of the possible criteria for a request to have
/**
* A repository for files accessible via the local filesystem.
* Does not support database access or registration.
- *
+ *
* This is a mostly a legacy class. New uses should not be added.
- *
+ *
* @ingroup FileRepo
* @deprecated since 1.19
*/
/**
* Get a key on the primary cache for this repository.
- * Returns false if the repository's cache is not accessible at this site.
+ * Returns false if the repository's cache is not accessible at this site.
* The parameters are the parts of the key, as for wfMemcKey().
* @return bool|mixed
*/
/**
* Get a key on the primary cache for this repository.
- * Returns false if the repository's cache is not accessible at this site.
+ * Returns false if the repository's cache is not accessible at this site.
* The parameters are the parts of the key, as for wfMemcKey().
* @return bool|string
*/
__METHOD__,
array( 'ORDER BY' => 'img_name' )
);
-
+
$result = array();
foreach ( $res as $row ) {
$result[] = $this->newFileFromRow( $row );
/**
* Get a key on the primary cache for this repository.
- * Returns false if the repository's cache is not accessible at this site.
+ * Returns false if the repository's cache is not accessible at this site.
* The parameters are the parts of the key, as for wfMemcKey().
*
* @return string
* @author Kghbln
* @author McDutchie
* @author Mormegil
+ * @author Nemo bis
* @author Nike
* @author Platonides
* @author Purodha
* @author Raymond
* @author SPQRobin
+ * @author Shirayuki
* @author Siebrand
* @author Umherirrender
*/
'config-sidebar' => 'Maximum width for words is 24 characters. Only visible part of the translation counts to this limit.',
'config-env-php' => 'Parameters:
* $1 is the version of PHP that has been installed.',
+ 'config-unicode-pure-php-warning' => 'PECL is the name of a group producing standard pieces of software for PHP, and intl is the name of their library handling some aspects of internationalization.',
+ 'config-unicode-update-warning' => "ICU is a body producing standard software tools for support of Unicode and other internationalization aspects. This message warns the system administrator installing MediaWiki that the server's software is not up-to-date and MediaWiki will have problems handling some characters.",
'config-no-db' => 'Do not translate: <code>./configure --with-mysql</code>.
<br />
Do not translate: <code>php5-mysql</code>.
Parameters:
* $1 is comma separated list of database types supported by MediaWiki.',
'config-no-fts3' => 'A "[[:wikipedia:Front and back ends|backend]]" is a system or component that ordinary users don\'t interact with directly and don\'t need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are "system" or "service", or (depending on context and language) even leave it untranslated.',
+ 'config-pcre' => 'PCRE is an initialism for "Perl-compatible regular expression". Perl is programming language whose [[:w:regular expression|regular expression]] syntax is popular and used in other languages using a library called PCRE.',
+ 'config-pcre-no-utf8' => "PCRE is a name of a programmers' library for supporting regular expressions. It can probably be translated without change.",
'config-memory-raised' => 'Parameters:
* $1 is the configured <code>memory_limit</code>.
* $2 is the value to which <code>memory_limit</code> was raised.',
'config-connection-error' => '$1 is the external error from the database, such as "DB connection error: Access denied for user \'dba\'@\'localhost\' (using password: YES) (localhost)."
If you\'re translating this message to a right-to-left language, consider writing <nowiki><div dir="ltr">$1.</div></nowiki>. (When the bidi features for HTML5 will be implemented in the browsers, it will probably be a good idea to write it as <nowiki><div dir="auto">$1.</div></nowiki>.)',
+ 'config-invalid-schema' => '*$1 - schema name',
'config-sqlite-dir-unwritable' => 'webserver refers to a software like Apache or Lighttpd.',
'config-can-upgrade' => 'Parameters:
* $1 - Version or Revision indicator.',
'config-show-table-status' => '{{doc-important|"SHOW TABLE STATUS" is a MySQL command. Do not translate this.}}',
+ 'config-db-web-account-same' => 'checkbox label',
+ 'config-db-web-create' => 'checkbox label',
'config-ns-generic' => '{{Identical|Project}}',
'config-admin-name' => '{{Identical|Your name}}',
'config-admin-password' => '{{Identical|Password}}',
This message refers to a block of HTML being embedded into the installer page. It comes from the Creative Commons Web site. The block is in the English language. It is a scripted license chooser. When an individual license has been selected, it asks you to klick "proceed" so as to return to the MediaWiki installer page.',
'config-extensions' => '{{Identical|Extension}}',
'config-install-step-done' => '{{Identical|Done}}',
+ 'config-install-database' => '*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
+ 'config-install-schema' => '*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
'config-install-pg-schema-failed' => 'Parameters:
* $1 = database user name (usernames in the database are unrelated to wiki user names)
* $2 =',
- 'config-install-user' => 'Message indicates that the user is being created',
+ 'config-install-user' => 'Message indicates that the user is being created
+
+See also:
+*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
'config-install-user-grant-failed' => 'Parameters:
* $1 is the database username for which granting rights failed
* $2 is the error message',
- 'config-install-tables' => 'Message indicates that the tables are being created',
- 'config-install-interwiki' => 'Message indicates that the interwikitables are being populated',
+ 'config-install-tables' => 'Message indicates that the tables are being created
+
+See also:
+*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
+ 'config-install-interwiki' => 'Message indicates that the interwikitables are being populated
+
+See also:
+*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
+ 'config-install-stats' => '*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
+ 'config-install-keys' => '*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
'config-insecure-keys' => 'Parameters:
* $1 - A list of names of the secret keys that were generated.
* $2 - the number of items in the list $1, to be used with PLURAL.',
- 'config-install-sysop' => 'Message indicates that the administrator user account is being created',
+ 'config-install-sysop' => 'Message indicates that the administrator user account is being created
+
+See also:
+*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
'config-install-subscribe-fail' => '{{doc-important|"mediawiki-announce" is the name of a mailing list and should not be translated.}}',
+ 'config-install-mainpage' => '*{{msg-mw|Config-install-database}}
+*{{msg-mw|Config-install-tables}}
+*{{msg-mw|Config-install-schema}}
+*{{msg-mw|Config-install-user}}
+*{{msg-mw|Config-install-interwiki}}
+*{{msg-mw|Config-install-stats}}
+*{{msg-mw|Config-install-keys}}
+*{{msg-mw|Config-install-sysop}}
+*{{msg-mw|Config-install-mainpage}}',
'config-install-done' => 'Parameters:
* $1 is the URL to LocalSettings download
* $2 is a link to the wiki.
* @author 青子守歌
*/
$messages['ja'] = array(
- 'config-desc' => 'MediaWikiのインストーラー',
- 'config-title' => 'MediaWiki $1のインストール',
+ 'config-desc' => 'MediaWiki のインストーラー',
+ 'config-title' => 'MediaWiki $1 のインストール',
'config-information' => '情報',
- 'config-localsettings-upgrade' => '<code>LocalSettings.php</code>ファイルが検出されました。
-アップグレードするため、ボックス中の<code>$wgUpgradeKey</code>の値を入力してください。
-LocalSettings.phpの中にそれはあるでしょう。',
- 'config-localsettings-key' => 'アップグレードキー:',
+ 'config-localsettings-upgrade' => 'ファイル <code>LocalSettings.php</code> を検出しました。
+インストールされているものをアップグレードするには、<code>$wgUpgradeKey</code> の値を以下の欄に入力してください。
+この値は LocalSettings.php 内にあります。',
+ 'config-localsettings-cli-upgrade' => 'ファイル LocalSettings.php を検出しました。
+インストールされているものをアップグレードするには、update.php を実行してください',
+ 'config-localsettings-key' => 'アップグレード キー:',
'config-localsettings-badkey' => '与えられたキーが間違っています',
'config-upgrade-key-missing' => 'MediaWikiの既存インストールを検出しました。
インストールをアップグレードするために、次の行をLocalSettings.phpの末尾に挿入してください:
$1',
- 'config-localsettings-incomplete' => '現在のLocalSettings.phpは不完全であるようです。
-変数$1が設定されていません。
-LocalSettings.phpを変更してこの変数を設定して、『{{int:Config-continue}}』を押してください。',
- 'config-session-error' => 'セッションの開始エラー:$1',
+ 'config-localsettings-incomplete' => '既存の LocalSettings.php の内容は不完全のようです。
+変数 $1 が設定されていません。
+LocalSettings.php 内でこの変数を設定して、「{{int:Config-continue}}」をクリックしてください。',
+ 'config-session-error' => 'セッションの開始エラー: $1',
'config-session-expired' => 'セッションの有効期限が切れたようです。
セッションの有効期間は$1に設定されています。
php.iniの<code>session.gc_maxlifetime</code>を設定することで、この問題を改善できます。
インストール作業を再起動させてください。',
'config-no-session' => 'セッションのデータが消失しました!
php.iniを確認し、<code>session.save_path</code>が適切なディレクトリに設定されていることを確認してください。',
- 'config-your-language' => 'あなたの言語:',
+ 'config-your-language' => 'あなたの言語:',
'config-your-language-help' => 'インストール作業に使用する言語を選択してください。',
- 'config-wiki-language' => 'ウィキの言語:',
+ 'config-wiki-language' => 'ウィキの言語:',
'config-wiki-language-help' => 'ウィキで主に書き込まれる言語を選択してください。',
- 'config-back' => '←戻る',
+ 'config-back' => '← 戻る',
'config-continue' => '続行 →',
'config-page-language' => '言語',
- 'config-page-welcome' => 'MediaWikiへようこそ!',
+ 'config-page-welcome' => 'MediaWiki へようこそ!',
'config-page-dbconnect' => 'データベースに接続',
'config-page-upgrade' => '既存のインストールを更新',
'config-page-dbsettings' => 'データベースの設定',
'config-page-name' => '名前',
'config-page-options' => 'オプション',
'config-page-install' => 'インストール',
- 'config-page-complete' => '完了!',
+ 'config-page-complete' => '完了!',
'config-page-restart' => 'インストールを再起動',
'config-page-readme' => 'お読みください',
'config-page-releasenotes' => 'リリースノート',
高トラフィックのサイトを運営する場合は、[//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode正規化に関するページ]をお読みください。",
'config-unicode-update-warning' => "'''警告''':インストールされているバージョンのUnicode正規化ラッパーは、[http://site.icu-project.org/ ICUプロジェクト]のライブラリの古いバージョンを使用しています。
Unicodeを少しでも利用する可能性があるなら、[//www.mediawiki.org/wiki/Unicode_normalization_considerations アップグレード]する必要があります。",
- 'config-no-db' => '適切なデータベースドライバが見つかりませんでした!PHPにデータベースドライバをインストールする必要があります。
-次の種類のデータベースが使用できます: $1
+ 'config-no-db' => '適切なデータベース ドライバーが見つかりませんでした! PHP にデータベース ドライバーをインストールする必要があります。
+以下の種類のデータベースに対応しています: $1
-å\85±æ\9c\89ã\82µã\83¼ã\83\90ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81ã\82µã\83¼ã\83\90ã\81®ç®¡ç\90\86è\80\85ã\81«é\81©å\88\87ã\81ªã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\83\89ã\83©ã\82¤ã\83\90ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\82\92依頼してください。
-PHPを自分でコンパイルした場合は、たとえば<code>./configure --with-mysql</code>を実行して、データベースクライアントを使用可能に再設定してください。
-DebianまたはUbuntuのパッケージからPHPをインストールした場合は、php5-mysqlモジュールもインストールする必要があります。',
+å\85±æ\9c\89ã\82µã\83¼ã\83\90ã\83¼ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81é\81©å\88\87ã\81ªã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ ã\83\89ã\83©ã\82¤ã\83\90ã\83¼ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\82\92ã\80\81ã\82µã\83¼ã\83\90ã\83¼ã\81®ç®¡ç\90\86è\80\85ã\81«依頼してください。
+PHP を自分でコンパイルした場合は、例えば <code>./configure --with-mysql</code> を実行して、データベース クライアントを使用できるように再設定してください。
+Debian または Ubuntu のパッケージから PHP をインストールした場合は、php5-mysql モジュールもインストールする必要があります。',
'config-no-fts3' => "'''警告''':SQLiteは[//sqlite.org/fts3.html FTS3]モジュールなしでコンパイルされており、検索機能はこのバックエンドで利用不可能になります。",
'config-register-globals' => "'''警告:PHPの<code>[http://php.net/register_globals register_globals]</code>オプションが有効になっています。'''
'''可能なら無効化してください。'''
Mandrakeを実行している場合、php-xmlパッケージをインストールしてください。',
'config-pcre' => 'PCREをサポートしているモジュールが不足しているようです。
MediaWikiは、Perl互換の正規表現関数の動作が必要です。',
- 'config-pcre-no-utf8' => "'''致命的エラー''': PHPのPCREがPCRE_UTF8サポート無しでコンパイルされています。
-MediaWikiにはUTF-8サポートの関数が必要です。",
+ 'config-pcre-no-utf8' => "'''致命的エラー''': PHP の PCRE が PCRE_UTF8 対応なしでコンパイルされているようです。
+MediaWiki を正しく動作させるには、UTF-8 対応が必要です。",
'config-memory-raised' => 'PHPの<code>memory_limit</code>は$1で、$2に引き上げられました。',
'config-memory-bad' => "'''警告:'''PHPの<code>memory_limit</code>は$1です。
これは、非常に遅い可能性があります。
インストールが失敗するかもしれません!",
- 'config-xcache' => '[http://xcache.lighttpd.net/ XCache]がインストール済み',
- 'config-apc' => '[http://www.php.net/apc APC]がインストール済み',
- 'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache]がインストール済み',
- 'config-no-cache' => "'''è¦å\91\8aï¼\9a'''[http://www.php.net/apc APC]ã\80\81[http://xcache.lighttpd.net/ XCache]ã\81\82ã\82\8bã\81\84ã\81¯[http://www.iis.net/download/WinCacheForPhp WinCache]のいずれも見つかりませんでした。
+ 'config-xcache' => '[http://xcache.lighttpd.net/ XCache] がインストール済み',
+ 'config-apc' => '[http://www.php.net/apc APC] がインストール済み',
+ 'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] がインストール済み',
+ 'config-no-cache' => "'''è¦å\91\8aï¼\9a'''[http://www.php.net/apc APC]ã\80\81[http://xcache.lighttpd.net/ XCache]ã\80\81[http://www.iis.net/download/WinCacheForPhp WinCache] のいずれも見つかりませんでした。
オブジェクトのキャッシュは有効化されません。",
- 'config-diff3-bad' => 'GNU diff3が見つかりません。',
+ 'config-diff3-bad' => 'GNU diff3 が見つかりません。',
'config-imagemagick' => 'ImageMagickが見つかりました:<code>$1</code>。
アップロードが有効なら、画像のサムネイルが利用できます。',
'config-gd' => 'GD画像ライブラリが内蔵されていることが確認されました。
'config-no-uri' => "'''エラー:'''現在のURIを決定できませんでした。
インストールは中止されました。",
'config-using-server' => 'サーバー名「<nowiki>$1</nowiki>」を使用しています。',
- 'config-using-uri' => 'サーバーURL「<nowiki>$1$2</nowiki>」を使用しています。',
- 'config-uploads-not-safe' => "'''警告:'''アップロードの既定ディレクトリ<code>$1</code>が、任意のスクリプト実行に関して脆弱性があります。
-MediaWikiはアップロードされたファイルのセキュリティ上の脅威を確認しますが、アップロードを有効化するまえに、[//www.mediawiki.org/wiki/Manual:Security#Upload_security このセキュリティ上の脆弱性を閉じる]ことが強く推奨されます。",
+ 'config-using-uri' => 'サーバー URL「<nowiki>$1$2</nowiki>」を使用しています。',
+ 'config-uploads-not-safe' => "'''警告:'''アップロードの既定ディレクトリ <code>$1</code> に、任意のスクリプト実行に関する脆弱性があります。
+MediaWiki はアップロードされたファイルのセキュリティ上の脅威を確認しますが、アップロードを有効化する前に、[//www.mediawiki.org/wiki/Manual:Security#Upload_security このセキュリティ上の脆弱性を解決する]ことを強く推奨します。",
'config-brokenlibxml' => 'このシステムで使われているPHPとlibxml2のバージョンのこの組み合わせにはバグがあります。具体的には、MediaWikiやその他のウェブアプリケーションでhiddenデータが破損する可能性があります。
PHPを5.2.9かそれ以降のバージョンに、libxml2を2.7.3かそれ以降のバージョンにアップグレードしてください([//bugs.php.net/bug.php?id=45996 PHPでのバグ情報])。
インストールを終了します。',
PHP5.3.2以降に更新するか、この([//bugs.php.net/bug.php?id=50394 PHPに提出されたバグ])を修正するためにPHP5.3.0へ戻してください。
インストールは中止されました。',
'config-suhosin-max-value-length' => 'Suhosin がインストールされており、GETパラメータの長さを $1 バイトに制限しています。MediaWiki の ResourceLoader コンポーネントはこの制限を回避しますが、パフォーマンスは低下します。可能な限り、php.ini で suhosin.get.max_value_length を 1024 以上に設定し、同じ値を LocalSettings.php 中で $wgResourceLoaderMaxQueryLength に設定してください。',
- 'config-db-type' => 'データベースの種類:',
- 'config-db-host' => 'データベースのホスト:',
+ 'config-db-type' => 'データベースの種類:',
+ 'config-db-host' => 'データベースのホスト:',
'config-db-host-help' => '異なるサーバー上にデータベースサーバーがある場合、ホスト名またはIPアドレスをここに入力してください。
もし、共有されたウェブホスティングを使用している場合、ホスティングプロバイダーは正確なホスト名を解説しているはずです。
WindowsでMySQLを使用している場合に、「localhost」は、サーバー名としてはうまく働かないでしょう。もしそのような場合は、ローカルIPアドレスとして「127.0.0.1」を試してみてください。
PostgreSQLを使用している場合、UNIXソケットで接続するにはこの欄を空欄のままにしてください。',
- 'config-db-host-oracle' => 'データベースTNS:',
+ 'config-db-host-oracle' => 'データベース TNS:',
'config-db-host-oracle-help' => '有効な[http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm ローカル接続名]を入力してください。tnsnames.oraファイルは、このインストールに対して表示されてなければなりません、<br />もしクライアントライブラリ10gもしくはそれ以上を使用している場合、メソッドの名前を[http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 簡易接続]で利用できます。',
- 'config-db-wiki-settings' => 'ã\81\93ã\81®ã\82¦ã\82£ã\82ã\82\92è\98å\88¥',
- 'config-db-name' => 'データベース名:',
+ 'config-db-wiki-settings' => 'ã\81\93ã\81®ã\82¦ã\82£ã\82ã\81®è\98å\88¥æ\83\85å ±',
+ 'config-db-name' => 'データベース名:',
'config-db-name-help' => 'このウィキを識別する名前を入力してください。
空白を含めることはできません。
共有ウェブホストを利用している場合、ホスティングプロバイダーが特定の使用可能なデータベース名を提供するか、あるいは管理パネルからデータベースを作成できるようにしているでしょう。',
- 'config-db-name-oracle' => 'データベースのスキーマ:',
- 'config-db-install-account' => 'ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81®ã\81\9fã\82\81ã\81®利用者アカウント',
- 'config-db-username' => 'データベースの利用者名:',
- 'config-db-password' => 'データベースのパスワード:',
+ 'config-db-name-oracle' => 'データベースのスキーマ:',
+ 'config-db-install-account' => 'ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81§ä½¿ç\94¨ã\81\99ã\82\8b利用者アカウント',
+ 'config-db-username' => 'データベースのユーザー名:',
+ 'config-db-password' => 'データベースのパスワード:',
'config-db-password-empty' => '新しいデータベースの利用者名 $1 のパスワードを入力してください。
パスワードを設定しないでユーザを作ることもできるかもしれませんが、安全ではありません。',
'config-db-install-username' => 'インストール中にデータベースに接続するために使うユーザ名を入力してください。これは MediaWiki アカウントのユーザ名 (利用者名) のことではありません。あなたのデータベースでのユーザ名です。',
'config-db-wiki-account' => 'インストール作業終了後の利用者アカウント',
'config-db-wiki-help' => '通常のウィキ操作中にデータベースへの接続する時に利用する利用者名とパスワードを入力してください。
アカウントが存在せず、インストールのアカウントに十分な権限がある場合は、この利用者アカウントは、ウィキを操作する上で最小限の権限を持った状態で作成されます。',
- 'config-db-prefix' => 'データベーステーブルの接頭辞:',
+ 'config-db-prefix' => 'データベース テーブルの接頭辞:',
'config-db-prefix-help' => 'データベースを複数のウィキ間、あるいはMediaWikiと他のウェブアプリケーションで共有する必要がある場合、衝突を避けるために、すべてのテーブル名に接頭辞を付ける必要があります。
空白は使用できません。
このフィールドは、通常は空のままです。',
'config-db-charset' => 'データベースの文字セット',
- 'config-charset-mysql5-binary' => 'MySQL 4.1/5.0バイナリ',
+ 'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 バイナリ',
'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
- 'config-charset-mysql4' => 'MySQL 4.0 下位互換UTF-8',
- 'config-charset-help' => "'''警告:'''MySQL 4.1+で'''下位互換UTF-8'''を使用し、その後<code>mysqldump</code>でデータベースをバックアップすると、すべての非ASCII文字が破壊され、不可逆的にバップアップが壊れるかもしれません。
-
-'''バイナリー形式'''では、MediaWikiは、UTF-8テキストを、データベースのバイナリーフィールドに格納します。
-これは、MySQLのUTF-8形式より効率的で、Unicode文字の全範囲を利用できるようになります。
-'''UTF-8形式'''では、MySQLは、データ内でどの文字集合を使用しているかを知っていて、それに対して適切な提示と変換をするでしょうが、
-[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できるようにはなりません。",
- 'config-mysql-old' => 'MySQLの$1以降が要求されています。あなたの所有のものは$2です。',
- 'config-db-port' => 'データベースポート:',
- 'config-db-schema' => 'メディアウィキの図式',
- 'config-db-schema-help' => '上の図式は常に正確です。
-必要である場合のみ、変更してください。',
- 'config-sqlite-dir' => 'SQLiteのデータディレクトリ:',
- 'config-sqlite-dir-help' => "SQLiteは単一のファイル内にすべてのデータを保持しています。
-
-指定したディレクトリは、インストール時にウェブサーバーが書き込める必要があります。
-
-このディレクトリはウェブからアクセス'''不可能'''である必要があります。これがPHPファイルがある場所に配置できない理由です。
-
-インストーラーは同時に<code>.htaccess</code>ファイルに書き込みます。しかし、これが失敗しても誰かがあなたの生のデータベースにアクセスすることが可能となるでしょう。データベースは生のデータ(メールアドレス、パスワードのハッシュ値)の他、削除された版、その他、ウィキ上の制限されているデータを含んでいます。
-
-例えば<code>/var/lib/mediawiki/yourwiki</code>のように、別の場所にデータベースを配置することを検討してください。",
- 'config-oracle-def-ts' => '既定のテーブル領域:',
- 'config-oracle-temp-ts' => '一時的なテーブル領域:',
+ 'config-charset-mysql4' => 'MySQL 4.0 後方互換 UTF-8',
+ 'config-charset-help' => "'''警告:''' MySQL 4.1+ で'''後方互換 UTF-8''' を使用している状態で、<code>mysqldump</code> でデータベースをバックアップすると、すべての非 ASCII 文字が破壊されてしまい、バックアップが不可逆的に破損してしまいます!
+
+'''バイナリ モード'''では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。
+これは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。
+'''UTF-8 モード'''では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、
+[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
+ 'config-mysql-old' => 'MySQL $1 以降が必要です。ご使用中の MySQL は $2 です。',
+ 'config-db-port' => 'データベースのポート:',
+ 'config-db-schema' => 'MediaWiki のスキーマ:',
+ 'config-db-schema-help' => '通常はこのスキーマで問題ありません。
+必要な場合のみ変更してください。',
+ 'config-sqlite-dir' => 'SQLite データ ディレクトリ:',
+ 'config-sqlite-dir-help' => "SQLite は単一のファイル内にすべてのデータを格納しています。
+
+指定したディレクトリは、インストール時にウェブ サーバーが書き込めるようにしておく必要があります。
+
+このディレクトリはウェブからアクセス'''不可能'''である必要があります。PHP ファイルがある場所には配置できないのはこのためです。
+
+インストーラーは <code>.htaccess</code> ファイルにも書き込みます。しかし、これが失敗した場合は、誰かが生のデータベースにアクセスできてしまいます。
+データベースは、生のデータ (メールアドレス、パスワードのハッシュ値) の他、削除された版、その他ウィキ上の制限されているデータを含んでいます。
+
+例えば <code>/var/lib/mediawiki/yourwiki</code> のように、別の場所にデータベースを配置することを検討してください。",
+ 'config-oracle-def-ts' => '既定のテーブル領域:',
+ 'config-oracle-temp-ts' => '一時的なテーブル領域:',
'config-type-mysql' => 'MySQL',
'config-type-postgres' => 'PostgreSQL',
'config-type-sqlite' => 'SQLite',
'config-type-oracle' => 'Oracle',
'config-type-ibm_db2' => 'IBM DB2',
- 'config-support-info' => 'メディアウィキは次のようなデータベースシステムをサポートする:
+ 'config-support-info' => 'MediaWiki は以下のデータベース システムに対応しています:
$1
-もし、データベースシステムが不可視であるならば、以下のようにリスト化されたものを使用してみてください。可能なサポートの指示に従ってください。',
+使用しようとしているデータベース システムが下記の一覧にない場合は、上記リンク先の手順に従ってインストールしてください。',
'config-support-mysql' => '* $1はMediaWikiの主要な対象で、もっともサポートされています([http://www.php.net/manual/en/mysql.installation.php MySQLのサポート下でPHPをコンパイルする方法])',
'config-support-postgres' => '* $1は、MySQLの代替として、人気のあるオープンソースデータベースシステムです([http://www.php.net/manual/en/pgsql.installation.php PostgreSQLのサポート下でPHPをコンパイルする方法])',
'config-support-sqlite' => '* $1は、良くサポートされている、軽量データベースシステムです。([http://www.php.net/manual/en/pdo.installation.php SQLiteのサポート下でPHPをコンパイルする方法]、PDOを使用)',
'config-support-oracle' => '* $1は商業企業のデータベースです。([http://www.php.net/manual/en/oci8.installation.php OCI8サポートなPHPをコンパイルする方法])',
'config-support-ibm_db2' => '* $1 は商業企業のデータベースです。',
- 'config-header-mysql' => 'MySQLの設定',
- 'config-header-postgres' => 'PostgreSQLの設定',
- 'config-header-sqlite' => 'SQLiteの設定',
- 'config-header-oracle' => 'Oracleの設定',
- 'config-header-ibm_db2' => 'IBM DB2の設定',
+ 'config-header-mysql' => 'MySQL の設定',
+ 'config-header-postgres' => 'PostgreSQL の設定',
+ 'config-header-sqlite' => 'SQLite の設定',
+ 'config-header-oracle' => 'Oracle の設定',
+ 'config-header-ibm_db2' => 'IBM DB2 の設定',
'config-invalid-db-type' => '無効なデータベースの種類',
- 'config-missing-db-name' => 'ã\80\8cã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹å\90\8dã\80\8dã\82\92å\85¥å\8a\9bã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99',
- 'config-missing-db-host' => 'ã\80\8cã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83\9bã\82¹ã\83\88ã\80\8dã\82\92å\85¥å\8a\9bã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99',
- 'config-missing-db-server-oracle' => '「データベースTNS」に値を入力する必要があります',
+ 'config-missing-db-name' => 'ã\80\8cã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹å\90\8dã\80\8dã\82\92å\85¥å\8a\9bã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84',
+ 'config-missing-db-host' => 'ã\80\8cã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83\9bã\82¹ã\83\88ã\80\8dã\82\92å\85¥å\8a\9bã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84',
+ 'config-missing-db-server-oracle' => '「データベース TNS」の値を入力してください',
'config-invalid-db-server-oracle' => '「$1」は無効なデータベース TNS です。
アスキー英字(a-z、A-Z)、数字(0-9)、アンダーバー(_)、ドット(.)のみを使用してください。',
'config-invalid-db-name' => '「$1」は無効なデータベース名です。
'config-connection-error' => '$1。
以下のホスト名、ユーザ名、パスワードをチェックして、再度試してみてください。',
- 'config-invalid-schema' => 'ã\83¡ã\83\87ã\82£ã\82¢ã\82¦ã\82£ã\82ã\80\8c$1ã\80\8dã\81«ã\81\8aã\81\91ã\82\8bç\84¡å\8a¹ã\81ªå\9b³å¼\8fです。
-アスキー英字(a-z、A-Z)、数字(0-9)、下線(_)のみを使用してください。',
- 'config-postgres-old' => 'PostgreSQLの$1あるいはそれ以降が必要で、いまのバージョンは$2です。',
+ 'config-invalid-schema' => 'ã\80\8c$1ã\80\8dã\81¯ MediaWiki ã\81®ã\82¹ã\82ã\83¼ã\83\9eã\81¨ã\81\97ã\81¦ç\84¡å\8a¹です。
+ASCII の英数字 (a-z、A-Z、0-9)、下線 (_) のみを使用してください。',
+ 'config-postgres-old' => 'PostgreSQL $1 以降が必要です。ご使用中の PostgreSQL は $2 です。',
'config-sqlite-name-help' => 'あなたのウェキと同一性のある名前を選んでください。
空白およびハイフンは使用しないでください。
SQLiteのデータファイル名として使用されます。',
- 'config-sqlite-parent-unwritable-group' => 'データディレクトリ<code><nowiki>$1</nowiki></code>を作成できません。親ディレクトリ<code><nowiki>$2</nowiki></code>は、ウェブサーバーから書き込みできませんでした。
+ 'config-sqlite-parent-unwritable-group' => 'データ ディレクトリ <code><nowiki>$1</nowiki></code> を作成できません。ウェブ サーバーは親ディレクトリ <code><nowiki>$2</nowiki></code> に書き込めませんでした。
-ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«æ©\9fè\83½ã\81¯ã\80\81å®\9fè¡\8cã\81\97ã\81¦ã\81\84ã\82\8bã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\83¼ã\81®ユーザーを特定しました。
-続行するには、<code><nowiki>$3</nowiki></code>ディレクトリを書き込み可能にしてください。
-UnixあるいはLinux上では、以下を実行してください:
+ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81¯ã\80\81ã\82¦ã\82§ã\83\96 ã\82µã\83¼ã\83\90ã\83¼ã\81®å®\9fè¡\8cユーザーを特定しました。
+続行するには、ディレクトリ <code><nowiki>$3</nowiki></code> に書き込めるようにしてください。
+Unix または Linux であれば、以下を実行してください:
<pre>cd $2
mkdir $3
chgrp $4 $3
chmod g+w $3</pre>',
- 'config-sqlite-parent-unwritable-nogroup' => 'データディレクトリ<code><nowiki>$1</nowiki></code>を作成できません。親ディレクトリ<code><nowiki>$2</nowiki></code>は、ウェブサーバから書き込みできませんでした。
+ 'config-sqlite-parent-unwritable-nogroup' => 'データ ディレクトリ <code><nowiki>$1</nowiki></code> を作成できません。ウェブ サーバーは、親ディレクトリ <code><nowiki>$2</nowiki></code> に書き込めませんでした。
-ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«æ©\9fè\83½ã\81¯ã\80\81å®\9fè¡\8cã\81\97ã\81¦ã\81\84ã\82\8bã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\81®ユーザーを特定できませんでした。
-続行するには、<code><nowiki>$3</nowiki></code>ディレクトリを、ウェブサーバ(と他のユーザ!)からグローバルに書き込めるようにしてください。
-UnixあるいはLinux上では、以下を実行してください:
+ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81¯ã\80\81ã\82¦ã\82§ã\83\96 ã\82µã\83¼ã\83\90ã\83¼ã\81®å®\9fè¡\8cユーザーを特定できませんでした。
+続行するには、ディレクトリ <code><nowiki>$3</nowiki></code> に、ウェブ サーバー (と、あらゆる人々!) がグローバルに書き込めるようにしてください。
+Unix または Linux では、以下を実行してください:
<pre>cd $2
mkdir $3
chmod a+w $3</pre>',
- 'config-sqlite-mkdir-error' => 'データディレクトリ「$1」の作成中にエラーが発生しました。
+ 'config-sqlite-mkdir-error' => 'データ ディレクトリ「$1」を作成する際にエラーが発生しました。
場所を確認してから、再度試してください。',
'config-sqlite-dir-unwritable' => 'ディレクトリ「$1」に書き込めません。
-ウェブサーバーが書き込めるようにパーミッションを変更してから、度試してください。',
+ウェブ サーバーが書き込めるようにパーミッションを変更してから、再度試してください。',
'config-sqlite-connection-error' => '$1。
-下記のデータディレクトリとデータベース名を確認してから、再度試してみてください。',
- 'config-sqlite-readonly' => 'ファイル<code>$1</code>は書き込み不能です。',
- 'config-sqlite-cant-create-db' => 'データベースファイル<code>$1</code>を作成できませんでした。',
- 'config-sqlite-fts3-downgrade' => 'PHPはFTS3のサポート、テーブルのダウングレードが無効です。',
- 'config-can-upgrade' => 'ã\81\93ã\81®ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ã\81¯ã\83¡ã\83\87ã\82£ã\82¢ã\82¦ã\82£ã\82ã\83\86ã\83¼ã\83\96ã\83«ã\81\8cå\98å\9c¨ã\81\97ます。
-ã\81\9dã\82\8cã\82\89ã\82\92ã\83¡ã\83\87ã\82£ã\82¢ã\82¦ã\82£ã\82$1ã\81«ã\82¢ã\83\83ã\83\97ã\82°ã\83¬ã\83¼ã\83\89ã\81\99ã\82\8bã\81\9fã\82\81ã\81«「続行」をクリックしてください。',
+データ ディレクトリおよびデータベース名を確認してから、再度試してください。',
+ 'config-sqlite-readonly' => 'ファイル <code>$1</code> に書き込めません。',
+ 'config-sqlite-cant-create-db' => 'データベース ファイル <code>$1</code> を作成できませんでした。',
+ 'config-sqlite-fts3-downgrade' => 'PHP が FTS3 に対応していないため、テーブルをダウングレードしています',
+ 'config-can-upgrade' => 'ã\81\93ã\81®ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ã\81¯ã\80\80MediaWiki ã\83\86ã\83¼ã\83\96ã\83«ã\81\8cã\81\82ã\82\8aます。
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\82\92 MediaWiki $1 ã\81«ã\82¢ã\83\83ã\83\97ã\82°ã\83¬ã\83¼ã\83\89ã\81\99ã\82\8bã\81«ã\81¯ã\80\81「続行」をクリックしてください。',
'config-upgrade-done' => "更新は完了しました。
[$1 ウィキを使い始める]ことができます。
'config-show-table-status' => 'SHOW TABLE STATUSクエリーが失敗しました!',
'config-unknown-collation' => "'''警告:''' データベースは認識されない照合を使用しています。",
'config-db-web-account' => 'ウェブアクセスのためのデータベースアカウント',
- 'config-db-web-help' => 'ウィキの元来の操作中、ウェブサーバーがデーターベースサーバーに接続できるように、ユーザ名とパスワードを選択してください。',
- 'config-db-web-account-same' => 'インストールのために同じアカウントを使用してください',
- 'config-db-web-create' => '既に存在していないのであれば、アカウントを作成してください',
+ 'config-db-web-help' => 'ウィキの通常の操作の際に、ウェブ サーバーがデータベース サーバーに接続できるように、ユーザー名とパスワードを指定してください。',
+ 'config-db-web-account-same' => 'インストール作業と同じアカウントを使用する',
+ 'config-db-web-create' => 'アカウントが存在しない場合は作成する',
'config-db-web-no-create-privs' => 'あなたがインストールのために定義したアカウントは、アカウント作成のための特権としては不充分です。
あなたがここで指定したアカウントは既に存在している必要があります。',
- 'config-mysql-engine' => 'ストレージエンジン:',
+ 'config-mysql-engine' => 'ストレージ エンジン:',
'config-mysql-innodb' => 'InnoDB',
'config-mysql-myisam' => 'MyISAM',
'config-mysql-engine-help' => "'''InnoDB'''は、並行処理のサポートに優れているので、ほとんどの場合において最良の選択肢です。
'config-mysql-charset' => 'データベースの文字セット:',
'config-mysql-binary' => 'バイナリ',
'config-mysql-utf8' => 'UTF-8',
- 'config-mysql-charset-help' => "'''バイナリー形式'''では、MediaWikiは、UTF-8テキストを、データベースのバイナリーフィールドに格納します。
-これは、MySQLのUTF-8形式より効率的で、Unicode文字の全範囲を利用できるようになります。
+ 'config-mysql-charset-help' => "'''バイナリ モード'''では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。
+これは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。
-'''UTF-8形式'''では、MySQLは、データ内でどの文字集合を使用しているかを知っていて、それに対して適切な提示と変換をするでしょうが、
-[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 å\9fºæ\9c¬å¤\9aè¨\80èª\9eé\9d¢]ã\81®å¤\96ã\81«ã\81\82ã\82\8bæ\96\87å\97ã\82\92æ ¼ç´\8dã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81¯ã\81ªã\82\8aã\81¾ã\81\9bã\82\93ã\80\82",
- 'config-site-name' => 'ウィキの名前:',
+'''UTF-8 モード'''では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、
+[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
+ 'config-site-name' => 'ウィキ名:',
'config-site-name-help' => 'この事象はブラウザーのタイトルバーと他のさまざまな場所に現れる。',
'config-site-name-blank' => 'サイト名を入力してください。',
- 'config-project-namespace' => 'プロジェクト名前空間:',
+ 'config-project-namespace' => 'プロジェクト名前空間:',
'config-ns-generic' => 'プロジェクト',
- 'config-ns-site-name' => 'ウィキ名と同じ:$1',
- 'config-ns-other' => 'その他(指定してください)',
+ 'config-ns-site-name' => 'ウィキ名と同じ: $1',
+ 'config-ns-other' => 'その他 (指定してください)',
'config-ns-other-default' => 'マイウィキ',
'config-project-namespace-help' => "ウィキペディアの例に従い、多くのウィキは、コンテンツのページとは分離したポリシーページを「'''プロジェクトの名前空間'''」に持っています。
この名前空間のページのタイトルはすべて、ある接頭辞で始まります。それをここで指定することができます。
-この接頭辞はウィキの名前に由来するのが伝統的ですが、「#」や「:」のような区切り記号を含めることはできません。",
+この接頭辞はウィキの名前に由来するのが伝統的ですが、「#」や「:」のような区切り文字を含めることはできません。",
'config-ns-invalid' => '"<nowiki>$1</nowiki>"のように指定された名前空間は無効です。
違うプロジェクト名前空間を指定してください。',
'config-admin-box' => '管理アカウント',
- 'config-admin-name' => '名前:',
- 'config-admin-password' => 'パスワード:',
- 'config-admin-password-confirm' => 'パスワードの再入力:',
- 'config-admin-help' => 'ここにあなたの希望するユーザ名を入力してください(例えば"Joe Bloggs"など)。
+ 'config-admin-name' => '名前:',
+ 'config-admin-password' => 'パスワード:',
+ 'config-admin-password-confirm' => 'パスワードの再入力:',
+ 'config-admin-help' => '希望するユーザー名をここに入力してください (例: "Joe Bloggs")。
この名前でこのウィキにログインすることになります。',
'config-admin-name-blank' => '管理者のユーザ名を入力してください。',
'config-admin-name-invalid' => '指定されたユーザ名 "<nowiki>$1</nowiki>" は無効です。
'config-admin-password-blank' => '管理者アカウントのパスワードを入力してください。',
'config-admin-password-same' => 'ユーザ名と同じパスワードは使えません。',
'config-admin-password-mismatch' => '入力された2つのパスワードが一致しません。',
- 'config-admin-email' => 'メールアドレス:',
+ 'config-admin-email' => 'メールアドレス:',
'config-admin-email-help' => 'メールアドレスを入力してください。他の利用者からのメールの受け取り、パスワードのリセット、ウォッチリストに登録したページの更新通知に使用します。空欄のままにすることもできます。',
'config-admin-error-user' => '"<nowiki>$1</nowiki>"という名前の管理者を作成する際に内部エラーが発生しました。',
'config-admin-error-password' => '管理者"<nowiki>$1</nowiki>"のパスワードを設定する際に内部エラーが発生しました: <pre>$2</pre>',
残りの設定を飛ばして、今すぐにウィキをインストールできます。',
'config-optional-continue' => '私にもっと質問してください。',
'config-optional-skip' => 'もう飽きてしまったので、とにかくウィキをインストールしてください。',
- 'config-profile' => '正しいプロフィールのユーザ:',
+ 'config-profile' => '利用者権限のプロファイル:',
'config-profile-wiki' => '伝統的なウィキ',
'config-profile-no-anon' => 'アカウントの作成が必要',
'config-profile-fishbowl' => '承認された編集者のみ',
'config-license-cc-by-sa' => 'クリエイティブ・コモンズ 表示-継承',
'config-license-cc-by' => 'クリエイティブ・コモンズ 表示',
'config-license-cc-by-nc-sa' => 'クリエイティブ・コモンズ 表示-非営利-継承',
- 'config-license-gfdl' => 'GNUフリー文書利用許諾契約書1.3以降',
+ 'config-license-gfdl' => 'GNU フリー文書利用許諾契約書 1.3 以降',
'config-license-pd' => 'パブリック・ドメイン',
'config-license-cc-choose' => 'その他のクリエイティブ・コモンズ・ライセンスを選択する',
'config-license-help' => "多くの公開ウィキでは、すべての寄稿物が[http://freedomdefined.org/Definition フリーライセンス]の元に置かれています。
'config-email-auth-help' => "この選択肢を有効にすると、利用者がメールアドレスを設定あるいは変更したときに送信されるリンクにより、そのアドレスを確認しなければならなくなります。
認証済みのアドレスだけが、他の利用者からのメールや、変更通知のメールを受け取ることができます。
公開ウィキでは、メール機能による潜在的な不正利用の防止のため、この選択肢を設定することが'''推奨'''されます。",
- 'config-email-sender' => '返信メールアドレス:',
+ 'config-email-sender' => '返信先メールアドレス:',
'config-email-sender-help' => '送信メールで返信先として使用するメールアドレスを入力してください。
このアドレスは、宛先不明の場合の通知の宛先になります。
多くのメールサーバーでは、少なくともドメイン名部分は有効である必要があります。',
'config-upload-settings' => '画像およびファイルのアップロード',
'config-upload-enable' => 'ファイルのアップロードを有効にする',
- 'config-upload-help' => 'ファイルのアップロードは潜在的にあなたのサーバにセキュリティ上の危険をさらします。
-更なる情報のために、マニュアルの[//www.mediawiki.org/wiki/Manual:Security security section] を読むことをすすめます。
+ 'config-upload-help' => 'ファイルのアップロードは、あなたのサーバーをセキュリティ上の潜在的な危険に晒します。
+この詳細は、マニュアルの [//www.mediawiki.org/wiki/Manual:Security security section] をお読みください。
-ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¢ã\83\83ã\83\97ã\83ã\83¼ã\83\89ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ã\83¡ã\83\87ã\82£ã\82¢ã\82¦ã\82£ã\82ã\81®ã\83«ã\83¼ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä¸\8bã\81®<code>images</code>ã\82µã\83\96ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®ã\83¢ã\83¼ã\83\89ã\82\92å¤\89æ\9b´ã\81\97ã\81¾ã\81\99ã\80\82ã\81\9dã\81\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\83¼ã\81¯そこに書き込めるようになります。
+ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¢ã\83\83ã\83\97ã\83ã\83¼ã\83\89ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81MediaWiki ã\81®ã\83«ã\83¼ã\83\88 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81® <code>images</code> ã\82µã\83\96 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®ã\83¢ã\83¼ã\83\89ã\82\92å¤\89æ\9b´ã\81\97ã\81¾ã\81\99ã\80\82ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81ã\82¦ã\82§ã\83\96 ã\82µã\83¼ã\83\90ã\83¼ã\81\8cそこに書き込めるようになります。
そして、このオプションを有効にしてください。',
'config-upload-deleted' => '削除されたファイルのためのディレクトリ:',
'config-upload-deleted-help' => '削除されるファイルを保存するためのディレクトリを選択してください。
これがウェブからアクセスできないことが理想です。',
- 'config-logo' => 'ロゴのURL:',
+ 'config-logo' => 'ロゴ のURL:',
'config-logo-help' => 'MediaWikiの既定の外装では、サイドバー上部に135x160ピクセルのロゴ用の余白があります。
適切なサイズの画像をアップロードして、そのURLをここに入力してください。
ロゴが不要の場合は、このボックスを空白のままにしてください。',
- 'config-instantcommons' => 'InstantCommons機能を有効にする',
+ 'config-instantcommons' => 'Instant Commons 機能を有効にする',
'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons InstantCommons]は、[//commons.wikimedia.org/ ウィキメディア・コモンズ]のサイトで見つかった画像や音声、その他のメディアをウィキ上で利用することができるようになる機能です。
これを有効化するには、MediaWikiはインターネットに接続できなければなりません。
-ウィキメディアコモンズ以外のウィキを同じように設定する方法など、この機能に関する詳細な情報は、[//mediawiki.org/wiki/Manual:$wgForeignFileRepos マニュアル]をご覧ください。',
+ã\82¦ã\82£ã\82ã\83¡ã\83\87ã\82£ã\82¢ã\83»ã\82³ã\83¢ã\83³ã\82ºä»¥å¤\96ã\81®ã\82¦ã\82£ã\82ã\82\92å\90\8cã\81\98ã\82\88ã\81\86ã\81«è¨å®\9aã\81\99ã\82\8bæ\96¹æ³\95ã\81ªã\81©ã\80\81ã\81\93ã\81®æ©\9fè\83½ã\81«é\96¢ã\81\99ã\82\8b詳細ã\81ªæ\83\85å ±ã\81¯ã\80\81[//mediawiki.org/wiki/Manual:$wgForeignFileRepos ã\83\9eã\83\8bã\83¥ã\82¢ã\83«]ã\82\92ã\81\94覧ã\81\8fã\81 ã\81\95ã\81\84ã\80\82',
'config-cc-error' => 'クリエイティブ・コモンズ・ライセンスの選択器から結果が得られませんでした。
ライセンスの名前を手動で入力してください。',
'config-cc-again' => 'もう一度選択してください...',
- 'config-cc-not-chosen' => 'あなたの求めるクリエイティブコモンズのライセンスを選んで、"続行"をクリックしてください。',
+ 'config-cc-not-chosen' => '希望するクリエイティブ・コモンズのライセンスを選択して、「続行」をクリックしてください。',
'config-advanced-settings' => '高度な設定',
'config-cache-options' => 'オブジェクトのキャッシュの設定:',
- 'config-cache-help' => 'ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81¯ã\80\81使ç\94¨ã\81\97ã\81\9fã\83\87ã\83¼ã\82¿ã\82\92é »ç¹\81ã\81«ã\82ã\83£ã\83\83ã\82·ã\83³ã\82°ã\81\99ã\82\8bã\81\93ã\81¨ã\81«ã\82\88ã\81£ã\81¦ã\80\81ã\83¡ã\83\87ã\82£ã\82¢ã\82¦ã\82£ã\82ã\81®ã\82¹ã\83\94ã\83¼ã\83\89æ\94¹å\96\84ã\81«ä½¿ç\94¨ã\81\95ã\82\8cます。
-中〜大サイトにおいては、これを有効にするために大変望ましいことです。また小さなサイトにおいても同様な利点をもたらすと考えられます。',
+ 'config-cache-help' => 'ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82ã\83£ã\83\83ã\82·ã\83¥ã\82\92使ç\94¨ã\81\99ã\82\8bã\81¨ã\80\81é »ç¹\81ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\83\87ã\83¼ã\82¿ã\82\92ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\99ã\82\8bã\81\9fã\82\81 MediaWiki ã\81®å\8b\95ä½\9cé\80\9f度ã\82\92æ\94¹å\96\84ã\81§ã\81\8dます。
+中〜大規模サイトではこれを有効にすることを強くお勧めします。小規模サイトでも同様に効果があります。',
'config-cache-none' => 'キャッシングしない(機能は取り払われます、しかもより大きなウィキサイト上でスピードの問題が発生します)',
- 'config-cache-accel' => 'PHPオブジェクトキャッシング(APC、XCacheあるいはWinCache)',
+ 'config-cache-accel' => 'PHP オブジェクト キャッシュ (APC、XCache、WinCache のいずれか)',
'config-cache-memcached' => 'Memcachedを使用(追加の設定が必要です)',
'config-memcached-servers' => 'メモリをキャッシュされたサーバ:',
'config-memcached-help' => 'Memcachedを使用するIPアドレスの一覧。
これらは更に多くの設定を要求するかもしれませんが、今これらを有効にすることができます。',
'config-install-alreadydone' => "'''警告:''' 既にMediaWikiがインストール済みで、再びインストールし直そうとしています。
次のページへ進んでください。",
- 'config-install-begin' => '「{{int:config-continue}}」を押すと、MediaWikiのインストールを開始することができます。
-å¤\89æ\9b´ã\81\97ã\81\9fã\81\84è¨å®\9aã\81\8cã\81\82ã\82\8cã\81°、「{{int:Config-back}}」を押してください。',
+ 'config-install-begin' => '「{{int:config-continue}}」を押すと、MediaWiki のインストールを開始できます。
+å¤\89æ\9b´ã\81\97ã\81\9fã\81\84è¨å®\9aã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81¯、「{{int:Config-back}}」を押してください。',
'config-install-step-done' => '実行',
'config-install-step-failed' => '失敗した',
'config-install-extensions' => '拡張機能を含む',
'config-install-database' => 'データベースの構築',
'config-install-schema' => 'スキーマの作成',
'config-install-pg-schema-not-exist' => 'PostgreSQL スキーマがありません。',
- 'config-install-pg-schema-failed' => 'テーブルの作成に失敗した。
-ユーザ"$1"が図式"$2"に書き込みができるようにしてください。',
+ 'config-install-pg-schema-failed' => 'ã\83\86ã\83¼ã\83\96ã\83«ã\81®ä½\9cæ\88\90ã\81«å¤±æ\95\97ã\81\97ã\81¾ã\81\97ã\81\9fã\80\82
+利用者「$1」がスキーマ「$2」に書き込めるようにしてください。',
'config-install-pg-commit' => '変更を送信',
- 'config-install-user' => 'データベースユーザを作成する',
- 'config-install-user-grant-failed' => 'ユーザー「$1」に許可を与えることに失敗しました。:$2',
+ 'config-install-user' => 'データベースユーザーの作成',
+ 'config-install-user-alreadyexists' => 'ユーザー「$1」は既に存在します',
+ 'config-install-user-create-failed' => 'ユーザー「$1」の作成に失敗しました: $2',
+ 'config-install-user-grant-failed' => 'ユーザー「$1」に許可を与えることに失敗しました: $2',
+ 'config-install-user-missing' => '指定したユーザー「$1」は存在しません。',
+ 'config-install-user-missing-create' => '指定したユーザー「$1」は存在しません。
+アカウントを作成する場合は、下の「アカウント作成」をクリックしてください。',
'config-install-tables' => 'テーブルの作成',
'config-install-tables-exist' => "'''警告''':MediaWikiテーブルは既に存在するようです。
作成を飛ばします。",
- 'config-install-tables-failed' => "'''エラー''':テーブルの作成が、次のエラーにより失敗しました:$1",
- 'config-install-interwiki' => 'æ\97¢å®\9aã\81®ã\82¦ã\82£ã\82é\96\93ã\83\86ã\83¼ã\83\96ã\83«ã\82\92å°\8eå\85¥ã\81\97ã\81¦ã\81\84ã\81¾ã\81\99',
- 'config-install-interwiki-list' => 'ファイル<code>interwiki.list</code>を見つけることができませんでした。',
+ 'config-install-tables-failed' => "'''エラー''': テーブルの作成が、以下のエラーにより失敗しました: $1",
+ 'config-install-interwiki' => 'æ\97¢å®\9aã\81®ã\82¦ã\82£ã\82é\96\93ã\83\86ã\83¼ã\83\96ã\83«ã\81®å°\8eå\85¥',
+ 'config-install-interwiki-list' => 'ファイル <code>interwiki.list</code> から読み取れませんでした。',
'config-install-interwiki-exists' => "'''警告''':ウィキ間テーブルは既に登録されているようです。
既定のテーブルを無視します。",
- 'config-install-keys' => '秘密鍵を生成する',
- 'config-install-sysop' => '管理者のユーザーアカウントを作成する',
- 'config-install-mainpage' => '既定の接続でメインページを作成',
- 'config-install-mainpage-failed' => 'メインページを挿入できませんでした:$1',
+ 'config-install-stats' => '統計情報の初期化',
+ 'config-install-keys' => '秘密鍵の生成',
+ 'config-install-sysop' => '管理者のアカウントの作成',
+ 'config-install-mainpage' => 'メインページを既定の内容で作成',
+ 'config-install-mainpage-failed' => 'メインページを挿入できませんでした: $1',
'config-install-done' => "'''おめでとうございます!'''
MediaWikiのインストールに成功しました。
'''注意''': もし、これを今しなければ、つまり、このファイルをダウンロードせずインストールを終了した場合、この生成された設定ファイルは利用されません。
それを完了すれば、'''[$2 ウィキに入る]'''ことができます。",
- 'config-download-localsettings' => 'LocalSettings.phpをダウンロード',
+ 'config-download-localsettings' => 'LocalSettings.php をダウンロード',
'config-help' => 'ヘルプ',
'mainpagetext' => "'''MediaWiki のインストールに成功しました。'''",
'mainpagedocfooter' => 'ウィキソフトウェアの使い方に関する情報は[//meta.wikimedia.org/wiki/Help:Contents 利用者案内]を参照してください。
/** Slovenian (slovenščina)
* @author Dbc334
+ * @author Eleassar
*/
$messages['sl'] = array(
'config-desc' => 'Namestitveni program za MediaWiki',
'config-profile-no-anon' => 'Zahtevano je ustvarjanje računa',
'config-profile-fishbowl' => 'Samo pooblaščeni urejevalci',
'config-profile-private' => 'Zasebni wiki',
- 'config-license' => 'Avtorske pravice in dovoljenje:',
+ 'config-license' => 'Avtorske pravice in licenca:',
'config-license-none' => 'Brez noge dovoljenja',
'config-license-cc-by-sa' => 'Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji',
'config-license-cc-by' => 'Creative Commons Priznanje avtorstva',
'config-cc-error' => 'Izbirnik dovoljenja Creative Commons ni vrnil nobenih rezultatov.
Vnesite ime dovoljenja ročno.',
'config-cc-again' => 'Izberi ponovno ...',
- 'config-cc-not-chosen' => 'Izberite dovoljenje Creative Commons, ki ga želite dodati, in kliknite »proceed«.',
+ 'config-cc-not-chosen' => 'Izberite licenco Creative Commons, ki jo želite uporabiti, in kliknite »proceed«.',
'config-advanced-settings' => 'Napredna konfiguracija',
'config-cache-accel' => 'Predpomnjenje predmetov PHP (APC, XCache ali WinCache)',
'config-cache-memcached' => 'Uporabi Memcached (zahteva dodatno namestitev in konfiguracijo)',
array( 'addPgField', 'ipblocks', 'ipb_enable_autoblock', 'SMALLINT NOT NULL DEFAULT 1' ),
array( 'addPgField', 'ipblocks', 'ipb_parent_block_id', 'INTEGER DEFAULT NULL REFERENCES ipblocks(ipb_id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED' ),
array( 'addPgField', 'filearchive', 'fa_deleted', 'SMALLINT NOT NULL DEFAULT 0' ),
+ array( 'addPgField', 'filearchive', 'fa_sha1', "TEXT NOT NULL DEFAULT ''" ),
array( 'addPgField', 'logging', 'log_deleted', 'SMALLINT NOT NULL DEFAULT 0' ),
array( 'addPgField', 'logging', 'log_id', "INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('logging_log_id_seq')" ),
array( 'addPgField', 'logging', 'log_params', 'TEXT' ),
array( 'addPgIndex', 'logging', 'logging_page_id_time', '(log_page,log_timestamp)' ),
array( 'addPgIndex', 'iwlinks', 'iwl_prefix_title_from', '(iwl_prefix, iwl_title, iwl_from)' ),
array( 'addPgIndex', 'job', 'job_timestamp_idx', '(job_timestamp)' ),
+ array( 'addPgIndex', 'filearchive', 'fa_sha1', '(fa_sha1)' ),
array( 'checkIndex', 'pagelink_unique', array(
array('pl_from', 'int4_ops', 'btree', 0),
/**
* The main sequence of page names. These will be displayed in turn.
- * To add one:
- * * Add it here
- * * Add a config-page-<name> message
- * * Add a WebInstaller_<name> class
+ *
+ * To add a new installer page:
+ * * Add it to this WebInstaller::$pageSequence property
+ * * Add a "config-page-<name>" message
+ * * Add a "WebInstaller_<name>" class
* @var array
*/
public $pageSequence = array(
*
* @file
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
abstract class GenericArrayObject extends ArrayObject {
const TYPE_DO = 15; // keywords: case, var, finally, else, do, try
const TYPE_FUNC = 16; // keywords: function
const TYPE_LITERAL = 17; // all literals, identifiers and unrecognised tokens
-
+
// Sanity limit to avoid excessive memory usage
const STACK_LIMIT = 1000;
self::TYPE_LITERAL => true
)
);
-
+
// Rules for when newlines should be inserted if
// $statementsOnOwnLine is enabled.
// $newlineBefore is checked before switching state,
return self::parseError($s, $end, 'Number with several E' );
}
$end++;
-
+
// + sign is optional; - sign is required.
$end += strspn( $s, '-+', $end );
$len = strspn( $s, '0123456789', $end );
$out .= ' ';
$lineLength++;
}
-
+
$out .= $token;
$lineLength += $end - $pos; // += strlen( $token )
$last = $s[$end - 1];
$pos = $end;
$newlineFound = false;
-
+
// Output a newline after the token if required
// This is checked before AND after switching state
$newlineAdded = false;
} elseif( isset( $goto[$state][$type] ) ) {
$state = $goto[$state][$type];
}
-
+
// Check for newline insertion again
if ( $statementsOnOwnLine && !$newlineAdded && isset( $newlineAfter[$state][$type] ) ) {
$out .= "\n";
}
return $out;
}
-
+
static function parseError($fullJavascript, $position, $errorMsg) {
// TODO: Handle the error: trigger_error, throw exception, return false...
return false;
/// Database result row.
protected $row;
+ protected $performer;
protected function __construct( $row ) {
$this->row = $row;
}
public function getPerformer() {
- $userId = (int) $this->row->log_user;
- if ( $userId !== 0 ) { // logged-in users
- if ( isset( $this->row->user_name ) ) {
- return User::newFromRow( $this->row );
- } else {
- return User::newFromId( $userId );
+ if( !$this->performer ) {
+ $userId = (int) $this->row->log_user;
+ if ( $userId !== 0 ) { // logged-in users
+ if ( isset( $this->row->user_name ) ) {
+ $this->performer = User::newFromRow( $this->row );
+ } else {
+ $this->performer = User::newFromId( $userId );
+ }
+ } else { // IP users
+ $userText = $this->row->log_user_text;
+ $this->performer = User::newFromName( $userText, false );
}
- } else { // IP users
- $userText = $this->row->log_user_text;
- return User::newFromName( $userText, false );
}
+ return $this->performer;
}
public function getTarget() {
}
public function getPerformer() {
- $userId = (int) $this->row->rc_user;
- if ( $userId !== 0 ) {
- return User::newFromId( $userId );
- } else {
- $userText = $this->row->rc_user_text;
- // Might be an IP, don't validate the username
- return User::newFromName( $userText, false );
+ if( !$this->performer ) {
+ $userId = (int) $this->row->rc_user;
+ if ( $userId !== 0 ) {
+ $this->performer = User::newFromId( $userId );
+ } else {
+ $userText = $this->row->rc_user_text;
+ // Might be an IP, don't validate the username
+ $this->performer = User::newFromName( $userText, false );
+ }
}
+ return $this->performer;
}
public function getTarget() {
unset( $baseArray['comment'] );
unset( $baseArray['xmp'] );
-
+
$baseArray['metadata'] = $meta->getMetadataArray();
$baseArray['metadata']['_MW_GIF_VERSION'] = GIFMetadataExtractor::VERSION;
return $baseArray;
function retrieveMetaData() {
global $wgDjvuToXML, $wgDjvuDump, $wgDjvuTxt;
wfProfileIn( __METHOD__ );
-
+
if ( isset( $wgDjvuDump ) ) {
# djvudump is faster as of version 3.5
# http://sourceforge.net/tracker/index.php?func=detail&aid=1704049&group_id=32953&atid=406583
$xml = null;
}
# Text layer
- if ( isset( $wgDjvuTxt ) ) {
+ if ( isset( $wgDjvuTxt ) ) {
wfProfileIn( 'djvutxt' );
$cmd = wfEscapeShellArg( $wgDjvuTxt ) . ' --detail=page ' . wfEscapeShellArg( $this->mFilename ) ;
wfDebug( __METHOD__.": $cmd\n" );
$reg = <<<EOR
/\(page\s[\d-]*\s[\d-]*\s[\d-]*\s[\d-]*\s*"
((?> # Text to match is composed of atoms of either:
- \\\\. # - any escaped character
+ \\\\. # - any escaped character
| # - any character different from " and \
[^"\\\\]+
)*?)
$this->charCodeString( 'UserComment' );
$this->charCodeString( 'GPSProcessingMethod');
$this->charCodeString( 'GPSAreaInformation' );
-
+
//ComponentsConfiguration should really be an array instead of a string...
//This turns a string of binary numbers into an array of numbers.
$ccVals['_type'] = 'ol'; //this is for formatting later.
$this->mFilteredExifData['ComponentsConfiguration'] = $ccVals;
}
-
+
//GPSVersion(ID) is treated as the wrong type by php exif support.
//Go through each byte turning it into a version string.
//For example: "\x02\x02\x00\x00" -> "2.2.0.0"
}
$charCode = substr( $this->mFilteredExifData[$prop], 0, 8);
$val = substr( $this->mFilteredExifData[$prop], 8);
-
-
+
switch ($charCode) {
case "\x4A\x49\x53\x00\x00\x00\x00\x00":
//JIS
wfRestoreWarnings();
}
}
-
+
//trim and check to make sure not only whitespace.
$val = trim($val);
if ( strlen( $val ) === 0 ) {
return false;
}
if( $count > 1 ) {
- foreach( $val as $v ) {
+ foreach( $val as $v ) {
if( !$this->validate( $section, $tag, $v, true ) ) {
- return false;
- }
+ return false;
+ }
}
return true;
}
class GIFHandler extends BitmapHandler {
const BROKEN_FILE = '0'; // value to store in img_metadata if error extracting metadata.
-
+
function getMetadata( $image, $filename ) {
try {
$parsedGIFMetadata = BitmapMetadataHandler::GIF( $filename );
wfSuppressWarnings();
$metadata = unserialize($image->getMetadata());
wfRestoreWarnings();
-
+
if (!$metadata || $metadata['frameCount'] <= 1) {
return $original;
}
/* Preserve original image info string, but strip the last char ')' so we can add even more */
$info = array();
$info[] = $original;
-
+
if ( $metadata['looped'] ) {
$info[] = wfMessage( 'file-info-gif-looped' )->parse();
}
-
+
if ( $metadata['frameCount'] > 1 ) {
$info[] = wfMessage( 'file-info-gif-frames' )->numParams( $metadata['frameCount'] )->parse();
}
-
+
if ( $metadata['duration'] ) {
$info[] = $wgLang->formatTimePeriod( $metadata['duration'] );
}
-
+
return $wgLang->commaList( $info );
}
}
$isLooped = false;
$xmp = "";
$comment = array();
-
+
if ( !$filename ) {
throw new Exception( "No file name specified" );
} elseif ( !file_exists( $filename ) || is_dir( $filename ) ) {
## Read GCT
self::readGCT( $fh, $bpp );
fread( $fh, 1 );
- self::skipBlock( $fh );
+ self::skipBlock( $fh );
} elseif ( $buf == self::$gif_extension_sep ) {
$buf = fread( $fh, 1 );
if ( strlen( $buf ) < 1 ) throw new Exception( "Ran out of input" );
// NETSCAPE2.0 (application name for animated gif)
if ( $data == 'NETSCAPE2.0' ) {
-
$data = fread( $fh, 2 ); // Block length and introduction, should be 03 01
if ($data != "\x03\x01") {
throw new Exception( "Expected \x03\x01, got $data" );
}
-
+
// Unsigned little-endian integer, loop count or zero for "forever"
$loopData = fread( $fh, 2 );
if ( strlen( $loopData ) < 2 ) throw new Exception( "Ran out of input" );
$loopData = unpack( 'v', $loopData );
$loopCount = $loopData[1];
-
+
if ($loopCount != 1) {
$isLooped = true;
}
-
+
// Read out terminator byte
fread( $fh, 1 );
} elseif ( $data == 'XMP DataXMP' ) {
// whatever...
$segments["XMP"] = substr( $temp, 29 );
wfDebug( __METHOD__ . ' Found XMP section with wrong app identifier '
- . "Using anyways.\n" );
+ . "Using anyways.\n" );
} elseif ( substr( $temp, 0, 6 ) === "Exif\0\0" ) {
// Just need to find out what the byte order is.
// because php's exif plugin sucks...
function canAnimateThumbnail( $image ) {
return false;
}
-
+
function getMetadataType( $image ) {
return 'parsed-png';
}
-
+
function isMetadataValid( $image, $metadata ) {
if ( $metadata === self::BROKEN_FILE ) {
$info = array();
$info[] = $original;
-
+
if ( $metadata['loopCount'] == 0 ) {
$info[] = wfMessage( 'file-info-png-looped' )->parse();
} elseif ( $metadata['loopCount'] > 1 ) {
$info[] = wfMessage( 'file-info-png-repeat' )->numParams( $metadata['loopCount'] )->parse();
}
-
+
if ( $metadata['frameCount'] > 0 ) {
$info[] = wfMessage( 'file-info-png-frames' )->numParams( $metadata['frameCount'] )->parse();
}
-
+
if ( $metadata['duration'] ) {
$info[] = $wgLang->formatTimePeriod( $metadata['duration'] );
}
-
+
return $wgLang->commaList( $info );
}
case 0:
$colorType = 'greyscale';
break;
- case 2:
+ case 2:
$colorType = 'truecolour';
break;
case 3:
$this->reader->open( $source, null, LIBXML_NOERROR | LIBXML_NOWARNING );
}
- // Expand entities, since Adobe Illustrator uses them for xmlns
- // attributes (bug 31719). Note that libxml2 has some protection
- // against large recursive entity expansions so this is not as
+ // Expand entities, since Adobe Illustrator uses them for xmlns
+ // attributes (bug 31719). Note that libxml2 has some protection
+ // against large recursive entity expansions so this is not as
// insecure as it might appear to be.
$this->reader->setParserProperty( XMLReader::SUBST_ENTITIES, true );
* 'validate' => 'validateClosed',
* 'choices' => array( '1' => true, '2' => true ),
* ),
- */
+ */
),
'http://ns.adobe.com/exif/1.0/aux/' => array(
'Lens' => array(
//check if its in a numeric range
$inRange = false;
- if ( isset( $info['rangeLow'] )
+ if ( isset( $info['rangeLow'] )
&& isset( $info['rangeHigh'] )
&& is_numeric( $val )
&& ( intval( $val ) <= $info['rangeHigh'] )
}
$m = array();
- if ( preg_match(
+ if ( preg_match(
'/(\d{1,3}),(\d{1,2}),(\d{1,2})([NWSE])/D',
$val, $m )
) {
}
$val = $coord;
return;
- } elseif ( preg_match(
+ } elseif ( preg_match(
'/(\d{1,3}),(\d{1,2}(?:.\d*)?)([NWSE])/D',
$val, $m )
) {
return;
} else {
- wfDebugLog( 'XMP', __METHOD__
+ wfDebugLog( 'XMP', __METHOD__
. " Expected GPSCoordinate, but got $val." );
$val = null;
return;
$name = $columns[1];
$simpleUpper = $columns[12];
$simpleLower = $columns[13];
-
+
$source = codepointToUtf8( hexdec( $codepoint ) );
if( $simpleUpper ) {
$wikiUpperChars[$source] = codepointToUtf8( hexdec( $simpleUpper ) );
* @param $string String The string
* @return String String with the character codes replaced.
*/
- private static function replaceForNativeNormalize( $string ) {
+ private static function replaceForNativeNormalize( $string ) {
$string = preg_replace(
'/[\x00-\x08\x0b\x0c\x0e-\x1f]/',
UTF8_REPLACEMENT,
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
- *
+ *
* @file
* @ingroup UtfNormal
*/
/**
* Some constant definitions for the unicode normalization module.
*
- * Note: these constants must all be resolvable at compile time by HipHop,
+ * Note: these constants must all be resolvable at compile time by HipHop,
* since this file will not be executed during request startup for a compiled
* MediaWiki.
*
*
* @file
*/
-
+
UtfNormal::\$utfCombiningClass = unserialize( '$serCombining' );
UtfNormal::\$utfCanonicalComp = unserialize( '$serComp' );
UtfNormal::\$utfCanonicalDecomp = unserialize( '$serCanon' );
* @ingroup Cache
*/
class EhcacheBagOStuff extends BagOStuff {
- var $servers, $cacheName, $connectTimeout, $timeout, $curlOptions,
+ var $servers, $cacheName, $connectTimeout, $timeout, $curlOptions,
$requestData, $requestDataPos;
-
+
var $curls = array();
/**
}
$this->servers = $params['servers'];
$this->cacheName = isset( $params['cache'] ) ? $params['cache'] : 'mw';
- $this->connectTimeout = isset( $params['connectTimeout'] )
+ $this->connectTimeout = isset( $params['connectTimeout'] )
? $params['connectTimeout'] : 1;
$this->timeout = isset( $params['timeout'] ) ? $params['timeout'] : 1;
$this->curlOptions = array(
if ( $response['http_code'] >= 300 ) {
wfDebug( __METHOD__.": GET failure, got HTTP {$response['http_code']}\n" );
wfProfileOut( __METHOD__ );
- return false;
+ return false;
}
$body = $response['body'];
$type = $response['content_type'];
* @return int
*/
protected function attemptPut( $key, $data, $type, $ttl ) {
- // In initial benchmarking, it was 30 times faster to use CURLOPT_POST
+ // In initial benchmarking, it was 30 times faster to use CURLOPT_POST
// than CURLOPT_UPLOAD with CURLOPT_READFUNCTION. This was because
- // CURLOPT_UPLOAD was pushing the request headers first, then waiting
+ // CURLOPT_UPLOAD was pushing the request headers first, then waiting
// for an ACK packet, then sending the data, whereas CURLOPT_POST just
// sends the headers and the data in a single send().
$response = $this->doItemRequest( $key,
*/
protected function createCache( $key ) {
wfDebug( __METHOD__.": creating cache for $key\n" );
- $response = $this->doCacheRequest( $key,
+ $response = $this->doCacheRequest( $key,
array(
CURLOPT_POST => 1,
CURLOPT_CUSTOMREQUEST => 'PUT',
if ( array_diff_key( $curlOptions, $this->curlOptions ) ) {
// var_dump( array_diff_key( $curlOptions, $this->curlOptions ) );
throw new MWException( __METHOD__.": to prevent options set in one doRequest() " .
- "call from affecting subsequent doRequest() calls, only options listed " .
+ "call from affecting subsequent doRequest() calls, only options listed " .
"in \$this->curlOptions may be specified in the \$curlOptions parameter." );
}
$curlOptions += $this->curlOptions;
* @return Mixed
*/
public function replace( $key, $value, $exptime = 0 ) {
- return $this->client->replace( $this->encodeKey( $key ), $value,
+ return $this->client->replace( $this->encodeKey( $key ), $value,
$this->fixExpiry( $exptime ) );
}
return false;
}
if ( substr( $data, -2 ) !== "\r\n" ) {
- $this->_handle_error( $sock,
+ $this->_handle_error( $sock,
'line ending missing from data block from $1' );
return false;
}
}
/**
- * Read the specified number of bytes from a stream. If there is an error,
+ * Read the specified number of bytes from a stream. If there is an error,
* mark the socket dead.
*
* @param $sock The socket
function _fgets( $sock ) {
$result = fgets( $sock );
// fgets() may return a partial line if there is a select timeout after
- // a successful recv(), so we have to check for a timeout even if we
+ // a successful recv(), so we have to check for a timeout even if we
// got a string response.
$data = stream_get_meta_data( $sock );
if ( $data['timed_out'] ) {
public function unlock( $key ) {
return $this->client->unlock( $this->encodeKey( $key ) );
}
-
+
/**
* @param $key string
* @param $value int
*/
/**
- * A cache class that replicates all writes to multiple child caches. Reads
- * are implemented by reading from the caches in the order they are given in
+ * A cache class that replicates all writes to multiple child caches. Reads
+ * are implemented by reading from the caches in the order they are given in
* the configuration until a cache gives a positive result.
*
* @ingroup Cache
/**
* Factory function that creates a memcached client object.
*
- * This always uses the PHP client, since the PECL client has a different
- * hashing scheme and a different interpretation of the flags bitfield, so
+ * This always uses the PHP client, since the PECL client has a different
+ * hashing scheme and a different interpretation of the flags bitfield, so
* switching between the two clients randomly would be disasterous.
*
* @param $params array
/** Associative array mapping module name to info associative array */
protected $moduleInfos = array();
-
+
/** Associative array mapping framework ids to a list of names of test suite modules */
/** like array( 'qunit' => array( 'mediawiki.tests.qunit.suites', 'ext.foo.tests', .. ), .. ) */
protected $testModuleNames = array();
public function getModuleNames() {
return array_keys( $this->moduleInfos );
}
-
+
/**
* Get a list of test module names for one (or all) frameworks.
* If the given framework id is unknkown, or if the in-object variable is not an array,
* Combines an associative array mapping media type to CSS into a
* single stylesheet with "@media" blocks.
*
- * @param $styles Array: Array keyed by media type containing (arrays of) CSS strings.
+ * @param $stylePairs Array: Array keyed by media type containing (arrays of) CSS strings.
*
* @return Array
*/
* NOTE: The mtime of the module's messages is NOT automatically included.
* If you want this to happen, you'll need to call getMsgBlobMtime()
* yourself and take its result into consideration.
- *
+ *
* @param $context ResourceLoaderContext: Context object
* @return Integer: UNIX timestamp
*/
/**
* Gets group name
- *
+ *
* @return String: Name of group
*/
public function getGroup() {
'MediaWiki:Print.css' => array( 'type' => 'style', 'media' => 'print' ),
);
if ( $wgHandheldStyle ) {
- $pages['MediaWiki:Handheld.css'] = array(
- 'type' => 'style',
+ $pages['MediaWiki:Handheld.css'] = array(
+ 'type' => 'style',
'media' => 'handheld' );
}
return $pages;
/**
* Gets group name
- *
+ *
* @return String: Name of group
*/
public function getGroup() {
global $wgUser;
return $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, $wgUser->getTouched() );
}
-
+
/**
* @param $context ResourceLoaderContext
* @return array
/**
* Really find the title match.
- * @return null|\Title
+ * @return null|Title
*/
private static function getNearMatchInternal( $searchterm ) {
global $wgContLang, $wgEnableSearchContributorsByIP;
$searchon = $this->db->strencode(join(',', $q));
$field = $this->getIndexField($fulltext);
-
+
// requires Net Search Extender or equivalent
//return " CONTAINS($field, '$searchon') > 0 ";
-
+
return " lcase($field) LIKE lcase('%$searchon%')";
}
* Return a partial WHERE clause to limit the search to the given namespaces
*
* @return String
- * @private
+ * @private
*/
function queryNamespaces() {
$namespaces = implode( ',', $this->namespaces );
$match = $this->parseQuery( $filteredTerm, $fulltext );
$page = $this->db->tableName( 'page' );
$searchindex = $this->db->tableName( 'searchindex' );
-
+
return 'SELECT page_id, page_namespace, page_title, ftindex.[RANK]' .
"FROM $page,FREETEXTTABLE($searchindex , $match, LANGUAGE 'English') as ftindex " .
'WHERE page_id=ftindex.[KEY] ';
* @param $id Integer
* @param $title String
* @param $text String
- * @return bool|\ResultWrapper
+ * @return bool|ResultWrapper
*/
function update( $id, $title, $text ) {
// We store the column data as UTF-8 byte order marked binary stream
- // because we are invoking the plain text IFilter on it so that, and we want it
+ // because we are invoking the plain text IFilter on it so that, and we want it
// to properly decode the stream as UTF-8. SQL doesn't support UTF8 as a data type
// but the indexer will correctly handle it by this method. Since all we are doing
// is passing this data to the indexer and never retrieving it via PHP, this will save space
*
* @param $id Integer
* @param $title String
- * @return bool|\ResultWrapper
+ * @return bool|ResultWrapper
*/
function updateTitle( $id, $title ) {
$table = $this->db->tableName( 'searchindex' );
* @ingroup Search
*/
class SearchOracle extends SearchEngine {
-
- private $reservedWords = array ('ABOUT' => 1,
- 'ACCUM' => 1,
- 'AND' => 1,
- 'BT' => 1,
- 'BTG' => 1,
- 'BTI' => 1,
+
+ private $reservedWords = array ('ABOUT' => 1,
+ 'ACCUM' => 1,
+ 'AND' => 1,
+ 'BT' => 1,
+ 'BTG' => 1,
+ 'BTI' => 1,
'BTP' => 1,
- 'FUZZY' => 1,
- 'HASPATH' => 1,
- 'INPATH' => 1,
- 'MINUS' => 1,
- 'NEAR' => 1,
+ 'FUZZY' => 1,
+ 'HASPATH' => 1,
+ 'INPATH' => 1,
+ 'MINUS' => 1,
+ 'NEAR' => 1,
'NOT' => 1,
- 'NT' => 1,
- 'NTG' => 1,
- 'NTI' => 1,
- 'NTP' => 1,
- 'OR' => 1,
- 'PT' => 1,
- 'RT' => 1,
+ 'NT' => 1,
+ 'NTG' => 1,
+ 'NTI' => 1,
+ 'NTP' => 1,
+ 'OR' => 1,
+ 'PT' => 1,
+ 'RT' => 1,
'SQE' => 1,
- 'SYN' => 1,
- 'TR' => 1,
- 'TRSYN' => 1,
- 'TT' => 1,
+ 'SYN' => 1,
+ 'TR' => 1,
+ 'TRSYN' => 1,
+ 'TT' => 1,
'WITHIN' => 1);
/**
), 'SearchOracle::update' );
// Sync the index
- // We need to specify the DB name (i.e. user/schema) here so that
+ // We need to specify the DB name (i.e. user/schema) here so that
// it can work from the installer, where
// ALTER SESSION SET CURRENT_SCHEMA = ...
// was used.
- $dbw->query( "CALL ctx_ddl.sync_index(" .
+ $dbw->query( "CALL ctx_ddl.sync_index(" .
$dbw->addQuotes( $dbw->getDBname() . '.' . $dbw->tableName( 'si_text_idx', 'raw' ) ) . ")" );
- $dbw->query( "CALL ctx_ddl.sync_index(" .
+ $dbw->query( "CALL ctx_ddl.sync_index(" .
$dbw->addQuotes( $dbw->getDBname() . '.' . $dbw->tableName( 'si_title_idx', 'raw' ) ) . ")" );
}
* @file
* @ingroup Site
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author John Erling Blad < jeblad@gmail.com >
* @author Daniel Kinzler
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*
* @since 1.21
*
- * @param string|false
+ * @param $pagename string: Page name (default: false)
*
* @return string
*/
* @file
* @ingroup Site
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
interface Site {
* @file
* @ingroup Site
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
class SiteArray extends GenericArrayObject implements SiteList {
* @file
* @ingroup Site
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
interface SiteList extends Countable, Traversable, Serializable, ArrayAccess {
* @file
* @ingroup Site
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
* @author Daniel Werner
*/
* @file
* @ingroup Site
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
class Sites {
* @file
* @ingroup Site
*
- * @licence GNU GPL v2+
+ * @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
class SitesTable extends ORMTable {
/**
* Returns whether a given ISBN (10 or 13) is valid. True indicates validity.
- * @param isbn string ISBN passed for check
+ * @param $isbn string ISBN passed for check
* @return bool
*/
public static function isValidISBN( $isbn ) {
*
* @since 1.20
*
- * @param {function} $computeFunction
+ * @param function $computeFunction
* @param array|mixed $args
* @param string|null $key
*
*
* @since 1.20
*
- * @param {function} $computeFunction
+ * @param function $computeFunction
* @param array $args
* @param string|null $key
*/
$this->opts['topOnly'] = false;
}
- $form = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'class' => 'mw-contributions-form' ) );
+ $form = Html::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'class' => 'mw-contributions-form' ) );
# Add hidden params for tracking except for parameters in $skipParameters
$skipParameters = array( 'namespace', 'nsInvert', 'deletedOnly', 'target', 'contribs', 'year', 'month', 'topOnly', 'associated' );
if ( $tagFilter ) {
$filterSelection =
- Xml::tags( 'td', array( 'class' => 'mw-label' ), array_shift( $tagFilter ) ) .
- Xml::tags( 'td', array( 'class' => 'mw-input' ), implode( ' ', $tagFilter ) );
+ Html::rawElement( 'td', array( 'class' => 'mw-label' ), array_shift( $tagFilter ) ) .
+ Html::rawElement( 'td', array( 'class' => 'mw-input' ), implode( ' ', $tagFilter ) );
} else {
- $filterSelection = Xml::tags( 'td', array( 'colspan' => 2 ), '' );
+ $filterSelection = Html::rawElement( 'td', array( 'colspan' => 2 ), '' );
}
- $targetSelection = Xml::tags( 'td', array( 'colspan' => 2 ),
+ $targetSelection = Html::rawElement( 'td', array( 'colspan' => 2 ),
Xml::radioLabel(
$this->msg( 'sp-contributions-newbies' )->text(),
'contribs',
''
)
) .
- Xml::tags( 'td', null,
+ Html::rawElement( 'td', null,
Html::namespaceSelector( array(
'selected' => $this->opts['namespace'],
'all' => '',
$deletedOnlyCheck = '';
}
- $extraOptions = Xml::tags( 'td', array( 'colspan' => 2 ),
+ $extraOptions = Html::rawElement( 'td', array( 'colspan' => 2 ),
$deletedOnlyCheck .
Html::rawElement( 'span', array( 'style' => 'white-space: nowrap' ),
Xml::checkLabel(
array( 'class' => 'mw-input' )
)
)
- ) ;
+ );
$dateSelectionAndSubmit = Xml::tags( 'td', array( 'colspan' => 2 ),
Xml::dateMenu(
$form .=
Xml::fieldset( $this->msg( 'sp-contributions-search' )->text() ) .
- Xml::openElement( 'table', array( 'class' => 'mw-contributions-table' ) ) .
- Xml::openElement( 'tr' ) .
- $targetSelection .
- Xml::closeElement( 'tr' ) .
- Xml::openElement( 'tr' ) .
- $namespaceSelection .
- Xml::closeElement( 'tr' ) .
- Xml::openElement( 'tr' ) .
- $filterSelection .
- Xml::closeElement( 'tr' ) .
- Xml::openElement( 'tr' ) .
- $extraOptions .
- Xml::closeElement( 'tr' ) .
- Xml::openElement( 'tr' ) .
- $dateSelectionAndSubmit .
- Xml::closeElement( 'tr' ) .
- Xml::closeElement( 'table' );
+ Html::rawElement( 'table', array( 'class' => 'mw-contributions-table' ), "\n" .
+ Html::rawElement( 'tr', array(), $targetSelection ) . "\n" .
+ Html::rawElement( 'tr', array(), $namespaceSelection ) . "\n" .
+ Html::rawElement( 'tr', array(), $filterSelection ) . "\n" .
+ Html::rawElement( 'tr', array(), $extraOptions ) . "\n" .
+ Html::rawElement( 'tr', array(), $dateSelectionAndSubmit ) . "\n"
+ );
$explain = $this->msg( 'sp-contributions-explain' );
if ( $explain->exists() ) {
/**
* @param $context IContextSource
- * @param $par null|array
+ * @param $par array (Default null)
+ * @param $including boolean Whether this page is being transcluded in
+ * another page
*/
function __construct( IContextSource $context = null, $par = null, $including = null ) {
if ( $context ) {
$query['rcid'] = $result->rc_id;
}
- $plink = Linker::linkKnown(
+ // Linker::linkKnown() uses 'known' and 'noclasses' options. This breaks the colouration for stubs.
+ $plink = Linker::link(
$title,
null,
array( 'class' => 'mw-newpages-pagename' ),
$query,
- array( 'known' ) // Set explicitly to avoid the default of 'known','noclasses'. This breaks the colouration for stubs
+ array( 'known' )
);
$histLink = Linker::linkKnown(
$title,
$opts = parent::getDefaultOptions();
$opts->add( 'target', '' );
$opts->add( 'showlinkedto', false );
- $opts->add( 'tagfilter', '' );
return $opts;
}
'helptext' => $helptext,
);
}
-
+
function execute() {
if( $this->data['message'] ) {
?>
if ( isset( $this->data['extraInput'] ) && is_array( $this->data['extraInput'] ) ) {
foreach ( $this->data['extraInput'] as $inputItem ) { ?>
<tr>
- <?php
+ <?php
if ( !empty( $inputItem['msg'] ) && $inputItem['type'] != 'checkbox' ) {
- ?><td class="mw-label"><label for="<?php
+ ?><td class="mw-label"><label for="<?php
echo htmlspecialchars( $inputItem['name'] ); ?>"><?php
$this->msgWiki( $inputItem['msg'] ) ?></label><?php
} else {
<input type="<?php echo htmlspecialchars( $inputItem['type'] ) ?>" name="<?php
echo htmlspecialchars( $inputItem['name'] ); ?>"
tabindex="<?php echo $tabIndex++; ?>"
- value="<?php
+ value="<?php
if ( $inputItem['type'] != 'checkbox' ) {
echo htmlspecialchars( $inputItem['value'] );
} else {
echo '1';
- }
+ }
?>" id="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
- <?php
+ <?php
if ( $inputItem['type'] == 'checkbox' && !empty( $inputItem['value'] ) )
- echo 'checked="checked"';
- ?> /> <?php
+ echo 'checked="checked"';
+ ?> /> <?php
if ( $inputItem['type'] == 'checkbox' && !empty( $inputItem['msg'] ) ) {
?>
<label for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"><?php
<?php } ?>
</td>
</tr>
-<?php
-
+<?php
}
}
?>
/**
* Getter for file metadata.
*
- * @param key String: key under which file information is stored
+ * @param $key String: key under which file information is stored
* @return Array
*/
public function getMetadata ( $key ) {
/**
* Getter for fileProps
*
- * @param key String: key under which file information is stored
+ * @param $key String: key under which file information is stored
* @return Array
*/
public function getFileProps ( $key ) {
* @author Riadismet
* @author Samer
* @author Sami Lab
+ * @author TTMTT
* @author Tarawneh
* @author TheEgyptian
* @author Uwe a
'edit-already-exists' => 'لم يمكن إنشاء صفحة جديدة.
هي موجودة بالفعل.',
'defaultmessagetext' => 'نص الرسالة الافتراضي',
+'content-failed-to-parse' => 'فشل في تحليل $2 محتوى لـ $1 نموذج: $3',
+'invalid-content-data' => 'بيانات المحتوى غير صالحة',
+'content-not-allowed-here' => '"$1" المحتوى غير مسموح على صفحة [[$2]]',
# Parser/template warnings
'expensive-parserfunction-warning' => "'''تحذير:''' هذه الصفحة تحتوي على استدعاءات دالة محلل كثيرة مكلفة.
'undeletedrevisions' => 'تم استرجاع {{PLURAL:$1|تعديل واحد|تعديلين|$1 تعديلات|$1 تعديل|$1 تعديلا}}',
'undeletedrevisions-files' => 'أسترجعت {{PLURAL:$1||مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}} و{{PLURAL:$2||ملف واحد|ملفان|$2 ملفات|$2 ملفًا|$2 ملف}}',
'undeletedfiles' => 'أسترجع {{PLURAL:$1||ملف واحد|ملفان|$1 ملفات|$1 ملفًا|$1 ملف}}',
-'cannotundelete' => 'Ù\81Ø´Ù\84 Ø¥Ù\84غاء اÙ\84ØØ°Ù\81؛
-ربÙ\85ا Ù\82اÙ\85 شخص آخر بإÙ\84غاء ØØ°Ù\81 اÙ\84صÙ\81ØØ© Ù\82بÙ\84Ù\83.',
+'cannotundelete' => 'Ù\81Ø´Ù\84 اÙ\84استرجاع؛
+ربÙ\85ا Ù\82اÙ\85 شخص آخر باسترجاع اÙ\84صÙ\81ØØ© باÙ\84Ù\81عÙ\84.',
'undeletedpage' => "'''تم استرجاع $1'''
راجع [[Special:Log/delete|سجل الحدف]] لمعاينة عمليات الحذف والاسترجاعات الحديثة.",
'immobile-target-namespace-iw' => 'وصلة الإنترويكي ليست هدفاً صالحاً لنقل صفحة.',
'immobile-source-page' => 'هذه الصفحة غير قابلة للنقل.',
'immobile-target-page' => 'غير قادر على النقل إلى العنوان الوجهة هذا.',
+'bad-target-model' => 'الوجهة المطلوبة تستخدم نموذج محتوى مختلف. لا يمكن تحويل من $1 إلى $2.',
'imagenocrossnamespace' => 'لا يمكن نقل الملف إلى نطاق غير نطاق الملفات',
'nonfile-cannot-move-to-file' => 'لا يمكن نقل غير الملفات إلى نطاق الملفات',
'imagetypemismatch' => 'امتداد الملف الجديد لا يطابق نوعه',
'pageinfo-watchers' => 'عدد المراقبين',
'pageinfo-redirects-name' => 'التحويلات إلى هذه الصفحة',
'pageinfo-subpages-name' => 'الصفحات الفرعية لهذه الصفحة',
-'pageinfo-subpages-value' => '$1 ({{PLURAL:$2|لا تحويلات|تحويلة واحدة|تحويلتان|$2 تحويلات|$2 تحويلة|$2 تحويلة}}؛ {{PLURAL:$2|لا يوجد غير التحويلات|صفحة واحدة غير التحويلات|صفحتان من غير التحويلات|$2 صفحات من غير التحويلات|$2 صفحة من غير التحويلات|$2 صفحة من غير التحويلات}})',
+'pageinfo-subpages-value' => '$1 ({{PLURAL:$2|لا تحويلات|تحويلة واحدة|تحويلتان|$2 تحويلات|$2 تحويلة}}؛ $3 {{PLURAL:$3|من غير التحويلات}})',
'pageinfo-firstuser' => 'منشئ الصفحة',
'pageinfo-firsttime' => 'تاريخ إنشاء الصفحة',
'pageinfo-lastuser' => 'آخر محرر',
'pageinfo-recent-edits' => 'عدد التعديلات الأخيرة (خلال {{PLURAL:$1||يوم واحد|يومين|$1 أيام|$1 يوماً|$1 يوم}})',
'pageinfo-recent-authors' => 'عدد المؤلفين المختلفين الأخيرين',
'pageinfo-magic-words' => '{{PLURAL:$1|لا كلمات سحرية|الكلمة|الكلمات}} السحرية ($1)',
-'pageinfo-hidden-categories' => '{{PLURAL:$1|لا تصنيفات مخفية|التصنيف المخفي|التصنيفان المخفيان|التصانيف المخفية}} ($1)',
-'pageinfo-templates' => '{{PLURAL:$1|لا قوالب مضمنة|القالب المضمنن|القالبان المضمنان|القوالب المضمنة}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|لا تصنيفات مخفية|التصنيف المخفي|التصنيفان المخفيان|التصنيفات المخفية ($1)}}',
+'pageinfo-templates' => '{{PLURAL:$1|لا قوالب مضمنة|القالب المضمن|القالبان المضمنان|القوالب المضمنة ($1)}}',
'pageinfo-toolboxlink' => 'معلومات عن هذه الصفحة',
'pageinfo-redirectsto' => 'تحويلة إلى',
'pageinfo-redirectsto-info' => 'معلومات',
# Scary transclusion
'scarytranscludedisabled' => '[التضمين بالإنترويكي معطل]',
'scarytranscludefailed' => '[البحث عن القالب فشل ل$1]',
+'scarytranscludefailed-httpstatus' => '[فشل جلب القالب لـ $1: HTTP $2]',
'scarytranscludetoolong' => '[المسار طويل للغاية]',
# Delete conflict
'hidden-category-category' => 'ܣܕܪ̈ܐ ܛܘܫܝ̈ܐ',
'category-subcat-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܗܢܐ ܣܕܪܐ ܦܪܥܝܐ ܕܐܬܐ ܒܠܚܘܕ.|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ {{PLURAL:$1|ܣܕܪܐ ܦܪܥܝܐ ܕܐܬܐ|$1 ܣܕܪ̈ܐ ܦܪ̈ܥܝܐ ܕܐܬܝܢ}}، ܡܢ ܣܘܝܟܐ ܕ $2.}}',
'category-subcat-count-limited' => 'ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ {{PLURAL:$1|ܣܕܪܐ ܦܪܥܝܐ ܗܢܐ|$1 ܣܕܪ̈ܐ ܦܪ̈ܥܝܐ ܗܠܝܢ}}.',
-'category-article-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܦܐܬܐ ܗܕܐ ܒܠܚܘܕ.|ܐܝܬ {{PLURAL:$1|ܦܐܬܐ|$1 ܦܐܬܬ̈ܐ}} ܒܣܕܪܐ ܗܢܐ، ܡܢ ܣܘܝܟܐ ܕ$2.}}',
+'category-article-count' => '{{PLURAL:$2|ܣܕܪܐ ܗܢܐ ܐܝܬ ܒܗ ܦܐܬܐ ܗܕܐ ܒܠܚܘܕ.|ܐܝܬ {{PLURAL:$1|ܦܐܬܐ ܕܐܬܝܐ|$1 ܦܐܬܬ̈ܐ ܕܐܬܝܢ}} ܒܣܕܪܐ ܗܢܐ, ܡܢ ܣܘܝܟܐ ܕ $2.}}',
'category-article-count-limited' => '{{PLURAL:$1|ܦܐܬܐ ܗܕܐ|$1 ܦܐܬܬ̈ܐ ܗܠܝܢ}} ܒܣܕܪܐ ܗܢܐ.',
-'category-file-count' => '{{PLURAL:$2|Ü£Ü\95ܪÜ\90 Ü\97Ü¢Ü\90 Ü\90Ü\9dܬ Ü\92Ü\97 Ü Ü¦Ü¦Ü\90 Ü\97Ü¢Ü\90 Ü\92Ü Ü\9aÜ\98Ü\95.|{{PLURAL:$1|Ü Ü¦Ü¦Ü\90 Ü\95Ü\90ܬÜ\90 Ü\90Ü\9dܬÜ\98Ü\97Ü\9d|$1 Ü Ü¦Ü¦Ì\88Ü\90 Ü\95Ü\90ܬÜ\9dÜ¢ Ü\90Ü\9dܬÜ\9dÜ\97Ü\98Ü¢}} Ü\92Ü£Ü\95ܪÜ\90 Ü\97Ü¢Ü\90Ø\8c Ü¡Ü¢ Ü£Ü\98Ü\9dÜ\9fÜ\90 Ü\95$2 Ü\9fÜ Ü¢Ü\90Ü\9dܬ.}}',
+'category-file-count' => '{{PLURAL:$2|Ü£Ü\95ܪÜ\90 Ü\97Ü¢Ü\90 Ü\90Ü\9dܬ Ü\92Ü\97 Ü Ü¦Ü¦Ü\90 Ü\95Ü\90ܬÜ\90 Ü\92Ü Ü\9aÜ\98Ü\95.|{{PLURAL:$1|Ü Ü¦Ü¦Ü\90 Ü\95Ü\90ܬÜ\90 Ü\90Ü\9dܬÜ\98Ü\97Ü\9d|$1 Ü Ü¦Ü¦Ì\88Ü\90 Ü\95Ü\90ܬÜ\9dÜ¢ Ü\90Ü\9dܬÜ\9dÜ\97Ü\98Ü¢}} Ü\92Ü£Ü\95ܪÜ\90 Ü\97Ü¢Ü\90Ø\8c Ü¡Ü¢ Ü£Ü\98Ü\9dÜ\9fÜ\90 Ü\95 $2.}}',
'category-file-count-limited' => 'ܐܝܬ {{PLURAL:$1|ܠܦܦܐ ܕܐܬܐ|$1 ܠܦܦ̈ܐ ܕܐܬܝܢ}} ܒܣܕܪܐ ܗܫܝܐ.',
'listingcontinuesabbrev' => '(ܫܘܠܡܐ)',
'searchprofile-images' => 'ܡܝܕ̈ܝܐ ܣܓܝܐ̈ܐ (Multimedia)',
'searchprofile-everything' => 'ܟܠ ܡܕܡ',
'searchprofile-advanced' => 'ܡܬܩܕܡܢܐ',
-'searchprofile-articles-tooltip' => 'ܒܨܝ ܒ $1',
+'searchprofile-articles-tooltip' => 'ܒܨܝ ܒܓܘ $1',
'searchprofile-project-tooltip' => 'ܒܨܝ ܒ $1',
'searchprofile-images-tooltip' => 'ܒܨܝ ܥܠ ܠܦܦ̈ܐ',
'search-result-size' => '$1 ({{PLURAL:$2|1 ܡܠܬܐ|$2 ܡܠ̈ܐ}})',
'search-redirect' => '(ܨܝܒ $1)',
'search-section' => '(ܡܢܬܐ $1)',
-'search-suggest' => 'Ü£Ü\9fÜ ܐܢܬ: $1',
+'search-suggest' => 'Ü\90ܪÜ\90 Ü£Ü\9fÜ Ü\97Ü\98Ü\90 ܐܢܬ: $1',
'search-interwiki-caption' => 'ܬܪ̈ܡܝܬܐ ܐܚܘܬ̈ܐ',
'search-interwiki-default' => 'ܦܠܛ̈ܐ ܕ $1:',
'search-interwiki-more' => '(ܝܬܝܪ)',
'filehist-dimensions' => 'ܩܝܡ̈ܐ',
'filehist-filesize' => 'ܥܓܪܐ ܕܠܦܦܐ',
'filehist-comment' => 'ܥܘܩܒܐ',
-'imagelinks' => 'Ü\9aÜ«ܚܬܐ ܕܠܦܦܐ',
+'imagelinks' => 'Ü¡Ü¦Ü ܚܬܐ ܕܠܦܦܐ',
'linkstoimage' => '{{PLURAL:$1|ܦܐܬܐ ܗܕܐ ܐܣܪ|$1 ܦܐܬܬ̈ܐ ܗܠܝܢ ܐܣܪܝܢ}} ܥܡ ܗܢܐ ܠܦܦܐ:',
'nolinkstoimage' => 'ܠܝܬ ܦܐܬܐ ܕܐܣܪ ܠܗܢܐ ܠܦܦܐ.',
'uploadnewversion-linktext' => 'ܐܣܩ ܨܚܚܐ ܚܕܬܐ ܡܢ ܗܢܐ ܠܦܦܐ',
'watching' => 'ܪܗܝܐ...',
'unwatching' => 'ܠܐ ܪܗܝܐ...',
-'enotif_reset' => 'ܫܘܕܥ ܟܠ ܦܐܬܬ̈ܐ ܐܝܟ ܣܥܝܪ̈ܐ',
+'enotif_reset' => 'Ü«Ü\98Ü\95Ü¥ Ü\9fÜ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü\90Ü\9dÜ\9f ܣܥÜ\9dܪÌ\88ܬÜ\90',
'enotif_newpagetext' => 'ܗܕܐ ܗܝ ܦܐܬܐ ܚܕܬܐ',
'enotif_impersonal_salutation' => 'ܡܦܠܚܢܐ {{SITENAME}}',
'changed' => 'ܐܫܬܚܠܦܬ',
# Tooltip help for the actions
'tooltip-pt-userpage' => 'ܦܐܬܐ ܕܡܦܠܚܢܐ ܕܝܠܟ',
-'tooltip-pt-mytalk' => 'ܦÜ\90ܬÜ\90 Ü\95Ü¡Ü¡Ü Ü\98ܟ',
+'tooltip-pt-mytalk' => 'ܦÜ\90ܬÜ\90 Ü\95Ü¡Ü¡Ü Ü Ü\90 Ü\95Ü\9dÜ ܟ',
'tooltip-pt-preferences' => 'Your preferences',
-'tooltip-pt-watchlist' => 'Ü¡Ü\9fܬÜ\92Ü¢Ü\98ܬÜ\90 Ü\95ܦÜ\90ܬܬÌ\88Ü\90 Ü\95Ü\92ܪÜ\97Ü\9dܬ ܐܢܬ ܫܘܚܠܦ̈ܐ ܕܬܗܘܐ ܒܗܘܢ',
+'tooltip-pt-watchlist' => 'Ü¡Ü\9fܬÜ\92Ü¢Ü\98ܬÜ\90 Ü\95ܦÜ\90ܬܬÌ\88Ü\90 Ü\95ܬܪÜ\97Ü\9d ܐܢܬ ܫܘܚܠܦ̈ܐ ܕܬܗܘܐ ܒܗܘܢ',
'tooltip-pt-mycontris' => 'ܡܟܬܒܢܘܬܐ ܕܫܘܬܦܘܝܬ̈ܟ',
'tooltip-pt-login' => 'ܢܠܒܒ ܠܟ ܕܣܓܠ ܐܢܬ ܥܠܠܐ ܕܝܠܟ، ܐܠܐ ܗܢܐ ܠܐ ܐܝܬܝܗܝ ܐܠܨܝܐ',
'tooltip-pt-logout' => 'ܦܠܛܐ',
'tooltip-ca-talk' => 'ܡܡܠܠܐ ܥܠ ܚܒܝܫܬܐ ܕܦܐܬܐ',
-'tooltip-ca-addsection' => 'ܫܪÜ\9d ܦܣÜ\98Ü©ܐ ܚܕܬܐ',
-'tooltip-ca-viewsource' => 'Ü\97Ü¢Ü\90 ܦÜ\90ܬÜ\90 Ü¢Ü\9bܪܬÜ\90 Ü\9dÜ Ü\97.
-Ü\90Ü\9dܬ Ü\92Ü\9f ܬÜ\9aÜ\99Ü\9d ܡܒܘܥܐ ܕܝܠܗ',
+'tooltip-ca-addsection' => 'ܫܪÜ\9d ܡܢܬܐ ܚܕܬܐ',
+'tooltip-ca-viewsource' => 'Ü\97Ü¢Ü\90 ܦÜ\90ܬÜ\90 Ü¢Ü\9bܪܬÜ\90 Ü\90Ü\9dܬÜ\9dÜ\97Ü\9d.
+ܡܨÜ\90 Ü\90ܢܬ Ü\95ܬÜ\9aÜ\99Ü\90 ܡܒܘܥܐ ܕܝܠܗ',
'tooltip-ca-protect' => 'ܢܛܘܪ ܗܕܐ ܦܐܬܐ',
'tooltip-ca-delete' => 'ܫܘܦ ܦܐܬܐ ܗܕܐ',
'tooltip-ca-move' => 'ܫܢܝ ܦܐܬܐ ܗܕܐ',
'tooltip-n-mainpage-description' => 'ܬܪܘܩܬܐ ܕܦܐܬܐ ܪܝܫܝܬܐ',
'tooltip-n-portal' => 'ܚܕܪ ܬܪܡܝܬܐ، ܡܢܐ ܡܫܟܚ ܐܢܬ ܠܥܒܕܐ، ܐܝܟܐ ܬܚܙܝ ܟܠ ܡܐ ܕܣܢܝܩ ܐܢܬ ܠܗ',
'tooltip-n-recentchanges' => 'ܡܟܬܒܢܘܬܐ ܒܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܒܓܘ ܘܝܩܝ.',
-'tooltip-n-randompage' => 'ܦܬÜ\98Ü\9f Ü¡Ü\93Ü Ü¬Ü\90 ܚܘܝܚܬܐ',
+'tooltip-n-randompage' => 'Ü\90Ü\9bܥܢ Ü¡Ü\93Ü Ü¬Ü\90 Ü\9aÜ\95 ܚܘܝܚܬܐ',
'tooltip-n-help' => 'ܕܘܟܐ ܠܥܘܕܪܢܐ',
-'tooltip-feed-atom' => 'ܬܪܣÜ\9dܬÜ\90 Ü\95Atom Ü Ü\97Ü¢Ü\90 ܦÜ\90ܬܬܐ',
+'tooltip-feed-atom' => 'Ü\9bÜ¥Ü\9dÜ¡Ü\98ܬÜ\90 Ü\95Ü\90Ü\9bÜ\98Ü¡ Ü Ü¦Ü\90ܬܬÜ\90 Ü\97Ü\95ܐ',
'tooltip-t-contributions' => 'ܡܟܬܒܢܘܬܐ ܒܫܘܬܦ̈ܐ ܕܗܢܐ ܡܦܠܚܢܐ',
'tooltip-t-emailuser' => 'ܫܕܪ ܐܓܪܬܐ ܠܗܢܐ ܡܦܠܚܢܐ',
'tooltip-t-upload' => 'ܐܣܩ ܠܦܦ̈ܐ',
'tooltip-t-specialpages' => 'ܡܟܬܒܢܘܬܐ ܒܟܠ ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ',
-'tooltip-ca-nstab-main' => 'Ü\9aÜ\98Ü\9d ܦÜ\90ܬܬÜ\90 Ü\95Ü\9aÜ\92Ì\88Ü\9dܫܬÜ\90',
+'tooltip-ca-nstab-main' => 'ܚܘܝ ܦܐܬܐ ܕܚܒ̈ܝܫܬܐ',
'tooltip-ca-nstab-user' => 'ܚܘܝ ܦܐܬܐ ܕܡܦܠܚܢܐ',
'tooltip-ca-nstab-image' => 'ܚܘܝ ܦܐܬܐ ܕܠܦܦܐ',
'tooltip-ca-nstab-category' => 'ܚܘܝ ܦܐܬܐ ܕܣܕܪܐ',
'shared-repo-from' => 'de $1',
'shared-repo' => 'un repositoriu compartíu',
'filepage.css' => "/* El CSS allugáu equí s'incluye na páxina de descripción del ficheru, que tamién s'incluye nes wikis clientes foriates */",
-'upload-disallowed-here' => 'Por desgracia nun pues sobrescribir esta imaxe.',
+'upload-disallowed-here' => 'Nun pues sobrescribir esti ficheru.',
# File reversion
'filerevert' => 'Revertir $1',
# Info page
'pageinfo-title' => 'Información sobro "$1"',
+'pageinfo-not-current' => 'Namái se pue amosar la información pa la revisión actual.',
'pageinfo-header-basic' => 'Información básica',
'pageinfo-header-edits' => "Historial d'ediciones",
'pageinfo-header-restrictions' => 'Proteición de páxina',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría anubrida|Categoríes anubríes}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Plantía incluída|Plantíes incluíes}} ($1)',
'pageinfo-toolboxlink' => 'Información de la páxina',
+'pageinfo-redirectsto' => 'Redirixe a',
+'pageinfo-redirectsto-info' => 'información',
+'pageinfo-contentpage' => 'Contada como páxina de conteníu',
+'pageinfo-contentpage-yes' => 'Sí',
+'pageinfo-protect-cascading' => "Les proteiciones s'activen en serie dende equí",
+'pageinfo-protect-cascading-yes' => 'Sí',
+'pageinfo-protect-cascading-from' => "Les proteiciones s'activen en serie dende",
# Skin names
'skinname-standard' => 'Clásicu',
Ika mapuwedeng [[Special:Search/{{PAGENAME}}|maghanap para sa titulo kan pahinang ini]] sa iba pang mga pahina,
<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} maghanap sa magkasurundong mga talaan],
o [{{fullurl:{{FULLPAGENAME}}|action=edit}} liwaton ining pahina]</span>.',
-'noarticletext-nopermission' => 'Mayo tabi sa presente nin teksto sa pahinang ini.
-Ika mapuwedeng [[Special:Search/{{PAGENAME}}|maghanap para sa titulo kan pahinang ini]] sa iba pang mga pahina,
+'noarticletext-nopermission' => 'Mayo tabing teksto sa presente an pahinang ini.
+Ika mapuwedeng [[Special:Search/{{PAGENAME}}|hanapa para kaining titulo kan pahina]] sa iba pang mga pahina,
o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} maghanap sa magkasurundong mga talaan]</span>.',
'missing-revision' => 'An rebisyon #$1 kan pahina pinagngaranan na "{{PAGENAME}}" bakong eksistido.
'watchnochange' => 'Нічога з Вашага сьпісу назіраньня не зьмянілася за паказаны пэрыяд.',
'watchlist-details' => 'У Вашым сьпісе назіраньня $1 {{PLURAL:$1|старонка|старонкі|старонак}} за выключэньнем старонак абмеркаваньня.',
'wlheader-enotif' => '* Дасылка паведамленьняў па электроннай пошце ўключаная.',
-'wlheader-showupdated' => "* СÑ\82аÑ\80онкÑ\96, Ñ\8fкÑ\96Ñ\8f бÑ\8bлÑ\96 зÑ\8cмененÑ\8bÑ\8f паÑ\81Ñ\8cлÑ\8f Ð\92аÑ\88ага апоÑ\88нÑ\8fга вÑ\96зÑ\8bÑ\82Ñ\83, вÑ\8bлÑ\83Ñ\87анÑ\8bÑ\8f '''Ñ\82лÑ\83стым''' шрыфтам",
+'wlheader-showupdated' => "* СÑ\82аÑ\80онкÑ\96, Ñ\8fкÑ\96Ñ\8f бÑ\8bлÑ\96 зÑ\8cмененÑ\8bÑ\8f паÑ\81Ñ\8cлÑ\8f Ð\92аÑ\88ага апоÑ\88нÑ\8fга вÑ\96зÑ\8bÑ\82Ñ\83, вÑ\8bлÑ\83Ñ\87анÑ\8bÑ\8f '''Ñ\82оÑ\9eстым''' шрыфтам",
'watchmethod-recent' => 'прагляд апошніх зьменаў у старонках са сьпісу назіраньня',
'watchmethod-list' => 'прагляд старонак са сьпісу назіраньня дзеля апошніх зьменах',
'watchlistcontains' => 'Ваш сьпіс назіраньня зьмяшчае $1 {{PLURAL:$1|старонка|старонкі|старонак}}.',
'viewyourtext' => "Vostè pot veure i copiar la font de ' ' les modificacions ' ' d'aquesta pàgina:",
'protectedinterface' => "Aquesta pàgina proporciona el text de la interfície del software d'aquest wiki i està protegida per evitar els abusos.
Per agregar o canviar les traduccions per a tots els wikis, si us plau fes servir [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
-'editinginterface' => "'''Avís:''' Esteu editant una pàgina que conté cadenes de text per a la interfície d'aquest programari. Tingueu en compte que els canvis que es fan a aquesta pàgina afecten a l'aparença de la interfície d'altres usuaris. Pel que fa a les traduccions, plantegeu-vos utilitzar la [//translatewiki.net/wiki/Main_Page?setlang=ca translatewiki.net], el projecte de traducció de MediaWiki.",
+'editinginterface' => "'''Avís:''' Esteu editant una pàgina que conté cadenes de text per a la interfície d'aquest programari. Tingueu en compte que els canvis que es fan a aquesta pàgina afecten a l'aparença de la interfície d'altres usuaris. Per afegir o modificar traduccions a totes les wikis, plantegeu-vos utilitzar la [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
'sqlhidden' => '(consulta SQL oculta)',
'cascadeprotected' => "Aquesta pàgina està protegida i no es pot modificar perquè està inclosa en {{PLURAL:$1|la següent pàgina, que té|les següents pàgines, que tenen}} activada l'opció de «protecció en cascada»:
$2",
'edit-already-exists' => "No s'ha pogut crear una pàgina.
Ja existeix.",
'defaultmessagetext' => 'Missatge per defecte',
+'content-failed-to-parse' => "Ha fallat l'anàlisi del contingut de $2 per al model $1: $3",
+'invalid-content-data' => 'Dades de contingut no vàlides',
+'content-not-allowed-here' => 'No és permés el contingut "$1" a la pàgina [[$2]]',
+
+# Content models
+'content-model-text' => 'text net',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
# Parser/template warnings
'expensive-parserfunction-warning' => "Atenció: Aquesta pàgina conté massa crides a funcions parserfunction complexes.
'timezoneregion-indian' => 'Oceà Índic',
'timezoneregion-pacific' => 'Oceà Pacífic',
'allowemail' => 'Permet que altres usuaris puguin enviar-me correus electrònics',
-'prefs-searchoptions' => 'Preferències de la cerca',
+'prefs-searchoptions' => 'Cerca',
'prefs-namespaces' => 'Espais de noms',
'defaultns' => 'Cerca per defecte en els següents espais de noms:',
'default' => 'per defecte',
'uploadnewversion-linktext' => "Carrega una nova versió d'aquest fitxer",
'shared-repo-from' => 'des de $1',
'shared-repo' => 'un repositori compartit',
+'upload-disallowed-here' => 'No pot sobreescriure aquest fitxer.',
# File reversion
'filerevert' => 'Reverteix $1',
'mostlinkedtemplates' => 'Plantilles més usades',
'mostcategories' => 'Pàgines amb més categories',
'mostimages' => 'Fitxers més enllaçats',
+'mostinterwikis' => 'Pàgines amb més interwikis',
'mostrevisions' => 'Pàgines més modificades',
'prefixindex' => 'Totes les pàgines per prefix',
'prefixindex-namespace' => 'Totes les pàgines amb prefix (espai de noms $1)',
# Info page
'pageinfo-title' => 'Informació de «$1»',
+'pageinfo-not-current' => 'Només es pot visualitzar la informació per a la revisió actual.',
'pageinfo-header-basic' => 'Informació bàsica',
'pageinfo-header-edits' => "Historial d'edicions",
'pageinfo-header-restrictions' => 'Protecció de pàgina',
+'pageinfo-header-properties' => 'Propietats de la pàgina',
+'pageinfo-display-title' => 'Títol mostrat',
+'pageinfo-default-sort' => "Clau d'ordenació predeterminada",
+'pageinfo-length' => 'Mida de la pàgina (en bytes)',
+'pageinfo-article-id' => 'ID de la pàgina',
+'pageinfo-robot-policy' => 'Estat del motor de cerca',
'pageinfo-views' => 'Número de visites',
'pageinfo-watchers' => "Número d'usuaris que vigilen la pàgina",
'pageinfo-firstuser' => 'Creador de la pàgina',
'pageinfo-lasttime' => "Data de l'última edició",
'pageinfo-edits' => "Número total d'edicions",
'pageinfo-authors' => "Número total d'autors diferents",
+'pageinfo-toolboxlink' => 'Informació de la pàgina',
+'pageinfo-contentpage-yes' => 'Sí',
+'pageinfo-protect-cascading-yes' => 'Sí',
# Skin names
'skinname-standard' => 'Clàssic',
'vector-action-protect' => 'Diogelu',
'vector-action-undelete' => 'Adfer',
'vector-action-unprotect' => 'Newid y diogelwch',
-'vector-simplesearch-preference' => 'Galluogi awgrymiadau chwilio uwch (gwedd Vector yn unig)',
+'vector-simplesearch-preference' => 'Galluogi bar chwilio syml (gwedd Vector yn unig)',
'vector-view-create' => 'Dechrau',
'vector-view-edit' => 'Golygu',
'vector-view-history' => 'Gweld yr hanes',
'anontalkpagetext' => "----''Dyma dudalen sgwrs ar gyfer defnyddiwr anhysbys sydd heb greu cyfrif eto, neu nad yw'n ei ddefnyddio. Felly mae'n rhaid inni ddefnyddio'r cyfeiriad IP i'w (h)adnabod. Mae cyfeiriadau IP yn gallu cael eu rhannu rhwng nifer o ddefnyddwyr. Os ydych chi'n ddefnyddiwr anhysbys ac yn teimlo'ch bod wedi derbyn sylwadau amherthnasol, [[Special:UserLogin/signup|crëwch gyfrif]] neu [[Special:UserLogin|mewngofnodwch]] i osgoi cael eich drysu gyda defnyddwyr anhysbys eraill o hyn ymlaen.''",
'noarticletext' => "Mae'r dudalen hon yn wag ar hyn o bryd.
Gallwch [[Special:Search/{{PAGENAME}}|chwilio am y teitl hwn]] ar dudalennau eraill, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} chwilio drwy'r logiau perthnasol], neu [{{fullurl:{{FULLPAGENAME}}|action=edit}} golygu'r dudalen]</span>.",
-'noarticletext-nopermission' => 'Mae\'r dudalen hon yn wag ar hyn o bryd.
-Gallwch [[Special:Search/{{PAGENAME}}|chwilio am y teitl hwn]] ar dudalennau eraill, neu gallwch <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} chwilio drwy\'r logiau perthnasol]</span>.',
+'noarticletext-nopermission' => "Mae'r dudalen hon yn wag ar hyn o bryd.
+Gallwch [[Special:Search/{{PAGENAME}}|chwilio am y teitl hwn]] ar dudalennau eraill, neu gallwch <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} chwilio drwy'r logiau perthnasol]</span>, ond nid yw'r gallu gennych i ddechrau'r dudalen o'r dechrau cyntaf.",
'missing-revision' => 'Nid yw\'r diwygiad #$1 o\'r dudalen "{{PAGENAME}}" ar gael.
Fel arfer, fe ddigwydd hyn wrth ddilyn hen gyswllt i dudalen sydd wedi ei dileu.
'edit-no-change' => 'Din ændring ignoreredes, fordi der ikke var ændring af teksten.',
'edit-already-exists' => 'En ny side kunne ikke oprettes, fordi den allerede findes.',
'defaultmessagetext' => 'Standardtekst',
-'content-failed-to-parse' => 'Kunne ikke parse $2 indhold for $1 model: $3',
+'content-failed-to-parse' => 'Kunne ikke fortolke $2-indholdet af $1-modellen: $3',
'invalid-content-data' => 'Ugyldig indholdsdata',
'content-not-allowed-here' => '"$1" indhold er ikke tilladt på siden [[$2]]',
'article' => 'Wesiqe',
'newwindow' => '(zerreyê pençereyê newey de beno a)',
'cancel' => 'Bıtexelne',
-'moredotdotdot' => 'Vêşêri...',
+'moredotdotdot' => 'Vêşi...',
'mypage' => 'Pela mı',
'mytalk' => 'Werênayışê mı',
'anontalk' => 'Pela werênayışê nê IPy',
# Vector skin
'vector-action-addsection' => 'Mesel Vırazê',
'vector-action-delete' => 'Besterne',
-'vector-action-move' => 'Wegirê',
+'vector-action-move' => 'Bere',
'vector-action-protect' => 'Bıpawe',
'vector-action-undelete' => 'Esterıtışi peyser bıgê',
'vector-action-unprotect' => 'Starkerdışi bıvurne',
'history' => 'Verora perer',
'history_short' => 'Vurnayışê verêni',
'updatedmarker' => 'cıkewtena mına peyêne ra dıme biyo rocane',
-'printableversion' => 'Bınusnayen versiyon',
-'permalink' => 'Gıreyo manayen',
+'printableversion' => 'Asayışê çapkerdışi',
+'permalink' => 'Gıreyo jûqere',
'print' => 'Çap ke',
'view' => 'Bıvin',
'edit' => 'Bıvurnên',
'personaltools' => 'Haletê şexsi',
'postcomment' => 'Qısımo newe',
'articlepage' => 'Pela zerreki bıvêne',
-'talk' => 'Behse',
+'talk' => 'Werênayış',
'views' => 'Asayışi',
'toolbox' => 'Haceti',
'userpage' => 'Pela karberi bıvêne',
# Edit pages
'summary' => 'Xulasa:',
-'subject' => 'Mersel/Sernuşte:',
+'subject' => 'Mewzu/sernuşte:',
'minoredit' => 'Eno vurnayışo de qıckeko',
'watchthis' => 'Ena pele seyr ke',
'savearticle' => 'Pele qeyd ke',
'youremail' => 'E-Mail (mecbur niyo) *:',
'username' => 'Namey karberi:',
'uid' => 'Namey karberi:',
-'prefs-memberingroups' => 'Ezayê {{PLURAL:$1|grub|grubi}}:',
+'prefs-memberingroups' => 'Ezayê {{PLURAL:$1|grube|gruban}}:',
'prefs-memberingroups-type' => '$1',
'prefs-registration' => 'Wextê qeydbiyayışi',
'prefs-registration-date-time' => '$1',
'rc-old-title' => '"$1"i orcinalê cı vıraşt',
# Recent changes linked
-'recentchangeslinked' => 'Elekeyın vurnayışi',
-'recentchangeslinked-feed' => 'Elekeyın vurnayışi',
-'recentchangeslinked-toolbox' => 'Elekeyın vurnayışi',
+'recentchangeslinked' => 'Vurnayışê eleqeyıni',
+'recentchangeslinked-feed' => 'Vurnayışê eleqeyıni',
+'recentchangeslinked-toolbox' => 'Vurnayışê eleqeyıni',
'recentchangeslinked-title' => 'vurnayışan ser "$1"',
'recentchangeslinked-noresult' => 'Pelanê ke link biye ey vurnayîşî çino.',
'recentchangeslinked-summary' => "Lista cêrêne, pela bêlikerdiye rê (ya zi karberanê kategoriya bêlikerdiye rê) pelanê gırêdaoğan de lista de vurnayışê peyênana.
'nlinks' => '$1 {{PLURAL:$1|link|linkî}}',
'nmembers' => '$1 {{PLURAL:$1|eza|ezayan}}',
'nrevisions' => '$1 {{PLURAL:$1|vurnayış|vurnayışi}}',
-'nviews' => '$1 {{PLURAL:$1|vînayîÅ\9f|vînayîÅ\9fî}}',
-'nimagelinks' => '$1 {{PLURAL:$1|pelayan de|pelayan de}} gurweyêno',
-'ntransclusions' => '$1 {{PLURAL:$1|pelayan de|pelayan de}} gurweyêno',
-'specialpage-empty' => 'Ser ena report netice çini yo.',
-'lonelypages' => 'Peleyê ke cı rê gıre nêdeyayo',
+'nviews' => '$1 {{PLURAL:$1|vênayıÅ\9f|vênayıÅ\9fi}}',
+'nimagelinks' => '$1 {{PLURAL:$1|pele de|pelan de}} gureyeno',
+'ntransclusions' => '$1 {{PLURAL:$1|pele de|pelan de}} gureyeno',
+'specialpage-empty' => 'Seba na rapore netice çıniyo.',
+'lonelypages' => 'Pelê seyi',
'lonelypagestext' => 'Ena pelî link nibiyê ya zi pelanê binî {{SITENAME}} de transclude biy.',
'uncategorizedpages' => 'Pelayanê ke kategorî nibiye',
'uncategorizedcategories' => 'Kategoriyê ke bê kategorîyê',
'mostrevisions' => 'Pelan ke tewr zaf revizyonî biyê.',
'prefixindex' => 'Veroleya peley pêro',
'prefixindex-namespace' => 'Peleyê Veroleyıni ($1 cay nami)',
-'shortpages' => 'Peleyê kılmeki',
+'shortpages' => 'Pelê kılmeki',
'longpages' => 'Peleyê dergeki',
'deadendpages' => 'pelê ke pelê binan re gırey nêeşto',
'deadendpagestext' => 'Ena pelan ke {{SITENAME}} de zerrî ey de link çini yo.',
'usereditcount' => '$1 {{PLURAL:$1|vurnayîş|vurnayîşî}}',
'usercreated' => '$2 de $1 {{GENDER:$3|viraziya}}',
'newpages' => 'Pelê newey',
-'newpages-username' => 'Namey Karberi:',
+'newpages-username' => 'Nameyê karberi:',
'ancientpages' => 'Wesiqeyê ke vurnayışê ciyê peyeni tewr kehani',
-'move' => 'Wegirê',
+'move' => 'Bere',
'movethispage' => 'Ena pele bere',
'unusedimagestext' => 'Enê dosyey estê, feqet zerrey yew pele de wedardey niyê.
Xo vira mekerê ke, sıteyê webiê bini şenê direkt ebe URLi yew dosya ra gırê bê, u wına şenê verba gurênayışo feal de tiya hewna lista bê.',
'allinnamespace' => 'Peli pênro ( $1 cayênameyî)',
'allnotinnamespace' => 'Pelanê hemî ($1 cayênameyî de niyo)',
'allpagesprev' => 'Verên',
-'allpagesnext' => 'ver şo',
+'allpagesnext' => 'Bahdo',
'allpagessubmit' => 'Şo',
'allpagesprefix' => 'herfê ke şıma tiya de nuşti, pê ney herfan pelê ke destpêkenê liste ker:',
'allpagesbadtitle' => 'pel o ke şıma kewenî cı, nameyê no peli de gıreyê zıwanan u wikiyi re elaqa esto, ê ra cıkewtış qebul niyo. ya zi sernameyan de karakterê qedexeyi tede esto.',
# Special:DeletedContributions
'deletedcontributions' => 'İştiraqê karberan de besternayına',
'deletedcontributions-title' => 'Îştirakê karberî wederna',
-'sp-deletedcontributions-contribs' => 'dekerdeni',
+'sp-deletedcontributions-contribs' => 'iştıraqi',
# Special:LinkSearch
'linksearch' => 'Gıreyê teberi cı geyrê',
'activeusers-from' => 'Enê karberi ra tepya bımocne:',
'activeusers-hidebots' => 'Botan bınımne',
'activeusers-hidesysops' => 'İdarekerdoğan bınımne',
-'activeusers-noresult' => 'Karberî çini yo.',
+'activeusers-noresult' => 'Karberi nêdiyayê.',
# Special:Log/newusers
-'newuserlogpage' => 'Cıkewtışê hesab-vıraştışi',
+'newuserlogpage' => 'Cıkewtışê hesabvıraştışi',
'newuserlogpagetext' => 'Ena log de viraştişê karberî esta.',
# Special:ListGroupRights
qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed]] belka esto.',
'listgrouprights-key' => '* <span class="listgrouprights-granted">Heqa daiye</span>
* <span class="listgrouprights-revoked">Heqa guretiye</span>',
-'listgrouprights-group' => 'Grup',
+'listgrouprights-group' => 'Grube',
'listgrouprights-rights' => 'Heqqî',
'listgrouprights-helppage' => 'Help:Heqqanê gruban',
'listgrouprights-members' => '(listey ezayan)',
'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
-'listgrouprights-addgroup' => 'şıma eşkenî hesabê xo re {{PLURAL:$2|grub|gruban}} têare kerî: $1',
-'listgrouprights-removegroup' => 'şıma eşkenî hesabê xo ra {{PLURAL:$2|grub|gruban}} bıvecî: $1',
+'listgrouprights-addgroup' => '{{PLURAL:$2|Grube|Gruban}} cı kerê: $1',
+'listgrouprights-removegroup' => '{{PLURAL:$2|Grube|Gruban}} bıvecê: $1',
'listgrouprights-addgroup-all' => 'şıma hesabê xo re heme gruban eşkeni têare bıkeri',
'listgrouprights-removegroup-all' => 'şıma hesabê xo ra heme gruban eşkeni veci',
'listgrouprights-addgroup-self' => 'şıma hesabê xo re eşkeni {{PLURAL:$2|grub|gruban}} têare bıkerî: $1',
'emailnotarget' => 'Qandê Gêreninamey karberiyo wuna çınyo yana xırabo.',
'emailtarget' => 'Namey Karberi defiyê de.',
'emailusername' => 'Nameyê karberi:',
-'emailusernamesubmit' => 'Stare dı',
+'emailusernamesubmit' => 'İtaet',
'email-legend' => 'karberê {{SITENAME}} binan re e-posta bıerşaw',
-'emailfrom' => 'Rışten:',
-'emailto' => 'Geren:',
-'emailsubject' => 'Mersel:',
-'emailmessage' => 'E-posta:',
-'emailsend' => 'bıerşawê/bıruşnê',
+'emailfrom' => 'Kami ra:',
+'emailto' => 'Kami rê:',
+'emailsubject' => 'Mewzu:',
+'emailmessage' => 'Mesac:',
+'emailsend' => 'Bırışe',
'emailccme' => 'kopyayekê mesaji mı re bıerşaw',
'emailccsubject' => '$2 kopyaya mesaj a ke şıma erşawıto/a $1:',
'emailsent' => 'E-posta bırşê',
'emailuserfooter' => 'na e-posta hetê ıney ra $1 erşawiya $2 no/na karberi/e re. pê fonksiyonê "Karberi/e re e-posta bıerşaw" no {{SITENAME}} keyepeli erşawiya.',
# User Messenger
-'usermessage-summary' => 'Mesajê sistemi caverd.',
+'usermessage-summary' => 'Mesacê sistemi caverde.',
'usermessage-editor' => 'Mesaj berdoxe sistemi',
'usermessage-template' => 'MediaWiki:UserMessage',
'removewatch' => 'Listedê mınê seyr kerdışi ra hewad',
'removedwatchtext' => 'Ena pela "[[:$1]]" biya wedariya [[Special:Watchlist|listeyê seyr-kerdışi şıma]].',
'watch' => 'Temaşe ke',
-'watchthispage' => 'Peler seyr ke',
+'watchthispage' => 'Na pele seyr ke',
'unwatch' => 'Teqib mekerê',
'unwatchthispage' => 'temaşa kerdışê peli vındarn.',
'notanarticle' => 'mebhesê peli niyo',
# Contributions
'contributions' => 'İştiraqê karberi',
'contributions-title' => 'Dekerdenê karber de $1',
-'mycontris' => 'Dekerdenê mı',
+'mycontris' => 'İştıraqê mı',
'contribsub2' => 'Qandê $1 ($2)',
'nocontribs' => 'Ena kriteriya de vurnayîş çini yo.',
'uctop' => '(top)',
'sp-contributions-submit' => 'Cı geyre',
# What links here
-'whatlinkshere' => 'Gıreyê perer',
+'whatlinkshere' => 'Gıreyê pele',
'whatlinkshere-title' => 'Per da "$1" rê perê ke gre danê',
'whatlinkshere-page' => 'Per:',
'linkshere' => "Ena peleyan grey biya '''[[:$1]]''':",
'allmessages' => 'Mesacê sistemi',
'allmessagesname' => 'Name',
'allmessagesdefault' => 'Hesıbyaye metnê mesaci',
-'allmessagescurrent' => 'Metno ke karyayo',
+'allmessagescurrent' => 'Nuşteyê mesacê rocaney',
'allmessagestext' => 'na liste, listeya mesajê cayê nameyê wikimedya yo.
eke şıma qayili paşt bıdi mahalli kerdışê wikimedyayi, kerem kerê pelê [//www.mediawiki.org/wiki/Localisation mahalli kerdışê wikimedyayi] u [//translatewiki.net translatewiki.net] ziyaret bıkerê.',
'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages''' qefelnaye yo u ey ra '''{{ns:special}}:Allmessages''' karkerdışi re akerde niyo.",
'pageinfo-redirectsto' => 'Beno hetê',
'pageinfo-redirectsto-info' => 'melumat',
'pageinfo-contentpage' => 'Zey jû pela zerreki hesebiyena',
-'pageinfo-contentpage-yes' => 'E',
+'pageinfo-contentpage-yes' => 'Heya',
'pageinfo-protect-cascading' => 'Sıtarkerdey tiya cı ra yenê war',
-'pageinfo-protect-cascading-yes' => 'E',
+'pageinfo-protect-cascading-yes' => 'Heya',
'pageinfo-protect-cascading-from' => 'Sıtarkerdey cı ra yenê war',
# Skin names
'exif-subjectdistance-value' => '$1 metreyi',
-'exif-meteringmode-0' => 'Nêzanıte',
+'exif-meteringmode-0' => 'Nêzanayen',
'exif-meteringmode-1' => 'orta',
'exif-meteringmode-2' => 'gıraniyê merkeziyi ser',
'exif-meteringmode-3' => 'noqtayın',
'exif-meteringmode-6' => 'qısmî',
'exif-meteringmode-255' => 'Bin',
-'exif-lightsource-0' => 'Nêzanıte',
+'exif-lightsource-0' => 'Nêzanayen',
'exif-lightsource-1' => 'Roşnê Tici',
'exif-lightsource-2' => 'Florasant',
'exif-lightsource-3' => 'roşnê bêbızate',
'exif-sharpness-1' => 'Nerm',
'exif-sharpness-2' => 'Huşk',
-'exif-subjectdistancerange-0' => 'Nêzanıte',
+'exif-subjectdistancerange-0' => 'Nêzanayen',
'exif-subjectdistancerange-1' => 'Makro',
'exif-subjectdistancerange-2' => 'Vinayişê nezdiyi',
'exif-subjectdistancerange-3' => 'Vinayişê duri',
'emailpagetext' => 'Puedes usar el formulario de abajo para enviar un correo electrónico a este usuario.
La dirección electrónica que indicaste en [[Special:Preferences|tus preferencias de usuario]] aparecerá en el remitente para que el destinatario pueda responderte.',
'usermailererror' => 'El sistema de correo devolvió un error:',
-'defemailsubject' => 'Correo de {{SITENAME}} para el usuario $1',
+'defemailsubject' => 'Correo electrónico enviado por el usuario «$1» desde {{SITENAME}}',
'usermaildisabled' => 'Correo electrónico del usuario deshabilitado',
'usermaildisabledtext' => 'No puedes enviar correos electrónicos a otros usuarios en esta wiki',
'noemailtitle' => 'No hay dirección de correo electrónico',
'undeletedrevisions' => '$1 نسخه احیا {{PLURAL:$1|شد|شدند}}',
'undeletedrevisions-files' => '$1 نسخه و $2 پرونده احیا {{PLURAL:$1|شد|شدند}}.',
'undeletedfiles' => '$1 پرونده احیا {{PLURAL:$1|شد|شدند}}.',
-'cannotundelete' => 'احیا ناموفق بود؛
+'cannotundelete' => 'احیا ناموفق بود:
$1',
'undeletedpage' => "'''$1 احیا شد'''
'pageinfo-hidden-categories' => '{{PLURAL:$1| ردهٔ|ردهٔ}} پنهان ( $1 )',
'pageinfo-templates' => '{{PLURAL:$1|الگو|الگو}} استفادهشده ($1)',
'pageinfo-toolboxlink' => 'اطلاعات صفحه',
+'pageinfo-redirectsto' => 'تغییرمسیر به',
+'pageinfo-redirectsto-info' => 'اطلاعات',
+'pageinfo-contentpage' => 'شمرده شده به عنوان صفحهٔ محتویی',
+'pageinfo-contentpage-yes' => 'بله',
+'pageinfo-protect-cascading' => 'محافظت آبشاری از اینجا',
+'pageinfo-protect-cascading-yes' => 'بله',
+'pageinfo-protect-cascading-from' => 'محافظت آبشاری از',
# Skin names
'skinname-standard' => 'کلاسیک',
'youhavenewmessagesfromusers' => "Vous avez $1 d'{{PLURAL:$3| un autre utilisateur|$3 autres utilisateurs}} ( $2 ).",
'youhavenewmessagesmanyusers' => 'Vous avez $1 de nombreux utilisateurs ($2).',
'newmessageslinkplural' => '{{PLURAL:$1|un message|nouveaux messages}}',
-'newmessagesdifflinkplural' => 'dernières {{PLURAL:$1|modification|modifications}}',
+'newmessagesdifflinkplural' => 'dernières modification{{PLURAL:$1||s}}',
'youhavenewmessagesmulti' => 'Vous avez de nouveaux messages sur $1.',
'editsection' => 'modifier',
'editold' => 'modifier',
Vous pouvez revenir en arrière et modifier une page existante, ou bien [[Special:UserLogin|vous connecter ou créer un compte]].',
'nocreate-loggedin' => 'Vous n’avez pas la permission de créer de nouvelles pages.',
'sectioneditnotsupported-title' => 'Modification de section non prise en charge',
-'sectioneditnotsupported-text' => 'La modification d’une section n’est pas supportée dans cette page de modification.',
+'sectioneditnotsupported-text' => 'La modification d’une section n’est pas prise en charge pour cette page.',
'permissionserrors' => 'Erreur de permissions',
'permissionserrorstext' => 'Vous n’avez pas la permission d’effectuer l’opération demandée pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :',
'permissionserrorstext-withaction' => 'Vous n’êtes pas autorisé{{GENDER:||e|(e)}} à $2, pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :',
'mergehistory-box' => 'Fusionner les versions de deux pages :',
'mergehistory-from' => 'Page d’origine :',
'mergehistory-into' => 'Page de destination :',
-'mergehistory-list' => 'Historique des modifications fusionnable',
+'mergehistory-list' => 'Historique fusionnable des modifications',
'mergehistory-merge' => 'Les versions suivantes de [[:$1]] peuvent être fusionnées avec [[:$2]]. Utilisez la colonne de boutons radio pour fusionner uniquement les versions créées du début jusqu’à la date indiquée. Notez bien que l’utilisation des liens de navigation réinitialisera cette colonne.',
'mergehistory-go' => 'Voir les modifications qui peuvent être fusionnées',
'mergehistory-submit' => 'Fusionner les versions',
'timezoneregion-indian' => 'Océan indien',
'timezoneregion-pacific' => 'Océan pacifique',
'allowemail' => 'Autoriser l’envoi de courriels venant d’autres utilisateurs',
-'prefs-searchoptions' => 'Options de recherche',
+'prefs-searchoptions' => 'Recherche',
'prefs-namespaces' => 'Espaces de noms',
'defaultns' => 'Rechercher par défaut dans ces espaces de noms :',
'default' => 'défaut',
'recentchangeslinked-feed' => 'Suivi des pages liées',
'recentchangeslinked-toolbox' => 'Suivi des pages liées',
'recentchangeslinked-title' => 'Suivi des pages associées à « $1 »',
-'recentchangeslinked-noresult' => 'Il n’y a pas de modification sur les pages liées pendant la période choisie.',
+'recentchangeslinked-noresult' => 'Il n’y a pas de modification des pages liées pendant la période choisie.',
'recentchangeslinked-summary' => "Cette page spéciale montre les modifications récentes sur les pages qui sont liées. Les pages de votre liste de suivi sont '''en gras'''.",
'recentchangeslinked-page' => 'Nom de la page :',
'recentchangeslinked-to' => 'Afficher les modifications des pages qui comportent un lien vers la page donnée plutôt que l’inverse',
'filename-tooshort' => 'Le nom du fichier est trop court.',
'filetype-banned' => 'Ce type de fichier est interdit.',
'verification-error' => 'Ce fichier ne passe pas la vérification des fichiers.',
-'hookaborted' => 'La modification que vous avez essayé de faire a été arrêtée par un crochet d’une extension.',
+'hookaborted' => 'La modification que vous avez essayé de faire a été annulée par une extension.',
'illegal-filename' => 'Le nom du fichier n’est pas autorisé.',
'overwrite' => 'Écraser un fichier existant n’est pas autorisé.',
'unknown-error' => 'Une erreur inconnue s’est produite.',
# Import log
'importlogpage' => 'Journal des importations',
-'importlogpagetext' => 'Importations administratives de pages avec leur historique de modifications depuis d’autres wikis.',
+'importlogpagetext' => 'Importations administratives de pages d’autres wikis, avec leur historique de modification.',
'import-logentry-upload' => 'a importé [[$1]] par envoi de fichier',
'import-logentry-upload-detail' => '$1 version{{PLURAL:$1||s}}',
'import-logentry-interwiki' => 'a importé $1 d’un wiki à l’autre',
'api-error-filetype-banned' => 'Ce type de fichier est interdit.',
'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|n’est pas un type de fichier autorisé|ne sont pas des types de fichiers autorisés}}. {{PLURAL:$3|Le type de fichier autorisé est |Les types de fichiers autorisés sont}} $2.',
'api-error-filetype-missing' => 'L’extension du fichier est manquante.',
-'api-error-hookaborted' => 'La modification que vous avez essayé de faire a été arrêtée par un crochet d’une extension.',
+'api-error-hookaborted' => 'La modification que vous avez essayé de faire a été annulée par une extension.',
'api-error-http' => 'Erreur interne : ne peut se connecter au serveur.',
'api-error-illegal-filename' => 'Le nom du fichier n’est pas autorisé.',
'api-error-internal-error' => 'Erreur interne : Quelque chose s’est mal passé lors du traitement de votre import sur le wiki.',
'views' => 'Visualisacions',
'toolbox' => 'Bouèta d’outils',
'userpage' => 'Vêde la pâge utilisator',
-'projectpage' => 'Vêde la pâge du projèt',
+'projectpage' => 'Vêde la pâge projèt',
'imagepage' => 'Vêde la pâge du fichiér',
'mediawikipage' => 'Vêde la pâge du mèssâjo',
'templatepage' => 'Vêde la pâge du modèlo',
'youhavenewmessages' => 'Vos avéd de $1 ($2).',
'newmessageslink' => 'mèssâjos novéls',
'newmessagesdifflink' => 'dèrriér changement',
-'youhavenewmessagesfromusers' => 'Vos avéd $1 {{PLURAL:$3|d’un ôtro utilisator|de $3 ôtros utilisators}} ($2).',
+'youhavenewmessagesfromusers' => 'Vos avéd $1 {{PLURAL:$3|d’un ôtr’utilisator|de $3 ôtros utilisators}} ($2).',
'youhavenewmessagesmanyusers' => 'Vos avéd $1 d’un mouél d’utilisators ($2).',
'newmessageslinkplural' => '{{PLURAL:$1|un mèssâjo novél|de mèssâjos novéls}}',
'newmessagesdifflinkplural' => '{{PLURAL:$1|dèrriér changement|dèrriérs changements}}',
'perfcached' => 'Cetes donâs sont en cacho et pôvont pas étre a jorn. Por lo més {{PLURAL:$1|yon rèsultat est disponiblo|$1 rèsultats sont disponiblos}} dedens lo cacho.',
'perfcachedts' => 'Cetes donâs sont en cacho et sont étâyes betâyes a jorn por lo dèrriér côp a $1. Por lo més {{PLURAL:$1|yon rèsultat est disponiblo|$1 rèsultats sont disponiblos}} dedens lo cacho.',
'querypage-no-updates' => 'Ora les mises a jorn por ceta pâge sont dèsactivâyes.
-Les donâs ce-desot sont pas betâyes a jorn.',
+Les donâs ique seront pas betâyes a jorn.',
'wrong_wfQuery_params' => 'Paramètros fôx dessus wfQuery()<br />
Fonccion : $1<br />
Demanda : $2',
'cascadeprotected' => 'Cela pâge-que est protègiêye perce qu’el est encllua dedens {{PLURAL:$1|ceta pâge, qu’est étâye protègiêye|cetes pâges, que sont étâyes protègiêyes}} avouéc lo chouèx « protèccion en cascâda » activâ :
$2',
'namespaceprotected' => "Vos avéd pas la pèrmission de changiér les pâges de l’èspâço de noms « '''$1''' ».",
-'customcssprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge CSS, perce que contint la configuracion a sè d’un ôtro utilisator.',
-'customjsprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge JavaScript, perce que contint la configuracion a sè d’un ôtro utilisator.',
+'customcssprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge CSS, perce que contint la configuracion a sè d’un ôtr’utilisator.',
+'customjsprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge JavaScript, perce que contint la configuracion a sè d’un ôtr’utilisator.',
'ns-specialprotected' => 'Les pâges spèciâles pôvont pas étre changiêyes.',
'titleprotected' => "Cél titro est étâ protègiê a la crèacion per [[User:$1|$1]].
La rêson balyêye est « ''$2'' ».",
'passwordsent' => 'Un contresegno novél est étâ mandâ a l’adrèce èlèctronica de l’utilisator « $1 ».
Vos volyéd tornar branchiér aprés l’avêr reçu.',
'blocked-mailpassword' => 'Voutron adrèce IP est blocâye en ècritura, la fonccion de sovegnence du contresegno est vêr dèsactivâye por èvitar los abus.',
-'eauthentsent' => 'Un mèssâjo de confirmacion est étâ mandâ a l’adrèce endicâye.
+'eauthentsent' => 'Un mèssâjo de confirmacion est étâ mandâ a l’adrèce èlèctronica endicâye.
Devant qu’un ôtro mèssâjo seye mandâ a ceti compto, vos devréd siuvre les enstruccions du mèssâjo et pués confirmar que lo compto est franc lo voutro.',
'throttled-mailpassword' => 'Un mèssâjo de sovegnence de voutron contresegno est ja étâ mandâ pendent {{PLURAL:$1|l’hora passâye|les $1 hores passâyes}}.
Por èvitar los abus, solament yon mèssâjo de sovegnence serat mandâ per {{PLURAL:$1|hora|entèrvalo de $1 hores}}.',
Du côp la crèacion de compto est étâye dèsactivâye temporèrament por cel’adrèce IP.',
'emailauthenticated' => 'Voutron adrèce èlèctronica est étâye ôtentifiâye lo $2 a $3.',
'emailnotauthenticated' => 'Voutron adrèce èlèctronica est p’oncor ôtentifiâye.
-Nion mèssâjo serat mandâ por châcuna de cetes fonccions.',
-'noemailprefs' => 'Spècifiâd n’adrèce èlèctronica dens voutres prèferences por empleyér cetes fonccions.',
+Nion mèssâjo serat mandâ por châcuna de cetes fonccionalitâts.',
+'noemailprefs' => 'Spècifiâd n’adrèce èlèctronica dens voutres prèferences por empleyér cetes fonccionalitâts.',
'emailconfirmlink' => 'Confirmâd voutron adrèce èlèctronica',
'invalidemailaddress' => 'Cet’adrèce èlèctronica pôt pas étre accèptâye perce que semble avêr un format fôx.
Volyéd buchiér n’adrèce bien formatâye ou ben lèssiér cél champ vouedo.',
# Edit pages
'summary' => 'Rèsumâ :',
'subject' => 'Chousa / titro :',
-'minoredit' => 'Petiôt changement',
+'minoredit' => 'O est un petiôt changement',
'watchthis' => 'Siuvre ceta pâge',
'savearticle' => 'Sôvar la pâge',
'preview' => 'Prèvisualisacion',
-'showpreview' => 'Fâre vêre una prèvisualisacion',
-'showlivepreview' => 'Apèrçu vito fêt',
+'showpreview' => 'Fâre vêre na prèvisualisacion',
+'showlivepreview' => 'Apèrçu rapido',
'showdiff' => 'Fâre vêre los changements',
-'anoneditwarning' => "'''Atencion :''' vos éte pas branchiê.
-Voutra adrèce IP serat encartâ dens l’historico de ceta pâge.",
-'anonpreviewwarning' => "''Vos éte pas branchiê. Sôvar encarterat voutra adrèce IP dens l’historico des changements de la pâge.''",
-'missingsummary' => "'''Rapèl :''' vos éd p’oncor balyê lo rèsumâ de voutron changement.
-Se vos tornâd clicar dessus « {{int:savearticle}} », voutron changement serat sôvâ sen novél avèrtissement.",
-'missingcommenttext' => 'Volyéd fâre voutron comentèro ce-desot.',
-'missingcommentheader' => "'''Rapèl :''' vos éd p’oncor balyê de sujèt ou ben de titro a ceti comentèro.
-Se vos tornâd clicar dessus « {{int:savearticle}} », voutron changement serat sôvâ sen titro.",
-'summary-preview' => 'Prèvisualisacion du rèsumâ :',
-'subject-preview' => 'Prèvisualisacion du sujèt / titro :',
-'blockedtitle' => 'L’usanciér est blocâ.',
-'blockedtext' => "'''Voutron compto usanciér ou ben voutra adrèce IP at étâ blocâ.'''
-
-Lo blocâjo at étâ fêt per $1.
-La rêson balyê est ceta : ''$2''.
+'anoneditwarning' => "'''Atencion :''' vos éte pas branchiê(ye).
+Voutron adrèce IP serat encartâye dedens l’historico des changements de ceta pâge.",
+'anonpreviewwarning' => "''Vos éte pas branchiê(ye). Sôvar encarterat voutron adrèce IP dedens l’historico des changements de ceta pâge.''",
+'missingsummary' => "'''Sovegnence :''' vos éd balyê gins de rèsumâ de changement.
+Se vos tornâd clicar sur lo boton « {{int:savearticle}} », voutron changement serat sôvâ sen rèsumâ.",
+'missingcommenttext' => 'Volyéd buchiér un comentèro ce-desot.',
+'missingcommentheader' => "'''Sovegnence :''' vos éd balyê gins de chousa / titro a ceti comentèro.
+Se vos tornâd clicar sur lo boton « {{int:savearticle}} », voutron changement serat sôvâ sen chousa / titro.",
+'summary-preview' => 'Apèrçu du rèsumâ :',
+'subject-preview' => 'Apèrçu de la chousa / du titro :',
+'blockedtitle' => 'L’utilisator est blocâ',
+'blockedtext' => "'''Voutron nom d’utilisator ou ben voutron adrèce IP est étâ(ye) blocâ(ye).'''
+
+Lo blocâjo est étâ fêt per $1.
+La rêson balyêye est ''$2''.
* Comencement du blocâjo : $8
* Èxpiracion du blocâjo : $6
* Compto blocâ : $7
Vos vos pouede veriér vers $1 ou ben yon des ôtros [[{{MediaWiki:Grouppage-sysop}}|administrators]] por nen discutar.
-Vos pouede pas utilisar la fonccionalitât « Lui mandar un mèssâjo » a muens que vos èyâd una adrèce èlèctronica valida encartâ dens voutres [[Special:Preferences|prèferences]] et que la fonccionalitât èye pas étâ dèsactivâ.
-Voutra adrèce IP d’ora est $3, et lo numerô de blocâjo est $5.
-Volyéd spècefiar cetes endicacions dens totes les requétes que vos faréd.",
-'autoblockedtext' => "Voutra adrèce IP at étâ blocâ ôtomaticament perce qu’el at étâ utilisâ per un ôtro usanciér, lui-mémo blocâ per $1.
-La rêson balyê est ceta :
+Vos pouede pas empleyér la fonccionalitât « Lui mandar un mèssâjo » a muens qu’un’adrèce èlèctronica valida est spècifiâye dens voutres [[Special:Preferences|prèferences]] et que vos éte pas étâ blocâ de l’empleyér.
+Voutron adrèce IP d’ora est $3, et lo numerô de blocâjo est $5.
+Volyéd encllure tôs los dètalys ce-dessus dedens quinta que seye demanda que vos faréd.",
+'autoblockedtext' => "Voutron adrèce IP est étâye blocâye ôtomaticament perce qu’el est étâye empleyêye per un ôtr’utilisator, lui-mémo blocâ per $1.
+La rêson balyêye est :
:''$2''
Vos vos pouede veriér vers $1 ou ben yon des ôtros [[{{MediaWiki:Grouppage-sysop}}|administrators]] por nen discutar.
-Notâd que vos porréd pas utilisar la fonccionalitât « Lui mandar un mèssâjo » a muens que vos èyâd una adrèce èlèctronica valida encartâ dens voutres [[Special:Preferences|prèferences]] et que la fonccionalitât èye pas étâ dèsactivâ.
+Notâd que vos porréd pas empleyér la fonccionalitât « Lui mandar un mèssâjo » a muens que vos avéd n’adrèce èlèctronica valida encartâye dens voutres [[Special:Preferences|prèferences]] et que vos éte pas étâ blocâ de l’empleyér.
-Voutra adrèce IP d’ora est $3, et lo numerô de blocâjo est $5.
-Volyéd spècefiar cetes endicacions dens totes les requétes que vos faréd.",
-'blockednoreason' => 'gins de rêson balyê',
-'whitelistedittext' => 'Vos dête étre $1 por avêr la pèrmission de changiér lo contegnu.',
+Voutron adrèce IP d’ora est $3, et lo numerô de blocâjo est $5.
+Volyéd encllure tôs los dètalys ce-dessus dedens quinta que seye demanda que vos faréd.",
+'blockednoreason' => 'gins de rêson balyêye',
+'whitelistedittext' => 'Vos vos dête $1 por povêr changiér les pâges.',
'confirmedittext' => 'Vos dête confirmar voutra adrèce èlèctronica devant que changiér les pâges.
Volyéd buchiér et pués validar voutra adrèce èlèctronica dens voutres [[Special:Preferences|prèferences]].',
'nosuchsectiontitle' => 'Empossiblo de trovar la sèccion',
* @author Dineshjk
* @author Dsvyas
* @author Haritosh
+ * @author Harsh4101991
* @author Jay
* @author Kaganer
* @author KartikMistry
'youhavenewmessages' => 'તમારા માટે $1 ($2).',
'newmessageslink' => 'નવીન સંદેશ',
'newmessagesdifflink' => 'છેલ્લો ફેરફાર',
+'youhavenewmessagesfromusers' => 'આપને માટે {{PLURAL:$3|અન્ય સભ્યના|$3 અન્ય સભ્યોના}} $1 છે. ($2).',
+'youhavenewmessagesmanyusers' => 'આપને માટે $1 છે. ($2)',
'newmessageslinkplural' => '{{PLURAL:$1|નવો સંદેશ|નવાં સંદેશાઓ}}',
'newmessagesdifflinkplural' => 'છેલ્લા {{PLURAL:$1|ફેરફાર|ફેરફારો}}',
'youhavenewmessagesmulti' => '$1 ઉપર તમારા માટે નવો સંદેશ છે.',
'protectedpagetext' => 'ફેરફારો થતાં રોકવા માટે આ પાનું સુરક્ષિત કરવામાં આવ્યું છે.',
'viewsourcetext' => 'આપ આ પાનાનો મૂળ સ્રોત નિહાળી શકો છો અને તેની નકલ (copy) પણ કરી શકો છો:',
'viewyourtext' => "આપ આ પાનાનાં '''આપનાં સંપાદનો'''નો મૂળ સ્રોત નિહાળી શકો છો અને તેની નકલ (copy) પણ કરી શકો છો:",
-'protectedinterface' => 'આ પાનું સોફ્ટવેર માટે ઇન્ટરફેઇસ ટેક્સટ આપે છે, અને તેને દુરુપયોગ રોકવા માટે સ્થગિત કર્યું છે.',
+'protectedinterface' => 'આ પાનું સોફ્ટવેર માટે ઇન્ટરફેઇસ ટેક્સટ આપે છે, અને તેને દુરુપયોગ રોકવા માટે સ્થગિત કર્યું છે.
+બધાંજ વિકિ માટે ભાષાંતર ઉમેરવા કે બદલવા માટે, કૃપા કરી [//translatewiki.net/ translatewiki.net], મિડિયાવિકિ સ્થાનિયકરણ પ્રકલ્પ, વાપરો.',
'editinginterface' => "'''ચેતવણી:''' તમે જે પાનામાં ફેરફાર કરી રહ્યા છો તે પાનું સોફ્ટવેર માટે ઇન્ટરફેસ ટેક્સટ પુરી પાડે છે.
-àª\85હà«\80àª\82નà«\8b બદલાવ બà«\80àª\9cા સભ્યોના ઇન્ટરફેસનાં દેખાવ ઉપર અસરકર્તા બનશે.
-àªàª¾àª·àª¾àª\82તર àª\95રવા માàª\9fà«\87 àª\95à«\83પા àª\95રà«\80 [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] -- મિડિયાવિàª\95à«\80 લà«\8bàª\95લાàª\87àª\9dà«\87શન પà«\8dરàª\95લà«\8dપ વાપરો.",
+àª\85હà«\80àª\82નà«\8b બદલાવ àª\86 વિàª\95િ પર àª\89પસà«\8dથિત àª\85નà«\8dય સભ્યોના ઇન્ટરફેસનાં દેખાવ ઉપર અસરકર્તા બનશે.
+બધાàª\82àª\9c વિàª\95િ માàª\9fà«\87 àªàª¾àª·àª¾àª\82તર àª\89મà«\87રવા àª\95à«\87 બદલવા માàª\9fà«\87 àª\95à«\83પા àª\95રà«\80 [//translatewiki.net/ translatewiki.net], મિડિયાવિàª\95à«\80 સà«\8dથાનિયàª\95રણ પà«\8dરàª\95લà«\8dપ, વાપરો.",
'sqlhidden' => '(છુપી SQL ક્વેરી)',
'cascadeprotected' => 'આ પાના પર ફેરફાર પ્રતિબંધિત છે કેમ કે આ પાનું {{PLURAL:$1|એવું પાનું|એવા પાના}} માં શામિલ છે જેમાં અનુવર્તી (પગથિયામય)સંરક્ષણ સક્રીય છે :
$2',
તે પહેલેથી હાજર છે.',
'defaultmessagetext' => 'મૂળભૂત સંદેશ લખાણ',
+# Content models
+'content-model-wikitext' => 'વિકિલખાણ',
+'content-model-text' => 'સાદું લખાણ',
+'content-model-javascript' => 'જાવાસ્ક્રિપ્ટ',
+
# Parser/template warnings
'expensive-parserfunction-warning' => "'''ચેતવણી:''' આ પાનું ખૂબ ખર્ચાળ પદચ્છેદ સૂત્ર ધરાવે છે.
'timezoneregion-indian' => 'હિંદ મહાસાગર',
'timezoneregion-pacific' => 'પ્રશાંત મહાસાગર',
'allowemail' => 'અન્ય સભ્યો તરફથી આવતા ઇ-મેલને પરવાનગી આપો',
-'prefs-searchoptions' => 'શોધ વિકલ્પો',
+'prefs-searchoptions' => 'શોધો',
'prefs-namespaces' => 'નામ અવકાશો',
'defaultns' => 'અન્યથા આ નામ અવકાશ માં શોધો',
'default' => 'મૂળ વિકલ્પ',
'mailnologin' => 'મેળવનારનું સરનામું નથી',
'mailnologintext' => 'અન્ય સભ્યને ઇ-મેલ મોકલવા માટે તમે [[Special:UserLogin|logged in]] પ્રવેશ કરેલ હોવો જોઈએ અને તમારા[[Special:Preferences|preferences]] વિકલ્પોમાં તમારા ઈ-મેલ સરનામાની પુષ્ટિ થયેલી હોવી જોઈએ',
'emailuser' => 'સભ્યને ઇ-મેલ કરો',
+'emailuser-title-notarget' => 'ઇ-મેલ વપરાશકર્તા',
'emailpage' => 'ઈ-મેલ સભ્ય',
'emailpagetext' => 'તમે નીચે દર્શાવેલ ફોર્મ વાપરી ઇ-મેલ મોકલી શકો છો.
તમે તમારી માહિતીમાં [[Special:Preferences|your user preferences]] જે ઇ-મેલ લખ્યો હશે તે દ્વારા ના નામ હેઠળ દેખાશે, જેથી ઇ-મેલ મેળવનાર તમને સંદેશાનો જવાબ આપી શકશે.',
'undeletedrevisions' => '{{PLURAL:$1|૧ સંપાદન|$1 સંપાદનો}} પુન સ્થાપિત કરાયા',
'undeletedrevisions-files' => '{{PLURAL:$1|1 ફેરફાર|$1 ફેરફારો}} અને {{PLURAL:$2|1 ફાઈલા|$2 ફાઈલો}} પુનઃસ્થાપિત',
'undeletedfiles' => '{{PLURAL:$1|1 ફાઇલ|$1 ફાઇલો}} પુનઃસ્થાપિત',
-'cannotundelete' => 'પુનર્જીવિત કરવાનું કાર્ય અસફળ;
-કોઇકે આ પાનાને પહેલેથી પુનર્જીવિત કર્યું હોઈ શકે.',
+'cannotundelete' => 'પુનર્જીવિત કરવાનું કાર્ય અસફળ:
+$1',
'undeletedpage' => "'''$1 પુનઃસ્થાપિત કરાયા'''
તાજેતરમાં હટાવેલા કે પુનઃસ્થાપિત થયેલા ફેરફારની નોંધ નો સંદર્ભ અહીં ઉપ્લબ્ધ [[Special:Log/delete|deletion log]].",
# Info page
'pageinfo-title' => ' $1 પાના ની માહિતી નૂ મથાડૂ',
'pageinfo-header-edits' => 'ઇતિહાસ સંપાદન',
+'pageinfo-length' => 'પૃષ્ઠની લંબાઇ (બાઇટમાં)',
'pageinfo-views' => 'જોનારાની સંખ્યા',
'pageinfo-watchers' => 'પાના નીરીક્ષકોની સંખ્યા',
'pageinfo-edits' => 'કુલ સંપાદનોની સંખ્યા',
'pageinfo-authors' => 'ક્ષેત્રના લેખકોની કુલ સંખ્યા',
+'pageinfo-toolboxlink' => 'પૃષ્ઠમાહિતી',
+'pageinfo-redirectsto-info' => 'માહિતી',
+'pageinfo-contentpage-yes' => 'હા',
+'pageinfo-protect-cascading-yes' => 'હા',
# Patrolling
'markaspatrolleddiff' => 'નિરીક્ષીત અંકિત કરો',
'editinguser' => "שינוי הרשאות המשתמש של '''[[User:$1|$1]]''' $2",
'userrights-editusergroup' => 'עריכת קבוצות משתמש',
'saveusergroups' => 'שמירת קבוצות משתמש',
-'userrights-groupsmember' => 'חבר בקבוצות:',
-'userrights-groupsmember-auto' => 'חבר אוטומטית בקבוצות:',
+'userrights-groupsmember' => '{{GENDER:$2|חבר|חברה}} {{PLURAL:$1|בקבוצה|בקבוצות}}:',
+'userrights-groupsmember-auto' => '{{GENDER:$2|חבר|חברה}} אוטומטית {{PLURAL:$1|בקבוצה|בקבוצות}}:',
'userrights-groups-help' => 'באפשרותכם לשנות את הקבוצות שמשתמש זה חבר בהן:
* תיבה מסומנת פירושה שהמשתמש חבר בקבוצה.
* תיבה בלתי מסומנת פירושה שהמשתמש אינו חבר בקבוצה.
Tu pote [[Special:Search/{{PAGENAME}}|cercar le titulo de iste pagina]] in altere paginas,
<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercar in le registros pertinente],
o [{{fullurl:{{FULLPAGENAME}}|action=edit}} modificar iste pagina]</span>.',
-'noarticletext-nopermission' => 'Al momento il non ha texto in iste pagina.
+'noarticletext-nopermission' => 'In iste momento il non ha texto in iste pagina.
Tu pote [[Special:Search/{{PAGENAME}}|cercar le titulo de iste pagina]] in altere paginas,
-o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercar in le registros pertinente].</span>',
+o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercar in le registros pertinente], ma tu non ha le permission de crear iste pagina.</span>',
'missing-revision' => 'Le version №$1 del pagina nominate "{{PAGENAME}}" non existe.
Isto es generalmente causate per sequer un ligamine de historia obsolete a un pagina que ha essite delite.
Illo existe ja.',
'defaultmessagetext' => 'Texto predefinite del message',
'content-failed-to-parse' => 'Impossibile processar le contento $2 pro le modello $1: $3',
+'invalid-content-data' => 'Datos de contento invalide',
+'content-not-allowed-here' => 'Le contento "$1" non es permittite in le pagina [[$2]]',
+
+# Content models
+'content-model-wikitext' => 'wikitexto',
+'content-model-text' => 'texto simple',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
# Parser/template warnings
'expensive-parserfunction-warning' => 'Attention: Iste pagina contine troppo de appellos costose al functiones del analysator syntactic.
'revdelete-only-restricted' => 'Error de celar le entrata del $1 a $2: tu non pote render entratas invisibile a administratores sin seliger tamben un del altere optiones de visibilitate.',
'revdelete-reason-dropdown' => '*Motivos commun pro deletion
** Violation de copyright
-** Information personal inappropriate',
+** Information personal o commento inappropriate
+** Nomine de usator inappropriate
+** Information que pote esser diffamatori',
'revdelete-otherreason' => 'Altere/additional motivo:',
'revdelete-reasonotherlist' => 'Altere motivo',
'revdelete-edit-reasonlist' => 'Modificar motivos pro deletion',
'timezoneregion-indian' => 'Oceano Indian',
'timezoneregion-pacific' => 'Oceano Pacific',
'allowemail' => 'Activar reception de e-mail de altere usatores',
-'prefs-searchoptions' => 'Optiones de recerca',
+'prefs-searchoptions' => 'Recerca',
'prefs-namespaces' => 'Spatios de nomines',
'defaultns' => 'Alteremente cercar in iste spatios de nomines:',
'default' => 'predefinite',
'backend-fail-internal' => 'Un error incognite occurreva in le systema de immagazinage "$1".',
'backend-fail-contenttype' => 'Non poteva determinar le typo de contento del file a immagazinar in "$1".',
'backend-fail-batchsize' => 'Le systema de immagazinage ha recipite un lot de $1 {{PLURAL:$1|operation|operationes}} de file; le limite es $2 {{PLURAL:$2|operation|operationes}}.',
-'backend-fail-usable' => 'Non poteva scriber le file $1 a causa de permissiones insufficiente o directorios/contentores mancante.',
+'backend-fail-usable' => 'Non poteva leger o scriber le file "$1" a causa de permissiones insufficiente o directorios/contentores mancante.',
# File journal errors
'filejournal-fail-dbconnect' => 'Non poteva connecter al base de datos de jornal pro le systema de immagazinage "$1".',
'uploadnewversion-linktext' => 'Incargar un nove version de iste file',
'shared-repo-from' => 'ab $1',
'shared-repo' => 'un repositorio partite',
-'upload-disallowed-here' => 'Infortunatemente tu non pote superscriber iste imagine.',
+'upload-disallowed-here' => 'Tu non pote superscriber iste file.',
# File reversion
'filerevert' => 'Reverter $1',
'undeletedrevisions' => '{{PLURAL:$1|1 version|$1 versiones}} restaurate',
'undeletedrevisions-files' => '{{PLURAL:$1|1 version|$1 versiones}} e {{PLURAL:$2|1 file|$2 files}} restaurate',
'undeletedfiles' => '$1 {{PLURAL:$1|archivo|archivos}} restaurate',
-'cannotundelete' => 'Le restauration ha fallite;
-es possibile que un altere persona ha ja restaurate le pagina.',
+'cannotundelete' => 'Le restauration ha fallite:
+$1',
'undeletedpage' => "'''$1 ha essite restaurate'''
Consulta le [[Special:Log/delete|registro de deletiones]] pro un lista de deletiones e restaurationes recente.",
'immobile-target-namespace-iw' => 'Un ligamine interwiki non es un destination valide pro le renomination de un pagina.',
'immobile-source-page' => 'Iste pagina non es renominabile.',
'immobile-target-page' => 'Non pote renominar a iste titulo de destination.',
+'bad-target-model' => 'Le destination desirate usa un altere modello de contento. Non es possibile converter de $1 a $2.',
'imagenocrossnamespace' => 'Impossibile renominar un file verso un spatio de nomines non-file',
'nonfile-cannot-move-to-file' => 'Impossibile renominar un non-file verso le spatio de nomines file',
'imagetypemismatch' => 'Le nove extension del nomine del file non corresponde al typo del file',
# Info page
'pageinfo-title' => 'Informationes pro "$1"',
+'pageinfo-not-current' => 'Information pote esser monstrate solmente pro le version actual.',
'pageinfo-header-basic' => 'Information de base',
'pageinfo-header-edits' => 'Historia de modificationes',
'pageinfo-header-restrictions' => 'Protection del pagina',
'pageinfo-magic-words' => '{{PLURAL:$1|Parola|Parolas}} magic ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria|Categorias}} celate ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Patrono|Patronos}} transcludite ($1)',
+'pageinfo-toolboxlink' => 'Information sur le pagina',
+'pageinfo-redirectsto' => 'Redirige a',
+'pageinfo-redirectsto-info' => 'info',
+'pageinfo-contentpage' => 'Contate como pagina de contento',
+'pageinfo-contentpage-yes' => 'Si',
+'pageinfo-protect-cascading' => 'Protection in cascada a partir de hic',
+'pageinfo-protect-cascading-yes' => 'Si',
+'pageinfo-protect-cascading-from' => 'Protection in cascada a partir de',
# Skin names
'skinname-standard' => 'Classic',
# Scary transclusion
'scarytranscludedisabled' => '[Le transclusion interwiki es disactivate]',
'scarytranscludefailed' => '[Falleva de obtener le patrono pro $1]',
+'scarytranscludefailed-httpstatus' => '[Obtention de patrono fallite pro $1: HTTP $2]',
'scarytranscludetoolong' => '[URL es troppo longe]',
# Delete conflict
'category-empty' => "''Daytoy a kategoria ket agdama a saan nga aglaon kadagiti panid wenno midia.''",
'hidden-categories' => '{{PLURAL:$1|Nailemmeng a kategoria|Nailemmeng a katkategoria}}',
'hidden-category-category' => 'Nailemmeng a katkategoria',
-'category-subcat-count' => '{{PLURAL:$2|Daytoy a kategoria ket adda laeng ti sumaganad nga apo ti kategoria.|Daytoy a kategoria ket adda kadagiti sumaganad {{PLURAL:$1|nga apo ti kategoria|$1 nga apo dagiti kategoria}}, manipud ti dagup nga $2.}}',
+'category-subcat-count' => '{{PLURAL:$2|Daytoy a kategoria ket adda laeng ti sumaganad nga apo ti kategoria.|Daytoy a kategoria ket adda kadagiti sumaganad nga {{PLURAL:$1|nga apo ti kategoria|$1 nga apo dagiti kategoria}}, manipud ti dagup nga $2.}}',
'category-subcat-count-limited' => 'Daytoy a kategoria ket adda ti sumaganad {{PLURAL:$1|nga apo ti kategoria|$1 nga apo dagiti kategoria}}.',
'category-article-count' => '{{PLURAL:$2|Daytoy a kategoria ket aglaon laeng ti sumaganad a panid.|Ti sumaganad {{PLURAL:$1|a panid|$1 a pampanid}} ket adda iti daytoy a kategoria, manipud ti dagup nga $2.}}',
'category-article-count-limited' => 'Ti sumaganad {{PLURAL:$1|a panid |$1 a pampanid}} ket adda iti agdama a kategoria.',
'mainpage' => 'Umuna a Panid',
'mainpage-description' => 'Umuna a Panid',
'policy-url' => 'Project:Annuroten',
-'portal' => 'Pagdadanonan',
+'portal' => 'Portal ti komunidad',
'portal-url' => 'Project:Portal ti komunidad',
'privacy' => 'Annuroten iti kinapribado',
'privacypage' => 'Project:Annuroten iti kinapribado',
'edit-already-exists' => 'Saan a makaaramid ti baro a panid.
Adda met daytoyen.',
'defaultmessagetext' => 'Kasisigud a testo ti mensahe',
+'invalid-content-data' => 'Imbalido a datos ti linaon',
+'content-not-allowed-here' => 'Ti "$1" a linaon ket saan a maipalubos idiay [[$2]] a panid',
+
+# Content models
+'content-model-wikitext' => 'wikitext',
+'content-model-text' => 'naranas a testo',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
# Parser/template warnings
'expensive-parserfunction-warning' => "'''Ballaag:''' Daytoy a panid ket adu unay kadagiti nangina a parser a pamay-an a panagtawtawag.
'uploadnewversion-linktext' => 'Mangipan ti kabarbaro a bersion iti daytoy a papeles',
'shared-repo-from' => 'Naggapo iti $1',
'shared-repo' => 'iti pagbingbingayan a nagikabilan',
-'upload-disallowed-here' => 'Daksanggasat a saanmo a mabalin a suratan manen daytoy nga imahen.',
+'upload-disallowed-here' => 'Saanmo a masuratan manen daytoy nga imahen.',
# File reversion
'filerevert' => 'Isubli ti $1',
'undeletedrevisions' => '{{PLURAL:$1|1 a binaliwan|dagiti $1 a binaliwan}} ti naisubli',
'undeletedrevisions-files' => '{{PLURAL:$1|1 a binaliwan|dagiti $1 a binaliwan}} ken {{PLURAL:$2|1 a papeles|dagiti $2 a papeles}} ti naisubli',
'undeletedfiles' => '{{PLURAL:$1|1 a papeles|dagiti $1 a papeles}} ti naisubli',
-'cannotundelete' => 'Napaay ti panagikkat;
-adda ngata immuna a nagikkat ti panid.',
+'cannotundelete' => 'Napaay ti panagikkat:
+$1',
'undeletedpage' => "'''Naisublin ti $1'''
Binsiren ti [[Special:Log/delete|listaan ti naik-ikkat]] para iti listaan dagiti naudi a naik-ikkat ken naisubsubli.",
# Info page
'pageinfo-title' => 'Pakaammo para iti "$1"',
+'pageinfo-not-current' => 'Ti pakaammo ket mabalin laeng a maiparang para iti agdama a panagbalbaliw.',
'pageinfo-header-basic' => 'Kangrunaan a pakaammuan',
'pageinfo-header-edits' => 'Pakasaritaan ti inurnos',
'pageinfo-header-restrictions' => 'Panagsalaknib ti panid',
'pageinfo-hidden-categories' => 'Nailemmeng {{PLURAL:$1|a kategoria|a katkategoria}} ($1)',
'pageinfo-templates' => 'Nailak-am {{PLURAL:$1|a plantilia|a planplantilia}} ($1)',
'pageinfo-toolboxlink' => 'Pakaammo ti panid',
+'pageinfo-redirectsto' => 'Maibaw-ing idiay',
+'pageinfo-redirectsto-info' => 'pakaammo',
+'pageinfo-contentpage' => 'Naibilang a kas naglaon a panid',
+'pageinfo-contentpage-yes' => 'Wen',
+'pageinfo-protect-cascading' => 'Dagiti panagsalaknib ket agsariap manipud ditoy',
+'pageinfo-protect-cascading-yes' => 'Wen',
+'pageinfo-protect-cascading-from' => 'Dagiti panagsalaknib ket agsariap manipud idiay',
# Patrolling
'markaspatrolleddiff' => 'Markaan a kas napatruliaan',
# Scary transclusion
'scarytranscludedisabled' => '[Nabaldado ti Interwiki panagiraman]',
'scarytranscludefailed' => '[Napaay ti panagala ti plantilia para iti $1]',
+'scarytranscludefailed-httpstatus' => '[Napaay ti panagala ti plantilia para iti $1: HTTP $2]',
'scarytranscludetoolong' => '[Atiddog unay ti URL]',
# Delete conflict
'enotif_anon_editor' => 'ónefndum notanda $1',
'enotif_body' => 'Kæri $WATCHINGUSERNAME,
-Það lítur út fyrir að þú hafir ný skilaboð á {{SITENAME}} síðunni $PAGETITLE.
-Hún hefur verið $CHANGEDORCREATED $PAGEEDITDATE af
+Síðan „$PAGETITLE” sem þú hefur beðið um að fylgjast með á {{SITENAME}} hefur verið $CHANGEDORCREATED $PAGEEDITDATE af
$PAGEEDITOR. Breytingarágripið var:
$PAGESUMMARY
-Þetta er tengill á spjallsíðuna þína:
+Þetta er tengill á síðuna:
$PAGETITLE_URL
{{canonicalurl:{{#special:Preferences}}}}
-Til þess að hætta að fylgjast með $PAGETITLE, smelltu á:
+Til þess að hætta að fylgjast með „$PAGETITLE”, smelltu á:
$UNWATCHURL',
'nologin' => '登録がまだの場合、$1。',
'nologinlink' => 'アカウントを作成してください',
'createaccount' => 'アカウント作成',
-'gotaccount' => '既にアカウントを持っている場合、$1。',
+'gotaccount' => 'アカウントを既に持っている場合、$1。',
'gotaccountlink' => 'ログインしてください',
'userlogin-resetlink' => 'ログイン情報をお忘れですか?',
'createaccountmail' => 'メールで送信',
Ẓeṛ daɣen [[Special:WantedCategories|taggayin yetwesuteren]].',
'categoriesfrom' => 'Ssken taggayin seg :',
'special-categories-sort-count' => 'Afran s amḍan n iferdisen',
-'special-categories-sort-abc' => 'Afran s ugemmay',
+'special-categories-sort-abc' => 'afran s ugemmay',
# Special:DeletedContributions
'deletedcontributions' => 'Isekcam yemḥan',
Ilaq-asen deg udday taɣult n uswir imineg, am amedya « *.org ».<br />
Ineggafen imazdayen : <code>$1</code> (ur d-renu acemma deg unadi inek/inem)',
'linksearch-line' => '$1 yeqqen seg $2',
+'linksearch-error' => 'Tzemreḍ ad seqdeceḍ isekkilen usligen ala deg tazzwara n taɣult uselkim.',
# Special:ListUsers
'listusersfrom' => 'Ssken imseqdacen seg:',
# Special:ListGroupRights
'listgrouprights' => 'Izerfan n igrawen n iseqdacen',
+'listgrouprights-summary' => 'Asebter agi yesɛa yiwen umuɣ n igrawen i sengelen deg wiki agi dɣa izerfan n wadduf i qqenen.
+Zemrent ad ilint [[{{MediaWiki:Listgrouprights-helppage}}|tilɣa nniḍen]] ɣef izerfan n yiwen.',
'listgrouprights-group' => 'Agraw',
'listgrouprights-rights' => 'Izerfan',
'listgrouprights-helppage' => 'Help:Izerfan n igrawen',
'edit-no-change' => 'Do häs ja nix aan dä Sigg jeändert, do dom_mer och nix domet.',
'edit-already-exists' => 'Kunnt kei neu Sigg aanlääje. Di Sigg jidd_et ald.',
'defaultmessagetext' => 'Dä standaadmäßije Tex',
+'content-failed-to-parse' => 'Et wohr nit müjjelesch, dä Enhalld met däm <i lang="en">MIME-Typ</i> $2 för en Dattei met $1 dren ze verwooschte: $3.',
+'invalid-content-data' => 'Di Daate en dä Sigg sen onjöltesch.',
+'content-not-allowed-here' => 'Ene Enhalld vun dä Zoot „$1“ es op dä Sigg „[[$2]]“ nit zohjelohße.',
+
+# Content models
+'content-model-wikitext' => 'Wikitäx',
+'content-model-text' => 'Eijnfache Tex',
+'content-model-javascript' => 'JavaSkrepp',
+'content-model-css' => 'CSS',
# Parser/template warnings
'expensive-parserfunction-warning' => "'''Opjepaß:''' Die Sigg heh määt zovill Opwand met Paaser-Funkßjohne.
'backend-fail-internal' => 'Ene onklohre Fähler es opjetrodde met däm Schpeischersysteem „$1“.',
'backend-fail-contenttype' => 'Mer kunnte de Zoot Enhalt nit eruß krijje, di en dä Dattei „$1“ faßjehallde wääde sull.',
'backend-fail-batchsize' => 'Dat Schpeischersysteem hät ene Pöngel met {{PLURAL:$1|einem Befähl|$1 Befähle|keinem Befähl}} krääje, ävver et kann bloß {{PLURAL:$2|eine Befähl|$2 Befähle|keine Befähl}} op eijmohl.',
-'backend-fail-usable' => 'Mer kunnte di Dattei $1 nit schrieve, weil e Verzeischnes udder ene container fählt, udder et Rääsch, dren ze schrieve.',
+'backend-fail-usable' => 'Mer kunnte di Dattei $1 nit lässe udder schrieve, weil e Verzeischnes udder ene container fählt, udder et Rääsch, dren ze lässe udder ze schrieve.',
# File journal errors
'filejournal-fail-dbconnect' => 'Mer kunnte kein Verbendong opnämme met dä Daatebangk för et Logbooch vum Schpeischersysteem „$1“.',
'shared-repo-from' => 'uß $1',
'shared-repo' => 'ene jemeinsame Beshtand',
'filepage.css' => '/* Heh dat CSS küdd op Sigge övver Dateije, och di vun ander Wikis jehollt woode sin. */',
-'upload-disallowed-here' => 'Onjlöklescherwies kanns De heh dat Beld nit övverschriive.',
+'upload-disallowed-here' => 'Do kanns heh di Dattei nit övverschriive.',
# File reversion
'filerevert' => '„$1“ zerök holle',
'undeletedrevisions' => '{{PLURAL:$1|ein Version|$1 Versione}} zeröckjehollt',
'undeletedrevisions-files' => 'Zesammejenomme {{PLURAL:$1|Ein Version|<strong>$1</strong> Versione|<strong>Kein</strong> Version}} vun {{PLURAL:$2|eine Datei|<strong>$2</strong> Dateie|<strong>nix</strong>}} zeröckjehollt',
'undeletedfiles' => '{{PLURAL:$1|Ein Datei|<strong>$1</strong> Dateie|<strong>Kein</strong> Dateie}} zeröckjehollt',
-'cannotundelete' => '<strong>Dä.</strong> Dat Zeröckholle jing donevve. Mach sinn, dat ene andere Metmaacher flöcker wor, un et ald et eets jedon hät, un jetz es die Sigg ald widder do jewäse.',
+'cannotundelete' => '<strong>Dä.</strong> Et Zeröckholle jing donevve. Maach sinn, dat ene andere Metmaacher flöcker wor, un et et eets jedon hät, un jetz es die Sigg ald widder do jewäse.',
'undeletedpage' => '<strong>De Sigg „$1“ es jetz widder do</strong>
Luur Der et [[Special:Log/delete|Logboch met de fottjeschmesse Sigge]] aan, do häs De de Neuste fottjeschmesse
un widder herjehollte Sigge.',
'immobile-target-namespace-iw' => 'Ene Ingerwikilink es nix, woh mer en Sigg hen ömnenne künnt!',
'immobile-source-page' => 'Di Sigg kann nit ömjenannt wääde.',
'immobile-target-page' => 'Op dä Tittel kann kei Sigg ömjenannt wääde.',
+'bad-target-model' => 'De Zielsigg moß uß en ander Zoot Daate beschtonn, un vun „$1“ noh „$2“ künne mer nit ömwandele.',
'imagenocrossnamespace' => 'Dateije kam_mer nor in et Appachtemang „{{ns:file}}“ donn, noh woanders hen kam_mer se och nit ömnemme!',
'nonfile-cannot-move-to-file' => 'Mer kann nix uußer Datteije esu ömnänne, dat et em Appachtemang „{{ns:file}}“ landt',
'imagetypemismatch' => 'De neu Datei-Endong moß met däm Datei-Tüp zesamme passe',
# Info page
'pageinfo-title' => 'Övver di Sigg: „$1“',
+'pageinfo-not-current' => 'Esu en Aanjaabe künne mer bloß övver de Neuste Version vun dä Sigg maache.',
'pageinfo-header-basic' => 'Jrundlääje Aanjabe',
'pageinfo-header-edits' => 'De Änderonge',
'pageinfo-header-restrictions' => 'Siggeschoz',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Ein verstoche Saachjropp|$1 verstoche Saachjroppe|Kein verstoche Saachjropp}}',
'pageinfo-templates' => '{{PLURAL:$1|Ein Schablohn|$1 Schablohne|Kein Schablohn}} opjerohfe',
'pageinfo-toolboxlink' => 'Övver heh di Sigg',
+'pageinfo-redirectsto' => 'Leidt öm op',
+'pageinfo-redirectsto-info' => 'Aanjaabe övver di Sigg',
+'pageinfo-contentpage' => 'Zällt als en Sigg vom Enhalld vum Wiki',
+'pageinfo-contentpage-yes' => 'Joh',
+'pageinfo-protect-cascading' => 'Ene Siggeschoz weed vun heh verärf',
+'pageinfo-protect-cascading-yes' => 'Joh',
+'pageinfo-protect-cascading-from' => 'Ene Siggeschoz weed jeärf vun',
# Skin names
'skinname-standard' => 'Klassesch',
'duration-minutes' => '{{PLURAL:$1|ein Menutt|$1 Menutte|kein Menutt}}',
'duration-hours' => '{{PLURAL:$1|en Stund|$1 Stunde|kein Shtund}}',
'duration-days' => '{{PLURAL:$1|ene Daach|$1 Dääsch|keine Daach}}',
-'duration-weeks' => '{{PLURAL: $1|en Woch|§1 Woche|kein Woch}}',
+'duration-weeks' => '{{PLURAL: $1|en Woch|$1 Woche|kein Woch}}',
'duration-years' => '{{PLURAL:$1|e Johr|$1 Johre|kei Johr}}',
'duration-decades' => '{{PLURAL:$1|zehn Johre|$1 Johrzehnte|kei Johrzehnt}}',
'duration-centuries' => '{{PLURAL:$1|e Johrhondert|$1 Johrhonderte|kei Johrhondert}}',
'parser-template-loop-warning' => 'Endlos Schleef an der Schabloun: [[$1]] entdeckt',
'parser-template-recursion-depth-warning' => "D'Limit vun der Zuel vun de Verschachtelunge vu Schabloune gouf iwwerschratt ($1)",
'language-converter-depth-warning' => "D'Limite vun der déift vun der Sproochëmwandlung gouf iwwerschratt ($1)",
+'parser-unstrip-loop-warning' => 'Endlos Schleef entdeckt',
'converter-manual-rule-error' => 'An der Regel iwwer déi manuell Ëmwandlung vun der Sprooch gouf e Feeler fonnt',
# "Undo" feature
'shared-repo' => 'sebuah gedung kongsi',
'shared-repo-name-wikimediacommons' => 'Wikimedia Commons',
'filepage.css' => '/* CSS yang ditempatkan di sini disertakan pada laman keterangan fail, dan juga pada klien wiki asing */',
-'upload-disallowed-here' => 'Maaf, anda tidak boleh menggantikan imej ini.',
+'upload-disallowed-here' => 'Anda tidak boleh menggantikan fail ini.',
# File reversion
'filerevert' => 'Balikkan $1',
# Info page
'pageinfo-title' => 'Maklumat untuk "$1"',
+'pageinfo-not-current' => 'Maklumat mungkin hanya dipaparkan untuk versi semasa.',
'pageinfo-header-basic' => 'Maklumat asas',
'pageinfo-header-edits' => 'Sunting sejarah',
'pageinfo-header-restrictions' => 'Perlindungan halaman',
'pageinfo-hidden-categories' => 'Kategori tersembunyi ($1)',
'pageinfo-templates' => 'Templat tertransklusi ($1)',
'pageinfo-toolboxlink' => 'Maklumat halaman',
+'pageinfo-redirectsto' => 'Melencong ke',
+'pageinfo-redirectsto-info' => 'maklumat',
+'pageinfo-contentpage' => 'Dikira sebagai halaman kandungan',
+'pageinfo-contentpage-yes' => 'Ya',
+'pageinfo-protect-cascading' => 'Perlindungan sedang melata dari sini',
+'pageinfo-protect-cascading-yes' => 'Ya',
+'pageinfo-protect-cascading-from' => 'Perlindungan sedang melata dari',
# Skin names
'skinname-standard' => 'Klasik',
'tog-minordefault' => 'Ticmachiyōtīz mochīntīn tlapatlalitzintli ic default',
'tog-previewontop' => 'Tiquittāz achtochīhualiztli achtopa tlapatlaliztli caxitl',
'tog-previewonfirst' => 'Xiquitta achtochīhualiztli inic cē tlapatlalizpan',
-'tog-enotifwatchlistpages' => 'Timitz-e-mailīzqueh ihcuāc mopatla cē zāzanilli tictlachiya.',
+'tog-enotifwatchlistpages' => 'Notech moēhualtia cē maltzinteyōtl netitlaniztli ihcuāc mopatla zāzanilli in notlachiyaliz.',
'tog-enotifusertalkpages' => 'Nēchihtoa ihcuāc tlecpatla motēixnāmiquiliz',
-'tog-enotifminoredits' => 'Timitz-e-mailīzqueh nō zāzanilpatlatzintli ītechcopa',
+'tog-enotifminoredits' => 'Notech moēhualtia cē maltzinteyōtl netitlaniztli nō ihcuāc mopatla tepitōn zāzanilli in notlachiyaliz.',
'tog-enotifrevealaddr' => 'Ticnēxtīz mo e-mailcān āxcāncayōtechcopa āmatlacuilizpan',
'tog-shownumberswatching' => 'Tiquinttāz tlatequitiltilīlli tlein tlachiyacateh',
'tog-forceeditsummary' => 'Xinēchnōtzāz ihcuāc ahmo niquihtōz inōn ōnitlapatlac',
'qbbrowse' => 'Titlatēmōz',
'qbedit' => 'Ticpatlāz',
'qbpageoptions' => 'Inīn zāzanilli',
-'qbpageinfo' => 'Tlahcuilōltechcopa',
'qbmyoptions' => 'Nozāzanil',
'qbspecialpages' => 'Nònkuâkìskàtlaìxtlapaltìn',
'faq' => 'Zan īc tētlatlanīliztli',
'timezoneregion-europe' => 'Europan',
'timezoneregion-indian' => 'Índico Ilhuicaātl',
'timezoneregion-pacific' => 'Pacífico Ilhuicaātl',
-'prefs-searchoptions' => 'Tlatēmoliztli tlaēlēhuiliztli',
+'prefs-searchoptions' => 'Titlatēmōz',
'prefs-namespaces' => 'Tōcātzin',
'defaultns' => 'Tlatēmōz inīn tōcātzimpan achtopa:',
'default' => 'ic default',
# Info page
'pageinfo-title' => 'Informatie over "$1"',
-'pageinfo-not-current' => 'Gegegevens worden mogelijk alleen weergegeven voor de huidige versie.',
+'pageinfo-not-current' => 'Gegevens worden mogelijk alleen weergegeven voor de huidige versie.',
'pageinfo-header-basic' => 'Basisgegevens',
'pageinfo-header-edits' => 'Bewerkingsgeschiedenis',
'pageinfo-header-restrictions' => 'Paginabeveiliging',
'pageinfo-hidden-categories' => 'Verborgen {{PLURAL:$1|categorie|categorieën}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Gebruikt sjabloon|Gebruikte sjablonen}} ($1)',
'pageinfo-toolboxlink' => 'Paginagegevens',
+'pageinfo-redirectsto' => 'Verwijst door naar',
+'pageinfo-redirectsto-info' => 'informatie',
+'pageinfo-contentpage' => 'Geteld als pagina met inhoud',
+'pageinfo-contentpage-yes' => 'Ja',
+'pageinfo-protect-cascading' => 'Beveiligingen werken vanaf hier door',
+'pageinfo-protect-cascading-yes' => 'Ja',
+'pageinfo-protect-cascading-from' => 'Pagina is beveiligd vanuit een andere pagina',
# Skin names
'skinname-standard' => 'Klassiek',
* @author Fryed-peach
* @author Jfblanc
* @author Kaganer
+ * @author McDutchie
* @author Spacebirdy
* @author Горан Анђелковић
* @author לערי ריינהארט
'timezoneregion-indian' => 'Ocean Indian',
'timezoneregion-pacific' => 'Ocean Pacific',
'allowemail' => 'Autorizar lo mandadís de corrièr electronic venent d’autres utilizaires',
-'prefs-searchoptions' => 'Opcions de recèrca',
+'prefs-searchoptions' => 'Recèrca',
'prefs-namespaces' => 'Noms d’espacis',
'defaultns' => 'Autrament recercar dins aquestes espacis de noms :',
'default' => 'defaut',
'duration-days' => '$1 {{PLURAL:$1|ଦିନ|ଦିନଗୁଡିକ}}',
'duration-weeks' => '$1 {{PLURAL: $1|ସପ୍ତାହ|ସପ୍ତାହଗୁଡିକ}}',
'duration-years' => '$1 {{PLURAL:$1|year|years}}',
-'duration-decades' => '$1 {{PLURAL:$1|decade|decades}',
+'duration-decades' => '$1 {{PLURAL:$1|decade|decades}}',
'duration-centuries' => '$1 {{PLURAL:$1|century|centuries}}',
'duration-millennia' => '$1 {{PLURAL:$1|millennium|millennia}}',
'badtitletext' => 'Æрдомд фарсы ном уыд рæдыдимæ кæнæ афтид кæнæ та йæ æхсæн-æвзаг æви йæ интервики æрвитæн раст нæ уыд.
Гæнæн ис Номы ис ахæм дамгъæтæ, кæдон уым æвæрын нæй гæнæн.',
'perfcached' => 'Бындæр цы рардтæ ис, уыдон сты кешгонд æмæ гæнæн ис базæронд сты. Кешы гæнæн ис уа æппæты фылдæр {{PLURAL:$1|иу фæстиуæг|$1 фæстиуæджы}}.',
-'perfcachedts' => 'Бындæр цы рардтæ ис, уыдон сты кешгонд æмæ фæстаг хатт нæуæггонд æрцыдысты $1. Кешы гæнæн ис уа æппæты фылдæр {{PLURAL:$1|иу фæстиуæг|$1 фæстиуæджы}}.',
+'perfcachedts' => 'Бындæр цы рардтæ ис, уыдон сты кешгонд æмæ фæстаг хатт нæуæггонд æрцыдысты $1. Кешы гæнæн ис уа æппæты фылдæр {{PLURAL:$4|иу фæстиуæг|$4 фæстиуæджы}}.',
'querypage-no-updates' => 'Ацы фарсы нæуæгкæнын ныртæккæ хицæн у.
Цы рардтæ дзы ис, уыдон нæуæг нæ кæндзысты.',
'wrong_wfQuery_params' => 'Рæдыд параметртæ wfQuery() функцийæн<br />
'shared-repo-from' => 'da $1',
'shared-repo' => "n'archivi condivis",
'shared-repo-name-wikimediacommons' => 'Wikimedia Commons',
-'upload-disallowed-here' => 'Për maleur a peul pa rampiassé sta figura.',
+'upload-disallowed-here' => 'A peul pa rampiassé cost archivi.',
# File reversion
'filerevert' => "Buté torna $1 tanme ch'a l'era",
# Info page
'pageinfo-title' => 'Anformassion për «$1»',
+'pageinfo-not-current' => "J'anformassion a peulo mach esse smonùe për la revision an cors.",
'pageinfo-header-basic' => 'Anformassion ëd base',
'pageinfo-header-edits' => 'Modìfiche',
'pageinfo-header-restrictions' => 'Protession ëd la pàgina',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categorìa|Categorìe}} stërmà ($1)',
'pageinfo-templates' => '{{PLURAL:$1|stamp contnù|stamp contnù}} ($1)',
'pageinfo-toolboxlink' => 'Anformassion an sla pàgina',
+'pageinfo-redirectsto' => 'Ridiression-a a',
+'pageinfo-redirectsto-info' => 'anformassion',
+'pageinfo-contentpage' => 'Contà com na pagina ëd contnù',
+'pageinfo-contentpage-yes' => 'É!',
+'pageinfo-protect-cascading' => 'Le protession a son a cascada da sì',
+'pageinfo-protect-cascading-yes' => 'É!',
+'pageinfo-protect-cascading-from' => 'Le protession a son a cascada da',
# Patrolling
'markaspatrolleddiff' => 'Marché coma verificà',
'exif-meteringmode-6' => 'Parsial',
'exif-meteringmode-255' => "n'àutr",
-'exif-lightsource-0' => 'Pa conossù',
+'exif-lightsource-0' => 'Dësconossùa',
'exif-lightsource-1' => 'Lus dël dì',
'exif-lightsource-2' => 'Fluoressenta',
'exif-lightsource-3' => 'Lus al tungsten (a incandessensa)',
-'exif-lightsource-4' => 'Flash',
+'exif-lightsource-4' => 'Lòsna',
'exif-lightsource-9' => 'Temp bel',
'exif-lightsource-10' => 'Temp an-nivolà',
'exif-lightsource-11' => 'Ombra',
'editfont-serif' => 'سېرېف ليکبڼه',
# Dates
-'sunday' => 'اتوار',
-'monday' => 'ګل',
-'tuesday' => 'نهي',
+'sunday' => 'يونۍ',
+'monday' => 'دونۍ',
+'tuesday' => 'درې نۍ',
'wednesday' => 'شورو',
'thursday' => 'زيارت',
'friday' => 'جمعه',
'qbbrowse' => 'سپړل',
'qbedit' => 'سمول',
'qbpageoptions' => 'همدا مخ',
-'qbpageinfo' => 'متن',
'qbmyoptions' => 'زما پاڼې',
'qbspecialpages' => 'ځانګړي مخونه',
'faq' => 'ډ-ځ-پ',
په ټولو ويکي ګانو کې د ژباړې د ورګډولو او يا هم د ژباړې د سمون او بدلون لپاره د مېډياويکي د ځايتابه پروژه [//translatewiki.net/ translatewiki.net] وکاروۍ.',
'editinginterface' => "'''ګواښنه:''' تاسو په يوه داسې مخ کې بدلون راولی کوم چې د يوې پوستکالی د ليدنمخ متن په توګه کارېږي.
په همدې مخ کې بدلون راوستل به د نورو کارنانو د ليدنمخ بڼه اغېزمنه کړي.
-د ژباړې لپاره، مهرباني وکړی د [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net]، وېبځي ته ولاړ شی. دا وېبځی د ميډياويکي د ځايتابه پروژه ده او د همدې پر کارولو غور وکړی.",
+د ژباړې د ورګډولو او بدلون لپاره، مهرباني وکړی د [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net]، وېبځي ته ولاړ شی. دا وېبځی د ميډياويکي د ځايتابه پروژه ده.",
'sqlhidden' => '(د SQL پوښتن پټ دی)',
'namespaceprotected' => "تاسې د '''$1''' په نوم-تشيال کې د مخونو د سمولو اجازه نه لرۍ.",
'customcssprotected' => 'تاسې د دې CSS مخ د سمولو اجازه نه لرۍ، دا ځکه چې دا مخ د بل کارن شخصي امستنې لري.',
'upload' => 'دوتنه پورته کول',
'uploadbtn' => 'دوتنه پورته کول',
'uploadnologin' => 'غونډال کې نه ياست ننوتي',
-'uploadnologintext' => 'د دوتنو د پورته کولو لپاره بايد غونډال کې [[Special:Userlogin|ننوځۍ]].',
+'uploadnologintext' => 'ددې لپاره چې دوتنې پورته کړای شۍ، نو لومړی غونډال کې [[Special:UserLogin|ورننوځۍ]].',
'uploaderror' => 'د پورته کولو ستونزه',
'uploadtext' => "د دوتنې د پورته کېدو لپاره لاندينی چوکاټ وکاروۍ.
که چېرته د پخونيو پورته شويو دوتنو کتل او پلټل غواړۍ نو [[Special:FileList|د پورته شويو دوتنو لړليک]] ته ورشۍ، [[Special:Log/upload|د (بيا) پورته شويو دوتنو يادښتونه]] او [[Special:Log/delete|د ړنګېدو يادښتونه]] هم کتلای شی.
'wlheader-showupdated' => "* هغه مخونه چې وروستی ځل ستاسو د کتلو نه وروسته بدلون موندلی په '''روڼ''' ليک نښه شوي.",
'watchlistcontains' => 'ستاسې کتنلړ $1 {{PLURAL:$1|مخ|مخونه}} لري.',
'iteminvalidname' => "د '$1' توکي سره ستونزه، ناسم نوم ...",
-'wlnote' => "دلته لاندې {{PLURAL:$1|وروستی بدلون دی|وروستي '''$1''' بدلونونه دي}} چې په {{PLURAL:$2|تېر يوه ساعت|تېرو '''$2''' ساعتونو}} کې تر $4 نېټې او $5 بجو پېښ شوي.",
+'wlnote' => "دلته لاندې {{PLURAL:$1|وروستی بدلون دی|وروستي '''$1''' بدلونونه دي}} چې په {{PLURAL:$2|تېر ساعت|تېرو '''$2''' ساعتونو}} کې تر $3 نېټې او $4 بجو پېښ شوي.",
'wlshowlast' => 'وروستي $1 ساعتونه $2 ورځې $3 ښکاره کړه',
'watchlist-options' => 'د کتنلړ خوښنې',
# Info page
'pageinfo-title' => 'د "$1" مالومات',
+'pageinfo-header-basic' => 'بنسټيز مالومات',
'pageinfo-header-edits' => 'د سمون پېښليک',
+'pageinfo-header-restrictions' => 'مخ ژغورنه',
+'pageinfo-header-properties' => 'د مخ ځانتياوې',
+'pageinfo-display-title' => 'ښکارېدونکی سرليک',
+'pageinfo-article-id' => 'د مخ پېژند',
+'pageinfo-robot-index' => 'ليکلړوړ',
+'pageinfo-robot-noindex' => 'ليکلړوړ نه',
'pageinfo-views' => 'د کتنو شمېر',
'pageinfo-watchers' => 'د مخ د کتونکو شمېر',
+'pageinfo-redirects-name' => 'دې مخ ته ورګرځونې',
+'pageinfo-subpages-name' => 'دې مخ ته څېرمه مخونه',
+'pageinfo-firstuser' => 'مخ جوړونکی',
'pageinfo-edits' => 'د ټولو سمونونو شمېر',
# Skin names
'vector-action-protect' => 'Proteger',
'vector-action-undelete' => 'Restaurar',
'vector-action-unprotect' => 'Alterar protecção',
-'vector-simplesearch-preference' => 'Activar sugestões de busca melhoradas (apenas no tema Vector)',
+'vector-simplesearch-preference' => 'Activar barra de buscas simplificada (apenas no tema Vector)',
'vector-view-create' => 'Criar',
'vector-view-edit' => 'Editar',
'vector-view-history' => 'Ver histórico',
$messages = array(
# User preference toggles
-'tog-underline' => 'Sublinhar ligação:',
+'tog-underline' => 'Sublinhar links:',
'tog-justify' => 'Justificar parágrafos',
'tog-hideminor' => 'Ocultar edições menores nas mudanças recentes',
'tog-hidepatrolled' => 'Ocultar edições patrulhadas nas mudanças recentes',
'tog-numberheadings' => 'Auto-numerar cabeçalhos',
'tog-showtoolbar' => 'Mostrar barra de edição (JavaScript)',
'tog-editondblclick' => 'Editar páginas quando houver clique duplo (JavaScript)',
-'tog-editsection' => 'Habilitar edição de seção via ligações [editar]',
+'tog-editsection' => 'Ativar a edição de seções com links [editar]',
'tog-editsectiononrightclick' => 'Habilitar edição de seção por clique com o botão direito no título da seção (JavaScript)',
'tog-showtoc' => 'Mostrar Tabela de Conteúdos (para páginas com mais de três cabeçalhos)',
'tog-rememberpassword' => 'Recordar os meus dados neste navegador (por no máximo $1 {{PLURAL:$1|dia|dias}})',
'tog-enotifrevealaddr' => 'Revelar o meu endereço de email nas notificações',
'tog-shownumberswatching' => 'Mostrar o número de usuários que estão vigiando',
'tog-oldsig' => 'Assinatura existente:',
-'tog-fancysig' => 'Tratar assinatura como wikitexto (sem ligação automática)',
+'tog-fancysig' => 'Tratar assinatura como wikitexto (sem link automático)',
'tog-externaleditor' => 'Utilizar editor externo por padrão (apenas para usuários avançados; requer configurações adicionais em seu computador. [//www.mediawiki.org/wiki/Manual:External_editors Mais informações.])',
'tog-externaldiff' => 'Utilizar comparador de versões externo por padrão (apenas para usuários avançados; requer configurações adicionais em seu computador. [//www.mediawiki.org/wiki/Manual:External_editors Mais informações.])',
-'tog-showjumplinks' => 'Ativar ligações de acessibilidade "ir para"',
+'tog-showjumplinks' => 'Ativar links de acessibilidade "ir para"',
'tog-uselivepreview' => 'Utilizar pré-visualização em tempo real (JavaScript) (Experimental)',
'tog-forceeditsummary' => 'Avisar-me ao introduzir um sumário vazio',
'tog-watchlisthideown' => 'Ocultar as minhas edições da lista de páginas vigiadas',
'listingcontinuesabbrev' => 'cont.',
'index-category' => 'Páginas indexadas',
'noindex-category' => 'Páginas não indexadas',
-'broken-file-category' => 'Páginas com ligações quebradas para arquivos',
+'broken-file-category' => 'Páginas com links inválidos para arquivos',
'about' => 'Sobre',
'article' => 'Página de conteúdo',
'vector-action-protect' => 'Proteger',
'vector-action-undelete' => 'Restaurar',
'vector-action-unprotect' => 'Alterar a proteção',
-'vector-simplesearch-preference' => 'Ativar sugestões de busca melhoradas (apenas no tema Vector)',
+'vector-simplesearch-preference' => 'Ativar barra simplificada de buscas (apenas no skin Vector)',
'vector-view-create' => 'Criar',
'vector-view-edit' => 'Editar',
'vector-view-history' => 'Ver histórico',
'history_short' => 'Histórico',
'updatedmarker' => 'atualizado desde a minha última visita',
'printableversion' => 'Versão para impressão',
-'permalink' => 'Ligação permanente',
+'permalink' => 'Link permanente',
'print' => 'Imprimir',
'view' => 'Ver',
'edit' => 'Editar',
# Main script and global functions
'nosuchaction' => 'Ação inexistente',
'nosuchactiontext' => 'A ação especificada pela URL é inválida.
-Você deve ter se enganado ao digitar a URL, ou seguiu uma ligação incorreta.
+Você deve ter se enganado ao digitar a URL, ou acessou um link incorreto.
Isso também pode indicar um erro no software usado no sítio {{SITENAME}}.',
'nosuchspecialpage' => 'Esta página especial não existe',
'nospecialpagetext' => '<strong>Você requisitou uma página especial inválida.</strong>
# General errors
'error' => 'Erro',
'databaseerror' => 'Erro no banco de dados',
-'dberrortext' => 'Ocorreu um erro de sintaxe de busca no banco de dados.
-Isto pode indicar um problema com o \'\'software\'\'.
+'dberrortext' => 'Ocorreu um erro de sintaxe na busca no banco de dados.
+Isto pode indicar um bug no software.
A última tentativa de busca no banco de dados foi:
-<blockquote><tt>$1</tt></blockquote>
-na função "<tt>$2</tt>".
-O banco de dados retornou o erro "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+na função "<code>$2</code>".
+O banco de dados retornou o erro "<samp>$3: $4</samp>".',
'dberrortextcl' => 'Ocorreu um erro de sintaxe de busca no banco de dados.
A última tentativa de busca no banco de dados foi:
"$1"
Quem fez o bloqueio oferece a seguinte explicação: $1',
'missing-article' => 'O banco de dados não encontrou o texto de uma página que deveria ter encontrado, com o nome "$1" $2.
-Isso normalmente é causado ao acessar uma ligação de diferença (diff) desatualizada ou para o histórico de uma página que foi apagada.
+Isso normalmente é causado ao acessar um link de diferença (dif) desatualizado ou para o histórico de uma página que foi apagada.
-Se não for este o caso, você pode ter encontrado um defeito (bug) no software.
-Anote o URL e reporte o ocorrido a um [[Special:ListUsers/sysop|administrador]].',
+Se este não for o caso, você pode ter encontrado um defeito (bug) no software.
+Anote a URL e reporte o ocorrido a um [[Special:ListUsers/sysop|administrador]].',
'missingarticle-rev' => '(revisão#: $1)',
'missingarticle-diff' => '(Dif.: $1, $2)',
'readonly_lag' => 'O banco de dados foi automaticamente bloqueado enquanto os servidores secundários se sincronizam com o principal',
'passwordreset-capture-help' => 'Se marcar esta caixa, o e-mail (com a senha temporária) será-lhe mostrado, além de ser enviado para o usuário.',
'passwordreset-email' => 'Endereço de e-mail:',
'passwordreset-emailtitle' => 'Detalhes da conta em {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Alguém (provavelmente você, do endereço IP $1) solicitou um lembrete do seu detalhes de conta para {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este e-mail:
+'passwordreset-emailtext-ip' => 'Alguém (provavelmente você, a partir do endereço IP $1)
+solicitou um lembrete dos seus detalhes de conta para {{SITENAME}} ($4).
+{{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este e-mail:
$2
-{{PLURAL:$3|Esta senha temporária |Essas senhas temporárias}} vão expirar em {{PLURAL:$5|um dia|$5 dias}}.
-Você deve efetuar login e escolher uma nova senha agora. Se você conseguir lembrar da senha, ignore este e-mail e continue usando sua senha anterior, do contrário, prossiga com as instruções clicando na ligação.',
+{{PLURAL:$3|Esta senha temporária vai|Essas senhas temporárias vão}} expirar em {{PLURAL:$5|um dia|$5 dias}}.
+Você deve efetuar login e escolher uma nova senha agora.
+Se você conseguir lembrar da senha, ignore este e-mail e continue
+usando sua senha anterior. Caso contrário, prossiga com as instruções
+disponíveis no link.',
'passwordreset-emailtext-user' => 'O usuário $1 da {{SITENAME}} pediu a recuperação dos detalhes da sua conta na {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este e-mail:
$2
'bold_tip' => 'Texto em negrito',
'italic_sample' => 'Texto em itálico',
'italic_tip' => 'Texto em itálico',
-'link_sample' => 'Título da ligação',
-'link_tip' => 'Ligação interna',
-'extlink_sample' => 'http://www.example.com título da ligação',
-'extlink_tip' => 'Ligação externa (lembre-se do prefixo http://)',
+'link_sample' => 'Título do link',
+'link_tip' => 'Link interno',
+'extlink_sample' => 'http://www.example.com título do link',
+'extlink_tip' => 'Link externo (lembre-se do prefixo http://)',
'headline_sample' => 'Conteúdo do cabeçalho',
'headline_tip' => 'Seção de nível 2',
'nowiki_sample' => 'Inserir texto não-formatado aqui',
'image_sample' => 'Exemplo.jpg',
'image_tip' => 'Arquivo embutido',
'media_sample' => 'Exemplo.ogg',
-'media_tip' => 'Ligação para o arquivo',
+'media_tip' => 'Link para o arquivo',
'sig_tip' => 'Sua assinatura, com hora e data',
'hr_tip' => 'Linha horizontal (use de forma moderada)',
A senha para esta nova conta pode ser alterada na página ''[[Special:ChangePassword|de troca de senha]]'', após a autenticação.",
'newarticle' => '(Nova)',
-'newarticletext' => "Você seguiu uma ligação para uma página que ainda não existe.
+'newarticletext' => "Você seguiu um link para uma página que ainda não existe.
Para criá-la, comece escrevendo na caixa abaixo (veja [[{{MediaWiki:Helppage}}|a página de ajuda]] para mais informações).
Se você chegou aqui por engano, clique no botão '''voltar''' do seu navegador.",
'anontalkpagetext' => "---- ''Esta é a página de discussão para um usuário anônimo que ainda não criou uma conta ou que não a usa, de forma que temos de utilizar o endereço de IP para identificá-lo(a). Tal endereço de IP pode ser compartilhado por vários usuários. Se você é um usuário anônimo e acha que comentários irrelevantes foram direcionados a você, por gentileza, [[Special:UserLogin/signup|crie uma conta]] ou [[Special:UserLogin|autentique-se]], a fim de evitar futuras confusões com outros usuários anônimos.''",
'timezoneregion-indian' => 'Oceano Índico',
'timezoneregion-pacific' => 'Oceano Pacífico',
'allowemail' => 'Permitir que outros usuários me enviem e-mails',
-'prefs-searchoptions' => 'Opções de busca',
+'prefs-searchoptions' => 'Busca',
'prefs-namespaces' => 'Espaços nominais',
'defaultns' => 'Caso contrário pesquisar nestes espaços nominais:',
'default' => 'padrão',
* @author Guglani
* @author Gustronico
* @author Hamilton Abreu
+ * @author Harsh4101991
* @author Helix84
* @author Holek
* @author Huji
'userrights-editusergroup' => '{{Identical|Edit user groups}}. Parameter:
* $1 is a username - optional, can be used for GENDER',
'saveusergroups' => 'Button text when editing user groups',
-'userrights-groupsmember' => 'Used when editing user groups in [[Special:Userrights]]. The messsage is followed by a list of group names.
+'userrights-groupsmember' => 'Used when editing user groups in [[Special:Userrights]]. The message is followed by a list of group names.
Parameters:
-* $1 - optional, for PLURAL use, the number of items in the list following the message. Avoid PLURAL, if your language can do without.',
+* $1 - the number of items in the list following the message, for PLURAL.
+* $2 - the user name, for GENDER.',
'userrights-groupsmember-auto' => 'Used when editing user groups in [[Special:Userrights]]. The messsage is followed by a list of group names.
"Implicit" is for groups that the user was automatically added to (such as "autoconfirmed"); cf. {{msg-mw|userrights-groupsmember}}
-Parameters:
-* $1 - optional, for PLURAL use, the number of items in the list following the message. Please avoid PLURAL, if your language can do without.',
+Parameters
+* $1 - the number of items in the list following the message, for PLURAL.
+* $2 - the user name, for GENDER.',
'userrights-groups-help' => 'Instructions displayed on [[Special:UserRights]]. Parameters:
* $1 is a username - optional, can be used for GENDER',
'userrights-reason' => 'Text beside log field when editing user groups
'pageinfo-header-properties' => 'Table section header in action=info.',
'pageinfo-display-title' => 'The title that is displayed when the page is viewed.',
'pageinfo-default-sort' => 'The key by which the page is sorted in categories by default.',
-'pageinfo-length' => 'The length of the page, in bytes.',
+'pageinfo-length' => 'પૃષ્ઠની લંબાઇ બાઇટમાં',
'pageinfo-article-id' => 'The numeric identifier of the page.',
'pageinfo-robot-policy' => 'The search engine status of the page, e.g. "marked as index".',
'pageinfo-robot-index' => 'An indication that the page is indexable.',
'djvu_no_xml' => 'Невозможно получить XML для DjVu',
'thumbnail-temp-create' => 'Не удаётся создать временный файл эскиза',
'thumbnail-dest-create' => 'Не удаётся сохранить эскиз по месту назначения',
-'thumbnail_invalid_params' => 'Ошибочный параметр миниатюры',
+'thumbnail_invalid_params' => 'Ошибочный параметр миниатюры или файл содержит более 12,5 млн. пикселей',
'thumbnail_dest_directory' => 'Невозможно создать целевую директорию',
'thumbnail_image-type' => 'Данный тип изображения не поддерживается',
'thumbnail_gd-library' => 'Неполная конфигурация библиотеки GD, отсутствует функция $1',
Prosimo, preverite delovanje strani, počakajte kratek čas in poskusite ponovno.
Morda želite poskusiti ob času manjše zasedenosti.',
-'license' => 'Licenca:',
+'license' => 'Licenciranje:',
'license-header' => 'Licenca',
'nolicense' => 'Nobeno',
'license-nopreview' => '(Predogled ni na voljo)',
'watchnochange' => 'V prikazanem časovnem obdobju ni nihče spremenil nadzorovanih strani.',
'watchlist-details' => 'Spremljate $1 {{PLURAL:$1|stran|strani|strani|strani|strani}} (pogovorne strani niso vštete).',
'wlheader-enotif' => '* Obveščanje po elektronski pošti je omogočeno.',
-'wlheader-showupdated' => "* Od vašega zadnjega ogleda spremenjene strani so prikazane '''krepko'''.",
+'wlheader-showupdated' => "* Strani, spremenjene od vašega zadnjega ogleda, so prikazane '''krepko'''.",
'watchmethod-recent' => 'med nedavnimi urejanji iščem spremljane strani',
'watchmethod-list' => 'med spremljanimi stranmi iščem nedavna urejanja',
'watchlistcontains' => 'Spremljate $1 {{PLURAL:$1|stran|strani}}.',
'dellogpage' => 'Dnevnik brisanja',
'dellogpagetext' => 'Spodaj je prikazan seznam nedavnih brisanj.',
'deletionlog' => 'dnevnik brisanja',
-'reverted' => 'Vrnjeno na prejšnjo redakcijo.',
+'reverted' => 'Vrnjeno na prejšnje urejanje.',
'deletecomment' => 'Razlog:',
'deleteotherreason' => 'Drugi/dodatni razlogi:',
'deletereasonotherlist' => 'Drug razlog',
'vector-action-move' => 'ย้าย',
'vector-action-protect' => 'ป้องกัน',
'vector-action-undelete' => 'ยกเลิกการลบ',
-'vector-action-unprotect' => 'à¹\80à¸\9bลีà¹\88ยà¸\99à¸\84à¹\88าà¸\81ารà¸\9bà¸\81à¸\9bà¹\89à¸à¸\87à¸\82à¹\89à¸à¸¡à¸¹à¸¥',
+'vector-action-unprotect' => 'à¹\80à¸\9bลีà¹\88ยà¸\99à¸\84à¹\88าà¸\81ารà¸\9bà¹\89à¸à¸\87à¸\81ัà¸\99',
'vector-simplesearch-preference' => 'เปิดใช้งานคำแนะนำการค้นหาขั้นสูง (สำหรับสกิน Vector เท่านั้น)',
'vector-view-create' => 'สร้าง',
'vector-view-edit' => 'แก้ไข',
'vector-view-history' => 'ดูประวัติ',
'vector-view-view' => 'อ่าน',
'vector-view-viewsource' => 'ดูโค้ด',
-'actions' => 'à¸\81ารà¸\81ระà¸\97ำ',
+'actions' => 'à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\81าร',
'namespaces' => 'เนมสเปซ',
'variants' => 'สิ่งที่แตกต่าง',
'delete' => 'ลบ',
'deletethispage' => 'ลบหน้านี้',
'undelete_short' => 'เรียกคืน {{PLURAL:$1|1 การแก้ไข|$1 การแก้ไข}}',
-'viewdeleted_short' => 'ดู{{PLURAL:$1|1 การแก้ไขที่ถูกลบ|$1 การแก้ไขที่ถูกลบ}}',
+'viewdeleted_short' => 'ดู {{PLURAL:$1|1 การแก้ไขที่ถูกลบ|$1 การแก้ไขที่ถูกลบ}}',
'protect' => 'ล็อก',
'protect_change' => 'เปลี่ยน',
'protectthispage' => 'ล็อกหน้านี้',
'badaccess' => 'มีข้อผิดพลาดในการใช้สิทธิ',
'badaccess-group0' => 'คุณไม่ได้รับอนุญาตให้ดำเนินการตามที่ร้องขอนี้',
-'badaccess-groups' => 'à¸\81ารà¸\81ระà¸\97ำà¸\97ีà¹\88รà¹\89à¸à¸\87à¸\82à¸à¸\99ีà¹\89สà¸\87วà¸\99à¹\84วà¹\89à¹\80à¸\89à¸\9eาะà¸\9cูà¹\89à¹\83à¸\8aà¹\89{{PLURAL:$2|à¸\88าà¸\81à¸\81ลุà¹\88ม|à¸\88าà¸\81กลุ่มใดกลุ่มหนึ่ง ดังนี้}}: $1',
+'badaccess-groups' => 'à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\81ารà¸\97ีà¹\88à¸\84ุà¸\93รà¹\89à¸à¸\87à¸\82à¸à¸\99ีà¹\89สà¸\87วà¸\99à¹\84วà¹\89à¹\80à¸\89à¸\9eาะà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\83à¸\99{{PLURAL:$2|à¸\81ลุà¹\88ม|กลุ่มใดกลุ่มหนึ่ง ดังนี้}}: $1',
'versionrequired' => 'ต้องการมีเดียวิกิรุ่น $1',
'versionrequiredtext' => 'ต้องการมีเดียวิกิรุ่น $1 สำหรับใช้งานหน้านี้ ดูเพิ่ม [[Special:Version|รุ่นซอฟต์แวร์]]',
'youhavenewmessages' => 'คุณมี $1 ($2)',
'newmessageslink' => 'ข้อความใหม่',
'newmessagesdifflink' => 'การเปลี่ยนแปลงล่าสุด',
+'youhavenewmessagesfromusers' => 'คุณมี $1 จาก{{PLURAL:$3|ผู้ใช้คนอื่น|ผู้ใช้ $3 คน}} ($2)',
+'youhavenewmessagesmanyusers' => 'คุณมี $1 จากผู้ใช้หลายคน ($2)',
+'newmessageslinkplural' => '{{PLURAL:$1|ข้อความใหม่|ข้อความใหม่}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|การเปลี่ยนแปลง|การเปลี่ยนแปลง}}ล่าสุด',
'youhavenewmessagesmulti' => 'คุณมีข้อความใหม่ที่ $1',
'editsection' => 'แก้ไข',
'editold' => 'แก้ไข',
'ns-specialprotected' => 'หน้าพิเศษไม่สามารถแก้ไขได้',
'titleprotected' => "หัวเรื่องนี้ได้รับการป้องกันไม่ให้สร้างใหม่ โดย [[User:$1|$1]]
เหตุผลที่ให้ไว้ คือ ''$2''",
+'exception-nologin' => 'ไม่ได้ล็อกอิน',
+'exception-nologin-text' => 'หน้าหรือปฏิบัติการนี้กำหนดให้คุณล็อกอินเข้าสู่วิกินี้ก่อน',
# Virus scanner
'virus-badscanner' => "การตั้งค่าผิดพลาด: ไม่รู้จักตัวสแกนไวรัส: ''$1''",
# Diffs
'history-title' => 'ประวัติรุ่นปรับปรุงของ "$1"',
+'difference-title' => 'ความแตกต่างระหว่างรุ่นของ "$1"',
+'difference-title-multipage' => 'ความแตกต่างระหว่างหน้า "$1" และ "$2"',
'difference-multipage' => '(ความแตกต่างระหว่างหน้าต่างๆ)',
'lineno' => 'แถว $1:',
'compareselectedversions' => 'เปรียบเทียบสองรุ่นที่เลือก',
'allpagesprefix' => 'แสดงหน้าที่ขึ้นต้นด้วย:',
'allpagesbadtitle' => 'ชื่อเรื่องนี้ไม่ถูกต้อง อาจสะกดผิด ลิงก์มาจากภาษาอื่นหรือวิกิอื่น หรือมีตัวอักษรที่ไม่สามารถใช้เป็นชื่อเรื่องได้',
'allpages-bad-ns' => '{{SITENAME}} ไม่มีเนมสเปซในชื่อ "$1"',
+'allpages-hide-redirects' => 'ซ่อนการเปลี่ยนทาง',
# Special:Categories
'categories' => 'หมวดหมู่',
'rollback' => 'ย้อนการแก้ไขกลับฉุกเฉิน',
'rollback_short' => 'ย้อนกลับฉุกเฉิน',
'rollbacklink' => 'ย้อนกลับฉุกเฉิน',
+'rollbacklinkcount' => 'ย้อนกลับฉุกเฉิน $1 การแก้ไข',
'rollbackfailed' => 'ย้อนไม่สำเร็จ',
'cantrollback' => 'ไม่สามารถย้อนการแก้ไขได้ เนื่องจากหน้านี้ไม่มีผู้แก้ไขรายอื่นอีก',
'alreadyrolled' => 'ไม่สามารถย้อนรุ่นล่าสุด
# New logging system
'logentry-delete-delete' => '$1 ลบหน้า $3',
'logentry-delete-restore' => '$1 กู้คืนหน้า $3',
+'logentry-delete-event' => '$1 เปลี่ยนทัศนวิสัยของ $5 รายการปูมใน $3: $4',
'revdelete-content-hid' => 'เนื้อหาถูกซ่อน',
'revdelete-summary-hid' => 'คำอธิบายอย่างย่อถูกซ่อน',
'revdelete-uname-hid' => 'ชื่อผู้ใช้ถูกซ่อน',
Tên người dùng có phân biệt chữ hoa chữ thường.
Hãy kiểm tra lại chính tả, hoặc [[Special:UserLogin/signup|mở tài khoản mới]].',
'nosuchusershort' => 'Không có thành viên nào có tên “$1”. Xin hãy kiểm tra lại chính tả.',
-'nouserspecified' => 'Bạn phải đưa ra tên đăng ký.',
+'nouserspecified' => 'Bạn phải chỉ định một tên người dùng.',
'login-userblocked' => 'Thành viên này đã bị cấm. Không cho phép đăng nhập.',
'wrongpassword' => 'Mật khẩu sai. Xin vui lòng nhập lại.',
'wrongpasswordempty' => 'Bạn chưa gõ vào mật khẩu. Xin thử lần nữa.',
'passwordremindertext' => 'Ai đó (có thể là bạn, có địa chỉ IP $1) đã yêu cầu chúng tôi gửi mật khẩu mới của {{SITENAME}} ($4). Chúng tôi đã tạo một mật khẩu tạm “$3” cho thành viên “$2”. Nếu bạn chính là người đã yêu cầu mật khẩu, bạn cần phải đăng nhập và thay đổi mật khẩu ngay bây giờ. Mật khẩu tạm sẽ hết hạn trong vòng {{PLURAL:$5|một ngày|$5 ngày}}.
Nếu bạn không yêu cầu gửi mật khẩu mới, hoặc bạn đã nhớ ra mật khẩu cũ của mình và không còn muốn đổi nó nữa, bạn có thể bỏ qua bức thư này và tiếp tục sử dụng mật khẩu cũ của bạn.',
-'noemail' => 'Thành viên “$1” không đăng ký thư điện tử.',
+'noemail' => 'Thành viên “$1” không ghi thư điện tử.',
'noemailcreate' => 'Bạn cần cung cấp một địa chỉ thư điện tử hợp lệ',
'passwordsent' => 'Mật khẩu mới đã được gửi tới thư điện tử của thành viên “$1”. Xin đăng nhập lại sau khi nhận thư.',
'blocked-mailpassword' => 'Địa chỉ IP của bạn bị cấm không được sửa đổi, do đó cũng không được phép dùng chức năng phục hồi mật khẩu để tránh lạm dụng.',
* Mục tiêu cấm: $7
Bạn có thể liên hệ với $1 hoặc một [[{{MediaWiki:Grouppage-sysop}}|bảo quản viên]] khác để thảo luận về việc cấm.
-Bạn không thể sử dụng tính năng “gửi thư cho người này” trừ khi bạn đã đăng ký một địa chỉ thư điện tử hợp lệ trong [[Special:Preferences|tùy chọn tài khoản]] và bạn không bị khóa chức năng đó.
+Bạn không thể sử dụng tính năng “gửi thư cho người này” trừ khi bạn đã ghi một địa chỉ thư điện tử hợp lệ trong [[Special:Preferences|tùy chọn tài khoản]] và bạn không bị khóa chức năng đó.
Địa chỉ IP hiện tại của bạn là $3, và mã số cấm là #$5.
Xin hãy ghi kèm tất cả các thông tin trên vào thư yêu cầu của bạn.",
'autoblockedtext' => "Địa chỉ IP của bạn đã bị tự động cấm vì một người nào đó đã sử dụng nó, $1 là thành viên đã thực hiện cấm.
Bạn có thể liên hệ với $1 hoặc một trong số các
[[{{MediaWiki:Grouppage-sysop}}|bảo quản viên]] khác để thảo luận về việc cấm.
-Chú ý rằng bạn sẽ không dùng được chức năng “gửi thư cho người này” trừ khi bạn đã đăng ký một địa chỉ thư điện tử hợp lệ trong [[Special:Preferences|tùy chọn]] và bạn không bị cấm dùng chức năng đó.
+Chú ý rằng bạn sẽ không dùng được chức năng “gửi thư cho người này” trừ khi bạn đã ghi một địa chỉ thư điện tử hợp lệ trong [[Special:Preferences|tùy chọn]] và bạn không bị cấm dùng chức năng đó.
Địa chỉ IP hiện tại của bạn là $3, mã số cấm là $5.
Xin hãy ghi kèm tất cả các chi tiết trên vào thư yêu cầu của bạn.",
Lỗi này thường xuất hiện đối khi theo dõi liên kết lỗi thời đến phiên bản cũ của một trang đã bị xóa.
Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} nhật trình xóa].',
-'userpage-userdoesnotexist' => 'Tài khoản mang tên “<nowiki>$1</nowiki>” chưa được đăng ký. Xin hãy kiểm tra lại nếu bạn muốn tạo/sửa trang này.',
-'userpage-userdoesnotexist-view' => 'Tài khoản “$1” chưa được đăng ký.',
+'userpage-userdoesnotexist' => 'Đây chưa có tài khoản với tên “<nowiki>$1</nowiki>”. Xin hãy kiểm tra lại nếu bạn muốn tạo hay sửa trang này.',
+'userpage-userdoesnotexist-view' => 'Chưa có tài khoản với tên “$1”.',
'blocked-notice-logextract' => 'Người dùng này hiện đang bị cấm sửa đổi. Nhật trình cấm gần nhất được ghi ở dưới để tiện theo dõi:',
'clearyourcache' => "'''Chú ý:''' Sau khi lưu trang, có thể bạn sẽ phải xóa bộ nhớ đệm của trình duyệt để xem các thay đổi.
-* '''Firefox / Safari:''' Giữ phím ''Shift'' trong khi nhấn ''Reload'' (''Tải lại''), hoặc nhấn tổ hợp ''Ctrl-F5'' hay ''Ctrl-R'' (⌘R trên Mac)
+* '''Firefox / Safari:''' Giữ phím ''Shift'' trong khi nhấn ''Tải lại'' (''Reload''), hoặc nhấn tổ hợp ''Ctrl-F5'' hay ''Ctrl-R'' (⌘R trên Mac)
* '''Google Chrome:''' Nhấn tổ hợp ''Ctrl-Shift-R'' (⇧⌘R trên Mac)
-* '''Internet Explorer:''' Giữ phím ''Ctrl'' trong khi nhấn ''Refresh'', hoặc nhấn tổ hợp ''Ctrl-F5''
-* '''Opera:''' Xóa bộ nhớ đệm trong ''Tools → Preferences''",
+* '''Internet Explorer:''' Giữ phím ''Ctrl'' trong khi nhấn ''Làm tươi'' (''Refresh''), hoặc nhấn tổ hợp ''Ctrl-F5''
+* '''Opera:''' Xóa bộ nhớ đệm trong ''Công cụ → Sở thích'' (''Tools → Preferences'')",
'usercssyoucanpreview' => "'''Mẹo:''' Sử dụng nút “{{int:showpreview}}” để kiểm thử bản CSS của bạn trước khi lưu trang.",
'userjsyoucanpreview' => "'''Mẹo:''' Sử dụng nút “{{int:showpreview}}” để kiểm thử bản JS của bạn trước khi lưu trang.",
'usercsspreview' => "'''Hãy nhớ rằng bạn chỉ đang xem thử trang CSS cá nhân của bạn.
Bảo quản viên khi khóa dữ liệu đã đưa ra lý do: $1",
'protectedpagewarning' => "'''Cảnh báo: Trang này đã bị khóa và chỉ có các thành viên có quyền quản lý mới có thể sửa được.'''
Thông tin mới nhất trong nhật trình được ghi dưới đây để tiện theo dõi:",
-'semiprotectedpagewarning' => "'''Lưu ý:''' Trang này đã bị khóa và chỉ có các thành viên đã đăng ký mới có thể sửa đổi được.
+'semiprotectedpagewarning' => "'''Lưu ý:''' Trang này đã bị khóa nên chỉ có các thành viên có tài khoản mới có thể sửa đổi được.
Thông tin mới nhất trong nhật trình được ghi dưới đây để tiện theo dõi:",
'cascadeprotectedwarning' => "'''Cảnh báo:''' Trang này đã bị khóa, chỉ có thành viên có quyền quản lý mới có thể sửa đổi được, vì nó được nhúng vào {{PLURAL:$1|trang|những trang}} bị khóa theo tầng sau:",
'titleprotectedwarning' => "'''Cảnh báo: Trang này đã bị khóa và bạn phải có một số [[Special:ListGroupRights|quyền nhất định]] mới có thể tạo trang.'''
'username' => 'Tên người dùng:',
'uid' => 'Số thứ tự thành viên:',
'prefs-memberingroups' => 'Thành viên của {{PLURAL:$1|nhóm|nhóm}}:',
-'prefs-registration' => 'Thời điểm đăng ký:',
+'prefs-registration' => 'Lúc mở tài khoản:',
'yourrealname' => 'Tên thật:',
'yourlanguage' => 'Ngôn ngữ:',
'yourvariant' => 'Dạng chữ của nội dung:',
'statistics-views-total' => 'Số lần xem tổng cộng',
'statistics-views-total-desc' => 'Không bao gồm số lần xem các trang không tồn tại và các trang đặc biệt',
'statistics-views-peredit' => 'Số lần xem trên một sửa đổi',
-'statistics-users' => 'Số [[Special:ListUsers|thành viên]] đã đăng ký',
+'statistics-users' => 'Số [[Special:ListUsers|thành viên]] có tài khoản',
'statistics-users-active' => 'Số thành viên tích cực',
'statistics-users-active-desc' => 'Những thành viên đã hoạt động trong {{PLURAL:$1|ngày|$1 ngày}} qua',
'statistics-mostpopular' => 'Các trang được xem nhiều nhất',
'protect-cascadeon' => 'Trang này hiện bị khóa vì nó được nhúng vào {{PLURAL:$1|những trang|trang}} dưới đây bị khóa với tùy chọn “khóa theo tầng” được kích hoạt. Bạn có thể đổi mức độ khóa của trang này, nhưng nó sẽ không ảnh hưởng đến việc khóa theo tầng.',
'protect-default' => 'Cho phép mọi thành viên',
'protect-fallback' => 'Cần quyền “$1”',
-'protect-level-autoconfirmed' => 'Cấm thành viên mới và thành viên chưa đăng ký',
+'protect-level-autoconfirmed' => 'Cấm thành viên mới và người dùng chưa mở tài khoản',
'protect-level-sysop' => 'Cấm mọi thành viên (trừ bảo quản viên)',
'protect-summary-cascade' => 'khóa theo tầng',
'protect-expiring' => 'hết hạn $1 (UTC)',
'movearticle' => 'Di chuyển trang:',
'moveuserpage-warning' => "'''Cảnh báo:''' Bạn sắp di chuyển trang cá nhân của người dùng. Xin lưu ý rằng chỉ có trang này sẽ được di chuyển, còn người dùng sẽ ''không'' đổi tên.",
'movenologin' => 'Chưa đăng nhập',
-'movenologintext' => 'Bạn phải là thành viên đã đăng ký và [[Special:UserLogin|đăng nhập]] mới di chuyển trang được.',
+'movenologintext' => 'Bạn phải là thành viên đã mở tài khoản và [[Special:UserLogin|đăng nhập]] mới di chuyển trang được.',
'movenotallowed' => 'Bạn không có quyền di chuyển trang.',
'movenotallowedfile' => 'Bạn không có đủ quyền để di chuyển tập tin.',
'cant-move-user-page' => 'Bạn không có quyền di chuyển trang cá nhân (ngoại trừ trang con).',
'imageinvalidfilename' => 'Tên tập tin đích không hợp lệ',
'fix-double-redirects' => 'Cập nhật tất cả các trang đổi hướng chỉ đến tựa đề cũ',
'move-leave-redirect' => 'Để lại trang đổi hướng',
-'protectedpagemovewarning' => "'''Cảnh báo:''' Trang này đã bị khóa và chỉ có các thành viên có quyền quản lý mới có thể di chuyển được.
+'protectedpagemovewarning' => "'''Cảnh báo:''' Trang này đã bị khóa nên chỉ có các thành viên có quyền quản lý mới có thể di chuyển được.
Thông tin mới nhất trong nhật trình được ghi dưới đây để tiện theo dõi:",
-'semiprotectedpagemovewarning' => "'''Lưu ý:''' Trang này đã bị khóa và chỉ có các thành viên đã đăng ký mới có thể di chuyển được.
+'semiprotectedpagemovewarning' => "'''Lưu ý:''' Trang này đã bị khóa nên chỉ có các thành viên có tài khoản mới có thể di chuyển được.
Thông tin mới nhất trong nhật trình được ghi dưới đây để tiện theo dõi:",
'move-over-sharedrepo' => '== Tập tin đã tồn tại ==
[[:$1]] đã tồn tại trong kho dùng chung. Nếu đổi tên tập tin thành tên này thì sẽ ghi đè lên tập tin dùng chung.',
'confirmemail_error' => 'Có trục trặc khi lưu xác nhận của bạn.',
'confirmemail_subject' => 'Xác nhận thư điện tử tại {{SITENAME}}',
'confirmemail_body' => 'Ai đó, có thể là bạn, từ địa chỉ IP $1,
-đã đăng ký tài khoản có tên "$2" với địa chỉ thư điện tử này tại {{SITENAME}}.
+đã mở tài khoản có tên "$2" với địa chỉ thư điện tử này tại {{SITENAME}}.
Để xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng thư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:
$3
-Nếu bạn *không* đăng ký tài khoản, hãy nhấn vào liên kết này
+Nếu bạn *không* mở tài khoản, hãy nhấn vào liên kết này
để hủy thủ tục xác nhận địa chỉ thư điện tử:
$5
Mã xác nhận này sẽ hết hạn vào $4.',
-'confirmemail_body_changed' => 'Ai đó, có thể là bạn, từ địa chỉ IP $1, đã đăng ký tài khoản có
+'confirmemail_body_changed' => 'Ai đó, có thể là bạn, từ địa chỉ IP $1, đã mở tài khoản có
tên "$2" với địa chỉ thư điện tử này tại {{SITENAME}}.
Để xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng
'vector-action-protect' => 'Panalipda',
'vector-action-undelete' => 'Igbalik an ginpara',
'vector-action-unprotect' => 'Liwani an panalipod',
+'vector-simplesearch-preference' => 'Ginpadulot an yinano nga pamiling nga kahon (Panit vector la)',
'vector-view-create' => 'Himo-a',
'vector-view-edit' => 'Igliwat',
'vector-view-history' => 'Kitaa an kaagi',
Alayon paghulat makadali san-o ka inmutro pagsulod hin nga pakli utro.
$1',
+'pool-timeout' => 'An pagpaundang-hin-oras in naghuhulat hin trangka',
'pool-queuefull' => 'Puno an katitirok nga pila',
'pool-errorunknown' => 'Waray kasabti nga kasaypanan',
'protectedpagetext' => 'Ini nga pakli in pinasaliporan para mapugngan an mga pagliwat.',
'viewsourcetext' => 'Puydi ka kinmita ngan kinmopya han gintikangan han pakli:',
'viewyourtext' => "Puydi nim makit-an ngan makopya an tinikangan han '''imo mga pagliwat''' ha dinhi nga pakli:",
+'protectedinterface' => 'Ini nga pakli in nahatag hin teksto hit interface para han software han hin nga wiki, ngan in pinasasaliporan para makalikay hit pag-abuso.
+Para makadugang o makaliwat hin mga paghubad para han tanan nga mga wiki, alayon paggamit han [//translatewiki.net/ translatewiki.net], an kanan MediaWiki proyekto hin lokalisasyon.',
'sqlhidden' => '(nakatago an SQL query)',
'namespaceprotected' => "Diri ka gintutugutan pagliwat han mga pakli ha ngaran-lat'ang nga '''$1'''.",
'customcssprotected' => 'Diri ka gintutugotan pagliwat hini nga CSS nga pakli, tungod nga nagsusulod ini hin kanan iba nga tawo personal nga karuyagon.',
'exception-nologin-text' => 'Ini nga pakli o pagbuhat in nagkikinahanglan nga ikaw in mag-log-in ha dinhi nga wiki.',
# Virus scanner
+'virus-scanfailed' => 'Nagpalya an pag-scan (kodigo $1)',
'virus-unknownscanner' => 'diri-nasasabtan nga antivirus:',
# Login and logout pages
'login-abort-generic' => 'An imo paglog-in in diri malinamposon - Naundang',
'loginlanguagelabel' => 'Pinulongan: $1',
+# E-mail sending
+'php-mail-error-unknown' => 'Waray kasabti ha kanan PHP mail() function.',
+
# Change password dialog
'resetpass' => 'Igliwat an tigaman-pagsulod',
'resetpass_header' => 'Igliwan an akawnt nga tigaman-pagsulod',
'oldpassword' => 'Daan nga tigaman-pagsulod:',
'newpassword' => 'Bag-o nga tigaman-pagsulod:',
'retypenew' => 'Utroha pagbutang an bag-o nga tigaman-pagsulod:',
+'resetpass_success' => 'Malinamposon nga nasalyuan na an imo tigaman-pagsulod!
+Ikaw in naglalog-in yana...',
'resetpass_forbidden' => 'Diri mababalyoan an mga tigaman-pagsulod',
'resetpass-no-info' => 'Kinahanglan mo paglog-in para direkta ka makasakob dinhi nga pakli.',
'resetpass-submit-loggedin' => 'Igbal-iw an tigaman-pagsulod',
'resetpass-temp-password' => 'Temporaryo nga tigaman-pagsakob:',
# Special:PasswordReset
+'passwordreset' => 'igreset an tigaman-hit-pagsulod',
+'passwordreset-text' => 'Kompletoha ini nga porma para makakarawat hin email hin pahinumdom han detalye han akawnt.',
+'passwordreset-legend' => 'igreset an tigaman-hit-pagsulod',
'passwordreset-username' => 'Agnay hiton gumaramit:',
'passwordreset-domain' => 'Dominyo:',
'passwordreset-capture' => 'Kikitaon mo an resulta nga e-mail?',
'passwordreset-emailelement' => 'Agnay han gumaramit: $1
Temporaryo nga tigaman han pagsakob: $2',
'passwordreset-emailsent' => 'Ginpadara hin usa ka pahinumdom nga e-mail.',
+'passwordreset-emailsent-capture' => 'Mayda pahinumdom nga ginpadangat ha im e-mail, kun diin ini in ginpapakita ha ubos.',
+'passwordreset-emailerror-capture' => 'Mayda pahinumdom nga e-mail han nahimo, kun diin ini in ginpapakita ha ubos, pero an pagpadangat ngada ha gumaramit in nagpalya: $1',
# Special:ChangeEmail
'changeemail' => 'Igliwan an e-mail address',
'showdiff' => 'Igpakita an mga ginliwat',
'anoneditwarning' => "'''Pahimatngon:''' Diri ka pa naka log-in.
An imo IP address in maitatala ha kaagi hinin pakli han pagliwat.",
+'anonpreviewwarning' => "''Diri ka naka-log in. Mahisusurat an imo IP address ngada ha kanan pakli kaagi hit pagliwat kun igtipig nimo.''",
'missingsummary' => "'''Pahinumdom:''' Waray ka nagbutang hin dalikyat nga sumat han pagliwat.
Kun pidliton mo an \"{{int:savearticle}}\" utro, an imo ginliwat in matitipig bisan waray hini.",
'missingcommenttext' => 'Alayon pagbutang hin komento ha ilarom.',
'blockednoreason' => 'waray katadungan nga ginhatag',
'whitelistedittext' => 'Kinahanglan mo mag-$1 para makaliwat han mga pakli.',
'nosuchsectiontitle' => 'Waray kaagi-i an bahin',
+'nosuchsectiontext' => 'Imo ginliwat an seksyon nga waray dida.
+Ini in puydi binmalhin o napara samtang ikaw in nagkikita han pakli.',
'loginreqtitle' => 'Nagkikinahanglan hin pan-sakob',
'loginreqlink' => 'Magpasabot nga masakob',
'loginreqpagetext' => 'Kinahanglan mo mag-$1 para makakita ha iba nga mga pakli.',
'template-protected' => '(pinaliporan)',
'template-semiprotected' => '(katunga nga pinasaliporan)',
'hiddencategories' => 'Ini nga pakli in api han {{PLURAL:$1|1 nakatago nga kaarangay|$1 nakatago nga kaarangay}}:',
+'nocreatetitle' => 'Limitado an pahimo hin pakli',
'nocreate-loggedin' => 'Diri ka gintutugotan paghimo hin mga bag-o nga pakli.',
+'sectioneditnotsupported-title' => 'Diri suportado han pagliwat han seksyon',
+'sectioneditnotsupported-text' => 'Diri suportado an pagliwat han seksyon ha dinhi nga pakli.',
'permissionserrors' => 'Mga sayop hin mga pagtugot',
'permissionserrorstext' => 'Diri ka gintutugotan pagbuhat hito, mahitungod han mga nasunod nga {{PLURAL:$1|katadungan|mga katadungan}}:',
'permissionserrorstext-withaction' => 'Waray ka permiso han $2, tungod han masunod nga {{PLURAL:$1|rason|mga rason}}:',
'edit-already-exists' => 'Diri nakakahimo hin bag-o nga pakli.
Aada na ito.',
'defaultmessagetext' => 'Aada-nga-daan nga teksto han mensahe',
+'content-not-allowed-here' => 'An sulod nga "$1" in diri gintutugotan ha pakli nga [[$2]]',
# Content models
'content-model-wikitext' => 'wikiteksto',
# History pages
'viewpagelogs' => 'Kitaa an mga log para hini nga pakli',
+'nohistory' => 'Waray kaagi hin pagliwat hin nga pakli.',
'currentrev' => 'Giurhii nga pagliwat',
'currentrev-asof' => 'Giuurhii nga pagliwat han $1',
'revisionasof' => 'Pagbabag-o han $1',
'history-show-deleted' => 'Ginpara la',
'histfirst' => 'Giunhani',
'histlast' => 'Giurhii',
+'historysize' => '({{PLURAL:$1|1 nga byte|$1 ka mga byte}})',
'historyempty' => '(waray sulod)',
# Revision feed
'rev-suppressed-no-diff' => "Diri mo makikita ini nga kaibhan tungod nga usa ha mga rebisyon in '''ginpara'''.",
'rev-delundel' => 'igpakita/igtago',
'rev-showdeleted' => 'igpakita',
+'revisiondelete' => 'Pagpara/pagtanggal han pagpara nga mga rebisyon',
+'revdelete-nologtype-title' => 'Waray ginhatag nga klase hit talaan',
'revdelete-show-file-confirm' => 'Sigurado ka nga gusto mo makita an ginpara nga pagliwat han file "<nowiki>$1</nowiki>" tikang $2 ha $3?',
'revdelete-show-file-submit' => 'Oo',
+'revdelete-hide-text' => 'Tagoon an rebisyon han teksto',
+'revdelete-hide-image' => 'Tagoon an sulod han paypay',
+'revdelete-hide-name' => 'Tagoon an buhat ngan kakadtoan',
+'revdelete-hide-comment' => 'Tagoon an dalikyat nga sumat han pagliwat',
'revdelete-radio-same' => '(ayaw balyu-e)',
'revdelete-radio-set' => 'Oo',
'revdelete-radio-unset' => 'Ayaw',
'mergehistory' => 'Igtampo an mga kasaysayan han pakli',
'mergehistory-from' => 'Ginkuhaan nga pakli:',
'mergehistory-into' => 'Kakadtoan nga pakli:',
+'mergehistory-submit' => 'Igtampo an mga rebisyon',
+'mergehistory-empty' => 'Waray mga rebisyon in puydi matampo.',
'mergehistory-no-source' => 'Waray pa an tinikangan nga pakli nga $1.',
'mergehistory-no-destination' => 'Waray pa an kakadtuan nga pakli nga $1.',
+'mergehistory-comment' => 'Gintampo an [[:$1]] ngada ha [[:$2]]: $3',
'mergehistory-same-destination' => 'An gintikangan ngan kakadtoan nga mga pakli in diri puydi magkaparo',
'mergehistory-reason' => 'Katadungan:',
# Merge log
+'mergelog' => 'Talaan hin pagtampo',
'revertmerge' => 'Igbulag an gintampo',
# Diffs
'history-title' => "Kaagi han pagbag-o han ''$1''",
+'difference-multipage' => '(Kaibhan ha butnga han mga pakli)',
'lineno' => 'Bagis $1:',
'compareselectedversions' => 'Igkumpara an mga pinili nga pagbabag-o',
'editundo' => 'Igpawara an ginbuhat',
# Search results
'searchresults' => 'Mga nabilingan han pagbiling',
'searchresults-title' => 'Mga nabilngan han pagbiling para han "$1"',
+'searchsubtitleinvalid' => "Imo ginpamiling an '''$1'''",
+'toomanymatches' => 'Sobra kadamo nga mga igo an ginbalik, alayon pagbuhat hin iba nga pakiana',
'prevn' => 'naha-una nga {{PLURAL:$1|$1}}',
'nextn' => 'sunod nga {{PLURAL:$1|$1}}',
'prevn-title' => 'Nahiuna $1 {{PLURAL:$1|resulta|mga resulta}}',
'search-suggest' => 'Buot sidngon mo ba: $1',
'search-interwiki-caption' => 'Mga bugto nga proyekto',
'search-interwiki-default' => '$1 nga resulta:',
+'search-interwiki-more' => '(damo pa)',
'search-relatedarticle' => 'kasumapy',
'searchrelated' => 'kadugtong',
'searchall' => 'ngatanan',
'search-nonefound' => 'Waray resulta an nakakabaton han pakiana.',
'powersearch' => 'Abansado nga pagbiling',
'powersearch-legend' => 'Abansado nga pagbiling',
+'powersearch-ns' => "Pamiling ha mga ngaran-lat'ang:",
+'powersearch-redir' => 'Talaan hin mga redirect',
'powersearch-field' => 'Bilnga an',
'powersearch-togglelabel' => 'Panginano-a:',
'powersearch-toggleall' => 'Ngatanan',
'preferences' => 'Mga karuyag',
'mypreferences' => 'Akon mga karuyag',
'prefs-edits' => 'Ihap han mga pagliwat:',
+'prefsnologin' => 'Diri nakalog-in',
'changepassword' => 'Igliwan an tigaman-pagsulod',
'prefs-skin' => 'Panit',
'skin-preview' => 'Pahiuna nga pagawas',
'datedefault' => 'Waray pinaurog nga karuyag',
'prefs-datetime' => 'Pitsa ngan oras',
+'prefs-user-pages' => 'Mga pakli hin gumaramit',
'prefs-personal' => 'Pangilal-an han nagamit',
'prefs-rc' => 'Kalalabay la nga mga pagbabag-o',
'prefs-watchlist-days' => 'Mga adlaw nga makikita ha barantayan:',
+'prefs-watchlist-days-max' => 'Pinakadamo $1 {{PLURAL:$1|ka adlaw|ka mga adlaw}}',
+'prefs-watchlist-edits-max' => 'Pinakadako nga ihap: 1000',
'prefs-resetpass' => 'Igliwan an tigaman-pagsulod',
+'prefs-changeemail' => 'Igliwan an e-mail address',
+'prefs-email' => 'Mga pagpipilian han e-mail',
'prefs-rendering' => 'Hitsura',
'saveprefs' => 'Igtipig',
'resetprefs' => 'Pabay-i an diri nakatipig nga mga pagbabag-o',
'columns' => 'Mga rumbay patindog:',
'searchresultshead' => 'Bilnga',
'resultsperpage' => 'Mga igo kada pakli:',
+'stub-threshold-disabled' => 'Waray ginpagana',
+'recentchangesdays-max' => 'Pinakadamo $1 {{PLURAL:$1|ka adlaw|ka mga adlaw}}',
'savedprefs' => 'Gintipig an im karuyag.',
'timezonelegend' => 'Zona hin oras',
'localtime' => 'Oras nga lokal',
+'timezoneuseserverdefault' => 'Gamita an aada-nga-daan han wiki ($1)',
'servertime' => 'Oras han serbidor:',
'guesstimezone' => 'Butanga tikang han panngaykay(browser)',
'timezoneregion-africa' => 'Aprika',
'prefs-info' => 'Panguna nga pananabotan',
'prefs-i18n' => 'Internasyonalisasyon',
'prefs-signature' => 'Pirma',
+'prefs-dateformat' => 'Batakan han petsa',
'prefs-advancedediting' => 'Abansado nga mga pagpipilian',
'prefs-advancedrc' => 'Abansado nga mga pagpipilian',
'prefs-advancedrendering' => 'Abansado nga mga pagpipilian',
'prefs-advancedsearchoptions' => 'Abansado nga mga pagpipilian',
'prefs-advancedwatchlist' => 'Abansado nga mga pagpipilian',
+'prefs-displayrc' => 'Mga pirilion hiunong han ginpapakita',
+'prefs-displaysearchoptions' => 'Mga pirilion hiunong han ginpapakita',
+'prefs-displaywatchlist' => 'Mga pirilion hiunong han ginpapakita',
'prefs-diffs' => 'Mga kaibhan',
# User preference: e-mail validation using jQuery
'userrights-lookup-user' => 'Pagdumaraa han mga hugpo han gumaramit',
'userrights-user-editname' => 'Igbutang an agnay han gumaramit:',
'editusergroup' => 'Igliwat han mga hugpo han gumaramit',
-'editinguser' => "Igliliwat an mga katungod han gumaramit han gumaramit '''[[Gumaramit:$1|$1]]''' $2",
+'editinguser' => "Igliliwat an mga katungod han gumaramit han gumaramit '''[[User:$1|$1]]''' $2",
'userrights-editusergroup' => 'Igliwat an mga hugpo hin gumaramit',
'saveusergroups' => 'Igtipig an mga hugpo han gumaramit',
'userrights-groupsmember' => 'Api han:',
'right-block' => 'Pugnga an iba nga mga gumaramit ha pagliwat',
'right-blockemail' => 'Pugnga an uska gumaramit tikang ha pagpadangat hin e-mail',
'right-hideuser' => 'Pugnga an uska agnay-hin-gumaramit, tago-a ito tikang ha publiko',
+'right-unblockself' => 'Lugaring nga makakatanggal han pagpugong',
+'right-editusercssjs' => 'Igliwat an kanan iba mga gumaramit nga mga paypay han CSS ngan JavaScript',
+'right-editusercss' => 'Igliwat an kanan iba mga gumaramit nga mga paypay han CSS',
+'right-edituserjs' => 'Iliwat an kanan iba mga gumaramit nga paypay han JavaScript',
+'right-import' => 'Man-aangbit hin mga pakli tikang ha iba nga mga wiki',
+'right-importupload' => 'Man-aangbit hin mga pakli tikang ha uska paypay nga iginkarga-pasaka',
+'right-mergehistory' => 'Igtampo an kaagi han mga pakli',
+'right-userrights' => 'Igliwat an ngatanan nga mga katungod han gumaramit',
+'right-userrights-interwiki' => 'Igliwat an mga katungod han gumaramit han mga gumaramit ha iba nga mga wiki',
+'right-sendemail' => 'Padad-i hin e-mail ngada ha iba nga mga gumaramit',
# User rights log
+'rightslog' => 'Talaan hin mga katungod han gumaramit',
'rightsnone' => '(waray)',
# Associated actions - in the sentence "You do not have permission to X"
'action-read' => 'basaha ini nga pakli',
'action-edit' => 'liwata ini nga pakli',
'action-createpage' => 'pahimo hin mga pakli',
+'action-createtalk' => 'Paghimo hin hiruhimangraw nga mga pakli',
+'action-createaccount' => 'Himoa ini nga akawnt hin gumaramit',
'action-minoredit' => 'butanga hin tigaman hinin nga pagliwat komo gutiay',
'action-move' => 'balhina ini nga pakli',
+'action-move-subpages' => 'igbalhin ini nga pakli, ngan iya mga bahin-pakli',
+'action-move-rootuserpages' => 'Igbalhin an gamot nga mga pakli han gumaramit',
'action-movefile' => 'igbalhin ini nga paypay',
'action-upload' => 'igkarga-pasaka ini nga paypay',
'action-reupload' => 'igsapaw ini nga aanhi nga paypay',
+'action-upload_by_url' => 'igkaraga-pasaka ini nga paypay tikang ha uska URL',
'action-delete' => 'paraa ini nga pakli',
'action-deleterevision' => 'igpara ini nga pagbag-o',
+'action-deletedhistory' => 'kitaa an kanan hini nga pakli kaagi han mga ginpara',
+'action-browsearchive' => 'Pamiling hin mga ginpara nga mga pakli',
+'action-undelete' => 'Balika an ginpara hini nga pakli',
+'action-suppressionlog' => 'kitaa an kanan hini pribado nga talaan',
+'action-block' => 'Pugnga ini nga gumaramit ha pagliwat',
+'action-protect' => 'igsaliwan an katupngan han pananalipod para hini nga pakli',
+'action-import' => 'ig-angbit ini nga pakli tikang ha iba nga wiki',
+'action-importupload' => 'ig-angbit ini nga pakli tikang ha uska ginkarga-pasaka nga paypay',
+'action-mergehistory' => 'Igtampo an kaagi hini nga pakli',
+'action-userrights' => 'Igliwat an ngatanan nga mga katungod han gumaramit',
+'action-sendemail' => 'Padara hin mga e-mail',
# Recent changes
'nchanges' => '$1 {{PLURAL:$1|pagbag-o|mga pagbabag-o}}',
'newpageletter' => 'B',
'boteditletter' => 'b',
'rc_categories_any' => 'Bisan ano nga',
+'newsectionsummary' => '/* $1 */ bag-o nga bahin',
'rc-enhanced-expand' => 'Igpakita an detalye (nagkikinahanglan hin JavaScript)',
'rc-enhanced-hide' => 'Igtago an mga detalye',
+'rc-old-title' => 'orihinal nga ginhimo komo "$1"',
# Recent changes linked
'recentchangeslinked' => 'Mga may kalabotan nga binag-o',
# Upload
'upload' => 'Pagkarga hin file',
'uploadbtn' => 'Igkarga an file',
+'reuploaddesc' => 'Undanga an pagkarga-pasaka ngan balik ngadto ha porma han pagkarga-pasaka',
'uploadnologin' => 'Diri nakalog-in',
+'uploaderror' => 'Sayop hit pagkarga-pasaka',
'upload-recreate-warning' => "'''Pahimatngon: An fayl nga may-ada hiton nga ngaran in ginpara o ginbalhin.'''
An taramdan han pagpara ngan pagbalhin para hini nga pakli in ginhahatag para han imo kamurayaw:",
+'upload-permitted' => 'Gintutugotan nga mga klase han paypay: $1.',
+'upload-prohibited' => 'Gindidire nga mga klase han paypay: $1.',
+'uploadlog' => 'Talaan hin ginkarga-pasaka',
'uploadlogpage' => 'Talaan han mga ginkarga-paigbaw',
'filename' => 'Ngaran han fayl',
'filedesc' => 'Dalikyat nga pulong',
'filereuploadsummary' => 'Mga pagbal-iw ha fayl:',
'filesource' => 'Tinikangan:',
'ignorewarning' => 'Pabay-i an pahimatngon ngan igtipig la ngahaw',
+'ignorewarnings' => 'Pasagdi an bisan ano nga mga pahimatngon',
+'filename-toolong' => 'Iton ngaran hin paypay in diri puyde na mas lapos pa ha 240 ka mga byte.',
+'badfilename' => 'An ngaran-han-paypay in ginliwat ngada ha "$1".',
'filename-tooshort' => 'An ngaran han fayl in halipot hin duro.',
+'filetype-banned' => 'Ini nga klase nga paypay in gindidire.',
'illegal-filename' => 'An ngaran han fayl in diri gintutugutan.',
'unknown-error' => 'Nahitabo an waray kasasabti nga sayop.',
+'tmp-create-error' => 'Diri makakahimo hin temporaryo nga paypay.',
+'tmp-write-error' => 'Sayop ha pagsurat hin temporaryo nga paypay.',
+'large-file' => 'Ginrerekomenda nga it mga paypay in diri malapos hin $1;
+ini nga paypay in $2.',
+'largefileserver' => 'Ini nga paypay in durudako kaysa ha ginpapakarawat han serbidor.',
'uploadwarning' => 'Pahimatngon han pagkarga paigbaw',
'savefile' => 'Igtipig an paypay',
'uploadedimage' => 'ginkarga-paigbaw "[[$1]]"',
'upload-proto-error' => 'Sayop nga protocol',
'upload-file-error' => 'Sayop ha sulod',
'upload-unknown-size' => 'Waray kasabti an kadako',
+'upload-http-error' => 'Mayda nahitabo nga sayop hin HTTP: $1',
# File backend
+'backend-fail-notexists' => 'Waray ngada an paypay nga $1.',
'backend-fail-delete' => 'Diri nakakapara han paypay nga "$1".',
'backend-fail-alreadyexists' => 'May-ada na paypay nga "$1".',
-'backend-fail-store' => 'Diri nakakatipig han paypay "$1" ha "$".',
+'backend-fail-store' => 'Diri nakakatipig han paypay "$1" ha "$2".',
'backend-fail-copy' => 'Diri nakakakopya han paypay nga "$1" ngada "$2".',
'backend-fail-move' => 'Diri nakakabalhin han paypay "$1" ngada "$2".',
'backend-fail-opentemp' => 'Diri nakakaabre han temporaryo nga paypay.',
# img_auth script messages
'img-auth-accessdenied' => 'Diri gintutugutan makasulod',
+'img-auth-nofile' => 'Waray ngada an paypay nga "$1".',
# HTTP errors
'http-host-unreachable' => 'Diri nakakaabot ha URL.',
+# Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
+'upload-curl-error6' => 'Diri nakakaabot ha URL',
+'upload-curl-error28' => 'Linmapos ha oras an pagkarga-pasaka',
+
'license' => 'Palilisensya:',
'license-header' => 'Palilisensya:',
'nolicense' => 'Waray napili',
Alayon pagkita han [$2 nga pakli hin pagpahayag mahitungod hini nga fayl] para hin dugang nga kasayuran.',
'sharedupload-desc-here' => 'An fayl in tikang ha $1 ngan puydi mahigamitan para han iba nga mga proyekto.
An paglaladawan han iya [$2 fayl han paglaladawan nga pakli] didto in ginpapakita ha sirong.',
+'uploadnewversion-linktext' => 'Igkarga-pasaka an ba-o nga bersyon hini nga paypay',
'shared-repo-from' => 'tikang $1',
+'upload-disallowed-here' => 'Diri nimo masasapaw ini nga paypay.',
# File reversion
'filerevert-comment' => 'Rason:',
'filedelete-success' => "Napara an '''$1'''",
'filedelete-otherreason' => 'Lain/dugang nga katadungan:',
'filedelete-reason-otherlist' => 'Lain nga katadungan',
+'filedelete-edit-reasonlist' => 'Igliwat an mga rason han pagpara',
+'filedelete-maintenance-title' => 'Diri nakakapara han paypay',
# MIME search
+'mimesearch' => 'MIME nga pamiling',
+'mimetype' => 'MIME nga klase:',
'download' => 'pagkarga paubos',
+# List redirects
+'listredirects' => 'Talaan hin mga redirect',
+
# Unused templates
+'unusedtemplates' => 'Waray kagamiti nga mga batakan',
'unusedtemplateswlh' => 'iba nga mga sumpay',
# Random page
'disambiguations' => 'Mga pakli nga nasumpay ha mga pansayod nga pakli',
'disambiguationspage' => 'Template:pansayod',
+'brokenredirects' => 'Mga redirect nga utod',
'brokenredirects-edit' => 'igliwat',
'brokenredirects-delete' => 'paraa',
+'withoutinterwiki' => 'Mga pakli nga waray sumpay nga yinaknan',
'withoutinterwiki-submit' => 'Igpakita',
+'fewestrevisions' => 'Mga pakli nga may pinakagutiay nga mga rebisyon',
+
# Miscellaneous special pages
'nbytes' => '$1 {{PLURAL:$1|nga byte|nga mga byte}}',
'ncategories' => '$1 {{PLURAL:$1|nga kaarangay|nga mga kaarangay}}',
'prefixindex' => 'Ngatanan nga pakli nga may-ada pahiuna-nga-sumpay',
'shortpages' => 'Haglipot nga mga pakli',
'longpages' => 'Haglaba nga mga pakli',
+'deadendpages' => 'Waray na kakadtoan nga mga pakli',
+'protectedpages' => 'Pinapasaliporan nga mga pakli',
'listusers' => 'Lista han mga gumaramit',
+'listusers-creationsort' => 'Ginsusunodsunod pinaagi han paghimo nga petsa',
+'usereditcount' => '$1 {{PLURAL:$1|ka pagliwat|ka mga pagliwat}}',
'usercreated' => '{{GENDER:$3|Ginhimo}} han $1 ha $2',
'newpages' => 'Bag-o nga mga pakli',
'newpages-username' => 'Agnay hiton gumaramit:',
'move' => 'Balhina',
'movethispage' => 'Balhina ini nga pakli',
'notargettitle' => 'Waray iiguon',
+'nopagetitle' => 'Waray sugad hito nga kakadtoan nga pakli',
'pager-newer-n' => '{{PLURAL:$1|burubag-o 1|burubag-o $1}}',
'pager-older-n' => '{{PLURAL:$1|durudaan 1|durudaan $1}}',
'specialloguserlabel' => 'Magburuhat:',
'speciallogtitlelabel' => 'iiguon (titulo o gumarami):',
'log' => 'Mga talaan',
+'all-logs-page' => 'Ngatanan nga mga talaan panpubliko',
# Special:AllPages
'allpages' => 'Ngatanan nga mga pakli',
'allpagesprev' => 'Naha-una',
'allpagesnext' => 'Sunod',
'allpagessubmit' => 'Kadto-a',
+'allpages-bad-ns' => '{{SITENAME}} in waray ngaran-lat\'ang nga "$1".',
+
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Igkita an pinakaurhi.',
# Special:Categories
'categories' => 'Mga kaarangay',
# E-mail user
'emailuser' => 'Ig-e-mail ini nga gumaramit',
+'emailuser-title-target' => 'Ig-E-mail ini nga {{HENERO:$1|gumaramit}}',
+'emailuser-title-notarget' => 'Gumaramit han e-mail',
+'emailpage' => 'Gumaramit han e-mail',
+'defemailsubject' => '{{SITENAME}} e-mail tikang kan gumaramit na hi "$1"',
+'usermaildisabled' => 'Waray ginpagana an e-mail han gumaramit',
+'usermaildisabledtext' => 'Diri ka makakapadangat hin e-mail ha iba nga mga gumaramit ha dinhi nga wiki',
+'noemailtitle' => 'Waray e-mail address',
+'nowikiemailtitle' => 'Waray gintutugutan nga e-mail',
'emailusername' => 'Agnay hiton gumaramit:',
'emailfrom' => 'Tikang kan:',
'emailto' => 'Para kan:',
'emailccme' => 'Igemail ako hini nga kopya hit ak buot igpasabot.',
'emailsent' => 'Napadara an e-mail',
+# User Messenger
+'usermessage-summary' => 'Nabilin hin mensahe pansistema',
+'usermessage-editor' => 'Mensahero han sistema',
+
# Watchlist
'watchlist' => 'Akon barantayan',
'mywatchlist' => 'Akon angay timan-an',
'watchlistfor2' => 'Para ha $1 $2',
+'watchnologin' => 'Diri nakalog-in',
'watch' => 'Bantayi',
'watchthispage' => 'Bantayi ini nga pakli',
'unwatch' => 'Pabay-i an pagbantay',
'watchlist-options' => 'Mga pirilian han talaan han binabantayan',
'enotif_newpagetext' => 'Ini in bag-o nga pakli.',
+'enotif_impersonal_salutation' => 'gumaramit han {{SITENAME}}',
+'changed' => 'naliwanan',
'created' => 'nahimo',
'enotif_anon_editor' => 'waray magpakilala nga gumaramit $1',
# Delete
'deletepage' => 'Igpara an pakli',
+'confirm' => 'Kompirma',
'excontent' => "An sulod in: ''$1''",
'excontentauthor' => 'an sulod in: \'\'$1\'\' (ngan hi "[[Special:Contributions/$2|$2]]" la an nag-amot)',
'exblank' => 'waray sulod an pakli',
'deletedtext' => 'Ginpara an "$1".
Kitaa an $2 para hin talaan han mga gibag-ohi nga mga ginpamara.',
'dellogpage' => 'Talaan han mga ginpara',
+'deletionlog' => 'Talaan han mga ginpara',
+'reverted' => 'Ginbalik ha uruuna nga rebisyon',
'deletecomment' => 'Katadungan:',
+'deleteotherreason' => 'Lain/dugang nga katadungan:',
'deletereasonotherlist' => 'Lain nga katadungan',
'deletereason-dropdown' => "*Agsob nga rason hin pagpara
** Tugon han manunurat
** Pagtalapas ha katungod hin pagtatag-iya (''copyright'')
** Bandalismo",
+'delete-edit-reasonlist' => 'Igliwat an mga rason han pagpara',
# Rollback
'rollback' => 'Mga libot-pabalik nga pagliwat',
'protect-otherreason' => 'Lain/dugang nga katadongan:',
'protect-otherreason-op' => 'Lain nga katadongan',
'restriction-type' => 'Pagtugot:',
+'minimum-size' => 'Pinakaguti nga kadako',
+'maximum-size' => 'Pinakadako nga kadako:',
+'pagesize' => '(mga byte)',
# Restrictions (nouns)
'restriction-edit' => 'Igliwat',
'restriction-move' => 'Balhina',
'restriction-create' => 'Himo-a',
+'restriction-upload' => 'Igkarga-pasaka',
# Restriction levels
'restriction-level-all' => 'bisan ano nga katupngan',
'undeletelink' => 'igpakita/igbalik',
'undeleteviewlink' => 'kitaa',
'undeletecomment' => 'Katadungan:',
+'cannotundelete' => 'Nagpalya an pabalik han pinara:
+$1',
+'undelete-search-title' => 'Pamiling hin mga ginpara nga mga pakli',
+'undelete-search-box' => 'Pamiling hin mga ginpara nga mga pakli',
'undelete-search-submit' => 'Bilnga',
'undelete-show-file-submit' => 'Oo',
'year' => 'Tikang ha tuig (ngan uruunhan):',
'sp-contributions-newbies' => 'Igpakita an mga amot hin mga bag-o nga akawnt la',
+'sp-contributions-newbies-sub' => 'Para han bag-o nga mga akawnt',
'sp-contributions-blocklog' => 'Talaan han pagpugong',
'sp-contributions-uploads' => 'mga ginkarga-paigbaw',
'sp-contributions-logs' => 'Mga talaan',
** Pan-abusar hin dirudilain nga mga akawnt
** Diri makakarawat nga agnay-hit-gumaramit',
'ipbsubmit' => 'Pugngi ini nga gumaramit',
+'ipbother' => 'Iba nga oras:',
'ipboptions' => '2 ka oras:2 hours,1 ka adlaw:1 day,3 ka adlaw:3 days,1 ka semana:1 week,2 ka semana:2 weeks,1 ka bulan:1 month,3 ka bulan:3 months,6 ka bulan:6 months,1 ka tuig:1 year,waray katapusan:infinite',
'ipbotheroption' => 'iba',
'ipbotherreason' => 'Lain/dugang nga katadungan:',
'blockipsuccesssub' => 'Malinamposon an pagpugong',
+'ipb-edit-dropdown' => 'Igliwat an mga rason han pagpugong',
'ipblocklist' => 'Mga ginpugngan nga gumaramit',
'blocklist-target' => 'Gin-iigo',
'blocklist-expiry' => 'Napan-os',
'blocklist-reason' => 'Rason:',
'ipblocklist-submit' => 'Bilnga',
'ipblocklist-localblock' => 'Lokal nga pagpugong',
+'ipblocklist-otherblocks' => 'Iba {{PLURAL:$1|ka pagpugong|ka mga pagpugong}}',
'blocklink' => 'igpugong',
'unblocklink' => 'igtanggal an pagpugong',
'change-blocklink' => 'igliwan an papugong',
'contribslink' => 'mga ámot',
+'emaillink' => 'Padara hin e-mail',
'blocklogpage' => 'Talaan han pagpugong',
'blocklogentry' => 'ginpugngan hi [[$1]] nga natatapos ha takna hin $2 $3',
'block-log-flags-nocreate' => 'diri gintutugutan an paghimo hin akawnt',
+'block-log-flags-nousertalk' => 'diri makakaliwat hit kalugaringon nga hiruhimangraw nga pakli',
'blockme' => 'Pugngi ako',
'proxyblocksuccess' => 'Human na.',
'move-page-legend' => 'Balhina an pakli:',
'movearticle' => 'Balhina an pakli:',
'moveuserpage-warning' => "'''Pahimatngon:''' Tibalhin ka hin pakli hin gumaramit. Alayon pagtigaman nga an pakli là an mababalhin ngan an gumaramit in ''diri'' mababalyoan hin ngaran.",
+'movenologin' => 'Diri nakalog-in',
'newtitle' => 'Para ha bag-o nga titulo:',
'movepagebtn' => 'Igbalhin an pakli',
'pagemovedsub' => 'Malinamposon an pagbalhin',
'movedto' => 'ginbalhin ngadto',
'movelogpage' => 'Talaan han pagbalhin',
+'movelogpagetext' => 'Ubos hini in uska talaan han ngatanan nga nabalhin nga pakli',
+'movenosubpage' => 'Ini nga pakli in waray mga bahin-pakli.',
'movereason' => 'Rason:',
'revertmove' => 'igbalik',
'delete_and_move' => 'Igapara ngan igbalhin',
+'delete_and_move_confirm' => 'Oo, paraa an pakli',
# Export
'export' => 'Mga pakli hit pagexport',
'exportall' => 'Ig-export an ngatanan nga mga pakli',
+'exportlistauthors' => 'Lakip an bug-os nga talaan han mga man-aamot para ha kada pakli',
+'export-submit' => 'Ginpapaangbit',
'export-addcattext' => 'Igdugang an mga pakli tikang ha kaarangay:',
'export-addcat' => 'Dugngi',
'export-addnstext' => "Igdugang an mga pakli tikang ha ngaran-lat'ang:",
'export-addns' => 'Dugngi',
+'export-download' => 'Igtipig komo paypay',
# Namespace 8 related
+'allmessages' => 'Mga mensahe han sistema',
'allmessagesname' => 'Ngaran',
'allmessagesdefault' => 'Daan aada nga teksto hiton mensahe',
+'allmessagescurrent' => 'Yana nga teksto han mensahe',
+'allmessages-filter-legend' => 'Sara',
'allmessages-filter-all' => 'Ngatanan',
'allmessages-language' => 'Yinaknan:',
'allmessages-filter-submit' => 'Kadto-a',
'thumbnail_image-type' => 'An klase han hulagway in diri suportado',
# Special:Import
+'import' => 'Naangbit hit mga pakli',
+'import-interwiki-source' => 'Tinikangan nga wiki/pakli:',
+'import-interwiki-templates' => 'Lakip an ngatanan nga mga batakan',
+'import-interwiki-submit' => 'Naangbit',
+'import-interwiki-namespace' => "Kakadtoan nga ngaran-lat'ang:",
'import-upload-filename' => 'Ngaran han paypay:',
'import-comment' => 'Komento:',
+'importstart' => 'Nag-aangbit hin mga pakli...',
'importnopages' => 'Waray pakli nga ginpapaangbit.',
+'importbadinterwiki' => 'Maraot nga sumpay hit interwiki',
+'importnotext' => 'Waray sulod o waray teksto',
+'importsuccess' => 'Natapos an pag-aangbit!',
+'import-noarticle' => 'Waray pakli nga maaangbit!',
+
+# Import log
+'importlogpage' => 'Talaan hin pan-aangbit',
+'import-logentry-interwiki' => 'natranswiki $1',
# Tooltip help for the actions
'tooltip-pt-userpage' => 'An imo pakli hin gumaramit',
'pageinfo-lastuser' => 'Giurhii nga nagliwat',
'pageinfo-lasttime' => 'Petsa han kataposan nga pagliwat',
'pageinfo-edits' => 'Ngatanan nga ihap han mga pakli',
+'pageinfo-contentpage-yes' => 'Oo',
+'pageinfo-protect-cascading-yes' => 'Oo',
# Browsing diffs
'previousdiff' => '← Durudaan nga pagliwat',
'show-big-image-size' => '$1 × $2 nga mga pixel',
# Special:NewFiles
+'newimages' => 'Galeryia hin mga paypay nga bag-o',
'newimages-legend' => 'Panara',
'noimages' => 'Waray makikit-an.',
'ilsubmit' => 'Bilnga',
'exif-ycbcrpositioning' => 'Pagpoposisyon han Y ngan C',
'exif-imagedescription' => 'Titulo han hulagway',
'exif-artist' => 'Tag-iya',
+'exif-exposuretime-format' => '$1 seg ($2)',
+'exif-fnumber' => 'F Numero',
'exif-sharpness' => 'Pagkatarom',
+'exif-gpslatitude' => 'Latitud',
+'exif-gpslongitude' => 'Longitud',
+'exif-gpsaltitude' => 'Altitud',
'exif-gpstimestamp' => 'GPS nga oras (atomiko nga relo)',
'exif-gpsspeedref' => 'Sukol han kalaksi',
+'exif-gpsdestdistance' => 'Distansya ha destinasyon',
+'exif-gpsdatestamp' => 'petsa han GPS',
'exif-countrydest' => 'Ginpapakita an nasod',
'exif-countrycodedest' => 'Ginpapakita an kodigo han nasod',
'exif-provinceorstatedest' => 'Ginpapakita an lalawigan o estado',
'exif-iimcategory' => 'Kaarangay',
'exif-datetimeexpires' => 'Ayaw gamita kahuman han',
'exif-datetimereleased' => 'Ginpagawas han',
+'exif-lens' => 'Mga lente nga gingamit',
'exif-cameraownername' => 'Tag-iya han kamera',
+'exif-usageterms' => 'Mga termino hit paggamit',
+
+'exif-orientation-1' => 'Normal',
'exif-exposureprogram-1' => 'Mano-mano',
'exif-subjectdistance-value' => '$1 ka mga metro',
'exif-meteringmode-0' => 'Waray kasabti',
+'exif-meteringmode-255' => 'iba',
'exif-lightsource-0' => 'Waray kasabti',
'exif-lightsource-9' => 'Maupay nga panahon',
'exif-gaincontrol-0' => 'Waray',
+'exif-contrast-0' => 'Normal',
'exif-contrast-1' => 'Mahumok',
'exif-contrast-2' => 'Matig-a',
+'exif-saturation-0' => 'Normal',
+
+'exif-sharpness-0' => 'Normal',
'exif-sharpness-1' => 'Mahumok',
'exif-sharpness-2' => 'Matig-a',
'exif-iimcategory-war' => 'Gera, samok ngan diri namumurayawan',
'exif-iimcategory-wea' => 'panahon',
+'exif-urgency-normal' => 'Normal ($1)',
+
# External editor support
'edit-externally' => 'Igliwat ini nga fayl gamit han gawas nga aplikasyon',
'edit-externally-help' => '(Kitaa an [//www.mediawiki.org/wiki/Manual:External_editors mga pagtutdo hin pag-ayad] para han dugang nga pananabutan)',
# Special:FileDuplicateSearch
'fileduplicatesearch-submit' => 'Pamilnga',
-'fileduplicatesearch-noresults' => 'Waray nabilngan nga paypay nga an ngaran in "$".',
+'fileduplicatesearch-noresults' => 'Waray nabilngan nga paypay nga an ngaran in "$1".',
# Special:SpecialPages
'specialpages' => 'Mga pinaurog nga pakli',
'newuserlog-byemail' => 'Ginpadangat an tigaman-pagsulod pinaagi han e-mail',
# Feedback
+'feedback-subject' => 'Himangrawon:',
+'feedback-message' => 'Mensahe:',
+'feedback-cancel' => 'Pasagdi',
'feedback-close' => 'Human na.',
# Search suggestions
'shared-repo-from' => 'פֿון $1',
'shared-repo' => 'א געמיינזאַמער זאַפאַס',
'shared-repo-name-wikimediacommons' => 'וויקימעדיע קאמאנס',
-'upload-disallowed-here' => '×\9c×\99×\99×\93ער ×§×¢× ×\98 ×\90×\99ר × ×\99ש×\98 ×\90×\99×\91ערשר×\99×\99×\91×\9f ×\93×\90ס ×\91×\99×\9c×\93.',
+'upload-disallowed-here' => '×\90×\99ר ×§×¢× ×\98 × ×\99ש×\98 ×\90×\99×\91ערשר×\99×\99×\91×\9f ×\93×\99 ×\98עקע.',
# File reversion
'filerevert' => 'צוריקדרייען $1',
'filedelete-success' => "'''$1''' איז געווען אויסגעמעקט.",
'filedelete-success-old' => "די ווערסיע פֿון '''[[Media:$1|$1]]''' פֿון $3, $2 איז געווארן אויסגעמעקט.",
'filedelete-nofile' => "'''$1''' עקזיסטירט נישט.",
+'filedelete-nofile-old' => "נישט פאראן קיין ארכיווירטע ווערסיע פון '''$1''' מיט די ספעציפירטע אייגנקייטן.",
'filedelete-otherreason' => 'אנדער/נאך א סיבה:',
'filedelete-reason-otherlist' => 'אַנדער אורזאַך',
'filedelete-reason-dropdown' => '*אַלגעמיינע אויסמעקן סיבות
"protected=\access protected" \
"public=\access public" \
"copyright=\note" \
- "license=\note"
+ "license=\note" \
+ "codeCoverageIgnore="
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
*.PHP5 \
*.M \
*.MM \
- *.PY
+ *.PY \
+ *.txt \
+ README
RECURSIVE = YES
EXCLUDE_SYMLINKS = YES
EXCLUDE_PATTERNS = LocalSettings.php AdminSettings.php StartProfiler.php .svn */.git/* {{EXCLUDE_PATTERNS}}
importDump.php
XML dump importer
-
+
importImages.php
Import images into the wiki
-
+
importTextFile.php
Import the contents of a text file into a wiki page
moveBatch.php
- Move a batch of pages
+ Move a batch of pages
namespaceDupes.php
Check articles name to see if they conflict with new/existing namespaces
-- Adds a user,timestamp index to the archive table
-- Used for browsing deleted contributions and renames
-ALTER TABLE /*$wgDBprefix*/archive
+ALTER TABLE /*$wgDBprefix*/archive
ADD INDEX usertext_timestamp ( ar_user_text , ar_timestamp );
---
+--
-- patch-backlinkindexes.sql
---
+--
-- Per bug 6440 / http://bugzilla.wikimedia.org/show_bug.cgi?id=6440
--
-- Improve performance of the "what links here"-type queries
---
+--
ALTER TABLE /*$wgDBprefix*/pagelinks
DROP INDEX pl_namespace,
ALTER TABLE /*$wgDBprefix*/templatelinks
DROP INDEX tl_namespace,
ADD INDEX tl_namespace(tl_namespace, tl_title, tl_from);
-
+
ALTER TABLE /*$wgDBprefix*/imagelinks
DROP INDEX il_to,
ADD INDEX il_to(il_to, il_from);
cat_files int signed NOT NULL default 0,
cat_hidden tinyint(1) unsigned NOT NULL default 0,
-
+
PRIMARY KEY (cat_id),
UNIQUE KEY (cat_title),
CREATE TABLE /*$wgDBprefix*/categorylinks (
-- Key to page_id of the page defined as a category member.
cl_from int unsigned NOT NULL default '0',
-
+
-- Name of the category.
-- This is also the page_title of the category's description page;
-- all such pages are in namespace 14 (NS_CATEGORY).
-- isn't always ideal, but collations seem to be an exciting
-- and dangerous new world in MySQL...
--
- -- Truncate so that the cl_sortkey key fits in 1000 bytes
+ -- Truncate so that the cl_sortkey key fits in 1000 bytes
-- (MyISAM 5 with server_character_set=utf8)
cl_sortkey varchar(70) binary NOT NULL default '',
-
+
-- This isn't really used at present. Provided for an optional
-- sorting method by approximate addition time.
cl_timestamp timestamp NOT NULL,
-
+
UNIQUE KEY cl_from(cl_from,cl_to),
-
+
-- This key is trouble. It's incomplete, AND it's too big
-- when collation is set to UTF-8. Bleeeacch!
KEY cl_sortkey(cl_to,cl_sortkey),
-
+
-- Not really used?
KEY cl_timestamp(cl_to,cl_timestamp)
---
+--
-- patch-categorylinksindex.sql
---
+--
-- Per bug 10280 / http://bugzilla.wikimedia.org/show_bug.cgi?id=10280
--
-- Improve enum continuation performance of the what pages belong to a category query
---
+--
ALTER TABLE /*$wgDBprefix*/categorylinks
DROP INDEX cl_sortkey,
el_from int(8) unsigned NOT NULL default '0',
el_to blob NOT NULL,
el_index blob NOT NULL,
-
+
KEY (el_from, el_to(40)),
KEY (el_to(60), el_from),
KEY (el_index(60))
-- Adding fa_deleted field for additional content suppression
-ALTER TABLE /*$wgDBprefix*/filearchive
+ALTER TABLE /*$wgDBprefix*/filearchive
ADD fa_deleted tinyint unsigned NOT NULL default '0';
-- Adding index to sort by uploader
-ALTER TABLE /*$wgDBprefix*/filearchive
+ALTER TABLE /*$wgDBprefix*/filearchive
ADD INDEX fa_user_timestamp (fa_user_text,fa_timestamp),
-- Remove useless, incomplete index
DROP INDEX fa_deleted_user;
CREATE TABLE /*$wgDBprefix*/filearchive (
-- Unique row id
fa_id int not null auto_increment,
-
+
-- Original base filename; key to image.img_name, page.page_title, etc
fa_name varchar(255) binary NOT NULL default '',
-
+
-- Filename of archived file, if an old revision
fa_archive_name varchar(255) binary default '',
-
+
-- Which storage bin (directory tree or object store) the file data
-- is stored in. Should be 'deleted' for files that have been deleted;
-- any other bin is not yet in use.
fa_storage_group varbinary(16),
-
+
-- SHA-1 of the file contents plus extension, used as a key for storage.
-- eg 8f8a562add37052a1848ff7771a2c515db94baa9.jpg
--
-- If NULL, the file was missing at deletion time or has been purged
-- from the archival storage.
fa_storage_key varbinary(64) default '',
-
+
-- Deletion information, if this file is deleted.
fa_deleted_user int,
fa_deleted_timestamp binary(14) default '',
fa_deleted_reason text,
-
+
-- Duped fields from image
fa_size int unsigned default '0',
fa_width int default '0',
fa_user int unsigned default '0',
fa_user_text varchar(255) binary default '',
fa_timestamp binary(14) default '',
-
+
PRIMARY KEY (fa_id),
INDEX (fa_name, fa_timestamp), -- pick out by image name
INDEX (fa_storage_group, fa_storage_key), -- pick out dupe files
--
--- hitcounter table is used to buffer page hits before they are periodically
+-- hitcounter table is used to buffer page hits before they are periodically
-- counted and added to the cur_counter column in the cur table.
-- December 2003
--
---
+--
-- image-user-index.sql
---
+--
-- Add user/timestamp index to current image versions
---
+--
ALTER TABLE /*$wgDBprefix*/image
ADD INDEX img_usertext_timestamp (img_user_text,img_timestamp);
ALTER TABLE /*$wgDBprefix*/image ADD (
-- Media type as defined by the MEDIATYPE_xxx constants
img_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
-
+
-- major part of a MIME media type as defined by IANA
-- see http://www.iana.org/assignments/media-types/
img_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
-
+
-- minor part of a MIME media type as defined by IANA
-- the minor parts are not required to adher to any standard
-- but should be consistent throughout the database
---
+--
-- patch-indexes.sql
---
+--
-- Fix up table indexes; new to stable release in November 2003
---
+--
ALTER TABLE IF EXISTS /*$wgDBprefix*/links
DROP INDEX l_from,
CREATE TABLE /*$wgDBprefix*/interwiki (
-- The interwiki prefix, (e.g. "Meatball", or the language prefix "de")
iw_prefix varchar(32) NOT NULL,
-
+
-- The URL of the wiki, with "$1" as a placeholder for an article name.
-- Any spaces in the name will be transformed to underscores before
-- insertion.
iw_url blob NOT NULL,
-
+
-- A boolean value indicating whether the wiki is in this project
-- (used, for example, to detect redirect loops)
iw_local BOOL NOT NULL,
-
+
UNIQUE KEY iw_prefix (iw_prefix)
) /*$wgDBTableOptions*/;
--- Add extra option fields to the ipblocks table, add some extra indexes,
--- convert infinity values in ipb_expiry to something that sorts better,
--- extend ipb_address and range fields, add a unique index for block conflict
+-- Add extra option fields to the ipblocks table, add some extra indexes,
+-- convert infinity values in ipb_expiry to something that sorts better,
+-- extend ipb_address and range fields, add a unique index for block conflict
-- detection.
--- Conflicts in the new unique index can be handled by creating a new
+-- Conflicts in the new unique index can be handled by creating a new
-- table and inserting into it instead of doing an ALTER TABLE.
ipb_expiry varbinary(14) NOT NULL default '',
ipb_range_start tinyblob NOT NULL,
ipb_range_end tinyblob NOT NULL,
-
+
PRIMARY KEY ipb_id (ipb_id),
UNIQUE INDEX ipb_address_unique (ipb_address(255), ipb_user, ipb_auto),
INDEX ipb_user (ipb_user),
) /*$wgDBTableOptions*/;
-INSERT IGNORE INTO /*$wgDBprefix*/ipblocks_newunique
- (ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end, ipb_anon_only, ipb_create_account)
+INSERT IGNORE INTO /*$wgDBprefix*/ipblocks_newunique
+ (ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end, ipb_anon_only, ipb_create_account)
SELECT ipb_id, ipb_address, ipb_user, ipb_by, ipb_reason, ipb_timestamp, ipb_auto, ipb_expiry, ipb_range_start, ipb_range_end, 0 , ipb_user=0
FROM /*$wgDBprefix*/ipblocks;
ALTER TABLE /*$wgDBprefix*/ipblocks
ADD ipb_by_text varchar(255) binary NOT NULL default '';
-UPDATE /*$wgDBprefix*/ipblocks
+UPDATE /*$wgDBprefix*/ipblocks
JOIN /*$wgDBprefix*/user ON ipb_by = user_id
SET ipb_by_text = user_name
WHERE ipb_by != 0;
\ No newline at end of file
-- Adding ipb_deleted field for hiding usernames
-ALTER TABLE /*$wgDBprefix*/ipblocks
+ALTER TABLE /*$wgDBprefix*/ipblocks
ADD ipb_deleted bool NOT NULL default 0;
-- Add the range handling fields
-ALTER TABLE /*$wgDBprefix*/ipblocks
+ALTER TABLE /*$wgDBprefix*/ipblocks
ADD ipb_range_start tinyblob NOT NULL default '',
ADD ipb_range_end tinyblob NOT NULL default '',
ADD INDEX ipb_range (ipb_range_start(8), ipb_range_end(8));
-- Initialise fields
-- Only range blocks match ipb_address LIKE '%/%', this fact is used in the code already
-UPDATE /*$wgDBprefix*/ipblocks
- SET
- ipb_range_start = LPAD(HEX(
+UPDATE /*$wgDBprefix*/ipblocks
+ SET
+ ipb_range_start = LPAD(HEX(
(SUBSTRING_INDEX(ipb_address, '.', 1) << 24)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '.', 2), '.', -1) << 16)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '.', 3), '.', -1) << 24)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '/', 1), '.', -1)) ), 8, '0' ),
- ipb_range_end = LPAD(HEX(
+ ipb_range_end = LPAD(HEX(
(SUBSTRING_INDEX(ipb_address, '.', 1) << 24)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '.', 2), '.', -1) << 16)
+ (SUBSTRING_INDEX(SUBSTRING_INDEX(ipb_address, '.', 3), '.', -1) << 24)
---
+--
-- Track inline interwiki links
--
CREATE TABLE /*_*/iwlinks (
-- page_id of the referring page
iwl_from int unsigned NOT NULL default 0,
-
+
-- Interwiki prefix code of the target
iwl_prefix varbinary(20) NOT NULL default '',
-- Jobs performed by parallel apache threads or a command-line daemon
CREATE TABLE /*_*/job (
job_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
-
+
-- Command name
-- Limited to 60 to prevent key length overflow
job_cmd varbinary(60) NOT NULL default '',
CREATE TABLE /*$wgDBprefix*/langlinks (
-- page_id of the referring page
ll_from int unsigned NOT NULL default '0',
-
+
-- Language code of the target
ll_lang varbinary(20) NOT NULL default '',
CREATE TABLE /*$wgDBprefix*/links (
-- Key to the page_id of the page containing the link.
l_from int unsigned NOT NULL default '0',
-
+
-- Key to the page_id of the link target.
-- An unfortunate consequence of this is that rename
-- operations require changing the links entries for
-- all links to the moved page.
l_to int unsigned NOT NULL default '0',
-
+
UNIQUE KEY l_from(l_from,l_to),
KEY (l_to)
CREATE TABLE /*$wgDBprefix*/brokenlinks (
-- Key to the page_id of the page containing the link.
bl_from int unsigned NOT NULL default '0',
-
+
-- Text of the target page title ("namesapce:title").
-- Unfortunately this doesn't split the namespace index
-- key and therefore can't easily be joined to anything.
CREATE TABLE /*$wgDBprefix*/imagelinks (
-- Key to page_id of the page containing the image / media link.
il_from int unsigned NOT NULL default '0',
-
+
-- Filename of target image.
-- This is also the page_title of the file's description page;
-- all such pages are in namespace 6 (NS_FILE).
il_to varchar(255) binary NOT NULL default '',
-
+
UNIQUE KEY il_from(il_from,il_to),
KEY (il_to)
-- Rename the primary unique index from PRIMARY to ls_field_val
-- This is for MySQL only and is necessary only for databases which were updated
-- between MW 1.16 development revisions r50567 and r51465.
-ALTER TABLE /*_*/log_search
- DROP PRIMARY KEY,
+ALTER TABLE /*_*/log_search
+ DROP PRIMARY KEY,
ADD UNIQUE INDEX ls_field_val (ls_field,ls_value,ls_log_id);
-ALTER TABLE /*$wgDBprefix*/logging
+ALTER TABLE /*$wgDBprefix*/logging
ADD log_user_text varchar(255) binary NOT NULL default '',
ADD log_page int unsigned NULL,
CHANGE log_type log_type varbinary(32) NOT NULL,
---
+--
-- patch-logging-times-index.sql
---
+--
-- Add a very humble index on logging times
---
+--
ALTER TABLE /*$wgDBprefix*/logging
ADD INDEX times (log_timestamp);
-- action field, but only the type controls categorization.
log_type varbinary(10) NOT NULL default '',
log_action varbinary(10) NOT NULL default '',
-
+
-- Timestamp. Duh.
log_timestamp binary(14) NOT NULL default '19700101000000',
-
+
-- The user who performed this action; key to user_id
log_user int unsigned NOT NULL default 0,
-
+
-- Key to the page affected. Where a user is the target,
-- this will point to the user page.
log_namespace int NOT NULL default 0,
log_title varchar(255) binary NOT NULL default '',
-
+
-- Freeform text. Interpreted as edit history comments.
log_comment varchar(255) NOT NULL default '',
-
+
-- LF separated list of miscellaneous parameters
log_params blob NOT NULL,
ALTER TABLE /*_*/image
MODIFY COLUMN img_minor_mime varbinary(100) NOT NULL default "unknown";
-
+
ALTER TABLE /*_*/oldimage
MODIFY COLUMN oi_minor_mime varbinary(100) NOT NULL default "unknown";
-
+
INSERT INTO /*_*/updatelog(ul_key) VALUES ('mime_minor_length');
CREATE TABLE /*_*/msg_resource (
-- Resource name
mr_resource varbinary(255) NOT NULL,
- -- Language code
+ -- Language code
mr_lang varbinary(32) NOT NULL,
-- JSON blob. This is an incomplete JSON object, i.e. without the wrapping {}
mr_blob mediumblob NOT NULL,
---
+--
-- patch-oi_metadata.sql
---
+--
-- Add data to allow for direct reference to old images
-- Some re-indexing here.
-- Old images can be included into pages effeciently now.
---
+--
ALTER TABLE /*$wgDBprefix*/oldimage
DROP INDEX oi_name,
---
+--
-- oldimage-user-index.sql
---
+--
-- Add user/timestamp index to old image versions
---
+--
ALTER TABLE /*$wgDBprefix*/oldimage
ADD INDEX oi_usertext_timestamp (oi_user_text,oi_timestamp);
--
-- Create the new pagelinks table to merge links and brokenlinks data,
-- and populate it.
---
+--
-- Unlike the old links and brokenlinks, these records will not need to be
-- altered when target pages are created, deleted, or renamed. This should
-- reduce the amount of severe database frustration that happens when widely-
CREATE TABLE /*$wgDBprefix*/pagelinks (
-- Key to the page_id of the page containing the link.
pl_from int unsigned NOT NULL default '0',
-
+
-- Key to page_namespace/page_title of the target page.
-- The target page may or may not exist, and due to renames
-- and deletions may refer to different page records as time
-- goes by.
pl_namespace int NOT NULL default '0',
pl_title varchar(255) binary NOT NULL default '',
-
+
UNIQUE KEY pl_from(pl_from,pl_namespace,pl_title),
KEY (pl_namespace,pl_title)
--
--- parsercache table, for cacheing complete parsed articles
+-- parsercache table, for cacheing complete parsed articles
-- before they are imbedded in the skin.
--
---
+--
-- patch-pl-tl-il-unique-index.sql
---
+--
-- Make reorderings of UNIQUE indices UNIQUE as well
DROP INDEX /*i*/pl_namespace ON /*_*/pagelinks;
CREATE TABLE /*$wgDBprefix*/querycache (
-- A key name, generally the base name of of the special page.
qc_type varbinary(32) NOT NULL,
-
+
-- Some sort of stored value. Sizes, counts...
qc_value int unsigned NOT NULL default '0',
-
+
-- Target namespace+title
qc_namespace int NOT NULL default '0',
qc_title varchar(255) binary NOT NULL default '',
-
+
KEY (qc_type,qc_value)
) /*$wgDBTableOptions*/;
CREATE TABLE /*$wgDBprefix*/querycachetwo (
-- A key name, generally the base name of of the special page.
qcc_type varbinary(32) NOT NULL,
-
+
-- Some sort of stored value. Sizes, counts...
qcc_value int unsigned NOT NULL default '0',
-
+
-- Target namespace+title
qcc_namespace int NOT NULL default '0',
qcc_title varchar(255) binary NOT NULL default '',
-
+
-- Target namespace+title2
qcc_namespacetwo int NOT NULL default '0',
qcc_titletwo varchar(255) binary NOT NULL default '',
-- Adding rc_deleted field for revisiondelete
-- Add rc_logid to match log_id
-ALTER TABLE /*$wgDBprefix*/recentchanges
+ALTER TABLE /*$wgDBprefix*/recentchanges
ADD rc_deleted tinyint unsigned NOT NULL default '0',
ADD rc_logid int unsigned NOT NULL default '0',
ADD rc_log_type varbinary(255) NULL default NULL,
-- Primary key in recentchanges
-ALTER TABLE /*$wgDBprefix*/recentchanges
+ALTER TABLE /*$wgDBprefix*/recentchanges
ADD rc_id int NOT NULL auto_increment,
ADD PRIMARY KEY rc_id (rc_id);
-- Adding the rc_ip field for logging of IP addresses in recentchanges
-ALTER TABLE /*$wgDBprefix*/recentchanges
+ALTER TABLE /*$wgDBprefix*/recentchanges
ADD rc_ip varbinary(40) NOT NULL default '',
ADD INDEX rc_ip (rc_ip);
--
-- Create the new redirect table.
-- For each redirect, this table contains exactly one row defining its target
---
+--
CREATE TABLE /*$wgDBprefix*/redirect (
-- Key to the page_id of the redirect page
rd_from int unsigned NOT NULL default '0',
---
+--
-- Recreates the iwl_prefix index for the iwlinks table
--
CREATE UNIQUE INDEX /*i*/iwl_prefix_title_from ON /*_*/iwlinks (iwl_prefix, iwl_title, iwl_from);
rev_minor_edit tinyint unsigned NOT NULL default '0',
rev_deleted tinyint unsigned NOT NULL default '0',
-
PRIMARY KEY rev_page_id (rev_page, rev_id),
UNIQUE INDEX rev_id (rev_id),
INDEX rev_timestamp (rev_timestamp),
-- old_id int(8) unsigned NOT NULL auto_increment,
-- old_text mediumtext NOT NULL,
-- old_flags tinyblob NOT NULL,
---
+--
-- PRIMARY KEY old_id (old_id)
-- );
CREATE TABLE /*$wgDBprefix*/searchindex (
-- Key to page_id
si_page int unsigned NOT NULL,
-
+
-- Munged version of title
si_title varchar(255) NOT NULL default '',
-
+
-- Munged version of body text
si_text mediumtext NOT NULL,
-
+
UNIQUE KEY (si_page)
) ENGINE=MyISAM;
CREATE TABLE /*$wgDBprefix*/templatelinks (
-- Key to the page_id of the page containing the link.
tl_from int unsigned NOT NULL default '0',
-
+
-- Key to page_namespace/page_title of the target page.
-- The target page may or may not exist, and due to renames
-- and deletions may refer to different page records as time
-- goes by.
tl_namespace int NOT NULL default '0',
tl_title varchar(255) binary NOT NULL default '',
-
+
UNIQUE KEY tl_from(tl_from,tl_namespace,tl_title),
KEY (tl_namespace,tl_title)
-
) /*$wgDBTableOptions*/;
create table /*$wgDBprefix*/testrun (
tr_id int not null auto_increment,
-
+
tr_date char(14) binary,
tr_mw_version blob,
tr_php_version blob,
tr_db_version blob,
tr_uname blob,
-
+
primary key (tr_id)
) engine=InnoDB;
ti_run int not null,
ti_name varchar(255),
ti_success bool,
-
+
unique key (ti_run, ti_name),
key (ti_run, ti_success),
-
+
foreign key (ti_run) references /*$wgDBprefix*/testrun(tr_id)
on delete cascade
) engine=InnoDB;
--
--- Store information about newly uploaded files before they're
+-- Store information about newly uploaded files before they're
-- moved into the actual filestore
--
CREATE TABLE /*_*/uploadstash (
us_id int unsigned NOT NULL PRIMARY KEY auto_increment,
-
+
-- the user who uploaded the file.
us_user int unsigned NOT NULL,
-- the original path
us_orig_path varchar(255) NOT NULL,
-
+
-- the temporary path at which the file is actually stored
us_path varchar(255) NOT NULL,
-
+
-- which type of upload the file came from (sometimes)
us_source_type varchar(50),
-
+
-- the date/time on which the file was added
us_timestamp varbinary(14) not null,
-
+
us_status varchar(50) not null,
-- file properties from File::getPropsFromPath. these may prove unnecessary.
us_image_width int unsigned,
us_image_height int unsigned,
us_image_bits smallint unsigned
-
) /*$wgDBTableOptions*/;
-- sometimes there's a delete for all of a user's stuff.
-- Add a 'real name' field where users can specify the name they want
-- used for author attribution or other places that real names matter.
-ALTER TABLE user
+ALTER TABLE user
ADD (user_real_name varchar(255) binary NOT NULL default '');
--- Stores the groups the user has once belonged to.
+-- Stores the groups the user has once belonged to.
-- The user may still belong these groups. Check user_groups.
CREATE TABLE /*_*/user_former_groups (
-- Key to user_id
CREATE TABLE /*$wgDBprefix*/user_groups (
-- Key to user_id
ug_user int unsigned NOT NULL default '0',
-
+
-- Group names are short symbolic string keys.
-- The set of group names is open-ended, though in practice
-- only some predefined ones are likely to be used.
-- permissions of any group they're explicitly in, plus
-- the implicit '*' and 'user' groups.
ug_group varbinary(16) NOT NULL default '',
-
+
PRIMARY KEY (ug_user,ug_group),
KEY (ug_group)
) /*$wgDBTableOptions*/;
CREATE TABLE /*_*/user_properties(
-- Foreign key to user.user_id
up_user int not null,
-
+
-- Name of the option being saved. This is indexed for bulk lookup.
up_property varbinary(32) not null,
-
+
-- Property value as a string.
up_value blob
) /*$wgDBTableOptions*/;
CREATE TABLE /*$wgDBprefix*/user_rights (
-- Key to user_id
ur_user int unsigned NOT NULL,
-
+
-- Comma-separated list of permission keys
ur_rights tinyblob NOT NULL,
-
+
UNIQUE KEY ur_user (ur_user)
) /*$wgDBTableOptions*/;
array_push( $keys, $row->us_key );
}
- $this->output( 'Removing ' . count($keys) . " file(s)...\n" );
+ $this->output( 'Removing ' . count( $keys ) . " file(s)...\n" );
// this could be done some other, more direct/efficient way, but using
// UploadStash's own methods means it's less likely to fall accidentally
// out-of-date someday
$this->output( "Deleting old thumbnails...\n" );
$i = 0;
foreach ( $iterator as $file ) {
+ $i++;
if ( wfTimestamp( TS_UNIX, $tempRepo->getFileTimestamp( "$dir/$file" ) ) < $cutoff ) {
$tempRepo->quickPurge( "$dir/$file" );
}
CSSJanus is CSS parser utility designed to aid the conversion of a website's
layout from left-to-right(LTR) to right-to-left(RTL). The script was born out of
-a need to convert CSS for RTL languages when tables are not being used for layout (since tables will automatically reorder TD's in RTL).
+a need to convert CSS for RTL languages when tables are not being used for layout (since tables will automatically reorder TD's in RTL).
CSSJanus will change most of the obvious CSS property names and their values as
-well as some not-so-obvious ones (cursor, background-position %, etc...).
-The script is designed to offer flexibility to account for cases when you do
+well as some not-so-obvious ones (cursor, background-position %, etc...).
+The script is designed to offer flexibility to account for cases when you do
not want to change certain rules which exist to account for bidirectional text
display bugs, as well as situations where you may or may not want to flip annotations inside of the background url string.
-Note that you can disable CSSJanus from running on an entire class or any
+Note that you can disable CSSJanus from running on an entire class or any
rule within a class by prepending a /* @noflip */ comment before the rule(s)
you want CSSJanus to ignore.
CSSJanus itself is not always enough to make a website that works in a LTR
-language context work in a RTL language all the way, but it is a start.
+language context work in a RTL language all the way, but it is a start.
==Getting the code==
{{{
$ svn checkout http://cssjanus.googlecode.com/svn/trunk/ cssjanus
-}}}
+}}}
==Using==
--swap_left_right_in_url: Fixes "left"/"right" string within urls.
Ex: ./cssjanus.py --swap_left_right_in_url < file.css > file_rtl.css
--swap_ltr_rtl_in_url: Fixes "ltr"/"rtl" string within urls.
- Ex: ./cssjanus.py --swap_ltr_rtl_in_url < file.css > file_rtl.css
-
+ Ex: ./cssjanus.py --swap_ltr_rtl_in_url < file.css > file_rtl.css
+
If you'd like to make use of the webapp version of cssjanus, you'll need to
download the Google App Engine SDK
http://code.google.com/appengine/downloads.html
and also drop a "django" directory into this directory, with the latest svn
-from django. You should be good to go with that setup. Please let me know
+from django. You should be good to go with that setup. Please let me know
otherwise.
==Bugs, Patches==
{{{
Copyright 2008 Google Inc. All Rights Reserved.
-
+
Licensed under the Apache License, Version 2.0 (the 'License');
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
-
+
http://www.apache.org/licenses/LICENSE-2.0
-
+
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an 'AS IS' BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#!/usr/bin/hphpi -f
+#!/usr/bin/hphpi -f
<?php
define( 'MW_CONFIG_CALLBACK', 'MakeHipHop::noConfigNeeded' );
unlink( "$buildDir/source" );
}
- # With the CentOS RPMs, you just get g++44, no g++, so we have to
+ # With the CentOS RPMs, you just get g++44, no g++, so we have to
# use the environment
if ( isset( $_ENV['CXX'] ) ) {
$cxx = $_ENV['CXX'];
$cxx = 'g++';
}
- # Create a function that provides the HipHop compiler version, and
+ # Create a function that provides the HipHop compiler version, and
# doesn't exist when MediaWiki is invoked in interpreter mode.
$version = str_replace( PHP_EOL, ' ', trim( `hphp --version` ) );
file_put_contents(
$this->checkVolatileClasses( $outDir );
# Copy the generated C++ files into the source directory for cmake
- $iter = new RecursiveIteratorIterator(
+ $iter = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator( $outDir ),
RecursiveIteratorIterator::SELF_FIRST );
$sourceFiles = array();
}
# Do our own version of $HPHP_HOME/bin/run.sh, which isn't so broken.
- # HipHop's RELEASE mode seems to be stuck always on, so symbols get
- # stripped. Also we will try keeping the generated .o files instead of
+ # HipHop's RELEASE mode seems to be stuck always on, so symbols get
+ # stripped. Also we will try keeping the generated .o files instead of
# throwing away hours of CPU time every time you make a typo.
chdir( $persistentDir );
if ( $regenerateMakefile ) {
- copy( $_ENV['HPHP_HOME'] . '/bin/CMakeLists.base.txt',
+ copy( $_ENV['HPHP_HOME'] . '/bin/CMakeLists.base.txt',
"$persistentDir/CMakeLists.txt" );
if ( file_exists( "$persistentDir/CMakeCache.txt" ) ) {
$cmd = 'cmake' .
" -D CMAKE_BUILD_TYPE:string=" . wfEscapeShellArg( $GLOBALS['wgHipHopBuildType'] ) .
' -D PROGRAM_NAME:string=mediawiki-hphp';
-
+
if ( file_exists( '/usr/bin/ccache' ) ) {
$cmd .= ' -D CMAKE_CXX_COMPILER:string=ccache' .
' -D CMAKE_CXX_COMPILER_ARG1:string=' . wfEscapeShellArg( $cxx );
# Determine appropriate make concurrency
# Compilation can take a lot of memory, let's assume that that is limiting.
$procs = $this->getNumProcs();
-
+
# Run make. This is the slow step.
passthru( 'make -j' . wfEscapeShellArg( $procs ) );
$sourceBase = realpath( "$IP/.." );
}
- passthru(
+ passthru(
'cd ' . wfEscapeShellArg( $sourceBase ) . " && " .
'MW_INSTALL_PATH=' . wfEscapeShellArg( $IP ) . ' ' .
- wfEscapeShellArg(
+ wfEscapeShellArg(
"$buildDir/persistent/mediawiki-hphp",
'-c', "$thisDir/server.conf",
'-v', "Server.SourceRoot=$sourceBase",
cl_from BIGINT NOT NULL DEFAULT 0,
-- REFERENCES page(page_id) ON DELETE CASCADE,
cl_to VARCHAR(255) NOT NULL,
- -- cl_sortkey has to be at least 86 wide
+ -- cl_sortkey has to be at least 86 wide
-- in order to be compatible with the old MySQL schema from MW 1.10
--cl_sortkey VARCHAR(86),
cl_sortkey VARCHAR(230) FOR BIT DATA NOT NULL ,
CREATE TABLE user_properties (
-- Foreign key to user.user_id
up_user BIGINT NOT NULL,
-
+
-- Name of the option being saved. This is indexed for bulk lookup.
up_property VARCHAR(32) FOR BIT DATA NOT NULL,
-
+
-- Property value as a string.
up_value CLOB(64K) INLINE LENGTH 4096
);
-- This is read and executed by the install script; you should
-- not have to run it by itself unless doing a manual install.
--- Notes:
+-- Notes:
-- * DB2 will convert all table and column names to all caps internally.
-- * DB2 has a 32k limit on SQL filesize, so it may be necessary
-- to split this into two files soon.
-- REFERENCES page (page_id) ON DELETE CASCADE,
pp_propname VARCHAR(255) NOT NULL,
pp_value CLOB(64K) INLINE LENGTH 4096 NOT NULL,
- PRIMARY KEY (pp_page, pp_propname)
+ PRIMARY KEY (pp_page, pp_propname)
);
CREATE INDEX page_props_propname
ON page_props (pp_propname);
pl_namespace SMALLINT NOT NULL,
pl_title VARCHAR(255) NOT NULL
);
-CREATE UNIQUE INDEX pagelink_unique
+CREATE UNIQUE INDEX pagelink_unique
ON pagelinks (pl_from, pl_namespace, pl_title);
cl_from BIGINT NOT NULL DEFAULT 0,
-- REFERENCES page(page_id) ON DELETE CASCADE,
cl_to VARCHAR(255) NOT NULL,
- -- cl_sortkey has to be at least 86 wide
+ -- cl_sortkey has to be at least 86 wide
-- in order to be compatible with the old MySQL schema from MW 1.10
--cl_sortkey VARCHAR(86),
cl_sortkey VARCHAR(230) FOR BIT DATA NOT NULL,
);
CREATE INDEX ipb_address
ON ipblocks (ipb_address);
-CREATE INDEX ipb_user
+CREATE INDEX ipb_user
ON ipblocks (ipb_user);
CREATE INDEX ipb_range
ON ipblocks (ipb_range_start, ipb_range_end);
rc_log_type VARCHAR(255),
rc_log_action VARCHAR(255),
rc_params CLOB(64K) INLINE LENGTH 4096
-
);
CREATE INDEX rc_timestamp
ON recentchanges (rc_timestamp);
--
--- Store information about newly uploaded files before they're
+-- Store information about newly uploaded files before they're
-- moved into the actual filestore
--
CREATE TABLE uploadstash (
--- Stores the groups the user has once belonged to.
+-- Stores the groups the user has once belonged to.
-- The user may still belong these groups. Check user_groups.
CREATE TABLE user_former_groups (
ufg_user BIGINT NOT NULL DEFAULT 0,
CREATE INDEX /*$wgDBprefix*/user_group_id ON /*$wgDBprefix*/user_newtalk([user_id]);
CREATE INDEX /*$wgDBprefix*/user_ip ON /*$wgDBprefix*/user_newtalk(user_ip);
---
+--
-- User preferences and other fun stuff
-- replaces old user.user_options BLOB
---
+--
CREATE TABLE /*$wgDBprefix*/user_properties (
up_user INT NOT NULL,
up_property NVARCHAR(32) NOT NULL,
-- The fields generally correspond to the page, revision, and text
-- fields, with several caveats.
-- Cannot reasonably create views on this table, due to the presence of TEXT
--- columns.
+-- columns.
CREATE TABLE /*$wgDBprefix*/archive (
ar_namespace SMALLINT NOT NULL DEFAULT 0,
ar_title NVARCHAR(255) NOT NULL DEFAULT '',
CREATE INDEX /*$wgDBprefix*/cl_timestamp ON /*$wgDBprefix*/categorylinks(cl_to,cl_timestamp);
--;
---
+--
-- Track all existing categories. Something is a category if 1) it has an en-
-- try somewhere in categorylinks, or 2) it once did. Categories might not
-- have corresponding pages, so they need to be tracked separately.
vt_tag varchar(255) NOT NULL PRIMARY KEY
);
---
+--
-- Table for storing localisation data
---
+--
CREATE TABLE /*$wgDBprefix*/l10n_cache (
-- language code
lc_lang NVARCHAR(32) NOT NULL,
-
+
-- cache key
lc_key NVARCHAR(255) NOT NULL,
-
+
-- Value
lc_value TEXT NOT NULL DEFAULT '',
);
-- Maximum key length ON SQL Server is 900 bytes
CREATE INDEX /*$wgDBprefix*/externallinks_index ON /*$wgDBprefix*/externallinks(el_index);
---
+--
-- Track external user accounts, if ExternalAuth is used
---
+--
CREATE TABLE /*$wgDBprefix*/external_user (
-- Foreign key to user_id
eu_local_id INT NOT NULL PRIMARY KEY,
);
CREATE UNIQUE INDEX /*$wgDBprefix*/langlinks_reverse_key ON /*$wgDBprefix*/langlinks(ll_lang,ll_title);
---
+--
-- Track inline interwiki links
---
+--
CREATE TABLE /*$wgDBprefix*/iwlinks (
-- page_id of the referring page
iwl_from INT NOT NULL DEFAULT 0,
-
+
-- Interwiki prefix code of the target
iwl_prefix NVARCHAR(20) NOT NULL DEFAULT '',
-
+
-- Title of the target, including namespace
iwl_title NVARCHAR(255) NOT NULL DEFAULT '',
);
PRIMARY KEY (ul_key)
);
--- NOTE To enable full text indexing on SQL 2008 you need to create an account FDH$MSSQLSERVER
+-- NOTE To enable full text indexing on SQL 2008 you need to create an account FDH$MSSQLSERVER
-- AND assign a password for the FDHOST process to run under
-- Once you have assigned a password to that account, you need to run the following stored procedure
-- replacing XXXXX with the password you used.
ON &mw_prefix.testrun
BEGIN
SELECT testrun_tr_id_seq.NEXTVAL into :NEW.tr_id FROM dual;
-END;
+END;
CREATE TABLE /*$wgDBprefix*/testitem (
ti_run NUMBER NOT NULL REFERENCES &mw_prefix.testrun (tr_id) ON DELETE CASCADE,
ti_run INTEGER NOT NULL REFERENCES testrun(tr_id) ON DELETE CASCADE,
ti_name TEXT NOT NULL,
ti_success SMALLINT NOT NULL
-);
+);
CREATE UNIQUE INDEX testitem_uniq ON testitem(ti_run, ti_name);
fa_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
fa_user_text TEXT NOT NULL,
fa_timestamp TIMESTAMPTZ,
- fa_deleted SMALLINT NOT NULL DEFAULT 0
+ fa_deleted SMALLINT NOT NULL DEFAULT 0,
+ fa_sha1 TEXT NOT NULL DEFAULT ''
);
CREATE INDEX fa_name_time ON filearchive (fa_name, fa_timestamp);
CREATE INDEX fa_dupe ON filearchive (fa_storage_group, fa_storage_key);
CREATE INDEX fa_notime ON filearchive (fa_deleted_timestamp);
CREATE INDEX fa_nouser ON filearchive (fa_deleted_user);
+CREATE INDEX fa_sha1 ON filearchive (fa_sha1);
CREATE SEQUENCE uploadstash_us_id_seq;
CREATE TYPE media_type AS ENUM ('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE');
---
+--
-- Recreates the iwl_prefix for the iwlinks table
--
DROP INDEX IF EXISTS /*i*/iwl_prefix;
-- Patch that introduces fulltext search capabilities to SQLite schema
-- Requires that SQLite must be compiled with FTS3 module (comes with core amalgamation).
-- See http://sqlite.org/fts3.html for details of syntax.
--- Will fail if FTS3 is not present,
+-- Will fail if FTS3 is not present,
DROP TABLE IF EXISTS /*_*/searchindex;
CREATE VIRTUAL TABLE /*_*/searchindex USING FTS3(
-- Key to page_id
-- Munged version of title
si_title,
-
+
-- Munged version of body text
si_text
);
-- Munged version of title
si_title TEXT,
-
+
-- Munged version of body text
si_text TEXT
);
fi
if [ -z $3 ]; then
table=blobs
-else
+else
table=$3
fi
echo "CREATE DATABASE $2" | mysql -u wikiadmin -p`wikiadmin_pass` -h $1 && \
sed "s/blobs\>/$table/" blobs.sql | mysql -u wikiadmin -p`wikiadmin_pass` -h $1 $2
-
-
* @return mixed Parameter value or null.
*/
getParamValue: function ( param, url ) {
- url = url || document.location.href;
+ if ( url === undefined ) {
+ url = document.location.href;
+ }
// Get last match, stop at hash
var re = new RegExp( '^[^#]*[&?]' + $.escapeRE( param ) + '=([^&#]*)' ),
m = re.exec( url );
$out->addModuleStyles( 'mediawiki.legacy.oldshared' );
$out->addModuleStyles( 'skins.cologneblue' );
}
-
+
/**
* Override langlink formatting behavior not to uppercase the language names.
* See otherLanguages() in CologneBlueTemplate.
class CologneBlueTemplate extends BaseTemplate {
function execute() {
+ // Suppress warnings to prevent notices about missing indexes in $this->data
+ wfSuppressWarnings();
$this->html( 'headelement' );
echo $this->beforeContent();
$this->html( 'bodytext' );
$this->html( 'dataAfterContent' );
$this->printTrail();
echo "\n</body></html>";
+ wfRestoreWarnings();
}
-
/**
* Language/charset variant links for classic-style skins
return $this->getSkin()->getLanguage()->pipeList( $s );
}
-
+
// @fixed
function otherLanguages() {
global $wgHideInterlanguageLinks;
function pageTitleLinks() {
$s = array();
$footlinks = $this->getFooterLinks();
-
+
foreach ( $footlinks['places'] as $item ) {
$s[] = $this->data[$item];
}
-
+
return $this->getSkin()->getLanguage()->pipeList( $s );
}
}
}
+ // @fixed
function talkLink() {
$title = $this->getSkin()->getTitle();
- if ( NS_SPECIAL == $title->getNamespace() ) {
- # No discussion links for special pages
- return '';
+
+ if ( $title->getNamespace() == NS_SPECIAL ) {
+ // No discussion links for special pages
+ return "";
}
- $linkOptions = array();
-
- if ( $title->isTalkPage() ) {
- $link = $title->getSubjectPage();
- switch( $link->getNamespace() ) {
- case NS_MAIN:
- $text = wfMessage( 'articlepage' );
- break;
- case NS_USER:
- $text = wfMessage( 'userpage' );
- break;
- case NS_PROJECT:
- $text = wfMessage( 'projectpage' );
- break;
- case NS_FILE:
- $text = wfMessage( 'imagepage' );
- # Make link known if image exists, even if the desc. page doesn't.
- if ( wfFindFile( $link ) )
- $linkOptions[] = 'known';
- break;
- case NS_MEDIAWIKI:
- $text = wfMessage( 'mediawikipage' );
- break;
- case NS_TEMPLATE:
- $text = wfMessage( 'templatepage' );
- break;
- case NS_HELP:
- $text = wfMessage( 'viewhelppage' );
- break;
- case NS_CATEGORY:
- $text = wfMessage( 'categorypage' );
- break;
- default:
- $text = wfMessage( 'articlepage' );
- }
+ $companionTitle = $title->isTalkPage() ? $title->getSubjectPage() : $title->getTalkPage();
+ $companionNamespace = $companionTitle->getNamespace();
+
+ // TODO these messages appear to only be used by CologneBlue and legacy skins,
+ // kill and replace with something more sensibly named?
+ $nsToMessage = array(
+ NS_MAIN => 'articlepage',
+ NS_USER => 'userpage',
+ NS_PROJECT => 'projectpage',
+ NS_FILE => 'imagepage',
+ NS_MEDIAWIKI => 'mediawikipage',
+ NS_TEMPLATE => 'templatepage',
+ NS_HELP => 'viewhelppage',
+ NS_CATEGORY => 'categorypage',
+ NS_FILE => 'imagepage',
+ );
+
+ // Find out the message to use for link text. Use either the array above or,
+ // for non-talk pages, a generic "discuss this" message.
+ // Default is the same as for main namespace.
+ if ( isset( $nsToMessage[$companionNamespace] ) ) {
+ $message = $nsToMessage[$companionNamespace];
} else {
- $link = $title->getTalkPage();
- $text = wfMessage( 'talkpage' );
+ $message = $companionTitle->isTalkPage() ? 'talkpage' : 'articlepage';
}
- $s = Linker::link( $link, $text->text(), array(), array(), $linkOptions );
+ // Obviously this can't be reasonable and just return the key for talk namespace, only for content ones.
+ // Thus we have to mangle it in exactly the same way SkinTemplate does. (bug 40805)
+ $key = $companionTitle->getNamespaceKey( '' );
+ if ( $companionTitle->isTalkPage() ) {
+ $key = ( $key == 'main' ? 'talk' : $key . "_talk" );
+ }
- return $s;
+ // Use the regular navigational link, but replace its text. Everything else stays unmodified.
+ $namespacesLinks = $this->data['content_navigation']['namespaces'];
+ $link = $this->processNavlinkForDocument( $namespacesLinks[ $key ] );
+ $link['text'] = wfMessage( $message )->text();
+
+ return $this->makeListItem( $message, $link, array( 'tag' => 'span' ) );
+ }
+
+ /**
+ * Takes a navigational link generated by SkinTemplate in whichever way
+ * and mangles attributes unsuitable for repeated use. In particular, this modifies the ids
+ * and removes the accesskeys. This is necessary to be able to use the same navlink twice,
+ * e.g. in sidebar and in footer.
+ *
+ * @param $navlink array Navigational link generated by SkinTemplate
+ * @param $idPrefix mixed Prefix to add to id of this navlink. If false, id is removed entirely. Default is 'cb-'.
+ */
+ function processNavlinkForDocument( $navlink, $idPrefix='cb-' ) {
+ if ( $navlink['id'] ) {
+ $navlink['single-id'] = $navlink['id']; // to allow for tooltip generation
+ $navlink['tooltiponly'] = true; // but no accesskeys
+
+ // mangle or remove the id
+ if ( $idPrefix === false ) {
+ unset( $navlink['id'] );
+ } else {
+ $navlink['id'] = $idPrefix . $navlink['id'];
+ }
+ }
+
+ return $navlink;
}
-
+
/**
* @return string
- *
+ *
* @fixed
*/
function beforeContent() {
</a>
</p>
<p id="sitesub"><?php echo wfMessage( 'sitesubtitle' )->escaped() ?></p>
-
<div id="toplinks">
<p id="syslinks"><?php echo $this->sysLinks() ?></p>
<p id="variantlinks"><?php echo $this->variantLinks() ?></p>
<?php
$s = ob_get_contents();
ob_end_clean();
-
+
return $s;
}
/**
* @return string
- *
+ *
* @fixed
*/
function afterContent() {
// Page-related links
echo $this->bottomLinks();
echo "\n<br />";
-
+
// Footer and second searchbox
echo $this->getSkin()->getLanguage()->pipeList( array(
$this->getSkin()->mainPageLink(),
$this->searchForm( 'footer' )
) );
echo "\n<br />";
-
+
// Standard footer info
$footlinks = $this->getFooterLinks();
if ( $footlinks['info'] ) {
/**
* @return string
- *
+ *
* @fixed
*/
function sysLinks() {
return $this->getSkin()->getLanguage()->pipeList( $s );
}
-
-
-
/**
* @param $heading string
* @return string
- *
+ *
* @fixed
*/
function menuHead( $heading ) {
* @access private
*
* @return string
- *
+ *
* @fixed
*/
function quickBar(){
$s = "\n<div id='quickbar'>";
$sep = "<br />\n";
-
+
$plain_bar = $this->data['sidebar'];
$bar = array();
-
+
// Massage the sidebar
// We want to place SEARCH at the beginning and a lot of stuff before TOOLBOX (or at the end, if it's missing)
$additions_done = false;
while ( !$additions_done ) {
$bar = array(); // Empty it out
-
+
// Always display search on top
$bar['SEARCH'] = true;
-
+
foreach ( $plain_bar as $heading => $links ) {
if ( $heading == 'TOOLBOX' ) {
if( $links !== NULL ) {
// If this is not a toolbox prosthetic we inserted outselves, fill it out
$plain_bar['TOOLBOX'] = $this->getToolbox();
}
-
+
// And insert the stuff
-
+
// "This page" and "Edit" menus
// We need to do some massaging here... we reuse all of the items, except for $...['views']['view'],
// as $...['namespaces']['main'] and $...['namespaces']['talk'] together serve the same purpose.
);
$bar['qbedit'] = $qbedit;
$bar['qbpageoptions'] = $qbpageoptions;
-
+
// Personal tools ("My pages")
$bar['qbmyoptions'] = $this->getPersonalTools();
foreach ( array ( 'logout', 'createaccount', 'login', 'anonlogin' ) as $key ) {
- $bar['qbmyoptions'][$key] = false;
+ $bar['qbmyoptions'][$key] = null;
}
-
+
$additions_done = true;
}
-
+
// Re-insert current heading, unless it's SEARCH
if ( $heading != 'SEARCH' ) {
$bar[$heading] = $plain_bar[$heading];
}
}
-
+
// If TOOLBOX is missing, $additions_done is still false
if ( !$additions_done ) {
$plain_bar['TOOLBOX'] = false;
}
}
-
+
foreach ( $bar as $heading => $links ) {
if ( $heading == 'SEARCH' ) {
$s .= $this->menuHead( wfMessage( 'qbfind' )->text() );
$s .= $this->searchForm( 'sidebar' );
} elseif ( $heading == 'LANGUAGES' ) {
// discard these; we display languages below page content
- } else {
- if ( $links ) {
+ } elseif ( $links ) {
+ if ( is_array( $links ) ) {
// Use the navigation heading from standard sidebar as the "browse" section
if ( $heading == 'navigation' ) {
$heading = 'qbbrowse';
if ( $heading == 'TOOLBOX' ) {
$heading = 'toolbox';
}
-
+
$headingMsg = wfMessage( $heading );
$any_link = false;
$t = $this->menuHead( $headingMsg->exists() ? $headingMsg->text() : $heading );
-
+
foreach ( $links as $key => $link ) {
// Can be empty due to rampant sidebar massaging we're doing above
if ( $link ) {
$t .= $this->makeListItem( $key, $link, array( 'tag' => 'span' ) ) . $sep;
}
}
-
+
if ( $any_link ) {
$s .= $t;
}
+ } else {
+ // $links can be a HTML string
+ $s .= $links;
}
}
}
/**
* @param $label string
* @return string
- *
+ *
* @fixed
*/
function searchForm( $which ) {
/**
* Adds classes to the body element.
- *
+ *
* @param $out OutputPage object
* @param &$bodyAttrs Array of attributes that will be set on the body element
*/
-/*
-** MediaWiki style sheet for general styles on complex content
-*/
+/**
+ * MediaWiki style sheet for general styles on complex content
+ *
+ * Styles for complex things which are a standard part of page content
+ * (ie: the CSS classing built into the system), like the TOC.
+ */
/* Table of Contents */
#toc,
/**
* MediaWiki style sheet for general styles on basic content elements
- * This style sheet is used by the monobook and vector skins
+ *
+ * Styles for basic elements: links, lists, etc...
+ *
+ * This style sheet is used by the Monobook and Vector skins.
*/
/* Links */
-/*
-** MediaWiki style sheet for common core styles on interfaces
-*/
+/**
+ * MediaWiki style sheet for common core styles on interfaces
+ *
+ * Styles for the Monobook/Vector pattern of laying out common interfaces.
+ * These ids/classes are not built into the system,
+ * they are outputted by the actual MonoBook/Vector code by convention.
+ */
/* Categories */
.catlinks {
protected function setUp() {
parent::setUp();
- $this->setMwGlobals( 'wgContLang', Language::factory( 'en' ) );
+ $this->setMwGlobals( array(
+ 'wgLanguageCode' => 'en',
+ 'wgContLang' => Language::factory( 'en' )
+ ) );
}
function addDBData() {
'Each user rights (core/extensions) has a corresponding right- message.'
);
}
+
+ /**
+ * Test User::editCount
+ */
+ public function testEditCount() {
+ $user = User::newFromName( 'UnitTestUser' );
+ $user->loadDefaults();
+ $user->addToDatabase();
+
+ // let the user have a few (10) edits
+ $page = WikiPage::factory( Title::newFromText( 'UserTest_EditCount' ) );
+ for( $i = 0; $i < 10; $i++ ) {
+ $page->doEdit( (string) $i, 'test', 0, false, $user );
+ }
+
+ $user->clearInstanceCache();
+ $this->assertEquals( 10, $user->getEditCount(), 'After ten edits, the user edit count should be 10' );
+
+ // increase the edit count and clear the cache
+ $user->incEditCount();
+
+ $user->clearInstanceCache();
+ $this->assertEquals( 11, $user->getEditCount(), 'After increasing the edit count manually, the user edit count should be 11' );
+ }
}