# Building & testing
node_modules/
+# Composer
+/vendor
+/composer.lock
+/composer.json
+
# Operating systems
## Mac OS X
.DS_Store
== Patch Contributors ==
* Aaron Pramana
+* Aaron Ball
* Agbad
* Ahmad Sherif
* Alejandro Mery
in MW 1.20 (saving preferences using Special:Preferences cleared any
additional fields) and which has been disabled in 1.20.1 as a part of
a security fix (bug 42202).
-* Added the ability to limit the wall clock time used by shell processes,
+* Added the ability to limit the wall clock time used by shell processes,
as well as the CPU time. Configurable with $wgMaxShellWallClockTime.
+* Added $wgWhitelistReadRegexp for regex whitelisting
=== Bug fixes in 1.21 ===
* (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
* wfMerge() now works if $wgDiff3 contains spaces
* (bug 43052) mediawiki.action.view.dblClickEdit.dblClickEdit should trigger
ca-edit click instead opening URL directly.
+* (bug 43964) Invalid value of "link" parameter in <gallery> no longer produces
+ a fatal error.
=== API changes in 1.21 ===
* prop=revisions can now report the contentmodel and contentformat.
* (bug 35885) Removed version parameter and all getVersion() methods.
* action=options now takes a "resetkinds" option, which allows only resetting
certain types of preferences when the "reset" option is set.
+* (bug 36751) ApiQueryImageInfo now returns imageinfo for the redirect target
+ when queried with &redirects=.
+* (bug 31849) ApiQueryImageInfo no longer gets confused when asked for info on
+ a redirect and its target.
+* (bug 43849) ApiQueryImageInfo no longer throws exceptions with ForeignDBRepo
+ redirects.
+* On error, any warnings generated before that error will be shown in the result.
=== API internal changes in 1.21 ===
* For debugging only, a new global $wgDebugAPI removes many API restrictions when true.
if ( $module->mustBePosted() ) {
$items[] = "action=" . $wgRequest->getVal( 'action' );
} else {
- $items[] = wfArrayToCGI( $wgRequest->getValues() );
+ $items[] = wfArrayToCgi( $wgRequest->getValues() );
}
wfErrorLog( implode( ',', $items ) . "\n", $wgAPIRequestLog );
wfDebug( "Logged API request to $wgAPIRequestLog\n" );
if [ "$3" -gt 0 ]; then
ulimit -f "$3"
fi
-if [ "$4" -gt 0 ]; then
- timeout $4 /bin/bash -c "$5"
+if [ "$4" -gt 0 -a -x "/usr/bin/timeout" ]; then
+ /usr/bin/timeout $4 /bin/bash -c "$5"
STATUS="$?"
if [ "$STATUS" == 124 ]; then
echo "ulimit5.sh: timed out." 1>&2
$title: Title under which the revisions were imported
$origTitle: Title provided by the XML file
$revCount: Number of revisions in the XML file
-$sRevCount: Number of sucessfully imported revisions
+$sRevCount: Number of successfully imported revisions
$pageInfo: associative array of page information
'AfterFinalPageOutput': Nearly at the end of OutputPage::output() but
&$module: ApiBase Module object
&$desc: Array of parameter descriptions
-'APIGetResultProperties': Use this hook to mofify the propertiesin a module's
+'APIGetResultProperties': Use this hook to modify the properties in a module's
result.
&$module: ApiBase Module object
&$properties: Array of properties
'ArticlePageDataBefore': Before loading data of an article from the database.
$wikiPage: WikiPage (object) that data will be loaded
-$fields: fileds (array) to load from the database
+$fields: fields (array) to load from the database
'ArticlePrepareTextForEdit': Called when preparing text to be saved.
$wikiPage: the WikiPage being saved
'ArticleViewCustom': Allows to output the text of the article in a different
format than wikitext. DEPRECATED, use ArticleContentViewCustom instead. Note
-that it is preferrable to implement proper handing for a custom data type using
+that it is preferable to implement proper handing for a custom data type using
the ContentHandler facility.
$text: text of the page
$title: title of the page
$output: reference to $wgOut
'ArticleContentViewCustom': Allows to output the text of the article in a
-different format than wikitext. Note that it is preferrable to implement proper
+different format than wikitext. Note that it is preferable to implement proper
handing for a custom data type using the ContentHandler facility.
$content: content of the page, as a Content object
$title: title of the page
$user: User object created locally
'AuthPluginSetup': Update or replace authentication plugin object ($wgAuth).
-Gives a chance for an extension to set it programattically to a variable class.
+Gives a chance for an extension to set it programmatically to a variable class.
&$auth: the $wgAuth object, probably a stub
'AutopromoteCondition': Check autopromote condition for user.
$user: user
$result: result of checking autopromote condition
-'BacklinkCacheGetPrefix': Allows to set prefix for a spefific link table.
+'BacklinkCacheGetPrefix': Allows to set prefix for a specific link table.
$table: table name
&$prefix: prefix
successfully.
$user: user (object) whose email is being confirmed
-'ContentHandlerDefaultModelFor': Called when the default content model is determiend
+'ContentHandlerDefaultModelFor': Called when the default content model is determined
for a given title. May be used to assign a different model for that title.
$title: the Title in question
&$model: the model name. Use with CONTENT_MODEL_XXX constants.
'EditPageGetDiffText': DEPRECATED. Use EditPageGetDiffContent instead. Allow
modifying the wikitext that will be used in "Show changes". Note that it is
-preferrable to implement diff handling for different data types using the
+preferable to implement diff handling for different data types using the
ContentHandler facility.
$editPage: EditPage object
&$newtext: wikitext that will be used as "your version"
'EditPageGetDiffContent': Allow modifying the wikitext that will be used in
-"Show changes". Note that it is preferrable to implement diff handling for
+"Show changes". Note that it is preferable to implement diff handling for
different data types using the ContentHandler facility.
$editPage: EditPage object
&$newtext: wikitext that will be used as "your version"
'EditPageGetPreviewText': DEPRECATED. Use EditPageGetPreviewContent instead.
-Allow modifying the wikitext that will be previewed. Note that it is preferrable
-to implement previews for different data types using the COntentHandler
+Allow modifying the wikitext that will be previewed. Note that it is preferable
+to implement previews for different data types using the ContentHandler
facility.
$editPage: EditPage object
&$toparse: wikitext that will be parsed
'EditPageGetPreviewContent': Allow modifying the wikitext that will be
-previewed. Note that it is preferrable to implement previews for different data
-types using the COntentHandler facility.
+previewed. Note that it is preferable to implement previews for different data
+types using the ContentHandler facility.
$editPage: EditPage object
&$content: Content object to be previewed (may be replaced by hook function)
&$url: string value as output (out parameter, can modify)
'GetMetadataVersion': Modify the image metadata version currently in use. This
-is used when requesting image metadata from a ForiegnApiRepo. Media handlers
+is used when requesting image metadata from a ForeignApiRepo. Media handlers
that need to have versioned metadata should add an element to the end of the
version array of the form 'handler_name=version'. Most media handlers won't need
to do this unless they broke backwards compatibility with a previous version of
$imagePage: ImagePage object ($this)
&$html: HTML for the hook to add
-'ImagePageFileHistoryLine': Called when a file history line is contructed.
+'ImagePageFileHistoryLine': Called when a file history line is constructed.
$file: the file
$line: the HTML of the history line
$css: the line CSS class
$wgExtensionMessagesFiles instead.
Use this to define synonyms of magic words depending of the language
$magicExtensions: associative array of magic words synonyms
-$lang: laguage code (string)
+$lang: language code (string)
'LanguageGetSpecialPageAliases': DEPRECATED, use $specialPageAliases in a file
listed in $wgExtensionMessagesFiles instead.
Use to define aliases of special pages names depending of the language
$specialPageAliases: associative array of magic words synonyms
-$lang: laguage code (string)
+$lang: language code (string)
'LanguageGetTranslatedLanguageNames': Provide translated language names.
&$names: array of language code => language name
$options: the options. Will always include either 'known' or 'broken', and may
include 'noclasses'.
&$html: the final (raw HTML) contents of the <a> tag, after processing.
-&$attribs: the final HTML attributes of the <a> tag, after processing, in asso-
- ciative array form.
+&$attribs: the final HTML attributes of the <a> tag, after processing, in
+ associative array form.
&$ret: the value to return if your hook returns false.
'LinkerMakeExternalImage': At the end of Linker::makeExternalImage() just
each link table insert. For example, pagelinks, imagelinks, externallinks.
$linksUpdate: LinksUpdate object
$table: the table to insert links to
-$insertions: an arry of links to insert
+$insertions: an array of links to insert
'LinksUpdateComplete': At the end of LinksUpdate::doUpdate() when updating,
including delete and insert, has completed for all link tables
&$linksUpdate: the LinksUpdate object
-'LinksUpdateConstructed': At the end of LinksUpdate() is contruction.
+'LinksUpdateConstructed': At the end of LinksUpdate() is construction.
&$linksUpdate: the LinksUpdate object
'ListDefinedTags': When trying to find all defined tags.
script.
$refreshLinks: RefreshLinks object
-'MagicWordwgVariableIDs': When definig new magic words IDs.
+'MagicWordwgVariableIDs': When defining new magic words IDs.
$variableIDs: array of strings
'MakeGlobalVariablesScript': Called right before Skin::makeVariablesScript is
Skin::makeVariablesScript
$out: The OutputPage which called the hook, can be used to get the real title.
-'MarkPatrolled': Aefore an edit is marked patrolled.
+'MarkPatrolled': Before an edit is marked patrolled.
$rcid: ID of the revision to be marked patrolled
$user: the user (object) marking the revision as patrolled
$wcOnlySysopsCanPatrol: config setting indicating whether the user needs to be a
'ParserAfterTidy': Called after Parser::tidy() in Parser::parse()
$parser: Parser object being used
-$text: text that'll be returned
+$text: text that will be returned
'ParserBeforeInternalParse': Called at the beginning of Parser::internalParse().
$parser: Parser object
'ParserGetVariableValueVarCache': use this to change the value of the variable
cache or return false to not use it.
$parser: Parser object
-$varCache: varaiable cache (array)
+$varCache: variable cache (array)
'ParserLimitReport': Called at the end of Parser:parse() when the parser will
include comments about size of the text parsed.
$newaddr: new email address (string)
'PrefsPasswordAudit': Called when user changes his password.
-$user: User (object) changing his passoword
+$user: User (object) changing his password
$newPass: new password
$error: error (string) 'badretype', 'wrongpassword', 'error' or 'success'
$t: title object searched for
&$params: an array of the default message name and page title (as parameter)
-'SpecialSearchGo': Valled when user clicked the "Go".
+'SpecialSearchGo': Called when user clicked the "Go".
&$title: title object generated from the text entered by the user
&$term: the search term entered by the user
'ThumbnailBeforeProduceHTML': Called before an image HTML is about to be
rendered (by ThumbnailImage:toHtml method).
$thumbnail: the ThumbnailImage object
-&$attribs: image attibute array
+&$attribs: image attribute array
&$linkAttribs: image link attribute array
'TitleArrayFromResult': Called when creating an TitleArray object from a
Title::isMovable().
'TitleIsWikitextPage': Called when determining if a page is a wikitext or should
-be handled by seperate handler (via ArticleViewCustom).
+be handled by separate handler (via ArticleViewCustom).
$title: Title object that is being checked
$result: Boolean; whether MediaWiki currently thinks this is a wikitext page.
Hooks may change this value to override the return value of
$title: title object related to the revision
$rev: revision (object) that will be viewed
-'UnknownAction': An unknown "action" has occured (useful for defining your own
+'UnknownAction': An unknown "action" has occurred (useful for defining your own
actions).
$action: action name
$article: article "acted on"
'UserClearNewTalkNotification': Called when clearing the "You have new
messages!" message, return false to not delete it.
-$user: User (object) that'll clear the message
+$user: User (object) that will clear the message
'UserComparePasswords': Called when checking passwords, return false to
override the default password checks.
&$email: email, change this to override local email
'UserGetEmailAuthenticationTimestamp': Called when getting the timestamp of
-email authentification.
+email authentication.
$user: User object
-&$timestamp: timestamp, change this to override local email authentification
+&$timestamp: timestamp, change this to override local email authentication
timestamp
'UserGetImplicitGroups': Called in User::getImplicitGroups().
'UserGetLanguageObject': Called when getting user's interface language object.
$user: User object
-&$code: Langauge code that will be used to create the object
+&$code: Language code that will be used to create the object
$context: RequestContext object
'UserGetReservedNames': Allows to modify $wgReservedUsernames at run time.
'UserLoadFromSession': Called to authenticate users on external/environmental
means; occurs before session is loaded.
$user: user object being loaded
-&$result: set this to a boolean value to abort the normal authentification
+&$result: set this to a boolean value to abort the normal authentication
process
'UserLoadOptions': When user options/preferences are being loaded from the
&$email: new email, change this to override new email address
'UserSetEmailAuthenticationTimestamp': Called when setting the timestamp of
-email authentification.
+email authentication.
$user: User object
&$timestamp: new timestamp, change this to override local email
-authentification timestamp
+authentication timestamp
'UserToolLinksEdit': Called when generating a list of user tool links, e.g.
"Foobar (Talk | Contribs | Block)".
* @param $overrides Array
* @return bool|null|string
*/
- private final static function getClass( $action, array $overrides ) {
+ final private static function getClass( $action, array $overrides ) {
global $wgActions;
$action = strtolower( $action );
* @return Action|bool|null false if the action is disabled, null
* if it is not recognised
*/
- public final static function factory( $action, Page $page, IContextSource $context = null ) {
+ final public static function factory( $action, Page $page, IContextSource $context = null ) {
$class = self::getClass( $action, $page->getActionOverrides() );
if ( $class ) {
$obj = new $class( $page, $context );
* @param $context IContextSource
* @return string: action name
*/
- public final static function getActionName( IContextSource $context ) {
+ final public static function getActionName( IContextSource $context ) {
global $wgActions;
$request = $context->getRequest();
* @param $name String: name of an action
* @return Bool
*/
- public final static function exists( $name ) {
+ final public static function exists( $name ) {
return self::getClass( $name, array() ) !== null;
}
* Get the IContextSource in use here
* @return IContextSource
*/
- public final function getContext() {
+ final public function getContext() {
if ( $this->context instanceof IContextSource ) {
return $this->context;
}
*
* @return WebRequest
*/
- public final function getRequest() {
+ final public function getRequest() {
return $this->getContext()->getRequest();
}
*
* @return OutputPage
*/
- public final function getOutput() {
+ final public function getOutput() {
return $this->getContext()->getOutput();
}
*
* @return User
*/
- public final function getUser() {
+ final public function getUser() {
return $this->getContext()->getUser();
}
*
* @return Skin
*/
- public final function getSkin() {
+ final public function getSkin() {
return $this->getContext()->getSkin();
}
*
* @return Language
*/
- public final function getLanguage() {
+ final public function getLanguage() {
return $this->getContext()->getLanguage();
}
* @deprecated 1.19 Use getLanguage instead
* @return Language
*/
- public final function getLang() {
+ final public function getLang() {
wfDeprecated( __METHOD__, '1.19' );
return $this->getLanguage();
}
* Shortcut to get the Title object from the page
* @return Title
*/
- public final function getTitle() {
+ final public function getTitle() {
return $this->page->getTitle();
}
*
* @return Message object
*/
- public final function msg() {
+ final public function msg() {
$params = func_get_args();
return call_user_func_array( array( $this->getContext(), 'msg' ), $params );
}
* Return the name of the action this object responds to
* @return String lowercase
*/
- public abstract function getName();
+ abstract public function getName();
/**
* Get the permission required to perform this action. Often, but not always,
* $this->getOutput(), etc.
* @throws ErrorPageError
*/
- public abstract function show();
+ abstract public function show();
/**
* Execute the action in a silent fashion: do not display anything or release any errors.
* @return Bool whether execution was successful
*/
- public abstract function execute();
+ abstract public function execute();
}
/**
* Get an HTMLForm descriptor array
* @return Array
*/
- protected abstract function getFormFields();
+ abstract protected function getFormFields();
/**
* Add pre- or post-text to the form
$this->getRequest()->getQueryValues(),
array( 'action' => null, 'title' => null )
);
- $form->addHiddenField( 'redirectparams', wfArrayToCGI( $params ) );
+ $form->addHiddenField( 'redirectparams', wfArrayToCgi( $params ) );
$form->addPreText( $this->preText() );
$form->addPostText( $this->postText() );
* @param $data Array
* @return Bool|Array true for success, false for didn't-try, array of errors on failure
*/
- public abstract function onSubmit( $data );
+ abstract public function onSubmit( $data );
/**
* Do something exciting on successful processing of the form. This might be to show
* a confirmation message (watch, rollback, etc) or to redirect somewhere else (edit,
* protect, etc).
*/
- public abstract function onSuccess();
+ abstract public function onSuccess();
/**
* The basic pattern for actions is to display some sort of HTMLForm UI, maybe with
* @return String|null will be added to the HTMLForm if present, or just added to the
* output if not. Return null to not add anything
*/
- public abstract function onView();
+ abstract public function onView();
/**
* We don't want an HTMLForm
'ExternalStore' => 'includes/externalstore/ExternalStore.php',
'ExternalStoreDB' => 'includes/externalstore/ExternalStoreDB.php',
'ExternalStoreHttp' => 'includes/externalstore/ExternalStoreHttp.php',
+ 'ExternalStoreMedium' => 'includes/externalstore/ExternalStoreMedium.php',
'ExternalUser' => 'includes/ExternalUser.php',
'FakeTitle' => 'includes/FakeTitle.php',
'Fallback' => 'includes/Fallback.php',
# includes/site
'MediaWikiSite' => 'includes/site/MediaWikiSite.php',
'Site' => 'includes/site/Site.php',
- 'SiteArray' => 'includes/site/SiteArray.php',
+ 'SiteObject' => 'includes/site/Site.php',
+ 'SiteArray' => 'includes/site/SiteList.php',
'SiteList' => 'includes/site/SiteList.php',
- 'SiteObject' => 'includes/site/SiteObject.php',
- 'Sites' => 'includes/site/Sites.php',
- 'SitesTable' => 'includes/site/SitesTable.php',
+ 'SiteSQLStore' => 'includes/site/SiteSQLStore.php',
+ 'Sites' => 'includes/site/SiteSQLStore.php',
+ 'SiteStore' => 'includes/site/SiteStore.php',
# includes/specials
'ActiveUsersPager' => 'includes/specials/SpecialActiveusers.php',
$timestamp = 0, $auto = 0, $expiry = '', $anonOnly = 0, $createAccount = 0, $enableAutoblock = 0,
$hideName = 0, $blockEmail = 0, $allowUsertalk = 0, $byText = '' )
{
- if( $timestamp === 0 ){
+ if( $timestamp === 0 ) {
$timestamp = wfTimestampNow();
}
*/
public function load( $address = '', $user = 0 ) {
wfDeprecated( __METHOD__, '1.18' );
- if( $user ){
+ if( $user ) {
$username = User::whoIs( $user );
$block = self::newFromTarget( $username, $address );
} else {
$block = self::newFromTarget( null, $address );
}
- if( $block instanceof Block ){
+ if( $block instanceof Block ) {
# This is mildly evil, but hey, it's B/C :D
- foreach( $block as $variable => $value ){
+ foreach( $block as $variable => $value ) {
$this->$variable = $value;
}
return true;
protected function newLoad( $vagueTarget = null ) {
$db = wfGetDB( $this->mFromMaster ? DB_MASTER : DB_SLAVE );
- if( $this->type !== null ){
+ if( $this->type !== null ) {
$conds = array(
'ipb_address' => array( (string)$this->target ),
);
# Be aware that the != '' check is explicit, since empty values will be
# passed by some callers (bug 29116)
- if( $vagueTarget != ''){
+ if( $vagueTarget != '' ) {
list( $target, $type ) = self::parseTarget( $vagueTarget );
switch( $type ) {
case self::TYPE_USER:
# This is begging for $this = $bestBlock, but that's not allowed in PHP :(
$bestBlockPreventsEdit = null;
- foreach( $res as $row ){
+ foreach( $res as $row ) {
$block = self::newFromRow( $row );
# Don't use expired blocks
- if( $block->deleteIfExpired() ){
+ if( $block->deleteIfExpired() ) {
continue;
}
# Don't use anon only blocks on users
- if( $this->type == self::TYPE_USER && !$block->isHardblock() ){
+ if( $this->type == self::TYPE_USER && !$block->isHardblock() ) {
continue;
}
- if( $block->getType() == self::TYPE_RANGE ){
+ if( $block->getType() == self::TYPE_RANGE ) {
# This is the number of bits that are allowed to vary in the block, give
# or take some floating point errors
$end = wfBaseconvert( $block->getRangeEnd(), 16, 10 );
$score = $block->getType();
}
- if( $score < $bestBlockScore ){
+ if( $score < $bestBlockScore ) {
$bestBlockScore = $score;
$bestRow = $row;
$bestBlockPreventsEdit = $block->prevents( 'edit' );
}
}
- if( $bestRow !== null ){
+ if( $bestRow !== null ) {
$this->initFromRow( $bestRow );
$this->prevents( 'edit', $bestBlockPreventsEdit );
return true;
protected static function getIpFragment( $hex ) {
global $wgBlockCIDRLimit;
if ( substr( $hex, 0, 3 ) == 'v6-' ) {
- return 'v6-' . substr( substr( $hex, 3 ), 0, floor( $wgBlockCIDRLimit['IPv6'] / 4 ) );
+ return 'v6-' . substr( substr( $hex, 3 ), 0, floor( $wgBlockCIDRLimit['IPv6'] / 4 ) );
} else {
- return substr( $hex, 0, floor( $wgBlockCIDRLimit['IPv4'] / 4 ) );
+ return substr( $hex, 0, floor( $wgBlockCIDRLimit['IPv4'] / 4 ) );
}
}
* @return Array
*/
protected function getDatabaseArray( $db = null ) {
- if( !$db ){
+ if( !$db ) {
$db = wfGetDB( DB_SLAVE );
}
$expiry = $db->encodeExpiry( $this->mExpiry );
$options['LIMIT'] = 1;
$res = $dbr->select( 'recentchanges', array( 'rc_ip' ), $conds,
- __METHOD__ , $options );
+ __METHOD__, $options );
if ( !$res->numRows() ) {
# No results, don't autoblock anything
public static function newFromTarget( $specificTarget, $vagueTarget = null, $fromMaster = false ) {
list( $target, $type ) = self::parseTarget( $specificTarget );
- if( $type == Block::TYPE_ID || $type == Block::TYPE_AUTO ){
+ if( $type == Block::TYPE_ID || $type == Block::TYPE_AUTO ) {
return Block::newFromID( $target );
- } elseif( $target === null && $vagueTarget == '' ){
+ } elseif( $target === null && $vagueTarget == '' ) {
# We're not going to find anything useful here
# Be aware that the == '' check is explicit, since empty values will be
# passed by some callers (bug 29116)
$block = new Block();
$block->fromMaster( $fromMaster );
- if( $type !== null ){
+ if( $type !== null ) {
$block->setTarget( $target );
}
- if( $block->newLoad( $vagueTarget ) ){
+ if( $block->newLoad( $vagueTarget ) ) {
return $block;
}
}
*/
public static function parseTarget( $target ) {
# We may have been through this before
- if( $target instanceof User ){
- if( IP::isValid( $target->getName() ) ){
+ if( $target instanceof User ) {
+ if( IP::isValid( $target->getName() ) ) {
return array( $target, self::TYPE_IP );
} else {
return array( $target, self::TYPE_USER );
}
- } elseif( $target === null ){
+ } elseif( $target === null ) {
return array( null, null );
}
# Consider the possibility that this is not a username at all
# but actually an old subpage (bug #29797)
- if( strpos( $target, '/' ) !== false ){
+ if( strpos( $target, '/' ) !== false ) {
# An old subpage, drill down to the user behind it
$parts = explode( '/', $target );
$target = $parts[0];
*/
protected function recentChangesFlags( $flags, $nothing = ' ' ) {
$f = '';
- foreach( array( 'newpage', 'minor', 'bot', 'unpatrolled' ) as $flag ){
+ foreach( array( 'newpage', 'minor', 'bot', 'unpatrolled' ) as $flag ) {
$f .= isset( $flags[$flag] ) && $flags[$flag]
? self::flag( $flag )
: $nothing;
array( 'class' => 'mw-changeslist-title' ),
$params
);
- if( $this->isDeleted($rc,Revision::DELETED_TEXT) ) {
+ if( $this->isDeleted( $rc, Revision::DELETED_TEXT ) ) {
$articlelink = '<span class="history-deleted">' . $articlelink . '</span>';
}
# To allow for boldening pages watched by this user
$this->rc_cache['@@' . ($this->rcMoveIndex++)] = array($rc);
} else {
# Logs are grouped by type
- if( $type == RC_LOG ){
+ if( $type == RC_LOG ) {
$secureName = SpecialPage::getTitleFor( 'Log', $logType )->getPrefixedDBkey();
}
if( !isset( $this->rc_cache[$secureName] ) ) {
}
}
// The absolute filename itself will differ from install to install so don't leave it out
- $state .= realpath( $file );
+ if( ( $path = realpath( $file ) ) !== false ) {
+ $state .= $path;
+ } else {
+ $state .= $file;
+ }
$state .= implode( '', $stat );
} else {
// The fact that the file isn't there is worth at least a
* - 'name' : A unique name for the lock manager
* - 'class' : The lock manger class to use
* Additional parameters are specific to the class used.
+ * These settings should be global to all wikis.
*/
$wgLockManagers = array();
NS_TALK => true,
NS_USER => true,
NS_USER_TALK => true,
+ NS_PROJECT => true,
NS_PROJECT_TALK => true,
NS_FILE_TALK => true,
NS_MEDIAWIKI => true,
NS_MEDIAWIKI_TALK => true,
NS_TEMPLATE_TALK => true,
+ NS_HELP => true,
NS_HELP_TALK => true,
NS_CATEGORY_TALK => true
);
*/
$wgWhitelistRead = false;
+/**
+ * Pages anonymous user may see, set as an array of regular expressions.
+ *
+ * This function will match the regexp against the title name, which
+ * is without underscore.
+ *
+ * @par Example:
+ * To whitelist [[Main Page]]:
+ * @code
+ * $wgWhitelistReadRegexp = array( "/Main Page/" );
+ * @endcode
+ *
+ * @note Unless ^ and/or $ is specified, a regular expression might match
+ * pages not intended to be whitelisted. The above example will also
+ * whitelist a page named 'Security Main Page'.
+ *
+ * @par Example:
+ * To allow reading any page starting with 'User' regardless of the case:
+ * @code
+ * $wgWhitelistReadRegexp = array( "@^UsEr.*@i" );
+ * @endcode
+ * Will allow both [[User is banned]] and [[User:JohnDoe]]
+ *
+ * @note This will only work if $wgGroupPermissions['*']['read'] is false --
+ * see below. Otherwise, ALL pages are accessible, regardless of this setting.
+ */
+$wgWhitelistReadRegexp = false;
+
/**
* Should editors be required to have a validated e-mail
* address before being allowed to edit?
$this->isConflict = false;
wfDebug( __METHOD__ . ": conflict suppressed; new section\n" );
}
- } elseif ( $this->section == '' && Revision::userWasLastToEdit( DB_MASTER, $this->mTitle->getArticleID(),
+ } elseif ( $this->section == '' && Revision::userWasLastToEdit( DB_MASTER, $this->mTitle->getArticleID(),
$wgUser->getId(), $this->edittime ) ) {
# Suppress edit conflict with self, except for section edits where merging is required.
wfDebug( __METHOD__ . ": Suppressing edit conflict, same user.\n" );
* @return bool
* @deprecated since 1.21, use mergeChangesIntoContent() instead
*/
- function mergeChangesInto( &$editText ){
+ function mergeChangesInto( &$editText ) {
ContentHandler::deprecated( __METHOD__, "1.21" );
$editContent = $this->toEditContent( $editText );
*
* @return bool
*/
- private function mergeChangesIntoContent( &$editContent ){
+ private function mergeChangesIntoContent( &$editContent ) {
wfProfileIn( __METHOD__ );
$db = wfGetDB( DB_MASTER );
global $wgOut, $wgLang;
$this->textbox2 = $this->textbox1;
- if( is_array( $match ) ){
+ if( is_array( $match ) ) {
$match = $wgLang->listToText( $match );
}
$wgOut->prepareErrorPage( wfMessage( 'spamprotectiontitle' ) );
$this->msg = $msg;
$this->params = $params;
- if( $msg instanceof Message ){
+ if( $msg instanceof Message ) {
parent::__construct( $msg );
} else {
parent::__construct( wfMessage( $msg )->text() );
* @ingroup Exception
*/
class ReadOnlyError extends ErrorPageError {
- public function __construct(){
+ public function __construct() {
parent::__construct(
'readonly',
'readonlytext',
* @ingroup Exception
*/
class ThrottledError extends ErrorPageError {
- public function __construct(){
+ public function __construct() {
parent::__construct(
'actionthrottled',
'actionthrottledtext'
);
}
- public function report(){
+ public function report() {
global $wgOut;
$wgOut->setStatusCode( 503 );
parent::report();
* @ingroup Exception
*/
class UserBlockedError extends ErrorPageError {
- public function __construct( Block $block ){
+ public function __construct( Block $block ) {
global $wgLang, $wgRequest;
$blocker = $block->getBlocker();
* @param $content String|Message: content of the message
* @param $header String|Message: content of the header (\<title\> and \<h1\>)
*/
- public function __construct( $httpCode, $content, $header = null ){
+ public function __construct( $httpCode, $content, $header = null ) {
parent::__construct( $content );
$this->httpCode = (int)$httpCode;
$this->header = $header;
$this->content = $content;
}
+ /**
+ * Returns the HTTP status code supplied to the constructor.
+ *
+ * @return int
+ */
+ public function getStatusCode() {
+ $this->httpCode;
+ }
+
+ /**
+ * Report the HTTP error.
+ * Sends the appropriate HTTP status code and outputs an
+ * HTML page with an error message.
+ */
public function report() {
$httpMessage = HttpStatus::getMessage( $this->httpCode );
- header( "Status: {$this->httpCode} {$httpMessage}" );
+ header( "Status: {$this->httpCode} {$httpMessage}", true, $this->httpCode );
header( 'Content-type: text/html; charset=utf-8' );
+ print $this->getHTML();
+ }
+
+ /**
+ * Returns HTML for reporting the HTTP error.
+ * This will be a minimal but complete HTML document.
+ *
+ * @return string HTML
+ */
+ public function getHTML() {
if ( $this->header === null ) {
- $header = $httpMessage;
+ $header = HttpStatus::getMessage( $this->httpCode );
} elseif ( $this->header instanceof Message ) {
$header = $this->header->escaped();
} else {
$content = htmlspecialchars( $this->content );
}
- print "<!DOCTYPE html>\n".
+ return "<!DOCTYPE html>\n".
"<html><head><title>$header</title></head>\n" .
"<body><h1>$header</h1><p>$content</p></body></html>\n";
}
$join['revision'] = array( 'INNER JOIN', 'page_id=rev_page' );
} elseif ( $this->history & WikiExporter::CURRENT ) {
# Latest revision dumps...
- if ( $this->list_authors && $cond != '' ) { // List authors, if so desired
+ if ( $this->list_authors && $cond != '' ) { // List authors, if so desired
$this->do_list_authors( $cond );
}
$join['revision'] = array( 'INNER JOIN', 'page_id=rev_page AND page_latest=rev_id' );
'URL' => $image->getCanonicalURL()
)
);
- } else{
+ } else {
$urls = array();
}
} else {
* @param $name string
* @return bool Success?
*/
- protected abstract function initFromName( $name );
+ abstract protected function initFromName( $name );
/**
* Given an id, which was at some previous point in history returned by
* @param $id string
* @return bool Success?
*/
- protected abstract function initFromId( $id );
+ abstract protected function initFromId( $id );
/**
* Try to magically initialize the user from cookies or similar information
*
* @param $id int user_id
*/
- public final function linkToLocal( $id ) {
+ final public function linkToLocal( $id ) {
$dbw = wfGetDB( DB_MASTER );
$dbw->replace( 'external_user',
array( 'eu_local_id', 'eu_external_id' ),
* a local user.
* @return Mixed User if the account is linked, Null otherwise.
*/
- public final function getLocalUser(){
+ final public function getLocalUser() {
$dbr = wfGetDB( DB_SLAVE );
$row = $dbr->selectRow(
'external_user',
// Don't share DB, storage, or memcached connections
wfGetLBFactory()->destroyInstance();
FileBackendGroup::destroySingleton();
- LockManagerGroup::destroySingleton();
+ LockManagerGroup::destroySingletons();
ObjectCache::clear();
$wgMemc = null;
}
* @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 ) ) {
parent::execute();
if ( is_array( $this->postData ) ) {
- $this->postData = wfArrayToCGI( $this->postData );
+ $this->postData = wfArrayToCgi( $this->postData );
}
if ( $this->parsedUrl['scheme'] != 'http' &&
$height_orig = $this->displayImg->getHeight( $page );
$height = $height_orig;
- $longDesc = wfMessage( 'parentheses', $this->displayImg->getLongDesc() )->text();
+ $filename = wfEscapeWikiText( $this->displayImg->getName() );
+ $linktext = $filename;
wfRunHooks( 'ImageOpenShowImageInlineBefore', array( &$this, &$out ) );
# Note that $height <= $maxHeight now, but might not be identical
# because of rounding.
}
- $msgbig = wfMessage( 'show-big-image' )->escaped();
+ $linktext = wfMessage( 'show-big-image' )->escaped();
if ( $this->displayImg->getRepo()->canTransformVia404() ) {
$thumbSizes = $wgImageLimits;
} else {
params( count( $otherSizes ) )->parse()
);
}
- } elseif ( $width == 0 && $height == 0 ){
+ } elseif ( $width == 0 && $height == 0 ) {
# Some sort of audio file that doesn't have dimensions
# Don't output a no hi res message for such a file
$msgsmall = '';
$params['height'] = $height;
$thumbnail = $this->displayImg->transform( $params );
- $showLink = true;
$anchorclose = Html::rawElement( 'div', array( 'class' => 'mw-filepage-resolutioninfo' ), $msgsmall );
$isMulti = $this->displayImg->isMultipage() && $this->displayImg->pageCount() > 1;
"<hr />$thumb1\n$thumb2<br style=\"clear: both\" /></div></td></tr></table>"
);
}
- } else {
+ } elseif ( $this->displayImg->isSafeFile() ) {
# if direct link is allowed but it's not a renderable image, show an icon.
- if ( $this->displayImg->isSafeFile() ) {
- $icon = $this->displayImg->iconThumb();
-
- $out->addHTML( '<div class="fullImageLink" id="file">' .
- $icon->toHtml( array( 'file-link' => true ) ) .
- "</div>\n" );
- }
+ $icon = $this->displayImg->iconThumb();
- $showLink = true;
+ $out->addHTML( '<div class="fullImageLink" id="file">' .
+ $icon->toHtml( array( 'file-link' => true ) ) .
+ "</div>\n" );
}
- if ( $showLink ) {
- $filename = wfEscapeWikiText( $this->displayImg->getName() );
- $linktext = $filename;
- if ( isset( $msgbig ) ) {
- $linktext = wfEscapeWikiText( $msgbig );
- }
- $medialink = "[[Media:$filename|$linktext]]";
-
- if ( !$this->displayImg->isSafeFile() ) {
- $warning = wfMessage( 'mediawarning' )->plain();
- // dirmark is needed here to separate the file name, which
- // most likely ends in Latin characters, from the description,
- // which may begin with the file type. In RTL environment
- // this will get messy.
- // The dirmark, however, must not be immediately adjacent
- // to the filename, because it can get copied with it.
- // See bug 25277.
- $out->addWikiText( <<<EOT
+ $longDesc = wfMessage( 'parentheses', $this->displayImg->getLongDesc() )->text();
+
+ $medialink = "[[Media:$filename|$linktext]]";
+
+ if ( !$this->displayImg->isSafeFile() ) {
+ $warning = wfMessage( 'mediawarning' )->plain();
+ // dirmark is needed here to separate the file name, which
+ // most likely ends in Latin characters, from the description,
+ // which may begin with the file type. In RTL environment
+ // this will get messy.
+ // The dirmark, however, must not be immediately adjacent
+ // to the filename, because it can get copied with it.
+ // See bug 25277.
+ $out->addWikiText( <<<EOT
<div class="fullMedia"><span class="dangerousLink">{$medialink}</span> $dirmark<span class="fileInfo">$longDesc</span></div>
<div class="mediaWarning">$warning</div>
EOT
- );
- } else {
- $out->addWikiText( <<<EOT
+ );
+ } else {
+ $out->addWikiText( <<<EOT
<div class="fullMedia">{$medialink} {$dirmark}<span class="fileInfo">$longDesc</span>
</div>
EOT
- );
- }
+ );
}
// Add cannot animate thumbnail warning
protected function getThumbForLine( $file ) {
$lang = $this->getLanguage();
$user = $this->getUser();
- if ( $file->allowInlineDisplay() && $file->userCan( File::DELETED_FILE,$user )
+ if ( $file->allowInlineDisplay() && $file->userCan( File::DELETED_FILE, $user )
&& !$file->isDeleted( File::DELETED_FILE ) )
{
$params = array(
return Status::newFatal( 'importnofile' );
}
if( !empty( $upload['error'] ) ) {
- switch($upload['error']){
+ switch( $upload['error'] ) {
case 1: # The uploaded file exceeds the upload_max_filesize directive in php.ini.
return Status::newFatal( 'importuploaderrorsize' );
case 2: # The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.
function replaceMultiple( $magicarr, $subject, &$result ) {
$search = array();
$replace = array();
- foreach( $magicarr as $id => $replacement ){
+ foreach( $magicarr as $id => $replacement ) {
$mw = MagicWord::get( $id );
$search[] = $mw->getRegex();
$replace[] = $replacement;
*/
public function content() {
if ( !$this->content ) {
- $this->content = new MessageContent( $this->key );
+ $this->content = new MessageContent( $this );
}
return $this->content;
if( preg_match( '/^<p>(.*)\n?<\/p>\n?$/sU', $string, $m ) ) {
$string = $m[1];
}
- } elseif( $this->format === 'block-parse' ){
+ } elseif( $this->format === 'block-parse' ) {
$string = $this->parseText( $string );
- } elseif( $this->format === 'text' ){
+ } elseif( $this->format === 'text' ) {
$string = $this->transformText( $string );
- } elseif( $this->format === 'escaped' ){
+ } elseif( $this->format === 'escaped' ) {
$string = $this->transformText( $string );
$string = htmlspecialchars( $string, ENT_QUOTES, 'UTF-8', false );
}
$this->mArticle = $article;
}
- public abstract function show();
+ abstract public function show();
protected function setup() {
global $wgOut, $wgRequest;
$httpaccept = isset( $_SERVER['HTTP_ACCEPT'] ) ? $_SERVER['HTTP_ACCEPT'] : null;
$rdftype = wfNegotiateType( wfAcceptToPrefs( $httpaccept ), wfAcceptToPrefs( self::RDF_TYPE_PREFS ) );
- if( !$rdftype ){
+ if( !$rdftype ) {
throw new HttpError( 406, wfMessage( 'notacceptable' ) );
}
$lastEditor = User::newFromId( $this->mArticle->getUser() );
$this->person( 'creator', $lastEditor );
- foreach( $this->mArticle->getContributors() as $user ){
+ foreach( $this->mArticle->getContributors() as $user ) {
$this->person( 'contributor', $user );
}
$nt = Title::newFromText( $page );
}
- if( !$nt || $nt->getArticleID() == 0 ){
+ if( !$nt || $nt->getArticleID() == 0 ) {
$this->element( $name, $str );
} else {
$this->page( $name, $nt );
}
protected function person( $name, User $user ) {
- if( $user->isAnon() ){
+ if( $user->isAnon() ) {
$this->element( $name, wfMessage( 'anonymous' )->numParams( 1 )->text() );
} else {
$real = $user->getRealName();
global $wgRightsPage, $wgRightsUrl, $wgRightsText;
if( $wgRightsPage && ( $nt = Title::newFromText( $wgRightsPage ) )
- && ($nt->getArticleID() != 0)) {
- $this->page('rights', $nt);
- } elseif( $wgRightsUrl ){
- $this->url('rights', $wgRightsUrl);
- } elseif( $wgRightsText ){
+ && ( $nt->getArticleID() != 0 ) ) {
+ $this->page( 'rights', $nt );
+ } elseif( $wgRightsUrl ) {
+ $this->url( 'rights', $wgRightsUrl );
+ } elseif( $wgRightsText ) {
$this->element( 'rights', $wgRightsText );
}
}
protected function getTerms( $url ) {
global $wgLicenseTerms;
- if( $wgLicenseTerms ){
+ if( $wgLicenseTerms ) {
return $wgLicenseTerms;
} else {
$known = $this->getKnownLicenses();
return $knownLicenses;
}
}
-
$this->mMediaTypes[$mtype][] = $mime;
}
- if ( sizeof( $m ) > 1 ) {
+ if ( count( $m ) > 1 ) {
$main = $m[0];
- for ( $i=1; $i<sizeof($m); $i += 1 ) {
+ for ( $i=1; $i<count($m); $i += 1 ) {
$mime = $m[$i];
$this->mMimeTypeAliases[$mime] = $main;
}
protected function filterModules( $modules, $position = null, $type = ResourceLoaderModule::TYPE_COMBINED ) {
$resourceLoader = $this->getResourceLoader();
$filteredModules = array();
- foreach( $modules as $val ){
+ foreach( $modules as $val ) {
$module = $resourceLoader->getModule( $val );
if( $module instanceof ResourceLoaderModule
&& $module->getOrigin() <= $this->getAllowedModules( $type )
* @return Array of module names
*/
public function getModuleStyles( $filter = false, $position = null ) {
- return $this->getModules( $filter, $position, 'mModuleStyles' );
+ return $this->getModules( $filter, $position, 'mModuleStyles' );
}
/**
* @return Int ResourceLoaderModule ORIGIN_ class constant
*/
public function getAllowedModules( $type ) {
- if( $type == ResourceLoaderModule::TYPE_COMBINED ){
+ if( $type == ResourceLoaderModule::TYPE_COMBINED ) {
return min( array_values( $this->mAllowedModules ) );
} else {
return isset( $this->mAllowedModules[$type] )
$this->prepareErrorPage( $title );
- if ( $msg instanceof Message ){
+ if ( $msg instanceof Message ) {
$this->addHTML( $msg->parseAsBlock() );
} else {
$this->addWikiMsgArray( $msg, $params );
unset( $returntoquery['title'] );
unset( $returntoquery['returnto'] );
unset( $returntoquery['returntoquery'] );
- $query['returntoquery'] = wfArrayToCGI( $returntoquery );
+ $query['returntoquery'] = wfArrayToCgi( $returntoquery );
}
}
$loginLink = Linker::linkKnown(
'mediawiki.page.startup',
'mediawiki.page.ready',
) );
- if ( $wgIncludeLegacyJavaScript ){
+ if ( $wgIncludeLegacyJavaScript ) {
$this->addModules( 'mediawiki.legacy.wikibits' );
}
}
}
- if( $group == 'noscript' ){
+ if( $group == 'noscript' ) {
$links .= Html::rawElement( 'noscript', array(), $link ) . "\n";
} else {
$links .= $link . "\n";
if ( $wgUseSiteCss ) {
$moduleStyles[] = 'site';
$moduleStyles[] = 'noscript';
- if( $this->getUser()->isLoggedIn() ){
+ if( $this->getUser()->isLoggedIn() ) {
$moduleStyles[] = 'user.groups';
}
}
* @note Since we can't rely on anything, the minimum PHP versions and MW current
* version are hardcoded here
*/
-function wfPHPVersionError( $type ){
+function wfPHPVersionError( $type ) {
$mwVersion = '1.21';
$phpVersion = PHP_VERSION;
$message = "MediaWiki $mwVersion requires at least PHP version 5.3.2, you are using PHP $phpVersion.";
# The pair is either $index => $limit, in which case the $value
# will be numeric, or $limit => $text, in which case the $value
# will be a string.
- if( is_int( $value ) ){
+ if( is_int( $value ) ) {
$limit = $value;
$text = $this->getLanguage()->formatNum( $limit );
} else {
# via $wgHiddenPrefs, we don't want to destroy that setting in case the preference
# is subsequently re-enabled
# TODO: maintenance script to actually delete these
- foreach( $wgHiddenPrefs as $pref ){
+ foreach( $wgHiddenPrefs as $pref ) {
# If the user has not set a non-default value here, the default will be returned
# and subsequently discarded
$formData[$pref] = $user->getOption( $pref, null, true );
$extratags = array_flip( $extratags );
$removetags = array_flip( $removetags );
$htmlpairs = array_merge( $extratags, $htmlpairsStatic );
- $htmlelements = array_diff_key( array_merge( $extratags, $htmlelementsStatic ) , $removetags );
+ $htmlelements = array_diff_key( array_merge( $extratags, $htmlelementsStatic ), $removetags );
# Remove HTML comments
$text = Sanitizer::removeHTMLcomments( $text );
$id = str_replace( array_keys( $replace ), array_values( $replace ), $id );
if ( !preg_match( '/^[a-zA-Z]/', $id )
- && !in_array( 'noninitial', $options ) ) {
+ && !in_array( 'noninitial', $options ) ) {
// Initial character must be a letter!
$id = "x$id";
}
if ( $wgArticlePath === false ) {
if ( $wgUsePathInfo ) {
- $wgArticlePath = "$wgScript/$1";
+ $wgArticlePath = "$wgScript/$1";
} else {
- $wgArticlePath = "$wgScript?title=$1";
+ $wgArticlePath = "$wgScript?title=$1";
}
}
}
# $wgDisabledActions is deprecated as of 1.18
-foreach( $wgDisabledActions as $action ){
+foreach( $wgDisabledActions as $action ) {
$wgActions[$action] = false;
}
$wgLogActionsHandlers['newusers/newusers'] = 'NewUsersLogFormatter';
$wgLogActionsHandlers['newusers/create'] = 'NewUsersLogFormatter';
$wgLogActionsHandlers['newusers/create2'] = 'NewUsersLogFormatter';
+ $wgLogActionsHandlers['newusers/byemail'] = 'NewUsersLogFormatter';
$wgLogActionsHandlers['newusers/autocreate'] = 'NewUsersLogFormatter';
}
public function extractGlobalSetting( $setting, $wiki, $params ) {
$value = $this->getSetting( $setting, $wiki, $params );
if ( !is_null( $value ) ) {
- if (substr($setting,0,1) == '+' && is_array($value)) {
- $setting = substr($setting,1);
- if ( is_array($GLOBALS[$setting]) ) {
+ if ( substr( $setting, 0, 1 ) == '+' && is_array( $value ) ) {
+ $setting = substr( $setting, 1 );
+ if ( is_array( $GLOBALS[$setting] ) ) {
$GLOBALS[$setting] = self::arrayMerge( $GLOBALS[$setting], $value );
} else {
$GLOBALS[$setting] = $value;
return $default;
}
- foreach( $default as $name => $def ){
+ foreach( $default as $name => $def ) {
if( !isset( $ret[$name] ) || ( is_array( $default[$name] ) && !is_array( $ret[$name] ) ) ) {
$ret[$name] = $default[$name];
}
$ret['params'] += $params;
// Automatically fill that ones if needed
- if( !isset( $ret['params']['lang'] ) && !is_null( $ret['lang'] ) ){
+ if( !isset( $ret['params']['lang'] ) && !is_null( $ret['lang'] ) ) {
$ret['params']['lang'] = $ret['lang'];
}
if( !isset( $ret['params']['site'] ) && !is_null( $ret['suffix'] ) ) {
$lang = $title->getPageLanguage();
$variants = $lang->getVariants();
- if ( !$wgDisableLangConversion && sizeof( $variants ) > 1
+ if ( !$wgDisableLangConversion && count( $variants ) > 1
&& !$title->isSpecialPage() ) {
foreach ( $variants as $code ) {
$varname = $lang->getVariantname( $code );
unset( $query['returnto'] );
unset( $query['returntoquery'] );
}
- $this->thisquery = wfArrayToCGI( $query );
+ $this->thisquery = wfArrayToCgi( $query );
$this->loggedin = $user->isLoggedIn();
$this->username = $user->getName();
$language_urls = array();
if ( !$wgHideInterlanguageLinks ) {
- foreach( $out->getLanguageLinks() as $l ) {
- $tmp = explode( ':', $l, 2 );
- $class = 'interwiki-' . $tmp[0];
- unset( $tmp );
- $nt = Title::newFromText( $l );
- if ( $nt ) {
- $ilLangName = Language::fetchLanguageName( $nt->getInterwiki() );
+ foreach( $out->getLanguageLinks() as $languageLinkText ) {
+ $languageLinkParts = explode( ':', $languageLinkText, 2 );
+ $class = 'interwiki-' . $languageLinkParts[0];
+ unset( $languageLinkParts );
+ $languageLinkTitle = Title::newFromText( $languageLinkText );
+ if ( $languageLinkTitle ) {
+ $ilInterwikiCode = $languageLinkTitle->getInterwiki();
+ $ilLangName = Language::fetchLanguageName( $ilInterwikiCode );
+
if ( strval( $ilLangName ) === '' ) {
- $ilLangName = $l;
+ $ilLangName = $languageLinkText;
} else {
$ilLangName = $this->formatLanguageName( $ilLangName );
}
+
$language_urls[] = array(
- 'href' => $nt->getFullURL(),
+ 'href' => $languageLinkTitle->getFullURL(),
'text' => $ilLangName,
- 'title' => $nt->getText(),
+ 'title' => $languageLinkTitle->getText(),
'class' => $class,
- 'lang' => $nt->getInterwiki(),
- 'hreflang' => $nt->getInterwiki(),
+ 'lang' => $ilInterwikiCode,
+ 'hreflang' => $ilInterwikiCode
);
}
}
$a['wpStickHTTPS'] = true;
}
- $returnto = wfArrayToCGI( $a );
+ $returnto = wfArrayToCgi( $a );
if( $this->loggedin ) {
$personal_urls['userpage'] = array(
'text' => $this->username,
// Gets preferred variant (note that user preference is
// only possible for wiki content language variant)
$preferred = $pageLang->getPreferredVariant();
+ if ( Action::getActionName( $this ) === 'view' ) {
+ $params = $request->getQueryValues();
+ unset( $params['title'] );
+ } else {
+ $params = array();
+ }
// Loops over each variant
foreach( $variants as $code ) {
// Gets variant name from language code
$content_navigation['variants'][] = array(
'class' => ( $code == $preferred ) ? 'selected' : false,
'text' => $varname,
- 'href' => $title->getLocalURL( array( 'variant' => $code ) ),
+ 'href' => $title->getLocalURL( array( 'variant' => $code ) + $params ),
'lang' => $code,
'hreflang' => $code
);
*
* @param $subPage string|null
*/
- public final function run( $subPage ) {
+ final public function run( $subPage ) {
/**
* Gets called before @see SpecialPage::execute.
*
foreach ( $wgFeedClasses as $format => $class ) {
$theseParams = $params + array( 'feedformat' => $format );
- $url = $feedTemplate . wfArrayToCGI( $theseParams );
+ $url = $feedTemplate . wfArrayToCgi( $theseParams );
$this->getOutput()->addFeedLink( $format, $url );
}
}
* Get an HTMLForm descriptor array
* @return Array
*/
- protected abstract function getFormFields();
+ abstract protected function getFormFields();
/**
* Add pre- or post-text to the form
// Retain query parameters (uselang etc)
$params = array_diff_key(
$this->getRequest()->getQueryValues(), array( 'title' => null ) );
- $form->addHiddenField( 'redirectparams', wfArrayToCGI( $params ) );
+ $form->addHiddenField( 'redirectparams', wfArrayToCgi( $params ) );
$form->addPreText( $this->preText() );
$form->addPostText( $this->postText() );
* @param $data Array
* @return Bool|Array true for success, false for didn't-try, array of errors on failure
*/
- public abstract function onSubmit( array $data );
+ abstract public function onSubmit( array $data );
/**
* Do something exciting on successful processing of the form, most likely to show a
* confirmation message
*/
- public abstract function onSuccess();
+ abstract public function onSuccess();
/**
* Basic SpecialPage workflow: get a form, send it to the user; get some data back,
// Redirect to index.php with query parameters
} elseif ( $redirect === true ) {
global $wgScript;
- $url = $wgScript . '?' . wfArrayToCGI( $query );
+ $url = $wgScript . '?' . wfArrayToCgi( $query );
$this->getOutput()->redirect( $url );
return $redirect;
} else {
'Upload' => 'SpecialUpload',
'UploadStash' => 'SpecialUploadStash',
- // Wiki data and tools
+ // Data and tools
'Statistics' => 'SpecialStatistics',
'Allmessages' => 'SpecialAllmessages',
'Version' => 'SpecialVersion',
if ( $name != $page->getLocalName() && !$context->getRequest()->wasPosted() ) {
$query = $context->getRequest()->getQueryValues();
unset( $query['title'] );
- $query = wfArrayToCGI( $query );
+ $query = wfArrayToCgi( $query );
$title = $page->getTitle( $par );
$url = $title->getFullUrl( $query );
$context->getOutput()->redirect( $url );
if ( count( $lines ) < 2 ) {
return 'done';
}
- if ( $this->readState == 'status' ) {
+ if ( $this->readState == 'status' ) {
$this->processStatusLine( $lines[0] );
} else { // header
$this->processHeaderLine( $lines[0] );
* second argument named variant. This was deprecated in favor
* of passing an array of option with a "variant" key
* Once $query2 is removed for good, this helper can be dropped
- * andthe wfArrayToCGI moved to getLocalURL();
+ * andthe wfArrayToCgi moved to getLocalURL();
*
* @since 1.19 (r105919)
* @param $query
wfDeprecated( "Title::get{Canonical,Full,Link,Local} method called with a second parameter is deprecated. Add your parameter to an array passed as the first parameter.", "1.19" );
}
if ( is_array( $query ) ) {
- $query = wfArrayToCGI( $query );
+ $query = wfArrayToCgi( $query );
}
if ( $query2 ) {
if ( is_string( $query2 ) ) {
// $query2 is a string, we will consider this to be
// a deprecated $variant argument and add it to the query
- $query2 = wfArrayToCGI( array( 'variant' => $query2 ) );
+ $query2 = wfArrayToCgi( array( 'variant' => $query2 ) );
} else {
- $query2 = wfArrayToCGI( $query2 );
+ $query2 = wfArrayToCgi( $query2 );
}
// If we have $query content add a & to it first
if ( $query ) {
* @return Array list of errors
*/
private function checkReadPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
- global $wgWhitelistRead, $wgRevokePermissions;
+ global $wgWhitelistRead, $wgWhitelistReadRegexp, $wgRevokePermissions;
static $useShortcut = null;
# Initialize the $useShortcut boolean, to determine if we can skip quite a bit of code below
}
}
+ if( !$whitelisted && is_array( $wgWhitelistReadRegexp ) && !empty( $wgWhitelistReadRegexp ) ) {
+ $name = $this->getPrefixedText();
+ // Check for regex whitelisting
+ foreach ( $wgWhitelistReadRegexp as $listItem ) {
+ if ( preg_match( $listItem, $name ) ) {
+ $whitelisted = true;
+ break;
+ }
+ }
+ }
+
if ( !$whitelisted ) {
# If the title is not whitelisted, give extensions a chance to do so...
wfRunHooks( 'TitleReadWhitelist', array( $this, $user, &$whitelisted ) );
}
# Get the article text
$rev = Revision::newFromTitle( $nt, false, Revision::READ_LATEST );
- if( !is_object( $rev ) ){
+ if( !is_object( $rev ) ) {
return false;
}
$content = $rev->getContent();
* @return Bool
*/
public static function isIP( $name ) {
- return preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.(?:xxx|\d{1,3})$/',$name) || IP::isIPv6($name);
+ return preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.(?:xxx|\d{1,3})$/', $name ) || IP::isIPv6( $name );
}
/**
public function pingLimiter( $action = 'edit' ) {
# Call the 'PingLimiter' hook
$result = false;
- if( !wfRunHooks( 'PingLimiter', array( &$this, $action, $result ) ) ) {
+ if( !wfRunHooks( 'PingLimiter', array( &$this, $action, &$result ) ) ) {
return $result;
}
* @param $bFromSlave Bool Whether to check the slave database instead of the master
* @return Block|null
*/
- public function getBlock( $bFromSlave = true ){
+ public function getBlock( $bFromSlave = true ) {
$this->getBlockedStatus( $bFromSlave );
return $this->mBlock instanceof Block ? $this->mBlock : null;
}
# set it, and then it was disabled removing their ability to change it). But
# we don't want to erase the preferences in the database in case the preference
# is re-enabled again. So don't touch $mOptions, just override the returned value
- if( in_array( $oname, $wgHiddenPrefs ) && !$ignoreHidden ){
+ if( in_array( $oname, $wgHiddenPrefs ) && !$ignoreHidden ) {
return self::getDefaultOption( $oname );
}
# set it, and then it was disabled removing their ability to change it). But
# we don't want to erase the preferences in the database in case the preference
# is re-enabled again. So don't touch $mOptions, just override the returned value
- foreach( $wgHiddenPrefs as $pref ){
+ foreach( $wgHiddenPrefs as $pref ) {
$default = self::getDefaultOption( $pref );
- if( $default !== null ){
+ if( $default !== null ) {
$options[$pref] = $default;
}
}
*/
public function isAllowedAny( /*...*/ ) {
$permissions = func_get_args();
- foreach( $permissions as $permission ){
- if( $this->isAllowed( $permission ) ){
+ foreach( $permissions as $permission ) {
+ if( $this->isAllowed( $permission ) ) {
return true;
}
}
*/
public function isAllowedAll( /*...*/ ) {
$permissions = func_get_args();
- foreach( $permissions as $permission ){
- if( !$this->isAllowed( $permission ) ){
+ foreach( $permissions as $permission ) {
+ if( !$this->isAllowed( $permission ) ) {
return false;
}
}
return;
}
$id = $this->getId();
- if( $id != 0 ) {
+ if( $id != 0 ) {
$dbw = wfGetDB( DB_MASTER );
$dbw->update( 'watchlist',
array( /* SET */
wfDeprecated( __METHOD__, '1.17' );
global $wgUseDynamicDates, $wgRenderHashAppend, $wgLang, $wgContLang;
- if( $this->mHash ){
+ if( $this->mHash ) {
return $this->mHash;
}
*/
public function isBlockedFromCreateAccount() {
$this->getBlockedStatus();
- if( $this->mBlock && $this->mBlock->prevents( 'createaccount' ) ){
+ if( $this->mBlock && $this->mBlock->prevents( 'createaccount' ) ) {
return $this->mBlock;
}
* @return int|bool True if not $wgNewUserLog; otherwise ID of log item or 0 on failure
*/
public function addNewUserLogEntry( $action = false, $reason = '' ) {
- global $wgUser, $wgContLang, $wgNewUserLog;
+ global $wgUser, $wgNewUserLog;
if( empty( $wgNewUserLog ) ) {
return true; // disabled
}
- if ( $action === true || $action === 'byemail' ) {
- $action = 'create2';
- if ( $reason === '' ) {
- $reason = wfMessage( 'newuserlog-byemail' )->inContentLanguage()->text();
- } else {
- $reason = $wgContLang->commaList( array(
- $reason, wfMessage( 'newuserlog-byemail' )->inContentLanguage()->text() ) );
- }
+ if ( $action === true ) {
+ $action = 'byemail';
} elseif ( $action === false ) {
if ( $this->getName() == $wgUser->getName() ) {
$action = 'create';
}
}
- if ( $action === 'create' ) {
+ if ( $action === 'create' || $action === 'autocreate' ) {
$performer = $this;
} else {
$performer = $wgUser;
}
- $log = new LogPage( 'newusers' );
- return (int)$log->addEntry(
- $action,
- $this->getUserPage(),
- $reason,
- array( $this->getId() ),
- $performer
- );
+ $logEntry = new ManualLogEntry( 'newusers', $action );
+ $logEntry->setPerformer( $performer );
+ $logEntry->setTarget( $this->getUserPage() );
+ $logEntry->setComment( $reason );
+ $logEntry->setParameters( array(
+ '4::userid' => $this->getId(),
+ ) );
+ $logid = $logEntry->insert();
+
+ if ( $action !== 'autocreate' ) {
+ $logEntry->publish( $logid );
+ }
+
+ return (int)$logid;
}
/**
* Add an autocreate newuser log entry for this user
* Used by things like CentralAuth and perhaps other authplugins.
+ * Consider calling addNewUserLogEntry() directly instead.
*
* @return bool
*/
public function addNewUserLogEntryAutoCreate() {
- global $wgNewUserLog;
- if( !$wgNewUserLog ) {
- return true; // disabled
- }
- $log = new LogPage( 'newusers', false );
- $log->addEntry( 'autocreate', $this->getUserPage(), '', array( $this->getId() ), $this );
+ $this->addNewUserLogEntry( 'autocreate' );
+
return true;
}
*
* @return Array: Any query arguments found in path matches.
*/
- static public function getPathInfo( $want = 'all' ) {
+ public static function getPathInfo( $want = 'all' ) {
global $wgUsePathInfo;
// PATH_INFO is mangled due to http://bugs.php.net/bug.php?id=31892
// And also by Apache 2.x, double slashes are converted to single slashes.
$newquery = $this->getQueryValues();
unset( $newquery['title'] );
$newquery = array_merge( $newquery, $array );
- $query = wfArrayToCGI( $newquery );
+ $query = wfArrayToCgi( $newquery );
return $onlyquery ? $query : $wgTitle->getLocalURL( $query );
}
* @param $name string
* @return string
*/
- public function getcookie( $name ) {
+ public function getcookie( $name ) {
if ( isset( $this->cookies[$name] ) ) {
return $this->cookies[$name];
}
# Full path to working directory.
# Makes it possible to for example to have effective exclude path in apc.
-# Also doesn't break installations using symlinked includes, like
-# __DIR__ would do.
+# __DIR__ breaks symlinked includes, but realpath() returns false
+# if we don't have permissions on parent directories.
$IP = getenv( 'MW_INSTALL_PATH' );
if ( $IP === false ) {
- $IP = realpath( '.' );
+ if( realpath( '.' ) ) {
+ $IP = realpath( '.' );
+ } else {
+ $IP = dirname( __DIR__ );
+ }
}
if ( isset( $_SERVER['MW_COMPILED'] ) ) {
* @return Title
*/
public function getTitle() {
- if( $this->context->getTitle() === null ){
+ if( $this->context->getTitle() === null ) {
$this->context->setTitle( $this->parseTitle() );
}
return $this->context->getTitle();
&& $request->getMethod() == 'GET'
) {
$redirUrl = $request->getFullRequestURL();
- $redirUrl = str_replace( 'http://' , 'https://' , $redirUrl );
+ $redirUrl = str_replace( 'http://', 'https://', $redirUrl );
// Setup dummy Title, otherwise OutputPage::redirect will fail
$title = Title::newFromText( NS_MAIN, 'REDIR' );
public function doPurge() {
global $wgUseSquid;
- if( !wfRunHooks( 'ArticlePurge', array( &$this ) ) ){
+ if( !wfRunHooks( 'ArticlePurge', array( &$this ) ) ) {
return false;
}
public function prepareTextForEdit( $text, $revid = null, User $user = null ) {
ContentHandler::deprecated( __METHOD__, '1.21' );
$content = ContentHandler::makeContent( $text, $this->getTitle() );
- return $this->prepareContentForEdit( $content, $revid , $user );
+ return $this->prepareContentForEdit( $content, $revid, $user );
}
/**
ContentHandler::deprecated( __METHOD__, "1.21" );
$content = ContentHandler::makeContent( $text, $this->getTitle() );
- return $this->doQuickEditContent( $content, $user, $comment , $minor );
+ return $this->doQuickEditContent( $content, $user, $comment, $minor );
}
/**
$encodedExpiry = array();
$protectDescription = '';
+ # Some bots may parse IRC lines, which are generated from log entries which contain plain
+ # protect description text. Keep them in old format to avoid breaking compatibility.
+ # TODO: Fix protection log to store structured description and format it on-the-fly.
+ $protectDescriptionLog = '';
foreach ( $limit as $action => $restrictions ) {
$encodedExpiry[$action] = $dbw->encodeExpiry( $expiry[$action] );
if ( $restrictions != '' ) {
+ $protectDescriptionLog .= $wgContLang->getDirMark() . "[$action=$restrictions] (";
# $action is one of $wgRestrictionTypes = array( 'create', 'edit', 'move', 'upload' ).
# All possible message keys are listed here for easier grepping:
# * restriction-create
if ( $encodedExpiry[$action] != 'infinity' ) {
$expiryText = wfMessage(
'protect-expiring',
- $wgContLang->timeanddate( $expiry[$action], false, false ) ,
- $wgContLang->date( $expiry[$action], false, false ) ,
+ $wgContLang->timeanddate( $expiry[$action], false, false ),
+ $wgContLang->date( $expiry[$action], false, false ),
$wgContLang->time( $expiry[$action], false, false )
)->inContentLanguage()->text();
} else {
$protectDescription .= wfMessage( 'protect-summary-desc' )
->params( $actionText, $restrictionsText, $expiryText )
->inContentLanguage()->text();
+ $protectDescriptionLog .= $expiryText . ') ';
}
}
+ $protectDescriptionLog = trim( $protectDescriptionLog );
if ( $id ) { // Protection of existing page
if ( !wfRunHooks( 'ArticleProtect', array( &$this, &$user, $limit, $reason ) ) ) {
if ( $logAction == 'unprotect' ) {
$logParams = array();
} else {
- $logParams = array( $protectDescription, $cascade ? 'cascade' : '' );
+ $logParams = array( $protectDescriptionLog, $cascade ? 'cascade' : '' );
}
// Update the protection log
return false;
}
}
-
$a = array( 'for' => $id );
# FIXME avoid copy pasting below:
- if( isset( $attribs['class'] ) ){
+ if( isset( $attribs['class'] ) ) {
$a['class'] = $attribs['class'];
}
- if( isset( $attribs['title'] ) ){
+ if( isset( $attribs['title'] ) ) {
$a['title'] = $attribs['title'];
}
) .
Html::hidden( 'title', $this->getTitle()->getPrefixedDBKey() ) . "\n" .
Html::hidden( 'action', 'history' ) . "\n" .
- Xml::dateMenu( $year, $month ) . ' ' .
+ Xml::dateMenu( ( $year == null ? date( "Y" ) : $year ), $month ) . ' ' .
( $tagSelector ? ( implode( ' ', $tagSelector ) . ' ' ) : '' ) .
$checkDeleted .
Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) . "\n" .
$this->checkCanExecute( $this->getUser() );
if ( $this->getUser()->isAllowed( 'purge' ) ) {
- $this->redirectParams = wfArrayToCGI( array_diff_key(
+ $this->redirectParams = wfArrayToCgi( array_diff_key(
$this->getRequest()->getQueryValues(),
array( 'title' => null, 'action' => null )
) );
* The result data should be stored in the ApiResult object available
* through getResult().
*/
- public abstract function execute();
+ abstract public function execute();
/**
* Returns a string that identifies the version of the extending class.
array( $this, "parameterNotEmpty" ) ) ), $required );
if ( count( $intersection ) > 1 ) {
- $this->dieUsage( "The parameters {$p}" . implode( ", {$p}", $intersection ) . ' can not be used together', "{$p}invalidparammix" );
+ $this->dieUsage( "The parameters {$p}" . implode( ", {$p}", $intersection ) . ' can not be used together', "{$p}invalidparammix" );
} elseif ( count( $intersection ) == 0 ) {
$this->dieUsage( "One of the parameters {$p}" . implode( ", {$p}", $required ) . ' is required', "{$p}missingparam" );
}
// Check whether the error array was nested
// array( array( <code>, <params> ), array( <another_code>, <params> ) )
- if( is_array( $key ) ){
+ if( is_array( $key ) ) {
$error = $key;
$key = array_shift( $error );
}
*/
class ApiBlock extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* Blocks the user specified in the parameters for the given expiry, with the
* given reason, and with all other settings provided in the params. If the block
$res['userID'] = $target instanceof User ? $target->getId() : 0;
$block = Block::newFromTarget( $target );
- if( $block instanceof Block ){
+ if( $block instanceof Block ) {
$res['expiry'] = $block->mExpiry == $this->getDB()->getInfinity()
? 'infinite'
: wfTimestamp( TS_ISO_8601, $block->mExpiry );
class ApiComparePages extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$params = $this->extractRequestParams();
* @return int
*/
private function revisionOrTitleOrId( $revision, $titleText, $titleId ) {
- if( $revision ){
+ if( $revision ) {
return $revision;
} elseif( $titleText ) {
$title = Title::newFromText( $titleText );
- if( !$title ){
+ if( !$title ) {
$this->dieUsageMsg( array( 'invalidtitle', $titleText ) );
}
return $title->getLatestRevID();
*/
class ApiDelete extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* Extracts the title, token, and reason from the request parameters and invokes
* the local delete() function with these as arguments. It does not make use of
*/
class ApiDisabled extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$this->dieUsage( "The \"{$this->getModuleName()}\" module has been disabled.", 'moduledisabled' );
}
*/
class ApiEditPage extends ApiBase {
- public function __construct( $query, $moduleName ) {
- parent::__construct( $query, $moduleName );
- }
-
public function execute() {
$user = $this->getUser();
$params = $this->extractRequestParams();
*/
class ApiEmailUser extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$params = $this->extractRequestParams();
*/
class ApiExpandTemplates extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
// Cache may vary on $wgUser because ParserOptions gets data from it
$this->getMain()->setCacheMode( 'anon-public-user-private' );
*/
class ApiFeedContributions extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* This module uses a custom feed wrapper printer.
*
*/
class ApiFeedWatchlist extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* This module uses a custom feed wrapper printer.
*
protected $params;
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$this->params = $this->extractRequestParams();
// Extract the file and archiveName from the request parameters
* This method is not called if getIsHtml() returns true.
* @return string
*/
- public abstract function getMimeType();
+ abstract public function getMimeType();
/**
* Whether this formatter needs raw data such as _element tags
*/
class ApiFormatDbg extends ApiFormatBase {
- public function __construct( $main, $format ) {
- parent::__construct( $main, $format );
- }
-
public function getMimeType() {
// This looks like it should be text/plain, but IE7 is so
// brain-damaged it tries to parse text/plain as HTML if it
*/
class ApiFormatDump extends ApiFormatBase {
- public function __construct( $main, $format ) {
- parent::__construct( $main, $format );
- }
-
public function getMimeType() {
// This looks like it should be text/plain, but IE7 is so
// brain-damaged it tries to parse text/plain as HTML if it
*/
class ApiFormatNone extends ApiFormatBase {
- public function __construct( $main, $format ) {
- parent::__construct( $main, $format );
- }
-
public function getMimeType() {
return 'text/plain';
}
*/
class ApiFormatPhp extends ApiFormatBase {
- public function __construct( $main, $format ) {
- parent::__construct( $main, $format );
- }
-
public function getMimeType() {
return 'application/vnd.php.serialized';
}
*/
class ApiFormatTxt extends ApiFormatBase {
- public function __construct( $main, $format ) {
- parent::__construct( $main, $format );
- }
-
public function getMimeType() {
// This looks like it should be text/plain, but IE7 is so
// brain-damaged it tries to parse text/plain as HTML if it
*/
class ApiFormatWddx extends ApiFormatBase {
- public function __construct( $main, $format ) {
- parent::__construct( $main, $format );
- }
-
public function getMimeType() {
return 'text/xml';
}
private $mIncludeNamespace = false;
private $mXslt = null;
- public function __construct( $main, $format ) {
- parent::__construct( $main, $format );
- }
-
public function getMimeType() {
return 'text/xml';
}
// ignore
break;
default:
- $retval .= $indstr . Xml::element( $elemName, null, $elemValue );
+ // to make sure null value doesn't produce unclosed element,
+ // which is what Xml::element( $elemName, null, null ) returns
+ if ( $elemValue === null ) {
+ $retval .= $indstr . Xml::element( $elemName );
+ } else {
+ $retval .= $indstr . Xml::element( $elemName, null, $elemValue );
+ }
break;
}
return $retval;
*/
class ApiHelp extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* Module for displaying help
*/
*/
class ApiImport extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$user = $this->getUser();
$params = $this->extractRequestParams();
*/
class ApiLogout extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$user = $this->getUser();
$oldName = $user->getName();
}
}
- // Handle any kind of exception by outputing properly formatted error message.
+ // Handle any kind of exception by outputting properly formatted error message.
// If this fails, an unhandled exception should be thrown so that global error
// handler will process and log it.
if ( $this->mPrinter->getWantsHelp() || $this->mAction == 'help' ) {
ApiResult::setContent( $errMessage, $this->makeHelpMsg() );
}
-
} else {
global $wgShowSQLErrors, $wgShowExceptionDetails;
// Something is seriously wrong
ApiResult::setContent( $errMessage, $wgShowExceptionDetails ? "\n\n{$e->getTraceAsString()}\n\n" : '' );
}
+ // Remember all the warnings to re-add them later
+ $oldResult = $result->getData();
+ $warnings = isset( $oldResult['warnings'] ) ? $oldResult['warnings'] : null;
+
$result->reset();
$result->disableSizeCheck();
// Re-add the id
if ( !is_null( $requestid ) ) {
$result->addValue( null, 'requestid', $requestid );
}
-
if ( $wgShowHostnames ) {
// servedby is especially useful when debugging errors
$result->addValue( null, 'servedby', wfHostName() );
}
+ if ( $warnings !== null ) {
+ $result->addValue( null, 'warnings', $warnings );
+ }
$result->addValue( null, 'error', $errMessage );
*/
class ApiMove extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$user = $this->getUser();
$params = $this->extractRequestParams();
*/
class ApiOpenSearch extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function getCustomPrinter() {
return $this->getMain()->createPrinterByName( 'json' );
}
*/
class ApiOptions extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* Changes preferences of the current user.
*/
/** @var Content $pstContent */
private $pstContent = null;
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
// The data is hot but user-dependent, like page views, so we set vary cookies
$this->getMain()->setCacheMode( 'anon-public-user-private' );
$popts->enableLimitReport( !$params['disablepp'] );
// If for some reason the "oldid" is actually the current revision, it may be cached
- if ( $rev->isCurrent() ) {
+ if ( $rev->isCurrent() ) {
// May get from/save to parser cache
$p_result = $this->getParsedContent( $pageObj, $popts,
$pageid, isset( $prop['wikitext'] ) ) ;
*/
class ApiPatrol extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* Patrols the article or provides the reason the patrol failed.
*/
*/
class ApiProtect extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
global $wgRestrictionLevels;
$params = $this->extractRequestParams();
*/
class ApiPurge extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* Purges the cache of a page
*/
* @param $resultPageSet ApiPageSet: All output should be appended to
* this object
*/
- public abstract function executeGenerator( $resultPageSet );
+ abstract public function executeGenerator( $resultPageSet );
}
*/
class ApiQueryDisabled extends ApiQueryBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$this->setWarning( "The \"{$this->getModuleName()}\" module has been disabled." );
}
} else {
$images = RepoGroup::singleton()->findFiles( $titles );
}
- $resolveRedirects = $this->getPageSet()->isResolvingRedirects();
- foreach ( $images as $img ) {
- // Skip redirects
- if ( $img->getOriginalTitle()->isRedirect() && !$resolveRedirects ) {
+ foreach ( $titles as $title ) {
+ if ( !isset( $images[$title] ) ) {
continue;
}
$start = $skip ? $fromTimestamp : $params['start'];
- $pageId = $pageIds[NS_FILE][$img->getTitle()->getDBkey()];
+ $pageId = $pageIds[NS_FILE][$title];
+ $img = $images[$title];
$fit = $result->addValue(
array( 'query', 'pages', intval( $pageId ) ),
$desc = $this->description;
$name = $this->getModuleName();
return array(
- "api.php?action=query&prop={$name}&titles=Main%20Page" => "Get {$desc}s from the [[Main Page]]:",
- "api.php?action=query&generator={$name}&titles=Main%20Page&prop=info" => "Get information about the {$desc} pages in the [[Main Page]]:",
- "api.php?action=query&prop={$name}&titles=Main%20Page&{$this->prefix}namespace=2|10" => "Get {$desc}s from the Main Page in the User and Template namespaces:",
+ "api.php?action=query&prop={$name}&titles=Main%20Page" => "Get {$desc}s from the [[Main Page]]",
+ "api.php?action=query&generator={$name}&titles=Main%20Page&prop=info" => "Get information about the {$desc} pages in the [[Main Page]]",
+ "api.php?action=query&prop={$name}&titles=Main%20Page&{$this->prefix}namespace=2|10" => "Get {$desc}s from the Main Page in the User and Template namespaces",
);
}
if ( is_null( $title ) ) {
$this->dieUsage( "Bad title value '$prefix'", 'param_prefix' );
}
- $this->addWhereFld( 'log_namespace', $title->getNamespace() );
+ $this->addWhereFld( 'log_namespace', $title->getNamespace() );
$this->addWhere( 'log_title ' . $db->buildLike( $title->getDBkey(), $db->anyString() ) );
}
public static function addLogParams( $result, &$vals, $params, $type, $action, $ts, $legacy = false ) {
switch ( $type ) {
case 'move':
- if ( $legacy ){
+ if ( $legacy ) {
$targetKey = 0;
$noredirKey = 1;
} else {
$params = null;
break;
case 'patrol':
- if ( $legacy ){
+ if ( $legacy ) {
$cur = 0;
$prev = 1;
$auto = 2;
*
* @return IORMTable
*/
- protected abstract function getTable();
+ abstract protected function getTable();
/**
* Returns the name of the individual rows.
ksort( $myWgHooks );
$data = array();
- foreach ( $myWgHooks as $hook => $hooks ) {
+ foreach ( $myWgHooks as $hook => $hooks ) {
$arr = array(
'name' => $hook,
'subscribers' => array_map( array( 'SpecialVersion', 'arrayToString' ), $hooks ),
*/
class ApiRollback extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* @var Title
*/
*/
class ApiRsd extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$result = $this->getResult();
*/
class ApiSetNotificationTimestamp extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$user = $this->getUser();
*/
class ApiTokens extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
wfProfileIn( __METHOD__ );
$params = $this->extractRequestParams();
*/
class ApiUnblock extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
/**
* Unblocks the specified user or provides the reason the unblock failed.
*/
*/
class ApiUndelete extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$params = $this->extractRequestParams();
protected $mParams;
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
// Check whether upload is enabled
if ( !UploadBase::isEnabled() ) {
$request = $this->getMain()->getRequest();
// Check if async mode is actually supported
$this->mParams['async'] = ( $this->mParams['async'] && !wfIsWindows() );
+ $this->mParams['async'] = false; // XXX: disabled per bug 44080
// Add the uploaded file to the params array
$this->mParams['file'] = $request->getFileName( 'file' );
$this->mParams['chunk'] = $request->getFileName( 'chunk' );
* Get an uplaod result based on upload context
* @return array
*/
- private function getContextResult(){
+ private function getContextResult() {
$warnings = $this->getApiWarnings();
if ( $warnings && !$this->mParams['ignorewarnings'] ) {
// Get warnings formated in result array format
* @param $warnings array Array of Api upload warnings
* @return array
*/
- private function getStashResult( $warnings ){
+ private function getStashResult( $warnings ) {
$result = array ();
// Some uploads can request they be stashed, so as not to publish them immediately.
// In this case, a failure to stash ought to be fatal
* @param $warnings array Array of Api upload warnings
* @return array
*/
- private function getWarningsResult( $warnings ){
+ private function getWarningsResult( $warnings ) {
$result = array();
$result['result'] = 'Warning';
$result['warnings'] = $warnings;
if ( $this->mParams['chunk'] ) {
// Chunk upload
$this->mUpload = new UploadFromChunks();
- if( isset( $this->mParams['filekey'] ) ){
+ if( isset( $this->mParams['filekey'] ) ) {
// handle new chunk
$this->mUpload->continueChunks(
$this->mParams['filename'],
*/
class ApiUserrights extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
private $mUser = null;
public function execute() {
*/
class ApiWatch extends ApiBase {
- public function __construct( $main, $action ) {
- parent::__construct( $main, $action );
- }
-
public function execute() {
$user = $this->getUser();
if ( !$user->isLoggedIn() ) {
} elseif ( in_array( $key, self::$mergeableAliasListKeys ) ) {
$value = array_merge_recursive( $value, $fallbackValue );
} elseif ( in_array( $key, self::$optionalMergeKeys ) ) {
- if ( !empty( $value['inherit'] ) ) {
+ if ( !empty( $value['inherit'] ) ) {
$value = array_merge( $fallbackValue, $value );
}
* resulting ParserOutput object.
*
* Subclasses may override this to determine the secondary data updates more
- * efficiently, preferrably without the need to generate a parser output object.
+ * efficiently, preferably without the need to generate a parser output object.
*
* @see Content::getSecondaryDataUpdates()
*
Content $old = null,
$recursive = true, ParserOutput $parserOutput = null
) {
- if ( !$parserOutput ) {
+ if ( $parserOutput === null ) {
$parserOutput = $this->getParserOutput( $title, null, null, false );
}
* @param $format null|String The desired serialization format
* @return string Serialized form of the content
*/
- public abstract function serializeContent( Content $content, $format = null );
+ abstract public function serializeContent( Content $content, $format = null );
/**
* Unserializes a Content object of the type supported by this ContentHandler.
* @param $format null|String the format used for serialization
* @return Content the Content object created by deserializing $blob
*/
- public abstract function unserializeContent( $blob, $format = null );
+ abstract public function unserializeContent( $blob, $format = null );
/**
* Creates an empty Content object of the type supported by this
*
* @return Content
*/
- public abstract function makeEmptyContent();
+ abstract public function makeEmptyContent();
/**
* Creates a new Content object that acts as a redirect to the given page,
* Valid options are: host, user, password, dbname, flags, tablePrefix
* @return DatabaseBase subclass or null
*/
- public final static function factory( $dbType, $p = array() ) {
+ final public static function factory( $dbType, $p = array() ) {
$canonicalDBTypes = array(
'mysql', 'postgres', 'sqlite', 'oracle', 'mssql', 'ibm_db2'
);
* @since 1.20
* @return bool: Whether connection was closed successfully
*/
- protected abstract function closeConnection();
+ abstract protected function closeConnection();
/**
* @param $error String: fallback error message, used if none is given by DB
* @param $sql String: SQL query.
* @return ResultWrapper Result object to feed to fetchObject, fetchRow, ...; or false on failure
*/
- protected abstract function doQuery( $sql );
+ abstract protected function doQuery( $sql );
/**
* Determine whether a query writes to the DB.
# Split database and table into proper variables.
# We reverse the explode so that database.table and table both output
# the correct table.
- $dbDetails = array_reverse( explode( '.', $name, 2 ) );
- if ( isset( $dbDetails[1] ) ) {
- list( $table, $database ) = $dbDetails;
+ $dbDetails = explode( '.', $name, 2 );
+ if ( count( $dbDetails ) == 2 ) {
+ list( $database, $table ) = $dbDetails;
+ # We don't want any prefix added in this case
+ $prefix = '';
} else {
list( $table ) = $dbDetails;
- }
- $prefix = $this->mTablePrefix; # Default prefix
-
- # A database name has been specified in input. We don't want any
- # prefixes added.
- if ( isset( $database ) ) {
- $prefix = '';
+ if ( $wgSharedDB !== null # We have a shared database
+ && !$this->isQuotedIdentifier( $table ) # Paranoia check to prevent shared tables listing '`table`'
+ && in_array( $table, $wgSharedTables ) # A shared table is selected
+ ) {
+ $database = $wgSharedDB;
+ $prefix = $wgSharedPrefix === null ? $this->mTablePrefix : $wgSharedPrefix;
+ } else {
+ $database = null;
+ $prefix = $this->mTablePrefix; # Default prefix
+ }
}
- # Note that we use the long format because php will complain in in_array if
- # the input is not an array, and will complain in is_array if it is not set.
- if ( !isset( $database ) # Don't use shared database if pre selected.
- && isset( $wgSharedDB ) # We have a shared database
- && !$this->isQuotedIdentifier( $table ) # Paranoia check to prevent shared tables listing '`table`'
- && isset( $wgSharedTables )
- && is_array( $wgSharedTables )
- && in_array( $table, $wgSharedTables ) ) { # A shared table is selected
- $database = $wgSharedDB;
- $prefix = isset( $wgSharedPrefix ) ? $wgSharedPrefix : $prefix;
+ # Quote $table and apply the prefix if not quoted.
+ $tableName = "{$prefix}{$table}";
+ if ( $format == 'quoted' && !$this->isQuotedIdentifier( $tableName ) ) {
+ $tableName = $this->addIdentifierQuotes( $tableName );
}
- # Quote the $database and $table and apply the prefix if not quoted.
- if ( isset( $database ) ) {
+ # Quote $database and merge it with the table name if needed
+ if ( $database !== null ) {
if ( $format == 'quoted' && !$this->isQuotedIdentifier( $database ) ) {
$database = $this->addIdentifierQuotes( $database );
}
+ $tableName = $database . '.' . $tableName;
}
- $table = "{$prefix}{$table}";
- if ( $format == 'quoted' && !$this->isQuotedIdentifier( $table ) ) {
- $table = $this->addIdentifierQuotes( "{$table}" );
- }
-
- # Merge our database and table into our final table name.
- $tableName = ( isset( $database ) ? "{$database}.{$table}" : "{$table}" );
-
return $tableName;
}
return "$text<hr />$extra";
}
- public function reportHTML(){
+ public function reportHTML() {
global $wgUseFileCache;
# Check whether we can serve a file-cached copy of the page with the error underneath
* @param $sql String
* @param $columns Array
*/
- public function __construct( $db, $result, $num_rows, $sql, $columns ){
+ public function __construct( $db, $result, $num_rows, $sql, $columns ) {
$this->db = $db;
- if( $result instanceof ResultWrapper ){
+ if( $result instanceof ResultWrapper ) {
$this->result = $result->result;
- }
- else{
+ } else {
$this->result = $result;
}
* @return mixed Array on success, false on failure
* @throws DBUnexpectedError
*/
- public function fetchRow(){
+ public function fetchRow() {
if ( $this->result
&& $this->num_rows > 0
&& $this->current_pos >= 0
}
}
- if ( $this->loadedLines > $this->current_pos ){
+ if ( $this->loadedLines > $this->current_pos ) {
return $this->resultSet[$this->current_pos++];
}
* Free a DB2 result object
* @throws DBUnexpectedError
*/
- public function freeResult(){
+ public function freeResult() {
unset( $this->resultSet );
if ( !@db2_free_result( $this->result ) ) {
throw new DBUnexpectedError( $this, "Unable to free DB2 result\n" );
* Returns the database connection object
* @return Object
*/
- public function getDb(){
+ public function getDb() {
return $this->mConn;
}
$ntAuthPassTest = strtolower( $password );
// Decide which auth scenerio to use
- if( $ntAuthPassTest == 'ntauth' && $ntAuthUserTest == 'ntauth' ){
+ if( $ntAuthPassTest == 'ntauth' && $ntAuthUserTest == 'ntauth' ) {
// Don't add credentials to $connectionInfo
} else {
$connectionInfo['UID'] = $user;
$identity = null;
$tableRaw = preg_replace( '#\[([^\]]*)\]#', '$1', $table ); // strip matching square brackets from table name
$res = $this->doQuery( "SELECT NAME AS idColumn FROM SYS.IDENTITY_COLUMNS WHERE OBJECT_NAME(OBJECT_ID)='{$tableRaw}'" );
- if( $res && $res->numrows() ){
+ if( $res && $res->numrows() ) {
// There is an identity for this table.
$identity = array_pop( $res->fetch( SQLSRV_FETCH_ASSOC ) );
}
// iterate through
foreach ($a as $k => $v ) {
if ( $k == $identity ) {
- if( !is_null($v) ){
+ if( !is_null($v) ) {
// there is a value being passed to us, we need to turn on and off inserted identity
$sqlPre = "SET IDENTITY_INSERT $table ON;" ;
$sqlPost = ";SET IDENTITY_INSERT $table OFF;";
* Get the type of the DBMS, as it appears in $wgDBtype.
* @return string
*/
- function getType(){
+ function getType() {
return 'mssql';
}
return $this->getWriterIndex();
}
- if ( count( $this->mServers ) == 1 ) {
+ if ( count( $this->mServers ) == 1 ) {
# Skip the load balancing if there's only one server
return 0;
} elseif ( $group === false and $this->mReadIndex >= 0 ) {
$i = $this->pickRandom( $currentLoads );
} else {
$i = $this->getRandomNonLagged( $currentLoads, $wiki );
- if ( $i === false && count( $currentLoads ) != 0 ) {
+ if ( $i === false && count( $currentLoads ) != 0 ) {
# All slaves lagged. Switch to read-only mode
wfDebugLog( 'replication', "All slaves lagged. Switch to read-only mode\n" );
$wgReadOnly = 'The database has been automatically locked ' .
wfProfileIn( __METHOD__ );
$this->mWaitForPos = $pos;
for ( $i = 1; $i < count( $this->mServers ); $i++ ) {
- $this->doWait( $i , true );
+ $this->doWait( $i, true );
}
wfProfileOut( __METHOD__ );
}
* @return int
*/
function norig() {
- return $this->orig ? sizeof( $this->orig ) : 0;
+ return $this->orig ? count( $this->orig ) : 0;
}
/**
* @return int
*/
function nclosing() {
- return $this->closing ? sizeof( $this->closing ) : 0;
+ return $this->closing ? count( $this->closing ) : 0;
}
}
$this->_shift_boundaries( $to_lines, $this->ychanged, $this->xchanged );
// Compute the edit operations.
- $n_from = sizeof( $from_lines );
- $n_to = sizeof( $to_lines );
+ $n_from = count( $from_lines );
+ $n_to = count( $to_lines );
$edits = array();
$xi = $yi = 0;
}
$add = array();
- while ( $yi < $n_to && $this->ychanged[$yi] ) {
+ while ( $yi < $n_to && $this->ychanged[$yi] ) {
$add[] = $to_lines[$yi++];
}
unset( $wikidiff3 );
} else {
// old diff
- $n_from = sizeof( $from_lines );
- $n_to = sizeof( $to_lines );
+ $n_from = count( $from_lines );
+ $n_to = count( $to_lines );
$this->xchanged = $this->ychanged = array();
$this->xv = $this->yv = array();
$this->xind = $this->yind = array();
}
// Find the LCS.
- $this->_compareseq( 0, sizeof( $this->xv ), 0, sizeof( $this->yv ) );
+ $this->_compareseq( 0, count( $this->xv ), 0, count( $this->yv ) );
}
wfProfileOut( __METHOD__ );
}
$i = 0;
$j = 0;
- assert( 'sizeof($lines) == sizeof($changed)' );
- $len = sizeof( $lines );
- $other_len = sizeof( $other_changed );
+ assert( 'count($lines) == count($changed)' );
+ $len = count( $lines );
+ $other_len = count( $other_changed );
while ( 1 ) {
/*
$lcs = 0;
foreach ( $this->edits as $edit ) {
if ( $edit->type == 'copy' ) {
- $lcs += sizeof( $edit->orig );
+ $lcs += count( $edit->orig );
}
}
return $lcs;
foreach ( $this->edits as $edit ) {
if ( $edit->orig ) {
- array_splice( $lines, sizeof( $lines ), 0, $edit->orig );
+ array_splice( $lines, count( $lines ), 0, $edit->orig );
}
}
return $lines;
foreach ( $this->edits as $edit ) {
if ( $edit->closing ) {
- array_splice( $lines, sizeof( $lines ), 0, $edit->closing );
+ array_splice( $lines, count( $lines ), 0, $edit->closing );
}
}
return $lines;
$mapped_from_lines, $mapped_to_lines ) {
wfProfileIn( __METHOD__ );
- assert( 'sizeof( $from_lines ) == sizeof( $mapped_from_lines )' );
- assert( 'sizeof( $to_lines ) == sizeof( $mapped_to_lines )' );
+ assert( 'count( $from_lines ) == count( $mapped_from_lines )' );
+ assert( 'count( $to_lines ) == count( $mapped_to_lines )' );
parent::__construct( $mapped_from_lines, $mapped_to_lines );
$xi = $yi = 0;
- for ( $i = 0; $i < sizeof( $this->edits ); $i++ ) {
+ for ( $i = 0; $i < count( $this->edits ); $i++ ) {
$orig = &$this->edits[$i]->orig;
if ( is_array( $orig ) ) {
- $orig = array_slice( $from_lines, $xi, sizeof( $orig ) );
- $xi += sizeof( $orig );
+ $orig = array_slice( $from_lines, $xi, count( $orig ) );
+ $xi += count( $orig );
}
$closing = &$this->edits[$i]->closing;
if ( is_array( $closing ) ) {
- $closing = array_slice( $to_lines, $yi, sizeof( $closing ) );
- $yi += sizeof( $closing );
+ $closing = array_slice( $to_lines, $yi, count( $closing ) );
+ $yi += count( $closing );
}
}
wfProfileOut( __METHOD__ );
foreach ( $diff->edits as $edit ) {
if ( $edit->type == 'copy' ) {
if ( is_array( $block ) ) {
- if ( sizeof( $edit->orig ) <= $nlead + $ntrail ) {
+ if ( count( $edit->orig ) <= $nlead + $ntrail ) {
$block[] = $edit;
} else {
if ( $ntrail ) {
$context = $edit->orig;
} else {
if ( !is_array( $block ) ) {
- $context = array_slice( $context, sizeof( $context ) - $nlead );
- $x0 = $xi - sizeof( $context );
- $y0 = $yi - sizeof( $context );
+ $context = array_slice( $context, count( $context ) - $nlead );
+ $x0 = $xi - count( $context );
+ $y0 = $yi - count( $context );
$block = array();
if ( $context ) {
$block[] = new _DiffOp_Copy( $context );
}
if ( $edit->orig ) {
- $xi += sizeof( $edit->orig );
+ $xi += count( $edit->orig );
}
if ( $edit->closing ) {
- $yi += sizeof( $edit->closing );
+ $yi += count( $edit->closing );
}
}
public function diff( /*array*/ $from, /*array*/ $to ) {
// remember initial lengths
- $m = sizeof( $from );
+ $m = count( $from );
$n = count( $to );
$this->heuristicUsed = false;
*/
/**
- * Constructor class for data kept in external repositories.
+ * Constructor class for key/value blob data kept in external repositories.
*
* Objects in external stores are defined by a special URL. The URL is of
- * the form "<store protocal>://<location>/<object name>". When an object
- * is inserted into a store, the calling code uses a partial URL of the form
- * "<store protocal>://<location>" and receives the full object URL on success.
+ * the form "<store protocal>://<location>/<object name>". The protocal is used
+ * to determine what ExternalStoreMedium class is used. The location identifies
+ * particular storage instances or database clusters for store class to use.
+ *
+ * When an object is inserted into a store, the calling code uses a partial URL of
+ * the form "<store protocal>://<location>" and receives the full object URL on success.
* This is useful since object names can be sequential IDs, UUIDs, or hashes.
* Callers are not responsible for unique name generation.
*
* External repositories might be populated by maintenance/async
* scripts, thus partial moving of data may be possible, as well
- * as possibility to have any storage format (i.e. for archives)
+ * as the possibility to have any storage format (i.e. for archives).
*
* @ingroup ExternalStorage
*/
/**
* Get an external store object of the given type, with the given parameters
*
- * @param $proto String: type of external storage, should be a value in $wgExternalStores
- * @param $params Array: associative array of parameters for the ExternalStore object.
- * @return ExternalStore|bool ExternalStore class or false on error
+ * @param $proto string Type of external storage, should be a value in $wgExternalStores
+ * @param $params array Associative array of ExternalStoreMedium parameters
+ * @return ExternalStoreMedium|bool The store class or false on error
*/
public static function getStoreObject( $proto, array $params = array() ) {
global $wgExternalStores;
/**
* Fetch data from given URL
*
- * @param $url String: The URL of the text to get
- * @param $params Array: associative array of parameters for the ExternalStore object.
+ * @param $url string The URL of the text to get
+ * @param $params array Associative array of ExternalStoreMedium parameters
* @return string|bool The text stored or false on error
* @throws MWException
*/
* Store a data item to an external store, identified by a partial URL
* The protocol part is used to identify the class, the rest is passed to the
* class itself as a parameter.
- * @param $url
- * @param $data
- * @param $params array
+ *
+ * @param $url String A partial external store URL ("<store type>://<location>")
+ * @param $data string
+ * @param $params array Associative array of ExternalStoreMedium parameters
* @return string|bool The URL of the stored data item, or false on error
* @throws MWException
*/
* This function does not need a url param, it builds it by
* itself. It also fails-over to the next possible clusters.
*
- * @param $data String
- * @param $params Array: associative array of parameters for the ExternalStore object.
+ * @param $data string
+ * @param $params array Associative array of ExternalStoreMedium parameters
* @return string|bool The URL of the stored data item, or false on error
* @throws MWException
*/
}
/**
- * @param $data
- * @param $wiki
+ * @param $data string
+ * @param $wiki string
* @return string|bool The URL of the stored data item, or false on error
* @throws MWException
*/
*/
/**
- * DB accessable external objects
+ * DB accessable external objects.
+ *
+ * In this system, each store "location" maps to a database "cluster".
+ * The clusters must be defined in the normal LBFactory configuration.
+ *
* @ingroup ExternalStorage
*/
-class ExternalStoreDB {
+class ExternalStoreDB extends ExternalStoreMedium {
+ /**
+ * The URL returned is of the form of the form DB://cluster/id
+ * or DB://cluster/id/itemid for concatened storage.
+ *
+ * @see ExternalStoreMedium::fetchFromURL()
+ */
+ public function fetchFromURL( $url ) {
+ $path = explode( '/', $url );
+ $cluster = $path[2];
+ $id = $path[3];
+ if ( isset( $path[4] ) ) {
+ $itemID = $path[4];
+ } else {
+ $itemID = false;
+ }
+
+ $ret =& $this->fetchBlob( $cluster, $id, $itemID );
+
+ if ( $itemID !== false && $ret !== false ) {
+ return $ret->getItem( $itemID );
+ }
+ return $ret;
+ }
/**
- * @param $params array
+ * @see ExternalStoreMedium::store()
*/
- function __construct( $params = array() ) {
- $this->mParams = $params;
+ public function store( $cluster, $data ) {
+ $dbw = $this->getMaster( $cluster );
+ $id = $dbw->nextSequenceValue( 'blob_blob_id_seq' );
+ $dbw->insert( $this->getTable( $dbw ),
+ array( 'blob_id' => $id, 'blob_text' => $data ),
+ __METHOD__ );
+ $id = $dbw->insertId();
+ if ( !$id ) {
+ throw new MWException( __METHOD__.': no insert ID' );
+ }
+ if ( $dbw->getFlag( DBO_TRX ) ) {
+ $dbw->commit( __METHOD__ );
+ }
+ return "DB://$cluster/$id";
}
/**
* @return LoadBalancer object
*/
function &getLoadBalancer( $cluster ) {
- $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
+ $wiki = isset($this->params['wiki']) ? $this->params['wiki'] : false;
return wfGetLBFactory()->getExternalLB( $cluster, $wiki );
}
function &getSlave( $cluster ) {
global $wgDefaultExternalStore;
- $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
+ $wiki = isset($this->params['wiki']) ? $this->params['wiki'] : false;
$lb =& $this->getLoadBalancer( $cluster );
if ( !in_array( "DB://" . $cluster, (array)$wgDefaultExternalStore ) ) {
* @return DatabaseBase object
*/
function &getMaster( $cluster ) {
- $wiki = isset($this->mParams['wiki']) ? $this->mParams['wiki'] : false;
+ $wiki = isset($this->params['wiki']) ? $this->params['wiki'] : false;
$lb =& $this->getLoadBalancer( $cluster );
return $lb->getConnection( DB_MASTER, array(), $wiki );
}
return $table;
}
- /**
- * Fetch data from given URL
- * @param $url String: an url of the form DB://cluster/id or DB://cluster/id/itemid for concatened storage.
- * @return mixed
- */
- function fetchFromURL( $url ) {
- $path = explode( '/', $url );
- $cluster = $path[2];
- $id = $path[3];
- if ( isset( $path[4] ) ) {
- $itemID = $path[4];
- } else {
- $itemID = false;
- }
-
- $ret =& $this->fetchBlob( $cluster, $id, $itemID );
-
- if ( $itemID !== false && $ret !== false ) {
- return $ret->getItem( $itemID );
- }
- return $ret;
- }
-
/**
* Fetch a blob item out of the database; a cache of the last-loaded
* blob will be kept so that multiple loads out of a multi-item blob
$externalBlobCache = array( $cacheID => &$ret );
return $ret;
}
-
- /**
- * Insert a data item into a given cluster
- *
- * @param $cluster String: the cluster name
- * @param $data String: the data item
- * @throws MWException
- * @return string URL
- */
- function store( $cluster, $data ) {
- $dbw = $this->getMaster( $cluster );
- $id = $dbw->nextSequenceValue( 'blob_blob_id_seq' );
- $dbw->insert( $this->getTable( $dbw ),
- array( 'blob_id' => $id, 'blob_text' => $data ),
- __METHOD__ );
- $id = $dbw->insertId();
- if ( !$id ) {
- throw new MWException( __METHOD__.': no insert ID' );
- }
- if ( $dbw->getFlag( DBO_TRX ) ) {
- $dbw->commit( __METHOD__ );
- }
- return "DB://$cluster/$id";
- }
}
*
* @ingroup ExternalStorage
*/
-class ExternalStoreHttp {
-
+class ExternalStoreHttp extends ExternalStoreMedium {
/**
- * Fetch data from given URL
- *
- * @param $url String: the URL
- * @return String: the content at $url
+ * @see ExternalStoreMedium::fetchFromURL()
*/
- function fetchFromURL( $url ) {
- $ret = Http::get( $url );
- return $ret;
+ public function fetchFromURL( $url ) {
+ return Http::get( $url );
}
- /* XXX: may require other methods, for store, delete,
- * whatever, for initial ext storage
+ /**
+ * @see ExternalStoreMedium::store()
*/
+ public function store( $cluster, $data ) {
+ throw new MWException( "ExternalStoreHttp is read-only and does not support store()." );
+ }
}
--- /dev/null
+<?php
+/**
+ * External storage in some particular medium.
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * 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 ExternalStorage
+ * @author Aaron Schulz
+ */
+
+/**
+ * Accessable external objects
+ * @ingroup ExternalStorage
+ */
+abstract class ExternalStoreMedium {
+ /** @var Array */
+ protected $params = array();
+
+ /**
+ * @param $params array Options
+ */
+ public function __construct( array $params = array() ) {
+ $this->params = $params;
+ }
+
+ /**
+ * Fetch data from given external store URL
+ *
+ * @param $url string An external store URL
+ * @return string|bool The text stored or false on error
+ * @throws MWException
+ */
+ public abstract function fetchFromURL( $url );
+
+ /**
+ * Insert a data item into a given location
+ *
+ * @param $location string: the location name
+ * @param $data string: the data item
+ * @return string|bool The URL of the stored data item, or false on error
+ * @throws MWException
+ */
+ public abstract function store( $location, $data );
+}
* @param $params array
*/
public function __construct( $dir, array $params ) {
- $dir = realpath( $dir ); // normalize
- $this->suffixStart = strlen( $dir ) + 1; // size of "path/to/dir/"
+ $path = realpath( $dir ); // normalize
+ if( $path === false ) {
+ $path = $dir;
+ }
+ $this->suffixStart = strlen( $path ) + 1; // size of "path/to/dir/"
$this->params = $params;
try {
- $this->iter = $this->initIterator( $dir );
+ $this->iter = $this->initIterator( $path );
} catch ( UnexpectedValueException $e ) {
$this->iter = null; // bad permissions? deleted?
}
* @param $path string
* @return string
*/
- protected function getRelPath( $path ) {
- return strtr( substr( realpath( $path ), $this->suffixStart ), '\\', '/' );
+ protected function getRelPath( $dir ) {
+ $path = realpath( $dir );
+ if( $path === false ) {
+ $path = $dir;
+ }
+ return strtr( substr( $path, $this->suffixStart ), '\\', '/' );
}
}
throw new MWException( "Cannot register a backend with no name." );
}
$name = $config['name'];
- if ( !isset( $config['class'] ) ) {
+ if ( isset( $this->backends[$name] ) ) {
+ throw new MWException( "Backend with name `{$name}` already registered." );
+ } elseif ( !isset( $config['class'] ) ) {
throw new MWException( "Cannot register backend `{$name}` with no class." );
}
$class = $config['class'];
$objects = $container->list_objects( $limit, $after, $prefix );
foreach ( $objects as $object ) { // files
$objectDir = $this->getParentDir( $object ); // directory of object
- if ( $objectDir !== false ) { // file has a parent dir
+ if ( $objectDir !== false && $objectDir !== $dir ) {
// Swift stores paths in UTF-8, using binary sorting.
// See function "create_container_table" in common/db.py.
// If a directory is not "greater" than the last one,
if ( $type == self::LOCK_EX ) { // writer locks
try {
- $keys = array_unique( array_map( 'LockManager::sha1Base36', $paths ) );
+ $keys = array_unique( array_map( array( $this, 'sha1Base36Absolute' ), $paths ) );
# Build up values for INSERT clause
$data = array();
foreach ( $keys as $key ) {
$status = Status::newGood();
$db = $this->getConnection( $lockSrv ); // checked in isServerUp()
- $keys = array_unique( array_map( 'LockManager::sha1Base36', $paths ) );
+ $keys = array_unique( array_map( array( $this, 'sha1Base36Absolute' ), $paths ) );
# Build up values for INSERT clause
$data = array();
foreach ( $keys as $key ) {
* @return string
*/
protected function getLockPath( $path ) {
- $hash = self::sha1Base36( $path );
- return "{$this->lockDir}/{$hash}.lock";
+ return "{$this->lockDir}/{$this->sha1Base36Absolute( $path )}.lock";
}
/**
// Send out the command and get the response...
$type = ( $type == self::LOCK_SH ) ? 'SH' : 'EX';
- $keys = array_unique( array_map( 'LockManager::sha1Base36', $paths ) );
+ $keys = array_unique( array_map( array( $this, 'sha1Base36Absolute' ), $paths ) );
$response = $this->sendCommand( $lockSrv, 'ACQUIRE', $type, $keys );
if ( $response !== 'ACQUIRED' ) {
// Send out the command and get the response...
$type = ( $type == self::LOCK_SH ) ? 'SH' : 'EX';
- $keys = array_unique( array_map( 'LockManager::sha1Base36', $paths ) );
+ $keys = array_unique( array_map( array( $this, 'sha1Base36Absolute' ), $paths ) );
$response = $this->sendCommand( $lockSrv, 'RELEASE', $type, $keys );
if ( $response !== 'RELEASED' ) {
/** @var Array Map of (resource path => lock type => count) */
protected $locksHeld = array();
+ protected $wiki; // string; wiki ID
+
/* Lock types; stronger locks have higher values */
const LOCK_SH = 1; // shared lock (for reads)
const LOCK_UW = 2; // shared lock (for reads used to write elsewhere)
/**
* Construct a new instance from configuration
*
+ * $config paramaters include:
+ * - wiki : Wiki ID string that all resources are relative to [optional]
+ *
* @param $config Array
*/
- public function __construct( array $config ) {}
+ public function __construct( array $config ) {
+ $this->wiki = isset( $config['wiki'] ) ? $config['wiki'] : wfWikiID();
+ }
/**
* Lock the resources at the given abstract paths
}
/**
- * Get the base 36 SHA-1 of a string, padded to 31 digits
+ * Get the base 36 SHA-1 of a string, padded to 31 digits.
+ * Before hashing, the path will be prefixed with the wiki ID.
+ * This should be used interally for lock key or file names.
*
* @param $path string
* @return string
*/
- final protected static function sha1Base36( $path ) {
- return wfBaseConvert( sha1( $path ), 16, 36, 31 );
+ final protected function sha1Base36Absolute( $path ) {
+ return wfBaseConvert( sha1( "{$this->wiki}:{$path}" ), 16, 36, 31 );
}
/**
* @since 1.19
*/
class LockManagerGroup {
- /**
- * @var LockManagerGroup
- */
- protected static $instance = null;
+ /** @var Array (wiki => LockManager) */
+ protected static $instances = array();
+
+ protected $wiki; // string; wiki ID
/** @var Array of (name => ('class' =>, 'config' =>, 'instance' =>)) */
protected $managers = array();
- protected function __construct() {}
+ /**
+ * @param $wiki string Wiki ID
+ */
+ protected function __construct( $wiki ) {
+ $this->wiki = $wiki;
+ }
/**
+ * @param $wiki string Wiki ID
* @return LockManagerGroup
*/
- public static function singleton() {
- if ( self::$instance == null ) {
- self::$instance = new self();
- self::$instance->initFromGlobals();
+ public static function singleton( $wiki = false ) {
+ $wiki = ( $wiki === false ) ? wfWikiID() : $wiki;
+ if ( !isset( self::$instances[$wiki] ) ) {
+ self::$instances[$wiki] = new self( $wiki );
+ self::$instances[$wiki]->initFromGlobals();
}
- return self::$instance;
+ return self::$instances[$wiki];
}
/**
- * Destroy the singleton instance, so that a new one will be created next
- * time singleton() is called.
+ * Destroy the singleton instances
+ *
+ * @return void
*/
- public static function destroySingleton() {
- self::$instance = null;
+ public static function destroySingletons() {
+ self::$instances = array();
}
/**
*/
protected function register( array $configs ) {
foreach ( $configs as $config ) {
+ $config['wiki'] = $this->wiki;
if ( !isset( $config['name'] ) ) {
throw new MWException( "Cannot register a lock manager with no name." );
}
protected $lockExpiry; // integer; maximum time locks can be held
protected $session = ''; // string; random SHA-1 UUID
- protected $wikiId = ''; // string
/**
* Construct a new instance from configuration.
* each having an odd-numbered list of server names (peers) as values.
* - memcConfig : Configuration array for ObjectCache::newFromParams. [optional]
* If set, this must use one of the memcached classes.
- * - wikiId : Wiki ID string that all resources are relative to. [optional]
*
* @param Array $config
* @throws MWException
}
}
- $this->wikiId = isset( $config['wikiId'] ) ? $config['wikiId'] : wfWikiID();
-
$met = ini_get( 'max_execution_time' ); // this is 0 in CLI mode
$this->lockExpiry = $met ? 2*(int)$met : 2*3600;
* @return string
*/
protected function recordKeyForPath( $path ) {
- $hash = LockManager::sha1Base36( $path );
- list( $db, $prefix ) = wfSplitWikiID( $this->wikiId );
- return wfForeignMemcKey( $db, $prefix, __CLASS__, 'locks', $hash );
+ return implode( ':', array( __CLASS__, 'locks', $this->sha1Base36Absolute( $path ) ) );
}
/**
public function getDescriptionStylesheetUrl() {
if ( isset( $this->scriptDirUrl ) ) {
return $this->makeUrl( 'title=MediaWiki:Filepage.css&' .
- wfArrayToCGI( Skin::getDynamicStylesheetQuery() ) );
+ wfArrayToCgi( Skin::getDynamicStylesheetQuery() ) );
}
return false;
}
global $wgIgnoreImageErrors;
if ( $wgIgnoreImageErrors && !( $flags & self::RENDER_NOW ) ) {
- return $this->handler->getTransform( $this, $thumbPath, $thumbUrl, $params );
+ return $this->getHandler()->getTransform( $this, $thumbPath, $thumbUrl, $params );
} else {
return new MediaTransformError( 'thumbnail_error',
$params['width'], 0, wfMessage( 'thumbnail-dest-create' )->text() );
$params['descriptionUrl'] = wfExpandUrl( $descriptionUrl, PROTO_CANONICAL );
}
+ $handler = $this->getHandler();
$script = $this->getTransformScript();
if ( $script && !( $flags & self::RENDER_NOW ) ) {
// Use a script to transform on client request, if possible
- $thumb = $this->handler->getScriptedTransform( $this, $script, $params );
+ $thumb = $handler->getScriptedTransform( $this, $script, $params );
if ( $thumb ) {
break;
}
}
$normalisedParams = $params;
- $this->handler->normaliseParams( $this, $normalisedParams );
+ $handler->normaliseParams( $this, $normalisedParams );
$thumbName = $this->thumbName( $normalisedParams );
$thumbUrl = $this->getThumbUrl( $thumbName );
// XXX: Pass in the storage path even though we are not rendering anything
// and the path is supposed to be an FS path. This is due to getScalerType()
// getting called on the path and clobbering $thumb->getUrl() if it's false.
- $thumb = $this->handler->getTransform( $this, $thumbPath, $thumbUrl, $params );
+ $thumb = $handler->getTransform( $this, $thumbPath, $thumbUrl, $params );
break;
}
// Clean up broken thumbnails as needed
// XXX: Pass in the storage path even though we are not rendering anything
// and the path is supposed to be an FS path. This is due to getScalerType()
// getting called on the path and clobbering $thumb->getUrl() if it's false.
- $thumb = $this->handler->getTransform(
+ $thumb = $handler->getTransform(
$this, $thumbPath, $thumbUrl, $params );
$thumb->setStoragePath( $thumbPath );
break;
// Actually render the thumbnail...
wfProfileIn( __METHOD__ . '-doTransform' );
- $thumb = $this->handler->doTransform( $this, $tmpThumbPath, $thumbUrl, $params );
+ $thumb = $handler->doTransform( $this, $tmpThumbPath, $thumbUrl, $params );
wfProfileOut( __METHOD__ . '-doTransform' );
$tmpFile->bind( $thumb ); // keep alive with $thumb
$this->lastError = $thumb->toText();
// Ignore errors if requested
if ( $wgIgnoreImageErrors && !( $flags & self::RENDER_NOW ) ) {
- $thumb = $this->handler->getTransform( $this, $tmpThumbPath, $thumbUrl, $params );
+ $thumb = $handler->getTransform( $this, $tmpThumbPath, $thumbUrl, $params );
}
} elseif ( $this->repo && $thumb->hasFile() && !$thumb->fileIsSource() ) {
// Copy the thumbnail from the file system into storage...
/**
* Bump this number when serialized cache records may be incompatible.
*/
-define( 'MW_FILE_VERSION', 8 );
+define( 'MW_FILE_VERSION', 9 );
/**
* Class to represent a local file in the wiki's own database
$sha1, # SHA-1 base 36 content hash
$user, $user_text, # User, who uploaded the file
$description, # Description of current revision of the file
- $dataLoaded, # Whether or not all this has been loaded from the database (loadFromXxx)
+ $dataLoaded, # Whether or not core data has been loaded from the database (loadFromXxx)
+ $extraDataLoaded, # Whether or not lazy-loaded data has been loaded from the database
$upgraded, # Whether the row was upgraded on load
$locked, # True if the image row is locked
$missing, # True if file is not present in file system. Not to be cached in memcached
protected $repoClass = 'LocalRepo';
+ const LOAD_ALL = 1; // integer; load all the lazy fields too (like metadata)
+
/**
* Create a LocalFile from a title
* Do not call this except from inside a repo class.
$this->historyLine = 0;
$this->historyRes = null;
$this->dataLoaded = false;
+ $this->extraDataLoaded = false;
$this->assertRepoDefined();
$this->assertTitleDefined();
wfProfileIn( __METHOD__ );
$this->dataLoaded = false;
+ $this->extraDataLoaded = false;
$key = $this->getCacheKey();
if ( !$key ) {
$cachedValues = $wgMemc->get( $key );
// Check if the key existed and belongs to this version of MediaWiki
- if ( isset( $cachedValues['version'] ) && ( $cachedValues['version'] == MW_FILE_VERSION ) ) {
+ if ( isset( $cachedValues['version'] ) && $cachedValues['version'] == MW_FILE_VERSION ) {
wfDebug( "Pulling file metadata from cache key $key\n" );
$this->fileExists = $cachedValues['fileExists'];
if ( $this->fileExists ) {
$this->setProps( $cachedValues );
}
$this->dataLoaded = true;
+ $this->extraDataLoaded = true;
+ foreach ( $this->getLazyCacheFields( '' ) as $field ) {
+ $this->extraDataLoaded = $this->extraDataLoaded && isset( $cachedValues[$field] );
+ }
}
if ( $this->dataLoaded ) {
}
}
- $wgMemc->set( $key, $cache, 60 * 60 * 24 * 7 ); // A week
+ // Strip off excessive entries from the subset of fields that can become large.
+ // If the cache value gets to large it will not fit in memcached and nothing will
+ // get cached at all, causing master queries for any file access.
+ foreach ( $this->getLazyCacheFields( '' ) as $field ) {
+ if ( isset( $cache[$field] ) && strlen( $cache[$field] ) > 100*1024 ) {
+ unset( $cache[$field] ); // don't let the value get too big
+ }
+ }
+
+ // Cache presence for 1 week and negatives for 1 day
+ $wgMemc->set( $key, $cache, $this->fileExists ? 86400 * 7 : 86400 );
}
/**
return $results[$prefix];
}
+ /**
+ * @return array
+ */
+ function getLazyCacheFields( $prefix = 'img_' ) {
+ static $fields = array( 'metadata' );
+ static $results = array();
+
+ if ( $prefix == '' ) {
+ return $fields;
+ }
+
+ if ( !isset( $results[$prefix] ) ) {
+ $prefixedFields = array();
+ foreach ( $fields as $field ) {
+ $prefixedFields[] = $prefix . $field;
+ }
+ $results[$prefix] = $prefixedFields;
+ }
+
+ return $results[$prefix];
+ }
+
/**
* Load file metadata from the DB
*/
# Unconditionally set loaded=true, we don't want the accessors constantly rechecking
$this->dataLoaded = true;
+ $this->extraDataLoaded = true;
$dbr = $this->repo->getMasterDB();
-
$row = $dbr->selectRow( 'image', $this->getCacheFields( 'img_' ),
array( 'img_name' => $this->getName() ), $fname );
}
/**
- * Decode a row from the database (either object or array) to an array
- * with timestamps and MIME types decoded, and the field prefix removed.
- * @param $row
+ * Load lazy file metadata from the DB.
+ * This covers fields that are sometimes not cached.
+ */
+ protected function loadExtraFromDB() {
+ # Polymorphic function name to distinguish foreign and local fetches
+ $fname = get_class( $this ) . '::' . __FUNCTION__;
+ wfProfileIn( $fname );
+
+ # Unconditionally set loaded=true, we don't want the accessors constantly rechecking
+ $this->extraDataLoaded = true;
+
+ $dbr = $this->repo->getSlaveDB();
+ // In theory the file could have just been renamed/deleted...oh well
+ $row = $dbr->selectRow( 'image', $this->getLazyCacheFields( 'img_' ),
+ array( 'img_name' => $this->getName() ), $fname );
+
+ if ( !$row ) { // fallback to master
+ $dbr = $this->repo->getMasterDB();
+ $row = $dbr->selectRow( 'image', $this->getLazyCacheFields( 'img_' ),
+ array( 'img_name' => $this->getName() ), $fname );
+ }
+
+ if ( $row ) {
+ foreach ( $this->unprefixRow( $row, 'img_' ) as $name => $value ) {
+ $this->$name = $value;
+ }
+ } else {
+ throw new MWException( "Could not find data for image '{$this->getName()}'." );
+ }
+
+ wfProfileOut( $fname );
+ }
+
+ /**
+ * @param Row $row
* @param $prefix string
- * @throws MWException
- * @return array
+ * @return Array
*/
- function decodeRow( $row, $prefix = 'img_' ) {
+ protected function unprefixRow( $row, $prefix = 'img_' ) {
$array = (array)$row;
$prefixLength = strlen( $prefix );
}
$decoded = array();
-
foreach ( $array as $name => $value ) {
$decoded[substr( $name, $prefixLength )] = $value;
}
+ return $decoded;
+ }
+
+ /**
+ * Decode a row from the database (either object or array) to an array
+ * with timestamps and MIME types decoded, and the field prefix removed.
+ * @param $row
+ * @param $prefix string
+ * @throws MWException
+ * @return array
+ */
+ function decodeRow( $row, $prefix = 'img_' ) {
+ $decoded = $this->unprefixRow( $row, $prefix );
$decoded['timestamp'] = wfTimestamp( TS_MW, $decoded['timestamp'] );
*/
function loadFromRow( $row, $prefix = 'img_' ) {
$this->dataLoaded = true;
+ $this->extraDataLoaded = true;
+
$array = $this->decodeRow( $row, $prefix );
foreach ( $array as $name => $value ) {
/**
* Load file metadata from cache or DB, unless already loaded
+ * @param integer $flags
*/
- function load() {
+ function load( $flags = 0 ) {
if ( !$this->dataLoaded ) {
if ( !$this->loadFromCache() ) {
$this->loadFromDB();
}
$this->dataLoaded = true;
}
+ if ( ( $flags & self::LOAD_ALL ) && !$this->extraDataLoaded ) {
+ $this->loadExtraFromDB();
+ }
}
/**
} else {
$handler = $this->getHandler();
if ( $handler ) {
- $validity = $handler->isMetadataValid( $this, $this->metadata );
+ $validity = $handler->isMetadataValid( $this, $this->getMetadata() );
if ( $validity === MediaHandler::METADATA_BAD
|| ( $validity === MediaHandler::METADATA_COMPATIBLE && $wgUpdateCompatibleMetadata )
) {
/**
* Set properties in this object to be equal to those given in the
* associative array $info. Only cacheable fields can be set.
+ * All fields *must* be set in $info except for getLazyCacheFields().
*
* If 'mime' is given, it will be split into major_mime/minor_mime.
* If major_mime/minor_mime are given, $this->mime will also be set.
* @return string
*/
function getMetadata() {
- $this->load();
+ $this->load( self::LOAD_ALL ); // large metadata is loaded in another step
return $this->metadata;
}
function loadFromDB() {
wfProfileIn( __METHOD__ );
+
$this->dataLoaded = true;
$dbr = $this->repo->getSlaveDB();
$conds = array( 'oi_name' => $this->getName() );
if ( is_null( $this->requestedTime ) ) {
$conds['oi_archive_name'] = $this->archive_name;
} else {
- $conds[] = 'oi_timestamp = ' . $dbr->addQuotes( $dbr->timestamp( $this->requestedTime ) );
+ $conds['oi_timestamp'] = $dbr->timestamp( $this->requestedTime );
}
$row = $dbr->selectRow( 'oldimage', $this->getCacheFields( 'oi_' ),
$conds, __METHOD__, array( 'ORDER BY' => 'oi_timestamp DESC' ) );
} else {
$this->fileExists = false;
}
+
+ wfProfileOut( __METHOD__ );
+ }
+
+ /**
+ * Load lazy file metadata from the DB
+ */
+ protected function loadExtraFromDB() {
+ wfProfileIn( __METHOD__ );
+
+ $this->extraDataLoaded = true;
+ $dbr = $this->repo->getSlaveDB();
+ $conds = array( 'oi_name' => $this->getName() );
+ if ( is_null( $this->requestedTime ) ) {
+ $conds['oi_archive_name'] = $this->archive_name;
+ } else {
+ $conds['oi_timestamp'] = $dbr->timestamp( $this->requestedTime );
+ }
+ // In theory the file could have just been renamed/deleted...oh well
+ $row = $dbr->selectRow( 'oldimage', $this->getLazyCacheFields( 'oi_' ),
+ $conds, __METHOD__, array( 'ORDER BY' => 'oi_timestamp DESC' ) );
+
+ if ( !$row ) { // fallback to master
+ $dbr = $this->repo->getMasterDB();
+ $row = $dbr->selectRow( 'oldimage', $this->getLazyCacheFields( 'oi_' ),
+ $conds, __METHOD__, array( 'ORDER BY' => 'oi_timestamp DESC' ) );
+ }
+
+ if ( $row ) {
+ foreach ( $this->unprefixRow( $row, 'oi_' ) as $name => $value ) {
+ $this->$name = $value;
+ }
+ } else {
+ throw new MWException( "Could not find data for image '{$this->archive_name}'." );
+ }
+
wfProfileOut( __METHOD__ );
}
/**
* Return the internal name, e.g. 'mysql', or 'sqlite'.
*/
- public abstract function getName();
+ abstract public function getName();
/**
* @return bool Returns true if the client library is compiled in.
*/
- public abstract function isCompiled();
+ abstract public function isCompiled();
/**
* Checks for installation prerequisites other than those checked by isCompiled()
*
* If this is called, $this->parent can be assumed to be a WebInstaller.
*/
- public abstract function getConnectForm();
+ abstract public function getConnectForm();
/**
* Set variables based on the request array, assuming it was submitted
*
* @return Status
*/
- public abstract function submitConnectForm();
+ abstract public function submitConnectForm();
/**
* Get HTML for a web form that retrieves settings used for installation.
*
* @return Status
*/
- public abstract function openConnection();
+ abstract public function openConnection();
/**
* Create the database and return a Status object indicating success or
*
* @return Status
*/
- public abstract function setupDatabase();
+ abstract public function setupDatabase();
/**
* Connect to the database using the administrative user/password currently
*
* @return String
*/
- public abstract function getLocalSettings();
+ abstract public function getLocalSettings();
/**
* Override this to provide DBMS-specific schema variables, to be
*
* @return Array
*/
- protected abstract function getCoreUpdateList();
+ abstract protected function getCoreUpdateList();
/**
* Append an SQL fragment to the open file handle.
'config-information' => 'Information',
'config-localsettings-upgrade' => "A <code>LocalSettings.php</code> file has been detected.
To upgrade this installation, please enter the value of <code>\$wgUpgradeKey</code> in the box below.
-You will find it in LocalSettings.php.",
- 'config-localsettings-cli-upgrade' => 'A LocalSettings.php file has been detected.
-To upgrade this installation, please run update.php instead',
+You will find it in <code>LocalSettings.php</code>.",
+ 'config-localsettings-cli-upgrade' => 'A <code>LocalSettings.php</code> file has been detected.
+To upgrade this installation, please run <code>update.php</code> instead',
'config-localsettings-key' => 'Upgrade key:',
'config-localsettings-badkey' => 'The key you provided is incorrect.',
'config-upgrade-key-missing' => 'An existing installation of MediaWiki has been detected.
-To upgrade this installation, please put the following line at the bottom of your LocalSettings.php:
+To upgrade this installation, please put the following line at the bottom of your <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'The existing LocalSettings.php appears to be incomplete.
+ 'config-localsettings-incomplete' => 'The existing <code>LocalSettings.php</code> appears to be incomplete.
The $1 variable is not set.
-Please change LocalSettings.php so that this variable is set, and click "Continue".',
- 'config-localsettings-connection-error' => 'An error was encountered when connecting to the database using the settings specified in LocalSettings.php or AdminSettings.php. Please fix these settings and try again.
+Please change <code>LocalSettings.php</code> so that this variable is set, and click "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'An error was encountered when connecting to the database using the settings specified in <code>LocalSettings.php</code> or <code>AdminSettings.php</code>. Please fix these settings and try again.
$1',
'config-session-error' => 'Error starting session: $1',
'config-using531' => 'MediaWiki cannot be used with PHP $1 due to a bug involving reference parameters to <code>__call()</code>.
Upgrade to PHP 5.3.2 or higher, or downgrade to PHP 5.3.0 to resolve this.
Installation aborted.',
- 'config-suhosin-max-value-length' => "Suhosin is installed and limits the GET parameter length to $1 bytes. MediaWiki's ResourceLoader component will work around this limit, but that will degrade performance. If at all possible, you should set suhosin.get.max_value_length to 1024 or higher in php.ini , and set \$wgResourceLoaderMaxQueryLength to the same value in LocalSettings.php .",
+ 'config-suhosin-max-value-length' => "Suhosin is installed and limits the GET parameter <code>length</code> to $1 bytes.
+MediaWiki's ResourceLoader component will work around this limit, but that will degrade performance.
+If at all possible, you should set <code>suhosin.get.max_value_length</code> to 1024 or higher in <code>php.ini</code>, and set <code>\$wgResourceLoaderMaxQueryLength</code> to the same value in <code>LocalSettings.php</code>.",
'config-db-type' => 'Database type:',
'config-db-host' => 'Database host:',
'config-db-host-help' => 'If your database server is on different server, enter the host name or IP address here.
'config-support-postgres' => '* $1 is a popular open source database system as an alternative to MySQL ([http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). There may be some minor outstanding bugs, and it is not recommended for use in a production environment.',
'config-support-sqlite' => '* $1 is a lightweight database system which is very well supported. ([http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], uses PDO)',
'config-support-oracle' => '* $1 is a commercial enterprise database. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])',
- 'config-support-ibm_db2' => '* $1 is a commercial enterprise database.',
+ 'config-support-ibm_db2' => '* $1 is a commercial enterprise database. ([http://www.php.net/manual/en/ibm-db2.installation.php How to compile PHP with IBM DB2 support])',
'config-header-mysql' => 'MySQL settings',
'config-header-postgres' => 'PostgreSQL settings',
'config-header-sqlite' => 'SQLite settings',
'config-upgrade-done-no-regenerate' => "Upgrade complete.
You can now [$1 start using your wiki].",
- 'config-regenerate' => 'Regenerate LocalSettings.php →',
- 'config-show-table-status' => 'SHOW TABLE STATUS query failed!',
+ 'config-regenerate' => 'Regenerate <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => '<code>SHOW TABLE STATUS</code> query failed!',
'config-unknown-collation' => "'''Warning:''' Database is using unrecognised collation.",
'config-db-web-account' => 'Database account for web access',
'config-db-web-help' => 'Select the username and password that the web server will use to connect to the database server, during ordinary operation of the wiki.',
'''Note''': If you do not do this now, this generated configuration file will not be available to you later if you exit the installation without downloading it.
When that has been done, you can '''[$2 enter your wiki]'''.",
- 'config-download-localsettings' => 'Download LocalSettings.php',
+ 'config-download-localsettings' => 'Download <code>LocalSettings.php</code>',
'config-help' => 'help',
'config-nofile' => 'File "$1" could not be found. Has it been deleted?',
'mainpagetext' => "'''MediaWiki has been successfully installed.'''",
'config-title' => 'Parameters:
* $1 is the version of MediaWiki that is being installed.',
'config-information' => '{{Identical|Information}}',
- 'config-localsettings-cli-upgrade' => 'Do not translate the <code>LocalSettings.php</code> and the <code>update.php</code> parts.',
+ 'config-localsettings-cli-upgrade' => 'Do not translate the <code><code>LocalSettings.php</code></code> and the <code>update.php</code> parts.',
'config-session-error' => 'Parameters:
* $1 is the error that was encountered with the session.',
'config-session-expired' => 'Parameters:
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-magic-quotes-runtime' => '{{Related|Config-fatal}}',
+ 'config-magic-quotes-sybase' => '{{Related|Config-fatal}}',
+ 'config-mbstring' => '{{Related|Config-fatal}}',
+ 'config-ze1' => '{{Related|Config-fatal}}',
'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-pcre-no-utf8' => "PCRE is a name of a programmers' library for supporting regular expressions. It can probably be translated without change.
+{{Related|Config-fatal}}",
'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-no-cli-uri' => 'Parameters:
* $1 is the default value for scriptpath.',
'config-no-cli-uploads-check' => 'CLI = [[w:Command-line interface|command-line interface]] (i.e. the installer runs as a command-line script, not using HTML interface via an internet browser)',
- 'config-suhosin-max-value-length' => 'Message shown when PHP parameter suhosin.get.max_value_length is between 0 and 1023 (that max value is hard set in MediaWiki software)',
+ 'config-suhosin-max-value-length' => 'Message shown when PHP parameter <code>suhosin.get.max_value_length</code> is between 0 and 1023 (that max value is hard set in MediaWiki software)
+Do not translate "length" in the first sentence',
'config-db-host-help' => '{{doc-singularthey}}',
'config-db-host-oracle' => 'TNS = [[:wikipedia:Transparent Network Substrate|Transparent Network Substrate]] (<== wikipedia link)',
'config-db-wiki-settings' => 'This is more acurate: "Enter identifying or distinguishing data for this wiki" since a MySQL database can host tables of several wikis.',
* $1 - a link to the SQLite home page having the anchor text "SQLite".',
'config-support-oracle' => 'Parameters:
* $1 - a link to the Oracle home page, the anchor text of which is "Oracle".',
+ 'config-support-ibm_db2' => 'Used in the DBConnect step of the installer, explaining what is the ibm_db2 database',
'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-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-show-table-status' => '{{doc-important|"<code>SHOW TABLE STATUS</code>" 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-logo-help' => '',
'config-cc-not-chosen' => 'Do not translate the <code>"proceed".</code> part.
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-memcached-servers' => '{{doc-important|Do not translate "memcached".}}
+{{Identical|Memcached server}}',
'config-extensions' => '{{Identical|Extension}}',
'config-install-step-done' => '{{Identical|Done}}',
'config-install-database' => '*{{msg-mw|Config-install-database}}
'config-upgrade-done-no-regenerate' => 'Opgradering is voltooi.
U kan nou [$1 u wiki gebruik].',
- 'config-regenerate' => 'Herskep LocalSettings.php →',
- 'config-show-table-status' => 'Die uitvoer van SHOW TABLE STATUS het gefaal!',
+ 'config-regenerate' => 'Herskep <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Die uitvoer van <code>SHOW TABLE STATUS</code> het gefaal!',
'config-db-web-account' => 'Databasisgebruiker vir toegang tot die web',
'config-mysql-engine' => 'Stoor-enjin:',
'config-mysql-innodb' => 'InnoDB',
'config-admin-email' => 'E-posadres:',
'config-optional-continue' => 'Vra my meer vrae.',
'config-optional-skip' => 'Ek is reeds verveeld, installeer maar net die wiki.',
- 'config-profile-wiki' => 'Tradisionele wiki',
+ 'config-profile-wiki' => 'Tradisionele wiki', # Fuzzy
'config-profile-no-anon' => 'Skep van gebruiker is verpligtend',
'config-profile-fishbowl' => 'Slegs vir gemagtigde redaksie',
'config-profile-private' => 'Privaat wiki',
'''Let wel''': As u dit nie nou doen nie, sal die gegenereerde konfigurasielêer nie later meer beskikbaar wees nadat u die installasie afgesluit het nie.
As dit gedoen is, kan u '''[u $2 wiki besoek]'''.", # Fuzzy
- 'config-download-localsettings' => 'Laai LocalSettings.php af',
+ 'config-download-localsettings' => 'Laai <code>LocalSettings.php</code> af',
'config-help' => 'hulp',
'mainpagetext' => "'''MediaWiki is suksesvol geïnstalleer.'''",
'mainpagedocfooter' => "Konsulteer '''[//meta.wikimedia.org/wiki/Help:Contents User's Guide]''' vir inligting oor hoe om die wikisagteware te gebruik.
== Hoe om te Begin ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]",
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
);
/** Gheg Albanian (Gegë)
* @author Jim-by
* @author Wizardist
* @author Zedlik
+ * @author 아라
*/
$messages['be-tarask'] = array(
'config-desc' => 'Праграма ўсталяваньня MediaWiki',
'config-information' => 'Інфармацыя',
'config-localsettings-upgrade' => 'Выяўлены файл <code>LocalSettings.php</code>.
Каб абнавіць гэтае усталяваньне, калі ласка, увядзіце значэньне <code>$wgUpgradeKey</code> у полі ніжэй.
-Яго можна знайсьці ў LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Быў знойдзены файл LocalSettings.php.
-Каб зьмяніць гэтае ўсталяваньне, калі ласка, запусьціце update.php',
+Яго можна знайсьці ў <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Быў знойдзены файл <code>LocalSettings.php</code>.
+Каб зьмяніць гэтае ўсталяваньне, калі ласка, запусьціце <code>update.php</code>',
'config-localsettings-key' => 'Ключ паляпшэньня:',
'config-localsettings-badkey' => 'Пададзены Вамі ключ зьяўляецца няслушным',
'config-upgrade-key-missing' => 'Выяўленае існуючае ўсталяваньне MediaWiki.
-Каб абнавіць гэтае ўсталяваньне, калі ласка, устаўце наступны радок у канец Вашага LocalSettings.php:
+Каб абнавіць гэтае ўсталяваньне, калі ласка, устаўце наступны радок у канец Вашага <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Выглядае, што існуючы LocalSettings.php зьяўляецца няпоўным.
+ 'config-localsettings-incomplete' => 'Выглядае, што існуючы <code>LocalSettings.php</code> зьяўляецца няпоўным.
Не ўстаноўленая пераменная $1.
-Калі ласка, зьмяніце LocalSettings.php так, каб была ўстаноўленая гэтая пераменная, і націсьніце «Працягваць».',
- 'config-localsettings-connection-error' => 'Адбылася памылка падчас злучэньня з базай зьвестак з выкарыстаньнем наладаў, пазначаных у LocalSettings.php ці AdminSettings.php. Калі ласка, выпраўце гэтыя налады і паспрабуйце зноў.
+Калі ласка, зьмяніце <code>LocalSettings.php</code> так, каб была ўстаноўленая гэтая пераменная, і націсьніце «{{int:Config-continue}}».',
+ 'config-localsettings-connection-error' => 'Адбылася памылка падчас злучэньня з базай зьвестак з выкарыстаньнем наладаў, пазначаных у <code>LocalSettings.php</code> ці <code>AdminSettings.php</code>. Калі ласка, выпраўце гэтыя налады і паспрабуйце зноў.
$1',
'config-session-error' => 'Памылка стварэньня сэсіі: $1',
'config-using531' => 'PHP $1 не сумяшчальнае з MediaWiki з-за памылкі ў перадачы парамэтраў па ўказальніку да <code>__call()</code>.
Абнавіце PHP да вэрсіі 5.3.2 ці болей позьняй, ці адкаціце да вэрсіі 5.3.0 каб гэта выправіць.
Усталяваньне перарванае.',
- 'config-suhosin-max-value-length' => 'Suhosin усталяваны і абмяжоўвае даўжыню парамэтра GET у $1 {{PLURAL:$1|байт|байты|байтаў}}. ResourceLoader для MediaWiki будзе абходзіць гэтае абмежаваньне, што, аднак, адаб’ецца на хуткадзеяньні. Калі магчыма, варта ўстанавіць suhosin.get.max_value_length роўным 1024 ці больш у php.ini, а таксама ўстанавіць тое ж значэньне для $wgResourceLoaderMaxQueryLength у LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'Suhosin усталяваны і абмяжоўвае <code>даўжыню</code> парамэтра GET да $1 {{PLURAL:$1|байта|байтаў}}.
+ResourceLoader, складнік MediaWiki, будзе абходзіць гэтае абмежаваньне, што, адаб’ецца на прадукцыйнасьці.
+Калі магчыма, варта ўсталяваць у <code>php.ini</code> <code>suhosin.get.max_value_length</code> роўным 1024 ці больш, а таксама вызначыць тое ж значэньне для <code>$wgResourceLoaderMaxQueryLength</code> у LocalSettings.php.',
'config-db-type' => 'Тып базы зьвестак:',
'config-db-host' => 'Хост базы зьвестак:',
'config-db-host-help' => 'Калі сэрвэр Вашай базы зьвестак знаходзіцца на іншым сэрвэры, увядзіце тут імя хоста ці IP-адрас.
'config-support-postgres' => '* $1 — вядомая сыстэма базы зьвестак з адкрытым кодам, якая зьяўляецца альтэрнатывай MySQL ([http://www.php.net/manual/en/pgsql.installation.php як кампіляваць PHP з падтрымкай PostgreSQL]). Яна можа ўтрымліваць дробныя памылкі, і не рэкамэндуецца выкарыстоўваць яе для працуючых праектаў.',
'config-support-sqlite' => '* $1 — невялікая сыстэма базы зьвестак, якая мае вельмі добрую падтрымку. ([http://www.php.net/manual/en/pdo.installation.php як кампіляваць PHP з падтрымкай SQLite], выкарыстоўвае PDO)',
'config-support-oracle' => '* $1 зьяўляецца камэрцыйнай прафэсійнай базай зьвестак. ([http://www.php.net/manual/en/oci8.installation.php Як скампіляваць PHP з падтрымкай OCI8])',
- 'config-support-ibm_db2' => '* $1 â\80\94 база зÑ\8cвеÑ\81Ñ\82ак камÑ\8dÑ\80Ñ\86Ñ\8bйнага пÑ\80адпÑ\80Ñ\8bемÑ\81Ñ\82ва.',
+ 'config-support-ibm_db2' => '* $1 â\80\94 база зÑ\8cвеÑ\81Ñ\82ак маÑ\88Ñ\82абÑ\83 пÑ\80адпÑ\80Ñ\8bемÑ\81Ñ\82ва. ([http://www.php.net/manual/en/ibm-db2.installation.php Як Ñ\81кампÑ\96лÑ\8fваÑ\86Ñ\8c PHP з падÑ\82Ñ\80Ñ\8bмкай IBM DB2])',
'config-header-mysql' => 'Налады MySQL',
'config-header-postgres' => 'Налады PostgreSQL',
'config-header-sqlite' => 'Налады SQLite',
'config-upgrade-done-no-regenerate' => 'Абнаўленьне скончанае.
Цяпер Вы можаце [$1 пачаць працу з вікі].',
- 'config-regenerate' => 'Рэгенэраваць LocalSettings.php →',
- 'config-show-table-status' => "Запыт 'SHOW TABLE STATUS' не атрымаўся!",
+ 'config-regenerate' => 'Рэгенэраваць <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => "Запыт '<code>SHOW TABLE STATUS</code>' не атрымаўся!",
'config-unknown-collation' => "'''Папярэджаньне:''' база зьвестак выкарыстоўвае нераспазнанае супастаўленьне.",
'config-db-web-account' => 'Рахунак базы зьвестак для вэб-доступу',
'config-db-web-help' => 'Выберыце імя карыстальніка і пароль, які выкарыстоўваецца вэб-сэрвэрам для злучэньня з сэрвэрам базы зьвестак, падчас звычайных апэрацыяў вікі.',
'config-optional-continue' => 'Задаць болей пытаньняў.',
'config-optional-skip' => 'Хопіць, проста ўсталяваць вікі.',
'config-profile' => 'Профіль правоў удзельніка:',
- 'config-profile-wiki' => 'ТÑ\80адÑ\8bÑ\86Ñ\8bйная вікі',
+ 'config-profile-wiki' => 'Ð\90дкÑ\80Ñ\8bÑ\82ая вікі',
'config-profile-no-anon' => 'Патрэбнае стварэньне рахунку',
'config-profile-fishbowl' => 'Толькі для аўтарызаваных рэдактараў',
'config-profile-private' => 'Прыватная вікі',
Сцэнар '''{{int:config-profile-fishbowl}}''' дазваляе рэдагаваць зацьверджаным удзельнікам, але ўсе могуць праглядаць старонкі іх гісторыю.
'''{{int:config-profile-private}}''' дазваляе праглядаць і рэдагаваць старонкі толькі зацьверджаным удзельнікам.
-Больш складаныя правы ўдзельнікаў даступныя пасьля ўсталяваньня, глядзіце [//www.mediawiki.org/wiki/Manual:User_rights адпаведную старонку дакумэнтацыі].",
+Больш складаныя правы ўдзельнікаў даступныя пасьля ўсталяваньня, глядзіце [//www.mediawiki.org/wiki/Manual:User_rights адпаведную старонку дакумэнтацыі].", # Fuzzy
'config-license' => 'Аўтарскія правы і ліцэнзія:',
'config-license-none' => 'Без інфармацыі пра ліцэнзію',
'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
'config-install-alreadydone' => "'''Папярэджаньне:''' здаецца, што Вы ўжо ўсталёўвалі MediaWiki і спрабуеце зрабіць гэтай зноў.
Калі ласка, перайдзіце на наступную старонку.",
'config-install-begin' => 'Пасьля націску кнопкі «{{int:config-continue}}» пачнецца ўсталяваньне MediaWiki.
-Калі Вы жадаеце што-небудзь зьмяніць, націсьніце кнопку «Вярнуцца».',
+Калі Вы жадаеце што-небудзь зьмяніць, націсьніце кнопку «Вярнуцца».', # Fuzzy
'config-install-step-done' => 'зроблена',
'config-install-step-failed' => 'не атрымалася',
'config-install-extensions' => 'Уключаючы пашырэньні',
'''Заўвага''': калі Вы гэтага ня зробіце зараз, то створаны файл ня будзе даступны Вам потым, калі Вы выйдзеце з праграмы ўсталяваньня без яго загрузкі.
Калі Вы гэта зробіце, Вы можаце '''[$2 ўвайсьці ў Вашую вікі]'''.",
- 'config-download-localsettings' => 'Загрузіць LocalSettings.php',
+ 'config-download-localsettings' => 'Загрузіць <code>LocalSettings.php</code>',
'config-help' => 'дапамога',
'config-nofile' => 'Файл «$1» ня знойдзены. Ці быў ён выдалены?',
'mainpagetext' => "'''MediaWiki пасьпяхова ўсталяваная.'''",
== З чаго пачаць ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Сьпіс парамэтраў канфігурацыі]
* [//www.mediawiki.org/wiki/Manual:FAQ Частыя пытаньні MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка паведамленьняў пра зьяўленьне новых вэрсіяў MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка паведамленьняў пра зьяўленьне новых вэрсіяў MediaWiki]', # Fuzzy
);
/** Bulgarian (български)
* @author DCLXVI
+ * @author 아라
*/
$messages['bg'] = array(
'config-desc' => 'Инсталатор на МедияУики',
'config-information' => 'Информация',
'config-localsettings-upgrade' => 'Беше открит файл <code>LocalSettings.php</code>.
За надграждане на съществуващата инсталация, необходимо е в кутията по-долу да се въведе стойността на <code>$wgUpgradeKey</code>.
-Тази информация е налична в LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Беше открит файл LocalSettings.php.
-За надграждане на наличната инсталация, необходимо е да се стартира update.php',
+Тази информация е налична в <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Беше открит файл <code>LocalSettings.php</code>.
+За надграждане на наличната инсталация, необходимо е да се стартира <code>update.php</code>',
'config-localsettings-key' => 'Ключ за надграждане:',
'config-localsettings-badkey' => 'Предоставеният ключ е неправилен.',
'config-upgrade-key-missing' => 'Беше открита съществуваща инсталация на МедияУики.
-За надграждане на съществуващата инсталация, необходимо е да се постави следният ред в края на файла LocalSettings.php:
+За надграждане на съществуващата инсталация, необходимо е да се постави следният ред в края на файла <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Съществуващият файл LocalSettings.php изглежда непълен.
+ 'config-localsettings-incomplete' => 'Съществуващият файл <code>LocalSettings.php</code> изглежда непълен.
Променливата $1 не е зададена.
-Необходимо е да се редактира файлът LocalSettings.php и да се зададе променливата, след което да се натисне "Продължаване".',
- 'config-localsettings-connection-error' => 'Възникна грешка при свързване с базата от данни чрез данните, посочени в LocalSettings.php или AdminSettings.php. Необходимо е да се коригират тези настройки преди повторен опит за свързване.
+Необходимо е да се редактира файлът <code>LocalSettings.php</code> и да се зададе променливата, след което да се натисне „{{int:Config-continue}}“.',
+ 'config-localsettings-connection-error' => 'Възникна грешка при свързване с базата от данни чрез данните, посочени в <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Необходимо е да се коригират тези настройки преди повторен опит за свързване.
$1',
'config-session-error' => 'Грешка при създаване на сесия: $1',
'config-using531' => 'МедияУики не може да се използва с PHP $1 заради проблем с референтните параметри за <code>__call()</code>.
За разрешаване на този проблем е необходимо да се обнови до PHP 5.3.2 или по-нова версия или да се инсталира по-стара версия, напр. PHP 5.3.0.
Инсталацията беше прекратена.',
- 'config-suhosin-max-value-length' => 'Suhosin е инсталиран и ограничава дължината на параметъра GET на $1 байта. Компонентът на МедияУики ResourceLoader ще може да пренебрегне частично това ограничение, но това ще намали производителността. По възможност е препоръчително да се настрои suhosin.get.max_value_length на 1024 или по-голяма стойност в php.ini и в LocalSettings.php да се настрои $wgResourceLoaderMaxQueryLength със същата стойност.',
+ 'config-suhosin-max-value-length' => 'Suhosin е инсталиран и ограничава дължината на параметъра GET на $1 байта. Компонентът на МедияУики ResourceLoader ще може да пренебрегне частично това ограничение, но това ще намали производителността. По възможност е препоръчително да се настрои <code>suhosin.get.max_value_length</code> на 1024 или по-голяма стойност в <code>php.ini</code> и в LocalSettings.php да се настрои <code>$wgResourceLoaderMaxQueryLength</code> със същата стойност.', # Fuzzy
'config-db-type' => 'Тип на базата от данни:',
'config-db-host' => 'Хост на базата от данни:',
'config-db-host-help' => 'Ако базата от данни е на друг сървър, в кутията се въвежда името на хоста или IP адреса.
'config-support-postgres' => '* $1 е популярна система за бази от данни с отворен изходен код, която е алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php как се компилира PHP с поддръжка на PostgreSQL]). Възможно е все още да има грешки, затова не се препоръчва да се използва в общодостъпна среда.',
'config-support-sqlite' => '* $1 е лека система за база от данни, която е много добре поддържана. ([http://www.php.net/manual/en/pdo.installation.php Как се компилира PHP с поддръжка на SQLite], използва PDO)',
'config-support-oracle' => '* $1 е комерсиална корпоративна база от данни. ([http://www.php.net/manual/en/oci8.installation.php Как се компилира PHP с поддръжка на OCI8])',
- 'config-support-ibm_db2' => '* $1 е комерсиална фирмена база от данни.',
+ 'config-support-ibm_db2' => '* $1 е комерсиална фирмена база от данни. ([http://www.php.net/manual/en/ibm-db2.installation.php Как се компилира PHP с поддръжка на IBM DB2])',
'config-header-mysql' => 'Настройки за MySQL',
'config-header-postgres' => 'Настройки за PostgreSQL',
'config-header-sqlite' => 'Настройки за SQLite',
'config-upgrade-done-no-regenerate' => 'Обновяването приключи.
Вече е възможно [$1 да използвате уикито].',
- 'config-regenerate' => 'Създаване на LocalSettings.php →',
- 'config-show-table-status' => 'Заявката SHOW TABLE STATUS не сполучи!',
+ 'config-regenerate' => 'Създаване на <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Заявката <code>SHOW TABLE STATUS</code> не сполучи!',
'config-unknown-collation' => "'''Предупреждение:''' Базата от данни използва неразпозната колация.",
'config-db-web-account' => 'Сметка за уеб достъп до базата от данни',
'config-db-web-help' => 'Избиране на потребителско име и парола, които уеб сървърът ще използва да се свързва с базата от данни при обичайната работа на уикито.',
'config-optional-continue' => 'Задаване на допълнителни въпроси.',
'config-optional-skip' => 'Достатъчно, инсталиране на уикито.',
'config-profile' => 'Профил на потребителските права:',
- 'config-profile-wiki' => 'ТÑ\80адиÑ\86ионно уики',
+ 'config-profile-wiki' => 'Ð\9eÑ\82воÑ\80ено уики',
'config-profile-no-anon' => 'Необходимо е създаване на сметка',
'config-profile-fishbowl' => 'Само одобрени редактори',
'config-profile-private' => 'Затворено уики',
Уики, което е '''{{int:config-profile-fishbowl}}''' позволява на всички да преглеждат страниците, но само предварително одобрени редактори могат да редактират съдържанието.
В '''{{int:config-profile-private}}''' само предварително одобрени потребители могат да четат и редактират съдържанието.
-Детайлно обяснение на конфигурациите на потребителските права е достъпно след инсталацията в [//www.mediawiki.org/wiki/Manual:User_rights Наръчника за потребителски права].",
+Детайлно обяснение на конфигурациите на потребителските права е достъпно след инсталацията в [//www.mediawiki.org/wiki/Manual:User_rights Наръчника за потребителски права].", # Fuzzy
'config-license' => 'Авторски права и лиценз:',
'config-license-none' => 'Без лиценз',
'config-license-cc-by-sa' => 'Криейтив Комънс Признание-Споделяне на споделеното',
Възможно е те да изискват допълнително конфигуриране, но сега могат да бъдат включени.',
'config-install-alreadydone' => "'''Предупреждение:''' Изглежда вече сте инсталирали МедияУики и се опитвате да го инсталирате отново.
Продължете към следващата страница.",
- 'config-install-begin' => 'Инсталацията на МедияУики ще започне след натискане на бутона "{{int:config-continue}}".
-Ð\90ко желаеÑ\82е да напÑ\80авиÑ\82е пÑ\80омени, наÑ\82иÑ\81неÑ\82е Ð\92Ñ\80Ñ\8aÑ\89ане.',
+ 'config-install-begin' => 'Инсталацията на МедияУики ще започне след натискане на бутона „{{int:config-continue}}“.
+Ð\92 Ñ\81лÑ\83Ñ\87ай, Ñ\87е е необÑ\85одимо да Ñ\81е напÑ\80авÑ\8fÑ\82 пÑ\80омени, използва Ñ\81е бÑ\83Ñ\82она â\80\9e{{int:config-back}}â\80\9c.',
'config-install-step-done' => 'готово',
'config-install-step-failed' => 'неуспешно',
'config-install-extensions' => 'Добавяне на разширенията',
'''Забележка''': Ако това не бъде извършено сега, генерираният конфигурационен файл няма да е достъпен на по-късен етап ако не бъде изтеглен сега или инсталацията приключи без изтеглянето му.
Когато файлът вече е в основната директория, '''[$2 уикито ще е достъпно на този адрес]'''.",
- 'config-download-localsettings' => 'Изтегляне на LocalSettings.php',
+ 'config-download-localsettings' => 'Изтегляне на <code>LocalSettings.php</code>',
'config-help' => 'помощ',
'config-nofile' => 'Файлът „$1“ не може да бъде открит. Да не е бил изтрит?',
'mainpagetext' => "'''Уикито беше успешно инсталирано.'''",
- 'mainpagedocfooter' => 'Разгледайте [//meta.wikimedia.org/wiki/Help:Contents ръководството] за подробна информация относно използването на софтуера.
+ 'mainpagedocfooter' => 'РазгледайÑ\82е [//meta.wikimedia.org/wiki/Help:Contents Ñ\80Ñ\8aководÑ\81Ñ\82воÑ\82о] за подÑ\80обна инÑ\84оÑ\80маÑ\86иÑ\8f оÑ\82ноÑ\81но използванеÑ\82о на Ñ\83ики Ñ\81оÑ\84Ñ\82Ñ\83еÑ\80а.
== Първи стъпки ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Ð\9aонÑ\84игÑ\83Ñ\80аÑ\86ионни наÑ\81Ñ\82Ñ\80ойки]
+* [//www.mediawiki.org/wiki/Manual:Configuration_settings Ð\9dаÑ\81Ñ\82Ñ\80ойки за конÑ\84игÑ\83Ñ\80иÑ\80ане]
* [//www.mediawiki.org/wiki/Manual:FAQ ЧЗВ за МедияУики]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Пощенски списък относно нови версии на МедияУики]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Пощенски списък относно нови версии на МедияУики]
+* [//www.mediawiki.org/wiki/Localisation#Translation_resources Локализиране на МедияУики]',
);
/** Banjar (Bahasa Banjar)
* @author Fulup
* @author Gwendal
* @author Y-M D
+ * @author 아라
*/
$messages['br'] = array(
'config-desc' => 'Poellad staliañ MediaWIki',
'config-information' => 'Titouroù',
'config-localsettings-upgrade' => 'Kavet ez eus bet ur restr <code>LocalSettings.php</code>.
Evit hizivaat ar staliadur-se, merkit an talvoud <code>$wgUpgradeKey</code> er voest dindan.
-E gavout a rit e LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Dinoet ez eus bet ur restr LocalSettings.php.
-Evit lakaat ar staliadur-mañ a-live, implijit update.php e plas',
+E gavout a rit e <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Dinoet ez eus bet ur restr <code>LocalSettings.php</code>.
+Evit lakaat ar staliadur-mañ a-live, implijit <code>update.php</code> e plas',
'config-localsettings-key' => "Alc'hwez hizivaat :",
'config-localsettings-badkey' => "Direizh eo an alc'hwez merket ganeoc'h",
'config-upgrade-key-missing' => 'Kavet ez eus bet ur staliadur kent eus MediaWiki.
-Evit hizivaat ar staliadur-se, ouzhpennit al linenn da-heul e traoñ ho restr LocalSettings.php:
+Evit hizivaat ar staliadur-se, ouzhpennit al linenn da-heul e traoñ ho restr <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => "Diglok e seblant bezañ ar restr LocalSettings.php zo anezhi dija.
+ 'config-localsettings-incomplete' => "Diglok e seblant bezañ ar restr <code>LocalSettings.php</code> zo anezhi dija.
An argemmenn $1 n'eo ket termenet.
-Kemmit LocalSettings.php evit ma vo termenet an argemmenn-se, ha klikit war « Kenderc'hel ».",
- 'config-localsettings-connection-error' => "C'hoarvezet ez eus ur fazi en ur gevreañ ouzh an diaz roadennoù oc'h implijout an arventennoù diferet e LocalSettings.php pe AdminSettings.php. Reizhit an arventennoù-se hag esaeit en-dro.
+Kemmit <code>LocalSettings.php</code> evit ma vo termenet an argemmenn-se, ha klikit war « {{int:Config-continue}} ».",
+ 'config-localsettings-connection-error' => "C'hoarvezet ez eus ur fazi en ur gevreañ ouzh an diaz roadennoù oc'h implijout an arventennoù diferet e <code>LocalSettings.php</code> pe <code>AdminSettings.php</code>. Reizhit an arventennoù-se hag esaeit en-dro.
$1",
'config-session-error' => "Fazi e-ser loc'hañ an dalc'h : $1",
'config-support-postgres' => "* Ur reizhiad diaz titouroù brudet ha digor eo $1. Gallout a ra ober evit MySQL ([http://www.php.net/manual/en/pgsql.installation.php Penaos kempunañ PHP gant skor PostgreSQL]). Gallout a ra bezañ un nebeud drein bihan enni ha n'eo ket erbedet he implijout en un endro produiñ.",
'config-support-sqlite' => "* $1 zo ur reizhiad diaz titouroù skañv skoret eus ar c'hentañ. ([http://www.php.net/manual/en/pdo.installation.php Penaos kempunañ PHP gant skor SQLite], implijout a ra PDO)",
'config-support-oracle' => '* $1 zo un diaz titouroù kenwerzhel. ([http://www.php.net/manual/en/oci8.installation.php Penaos kempunañ PHP gant skor OCI8])',
- 'config-support-ibm_db2' => '* Un diaz titouroù evit embregerezhioù kenwerzhel eo $1.',
+ 'config-support-ibm_db2' => '* Un diaz titouroù evit embregerezhioù kenwerzhel eo $1.', # Fuzzy
'config-header-mysql' => 'Arventennoù MySQL',
'config-header-postgres' => 'Arventennoù PostgreSQL',
'config-header-sqlite' => 'Arventennoù SQLite',
'config-upgrade-done-no-regenerate' => 'Hizivadenn kaset da benn.
Gallout a rit [$1 kregiñ da implijout ho wiki].',
- 'config-regenerate' => 'Adgenel LocalSettings.php →',
- 'config-show-table-status' => "C'hwitet ar reked SHOW TABLE STATUS !",
+ 'config-regenerate' => 'Adgenel <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => "C'hwitet ar reked <code>SHOW TABLE STATUS</code> !",
'config-unknown-collation' => "'''Diwallit :''' Emañ an diaz roadennoù o renkañ an traoù diouzh un urzh lizherennek dianav.",
'config-db-web-account' => 'Kont an diaz roadennoù evit ar voned Kenrouedad',
'config-db-web-help' => 'Diuzañ an anv implijer hag ar ger-tremen a vo implijet gant ar servijer web evit kevreañ ouzh ar servijer diaz roadennoù pa vez ar wiki o vont en-dro war ar pemdez.',
'config-optional-continue' => "Sevel muioc'h a goulennoù ouzhin.",
'config-optional-skip' => 'Aet on skuizh, staliañ ar wiki hepken.',
'config-profile' => 'Profil ar gwirioù implijer :',
- 'config-profile-wiki' => 'Wiki hengounel',
+ 'config-profile-wiki' => 'Wiki hengounel', # Fuzzy
'config-profile-no-anon' => 'Krouidigezh ur gont ret',
'config-profile-fishbowl' => 'Embanner aotreet hepken',
'config-profile-private' => 'Wiki prevez',
'config-install-alreadydone' => "'''Diwallit''': Staliet hoc'h eus MediaWiki dija war a seblant hag emaoc'h o klask e staliañ c'hoazh.
Kit d'ar bajenn war-lerc'h, mar plij.",
'config-install-begin' => 'Pa vo bet pouezet ganeoc\'h war "{{int:config-continue}}" e krogo staliadur MediaWiki.
-Pouezit war Kent mar fell deoc\'h cheñch tra pe dra.',
+Pouezit war Kent mar fell deoc\'h cheñch tra pe dra.', # Fuzzy
'config-install-step-done' => 'graet',
'config-install-step-failed' => "c'hwitet",
'config-install-extensions' => 'En ur gontañ an astennoù',
'config-install-mainpage' => "O krouiñ ar bajenn bennañ gant un endalc'had dre ziouer",
'config-install-extension-tables' => 'O krouiñ taolennoù evit an astennoù gweredekaet',
'config-install-mainpage-failed' => "Ne c'haller ket ensoc'hañ ar bajenn bennañ: $1",
- 'config-download-localsettings' => 'Pellgargañ LocalSettings.php',
+ 'config-download-localsettings' => 'Pellgargañ <code>LocalSettings.php</code>',
'config-help' => 'skoazell',
'mainpagetext' => "'''Meziant MediaWiki staliet.'''",
'mainpagedocfooter' => "Sellit ouzh [//meta.wikimedia.org/wiki/Help:Contents Sturlevr an implijerien] evit gouzout hiroc'h war an doare da implijout ar meziant wiki.
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]",
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
);
/** Bosnian (bosanski)
'config-information' => 'Informacija',
'config-localsettings-upgrade' => 'Otkrivena je datoteka <code>LocalSettings.php</code>.
Da biste unaprijedili vaš softver, molimo vas upišite vrijednost od <code>$wgUpgradeKey</code> u okvir ispod.
-Naći ćete ga u LocalSettings.php.',
+Naći ćete ga u <code>LocalSettings.php</code>.',
'config-localsettings-key' => 'Ključ za nadgradnju:',
'config-session-error' => 'Greška pri pokretanju sesije: $1',
'config-no-session' => 'Vaši podaci sesije su izgubljeni!
== Početak ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista postavki]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki najčešće postavljana pitanja]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]', # Fuzzy
);
/** Catalan (català)
/** Czech (česky)
* @author Danny B.
* @author Mormegil
+ * @author 아라
*/
$messages['cs'] = array(
'config-desc' => 'Instalační program pro MediaWiki',
'config-title' => 'Instalace MediaWiki $1',
'config-information' => 'Informace',
'config-localsettings-upgrade' => 'Byl nalezen soubor <code>LocalSettings.php</code>.
-Pokud chcete stávající instalaci aktualizovat, zadejte hodnotu <code>$wgUpgradeKey</code>, kterou naleznete v souboru LocalSettings.php, do následujícího rámečku.',
- 'config-localsettings-cli-upgrade' => 'Byl detekován soubor <code>LocalSettings.php</code>
+Pokud chcete stávající instalaci aktualizovat, zadejte hodnotu <code>$wgUpgradeKey</code>, kterou naleznete v souboru <code>LocalSettings.php</code>, do následujícího rámečku.',
+ 'config-localsettings-cli-upgrade' => 'Byl detekován soubor <code><code>LocalSettings.php</code></code>
Pro aktualizaci spusťte místo instalace skript <code>update.php</code>.',
'config-localsettings-key' => 'Klíč pro aktualizaci:',
'config-localsettings-badkey' => 'Zadaný klíč je nesprávný.',
'config-upgrade-key-missing' => 'Byla detekována existující instalace MediaWiki.
-Pokud ji chcete aktualizovat, přidejte následující řádku na konec souboru LocalSettings.php:
+Pokud ji chcete aktualizovat, přidejte následující řádku na konec souboru <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Existující soubor LocalSettings.php vypadá neúplný.
+ 'config-localsettings-incomplete' => 'Existující soubor <code>LocalSettings.php</code> vypadá neúplný.
Není nastavena proměnná $1.
-Upravte soubor LocalSettings.php tak, aby tuto proměnnou obsahoval, a klikněte na „Pokračovat“.',
- 'config-localsettings-connection-error' => 'Při připojování k databázi s využitím nastavení uvedených v LocalSettings.php nebo AdminSettings.php došlo k chybě. Opravte tato nastavení a zkuste to znovu.
+Upravte soubor <code>LocalSettings.php</code> tak, aby tuto proměnnou obsahoval, a klikněte na „{{int:Config-continue}}“.',
+ 'config-localsettings-connection-error' => 'Při připojování k databázi s využitím nastavení uvedených v <code>LocalSettings.php</code> nebo <code>AdminSettings.php</code> došlo k chybě. Opravte tato nastavení a zkuste to znovu.
$1',
'config-session-error' => 'Nepodařilo se inicializovat relaci: $1',
'config-using531' => 'MediaWiki nelze používat na PHP $1 kvůli chybě při předávání parametrů odkazem do <code>__call()</code>.
Pro vyřešení upgradujte na PHP 5.3.2 nebo vyšší nebo downgradujte na PHP 5.3.0.
Instalace přerušena.',
- 'config-suhosin-max-value-length' => 'Je nainstalován Suhosin, který omezuje délku parametrů GET na $1 bajtů. Komponenta ResourceLoader z MediaWiki dokáže s tímto omezením pracovat, ale sníží to výkon. Pokud to je alespoň trochu možné, měli byste v php.ini nastavit suhosin.get.max_value_length na 1024 nebo vyšší a na stejnou hodnotu nastavit v LocalSettings.php proměnnou $wgResourceLoaderMaxQueryLength.',
+ 'config-suhosin-max-value-length' => 'Je nainstalován Suhosin, který omezuje délku parametrů GET na $1 bajtů. Komponenta ResourceLoader z MediaWiki dokáže s tímto omezením pracovat, ale sníží to výkon. Pokud to je alespoň trochu možné, měli byste v <code>php.ini</code> nastavit <code>suhosin.get.max_value_length</code> na 1024 nebo vyšší a na stejnou hodnotu nastavit v LocalSettings.php proměnnou <code>$wgResourceLoaderMaxQueryLength</code>.', # Fuzzy
'config-db-type' => 'Typ databáze:',
'config-db-host' => 'Databázový server:',
'config-db-host-help' => 'Pokud je váš databázový server na jiném počítači, zadejte zde jméno stroje nebo IP adresu.
'config-support-postgres' => '* $1 je populární open-source databázový systém používaný jako alternativa k MySQL ([http://www.php.net/manual/en/pgsql.installation.php jak přeložit PHP s podporou PostgreSQL]). Mohou se vyskytnout ještě nějaké menší chyby, použití v produkčním prostředí se nedoporučuje.',
'config-support-sqlite' => '* $1 je velmi dobře podporovaný lehký databázový systém. ([http://www.php.net/manual/en/pdo.installation.php Jak přeložit PHP s podporou SQLite], používá PDO)',
'config-support-oracle' => '* $1 je komerční podniková databáze. ([http://www.php.net/manual/en/oci8.installation.php Jak přeložit PHP s podporou OCI8])',
- 'config-support-ibm_db2' => '* $1 je komerční podniková databáze.',
+ 'config-support-ibm_db2' => '* $1 je komerční podniková databáze.', # Fuzzy
'config-header-mysql' => 'Nastavení MySQL',
'config-header-postgres' => 'Nastavení PostgreSQL',
'config-header-sqlite' => 'Nastavení SQLite',
'config-upgrade-done-no-regenerate' => 'Aktualizace byla dokončena.
Svou wiki teď můžete [$1 začít používat].',
- 'config-regenerate' => 'Přegenerovat LocalSettings.php →',
- 'config-show-table-status' => 'Dotaz SHOW TABLE STATUS se nezdařil!',
+ 'config-regenerate' => 'Přegenerovat <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Dotaz <code>SHOW TABLE STATUS</code> se nezdařil!',
'config-unknown-collation' => "'''Upozornění:''' Databáze používá nerozpoznané řazení.",
'config-db-web-account' => 'Databázový účet pro webový přístup',
'config-db-web-help' => 'Zvolte uživatelské jméno a heslo, které bude webový server používat pro připojení k databázovému serveru při běžném provozu wiki.',
'config-optional-continue' => 'Ptejte se mě dál.',
'config-optional-skip' => 'Už mě to nudí, prostě nainstalujte wiki.',
'config-profile' => 'Profil uživatelských práv:',
- 'config-profile-wiki' => 'Tradiční wiki',
+ 'config-profile-wiki' => 'Tradiční wiki', # Fuzzy
'config-profile-no-anon' => 'Vyžadována registrace uživatelů',
'config-profile-fishbowl' => 'Editace jen pro vybrané',
'config-profile-private' => 'Soukromá wiki',
Profil '''{{int:config-profile-fishbowl}}''' umožňuje schváleným uživatelům editovat, ale veřejnost si může stránky prohlížet včetně jejich historie.
'''{{int:config-profile-private}}''' dovoluje stránky prohlížet jen schváleným uživatelům, kteří je i mohou editovat.
-Po instalaci je možná komplexní konfigurace uživatelských práv; vizte [//www.mediawiki.org/wiki/Manual:User_rights odpovídající stránku příručky].",
+Po instalaci je možná komplexní konfigurace uživatelských práv; vizte [//www.mediawiki.org/wiki/Manual:User_rights odpovídající stránku příručky].", # Fuzzy
'config-license' => 'Autorská práva a licence:',
'config-license-none' => 'Bez patičky s licencí',
'config-license-cc-by-sa' => 'Creative Commons Uveďte autora-Zachovejte licenci',
'config-install-alreadydone' => "'''Upozornění:''' Vypadá to, že jste MediaWiki již nainstalovali a teď se o to pokoušíte znovu.
Pokračujte na další stránku.",
'config-install-begin' => 'Stisknutím „{{int:config-continue}}“ spustíte instalaci MediaWiki.
-Pokud ještě chcete udělat nějaké změny, stiskněte tlačítko zpět.',
+Pokud ještě chcete udělat nějaké změny, stiskněte tlačítko zpět.', # Fuzzy
'config-install-step-done' => 'hotovo',
'config-install-step-failed' => 'selhaly',
'config-install-extensions' => 'Vkládají se rozšíření',
'''Poznámka''': Pokud to neuděláte hned, tento vygenerovaný konfigurační soubor nebude později dostupný, pokud instalaci opustíte, aniž byste si ho stáhli.
Až to dokončíte, můžete '''[$2 vstoupit do své wiki]'''.",
- 'config-download-localsettings' => 'Stáhnout LocalSettings.php',
+ 'config-download-localsettings' => 'Stáhnout <code>LocalSettings.php</code>',
'config-help' => 'nápověda',
'config-nofile' => 'Soubor „$1“ nelze nalézt. Byl smazán?',
'mainpagetext' => "'''MediaWiki byla úspěšně nainstalována.'''",
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Nastavení konfigurace]
* [//www.mediawiki.org/wiki/Manual:FAQ Často kladené otázky o MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]', # Fuzzy
);
/** Kashubian (kaszëbsczi)
* @author Rillke
* @author The Evil IP address
* @author Umherirrender
+ * @author 아라
*/
$messages['de'] = array(
'config-desc' => 'Das MediaWiki-Installationsprogramm',
'config-information' => 'Informationen',
'config-localsettings-upgrade' => 'Eine Datei <code>LocalSettings.php</code> wurde gefunden.
Um die vorhandene Installation aktualisieren zu können, muss der Wert des Parameters <code>$wgUpgradeKey</code> im folgenden Eingabefeld angegeben werden.
-Der Parameterwert befindet sich in der Datei LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Eine Datei <code>LocalSettings.php</code> wurde gefunden.
+Der Parameterwert befindet sich in der Datei <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Eine Datei <code><code>LocalSettings.php</code></code> wurde gefunden.
Um die vorhandene Installation zu aktualisieren, muss die Datei <code>update.php</code> ausgeführt werden.',
'config-localsettings-key' => 'Aktualisierungsschlüssel:',
'config-localsettings-badkey' => 'Der angegebene Aktualisierungsschlüssel ist falsch.',
'config-upgrade-key-missing' => 'Eine MediaWiki-Installation wurde gefunden.
-Um die vorhandene Installation aktualisieren zu können, muss die unten angegebene Codezeile in die Datei LocalSettings.php an deren Ende eingefügt werden:
+Um die vorhandene Installation aktualisieren zu können, muss die unten angegebene Codezeile in die Datei <code>LocalSettings.php</code> an deren Ende eingefügt werden:
$1',
- 'config-localsettings-incomplete' => 'Die vorhandene Datei LocalSettings.php scheint unvollständig zu sein.
+ 'config-localsettings-incomplete' => 'Die vorhandene Datei <code>LocalSettings.php</code> scheint unvollständig zu sein.
Die Variable <code>$1</code> wurde nicht definiert.
-Die Datei LocalSettings.php muss entsprechend geändert werden, so dass sie definiert ist. Klicke danach auf „Weiter“.',
- 'config-localsettings-connection-error' => 'Beim Verbindungsversuch zur Datenbank ist, unter Verwendung der in den Dateien LocalSettings.php oder AdminSettings.php hinterlegten Einstellungen, ein Fehler aufgetreten. Diese Einstellungen müssen korrigiert werden. Danach kann ein erneuter Versuch unternommen werden.
+Die Datei <code>LocalSettings.php</code> muss entsprechend geändert werden, so dass sie definiert ist. Klicke danach auf „{{int:Config-continue}}“.',
+ 'config-localsettings-connection-error' => 'Beim Verbindungsversuch zur Datenbank ist, unter Verwendung der in den Dateien <code>LocalSettings.php</code> oder <code>AdminSettings.php</code> hinterlegten Einstellungen, ein Fehler aufgetreten. Diese Einstellungen müssen korrigiert werden. Danach kann ein erneuter Versuch unternommen werden.
$1',
'config-session-error' => 'Fehler beim Starten der Sitzung: $1',
'config-using531' => 'MediaWiki kann nicht zusammen mit PHP $1 verwendet werden. Grund hierfür ist ein Fehler im Zusammenhang mit den Verweisparametern zu <code>__call()</code>.
PHP muss auf Version 5.3.2 oder höher oder 5.3.0 oder niedriger aktualisiert werden, um das Problem zu beheben.
Die Installation wurde abgebrochen.',
- 'config-suhosin-max-value-length' => 'Suhosin ist installiert und beschränkt die Länge des GET-Parameters auf $1 Bytes. Der ResouceLoader von MediaWiki wird zwar unter diesen Bedingungen funktionieren, allerdings nur mit verminderter Leistungsfähigkeit. Sofern möglich sollte der Parameter <code>suhosin.get.max_value_length</code> in der Datei php.ini auf 1024 oder höher festgelegt werden. Gleichzeitig muss der Parameter <code>$wgResourceLoaderMaxQueryLength</code> in der Datei LocalSettings.php auf den selben Wert eingestellt werden.',
+ 'config-suhosin-max-value-length' => 'Suhosin ist installiert und beschränkt die Länge des GET-Parameters auf $1 Bytes.
+Der ResouceLoader von MediaWiki wird zwar unter diesen Bedingungen funktionieren, allerdings nur mit verminderter Leistungsfähigkeit.
+Sofern möglich sollte der Parameter <code>suhosin.get.max_value_length</code> in der Datei <code>php.ini</code> auf 1024 oder höher festgelegt werden.
+Gleichzeitig muss der Parameter <code>$wgResourceLoaderMaxQueryLength</code> in der Datei <code>LocalSettings.php</code> auf den selben Wert eingestellt werden.',
'config-db-type' => 'Datenbanksystem:',
'config-db-host' => 'Datenbankserver:',
'config-db-host-help' => 'Sofern sich die Datenbank auf einem anderen Server befindet, ist hier der Servername oder die entsprechende IP-Adresse anzugeben.
'config-support-postgres' => '* $1 ist ein beliebtes Open-Source-Datenbanksystem und eine Alternative zu MySQL ([http://www.php.net/manual/de/pgsql.installation.php Anleitung zur Kompilierung von PHP mit PostgreSQL-Unterstützung]). Es gibt allerdings einige kleinere Implementierungsfehler, so dass von der Nutzung in einer Produktivumgebung abgeraten wird.',
'config-support-sqlite' => '* $1 ist ein verschlanktes Datenbanksystem, das auch gut unterstützt wird ([http://www.php.net/manual/de/pdo.installation.php Anleitung zur Kompilierung von PHP mit SQLite-Unterstützung], verwendet PHP Data Objects (PDO))',
'config-support-oracle' => '* $1 ist eine kommerzielle Unternehmensdatenbank ([http://www.php.net/manual/en/oci8.installation.php Anleitung zur Kompilierung von PHP mit OCI8-Unterstützung (en)])',
- 'config-support-ibm_db2' => '* $1 ist eine kommerzielle Unternehmensdatenbank',
+ 'config-support-ibm_db2' => '* $1 ist eine kommerzielle Unternehmensdatenbank ([http://www.php.net/manual/en/ibm-db2.installation.php PHP mit IBM-DB2-Support kompilieren])',
'config-header-mysql' => 'MySQL-Einstellungen',
'config-header-postgres' => 'PostgreSQL-Einstellungen',
'config-header-sqlite' => 'SQLite-Einstellungen',
'config-upgrade-done-no-regenerate' => 'Die Aktualisierung ist abgeschlossen.
Das Wiki kann nun [$1 genutzt werden].',
- 'config-regenerate' => 'LocalSettings.php neu erstellen →',
- 'config-show-table-status' => 'Die Abfrage SHOW TABLE STATUS ist gescheitert!',
+ 'config-regenerate' => '<code>LocalSettings.php</code> neu erstellen →',
+ 'config-show-table-status' => 'Die Abfrage <code>SHOW TABLE STATUS</code> ist gescheitert!',
'config-unknown-collation' => "'''Warnung:''' Die Datenbank nutzt eine unbekannte Kollation.",
'config-db-web-account' => 'Datenbankkonto für den Webzugriff',
'config-db-web-help' => 'Bitte Benutzernamen und Passwort auswählen, die der Webserver während des Normalbetriebes dazu verwenden soll, eine Verbindung zum Datenbankserver herzustellen.',
'''Hinweis:''' Die Konfigurationsdatei sollte jetzt unbedingt heruntergeladen werden. Sie wird nach Beenden des Installationsprogramms, nicht mehr zur Verfügung stehen.
Sobald alles erledigt wurde, kann auf das '''[$2 Wiki zugegriffen werden]'''. Wir wünschen viel Spaß und Erfolg mit dem Wiki.",
- 'config-download-localsettings' => 'LocalSettings.php herunterladen',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code> herunterladen',
'config-help' => 'Hilfe',
'config-nofile' => 'Die Datei „$1“ konnte nicht gefunden werden. Wurde sie gelöscht?',
'mainpagetext' => "'''MediaWiki wurde erfolgreich installiert.'''",
'config-invalid-db-type' => 'Μη έγκυρος τύπος βάσης δεδομένων',
'config-mysql-utf8' => 'UTF-8',
'config-site-name' => 'Όνομα του βίκι:',
- 'config-site-name-blank' => 'Εισαγάτε όνομα ιστοχώρου.',
+ 'config-site-name-blank' => 'Εισαγάγετε όνομα ιστοχώρου.',
'config-project-namespace' => 'Περιοχή ονόματος εγχειρήματος:',
'config-ns-generic' => 'Εγχείρημα',
'config-ns-site-name' => 'Ίδιο με το όνομα του wiki: $1',
* @author Sanbec
* @author Translationista
* @author Vivaelcelta
+ * @author 아라
*/
$messages['es'] = array(
'config-desc' => 'El instalador para MediaWiki',
'config-information' => 'Información',
'config-localsettings-upgrade' => 'Se ha encontrado un archivo <code>LocalSettings.php</code>.
Para actualizar esta instalación, por favor ingresa el valor de <code>$wgUpgradeKey</code> en el cuadro de abajo.
-Lo encontrarás en LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Se ha detectado un archivo LocalSettings.php.
-Para actualizar la instalación, vuelva a ejecutar update.php',
+Lo encontrarás en <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Se ha detectado un archivo <code>LocalSettings.php</code>.
+Para actualizar la instalación, vuelva a ejecutar <code>update.php</code>',
'config-localsettings-key' => 'Clave de actualización:',
'config-localsettings-badkey' => 'La clave proporcionada es incorrecta.',
'config-upgrade-key-missing' => 'Se ha detectado una instalación existente de MediaWiki.
-Para actualizar la instalación, por favor, ponga la siguiente línea al final de su archivo LocalSettings.php:
+Para actualizar la instalación, por favor, ponga la siguiente línea al final de su archivo <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'El archivo LocalSettings.php existente parece estar incompleto.
+ 'config-localsettings-incomplete' => 'El archivo <code>LocalSettings.php</code> existente parece estar incompleto.
La variable $1 no está definida.
-Cambie el archivo LocalSettings.php para que esta variable quede establecida y haga clic en "Continuar".',
- 'config-localsettings-connection-error' => 'Se detectó un error al conectarse a la base de datos utilizando la configuración especificada en los archivos LocalSettings.php o AdminSettings.php. Corrija estas opciones y vuelva a intentarlo.
+Cambie el archivo <code>LocalSettings.php</code> para que esta variable quede establecida y haga clic en "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Se detectó un error al conectarse a la base de datos utilizando la configuración especificada en los archivos <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Corrija estas opciones y vuelva a intentarlo.
$1',
'config-session-error' => 'Error comenzando sesión: $1',
'config-using531' => 'MediaWiki no puede utilizarse con PHP $1 debido a un error con los parámetros de referencia para <code>__call()</code> .
Actualice el sistema a PHP 5.3.2 o superior, o vuelva a la versión PHP 5.3.0 para resolver este problema.
Instalación anulada.',
- 'config-suhosin-max-value-length' => 'Suhosin está instalado y limita la longitud del parámetro GET a $1 bytes. El componente ResourceLoader de MediaWiki trabajará en este límite, pero eso degradará el rendimiento. Si es posible, debe establecer el valor de suhosin.get.max_value_length en 1024 o superior en el archivo php.ini y establecer $wgResourceLoaderMaxQueryLength en el mismo valor en LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'Suhosin está instalado y limita la longitud del parámetro GET a $1 bytes. El componente ResourceLoader de MediaWiki trabajará en este límite, pero eso degradará el rendimiento. Si es posible, debe establecer el valor de <code>suhosin.get.max_value_length</code> en 1024 o superior en el archivo <code>php.ini</code> y establecer <code>$wgResourceLoaderMaxQueryLength</code> en el mismo valor en LocalSettings.php.', # Fuzzy
'config-db-type' => 'Tipo de base de datos',
'config-db-host' => 'Servidor de la base de datos:',
'config-db-host-help' => 'Si su servidor de base de datos está en otro servidor, escriba el nombre del host o su dirección IP aquí.
Si no encuentras en el listado el sistema de base de datos que estás intentando utilizar, sigue las instrucciones vinculadas arriba para habilitar la compatibilidad.',
'config-support-mysql' => '* $1 es la base de datos mayoritaria para MediaWiki y la que goza de mayor compatibilidad ([http://www.php.net/manual/es/mysql.installation.php cómo compilar PHP con compatibilidad MySQL])',
'config-support-postgres' => '$1 es un popular sistema de base de datos de código abierto, alternativa a MySQL. ([http://www.php.net/manual/es/pgsql.installation.php cómo compilar PHP con compatibilidad PostgreSQL]). Puede haber algunos defectos menores destacables, y no es recomendable para uso en un entorno de producción.',
- 'config-support-sqlite' => '* $1 es una base de datos ligera con gran compatibilidad con MediaWiki. ([http://www.php.net/manual/es/pdo.installation.php Cómo compilar PHP con compatibilidad SQLite], usa PDO)',
+ 'config-support-sqlite' => '* $1 es una base de datos ligera con gran compatibilidad con MediaWiki ([http://www.php.net/manual/es/pdo.installation.php cómo compilar PHP con compatibilidad SQLite usando PDO]).',
'config-support-oracle' => '* $1 es una base de datos comercial a nivel empresarial ([http://www.php.net/manual/es/oci8.installation.php cómo compilar PHP con compatibilidad con OCI8])',
- 'config-support-ibm_db2' => ' $1 es una base de datos de empresa comercial.',
+ 'config-support-ibm_db2' => '* $1 es una base de datos comercial a nivel empresarial ([http://www.php.net/manual/es/ibm-db2.installation.php cómo compilar PHP con compatibilidad con ibm_db2]).', # Fuzzy
'config-header-mysql' => 'Configuración de MySQL',
'config-header-postgres' => 'Configuración de PostgreSQL',
'config-header-sqlite' => 'Configuración de SQLite',
'config-upgrade-done-no-regenerate' => 'Actualización completa.
Usted puede ahora [$1 empezar a usar su wiki].',
- 'config-regenerate' => 'Regenerar LocalSettings.php →',
- 'config-show-table-status' => 'SHOW TABLE STATUS ha fallado!',
+ 'config-regenerate' => 'Regenerar <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => '<code>SHOW TABLE STATUS</code> ha fallado!',
'config-unknown-collation' => "'''Advertencia:''' La base de datos está utilizando una intercalación no reconocida.",
'config-db-web-account' => 'Cuenta de base de datos para acceso Web',
'config-db-web-help' => 'Elige el usuario y contraseña que el servidor Web usará para conectarse al servidor de la base de datos durante el fincionamiento normal del wiki.',
'config-optional-continue' => 'Hazme más preguntas.',
'config-optional-skip' => 'Ya estoy aburrido, sólo instala el wiki.',
'config-profile' => 'Perfil de derechos de usuario:',
- 'config-profile-wiki' => 'Wiki tradicional',
+ 'config-profile-wiki' => 'Wiki tradicional', # Fuzzy
'config-profile-no-anon' => 'Creación de cuenta requerida',
'config-profile-fishbowl' => 'Sólo editores autorizados',
'config-profile-private' => 'Wiki privado',
El escenario '''{{int:config-profile-fishbowl}}''' permite editar a los usuarios autorizados, pero el público puede ver las páginas, incluyendo el historial.
Un '''{{int:config-profile-private}}''' sólo permite ver páginas a los usuarios autorizados, el mismo grupo al que le está permitido editar.
-Configuraciones más complejas de derechos de usuario están disponibles después de la instalación, consulte [//www.mediawiki.org/wiki/Manual:User_rights esta entrada en el manual].",
+Configuraciones más complejas de derechos de usuario están disponibles después de la instalación, consulte [//www.mediawiki.org/wiki/Manual:User_rights esta entrada en el manual].", # Fuzzy
'config-license' => 'Copyright and licencia:',
'config-license-none' => 'Pie sin licencia',
'config-license-cc-by-sa' => 'Creative Commons Reconocimiento Compartir Igual',
'config-install-alreadydone' => "'''Aviso:''' Parece que ya habías instalado MediaWiki y estás intentando instalarlo nuevamente.
Pasa a la próxima página, por favor.",
'config-install-begin' => 'Pulsando "{{int:config-continue}}", se iniciará la instalación de MediaWiki.
-Si todavía desea realizar algún cambio, pulse atrás.',
+Si todavía desea realizar algún cambio, pulse atrás.', # Fuzzy
'config-install-step-done' => 'hecho',
'config-install-step-failed' => 'falló',
'config-install-extensions' => 'Extensiones inclusive',
'''Nota''': Si no haces esto ahora, este archivo de configuración generado no estará disponible para usted más tarde si sale de la instalación sin descargarlo.
Cuando lo haya hecho, usted puede '''[$2 entrar en su wiki]'''.",
- 'config-download-localsettings' => 'Descargar archivo LocalSettings.php',
+ 'config-download-localsettings' => 'Descargar archivo <code>LocalSettings.php</code>',
'config-help' => 'Ayuda',
'config-nofile' => 'El archivo "$1" no se pudo encontrar. ¿Se ha eliminado?',
'mainpagetext' => "'''MediaWiki ha sido instalado con éxito.'''",
* @author Olli
* @author Str4nd
* @author VezonThunder
+ * @author 아라
*/
$messages['fi'] = array(
'config-desc' => 'MediaWiki-asennin',
'config-information' => 'Tiedot',
'config-localsettings-upgrade' => '<code>LocalSettings.php</code>-tiedosto havaittiin.
Kirjoita muuttujan <code>$wgUpgradeKey</code> arvo alla olevaan kenttään päivittääksesi asennuksen.
-Löydät sen LocalSettings.php-tiedostosta.',
- 'config-localsettings-cli-upgrade' => 'LocalSettings.php-tiedosto havaittiin.
-Päivitä asennus suorittamalla update.php.',
+Löydät sen <code>LocalSettings.php</code>-tiedostosta.',
+ 'config-localsettings-cli-upgrade' => '<code>LocalSettings.php</code>-tiedosto havaittiin.
+Päivitä asennus suorittamalla <code>update.php</code>.',
'config-localsettings-key' => 'Päivitysavain',
'config-localsettings-badkey' => 'Antamasi avain on virheellinen.',
'config-upgrade-key-missing' => 'Havaittiin aiempi MediaWiki-asennus.
-Päivittääksesi tämän asennuksen lisää LocalSettings.php-tiedostosi loppuun seuraava rivi:
+Päivittääksesi tämän asennuksen lisää <code>LocalSettings.php</code>-tiedostosi loppuun seuraava rivi:
$1',
- 'config-localsettings-incomplete' => 'Nykyinen LocalSettings.php-tiedosto näyttää olevan puutteellinen.
+ 'config-localsettings-incomplete' => 'Nykyinen <code>LocalSettings.php</code>-tiedosto näyttää olevan puutteellinen.
Muuttujaa $1 ei ole asetettu.
-Muuta LocalSettings.php-tiedostoa siten, että muuttuja on asetettu ja napsauta »Jatka».',
- 'config-localsettings-connection-error' => 'Virhe yhdistettäessä tietokantaan käyttäen tiedostossa LocalSettings.php tai AdminSettings.php määritettyjä asetuksia. Korjaa asetukset ja yritä uudelleen.
+Muuta <code>LocalSettings.php</code>-tiedostoa siten, että muuttuja on asetettu ja napsauta »{{int:Config-continue}}».',
+ 'config-localsettings-connection-error' => 'Virhe yhdistettäessä tietokantaan käyttäen tiedostossa <code>LocalSettings.php</code> tai <code>AdminSettings.php</code> määritettyjä asetuksia. Korjaa asetukset ja yritä uudelleen.
$1',
'config-session-error' => 'Istunnon aloittaminen epäonnistui: $1',
'config-type-sqlite' => 'SQLite',
'config-type-oracle' => 'Oracle',
'config-type-ibm_db2' => 'IBM DB2',
- 'config-support-ibm_db2' => '* $1 on kaupallinen tietokanta yrityskäyttöön.',
+ 'config-support-ibm_db2' => '* $1 on kaupallinen tietokanta yrityskäyttöön.', # Fuzzy
'config-header-mysql' => 'MySQL-asetukset',
'config-header-postgres' => 'PostgreSQL-asetukset',
'config-header-sqlite' => 'SQLite-asetukset',
'config-upgrade-done-no-regenerate' => 'Päivitys valmis.
Voit [$1 aloittaa wikin käytön].',
- 'config-regenerate' => 'Luo LocalSettings.php uudelleen →',
- 'config-show-table-status' => 'Kysely SHOW TABLE STATUS epäonnistui!',
+ 'config-regenerate' => 'Luo <code>LocalSettings.php</code> uudelleen →',
+ 'config-show-table-status' => 'Kysely <code>SHOW TABLE STATUS</code> epäonnistui!',
'config-mysql-engine' => 'Tallennusmoottori',
'config-mysql-innodb' => 'InnoDB',
'config-mysql-myisam' => 'MyISAM',
'config-admin-error-bademail' => 'Annoit virheellisen sähköpostiosoitteen.',
'config-almost-done' => 'Olet jo lähes valmis!
Voit ohittaa jäljellä olevat määritykset ja asentaa wikin juuri nyt.',
- 'config-profile-wiki' => 'Perinteinen wiki',
+ 'config-profile-wiki' => 'Avoin wiki',
'config-profile-no-anon' => 'Tunnuksen luonti vaaditaan',
'config-profile-private' => 'Yksityinen wiki',
'config-license' => 'Tekijänoikeus ja lisenssi:',
'config-install-step-failed' => 'epäonnistui',
'config-install-user-alreadyexists' => 'Käyttäjä $1 on jo olemassa',
'config-install-interwiki-list' => 'Tiedostoa <code>interwiki.list</code> ei voitu lukea.',
- 'config-download-localsettings' => 'Lataa LocalSettings.php',
+ 'config-download-localsettings' => 'Lataa <code>LocalSettings.php</code>',
'config-help' => 'ohje',
'mainpagetext' => "'''MediaWiki on onnistuneesti asennettu.'''",
'mainpagedocfooter' => "Lisätietoja käytöstä on sivulla [//meta.wikimedia.org/wiki/Help:Contents User's Guide].
* @author Verdy p
* @author Wyz
* @author Yumeki
+ * @author 아라
*/
$messages['fr'] = array(
'config-desc' => 'Le programme d’installation de MediaWiki',
'config-information' => 'Informations',
'config-localsettings-upgrade' => 'Un fichier <code>LocalSettings.php</code> a été détecté.
Pour mettre à jour cette installation, veuillez saisir la valeur de <code>$wgUpgradeKey</code> dans le champ ci-dessous.
-Vous la trouverez dans LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Un fichier LocalSettings.php a été détecté.
-Pour mettre à niveau cette installation, veuillez exécuter update.php',
+Vous la trouverez dans <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Un fichier <code>LocalSettings.php</code> a été détecté.
+Pour mettre à niveau cette installation, veuillez exécuter <code>update.php</code>',
'config-localsettings-key' => 'Clé de mise à jour :',
'config-localsettings-badkey' => 'La clé que vous avez fournie est incorrecte',
'config-upgrade-key-missing' => 'Une installation existante de MediaWiki a été détectée.
-Pour mettre à jour cette installation, veuillez ajouter la ligne suivante à la fin de votre fichier LocalSettings.php
+Pour mettre à jour cette installation, veuillez ajouter la ligne suivante à la fin de votre fichier <code>LocalSettings.php</code>
$1',
- 'config-localsettings-incomplete' => 'Le fichier LocalSettings.php existant semble être incomplet.
+ 'config-localsettings-incomplete' => 'Le fichier <code>LocalSettings.php</code> existant semble être incomplet.
La variable $1 n’est pas définie.
-Veuillez modifier LocalSettings.php de sorte que cette variable soit définie, puis cliquer sur « Continuer ».',
- 'config-localsettings-connection-error' => 'Une erreur est survenue lors de la connexion à la base de données en utilisant la configuration spécifiée dans LocalSettings.php ou AdminSettings.php. Veuillez corriger cette configuration puis réessayer.
+Veuillez modifier <code>LocalSettings.php</code> de sorte que cette variable soit définie, puis cliquer sur « {{int:Config-continue}} ».',
+ 'config-localsettings-connection-error' => 'Une erreur est survenue lors de la connexion à la base de données en utilisant la configuration spécifiée dans <code>LocalSettings.php</code> ou <code>AdminSettings.php</code>. Veuillez corriger cette configuration puis réessayer.
$1',
'config-session-error' => 'Erreur lors du démarrage de la session : $1',
'config-using531' => 'MediaWiki ne peut pas être utilisé avec PHP $1 à cause d’un bogue affectant les paramètres passés par référence à <code>__call()</code>.
Veuillez mettre à jour votre système vers PHP 5.3.2 ou plus récent ou revenir à PHP 5.3.0 pour résoudre ce problème.
Installation interrompue.',
- 'config-suhosin-max-value-length' => 'Suhosin est installé et limite la longueur du paramètre GET à $1 octets. Le <code>ResourceLoader</code> de MediaWiki va répondre en respectant cette limite, mais ses performances seront dégradées. Si possible, vous devriez définir <code>suhosin.get.max_value_length</code> à 1024 ou plus dans le fichier <code>php.ini</code>, et fixer <code>$wgResourceLoaderMaxQueryLength</code> à la même valeur dans <code>LocalSettings.php</code>.',
+ 'config-suhosin-max-value-length' => 'Suhosin est installé et limite la <code>longueur</code> du paramètre GET à $1 octets.
+Le composant ResourceLoader de MediaWiki va répondre en respectant cette limite, mais ses performances seront dégradées. Si possible, vous devriez définir <code>suhosin.get.max_value_length</code> à 1024 ou plus dans le fichier <code>php.ini</code>, et fixer <code>$wgResourceLoaderMaxQueryLength</code> à la même valeur dans <code>LocalSettings.php</code>.',
'config-db-type' => 'Type de base de données :',
'config-db-host' => 'Nom d’hôte de la base de données :',
'config-db-host-help' => 'Si votre serveur de base de données est sur un serveur différent, saisissez ici son nom d’hôte ou son adresse IP.
'config-support-postgres' => "* $1 est un système de base de données populaire et ''open source'' qui peut être une alternative à MySQL ([http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). Il peut contenir quelques bogues mineurs et n'est pas recommandé dans un environnement de production.",
'config-support-sqlite' => '* $1 est un système de base de données léger qui est bien supporté. ([http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], utilise PDO)',
'config-support-oracle' => '* $1 est un système commercial de gestion de base de données d’entreprise. ([http://www.php.net/manual/en/oci8.installation.php Comment compiler PHP avec le support OCI8])',
- 'config-support-ibm_db2' => "* $1 est une base de données d'entreprise commerciale.",
+ 'config-support-ibm_db2' => "* $1 est une base de données d'entreprise commerciale. ([http://www.php.net/manual/en/ibm-db2.installation.php Comment compiler PHP avec le support de DB2 d’IBM])",
'config-header-mysql' => 'Paramètres de MySQL',
'config-header-postgres' => 'Paramètres de PostgreSQL',
'config-header-sqlite' => 'Paramètres de SQLite',
'config-upgrade-done-no-regenerate' => 'Mise à jour terminée.
Vous pouvez maintenant [$1 commencer à utiliser votre wiki].',
- 'config-regenerate' => 'Regénérer LocalSettings.php →',
- 'config-show-table-status' => 'Échec de la requête SHOW TABLE STATUS !',
+ 'config-regenerate' => 'Regénérer <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Échec de la requête <code>SHOW TABLE STATUS</code> !',
'config-unknown-collation' => "'''Attention:''' La base de données effectue un classement alphabétique (''collation'') inconnu.",
'config-db-web-account' => "Compte de la base de données pour l'accès Web",
'config-db-web-help' => "Sélectionnez le nom d'utilisateur et le mot de passe que le serveur web utilisera pour se connecter au serveur de base de données pendant le fonctionnement habituel du wiki.",
'''Note''': Si vous ne le faites pas maintenant, ce fichier de configuration généré ne sera pas disponible plus tard si vous quittez l'installation sans le télécharger.
Lorsque c'est fait, vous pouvez '''[$2 accéder à votre wiki]'''.",
- 'config-download-localsettings' => 'Télécharger LocalSettings.php',
+ 'config-download-localsettings' => 'Télécharger <code>LocalSettings.php</code>',
'config-help' => 'aide',
'config-nofile' => 'Le fichier « $1 » est introuvable. A-t-il été supprimé ?',
'mainpagetext' => "'''MediaWiki a été installé avec succès.'''",
'config-missing-db-host' => 'Vos dête buchiér una valor por « Hôto de la bâsa de balyês »',
'config-missing-db-server-oracle' => 'Vos dête buchiér una valor por « TNS de la bâsa de balyês »',
'config-sqlite-readonly' => 'Lo fichiér <code>$1</code> est pas accèssiblo en ècritura.',
- 'config-regenerate' => 'Refâre LocalSettings.php →',
- 'config-show-table-status' => 'Falyita de la requéta SHOW TABLE STATUS !',
+ 'config-regenerate' => 'Refâre <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Falyita de la requéta <code>SHOW TABLE STATUS</code> !',
'config-db-web-account' => 'Compto de la bâsa de balyês por l’accès vouèbe',
'config-db-web-account-same' => 'Utilisâd lo mémo compto que por l’enstalacion',
'config-db-web-create' => 'Féte lo compto s’ègziste p’oncor',
'config-admin-email' => 'Adrèce èlèctronica :',
'config-optional-continue' => 'Mè posar més de quèstions.',
'config-profile' => 'Profil des drêts d’usanciér :',
- 'config-profile-wiki' => 'Vouiqui tradicionâl',
+ 'config-profile-wiki' => 'Vouiqui tradicionâl', # Fuzzy
'config-profile-no-anon' => 'Crèacion de compto nècèssèra',
'config-profile-fishbowl' => 'Solament los èditors ôtorisâs',
'config-profile-private' => 'Vouiqui privâ',
'config-install-mainpage' => 'Crèacion de la pâge principâla avouéc un contegnu per dèfôt',
'config-install-extension-tables' => 'Crèacion de trâbles por les èxtensions activâs',
'config-install-mainpage-failed' => 'Empossiblo d’entrebetar la pâge principâla : $1',
- 'config-download-localsettings' => 'Tèlèchargiér LocalSettings.php',
+ 'config-download-localsettings' => 'Tèlèchargiér <code>LocalSettings.php</code>',
'config-help' => 'éde',
'mainpagetext' => "'''MediaWiki at étâ enstalâ avouéc reusséta.'''",
'mainpagedocfooter' => 'Vêde lo [//meta.wikimedia.org/wiki/Aide:Contenu guido d’usanciér] por més d’enformacions sur l’usâjo de la programeria vouiqui.
== Emmodar avouéc MediaWiki ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista des paramètres de configuracion]
* [//www.mediawiki.org/wiki/Manual:FAQ/fr FDQ sur MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussion sur les distribucions de MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussion sur les distribucions de MediaWiki]', # Fuzzy
);
/** Northern Frisian (Nordfriisk)
/** Galician (galego)
* @author Elisardojm
* @author Toliño
+ * @author 아라
*/
$messages['gl'] = array(
'config-desc' => 'O programa de instalación de MediaWiki',
'config-information' => 'Información',
'config-localsettings-upgrade' => 'Detectouse un ficheiro <code>LocalSettings.php</code>.
Para actualizar esta instalación, introduza o valor de <code>$wgUpgradeKey</code> na caixa.
-Pode atopalo en LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Detectouse un ficheiro LocalSettings.php.
-Para actualizar esta instalación, execute update.php',
+Pode atopalo en <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Detectouse un ficheiro <code>LocalSettings.php</code>.
+Para actualizar esta instalación, execute <code>update.php</code>',
'config-localsettings-key' => 'Clave de actualización:',
'config-localsettings-badkey' => 'A clave dada é incorrecta',
'config-upgrade-key-missing' => 'Detectouse unha instalación existente de MediaWiki.
-Para actualizar esta instalación, inclúa esta liña ao final do ficheiro LocalSettings.php:
+Para actualizar esta instalación, inclúa esta liña ao final do ficheiro <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Semella que o ficheiro LocalSettings.php existente está incompleto.
+ 'config-localsettings-incomplete' => 'Semella que o ficheiro <code>LocalSettings.php</code> existente está incompleto.
A variable $1 non está establecida.
-Modifique o ficheiro LocalSettings.php de xeito que a variable quede establecida e prema en "Continuar".',
- 'config-localsettings-connection-error' => 'Atopouse un erro ao conectar coa base de datos empregando a configuración especificada no ficheiro LocalSettings.php ou no ficheiro AdminSettings.php. Corrixa esta configuración e inténteo de novo.
+Modifique o ficheiro <code>LocalSettings.php</code> de xeito que a variable quede establecida e prema en "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Atopouse un erro ao conectar coa base de datos empregando a configuración especificada no ficheiro <code>LocalSettings.php</code> ou no ficheiro <code>AdminSettings.php</code>. Corrixa esta configuración e inténteo de novo.
$1',
'config-session-error' => 'Erro ao iniciar a sesión: $1',
'config-using531' => 'O PHP $1 non é compatible con MediaWiki debido a un erro que afecta aos parámetros de referencia de <code>__call()</code>.
Actualice o sistema á versión 5.3.2 ou posterior do PHP ou volva á versión 5.3.0 do PHP para arranxar o problema.
Instalación abortada.',
- 'config-suhosin-max-value-length' => 'Suhosin está instalado e limita a lonxitude do parámetro GET a $1 bytes. O compoñente ResourceLoader (xestor de recursos) de MediaWiki traballa neste límite, pero este prexudica o rendemento. Se é posible, debería establecer suhosin.get.max_value_length no valor 1024 ou superior en php.ini e establecer $wgResourceLoaderMaxQueryLength no mesmo valor en LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'Suhosin está instalado e limita o parámetro GET <code>length</code> a $1 bytes.
+O compoñente ResourceLoader (xestor de recursos) de MediaWiki traballa neste límite, pero este prexudica o rendemento.
+Se é posible, debería establecer <code>suhosin.get.max_value_length</code> no valor 1024 ou superior en <code>php.ini</code> e establecer <code>$wgResourceLoaderMaxQueryLength</code> no mesmo valor en <code>LocalSettings.php</code>.',
'config-db-type' => 'Tipo de base de datos:',
'config-db-host' => 'Servidor da base de datos:',
'config-db-host-help' => 'Se o servidor da súa base de datos está nun servidor diferente, escriba o nome do servidor ou o enderezo IP aquí.
'config-support-mysql' => '* $1 é o obxectivo principal para MediaWiki e está mellor soportado ([http://www.php.net/manual/en/mysql.installation.php como compilar o PHP con soporte MySQL])',
'config-support-postgres' => '* $1 é un sistema de base de datos popular e de código aberto como alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar o PHP con soporte PostgreSQL]). É posible que haxa algúns pequenos erros e non se recomenda o seu uso nunha contorna de produción.',
'config-support-sqlite' => '* $1 é un sistema de base de datos lixeiro moi ben soportado. ([http://www.php.net/manual/en/pdo.installation.php Como compilar o PHP con soporte SQLite], emprega PDO)',
- 'config-support-oracle' => '* $1 é un sistema comercial de xestión de base de datos de empresa. ([http://www.php.net/manual/en/oci8.installation.php Como compilar PHP con soporte OCI8])',
- 'config-support-ibm_db2' => '* $1 é unha base de datos de empresa comercial.',
+ 'config-support-oracle' => '* $1 é un sistema comercial de xestión de base de datos de empresa. ([http://www.php.net/manual/en/oci8.installation.php Como compilar o PHP con soporte OCI8])',
+ 'config-support-ibm_db2' => '* $1 é unha base de datos de empresa comercial. ([http://www.php.net/manual/en/ibm-db2.installation.php Como compilar o PHP con soporte IBM DB2])',
'config-header-mysql' => 'Configuración do MySQL',
'config-header-postgres' => 'Configuración do PostgreSQL',
'config-header-sqlite' => 'Configuración do SQLite',
'config-upgrade-done-no-regenerate' => 'Actualización completada.
Xa pode [$1 comezar a usar o seu wiki].',
- 'config-regenerate' => 'Rexenerar LocalSettings.php →',
- 'config-show-table-status' => 'A pescuda SHOW TABLE STATUS fallou!',
+ 'config-regenerate' => 'Rexenerar <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'A pescuda <code>SHOW TABLE STATUS</code> fallou!',
'config-unknown-collation' => "'''Atención:''' A base de datos está a empregar unha clasificación alfabética irrecoñecible.",
'config-db-web-account' => 'Conta na base de datos para o acceso á internet',
'config-db-web-help' => 'Seleccione o nome de usuario e contrasinal que o servidor web empregará para se conectar ao servidor da base de datos durante o funcionamento normal do wiki.',
'''Nota:''' Se non fai iso agora, este ficheiro de configuración xerado non estará dispoñible máis adiante se sae da instalación sen descargalo.
Cando faga todo isto, xa poderá '''[$2 entrar no seu wiki]'''.",
- 'config-download-localsettings' => 'Descargar o LocalSettings.php',
+ 'config-download-localsettings' => 'Descargar o <code>LocalSettings.php</code>',
'config-help' => 'axuda',
'config-nofile' => 'Non se puido atopar o ficheiro "$1". Se cadra, foi borrado?',
'mainpagetext' => "'''MediaWiki instalouse correctamente.'''",
'config-information' => 'Information',
'config-localsettings-upgrade' => "'''Warnig:''' E Datei <code>LocalSettings.php</code> isch gfunde wore.
Fir d Aktualisierig vu dr däre Inschtallation, gib bitte dr Wärt vum Parameter <code>\$wgUpgradeKey</code> im Fäld unten yy.
-Du findsch dr Wärt in dr Datei LocalSettings.php.",
+Du findsch dr Wärt in dr Datei <code>LocalSettings.php</code>.",
'config-localsettings-key' => 'Aktualisierigsschlissel:',
'config-localsettings-badkey' => 'Dr Aktualisierigsschlissel, wu du aagee hesch, isch falsch.',
'config-session-error' => 'Fähler bim Starte vu dr Sitzig: $1',
Miniaturaasichte vu Bilder sin megli, sobald s Uffelade vu Dateie aktiviert isch.',
'config-help' => 'Hilf',
'mainpagetext' => "'''MediaWiki isch erfolgrich inschtalliert worre.'''",
- 'mainpagedocfooter' => 'Lueg uf d [//meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentation fir d Aapassig vu dr Benutzeroberflächi] un s [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuech] fir d Hilf iber d Benutzig un s Yystelle.',
+ 'mainpagedocfooter' => 'Lueg uf d [//meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentation fir d Aapassig vu dr Benutzeroberflächi] un s [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuech] fir d Hilf iber d Benutzig un s Yystelle.', # Fuzzy
);
/** Gujarati (ગુજરાતી)
* @author Amire80
* @author YaronSh
* @author ערן
+ * @author 아라
*/
$messages['he'] = array(
'config-desc' => 'תכנית ההתקנה של מדיה־ויקי',
'config-information' => 'פרטים',
'config-localsettings-upgrade' => 'זוהה קובץ <code>LocalSettings.php</code>.
כדי לשדרג את ההתקנה הזאת, נא להקליד את הערך של <code>$wgUpgradeKey</code> בתיבה להלן.
-אפשר למצוא אותו בקובץ LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'זוהה קובץ LocalSettings.php.
-כדי לשדרג את ההתקנה הזאת, הריצו את update.php ולא את הקובץ הזה.',
+אפשר למצוא אותו בקובץ <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'זוהה קובץ <code>LocalSettings.php</code>.
+כדי לשדרג את ההתקנה הזאת, הריצו את <code>update.php</code> ולא את הקובץ הזה.',
'config-localsettings-key' => 'מפתח השדרוג:',
'config-localsettings-badkey' => 'המפתח שהקלדתם שגוי',
'config-upgrade-key-missing' => 'זוהתה התקנה קיימת של מדיה־ויקי.
-כדי לשדרג את ההתקנה הזאת, אנא כתבו את השורה הבא בתחתית קובץ LocalSettings.php שלכם:
+כדי לשדרג את ההתקנה הזאת, אנא כתבו את השורה הבא בתחתית קובץ <code>LocalSettings.php</code> שלכם:
$1',
- 'config-localsettings-incomplete' => 'נראה שקובץ LocalSettings.php הקיים אינו שלם.
+ 'config-localsettings-incomplete' => 'נראה שקובץ <code>LocalSettings.php</code> הקיים אינו שלם.
המשתנה $1 אינו מוגדר.
-נו לשנות את קובץ LocalSettings.php שלכם כך שהמשתנה הזה יהיה מוגדר וללחוץ "המשך".',
- 'config-localsettings-connection-error' => 'אירעה שגיאה בעת חיבור למסד נתונים עם הגדרות ב־LocalSettings.php או ב־AdminSettings.php. נא לתקן את ההגדרות האלו ולנסות שוב.
+נו לשנות את קובץ <code>LocalSettings.php</code> שלכם כך שהמשתנה הזה יהיה מוגדר וללחוץ "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'אירעה שגיאה בעת חיבור למסד נתונים עם הגדרות ב־<code>LocalSettings.php</code> או ב־<code>AdminSettings.php</code>. נא לתקן את ההגדרות האלו ולנסות שוב.
$1',
'config-session-error' => 'שגיאה באתחול שיחה: $1',
'config-using531' => 'אי־אפשר להשתמש במדיה־ויקי עם <span dir="ltr">PHP $1</span> בגלל באג בפרמטרים של הפניות (reference parameters) ל־<code dir="ltr">__call()</code>.
שדרגו ל־PHP 5.3.2 או לגרסה גבוהה יותר כדי לתקן את זה ([//bugs.php.net/bug.php?id=50394 bug filed with PHP]) או שַנמכו ל־PHP 5.3.0 כדי לפתור את הבעיה הזאת.
ההתקנה בוטלה.',
- 'config-suhosin-max-value-length' => 'מותקן פה Suhosin והוא מגביל את אורך פרמטר GET ל־$1 בתים. רכיב ResourceLoader של מדיה־ויקי יעקוף את המגלבה הזאת, אבל זה יפגע בביצועים. אם זה בכלל אפשרי, כדי לתקן את הערך של suhosin.get.max_value_length ל־1024 בקובץ php.ini ולהגדיר את $wgResourceLoaderMaxQueryLength לאותו הערך בקובץ LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'מותקן פה Suhosin והוא מגביל את אורך פרמטר GET ל־$1 בתים. רכיב ResourceLoader של מדיה־ויקי יעקוף את המגלבה הזאת, אבל זה יפגע בביצועים. אם זה בכלל אפשרי, כדי לתקן את הערך של <code>suhosin.get.max_value_length</code> ל־1024 בקובץ <code>php.ini</code> ולהגדיר את <code>$wgResourceLoaderMaxQueryLength</code> לאותו הערך בקובץ LocalSettings.php.', # Fuzzy
'config-db-type' => 'סוג מסד הנתונים:',
'config-db-host' => 'שרת מסד הנתונים:',
'config-db-host-help' => 'אם שרת מסד הנתונים שלכם נמצא על שרת אחר, הקלידו את שם המחשב או את כתובת ה־IP כאן.
'config-support-postgres' => '$1 הוא מסד נתונים נפוץ בקוד פתוח והוא נפוץ בתור חלופה ל־MySQL (ר׳ [http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). ייתכן שיש בתצורה הזאת באגים מסוימים והיא לא מומלצת לסביבות מבצעיות.',
'config-support-sqlite' => '* $1 הוא מסד נתונים קליל עם תמיכה טובה מאוד. (ר׳ [http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], משתמש ב־PDO)',
'config-support-oracle' => '* $1 הוא מסד נתונים עסקי מסחרי. (ר׳ [http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])',
- 'config-support-ibm_db2' => '* $1 הוא מסד נתונים מסחרי ארגוני.',
+ 'config-support-ibm_db2' => '* $1 הוא מסד נתונים מסחרי ארגוני.', # Fuzzy
'config-header-mysql' => 'הגדרות MySQL',
'config-header-postgres' => 'הגדרות PostgreSQL',
'config-header-sqlite' => 'הגדרות SQLite',
'config-upgrade-done-no-regenerate' => 'השדרוג הושלם.
עכשיו אפשר [$1 להתחיל להשתמש בוויקי שלכם].',
- 'config-regenerate' => 'לחולל מחדש את LocalSettings.php ←',
- 'config-show-table-status' => 'שאילתת SHOW TABLE STATUS נכשלה!',
+ 'config-regenerate' => 'לחולל מחדש את <code>LocalSettings.php</code> ←',
+ 'config-show-table-status' => 'שאילתת <code>SHOW TABLE STATUS</code> נכשלה!',
'config-unknown-collation' => "'''אזהרה:''' מסד הנתונים משתמש בשיטת מיון שאינה מוּכּרת.",
'config-db-web-account' => 'חשבון במסד הנתונים לגישה מהרשת',
'config-db-web-help' => 'לבחור את שם המשתמש ואת הססמה ששרת הווב ישתמש בו להתחברות לשרת מסד הנתונים בזמן פעילות רגילה של הוויקי.',
'config-optional-continue' => 'הצגת שאלות נוספות.',
'config-optional-skip' => 'משעמם לי, תתקינו לי כבר את הוויקי הזה.',
'config-profile' => 'תסריט הרשאות משתמשים:',
- 'config-profile-wiki' => 'ויקי מסורתי',
+ 'config-profile-wiki' => 'ויקי מסורתי', # Fuzzy
'config-profile-no-anon' => 'נדרשת יצירת חשבון',
'config-profile-fishbowl' => 'עורכים מורשים בלבד',
'config-profile-private' => 'ויקי פרטי',
בתסריט '''{{int:config-profile-fishbowl}}''' רק משתמשים שקיבלו אישור יכולים לערוך, אבל כל הגולשים יכולים לקרוא את הדפים ואת גרסאותיהם הקודמות.
ב'''{{int:config-profile-private}}''' רק משתמשים שקיבלו אישור יכולים לקרוא ולערוך דפים.
-הגדרות מורכבות של הרשאות אפשריות אחרי ההתקנה, ר׳ את [//www.mediawiki.org/wiki/Manual:User_rights הפרק על הנושא הזה בספר ההדרכה].",
+הגדרות מורכבות של הרשאות אפשריות אחרי ההתקנה, ר׳ את [//www.mediawiki.org/wiki/Manual:User_rights הפרק על הנושא הזה בספר ההדרכה].", # Fuzzy
'config-license' => 'זכויות יוצרים ורישיון:',
'config-license-none' => 'ללא כותרת תחתית עם רישיון',
'config-license-cc-by-sa' => 'קריאייטיב קומונז–ייחוס–שיתוף זהה',
'config-install-alreadydone' => "'''אזהרה:''' נראה שכבר התקנתם את מדיה־ויקי ואתם מנסים להתקין אותה שוב.
אנה התקדמו לדף הבא.",
'config-install-begin' => 'כשתלחצו על "{{int:config-continue}}", תתחילו את ההתקנה של מדיה־ויקי.
-אם אתם עדיין רוצים לשנות משהו, לחצו על "הקודם".',
+אם אתם עדיין רוצים לשנות משהו, לחצו על "הקודם".', # Fuzzy
'config-install-step-done' => 'בוצע',
'config-install-step-failed' => 'נכשל',
'config-install-extensions' => 'כולל הרחבות',
'''שימו לב''': אם לא תעשו זאת עכשיו, קובץ ההגדרות המחוּלל לא יהיה זמין לכם שוב.
אחרי שתעשו את זה, תוכלו '''[$2 להיכנס לוויקי שלכם]'''.",
- 'config-download-localsettings' => 'הורדת LocalSettings.php',
+ 'config-download-localsettings' => 'הורדת <code>LocalSettings.php</code>',
'config-help' => 'עזרה',
'config-nofile' => 'הקובץ "$1" לא נמצא. האם הוא נמחק?',
'mainpagetext' => "'''תוכנת מדיה־ויקי הותקנה בהצלחה.'''",
== קישורים שימושיים ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings רשימת ההגדרות]
* [//www.mediawiki.org/wiki/Manual:FAQ שאלות ותשובות על מדיה־ויקי]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]', # Fuzzy
);
/** Hindi (हिन्दी)
/** Upper Sorbian (hornjoserbsce)
* @author Michawiki
+ * @author 아라
*/
$messages['hsb'] = array(
'config-desc' => 'Instalaciski program za MediaWiki',
'config-information' => 'Informacije',
'config-localsettings-upgrade' => 'Dataja <code>LocalSettings.php</code> je so wotkryła.
Zo by tutu instalaciju aktualizował, zapodaj prošu hódnotu za parameter <code>$wgUpgradeKey</code> do slědowaceho pola.
-Namakaš tón parameter w dataji LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Dataja LocalSettings.php bu wotkryta.
-Zo by tutu instalaciju aktualizował, wuwjedźće update.php',
+Namakaš tón parameter w dataji <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Dataja <code>LocalSettings.php</code> bu wotkryta.
+Zo by tutu instalaciju aktualizował, wuwjedźće <code>update.php</code>',
'config-localsettings-key' => 'Aktualizaciski kluč:',
'config-localsettings-badkey' => 'Kluč, kotryž sy podał, je wopak',
'config-upgrade-key-missing' => 'Eksistowaca instalacija MediaWiki je so wotkryła.
-Zo by tutu instalaciju aktualizował, staj prošu slědowacu linku deleka w dataji LocalSettings.php:
+Zo by tutu instalaciju aktualizował, staj prošu slědowacu linku deleka w dataji <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Zda so, zo eksistwoaca dataja LocalSettings.php je njedospołna.
+ 'config-localsettings-incomplete' => 'Zda so, zo eksistwoaca dataja <code>LocalSettings.php</code> je njedospołna.
Wariabla $1 njeje nastajena.
-Prošu změń dataju LocalSettings.php, zo by so tuta wariabla nastajiła a klikń na "Dale".',
- 'config-localsettings-connection-error' => 'Při zwjazowanju z datowej banku z pomocu nastajenjow podatych w LocalSettings.php abo AdminSettings.php je zmylk wustupił. Prošu skoriguj tute nastajenja a spytaj hišće raz.
+Prošu změń dataju <code>LocalSettings.php</code>, zo by so tuta wariabla nastajiła a klikń na "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Při zwjazowanju z datowej banku z pomocu nastajenjow podatych w <code>LocalSettings.php</code> abo <code>AdminSettings.php</code> je zmylk wustupił. Prošu skoriguj tute nastajenja a spytaj hišće raz.
$1',
'config-session-error' => 'Zmylk při startowanju posedźenja: $1',
'config-support-mysql' => '* $1 je primarny cil za MediaWiki a podpěruje so najlěpje ([http://www.php.net/manual/en/mysql.installation.php Nawod ke kompilowanju PHP z MySQL-podpěru])',
'config-support-postgres' => '* $1 je popularny system datoweje banki zjawneho žórła jako alternatiwa k MySQL ([http://www.php.net/manual/en/pgsql.installation.php nawod za kompilowanje PHP z podpěru PostgreSQL]). Móhło hišće někotre zmylki eksistować, a njeporuča so jón w produktiwnej wokolinje wužiwać.',
'config-support-oracle' => '* $1 je komercielna předewzaćelska datowa banka. ([http://www.php.net/manual/en/oci8.installation.php Nawod za kompilowanje PHP z OCI8-podpěru])',
- 'config-support-ibm_db2' => '* $1 je komercielna předewzaćelska datowa banka.',
+ 'config-support-ibm_db2' => '* $1 je komercielna předewzaćelska datowa banka.', # Fuzzy
'config-header-mysql' => 'Nastajenja MySQL',
'config-header-postgres' => 'Nastajenja PostgreSQL',
'config-header-sqlite' => 'Nastajenja SQLite',
'config-upgrade-done-no-regenerate' => 'Aktualizacija dokónčena.
Móžeš nětko [$1 swój wiki wužiwać].',
- 'config-regenerate' => 'LocalSettings.php znowa wutworić →',
- 'config-show-table-status' => 'Naprašowanje SHOW TABLE STATUS je so njeporadźiło!',
+ 'config-regenerate' => '<code>LocalSettings.php</code> znowa wutworić →',
+ 'config-show-table-status' => 'Naprašowanje <code>SHOW TABLE STATUS</code> je so njeporadźiło!',
'config-unknown-collation' => "'''Warnowanje:''' Datowa banka njeznatu kolaciju wužiwa.",
'config-db-web-account' => 'Konto datoweje banki za webpřistup',
'config-db-web-help' => 'wubjer wužiwarske mjeno a hesło, kotrejž webserwer budźe wužiwać, zo by z serwerom datoweje banki za wšědnu operaciju zwjazać',
'config-optional-continue' => 'Dalše prašenja?',
'config-optional-skip' => 'Instaluj nětko wiki.',
'config-profile' => 'Profil wužiwarskich prawow:',
- 'config-profile-wiki' => 'Tradicionelny wiki',
+ 'config-profile-wiki' => 'Tradicionelny wiki', # Fuzzy
'config-profile-no-anon' => 'Załoženje konto je trěbne',
'config-profile-fishbowl' => 'Jenož awtorizowani wobdźěłarjo',
'config-profile-private' => 'Priwatny wiki',
'config-install-alreadydone' => "'''Warnowanje:''' Zda so, zo sy hižo MediaWiki instalował a pospytuješ jón znowa instalować.
Prošu pokročuj z přichodnej stronu.",
'config-install-begin' => 'Přez kliknjenje na "{{int:config-continue}}" budźe so instalacija MediaWiki startować.
-Jeli hišće chceš něšto změnić, klikń na "Wróćo".',
+Jeli hišće chceš něšto změnić, klikń na "Wróćo".', # Fuzzy
'config-install-step-done' => 'dokónčene',
'config-install-step-failed' => 'njeporadźiło',
'config-install-extensions' => 'Inkluziwnje rozšěrjenja',
'config-install-mainpage' => 'Hłowna strona so ze standardnym wobsahom wutworja',
'config-install-extension-tables' => 'Tabele za zmóžnjene rozšěrjenja so tworja',
'config-install-mainpage-failed' => 'Powěsć njeda so zasunyć: $1',
- 'config-download-localsettings' => 'LocalSettings.php sćahnyć',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code> sćahnyć',
'config-help' => 'pomoc',
'config-nofile' => 'Dataja "$1" njeje so namakała. Je so zhašała?',
'mainpagetext' => "'''MediaWiki bu wuspěšnje instalowany.'''",
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Wo nastajenjach]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]', # Fuzzy
);
/** Haitian (Kreyòl ayisyen)
/** Hungarian (magyar)
* @author Dani
* @author Glanthor Reviol
+ * @author 아라
*/
$messages['hu'] = array(
'config-desc' => 'A MediaWiki telepítője',
'config-title' => 'A MediaWiki $1 telepítése',
'config-information' => 'Információ',
'config-localsettings-upgrade' => 'Már létezik a <code>LocalSettings.php</code> fájl.
-A telepített szoftver frissítéséhez írd be az alábbi mezőbe a <code>$wgUpgradeKey</code> beállítás értékét, melyet a LocalSettings.php nevű fájlban találhatsz meg.',
- 'config-localsettings-cli-upgrade' => 'A LocalSettings.php fájl megtalálható.
-A telepített rendszer frissítéséhez futtasd az update.php-t.',
+A telepített szoftver frissítéséhez írd be az alábbi mezőbe a <code>$wgUpgradeKey</code> beállítás értékét, melyet a <code>LocalSettings.php</code> nevű fájlban találhatsz meg.',
+ 'config-localsettings-cli-upgrade' => 'A <code>LocalSettings.php</code> fájl megtalálható.
+A telepített rendszer frissítéséhez futtasd az <code>update.php</code>-t.',
'config-localsettings-key' => 'Frissítési kulcs:',
'config-localsettings-badkey' => 'A megadott kulcs érvénytelen.',
'config-upgrade-key-missing' => 'A telepítő a MediaWiki meglévő példányát észlelte.
-A telepített rendszer frissítéséhez helyezd el az alábbi sort a LocalSettings.php végére:
+A telepített rendszer frissítéséhez helyezd el az alábbi sort a <code>LocalSettings.php</code> végére:
$1',
- 'config-localsettings-incomplete' => 'A meglévő LocalSettings.php hiányosnak tűnik.
+ 'config-localsettings-incomplete' => 'A meglévő <code>LocalSettings.php</code> hiányosnak tűnik.
A(z) $1 változó értéke nincs beállítva.
-Módosítsd a LocalSettings.php fájlt úgy, hogy ez a változó be legyen állítva, majd kattints a „Folytatás” gombra.',
- 'config-localsettings-connection-error' => 'Nem sikerült csatlakozni az adatbázishoz a LocalSettings.php-ben vagy az AdminSettings.php-ben megadott adatokkal. Ellenőrizd a beállításokat, majd próbáld újra.
+Módosítsd a <code>LocalSettings.php</code> fájlt úgy, hogy ez a változó be legyen állítva, majd kattints a „{{int:Config-continue}}” gombra.',
+ 'config-localsettings-connection-error' => 'Nem sikerült csatlakozni az adatbázishoz a <code>LocalSettings.php</code>-ben vagy az <code>AdminSettings.php</code>-ben megadott adatokkal. Ellenőrizd a beállításokat, majd próbáld újra.
$1',
'config-session-error' => 'Nem sikerült elindítani a munkamenetet: $1',
'config-using531' => 'A MediaWiki nem használható a PHP $1-es verziójával, mert hiba van a <code>__call()</code> függvénynek átadott referenciaparaméterekkel.
A probléma kiküszöböléséhez frissíts a PHP 5.3.2-es verziójára, vagy használd a korábbi, 5.3.0-ásat.
Telepítés megszakítva.',
- 'config-suhosin-max-value-length' => 'A Suhosin telepítve van, és a GET paraméter hosszát $1 bájtra korlátozza. A MediaWiki erőforrásbetöltő összetevője megkerüli a problémát, de így csökkenni fog a teljesítmény. Ha lehetséges, állítsd be a suhosin.get.max_value_length értékét legalább 1024-re a php.iniben, és állítsd be a $wgResourceLoaderMaxQueryLength változót ugyanerre az értékre a LocalSettings.php-ben.',
+ 'config-suhosin-max-value-length' => 'A Suhosin telepítve van, és a GET paraméter hosszát $1 bájtra korlátozza. A MediaWiki erőforrásbetöltő összetevője megkerüli a problémát, de így csökkenni fog a teljesítmény. Ha lehetséges, állítsd be a <code>suhosin.get.max_value_length</code> értékét legalább 1024-re a <code>php.ini</code>ben, és állítsd be a <code>$wgResourceLoaderMaxQueryLength</code> változót ugyanerre az értékre a LocalSettings.php-ben.', # Fuzzy
'config-db-type' => 'Adatbázis típusa:',
'config-db-host' => 'Adatbázis hosztneve:',
'config-db-host-help' => 'Ha az adatbázisszerver másik szerveren található, add meg a hosztnevét vagy az IP-címét.
'config-support-postgres' => '* A $1 népszerű, nyílt forráskódú adatbázisrendszer, a MySQL alternatívája ([http://www.php.net/manual/en/pgsql.installation.php Hogyan fordítható a PHP PostgreSQL-támogatással]). Több apró, javítatlan hiba is előfordulhat, így nem ajánlott éles környezetben használni.',
'config-support-sqlite' => '* Az $1 egy könnyű, nagyon jól támogatott adatbázisrendszer. ([http://www.php.net/manual/en/pdo.installation.php Hogyan fordítható a PHP SQLite-támogatással], PDO-t használ)',
'config-support-oracle' => '* Az $1 kereskedelmi, vállalati adatbázisrendszer. ([http://www.php.net/manual/en/oci8.installation.php Hogyan fordítható a PHP OCI8-támogatással])',
- 'config-support-ibm_db2' => '* Az $1 kereskedelmi vállalati adatbázisrendszer.',
+ 'config-support-ibm_db2' => '* Az $1 kereskedelmi vállalati adatbázisrendszer.', # Fuzzy
'config-header-mysql' => 'MySQL-beállítások',
'config-header-postgres' => 'PostgreSQL-beállítások',
'config-header-sqlite' => 'SQLite-beállítások',
'config-upgrade-done-no-regenerate' => "A frissítés befejeződött.
Most már '''[$1 beléphetsz a wikibe]'''.",
- 'config-regenerate' => 'LocalSettings.php elkészítése újra →',
- 'config-show-table-status' => 'A SHOW TABLE STATUS lekérdezés nem sikerült!',
+ 'config-regenerate' => '<code>LocalSettings.php</code> elkészítése újra →',
+ 'config-show-table-status' => 'A <code>SHOW TABLE STATUS</code> lekérdezés nem sikerült!',
'config-unknown-collation' => "'''Figyelmeztetés:''' az adatbázis ismeretlen egybevetést használ.",
'config-db-web-account' => 'A webes hozzáférésnél használt adatbázisfiók',
'config-db-web-help' => 'Add meg azt a felhasználónevet és jelszót, amit a webszerver a wiki általános működése során használ a csatlakozáshoz.',
'config-optional-continue' => 'További információk megadása.',
'config-optional-skip' => 'Épp elég volt, települjön a wiki!',
'config-profile' => 'Felhasználói jogosultságok profilja:',
- 'config-profile-wiki' => 'Hagyományos wiki',
+ 'config-profile-wiki' => 'Hagyományos wiki', # Fuzzy
'config-profile-no-anon' => 'Felhasználói fiók létrehozása szükséges',
'config-profile-fishbowl' => 'Csak engedélyezett szerkesztők',
'config-profile-private' => 'Privát wiki',
Lehetőség van arra is, hogy '''{{lc:{{int:config-profile-fishbowl}}}}''' módosíthassák a lapokat, de a nyilvánosság ekkor megtekintheti a lapokat és azok laptörténetét is. '''{{int:config-profile-private}}''' esetén csak az engedélyezett szerkesztők tekinthetik meg a lapokat, és ugyanez a csoport szerkeszthet.
-Telepítés után jóval összetettebb jogosultságrendszer állítható össze, további információ a [//www.mediawiki.org/wiki/Manual:User_rights kézikönyv kapcsolódó bejegyzésében].",
+Telepítés után jóval összetettebb jogosultságrendszer állítható össze, további információ a [//www.mediawiki.org/wiki/Manual:User_rights kézikönyv kapcsolódó bejegyzésében].", # Fuzzy
'config-license' => 'Szerzői jog és licenc:',
'config-license-none' => 'Nincs licencjelzés',
'config-license-cc-by-sa' => 'Creative Commons Nevezd meg! - Így add tovább!',
'config-install-alreadydone' => "'''Figyelmeztetés:''' Úgy tűnik, hogy a MediaWiki telepítve van, és te ismét megpróbálod telepíteni.
Folytasd a következő oldalon.",
'config-install-begin' => 'A „{{int:config-continue}}” gomb megnyomása elindítja a MediaWiki telepítését.
-Ha szeretnél módosítani a beállításokon, kattints a vissza gombra.',
+Ha szeretnél módosítani a beállításokon, kattints a vissza gombra.', # Fuzzy
'config-install-step-done' => 'kész',
'config-install-step-failed' => 'sikertelen',
'config-install-extensions' => 'Kiterjesztések beillesztése',
'''Megjegyzés''': Ha ezt most nem teszed meg, és kilépsz a telepítésből, az elkészített konfigurációs fájlt nem tudod elérni a későbbiekben.
Ha végeztél a fájl elhelyezésével, '''[$2 beléphetsz a wikibe]'''.",
- 'config-download-localsettings' => 'LocalSettings.php letöltése',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code> letöltése',
'config-help' => 'segítség',
'mainpagetext' => "'''A MediaWiki telepítése sikeresen befejeződött.'''",
'mainpagedocfooter' => "Ha segítségre van szükséged a wikiszoftver használatához, akkor keresd fel a [//meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.
== Alapok (angol nyelven) ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Beállítások listája]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki GyIK]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]",
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]", # Fuzzy
);
/** Magyar (magázó) (Magyar (magázó))
== Alapok (angol nyelven) ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Beállítások listája]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki GyIK]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]",
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]", # Fuzzy
);
/** Armenian (Հայերեն)
/** Interlingua (interlingua)
* @author McDutchie
+ * @author 아라
*/
$messages['ia'] = array(
'config-desc' => 'Le installator de MediaWiki',
'config-information' => 'Information',
'config-localsettings-upgrade' => 'Un file <code>LocalSettings.php</code> ha essite detegite.
Pro actualisar iste installation, per favor entra le valor de <code>$wgUpgradeKey</code> in le quadro hic infra.
-Iste se trova in LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Un file LocalSettings.php file ha essite detegite.
-Pro actualisar iste installation, per favor executa upgrade.php.',
+Iste se trova in <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Un file <code>LocalSettings.php</code> file ha essite detegite.
+Pro actualisar iste installation, per favor executa <code>update.php</code>.',
'config-localsettings-key' => 'Clave de actualisation:',
'config-localsettings-badkey' => 'Le clave que tu forniva es incorrecte',
'config-upgrade-key-missing' => 'Un installation existente de MediaWiki ha essite detegite.
-Pro actualisar iste installation, es necessari adjunger le sequente linea al fin del file LocalSettings.php:
+Pro actualisar iste installation, es necessari adjunger le sequente linea al fin del file <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Le file LocalSettings.php existente pare esser incomplete.
+ 'config-localsettings-incomplete' => 'Le file <code>LocalSettings.php</code> existente pare esser incomplete.
Le variabile $1 non es definite.
-Per favor cambia LocalSettings.php de sorta que iste variabile es definite, e clicca "Continuar".',
- 'config-localsettings-connection-error' => 'Un error esseva incontrate durante le connexion al base de datos usante le configurationes specificate in LocalSettings.php o AdminSettings.php. Per favor repara iste configurationes e tenta lo de novo.
+Per favor cambia <code>LocalSettings.php</code> de sorta que iste variabile es definite, e clicca "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Un error esseva incontrate durante le connexion al base de datos usante le configurationes specificate in <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Per favor repara iste configurationes e tenta lo de novo.
$1',
'config-session-error' => 'Error al comenciamento del session: $1',
'config-using531' => 'MediaWiki non pote esser usate con PHP $1 a causa de un defecto concernente parametros de referentia a <code>__call()</code>.
Actualisa a PHP 5.3.2 o plus recente, o retrograda a PHP 5.3.0 pro remediar isto.
Installation abortate.',
- 'config-suhosin-max-value-length' => 'Suhosin es installate e limita le longitude del parametro GET a $1 bytes. Le componente ResourceLoader de MediaWiki pote contornar iste limite, ma isto degradara le rendimento. Si possibile, tu deberea mitter suhosin.get.max_value_length a 1024 o plus in php.ini , e mitter $wgResourceLoaderMaxQueryLength al mesme valor in LocalSettings.php .',
+ 'config-suhosin-max-value-length' => 'Suhosin es installate e limita le longitude del parametro GET a $1 bytes. Le componente ResourceLoader de MediaWiki pote contornar iste limite, ma isto degradara le rendimento. Si possibile, tu deberea mitter <code>suhosin.get.max_value_length</code> a 1024 o plus in <code>php.ini</code> , e mitter <code>$wgResourceLoaderMaxQueryLength</code> al mesme valor in LocalSettings.php .', # Fuzzy
'config-db-type' => 'Typo de base de datos:',
'config-db-host' => 'Servitor de base de datos:',
'config-db-host-help' => 'Si tu servitor de base de datos es in un altere servitor, entra hic le nomine o adresse IP del servitor.
'config-support-postgres' => '* $1 es un systema de base de datos popular e open source, alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar PHP con supporto de PostgreSQL]). Es possibile que resta alcun minor defectos non resolvite, dunque illo non es recommendate pro uso in un ambiente de production.',
'config-support-sqlite' => '* $1 es un systema de base de datos legier que es multo ben supportate. ([http://www.php.net/manual/en/pdo.installation.php Como compilar PHP con supporto de SQLite], usa PDO)',
'config-support-oracle' => '* $1 es un banca de datos commercial pro interprisas. ([http://www.php.net/manual/en/oci8.installation.php Como compilar PHP con supporto de OCI8])',
- 'config-support-ibm_db2' => '* $1 es un systema commercial de base de datos pro interprisas.',
+ 'config-support-ibm_db2' => '* $1 es un systema commercial de base de datos pro interprisas.', # Fuzzy
'config-header-mysql' => 'Configuration de MySQL',
'config-header-postgres' => 'Configuration de PostgreSQL',
'config-header-sqlite' => 'Configuration de SQLite',
'config-upgrade-done-no-regenerate' => 'Actualisation complete.
Tu pote ora [$1 comenciar a usar tu wiki].',
- 'config-regenerate' => 'Regenerar LocalSettings.php →',
- 'config-show-table-status' => 'Le consulta SHOW TABLE STATUS falleva!',
+ 'config-regenerate' => 'Regenerar <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Le consulta <code>SHOW TABLE STATUS</code> falleva!',
'config-unknown-collation' => "'''Aviso:''' Le base de datos usa un collation non recognoscite.",
'config-db-web-account' => 'Conto de base de datos pro accesso via web',
'config-db-web-help' => 'Selige le nomine de usator e contrasigno que le servitor web usara pro connecter al servitor de base de datos, durante le operation ordinari del wiki.',
'config-optional-continue' => 'Pone me plus questiones.',
'config-optional-skip' => 'Isto me es jam tediose. Simplemente installa le wiki.',
'config-profile' => 'Profilo de derectos de usator:',
- 'config-profile-wiki' => 'Wiki traditional',
+ 'config-profile-wiki' => 'Wiki traditional', # Fuzzy
'config-profile-no-anon' => 'Creation de conto obligatori',
'config-profile-fishbowl' => 'Modificatores autorisate solmente',
'config-profile-private' => 'Wiki private',
Le scenario '''{{int:config-profile-fishbowl}}''' permitte al usatores approbate de modificar, ma le publico pote vider le paginas, includente lor historia.
Un '''{{int:config-profile-private}}''' permitte solmente al usatores approbate de vider le paginas e de modificar los.
-Configurationes de derectos de usator plus complexe es disponibile post installation, vide le [//www.mediawiki.org/wiki/Manual:User_rights pertinente section del manual].",
+Configurationes de derectos de usator plus complexe es disponibile post installation, vide le [//www.mediawiki.org/wiki/Manual:User_rights pertinente section del manual].", # Fuzzy
'config-license' => 'Copyright e licentia:',
'config-license-none' => 'Nulle licentia in pede de paginas',
'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
'config-install-alreadydone' => "'''Aviso:''' Il pare que tu ha jam installate MediaWiki e tenta installar lo de novo.
Per favor continua al proxime pagina.",
'config-install-begin' => 'Un clic sur "{{int:config-continue}}" comencia le installation de MediaWiki.
-Pro facer alterationes, clicca sur "Retro".',
+Pro facer alterationes, clicca sur "Retro".', # Fuzzy
'config-install-step-done' => 'finite',
'config-install-step-failed' => 'fallite',
'config-install-extensions' => 'Include le extensiones',
'''Nota''': Si tu non discarga iste file de configuration ora, illo non essera disponibile plus tarde.
Post facer isto, tu pote '''[$2 entrar in tu wiki]'''.",
- 'config-download-localsettings' => 'Discargar LocalSettings.php',
+ 'config-download-localsettings' => 'Discargar <code>LocalSettings.php</code>',
'config-help' => 'adjuta',
'config-nofile' => 'Le file "$1" non poteva esser trovate. Ha illo essite delite?',
'mainpagetext' => "'''MediaWiki ha essite installate con successo.'''",
== Pro initiar ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de configurationes]
* [//www.mediawiki.org/wiki/Manual:FAQ FAQ a proposito de MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de diffusion pro annuncios de nove versiones de MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de diffusion pro annuncios de nove versiones de MediaWiki]', # Fuzzy
);
/** Indonesian (Bahasa Indonesia)
* @author IvanLanin
* @author Kenrick95
* @author Reedy
+ * @author 아라
*/
$messages['id'] = array(
'config-desc' => 'Penginstal untuk MediaWiki',
'config-information' => 'Informasi',
'config-localsettings-upgrade' => 'Berkas <code>LocalSettings.php</code> sudah ada.
Untuk memutakhirkan instalasi ini, masukkan nilai <code>$wgUpgradeKey</code> dalam kotak yang tersedia di bawah ini.
-Anda dapat menemukan nilai tersebut dalam LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Berkas LocalSettings.php terdeteksi.
-Untuk meningkatkan versi, harap jalankan update.php.',
+Anda dapat menemukan nilai tersebut dalam <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Berkas <code>LocalSettings.php</code> terdeteksi.
+Untuk meningkatkan versi, harap jalankan <code>update.php</code>.',
'config-localsettings-key' => 'Kunci pemutakhiran:',
'config-localsettings-badkey' => 'Kunci yang Anda berikan tidak benar',
'config-upgrade-key-missing' => 'Suatu instalasi MediaWiki telah terdeteksi.
-Untuk memutakhirkan instalasi ini, silakan masukkan baris berikut di bagian bawah LocalSettings.php Anda:
+Untuk memutakhirkan instalasi ini, silakan masukkan baris berikut di bagian bawah <code>LocalSettings.php</code> Anda:
$1',
- 'config-localsettings-incomplete' => 'LocalSettings.php yang ada tampaknya tidak lengkap.
+ 'config-localsettings-incomplete' => '<code>LocalSettings.php</code> yang ada tampaknya tidak lengkap.
Variabel $1 tidak diatur.
-Silakan ubah LocalSettings.php untuk mengatur variabel ini dan klik "Lanjutkan".',
- 'config-localsettings-connection-error' => 'Timbul galat saat menghubungkan ke basis data dengan menggunakan setelan yang ditentukan di LocalSettings.php atau AdminSettings.php. Harap perbaiki setelan ini dan coba lagi.
+Silakan ubah <code>LocalSettings.php</code> untuk mengatur variabel ini dan klik "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Timbul galat saat menghubungkan ke basis data dengan menggunakan setelan yang ditentukan di <code>LocalSettings.php</code> atau <code>AdminSettings.php</code>. Harap perbaiki setelan ini dan coba lagi.
$1',
'config-session-error' => 'Kesalahan sesi mulai: $1',
'config-using531' => 'MediaWiki tidak dapat dijalankan dengan PHP $1 karena bug yang melibatkan parameter referensi untuk <code>__call()</code> .
Tingkatkan ke PHP 5.3.2 atau lebih baru, atau turunkan ke PHP versi 5.3.0 untuk menyelesaikan hal ini.
Instalasi dibatalkan.',
- 'config-suhosin-max-value-length' => 'Suhosin terpasang dan membatasi panjang parameter GET sebesar $1 bita. Komponen ResourceLoader MediaWiki akan mengatasi batasan ini, tapi penanganannya akan menurunkan kinerja. Jika memungkinkan, Anda sebaiknya menetapkan nilai suhosin.get.max_value_length menjadi 1024 atau lebih tinggi dalam php.ini dan menyetel $wgResourceLoaderMaxQueryLength dengan nilai yang sama dalam LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'Suhosin terpasang dan membatasi panjang parameter GET sebesar $1 bita. Komponen ResourceLoader MediaWiki akan mengatasi batasan ini, tapi penanganannya akan menurunkan kinerja. Jika memungkinkan, Anda sebaiknya menetapkan nilai <code>suhosin.get.max_value_length</code> menjadi 1024 atau lebih tinggi dalam <code>php.ini</code> dan menyetel <code>$wgResourceLoaderMaxQueryLength</code> dengan nilai yang sama dalam LocalSettings.php.', # Fuzzy
'config-db-type' => 'Jenis basis data:',
'config-db-host' => 'Inang basis data:',
'config-db-host-help' => 'Jika server basis data Anda berada di server yang berbeda, masukkan nama inang atau alamat IP di sini.
'config-support-postgres' => '* $1 adalah sistem basis data sumber terbuka populer sebagai alternatif untuk MySQL ([http://www.php.net/manual/en/pgsql.installation.php cara mengompilasi PHP dengan dukungan PostgreSQL]). Mungkin ada beberapa bug terbuka dan alternatif ini tidak direkomendasikan untuk dipakai dalam lingkungan produksi.',
'config-support-sqlite' => '* $1 adalah sistem basis data yang ringan yang sangat baik dukungannya. ([http://www.php.net/manual/en/pdo.installation.php cara mengompilasi PHP dengan dukungan SQLite], menggunakan PDO)',
'config-support-oracle' => '* $1 adalah basis data komersial untuka perusahaan. ([http://www.php.net/manual/en/oci8.installation.php cara mengompilasi PHP dengan dukungan OCI8])',
- 'config-support-ibm_db2' => '* $1 adalah basis data-perusahaan komersial.',
+ 'config-support-ibm_db2' => '* $1 adalah basis data-perusahaan komersial.', # Fuzzy
'config-header-mysql' => 'Pengaturan MySQL',
'config-header-postgres' => 'Pengaturan PostgreSQL',
'config-header-sqlite' => 'Pengaturan SQLite',
'config-upgrade-done-no-regenerate' => 'Pemutakhiran selesai.
Anda sekarang dapat [$1 mulai menggunakan wiki Anda].',
- 'config-regenerate' => 'Regenerasi LocalSettings.php →',
- 'config-show-table-status' => 'Kueri SHOW TABLE STATUS gagal!',
+ 'config-regenerate' => 'Regenerasi <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Kueri <code>SHOW TABLE STATUS</code> gagal!',
'config-unknown-collation' => "'''Peringatan:''' basis data menggunakan kolasi yang tidak dikenal.",
'config-db-web-account' => 'Akun basis data untuk akses web',
'config-db-web-help' => 'Masukkan nama pengguna dan sandi yang akan digunakan server web untuk terhubung ke server basis data saat operasi normal wiki.',
'config-optional-continue' => 'Berikan saya pertanyaan lagi.',
'config-optional-skip' => 'Saya sudah bosan, instal saja wikinya.',
'config-profile' => 'Profil hak pengguna:',
- 'config-profile-wiki' => 'Wiki tradisional',
+ 'config-profile-wiki' => 'Wiki tradisional', # Fuzzy
'config-profile-no-anon' => 'Pembuatan akun diperlukan',
'config-profile-fishbowl' => 'Khusus penyunting terdaftar',
'config-profile-private' => 'Wiki pribadi',
'''{{int:config-profile-fishbowl}}''' memungkinkan pengguna yang disetujui untuk menyunting, tetapi publik dapat melihat halaman, termasuk riwayatnya.
'''{{int:config-profile-private}}''' hanya memungkinkan pengguna yang disetujui untuk melihat dan menyunting halaman.
-Konfigurasi hak pengguna yang lebih kompleks tersedia setelah instalasi. Lihat [//www.mediawiki.org/wiki/Manual:User_rights/id entri manual terkait].",
+Konfigurasi hak pengguna yang lebih kompleks tersedia setelah instalasi. Lihat [//www.mediawiki.org/wiki/Manual:User_rights/id entri manual terkait].", # Fuzzy
'config-license' => 'Hak cipta dan lisensi:',
'config-license-none' => 'Tidak ada lisensi',
'config-license-cc-by-sa' => 'Creative Commons Atribusi Berbagi Serupa',
'config-install-alreadydone' => "'''Peringatan:''' Anda tampaknya telah menginstal MediaWiki dan mencoba untuk menginstalnya lagi.
Lanjutkan ke halaman berikutnya.",
'config-install-begin' => 'Dengan menekan "{{int:config-continue}}", Anda akan memulai instalasi MediaWiki.
-Jika Anda masih ingin membuat perubahan, tekan "{{int:config-back}}".',
+Jika Anda masih ingin membuat perubahan, tekan "{{int:config-back}}".', # Fuzzy
'config-install-step-done' => 'selesai',
'config-install-step-failed' => 'gagal',
'config-install-extensions' => 'Termasuk ekstensi',
'''Catatan''': Jika Anda tidak melakukannya sekarang, berkas konfigurasi yang dihasilkan ini tidak akan tersedia lagi setelah Anda keluar dari proses instalasi tanpa mengunduhnya.
Setelah melakukannya, Anda dapat '''[$2 memasuki wiki Anda]'''.",
- 'config-download-localsettings' => 'Unduh LocalSettings.php',
+ 'config-download-localsettings' => 'Unduh <code>LocalSettings.php</code>',
'config-help' => 'bantuan',
'config-nofile' => 'Berkas "$1" tidak dapat ditemukan. Mungkin sudah dihapus?',
'mainpagetext' => "'''MediaWiki telah terpasang dengan sukses'''.",
* @author F. Cosoleto
* @author Gianfranco
* @author Karika
+ * @author 아라
*/
$messages['it'] = array(
'config-desc' => 'Il programma di installazione per MediaWiki',
'config-information' => 'Informazioni',
'config-localsettings-upgrade' => 'È stato rilevato un file <code>LocalSettings.php</code>.
Per aggiornare questa installazione, si prega di inserire il valore di <code>$wgUpgradeKey</code> nella casella qui sotto.
-Lo potete trovare in LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'È stato rilevato un file LocalSettings.php.
-Per aggiornare questa installazione, eseguire update.php',
+Lo potete trovare in <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'È stato rilevato un file <code>LocalSettings.php</code>.
+Per aggiornare questa installazione, eseguire <code>update.php</code>',
'config-localsettings-key' => 'Chiave di aggiornamento:',
'config-localsettings-badkey' => 'La chiave che hai fornito non è corretta.',
'config-upgrade-key-missing' => "È stata rilevata un'installazione esistente di MediaWiki.
-Per aggiornare questa installazione, si prega di inserire la seguente riga nella parte inferiore del tuo LocalSettings.php:
+Per aggiornare questa installazione, si prega di inserire la seguente riga nella parte inferiore del tuo <code>LocalSettings.php</code>:
$1",
- 'config-localsettings-incomplete' => 'Il file LocalSettings.php esistente sembra essere incompleto.
+ 'config-localsettings-incomplete' => 'Il file <code>LocalSettings.php</code> esistente sembra essere incompleto.
La variabile $1 non è impostata.
-Cambia LocalSettings.php in modo che questa variabile sia impostata e fai clic su "Continua".',
- 'config-localsettings-connection-error' => 'Si è verificato un errore durante la connessione al database utilizzando le impostazioni specificate in LocalSettings.php o AdminSettings.php. Si prega di correggere queste impostazioni e riprovare.
+Cambia <code>LocalSettings.php</code> in modo che questa variabile sia impostata e fai clic su "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Si è verificato un errore durante la connessione al database utilizzando le impostazioni specificate in <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Si prega di correggere queste impostazioni e riprovare.
$1',
'config-session-error' => "Errore nell'avvio della sessione: $1",
'config-install-subscribe-notpossible' => 'cURL non è installato e allow_url_fopen non è disponibile.',
'config-install-mainpage' => 'Creazione della pagina principale con contenuto predefinito',
'config-install-mainpage-failed' => 'Impossibile inserire la pagina principale: $1',
- 'config-download-localsettings' => 'Scarica LocalSettings.php',
+ 'config-download-localsettings' => 'Scarica <code>LocalSettings.php</code>',
'config-help' => 'aiuto',
'config-nofile' => 'Il file "$1" non può essere trovato. È stato eliminato?',
'mainpagetext' => "'''Installazione di MediaWiki completata correttamente.'''",
'config-information' => '情報',
'config-localsettings-upgrade' => 'ファイル <code>LocalSettings.php</code> を検出しました。
インストールされているものをアップグレードするには、<code>$wgUpgradeKey</code> の値を以下の欄に入力してください。
-この値は LocalSettings.php 内にあります。',
- 'config-localsettings-cli-upgrade' => 'ファイル LocalSettings.php を検出しました。
-インストールされているものをアップグレードするには、update.php を実行してください',
+この値は <code>LocalSettings.php</code> 内にあります。',
+ 'config-localsettings-cli-upgrade' => 'ファイル <code>LocalSettings.php</code> を検出しました。
+インストールされているものをアップグレードするには、<code>update.php</code> を実行してください',
'config-localsettings-key' => 'アップグレード キー:',
'config-localsettings-badkey' => '与えられたキーが間違っています',
'config-upgrade-key-missing' => 'MediaWiki が既にインストールされていることを検出しました。
-インストールされているものをアップグレードするために、以下の行を LocalSettings.php の末尾に挿入してください:
+インストールされているものをアップグレードするために、以下の行を <code>LocalSettings.php</code> の末尾に挿入してください:
$1',
- 'config-localsettings-incomplete' => '既存の LocalSettings.php の内容は不完全のようです。
+ 'config-localsettings-incomplete' => '既存の <code>LocalSettings.php</code> の内容は不完全のようです。
変数 $1 が設定されていません。
-LocalSettings.php 内でこの変数を設定して、「{{int:Config-continue}}」をクリックしてください。',
+<code>LocalSettings.php</code> 内でこの変数を設定して、「{{int:Config-continue}}」をクリックしてください。',
+ 'config-localsettings-connection-error' => '<code>LocalSettings.php</code> または <code>AdminSettings.php</code> で指定した設定を使用してデータベースに接続する際にエラーが発生しました。
+設定を修正してから再度試してください。
+
+$1',
'config-session-error' => 'セッションの開始エラー: $1',
'config-session-expired' => 'セッションの有効期限が切れたようです。
セッションの有効期間は$1に設定されています。
'config-page-copying' => 'コピー',
'config-page-upgradedoc' => 'アップグレード',
'config-page-existingwiki' => '既存のウィキ',
- 'config-help-restart' => '入力した保存データをすべて消去して、インストール作業を再起動しますか?',
+ 'config-help-restart' => '入力した保存データをすべて消去して、インストール作業を再起動しますか?',
'config-restart' => 'はい、再起動します',
'config-welcome' => '=== 環境の確認 ===
基本的な確認では、現在の環境がMediaWikiのインストールに適しているかを確認します。
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>オプションが有効になっています。'''
+ 'config-register-globals' => "'''警告: PHP の <code>[http://php.net/register_globals register_globals]</code> オプションが有効になっています。'''
'''可能なら無効化してください。'''
-MediaWikiは動作しますが、サーバーは、潜在的なセキュリティ脆弱性を露呈します。",
- 'config-magic-quotes-runtime' => "'''致命的エラー:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]が動作しています!'''
+MediaWiki は動作しますが、サーバーの潜在的なセキュリティ脆弱性が露呈されます。",
+ 'config-magic-quotes-runtime' => "'''致命的エラー: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] が動作しています!'''
このオプションは、予期せずデータ入力を破壊します。
-ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cç\84¡å\8a¹å\8c\96ã\81\95ã\82\8cã\81ªã\81\84ã\81\8bã\81\8eã\82\8aã\80\81MediaWikiã\82\92ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97å\88©ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82",
- 'config-magic-quotes-sybase' => "'''致命的エラー:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]が動作しています!'''
+ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\84¡å\8a¹å\8c\96ã\81\97ã\81ªã\81\84é\99\90ã\82\8aã\80\81MediaWiki ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\82\84使ç\94¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82",
+ 'config-magic-quotes-sybase' => "'''致命的エラー: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] が動作しています!'''
このオプションは、予期せずデータ入力を破壊します。
-ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cç\84¡å\8a¹å\8c\96ã\81\95ã\82\8cã\81ªã\81\84ã\81\8bã\81\8eã\82\8aã\80\81MediaWikiã\82\92ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97å\88©ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82",
- 'config-mbstring' => "'''致命的エラー:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]が動作しています!'''
-このオプションは、エラーを引き起こし、予期せずデータ入力を破壊する可能性があります。
-ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cç\84¡å\8a¹å\8c\96ã\81\95ã\82\8cã\81ªã\81\84ã\81\8bã\81\8eã\82\8aã\80\81MediaWikiã\82\92ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97å\88©ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82",
- 'config-ze1' => "'''致命的エラー:[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]が動作しています!'''
-このオプションは、MediaWikiにおいて深刻なバグを引き起こします。
-ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cç\84¡å\8a¹å\8c\96ã\81\95ã\82\8cã\81ªã\81\84ã\81\8bã\81\8eã\82\8aã\80\81MediaWikiã\82\92ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97å\88©ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82",
+ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\84¡å\8a¹å\8c\96ã\81\97ã\81ªã\81\84é\99\90ã\82\8aã\80\81MediaWiki ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\82\84使ç\94¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82",
+ 'config-mbstring' => "'''致命的エラー: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] が動作しています!'''
+このオプションは、エラーを引き起こし、予期せずデータを破壊するおそれがあります。
+ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\84¡å\8a¹å\8c\96ã\81\97ã\81ªã\81\84é\99\90ã\82\8aã\80\81MediaWiki ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\82\84使ç\94¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82",
+ 'config-ze1' => "'''致命的エラー: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] が動作しています!'''
+このオプションは、MediaWiki において深刻なバグを引き起こします。
+ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\84¡å\8a¹å\8c\96ã\81\97ã\81ªã\81\84é\99\90ã\82\8aã\80\81MediaWiki ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\82\84使ç\94¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82",
'config-safe-mode' => "'''警告:''' PHPの[http://www.php.net/features.safe-mode セーフモード]が有効になっています。
特に、ファイルのアップロードや<code>math</code>機能で、問題が発生するおそれがあります。",
'config-xml-bad' => 'PHPのXMLモジュールが不足しています。
'config-using531' => 'PHP$1は<code>__call()</code>の引数参照に関するバグのため、MediaWikiと互換性がありません。
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-suhosin-max-value-length' => 'Suhosin がインストールされており、GET パラメーターの長さを $1 バイトに制限しています。MediaWiki の ResourceLoader コンポーネントはこの制限を回避しますが、パフォーマンスは低下します。可能な限り、<code>php.ini</code> で <code>suhosin.get.max_value_length</code> を 1024 以上に設定し、同じ値を <code>LocalSettings.php</code> 中で <code>$wgResourceLoaderMaxQueryLength</code> に設定してください。',
'config-db-type' => 'データベースの種類:',
'config-db-host' => 'データベースのホスト:',
'config-db-host-help' => '異なるサーバー上にデータベースサーバーがある場合、ホスト名またはIPアドレスをここに入力してください。
$1
使用しようとしているデータベース システムが下記の一覧にない場合は、上記リンク先の手順に従ってインストールしてください。',
- 'config-support-mysql' => '* $1ã\81¯MediaWikiã\81®ä¸»è¦\81ã\81ªå¯¾è±¡ã\81§ã\80\81ã\82\82ã\81£ã\81¨ã\82\82ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ï¼\88[http://www.php.net/manual/en/mysql.installation.php MySQLã\81®ã\82µã\83\9dã\83¼ã\83\88ä¸\8bã\81§PHPã\82\92ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\99ã\82\8bæ\96¹æ³\95]ï¼\89',
- '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-support-mysql' => '* $1ã\81¯MediaWikiã\81®ä¸»è¦\81ã\81ªå¯¾è±¡ã\81§ã\81\82ã\82\8aã\80\81æ\9c\80ã\82\82ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99 ([http://www.php.net/manual/en/mysql.installation.php MySQLã\81«å¯¾å¿\9cã\81\97ã\81\9fPHPã\82\92ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\99ã\82\8bæ\96¹æ³\95])',
+ '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/ja/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 は商業企業のデータベースです。([http://www.php.net/manual/en/ibm-db2.installation.php IBM DB2に対応したPHPをコンパイルする方法])',
'config-header-mysql' => 'MySQL の設定',
'config-header-postgres' => 'PostgreSQL の設定',
'config-header-sqlite' => 'SQLite の設定',
'config-upgrade-done-no-regenerate' => 'アップグレードが完了しました。
[$1 ウィキの使用を開始]することができます。',
- 'config-regenerate' => 'LocalSettings.phpを再生成→',
- 'config-show-table-status' => 'SHOW TABLE STATUS クエリが失敗しました!',
+ 'config-regenerate' => '<code>LocalSettings.php</code> を再生成→',
+ 'config-show-table-status' => '<code>SHOW TABLE STATUS</code> クエリが失敗しました!',
'config-unknown-collation' => "'''警告:''' データベースは認識されない照合を使用しています。",
'config-db-web-account' => 'ウェブアクセスのためのデータベースアカウント',
'config-db-web-help' => 'ウィキの通常の操作の際に、ウェブ サーバーがデータベース サーバーに接続できるように、ユーザー名とパスワードを指定してください。',
'''MyISAM'''は、利用者が1人の場合、あるいは読み込み専用でインストールする場合に、より処理が早くなるでしょう。
ただし、MyISAMのデータベースは、InnoDBより高頻度で破損する傾向があります。",
- 'config-mysql-charset' => 'データベースの文字セット:',
+ 'config-mysql-charset' => 'データベースの文字セット:',
'config-mysql-binary' => 'バイナリ',
'config-mysql-utf8' => 'UTF-8',
'config-mysql-charset-help' => "'''バイナリ モード'''では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。
中〜大規模サイトではこれを有効にすることを強くお勧めします。小規模サイトでも同様に効果があります。',
'config-cache-none' => 'キャッシングしない(機能は取り払われます、しかもより大きなウィキサイト上でスピードの問題が発生します)',
'config-cache-accel' => 'PHP オブジェクト キャッシュ (APC、XCache、WinCache のいずれか)',
- 'config-cache-memcached' => 'Memcachedを使用(追加の設定が必要です)',
- 'config-memcached-servers' => 'メモリをキャッシュされたサーバ:',
+ 'config-cache-memcached' => 'memcached を使用 (追加の設定が必要)',
+ 'config-memcached-servers' => 'memcached サーバー:',
'config-memcached-help' => 'Memcachedを使用するIPアドレスの一覧。
カンマ区切りで、利用する特定のポートの指定が必要です。例:
127.0.0.1:11211
'''注意''': この生成された設定ファイルをダウンロードせずにインストールを終了すると、このファイルは利用できなくなります。
上記の作業が完了すると、'''[$2 ウィキに入る]'''ことができます。",
- 'config-download-localsettings' => 'LocalSettings.php をダウンロード',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code> をダウンロード',
'config-help' => 'ヘルプ',
'config-nofile' => 'ファイル「$1」が見つかりませんでした。削除された可能性があります。',
'mainpagetext' => "'''MediaWiki のインストールに成功しました。'''",
'config-admin-password-confirm' => 'პაროლი ხელმეორედ:',
'config-admin-name-blank' => 'შეიყვანეთ ადმინისტრატორის მომხმარებლის სახელი.',
'config-admin-email' => 'ელ. ფოსტის მისამართი:',
- 'config-profile-wiki' => 'ტრადიციული ვიკი',
+ 'config-profile-wiki' => 'ტრადიციული ვიკი', # Fuzzy
'config-profile-private' => 'დახურული ვიკი',
'config-license' => 'საავტორო უფლები და ლიცენზია:',
'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
'config-install-step-failed' => 'ვერ მოხერხდა',
'config-install-tables' => 'ცხრილების შექმნა',
'config-install-interwiki-list' => 'ვერ მოიძებნა ფაილი <code>interwiki.list</code>.',
- 'config-download-localsettings' => 'LocalSettings.php-ის გადმოწერა',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code>-ის გადმოწერა',
'config-help' => 'დახმარება',
'mainpagetext' => "'''მედიავიკი წარმატებით ჩაიტვირთა.'''",
'mainpagedocfooter' => 'ვიკი პროგრამის გამოყენების ინფორმაციისთვის იხილეთ [//meta.wikimedia.org/wiki/Help:Contents მომხმარებლის მეგზური].
* @author 아라
*/
$messages['ko'] = array(
- 'config-desc' => '미디어위키 설치 마법사',
+ 'config-desc' => '미디어위키 설치 프로그램',
'config-title' => 'MediaWiki $1 설치',
'config-information' => '정보',
- 'config-localsettings-upgrade' => '<code>LocalSettings.php</code> í\8c\8cì\9d¼ì\9d´ ê°\90ì§\80ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.
+ 'config-localsettings-upgrade' => '<code>LocalSettings.php</code> í\8c\8cì\9d¼ì\9d\84 ê°\90ì§\80í\96\88ì\8aµë\8b\88ë\8b¤.
이 설치를 업그레이드하려면 아래 상자에 <code>$wgUpgradeKey</code>의 값을 입력하세요.
-LocalSettings.php에 찾으세요.',
- 'config-localsettings-cli-upgrade' => 'LocalSettings.php í\8c\8cì\9d¼ì\9d´ ê°\90ì§\80ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.
-이 설치를 업그레이드하려면 update.php를 대신 실행하세요',
+<code>LocalSettings.php</code>에 찾을 수 있습니다.',
+ 'config-localsettings-cli-upgrade' => '<code>LocalSettings.php</code> í\8c\8cì\9d¼ì\9d\84 ê°\90ì§\80í\96\88ì\8aµë\8b\88ë\8b¤.
+이 설치를 업그레이드하려면 <code>update.php</code>를 대신 실행하세요',
'config-localsettings-key' => '업그레이드 키:',
'config-localsettings-badkey' => '제공한 키가 잘못되었습니다.',
'config-upgrade-key-missing' => '미디어위키의 기존 설치가 감지되었습니다.
-이 설치를 업그레이드하려면 LocalSettings.php의 아래에 다음 줄을 넣으세요:
+이 설치를 업그레이드하려면 <code>LocalSettings.php</code>의 아래에 다음 줄을 넣으세요:
$1',
- 'config-localsettings-incomplete' => '기존 LocalSettings.php가 완전하지 않은 것 같습니다.
+ 'config-localsettings-incomplete' => '기존 <code>LocalSettings.php</code>가 완전하지 않은 것 같습니다.
$1 변수가 설정되어 있지 않습니다.
-이 변수가 설정되도록 LocalSettings.php를 바꾸고 "계속"을 클릭하세요.',
- 'config-localsettings-connection-error' => 'LocalSettings.php 또는 AdminSettings.php에 지정한 설정을 사용하여 데이터베이스에 연결할 때 오류가 발생했습니다. 이러한 설정을 수정하고 다시 시도하세요.
+이 변수가 설정되도록 <code>LocalSettings.php</code>를 바꾸고 "{{int:Config-continue}}"을 클릭하세요.',
+ 'config-localsettings-connection-error' => '<code>LocalSettings.php</code> 또는 <code>AdminSettings.php</code>에 지정한 설정을 사용하여 데이터베이스에 연결할 때 오류가 발생했습니다. 이러한 설정을 수정하고 다시 시도하세요.
$1',
'config-session-error' => '세션 시작 오류: $1',
세션은 $1의 작동 시간 동안 구성됩니다.
php.ini에 있는 <code>session.gc_maxlifetime</code>에서 설정해 이를 증가시킬 수 있습니다.
설치 과정을 다시 시작합니다.',
- 'config-no-session' => 'ì\84¸ì\85\98 ë\8d°ì\9d´í\84°ê°\80 ì\86\90ì\8b¤ë\90\98ì\97\88습니다!
+ 'config-no-session' => 'ì\84¸ì\85\98 ë\8d°ì\9d´í\84°ê°\80 ì\97\86ì\96´ì¡\8c습니다!
php.ini를 확인하고 <code>session.save_path</code>가 적절한 디렉토리로 설정되어 있는지 확인하세요.',
'config-your-language' => '설치 언어:',
'config-your-language-help' => '설치 과정에서 사용할 언어를 선택하세요.',
'config-wiki-language' => '위키 언어:',
- 'config-wiki-language-help' => '주ë¡\9c ì\9e\91ì\84±ë\90 ì\9c\84í\82¤ì\97\90 ë\8c\80í\95\9c 언어를 선택하세요.',
+ 'config-wiki-language-help' => 'ì\9c\84í\82¤ì\97\90 주ë¡\9c ì\9e\91ì\84±ë\90 언어를 선택하세요.',
'config-back' => '← 뒤로',
'config-continue' => '계속 →',
'config-page-language' => '언어',
'config-env-php' => 'PHP $1(이)가 설치되었습니다.',
'config-env-php-toolow' => 'PHP $1(이)가 설치되었습니다.
하지만 미디어위키는 PHP $2 이상이 필요합니다.',
- 'config-unicode-using-utf8' => '유니코드 정규화에 대해 Brion Vibber의 utf8_normalize.so를 사용합니다.',
- 'config-unicode-using-intl' => '유니코드 정규화에 ë\8c\80í\95´ [http://pecl.php.net/intl intl PECL í\99\95ì\9e¥]ì\9d\84 ì\82¬ì\9a©í\95©ë\8b\88ë\8b¤.',
- 'config-unicode-pure-php-warning' => "'''경고''': [http://pecl.php.net/intl intl PECL 확장]은 PHP만으로 구현하는 데에는 느려질 정도로 성능이 떨어지는 유니코드 정규화를 처리할 수 없습니다.
-높은 트래픽의 사이트에서 실행하려면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 유니코드 정규화]에 대해 약간 참고해야 합니다.",
+ 'config-unicode-using-utf8' => '유니코드 정규화에 Brion Vibber의 utf8_normalize.so를 사용합니다.',
+ 'config-unicode-using-intl' => '유니코드 정규화에 [http://pecl.php.net/intl intl PECL í\99\95ì\9e¥ 기ë\8a¥]ì\9d\84 ì\82¬ì\9a©í\95©ë\8b\88ë\8b¤.',
+ 'config-unicode-pure-php-warning' => "'''경고''': 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 순수한 PHP 구현을 대신 사용합니다.
+높은 트래픽 사이트에서 실행하려면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 유니코드 정규화]를 읽어보시기 바랍니다.",
'config-unicode-update-warning' => "'''경고''': 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.
만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 업그레이드]해야합니다.",
'config-no-db' => '적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP에 데이터베이스 드라이버를 설치해야 합니다.
다음 데이터베이스 유형을 지원합니다 : $1.
-호스팅을 공유하고 있다면 적절한 데이터베이스 드라이버를 설치하도록 호스팅 제공 업체에 문의하세요.
-PHP를 ì§\81ì \91 ì»´í\8c\8cì\9d¼í\95 ê²½ì\9a° ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ í\81´ë\9d¼ì\9d´ì\96¸í\8a¸ë¥¼ ì\82¬ì\9a©í\95\98ì\97¬ í\99\9cì\84±í\99\94í\95\98ë\8f\84ë¡\9d ë\8b¤ì\8b\9c ì\84¤ì \95í\95\98ì\84¸ì\9a\94. ì\98\88ë\93¤ ë\93¤ì\96´ <code>./configure --with-mysql</code>ì\9d\84 ì\82¬ì\9a©하세요.
+공유하는 호스팅을 사용하고 있다면 적절한 데이터베이스 드라이버를 설치하도록 호스팅 제공 업체에 문의하세요.
+PHP를 ì§\81ì \91 ì»´í\8c\8cì\9d¼í\96\88ë\8b¤ë©´ ì\98\88를 ë\93¤ì\96´ <code>./configure --with-mysql</code>ì\9d\84 ì\82¬ì\9a©í\95\98ì\97¬ ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ í\81´ë\9d¼ì\9d´ì\96¸í\8a¸ë¥¼ í\99\9cì\84±í\99\94í\95\98ë\8f\84ë¡\9d ë\8b¤ì\8b\9c ì\84¤ì \95하세요.
데비안이나 우분트 패키지에서 PHP를 설치했다면 php-mysql 모듈도 설치해야 합니다.',
'config-outdated-sqlite' => "'''경고''': SQLite 필요한 최소 $2 버전보다 낮은 $1(이)가 있습니다. SQLite는 사용할 수 없습니다.",
'config-no-fts3' => "'''경고''': SQLite는 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일되어, 검색 기능은 백엔드에 사용할 수 없습니다.",
'config-register-globals' => "'''경고: PHP의 <code>[http://php.net/register_globals register_globals]</code> 옵션이 활성화되어 있습니다.'''
'''가능하면 이를 비활성화하십시오.'''
-미ë\94\94ì\96´ì\9c\84í\82¤ë\8a\94 ì\9e\91ë\8f\99í\95\98ì§\80ë§\8c ì\84\9cë²\84ì\97\90 ì\9e ì\9e¬ì \81ì\9d¸ ë³´ì\95\88 ì·¨ì\95½ì \90ì\97\90 노출됩니다.",
+미ë\94\94ì\96´ì\9c\84í\82¤ë\8a\94 ì\9e\91ë\8f\99í\95\98ì§\80ë§\8c ì\84\9cë²\84ì\97\90 ì\9e ì\9e¬ì \81ì\9d¸ ë³´ì\95\88 ì·¨ì\95½ì \90ì\9d´ 노출됩니다.",
'config-magic-quotes-runtime' => "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]이 활성합니다!'''
이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일어납니다.
-ì\84¤ì¹\98í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤. ë\98\90ë\8a\94 미ë\94\94ì\96´ì\9c\84í\82¤ê°\80 ì\82¬ì\9a©í\95\98ì§\80 ì\95\8aë\8a\94 ì\9d´ ì\98µì\85\98ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95\98ì\8bì\8b\9cì\98¤.",
+ì\9d´ ì\98µì\85\98ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95\98ì§\80 ì\95\8aë\8a\94 í\95\9c 미ë\94\94ì\96´ì\9c\84í\82¤ë¥¼ ì\84¤ì¹\98í\95\98ê³ ì\82¬ì\9a©í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.",
'config-magic-quotes-sybase' => "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]이 활성합니다!'''
이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일어납니다.
-ì\84¤ì¹\98í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤. ë\98\90ë\8a\94 미ë\94\94ì\96´ì\9c\84í\82¤ê°\80 ì\82¬ì\9a©í\95\98ì§\80 ì\95\8aë\8a\94 ì\9d´ ì\98µì\85\98ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95\98ì\8bì\8b\9cì\98¤.",
+ì\9d´ ì\98µì\85\98ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95\98ì§\80 ì\95\8aë\8a\94 í\95\9c 미ë\94\94ì\96´ì\9c\84í\82¤ë¥¼ ì\84¤ì¹\98í\95\98ê³ ì\82¬ì\9a©í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.",
'config-mbstring' => "'''치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성합니다!'''
이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상이 일어날 수 있습니다.
-ì\84¤ì¹\98í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤. ë\98\90ë\8a\94 미ë\94\94ì\96´ì\9c\84í\82¤ê°\80 ì\82¬ì\9a©í\95\98ì§\80 ì\95\8aë\8a\94 ì\9d´ ì\98µì\85\98ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95\98ì\8bì\8b\9cì\98¤.",
+ì\9d´ ì\98µì\85\98ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95\98ì§\80 ì\95\8aë\8a\94 í\95\9c 미ë\94\94ì\96´ì\9c\84í\82¤ë¥¼ ì\84¤ì¹\98í\95\98ê³ ì\82¬ì\9a©í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.",
'config-ze1' => "'''치명: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]이 활성합니다!'''
-이 옵션은 미디어위키에 끔찍한 버그를 일으킵니다.
-ì\84¤ì¹\98í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤. ë\98\90ë\8a\94 미ë\94\94ì\96´ì\9c\84í\82¤ê°\80 ì\82¬ì\9a©í\95\98ì§\80 ì\95\8aë\8a\94 ì\9d´ ì\98µì\85\98ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95\98ì\8bì\8b\9cì\98¤.",
+이 옵션은 미디어위키에 심간한 버그를 일으킵니다.
+ì\9d´ ì\98µì\85\98ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95\98ì§\80 ì\95\8aë\8a\94 í\95\9c 미ë\94\94ì\96´ì\9c\84í\82¤ë¥¼ ì\84¤ì¹\98í\95\98ê³ ì\82¬ì\9a©í\95 ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.",
'config-safe-mode' => "'''경고:''' [http://www.php.net/features.safe-mode 안전 모드]이 활성합니다!
특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
'config-xml-bad' => 'PHP의 XML 모듈이 없습니다.
'config-apc' => '[http://www.php.net/apc APC]가 설치되었습니다',
'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache]가 설치되었습니다',
'config-no-cache' => "'''경고:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] 또는 [http://www.iis.net/download/WinCacheForPhp WinCache]를 찾을 수 없습니다.
-ê°\9cì²´ ìº\90ì\8b±ì\9d´ í\99\9cì\84±í\99\94ë\90\98ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤.",
+ê°\9cì²´ ìº\90ì\8b±ì\9d\84 í\99\9cì\84±í\99\94í\95\98ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤.",
'config-mod-security' => "'''경고''': 웹 서버에 [http://modsecurity.org/ mod_security]가 허용되었습니다. 잘못 설정된 경우 미디어위키나 사용자가 임의의 콘텐츠를 게시할 수 있는 다른 소프트웨어에 대한 문제를 일으킬 수 있습니다.
[http://modsecurity.org/documentation/ mod_security] 문서를 참고하거나 임의의 오류가 발생할 경우 호스트의 지원 요청에 문의하십시오.",
'config-diff3-bad' => 'GNU diff3를 찾을 수 없습니다.',
미디어위키는 보안 위협에 대한 모든 올린 파일을 검사하지만, 올리기를 활성화하기 전에 [//www.mediawiki.org/wiki/Manual:Security#Upload_security 이 보안 취약점을 해결할 것]을 매우 권장합니다.",
'config-no-cli-uploads-check' => "'''경고:''' 올리기에 대한 기본 디렉토리(<code>$1</code>)는 CLI를 설치하는 동안 임의의 스크립트 실행에 대한 취약점에 대해 검사되지 않습니다.",
'config-brokenlibxml' => '시스템에 버그가 있는 PHP와 libxml2의 조합이 있으며 미디어위키나 다른 웹 어플리케이션에 숨겨진 데이터 손상을 일으킬 수 있습니다.
-PHP 5.2.9 이후와 libxml2 2.7.3 이후로 업그레이드하세요 ([//bugs.php.net/bug.php?id=45996 PHP에 제기한 버그]).
+PHP 5.2.9 이후와 libxml2 2.7.3 이후로 업그레이드하세요. ([//bugs.php.net/bug.php?id=45996 PHP에 제기한 버그])
설치가 중단되었습니다.',
'config-using531' => '미디어위키는 <code>__call()</code>을 참고로 매개 변수를 포함하는 버그로 인해 PHP $1(와)과 함께 사용할 수 없습니다.
문제를 해결하려면 PHP 5.3.2 이상로 업그레이드하거나 PHP 5.3.0으로 다운그레이드를 하세요.
설치가 중단되었습니다.',
- 'config-suhosin-max-value-length' => 'Suhosin(수호신)이 설치되었고 $1 바이트로 GET 매개 변수 길이를 제한하고 있습니다. 미디어위키의 ResourceLoader 구성 요소는 이 제한을 해결하지만 성능이 저하됩니다. 가능하면 php.ini의 suhosin.get.max_value_length에 1024 이상으로 설정하고 LocalSettings.php의 $wgResourceLoaderMaxQueryLength에 같은 값을 설정해야 합니다.',
+ 'config-suhosin-max-value-length' => 'Suhosin(수호신)이 설치되었고 $1 바이트로 GET 매개 변수 길이를 제한하고 있습니다. 미디어위키의 ResourceLoader 구성 요소는 이 제한을 해결하지만 성능이 저하됩니다. 가능하면 <code>php.ini</code>의 <code>suhosin.get.max_value_length</code>에 1024 이상으로 설정하고 LocalSettings.php의 <code>$wgResourceLoaderMaxQueryLength</code>에 같은 값을 설정해야 합니다.', # Fuzzy
'config-db-type' => '데이터베이스 종류:',
'config-db-host' => '데이터베이스 호스트:',
- 'config-db-host-help' => 'ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ ì\84\9cë²\84ê°\80 ë\8b¤ë¥¸ ì\84\9cë²\84ì\97\90 ì\9e\88ì\9d\84 ê²½ì\9a° 여기에 호스트 이름이나 IP 주소를 입력하세요.
+ 'config-db-host-help' => 'ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ ì\84\9cë²\84ê°\80 ë\8b¤ë¥¸ ì\84\9cë²\84ì\97\90 ì\9e\88ì\9c¼ë©´ 여기에 호스트 이름이나 IP 주소를 입력하세요.
-공유된 웹 호스팅을 사용하는 경우 호스팅 공급자는 올바른 호스트 이름을 설명해야 합니다.
+공유하는 웹 호스팅을 사용하고 있으면 호스팅 제공 업체는 호스트 이름을 설명하고 있을 것입니다.
-ì\9c\88ë\8f\84 ì\84\9cë²\84ì\97\90 ì\84¤ì¹\98í\95\98ê³ MySQLì\9d\84 ì\82¬ì\9a©í\95 ê²½ì\9a° "localhost"ë\8a\94 ì\84\9cë²\84 ì\9d´ë¦\84ì\9c¼ë¡\9c ì\9e\91ë\8f\99í\95\98ì§\80 ì\95\8aì\9d\84 ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤. ê·¸ë \87ì§\80 ì\95\8aì\9c¼면 로컬 IP 주소로 "127.0.0.1"를 시도하세요.
+ì\9c\88ë\8f\84 ì\84\9cë²\84ì\97\90 ì\84¤ì¹\98í\95\98ê³ MySQLì\9d\84 ì\82¬ì\9a©í\95\98ë©´ "localhost"ë\8a\94 ì\84\9cë²\84 ì\9d´ë¦\84ì\9c¼ë¡\9c ì\9e\91ë\8f\99í\95\98ì§\80 ì\95\8aì\9d\84 ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤. ê·¸ë \87ê²\8c ë\90\9cë\8b¤면 로컬 IP 주소로 "127.0.0.1"를 시도하세요.
-PostgreSQLì\9d\84 ì\82¬ì\9a©í\95 ê²½ì\9a° 유닉스 소켓을 통해 연결되도록 입력란을 비워두세요.',
+PostgreSQLì\9d\84 ì\82¬ì\9a©í\95\98ë©´ 유닉스 소켓을 통해 연결되도록 입력란을 비워두세요.',
'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' => '이 위키 식별',
'config-db-name-help' => '위키를 식별하기 위한 이름을 선택하세요.
공백이 없어야 합니다.
-공유된 웹 호스팅 사용하는 경우 호스팅 제공 업체가 특정 데이터베이스 이름을 제공하거나 제어판에서 데이터베이스를 만들 수 있도록 합니다.',
+공유하는 웹 호스팅 사용하면 호스팅 제공 업체가 특정 데이터베이스 이름을 제공하거나 관리 패널에서 데이터베이스를 만들 수 있습니다.',
'config-db-name-oracle' => '데이터베이스 스키마:',
'config-db-account-oracle-warn' => '데이터베이스 백엔드로 오라클을 설치하기 위해 지원하는 세 가지 시나리오가 있습니다:
설치 과정의 일부로 데이터베이스 계정을 만들려면 설치를 위해 데이터베이스 계정으로 SYSDBA 역할을 가진 계정을 제공하고 웹 접근 계정에 대해 원하는 자격 증명을 지정하세요, 그렇지 않으면 수동으로 웹 접근 계정을 만들 수 있으며 (필요한 경우 권한 스키마 개체를 만들어야 합니다) 또는 다른 계정 두 개를 만들고 권한을 가진 하나의 웹 접근을 위한 제한된 하나를 제공할 수 있습니다.
-í\95\84ì\9a\94í\95\9c ê¶\8cí\95\9cì\9d\84 ê°\80ì§\84 ê³\84ì \95ì\9d\84 ë§\8cë\93\9cë\8a\94 ì\8a¤í\81¬ë¦½í\8a¸ë\8a\94 ì\9d´ ì\84¤ì¹\98ì\9d\98 "maintenance/oracle/" ë\94\94ë \89í\86 리ì\97\90ì\84\9c ì°¾ì\9d\84 ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤. ì \9cí\95\9cë\90\9c ê³\84ì \95ì\9d\84 ì\82¬ì\9a©í\95\98ë©´ 기본 ê³\84ì \95ì\9c¼ë¡\9c 모ë\93 ê´\80리 기ë\8a¥ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95 ê²\83ì\9d\84 ì\97¼ë\91\90í\95´ ë\91\90십시오.',
+í\95\84ì\9a\94í\95\9c ê¶\8cí\95\9cì\9d\84 ê°\80ì§\84 ê³\84ì \95ì\9d\84 ë§\8cë\93\9cë\8a\94 ì\8a¤í\81¬ë¦½í\8a¸ë\8a\94 ì\9d´ ì\84¤ì¹\98ì\9d\98 "maintenance/oracle/" ë\94\94ë \89í\86 리ì\97\90ì\84\9c ì°¾ì\9d\84 ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤. ì \9cí\95\9cë\90\9c ê³\84ì \95ì\9d\84 ì\82¬ì\9a©í\95\98ë©´ 기본 ê³\84ì \95ì\9c¼ë¡\9c 모ë\93 ê´\80리 기ë\8a¥ì\9d\84 ë¹\84í\99\9cì\84±í\99\94í\95 ê²\83ì\9d\84 ì\9c ì\9d\98í\95\98십시오.',
'config-db-install-account' => '설치를 위한 사용자 계정',
'config-db-username' => '데이터베이스 사용자 이름:',
'config-db-password' => '데이터베이스 비밀번호:',
'''바이너리 모드'''에서는 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.
MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.
-'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 어떤 문자열인지를 알 것이며, 표현하고 적절하게 그것을 변환할 수 있지만
-[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes 기본 다국어 범위] 상의 문자를 저장하지 못하게 될 수 있습니다.",
+'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만
+[//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖의 문자를 저장할 수 없습니다.",
'config-mysql-old' => 'MySQL $1 이상이 필요하나 $2(이)가 있습니다.',
'config-db-port' => '데이터베이스 포트:',
'config-db-schema' => '미디어위키에 대한 스키마:',
- 'config-db-schema-help' => '이 스키마는 보통 괜찮습니다.
-필요로 알고 있을 경우에만 이를 바꾸세요.',
+ 'config-db-schema-help' => '보통 이 스키마는 문제가 없습니다.
+필요한 경우에만 바꾸세요.',
'config-pg-test-error' => "'''$1''' 데이터베이스에 연결할 수 없습니다: $2",
'config-sqlite-dir' => 'SQLite 데이터 디렉토리:',
- 'config-sqlite-dir-help' => 'SQLite는 하나의 파일에 모든 데이터를 저장합니다.
+ 'config-sqlite-dir-help' => "SQLite는 하나의 파일에 모든 데이터를 저장합니다.
-제공하는 디렉토리는 설치하는 동안 웹 서버에 의해 쓸 수 있어야 합니다.
+제공하는 디렉토리는 설치하는 동안 웹 서버가 쓸 수 있어야 합니다.
-PHP 파일이 있는 곳을 우리가 맡길 수 없는 이유는 웹을 통해 접근할 수 없다는 것입니다.
+이 디렉토리는 웹을 통해 접근할 수 '''없어야''' 하는데 PHP 파일이 있는 곳에 넣을 수 없는 것은 이 때문입니다.
-설치 마법사가 이과 함께 .htaccess 파일을 만들지만 거기서 실패하면 누군가는 원본 데이터베이스에 접근하는 데 실패합니다.
-원본 사용자 데이터(이메일 주소, 해시한 비밀번호) 뿐만 아니라 삭제된 개정판과 위키의 다른 제한된 데이터를 포함합니다.
+설치 프로그램은 <code>.htaccess</code> 파일을 작성하지만 이것이 실패하면 누군가가 원본 데이터베이스에 접근할 수 있습니다.
+데이터베이스는 원본 사용자 데이터(이메일 주소, 해시한 비밀번호) 뿐만 아니라 삭제된 판과 위키의 다른 제한된 데이터를 포함합니다.
-<code>/var/lib/mediawiki/yourwiki</code>와 같이 모두 다른 곳에서 데이터베이스를 넣어보도록 하세요.',
+예를 들어 <code>/var/lib/mediawiki/yourwiki</code>와 같이 다른 곳에 데이터베이스를 넣는 것이 좋습니다.",
'config-oracle-def-ts' => '기본 테이블공간:',
'config-oracle-temp-ts' => '임시 테이블공간:',
'config-type-oracle' => '오라클',
데이터베이스 시스템이 표시되지 않을 때 아래에 나열된 다음 지원을 활성화하려면 위의 링크된 지시에 따라 설치해볼 수 있습니다.',
'config-support-mysql' => '* $1은 미디어위키의 기본 대상으로 가장 잘 지원합니다. ([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-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-support-ibm_db2' => '* $1는 상용 엔터프라이즈 데이터베이스입니다.([http://www.php.net/manual/en/ibm-db2.installation.php IBM DB2를 지원하여 PHP를 컴파일하는 방법])',
'config-header-mysql' => 'MySQL 설정',
'config-header-postgres' => 'PostgreSQL 설정',
'config-header-sqlite' => 'SQLite 설정',
호스트, 계정 이름과 비밀번호를 확인하고 다시 시도하세요.',
'config-invalid-schema' => '미디어위키 "$1"에 대한 스키마가 잘못됐습니다.
ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.',
- 'config-db-sys-create-oracle' => '설치 마법사는 새 계정을 만들기 위한 SYSDBA 계정만을 지원합니다.',
+ 'config-db-sys-create-oracle' => '설치 프로그램은 새 계정을 만들기 위한 SYSDBA 계정만을 지원합니다.',
'config-db-sys-user-exists-oracle' => '"$1" 사용자 계정이 이미 존재합니다. SYSDBA는 새 계정을 만드는 데에만 사용할 수 있습니다!',
'config-postgres-old' => 'PostgreSQL $1 이상이 필요하나 $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> 상위 디렉토리에 쓸 수 없기 때문입니다.
-설치 마법사는 웹 서버로 실행중인 사용자를 결정할 수 없습니다.
-ê³\84ì\86\8dí\95\98ë ¤ë©´ ì\9d´ë¥¼ 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.
+설치 프로그램은 웹 서버로 실행중인 사용자를 지정할 수 없습니다.
+ê³\84ì\86\8dí\95\98ë ¤ë©´ ì\9b¹ ì\84\9cë²\84ê°\80 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.
유닉스/리눅스 시스템에서의 수행:
<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> 상위 디렉토리에 쓸 수 없기 때문입니다.
-설치 마법사는 웹 서버로 실행중인 사용자를 결정할 수 없습니다.
-ê³\84ì\86\8dí\95\98ë ¤ë©´ ì\9d´(ì\99\80 기í\83\80!)를 전역으로 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.
+설치 프로그램은 웹 서버로 실행중인 사용자를 지정할 수 없습니다.
+ê³\84ì\86\8dí\95\98ë ¤ë©´ ì\9b¹ ì\84\9cë²\84(ì\99\80 기í\83\80!)ê°\80 전역으로 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.
유닉스/리눅스 시스템에서의 수행:
<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> í\8c\8cì\9d¼ì\9d\80 ì\93°ê¸°ê°\80 ë¶\88ê°\80ë\8a¥í\95©니다.',
+ 'config-sqlite-readonly' => '<code>$1</code> í\8c\8cì\9d¼ì\9d\80 ì\93¸ ì\88\98 ì\97\86ì\8aµ니다.',
'config-sqlite-cant-create-db' => '<code>$1</code> 데이터베이스 파일을 만들 수 없습니다.',
'config-sqlite-fts3-downgrade' => 'PHP가 FTS3 지원이 없어졌습니다. 테이블을 다운그레이드하세요.',
'config-can-upgrade' => "이 데이터베이스에 미디어위키 테이블이 있습니다.
'config-upgrade-done-no-regenerate' => '업그레이드가 완료되었습니다.
이제 [$1 위키를 시작]할 수 있습니다.',
- 'config-regenerate' => 'LocalSettings.php 다시 만들기 →',
- 'config-show-table-status' => 'SHOW TABLE STATUS 쿼리 실패!',
+ 'config-regenerate' => '<code>LocalSettings.php</code> 다시 만들기 →',
+ 'config-show-table-status' => '<code>SHOW TABLE STATUS</code> 쿼리를 실패했습니다!',
'config-unknown-collation' => "'''경고:''' 데이터베이스가 인식하지 않는 정렬을 사용하고 있습니다.",
'config-db-web-account' => '웹 접근을 위한 데이터베이스 계정',
'config-db-web-help' => '위키의 일반적인 작업 중에 데이터베이스 서버에 연결하는 데 사용할 웹 서버에 대한 계정 이름과 비밀번호를 선택하세요.',
MySQL 설치가 InnoDB를 지원한다면 그 선택 대신에 InnoDB를 선택할 것을 매우 권장합니다.
MySQL 설치가 InnoDB를 지원하지 않는다면 아마도 업그레이드를 해야 할 수도 있습니다.",
- 'config-mysql-engine-help' => "'''InnoDB'''는 동시적인 지원에 좋기 때문에 거의 항상 최고의 옵션입니다.
+ 'config-mysql-engine-help' => "'''InnoDB'''는 동시적인 지원에 좋기 때문에 대부분 최고의 옵션입니다.
'''MyISAM'''은 단일 사용자 또는 읽기 전용 설치에 빠를 수 있습니다.
MyISAM 데이터베이스는 InnoDB 데이터베이스보다 더 자주 손실될 수 있습니다.",
'config-mysql-utf8' => 'UTF-8',
'config-mysql-charset-help' => "'''바이너리 모드'''에서는 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.
MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.
-'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 어떤 문자열인지를 알 것이며, 표현하고 적절하게 그것을 변환할 수 있지만
-[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes 기본 다국어 범위] 상의 문자를 저장하지 못하게 될 수 있습니다.",
+'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만
+[//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖의 문자를 저장할 수 없습니다.",
'config-ibm_db2-low-db-pagesize' => "DB2 데이터베이스에 부족한 페이지 크기가 기본 테이블 공간에 있습니다. 페이지 크기는 '''32K''' 이상이어야 합니다.",
'config-site-name' => '위키 이름:',
'config-site-name-help' => '브라우저 제목 표시줄과 다른 여러 곳에 나타납니다.',
'config-optional-continue' => '더 많은 질문을 물어보세요.',
'config-optional-skip' => '지겨워요, 그냥 위키를 설치할래요.',
'config-profile' => '사용자 권한 프로필:',
- 'config-profile-wiki' => '평범한 위키', # Fuzzy
+ 'config-profile-wiki' => '열린 위키',
'config-profile-no-anon' => '계정 만들기 필요',
- 'config-profile-fishbowl' => '승인된 편집자만 이용 가능',
+ 'config-profile-fishbowl' => '승인된 편집자만',
'config-profile-private' => '비공개 위키',
- 'config-profile-help' => "ì\9c\84í\82¤ë\8a\94 ë§\8eì\9d\80 ì\82¬ë\9e\8cë\93¤ì\9d´ ê°\80ë\8a¥í\95\9c í\95\9c í\95´ë\8b¹ ì\9c\84í\82¤ë¥¼ í\8e¸ì§\91í\95 ë\95\8c 가장 뛰어난 역할을 합니다.
-미ë\94\94ì\96´ì\9c\84í\82¤ì\97\90ì\84\9cë\8a\94 ìµ\9cê·¼ ë°\94ë\80\9cì\9d\84 ê²\80í\86 í\95\98ê³ , ì\84 í\95\98ê±°ë\82\98 ì\95\85ì\9d\98ì \81ì\9d¸ ì\82¬ì\9a©ì\9e\90ì\9d\98 모ë\93 손실을 되돌리는 것이 쉽습니다.
+ 'config-profile-help' => "ì\9c\84í\82¤ë\8a\94 ë§\8eì\9d\80 ì\82¬ë\9e\8cë\93¤ì\9d´ ê°\80ë\8a¥í\95\9c í\95\9c í\8e¸ì§\91í\95 ì\88\98 ì\9e\88ë\8f\84ë¡\9d í\95\98ë©´ 가장 뛰어난 역할을 합니다.
+미ë\94\94ì\96´ì\9c\84í\82¤ì\97\90ì\84\9cë\8a\94 ìµ\9cê·¼ ë°\94ë\80\9cì\9d\84 ê²\80í\86 í\95\98기 ì\89½ê³ , ì\84 í\95\98ê±°ë\82\98 ì\95\85ì\9d\98ì \81ì\9d¸ ì\82¬ì\9a©ì\9e\90ì\9d\98 ì\96´ë\96 í\95\9c 손실을 되돌리는 것이 쉽습니다.
-그러나 많은 사람들이 미디어위키가 다양한 역할로 유용하지만, 때로는 모든 사람에게 위키 방식의 장점을 모두 설득하기 쉽지 않을 지도 모릅니다.
+그러나 많은 사람이 미디어위키는 다양한 역할로 유용하지만, 때로는 모든 사람에게 위키 방식의 장점을 설득하기 쉽지 않을 지도 모릅니다.
그래서 선택할 수 있습니다.
-'''{{int:config-profile-wiki}}'''는 로그인하지 않고도 누구나 편집할 수 있습니다.
-'''{{int:config-profile-no-anon}}'''는 각 편집에 추가적으로 강한 책임성을 제공하지만, 부담 없는 기여를 저해할 수도 있습니다.
+'''{{int:config-profile-wiki}}''' 모델은 로그인하지 않고도 누구나 편집할 수 있습니다.
+'''{{int:config-profile-no-anon}}'''인 위키는 각 편집에 추가적으로 강한 책임을 제공하지만, 부담 없는 기여를 저해할 수도 있습니다.
-'''{{int:config-profile-fishbowl}}''' 같은 경우는 승인된 사용자만 편집할 수 있지만, 대중은 역사를 포함하여 페이지를 볼 수 있습니다.
-'''{{int:config-profile-private}}'''는 승인된 사용자만 같은 그룹에서 편집할 수 있고 볼 수 있습니다.
+'''{{int:config-profile-fishbowl}}''' 시나리오는 승인된 사용자만 편집할 수 있지만, 대중은 역사를 포함하여 문서를 볼 수 있습니다.
+'''{{int:config-profile-private}}'''는 승인된 사용자만 문서를 볼 수 있으며 해당 그룹을 편집할 수 있습니다.
-더 복잡한 사용자 권한을 설정하여 설치한 후 사용할 수 있도록 하려면 [//www.mediawiki.org/wiki/Manual:User_rights 관련 매뉴얼 항목]을 참고하세요.", # Fuzzy
+더 복잡한 사용자 권한을 설정은 설치한 후 사용할 수 있으며 [//www.mediawiki.org/wiki/Manual:User_rights 관련 설명서 항목]을 참고하세요.",
'config-license' => '저작권 및 라이선스:',
'config-license-none' => '라이선스 바닥글 없음',
'config-license-cc-by-sa' => '크리에이티브 커먼즈 저작자표시-동일조건변경허락',
'config-license-gfdl' => 'GNU 자유 문서 사용 허가서 1.3 이상',
'config-license-pd' => '퍼블릭 도메인',
'config-license-cc-choose' => '다른 크리에이티브 커먼즈 라이선스 선택',
- 'config-license-help' => '많은 공개 위키는 모든 기여를 [http://freedomdefined.org/Definition 자유 라이선스] 하에 넣습니다.
-ì\9d´ë\9f´ ê²½ì\9a° 커뮤니티 소유권의 이해를 할 수 있도록 하고 장기적인 기여를 장려합니다.
+ 'config-license-help' => "많은 공개 위키는 모든 기여를 [http://freedomdefined.org/Definition 자유 라이선스] 하에 넣습니다.
+ì\9d´ë \87ê²\8c í\95\98ë©´ 커뮤니티 소유권의 이해를 할 수 있도록 하고 장기적인 기여를 장려합니다.
일반적으로 개인 또는 회사 위키에 대해서는 필요하지 않습니다.
-위키백과의 텍스트를 사용할 수 있도록 하고 위키백과가 위키에서 복사한 텍스트를 사용할 수 있도록 원한다면 크리에이티브 커먼즈 저작자표시-동일조건변경허락으로 선택해야 합니다.
+위키백과의 텍스트를 사용할 수 있도록 하고 위키백과가 위키에서 복사한 텍스트를 사용할 수 있도록 원한다면 '''크리에이티브 커먼즈 저작자표시-동일조건변경허락'''으로 선택해야 합니다.
위키백과는 이전에 GNU 자유 문서 사용 허가서를 사용했습니다.
-GFDL은 유효한 라이선스이지만 이해하기 어렵습니다.
-GFDL 하에 라이선스 내용을 재사용하는 것도 어렵습니다.',
+GFDL은 유효한 라이선스이지만 내용을 이해하기 어렵습니다.
+GFDL 하에 사용을 허가한 내용을 재사용하는 것도 어렵습니다.",
'config-email-settings' => '이메일 설정',
'config-enable-email' => '발신 이메일 활성화',
'config-enable-email-help' => '이메일을 작동하려면 [http://www.php.net/manual/en/mail.configuration.php PHP의 메일 설정]을 올바르게 설정해야 합니다.
'config-email-watchlist' => '주시문서 목록 알림 활성화',
'config-email-watchlist-help' => '환경 설정에서 활성화한 경우 사용자가 주시한 문서에 대한 알림을 받도록 활성화합니다.',
'config-email-auth' => '이메일 인증 활성화',
- 'config-email-auth-help' => "이 설정이 활성화되어 있으면 사용자는 이메일 주소를 설정하거나 바꿀 때마다 그들에게 보낸 링크를 사용하여 이메일 주소를 확인해야 합니다.
+ 'config-email-auth-help' => "이 설정이 활성화되어 있으면 사용자는 이메일 주소를 설정하거나 바꿀 때마다 링크를 사용하여 이메일 주소를 확인해야 합니다.
인증된 이메일 주소만 다른 사용자로부터의 이메일이나 바뀜 알림 이메일을 받을 수 있습니다.
이메일 기능의 남용 가능성이 있기 때문에 이 옵션을 설정하는 것은 공개 위키에서 '''권장'''합니다.",
'config-email-sender' => '반송 이메일 주소',
'config-upload-settings' => '그림과 파일 올리기',
'config-upload-enable' => '파일 올리기 활성화',
'config-upload-help' => '파일 올리기는 서버에 잠재적인 보안 위험에 쉽게 노출될 수 있습니다.
-ì\9e\90ì\84¸í\95\9c ë\82´ì\9a©ì\9d\80 매ë\89´ì\96¼ì\9d\98 [//www.mediawiki.org/wiki/Manual:Security ë³´ì\95\88 문ë\8b¨]ì\9d\84 ì\9d½ì\96´ë³´세요.
+ì\9e\90ì\84¸í\95\9c ë\82´ì\9a©ì\9d\80 매ë\89´ì\96¼ì\9d\98 [//www.mediawiki.org/wiki/Manual:Security ë³´ì\95\88 문ë\8b¨]ì\9d\84 ì°¸ê³ í\95\98세요.
파일 올리기를 활성화하려면 미디어위키의 루트 디렉토리에 있는 <code>images</code> 하위 디렉토리에서 웹 서버가 기록할 수 있도록 모드를 바꿉니다.
그 다음 이 옵션을 활성화합니다.',
'config-upload-deleted-help' => '삭제된 파일을 보관할 디렉토리를 선택하세요.
이상적으로 웹에서 접근할 수 없게 해야 합니다.',
'config-logo' => '로고 URL:',
- 'config-logo-help' => '미디어위키 기본 스킨은 사이드바 메뉴 위에 135×160픽셀의 로고를 포함하고 있습니다.
+ 'config-logo-help' => '미디어위키의 기본 스킨은 사이드바 메뉴 위에 135×160 픽셀의 로고를 포함하고 있습니다.
적당한 크기로 이미지를 올리고 URL을 여기에 입력하세요.
-ë¡\9cê³ ì\82¬ì\9a©ì\9d\84 ì\9b\90í\95\98ì§\80 ì\95\8aì\9c¼ë©´ ì\9d´ ì\83\81ì\9e\90를 ë¹\84ì\9b\8c ë\91\90ì\8bì\8b\9cì\98¤.',
+ë¡\9cê³ ì\82¬ì\9a©ì\9d\84 ì\9b\90í\95\98ì§\80 ì\95\8aì\9c¼ë©´ ì\9d´ ì\83\81ì\9e\90를 ë¹\84ì\9a°ì\84¸ì\9a\94.',
'config-instantcommons' => '인스턴트 공용 활성화',
'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons 인스턴트 공용]은 [//commons.wikimedia.org/ 위키미디어 공용] 사이트에서 찾을 수 있는 그림, 소리 및 다른 미디어를 위키에서 사용할 수 있도록 하는 기능입니다.
이렇게 하려면 미디어위키가 인터넷에 접근해야합니다.
'config-install-alreadydone' => "'''경고:''' 이미 미디어위키를 설치했고 다시 설치하려고 합니다.
다음 페이지에서 진행하세요.",
'config-install-begin' => '"{{int:config-continue}}"을 누르면 미디어위키의 설치를 시작합니다.
-그래도 바꾸는 것을 원한다면 뒤로를 누릅니다.', # Fuzzy
+그래도 바꾸는 것을 원한다면 "{{int:config-back}}"를 누르세요.',
'config-install-step-done' => '완료',
'config-install-step-failed' => '실패',
'config-install-extensions' => '확장 기능을 포함하는 중',
현재 미디어위키는 테이블을 웹 사용자가 소유해야 합니다. 다른 웹 계정 이름을 지정하거나 "뒤로"를 클릭하고 적절한 권한의 설치할 사용자를 지정하세요.',
'config-install-user' => '데이터베이스 사용자를 만드는 중',
- 'config-install-user-alreadyexists' => '"$1" ì\82¬ì\9a©ì\9e\90ê°\80 ì\9d´ë¯¸ ì\9e\88ì\9d\8c',
+ 'config-install-user-alreadyexists' => '"$1" ì\82¬ì\9a©ì\9e\90ê°\80 ì\9d´ë¯¸ ì\9e\88ì\8aµë\8b\88ë\8b¤',
'config-install-user-create-failed' => '"$1" 사용자 만드는 중 실패: $2',
'config-install-user-grant-failed' => '"$1" 사용자에 대한 권한 부여 실패: $2',
'config-install-user-missing' => '지정한 "$1" 사용자가 존재하지 않습니다.',
'config-install-done' => "'''축하합니다!'''
미디어위키가 성공적으로 설치되었습니다.
-설치 마법사가 <code>LocalSettings.php</code> 파일을 만들었습니다.
+설치 프로그램이 <code>LocalSettings.php</code> 파일을 만들었습니다.
모든 설정이 포함되어 있습니다.
파일을 다운로드하여 위키 설치의 거점에 넣어야 합니다. (index.php와 같은 디렉토리) 다운로드가 자동으로 시작됩니다.
$3
-'''ì°¸ê³ ''': ì§\80ê¸\88 ì\9d´ë \87ê²\8c í\95\98ì§\80 ì\95\8aì\9c¼ë©´, ì\9d´ ì\84¤ì \95 í\8c\8cì\9d¼ì\9d\84 ë\8b¤ì\9a´ë¡\9cë\93\9cí\95\98ì§\80 ì\95\8aê³ ì\84¤ì¹\98를 ì¢\85ë£\8cí\95 ê²½ì\9a° ë§\8cë\93¤ì\96´ì§\84 ì\84¤ì \95 파일은 나중에 사용할 수 없습니다.
+'''ì°¸ê³ ''': ì\9d´ ì\83\9dì\84±í\95\9c ì\84¤ì \95 í\8c\8cì\9d¼ì\9d\84 ë\8b¤ì\9a´ë¡\9cë\93\9cí\95\98ì§\80 ì\95\8aê³ ì\84¤ì¹\98를 ë\81\9dë\82´ë©´ ì\9d´ 파일은 나중에 사용할 수 없습니다.
완료되었으면 '''[$2 위키에 들어갈 수 있습니다]'''.",
- 'config-download-localsettings' => 'LocalSettings.php 다운로드',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code> 다운로드',
'config-help' => '도움말',
'config-nofile' => '"$1" 파일을 찾을 수 없습니다. 이미 삭제되었나요?',
'mainpagetext' => "'''미디어위키가 성공적으로 설치되었습니다.'''",
'config-desc' => 'Et Projramm för Mediwiki opzesäze.',
'config-title' => 'MediaWiki $1 opsäze',
'config-information' => 'Enfomazjuhn',
- 'config-localsettings-upgrade' => 'De Dattei <code lang="en">LocalSettings.php</code> es ald doh.
+ 'config-localsettings-upgrade' => 'De Dattei <code lang="en"><code>LocalSettings.php</code></code> es ald doh.
De Projramme vum Wiki künne op der neußte Shtand jebraat wääde:
Donn doför dä Wäät vum <code lang="en">$wgUpgradeKey</code> en dat heh Feld enjävve.
-Do fenggs_et en dä Dattei <code lang="en">LocalSettings.php</code> om ẞööver.',
- 'config-localsettings-cli-upgrade' => 'En Dattei <code lang="en">LocalSettings.php</code> es jefonge woode.
+Do fenggs_et en dä Dattei <code lang="en"><code>LocalSettings.php</code></code> om ẞööver.',
+ 'config-localsettings-cli-upgrade' => 'En Dattei <code lang="en"><code>LocalSettings.php</code></code> es jefonge woode.
Öm et Wiki_Projramm op ene neue Shtand ze bränge, donn <code lang="en">update.php</code> oproofe.',
'config-localsettings-key' => 'Der Schlößel för et Projramm op ene neue Schtand ze bränge:',
'config-localsettings-badkey' => 'Dinge Schlößel paß nit.',
'config-upgrade-key-missing' => 'Mer han jefonge, dat MediaWiki ald enschtalleed es.
-Üm de Projramme un Daate o der neue Schtand bränge ze künne, dunn aan et Engk vun dä Dattei <code lang="en">LocalSettings.php</code> op dämm ẞööver:
+Üm de Projramme un Daate o der neue Schtand bränge ze künne, dunn aan et Engk vun dä Dattei <code lang="en"><code>LocalSettings.php</code></code> op dämm ẞööver:
$1
aanhange.',
- 'config-localsettings-incomplete' => 'Mer han en Dattei <code lang="en">LocalSettings.php:</code> jefonge, ävver di schingk nit kumplätt ze sin.
+ 'config-localsettings-incomplete' => 'Mer han en Dattei <code lang="en"><code>LocalSettings.php</code>:</code> jefonge, ävver di schingk nit kumplätt ze sin.
De Varijable <code lang="en">$1</code> es nit jesatz.
Bes esu joot, un donn di Dattei esu aanpaße, dat se jesaz ea, un dann donn op „{{int:config-continue}}“ klecke.',
'config-localsettings-connection-error' => 'Ene Fähler es opjetrodde wi mer en Verbendung noh de Datebangk opmaache wullte met dä Enshtellunge uß dä Dattei <code lang="en">LocalSettings</code> udder uß dä Dattei <code lang="en">LocalSettings</code> un et hät nit jeflupp. Bes esu joot un dat repareere un versöhg et dann norr_ens.
'config-using531' => 'MediaWiki läuf nit met PHP $1 zosamme wääje enem [//bugs.php.net/bug.php?id=50394 Fähler em Zosammehang met Parrameetere för <code lang="en">__call()</code>].
Jangk op de Version 5.3.2 vum <i lang="en">PHP</i> ov dohnoh, udder op de Version 5.3.0 udder dovöör, öm dat Problem ze ömjonn.
Heh jeiht et nit wigger.',
- 'config-suhosin-max-value-length' => '<i lang="en">Suhosin</i> es enschtalleet. Dröm kann ene <code lang="en">GET</code>-Parrameeter nit övver {{PLURAL:$1|ei Byte|$q Bytes|noll Byte}} lang wääde. En MediaWiki singe <i lang="en">ResourceLoader</i> kütt doh zwa drömeröm, ävver dat brems. Wann müjelesch, doht <code lang="en">suhosin.get.max_value_length</code> en dä Dattei <code lang="en">php.ini</code> op 1024 Bytes udder drövver enschtälle. un dann moß <code lang="en">$wgResourceLoaderMaxQueryLength</code> en dä Dattei <code lang="en">LocalSettings.php</code> op däsälve Wäät jesaz wääde.',
+ 'config-suhosin-max-value-length' => '<i lang="en">Suhosin</i> es enschtalleet. Dröm kann ene <code lang="en">GET</code>-Parrameeter nit övver {{PLURAL:$1|ei Byte|$q Bytes|noll Byte}} lang wääde. En MediaWiki singe <i lang="en">ResourceLoader</i> kütt doh zwa drömeröm, ävver dat brems. Wann müjelesch, doht <code lang="en">suhosin.get.max_value_length</code> en dä Dattei <code lang="en">php.ini</code> op 1024 Bytes udder drövver enschtälle. un dann moß <code lang="en">$wgResourceLoaderMaxQueryLength</code> en dä Dattei <code lang="en">LocalSettings.php</code> op däsälve Wäät jesaz wääde.', # Fuzzy
'config-db-type' => 'De Zoot Daatebangk:',
'config-db-host' => 'Dä Name vun däm Rääschner met dä Daatebangk:',
'config-db-host-help' => 'Wann Dinge ẞööver för de Daatebangk ob enem andere Rääschner es, donn heh dämm singe Name udder dämm sing <i lang="en">IP</i>-Addräß enjävve.
'config-support-postgres' => '* <i lang="en">$1</i> es e bikannt Daatebangksüßteem met offe Quälltäxde, un en och en Wahl nävve <i lang="en">MySQL</i> ([http://www.php.net/manual/de/pgsql.installation.php Aanleidung för et Övversäze un Enreeschte von PHP met <i lang="en">PostgreSQL</i> dobei, op Deutsch]) Et sinn_er ävver paa klein Fählershe bekannt, um kunne dat em Momang för et reschtijje Werke nit emfähle.',
'config-support-sqlite' => '* <i lang="en">$1</i> es e eijfach Daatebangksüßteem, wat joot ongershtöz weed. ([http://www.php.net/manual/de/pdo.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang="en">SQLite</i> dobei, op Deutsch])',
'config-support-oracle' => '* <i lang="en">$1</i> es e jeschäfflesch Daatebangksüßteem för Ferme. ([http://www.php.net/manual/de/oci8.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang="en">OCI8</i> dobei, op Deutsch])',
- 'config-support-ibm_db2' => '* $1 es en Datebengk för et Jeschäff un fö Ongernehme.',
+ 'config-support-ibm_db2' => '* $1 es en Datebengk för et Jeschäff un fö Ongernehme.', # Fuzzy
'config-header-mysql' => 'De Enshtällunge för de <i lang="en">MySQL</i> Daatebangk',
'config-header-postgres' => 'De Enshtällunge för de <i lang="en">PostgreSQL</i> Daatebangk',
'config-header-sqlite' => 'De Enshtällunge för de <i lang="en">SQLite</i> Daatebangk',
Mer kann dat Wiki jäz [$1 bruche].',
'config-regenerate' => 'Donn de Dattei <code lang="en">LocalSettings.php</code> neu opsäze →',
- 'config-show-table-status' => 'Et Kommando <code lang="en">SHOW TABLE STATUS</code> aan de Daatebangk es donävve jejange!',
+ 'config-show-table-status' => 'Et Kommando <code lang="en"><code>SHOW TABLE STATUS</code></code> aan de Daatebangk es donävve jejange!',
'config-unknown-collation' => "'''Opjepaß:''' De Daatabangk deiht en onbikannte Reijefollsch bruche, för Booshtaabe un Zeishe ze verjliishe un ze zotteere.",
'config-db-web-account' => 'Dä Zohjang zor Daatebangk för et Wiki',
'config-db-web-help' => 'Donn ene Name un e Paßwoot för der Zohjang zor Daatebangk för et Wiki em nomaale Bedrief aanjävve.',
'config-optional-continue' => 'De wells noch mieh Frore jeshtallt krijje un noch mieh Enshtällunge maache?',
'config-optional-skip' => 'Nä, lohß dä Ömshtand, donn eifarr_et Wiki opsäze.',
'config-profile' => 'Enshtällunge för de Metmaacher ier Rääschte:',
- 'config-profile-wiki' => 'E tradizjonäll offe Wiki',
+ 'config-profile-wiki' => 'E tradizjonäll offe Wiki', # Fuzzy
'config-profile-no-anon' => 'Schriever möße enlogge',
'config-profile-fishbowl' => 'Bloß ußdröcklesch zohjelohße Schriever',
'config-profile-private' => 'E jeschloße Privat_Wiki',
'''{{int:config-profile-private}}''' kann nur lässe, wäh en et Wiki zohjelohße es, un desellve Jropp kann uch schrieve.
-Noch ander un un opwändijere Enshtellunge för de Rääschte sin müjjelesch, wann et Wiki ens aam Loufe es. Loor Der doför de [//www.mediawiki.org/wiki/Manual:User_rights zopaß Hölp em Handbooch] aan.",
+Noch ander un un opwändijere Enshtellunge för de Rääschte sin müjjelesch, wann et Wiki ens aam Loufe es. Loor Der doför de [//www.mediawiki.org/wiki/Manual:User_rights zopaß Hölp em Handbooch] aan.", # Fuzzy
'config-license' => 'Urhävverrääsch un Lizänz:',
'config-license-none' => 'Kein Fooßreih övver de Lizänz',
'config-license-cc-by-sa' => '<i lang="en">Creative Commons</i> Der Name moß jenannt sin, et Wiggerjävve es zohjelohße onger dersellve Bedengunge',
Et sühd esu uß, wi wann De MediaWiki ald enshtalleet hätß, un wöhrs aam Versöhke, dat norr_ens ze donn.
Jang wigger op de näähßte Sigg.",
'config-install-begin' => 'Wann De op „{{int:config-continue}}“ klecks, jeiht de Enshtallazjuhn vum MediaWiki loßß.
-Wann De noch Änderonge maache wells, dann kleck op „{{int:config-back}}“.',
+Wann De noch Änderonge maache wells, dann kleck op „{{int:config-back}}“.', # Fuzzy
'config-install-step-done' => 'jedonn',
'config-install-step-failed' => 'donävve jejange',
'config-install-extensions' => 'Zohsazprojramme enjeschloße',
Dat es och all op Änglesch:
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]', # Fuzzy
);
/** Kurdish (Latin script) (Kurdî (latînî))
/** Luxembourgish (Lëtzebuergesch)
* @author Robby
+ * @author 아라
*/
$messages['lb'] = array(
'config-desc' => 'Den Installatiounsprogramm vu MediaWiki',
'config-information' => 'Informatioun',
'config-localsettings-upgrade' => "'''Opgepasst''': E Fichier <code>LocalSettings.php</code> gouf fonnt.
Är Software kann aktualiséiert ginn, setzt w.e.g. de Wäert vum <code>\$wgUpgradeKey</code> an d'Këscht.
-Dir fannt en am LocalSettings.php.",
+Dir fannt en am <code>LocalSettings.php</code>.",
'config-localsettings-key' => 'Aktualisatiounsschlëssel:',
'config-localsettings-badkey' => 'De Schlëssel deen Dir aginn hutt ass net korrekt',
- 'config-localsettings-incomplete' => 'De Fichier LocalSettings.php schéngt net komplett ze sinn.
+ 'config-localsettings-incomplete' => 'De Fichier <code>LocalSettings.php</code> schéngt net komplett ze sinn.
D\'Variabel $1 ass net definéiert.
-Ännert w.e.g. de Fichier LocalSettings.php esou datt déi Variabel definéiert ass a klickt op "Virufueren".',
+Ännert w.e.g. de Fichier <code>LocalSettings.php</code> esou datt déi Variabel definéiert ass a klickt op "{{int:Config-continue}}".',
'config-session-error' => 'Feeler beim Starte vun der Sessioun: $1',
'config-no-session' => "D'Donnéeë vun ärer Sessioun si verluergaangen!
Kuckt Är php.ini no a vergewëssert Iech datt <code>session.save_path</code> op adequate REpertoire agestallt ass.",
'config-type-sqlite' => 'SQLite',
'config-type-oracle' => 'Oracle',
'config-type-ibm_db2' => 'IBM DB2',
- 'config-support-ibm_db2' => '* $1 ass eng kommerziell Firma fir Datebanken',
+ 'config-support-ibm_db2' => '* $1 ass eng kommerziell Firma fir Datebanken', # Fuzzy
'config-header-mysql' => 'MySQL-Astellungen',
'config-header-postgres' => 'PostgreSQL-Astellungen',
'config-header-sqlite' => 'SQLite-Astellungen',
'config-upgrade-done-no-regenerate' => "D'Aktualisatioun ass ofgeschloss.
Dir kënnt elo [$1 ufänken Är Wiki ze benotzen]",
- 'config-regenerate' => 'LocalSettings.php regeneréieren →',
+ 'config-regenerate' => '<code>LocalSettings.php</code> regeneréieren →',
'config-db-web-account' => 'Datebankkont fir den Accès iwwer de Web',
'config-db-web-account-same' => 'Dee selwechte Kont wéi bei der Installatioun benotzen',
'config-db-web-create' => 'De Kont uleeë wann et e net scho gëtt',
'config-optional-continue' => 'Stellt mir méi Froen.',
'config-optional-skip' => "Ech hunn es genuch, installéier just d'Wiki.",
'config-profile' => 'Profil vun de Benotzerrechter:',
- 'config-profile-wiki' => 'Traditionell Wiki',
+ 'config-profile-wiki' => 'Traditionell Wiki', # Fuzzy
'config-profile-no-anon' => 'Uleeë vun engem Benotzerkont verlaangt',
'config-profile-fishbowl' => 'Nëmmen autoriséiert Editeuren',
'config-profile-private' => 'Privat Wiki',
'config-install-sysop' => 'Administrateur Benotzerkont gëtt ugeluecht',
'config-install-extension-tables' => "D'Tabelle fir déi aktivéiert Erweiderunge ginn ugeluecht",
'config-install-mainpage-failed' => "D'Haaptsäit konnt net dragesat ginn: $1",
- 'config-download-localsettings' => 'LocalSettings.php eroflueden',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code> eroflueden',
'config-help' => 'Hëllef',
'config-nofile' => 'De Fichier "$1" gouf net fonnt. Gouf e geläscht?',
'mainpagetext' => "'''MediaWiki gouf installéiert.'''",
== Starthëllefen ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Hëllef bei der Konfiguratioun]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]",
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]", # Fuzzy
);
/** Lingua Franca Nova (Lingua Franca Nova)
/** Macedonian (македонски)
* @author Bjankuloski06
+ * @author 아라
*/
$messages['mk'] = array(
'config-desc' => 'Инсталатор на МедијаВики',
'config-information' => 'Информации',
'config-localsettings-upgrade' => 'Востановена е податотека <code>LocalSettings.php</code>.
За да ја надградите инсталцијава, внесете ја вредноста на <code>$wgUpgradeKey</code> во полето подолу.
-Тоа е го најдете во LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Утврдено е присуството на податотеката „LocalSettings.php“.
-За да ја надградите инсталацијата, пуштете ја „update.php“ наместо горенаведената.',
+Тоа е го најдете во <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Утврдено е присуството на податотеката „<code>LocalSettings.php</code>“.
+За да ја надградите инсталацијата, пуштете ја „<code>update.php</code>“ наместо горенаведената.',
'config-localsettings-key' => 'Надградбен клуч:',
'config-localsettings-badkey' => 'Клучот што го наведовте е погрешен',
'config-upgrade-key-missing' => 'Востановена е постоечка инсталација на МедијаВики.
-За да ја надградите, вметнете го следниов ред на дното од вашата страница LocalSettings.php:
+За да ја надградите, вметнете го следниов ред на дното од вашата страница <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Постоечката страница LocalSettings.php е нецелосна.
+ 'config-localsettings-incomplete' => 'Постоечката страница <code>LocalSettings.php</code> е нецелосна.
Не е поставена променливата $1.
-Изменете ја страницата LocalSettings.php така што ќе ѝ зададете вредност на променливата, па стиснете на „Продолжи“.',
- 'config-localsettings-connection-error' => 'Се појави грешка при поврзувањето со базата користејќи ги поставките назначени во LocalSettings.php или AdminSettings.php. Исправете ги овие поставки и обидете се повторно.
+Изменете ја страницата <code>LocalSettings.php</code> така што ќе ѝ зададете вредност на променливата, па стиснете на „{{int:Config-continue}}“.',
+ 'config-localsettings-connection-error' => 'Се појави грешка при поврзувањето со базата користејќи ги поставките назначени во <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Исправете ги овие поставки и обидете се повторно.
$1',
'config-session-error' => 'Грешка при започнување на сесијата: $1',
Надградете го на PHP 5.2.9 и libxml2 2.7.3 или нивни понови верзии! ПРЕКИНУВАМ ([//bugs.php.net/bug.php?id=45996 грешката е заведена во PHP]).',
'config-using531' => 'МедијаВики не може да се користи со PHP $1 поради грешка кај упатните параметри за <code>__call()</code>.
За да го решите проблемот, надградете го на PHP 5.3.2 или понова верзија, или пак користете го постариот PHP 5.3.0.',
- 'config-suhosin-max-value-length' => 'Suhosin е инсталиран и ја ограничува должината на параметарот GET на $1 bytes. Делот ResourceLoader на МедијаВики ќе ја заобиколува ова граница, но со тоа ќе се влоши делотворноста. Ако е воопшто можно, на suhosin.get.max_value_length треба да го наместите на 1024 или поевеќе во php.ini , и да му ја зададете истата вредност на $wgResourceLoaderMaxQueryLength во LocalSettings.php .',
+ 'config-suhosin-max-value-length' => 'Suhosin е инсталиран и ја ограничува должината на параметарот GET на $1 бајти. Делот ResourceLoader на МедијаВики ќе ја заобиколува ова граница, но со тоа ќе се влоши делотворноста. Ако е воопшто можно, на <code>suhosin.get.max_value_length</code> треба да го наместите на 1024 или повеќе во <code>php.ini</code>, и да му ја зададете истата вредност на <code>$wgResourceLoaderMaxQueryLength</code> во <code>LocalSettings.php</code>.',
'config-db-type' => 'Тип на база:',
'config-db-host' => 'Домаќин на базата:',
'config-db-host-help' => 'Ако вашата база е на друг опслужувач, тогаш тука внесете го името на домаќинот или IP-адресата.
'config-support-postgres' => '* $1 е популарен систем на бази на податоци со отворен код кој претставува алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php како да составите PHP со поддршка за PostgreSQL]). Може сè уште да има некои грешки. па затоа не се препорачува за употреба во производна средина.',
'config-support-sqlite' => '* $1 е лесен систем за бази на податоци кој е многу добро поддржан. ([http://www.php.net/manual/en/pdo.installation.php Како да составите PHP со поддршка за SQLite], користи PDO)',
'config-support-oracle' => '* $1 е база на податоци на комерцијално претпријатие. ([http://www.php.net/manual/en/oci8.installation.php Како да составите PHP со поддршка за OCI8])',
- 'config-support-ibm_db2' => '* $1 is комерцијална база на податоциза фирми.',
+ 'config-support-ibm_db2' => '* $1 е комерцијална база на податоциза фирми. ([http://www.php.net/manual/en/ibm-db2.installation.php Како да составите PHP со поддршка за IBM DB2])',
'config-header-mysql' => 'Нагодувања на MySQL',
'config-header-postgres' => 'Нагодувања на PostgreSQL',
'config-header-sqlite' => 'Нагодувања на SQLite',
'config-upgrade-done-no-regenerate' => 'Надградбата заврши.
Сега можете да [$1 почнете да го користите викито].',
- 'config-regenerate' => 'Пресоздај LocalSettings.php →',
- 'config-show-table-status' => 'Барањето SHOW TABLE STATUS не успеа!',
+ 'config-regenerate' => 'Пресоздај <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Барањето <code>SHOW TABLE STATUS</code> не успеа!',
'config-unknown-collation' => "'''Предупредување:''' Базата корисни непрепознаена упатна споредба.",
'config-db-web-account' => 'Сметка на базата за мрежен пристап',
'config-db-web-help' => 'Одберете корисничко име и лозинка што ќе ги користи мрежниот опслужувач за поврзување со опслужувачот на базта на податоци во текот на редовната работа со викито.',
'''Напомена''': Ако ова не го направите сега, податотеката со поставки повеќе нема да биде на достапна.
Откога ќе завршите со тоа, можете да '''[$2 влезете на вашето вики]'''.",
- 'config-download-localsettings' => 'Преземи го LocalSettings.php',
+ 'config-download-localsettings' => 'Преземи го <code>LocalSettings.php</code>',
'config-help' => 'помош',
'config-nofile' => 'Податотеката „$1“ не е пронајдена. Да не е избришана?',
'mainpagetext' => "'''МедијаВики е успешно инсталиран.'''",
'config-connection-error' => '$1.
താഴെ നൽകിയിരിക്കുന്ന ഹോസ്റ്റ്, ഉപയോക്തൃനാമം, രഹസ്യവാക്ക് എന്നിവ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.',
- 'config-regenerate' => 'LocalSettings.php പുനഃസൃഷ്ടിക്കുക →',
+ 'config-regenerate' => '<code>LocalSettings.php</code> പുനഃസൃഷ്ടിക്കുക →',
'config-mysql-engine' => 'സ്റ്റോറേജ് എൻജിൻ:',
'config-site-name' => 'വിക്കിയുടെ പേര്:',
'config-site-name-help' => 'ഇത് ബ്രൗസറിന്റെ ടൈറ്റിൽ ബാറിലും മറ്റനേകം ഇടങ്ങളിലും പ്രദർശിപ്പിക്കപ്പെടും.',
ബാക്കിയുള്ളവ അവഗണിച്ച് വിക്കി ഇൻസ്റ്റോൾ ചെയ്യാവുന്നതാണ്.',
'config-optional-continue' => 'കൂടുതൽ ചോദ്യങ്ങൾ ചോദിക്കൂ.',
'config-optional-skip' => 'എനിക്ക് മടുത്തു, ഒന്ന് ഇൻസ്റ്റോൾ ചെയ്ത് തീർക്ക്.',
- 'config-profile-wiki' => 'പരമ്പരാഗത വിക്കി',
+ 'config-profile-wiki' => 'പരമ്പരാഗത വിക്കി', # Fuzzy
'config-profile-no-anon' => 'അംഗത്വ സൃഷ്ടി ചെയ്യേണ്ടതുണ്ട്',
'config-profile-fishbowl' => 'അനുവാദമുള്ളവർ മാത്രം തിരുത്തുക',
'config-profile-private' => 'സ്വകാര്യ വിക്കി',
== പ്രാരംഭസഹായികൾ ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings ക്രമീകരണങ്ങളുടെ പട്ടിക]
* [//www.mediawiki.org/wiki/Manual:FAQ മീഡിയവിക്കി പതിവുചോദ്യങ്ങൾ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce മീഡിയവിക്കി പ്രകാശന മെയിലിങ് ലിസ്റ്റ്]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce മീഡിയവിക്കി പ്രകാശന മെയിലിങ് ലിസ്റ്റ്]', # Fuzzy
);
/** Mongolian (монгол)
Jekk trid tista' taqbeż il-parti li jmiss tal-konfigurazzjoni u sempliċiment tinstalla l-wiki.",
'config-optional-continue' => 'Staqsini aktar mistoqsijiet.',
'config-optional-skip' => 'Xbajt diġà, installa l-wiki.',
- 'config-profile-wiki' => 'Wiki tradizzjonali',
+ 'config-profile-wiki' => 'Wiki tradizzjonali', # Fuzzy
'config-profile-no-anon' => 'Huwa obbligatorju l-ħolqien tal-kont',
'config-profile-fishbowl' => 'Edituri awtorizzati biss',
'config-profile-private' => 'Wiki privata',
'config-upload-deleted-help' => "Agħżel direttorju fejn iżżomm fajls imħassra.
Idealment, dan m'għandux ikun aċċessibbli mill-web.",
'config-logo' => 'URL tal-logo:',
- 'config-download-localsettings' => 'Niżżel LocalSettings.php',
+ 'config-download-localsettings' => 'Niżżel <code>LocalSettings.php</code>',
'config-help' => 'għajnuna',
'config-nofile' => 'Il-fajl "$1" ma setax jinstab. Dan ġie mħassar?',
'mainpagetext' => "'''MediaWiki ġie installat b'suċċess.'''",
/** Norwegian Bokmål (norsk (bokmål))
* @author Event
* @author Nghtwlkr
+ * @author 아라
*/
$messages['nb'] = array(
'config-desc' => 'Installasjonsprogrammet for MediaWiki',
'config-information' => 'Informasjon',
'config-localsettings-upgrade' => 'En <code>LocalSettings.php</code>-fil har blitt oppdaget.
For å oppgradere denne installasjonen, skriv inn verdien av <code>$wgUpgradeKey</code> i boksen nedenfor.
-Du finner denne i LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => "Filen ''LocalSettings.php'' er funnet.
+Du finner denne i <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => "Filen ''<code>LocalSettings.php</code>'' er funnet.
For å oppgradere denne installasjonen, vennligst kjør ''update.php'' i stedet",
'config-localsettings-key' => 'Oppgraderingsnøkkel:',
'config-localsettings-badkey' => 'Nøkkelen du oppga er feil.',
'config-upgrade-key-missing' => "En eksisterende installasjon av MediaWiki er funnet.
-For å oppgradere denne installasjonen, vær vennlig å legge til følgende linje helt til slutt i din ''LocalSettings.php''-fil:
+For å oppgradere denne installasjonen, vær vennlig å legge til følgende linje helt til slutt i din ''<code>LocalSettings.php</code>''-fil:
$1",
- 'config-localsettings-incomplete' => "Den eksisterende ''LocalSettings.php'' ser ut til å være ufullstendig.
+ 'config-localsettings-incomplete' => "Den eksisterende ''<code>LocalSettings.php</code>'' ser ut til å være ufullstendig.
Variabelen $1 har ingen verdi.
-Vær vennlig å endre ''LocalSettings.php'' slik at variabelen får en verdi, og klikk ''Fortsett''.",
- 'config-localsettings-connection-error' => "Det ble funnet en feil ved tilknytning av databasen med innstillingene i ''LocalSettings.php'' eller ''AdminSettings.php''. Vær vennlig å rette opp disse innstillingene og prøv igjen.
+Vær vennlig å endre ''<code>LocalSettings.php</code>'' slik at variabelen får en verdi, og klikk ''{{int:Config-continue}}''.",
+ 'config-localsettings-connection-error' => "Det ble funnet en feil ved tilknytning av databasen med innstillingene i ''<code>LocalSettings.php</code>'' eller ''<code>AdminSettings.php</code>''. Vær vennlig å rette opp disse innstillingene og prøv igjen.
$1",
'config-session-error' => 'Feil under oppstart av økt: $1',
'config-using531' => 'MediaWiki kan ikke brukes med PHP $1 på grunn av en feil med referanseparametere til <code>__call()</code>.
Oppgrader til PHP 5.3.2 eller høyere, eller nedgrader til PHP 5.3.0 for å løse dette.
Installasjonen avbrutt.',
- 'config-suhosin-max-value-length' => 'Suhosin er installert og begrenser GET-parameterlengder til $1 bytes. MediaWiki\'s ResourceLoader-komponent klarer å komme rundt denne begrensningen, med med redusert ytelse. På mulig bør du sette suhosin.get.max_value_length til minst 1024 i php.ini, og sette $wgResourceLoaderMaxQueryLength til samme verdi i LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'Suhosin er installert og begrenser GET-parameterlengder til $1 bytes. MediaWiki\'s ResourceLoader-komponent klarer å komme rundt denne begrensningen, med med redusert ytelse. På mulig bør du sette <code>suhosin.get.max_value_length</code> til minst 1024 i <code>php.ini</code>, og sette <code>$wgResourceLoaderMaxQueryLength</code> til samme verdi i LocalSettings.php.', # Fuzzy
'config-db-type' => 'Databasetype:',
'config-db-host' => 'Databasevert:',
'config-db-host-help' => 'Hvis databasen kjører på en annen tjenermaskin, skriv inn vertsnavnet eller IP-adressen her.
'config-support-postgres' => '* $1 er et populært åpen kildekode-databasesystem som er et alternativ til MySQL ([http://www.php.net/manual/en/pgsql.installation.php hvordan kompilere PHP med PostgreSQL-støtte]). Det kan være noen små utestående feil og det anbefales ikke for bruk i et produksjonsmiljø.',
'config-support-sqlite' => '* $1 er et lettvekts-databasesystem som er veldig godt støttet. ([http://www.php.net/manual/en/pdo.installation.php hvordan kompilere PHP med SQLite-støtte], bruker PDO)',
'config-support-oracle' => '* $1 er en kommersiell bedriftsdatabase. ([http://www.php.net/manual/en/oci8.installation.php Hvordan kompilere PHP med OCI8-støtte])',
- 'config-support-ibm_db2' => '* $1 er en kommersiell bedriftsdatabase.',
+ 'config-support-ibm_db2' => '* $1 er en kommersiell bedriftsdatabase.', # Fuzzy
'config-header-mysql' => 'MySQL-innstillinger',
'config-header-postgres' => 'PostgreSQL-innstillinger',
'config-header-sqlite' => 'SQLite-innstillinger',
'config-upgrade-done-no-regenerate' => 'Oppgradering fullført.
Du kan nå [$1 begynne å bruke wikien din].',
- 'config-regenerate' => 'Regenerer LocalSettings.php →',
- 'config-show-table-status' => 'SHOW TABLE STATUS etterspørselen mislyktes!',
+ 'config-regenerate' => 'Regenerer <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => '<code>SHOW TABLE STATUS</code> etterspørselen mislyktes!',
'config-unknown-collation' => "'''Advarsel:''' Databasen bruker en ukjent sortering.",
'config-db-web-account' => 'Databasekonto for nettilgang',
'config-db-web-help' => 'Velg brukernavnet og passordet som nettjeneren skal bruke for å koble til databasetjeneren under ordinær drift av wikien.',
'config-optional-continue' => 'Spør meg flere spørsmål.',
'config-optional-skip' => 'Jeg er lei, bare installer wikien.',
'config-profile' => 'Brukerrettighetsprofil:',
- 'config-profile-wiki' => 'Tradisjonell wiki',
+ 'config-profile-wiki' => 'Tradisjonell wiki', # Fuzzy
'config-profile-no-anon' => 'Kontoopprettelse påkrevd',
'config-profile-fishbowl' => 'Kun autoriserte bidragsytere',
'config-profile-private' => 'Privat wiki',
'''{{int:config-profile-fishbowl}}'''-scenariet tillater godkjente brukere å redigere, mens publikum kan se sider, og også historikken.
En '''{{int:config-profile-private}}''' tillater kun godkjente brukere å se sider, den samme gruppen som får lov til å redigere dem.
-Mer komplekse konfigurasjoner av brukerrettigheter er tilgjengelig etter installasjon, se det [//www.mediawiki.org/wiki/Manual:User_rights relevante manualavsnittet].",
+Mer komplekse konfigurasjoner av brukerrettigheter er tilgjengelig etter installasjon, se det [//www.mediawiki.org/wiki/Manual:User_rights relevante manualavsnittet].", # Fuzzy
'config-license' => 'Opphavsrett og lisens:',
'config-license-none' => 'Ingen lisensbunntekst',
'config-license-cc-by-sa' => 'Creative Commons Navngivelse Del på samme vilkår',
'config-install-user-grant-failed' => 'Å gi tillatelse til brukeren «$1» mislyktes: $2',
'config-install-tables' => 'Oppretter tabeller',
'config-install-mainpage-failed' => 'Kunne ikke sette inn hovedside: $1',
- 'config-download-localsettings' => 'Last ned LocalSettings.php',
+ 'config-download-localsettings' => 'Last ned <code>LocalSettings.php</code>',
'config-help' => 'hjelp',
'config-nofile' => 'Filen "$1" ble ikke funnet. Kan den være blitt slettet?',
'mainpagetext' => "'''MediaWiki-programvaren er nå installert.'''",
==Å starte==
*[//www.mediawiki.org/wiki/Manual:Configuration_settings Oppsettsliste]
*[//www.mediawiki.org/wiki/Manual:FAQ Ofte stilte spørsmål]
-*[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-postliste]',
+*[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-postliste]', # Fuzzy
);
/** Low German (Plattdüütsch)
* @author SPQRobin
* @author Siebrand
* @author Tjcool007
+ * @author 아라
*/
$messages['nl'] = array(
'config-desc' => 'Het installatieprogramma voor MediaWiki',
'config-information' => 'Gegevens',
'config-localsettings-upgrade' => 'Er is een bestaand instellingenbestand <code>LocalSettings.php</code> gevonden.
Voer de waarde van <code>$wgUpgradeKey</code> in in onderstaande invoerveld om deze installatie bij te werken.
-De instelling is terug te vinden in LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Het bestand LocalSettings.php is al aanwezig.
-Voer update.php uit om deze installatie bij te werken.',
+De instelling is terug te vinden in <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Het bestand <code>LocalSettings.php</code> is al aanwezig.
+Voer <code>update.php</code> uit om deze installatie bij te werken.',
'config-localsettings-key' => 'Upgradesleutel:',
'config-localsettings-badkey' => 'De sleutel die u hebt opgegeven is onjuist',
'config-upgrade-key-missing' => 'Er is een bestaande installatie van MediaWiki aangetroffen.
-Plaats de volgende regel onderaan uw LocalSettings.php om deze installatie bij te werken:
+Plaats de volgende regel onderaan uw <code>LocalSettings.php</code> om deze installatie bij te werken:
$1',
- 'config-localsettings-incomplete' => 'De bestaande inhoud van LocalSettings.php lijkt incompleet.
+ 'config-localsettings-incomplete' => 'De bestaande inhoud van <code>LocalSettings.php</code> lijkt incompleet.
De variabele $1 is niet ingesteld.
-Wijzig LocalSettings.php zodat deze variabele is ingesteld en klik op "Doorgaan".',
- 'config-localsettings-connection-error' => 'Er is een fout opgetreden tijdens het verbinden van de database met de instellingen uit LocalSettings.php of AdminSettings.php. Los het probleem met de instellingen op en probeer het daarna opnieuw.
+Wijzig <code>LocalSettings.php</code> zodat deze variabele is ingesteld en klik op "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Er is een fout opgetreden tijdens het verbinden van de database met de instellingen uit <code>LocalSettings.php</code> of <code>AdminSettings.php</code>. Los het probleem met de instellingen op en probeer het daarna opnieuw.
$1',
'config-session-error' => 'Fout bij het begin van de sessie: $1',
'config-using531' => 'PHP $1 is niet compatibel met MediaWiki vanwege een fout met betrekking tot referentieparameters met <code>__call()</code>.
Werk uw PHP bij naar PHP 5.3.2 of hoger of werk bij naar de lagere versie PHP 5.3.0 om dit op te lossen.
De installatie wordt afgebroken.',
- 'config-suhosin-max-value-length' => 'Suhosin is geïnstalleerd en beperkt de lengte van de GET-parameter tot $1 bytes. De ResourceLoader van MediaWiki omzeilt deze beperking, maar dat is slecht voor de prestaties. Als het mogelijk is, moet u de waarde "suhosin.get.max_value_length" in php.ini instellen op 1024 of hoger en $wgResourceLoaderMaxQueryLength in LocalSettings.php op dezelfde waarde instellen.',
+ 'config-suhosin-max-value-length' => 'Suhosin is geïnstalleerd en beperkt de lengte van de GET-parameter tot $1 bytes. De ResourceLoader van MediaWiki omzeilt deze beperking, maar dat is slecht voor de prestaties. Als het mogelijk is, moet u de waarde "<code>suhosin.get.max_value_length</code>" in <code>php.ini</code> instellen op 1024 of hoger en <code>$wgResourceLoaderMaxQueryLength</code> in LocalSettings.php op dezelfde waarde instellen.', # Fuzzy
'config-db-type' => 'Databasetype:',
'config-db-host' => 'Databasehost:',
'config-db-host-help' => 'Als uw databaseserver een andere server is, voer dan de hostnaam of het IP-adres hier in.
'config-support-postgres' => '* $1 is een populair open source databasesysteem als alternatief voor MySQL ([http://www.php.net/manual/en/pgsql.installation.php hoe PHP gecompileerd moet zijn met ondersteuning voor PostgreSQL]). Het is mogelijk dat er een aantal bekende problemen zijn met MediaWiki in combinatie met deze database en daarom wordt PostgreSQL niet aanbevolen voor een productieomgeving.',
'config-support-sqlite' => '* $1 is een zeer goed ondersteund lichtgewicht databasesysteem ([http://www.php.net/manual/en/pdo.installation.php hoe PHP gecompileerd zijn met ondersteuning voor SQLite]; gebruikt PDO)',
'config-support-oracle' => '* $1 is een commerciële data voor grote bedrijven ([http://www.php.net/manual/en/oci8.installation.php PHP compileren met ondersteuning voor OCI8]).',
- 'config-support-ibm_db2' => '* $1 is een commerciële enterprisedatabase.',
+ 'config-support-ibm_db2' => '* $1 is een commerciële enterprisedatabase. ([http://www.php.net/manual/en/ibm-db2.installation.php Hoe PHP compolieren met ondersteuning voor IBM DB2])',
'config-header-mysql' => 'MySQL-instellingen',
'config-header-postgres' => 'PostgreSQL-instellingen',
'config-header-sqlite' => 'SQLite-instellingen',
'config-upgrade-done-no-regenerate' => 'Het bijwerken is afgerond.
U kunt nu [$1 uw wiki gebruiken].',
- 'config-regenerate' => 'LocalSettings.php opnieuw aanmaken →',
- 'config-show-table-status' => 'Het uitvoeren van SHOW TABLE STATUS is mislukt!',
+ 'config-regenerate' => '<code>LocalSettings.php</code> opnieuw aanmaken →',
+ 'config-show-table-status' => 'Het uitvoeren van <code>SHOW TABLE STATUS</code> is mislukt!',
'config-unknown-collation' => "'''Waarschuwing:''' de database gebruikt een collatie die niet wordt herkend.",
'config-db-web-account' => 'Databasegebruiker voor webtoegang',
'config-db-web-help' => 'Selecteer de gebruikersnaam en het wachtwoord die de webserver gebruikt om verbinding te maken met de databaseserver na de installatie.',
Daarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.
Daarom biedt dit installatieprogramma u de volgende keuzes voor de basisinstelling van gebruikersvrijheden:
-Een '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.
+Het profiel '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.
Een wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.
Het scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.
In een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.
-Meer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Manual:User_rights handleiding].", # Fuzzy
+Meer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Manual:User_rights handleiding].",
'config-license' => 'Auteursrechten en licentie:',
'config-license-none' => 'Geen licentie in de voettekst',
'config-license-cc-by-sa' => 'Creative Commons Naamsvermelding-Gelijk delen',
'config-install-alreadydone' => "'''Waarschuwing:''' het lijkt alsof u MediaWiki al hebt geïnstalleerd en probeert het programma opnieuw te installeren.
Ga alstublieft door naar de volgende pagina.",
'config-install-begin' => 'Als u nu op "{{int:config-continue}}" klikt, begint de installatie van MediaWiki.
-Als u nog wijzigingen wilt maken, klik dan op "Terug".', # Fuzzy
+Als u nog wijzigingen wilt maken, klik dan op "{{int:config-back}}".',
'config-install-step-done' => 'afgerond',
'config-install-step-failed' => 'mislukt',
'config-install-extensions' => 'Inclusief uitbreidingen',
'''Let op''': als u dit niet nu doet, dan het is bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.
Na het plaatsen van het bestand met instellingen kunt u '''[$2 uw wiki betreden]'''.",
- 'config-download-localsettings' => 'LocalSettings.php downloaden',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code> downloaden',
'config-help' => 'hulp',
'config-nofile' => 'Het bestand "$1" is niet gevonden. Is het verwijderd?',
'mainpagetext' => "'''De installatie van MediaWiki is geslaagd.'''",
$messages['nl-informal'] = array(
'config-localsettings-badkey' => 'De sleutel die je hebt opgegeven is onjuist',
'config-upgrade-key-missing' => 'Er is een bestaande installatie van MediaWiki aangetroffen.
-Plaats de volgende regel onderaan je LocalSettings.php om deze installatie bij te werken:
+Plaats de volgende regel onderaan je <code>LocalSettings.php</code> om deze installatie bij te werken:
$1',
'config-session-expired' => 'Je sessiegegevens zijn verlopen.
Het scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.
In een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.
-Meer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Manual:User_rights handleiding].",
+Meer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Manual:User_rights handleiding].", # Fuzzy
'config-license-help' => "In veel openbare wiki's zijn alle bijdragen beschikbaar onder een [http://freedomdefined.org/Definition vrije licentie].
Dit helpt bij het creëren van een gevoel van gemeenschappelijk eigendom en stimuleert bijdragen op lange termijn.
Dit is over het algemeen niet nodig is voor een particuliere of zakelijke wiki.
'config-install-alreadydone' => "'''Waarschuwing:''' het lijkt alsof je MediaWiki al hebt geïnstalleerd en probeert het programma opnieuw te installeren.
Ga alsjeblieft door naar de volgende pagina.",
'config-install-begin' => 'Als je nu op "{{int:config-continue}}" klikt, begint de installatie van MediaWiki.
-Als je nog wijzigingen wilt maken, klik dan op "Terug".',
+Als je nog wijzigingen wilt maken, klik dan op "Terug".', # Fuzzy
'config-pg-no-plpgsql' => 'Je moet de taal PL/pgSQL installeren in de database $1',
'config-pg-no-create-privs' => 'De gebruiker die je hebt opgegeven door de installatie heeft niet voldoende rechten om een gebruiker aan te maken.',
'config-pg-not-in-role' => 'De gebruiker die je hebt opgegeven voor de webgebruiker bestaat al.
* @author Saper
* @author Sp5uhe
* @author Woytecr
+ * @author 아라
*/
$messages['pl'] = array(
'config-desc' => 'Instalator MediaWiki',
'config-information' => 'Informacja',
'config-localsettings-upgrade' => 'Plik <code>LocalSettings.php</code> istnieje.
Aby oprogramowanie zostało zaktualizowane musisz wstawić wartość <code>$wgUpgradeKey</code> w poniższe pole.
-Odnajdziesz ją w LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Wykryto obecność pliku LocalSettings.php.
-Aktualizację należy wykonać poprzez uruchomienie update.php',
+Odnajdziesz ją w <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Wykryto obecność pliku <code>LocalSettings.php</code>.
+Aktualizację należy wykonać poprzez uruchomienie <code>update.php</code>',
'config-localsettings-key' => 'Klucz aktualizacji',
'config-localsettings-badkey' => 'Podany klucz jest nieprawidłowy',
'config-upgrade-key-missing' => 'Wykryto zainstalowane wcześniej MediaWiki.
-Jeśli chcesz je zaktualizować dodaj na koniec pliku LocalSettings.php poniższą linię tekstu.
+Jeśli chcesz je zaktualizować dodaj na koniec pliku <code>LocalSettings.php</code> poniższą linię tekstu.
$1',
- 'config-localsettings-incomplete' => 'Istniejący plik LocalSettings.php wygląda na niekompletny.
+ 'config-localsettings-incomplete' => 'Istniejący plik <code>LocalSettings.php</code> wygląda na niekompletny.
Brak wartości zmiennej $1.
-Zmień plik LocalSettings.php, tak by zawierał deklarację wartości tej zmiennej, a następnie kliknij „Dalej”.',
- 'config-localsettings-connection-error' => 'Wystąpił błąd podczas łączenia z bazą danych z wykorzystaniem danych z LocalSettings.php lub AdminSettings.php.
+Zmień plik <code>LocalSettings.php</code>, tak by zawierał deklarację wartości tej zmiennej, a następnie kliknij „{{int:Config-continue}}”.',
+ 'config-localsettings-connection-error' => 'Wystąpił błąd podczas łączenia z bazą danych z wykorzystaniem danych z <code>LocalSettings.php</code> lub <code>AdminSettings.php</code>.
Popraw ustawienia i spróbuj ponownie.
$1',
'config-using531' => 'MediaWiki nie może być używane z PHP $1 z powodu błędu dotyczącego referencyjnych argumentów funkcji <code>__call()</code>.
Uaktualnij do PHP 5.3.2 lub nowszego. Możesz również cofnąć wersję do PHP 5.3.0, aby naprawić ten błąd.
Instalacja została przerwana.',
- 'config-suhosin-max-value-length' => 'Jest zainstalowany Suhosin i ogranicza długość parametru GET do $1 bajtów. Komponent ResourceLoader w MediaWiki wykona obejście tego ograniczenia, ale kosztem wydajności. Jeśli to możliwe należy ustawić suhosin.get.max_value_length na 1024 lub wyższej w php.ini oraz ustawić $wgResourceLoaderMaxQueryLength w LocalSettings.php na tę samą wartość.',
+ 'config-suhosin-max-value-length' => 'Jest zainstalowany Suhosin i ogranicza długość parametru GET do $1 bajtów. Komponent ResourceLoader w MediaWiki wykona obejście tego ograniczenia, ale kosztem wydajności. Jeśli to możliwe należy ustawić <code>suhosin.get.max_value_length</code> na 1024 lub wyższej w <code>php.ini</code> oraz ustawić <code>$wgResourceLoaderMaxQueryLength</code> w LocalSettings.php na tę samą wartość.', # Fuzzy
'config-db-type' => 'Typ bazy danych',
'config-db-host' => 'Adres serwera bazy danych',
'config-db-host-help' => 'Jeśli serwer bazy danych jest na innej maszynie, wprowadź jej nazwę domenową lub adres IP.
'config-support-postgres' => '* $1 jest popularnym systemem baz danych, często stosowanym zamiast MySQL ([http://www.php.net/manual/en/pgsql.installation.php Zobacz, jak skompilować PHP ze wsparciem dla PostgreSQL]). Z powodu możliwości wystąpienia drobnych błędów, nie jest zalecana do wymagających wdrożeń.',
'config-support-sqlite' => '* $1 jest niewielkim systemem bazy danych, z którym MediaWiki bardzo dobrze współpracuje. ([http://www.php.net/manual/en/pdo.installation.php Jak skompilować PHP ze wsparciem dla SQLite], korzystając z PDO)',
'config-support-oracle' => '* $1 jest komercyjną profesjonalną bazą danych. ([http://www.php.net/manual/en/oci8.installation.php Jak skompilować PHP ze wsparciem dla OCI8])',
- 'config-support-ibm_db2' => '* $1 jest komercyjną zaawansowaną bazą danych.',
+ 'config-support-ibm_db2' => '* $1 jest komercyjną zaawansowaną bazą danych.', # Fuzzy
'config-header-mysql' => 'Ustawienia MySQL',
'config-header-postgres' => 'Ustawienia PostgreSQL',
'config-header-sqlite' => 'Ustawienia SQLite',
'config-upgrade-done-no-regenerate' => 'Aktualizacja zakończona.
Możesz wreszcie [$1 zacząć korzystać ze swojej wiki].',
- 'config-regenerate' => 'Ponowne generowanie LocalSettings.php →',
- 'config-show-table-status' => 'Zapytanie „SHOW TABLE STATUS” nie powiodło się!',
+ 'config-regenerate' => 'Ponowne generowanie <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Zapytanie „<code>SHOW TABLE STATUS</code>” nie powiodło się!',
'config-unknown-collation' => "'''Uwaga''' – bazy danych używa nierozpoznanej metody porównywania.",
'config-db-web-account' => 'Konto bazy danych dla dostępu przez WWW',
'config-db-web-help' => 'Wybierz nazwę użytkownika i hasło, z których korzystać będzie serwer WWW do łączenia się z serwerem baz danych, podczas zwykłej pracy z wiki.',
'config-optional-continue' => 'Zadaj mi więcej pytań.',
'config-optional-skip' => 'Jestem już znudzony, po prostu zainstaluj wiki.',
'config-profile' => 'Profil uprawnień użytkowników',
- 'config-profile-wiki' => 'Tradycyjne wiki',
+ 'config-profile-wiki' => 'Tradycyjne wiki', # Fuzzy
'config-profile-no-anon' => 'Wymagane utworzenie konta',
'config-profile-fishbowl' => 'Wyłącznie zatwierdzeni edytorzy',
'config-profile-private' => 'Prywatna wiki',
Scenariusz '''{{int:config-profile-fishbowl}}''' umożliwia zatwierdzonym użytkownikom edycję, ale wyświetlanie stron jest powszechnie dostępne, włącznie z historią.
Ustawienie '''{{int:config-profile-private}}'' ' pozwala na wyświetlanie stron tylko zatwierdzonym użytkownikom, ta sama grupa może edytować.
-Bardziej skomplikowane konfiguracje uprawnień użytkowników są dostępne po zakończeniu instalacji, zobacz [//www.mediawiki.org/wiki/Manual:User_rights odpowiednią część podręcznika].",
+Bardziej skomplikowane konfiguracje uprawnień użytkowników są dostępne po zakończeniu instalacji, zobacz [//www.mediawiki.org/wiki/Manual:User_rights odpowiednią część podręcznika].", # Fuzzy
'config-license' => 'Prawa autorskie i licencja',
'config-license-none' => 'Brak stopki z licencją',
'config-license-cc-by-sa' => 'Creative Commons – za uznaniem autora, na tych samych zasadach',
'config-install-alreadydone' => "'''Uwaga''' – wydaje się, że MediaWiki jest już zainstalowane, a obecnie próbujesz zainstalować je ponownie.
Przejdź do następnej strony.",
'config-install-begin' => 'Po naciśnięciu "{{int:config-continue}}", rozpocznie się instalacji MediaWiki.
-Jeśli nadal chcesz dokonać zmian, naciśnij wstecz.',
+Jeśli nadal chcesz dokonać zmian, naciśnij wstecz.', # Fuzzy
'config-install-step-done' => 'gotowe',
'config-install-step-failed' => 'nieudane',
'config-install-extensions' => 'Włącznie z rozszerzeniami',
'''Uwaga''': Jeśli tego nie zrobisz tego teraz, wygenerowany plik konfiguracyjny nie będzie już dostępny po zakończeniu instalacji.
Po załadowaniu pliku konfiguracyjnego możesz '''[ $2 wejść na wiki]'''.",
- 'config-download-localsettings' => 'Pobierz LocalSettings.php',
+ 'config-download-localsettings' => 'Pobierz <code>LocalSettings.php</code>',
'config-help' => 'pomoc',
'config-nofile' => 'Nie udało się odnaleźć pliku "$1". Czy nie został usunięty?',
'mainpagetext' => "'''Instalacja MediaWiki powiodła się.'''",
== Na początek ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista ustawień konfiguracyjnych]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki]', # Fuzzy
);
/** Piedmontese (Piemontèis)
* @author Borichèt
* @author Dragonòt
* @author Krinkle
+ * @author 아라
*/
$messages['pms'] = array(
'config-desc' => "L'instalador për mediaWiki",
'config-localsettings-upgrade' => "A l'é stàit trovà n'archivi <code>LocalSettings.php</code>.
Për agiorné cost'anstalassion, ch'a anserissa ël valor ëd <code>\$wgUpgradeKey</code> ant la casela sì-sota.
A la trovrà an LocalSetting.php.",
- 'config-localsettings-cli-upgrade' => "N'archivi LocalSettings.php a l'é stàit trovà.
-Për agiorné sta instalassion, për piasì fà anvece giré update.php",
+ 'config-localsettings-cli-upgrade' => "N'archivi <code>LocalSettings.php</code> a l'é stàit trovà.
+Për agiorné sta instalassion, për piasì fà anvece giré <code>update.php</code>",
'config-localsettings-key' => "Ciav d'agiornament:",
'config-localsettings-badkey' => "La ciav ch'it l'has dàit a l'é pa giusta.",
'config-upgrade-key-missing' => "A l'é stàita trovà n'istalassion esistenta ëd MediaWiki.
-Për agiorné soa istalassion, për piasì ch'a buta la linia sì-sota al fond ëd sò LocalSettings.php:
+Për agiorné soa istalassion, për piasì ch'a buta la linia sì-sota al fond ëd sò <code>LocalSettings.php</code>:
$1",
- 'config-localsettings-incomplete' => "L'esistent LocalSettings.php a smija esse ancomplet.
+ 'config-localsettings-incomplete' => "L'esistent <code>LocalSettings.php</code> a smija esse ancomplet.
La variàbil $1 a l'é nen ampostà.
-Për piasì, ch'a modìfica LocalSettings.php ëd fasson che costa variàbil a sia ampostà, e ch'a sgnaca «Anans».",
- 'config-localsettings-connection-error' => "A l'é ancapitaje n'eror an colegand-se a la base ëd dàit an dovrand j'ampostassion specificà an LocalSettings.php o AdminSettings.php. Për piasì, ch'a coregia cost'ampostassion e ch'a preuva torna.
+Për piasì, ch'a modìfica <code>LocalSettings.php</code> ëd fasson che costa variàbil a sia ampostà, e ch'a sgnaca «{{int:Config-continue}}».",
+ 'config-localsettings-connection-error' => "A l'é ancapitaje n'eror an colegand-se a la base ëd dàit an dovrand j'ampostassion specificà an <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Për piasì, ch'a coregia cost'ampostassion e ch'a preuva torna.
$1",
'config-session-error' => 'Eror an fasend parte la session: $1',
'config-using531' => "MediaWiki a peul pa esse dovrà con PHP $1 a motiv d'un bigat ch'a ìmplica ij paràmetr d'arferiment a <code>__call()</code>.
Ch'a agiorna a PHP 5.3.2 o pi neuv, o ch'a torna andré a PHP 5.3.0 për arzòlve ës problema.
Istalassion abortìa.",
- 'config-suhosin-max-value-length' => 'Suhosin a l\'é instalà e a lìmita la longheur dël paràmetr GET a $1 byte. Ël component ResourceLoader ëd MediaWiki a travajerà an rispetand ës lìmit, ma sòn a degraderà le prestassion. Se possìbil, a dovrìa amposté suhosin.get.max_value_lenght a 1024 o pi àut an php.ini, e amposté $wgResourceLoaderMaxQueryLength al midem valor an LocalSettings.php .',
+ 'config-suhosin-max-value-length' => 'Suhosin a l\'é instalà e a lìmita la longheur dël paràmetr GET a $1 byte. Ël component ResourceLoader ëd MediaWiki a travajerà an rispetand ës lìmit, ma sòn a degraderà le prestassion. Se possìbil, a dovrìa amposté suhosin.get.max_value_lenght a 1024 o pi àut an <code>php.ini</code>, e amposté <code>$wgResourceLoaderMaxQueryLength</code> al midem valor an LocalSettings.php .', # Fuzzy
'config-db-type' => 'Sòrt ëd base ëd dàit:',
'config-db-host' => 'Ospitant ëd la base ëd dàit:',
'config-db-host-help' => "Se sò servent ëd base ëd dàit a l'é su un servent diferent, ch'a anserissa ambelessì ël nòm dl'ospitant o l'adrëssa IP.
'config-support-postgres' => "* $1 e l'é un sistema ëd base ëd dàit popolar a sorgiss duverta com alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php com compilé PHP con ël manteniment ëd PostgreSQL]). A peulo ess-ie chèich cit bigat, e a l'é nen arcomandà ëd dovrelo an n'ambient ëd produssion.",
'config-support-sqlite' => "* $1 e l'é un sistema ëd base ëd dàit leger che a l'é motobin bin mantnù ([http://www.php.net/manual/en/pdo.installation.php com compilé PHP con ël manteniment ëd SQLite], a deuvra PDO)",
'config-support-oracle' => "* $1 a l'é na base ëd dàit comersial për j'amprèise. ([http://www.php.net/manual/en/oci8.installation.php Com compilé PHP con ël manteniment OCI8])",
- 'config-support-ibm_db2' => "* $1 a l'é na base ëd dàit d'asiendal comersial.",
+ 'config-support-ibm_db2' => "* $1 a l'é na base ëd dàit d'asiendal comersial.", # Fuzzy
'config-header-mysql' => 'Ampostassion MySQL',
'config-header-postgres' => 'Ampostassion PostgreSQL',
'config-header-sqlite' => 'Ampostassion SQLite',
'config-upgrade-done-no-regenerate' => 'Agiornament complet.
It peule adess [$1 ancaminé a dovré toa wiki].',
- 'config-regenerate' => 'Generé torna LocalSettings.php →',
- 'config-show-table-status' => 'Arcesta SHOW TABLE STATUS falìa!',
+ 'config-regenerate' => 'Generé torna <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Arcesta <code>SHOW TABLE STATUS</code> falìa!',
'config-unknown-collation' => "'''Avis:''' La base ëd dàit a deuvra na classificassion pa arconossùa.",
'config-db-web-account' => "Cont dla base ëd dàit për l'acess a l'aragnà",
'config-db-web-help' => "Ch'a selession-a lë stranòm d'utent e la ciav che ël servent ëd l'aragnà a dovrërà për coleghesse al servent dle base ëd dàit, durant j'operassion ordinarie dla wiki.",
'''Nòta''': S'a lo fa nen adess, cost archivi ëd configurassion generà a sarà pa disponìbil për chiel pi tard s'a chita l'instalassion sensa dëscarielo.
Quand che a l'é stàit fàit, a peul '''[$2 intré an soa wiki]'''.",
- 'config-download-localsettings' => 'Dëscarié LocalSettings.php',
+ 'config-download-localsettings' => 'Dëscarié <code>LocalSettings.php</code>',
'config-help' => 'agiut',
'config-nofile' => "L'archivi «$1» as treuva nen. A l'é stàit ëscancelà?",
'mainpagetext' => "'''MediaWiki a l'é staita anstalà a la përfession.'''",
'config-admin-password' => 'پټنوم:',
'config-admin-password-confirm' => 'پټنوم يو ځل بيا:',
'config-admin-email' => 'برېښليک پته:',
- 'config-profile-wiki' => 'دوديزه ويکي',
+ 'config-profile-wiki' => 'دوديزه ويکي', # Fuzzy
'config-license-pd' => 'ټولګړی شپول',
'config-email-settings' => 'د برېښليک امستنې',
'config-install-step-done' => 'ترسره شو',
== پيلول ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings د امستنو د سازونې لړليک]
* [//www.mediawiki.org/wiki/Manual:FAQ د ميډياويکي ډېرځليزې پوښتنې]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce د مېډياويکي د برېښليکونو لړليک]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce د مېډياويکي د برېښليکونو لړليک]
+* [//www.mediawiki.org/wiki/Localisation#Translation_resources خپلې ژبې لپاره MediaWiki ځايتابول]',
);
/** Portuguese (português)
* @author Platonides
* @author SandroHc
* @author Waldir
+ * @author 아라
*/
$messages['pt'] = array(
'config-desc' => 'O instalador do MediaWiki',
'config-information' => 'Informação',
'config-localsettings-upgrade' => 'Foi detectado um ficheiro <code>LocalSettings.php</code>.
Para actualizar esta instalação, por favor introduza o valor de <code>$wgUpgradeKey</code> na caixa abaixo.
-Encontra este valor no LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Foi detectada a existência de um ficheiro LocalSettings.php.
-Para actualizar esta instalação execute o update.php, por favor.',
+Encontra este valor no <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Foi detectada a existência de um ficheiro <code>LocalSettings.php</code>.
+Para actualizar esta instalação execute o <code>update.php</code>, por favor.',
'config-localsettings-key' => 'Chave de actualização:',
'config-localsettings-badkey' => 'A chave que forneceu está incorreta.',
'config-upgrade-key-missing' => 'Foi detectada uma instalação existente do MediaWiki.
-Para actualizar esta instalação, por favor coloque a seguinte linha no final do seu LocalSettings.php:
+Para actualizar esta instalação, por favor coloque a seguinte linha no final do seu <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'O ficheiro LocalSettings.php existente parece estar incompleto.
+ 'config-localsettings-incomplete' => 'O ficheiro <code>LocalSettings.php</code> existente parece estar incompleto.
A variável $1 não está definida.
-Por favor defina esta variável no LocalSettings.php e clique "Continuar".',
- 'config-localsettings-connection-error' => 'Ocorreu um erro ao ligar à base de dados usando as configurações especificadas no LocalSettings.php ou AdminSettings.php. Por favor corrija essas configurações e tente novamente.
+Por favor defina esta variável no <code>LocalSettings.php</code> e clique "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Ocorreu um erro ao ligar à base de dados usando as configurações especificadas no <code>LocalSettings.php</code> ou <code>AdminSettings.php</code>. Por favor corrija essas configurações e tente novamente.
$1',
'config-session-error' => 'Erro ao iniciar a sessão: $1',
'config-using531' => 'O MediaWiki não pode ser usado com o PHP $1 devido a um problema que envolve parâmetros de referência para <code>__call()</code>.
Para resolver este problema, actualize o PHP para a versão 5.3.2 ou posterior, ou reverta-o para a 5.3.0.
Instalação interrompida.',
- 'config-suhosin-max-value-length' => 'O Suhosin está instalado e limita a $1 bytes o comprimento do parâmetro GET. O componente ResourceLoader do MediaWiki pode tornear este limite, mas prejudicando o desempenho. Se lhe for possível, deve atribuir o valor 1024 ou maior ao parâmetro suhosin.get.max_value_length no ficheiro php.ini, e definir o mesmo valor para $wgResourceLoaderMaxQueryLength no ficheiro LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'O Suhosin está instalado e limita a $1 bytes o comprimento do parâmetro GET. O componente ResourceLoader do MediaWiki pode tornear este limite, mas prejudicando o desempenho. Se lhe for possível, deve atribuir o valor 1024 ou maior ao parâmetro <code>suhosin.get.max_value_length</code> no ficheiro <code>php.ini</code>, e definir o mesmo valor para <code>$wgResourceLoaderMaxQueryLength</code> no ficheiro LocalSettings.php.', # Fuzzy
'config-db-type' => 'Tipo da base de dados:',
'config-db-host' => 'Servidor da base de dados:',
'config-db-host-help' => 'Se a base de dados estiver num servidor separado, introduza aqui o nome ou o endereço IP desse servidor.
'config-support-postgres' => '* $1 é uma plataforma de base de dados comum, de fonte aberta, alternativa ao MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar PHP com suporte PostgreSQL]). Poderão existir alguns pequenos problemas e não é recomendado o seu uso em ambientes de exploração/produção.',
'config-support-sqlite' => '* $1 é uma plataforma de base de dados ligeira muito bem suportada. ([http://www.php.net/manual/en/pdo.installation.php Como compilar PHP com suporte SQLite], usa PDO)',
'config-support-oracle' => '* $1 é uma base de dados de uma empresa comercial. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])',
- 'config-support-ibm_db2' => '* $1 é uma base de dados empresarial.',
+ 'config-support-ibm_db2' => '* $1 é uma base de dados empresarial.', # Fuzzy
'config-header-mysql' => 'Definições MySQL',
'config-header-postgres' => 'Definições PostgreSQL',
'config-header-sqlite' => 'Definições SQLite',
'config-upgrade-done-no-regenerate' => 'Actualização terminada.
Agora pode [$1 começar a usar a sua wiki].',
- 'config-regenerate' => 'Regenerar o LocalSettings.php →',
- 'config-show-table-status' => 'A consulta SHOW TABLE STATUS falhou!',
+ 'config-regenerate' => 'Regenerar o <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'A consulta <code>SHOW TABLE STATUS</code> falhou!',
'config-unknown-collation' => "'''Aviso:''' A base de dados está a utilizar uma colação ''(collation)'' desconhecida.",
'config-db-web-account' => 'Conta na base de dados para acesso pela internet',
'config-db-web-help' => 'Seleccione o nome de utilizador e a palavra-chave que o servidor de internet irá utilizar para aceder ao servidor da base de dados, durante a operação normal da wiki.',
'config-optional-continue' => 'Faz-me mais perguntas.',
'config-optional-skip' => 'Já estou aborrecido, instala lá a wiki.',
'config-profile' => 'Perfil de permissões:',
- 'config-profile-wiki' => 'Wiki tradicional',
+ 'config-profile-wiki' => 'Wiki tradicional', # Fuzzy
'config-profile-no-anon' => 'Criação de conta exigida',
'config-profile-fishbowl' => 'Somente utilizadores autorizados',
'config-profile-private' => 'Wiki privada',
Um cenário '''{{int:config-profile-fishbowl}}''' permite que os utilizadores aprovados editem, mas que o público visione as páginas, incluindo o historial das mesmas.
Uma '''{{int:config-profile-private}}''' só permite que os utilizadores aprovados visionem as páginas e as editem.
-Após a instalação, estarão disponíveis mais configurações de privilégios. Consulte [//www.mediawiki.org/wiki/Manual:User_rights a entrada relevante no Manual].",
+Após a instalação, estarão disponíveis mais configurações de privilégios. Consulte [//www.mediawiki.org/wiki/Manual:User_rights a entrada relevante no Manual].", # Fuzzy
'config-license' => 'Direitos de autor e licença:',
'config-license-none' => 'Sem rodapé com a licença',
'config-license-cc-by-sa' => 'Creative Commons - Atribuição - Partilha nos Mesmos Termos',
'config-install-alreadydone' => "'''Aviso:''' Parece que já instalou o MediaWiki e está a tentar instalá-lo novamente.
Passe para a próxima página, por favor.",
'config-install-begin' => 'Ao clicar "{{int:config-continue}}", vai iniciar a instalação do MediaWiki.
-Se quiser fazer mais alterações, clique Voltar.',
+Se quiser fazer mais alterações, clique Voltar.', # Fuzzy
'config-install-step-done' => 'terminado',
'config-install-step-failed' => 'falhou',
'config-install-extensions' => 'A incluir as extensões',
'''Nota''': Se não fizer isto agora, o ficheiro que foi gerado deixará de estar disponível quando sair do processo de instalação.
Depois de terminar o passo anterior, pode '''[$2 entrar na wiki]'''.",
- 'config-download-localsettings' => 'Download do LocalSettings.php',
+ 'config-download-localsettings' => 'Download do <code>LocalSettings.php</code>',
'config-help' => 'ajuda',
'config-nofile' => 'Não foi possível encontrar o ficheiro "$1". Terá sido apagado?',
'mainpagetext' => "'''MediaWiki instalado com sucesso.'''",
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de opções de configuração]
* [//www.mediawiki.org/wiki/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]', # Fuzzy
);
/** Brazilian Portuguese (português do Brasil)
'config-information' => 'Informações',
'config-localsettings-upgrade' => 'Foi detectada a existência do arquivo <code>LocalSettings.php</code>.
Para atualizar esta instalação, insira no box abaixo o valor de <code>$wgUpgradeKey</code>.
-Essa informação pode ser encontrada no arquivo LocalSettings.php',
- 'config-localsettings-cli-upgrade' => 'Foi detectada a existência do arquivo <code>LocalSettings.php</code>.
+Essa informação pode ser encontrada no arquivo <code>LocalSettings.php</code>',
+ 'config-localsettings-cli-upgrade' => 'Foi detectada a existência do arquivo <code><code>LocalSettings.php</code></code>.
Esta instalação deverá ser atualizada através do <code>update.php</code>',
'config-localsettings-key' => 'Chave de atualização:',
'config-localsettings-badkey' => 'A chave fornecida está incorreta.',
'config-upgrade-key-missing' => 'Foi detectada uma instalação existente do MediaWiki.
-Para atualizar esta instalação, por favor, coloque a seguinte linha na parte inferior do seu LocalSettings.php:
+Para atualizar esta instalação, por favor, coloque a seguinte linha na parte inferior do seu <code>LocalSettings.php</code>:
$ 1', # Fuzzy
'config-session-error' => 'Erro ao iniciar a sessão: $1',
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de opções de configuração]
* [//www.mediawiki.org/wiki/Manual:FAQ FAQ do MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussão com avisos de novas versões do MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussão com avisos de novas versões do MediaWiki]', # Fuzzy
);
/** Quechua (Runa Simi)
'config-upgrade-done-no-regenerate' => 'Actualizare completă.
Acum puteți [$1 începe să vă folosiți wikiul].',
- 'config-regenerate' => 'Regenerare LocalSettings.php →',
+ 'config-regenerate' => 'Regenerare <code>LocalSettings.php</code> →',
'config-unknown-collation' => 'AVERTISMENT: Baza de date folosește o colaționare nerecunoscută.',
'config-db-web-account' => 'Contul bazei de date pentru accesul web.',
'config-db-web-create' => 'Creați contul dacă nu există deja',
'config-optional-continue' => 'Adresează-mi mai multe întrebări.',
'config-optional-skip' => 'Sunt deja plictisit, doar instalează wikiul.',
'config-profile' => 'Profilul drepturilor de utilizator:',
- 'config-profile-wiki' => 'Wiki tradițional',
+ 'config-profile-wiki' => 'Wiki tradițional', # Fuzzy
'config-profile-no-anon' => 'Crearea de cont este necesară',
'config-profile-fishbowl' => 'Doar editorii autorizați',
'config-profile-private' => 'Wiki privat',
'config-install-keys' => 'Se generează cheile secrete',
'config-install-sysop' => 'Se creează contul de administrator',
'config-install-mainpage-failed' => 'Nu s-a putut insera pagina principală: $1',
- 'config-download-localsettings' => 'Descarcă LocalSettings.php',
+ 'config-download-localsettings' => 'Descarcă <code>LocalSettings.php</code>',
'config-help' => 'ajutor',
'mainpagetext' => "'''Programul Wiki a fost instalat cu succes.'''",
'mainpagedocfooter' => 'Consultați [//meta.wikimedia.org/wiki/Help:Contents Ghidul utilizatorului (en)] pentru informații despre utilizarea software-ului wiki.
'config-type-postgres' => 'PostgreSQL',
'config-type-sqlite' => 'SQLite',
'config-type-oracle' => 'Oracle',
+ 'config-admin-email' => 'Indirizze e-mail:',
'config-install-step-done' => 'fatte',
'config-install-step-failed' => 'fallite',
'config-install-extensions' => "'Ngludenne le estenziune",
* @author Yuriy Apostol
* @author Александр Сигачёв
* @author Сrower
+ * @author 아라
*/
$messages['ru'] = array(
'config-desc' => 'Инсталлятор MediaWiki',
'config-information' => 'Информация',
'config-localsettings-upgrade' => 'Обнаружен файл <code>LocalSettings.php</code>.
Для обновления этой установки, пожалуйста, введите значение <code>$wgUpgradeKey</code>.
-Его можно найти в файле LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Обнаружен файл LocalSettings.php.
-Для обновления этой установки, пожалуйста, запустите update.php',
+Его можно найти в файле <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Обнаружен файл <code>LocalSettings.php</code>.
+Для обновления этой установки, пожалуйста, запустите <code>update.php</code>',
'config-localsettings-key' => 'Ключ обновления:',
'config-localsettings-badkey' => 'Вы указали неправильный ключ',
'config-upgrade-key-missing' => 'Обнаружена существующая установленная копия MediaWiki.
-Чтобы обновить обнаруженную установку, пожалуйста, добавьте следующую строку в конец вашего файла LocalSettings.php:
+Чтобы обновить обнаруженную установку, пожалуйста, добавьте следующую строку в конец вашего файла <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Похоже, что существующий файл LocalSettings.php не является полными.
+ 'config-localsettings-incomplete' => 'Похоже, что существующий файл <code>LocalSettings.php</code> не является полными.
Не установлена переменная $1.
-Пожалуйста, измените LocalSettings.php так, чтобы значение этой переменной было задано, затем нажмите «Продолжить».',
- 'config-localsettings-connection-error' => 'Произошла ошибка при подключении к базе данных с помощью настроек, указанных в LocalSettings.php или AdminSettings.php. Пожалуйста, исправьте эти настройки и повторите попытку.
+Пожалуйста, измените <code>LocalSettings.php</code> так, чтобы значение этой переменной было задано, затем нажмите «{{int:Config-continue}}».',
+ 'config-localsettings-connection-error' => 'Произошла ошибка при подключении к базе данных с помощью настроек, указанных в <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Пожалуйста, исправьте эти настройки и повторите попытку.
$1',
'config-session-error' => 'Ошибка при запуске сессии: $1',
'config-using531' => 'PHP $1 не совместим с MediaWiki из-за ошибки с параметрами-ссылками при вызовах <code>__call()</code>.
Обновитесь до PHP 5.3.2 и выше, или откатитесь до PHP 5.3.0, чтобы избежать этой проблемы.
Установка прервана.',
- 'config-suhosin-max-value-length' => 'Suhosin установлен и ограничивает длину параметра GET до $1 байт. Компонент MediaWiki ResourceLoader будет обходить это ограничение, но это снизит производительность. Если это возможно, следует установить suhosin.get.max_value_length 1024 или выше в php.ini, а также установить для $wgResourceLoaderMaxQueryLength такое же значение в LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'Suhosin установлен и ограничивает длину параметра GET до $1 байт. Компонент MediaWiki ResourceLoader будет обходить это ограничение, но это снизит производительность. Если это возможно, следует установить <code>suhosin.get.max_value_length</code> 1024 или выше в <code>php.ini</code>, а также установить для <code>$wgResourceLoaderMaxQueryLength</code> такое же значение в LocalSettings.php.', # Fuzzy
'config-db-type' => 'Тип базы данных:',
'config-db-host' => 'Хост базы данных:',
'config-db-host-help' => 'Если сервер базы данных находится на другом сервере, введите здесь его имя хоста или IP-адрес.
'config-support-postgres' => '* $1 — популярная открытая СУБД, альтернатива MySQL ([http://www.php.net/manual/en/pgsql.installation.php инструкция, как собрать PHP с поддержкой PostgreSQL]). Могут встречаться небольшие неисправленные ошибки, не рекомендуется для использования в рабочей системе.',
'config-support-sqlite' => '* $1 — это легковесная система баз данных, имеющая очень хорошую поддержку. ([http://www.php.net/manual/en/pdo.installation.php инструкция, как собрать PHP с поддержкой SQLite], работающей посредством PDO)',
'config-support-oracle' => '* $1 — это коммерческая база данных масштаба предприятия. ([http://www.php.net/manual/en/oci8.installation.php Как собрать PHP с поддержкой OCI8])',
- 'config-support-ibm_db2' => '$1 — коммерческая база данных масштаба предприятия.',
+ 'config-support-ibm_db2' => '$1 — коммерческая база данных масштаба предприятия.', # Fuzzy
'config-header-mysql' => 'Настройки MySQL',
'config-header-postgres' => 'Настройки PostgreSQL',
'config-header-sqlite' => 'Настройки SQLite',
'config-upgrade-done-no-regenerate' => 'Обновление завершено.
Теперь вы можете [$1 начать работу с вики].',
- 'config-regenerate' => 'Создать LocalSettings.php заново →',
- 'config-show-table-status' => 'Запрос «SHOW TABLE STATUS» не выполнен!',
+ 'config-regenerate' => 'Создать <code>LocalSettings.php</code> заново →',
+ 'config-show-table-status' => 'Запрос «<code>SHOW TABLE STATUS</code>» не выполнен!',
'config-unknown-collation' => "'''Внимание:''' База данных использует нераспознанные правила сортировки.",
'config-db-web-account' => 'Учётная запись для доступа к базе данных из веб-сервера',
'config-db-web-help' => 'Выберите имя пользователя и пароль, которые веб-сервер будет использовать для подключения к серверу базы данных при обычной работе вики.',
'config-optional-continue' => 'Произвести тонкую настройку',
'config-optional-skip' => 'Хватит, установить вики',
'config-profile' => 'Профиль прав прользователей:',
- 'config-profile-wiki' => 'ТÑ\80адиÑ\86ионная вики',
+ 'config-profile-wiki' => 'Ð\9eÑ\82кÑ\80Ñ\8bÑ\82ая вики',
'config-profile-no-anon' => 'Требуется создание учётной записи',
'config-profile-fishbowl' => 'Только для авторизованных редакторов',
'config-profile-private' => 'Закрытая вики',
Однако, движок MediaWiki можно использовать и иными способами, и не далеко не всех удаётся убедить в преимуществах открытой вики-работы.
Так что в вас есть выбор.
-Ð\9aонÑ\84игÑ\83Ñ\80аÑ\86иÑ\8f '''«{{int:config-profile-wiki}}»''' позволяет всем править страницы даже не регистрируясь на сайте. Конфигурация '''{{int:config-profile-no-anon}}''' обеспечивает дополнительный учёт, но может отсечь случайных участников.
+Ð\9cоделÑ\8c '''«{{int:config-profile-wiki}}»''' позволяет всем править страницы даже не регистрируясь на сайте. Конфигурация '''{{int:config-profile-no-anon}}''' обеспечивает дополнительный учёт, но может отсечь случайных участников.
Сценарий '''«{{int:config-profile-fishbowl}}»''' разрешает редактирование только определённым участникам, но общедоступным остаётся просмотр страниц, в том числе просмотр истории изменения. В режиме '''«{{int:config-profile-private}}»''' просмотр страниц разрешён только определённым пользователям, какая-то их часть может иметь также права на редактирование.
'config-install-alreadydone' => "'''Предупреждение:''' Вы, кажется, уже устанавливали MediaWiki и пытаетесь произвести повторную установку.
Пожалуйста, перейдите на следующую страницу.",
'config-install-begin' => 'Нажав «{{int:config-continue}}», вы начнёте установку MediaWiki.
-Если вы хотите внести изменения, нажмите «Назад».',
+Если вы хотите внести изменения, нажмите «{{int:config-back}}».',
'config-install-step-done' => 'выполнено',
'config-install-step-failed' => 'не удалось',
'config-install-extensions' => 'В том числе расширения',
'''Примечание''': Если вы не сделаете этого сейчас, то сгенерированный файл конфигурации не будет доступен вам в дальнейшем, если вы выйдете из установки, не скачивая его.
По окончании действий, описанных выше, вы сможете '''[$2 войти в вашу вики]'''.",
- 'config-download-localsettings' => 'Загрузить LocalSettings.php',
+ 'config-download-localsettings' => 'Загрузить <code>LocalSettings.php</code>',
'config-help' => 'справка',
'config-nofile' => 'Файл "$1" не удается найти. Он был удален?',
'mainpagetext' => "'''Вики-движок «MediaWiki» успешно установлен.'''",
'config-missing-db-name' => '"දත්ත සංචිත නාමය" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
'config-missing-db-host' => '"දත්ත සංචිත ධාරකය" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
'config-missing-db-server-oracle' => '"දත්ත සංචිත TNS" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
- 'config-regenerate' => 'නැවත ජනිත කරන්න LocalSettings.php →',
+ 'config-regenerate' => 'නැවත ජනිත කරන්න <code>LocalSettings.php</code> →',
'config-db-web-account' => 'ජාල ප්රවේශනය සඳහා දත්ත සංචිත ගිණුම',
'config-mysql-engine' => 'ආචයන එන්ජිම:',
'config-mysql-innodb' => 'InnoDB',
'config-optional-continue' => 'මගෙන් තව ප්රශ්ණ අහන්න.',
'config-optional-skip' => 'මම දැනටමත් කම්මැලි වී ඇත, විකිය ස්ථාපනය කරන්න.',
'config-profile' => 'පරිශීලක හිමිකම් පැතිකඩ:',
- 'config-profile-wiki' => 'සාම්ප්රදායික විකිය',
+ 'config-profile-wiki' => 'සාම්ප්රදායික විකිය', # Fuzzy
'config-profile-no-anon' => 'ගිණුම් තැනීම අවශ්යයි',
'config-profile-fishbowl' => 'අවසරලත් සංස්කාරකවරුන් පමණි',
'config-profile-private' => 'පුද්ගලික විකිය',
'config-install-sysop' => 'පරිපාලක පරිශීලක ගිණුම තනමින්',
'config-install-mainpage' => 'සාමාන්ය අන්තර්ගතය සමඟින් ප්රධාන පිටුව තනමින්',
'config-install-mainpage-failed' => 'ප්රධාන පිටුව ඇතුල් කල නොහැක: $1',
- 'config-download-localsettings' => 'LocalSettings.php බාගන්න',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code> බාගන්න',
'config-help' => 'උදව්',
'config-nofile' => '"$1" ගොනුව සොයාගත නොහැක. එක මැකිලා ගියාවත්ද?',
'mainpagetext' => "'''මීඩියාවිකි සාර්ථක ලෙස ස්ථාපනය කරන ලදි.'''",
'config-back' => '← Späť',
'config-continue' => 'Pokračovať →',
'config-page-language' => 'Jazyk',
- 'config-download-localsettings' => 'Stiahnuť LocalSettings.php',
+ 'config-download-localsettings' => 'Stiahnuť <code>LocalSettings.php</code>',
'config-nofile' => 'Súbor "$1" sa nenašiel. Bol zmazaný?',
'mainpagetext' => "'''Softvér MediaWiki bol úspešne nainštalovaný.'''",
'mainpagedocfooter' => 'Informácie ako používať wiki softvér nájdete v [//meta.wikimedia.org/wiki/Help:Contents Používateľskej príručke].
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Zoznam konfiguračných nastavení]
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce mailing list nových verzií MediaWiki]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce mailing list nových verzií MediaWiki]', # Fuzzy
);
/** Slovenian (slovenščina)
'config-desc' => 'Namestitveni program za MediaWiki',
'config-title' => 'Namestitev MediaWiki $1',
'config-information' => 'Informacije',
- 'config-localsettings-cli-upgrade' => 'Zaznana je bila datoteka LocalSettings.php.
-Za nadgradnjo te namestitve zaženite update.php',
+ 'config-localsettings-cli-upgrade' => 'Zaznana je bila datoteka <code>LocalSettings.php</code>.
+Za nadgradnjo te namestitve zaženite <code>update.php</code>',
'config-localsettings-key' => 'Nadgraditveni ključ:',
'config-localsettings-badkey' => 'Naveden ključ je napačen.',
'config-upgrade-key-missing' => 'Zaznana je bila obstoječa namestitev MediaWiki.
-Za nadgradnjo te namestitve vstavite naslednjo vrstico na dno vaše LocalSettings.php:
+Za nadgradnjo te namestitve vstavite naslednjo vrstico na dno vaše <code>LocalSettings.php</code>:
$1',
'config-session-error' => 'Napaka pri začenjanju seje: $1',
'config-upgrade-done-no-regenerate' => 'Nadgradnja je končana.
Sedaj lahko [$1 začnete uporabljati vaš wiki].',
- 'config-regenerate' => 'Ponovno ustvari LocalSettings.php →',
- 'config-show-table-status' => 'Poizvedba SHOW TABLE STATUS ni uspela!',
+ 'config-regenerate' => 'Ponovno ustvari <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Poizvedba <code>SHOW TABLE STATUS</code> ni uspela!',
'config-unknown-collation' => "'''Opozorilo:''' Zbirke podatkov uporablja neprepoznano razvrščanje znakov.",
'config-db-web-account' => 'Račun zbirke podatkov za spletni dostop',
'config-db-web-account-same' => 'Uporabi enak račun kot za namestitev',
'config-optional-continue' => 'Zastavi mi več vprašanj.',
'config-optional-skip' => 'Se že dolgočasim; samo namesti wiki.',
'config-profile' => 'Profil uporabniških pravic:',
- 'config-profile-wiki' => 'Klasičen wiki',
+ 'config-profile-wiki' => 'Klasičen wiki', # Fuzzy
'config-profile-no-anon' => 'Zahtevano je ustvarjanje računa',
'config-profile-fishbowl' => 'Samo pooblaščeni urejevalci',
'config-profile-private' => 'Zasebni wiki',
'config-install-pg-schema-not-exist' => 'Shema PostgreSQL ne obstaja.',
'config-install-user-alreadyexists' => 'Uporabnik »$1« že obstaja',
'config-install-tables' => 'Ustvarjanje tabel',
- 'config-download-localsettings' => 'Prenesi LocalSettings.php',
+ 'config-download-localsettings' => 'Prenesi <code>LocalSettings.php</code>',
'config-help' => 'pomoč',
'mainpagetext' => "'''Programje MediaWiki je bilo uspešno nameščeno.'''",
'mainpagedocfooter' => 'Za uporabo in pomoč pri nastavitvi, prosimo, preglejte [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentacijo za prilagajanje vmesnika]
-in [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Uporabniški priročnik].',
+in [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Uporabniški priročnik].', # Fuzzy
);
/** Lower Silesian (Schläsch)
'''OBS''': Om du inte gör detta nu, kommer denna genererade konfigurationsfil inte vara tillgänglig för dig senare om du avslutar installationen utan att ladda ned den.
När det är klart, kan du '''[$2 gå in på din wiki]'''.",
- 'config-download-localsettings' => 'Ladda ned LocalSettings.php',
+ 'config-download-localsettings' => 'Ladda ned <code>LocalSettings.php</code>',
'config-help' => 'hjälp',
'config-nofile' => 'Filen "$1" kunde inte hittas. Har den tagits bort?',
'mainpagetext' => "'''MediaWiki har installerats utan problem.'''",
'config-optional-continue' => 'என்னை இன்னும் அதிகமாக வினவு.',
'config-optional-skip' => 'நான் ஏற்கனவே சோர்வடைந்துள்ளேன், விக்கியை மட்டும் உருவாக்கு.',
'config-profile' => 'பயனர் உரிமைகள் சுயவிவரம்:',
- 'config-profile-wiki' => 'பாரம்பரிய விக்கி',
+ 'config-profile-wiki' => 'பாரம்பரிய விக்கி', # Fuzzy
'config-profile-no-anon' => 'கணக்கு உருவாக்குதல் அவசியம்',
'config-profile-private' => 'தனியார் விக்கி',
'config-license' => 'பதிப்புரிமை மற்றும் உரிமம்:',
'config-install-tables' => 'வரிசைப் பட்டியல்களை உருவாக்குகிறது',
'config-install-mainpage' => 'இயல்புநிலை உள்ளடக்கத்துடன் முதற்பக்கத்தை உருவாக்குகிறது',
'config-install-extension-tables' => 'செயற்படுத்தப்பட்ட நீட்சிகளுக்கு வரிசைப் பட்டியல்களை உருவாக்குகிறது',
- 'config-download-localsettings' => 'LocalSettings.phpஐத் தரவிறக்கவும்',
+ 'config-download-localsettings' => '<code>LocalSettings.php</code>ஐத் தரவிறக்கவும்',
'config-help' => 'உதவி',
'mainpagetext' => "'''விக்கி மென்பொருள் வெற்றிகரமாக உள்ளிடப்பட்டது.'''",
'mainpagedocfooter' => 'விக்கி மென்பொருளைப் பயன்படுத்துவது தொடர்பாக [//meta.wikimedia.org/wiki/Help:Contents பயனர் வழிகாட்டியைப்] பார்க்க.
* [//www.mediawiki.org/wiki/Manual:Configuration_settings அமைப்புக்களை மாற்றம் செய்தல்]
* [//www.mediawiki.org/wiki/Manual:FAQ மிடியாவிக்கி பொதுவான கேள்விகள்]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce மீடியாவிக்கி வெளியீடு மின்னஞ்சல் பட்டியல்]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce மீடியாவிக்கி வெளியீடு மின்னஞ்சல் பட்டியல்]', # Fuzzy
);
/** Tulu (ತುಳು)
/** Tagalog (Tagalog)
* @author AnakngAraw
* @author Sky Harbor
+ * @author 아라
*/
$messages['tl'] = array(
'config-desc' => 'Ang tagapagluklok para sa MediaWiki',
'config-information' => 'Kabatiran',
'config-localsettings-upgrade' => 'Napansin ang isang talaksang <code>LocalSettings.php</code>.
Upang maitaas ang uri ng pagluluklok na ito, paki ipasok ang halaga ng <code>$wgUpgradeKey</code> sa loob ng kahong nasa ibaba.
-Matatagpuan mo ito sa loob ng LocalSettings.php.',
- 'config-localsettings-cli-upgrade' => 'Napansin ang isang talaksan ng LocalSettings.php.
-Upang isapanahon ang pagtatalagang ito, mangyaring patakbuhin sa halip ang update.php',
+Matatagpuan mo ito sa loob ng <code>LocalSettings.php</code>.',
+ 'config-localsettings-cli-upgrade' => 'Napansin ang isang talaksan ng <code>LocalSettings.php</code>.
+Upang isapanahon ang pagtatalagang ito, mangyaring patakbuhin sa halip ang <code>update.php</code>',
'config-localsettings-key' => 'Susi ng pagsasapanahon:',
'config-localsettings-badkey' => 'Hindi tama ang susing ibinigay mo.',
'config-upgrade-key-missing' => 'Napansin ang isang umiiral na pagtatalaga ng MediaWiki.
-Upang isapanahon ang katalagahang ito, mangyaring ilagay ang sumusunod na guhit sa ilalim ng iyong LocalSettings.php:
+Upang isapanahon ang katalagahang ito, mangyaring ilagay ang sumusunod na guhit sa ilalim ng iyong <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Lumilitaw na hindi pa buo ang umiiral na LocalSettings.php.
+ 'config-localsettings-incomplete' => 'Lumilitaw na hindi pa buo ang umiiral na <code>LocalSettings.php</code>.
Ang pabagu-bagong $1 ay hindi nakatakda.
-Mangyaring baguhin ang LocalSettings.php upang ang maitakda ang pagpapabagu-bagong ito, at pindutin ang "Magpatuloy".',
- 'config-localsettings-connection-error' => 'Isang kamalian ang nakatagpo noong kumakabit sa kalipunan ng dato na ginagamit ang tinukoy na mga katakdaan sa loob ng LocalSettings.php o
-AdminSettings.php. Paki kumpunihin ang mga katakdaang ito at subukang muli.
+Mangyaring baguhin ang <code>LocalSettings.php</code> upang ang maitakda ang pagpapabagu-bagong ito, at pindutin ang "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Isang kamalian ang nakatagpo noong kumakabit sa kalipunan ng dato na ginagamit ang tinukoy na mga katakdaan sa loob ng <code>LocalSettings.php</code> o
+<code>AdminSettings.php</code>. Paki kumpunihin ang mga katakdaang ito at subukang muli.
$1',
'config-session-error' => 'Kamalian sa pagsisimula ng sesyon: $1',
'config-brokenlibxml' => "Ang sistema mo ay mayroong isang pagsasama ng mga bersiyon ng PHP at libxml2 na maaaring masurot at maaaring makapagsanhi ng pagkasira ng datong nakakubli sa loob ng MediaWiki at iba pang mga aplikasyon ng sangkasaputan.
Magtaas ng uri upang maging PHP 5.2.9 o mas lalong huli at libxml2 2.7.3 o mas lalong huli ([//bugs.php.net/bug.php?id=45996 isinalansan ang surot o ''bug'' na mayroong PHP]). Binigo ang pagluluklok.",
'config-using531' => 'Hindi maaaring gamitin ang MediaWiki na kapiling ang PHP na $1 dahil sa isang surot na kinasasangkutan ng mga parametrong pangsangguni sa <code>__call()</code>. Magtaas ng uri upang maging PHP 5.3.2 o mas mataas, o magbaba ng uri upang maging PHP 5.3.0 upang malutas ito. Binigo ang pagluluklok.',
- 'config-suhosin-max-value-length' => 'Nakaluklok ang Suhosin at hinahanggahan ang haba ng parametro ng GET sa $1 mga byte. Ang sangkap na ResourceLoader ng MediaWiki ay gagana sa paligid ng hangganang ito, subalit pasasamain nito ang pagganap. Kung talagang maaari, dapat mong itakda ang suhosin.get.max_value_length upang maging 1024 o mas mataas sa loob ng php.ini, at itakda ang $wgResourceLoaderMaxQueryLength sa katulad na halaga sa loob ng LocalSettings.php.',
+ 'config-suhosin-max-value-length' => 'Nakaluklok ang Suhosin at hinahanggahan ang haba ng parametro ng GET sa $1 mga byte. Ang sangkap na ResourceLoader ng MediaWiki ay gagana sa paligid ng hangganang ito, subalit pasasamain nito ang pagganap. Kung talagang maaari, dapat mong itakda ang <code>suhosin.get.max_value_length</code> upang maging 1024 o mas mataas sa loob ng <code>php.ini</code>, at itakda ang <code>$wgResourceLoaderMaxQueryLength</code> sa katulad na halaga sa loob ng LocalSettings.php.', # Fuzzy
'config-db-type' => 'Uri ng kalipunan ng datos:',
'config-db-host' => 'Tagapagpasinaya ng kalipunan ng datos:',
'config-db-host-help' => 'Kung ang iyong tagapaghain ng kalipunan ng dato ay nasa ibabaw ng isang ibang tagapaghain, ipasok ang pangalan ng tagapagpasinaya o tirahan ng IP dito.
'config-support-postgres' => '* Ang $1 ay isang bantog na sistema ng kalipunan ng dato na bukas ang pinagmulan na panghalili sa MySQL ([http://www.php.net/manual/en/pgsql.installation.php paano magtipon ng PHP na mayroong suporta ng PostgreSQL]). Maaaring mayroong ilang hindi pangunahing mga surot na natitira pa, at hindi iminumungkahi para gamitin sa loob ng isang kapaligiran ng produksiyon.',
'config-support-sqlite' => 'Ang $1 ay isang magaan ang timbang na sistema ng kalipunan ng dato na sinusuportahan nang napaka mainam. ([http://www.php.net/manual/en/pdo.installation.php Paano magtipon ng PHP na mayroong suporta ng SQLite], gumagamit ng PDO)',
'config-support-oracle' => '* Ang $1 ay isang kalipunan ng dato ng kasigasigang pangkalakal. ([http://www.php.net/manual/en/oci8.installation.php Paano magtipunan ng PHP na mayroong suporta ng OCI8])',
- 'config-support-ibm_db2' => '* Ang $1 ay isang kalipunan ng dato ng kasigasigang pangkalakal.',
+ 'config-support-ibm_db2' => '* Ang $1 ay isang kalipunan ng dato ng kasigasigang pangkalakal.', # Fuzzy
'config-header-mysql' => 'Mga katakdaan ng MySQL',
'config-header-postgres' => 'Mga katakdaan ng PostgreSQL',
'config-header-sqlite' => 'Mga katakdaan ng SQLite',
'config-upgrade-done-no-regenerate' => 'Buo na ang pagsasapanahon.
Maaari ka na ngayong [$1 magsimula sa paggamit ng wiki mo].',
- 'config-regenerate' => 'Muling likhain ang LocalSettings.php →',
- 'config-show-table-status' => 'Nabigo ang pagtatanong na IPAKITA ANG KALAGAYAN NG TALAHANAYAN!',
+ 'config-regenerate' => 'Muling likhain ang <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Nabigo ang pagtatanong na IPAKITA ANG KALAGAYAN NG TALAHANAYAN!', # Fuzzy
'config-unknown-collation' => "'''Babala:''' Ang kalipunan ng dato ay gumagagamit ng hindi nakikilalang pag-iipon.",
'config-db-web-account' => 'Akawnt ng kalipunan ng dato para sa pagpunta sa web',
'config-db-web-help' => 'Piliin ang pangalan ng tagagamit at hudyat na gagamitin ng tagapaghain ng web upang umugnay sa tagapaghain ng kalipunan ng dato, habang nasa pangkaraniwang pagtakbo ng wiki.',
'config-optional-continue' => 'Magtanong sa akin ng marami pang mga tanong.',
'config-optional-skip' => 'Naiinip na ako, basta iluklok na lang ang wiki.',
'config-profile' => 'Balangkas ng mga karapatan ng tagagamit:',
- 'config-profile-wiki' => 'Tradisyonal na wiki',
+ 'config-profile-wiki' => 'Tradisyonal na wiki', # Fuzzy
'config-profile-no-anon' => 'Kailangan ang paglikha ng akawnt',
'config-profile-fishbowl' => 'Pinahintulutang mga patnugot lamang',
'config-profile-private' => 'Pribadong wiki',
Ang tagpo na '''{{int:config-profile-fishbowl}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang makapamatnugot.
Ang isang '''{{int:config-profile-private}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang makapamatnugot.
-Ang mas masasalimuot na mga kaayusan ng mga karapatan ng tagagamit ay makukuha pagkaraan ng pagluluklok, tingnan ang [//www.mediawiki.org/wiki/Manual:User_rights may kaugnayang kinamay na lahok].",
+Ang mas masasalimuot na mga kaayusan ng mga karapatan ng tagagamit ay makukuha pagkaraan ng pagluluklok, tingnan ang [//www.mediawiki.org/wiki/Manual:User_rights may kaugnayang kinamay na lahok].", # Fuzzy
'config-license' => 'Karapatang-ari at lisensiya:',
'config-license-none' => 'Walang talababa ng lisensiya',
'config-license-cc-by-sa' => 'Malikhaing Pangkaraniwang Pagtukoy Pamamahaging Magkatulad',
'config-install-alreadydone' => "'''Babala:''' Tila nailuklok mo na ang MediaWiki at tinatangka mong iluklok ito ulit.
Paki magpatuloy sa susunod na pahina.",
'config-install-begin' => 'Sa pamamagitan ng pagpindot sa "{{int:config-continue}}", sisimulan mo ang pagluluklok ng MediaWiki.
-Kung nais mo paring gumawa ng mga pagbabago, paki pindutin ang bumalik.',
+Kung nais mo paring gumawa ng mga pagbabago, paki pindutin ang bumalik.', # Fuzzy
'config-install-step-done' => 'nagawa na',
'config-install-step-failed' => 'nabigo',
'config-install-extensions' => 'Isinasama ang mga karugtong',
'''Paunawa''': Kapag hindi mo ito ginawa ngayon, ang nagawang talaksang ito ng pagkakaayos ay hindi mo na makukuha mamaya kapag lumabas ka mula sa pagluluklok na hindi ikinakarga itong paibaba.
Kapag nagawa na iyan, maaari ka nang '''[$2 pumasok sa wiki mo]'''.",
- 'config-download-localsettings' => 'Ikargang paibaba ang LocalSettings.php',
+ 'config-download-localsettings' => 'Ikargang paibaba ang <code>LocalSettings.php</code>',
'config-help' => 'saklolo',
'config-nofile' => 'Hindi matagpuan ang talaksang "$1". Binura na ba ito?',
'mainpagetext' => "'''Matagumpay na ininstala ang MediaWiki.'''",
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Tala ng mga nakatakdang kumpigurasyon]
* [//www.mediawiki.org/wiki/Manual:FAQ Mga malimit itanong sa MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Tala ng mga pinadadalhan ng liham ng MediaWiki]",
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Tala ng mga pinadadalhan ng liham ng MediaWiki]", # Fuzzy
);
/** толышә зывон (толышә зывон)
* @author Diemon.ukr
* @author Ата
* @author Тест
+ * @author 아라
*/
$messages['uk'] = array(
'config-desc' => 'Інсталятор MediaWiki',
'config-localsettings-upgrade' => "'''Увага''': було виявлено файл <code>LocalSettings.php</code>.
Ваше програмне забезпечення може бути оновлено.
Будь-ласка, перемістіть файл <code>LocalSettings.php</code> в іншу безпечну директорію, а потім знову запустіть програму установки.",
- 'config-localsettings-cli-upgrade' => 'Виявлено файл LocalSettings.php.
-Щоб оновити наявну установку, запустіть update.php',
+ 'config-localsettings-cli-upgrade' => 'Виявлено файл <code>LocalSettings.php</code>.
+Щоб оновити наявну установку, запустіть <code>update.php</code>',
'config-localsettings-key' => 'Ключ оновлення:',
'config-localsettings-badkey' => 'Ви вказали неправильний ключ.',
'config-upgrade-key-missing' => 'Виявлено наявну установку MediaWiki.
-Для оновлення цієї установки, будь ласка, вставте такий рядок в кінець вашого LocalSettings.php:
+Для оновлення цієї установки, будь ласка, вставте такий рядок в кінець вашого <code>LocalSettings.php</code>:
$1',
- 'config-localsettings-incomplete' => 'Існуючий файл LocalSettings.php виявився неповним.
+ 'config-localsettings-incomplete' => 'Існуючий файл <code>LocalSettings.php</code> виявився неповним.
Не вказано змінну $1.
-Будь ласка, змініть LocalSettings.php так, щоб цю змінну було задано, і натисніть "Продовжити".',
- 'config-localsettings-connection-error' => 'Сталася помилка при підключення до бази даних з допомогою налаштувань на сторінці LocalSettings.php чи AdminSettings.php. Будь ласка, виплавте ці налаштування і спробуйте знову.
+Будь ласка, змініть <code>LocalSettings.php</code> так, щоб цю змінну було задано, і натисніть "{{int:Config-continue}}".',
+ 'config-localsettings-connection-error' => 'Сталася помилка при підключення до бази даних з допомогою налаштувань на сторінці <code>LocalSettings.php</code> чи <code>AdminSettings.php</code>. Будь ласка, виплавте ці налаштування і спробуйте знову.
$1',
'config-session-error' => 'Помилка початку сесії: $1',
'config-using531' => 'MediaWiki не можна використовувати разом з PHP $1 через помилку з параметрами-посиланнями <code>__call()</code>.
Оновіть PHP до версії 5.3.2 і вище або відкотіть до PHP 5.3.0 щоб уникнути цієї проблеми.
Встановлення скасовано.',
- 'config-suhosin-max-value-length' => 'Suhosin встановлено і обмежує довжину параметра GET до $1 байтів. Компонент MediaWiki ResourceLoader буде обходити це обмеження, однак це зменшить продуктивність. Якщо це можливо, Вам варто встановити значення suhosin.get.max_value_length 1024 і більше у php.ini і встановити таке ж значення $wgResourceLoaderMaxQueryLength у LocalSettings.php .',
+ 'config-suhosin-max-value-length' => 'Suhosin встановлено і обмежує довжину параметра GET до $1 байтів. Компонент MediaWiki ResourceLoader буде обходити це обмеження, однак це зменшить продуктивність. Якщо це можливо, Вам варто встановити значення <code>suhosin.get.max_value_length</code> 1024 і більше у <code>php.ini</code> і встановити таке ж значення <code>$wgResourceLoaderMaxQueryLength</code> у LocalSettings.php .', # Fuzzy
'config-db-type' => 'Тип бази даних:',
'config-db-host' => 'Хост бази даних:',
'config-db-host-help' => 'Якщо сервер бази даних знаходиться на іншому сервері, введіть тут ім\'я хосту і IP адресу.
'config-support-postgres' => '* $1 — популярна відкрита СУБД, альтернатива MySQL ([http://www.php.net/manual/en/pgsql.installation.php як зібрати PHP з допомогою PostgreSQL]). Можуть зустрічатись деякі невеликі невиправлені помилки, не рекомендується використовувати у робочій системі.',
'config-support-sqlite' => '* $1 — легка система баз даних, яка дуже добре підтримується. ([http://www.php.net/manual/en/pdo.installation.php Як зібрати PHP з допомогою SQLite], що використовує PDO)',
'config-support-oracle' => '* $1 — комерційна база даних масштабу підприємства. ([http://www.php.net/manual/en/oci8.installation.php Як зібрати PHP з підтримкою OCI8])',
- 'config-support-ibm_db2' => '* $1 — комерційна база даних масштабу підприємства.',
+ 'config-support-ibm_db2' => '* $1 — комерційна база даних масштабу підприємства.', # Fuzzy
'config-header-mysql' => 'Налаштування MySQL',
'config-header-postgres' => 'Налаштування PostgreSQL',
'config-header-sqlite' => 'Налаштування SQLite',
'config-upgrade-done-no-regenerate' => 'Оновлення завершено.
Ви можете зараз [$1 починати використовувати свою вікі].',
- 'config-regenerate' => 'Повторно згенерувати LocalSettings.php →',
- 'config-show-table-status' => 'Запит SHOW TABLE STATUS не виконано!',
+ 'config-regenerate' => 'Повторно згенерувати <code>LocalSettings.php</code> →',
+ 'config-show-table-status' => 'Запит <code>SHOW TABLE STATUS</code> не виконано!',
'config-unknown-collation' => "'''Увага:''' База даних використовує нерозпізнане сортування.",
'config-db-web-account' => 'Обліковий запис бази даних для інтернет-доступу',
'config-db-web-help' => "Оберіть ім'я користувача і пароль, які веб-сервер буде використовувати для з'єднання із сервером бази даних під час звичайної роботи вікі.",
'config-optional-continue' => 'Запитуйте ще.',
'config-optional-skip' => 'Це вже втомлює, просто встановити вікі.',
'config-profile' => 'Профіль прав користувача:',
- 'config-profile-wiki' => 'Традиційна вікі',
+ 'config-profile-wiki' => 'Традиційна вікі', # Fuzzy
'config-profile-no-anon' => 'Необхідно створити обліковий запис',
'config-profile-fishbowl' => 'Тільки для авторизованих редакторів',
'config-profile-private' => 'Приватна вікі',
Спосіб \"'''{{int:config-profile-fishbowl}}'''\" дозволяє редагувати підтвердженим користувачам, а переглядати сторінки і історію можуть усі.
'''{{int:config-profile-private}}''' дозволяє переглядати сторінки і редагувати лише підтвердженим користувачам.
-Детальніші конфігурації прав користувачів доступні після встановлення, див. [//www.mediawiki.org/wiki/Manual:User_rights відповідний розділ посібника].",
+Детальніші конфігурації прав користувачів доступні після встановлення, див. [//www.mediawiki.org/wiki/Manual:User_rights відповідний розділ посібника].", # Fuzzy
'config-license' => 'Авторські права і ліцензія:',
'config-license-none' => 'Без ліцензії у нижньому колонтитулі',
'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
'config-install-alreadydone' => "'''Увага:''' Здається, Ви вже встановлювали MediaWiki і зараз намагаєтесь встановити її знову.
Будь ласка, перейдіть на наступну сторінку.",
'config-install-begin' => 'Натискаючи "{{int:config-continue}}", Ви розпочинаєте встановлення MediaWiki.
-Якщо Ви все ще хочете внести зміни, натисніть "Назад".',
+Якщо Ви все ще хочете внести зміни, натисніть "Назад".', # Fuzzy
'config-install-step-done' => 'виконано',
'config-install-step-failed' => 'не вдалося',
'config-install-extensions' => 'У тому числі розширення',
'''Примітка''': Якщо Ви не зробите цього зараз, цей файл не буде доступним пізніше, коли Ви вийдете з встановлення, не скачавши його.
Після виконання дій, описаних вище, Ви зможете '''[$2 увійти у свою вікі]'''.",
- 'config-download-localsettings' => 'Завантажити LocalSettings.php',
+ 'config-download-localsettings' => 'Завантажити <code>LocalSettings.php</code>',
'config-help' => 'допомога',
'config-nofile' => 'Файл "$1" не знайдено. Його видалено?',
'mainpagetext' => 'Програмне забезпечення «MediaWiki» успішно встановлене.',
* @author Xiaomingyan
* @author Yfdyh000
* @author 阿pp
+ * @author 아라
*/
$messages['zh-hans'] = array(
'config-desc' => 'MediaWiki安装程序',
'config-title' => 'MediaWiki $1配置',
'config-information' => '信息',
- 'config-localsettings-upgrade' => '已检测到<code>LocalSettings.php</code>文件。要升级该配置,请在下面的框中输入<code>$wgUpgradeKey</code>的值。您可以在LocalSettings.php中找到它。',
- 'config-localsettings-cli-upgrade' => '已检测到LocalSettings.php文件。要升级该配置,请直接运行update.php。',
+ 'config-localsettings-upgrade' => '已检测到<code>LocalSettings.php</code>文件。要升级该配置,请在下面的框中输入<code>$wgUpgradeKey</code>的值。您可以在<code>LocalSettings.php</code>中找到它。',
+ 'config-localsettings-cli-upgrade' => '已检测到<code>LocalSettings.php</code>文件。要升级该配置,请直接运行<code>update.php</code>。',
'config-localsettings-key' => '升级密钥:',
'config-localsettings-badkey' => '您提供的密钥不正确。',
- 'config-upgrade-key-missing' => '检测到MediaWiki的配置已经存在。若要升级该配置,请将下面一行文本添加到LocalSettings.php的底部:
+ 'config-upgrade-key-missing' => '检测到MediaWiki的配置已经存在。若要升级该配置,请将下面一行文本添加到<code>LocalSettings.php</code>的底部:
$1',
- 'config-localsettings-incomplete' => '当前的LocalSettings.php可能并不完整,因为变量$1没有设置。请在LocalSettings.php设置该变量,并单击“继续”。',
- 'config-localsettings-connection-error' => '在使用LocalSettings.php或AdminSettings.php中指定的设置连接数据库时发生错误。请修复相应设置并重试。
+ 'config-localsettings-incomplete' => '当前的<code>LocalSettings.php</code>可能并不完整,因为变量$1没有设置。请在<code>LocalSettings.php</code>设置该变量,并单击“{{int:Config-continue}}”。',
+ 'config-localsettings-connection-error' => '在使用<code>LocalSettings.php</code>或<code>AdminSettings.php</code>中指定的设置连接数据库时发生错误。请修复相应设置并重试。
$1',
'config-session-error' => '启动会话出错:$1',
'config-no-cli-uploads-check' => "'''警告''':在CLI安装过程中,没有对您的默认上传目录(<code>$1</code>)进行执行任意脚本的漏洞检查。",
'config-brokenlibxml' => '您的系统安装的PHP和libxml2版本组合存在故障,并可能在MediaWiki和其他web应用程序中造成隐藏的数据损坏。请将PHP升级到5.2.9或以上,libxml2升级到2.7.3或以上([//bugs.php.net/bug.php?id=45996 PHP的故障报告])。安装已中断。',
'config-using531' => '由于函数<code>__call()</code>的引用参数存在故障,PHP $1和MediaWiki无法兼容。请升级到PHP 5.3.2或更高版本,或降级到PHP 5.3.0以修复该问题。安装已中断。',
- 'config-suhosin-max-value-length' => 'Suhosin已经安装并将GET请求的参数长度限制在$1字节。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能会被降低。如果可能,请在php.ini中将suhosin.get.max_value_length设为1024或更高值,并在LocalSettings.php中将$wgResourceLoaderMaxQueryLength设为同一值。',
+ 'config-suhosin-max-value-length' => 'Suhosin已经安装并将GET请求的参数长度限制在$1字节。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能会被降低。如果可能,请在<code>php.ini</code>中将<code>suhosin.get.max_value_length</code>设为1024或更高值,并在LocalSettings.php中将<code>$wgResourceLoaderMaxQueryLength</code>设为同一值。', # Fuzzy
'config-db-type' => '数据库类型:',
'config-db-host' => '数据库主机:',
'config-db-host-help' => '如果您的数据库在别的服务器上,请在这里输入它的域名或IP地址。
'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-support-ibm_db2' => '* $1是一种商用企业级数据库。', # Fuzzy
'config-header-mysql' => 'MySQL设置',
'config-header-postgres' => 'PostgreSQL设置',
'config-header-sqlite' => 'SQLite设置',
'config-upgrade-done-no-regenerate' => '升级完成。
现在您可以[$1 开始使用您的wiki]了。',
- 'config-regenerate' => '重新生成LocalSettings.php →',
- 'config-show-table-status' => 'SHOW TABLE STATUS语句执行失败!',
+ 'config-regenerate' => '重新生成<code>LocalSettings.php</code> →',
+ 'config-show-table-status' => '<code>SHOW TABLE STATUS</code>语句执行失败!',
'config-unknown-collation' => "'''警告:'''数据库使用了无法识别的整理。",
'config-db-web-account' => '供网页访问使用的数据库帐号',
'config-db-web-help' => '请指定在wiki执行普通操作时,网页服务器用于连接数据库服务器的用户名和密码。',
'config-optional-continue' => '多问我一些问题吧。',
'config-optional-skip' => '我已经不耐烦了,赶紧安装我的wiki。',
'config-profile' => '用户权限配置:',
- 'config-profile-wiki' => '传统wiki',
+ 'config-profile-wiki' => '开放的wiki',
'config-profile-no-anon' => '需要注册帐号',
'config-profile-fishbowl' => '编辑受限',
'config-profile-private' => '非公开wiki',
您可能要对它们进行额外的配置,但您现在可以启用它们。',
'config-install-alreadydone' => "'''警告:'''您似乎已经安装了MediaWiki,并试图重新安装它。请前往下一个页面。",
- 'config-install-begin' => '点击“{{int:config-continue}}”后,您将开始安装MediaWiki。如果您还想对配置作一些修改,请点击后退。',
+ 'config-install-begin' => '点击“{{int:config-continue}}”后,您将开始安装MediaWiki。如果您还想对配置作一些修改,请点击“{{int:config-back}}”。',
'config-install-step-done' => '完成',
'config-install-step-failed' => '失败',
'config-install-extensions' => '正在启用扩展',
'''注意''':如果您现在不完成本步骤,而是没有下载便退出了安装过程,此后您将无法获得自动生成的配置文件。
当本步骤完成后,您可以 '''[$2 进入您的wiki]'''。",
- 'config-download-localsettings' => '下载LocalSettings.php',
+ 'config-download-localsettings' => '下载<code>LocalSettings.php</code>',
'config-help' => '帮助',
'config-nofile' => '找不到文件“$1”。它是否已被删除?',
'mainpagetext' => "'''已成功安装MediaWiki。'''",
== 入门 ==
* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki配置设置列表]
* [//www.mediawiki.org/wiki/Manual:FAQ/zh-hans MediaWiki常见问题]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki发布邮件列表]', # Fuzzy
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki发布邮件列表]
+* [//www.mediawiki.org/wiki/Localisation#Translation_resources 本地化MediaWiki到您的语言]',
);
/** Traditional Chinese (中文(繁體))
* @author Liangent
* @author Mark85296341
* @author Simon Shek
+ * @author 아라
*/
$messages['zh-hant'] = array(
'config-desc' => 'MediaWiki安裝程序',
'config-title' => 'MediaWiki $1配置',
'config-information' => '資訊',
- 'config-localsettings-upgrade' => '已檢測到<code>LocalSettings.php</code>文件。要升級該配置,請在下面的框中輸入<code>$wgUpgradeKey</code>的值。您可以在LocalSettings.php中找到它。',
- 'config-localsettings-cli-upgrade' => '已檢測到LocalSettings.php文件。要升級該配置,請直接執行update.php。',
+ 'config-localsettings-upgrade' => '已檢測到<code>LocalSettings.php</code>文件。要升級該配置,請在下面的框中輸入<code>$wgUpgradeKey</code>的值。您可以在<code>LocalSettings.php</code>中找到它。',
+ 'config-localsettings-cli-upgrade' => '已檢測到<code>LocalSettings.php</code>文件。要升級該配置,請直接執行<code>update.php</code>。',
'config-localsettings-key' => '升級密鑰:',
'config-localsettings-badkey' => '您提供的密鑰不正確。',
- 'config-upgrade-key-missing' => '檢測到MediaWiki的配置已經存在。若要升級該配置,請將下面一行文本添加到LocalSettings.php的底部:
+ 'config-upgrade-key-missing' => '檢測到MediaWiki的配置已經存在。若要升級該配置,請將下面一行文本添加到<code>LocalSettings.php</code>的底部:
$1',
- 'config-localsettings-incomplete' => '當前的LocalSettings.php可能並不完整,因為變量$1沒有設置。請在LocalSettings.php設置該變量,並單擊“繼續”。',
- 'config-localsettings-connection-error' => '在使用LocalSettings.php或AdminSettings.php中指定的設置連接數據庫時發生錯誤。請修復相應設置並重試。
+ 'config-localsettings-incomplete' => '當前的<code>LocalSettings.php</code>可能並不完整,因為變量$1沒有設置。請在<code>LocalSettings.php</code>設置該變量,並單擊“{{int:Config-continue}}”。',
+ 'config-localsettings-connection-error' => '在使用<code>LocalSettings.php</code>或<code>AdminSettings.php</code>中指定的設置連接數據庫時發生錯誤。請修復相應設置並重試。
$1',
'config-session-error' => '啟動會話出錯:$1',
'config-no-cli-uploads-check' => "'''警告''':在CLI安裝過程中,沒有對您的默認上傳目錄(<code>$1</code>)進行執行任意腳本的漏洞檢查。",
'config-brokenlibxml' => '您的系統安裝的PHP和libxml2版本組合存在故障,並可能在MediaWiki和其他web應用程序中造成隱藏的數據損壞。請將PHP升級到5.2.9或以上,libxml2升級到2.7.3或以上([//bugs.php.net/bug.php?id=45996 PHP的故障報告])。安裝已中斷。',
'config-using531' => '由於函數<code>__call()</code>的引用參數存在故障,PHP $1和MediaWiki無法兼容。請升級到PHP 5.3.2或更高版本,或降級到PHP 5.3.0以修復該問題。安裝已中斷。',
- 'config-suhosin-max-value-length' => 'Suhosin已經安裝並將GET請求的參數長度限制在$1字節。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能會被降低。如果可能,請在php.ini中將suhosin.get.max_value_length設為1024或更高值,並在LocalSettings.php中將$wgResourceLoaderMaxQueryLength設為同一值。',
+ 'config-suhosin-max-value-length' => 'Suhosin已經安裝並將GET請求的參數長度限制在$1字節。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能會被降低。如果可能,請在<code>php.ini</code>中將<code>suhosin.get.max_value_length</code>設為1024或更高值,並在LocalSettings.php中將<code>$wgResourceLoaderMaxQueryLength</code>設為同一值。', # Fuzzy
'config-db-type' => '資料庫類型:',
'config-db-host' => '資料庫主機:',
'config-db-host-help' => '如果您的數據庫在別的服務器上,請在這裡輸入它的域名或IP地址。
'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-support-ibm_db2' => '* $1是一種商用企業級數據庫。', # Fuzzy
'config-header-mysql' => 'MySQL 的設定',
'config-header-postgres' => 'PostgreSQL設置',
'config-header-sqlite' => 'SQLite 的設定',
'config-upgrade-done-no-regenerate' => '升級完成。
現在您可以[$1 開始使用您的wiki]了。',
- 'config-regenerate' => '重新生成LocalSettings.php →',
- 'config-show-table-status' => '查詢SHOW TABLE STATUS失敗!',
+ 'config-regenerate' => '重新生成<code>LocalSettings.php</code> →',
+ 'config-show-table-status' => '查詢<code>SHOW TABLE STATUS</code>失敗!',
'config-unknown-collation' => "'''警告:'''數據庫使用了無法識別的整理。",
'config-db-web-account' => '供網頁訪問使用的數據庫帳號',
'config-db-web-help' => '請指定在wiki執行普通操作時,網頁服務器用於連接數據庫服務器的用戶名和密碼。',
'config-optional-continue' => '多問我一些問題吧。',
'config-optional-skip' => '我已經不耐煩了,趕緊安裝我的wiki。',
'config-profile' => '用戶權限配置:',
- 'config-profile-wiki' => '傳統wiki',
+ 'config-profile-wiki' => '傳統wiki', # Fuzzy
'config-profile-no-anon' => '需要註冊帳號',
'config-profile-fishbowl' => '編輯受限',
'config-profile-private' => '非公開wiki',
'''{{int:config-profile-fishbowl}}'''模式只允許獲批准的用戶編輯,但對公眾開放頁面瀏覽(包括歷史記錄)。'''{{int:config-profile-private}}'''則只允許獲批准的用戶瀏覽、編輯頁面。
-安裝完成後,您還可以對用戶權限進行更多、更複雜的配置,參見[//www.mediawiki.org/wiki/Manual:User_rights 相關的使用手冊]。",
+安裝完成後,您還可以對用戶權限進行更多、更複雜的配置,參見[//www.mediawiki.org/wiki/Manual:User_rights 相關的使用手冊]。", # Fuzzy
'config-license' => '版權和許可證:',
'config-license-none' => '頁腳無許可證',
'config-license-cc-by-sa' => '知識共享署名-相同方式分享',
您可能要對它們進行額外的配置,但您現在可以啟用它們。',
'config-install-alreadydone' => "'''警告:'''您似乎已經安裝了MediaWiki,並試圖重新安裝它。請前往下一個頁面。",
- 'config-install-begin' => '點擊“{{int:config-continue}}”後,您將開始安裝MediaWiki。如果您還想對配置作一些修改,請點擊後退。',
+ 'config-install-begin' => '點擊“{{int:config-continue}}”後,您將開始安裝MediaWiki。如果您還想對配置作一些修改,請點擊後退。', # Fuzzy
'config-install-step-done' => '完成',
'config-install-step-failed' => '失敗',
'config-install-extensions' => '正在啟用擴展',
'''注意''':如果您現在不完成本步驟,而是沒有下載便退出了安裝過程,此後您將無法獲得自動生成的配置文件。
當本步驟完成後,您可以 '''[$2 進入您的wiki]'''。",
- 'config-download-localsettings' => '下載LocalSettings.php',
+ 'config-download-localsettings' => '下載<code>LocalSettings.php</code>',
'config-help' => '說明',
'mainpagetext' => "'''已成功安裝MediaWiki。'''",
'mainpagedocfooter' => '請參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此wiki軟體的訊息!
* output format such as HTML or text before being sent to the user.
* @param $msg
*/
- public abstract function showMessage( $msg /*, ... */ );
+ abstract public function showMessage( $msg /*, ... */ );
/**
* Same as showMessage(), but for displaying errors
* @param $msg
*/
- public abstract function showError( $msg /*, ... */ );
+ abstract public function showError( $msg /*, ... */ );
/**
* Show a message to the installing user by using a Status object
* @param $status Status
*/
- public abstract function showStatusMessage( Status $status );
+ abstract public function showStatusMessage( Status $status );
/**
* Constructor, always call this from child classes.
* Helper function to be called from envCheckServer()
* @return String
*/
- protected abstract function envGetDefaultServer();
+ abstract protected function envGetDefaultServer();
/**
* Environment check for setting $IP and $wgScriptPath.
}
if ( !strlen( $newValues['wgDBname'] ) ) {
$status->fatal( 'config-missing-db-name' );
- } elseif ( !preg_match( '/^[a-z0-9_-]+$/i', $newValues['wgDBname'] ) ) {
+ } elseif ( !preg_match( '/^[a-z0-9+_-]+$/i', $newValues['wgDBname'] ) ) {
$status->fatal( 'config-invalid-db-name', $newValues['wgDBname'] );
}
if ( !preg_match( '/^[a-z0-9_-]*$/i', $newValues['wgDBprefix'] ) ) {
$url = preg_replace( '/\?.*$/', '', $url );
if ( $query ) {
- $url .= '?' . wfArrayToCGI( $query );
+ $url .= '?' . wfArrayToCgi( $query );
}
return $url;
) );
$anchor = Html::rawElement( 'a',
array( 'href' => $this->getURL( array( 'localsettings' => 1 ) ) ),
- $img . ' ' . wfMessage( 'config-download-localsettings' )->escaped() );
+ $img . ' ' . wfMessage( 'config-download-localsettings' )->parse() );
return Html::rawElement( 'div', array( 'class' => 'config-download-link' ), $anchor );
}
*/
public $parent;
- public abstract function execute();
+ abstract public function execute();
/**
* Constructor.
$styleUrl = $server . dirname( dirname( $this->parent->getUrl() ) ) .
'/skins/common/config-cc.css';
$iframeUrl = 'http://creativecommons.org/license/?' .
- wfArrayToCGI( array(
+ wfArrayToCgi( array(
'partner' => 'MediaWiki',
'exit_url' => $exitUrl,
'lang' => $this->getVar( '_UserLang' ),
abstract class WebInstaller_Document extends WebInstallerPage {
- protected abstract function getFileName();
+ abstract protected function getFileName();
public function execute() {
$text = $this->getFileContents();
* @param string $prefix Interwiki prefix to use
* @return bool Whether it exists
*/
- static public function isValidInterwiki( $prefix ) {
+ public static function isValidInterwiki( $prefix ) {
$result = self::fetch( $prefix );
return (bool)$result;
}
* @param string $prefix Interwiki prefix to use
* @return Interwiki|null|bool
*/
- static public function fetch( $prefix ) {
+ public static function fetch( $prefix ) {
global $wgContLang;
if ( $prefix == '' ) {
return null;
if ( $paramString != '' ) {
$paramString .= ' ';
}
+
+ if ( is_array( $value ) ) {
+ $value = "array(" . count( $value ) . ")";
+ } else if ( is_object( $value ) && !method_exists( $value, '__toString' ) ) {
+ $value = "object(" . get_class( $value ) . ")";
+ }
+
$paramString .= "$key=$value";
}
}
const QoS_Atomic = 1; // integer; "all-or-nothing" job insertions
+ const MAX_ATTEMPTS = 3; // integer; number of times to try a job
+
/**
* @param $params array
*/
* If "random" is used, pop() will pick jobs in random order. This might be
* useful for improving concurrency depending on the queue storage medium.
* - claimTTL : If supported, the queue will recycle jobs that have been popped
- * but not acknowledged as completed after this many seconds.
+ * but not acknowledged as completed after this many seconds. Recycling
+ * of jobs simple means re-inserting them into the queue. Jobs can be
+ * attempted up to three times before being discarded.
*
* Queue classes should throw an exception if they do not support the options given.
*
const CACHE_TTL_SHORT = 30; // integer; seconds to cache info without re-validating
const CACHE_TTL_LONG = 300; // integer; seconds to cache info that is kept up to date
const MAX_AGE_PRUNE = 604800; // integer; seconds a job can live once claimed
- const MAX_ATTEMPTS = 3; // integer; number of times to try a job
const MAX_JOB_RANDOM = 2147483647; // integer; 2^31 - 1, used for job_random
const MAX_OFFSET = 255; // integer; maximum number of rows to skip
*/
// treat as a JSON object
- if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
+ if (is_array($var) && count($var) && (array_keys($var) !== range(0, count($var) - 1))) {
$this->indent++;
$properties = array_map(array($this, 'name_value'),
array_keys($var),
'lookahead_not_open_brace' => null,
'lookahead_not_closing_paren' => null,
'lookahead_for_closing_paren' => null,
+ 'lookahead_not_letter' => '(?![a-zA-Z])',
'lookbehind_not_letter' => '(?<![a-zA-Z])',
'chars_within_selector' => '[^\}]*?',
'noflip_annotation' => '\/\*\s*@noflip\s*\*\/',
$patterns['noflip_class'] = "/({$patterns['noflip_annotation']}{$patterns['chars_within_selector']}})/i";
$patterns['direction_ltr'] = "/({$patterns['direction']})ltr/i";
$patterns['direction_rtl'] = "/({$patterns['direction']})rtl/i";
- $patterns['left'] = "/{$patterns['lookbehind_not_letter']}(left){$patterns['lookahead_not_closing_paren']}{$patterns['lookahead_not_open_brace']}/i";
- $patterns['right'] = "/{$patterns['lookbehind_not_letter']}(right){$patterns['lookahead_not_closing_paren']}{$patterns['lookahead_not_open_brace']}/i";
+ $patterns['left'] = "/{$patterns['lookbehind_not_letter']}(left){$patterns['lookahead_not_letter']}{$patterns['lookahead_not_closing_paren']}{$patterns['lookahead_not_open_brace']}/i";
+ $patterns['right'] = "/{$patterns['lookbehind_not_letter']}(right){$patterns['lookahead_not_letter']}{$patterns['lookahead_not_closing_paren']}{$patterns['lookahead_not_open_brace']}/i";
$patterns['left_in_url'] = "/{$patterns['lookbehind_not_letter']}(left){$patterns['lookahead_for_closing_paren']}/i";
$patterns['right_in_url'] = "/{$patterns['lookbehind_not_letter']}(right){$patterns['lookahead_for_closing_paren']}/i";
$patterns['ltr_in_url'] = "/{$patterns['lookbehind_not_letter']}(ltr){$patterns['lookahead_for_closing_paren']}/i";
*
* @return string
*/
- public abstract function getObjectType();
+ abstract public function getObjectType();
/**
* @see SiteList::getNewOffset()
/* hook can return false, if we don't want the message to be emitted (Wikia BugId:7093) */
if ( wfRunHooks( 'LogEventsListShowLogExtract', array( &$s, $types, $page, $user, $param ) ) ) {
// $out can be either an OutputPage object or a String-by-reference
- if ( $out instanceof OutputPage ){
+ if ( $out instanceof OutputPage ) {
$out->addHTML( $s );
} else {
$out = $s;
->inContentLanguage()->escaped();
break;
case 'create2':
+ case 'byemail':
$text = wfMessage( 'newuserlog-create2-entry' )
->rawParams( $target )->inContentLanguage()->escaped();
break;
class NewUsersLogFormatter extends LogFormatter {
protected function getMessageParameters() {
$params = parent::getMessageParameters();
- if ( $this->entry->getSubtype() === 'create2' ) {
+ $subtype = $this->entry->getSubtype();
+ if ( $subtype === 'create2' || $subtype === 'byemail' ) {
if ( isset( $params[3] ) ) {
$target = User::newFromId( $params[3] );
} else {
}
public function getPreloadTitles() {
- if ( $this->entry->getSubtype() === 'create2' ) {
+ $subtype = $this->entry->getSubtype();
+ if ( $subtype === 'create2' || $subtype === 'byemail' ) {
//add the user talk to LinkBatch for the userLink
return array( Title::makeTitle( NS_USER_TALK, $this->entry->getTarget()->getText() ) );
}
* @param $filename String full path to file
* @return Array Array for storage in img_metadata.
*/
- static public function PNG ( $filename ) {
+ public static function PNG ( $filename ) {
$showXMP = function_exists( 'xml_parser_create_ns' );
$meta = new self();
* @param $filename string full path to file
* @return Array metadata array
*/
- static public function GIF ( $filename ) {
+ public static function GIF ( $filename ) {
$meta = new self();
$baseArray = GIFMetadataExtractor::getMetadata( $filename );
* @throws MWException
* @return Array The metadata.
*/
- static public function Tiff ( $filename ) {
+ public static function Tiff ( $filename ) {
if ( file_exists( $filename ) ) {
$byteOrder = self::getTiffByteOrder( $filename );
if ( !$byteOrder ) {
$image->djvuTextTree = false;
$tree = new SimpleXMLElement( $metadata );
if( $tree->getName() == 'mw-djvu' ) {
- foreach($tree->children() as $b){
+ foreach( $tree->children() as $b ) {
if( $b->getName() == 'DjVuTxt' ) {
$image->djvuTextTree = $b;
}
* @param $val String: The 8 digit news code.
* @return string The human readable form
*/
- static private function convertNewsCode( $val ) {
+ private static function convertNewsCode( $val ) {
if ( !preg_match( '/^\d{8}$/D', $val ) ) {
// Not a valid news code.
return $val;
if ( !$this->normaliseParams( $image, $params ) ) {
return false;
}
- $url = $script . '&' . wfArrayToCGI( $this->getScriptParams( $params ) );
+ $url = $script . '&' . wfArrayToCgi( $this->getScriptParams( $params ) );
if( $image->mustRender() || $params['width'] < $image->getWidth() ) {
return new ThumbnailImage( $image, $url, false, $params );
# Previous parameters:
# $file, $url, $width, $height, $path = false, $page = false
- if( is_array( $parameters ) ){
+ if( is_array( $parameters ) ) {
$defaults = array(
'page' => false
);
* @throws Exception if too big.
* @return String The chunk.
*/
- static private function read( $fh, $size ) {
+ private static function read( $fh, $size ) {
if ( $size > self::MAX_CHUNK_SIZE ) {
throw new Exception( __METHOD__ . ': Chunk size of ' . $size .
' too big. Max size is: ' . self::MAX_CHUNK_SIZE );
while( $keepReading ) {
if( $this->reader->localName == $name && $this->reader->namespaceURI == self::NS_SVG && $this->reader->nodeType == XmlReader::END_ELEMENT ) {
break;
- } elseif( $this->reader->nodeType == XmlReader::TEXT ){
+ } elseif( $this->reader->nodeType == XmlReader::TEXT ) {
$this->metadata[$metafield] = trim( $this->reader->value );
}
$keepReading = $this->reader->read();
}
}
-function benchTime(){
+function benchTime() {
$st = explode( ' ', microtime() );
return (float)$st[0] + (float)$st[1];
}
}
}
-function benchTime(){
+function benchTime() {
$st = explode( ' ', microtime() );
return (float)$st[0] + (float)$st[1];
}
abstract public function delete( $key, $time = 0 );
/**
- * Merge changes into the existing cache value (possibly creating a new one)
+ * Merge changes into the existing cache value (possibly creating a new one).
+ * The callback function returns the new value given the current value (possibly false),
+ * and takes the arguments: (this BagOStuff object, cache key, current value).
*
* @param $key string
* @param $callback closure Callback method to be executed
}
if ( $queries ) {
$where = array();
- foreach( $queries as $ns => $pages ){
+ foreach( $queries as $ns => $pages ) {
$where[] = $dbr->makeList(
array(
'page_namespace' => $ns,
}
- if(!$linkBatch->isEmpty()){
+ if( !$linkBatch->isEmpty() ) {
// construct query
$dbr = wfGetDB( DB_SLAVE );
$varRes = $dbr->select( 'page',
wfRunHooks( 'GetLinkColours', array( $linkcolour_ids, &$colours ) );
// rebuild the categories in original order (if there are replacements)
- if(count($varCategories)>0){
+ if( count( $varCategories ) > 0 ) {
$newCats = array();
$originalCats = $output->getCategories();
- foreach($originalCats as $cat => $sortkey){
+ foreach( $originalCats as $cat => $sortkey ) {
// make the replacement
- if( array_key_exists($cat,$varCategories) )
+ if( array_key_exists( $cat, $varCategories ) ) {
$newCats[$varCategories[$cat]] = $sortkey;
- else $newCats[$cat] = $sortkey;
+ } else {
+ $newCats[$cat] = $sortkey;
+ }
}
- $output->setCategoryLinks($newCats);
+ $output->setCategoryLinks( $newCats );
}
}
}
public function __construct( $conf = array() ) {
$this->mConf = $conf;
$this->mUrlProtocols = wfUrlProtocols();
- $this->mExtLinkBracketedRegex = '/\[(((?i)' . $this->mUrlProtocols . ')'.
- self::EXT_LINK_URL_CLASS.'+)\p{Zs}*([^\]\\x00-\\x08\\x0a-\\x1F]*?)\]/Su';
+ $this->mExtLinkBracketedRegex = '/\[(((?i)' . $this->mUrlProtocols . ')' .
+ self::EXT_LINK_URL_CLASS . '+)\p{Zs}*([^\]\\x00-\\x08\\x0a-\\x1F]*?)\]/Su';
if ( isset( $conf['preprocessorClass'] ) ) {
$this->mPreprocessorClass = $conf['preprocessorClass'];
} elseif ( defined( 'MW_COMPILED' ) ) {
*/
global $wgUseTidy, $wgAlwaysUseTidy;
- $fname = __METHOD__.'-' . wfGetCaller();
+ $fname = __METHOD__ . '-' . wfGetCaller();
wfProfileIn( __METHOD__ );
wfProfileIn( $fname );
"Preprocessor generated node count: " .
"{$this->mGeneratedPPNodeCount}/{$this->mOptions->getMaxGeneratedPPNodeCount()}\n" .
"Post-expand include size: {$this->mIncludeSizes['post-expand']}/$max bytes\n" .
- "Template argument size: {$this->mIncludeSizes['arg']}/$max bytes\n".
- "Highest expansion depth: {$this->mHighestExpansionDepth}/{$this->mOptions->getMaxPPExpandDepth()}\n".
+ "Template argument size: {$this->mIncludeSizes['arg']}/$max bytes\n" .
+ "Highest expansion depth: {$this->mHighestExpansionDepth}/{$this->mOptions->getMaxPPExpandDepth()}\n" .
$PFreport;
wfRunHooks( 'ParserLimitReport', array( $this, &$limitReport ) );
$text .= "\n<!-- \n$limitReport-->\n";
*
* @return string
*/
- static public function getRandomString() {
+ public static function getRandomString() {
return wfRandomString( 16 );
}
$line = trim( $outLine );
if ( $line === '' ) { # empty line, go to next line
- $out .= $outLine."\n";
+ $out .= $outLine . "\n";
continue;
}
$first_character = $line[0];
$matches = array();
- if ( preg_match( '/^(:*)\{\|(.*)$/', $line , $matches ) ) {
+ if ( preg_match( '/^(:*)\{\|(.*)$/', $line, $matches ) ) {
# First check if we are starting a new table
$indent_level = strlen( $matches[1] );
$attributes = $this->mStripState->unstripBoth( $matches[2] );
- $attributes = Sanitizer::fixTagAttributes( $attributes , 'table' );
-
- $outLine = str_repeat( '<dl><dd>' , $indent_level ) . "<table{$attributes}>";
- array_push( $td_history , false );
- array_push( $last_tag_history , '' );
- array_push( $tr_history , false );
- array_push( $tr_attributes , '' );
- array_push( $has_opened_tr , false );
+ $attributes = Sanitizer::fixTagAttributes( $attributes, 'table' );
+
+ $outLine = str_repeat( '<dl><dd>', $indent_level ) . "<table{$attributes}>";
+ array_push( $td_history, false );
+ array_push( $last_tag_history, '' );
+ array_push( $tr_history, false );
+ array_push( $tr_attributes, '' );
+ array_push( $has_opened_tr, false );
} elseif ( count( $td_history ) == 0 ) {
# Don't do any of the following
- $out .= $outLine."\n";
+ $out .= $outLine . "\n";
continue;
- } elseif ( substr( $line , 0 , 2 ) === '|}' ) {
+ } elseif ( substr( $line, 0, 2 ) === '|}' ) {
# We are ending a table
- $line = '</table>' . substr( $line , 2 );
+ $line = '</table>' . substr( $line, 2 );
$last_tag = array_pop( $last_tag_history );
if ( !array_pop( $has_opened_tr ) ) {
$line = "</{$last_tag}>{$line}";
}
array_pop( $tr_attributes );
- $outLine = $line . str_repeat( '</dd></dl>' , $indent_level );
- } elseif ( substr( $line , 0 , 2 ) === '|-' ) {
+ $outLine = $line . str_repeat( '</dd></dl>', $indent_level );
+ } elseif ( substr( $line, 0, 2 ) === '|-' ) {
# Now we have a table row
$line = preg_replace( '#^\|-+#', '', $line );
$line = '';
$last_tag = array_pop( $last_tag_history );
array_pop( $has_opened_tr );
- array_push( $has_opened_tr , true );
+ array_push( $has_opened_tr, true );
if ( array_pop( $tr_history ) ) {
$line = '</tr>';
}
$outLine = $line;
- array_push( $tr_history , false );
- array_push( $td_history , false );
- array_push( $last_tag_history , '' );
- } elseif ( $first_character === '|' || $first_character === '!' || substr( $line , 0 , 2 ) === '|+' ) {
+ array_push( $tr_history, false );
+ array_push( $td_history, false );
+ array_push( $last_tag_history, '' );
+ } elseif ( $first_character === '|' || $first_character === '!' || substr( $line, 0, 2 ) === '|+' ) {
# This might be cell elements, td, th or captions
- if ( substr( $line , 0 , 2 ) === '|+' ) {
+ if ( substr( $line, 0, 2 ) === '|+' ) {
$first_character = '+';
- $line = substr( $line , 1 );
+ $line = substr( $line, 1 );
}
- $line = substr( $line , 1 );
+ $line = substr( $line, 1 );
if ( $first_character === '!' ) {
- $line = str_replace( '!!' , '||' , $line );
+ $line = str_replace( '!!', '||', $line );
}
# Split up multiple cells on the same line.
# FIXME : This can result in improper nesting of tags processed
# by earlier parser steps, but should avoid splitting up eg
# attribute values containing literal "||".
- $cells = StringUtils::explodeMarkup( '||' , $line );
+ $cells = StringUtils::explodeMarkup( '||', $line );
$outLine = '';
if ( !array_pop( $tr_history ) ) {
$previous = "<tr{$tr_after}>\n";
}
- array_push( $tr_history , true );
- array_push( $tr_attributes , '' );
+ array_push( $tr_history, true );
+ array_push( $tr_attributes, '' );
array_pop( $has_opened_tr );
- array_push( $has_opened_tr , true );
+ array_push( $has_opened_tr, true );
}
$last_tag = array_pop( $last_tag_history );
$last_tag = '';
}
- array_push( $last_tag_history , $last_tag );
+ array_push( $last_tag_history, $last_tag );
# A cell could contain both parameters and data
- $cell_data = explode( '|' , $cell , 2 );
+ $cell_data = explode( '|', $cell, 2 );
# Bug 553: Note that a '|' inside an invalid link should not
# be mistaken as delimiting cell parameters
$cell = "{$previous}<{$last_tag}>{$cell_data[0]}";
} else {
$attributes = $this->mStripState->unstripBoth( $cell_data[0] );
- $attributes = Sanitizer::fixTagAttributes( $attributes , $last_tag );
+ $attributes = Sanitizer::fixTagAttributes( $attributes, $last_tag );
$cell = "{$previous}<{$last_tag}{$attributes}>{$cell_data[1]}";
}
$outLine .= $cell;
- array_push( $td_history , true );
+ array_push( $td_history, true );
}
}
$out .= $outLine . "\n";
# replaceInternalLinks may sometimes leave behind
# absolute URLs, which have to be masked to hide them from replaceExternalLinks
- $text = str_replace( $this->mUniqPrefix.'NOPARSE', '', $text );
+ $text = str_replace( $this->mUniqPrefix . 'NOPARSE', '', $text );
$text = $this->doMagicLinks( $text );
$text = $this->formatHeadings( $text, $origText, $isMain );
$CssClass = 'mw-magiclink-pmid';
$id = $m[4];
} else {
- throw new MWException( __METHOD__.': unrecognised match type "' .
+ throw new MWException( __METHOD__ . ': unrecognised match type "' .
substr( $m[0], 0, 20 ) . '"' );
}
$url = wfMessage( $urlmsg, $id )->inContentLanguage()->text();
wfProfileIn( __METHOD__ );
for ( $i = 6; $i >= 1; --$i ) {
$h = str_repeat( '=', $i );
- $text = preg_replace( "/^$h(.+)$h\\s*$/m",
- "<h$i>\\1</h$i>", $text );
+ $text = preg_replace( "/^$h(.+)$h\\s*$/m", "<h$i>\\1</h$i>", $text );
}
wfProfileOut( __METHOD__ );
return $text;
foreach ( $lines as $line ) {
$outtext .= $this->doQuotes( $line ) . "\n";
}
- $outtext = substr( $outtext, 0,-1 );
+ $outtext = substr( $outtext, 0, -1 );
wfProfileOut( __METHOD__ );
return $outtext;
}
} elseif ( $state === 'ib' ) {
$output .= '</b></i><b>'; $state = 'b';
} elseif ( $state === 'both' ) {
- $output .= '<b><i>'.$buffer.'</i>'; $state = 'b';
+ $output .= '<b><i>' . $buffer . '</i>'; $state = 'b';
} else { # $state can be 'b' or ''
$output .= '<i>'; $state .= 'i';
}
} elseif ( $state === 'ib' ) {
$output .= '</b>'; $state = 'i';
} elseif ( $state === 'both' ) {
- $output .= '<i><b>'.$buffer.'</b>'; $state = 'i';
+ $output .= '<i><b>' . $buffer . '</b>'; $state = 'i';
} else { # $state can be 'i' or ''
$output .= '<b>'; $state .= 'b';
}
} elseif ( $state === 'ib' ) {
$output .= '</b></i>'; $state = '';
} elseif ( $state === 'both' ) {
- $output .= '<i><b>'.$buffer.'</b></i>'; $state = '';
+ $output .= '<i><b>' . $buffer . '</b></i>'; $state = '';
} else { # ($state == '')
$buffer = ''; $state = 'both';
}
}
# There might be lonely ''''', so make sure we have a buffer
if ( $state === 'both' && $buffer ) {
- $output .= '<b><i>'.$buffer.'</i></b>';
+ $output .= '<b><i>' . $buffer . '</i></b>';
}
return $output;
}
function replaceInternalLinks2( &$s ) {
wfProfileIn( __METHOD__ );
- wfProfileIn( __METHOD__.'-setup' );
+ wfProfileIn( __METHOD__ . '-setup' );
static $tc = FALSE, $e1, $e1_img;
# the % is needed to support urlencoded titles as well
if ( !$tc ) {
}
if ( is_null( $this->mTitle ) ) {
- wfProfileOut( __METHOD__.'-setup' );
+ wfProfileOut( __METHOD__ . '-setup' );
wfProfileOut( __METHOD__ );
- throw new MWException( __METHOD__.": \$this->mTitle is null\n" );
+ throw new MWException( __METHOD__ . ": \$this->mTitle is null\n" );
}
$nottalk = !$this->mTitle->isTalkPage();
$selflink = array( $this->mTitle->getPrefixedText() );
}
$useSubpages = $this->areSubpagesAllowed();
- wfProfileOut( __METHOD__.'-setup' );
+ wfProfileOut( __METHOD__ . '-setup' );
# Loop for each link
for ( ; $line !== false && $line !== null ; $a->next(), $line = $a->current() ) {
}
if ( $useLinkPrefixExtension ) {
- wfProfileIn( __METHOD__.'-prefixhandling' );
+ wfProfileIn( __METHOD__ . '-prefixhandling' );
if ( preg_match( $e2, $s, $m ) ) {
$prefix = $m[2];
$s = $m[1];
} else {
- $prefix='';
+ $prefix = '';
}
# first link
if ( $first_prefix ) {
$prefix = $first_prefix;
$first_prefix = false;
}
- wfProfileOut( __METHOD__.'-prefixhandling' );
+ wfProfileOut( __METHOD__ . '-prefixhandling' );
}
$might_be_img = false;
- wfProfileIn( __METHOD__."-e1" );
+ wfProfileIn( __METHOD__ . "-e1" );
if ( preg_match( $e1, $line, $m ) ) { # page with normal text or alt
$text = $m[2];
# If we get a ] at the beginning of $m[3] that means we have a link that's something like:
$trail = "";
} else { # Invalid form; output directly
$s .= $prefix . '[[' . $line ;
- wfProfileOut( __METHOD__."-e1" );
+ wfProfileOut( __METHOD__ . "-e1" );
continue;
}
- wfProfileOut( __METHOD__."-e1" );
- wfProfileIn( __METHOD__."-misc" );
+ wfProfileOut( __METHOD__ . "-e1" );
+ wfProfileIn( __METHOD__ . "-misc" );
# Don't allow internal links to pages containing
# PROTO: where PROTO is a valid URL protocol; these
# should be external links.
if ( preg_match( '/^(?i:' . $this->mUrlProtocols . ')/', $m[1] ) ) {
$s .= $prefix . '[[' . $line ;
- wfProfileOut( __METHOD__."-misc" );
+ wfProfileOut( __METHOD__ . "-misc" );
continue;
}
$link = substr( $link, 1 );
}
- wfProfileOut( __METHOD__."-misc" );
- wfProfileIn( __METHOD__."-title" );
+ wfProfileOut( __METHOD__ . "-misc" );
+ wfProfileIn( __METHOD__ . "-title" );
$nt = Title::newFromText( $this->mStripState->unstripNoWiki( $link ) );
if ( $nt === null ) {
$s .= $prefix . '[[' . $line;
- wfProfileOut( __METHOD__."-title" );
+ wfProfileOut( __METHOD__ . "-title" );
continue;
}
$ns = $nt->getNamespace();
$iw = $nt->getInterWiki();
- wfProfileOut( __METHOD__."-title" );
+ wfProfileOut( __METHOD__ . "-title" );
if ( $might_be_img ) { # if this is actually an invalid link
- wfProfileIn( __METHOD__."-might_be_img" );
+ wfProfileIn( __METHOD__ . "-might_be_img" );
if ( $ns == NS_FILE && $noforce ) { # but might be an image
$found = false;
while ( true ) {
$holders->merge( $this->replaceInternalLinks2( $text ) );
$s .= "{$prefix}[[$link|$text";
# note: no $trail, because without an end, there *is* no trail
- wfProfileOut( __METHOD__."-might_be_img" );
+ wfProfileOut( __METHOD__ . "-might_be_img" );
continue;
}
} else { # it's not an image, so output it raw
$s .= "{$prefix}[[$link|$text";
# note: no $trail, because without an end, there *is* no trail
- wfProfileOut( __METHOD__."-might_be_img" );
+ wfProfileOut( __METHOD__ . "-might_be_img" );
continue;
}
- wfProfileOut( __METHOD__."-might_be_img" );
+ wfProfileOut( __METHOD__ . "-might_be_img" );
}
$wasblank = ( $text == '' );
# Link not escaped by : , create the various objects
if ( $noforce ) {
# Interwikis
- wfProfileIn( __METHOD__."-interwiki" );
+ wfProfileIn( __METHOD__ . "-interwiki" );
if ( $iw && $this->mOptions->getInterwikiMagic() && $nottalk && Language::fetchLanguageName( $iw, null, 'mw' ) ) {
// XXX: the above check prevents links to sites with identifiers that are not language codes
$s = rtrim( $s . $prefix );
$s .= trim( $trail, "\n" ) == '' ? '': $prefix . $trail;
- wfProfileOut( __METHOD__."-interwiki" );
+ wfProfileOut( __METHOD__ . "-interwiki" );
continue;
}
- wfProfileOut( __METHOD__."-interwiki" );
+ wfProfileOut( __METHOD__ . "-interwiki" );
if ( $ns == NS_FILE ) {
- wfProfileIn( __METHOD__."-image" );
+ wfProfileIn( __METHOD__ . "-image" );
if ( !wfIsBadImage( $nt->getDBkey(), $this->mTitle ) ) {
if ( $wasblank ) {
# if no parameters were passed, $text
} else {
$s .= $prefix . $trail;
}
- wfProfileOut( __METHOD__."-image" );
+ wfProfileOut( __METHOD__ . "-image" );
continue;
}
if ( $ns == NS_CATEGORY ) {
- wfProfileIn( __METHOD__."-category" );
+ wfProfileIn( __METHOD__ . "-category" );
$s = rtrim( $s . "\n" ); # bug 87
if ( $wasblank ) {
*/
$s .= trim( $prefix . $trail, "\n" ) == '' ? '' : $prefix . $trail;
- wfProfileOut( __METHOD__."-category" );
+ wfProfileOut( __METHOD__ . "-category" );
continue;
}
}
# NS_MEDIA is a pseudo-namespace for linking directly to a file
# @todo FIXME: Should do batch file existence checks, see comment below
if ( $ns == NS_MEDIA ) {
- wfProfileIn( __METHOD__."-media" );
+ wfProfileIn( __METHOD__ . "-media" );
# Give extensions a chance to select the file revision for us
$options = array();
$descQuery = false;
# Cloak with NOPARSE to avoid replacement in replaceExternalLinks
$s .= $prefix . $this->armorLinks(
Linker::makeMediaLinkFile( $nt, $file, $text ) ) . $trail;
- wfProfileOut( __METHOD__."-media" );
+ wfProfileOut( __METHOD__ . "-media" );
continue;
}
- wfProfileIn( __METHOD__."-always_known" );
+ wfProfileIn( __METHOD__ . "-always_known" );
# Some titles, such as valid special pages or files in foreign repos, should
# be shown as bluelinks even though they're not included in the page table
#
# Links will be added to the output link list after checking
$s .= $holders->makeHolder( $nt, $text, array(), $trail, $prefix );
}
- wfProfileOut( __METHOD__."-always_known" );
+ wfProfileOut( __METHOD__ . "-always_known" );
}
wfProfileOut( __METHOD__ );
return $holders;
} else {
return '<!-- ERR 3 -->';
}
- return $text."\n";
+ return $text . "\n";
}
/**#@-*/
# If we have no prefixes, go to paragraph mode.
if ( 0 == $prefixLength ) {
- wfProfileIn( __METHOD__."-paragraph" );
+ wfProfileIn( __METHOD__ . "-paragraph" );
# No prefix (not in list)--go to paragraph mode
# XXX: use a stack for nestable elements like span, table and div
$openmatch = preg_match('/(?:<table|<blockquote|<h1|<h2|<h3|<h4|<h5|<h6|<pre|<tr|<p|<ul|<ol|<dl|<li|<\\/tr|<\\/td|<\\/th)/iS', $t );
$closematch = preg_match(
'/(?:<\\/table|<\\/blockquote|<\\/h1|<\\/h2|<\\/h3|<\\/h4|<\\/h5|<\\/h6|'.
- '<td|<th|<\\/?div|<hr|<\\/pre|<\\/p|'.$this->mUniqPrefix.'-pre|<\\/li|<\\/ul|<\\/ol|<\\/dl|<\\/?center)/iS', $t );
+ '<td|<th|<\\/?div|<hr|<\\/pre|<\\/p|'.$this->mUniqPrefix . '-pre|<\\/li|<\\/ul|<\\/ol|<\\/dl|<\\/?center)/iS', $t );
if ( $openmatch or $closematch ) {
$paragraphStack = false;
# TODO bug 5718: paragraph closed
# pre
if ( $this->mLastSection !== 'pre' ) {
$paragraphStack = false;
- $output .= $this->closeParagraph().'<pre>';
+ $output .= $this->closeParagraph() . '<pre>';
$this->mLastSection = 'pre';
}
$t = substr( $t, 1 );
# paragraph
if ( trim( $t ) === '' ) {
if ( $paragraphStack ) {
- $output .= $paragraphStack.'<br />';
+ $output .= $paragraphStack . '<br />';
$paragraphStack = false;
$this->mLastSection = 'p';
} else {
$paragraphStack = false;
$this->mLastSection = 'p';
} elseif ( $this->mLastSection !== 'p' ) {
- $output .= $this->closeParagraph().'<p>';
+ $output .= $this->closeParagraph() . '<p>';
$this->mLastSection = 'p';
}
}
}
}
- wfProfileOut( __METHOD__."-paragraph" );
+ wfProfileOut( __METHOD__ . "-paragraph" );
}
# somewhere above we forget to get out of pre block (bug 785)
if ( $preCloseMatch && $this->mInPre ) {
$this->mInPre = false;
}
if ( $paragraphStack === false ) {
- $output .= $t."\n";
+ $output .= $t . "\n";
}
}
while ( $prefixLength ) {
if ( $c === ">" ) {
$stack--;
if ( $stack < 0 ) {
- wfDebug( __METHOD__.": Invalid input; too many close tags\n" );
+ wfDebug( __METHOD__ . ": Invalid input; too many close tags\n" );
wfProfileOut( __METHOD__ );
return false;
}
}
}
if ( $stack > 0 ) {
- wfDebug( __METHOD__.": Invalid input; not enough close tags (stack $stack, state $state)\n" );
+ wfDebug( __METHOD__ . ": Invalid input; not enough close tags (stack $stack, state $state)\n" );
wfProfileOut( __METHOD__ );
return false;
}
$value = $this->getRevisionUser();
break;
case 'namespace':
- $value = str_replace( '_',' ',$wgContLang->getNsText( $this->mTitle->getNamespace() ) );
+ $value = str_replace( '_', ' ', $wgContLang->getNsText( $this->mTitle->getNamespace() ) );
break;
case 'namespacee':
$value = wfUrlencode( $wgContLang->getNsText( $this->mTitle->getNamespace() ) );
$value = $this->mTitle->getNamespace();
break;
case 'talkspace':
- $value = $this->mTitle->canTalk() ? str_replace( '_',' ',$this->mTitle->getTalkNsText() ) : '';
+ $value = $this->mTitle->canTalk() ? str_replace( '_', ' ', $this->mTitle->getTalkNsText() ) : '';
break;
case 'talkspacee':
$value = $this->mTitle->canTalk() ? wfUrlencode( $this->mTitle->getTalkNsText() ) : '';
if ( $frame === false ) {
$frame = $this->getPreprocessor()->newFrame();
} elseif ( !( $frame instanceof PPFrame ) ) {
- wfDebug( __METHOD__." called using plain parameters instead of a PPFrame instance. Creating custom frame.\n" );
+ wfDebug( __METHOD__ . " called using plain parameters instead of a PPFrame instance. Creating custom frame.\n" );
$frame = $this->getPreprocessor()->newCustomFrame( $frame );
}
function braceSubstitution( $piece, $frame ) {
global $wgContLang;
wfProfileIn( __METHOD__ );
- wfProfileIn( __METHOD__.'-setup' );
+ wfProfileIn( __METHOD__ . '-setup' );
# Flags
$found = false; # $text has been filled
# $args is a list of argument nodes, starting from index 0, not including $part1
# @todo FIXME: If piece['parts'] is null then the call to getLength() below won't work b/c this $args isn't an object
$args = ( null == $piece['parts'] ) ? array() : $piece['parts'];
- wfProfileOut( __METHOD__.'-setup' );
+ wfProfileOut( __METHOD__ . '-setup' );
$titleProfileIn = null; // profile templates
# SUBST
- wfProfileIn( __METHOD__.'-modifiers' );
+ wfProfileIn( __METHOD__ . '-modifiers' );
if ( !$found ) {
$substMatch = $this->mSubstWords->matchStartAndRemove( $part1 );
$forceRawInterwiki = true;
}
}
- wfProfileOut( __METHOD__.'-modifiers' );
+ wfProfileOut( __METHOD__ . '-modifiers' );
# Parser functions
if ( !$found ) {
}
} elseif ( MWNamespace::isNonincludable( $title->getNamespace() ) ) {
$found = false; # access denied
- wfDebug( __METHOD__.": template inclusion denied for " . $title->getPrefixedDBkey() );
+ wfDebug( __METHOD__ . ": template inclusion denied for " . $title->getPrefixedDBkey() );
} else {
list( $text, $title ) = $this->getTemplateDom( $title );
if ( $text !== false ) {
$text = '<span class="error">'
. wfMessage( 'parser-template-loop-warning', $titleText )->inContentLanguage()->text()
. '</span>';
- wfDebug( __METHOD__.": template loop broken at '$titleText'\n" );
+ wfDebug( __METHOD__ . ": template loop broken at '$titleText'\n" );
}
wfProfileOut( __METHOD__ . '-loadtpl' );
}
} elseif ( $markerType === 'general' ) {
$this->mStripState->addGeneral( $marker, $output );
} else {
- throw new MWException( __METHOD__.': invalid marker type' );
+ throw new MWException( __METHOD__ . ': invalid marker type' );
}
return $marker;
}
*/
public function addTrackingCategory( $msg ) {
if ( $this->mTitle->getNamespace() === NS_SPECIAL ) {
- wfDebug( __METHOD__.": Not adding tracking category $msg to special page!\n" );
+ wfDebug( __METHOD__ . ": Not adding tracking category $msg to special page!\n" );
return false;
}
// Important to parse with correct title (bug 31469)
$this->mOutput->addCategory( $containerCategory->getDBkey(), $this->getDefaultSort() );
return true;
} else {
- wfDebug( __METHOD__.": [[MediaWiki:$msg]] is not a valid title!\n" );
+ wfDebug( __METHOD__ . ": [[MediaWiki:$msg]] is not a valid title!\n" );
return false;
}
}
// of data, but put the headline hint inside a content block because the language converter is supposed to
// be able to convert that piece of data.
$editlink = '<mw:editsection page="' . htmlspecialchars($editlinkArgs[0]);
- $editlink .= '" section="' . htmlspecialchars($editlinkArgs[1]) .'"';
+ $editlink .= '" section="' . htmlspecialchars($editlinkArgs[1]) . '"';
if ( isset($editlinkArgs[2]) ) {
$editlink .= '>' . $editlinkArgs[2] . '</mw:editsection>';
} else {
'~~~' => $sigText
) );
- # Context links ("pipe trick"): [[|name]] and [[name (context)|]]
+ # Context links ("pipe tricks"): [[|name]] and [[name (context)|]]
$tc = '[' . Title::legalChars() . ']';
$nc = '[ _0-9A-Za-z\x80-\xff-]'; # Namespaces can use non-ascii!
- $p1 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\))\\|]]/"; # [[ns:page (context)|]]
- $p4 = "/\[\[(:?$nc+:|:|)($tc+?)( ?($tc+))\\|]]/"; # [[ns:page(context)|]] (double-width brackets, added in r40257)
- $p3 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\)|)((?:, |,)$tc+|)\\|]]/"; # [[ns:page (context), context|]]
- $p2 = "/\[\[\\|($tc+)]]/"; # [[|page]]
+ $p1 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\))\\|]]/"; # [[ns:page (context)|]]
+ $p4 = "/\[\[(:?$nc+:|:|)($tc+?)( ?($tc+))\\|]]/"; # [[ns:page(context)|]] (double-width brackets, added in r40257)
+ $p3 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\)|)((?:, |,)$tc+|)\\|]]/"; # [[ns:page (context), context|]] (using either single or double-width comma)
+ $p2 = "/\[\[\\|($tc+)]]/"; # [[|page]] (reverse pipe trick: add context from page title)
# try $p1 first, to turn "[[A, B (C)|]]" into "[[A, B (C)|A, B]]"
$text = preg_replace( $p1, '[[\\1\\2\\3|\\2]]', $text );
} else {
# Failed to validate; fall back to the default
$nickname = $username;
- wfDebug( __METHOD__.": $username has bad XML tags in signature.\n" );
+ wfDebug( __METHOD__ . ": $username has bad XML tags in signature.\n" );
}
}
# Add to function cache
$mw = MagicWord::get( $id );
if ( !$mw )
- throw new MWException( __METHOD__.'() expecting a magic word identifier.' );
+ throw new MWException( __METHOD__ . '() expecting a magic word identifier.' );
$synonyms = $mw->getSynonyms();
$sensitive = intval( $mw->isCaseSensitive() );
if ( $match = $magicWordAlt->matchVariableStartToEnd( $parameterMatch ) ) {
$alt = $this->stripAltText( $match, false );
}
- elseif( $match = $magicWordLink->matchVariableStartToEnd( $parameterMatch ) ){
- $link = strip_tags($this->replaceLinkHoldersText($match));
+ elseif( $match = $magicWordLink->matchVariableStartToEnd( $parameterMatch ) ) {
+ $linkValue = strip_tags( $this->replaceLinkHoldersText( $match ) );
$chars = self::EXT_LINK_URL_CLASS;
$prots = $this->mUrlProtocols;
//check to see if link matches an absolute url, if not then it must be a wiki link.
- if(!preg_match( "/^($prots)$chars+$/u", $link)){
- $localLinkTitle = Title::newFromText($link);
- $link = $localLinkTitle->getLocalURL();
+ if ( preg_match( "/^($prots)$chars+$/u", $linkValue ) ) {
+ $link = $linkValue;
+ } else {
+ $localLinkTitle = Title::newFromText( $linkValue );
+ if ( $localLinkTitle !== null ) {
+ $link = $localLinkTitle->getLocalURL();
+ }
}
}
else {
$label = substr( $label, 1 );
}
- $ig->add( $title, $label, $alt ,$link);
+ $ig->add( $title, $label, $alt, $link );
}
return $ig->toHTML();
}
*/
function unserializeHalfParsedText( $data ) {
if ( !isset( $data['version'] ) || $data['version'] != self::HALF_PARSED_VERSION ) {
- throw new MWException( __METHOD__.': invalid version' );
+ throw new MWException( __METHOD__ . ': invalid version' );
}
# First, extract the strip state.
private $mIndexPolicy = ''; # 'index' or 'noindex'? Any other value will result in no change.
private $mAccessedOptions = array(); # List of ParserOptions (stored in the keys)
private $mSecondaryDataUpdates = array(); # List of DataUpdate, used to save info from the page somewhere else.
+ private $mExtensionData = array(); # extra data used by extensions
const EDITSECTION_REGEX = '#<(?:mw:)?editsection page="(.*?)" section="(.*?)"(?:/>|>(.*?)(</(?:mw:)?editsection>))#';
* @param $title Title object
* @param $id Mixed: optional known page_id so we can skip the lookup
*/
- function addLink( $title, $id = null ) {
+ function addLink( Title $title, $id = null ) {
if ( $title->isExternal() ) {
// Don't record interwikis in pagelinks
$this->addInterwikiLink( $title );
* Wikimedia Commons.
* This is not actually implemented, yet but would be pretty cool.
*
- * Do not use setProperty() to set a property which is only used in a
- * context where the ParserOutput object itself is already available, for
- * example a normal page view. There is no need to save such a property
+ * @note: Do not use setProperty() to set a property which is only used
+ * in a context where the ParserOutput object itself is already available,
+ * for example a normal page view. There is no need to save such a property
* in the database since it the text is already parsed. You can just hook
* OutputPageParserOutput and get your data out of the ParserOutput object.
*
- * If you are writing an extension where you want to set
- * a property in the parser which is used by an OutputPageParserOutput hook,
- * just use a custom variable within the ParserOutput object:
+ * If you are writing an extension where you want to set a property in the
+ * parser which is used by an OutputPageParserOutput hook, you have to
+ * associate the extension data directly with the ParserOutput object.
+ * Since MediaWiki 1.21, you can use setExtensionData() to do this:
+ *
+ * @par Example:
+ * @code
+ * $parser->getOutput()->setExtensionData( 'my_ext_foo', '...' );
+ * @endcode
+ *
+ * And then later, in OutputPageParserOutput or similar:
+ *
+ * @par Example:
+ * @code
+ * $output->getExtensionData( 'my_ext_foo' );
+ * @endcode
+ *
+ * In MediaWiki 1.20 and older, you have to use a custom member variable
+ * within the ParserOutput object:
*
* @par Example:
* @code
$this->mProperties[$name] = $value;
}
- public function getProperty( $name ){
+ public function getProperty( $name ) {
return isset( $this->mProperties[$name] ) ? $this->mProperties[$name] : false;
}
* into account to produce this output or false if not available.
* @return mixed Array
*/
- public function getUsedOptions() {
+ public function getUsedOptions() {
if ( !isset( $this->mAccessedOptions ) ) {
return array();
}
return array_keys( $this->mAccessedOptions );
- }
+ }
- /**
- * Callback passed by the Parser to the ParserOptions to keep track of which options are used.
- * @access private
- */
- function recordOption( $option ) {
- $this->mAccessedOptions[$option] = true;
- }
+ /**
+ * Callback passed by the Parser to the ParserOptions to keep track of which options are used.
+ * @access private
+ */
+ function recordOption( $option ) {
+ $this->mAccessedOptions[$option] = true;
+ }
/**
* Adds an update job to the output. Any update jobs added to the output will eventually bexecuted in order to
$linksUpdate = new LinksUpdate( $title, $this, $recursive );
- if ( $this->mSecondaryDataUpdates === array() ) {
- return array( $linksUpdate );
+ return array_merge( $this->mSecondaryDataUpdates, array( $linksUpdate ) );
+ }
+
+ /**
+ * Attaches arbitrary data to this ParserObject. This can be used to store some information in
+ * the ParserOutput object for later use during page output. The data will be cached along with
+ * the ParserOutput object, but unlike data set using setProperty(), it is not recorded in the
+ * database.
+ *
+ * This method is provided to overcome the unsafe practice of attaching extra information to a
+ * ParserObject by directly assigning member variables.
+ *
+ * To use setExtensionData() to pass extension information from a hook inside the parser to a
+ * hook in the page output, use this in the parser hook:
+ *
+ * @par Example:
+ * @code
+ * $parser->getOutput()->setExtensionData( 'my_ext_foo', '...' );
+ * @endcode
+ *
+ * And then later, in OutputPageParserOutput or similar:
+ *
+ * @par Example:
+ * @code
+ * $output->getExtensionData( 'my_ext_foo' );
+ * @endcode
+ *
+ * In MediaWiki 1.20 and older, you have to use a custom member variable
+ * within the ParserOutput object:
+ *
+ * @par Example:
+ * @code
+ * $parser->getOutput()->my_ext_foo = '...';
+ * @endcode
+ *
+ * @since 1.21
+ *
+ * @param string $key The key for accessing the data. Extensions should take care to avoid
+ * conflicts in naming keys. It is suggested to use the extension's name as a
+ * prefix.
+ *
+ * @param mixed $value The value to set. Setting a value to null is equivalent to removing
+ * the value.
+ */
+ public function setExtensionData( $key, $value ) {
+ if ( $value === null ) {
+ unset( $this->mExtensionData[$key] );
} else {
- $updates = array_merge( $this->mSecondaryDataUpdates, array( $linksUpdate ) );
+ $this->mExtensionData[$key] = $value;
}
+ }
- return $updates;
- }
+ /**
+ * Gets extensions data previously attached to this ParserOutput using setExtensionData().
+ * Typically, such data would be set while parsing the page, e.g. by a parser function.
+ *
+ * @since 1.21
+ *
+ * @param string $key The key to look up.
+ *
+ * @return mixed The value previously set for the given key using setExtensionData( $key ),
+ * or null if no value was set for this key.
+ */
+ public function getExtensionData( $key ) {
+ if ( isset( $this->mExtensionData[$key] ) ) {
+ return $this->mExtensionData[$key];
+ }
+
+ return null;
+ }
}
*/
public function profileIn( $functionname ) {
global $wgDebugFunctionEntry;
- if( $wgDebugFunctionEntry ){
+ if( $wgDebugFunctionEntry ) {
$this->debug( str_repeat( ' ', count( $this->mWorkStack ) ) . 'Entering ' . $functionname . "\n" );
}
$memory = memory_get_usage();
$time = $this->getTime();
- if( $wgDebugFunctionEntry ){
+ if( $wgDebugFunctionEntry ) {
$this->debug( str_repeat( ' ', count( $this->mWorkStack ) - 1 ) . 'Exiting ' . $functionname . "\n" );
}
if (!$bit) {
$this->debug("Profiling error, !\$bit: $functionname\n");
} else {
- //if( $wgDebugProfiling ){
- if( $functionname == 'close' ){
+ //if( $wgDebugProfiling ) {
+ if( $functionname == 'close' ) {
$message = "Profile section ended by close(): {$bit[0]}";
$this->debug( "$message\n" );
$this->mStack[] = array( $message, 0, 0.0, 0, 0.0, 0 );
}
- elseif( $bit[0] != $functionname ){
+ elseif( $bit[0] != $functionname ) {
$message = "Profiling error: in({$bit[0]}), out($functionname)";
$this->debug( "$message\n" );
$this->mStack[] = array( $message, 0, 0.0, 0, 0.0, 0 );
* Close opened profiling sections
*/
public function close() {
- while( count( $this->mWorkStack ) ){
+ while( count( $this->mWorkStack ) ) {
$this->profileOut( 'close' );
}
}
global $wgDebugFunctionEntry, $wgProfileCallTree;
$wgDebugFunctionEntry = false;
- if( !count( $this->mStack ) && !count( $this->mCollated ) ){
+ if( !count( $this->mStack ) && !count( $this->mCollated ) ) {
return "No profiling output\n";
}
* @return array
*/
function remapCallTree( $stack ) {
- if( count( $stack ) < 2 ){
+ if( count( $stack ) < 2 ) {
return $stack;
}
$outputs = array ();
- for( $max = count( $stack ) - 1; $max > 0; ){
+ for( $max = count( $stack ) - 1; $max > 0; ) {
/* Find all items under this entry */
$level = $stack[$max][1];
$working = array ();
- for( $i = $max -1; $i >= 0; $i-- ){
- if( $stack[$i][1] > $level ){
+ for( $i = $max -1; $i >= 0; $i-- ) {
+ if( $stack[$i][1] > $level ) {
$working[] = $stack[$i];
} else {
break;
}
$working = $this->remapCallTree( array_reverse( $working ) );
$output = array();
- foreach( $working as $item ){
+ foreach( $working as $item ) {
array_push( $output, $item );
}
array_unshift( $output, $stack[$max] );
array_unshift( $outputs, $output );
}
$final = array();
- foreach( $outputs as $output ){
- foreach( $output as $item ){
+ foreach( $outputs as $output ) {
+ foreach( $output as $item ) {
$final[] = $item;
}
}
# First, subtract the overhead!
$overheadTotal = $overheadMemory = $overheadInternal = array();
- foreach( $this->mStack as $entry ){
+ foreach( $this->mStack as $entry ) {
$fname = $entry[0];
$start = $entry[2];
$end = $entry[4];
$elapsed = $end - $start;
$memory = $entry[5] - $entry[3];
- if( $fname == '-overhead-total' ){
+ if( $fname == '-overhead-total' ) {
$overheadTotal[] = $elapsed;
$overheadMemory[] = $memory;
}
- elseif( $fname == '-overhead-internal' ){
+ elseif( $fname == '-overhead-internal' ) {
$overheadInternal[] = $elapsed;
}
}
$overheadInternal = $overheadInternal ? array_sum( $overheadInternal ) / count( $overheadInternal ) : 0;
# Collate
- foreach( $this->mStack as $index => $entry ){
+ foreach( $this->mStack as $index => $entry ) {
$fname = $entry[0];
$start = $entry[2];
$end = $entry[4];
$memory = $entry[5] - $entry[3];
$subcalls = $this->calltreeCount( $this->mStack, $index );
- if( !preg_match( '/^-overhead/', $fname ) ){
+ if( !preg_match( '/^-overhead/', $fname ) ) {
# Adjust for profiling overhead (except special values with elapsed=0
if( $elapsed ) {
$elapsed -= $overheadInternal;
}
}
- if( !array_key_exists( $fname, $this->mCollated ) ){
+ if( !array_key_exists( $fname, $this->mCollated ) ) {
$this->mCollated[$fname] = 0;
$this->mCalls[$fname] = 0;
$this->mMemory[$fname] = 0;
$total = isset( $this->mCollated['-total'] ) ? $this->mCollated['-total'] : 0;
- foreach( $this->mCollated as $fname => $elapsed ){
+ foreach( $this->mCollated as $fname => $elapsed ) {
$calls = $this->mCalls[$fname];
$percent = $total ? 100. * $elapsed / $total : 0;
$memory = $this->mMemory[$fname];
- $prof .= sprintf($format, substr($fname, 0, $nameWidth), $calls, (float) ($elapsed * 1000), (float) ($elapsed * 1000) / $calls, $percent, $memory, ($this->mMin[$fname] * 1000.0), ($this->mMax[$fname] * 1000.0), $this->mOverhead[$fname]);
+ $prof .= sprintf( $format, substr( $fname, 0, $nameWidth ), $calls, (float) ($elapsed * 1000), (float) ($elapsed * 1000) / $calls, $percent, $memory, ( $this->mMin[$fname] * 1000.0 ), ( $this->mMax[$fname] * 1000.0 ), $this->mOverhead[$fname] );
}
$prof .= "\nTotal: $total\n\n";
*/
protected static function calculateOverhead( $profileCount ) {
wfProfileIn( '-overhead-total' );
- for( $i = 0; $i < $profileCount; $i++ ){
+ for( $i = 0; $i < $profileCount; $i++ ) {
wfProfileIn( '-overhead-internal' );
wfProfileOut( '-overhead-internal' );
}
return;
}
- if( $wgProfilePerHost ){
+ if( $wgProfilePerHost ) {
$pfhost = wfHostname();
} else {
$pfhost = '';
try {
$this->collateData();
- foreach( $this->mCollated as $name => $elapsed ){
+ foreach( $this->mCollated as $name => $elapsed ) {
$eventCount = $this->mCalls[$name];
$timeSum = (float) ($elapsed * 1000);
$memorySum = (float)$this->mMemory[$name];
"};\n";
// Conditional script injection
- $scriptTag = Html::linkedScript( $wgLoadScript . '?' . wfArrayToCGI( $query ) );
+ $scriptTag = Html::linkedScript( $wgLoadScript . '?' . wfArrayToCgi( $query ) );
$out .= "if ( isCompatible() ) {\n" .
"\t" . Xml::encodeJsCall( 'document.write', array( $scriptTag ) ) .
"}\n" .
# Exact match? No need to look further.
$title = Title::newFromText( $term );
- if ( is_null( $title ) ){
+ if ( is_null( $title ) ) {
return null;
}
$posEnd = $end;
}
- if ( $end > $start ) {
+ if ( $end > $start ) {
return substr( $text, $start, $end - $start );
} else {
return '';
$line = htmlspecialchars( $pre . $found . $post );
$pat2 = '/(' . $terms . ")/i";
- $line = preg_replace( $pat2,
- "<span class='searchmatch'>\\1</span>", $line );
+ $line = preg_replace( $pat2, "<span class='searchmatch'>\\1</span>", $line );
$extract .= "${line}\n";
}
* @return PostgresSearchResultSet
*/
function searchTitle( $term ) {
- $q = $this->searchQuery( $term , 'titlevector', 'page_title' );
- $olderror = error_reporting(E_ERROR);
+ $q = $this->searchQuery( $term, 'titlevector', 'page_title' );
+ $olderror = error_reporting( E_ERROR );
$resultSet = $this->db->resultObject( $this->db->query( $q, 'SearchPostgres', true ) );
- error_reporting($olderror);
- if (!$resultSet) {
+ error_reporting( $olderror );
+ if ( !$resultSet ) {
// Needed for "Query requires full scan, GIN doesn't support it"
return new SearchResultTooMany();
}
$query .= ' AND page_is_redirect = 0';
## Namespaces - defaults to 0
- if( !is_null($this->namespaces) ){ // null -> search all
- if ( count($this->namespaces) < 1)
+ if( !is_null( $this->namespaces ) ) { // null -> search all
+ if ( count( $this->namespaces ) < 1 ) {
$query .= ' AND page_namespace = 0';
- else {
+ } else {
$namespaces = $this->db->makeList( $this->namespaces );
$query .= " AND page_namespace IN ($namespaces)";
}
$SQL = "UPDATE pagecontent SET textvector = NULL WHERE old_id IN ".
"(SELECT rev_text_id FROM revision WHERE rev_page = " . intval( $pageid ) .
" ORDER BY rev_text_id DESC OFFSET 1)";
- $this->db->query($SQL);
+ $this->db->query( $SQL );
return true;
}
*
* @ingroup Site
*/
-class MediaWikiSite extends SiteObject {
+class MediaWikiSite extends Site {
const PATH_FILE = 'file_path';
const PATH_PAGE = 'page_path';
/**
* @since 1.21
+ * @deprecated Just use the constructor or the factory Site::newForType
*
* @param integer $globalId
*
* @return MediaWikiSite
*/
public static function newFromGlobalId( $globalId ) {
- return SitesTable::singleton()->newRow( array(
- 'type' => Site::TYPE_MEDIAWIKI,
- 'global_key' => $globalId,
- ), true );
+ $site = new static();
+ $site->setGlobalId( $globalId );
+ return $site;
+ }
+
+ /**
+ * Constructor.
+ *
+ * @since 1.21
+ *
+ * @param string $type
+ */
+ public function __construct( $type = self::TYPE_MEDIAWIKI ) {
+ parent::__construct( $type );
}
/**
* @param array $externalData A reply from the API on a external server.
* @param string $pageTitle Identifies the page at the external site, needing normalization.
*
- * @return array|false a 'page' structure representing the page identified by $pageTitle.
+ * @return array|boolean a 'page' structure representing the page identified by $pageTitle.
*/
private static function extractPageRecord( $externalData, $pageTitle ) {
// If there is a special case with only one returned page
}
/**
- * @see Site::getPagePath
+ * @see Site::getPageUrl
*
* This implementation returns a URL constructed using the path returned by getLinkPath().
- * In addition to the default behaviour implemented by SiteObject::getPageUrl(), this
+ * In addition to the default behaviour implemented by Site::getPageUrl(), this
* method converts the $pageName to DBKey-format by replacing spaces with underscores
* before using it in the URL.
*
* @since 1.21
*
- * @param $pagename string: Page name (default: false)
+ * @param string|boolean $pageName Page name or false (default: false)
*
* @return string
*/
*
* @since 1.21
*
- * @param string|false $path
+ * @param string|boolean $path
*
* @return string
*/
<?php
/**
- * Interface for site objects.
+ * Represents a single site.
*
* 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
* @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
-interface Site {
+class Site implements Serializable {
const TYPE_UNKNOWN = 'unknown';
const TYPE_MEDIAWIKI = 'mediawiki';
const SOURCE_LOCAL = 'local';
+ const PATH_LINK = 'link';
+
+
/**
- * Returns the global site identifier (ie enwiktionary).
+ * A version ID that identifies the serialization structure used by getSerializationData()
+ * and unserialize(). This is useful for constructing cache keys in cases where the cache relies
+ * on serialization for storing the SiteList.
*
+ * @var string A string uniquely identifying the version of the serialization structure.
+ */
+ const SERIAL_VERSION_ID = '2013-01-23';
+
+ /**
* @since 1.21
*
- * @return string
+ * @var string|null
*/
- public function getGlobalId();
+ protected $globalId = null;
/**
- * Sets the global site identifier (ie enwiktionary).
+ * @since 1.21
*
+ * @var string
+ */
+ protected $type = self::TYPE_UNKNOWN;
+
+ /**
* @since 1.21
*
- * @param string $globalId
+ * @var string
*/
- public function setGlobalId( $globalId );
+ protected $group = self::GROUP_NONE;
/**
- * Returns the type of the site (ie mediawiki).
+ * @since 1.21
*
+ * @var string
+ */
+ protected $source = self::SOURCE_LOCAL;
+
+ /**
* @since 1.21
*
- * @return string
+ * @var string|null
+ */
+ protected $languageCode = null;
+
+ /**
+ * Holds the local ids for this site.
+ * local id type => [ ids for this type (strings) ]
+ *
+ * @since 1.21
+ *
+ * @var array[]
+ */
+ protected $localIds = array();
+
+ /**
+ * @since 1.21
+ *
+ * @var array
+ */
+ protected $extraData = array();
+
+ /**
+ * @since 1.21
+ *
+ * @var array
+ */
+ protected $extraConfig = array();
+
+ /**
+ * @since 1.21
+ *
+ * @var bool
*/
- public function getType();
+ protected $forward = false;
/**
- * Sets the type of the site (ie mediawiki).
- * TODO: remove, we cannot change this after instantiation
+ * @since 1.21
+ *
+ * @var int|null
+ */
+ protected $internalId = null;
+
+ /**
+ * Constructor.
*
* @since 1.21
*
* @param string $type
*/
- public function setType( $type );
+ public function __construct( $type = self::TYPE_UNKNOWN ) {
+ $this->type = $type;
+ }
+
+ /**
+ * Returns the global site identifier (ie enwiktionary).
+ *
+ * @since 1.21
+ *
+ * @return string|null
+ */
+ public function getGlobalId() {
+ return $this->globalId;
+ }
+
+ /**
+ * Sets the global site identifier (ie enwiktionary).
+ *
+ * @since 1.21
+ *
+ * @param string|null $globalId
+ *
+ * @throws MWException
+ */
+ public function setGlobalId( $globalId ) {
+ if ( $globalId !== null && !is_string( $globalId ) ) {
+ throw new MWException( '$globalId needs to be string or null' );
+ }
+
+ $this->globalId = $globalId;
+ }
+
+ /**
+ * Returns the type of the site (ie mediawiki).
+ *
+ * @since 1.21
+ *
+ * @return string
+ */
+ public function getType() {
+ return $this->type;
+ }
/**
* Gets the type of the site (ie wikipedia).
*
* @return string
*/
- public function getGroup();
+ public function getGroup() {
+ return $this->group;
+ }
/**
* Sets the type of the site (ie wikipedia).
* @since 1.21
*
* @param string $group
+ *
+ * @throws MWException
*/
- public function setGroup( $group );
+ public function setGroup( $group ) {
+ if ( !is_string( $group ) ) {
+ throw new MWException( '$group needs to be a string' );
+ }
+
+ $this->group = $group;
+ }
/**
* Returns the source of the site data (ie 'local', 'wikidata', 'my-magical-repo').
*
* @return string
*/
- public function getSource();
+ public function getSource() {
+ return $this->source;
+ }
/**
* Sets the source of the site data (ie 'local', 'wikidata', 'my-magical-repo').
* @since 1.21
*
* @param string $source
+ *
+ * @throws MWException
*/
- public function setSource( $source );
+ public function setSource( $source ) {
+ if ( !is_string( $source ) ) {
+ throw new MWException( '$source needs to be a string' );
+ }
+
+ $this->source = $source;
+ }
/**
- * Returns the protocol of the site, ie 'http://', 'irc://', '//'
- * Or false if it's not known.
+ * Gets if site.tld/path/key:pageTitle should forward users to the page on
+ * the actual site, where "key" is the local identifier.
*
* @since 1.21
*
- * @return string|false
+ * @return boolean
*/
- public function getProtocol();
+ public function shouldForward() {
+ return $this->forward;
+ }
+
+ /**
+ * Sets if site.tld/path/key:pageTitle should forward users to the page on
+ * the actual site, where "key" is the local identifier.
+ *
+ * @since 1.21
+ *
+ * @param boolean $shouldForward
+ *
+ * @throws MWException
+ */
+ public function setForward( $shouldForward ) {
+ if ( !is_bool( $shouldForward ) ) {
+ throw new MWException( '$shouldForward needs to be a boolean' );
+ }
+
+ $this->forward = $shouldForward;
+ }
/**
* Returns the domain of the site, ie en.wikipedia.org
*
* @since 1.21
*
- * @return string|false
+ * @return string|null
+ */
+ public function getDomain() {
+ $path = $this->getLinkPath();
+
+ if ( $path === null ) {
+ return null;
+ }
+
+ return parse_url( $path, PHP_URL_HOST );
+ }
+
+ /**
+ * Returns the protocol of the site.
+ *
+ * @since 1.21
+ *
+ * @throws MWException
+ * @return string
+ */
+ public function getProtocol() {
+ $path = $this->getLinkPath();
+
+ if ( $path === null ) {
+ return '';
+ }
+
+ $protocol = parse_url( $path, PHP_URL_SCHEME );
+
+ // Malformed URL
+ if ( $protocol === false ) {
+ throw new MWException( "failed to parse URL '$path'" );
+ }
+
+ // No schema
+ if ( $protocol === null ) {
+ // Used for protocol relative URLs
+ $protocol = '';
+ }
+
+ return $protocol;
+ }
+
+ /**
+ * Sets the path used to construct links with.
+ * Shall be equivalent to setPath( getLinkPathType(), $fullUrl ).
+ *
+ * @param string $fullUrl
+ *
+ * @since 1.21
+ *
+ * @throws MWException
+ */
+ public function setLinkPath( $fullUrl ) {
+ $type = $this->getLinkPathType();
+
+ if ( $type === null ) {
+ throw new MWException( "This Site does not support link paths." );
+ }
+
+ $this->setPath( $type, $fullUrl );
+ }
+
+ /**
+ * Returns the path used to construct links with or false if there is no such path.
+ *
+ * Shall be equivalent to getPath( getLinkPathType() ).
+ *
+ * @return string|null
+ */
+ public function getLinkPath() {
+ $type = $this->getLinkPathType();
+ return $type === null ? null: $this->getPath( $type );
+ }
+
+ /**
+ * Returns the main path type, that is the type of the path that should generally be used to construct links
+ * to the target site.
+ *
+ * This default implementation returns Site::PATH_LINK as the default path type. Subclasses can override this
+ * to define a different default path type, or return false to disable site links.
+ *
+ * @since 1.21
+ *
+ * @return string|null
*/
- public function getDomain();
+ public function getLinkPathType() {
+ return self::PATH_LINK;
+ }
/**
* Returns the full URL for the given page on the site.
* This generated URL is usually based upon the path returned by getLinkPath(),
* but this is not a requirement.
*
+ * This implementation returns a URL constructed using the path returned by getLinkPath().
+ *
* @since 1.21
- * @see Site::getLinkPath()
*
- * @param bool|String $page
+ * @param bool|String $pageName
*
- * @return string|false
+ * @return string|boolean false
*/
- public function getPageUrl( $page = false );
+ public function getPageUrl( $pageName = false ) {
+ $url = $this->getLinkPath();
+
+ if ( $url === false ) {
+ return false;
+ }
+
+ if ( $pageName !== false ) {
+ $url = str_replace( '$1', rawurlencode( $pageName ), $url ) ;
+ }
+
+ return $url;
+ }
/**
- * Returns language code of the sites primary language.
- * Or false if it's not known.
+ * Returns $pageName without changes.
+ * Subclasses may override this to apply some kind of normalization.
+ *
+ * @see Site::normalizePageName
*
* @since 1.21
*
- * @return string|false
+ * @param string $pageName
+ *
+ * @return string
*/
- public function getLanguageCode();
+ public function normalizePageName( $pageName ) {
+ return $pageName;
+ }
/**
- * Sets language code of the sites primary language.
+ * Returns the type specific fields.
*
* @since 1.21
*
- * @param string $languageCode
+ * @return array
*/
- public function setLanguageCode( $languageCode );
+ public function getExtraData() {
+ return $this->extraData;
+ }
/**
- * Returns the normalized, canonical form of the given page name.
- * How normalization is performed or what the properties of a normalized name are depends on the site.
- * The general contract of this method is that the normalized form shall refer to the same content
- * as the original form, and any other page name referring to the same content will have the same normalized form.
+ * Sets the type specific fields.
*
- * Note that this method may call out to the target site to perform the normalization, so it may be slow
- * and fail due to IO errors.
+ * @since 1.21
+ *
+ * @param array $extraData
+ */
+ public function setExtraData( array $extraData ) {
+ $this->extraData = $extraData;
+ }
+
+ /**
+ * Returns the type specific config.
*
* @since 1.21
*
- * @param string $pageName
+ * @return array
+ */
+ public function getExtraConfig() {
+ return $this->extraConfig;
+ }
+
+ /**
+ * Sets the type specific config.
*
- * @return string the normalized page name
+ * @since 1.21
+ *
+ * @param array $extraConfig
*/
- public function normalizePageName( $pageName );
+ public function setExtraConfig( array $extraConfig ) {
+ $this->extraConfig = $extraConfig;
+ }
/**
- * Returns the interwiki link identifiers that can be used for this site.
+ * Returns language code of the sites primary language.
+ * Or null if it's not known.
*
* @since 1.21
*
- * @return array of string
+ * @return string|null
*/
- public function getInterwikiIds();
+ public function getLanguageCode() {
+ return $this->languageCode;
+ }
/**
- * Returns the equivalent link identifiers that can be used to make
- * the site show up in interfaces such as the "language links" section.
+ * Sets language code of the sites primary language.
*
* @since 1.21
*
- * @return array of string
+ * @param string $languageCode
*/
- public function getNavigationIds();
+ public function setLanguageCode( $languageCode ) {
+ $this->languageCode = $languageCode;
+ }
/**
- * Adds an local identifier to the site.
+ * Returns the set internal identifier for the site.
*
* @since 1.21
*
- * @param string $type The type of the identifier, element of the Site::ID_ enum
+ * @return string|null
+ */
+ public function getInternalId() {
+ return $this->internalId;
+ }
+
+ /**
+ * Sets the internal identifier for the site.
+ * This typically is a primary key in a db table.
+ *
+ * @since 1.21
+ *
+ * @param int|null $internalId
+ */
+ public function setInternalId( $internalId = null ) {
+ $this->internalId = $internalId;
+ }
+
+ /**
+ * Adds a local identifier.
+ *
+ * @since 1.21
+ *
+ * @param string $type
* @param string $identifier
*/
- public function addLocalId( $type, $identifier );
+ public function addLocalId( $type, $identifier ) {
+ if ( $this->localIds === false ) {
+ $this->localIds = array();
+ }
+
+ if ( !array_key_exists( $type, $this->localIds ) ) {
+ $this->localIds[$type] = array();
+ }
+
+ if ( !in_array( $identifier, $this->localIds[$type] ) ) {
+ $this->localIds[$type][] = $identifier;
+ }
+ }
/**
* Adds an interwiki id to the site.
*
* @param string $identifier
*/
- public function addInterwikiId( $identifier );
+ public function addInterwikiId( $identifier ) {
+ $this->addLocalId( self::ID_INTERWIKI, $identifier );
+ }
/**
* Adds a navigation id to the site.
*
* @param string $identifier
*/
- public function addNavigationId( $identifier );
+ public function addNavigationId( $identifier ) {
+ $this->addLocalId( self::ID_EQUIVALENT, $identifier );
+ }
+
+ /**
+ * Returns the interwiki link identifiers that can be used for this site.
+ *
+ * @since 1.21
+ *
+ * @return string[]
+ */
+ public function getInterwikiIds() {
+ return array_key_exists( self::ID_INTERWIKI, $this->localIds ) ? $this->localIds[self::ID_INTERWIKI] : array();
+ }
/**
- * Saves the site.
+ * Returns the equivalent link identifiers that can be used to make
+ * the site show up in interfaces such as the "language links" section.
*
* @since 1.21
*
- * @param string|null $functionName
+ * @return string[]
*/
- public function save( $functionName = null );
+ public function getNavigationIds() {
+ return array_key_exists( self::ID_EQUIVALENT, $this->localIds ) ? $this->localIds[self::ID_EQUIVALENT] : array();
+ }
/**
- * Returns the internal ID of the site.
+ * Returns all local ids
*
* @since 1.21
*
- * @return integer
+ * @return array[]
*/
- public function getInternalId();
+ public function getLocalIds() {
+ return $this->localIds;
+ }
/**
- * Sets the provided url as path of the specified type.
+ * Sets the path used to construct links with.
+ * Shall be equivalent to setPath( getLinkPathType(), $fullUrl ).
*
* @since 1.21
*
* @param string $pathType
* @param string $fullUrl
+ *
+ * @throws MWException
*/
- public function setPath( $pathType, $fullUrl );
+ public function setPath( $pathType, $fullUrl ) {
+ if ( !is_string( $fullUrl ) ) {
+ throw new MWException( '$fullUrl needs to be a string' );
+ }
+
+ if ( !array_key_exists( 'paths', $this->extraData ) ) {
+ $this->extraData['paths'] = array();
+ }
+
+ $this->extraData['paths'][$pathType] = $fullUrl;
+ }
/**
* Returns the path of the provided type or false if there is no such path.
*
* @param string $pathType
*
- * @return string|false
+ * @return string|null
*/
- public function getPath( $pathType );
+ public function getPath( $pathType ) {
+ $paths = $this->getAllPaths();
+ return array_key_exists( $pathType, $paths ) ? $paths[$pathType] : null;
+ }
/**
- * Sets the path used to construct links with.
- * Shall be equivalent to setPath( getLinkPathType(), $fullUrl ).
- *
- * @param string $fullUrl
+ * Returns the paths as associative array.
+ * The keys are path types, the values are the path urls.
*
* @since 1.21
+ *
+ * @return string[]
*/
- public function setLinkPath( $fullUrl );
+ public function getAllPaths() {
+ return array_key_exists( 'paths', $this->extraData ) ? $this->extraData['paths'] : array();
+ }
/**
- * Returns the path used to construct links with or false if there is no such path.
- * Shall be equivalent to getPath( getLinkPathType() ).
+ * Removes the path of the provided type if it's set.
+ *
+ * @since 1.21
*
- * @return string|false
+ * @param string $pathType
*/
- public function getLinkPath();
+ public function removePath( $pathType ) {
+ if ( array_key_exists( 'paths', $this->extraData ) ) {
+ unset( $this->extraData['paths'][$pathType] );
+ }
+ }
/**
- * Returns the path type used to construct links with.
+ * @since 1.21
+ *
+ * @param string $siteType
*
- * @return string|false
+ * @return Site
*/
- public function getLinkPathType();
+ public static function newForType( $siteType ) {
+ global $wgSiteTypes;
+
+ if ( array_key_exists( $siteType, $wgSiteTypes ) ) {
+ return new $wgSiteTypes[$siteType]();
+ }
+
+ return new Site();
+ }
/**
- * Returns the paths as associative array.
- * The keys are path types, the values are the path urls.
+ * @see Serializable::serialize
*
* @since 1.21
*
- * @return array of string
+ * @return string
*/
- public function getAllPaths();
+ public function serialize() {
+ $fields = array(
+ 'globalid' => $this->globalId,
+ 'type' => $this->type,
+ 'group' => $this->group,
+ 'source' => $this->source,
+ 'language' => $this->languageCode,
+ 'localids' => $this->localIds,
+ 'config' => $this->extraConfig,
+ 'data' => $this->extraData,
+ 'forward' => $this->forward,
+ 'internalid' => $this->internalId,
+
+ );
+
+ return serialize( $fields );
+ }
/**
- * Removes the path of the provided type if it's set.
+ * @see Serializable::unserialize
*
* @since 1.21
*
- * @param string $pathType
+ * @param string $serialized
*/
- public function removePath( $pathType );
+ public function unserialize( $serialized ) {
+ $fields = unserialize( $serialized );
+
+ $this->__construct( $fields['type'] );
+
+ $this->setGlobalId( $fields['globalid'] );
+ $this->setGroup( $fields['group'] );
+ $this->setSource( $fields['source'] );
+ $this->setLanguageCode( $fields['language'] );
+ $this->localIds = $fields['localids'];
+ $this->setExtraConfig( $fields['config'] );
+ $this->setExtraData( $fields['data'] );
+ $this->setForward( $fields['forward'] );
+ $this->setInternalId( $fields['internalid'] );
+ }
-}
\ No newline at end of file
+}
+
+/**
+ * @deprecated
+ */
+class SiteObject extends Site {}
+++ /dev/null
-<?php
-
-/**
- * Implementation of SiteList using GenericArrayObject.
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * 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
- *
- * @since 1.21
- *
- * @file
- * @ingroup Site
- *
- * @license GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class SiteArray extends GenericArrayObject implements SiteList {
- /**
- * Update this version number when the SiteArray format
- * changes in an incompatible way
- *
- * @since 1.21
- *
- * @var integer
- */
- const CACHE_VERSION = 1;
-
- /**
- * Version number of the SiteArray format of the currently used object
- *
- * @since 1.21
- *
- * @var integer
- */
- public $cacheVersion = self::CACHE_VERSION;
-
- /**
- * Internal site identifiers pointing to their sites offset value.
- *
- * @since 1.21
- *
- * @var array of integer
- */
- protected $byInternalId = array();
-
- /**
- * Global site identifiers pointing to their sites offset value.
- *
- * @since 1.21
- *
- * @var array of string
- */
- protected $byGlobalId = array();
-
- /**
- * @see GenericArrayObject::getObjectType
- *
- * @since 1.21
- *
- * @return string
- */
- public function getObjectType() {
- return 'Site';
- }
-
- /**
- * @see GenericArrayObject::preSetElement
- *
- * @since 1.21
- *
- * @param int|string $index
- * @param Site $site
- *
- * @return boolean
- */
- protected function preSetElement( $index, $site ) {
- if ( $this->hasSite( $site->getGlobalId() ) ) {
- $this->removeSite( $site->getGlobalId() );
- }
-
- $this->byGlobalId[$site->getGlobalId()] = $index;
- $this->byInternalId[$site->getInternalId()] = $index;
-
- return true;
- }
-
- /**
- * @see ArrayObject::offsetUnset()
- *
- * @since 1.21
- *
- * @param mixed $index
- */
- public function offsetUnset( $index ) {
- if ( $this->offsetExists( $index ) ) {
- /**
- * @var Site $site
- */
- $site = $this->offsetGet( $index );
-
- unset( $this->byGlobalId[$site->getGlobalId()] );
- unset( $this->byInternalId[$site->getInternalId()] );
- }
-
- parent::offsetUnset( $index );
- }
-
- /**
- * @see SiteList::getGlobalIdentifiers
- *
- * @since 1.21
- *
- * @return array
- */
- public function getGlobalIdentifiers() {
- return array_keys( $this->byGlobalId );
- }
-
- /**
- * @see SiteList::hasSite
- *
- * @param string $globalSiteId
- *
- * @return boolean
- */
- public function hasSite( $globalSiteId ) {
- return array_key_exists( $globalSiteId, $this->byGlobalId );
- }
-
- /**
- * @see SiteList::getSite
- *
- * @since 1.21
- *
- * @param string $globalSiteId
- *
- * @return Site
- */
- public function getSite( $globalSiteId ) {
- return $this->offsetGet( $this->byGlobalId[$globalSiteId] );
- }
-
- /**
- * @see SiteList::removeSite
- *
- * @since 1.21
- *
- * @param string $globalSiteId
- */
- public function removeSite( $globalSiteId ) {
- $this->offsetUnset( $this->byGlobalId[$globalSiteId] );
- }
-
- /**
- * @see SiteList::isEmpty
- *
- * @since 1.21
- *
- * @return boolean
- */
- public function isEmpty() {
- return $this->byGlobalId === array();
- }
-
- /**
- * @see SiteList::hasInternalId
- *
- * @param integer $id
- *
- * @return boolean
- */
- public function hasInternalId( $id ) {
- return array_key_exists( $id, $this->byInternalId );
- }
-
- /**
- * @see SiteList::getSiteByInternalId
- *
- * @since 1.21
- *
- * @param integer $id
- *
- * @return Site
- */
- public function getSiteByInternalId( $id ) {
- return $this->offsetGet( $this->byInternalId[$id] );
- }
-
- /**
- * @see SiteList::removeSiteByInternalId
- *
- * @since 1.21
- *
- * @param integer $id
- */
- public function removeSiteByInternalId( $id ) {
- $this->offsetUnset( $this->byInternalId[$id] );
- }
-
- /**
- * @see SiteList::setSite
- *
- * @since 1.21
- *
- * @param Site $site
- */
- public function setSite( Site $site ) {
- $this[] = $site;
- }
-
- /**
- * @see GenericArrayObject::getSerializationData
- *
- * @since 1.21
- *
- * @return array
- */
- protected function getSerializationData() {
- return array_merge(
- parent::getSerializationData(),
- array(
- 'cacheVersion' => self::CACHE_VERSION,
- 'internalIds' => $this->byInternalId,
- 'globalIds' => $this->byGlobalId,
- )
- );
- }
-
- /**
- * @see GenericArrayObject::unserialize
- *
- * @since 1.21
- *
- * @param string $serialization
- *
- * @return array
- */
- public function unserialize( $serialization ) {
- $serializationData = parent::unserialize( $serialization );
-
- $this->cacheVersion = $serializationData['cacheVersion'];
- $this->byInternalId = $serializationData['internalIds'];
- $this->byGlobalId = $serializationData['globalIds'];
-
- return $serializationData;
- }
-
-}
<?php
/**
- * Interface for lists of Site objects.
+ * Collection of Site objects.
*
* 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
* @license GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
-interface SiteList extends Countable, Traversable, Serializable, ArrayAccess {
+class SiteList extends GenericArrayObject {
+
+ /**
+ * Internal site identifiers pointing to their sites offset value.
+ *
+ * @since 1.21
+ *
+ * @var array of integer
+ */
+ protected $byInternalId = array();
+
+ /**
+ * Global site identifiers pointing to their sites offset value.
+ *
+ * @since 1.21
+ *
+ * @var array of string
+ */
+ protected $byGlobalId = array();
+
+ /**
+ * @see GenericArrayObject::getObjectType
+ *
+ * @since 1.21
+ *
+ * @return string
+ */
+ public function getObjectType() {
+ return 'Site';
+ }
+
+ /**
+ * @see GenericArrayObject::preSetElement
+ *
+ * @since 1.21
+ *
+ * @param int|string $index
+ * @param Site $site
+ *
+ * @return boolean
+ */
+ protected function preSetElement( $index, $site ) {
+ if ( $this->hasSite( $site->getGlobalId() ) ) {
+ $this->removeSite( $site->getGlobalId() );
+ }
+
+ $this->byGlobalId[$site->getGlobalId()] = $index;
+ $this->byInternalId[$site->getInternalId()] = $index;
+
+ return true;
+ }
+
+ /**
+ * @see ArrayObject::offsetUnset()
+ *
+ * @since 1.21
+ *
+ * @param mixed $index
+ */
+ public function offsetUnset( $index ) {
+ if ( $this->offsetExists( $index ) ) {
+ /**
+ * @var Site $site
+ */
+ $site = $this->offsetGet( $index );
+
+ unset( $this->byGlobalId[$site->getGlobalId()] );
+ unset( $this->byInternalId[$site->getInternalId()] );
+ }
+
+ parent::offsetUnset( $index );
+ }
/**
* Returns all the global site identifiers.
*
* @return array
*/
- public function getGlobalIdentifiers();
+ public function getGlobalIdentifiers() {
+ return array_keys( $this->byGlobalId );
+ }
/**
* Returns if the list contains the site with the provided global site identifier.
*
* @return boolean
*/
- public function hasSite( $globalSiteId );
+ public function hasSite( $globalSiteId ) {
+ return array_key_exists( $globalSiteId, $this->byGlobalId );
+ }
/**
* Returns the Site with the provided global site identifier.
*
* @return Site
*/
- public function getSite( $globalSiteId );
+ public function getSite( $globalSiteId ) {
+ return $this->offsetGet( $this->byGlobalId[$globalSiteId] );
+ }
/**
* Removes the site with the specified global site identifier.
*
* @param string $globalSiteId
*/
- public function removeSite( $globalSiteId );
+ public function removeSite( $globalSiteId ) {
+ $this->offsetUnset( $this->byGlobalId[$globalSiteId] );
+ }
+
+ /**
+ * Returns if the list contains no sites.
+ *
+ * @since 1.21
+ *
+ * @return boolean
+ */
+ public function isEmpty() {
+ return $this->byGlobalId === array();
+ }
/**
* Returns if the list contains the site with the provided site id.
*
* @return boolean
*/
- public function hasInternalId( $id );
+ public function hasInternalId( $id ) {
+ return array_key_exists( $id, $this->byInternalId );
+ }
/**
* Returns the Site with the provided site id.
*
* @return Site
*/
- public function getSiteByInternalId( $id );
+ public function getSiteByInternalId( $id ) {
+ return $this->offsetGet( $this->byInternalId[$id] );
+ }
/**
* Removes the site with the specified site id.
*
* @param integer $id
*/
- public function removeSiteByInternalId( $id );
+ public function removeSiteByInternalId( $id ) {
+ $this->offsetUnset( $this->byInternalId[$id] );
+ }
/**
* Sets a site in the list. If the site was not there,
*
* @param Site $site
*/
- public function setSite( Site $site );
+ public function setSite( Site $site ) {
+ $this[] = $site;
+ }
/**
- * Returns if the site list contains no sites.
+ * Returns the sites that are in the provided group.
*
* @since 1.21
*
- * @return boolean
+ * @param string $groupName
+ *
+ * @return SiteList
+ */
+ public function getGroup( $groupName ) {
+ $group = new self();
+
+ /**
+ * @var \Site $site
+ */
+ foreach ( $this as $site ) {
+ if ( $site->getGroup() === $groupName ) {
+ $group[] = $site;
+ }
+ }
+
+ return $group;
+ }
+
+ /**
+ * A version ID that identifies the serialization structure used by getSerializationData()
+ * and unserialize(). This is useful for constructing cache keys in cases where the cache relies
+ * on serialization for storing the SiteList.
+ *
+ * @var string A string uniquely identifying the version of the serialization structure,
+ * not including any sub-structures.
+ */
+ const SERIAL_VERSION_ID = '2013-01-23';
+
+ /**
+ * Returns the version ID that identifies the serialization structure used by
+ * getSerializationData() and unserialize(), including the structure of any nested structures.
+ * This is useful for constructing cache keys in cases where the cache relies
+ * on serialization for storing the SiteList.
+ *
+ * @return string A string uniquely identifying the version of the serialization structure,
+ * including any sub-structures.
+ */
+ public static function getSerialVersionId() {
+ return self::SERIAL_VERSION_ID . '+Site:' . Site::SERIAL_VERSION_ID;
+ }
+
+ /**
+ * @see GenericArrayObject::getSerializationData
+ *
+ * @since 1.21
+ *
+ * @return array
*/
- public function isEmpty();
+ protected function getSerializationData() {
+ //NOTE: When changing the structure, either implement unserialize() to handle the
+ // old structure too, or update SERIAL_VERSION_ID to kill any caches.
+ return array_merge(
+ parent::getSerializationData(),
+ array(
+ 'internalIds' => $this->byInternalId,
+ 'globalIds' => $this->byGlobalId,
+ )
+ );
+ }
-}
\ No newline at end of file
+ /**
+ * @see GenericArrayObject::unserialize
+ *
+ * @since 1.21
+ *
+ * @param string $serialization
+ *
+ * @return array
+ */
+ public function unserialize( $serialization ) {
+ $serializationData = parent::unserialize( $serialization );
+
+ $this->byInternalId = $serializationData['internalIds'];
+ $this->byGlobalId = $serializationData['globalIds'];
+
+ return $serializationData;
+ }
+
+}
+
+/**
+ * @deprecated
+ */
+class SiteArray extends SiteList {}
\ No newline at end of file
+++ /dev/null
-<?php
-
-/**
- * Class representing a single site.
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * 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
- *
- * @since 1.21
- *
- * @file
- * @ingroup Site
- *
- * @license GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- * @author Daniel Werner
- */
-class SiteObject extends ORMRow implements Site {
-
- const PATH_LINK = 'link';
-
- /**
- * Holds the local ids for this site.
- * You can obtain them via @see getLocalIds
- *
- * @since 1.21
- *
- * @var array|false
- */
- protected $localIds = false;
-
- /**
- * @see Site::getGlobalId
- *
- * @since 1.21
- *
- * @return string
- */
- public function getGlobalId() {
- return $this->getField( 'global_key' );
- }
-
- /**
- * @see Site::setGlobalId
- *
- * @since 1.21
- *
- * @param string $globalId
- */
- public function setGlobalId( $globalId ) {
- $this->setField( 'global_key', $globalId );
- }
-
- /**
- * @see Site::getType
- *
- * @since 1.21
- *
- * @return string
- */
- public function getType() {
- return $this->getField( 'type' );
- }
-
- /**
- * @see Site::setType
- *
- * @since 1.21
- *
- * @param string $type
- */
- public function setType( $type ) {
- $this->setField( 'type', $type );
- }
-
- /**
- * @see Site::getGroup
- *
- * @since 1.21
- *
- * @return string
- */
- public function getGroup() {
- return $this->getField( 'group' );
- }
-
- /**
- * @see Site::setGroup
- *
- * @since 1.21
- *
- * @param string $group
- */
- public function setGroup( $group ) {
- $this->setField( 'group', $group );
- }
-
- /**
- * @see Site::getSource
- *
- * @since 1.21
- *
- * @return string
- */
- public function getSource() {
- return $this->getField( 'source' );
- }
-
- /**
- * @see Site::setSource
- *
- * @since 1.21
- *
- * @param string $source
- */
- public function setSource( $source ) {
- $this->setField( 'source', $source );
- }
-
- /**
- * @see Site::getDomain
- *
- * @since 1.21
- *
- * @return string|false
- */
- public function getDomain() {
- $path = $this->getLinkPath();
-
- if ( $path === false ) {
- return false;
- }
-
- return parse_url( $path, PHP_URL_HOST );
- }
-
- /**
- * @see Site::getProtocol
- *
- * @since 1.21
- *
- * @throws MWException
- * @return string|false
- */
- public function getProtocol() {
- $path = $this->getLinkPath();
-
- if ( $path === false ) {
- return '';
- }
-
- $protocol = parse_url( $path, PHP_URL_SCHEME );
-
- // Malformed URL
- if ( $protocol === false ) {
- throw new MWException( "failed to parse URL $path" );
- }
-
- // No schema
- if ( $protocol === null ) {
- // Used for protocol relative URLs
- $protocol = '';
- }
-
- return $protocol;
- }
-
- /**
- * Sets the path used to construct links with.
- * @see Site::setLinkPath
- *
- * @param string $fullUrl
- *
- * @since 1.21
- *
- * @throws MWException
- */
- public function setLinkPath( $fullUrl ) {
- $type = $this->getLinkPathType();
-
- if ( $type === false ) {
- throw new MWException( "This SiteObject does not support link paths." );
- }
-
- $this->setPath( $type, $fullUrl );
- }
-
- /**
- * Returns the path path used to construct links with or false if there is no such path.
- *
- * @see Site::getLinkPath
- *
- * @return string|false
- */
- public function getLinkPath() {
- $type = $this->getLinkPathType();
- return $type === false ? false : $this->getPath( $type );
- }
-
- /**
- * @see Site::getLinkPathType
- *
- * Returns the main path type, that is the type of the path that should generally be used to construct links
- * to the target site.
- *
- * This default implementation returns SiteObject::PATH_LINK as the default path type. Subclasses can override this
- * to define a different default path type, or return false to disable site links.
- *
- * @since 1.21
- *
- * @return string|false
- */
- public function getLinkPathType() {
- return self::PATH_LINK;
- }
-
- /**
- * @see Site::getPageUrl
- *
- * This implementation returns a URL constructed using the path returned by getLinkPath().
- *
- * @since 1.21
- *
- * @param bool|String $pageName
- *
- * @return string|false
- */
- public function getPageUrl( $pageName = false ) {
- $url = $this->getLinkPath();
-
- if ( $url === false ) {
- return false;
- }
-
- if ( $pageName !== false ) {
- $url = str_replace( '$1', rawurlencode( $pageName ), $url ) ;
- }
-
- return $url;
- }
-
- /**
- * Returns $pageName without changes.
- * Subclasses may override this to apply some kind of normalization.
- *
- * @see Site::normalizePageName
- *
- * @since 1.21
- *
- * @param string $pageName
- *
- * @return string
- */
- public function normalizePageName( $pageName ) {
- return $pageName;
- }
-
- /**
- * Returns the value of a type specific field, or the value
- * of the $default parameter in case it's not set.
- *
- * @since 1.21
- *
- * @param string $fieldName
- * @param mixed $default
- *
- * @return array
- */
- protected function getExtraData( $fieldName, $default = null ) {
- $data = $this->getField( 'data', array() );
- return array_key_exists( $fieldName,$data ) ? $data[$fieldName] : $default;
- }
-
- /**
- * Sets the value of a type specific field.
- * @since 1.21
- *
- * @param string $fieldName
- * @param mixed $value
- */
- protected function setExtraData( $fieldName, $value = null ) {
- $data = $this->getField( 'data', array() );
- $data[$fieldName] = $value;
- $this->setField( 'data', $data );
- }
-
- /**
- * @see Site::getLanguageCode
- *
- * @since 1.21
- *
- * @return string|false
- */
- public function getLanguageCode() {
- return $this->getField( 'language', false );
- }
-
- /**
- * @see Site::setLanguageCode
- *
- * @since 1.21
- *
- * @param string $languageCode
- */
- public function setLanguageCode( $languageCode ) {
- $this->setField( 'language', $languageCode );
- }
-
- /**
- * Returns the local identifiers of this site.
- *
- * @since 1.21
- *
- * @param string $type
- *
- * @return array
- */
- protected function getLocalIds( $type ) {
- if ( $this->localIds === false ) {
- $this->loadLocalIds();
- }
-
- return array_key_exists( $type, $this->localIds ) ? $this->localIds[$type] : array();
- }
-
- /**
- * Loads the local ids for the site.
- *
- * @since 1.21
- */
- protected function loadLocalIds() {
- $dbr = wfGetDB( $this->getTable()->getReadDb() );
-
- $ids = $dbr->select(
- 'site_identifiers',
- array(
- 'si_type',
- 'si_key',
- ),
- array(
- 'si_site' => $this->getId(),
- ),
- __METHOD__
- );
-
- $this->localIds = array();
-
- foreach ( $ids as $id ) {
- $this->addLocalId( $id->si_type, $id->si_key );
- }
- }
-
- /**
- * Adds a local identifier.
- *
- * @since 1.21
- *
- * @param string $type
- * @param string $identifier
- */
- public function addLocalId( $type, $identifier ) {
- if ( $this->localIds === false ) {
- $this->localIds = array();
- }
-
- if ( !array_key_exists( $type, $this->localIds ) ) {
- $this->localIds[$type] = array();
- }
-
- if ( !in_array( $identifier, $this->localIds[$type] ) ) {
- $this->localIds[$type][] = $identifier;
- }
- }
-
- /**
- * @see Site::addInterwikiId
- *
- * @since 1.21
- *
- * @param string $identifier
- */
- public function addInterwikiId( $identifier ) {
- $this->addLocalId( 'interwiki', $identifier );
- }
-
- /**
- * @see Site::addNavigationId
- *
- * @since 1.21
- *
- * @param string $identifier
- */
- public function addNavigationId( $identifier ) {
- $this->addLocalId( 'equivalent', $identifier );
- }
-
- /**
- * @see Site::getInterwikiIds
- *
- * @since 1.21
- *
- * @return array of string
- */
- public function getInterwikiIds() {
- return $this->getLocalIds( 'interwiki' );
- }
-
- /**
- * @see Site::getNavigationIds
- *
- * @since 1.21
- *
- * @return array of string
- */
- public function getNavigationIds() {
- return $this->getLocalIds( 'equivalent' );
- }
-
- /**
- * @see Site::getInternalId
- *
- * @since 1.21
- *
- * @return integer
- */
- public function getInternalId() {
- return $this->getId();
- }
-
- /**
- * @see IORMRow::save
- * @see Site::save
- *
- * @since 1.21
- *
- * @param string|null $functionName
- *
- * @return boolean Success indicator
- */
- public function save( $functionName = null ) {
- $dbw = $this->table->getWriteDbConnection();
-
- $trx = $dbw->trxLevel();
-
- if ( $trx == 0 ) {
- $dbw->begin( __METHOD__ );
- }
-
- $this->setField( 'protocol', $this->getProtocol() );
- $this->setField( 'domain', strrev( $this->getDomain() ) . '.' );
-
- $existedAlready = $this->hasIdField();
-
- $success = parent::save( $functionName );
-
- if ( $success && $existedAlready ) {
- $dbw->delete(
- 'site_identifiers',
- array( 'si_site' => $this->getId() ),
- __METHOD__
- );
- }
-
- if ( $success && $this->localIds !== false ) {
- foreach ( $this->localIds as $type => $ids ) {
- foreach ( $ids as $id ) {
- $dbw->insert(
- 'site_identifiers',
- array(
- 'si_site' => $this->getId(),
- 'si_type' => $type,
- 'si_key' => $id,
- ),
- __METHOD__
- );
- }
- }
- }
-
- if ( $trx == 0 ) {
- $dbw->commit( __METHOD__ );
- }
-
- return $success;
- }
-
- /**
- * @since 1.21
- *
- * @see ORMRow::onRemoved
- */
- protected function onRemoved() {
- $dbw = $this->table->getWriteDbConnection();
-
- $dbw->delete(
- 'site_identifiers',
- array(
- 'si_site' => $this->getId()
- ),
- __METHOD__
- );
-
- parent::onRemoved();
- }
-
- /**
- * @see Site::setPath
- *
- * @since 1.21
- *
- * @param string $pathType
- * @param string $fullUrl
- */
- public function setPath( $pathType, $fullUrl ) {
- $paths = $this->getExtraData( 'paths', array() );
- $paths[$pathType] = $fullUrl;
- $this->setExtraData( 'paths', $paths );
- }
-
- /**
- * @see Sitres::getPath
- *
- * @since 1.21
- *
- * @param string $pathType
- *
- * @return string|false
- */
- public function getPath( $pathType ) {
- $paths = $this->getExtraData( 'paths', array() );
- return array_key_exists( $pathType, $paths ) ? $paths[$pathType] : false;
- }
-
- /**
- * @see Sitres::getAll
- *
- * @since 1.21
- *
- * @return array of string
- */
- public function getAllPaths() {
- return $this->getExtraData( 'paths', array() );
- }
-
- /**
- * @see Sitres::removePath
- *
- * @since 1.21
- *
- * @param string $pathType
- */
- public function removePath( $pathType ) {
- $paths = $this->getExtraData( 'paths', array() );
- unset( $paths[$pathType] );
- $this->setExtraData( 'paths', $paths );
- }
-
-}
--- /dev/null
+<?php
+
+/**
+ * Represents the site configuration of a wiki.
+ * Holds a list of sites (ie SiteList) and takes care
+ * of retrieving and caching site information when appropriate.
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * 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
+ *
+ * @since 1.21
+ *
+ * @file
+ * @ingroup Site
+ *
+ * @license GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+class SiteSQLStore implements SiteStore {
+
+ /**
+ * @since 1.21
+ *
+ * @var SiteList|null
+ */
+ protected $sites = null;
+
+ /**
+ * @var ORMTable
+ */
+ protected $sitesTable;
+
+ /**
+ * @var string|null
+ */
+ private $cacheKey = null;
+
+ /**
+ * @since 1.21
+ *
+ * @param ORMTable|null $sitesTable
+ *
+ * @return SiteStore
+ */
+ public static function newInstance( ORMTable $sitesTable = null ) {
+ return new static( $sitesTable );
+ }
+
+ /**
+ * Constructor.
+ *
+ * @since 1.21
+ *
+ * @param ORMTable|null $sitesTable
+ */
+ protected function __construct( ORMTable $sitesTable = null ) {
+ if ( $sitesTable === null ) {
+ $sitesTable = $this->newSitesTable();
+ }
+
+ $this->sitesTable = $sitesTable;
+ }
+
+ /**
+ * Constructs a cache key to use for caching the list of sites.
+ *
+ * This includes the concrete class name of the site list as well as a version identifier
+ * for the list's serialization, to avoid problems when unserializing site lists serialized
+ * by an older version, e.g. when reading from a cache.
+ *
+ * The cache key also includes information about where the sites were loaded from, e.g.
+ * the name of a database table.
+ *
+ * @see SiteList::getSerialVersionId
+ *
+ * @return String The cache key.
+ */
+ protected function getCacheKey() {
+ wfProfileIn( __METHOD__ );
+
+ if ( $this->cacheKey === null ) {
+ $type = 'SiteList#' . SiteList::getSerialVersionId();
+ $source = $this->sitesTable->getName();
+
+ if ( $this->sitesTable->getTargetWiki() !== false ) {
+ $source = $this->sitesTable->getTargetWiki() . '.' . $source;
+ }
+
+ $this->cacheKey = wfMemcKey( "$source/$type" );
+ }
+
+ wfProfileOut( __METHOD__ );
+ return $this->cacheKey;
+ }
+
+ /**
+ * @see SiteStore::getSites
+ *
+ * @since 1.21
+ *
+ * @param string $source either 'cache' or 'recache'
+ *
+ * @return SiteList
+ */
+ public function getSites( $source = 'cache' ) {
+ wfProfileIn( __METHOD__ );
+
+ if ( $source === 'cache' ) {
+ if ( $this->sites === null ) {
+ $cache = wfGetMainCache();
+ $sites = $cache->get( $this->getCacheKey() );
+
+ if ( is_object( $sites ) ) {
+ $this->sites = $sites;
+ } else {
+ $this->loadSites();
+ }
+ }
+ }
+ else {
+ $this->loadSites();
+ }
+
+ wfProfileOut( __METHOD__ );
+ return $this->sites;
+ }
+
+ /**
+ * Returns a new Site object constructed from the provided ORMRow.
+ *
+ * @since 1.21
+ *
+ * @param ORMRow $siteRow
+ *
+ * @return Site
+ */
+ protected function siteFromRow( ORMRow $siteRow ) {
+ wfProfileIn( __METHOD__ );
+
+ $site = Site::newForType( $siteRow->getField( 'type', Site::TYPE_UNKNOWN ) );
+
+ $site->setGlobalId( $siteRow->getField( 'global_key' ) );
+
+ $site->setInternalId( $siteRow->getField( 'id' ) );
+
+ if ( $siteRow->hasField( 'forward' ) ) {
+ $site->setForward( $siteRow->getField( 'forward' ) );
+ }
+
+ if ( $siteRow->hasField( 'group' ) ) {
+ $site->setGroup( $siteRow->getField( 'group' ) );
+ }
+
+ if ( $siteRow->hasField( 'language' ) ) {
+ $site->setLanguageCode( $siteRow->getField( 'language' ) === '' ? null : $siteRow->getField( 'language' ) );
+ }
+
+ if ( $siteRow->hasField( 'source' ) ) {
+ $site->setSource( $siteRow->getField( 'source' ) );
+ }
+
+ if ( $siteRow->hasField( 'data' ) ) {
+ $site->setExtraData( $siteRow->getField( 'data' ) );
+ }
+
+ if ( $siteRow->hasField( 'config' ) ) {
+ $site->setExtraConfig( $siteRow->getField( 'config' ) );
+ }
+
+ wfProfileOut( __METHOD__ );
+ return $site;
+ }
+
+ /**
+ * Fetches the site from the database and loads them into the sites field.
+ *
+ * @since 1.21
+ */
+ protected function loadSites() {
+ wfProfileIn( __METHOD__ );
+
+ $this->sites = new SiteList();
+
+ foreach ( $this->sitesTable->select() as $siteRow ) {
+ $this->sites[] = $this->siteFromRow( $siteRow );
+ }
+
+ // Batch load the local site identifiers.
+ $ids = wfGetDB( $this->sitesTable->getReadDb() )->select(
+ 'site_identifiers',
+ array(
+ 'si_site',
+ 'si_type',
+ 'si_key',
+ ),
+ array(),
+ __METHOD__
+ );
+
+ foreach ( $ids as $id ) {
+ if ( $this->sites->hasInternalId( $id->si_site ) ) {
+ $site = $this->sites->getSiteByInternalId( $id->si_site );
+ $site->addLocalId( $id->si_type, $id->si_key );
+ $this->sites->setSite( $site );
+ }
+ }
+
+ $cache = wfGetMainCache();
+ $cache->set( $this->getCacheKey(), $this->sites );
+
+ wfProfileOut( __METHOD__ );
+ }
+
+ /**
+ * @see SiteStore::getSite
+ *
+ * @since 1.21
+ *
+ * @param string $globalId
+ * @param string $source
+ *
+ * @return Site|null
+ */
+ public function getSite( $globalId, $source = 'cache' ) {
+ wfProfileIn( __METHOD__ );
+
+ $sites = $this->getSites( $source );
+
+ wfProfileOut( __METHOD__ );
+ return $sites->hasSite( $globalId ) ? $sites->getSite( $globalId ) : null;
+ }
+
+ /**
+ * @see SiteStore::saveSite
+ *
+ * @since 1.21
+ *
+ * @param Site $site
+ *
+ * @return boolean Success indicator
+ */
+ public function saveSite( Site $site ) {
+ return $this->saveSites( array( $site ) );
+ }
+
+ /**
+ * @see SiteStore::saveSites
+ *
+ * @since 1.21
+ *
+ * @param Site[] $sites
+ *
+ * @return boolean Success indicator
+ */
+ public function saveSites( array $sites ) {
+ wfProfileIn( __METHOD__ );
+
+ if ( empty( $sites ) ) {
+ wfProfileOut( __METHOD__ );
+ return true;
+ }
+
+ $dbw = $this->sitesTable->getWriteDbConnection();
+
+ $trx = $dbw->trxLevel();
+
+ if ( $trx == 0 ) {
+ $dbw->begin( __METHOD__ );
+ }
+
+ $success = true;
+
+ $internalIds = array();
+ $localIds = array();
+
+ foreach ( $sites as $site ) {
+ $fields = array(
+ // Site data
+ 'global_key' => $site->getGlobalId(), // TODO: check not null
+ 'type' => $site->getType(),
+ 'group' => $site->getGroup(),
+ 'source' => $site->getSource(),
+ 'language' => $site->getLanguageCode() === null ? '' : $site->getLanguageCode(),
+ 'protocol' => $site->getProtocol(),
+ 'domain' => strrev( $site->getDomain() ) . '.',
+ 'data' => $site->getExtraData(),
+
+ // Site config
+ 'forward' => $site->shouldForward(),
+ 'config' => $site->getExtraConfig(),
+ );
+
+ if ( $site->getInternalId() !== null ) {
+ $fields['id'] = $site->getInternalId();
+ $internalIds[] = $site->getInternalId();
+ }
+
+ $siteRow = new ORMRow( $this->sitesTable, $fields );
+ $success = $siteRow->save( __METHOD__ ) && $success;
+
+ foreach ( $site->getLocalIds() as $idType => $ids ) {
+ foreach ( $ids as $id ) {
+ $localIds[] = array( $siteRow->getId(), $idType, $id );
+ }
+ }
+ }
+
+ if ( $internalIds !== array() ) {
+ $dbw->delete(
+ 'site_identifiers',
+ array( 'si_site' => $internalIds ),
+ __METHOD__
+ );
+ }
+
+ foreach ( $localIds as $localId ) {
+ $dbw->insert(
+ 'site_identifiers',
+ array(
+ 'si_site' => $localId[0],
+ 'si_type' => $localId[1],
+ 'si_key' => $localId[2],
+ ),
+ __METHOD__
+ );
+ }
+
+ if ( $trx == 0 ) {
+ $dbw->commit( __METHOD__ );
+ }
+
+ // purge cache
+ $this->reset();
+
+ wfProfileOut( __METHOD__ );
+ return $success;
+ }
+
+ /**
+ * Purges the internal and external cache of the site list, forcing the list
+ * of sites to be re-read from the database.
+ *
+ * @since 1.21
+ */
+ public function reset() {
+ wfProfileIn( __METHOD__ );
+ // purge cache
+ $cache = wfGetMainCache();
+ $cache->delete( $this->getCacheKey() );
+ $this->sites = null;
+
+ wfProfileOut( __METHOD__ );
+ }
+
+ /**
+ * Clears the list of sites stored in the database.
+ *
+ * @see SiteStore::clear()
+ *
+ * @return bool success
+ */
+ public function clear() {
+ wfProfileIn( __METHOD__ );
+ $dbw = $this->sitesTable->getWriteDbConnection();
+
+ $trx = $dbw->trxLevel();
+
+ if ( $trx == 0 ) {
+ $dbw->begin( __METHOD__ );
+ }
+
+ $ok = $dbw->delete( 'sites', '*', __METHOD__ );
+ $ok = $dbw->delete( 'site_identifiers', '*', __METHOD__ ) && $ok;
+
+ if ( $trx == 0 ) {
+ $dbw->commit( __METHOD__ );
+ }
+
+ $this->reset();
+
+ wfProfileOut( __METHOD__ );
+ return $ok;
+ }
+
+ /**
+ * @since 1.21
+ *
+ * @return ORMTable
+ */
+ protected function newSitesTable() {
+ return new ORMTable(
+ 'sites',
+ array(
+ 'id' => 'id',
+
+ // Site data
+ 'global_key' => 'str',
+ 'type' => 'str',
+ 'group' => 'str',
+ 'source' => 'str',
+ 'language' => 'str',
+ 'protocol' => 'str',
+ 'domain' => 'str',
+ 'data' => 'array',
+
+ // Site config
+ 'forward' => 'bool',
+ 'config' => 'array',
+ ),
+ array(
+ 'type' => Site::TYPE_UNKNOWN,
+ 'group' => Site::GROUP_NONE,
+ 'source' => Site::SOURCE_LOCAL,
+ 'data' => array(),
+
+ 'forward' => false,
+ 'config' => array(),
+ 'language' => '',
+ ),
+ 'ORMRow',
+ 'site_'
+ );
+ }
+
+}
+
+/**
+ * @deprecated
+ */
+class Sites extends SiteSQLStore {
+
+ /**
+ * Factory for creating new site objects.
+ *
+ * @since 1.21
+ * @deprecated
+ *
+ * @param string|boolean false $globalId
+ *
+ * @return Site
+ */
+ public static function newSite( $globalId = false ) {
+ $site = new Site();
+
+ if ( $globalId !== false ) {
+ $site->setGlobalId( $globalId );
+ }
+
+ return $site;
+ }
+
+ /**
+ * @deprecated
+ * @return SiteStore
+ */
+ public static function singleton() {
+ static $singleton;
+
+ if ( $singleton === null ) {
+ $singleton = new static();
+ }
+
+ return $singleton;
+ }
+
+ /**
+ * @deprecated
+ * @return SiteList
+ */
+ public function getSiteGroup( $group ) {
+ return $this->getSites()->getGroup( $group );
+ }
+
+}
--- /dev/null
+<?php
+
+/**
+ * Interface for service objects providing a storage interface for Site objects.
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * 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
+ *
+ * @since 1.21
+ *
+ * @file
+ * @ingroup Site
+ *
+ * @license GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+interface SiteStore {
+
+ /**
+ * Saves the provided site.
+ *
+ * @since 1.21
+ *
+ * @param Site $site
+ *
+ * @return boolean Success indicator
+ */
+ public function saveSite( Site $site );
+
+ /**
+ * Saves the provided sites.
+ *
+ * @since 1.21
+ *
+ * @param Site[] $sites
+ *
+ * @return boolean Success indicator
+ */
+ public function saveSites( array $sites );
+
+ /**
+ * Returns the site with provided global id, or null if there is no such site.
+ *
+ * @since 1.21
+ *
+ * @param string $globalId
+ * @param string $source either 'cache' or 'recache'.
+ * If 'cache', the values are allowed (but not obliged) to come from a cache.
+ *
+ * @return Site|null
+ */
+ public function getSite( $globalId, $source = 'cache' );
+
+ /**
+ * Returns a list of all sites. By default this site is
+ * fetched from the cache, which can be changed to loading
+ * the list from the database using the $useCache parameter.
+ *
+ * @since 1.21
+ *
+ * @param string $source either 'cache' or 'recache'.
+ * If 'cache', the values are allowed (but not obliged) to come from a cache.
+ *
+ * @return SiteList
+ */
+ public function getSites( $source = 'cache' );
+
+ /**
+ * Deletes all sites from the database. After calling clear(), getSites() will return an empty
+ * list and getSite() will return null until saveSite() or saveSites() is called.
+ */
+ public function clear();
+}
+++ /dev/null
-<?php
-
-/**
- * Represents the site configuration of a wiki.
- * Holds a list of sites (ie SiteList) and takes care
- * of retrieving and caching site information when appropriate.
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * 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
- *
- * @since 1.21
- *
- * @file
- * @ingroup Site
- *
- * @license GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class Sites {
-
- /**
- * @since 1.21
- * @var SiteList|null
- */
- protected $sites = null;
-
- /**
- * Constructor.
- *
- * @since 1.21
- */
- protected function __construct() {}
-
- /**
- * Returns an instance of Sites.
- *
- * @since 1.21
- *
- * @return Sites
- */
- public static function singleton() {
- static $instance = false;
-
- if ( $instance === false ) {
- $instance = new static();
- }
-
- return $instance;
- }
-
- /**
- * Factory for creating new site objects.
- *
- * @since 1.21
- *
- * @param string|boolean false $globalId
- *
- * @return Site
- */
- public static function newSite( $globalId = false ) {
- /**
- * @var Site $site
- */
- $site = SitesTable::singleton()->newRow( array(), true );
-
- if ( $globalId !== false ) {
- $site->setGlobalId( $globalId );
- }
-
- return $site;
- }
-
- /**
- * Returns a list of all sites. By default this site is
- * fetched from the cache, which can be changed to loading
- * the list from the database using the $useCache parameter.
- *
- * @since 1.21
- *
- * @param string $source either 'cache' or 'recache'
- *
- * @return SiteList
- */
- public function getSites( $source = 'cache' ) {
- if ( $source === 'cache' ) {
- if ( $this->sites === null ) {
- $cache = wfGetMainCache();
- $sites = $cache->get( wfMemcKey( 'SiteList' ) );
-
- if ( is_object( $sites ) && isset( $sites->cacheVersion ) && $sites->cacheVersion === SiteArray::CACHE_VERSION ) {
- $this->sites = $sites;
- } else {
- $this->loadSites();
- }
- }
- }
- else {
- $this->loadSites();
- }
-
- return $this->sites;
- }
-
- /**
- * Returns a list of sites in the given group. Calling getGroup() on any of
- * the sites in the resulting SiteList shall return $group.
- *
- * @since 1.21
- *
- * @param string $group th group to get.
- *
- * @return SiteList
- */
- public function getSiteGroup( $group ) {
- $sites = self::getSites();
-
- $siteGroup = new SiteArray();
-
- /* @var Site $site */
- foreach ( $sites as $site ) {
- if ( $site->getGroup() == $group ) {
- $siteGroup->append( $site );
- }
- }
-
- return $siteGroup;
- }
-
- /**
- * Fetches the site from the database and loads them into the sites field.
- *
- * @since 1.21
- */
- protected function loadSites() {
- $this->sites = new SiteArray( SitesTable::singleton()->select() );
-
- // Batch load the local site identifiers.
- $dbr = wfGetDB( SitesTable::singleton()->getReadDb() );
-
- $ids = $dbr->select(
- 'site_identifiers',
- array(
- 'si_site',
- 'si_type',
- 'si_key',
- ),
- array(),
- __METHOD__
- );
-
- foreach ( $ids as $id ) {
- if ( $this->sites->hasInternalId( $id->si_site ) ) {
- $site = $this->sites->getSiteByInternalId( $id->si_site );
- $site->addLocalId( $id->si_type, $id->si_key );
- $this->sites->setSite( $site );
- }
- }
-
- $cache = wfGetMainCache();
- $cache->set( wfMemcKey( 'SiteList' ), $this->sites );
- }
-
- /**
- * Returns the site with provided global id, or false if there is no such site.
- *
- * @since 1.21
- *
- * @param string $globalId
- * @param string $source
- *
- * @return Site|false
- */
- public function getSite( $globalId, $source = 'cache' ) {
- $sites = $this->getSites( $source );
-
- return $sites->hasSite( $globalId ) ? $sites->getSite( $globalId ) : false;
- }
-
-}
+++ /dev/null
-<?php
-
-/**
- * Represents the sites database table.
- * All access to this table should be done through this class.
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * 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
- *
- * @since 1.21
- *
- * @file
- * @ingroup Site
- *
- * @license GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class SitesTable extends ORMTable {
-
- /**
- * @see IORMTable::getName()
- * @since 1.21
- * @return string
- */
- public function getName() {
- return 'sites';
- }
-
- /**
- * @see IORMTable::getFieldPrefix()
- * @since 1.21
- * @return string
- */
- public function getFieldPrefix() {
- return 'site_';
- }
-
- /**
- * @see IORMTable::getRowClass()
- * @since 1.21
- * @return string
- */
- public function getRowClass() {
- return 'SiteObject';
- }
-
- /**
- * @see IORMTable::getFields()
- * @since 1.21
- * @return array
- */
- public function getFields() {
- return array(
- 'id' => 'id',
-
- // Site data
- 'global_key' => 'str',
- 'type' => 'str',
- 'group' => 'str',
- 'source' => 'str',
- 'language' => 'str',
- 'protocol' => 'str',
- 'domain' => 'str',
- 'data' => 'array',
-
- // Site config
- 'forward' => 'bool',
- 'config' => 'array',
- );
- }
-
- /**
- * @see IORMTable::getDefaults()
- * @since 1.21
- * @return array
- */
- public function getDefaults() {
- return array(
- 'type' => Site::TYPE_UNKNOWN,
- 'group' => Site::GROUP_NONE,
- 'source' => Site::SOURCE_LOCAL,
- 'data' => array(),
-
- 'forward' => false,
- 'config' => array(),
- 'language' => 'en', // XXX: can we default to '' instead?
- );
- }
-
- /**
- * Returns the class name for the provided site type.
- *
- * @since 1.21
- *
- * @param integer $siteType
- *
- * @return string
- */
- protected static function getClassForType( $siteType ) {
- global $wgSiteTypes;
- return array_key_exists( $siteType, $wgSiteTypes ) ? $wgSiteTypes[$siteType] : 'SiteObject';
- }
-
- /**
- * Factory method to construct a new Site instance.
- *
- * @since 1.21
- *
- * @param array $data
- * @param boolean $loadDefaults
- *
- * @return Site
- */
- public function newRow( array $data, $loadDefaults = false ) {
- if ( !array_key_exists( 'type', $data ) ) {
- $data['type'] = Site::TYPE_UNKNOWN;
- }
-
- $class = static::getClassForType( $data['type'] );
-
- return new $class( $this, $data, $loadDefaults );
- }
-
-}
\ No newline at end of file
$request = $this->getRequest();
$this->filter = $request->getVal( 'filter', 'all' );
- if( $this->filter === 'all' ){
+ if( $this->filter === 'all' ) {
$this->custom = null; // So won't match in either case
} else {
$this->custom = ($this->filter == 'unmodified');
$prefix = $this->getLanguage()->ucfirst( $request->getVal( 'prefix', '' ) );
$prefix = $prefix != '' ? Title::makeTitleSafe( NS_MEDIAWIKI, $request->getVal( 'prefix', null ) ) : null;
- if( $prefix !== null ){
+ if( $prefix !== null ) {
$this->displayPrefix = $prefix->getDBkey();
$this->prefix = '/^' . preg_quote( $this->displayPrefix ) . '/i';
} else {
$msg = wfMessage( 'allmessages-language' );
$langSelect = Xml::languageSelector( $this->langcode, false, null, $attrs, $msg );
- $out = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'id' => 'mw-allmessages-form' ) ) .
+ $out = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'id' => 'mw-allmessages-form' ) ) .
Xml::fieldset( $this->msg( 'allmessages-filter-legend' )->text() ) .
Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
Xml::openElement( 'table', array( 'class' => 'mw-allmessages-table' ) ) . "\n" .
function getAllMessages( $descending ) {
wfProfileIn( __METHOD__ );
$messageNames = Language::getLocalisationCache()->getSubitemList( 'en', 'messages' );
- if( $descending ){
+ if( $descending ) {
rsort( $messageNames );
} else {
asort( $messageNames );
</tr></thead><tbody>\n";
}
- function formatValue( $field, $value ){
- switch( $field ){
+ function formatValue( $field, $value ) {
+ switch( $field ) {
case 'am_title' :
$title = Title::makeTitle( NS_MEDIAWIKI, $value . $this->suffix );
$talk = Title::makeTitle( NS_MEDIAWIKI_TALK, $value . $this->suffix );
- if( $this->mCurrentRow->am_customised ){
+ if( $this->mCurrentRow->am_customised ) {
$title = Linker::linkKnown( $title, $this->getLanguage()->lcfirst( $value ) );
} else {
$title = Linker::link(
);
}
if ( $this->mCurrentRow->am_talk_exists ) {
- $talk = Linker::linkKnown( $talk , $this->talk );
+ $talk = Linker::linkKnown( $talk, $this->talk );
} else {
$talk = Linker::link(
$talk,
return '';
}
- function formatRow( $row ){
+ function formatRow( $row ) {
// Do all the normal stuff
$s = parent::formatRow( $row );
// But if there's a customised message, add that too.
- if( $row->am_customised ){
+ if( $row->am_customised ) {
$s .= Xml::openElement( 'tr', $this->getRowAttrs( $row, true ) );
$formatted = strval( $this->formatValue( 'am_actual', $row->am_actual ) );
if ( $formatted == '' ) {
return $s;
}
- function getRowAttrs( $row, $isSecond = false ){
+ function getRowAttrs( $row, $isSecond = false ) {
$arr = array();
- if( $row->am_customised ){
+ if( $row->am_customised ) {
$arr['class'] = 'allmessages-customised';
}
- if( !$isSecond ){
+ if( !$isSecond ) {
$arr['id'] = Sanitizer::escapeId( 'msg_' . $this->getLanguage()->lcfirst( $row->am_title ) );
}
return $arr;
}
- function getCellAttrs( $field, $value ){
- if( $this->mCurrentRow->am_customised && $field == 'am_title' ){
+ function getCellAttrs( $field, $value ) {
+ if( $this->mCurrentRow->am_customised && $field == 'am_title' ) {
return array( 'rowspan' => '2', 'class' => $field );
} elseif( $field == 'am_title' ) {
return array( 'class' => $field );
return SpecialPage::getTitleFor( 'Allmessages', false );
}
- function isFieldSortable( $x ){
+ function isFieldSortable( $x ) {
return false;
}
- function getDefaultSort(){
+ function getDefaultSort() {
return '';
}
- function getQueryInfo(){
+ function getQueryInfo() {
return '';
}
}
-
*
* @param $name string: name of the special page, as seen in links and URLs (default: 'Allpages')
*/
- function __construct( $name = 'Allpages' ){
+ function __construct( $name = 'Allpages' ) {
parent::__construct( $name );
}
Xml::label( $this->msg( 'allpagesfrom' )->text(), 'nsfrom' ) .
" </td>
<td class='mw-input'>" .
- Xml::input( 'from', 30, str_replace('_',' ',$from), array( 'id' => 'nsfrom' ) ) .
+ Xml::input( 'from', 30, str_replace( '_', ' ', $from ), array( 'id' => 'nsfrom' ) ) .
" </td>
</tr>
<tr>
Xml::label( $this->msg( 'allpagesto' )->text(), 'nsto' ) .
" </td>
<td class='mw-input'>" .
- Xml::input( 'to', 30, str_replace('_',' ',$to), array( 'id' => 'nsto' ) ) .
+ Xml::input( 'to', 30, str_replace( '_', ' ', $to ), array( 'id' => 'nsto' ) ) .
" </td>
</tr>
<tr>
$from = ( $from && $from->isLocal() ) ? $from->getDBkey() : null;
$to = ( $to && $to->isLocal() ) ? $to->getDBkey() : null;
- if( isset($from) )
- $where[] = 'page_title >= '.$dbr->addQuotes( $from );
- if( isset($to) )
- $where[] = 'page_title <= '.$dbr->addQuotes( $to );
+ if( isset( $from ) )
+ $where[] = 'page_title >= ' . $dbr->addQuotes( $from );
+ if( isset( $to ) )
+ $where[] = 'page_title <= ' . $dbr->addQuotes( $to );
global $wgMemc;
$key = wfMemcKey( 'allpages', 'ns', $namespace, $from, $to );
$lines = $wgMemc->get( $key );
$count = $dbr->estimateRowCount( 'page', '*', $where, __METHOD__ );
- $maxPerSubpage = intval($count/$this->maxLineCount);
- $maxPerSubpage = max($maxPerSubpage,$this->maxPerPage);
+ $maxPerSubpage = intval( $count / $this->maxLineCount );
+ $maxPerSubpage = max( $maxPerSubpage, $this->maxPerPage );
if( !is_array( $lines ) ) {
$options = array( 'LIMIT' => 1 );
: array( 'page_title >= ' . $dbr->addQuotes( $lastTitle ) );
$res = $dbr->select( 'page', /* FROM */
'page_title', /* WHAT */
- array_merge($where,$chunk),
+ array_merge( $where, $chunk ),
__METHOD__,
- array ('LIMIT' => 2, 'OFFSET' => $maxPerSubpage - 1, 'ORDER BY' => 'page_title ASC')
+ array( 'LIMIT' => 2, 'OFFSET' => $maxPerSubpage - 1, 'ORDER BY' => 'page_title ASC' )
);
$s = $dbr->fetchObject( $res );
} else {
// Final chunk, but ended prematurely. Go back and find the end.
$endTitle = $dbr->selectField( 'page', 'MAX(page_title)',
- array_merge($where,$chunk),
+ array_merge( $where, $chunk ),
__METHOD__ );
array_push( $lines, $endTitle );
$done = true;
if( $this->including() ) {
$out2 = '';
} else {
- if( isset($from) || isset($to) ) {
+ if( isset( $from ) || isset( $to ) ) {
$out2 = Xml::openElement( 'table', array( 'class' => 'mw-allpages-table-form' ) ).
'<tr>
<td>' .
$queryparams = $namespace ? "namespace=$namespace&" : '';
$queryhideredirects = array();
- if ($hideredirects) {
+ if ( $hideredirects ) {
$queryhideredirects[ 'hideredirects' ] = 1;
}
$special = $this->getTitle();
- $link = htmlspecialchars( $special->getLocalUrl( $queryparams . 'from=' . urlencode($inpoint) . '&to=' . urlencode($outpoint), $queryhideredirects ) );
+ $link = htmlspecialchars( $special->getLocalUrl( $queryparams . 'from=' . urlencode( $inpoint ) . '&to=' . urlencode( $outpoint ), $queryhideredirects ) );
$out = $this->msg( 'alphaindexline' )->rawParams(
"<a href=\"$link\">$inpointf</a></td><td>",
global $wgContLang;
$output = $this->getOutput();
- $fromList = $this->getNamespaceKeyAndText($namespace, $from);
+ $fromList = $this->getNamespaceKeyAndText( $namespace, $from );
$toList = $this->getNamespaceKeyAndText( $namespace, $to );
$namespaces = $wgContLang->getNamespaces();
$n = 0;
$res_prev = $dbr->select(
'page',
'page_title',
- array( 'page_namespace' => $namespace, 'page_title < '.$dbr->addQuotes($from) ),
+ array( 'page_namespace' => $namespace, 'page_title < ' . $dbr->addQuotes( $from ) ),
__METHOD__,
array( 'ORDER BY' => 'page_title DESC',
- 'LIMIT' => $this->maxPerPage, 'OFFSET' => ($this->maxPerPage - 1 )
+ 'LIMIT' => $this->maxPerPage, 'OFFSET' => ( $this->maxPerPage - 1 )
)
);
array( 'page_namespace' => $namespace ), __METHOD__, $options );
# Show the previous link if it s not the current requested chunk
if( $from != $reallyFirstPage_title ) {
- $prevTitle = Title::makeTitle( $namespace, $reallyFirstPage_title );
+ $prevTitle = Title::makeTitle( $namespace, $reallyFirstPage_title );
} else {
$prevTitle = null;
}
if( $n == $this->maxPerPage && $s = $res->fetchObject() ) {
# $s is the first link of the next chunk
- $t = Title::makeTitle($namespace, $s->page_title);
+ $t = Title::makeTitle( $namespace, $s->page_title );
$query = array( 'from' => $t->getText() );
if( $namespace )
* @param $text String: the name of the article
* @return array( int namespace, string dbkey, string pagename ) or NULL on error
*/
- protected function getNamespaceKeyAndText($ns, $text) {
+ protected function getNamespaceKeyAndText( $ns, $text ) {
if ( $text == '' )
return array( $ns, '', '' ); # shortcut for common case
- $t = Title::makeTitleSafe($ns, $text);
+ $t = Title::makeTitleSafe( $ns, $text );
if ( $t && $t->isLocal() ) {
return array( $t->getNamespace(), $t->getDBkey(), $t->getText() );
} elseif ( $t ) {
}
# try again, in case the problem was an empty pagename
- $text = preg_replace('/(#|$)/', 'X$1', $text);
- $t = Title::makeTitleSafe($ns, $text);
+ $text = preg_replace( '/(#|$)/', 'X$1', $text );
+ $t = Title::makeTitleSafe( $ns, $text );
if ( $t && $t->isLocal() ) {
return array( $t->getNamespace(), '', '' );
} else {
);
}
- $text = Html::rawElement(
+ $text = Html::rawElement(
'p',
array( 'class' => 'mw-ipb-conveniencelinks' ),
$this->getLanguage()->pipeList( $links )
}
if ( $data['HideUser'] ) {
- if ( !$performer->isAllowed('hideuser') ) {
+ if ( !$performer->isAllowed( 'hideuser' ) ) {
# this codepath is unreachable except by a malicious user spoofing forms,
# or by race conditions (user has oversight and sysop, loads block form,
# and is de-oversighted before submission); so need to fail completely
$conds = array();
# Is the user allowed to see hidden blocks?
- if ( !$this->getUser()->isAllowed( 'hideuser' ) ){
+ if ( !$this->getUser()->isAllowed( 'hideuser' ) ) {
$conds['ipb_deleted'] = 0;
}
- if ( $this->target !== '' ){
+ if ( $this->target !== '' ) {
list( $target, $type ) = Block::parseTarget( $this->target );
- switch( $type ){
+ switch( $type ) {
case Block::TYPE_ID:
case Block::TYPE_AUTO:
$conds['ipb_id'] = $target;
break;
case 'ipb_target':
- if( $row->ipb_auto ){
+ if( $row->ipb_auto ) {
$formatted = $this->msg( 'autoblockid', $row->ipb_id )->parse();
} else {
list( $target, $type ) = Block::parseTarget( $row->ipb_address );
- switch( $type ){
+ switch( $type ) {
case Block::TYPE_USER:
case Block::TYPE_IP:
$formatted = Linker::userLink( $target->getId(), $target );
case 'ipb_expiry':
$formatted = $this->getLanguage()->formatExpiry( $value, /* User preference timezone */ true );
- if( $this->getUser()->isAllowed( 'block' ) ){
- if( $row->ipb_auto ){
+ if( $this->getUser()->isAllowed( 'block' ) ) {
+ if( $row->ipb_auto ) {
$links[] = Linker::linkKnown(
SpecialPage::getTitleFor( 'Unblock' ),
$msg['unblocklink'],
);
# Is the user allowed to see hidden blocks?
- if ( !$this->getUser()->isAllowed( 'hideuser' ) ){
+ if ( !$this->getUser()->isAllowed( 'hideuser' ) ) {
$info['conds']['ipb_deleted'] = 0;
}
return $info;
}
- public function getTableClass(){
+ public function getTableClass() {
return 'TablePager mw-blocklist';
}
* Do a LinkBatch query to minimise database load when generating all these links
* @param $result
*/
- function preprocessResults( $result ){
+ function preprocessResults( $result ) {
wfProfileIn( __METHOD__ );
# Do a link batch query
$lb = new LinkBatch;
}
$ua = UserArray::newFromIDs( $userids );
- foreach( $ua as $user ){
+ foreach( $ua as $user ) {
$name = str_replace( ' ', '_', $user->getName() );
$lb->add( NS_USER, $name );
$lb->add( NS_USER_TALK, $name );
}
function getQueryInfo() {
+ $dbr = wfGetDB( DB_SLAVE );
return array(
'tables' => array(
'redirect',
// but aren't "broken" either.
// Special pages and interwiki links
'rd_namespace >= 0',
- '(rd_interwiki IS NULL OR rd_interwiki = "")',
+ 'rd_interwiki IS NULL OR rd_interwiki = ' . $dbr->addQuotes( '' ),
'p2.page_namespace IS NULL',
),
'join_conds' => array(
if ( $type != 'text' ) {
$out .= Xml::label( $this->msg( $label )->text(), $name );
} else {
- $out .= $this->msg( $label )->escaped();
+ $out .= $this->msg( $label )->escaped();
}
$out .= "</td>\n";
$out .= "\t<td class='mw-input'>";
* @param $msg string
*/
function error( $msg ) {
- $this->getOutput()->addHTML( Xml::element('p', array( 'class' => 'error' ), $msg ) );
+ $this->getOutput()->addHTML( Xml::element( 'p', array( 'class' => 'error' ), $msg ) );
}
function showForm() {
if ( $type != 'text' )
$out .= Xml::label( $this->msg( $label )->text(), $name );
else
- $out .= $this->msg( $label )->escaped();
+ $out .= $this->msg( $label )->escaped();
$out .= "</td>\n";
$out .= "\t<td class='mw-input'>";
$out .= $field;
throw new PasswordError( $this->msg( 'login-throttled' )->text() );
}
- if( !$user->checkTemporaryPassword($this->mOldpass) && !$user->checkPassword($this->mOldpass) ) {
+ if( !$user->checkTemporaryPassword( $this->mOldpass ) && !$user->checkPassword( $this->mOldpass ) ) {
wfRunHooks( 'PrefsPasswordAudit', array( $user, $newpass, 'wrongpassword' ) );
throw new PasswordError( $this->msg( 'resetpass-wrong-oldpass' )->text() );
}
$form->trySubmit();
}
- public static function showDiff( $data, HTMLForm $form ){
+ public static function showDiff( $data, HTMLForm $form ) {
$rev1 = self::revOrTitle( $data['Revision1'], $data['Page1'] );
$rev2 = self::revOrTitle( $data['Revision2'], $data['Page2'] );
}
public static function revOrTitle( $revision, $title ) {
- if( $revision ){
+ if( $revision ) {
return $revision;
} elseif( $title ) {
$title = Title::newFromText( $title );
- if( $title instanceof Title ){
+ if( $title instanceof Title ) {
return $title->getLatestRevID();
}
}
$apiParams['month'] = $this->opts['month'];
}
- $url = wfScript( 'api' ) . '?' . wfArrayToCGI( $apiParams );
+ $url = wfScript( 'api' ) . '?' . wfArrayToCgi( $apiParams );
$out->redirect( $url, '301' );
return;
$user = $this->getUser();
- if( $user->isAllowed('deletedtext') ) {
+ if( $user->isAllowed( 'deletedtext' ) ) {
$last = Linker::linkKnown(
$undelete,
$this->messages['diff'],
if ( !isset( $options['target'] ) ) {
$options['target'] = '';
} else {
- $options['target'] = str_replace( '_' , ' ' , $options['target'] );
+ $options['target'] = str_replace( '_', ' ', $options['target'] );
}
if ( !isset( $options['namespace'] ) ) {
$f .= "\t" . Html::hidden( $name, $value ) . "\n";
}
- $f .= Xml::openElement( 'fieldset' ) .
+ $f .= Xml::openElement( 'fieldset' ) .
Xml::element( 'legend', array(), $this->msg( 'sp-contributions-search' )->text() ) .
Xml::tags( 'label', array( 'for' => 'target' ), $this->msg( 'sp-contributions-username' )->parse() ) . ' ' .
Html::input( 'target', $options['target'], 'text', array(
function reallyGetQueryInfo( $namespace = null, $title = null ) {
$limitToTitle = !( $namespace === null && $title === null );
+ $dbr = wfGetDB( DB_SLAVE );
$retval = array (
'tables' => array (
'ra' => 'redirect',
// Need to check both NULL and "" for some reason,
// apparently either can be stored for non-iw entries.
- '(ra.rd_interwiki IS NULL OR ra.rd_interwiki = "")',
+ 'ra.rd_interwiki IS NULL OR ra.rd_interwiki = ' . $dbr->addQuotes( '' ),
'pb.page_namespace = ra.rd_namespace',
'pb.page_title = ra.rd_title',
$dbr = wfGetDB( DB_SLAVE );
$qi = $this->reallyGetQueryInfo( $result->namespace,
$result->title );
- $res = $dbr->select($qi['tables'], $qi['fields'],
+ $res = $dbr->select( $qi['tables'], $qi['fields'],
$qi['conds'], __METHOD__ );
if ( $res ) {
$result = $dbr->fetchObject( $res );
}
$titleB = Title::makeTitle( $result->nsb, $result->tb );
- $titleC = Title::makeTitle( $result->nsc, $result->tc, '', $result->iwc );
+ $titleC = Title::makeTitle( $result->nsc, $result->tc, '', $result->iwc );
$linkA = Linker::linkKnown(
$titleA,
private $badItems = array();
- public function __construct(){
+ public function __construct() {
parent::__construct( 'EditWatchlist' );
}
# B/C: $mode used to be waaay down the parameter list, and the first parameter
# was $wgUser
- if( $mode instanceof User ){
+ if( $mode instanceof User ) {
$args = func_get_args();
- if( count( $args >= 4 ) ){
+ if( count( $args >= 4 ) ) {
$mode = $args[3];
}
}
case self::EDIT_RAW:
$out->setPageTitle( $this->msg( 'watchlistedit-raw-title' ) );
$form = $this->getRawForm();
- if( $form->show() ){
+ if( $form->show() ) {
$out->addHTML( $this->successMessage );
$out->addReturnTo( SpecialPage::getTitleFor( 'Watchlist' ) );
}
default:
$out->setPageTitle( $this->msg( 'watchlistedit-normal-title' ) );
$form = $this->getNormalForm();
- if( $form->show() ){
+ if( $form->show() ) {
$out->addHTML( $this->successMessage );
$out->addReturnTo( SpecialPage::getTitleFor( 'Watchlist' ) );
} elseif ( $this->toc !== false ) {
return array_unique( $list );
}
- public function submitRaw( $data ){
+ public function submitRaw( $data ) {
$wanted = $this->extractTitles( $data['Titles'] );
$current = $this->getWatchlist();
$this->unwatchTitles( $toUnwatch );
$this->getUser()->invalidateCache();
- if( count( $toWatch ) > 0 || count( $toUnwatch ) > 0 ){
+ if( count( $toWatch ) > 0 || count( $toUnwatch ) > 0 ) {
$this->successMessage = $this->msg( 'watchlistedit-raw-done' )->parse();
} else {
return false;
$this->clearWatchlist();
$this->getUser()->invalidateCache();
- if( count( $current ) > 0 ){
+ if( count( $current ) > 0 ) {
$this->successMessage = $this->msg( 'watchlistedit-raw-done' )->parse();
} else {
return false;
$res = $dbr->select(
array( 'watchlist' ),
- array( 'wl_namespace', 'wl_title' ),
+ array( 'wl_namespace', 'wl_title' ),
array( 'wl_user' => $this->getUser()->getId() ),
__METHOD__,
array( 'ORDER BY' => array( 'wl_namespace', 'wl_title' ) )
*
* @return HTMLForm
*/
- protected function getNormalForm(){
+ protected function getNormalForm() {
global $wgContLang;
$fields = array();
$count = 0;
- foreach( $this->getWatchlistInfo() as $namespace => $pages ){
+ foreach( $this->getWatchlistInfo() as $namespace => $pages ) {
if ( $namespace >= 0 ) {
- $fields['TitlesNs'.$namespace] = array(
+ $fields['TitlesNs' . $namespace] = array(
'class' => 'EditWatchlistCheckboxSeriesField',
'options' => array(),
'section' => "ns$namespace",
);
}
- foreach( array_keys( $pages ) as $dbkey ){
+ foreach( array_keys( $pages ) as $dbkey ) {
$title = Title::makeTitleSafe( $namespace, $dbkey );
if ( $this->checkTitle( $title, $namespace, $dbkey ) ) {
$text = $this->buildRemoveLine( $title );
- $fields['TitlesNs'.$namespace]['options'][$text] = $title->getPrefixedText();
+ $fields['TitlesNs' . $namespace]['options'][$text] = $title->getPrefixedText();
$count++;
}
}
$form->setTitle( $this->getTitle() );
$form->setSubmitTextMsg( 'watchlistedit-normal-submit' );
# Used message keys: 'accesskey-watchlistedit-normal-submit', 'tooltip-watchlistedit-normal-submit'
- $form->setSubmitTooltip('watchlistedit-normal-submit');
+ $form->setSubmitTooltip( 'watchlistedit-normal-submit' );
$form->setWrapperLegendMsg( 'watchlistedit-normal-legend' );
$form->addHeaderText( $this->msg( 'watchlistedit-normal-explain' )->parse() );
$form->setSubmitCallback( array( $this, 'submitNormal' ) );
*
* @return HTMLForm
*/
- protected function getRawForm(){
+ protected function getRawForm() {
$titles = implode( $this->getWatchlist(), "\n" );
$fields = array(
'Titles' => array(
$form->setTitle( $this->getTitle( 'raw' ) );
$form->setSubmitTextMsg( 'watchlistedit-raw-submit' );
# Used message keys: 'accesskey-watchlistedit-raw-submit', 'tooltip-watchlistedit-raw-submit'
- $form->setSubmitTooltip('watchlistedit-raw-submit');
+ $form->setSubmitTooltip( 'watchlistedit-raw-submit' );
$form->setWrapperLegendMsg( 'watchlistedit-raw-legend' );
$form->addHeaderText( $this->msg( 'watchlistedit-raw-explain' )->parse() );
$form->setSubmitCallback( array( $this, 'submitRaw' ) );
* Extend HTMLForm purely so we can have a more sane way of getting the section headers
*/
class EditWatchlistNormalHTMLForm extends HTMLForm {
- public function getLegend( $namespace ){
+ public function getLegend( $namespace ) {
$namespace = substr( $namespace, 2 );
return $namespace == NS_MAIN
? $this->msg( 'blanknamespace' )->escaped()
$this->setHeaders();
$this->outputHeader();
- $this->filename = isset( $par ) ? $par : $this->getRequest()->getText( 'filename' );
+ $this->filename = isset( $par ) ? $par : $this->getRequest()->getText( 'filename' );
$this->file = null;
$this->hash = '';
$title = Title::newFromText( $this->filename, NS_FILE );
throw new PermissionsError( 'importupload' );
}
} elseif ( $sourceName == "interwiki" ) {
- if( !$user->isAllowed( 'import' ) ){
+ if( !$user->isAllowed( 'import' ) ) {
throw new PermissionsError( 'import' );
}
$this->interwiki = $request->getVal( 'interwiki' );
$out->addWikiMsg( "importstart" );
- $reporter = new ImportReporter( $importer, $isUpload, $this->interwiki , $this->logcomment);
+ $reporter = new ImportReporter( $importer, $isUpload, $this->interwiki, $this->logcomment );
$reporter->setContext( $this->getContext() );
$exception = false;
$detail = $this->msg( 'import-logentry-upload-detail' )->numParams(
$successCount )->inContentLanguage()->text();
if ( $this->reason ) {
- $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text() . $this->reason;
+ $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text() . $this->reason;
}
$log->addEntry( 'upload', $title, $detail );
} else {
$detail = $this->msg( 'import-logentry-interwiki-detail' )->numParams(
$successCount )->params( $interwiki )->inContentLanguage()->text();
if ( $this->reason ) {
- $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text() . $this->reason;
+ $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text() . $this->reason;
}
$log->addEntry( 'interwiki', $title, $detail );
}
$dbw = wfGetDB( DB_MASTER );
$latest = $title->getLatestRevID();
$nullRevision = Revision::newNullRevision( $dbw, $title->getArticleID(), $comment, true );
- if (!is_null($nullRevision)) {
+ if ( !is_null( $nullRevision ) ) {
$nullRevision->insertOn( $dbw );
$page = WikiPage::factory( $title );
# Update page record
class SpecialListFiles extends IncludableSpecialPage {
- public function __construct(){
+ public function __construct() {
parent::__construct( 'Listfiles' );
}
- public function execute( $par ){
+ public function execute( $par ) {
$this->setHeaders();
$this->outputHeader();
* @param $removeSelf Array of group this group is allowed to remove from self or true
* @return string List of all granted permissions, separated by comma separator
*/
- private function formatPermissions( $permissions, $revoke, $add, $remove, $addSelf, $removeSelf ) {
+ private function formatPermissions( $permissions, $revoke, $add, $remove, $addSelf, $removeSelf ) {
$r = array();
foreach( $permissions as $permission => $granted ) {
//show as granted only if it isn't revoked to prevent duplicate display of permissions
}
sort( $r );
$lang = $this->getLanguage();
- if( $add === true ){
+ if( $add === true ) {
$r[] = $this->msg( 'listgrouprights-addgroup-all' )->escaped();
} elseif( is_array( $add ) && count( $add ) ) {
$add = array_values( array_unique( $add ) );
count( $add )
)->parse();
}
- if( $remove === true ){
+ if( $remove === true ) {
$r[] = $this->msg( 'listgrouprights-removegroup-all' )->escaped();
} elseif( is_array( $remove ) && count( $remove ) ) {
$remove = array_values( array_unique( $remove ) );
count( $remove )
)->parse();
}
- if( $addSelf === true ){
+ if( $addSelf === true ) {
$r[] = $this->msg( 'listgrouprights-addgroup-self-all' )->escaped();
} elseif( is_array( $addSelf ) && count( $addSelf ) ) {
$addSelf = array_values( array_unique( $addSelf ) );
count( $addSelf )
)->parse();
}
- if( $removeSelf === true ){
+ if( $removeSelf === true ) {
$r[] = $this->msg( 'listgrouprights-removegroup-self-all' )->parse();
} elseif( is_array( $removeSelf ) && count( $removeSelf ) ) {
$removeSelf = array_values( array_unique( $removeSelf ) );
*/
class SpecialNewFiles extends IncludableSpecialPage {
- public function __construct(){
+ public function __construct() {
parent::__construct( 'Newimages' );
}
- public function execute( $par ){
+ public function execute( $par ) {
$this->setHeaders();
$this->outputHeader();
function __construct( IContextSource $context, $par = null ) {
$this->like = $context->getRequest()->getText( 'like' );
- $this->showbots = $context->getRequest()->getBool( 'showbots' , 0 );
+ $this->showbots = $context->getRequest()->getBool( 'showbots', 0 );
if ( is_numeric( $par ) ) {
$this->setLimit( $par );
}
}
}
- if( !$wgMiserMode && $this->like !== null ){
+ if( !$wgMiserMode && $this->like !== null ) {
$dbr = wfGetDB( DB_SLAVE );
$likeObj = Title::newFromURL( $this->like );
- if( $likeObj instanceof Title ){
+ if( $likeObj instanceof Title ) {
$like = $dbr->buildLike( $dbr->anyString(), strtolower( $likeObj->getDBkey() ), $dbr->anyString() );
$conds[] = "LOWER(img_name) $like";
}
return $query;
}
- function getIndexField(){
+ function getIndexField() {
return 'img_timestamp';
}
- function getStartBody(){
+ function getStartBody() {
if ( !$this->gallery ) {
$this->gallery = new ImageGallery();
}
return '';
}
- function getEndBody(){
+ function getEndBody() {
return $this->gallery->toHTML();
}
),
);
- if( $wgMiserMode ){
+ if( $wgMiserMode ) {
unset( $fields['like'] );
}
}
// PG offsets not just digits!
if ( preg_match( '/^offset=([^=]+)$/', $bit, $m ) ) {
- $this->opts->setValue( 'offset', intval( $m[1] ) );
+ $this->opts->setValue( 'offset', intval( $m[1] ) );
}
if ( preg_match( '/^username=(.*)$/', $bit, $m ) ) {
$this->opts->setValue( 'username', $m[1] );
if ( preg_match( '/^namespace=(.*)$/', $bit, $m ) ) {
$ns = $this->getLanguage()->getNsIndex( $m[1] );
if( $ns !== false ) {
- $this->opts->setValue( 'namespace', $ns );
+ $this->opts->setValue( 'namespace', $ns );
}
}
}
$allValues = $this->opts->getAllValues();
unset( $allValues['feed'] );
- $out->setFeedAppendQuery( wfArrayToCGI( $allValues ) );
+ $out->setFeedAppendQuery( wfArrayToCgi( $allValues ) );
}
$pager = new NewPagesPager( $this, $this->opts );
);
}
- if( $this->getUser()->isAllowed( 'passwordreset' ) ){
+ if( $this->getUser()->isAllowed( 'passwordreset' ) ) {
$a['Capture'] = array(
'type' => 'check',
'label-message' => 'passwordreset-capture',
}
}
- if( isset( $data['Capture'] ) && !$this->getUser()->isAllowed( 'passwordreset' ) ){
+ if( isset( $data['Capture'] ) && !$this->getUser()->isAllowed( 'passwordreset' ) ) {
// The user knows they don't have the passwordreset permission, but they tried to spoof the form. That's naughty
throw new PermissionsError( 'passwordreset' );
}
);
if ( $res ) {
$users = array();
- foreach( $res as $row ){
+ foreach( $res as $row ) {
$users[] = User::newFromRow( $row );
}
} else {
return array( $error );
}
- if( count( $users ) == 0 ){
- if( $method == 'email' ){
+ if( count( $users ) == 0 ) {
+ if( $method == 'email' ) {
// Don't reveal whether or not an email address is in use
return true;
} else {
if ( $this->result->isGood() ) {
return true;
- } elseif( isset( $data['Capture'] ) && $data['Capture'] ){
+ } elseif( isset( $data['Capture'] ) && $data['Capture'] ) {
// The email didn't send, but maybe they knew that and that's why they captured it
return true;
} else {
}
public function onSuccess() {
- if( $this->getUser()->isAllowed( 'passwordreset' ) && $this->email != null ){
+ if( $this->getUser()->isAllowed( 'passwordreset' ) && $this->email != null ) {
// @todo: Logging
- if( $this->result->isGood() ){
+ if( $this->result->isGood() ) {
$this->getOutput()->addWikiMsg( 'passwordreset-emailsent-capture' );
} else {
$this->getOutput()->addWikiMsg( 'passwordreset-emailerror-capture', $this->result->getMessage() );
class SpecialPrefixindex extends SpecialAllpages {
// Inherit $maxPerPage
- function __construct(){
+ function __construct() {
parent::__construct( 'Prefixindex' );
}
Xml::label( $this->msg( 'allpagesprefix' )->text(), 'nsfrom' ) .
"</td>
<td class='mw-input'>" .
- Xml::input( 'prefix', 30, str_replace('_',' ',$from), array( 'id' => 'nsfrom' ) ) .
+ Xml::input( 'prefix', 30, str_replace( '_', ' ', $from ), array( 'id' => 'nsfrom' ) ) .
"</td>
</tr>
<tr>
$from = $prefix;
}
- $fromList = $this->getNamespaceKeyAndText($namespace, $from);
- $prefixList = $this->getNamespaceKeyAndText($namespace, $prefix);
+ $fromList = $this->getNamespaceKeyAndText( $namespace, $from );
+ $prefixList = $this->getNamespaceKeyAndText( $namespace, $prefix );
$namespaces = $wgContLang->getNamespaces();
if ( !$prefixList || !$fromList ) {
} else {
$nsForm = $this->namespacePrefixForm( $namespace, $prefix, $hideredirects );
$self = $this->getTitle();
- $out2 = Xml::openElement( 'table', array( 'id' => 'mw-prefixindex-nav-table' ) ) .
+ $out2 = Xml::openElement( 'table', array( 'id' => 'mw-prefixindex-nav-table' ) ) .
'<tr>
<td>' .
$nsForm .
}
$nextLink = Linker::linkKnown(
$self,
- $this->msg( 'nextpage', str_replace( '_',' ', $s->page_title ) )->escaped(),
+ $this->msg( 'nextpage', str_replace( '_', ' ', $s->page_title ) )->escaped(),
array(),
$query
);
static $infinity = null;
- if( is_null( $infinity ) ){
+ if( is_null( $infinity ) ) {
$infinity = wfGetDB( DB_SLAVE )->getInfinity();
}
static $infinity = null;
- if( is_null( $infinity ) ){
+ if( is_null( $infinity ) ) {
$infinity = wfGetDB( DB_SLAVE )->getInfinity();
}
return 'pt_timestamp';
}
}
-
protected $isRedir = false; // should the result be a redirect?
protected $extra = array(); // Extra SQL statements
- public function __construct( $name = 'Randompage' ){
+ public function __construct( $name = 'Randompage' ) {
$this->namespaces = MWNamespace::getContentNamespaces();
parent::__construct( $name );
}
}
// select redirects instead of normal pages?
- public function isRedirect(){
+ public function isRedirect() {
return $this->isRedir;
}
* @ingroup SpecialPage
*/
class SpecialRandomredirect extends RandomPage {
- function __construct(){
+ function __construct() {
parent::__construct( 'Randomredirect' );
$this->isRedir = true;
}
public function getDefaultOptions() {
$opts = new FormOptions();
- $opts->add( 'days', (int)$this->getUser()->getOption( 'rcdays' ) );
+ $opts->add( 'days', (int)$this->getUser()->getOption( 'rcdays' ) );
$opts->add( 'limit', (int)$this->getUser()->getOption( 'rclimit' ) );
$opts->add( 'from', '' );
- $opts->add( 'hideminor', $this->getUser()->getBoolOption( 'hideminor' ) );
- $opts->add( 'hidebots', true );
- $opts->add( 'hideanons', false );
- $opts->add( 'hideliu', false );
+ $opts->add( 'hideminor', $this->getUser()->getBoolOption( 'hideminor' ) );
+ $opts->add( 'hidebots', true );
+ $opts->add( 'hideanons', false );
+ $opts->add( 'hideliu', false );
$opts->add( 'hidepatrolled', $this->getUser()->getBoolOption( 'hidepatrolled' ) );
- $opts->add( 'hidemyself', false );
+ $opts->add( 'hidemyself', false );
$opts->add( 'namespace', '', FormOptions::INTNULL );
$opts->add( 'invert', false );
// Fetch results, prepare a batch link existence check query
$conds = $this->buildMainQueryConds( $opts );
$rows = $this->doMainQuery( $conds, $opts );
- if( $rows === false ){
+ if( $rows === false ) {
if( !$this->including() ) {
$this->doHeader( $opts );
}
*
* @return Array
*/
- public function getFeedObject( $feedFormat ){
+ public function getFeedObject( $feedFormat ) {
$changesFeed = new ChangesFeed( $feedFormat, 'rcfeed' );
$formatter = $changesFeed->getFeedObject(
$this->msg( 'recentchanges' )->inContentLanguage()->text(),
}
if( is_numeric( $bit ) ) {
- $opts['limit'] = $bit;
+ $opts['limit'] = $bit;
}
$m = array();
# It makes no sense to hide both anons and logged-in users
# Where this occurs, force anons to be shown
$forcebot = false;
- if( $opts['hideanons'] && $opts['hideliu'] ){
+ if( $opts['hideanons'] && $opts['hideliu'] ) {
# Check if the user wants to show bots only
- if( $opts['hidebots'] ){
+ if( $opts['hidebots'] ) {
$opts['hideanons'] = false;
} else {
$forcebot = true;
$cutoff_unixtime = $cutoff_unixtime - ($cutoff_unixtime % 86400);
$cutoff = $dbr->timestamp( $cutoff_unixtime );
- $fromValid = preg_match('/^[0-9]{14}$/', $opts['from']);
- if( $fromValid && $opts['from'] > wfTimestamp(TS_MW,$cutoff) ) {
- $cutoff = $dbr->timestamp($opts['from']);
+ $fromValid = preg_match( '/^[0-9]{14}$/', $opts['from'] );
+ if( $fromValid && $opts['from'] > wfTimestamp( TS_MW, $cutoff ) ) {
+ $cutoff = $dbr->timestamp( $opts['from'] );
} else {
$opts->reset( 'from' );
}
$tables[] = 'watchlist';
$fields[] = 'wl_user';
$fields[] = 'wl_notificationtimestamp';
- $join_conds['watchlist'] = array('LEFT JOIN', array(
+ $join_conds['watchlist'] = array( 'LEFT JOIN', array(
'wl_user' => $uid,
'wl_title=rc_title',
'wl_namespace=rc_namespace'
if ( $this->getUser()->isAllowed( 'rollback' ) ) {
$tables[] = 'page';
$fields[] = 'page_latest';
- $join_conds['page'] = array('LEFT JOIN', 'rc_cur_id=page_id');
+ $join_conds['page'] = array( 'LEFT JOIN', 'rc_cur_id=page_id' );
}
// Tag stuff.
ChangeTags::modifyDisplayQuery(
* @param $opts FormOptions
*/
function filterByCategories( &$rows, FormOptions $opts ) {
- $categories = array_map( 'trim', explode( '|' , $opts['categories'] ) );
+ $categories = array_map( 'trim', explode( '|', $opts['categories'] ) );
if( !count( $categories ) ) {
return;
class SpecialRecentchangeslinked extends SpecialRecentChanges {
var $rclTargetTitle;
- function __construct(){
+ function __construct() {
parent::__construct( 'Recentchangeslinked' );
}
return $opts;
}
- public function getFeedObject( $feedFormat ){
+ public function getFeedObject( $feedFormat ) {
$feed = new ChangesFeed( $feedFormat, false );
$feedObj = $feed->getFeedObject(
$this->msg( 'recentchangeslinked-title', $this->getTargetTitle()->getPrefixedText() )
}
$outputPage = $this->getOutput();
$title = Title::newFromURL( $target );
- if( !$title || $title->getInterwiki() != '' ){
+ if( !$title || $title->getInterwiki() != '' ) {
$outputPage->wrapWikiMsg( "<div class=\"errorbox\">\n$1\n</div><br style=\"clear: both\" />", 'allpagesbadtitle' );
return false;
}
}
if ( $this->getUser()->isAllowed( 'rollback' ) ) {
$tables[] = 'page';
- $join_conds['page'] = array('LEFT JOIN', 'rc_cur_id=page_id');
+ $join_conds['page'] = array( 'LEFT JOIN', 'rc_cur_id=page_id' );
$select[] = 'page_latest';
}
ChangeTags::modifyDisplayQuery(
$subsql[] = $query;
}
- if( count($subsql) == 0 ) {
+ if( count( $subsql ) == 0 ) {
return false; // should never happen
}
- if( count($subsql) == 1 && $dbr->unionSupportsOrderAndLimit() ) {
+ if( count( $subsql ) == 1 && $dbr->unionSupportsOrderAndLimit() ) {
$sql = $subsql[0];
} else {
// need to resort and relimit after union
- $sql = $dbr->unionQueries($subsql, false).' ORDER BY rc_timestamp DESC';
- $sql = $dbr->limitResult($sql, $limit, false);
+ $sql = $dbr->unionQueries( $subsql, false ) . ' ORDER BY rc_timestamp DESC';
+ $sql = $dbr->limitResult( $sql, $limit, false );
}
$res = $dbr->query( $sql, __METHOD__ );
* @param $opts FormOptions
* @return array
*/
- function getExtraOptions( $opts ){
+ function getExtraOptions( $opts ) {
$opts->consumeValues( array( 'showlinkedto', 'target', 'tagfilter' ) );
$extraOpts = array();
$extraOpts['namespace'] = $this->namespaceFilterForm( $opts );
$extraOpts['target'] = array( $this->msg( 'recentchangeslinked-page' )->escaped(),
- Xml::input( 'target', 40, str_replace('_',' ',$opts['target']) ) .
- Xml::check( 'showlinkedto', $opts['showlinkedto'], array('id' => 'showlinkedto') ) . ' ' .
+ Xml::input( 'target', 40, str_replace( '_', ' ', $opts['target'] ) ) .
+ Xml::check( 'showlinkedto', $opts['showlinkedto'], array( 'id' => 'showlinkedto' ) ) . ' ' .
Xml::label( $this->msg( 'recentchangeslinked-to' )->text(), 'showlinkedto' ) );
$tagFilter = ChangeTags::buildTagFilterSelector( $opts['tagfilter'] );
- if ($tagFilter) {
+ if ( $tagFilter ) {
$extraOpts['tagfilter'] = $tagFilter;
}
return $extraOpts;
$this->ids = explode( ',', $ids );
} else {
# Array input
- $this->ids = array_keys( $request->getArray('ids',array()) );
+ $this->ids = array_keys( $request->getArray( 'ids', array() ) );
}
// $this->ids = array_map( 'intval', $this->ids );
$this->ids = array_unique( array_filter( $this->ids ) );
$this->otherReason = $request->getVal( 'wpReason' );
# We need a target page!
- if( is_null($this->targetObj) ) {
+ if( is_null( $this->targetObj ) ) {
$output->addWikiMsg( 'undelete-header' );
return;
}
array( 'revdelete-hide-comment', 'wpHideComment', Revision::DELETED_COMMENT ),
array( 'revdelete-hide-user', 'wpHideUser', Revision::DELETED_USER )
);
- if( $user->isAllowed('suppressrevision') ) {
+ if( $user->isAllowed( 'suppressrevision' ) ) {
$this->checks[] = array( 'revdelete-hide-restricted',
'wpHideRestricted', Revision::DELETED_RESTRICTED );
}
# Show relevant lines from the suppression log
if( $user->isAllowed( 'suppressionlog' ) ) {
$suppressLogPage = new LogPage( 'suppress' );
- $output->addHTML( "<h2>" . $suppressLogPage->getName()->escaped() . "</h2>\n" );
+ $output->addHTML( "<h2>" . $suppressLogPage->getName()->escaped() . "</h2>\n" );
LogEventsList::showLogExtract( $output, 'suppress',
$this->targetObj, '', array( 'lim' => 25, 'conds' => $qc ) );
}
array( 'action' => 'history' )
);
# Link to deleted edits
- if( $this->getUser()->isAllowed('undelete') ) {
+ if( $this->getUser()->isAllowed( 'undelete' ) ) {
$undelete = SpecialPage::getTitleFor( 'Undelete' );
$links[] = Linker::linkKnown(
$undelete,
$UserAllowed = true;
if ( $this->typeName == 'logging' ) {
- $this->getOutput()->addWikiMsg( 'logdelete-selected', $this->getLanguage()->formatNum( count($this->ids) ) );
+ $this->getOutput()->addWikiMsg( 'logdelete-selected', $this->getLanguage()->formatNum( count( $this->ids ) ) );
} else {
$this->getOutput()->addWikiMsg( 'revdelete-selected',
$this->targetObj->getPrefixedText(), count( $this->ids ) );
*/
protected function submit() {
# Check edit token on submission
- $token = $this->getRequest()->getVal('wpEditToken');
+ $token = $this->getRequest()->getVal( 'wpEditToken' );
if( $this->submitClicked && !$this->getUser()->matchEditToken( $token ) ) {
$this->getOutput()->addWikiMsg( 'sessionfailure' );
return false;
$comment = $this->otherReason;
}
# Can the user set this field?
- if( $bitParams[Revision::DELETED_RESTRICTED]==1 && !$this->getUser()->isAllowed('suppressrevision') ) {
+ if( $bitParams[Revision::DELETED_RESTRICTED] == 1 && !$this->getUser()->isAllowed( 'suppressrevision' ) ) {
throw new PermissionsError( 'suppressrevision' );
}
# If the save went through, go to success message...
}
$bitfield[$field] = $val;
}
- if( !isset($bitfield[Revision::DELETED_RESTRICTED]) ) {
+ if( !isset( $bitfield[Revision::DELETED_RESTRICTED] ) ) {
$bitfield[Revision::DELETED_RESTRICTED] = 0;
}
return $bitfield;
);
}
}
-
// BC with old request format
$profile = 'advanced';
foreach( $profiles as $key => $data ) {
- if ( $nslist === $data['namespaces'] && $key !== 'advanced') {
+ if ( $nslist === $data['namespaces'] && $key !== 'advanced' ) {
$profile = $key;
}
}
$default = $request->getBool( 'profile' ) ? 0 : 1;
$this->searchRedirects = $request->getBool( 'redirs', $default ) ? 1 : 0;
$this->didYouMeanHtml = ''; # html of did you mean... link
- $this->fulltext = $request->getVal('fulltext');
+ $this->fulltext = $request->getVal( 'fulltext' );
$this->profile = $profile;
}
$search->showRedirects = $this->searchRedirects; // BC
$search->setFeatureData( 'list-redirects', $this->searchRedirects );
$search->prefix = $this->mPrefix;
- $term = $search->transformSearchTerm($term);
+ $term = $search->transformSearchTerm( $term );
wfRunHooks( 'SpecialSearchSetupEngine', array( $this, $this->profile, $search ) );
$t = Title::newFromText( $term );
// fetch search results
- $rewritten = $search->replacePrefixes($term);
+ $rewritten = $search->replacePrefixes( $term );
$titleMatches = $search->searchTitle( $rewritten );
if( !( $titleMatches instanceof SearchResultTooMany ) ) {
Xml::openElement( 'tr' ) .
Xml::openElement( 'td' ) . "\n" .
$this->shortDialog( $term ) .
- Xml::closeElement('td') .
- Xml::closeElement('tr') .
- Xml::closeElement('table')
+ Xml::closeElement( 'td' ) .
+ Xml::closeElement( 'tr' ) .
+ Xml::closeElement( 'table' )
);
// Sometimes the search engine knows there are too many hits
return;
}
- $filePrefix = $wgContLang->getFormattedNsText(NS_FILE).':';
+ $filePrefix = $wgContLang->getFormattedNsText( NS_FILE ) . ':';
if( trim( $term ) === '' || $filePrefix === trim( $term ) ) {
$out->addHTML( $this->formHeader( $term, 0, 0 ) );
$out->addHtml( $this->getProfileForm( $this->profile, $term ) );
// get total number of results if backend can calculate it
$totalRes = 0;
- if($titleMatches && !is_null( $titleMatches->getTotalHits() ) )
+ if( $titleMatches && !is_null( $titleMatches->getTotalHits() ) )
$totalRes += $titleMatches->getTotalHits();
- if($textMatches && !is_null( $textMatches->getTotalHits() ))
+ if( $textMatches && !is_null( $textMatches->getTotalHits() ) )
$totalRes += $textMatches->getTotalHits();
// show number of results and current offset
$out = "";
$infoLine = $matches->getInfo();
- if( !is_null($infoLine) ) {
+ if( !is_null( $infoLine ) ) {
$out .= "\n<!-- {$infoLine} -->\n";
}
$out .= "<ul class='mw-search-results'>\n";
$t = $result->getTitle();
- $titleSnippet = $result->getTitleSnippet($terms);
+ $titleSnippet = $result->getTitleSnippet( $terms );
if( $titleSnippet == '' )
$titleSnippet = null;
// format redirects / relevant sections
$redirectTitle = $result->getRedirectTitle();
- $redirectText = $result->getRedirectSnippet($terms);
+ $redirectText = $result->getRedirectSnippet( $terms );
$sectionTitle = $result->getSectionTitle();
- $sectionText = $result->getSectionSnippet($terms);
+ $sectionText = $result->getSectionSnippet( $terms );
$redirect = '';
- if( !is_null($redirectTitle) ) {
+ if( !is_null( $redirectTitle ) ) {
if( $redirectText == '' )
$redirectText = null;
$section = '';
- if( !is_null($sectionTitle) ) {
+ if( !is_null( $sectionTitle ) ) {
if( $sectionText == '' )
$sectionText = null;
}
// format text extract
- $extract = "<div class='searchresult'>".$result->getTextSnippet($terms)."</div>";
+ $extract = "<div class='searchresult'>" . $result->getTextSnippet( $terms ) . "</div>";
$lang = $this->getLanguage();
$terms = $wgContLang->convertForSearchResult( $matches->termMatches() );
$out = "<div id='mw-search-interwiki'><div id='mw-search-interwiki-caption'>".
- $this->msg( 'search-interwiki-caption' )->text() . "</div>\n";
+ $this->msg( 'search-interwiki-caption' )->text() . "</div>\n";
$out .= "<ul class='mw-search-iwresults'>\n";
// work out custom project captions
$customCaptions = array();
$customLines = explode( "\n", $this->msg( 'search-interwiki-custom' )->text() ); // format per line <iwprefix>:<caption>
- foreach($customLines as $line) {
- $parts = explode(":",$line,2);
- if(count($parts) == 2) // validate line
+ foreach( $customLines as $line ) {
+ $parts = explode( ":", $line, 2 );
+ if( count( $parts ) == 2 ) { // validate line
$customCaptions[$parts[0]] = $parts[1];
+ }
}
$prev = null;
$t = $result->getTitle();
- $titleSnippet = $result->getTitleSnippet($terms);
+ $titleSnippet = $result->getTitleSnippet( $terms );
if( $titleSnippet == '' )
$titleSnippet = null;
// format redirect if any
$redirectTitle = $result->getRedirectTitle();
- $redirectText = $result->getRedirectSnippet($terms);
+ $redirectText = $result->getRedirectSnippet( $terms );
$redirect = '';
- if( !is_null($redirectTitle) ) {
+ if( !is_null( $redirectTitle ) ) {
if( $redirectText == '' )
$redirectText = null;
$out = "";
// display project name
- if(is_null($lastInterwiki) || $lastInterwiki != $t->getInterwiki()) {
- if( array_key_exists($t->getInterwiki(),$customCaptions) ) {
+ if( is_null( $lastInterwiki ) || $lastInterwiki != $t->getInterwiki() ) {
+ if( array_key_exists( $t->getInterwiki(), $customCaptions ) ) {
// captions from 'search-interwiki-custom'
$caption = $customCaptions[$t->getInterwiki()];
} else {
$caption = $this->msg( 'search-interwiki-default', $parsed['host'] )->text();
}
// "more results" link (special page stuff could be localized, but we might not know target lang)
- $searchTitle = Title::newFromText($t->getInterwiki().":Special:Search");
+ $searchTitle = Title::newFromText( $t->getInterwiki() . ":Special:Search" );
$searchLink = Linker::linkKnown(
$searchTitle,
$this->msg( 'search-interwiki-more' )->text(),
'fieldset',
array( 'id' => 'mw-searchoptions', 'style' => 'margin:0em;' )
) .
- Xml::element( 'legend', null, $this->msg('powersearch-legend' )->text() ) .
+ Xml::element( 'legend', null, $this->msg( 'powersearch-legend' )->text() ) .
Xml::tags( 'h4', null, $this->msg( 'powersearch-ns' )->parse() ) .
Html::element( 'div', array( 'id' => 'mw-search-togglebox' ) ) .
Xml::element( 'div', array( 'class' => 'divider' ), '', false ) .
* @return string
*/
protected function formHeader( $term, $resultsShown, $totalNum ) {
- $out = Xml::openElement('div', array( 'class' => 'mw-search-formheader' ) );
+ $out = Xml::openElement( 'div', array( 'class' => 'mw-search-formheader' ) );
$bareterm = $term;
if( $this->startsWithImage( $term ) ) {
);
}
$out .= Xml::closeElement( 'ul' );
- $out .= Xml::closeElement('div') ;
+ $out .= Xml::closeElement( 'div' ) ;
// Results-info
if ( $resultsShown > 0 ) {
- if ( $totalNum > 0 ){
+ if ( $totalNum > 0 ) {
$top = $this->msg( 'showingresultsheader' )
->numParams( $this->offset + 1, $this->offset + $resultsShown, $totalNum )
->params( wfEscapeWikiText( $term ) )
}
$out .= Xml::element( 'div', array( 'style' => 'clear:both' ), '', false );
- $out .= Xml::closeElement('div');
+ $out .= Xml::closeElement( 'div' );
return $out;
}
protected $type;
protected $block;
- public function __construct(){
+ public function __construct() {
parent::__construct( 'Unblock', 'block' );
}
- public function execute( $par ){
+ public function execute( $par ) {
$this->checkPermissions();
$this->checkReadOnly();
$form->setSubmitTextMsg( 'ipusubmit' );
$form->addPreText( $this->msg( 'unblockiptext' )->parseAsBlock() );
- if( $form->show() ){
- switch( $this->type ){
+ if( $form->show() ) {
+ switch( $this->type ) {
case Block::TYPE_USER:
case Block::TYPE_IP:
$out->addWikiMsg( 'unblocked', wfEscapeWikiText( $this->target ) );
}
}
- protected function getFields(){
+ protected function getFields() {
$fields = array(
'Target' => array(
'type' => 'text',
)
);
- if( $this->block instanceof Block ){
+ if( $this->block instanceof Block ) {
list( $target, $type ) = $this->block->getTargetAndType();
# Autoblocks are logged as "autoblock #123 because the IP was recently used by
# User:Foo, and we've just got any block, auto or not, that applies to a target
# the user has specified. Someone could be fishing to connect IPs to autoblocks,
# so don't show any distinction between unblocked IPs and autoblocked IPs
- if( $type == Block::TYPE_AUTO && $this->type == Block::TYPE_IP ){
+ if( $type == Block::TYPE_AUTO && $this->type == Block::TYPE_IP ) {
$fields['Target']['default'] = $this->target;
unset( $fields['Name'] );
} else {
$fields['Target']['default'] = $target;
$fields['Target']['type'] = 'hidden';
- switch( $type ){
+ switch( $type ) {
case Block::TYPE_USER:
case Block::TYPE_IP:
$fields['Name']['default'] = Linker::link(
* @throws ErrorPageError
* @return Array( Array(message key, parameters) ) on failure, True on success
*/
- public static function processUnblock( array $data, IContextSource $context ){
+ public static function processUnblock( array $data, IContextSource $context ) {
$performer = $context->getUser();
$target = $data['Target'];
$block = Block::newFromTarget( $data['Target'] );
- if( !$block instanceof Block ){
+ if( !$block instanceof Block ) {
return array( array( 'ipb_cant_unblock', $target ) );
}
# unblock the whole range.
list( $target, $type ) = SpecialBlock::getTargetAndType( $target );
if( $block->getType() == Block::TYPE_RANGE && $type == Block::TYPE_IP ) {
- $range = $block->getTarget();
- return array( array( 'ipb_blocked_as_range', $target, $range ) );
+ $range = $block->getTarget();
+ return array( array( 'ipb_blocked_as_range', $target, $range ) );
}
# If the name was hidden and the blocking user cannot hide
__METHOD__ );
if( $previousTimestamp === false ) {
- wfDebug( __METHOD__.": existing page refers to a page_latest that does not exist\n" );
+ wfDebug( __METHOD__ . ": existing page refers to a page_latest that does not exist\n" );
$status = Status::newGood( 0 );
$status->warning( 'undeleterevision-missing' );
'ar_deleted',
'ar_page_id',
'ar_len',
- 'ar_sha1');
+ 'ar_sha1'
+ );
if ( $wgContentHandlerUseDB ) {
$fields[] = 'ar_content_format';
$targetQuery
) .
'</strong></div>' .
- '<div id="mw-diff-'.$prefix.'title2">' .
+ '<div id="mw-diff-' . $prefix . 'title2">' .
Linker::revUserTools( $rev ) . '<br />' .
'</div>' .
- '<div id="mw-diff-'.$prefix.'title3">' .
+ '<div id="mw-diff-' . $prefix . 'title3">' .
Linker::revComment( $rev ) . $rdel . '<br />' .
'</div>';
}
Xml::label( $this->msg( 'undeletecomment' )->text(), 'wpComment' ) .
"</td>
<td class='mw-input'>" .
- Xml::input( 'wpComment', 50, $this->mComment, array( 'id' => 'wpComment' ) ) .
+ Xml::input( 'wpComment', 50, $this->mComment, array( 'id' => 'wpComment' ) ) .
"</td>
</tr>
<tr>
// Revision delete links
$revdlink = Linker::getRevDeleteLink( $user, $rev, $this->mTargetObj );
- $revisionRow = $this->msg( 'undelete-revisionrow' )->rawParams( $checkBox, $revdlink, $last, $pageLink , $userLink, $revTextSize, $comment )->escaped();
+ $revisionRow = $this->msg( 'undelete-revisionrow' )->rawParams( $checkBox, $revdlink, $last, $pageLink, $userLink, $revTextSize, $comment )->escaped();
return "<li>$revisionRow</li>";
}
'name' => 'clear',
)
), $this->getContext(), 'clearStashedUploads' );
- $form->setSubmitCallback( array( __CLASS__ , 'tryClearStashedUploads' ) );
+ $form->setSubmitCallback( array( __CLASS__, 'tryClearStashedUploads' ) );
$form->setTitle( $this->getTitle() );
$form->setSubmitTextMsg( 'uploadstash-clear' );
$this->mReason = $request->getText( 'wpReason' );
$this->mCookieCheck = $request->getVal( 'wpCookieCheck' );
$this->mPosted = $request->wasPosted();
- $this->mCreateaccount = $request->getCheck( 'wpCreateaccount' );
$this->mCreateaccountMail = $request->getCheck( 'wpCreateaccountMail' )
&& $wgEnableEmail;
+ $this->mCreateaccount = $request->getCheck( 'wpCreateaccount' ) && !$this->mCreateaccountMail;
$this->mLoginattempt = $request->getCheck( 'wpLoginattempt' );
$this->mAction = $request->getVal( 'action' );
$this->mRemember = $request->getCheck( 'wpRemember' );
$q = 'action=submitlogin&type=signup';
$linkq = 'type=login';
$linkmsg = 'gotaccount';
+ $this->getOutput()->addModules( 'mediawiki.special.userlogin.signup' );
} else {
$template = new UserloginTemplate();
$q = 'action=submitlogin&type=login';
$template->set( 'name', $this->mUsername );
$template->set( 'password', $this->mPassword );
$template->set( 'retype', $this->mRetype );
+ $template->set( 'createemailset', $this->mCreateaccountMail );
$template->set( 'email', $this->mEmail );
$template->set( 'realname', $this->mRealName );
$template->set( 'domain', $this->mDomain );
global $wgScript;
$this->getOutput()->addHTML(
Html::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'name' => 'uluser', 'id' => 'mw-userrights-form1' ) ) .
- Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
+ Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
Xml::fieldset( $this->msg( 'userrights-lookup-user' )->text() ) .
Xml::inputLabel( $this->msg( 'userrights-user-editname' )->text(), 'user', 'username', 30, str_replace( '_', ' ', $this->mTarget ) ) . ' ' .
Xml::submitButton( $this->msg( 'editusergroup' )->text() ) .
continue;
$ret .= Xml::element( 'th', null, $this->msg( 'userrights-' . $name . '-col', count( $column ) )->text() );
}
- $ret.= "</tr>\n<tr>\n";
+ $ret .= "</tr>\n<tr>\n";
foreach( $columns as $column ) {
if( $column === array() )
continue;
'https://svn.wikimedia.org/svnroot/mediawiki' => 'https://svn.wikimedia.org/viewvc/mediawiki',
);
- public function __construct(){
+ public function __construct() {
parent::__construct( 'Version' );
}
public static function getCopyrightAndAuthorList() {
global $wgLang;
+ if ( defined( 'MEDIAWIKI_INSTALL' ) ) {
+ $othersLink = '[http://www.mediawiki.org/wiki/Special:Version/Credits ' . wfMessage( 'version-poweredby-others' )->text() . ']';
+ } else {
+ $othersLink = '[[Special:Version/Credits|' . wfMessage( 'version-poweredby-others' )->text() . ']]';
+ }
+
$authorList = array(
'Magnus Manske', 'Brion Vibber', 'Lee Daniel Crocker',
'Tim Starling', 'Erik Möller', 'Gabriel Wicke', 'Ævar Arnfjörð Bjarmason',
'Alexandre Emsenhuber', 'Siebrand Mazeland', 'Chad Horohoe',
'Roan Kattouw', 'Trevor Parscal', 'Bryan Tong Minh', 'Sam Reed',
'Victor Vasiliev', 'Rotem Liss', 'Platonides', 'Antoine Musso',
- 'Timo Tijhof', 'Daniel Kinzler', 'Jeroen De Dauw',
- '[[Special:Version/Credits|' .
- wfMessage( 'version-poweredby-others' )->text() .
- ']]'
+ 'Timo Tijhof', 'Daniel Kinzler', 'Jeroen De Dauw', $othersLink
);
return wfMessage( 'version-poweredby-credits', date( 'Y' ),
wfRunHooks( 'SoftwareInfo', array( &$software ) );
$out = Xml::element( 'h2', array( 'id' => 'mw-version-software' ), wfMessage( 'version-software' )->text() ) .
- Xml::openElement( 'table', array( 'class' => 'wikitable plainlinks', 'id' => 'sv-software' ) ) .
+ Xml::openElement( 'table', array( 'class' => 'wikitable plainlinks', 'id' => 'sv-software' ) ) .
"<tr>
<th>" . wfMessage( 'version-software-product' )->text() . "</th>
<th>" . wfMessage( 'version-software-version' )->text() . "</th>
* @return String: HTML fragment
*/
private function IPInfo() {
- $ip = str_replace( '--', ' - ', htmlspecialchars( $this->getRequest()->getIP() ) );
+ $ip = str_replace( '--', ' - ', htmlspecialchars( $this->getRequest()->getIP() ) );
return "<!-- visited from $ip -->\n" .
"<span style='display:none'>visited from $ip</span>";
}
function showEasterEgg() {
$rx = $rp = $xe = '';
- $alpha = array("", "kbQW", "\$\n()");
+ $alpha = array( "", "kbQW", "\$\n()" );
$beta = implode( "', '", $alpha);
- $juliet = 'echo $delta + strrev($foxtrot) - $alfa + $wgVersion . base64_decode($bravo) * $charlie';
+ $juliet = 'echo $delta + strrev( $foxtrot ) - $alfa + $wgVersion . base64_decode( $bravo ) * $charlie';
for ( $i = 1; $i <= 4; $i++ ) {
$rx .= '([^j]*)J';
$rp .= "+(\\$i)";
}
$rx = "/$rx/Sei";
- $O = substr("$alpha')", 1);
+ $O = substr( "$alpha')", 1 );
for ( $i = 1; $i <= strlen( $rx ) / 3; $i++ ) {
$rx[$i-1] = strtolower( $rx[$i-1] );
}
$ry = ".*?(.((.)(.))).{1,3}(.)(.{1,$i})(\\4.\\3)(.).*";
$ry = "/$ry/Sei";
- $O = substr("$beta')", 1);
- preg_match_all('/(?<=\$)[[:alnum:]]*/',substr($juliet, 0, $i<<1), $charlie);
+ $O = substr( "$beta')", 1 );
+ preg_match_all( '/(?<=\$)[[:alnum:]]*/', substr( $juliet, 0, $i<<1 ), $charlie );
foreach( $charlie[0] as $bravo ) {
$$bravo =& $xe;
}
/**
* Constructor
*/
- public function __construct( $page = 'Watchlist' ){
+ public function __construct( $page = 'Watchlist' ) {
parent::__construct( $page );
}
$mode = SpecialEditWatchlist::getMode( $request, $par );
if( $mode !== false ) {
# TODO: localise?
- switch( $mode ){
+ switch( $mode ) {
case SpecialEditWatchlist::EDIT_CLEAR:
$mode = 'clear';
break;
}
# Create output form
- $form = Xml::fieldset( $this->msg( 'watchlist-options' )->text(), false, array( 'id' => 'mw-watchlist-options' ) );
+ $form = Xml::fieldset( $this->msg( 'watchlist-options' )->text(), false, array( 'id' => 'mw-watchlist-options' ) );
# Show watchlist header
$form .= $this->msg( 'watchlist-details' )->numParams( $nitems )->parse();
$opts->validateIntBounds( 'limit', 0, 5000 );
// Give precedence to subpage syntax
- if ( isset($par) ) {
+ if ( isset( $par ) ) {
$opts->setValue( 'target', $par );
}
);
$namespace = $this->opts->getValue( 'namespace' );
- if ( is_int($namespace) ) {
+ if ( is_int( $namespace ) ) {
$plConds['page_namespace'] = $namespace;
$tlConds['page_namespace'] = $namespace;
$ilConds['page_namespace'] = $namespace;
if( $hidelinks || $hidetrans || $hideredirs || $hideimages )
$out->addHTML( $this->getFilterPanel() );
- $errMsg = is_int($namespace) ? 'nolinkshere-ns' : 'nolinkshere';
+ $errMsg = is_int( $namespace ) ? 'nolinkshere-ns' : 'nolinkshere';
$out->addWikiMsg( $errMsg, $this->target->getPrefixedText() );
}
return;
$next = $this->msg( 'whatlinkshere-next' )->numParams( $currentLimit )->escaped();
$changed = $this->opts->getChangedValues();
- unset($changed['target']); // Already in the request title
+ unset( $changed['target'] ); // Already in the request title
if ( 0 != $prevId ) {
$overrides = array( 'from' => $this->opts->getValue( 'back' ) );
$hide = $this->msg( 'hide' )->escaped();
$changed = $this->opts->getChangedValues();
- unset($changed['target']); // Already in the request title
+ unset( $changed['target'] ); // Already in the request title
$links = array();
$types = array( 'hidetrans', 'hidelinks', 'hideredirs' );
$chosen = $this->opts->getValue( $type );
$msg = $chosen ? $show : $hide;
$overrides = array( $type => !$chosen );
- $links[] = $this->msg( "whatlinkshere-{$type}" )->rawParams(
+ $links[] = $this->msg( "whatlinkshere-{$type}" )->rawParams(
$this->makeSelfLink( $msg, array_merge( $changed, $overrides ) ) )->escaped();
}
return Xml::fieldset( $this->msg( 'whatlinkshere-filters' )->text(), $this->getLanguage()->pipeList( $links ) );
</td>
</tr>
<tr>
+ <td></td>
+ <td class="mw-input">
+ <?php if( $this->data['createemail'] ) {
+ echo Xml::checkLabel(
+ wfMessage( 'createaccountmail' )->text(),
+ 'wpCreateaccountMail',
+ 'wpCreateaccountMail',
+ $this->data['createemailset'],
+ array( 'tabindex' => '2' )
+ );
+ } ?>
+ </td>
+ </tr>
+ <tr class="mw-row-password">
<td class="mw-label"><label for='wpPassword2'><?php $this->msg('yourpassword') ?></label></td>
<td class="mw-input">
<?php
echo Html::input( 'wpPassword', null, 'password', array(
'class' => 'loginPassword',
'id' => 'wpPassword2',
- 'tabindex' => '2',
+ 'tabindex' => '3',
'size' => '20'
) + User::passwordChangeInputAttribs() ); ?>
</td>
<td class="mw-label"><?php $this->msg( 'yourdomainname' ) ?></td>
<td class="mw-input">
<select name="wpDomain" value="<?php $this->text( 'domain' ) ?>"
- tabindex="3">
+ tabindex="4">
<?php echo $doms ?>
</select>
</td>
</tr>
<?php } ?>
- <tr>
+ <tr class="mw-row-password">
<td class="mw-label"><label for='wpRetype'><?php $this->msg('yourpasswordagain') ?></label></td>
<td class="mw-input">
<?php
echo Html::input( 'wpRetype', null, 'password', array(
'class' => 'loginPassword',
'id' => 'wpRetype',
- 'tabindex' => '4',
+ 'tabindex' => '5',
'size' => '20'
) + User::passwordChangeInputAttribs() ); ?>
</td>
echo Html::input( 'wpEmail', $this->data['email'], 'email', array(
'class' => 'loginText',
'id' => 'wpEmail',
- 'tabindex' => '5',
+ 'tabindex' => '6',
'size' => '20'
) ); ?>
<div class="prefsectiontip">
<td class="mw-label"><label for='wpRealName'><?php $this->msg('yourrealname') ?></label></td>
<td class="mw-input">
<input type='text' class='loginText' name="wpRealName" id="wpRealName"
- tabindex="6"
+ tabindex="7"
value="<?php $this->text('realname') ?>" size='20' />
<div class="prefsectiontip">
<?php $this->msgWiki('prefs-help-realname'); ?>
<td class="mw-label"><label for='wpReason'><?php $this->msg('createaccountreason') ?></label></td>
<td class="mw-input">
<input type='text' class='loginText' name="wpReason" id="wpReason"
- tabindex="7"
+ tabindex="8"
value="<?php $this->text('reason') ?>" size='20' />
</td>
<?php } ?>
'wpRemember',
'wpRemember',
$this->data['remember'],
- array( 'tabindex' => '8' )
+ array( 'tabindex' => '9' )
)
?>
</td>
</tr>
<?php }
- $tabIndex = 9;
+ $tabIndex = 10;
if ( isset( $this->data['extraInput'] ) && is_array( $this->data['extraInput'] ) ) {
foreach ( $this->data['extraInput'] as $inputItem ) { ?>
<tr>
<input type='submit' name="wpCreateaccount" id="wpCreateaccount"
tabindex="<?php echo $tabIndex++; ?>"
value="<?php $this->msg('createaccount') ?>" />
- <?php if( $this->data['createemail'] ) { ?>
- <input type='submit' name="wpCreateaccountMail" id="wpCreateaccountMail"
- tabindex="<?php echo $tabIndex++; ?>"
- value="<?php $this->msg('createaccountmail') ?>" />
- <?php } ?>
</td>
</tr>
</table>
'tabindex' => '9'
) );
if ( $this->data['useemail'] && $this->data['canreset'] ) {
- if( $this->data['resetlink'] === true ){
+ if( $this->data['resetlink'] === true ) {
echo ' ';
echo Linker::link(
SpecialPage::getTitleFor( 'PasswordReset' ),
array(
'result' => 'Failure',
'stage' => 'publish',
- 'status' => Status::newFatal( 'api-error-stashfailed' )
+ 'status' => Status::newFatal( 'api-error-publishfailed' )
)
);
throw $e;
/**
* Initialize from a WebRequest. Override this in a subclass.
*/
- public abstract function initializeFromRequest( &$request );
+ abstract public function initializeFromRequest( &$request );
/**
* Fetch the file. Usually a no-op
// Concatenate all the chunks to mVirtualTempPath
$fileList = Array();
// The first chunk is stored at the mVirtualTempPath path so we start on "chunk 1"
- for( $i = 0; $i <= $this->getChunkIndex(); $i++ ){
+ for( $i = 0; $i <= $this->getChunkIndex(); $i++ ) {
$fileList[] = $this->getVirtualChunkLocation( $i );
}
$tStart = microtime( true );
$status = $this->repo->concatenate( $fileList, $tmpPath, FileRepo::DELETE_SOURCE );
$tAmount = microtime( true ) - $tStart;
- if( !$status->isOk() ){
+ if( !$status->isOk() ) {
return $status;
}
wfDebugLog( 'fileconcatenate', "Combined $i chunks in $tAmount seconds.\n" );
// Update local chunk index for the current chunk
$this->mChunkIndex++;
$status = $this->outputChunk( $chunkPath );
- if( $status->isGood() ){
+ if( $status->isGood() ) {
// Update local offset:
$this->mOffset = $preAppendOffset + $chunkSize;
// Update chunk table status db
* @return Integer index of the current chunk
*/
private function getChunkIndex() {
- if( $this->mChunkIndex !== null ){
+ if( $this->mChunkIndex !== null ) {
return $this->mChunkIndex;
}
return 0;
* @return Integer current byte offset of the chunk file set
*/
private function getOffset() {
- if ( $this->mOffset !== null ){
+ if ( $this->mOffset !== null ) {
return $this->mOffset;
}
return 0;
}
private function getChunkFileKey( $index = null ) {
- if( $index === null ){
+ if( $index === null ) {
$index = $this->getChunkIndex();
}
return $this->mFileKey . '.' . $index ;
return is_readable( self::getMessagesFileName( $code ) );
}
+ /**
+ * Returns true if a language code string is a well-formed language tag
+ * according to RFC 5646.
+ * This function only checks well-formedness; it doesn't check that
+ * language, script or variant codes actually exist in the repositories.
+ *
+ * Based on regexes by Mark Davis of the Unicode Consortium:
+ * http://unicode.org/repos/cldr/trunk/tools/java/org/unicode/cldr/util/data/langtagRegex.txt
+ *
+ * @param $code string
+ * @param $lenient boolean Whether to allow '_' as separator. The default is only '-'.
+ *
+ * @return bool
+ * @since 1.21
+ */
+ public static function isWellFormedLanguageTag( $code, $lenient = false ) {
+ $alpha = '[a-z]';
+ $digit = '[0-9]';
+ $alphanum = '[a-z0-9]';
+ $x = 'x' ; # private use singleton
+ $singleton = '[a-wy-z]'; # other singleton
+ $s = $lenient ? '[-_]' : '-';
+
+ $language = "$alpha{2,8}|$alpha{2,3}$s$alpha{3}";
+ $script = "$alpha{4}"; # ISO 15924
+ $region = "(?:$alpha{2}|$digit{3})"; # ISO 3166-1 alpha-2 or UN M.49
+ $variant = "(?:$alphanum{5,8}|$digit$alphanum{3})";
+ $extension = "$singleton(?:$s$alphanum{2,8})+";
+ $privateUse = "$x(?:$s$alphanum{1,8})+";
+
+ # Define certain grandfathered codes, since otherwise the regex is pretty useless.
+ # Since these are limited, this is safe even later changes to the registry --
+ # the only oddity is that it might change the type of the tag, and thus
+ # the results from the capturing groups.
+ # http://www.iana.org/assignments/language-subtag-registry
+
+ $grandfathered = "en{$s}GB{$s}oed"
+ . "|i{$s}(?:ami|bnn|default|enochian|hak|klingon|lux|mingo|navajo|pwn|tao|tay|tsu)"
+ . "|no{$s}(?:bok|nyn)"
+ . "|sgn{$s}(?:BE{$s}(?:fr|nl)|CH{$s}de)"
+ . "|zh{$s}min{$s}nan";
+
+ $variantList = "$variant(?:$s$variant)*";
+ $extensionList = "$extension(?:$s$extension)*";
+
+ $langtag = "(?:($language)"
+ . "(?:$s$script)?"
+ . "(?:$s$region)?"
+ . "(?:$s$variantList)?"
+ . "(?:$s$extensionList)?"
+ . "(?:$s$privateUse)?)";
+
+ # The final breakdown, with capturing groups for each of these components
+ # The variants, extensions, grandfathered, and private-use may have interior '-'
+
+ $root = "^(?:$langtag|$privateUse|$grandfathered)$";
+
+ return (bool)preg_match( "/$root/", strtolower( $code ) );
+ }
+
/**
* Returns true if a language code string is of a valid form, whether or
* not it exists. This includes codes which are used solely for
return (bool)preg_match( '/^[a-z0-9-]+$/i', $code );
}
+ /**
+ * Returns true if a language code is an IETF tag known to MediaWiki.
+ *
+ * @param $code string
+ *
+ * @since 1.21
+ * @return bool
+ */
+ public static function isKnownLanguageTag( $tag ) {
+ static $coreLanguageNames;
+
+ if ( $coreLanguageNames === null ) {
+ include( MWInit::compiledPath( 'languages/Names.php' ) );
+ }
+
+ if ( isset( $coreLanguageNames[$tag] )
+ || self::fetchLanguageName( $tag, $tag ) !== ''
+ ) {
+ return true;
+ }
+
+ return false;
+ }
+
/**
* @param $code
* @return String Name of the language class
* @return bool
*/
public function hasVariants() {
- return sizeof( $this->getVariants() ) > 1;
+ return count( $this->getVariants() ) > 1;
}
/**
$form = CLDRPluralRuleEvaluator::evaluateCompiled( $number, $pluralRules );
return $form;
}
-
}
NS_PROJECT_TALK => 'Marit_$1',
NS_FILE => 'Beureukaih',
NS_FILE_TALK => 'Marit_Beureukaih',
- NS_MEDIAWIKI => 'AlatWiki',
- NS_MEDIAWIKI_TALK => 'Marit_AlatWiki',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'Marit_MediaWiki',
NS_TEMPLATE => 'Pola',
NS_TEMPLATE_TALK => 'Marit_Pola',
NS_HELP => 'Beunantu',
$namespaceAliases = array(
'Istimewa' => NS_SPECIAL,
+ 'Bicara' => NS_TALK,
'Pembicaraan' => NS_TALK,
'Pengguna' => NS_USER,
+ 'Bicara_Pengguna' => NS_USER_TALK,
'Pembicaraan_Pengguna' => NS_USER_TALK,
'Pembicaraan_$1' => NS_PROJECT_TALK,
'Berkas' => NS_FILE,
+ 'Gambar' => NS_FILE,
'Pembicaraan_Berkas' => NS_FILE_TALK,
+ 'Pembicaraan_Gambar' => NS_FILE_TALK,
+ 'AlatWiki' => NS_MEDIAWIKI,
+ 'Marit_AlatWiki' => NS_MEDIAWIKI_TALK,
'Pembicaraan_MediaWiki' => NS_MEDIAWIKI_TALK,
+ 'MediaWiki_Pembicaraan' => NS_MEDIAWIKI_TALK,
'Templat' => NS_TEMPLATE,
'Pembicaraan_Templat' => NS_TEMPLATE_TALK,
+ 'Templat_Pembicaraan' => NS_TEMPLATE_TALK,
'Bantuan' => NS_HELP,
+ 'Bantuan_Pembicaraan' => NS_HELP_TALK,
'Pembicaraan_Bantuan' => NS_HELP_TALK,
'Kategori' => NS_CATEGORY,
+ 'Kategori_Pembicaraan' => NS_CATEGORY_TALK,
'Pembicaraan_Kategori' => NS_CATEGORY_TALK,
'Gambar_Pembicaraan' => NS_FILE_TALK,
- 'MediaWiki_Pembicaraan' => NS_MEDIAWIKI_TALK,
- 'Templat_Pembicaraan' => NS_TEMPLATE_TALK,
- 'Bantuan_Pembicaraan' => NS_HELP_TALK,
- 'Kategori_Pembicaraan' => NS_CATEGORY_TALK,
- 'Gambar' => NS_FILE,
- 'Pembicaraan_Gambar' => NS_FILE_TALK,
- 'Bicara' => NS_TALK,
- 'Bicara_Pengguna' => NS_USER_TALK,
);
$specialPageAliases = array(
'underline-always' => 'Sabe',
'underline-never' => "H'an tom",
-'underline-default' => 'Penjelajah web bawaan',
+'underline-default' => 'Kulet atawa ngon peuhah web teupasang',
# Font style option in Special:Preferences
'editfont-style' => 'Gaya seunurat komputer bak plok andam',
'newwindow' => '(peuhah bak tingkap barô)',
'cancel' => 'Peubateuë',
'moredotdotdot' => 'Lom...',
-'mypage' => 'Ôn lôn',
+'morenotlisted' => 'Lom...',
+'mypage' => 'Ôn',
'mytalk' => 'Marit',
'anontalk' => 'Peugah haba IP nyoë.',
'navigation' => 'Navigasi',
'vector-action-protect' => 'Peulindông',
'vector-action-undelete' => 'Bateuë sampôh',
'vector-action-unprotect' => 'Gantoe neulindông',
-'vector-simplesearch-preference' => 'Peuudep mita saran nyang geupeusamporeuna (keu kulet Vector khong)',
+'vector-simplesearch-preference' => 'Peuudep beunteueng mita biasa (kulet Vector khong)',
'vector-view-create' => 'Peugöt',
'vector-view-edit' => 'Andam',
'vector-view-history' => 'Atra u likôt',
'namespaces' => 'Ruweuëng nan',
'variants' => 'Ragam',
+'navigation-heading' => 'Menu navigasi',
'errorpagetitle' => 'Seunalah',
'returnto' => 'Gisa u $1.',
'tagline' => 'Nibak {{SITENAME}}',
'nosuchaction' => 'Hana buet nyan',
'nosuchactiontext' => 'Buet nyang geulakee le URL nyan hana sah. Droeneuh kadang salah neukeutik URL, atawa neuseutot saboh neuhubong nyang hana beutoy. Hay nyoe kadang jeuet keu lageuem saboh bug bak alat leumiek nyang geunguy le {{SITENAME}}.',
'nosuchspecialpage' => 'Hana on kusuih lagee nyan',
-'nospecialpagetext' => '<strong>Droeneuh neulakee on kusuih nyang hana sah.</strong>',
+'nospecialpagetext' => "<strong>Droeneuh ka neulakee on kusuih nyang hana sah.</strong>
+Dapeuta on kusuih nyang sah jeuet neu'eu bak [[Special:SpecialPages|{{int:specialpages}}]].",
# General errors
'error' => 'Seunalah',
'passwordtooshort' => "Lageuëm paléng h'an haroh na {{PLURAL:$1|1 karakter|$1 karakter}}.",
'mailmypassword' => "Peu'ét lageuëm barô",
'passwordremindertitle' => 'Lageuëm seumeuntara barô keu {{SITENAME}}',
-'passwordremindertext' => 'Salah sidroë (kadang Droëneuh, ngön alamat IP $1) geulakèë kamoë keu meukirém lageuëm rahsia nyang barô keu {{SITENAME}} ($4).
-Lageuëm rahsia keu ureuëng nguy "$2" jinoë nakeuh "$3".
-Droëneuh geupeusaran keu neutamong sigra, lheuëh nyan neugantoë lageuëm rahsia.',
+'passwordremindertext' => 'Salah sidroë (kadang Droëneuh, ngön alamat IP $1) geulakèë lageuëm barô keu {{SITENAME}} ($4). Lageuëm si\'at keu ureuëng nguy "$2" ka geupeuna ngon ka geuato jeuet keu "$3". Meunyo nyoe nakeuh meukeusud droeneuh, droeneuh peureulee neutamong ngon neupileh lageuem baro jinoe. Lageuem siat droeneuh meung abeh lam {{PLURAL:$5|siuroe|$5 uroe}}.
+
+Meunyo ureueng la\'en nyang peugot neulakee nyoe, atawa meunyo droeneuh ka neuingat lageuem droeneuh, ngon droeneuh h\'an ek neugantoe le, droeneuh jeuet hana neupeureumeuen peusan nyoe ngon neulanjut neunguy lageuem awayneuh.',
'noemail' => 'Hana alamat surat-e nyang teucatat keu ureuëng nguy "$1".',
'passwordsent' => 'Lageuëm barô ka geupeu\'ét u surat-e nyang geupeudapeuta keu "$1". Neutamong teuma lheuëh neuteurimong surat-e nyan.',
'eauthentsent' => 'Saboh surat èlèktronik keu peunyoë ka geukirém u alamat surat èlèktronik Droëneuh. Droëneuh beuneuseutöt préntah lam surat nyan keu neupeunyoë meunyo alamat nyan nakeuh beutôy atra Droëneuh. {{SITENAME}} h‘an geupeuudép surat Droëneuh meunyo langkah nyoë hana neupeulaku lom.',
'emailuser' => 'Surat-e ureuëng nguy',
# Watchlist
-'watchlist' => 'Dapeuta keunalön lôn',
+'watchlist' => 'Dapeuta keunalön',
'mywatchlist' => 'Keunalön',
'watchlistfor2' => 'Keu $1 $2',
'addedwatchtext' => "Ôn \"[[:\$1]]\" ka geupeutamah u [[Special:Watchlist|dapeuta keunalön]] Droëneuh. Neu’ubah-neu’ubah bak masa u keuë bak ôn nyan ngön bak ôn peugah habajih, euntreuk leumah nyoë pat. Ôn nyan euntreuk geupeuleumah ''teubay'' bak [[Special:RecentChanges|dapeuta neu’ubah paléng barô]] mangat leubèh mudah leumah.",
'laggedslavemode' => 'Waarskuwing: Onlangse wysigings dalk nie in bladsy vervat nie.',
'readonly' => 'Databasis gesluit',
'enterlockreason' => 'Rede vir die sluiting,
-en beraming van wanneer ontsluiting sal plaas vind',
-'readonlytext' => 'Die {{SITENAME}} databasis is tans gesluit vir nuwe
-artikelwysigings, waarskynlik vir roetine databasisonderhoud,
+en beraming van wanneer ontsluiting sal plaasvind',
+'readonlytext' => 'Die databasis is tans gesluit vir nuwe artikelwysigings, waarskynlik vir roetine onderhoud,
waarna dit terug sal wees na normaal.
-Die administreerder wat dit gesluit het se verduideliking:
-$1',
+Die administrateur wat dit gesluit het se verduideliking: $1',
'missing-article' => "Die databasis kon nie soos verwag die teks vir die bladsy genaamd \"\$1\" \$2 kry nie.
Dit gebeur gewoonlik as mens 'n verouderde verskil- of geskiedenis-skakel volg na 'n bladsy wat reeds verwyder is.
Indien dit nie die geval is nie, het u moontlik 'n fout in die sagteware ontdek. Rapporteer asseblief die probleem aan 'n [[Special:ListUsers/sysop|administrateur]], en maak 'n nota van die URL.",
'missingarticle-rev' => '(weergawe#: $1)',
'missingarticle-diff' => '(Wysiging: $1, $2)',
-'readonly_lag' => 'Die databasis is outomaties gesluit terwyl die slaafdatabasisse sinchroniseer met die meester',
+'readonly_lag' => 'Die databasis is outomaties gesluit terwyl die slaafdatabasisse met die meester gesinchroniseer word',
'internalerror' => 'Interne fout',
'internalerror_info' => 'Interne fout: $1',
'fileappenderrorread' => 'Kon nie "$1" tydens die "append" lees nie.',
'securelogin-stick-https' => 'Bly verbind met HTTPS na aanmelding',
'yourdomainname' => 'U domein:',
'password-change-forbidden' => 'U kan nie wagwoorde op hierdie wiki verander nie.',
-'externaldberror' => "'n Databasis fout het voorgekom tydens aanmelding of u het nie toestemming om u eksterne rekening op te dateer nie.",
+'externaldberror' => "'n Databasisfout het voorgekom tydens aanmelding of u het nie toestemming om u eksterne rekening op te dateer nie.",
'login' => 'Teken in',
'nav-login-createaccount' => 'Teken in',
'loginprompt' => 'U blaaier moet koekies toelaat om by {{SITENAME}} te kan aanteken.',
'''MOENIE WERK WAT DEUR KOPIEREG BESKERM WORD HIER PLAAS SONDER TOESTEMMING NIE!'''",
'longpageerror' => "'''Fout: die teks wat u bygevoeg het is {{PLURAL:$1|een kilogreep|$1 kilogrepe}} groot, wat groter is as die maksimum van {{PLURAL:$2|een kilogreep|$2 kilogrepe}}.'''
Die bladsy kan nie gestoor word nie.",
-'readonlywarning' => "'''WAARSKUWING: Die databasis is gesluit vir onderhoud. Dus sal u nie nou u wysigings kan stoor nie. Dalk wil u die teks plak in 'n lêer en stoor vir later.'''
+'readonlywarning' => "'''WAARSKUWING: Die databasis is gesluit vir onderhoud. Dus sal u nie nou u wysigings kan stoor nie. Dalk wil u die teks in 'n lêer plak en stoor vir later.'''
-Een administrateur het die databasis geblokkeer vir hierdie rede: $1",
+Die administrateur wat dit gesluit het se verduideliking: $1",
'protectedpagewarning' => "'''WAARSKUWING: Hierdie bladsy is beveilig sodat slegs administrateurs die inhoud sal kan verander.''' Die nuutste logboekinskrywing word hieronder ter verwysing vertoon:",
'semiprotectedpagewarning' => "'''Let wel:''' Hierdie artikel is beveilig sodat slegs ingetekende gebruikers dit sal kan wysig. Die nuutste logboekinskrywing word hieronder ter verwysing vertoon:",
'cascadeprotectedwarning' => "'''Waarskuwing:''' Die bladsy was beveilig sodat dit slegs deur administrateurs gewysig kan word, omrede dit ingesluit is in die volgende {{PLURAL:$1|bladsy|bladsye}} wat kaskade-beskerming geniet:",
'logentry-newusers-create' => 'Gebruiker $1 is geskep',
'logentry-newusers-create2' => 'Gebruiker $3 is deur $1 geskep',
'logentry-newusers-autocreate' => 'Die gebruiker $1 is outomaties geskep',
-'newuserlog-byemail' => 'wagwoord is per e-pos versend',
'logentry-rights-rights' => '$1 het groepslidmaatskap vir $3 van $4 na $5 gewysig',
'logentry-rights-rights-legacy' => '$1 het groepslidmaatskap vir $3 gewysig',
'logentry-rights-autopromote' => '$1 is outomaties gepromoveerd van $4 na $5',
# New logging system
'logentry-delete-delete' => '$1 ገጹን $3 አጠፋ',
-'newuserlog-byemail' => 'ማለፊያ-ቃል በኤ-መልዕክት ተልኳል',
'rightsnone' => '(የለም)',
# Feedback
'enotif_anon_editor' => 'usuario anonimo $1',
'enotif_body' => 'Queriu/ida $WATCHINGUSERNAME,
-A pachina $PAGETITLE d\'o prochecto {{SITENAME}} s\'ha $CHANGEDORCREATED o día $PAGEEDITDATE por $PAGEEDITOR, veiga a versión actual en $PAGETITLE_URL.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
Resumen de l\'editor: $PAGESUMMARY $PAGEMINOREDIT
correu-e: $PAGEEDITOR_EMAIL
wiki: $PAGEEDITOR_WIKI
-Si no visita a pachina, no recibirá mas notificacions de futuros cambios cambios.
+Si no visita a pachina, no recibirá mas notificacions de futuros cambios.
Tamién puet cambiar o modo de notificación d\'as pachinas que cosira en a suya lista de seguimiento.
+
Atentament,
O servicio de notificacions d\'o prochecto {{SITENAME}}
'logentry-newusers-create' => "$1 creyó una cuenta d'usuario",
'logentry-newusers-create2' => "$1 creyó una cuenta d'usuario $3",
'logentry-newusers-autocreate' => "S'ha creyau automaticament a cuenta $1",
-'newuserlog-byemail' => 'Clau ninviata por correu electronico',
'rightsnone' => '(garra)',
# Feedback
'logentry-newusers-create' => 'تم إنشاء الحساب $1',
'logentry-newusers-create2' => 'أنشأ $1 الحساب $3',
'logentry-newusers-autocreate' => 'أنشئ حساب $1 تلقائياً',
-'newuserlog-byemail' => 'كلمة السر تم إرسالها بواسطة البريد الإلكتروني',
'logentry-rights-rights' => 'غير $1 صلاحيات $3 من $4 إلى $5',
'logentry-rights-rights-legacy' => 'غير $1 صلاحيات $3',
'logentry-rights-autopromote' => 'تمت ترقية $1 تلقائياً من $4 إلى $5',
);
$specialPageAliases = array(
- 'Activeusers' => array( 'Ü¡Ü¦Ü Ü\9aÜ¢Ì\88Ü\90_Ü\99ܪÌ\84ܝܙܐ' ),
- 'Allmessages' => array( 'ܟܠ_ܐܓܪ̈ܬܐ' ),
- 'Allpages' => array( 'ܟܠ_ܦܐܬܬ̈ܐ' ),
- 'Ancientpages' => array( 'ܦܐܬܬ̈ܐ_ܥܬܝܩܬ̈ܐ' ),
+ 'Activeusers' => array( 'Ü¡Ü¦Ü Ü\9aÜ¢Ì\88Ü\90_Ü\99ܪÌ\88ܝܙܐ' ),
+ 'Allmessages' => array( 'ܟܠܗܝܢ_ܐܓܪ̈ܬܐ' ),
+ 'Allpages' => array( 'ܟܠܗܝܢ_ܦܐܬܬ̈ܐ' ),
+ 'Ancientpages' => array( 'ܦܐܬܬ̈ܐ_ܥܬܝܩ̈ܬܐ' ),
'Badtitle' => array( 'ܟܘܢܝܐ_ܠܐ_ܛܒܐ' ),
'Blankpage' => array( 'ܦܐܬܐ_ܣܦܝܩܬܐ' ),
'BrokenRedirects' => array( 'ܨܘܝܒ̈ܐ_ܬܒܝܪ̈ܐ' ),
'Categories' => array( 'ܣܕܪ̈ܐ' ),
'ChangeEmail' => array( 'ܫܚܠܦ_ܒܝܠܕܪܐ_ܐܠܩܛܪܘܢܝܐ' ),
- 'ComparePages' => array( 'ܦÜ\9aÜ\98Ü¡_Ü\92Ü\9dܢܬ_ܦÜ\90ܬܬÌ\88Ü\90' ),
+ 'ComparePages' => array( 'ܦܚܡ_ܒܝܢܬ_ܦܐܬܬ̈ܐ' ),
'Confirmemail' => array( 'ܫܪܪ_ܒܝܠܕܪܐ_ܐܠܩܛܪܘܢܝܐ' ),
- 'Contributions' => array( 'ܫܘܬܦܘܝܬ̈ܐ' ),
+ 'Contributions' => array( 'ܫܘܬܦܘ̈ܬܐ' ),
'CreateAccount' => array( 'ܒܪܝ_ܚܘܫܒܢܐ' ),
'Deadendpages' => array( 'ܦܐܬܬ̈ܐ_ܥܡ_ܚܪܬܐ_ܡܝܬܬܐ' ),
- 'DeletedContributions' => array( 'ܫܘܬܦܘܝܬ̈ܐ_ܫܝܦܬ̈ܐ' ),
+ 'DeletedContributions' => array( 'ܫܘܬܦܘ̈ܬܐ_ܫܝ̈ܦܬܐ' ),
'Disambiguations' => array( 'ܬܘܚܡ̈ܐ_ܐܚܪ̈ܢܐ' ),
- 'DoubleRedirects' => array( 'ܨܘܝܒ̈ܐ_ܥܦܝܦ̈ܐ' ),
+ 'DoubleRedirects' => array( 'ܨܘܝܒ̈ܐ_ܥܦܝ̈ܦܐ' ),
'EditWatchlist' => array( 'ܫܚܠܦ_ܪ̈ܗܝܬܐ' ),
'Emailuser' => array( 'ܫܕܪ_ܒܝܠܕܪܐ_ܐܠܩܛܪܘܢܝܐ_ܠܡܦܠܚܢܐ' ),
- 'Fewestrevisions' => array( 'ܬܢܝܬ̈ܐ_ܒܨܝܪ_ܡܢ_ܟܠ' ),
+ 'Fewestrevisions' => array( 'ܬܢܝ̈ܬܐ_ܒܨܝܪ_ܡܢ_ܟܠ' ),
'Filepath' => array( 'ܫܒܝܠܐ_ܕܦܐܬܐ' ),
'Log' => array( 'ܣܓܠܐ', 'ܣܓܠ̈ܐ' ),
- 'Lonelypages' => array( 'ܦܐܬܬ̈ܐ_ܝܬܡܬ̈ܐ' ),
+ 'Lonelypages' => array( 'ܦܐܬܬ̈ܐ_ܝܬܡ̈ܬܐ' ),
'Longpages' => array( 'ܦܐܬܬ̈ܐ_ܐܪ̈ܝܟܬܐ' ),
'Mostlinkedcategories' => array( 'ܣܕܪ̈ܐ_ܐܣܝܪ̈ܐ_ܝܬܝܪ_ܡܢ_ܟܠ', 'ܣܕܪ̈ܐ_ܦܠܝܚ̈ܐ_ܝܬܝܪ_ܡܢ_ܟܠ' ),
'Mostlinkedtemplates' => array( 'ܩܠܒ̈ܐ_ܐܣܝܪ̈ܐ_ܝܬܝܪ_ܡܢ_ܟܠ', 'ܩܠܒ̈ܐ_ܦܠܝܚ̈ܐ_ܝܬܝܪ_ܡܢ_ܟܠ' ),
- 'Mostrevisions' => array( 'ܬܢܝܬ̈ܐ_ܝܬܝܪ_ܡܢ_ܟܠ' ),
+ 'Mostrevisions' => array( 'ܬܢܝ̈ܬܐ_ܝܬܝܪ_ܡܢ_ܟܠ' ),
'Movepage' => array( 'ܫܢܝ_ܦܐܬܐ' ),
- 'Mycontributions' => array( 'ܫܘܬܦܘܝܬ̈ܝ' ),
+ 'Mycontributions' => array( 'ܫܘܬܦܘ̈ܬܝ' ),
'Mypage' => array( 'ܦܐܬܐ_ܕܝܠܝ' ),
'Mytalk' => array( 'ܡܡܠܠܐ_ܕܝܠܝ' ),
- 'Myuploads' => array( 'ܐܣܩܬ̈ܐ_ܕܝܠܝ' ),
+ 'Myuploads' => array( 'ܐܣܩ̈ܬܐ_ܕܝܠܝ' ),
'Newimages' => array( 'ܠܦܦ̈ܐ_ܚܕ̈ܬܐ', 'ܨܘܪ̈ܬܐ_ܚܕ̈ܬܬܐ' ),
'Newpages' => array( 'ܦܐܬܬ̈ܐ_ܚܕ̈ܬܬܐ' ),
'PermanentLink' => array( 'ܐܣܘܪܐ_ܦܝܘܫܐ' ),
'Popularpages' => array( 'ܦܐܬܬ̈ܐ_ܡܫܡܗ̈ܐ' ),
- 'Preferences' => array( 'ܨܒܝܢܝܘܬ̈ܐ' ),
+ 'Preferences' => array( 'ܨܒܝܢܝܘ̈ܬܐ' ),
'Protectedpages' => array( 'ܦܐܬܬ̈ܐ_ܢܛܝܪ̈ܬܐ' ),
'Protectedtitles' => array( 'ܟܘܢܝ̈ܐ_ܢܛܝܪ̈ܐ' ),
'Recentchanges' => array( 'ܫܘܚܠܦ̈ܐ_ܚܕ̈ܬܐ' ),
'Search' => array( 'ܒܨܝܐ' ),
'Shortpages' => array( 'ܦܐܬܬ̈ܐ_ܟܪ̈ܝܬܐ' ),
'Specialpages' => array( 'ܦܐܬܬ̈ܐ_ܕ̈ܝܠܢܝܬܐ' ),
+ 'Statistics' => array( 'ܚܒܝܫܘܬ_ܡܢܝܢܐ' ),
'Uncategorizedcategories' => array( 'ܣܕܪ̈ܐ_ܠܐ_ܣܕܝܪ̈ܐ' ),
'Uncategorizedimages' => array( 'ܠܦܦ̈ܐ_ܠܐ_ܣܕܝܪ̈ܐ', 'ܨܘܪ̈ܬܐ_ܠܐ_ܣܕܝܪ̈ܬܐ' ),
'Uncategorizedpages' => array( 'ܦܐܬܬ̈ܐ_ܠܐ_ܣܕܝܪ̈ܬܐ' ),
'Unusedcategories' => array( 'ܣܕܪ̈ܐ_ܠܐ_ܦܠܝܚ̈ܐ' ),
'Unusedimages' => array( 'ܠܦܦ̈ܐ_ܠܐ_ܦܠܝܚ̈ܐ', 'ܨܘܪ̈ܬܐ_ܠܐ_ܦܠܝܚܬ̈ܐ' ),
'Unusedtemplates' => array( 'ܩܠܒ̈ܐ_ܠܐ_ܦܠܝܚ̈ܐ' ),
- 'Unwatchedpages' => array( 'ܦܐܬܬ̈ܐ_ܠܐ_ܣܢܝܩܬ̈ܐ' ),
+ 'Unwatchedpages' => array( 'ܦܐܬܬ̈ܐ_ܠܐ_ܣܢܝܩ̈ܬܐ' ),
'Upload' => array( 'ܐܣܩ' ),
'Userlogin' => array( 'ܥܠܠܐ_ܕܡܦܠܚܢܐ' ),
'Userlogout' => array( 'ܦܠܛܐ_ܕܡܦܠܚܢܐ' ),
- 'Userrights' => array( 'Ü\99Ü\95Ì\88Ü©Ü\90_Ü\95Ü¡Ü¦Ü Ü\9aÜ¢Ü\90', 'Ü¥Ü\92Ü\98Ü\95_Ü¡Ü\95Ü\92ܪܢÜ\90_Ü\95Ü\9bÜ\9fÜ£Ü\90', 'Ü¥Ü\92Ü\98ܕ_ܒܘܛ' ),
- 'Version' => array( 'ܨÜ\9aÜ\9aܐ' ),
+ 'Userrights' => array( 'Ü\99Ü\95Ì\88Ü©Ü\90_Ü\95Ü¡Ü¦Ü Ü\9aÜ¢Ü\90', 'Ü¥Ü\92Ü\95_Ü¡Ü\95Ü\92ܪܢÜ\90_Ü\95Ü\9bÜ\9fÜ£Ü\90', 'Ü¥Ü\92ܕ_ܒܘܛ' ),
+ 'Version' => array( 'ܡܦܩܬܐ' ),
'Wantedcategories' => array( 'ܣܕܪ̈ܐ_ܣܢܝܩ̈ܐ' ),
'Wantedfiles' => array( 'ܠܦܦ̈ܐ_ܣܢܝܩ̈ܐ' ),
- 'Wantedpages' => array( 'ܦܐܬܬ̈ܐ_ܣܢܝܩܬ̈ܐ', 'ܐܣܘܪ̈ܐ_ܬܒܝܪ̈ܐ' ),
+ 'Wantedpages' => array( 'ܦܐܬܬ̈ܐ_ܣܢܝܩ̈ܬܐ', 'ܐܣܘܪ̈ܐ_ܬܒܝܪ̈ܐ' ),
'Wantedtemplates' => array( 'ܩܠܒ̈ܐ_ܣܢܝܩ̈ܐ' ),
'Watchlist' => array( 'ܪ̈ܗܝܬܐ' ),
'Whatlinkshere' => array( 'ܡܐ_ܐܣܪ_ܠܗܪܟܐ' ),
# Rollback
'rollbacklink' => 'ܐܦܢܝ',
'editcomment' => "ܦܣܝܩܬ̈ܐ ܕܫܘܚܠܦܐ ܗܘܐ: \"''\$1''\".",
-'revertpage' => 'ܐܗܦܟ ܫܘܚܠܦ̈ܐ ܒܝܕ [[Special:Contributions/$2|$2]] ([[User talk:$2|ܡܡܠܠܐ]]) ܠܬܢܝܬܐ ܐܚܪܬܐ ܒܝܕ [[User:$1|$1]]',
+'revertpage' => 'Ü\90Ü\97ܦÜ\9f Ü«Ü\98Ü\9aÜ Ü¦Ì\88Ü\90 Ü\92Ü\9dÜ\95 [[Special:Contributions/$2|$2]] ([[User talk:$2|Ü¡Ü¡Ü Ü Ü\90]]) Ü Ü¬Ü¢Ü\9dܬÜ\90 Ü\90Ü\9aܪÜ\9dܬÜ\90 Ü\92Ü\9dÜ\95 [[User:$1|$1]]',
# Edit tokens
'sessionfailure-title' => 'ܡܘܬܒܐ ܠܐ ܢܨܚܬ',
# Protect
'protectlogpage' => 'ܣܓܠܐ ܕܢܛܪܐ',
'protectedarticle' => 'ܢܛܪ "[[$1]]"',
+'modifiedarticleprotection' => 'ܫܚܠܦ ܫܘܝܐ ܕܢܛܪܐ ܕ"[[$1]]"',
'unprotectedarticle' => 'ܫܩܘܠ ܢܛܝܪܘܬܐ ܡܢ "[[$1]]"',
'movedarticleprotection' => 'ܫܢܐ ܛܘܝܒ̈ܐ ܕܢܛܪܐ ܡܢ "[[$2]]" ܠ "[[$1]]"',
+'protect-title' => 'ܫܚܠܦ ܫܘܝܐ ܕܢܛܪܐ ܕ"$1"',
+'protect-title-notallowed' => 'ܚܘܝ ܫܘܝܐ ܕܢܛܪܐ ܕ"$1"',
'prot_1movedto2' => '[[$1]] ܐܬܫܢܝܬ ܠ [[$2]]',
'protect-legend' => 'ܫܪܪ ܢܘܛܪܐ',
'protectcomment' => 'ܥܠܬܐ:',
'protect-level-sysop' => 'ܡܕܒܪ̈ܢܐ ܒܠܚܘܕ',
'protect-expiring' => 'ܬܦܪܘܩ ܒ $1 (UTC)',
'protect-expiry-indefinite' => 'ܠܥܠܡ',
-'protect-othertime' => 'Ü¥Ü\95Ü¢Ü\90 Ü\90Ü\9aܪܬܐ:',
-'protect-othertime-op' => 'Ü¥Ü\95Ü¢Ü\90 Ü\90Ü\9aܪܬܐ',
+'protect-othertime' => 'Ü¥Ü\95Ü¢Ü\90 Ü\90Ü\9aܪܢܐ:',
+'protect-othertime-op' => 'Ü¥Ü\95Ü¢Ü\90 Ü\90Ü\9aܪܢܐ',
'protect-otherreason' => 'ܥܠܬܐ ܐܚܪܬܐ/ܢܩܝܦܬܐ:',
'protect-otherreason-op' => 'ܥܠܬܐ ܐܚܪܬܐ',
'protect-edit-reasonlist' => 'ܫܚܠܦ ܥܠܬܐ ܕܢܛܪܐ',
-'protect-expiry-options' => '1 ܫܥܬÜ\90:1 hour,1 Ü\9dÜ\98Ü¡Ü\90:1 day,1 Ü«Ü\92Ü\98Ü¥Ü\90:1 week,2 Ü«Ü\92Ü\98Ü¥Ì\88Ü\90:2 weeks,1 Ü\9dܪÜ\9aÜ\90:1 month,3 Ü\9dܪÌ\88Ü\9aÜ\90:3 months,6 Ü\9dܪÌ\88Ü\9aÜ\90:6 months,1 ܫܢܬܐ:1 year,ܠܥܠܡ:infinite',
+'protect-expiry-options' => '1 Ü«Ü¥Ü\90:1 hour,1 Ü\9dÜ\98Ü¡:1 day,1 Ü«Ü\92Ü\98Ü¥:1 week,2 Ü«Ü\92Ü\98Ü¥Ì\88Ü\9dÜ¢:2 weeks,1 Ü\9dܪÜ\9a:1 month,3 Ü\9dܪÌ\88Ü\9aÜ\9dÜ¢:3 months,6 Ü\9dܪÌ\88Ü\9aÜ\9dÜ¢:6 months,1 Ü«Ü¢ܐ:1 year,ܠܥܠܡ:infinite',
'restriction-type' => 'ܦܣܣܐ:',
'restriction-level' => 'ܫܘܝܐ ܕܣܘܝܟܐ:',
'minimum-size' => 'ܡܬܚܐ ܬܚܬܝܐ ܕܥܓܪܐ',
'ipbreason' => 'ܥܠܬܐ:',
'ipbreasonotherlist' => 'ܥܠܬܐ ܐܚܪܬܐ',
'ipbsubmit' => 'ܚܪܘܡ ܡܦܠܚܢܐ ܗܢܐ',
-'ipbother' => 'Ü¥Ü\95Ü¢Ü\90 Ü\90Ü\9aܪܬܐ',
-'ipboptions' => '2 ܫܥܬ̈ܐ:2 hours,1 ܝܘܡܐ:1 day,3 ܝܘܡܬ̈ܐ:3 days,1 ܫܒܘܥܐ:1 week,2 ܫܒܘܥ̈ܐ:2 weeks,1 ܝܪܚܐ:1 month,3 ܝܪ̈ܚܐ:3 months,6 ܝܪ̈ܚܐ:6 months,1 ܫܢܬܐ:1 year,ܠܥܠܡ:infinite',
+'ipbother' => 'Ü¥Ü\95Ü¢Ü\90 Ü\90Ü\9aܪܢܐ',
+'ipboptions' => '2 ܫܥ̈ܝܢ:2 hours,1 ܝܘܡ:1 day,3 ܝܘܡ̈ܝܢ:3 days,1 ܫܒܘܥ:1 week,2 ܫܒܘܥ̈ܝܢ:2 weeks,1 ܝܪܚ:1 month,3 ܝܪ̈ܚܝܢ:3 months,6 ܝܪ̈ܚܝܢ:6 months,1 ܫܢܐ:1 year,ܠܥܠܡ:infinite',
'ipbotheroption' => 'ܐܚܪܢܐ',
'ipbotherreason' => 'ܥܠܬܐ ܐܚܪܬܐ/ܢܩܝܦܬܐ:',
'ipbhidename' => 'ܛܫܝ ܫܡܐ ܕܡܦܠܚܢܐ ܡܢ ܫܘܚܠܦ̈ܐ ܘܡܟܬܒܘܬ̈ܐ',
'logentry-newusers-create' => 'ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ $1 ܐܬܒܪܐ',
'logentry-newusers-create2' => 'ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ $3 ܐܬܒܪܐ ܒܝܕ $1',
'logentry-newusers-autocreate' => 'ܚܘܫܒܢܐ $1 ܐܬܒܪܝ ܝܬܐܝܬ',
-'newuserlog-byemail' => 'ܡܠܬܐ ܕܥܠܠܐ ܐܫܬܕܪܬ ܒܝܕ ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
'rightsnone' => '(ܠܐ ܡܕܡ)',
# Feedback
# New logging system
'revdelete-restricted' => 'tḅḅq ḍ-ḍawaḅit ll-idariyyin',
'revdelete-unrestricted' => 'ḫyyd ḍ-ḍawaḅit ll-idariyyin',
-'newuserlog-byemail' => "lmot de passe raha tsiftat f l'email",
'rightsnone' => '(walo)',
);
# New logging system
'revdelete-restricted' => 'طبق التعليمات على السيسوبات',
'revdelete-unrestricted' => 'شيل الضوابط من على السيسوبات',
-'newuserlog-byemail' => 'الباسورد اتبعتت بالايميل',
'rightsnone' => '(فاضى)',
# Search suggestions
'logentry-newusers-create' => "ব্যৱহাৰকাৰী একাউণ্ট $1 সৃষ্টি কৰা হ'ল",
'logentry-newusers-create2' => "$1ৰ দ্বাৰা এটা ব্যৱহাৰকাৰী একাউণ্ট $3 সৃষ্টি কৰা হ'ল",
'logentry-newusers-autocreate' => '$1’ৰ একাউণ্ট স্বয়ংক্ৰিয়ভাৱে সৃষ্টি কৰা হৈছিল',
-'newuserlog-byemail' => 'গুপ্তশব্দ ই-মেইল কৰি পঠোৱা হৈছে',
'logentry-rights-rights' => "$1ৰ গোট সদস্যপদ $3ৰ পৰা $4লৈ $5 লৈ সলনি কৰা হ'ল",
'logentry-rights-rights-legacy' => "$1-ৰ গোট সদস্যপদ $3-লৈ সলনি কৰা হ'ল",
'logentry-rights-autopromote' => '$1ক $4ৰ পৰা $5লৈ স্বয়ংক্ৰিয়ভাৱে পদোন্নীত কৰা হ’ল',
'gotaccount' => '¿Ya tienes una cuenta? $1.',
'gotaccountlink' => 'Identificase',
'userlogin-resetlink' => "¿Escaecisti los datos d'identificación?",
-'createaccountmail' => 'Per corréu electrónicu',
+'createaccountmail' => 'Usar una contraseña al debalu temporal y unviala a la direición de corréu electrónicu conseñada más abaxo',
'createaccountreason' => 'Motivu:',
'badretype' => "Les claves qu'escribisti nun concuayen.",
'userexists' => "El nome d'usuariu conseñáu yá ta usándose.
# E-mail sending
'php-mail-error-unknown' => 'Fallu desconocíu na función mail() de PHP.',
'user-mail-no-addy' => 'Intentasti unviar un corréu electrónicu ensin direición.',
+'user-mail-no-body' => "Trató d'unviar un corréu electrónicu con un cuerpu baleru o curtiu enforma.",
# Change password dialog
'resetpass' => 'Camudar la clave',
'longpageerror' => "'''ERROR: El testu qu'unviasti tien {{PLURAL:$1|un quilobyte|$1 quilobytes}}, que pasa del máximu de {{PLURAL:$2|un quilobyte|$2 quilobytes}}.'''
Nun se pue grabar.",
'readonlywarning' => "'''Avisu: La base de datos ta candada por mantenimientu, polo que nun vas poder guardar les tos ediciones nestos momentos.'''
-Seique habríes copiar el testu nun ficheru de testu y guardalu pa intentalo llueu.
+Seique habríes copiar y apegar el testu nun ficheru de testu y guardalu pa intentalo más sero.
L'alministrador que la candó dio esta esplicación: $1",
'protectedpagewarning' => "'''Avisu: Esta páxina ta candada pa que sólo los alministradores puean editala.'''
# Special:ActiveUsers
'activeusers' => "Llista d'usuarios activos",
'activeusers-intro' => "Esta ye una llista d'usuarios que tuvieron alguna mena d'actividá hai menos de $1 {{PLURAL:$1|día|díes}}.",
-'activeusers-count' => '$1 {{PLURAL:$1|edición|ediciones}} nos caberos {{PLURAL:$3|día|$3 díes}}',
+'activeusers-count' => '$1 {{PLURAL:$1|edición|ediciones}} {{PLURAL:$3|nel caberu día|nos caberos $3 díes}}',
'activeusers-from' => 'Amosar usuarios principiando dende:',
'activeusers-hidebots' => 'Anubrir bots',
'activeusers-hidesysops' => 'Anubrir alministradores',
Esta ye la configuración actual pa la páxina '''$1''':",
'protect-cascadeon' => "Esta páxina ta protexida nestos momentos porque ta inxerida {{PLURAL:$1|na siguiente páxina, que tien|nes siguientes páxines, que tienen}} activada la proteición en cascada. Pues camudar el nivel de proteición d'esta páxina, pero nun va afeutar a la proteición en cascada.",
'protect-default' => 'Permitir tolos usuarios',
-'protect-fallback' => 'Requier el permisu "$1"',
-'protect-level-autoconfirmed' => 'Bloquiar usuarios nuevos y non rexistraos',
-'protect-level-sysop' => 'Namái alministradores',
+'protect-fallback' => 'Permitir namái usuarios con permisu "$1"',
+'protect-level-autoconfirmed' => 'Permitir namái usuarios autoconfirmaos',
+'protect-level-sysop' => 'Permitir namái alministradores',
'protect-summary-cascade' => 'en cascada',
'protect-expiring' => "caduca'l $1 (UTC)",
'protect-expiring-local' => 'caduca el $1',
'move-page' => 'Treslladar $1',
'move-page-legend' => 'Treslladar páxina',
'movepagetext' => "Usando'l siguiente formulariu vas renomar una páxina, treslladando'l so historial al nuevu nome.
-El nome vieyu va convertise nuna redireición al nuevu.
-Pues actualizar redireiciones qu'enllacien al títulu orixinal automáticamente.
+El nome vieyu va convertise nuna páxina de redireición al títulu nuevu.
+Pues actualizar les redireiciones qu'enllacien al títulu orixinal automáticamente.
Si prefieres nun lo facer, asegúrate de que nun dexes [[Special:DoubleRedirects|redireiciones dobles]] o [[Special:BrokenRedirects|rotes]].
-Tu yes el responsable de facer que los enllaces queden apuntando aonde se supón qu'han apuntar.
+Tu yes el responsable de facer que los enllaces queden apuntando au se supón que tienen d'apuntar.
-Recuerda que la páxina '''nun''' va movese si yá hai una páxina col nuevu títulu, a nun ser que tea vacia o seya una redireición que nun tenga historial.
-Esto significa que pues volver a renomar una páxina col nome orixinal si t'enquivoques, y que nun pues sobreescribir una páxina yá esistente.
+Recuerda que la páxina '''nun''' va movese si yá hai una páxina col nuevu títulu, a nun ser que seya una redireición y nun tenga historial.
+Esto significa que pues volver a renomar una páxina col nome orixinal si t'enquivoques, y nun pues sobreescribir una páxina yá esistente.
¡AVISU!'''
Esti pue ser un cambéu importante y inesperáu pa una páxina popular;
'specialpages-group-highuse' => 'Páxines mui usaes',
'specialpages-group-pages' => 'Llistes de páxines',
'specialpages-group-pagetools' => 'Ferramientes de páxina',
-'specialpages-group-wiki' => 'Datos wiki y ferramientes',
+'specialpages-group-wiki' => 'Datos y ferramientes',
'specialpages-group-redirects' => 'Páxines especiales de redireición',
'specialpages-group-spam' => 'Ferramientes pa spam',
'logentry-newusers-newusers' => "Se creó la cuenta d'usuariu $1",
'logentry-newusers-create' => "Se creó la cuenta d'usuariu $1",
'logentry-newusers-create2' => "$1 creó la cuenta d'usuariu $3",
+'logentry-newusers-byemail' => "$1 creó la cuenta d'usuariu $3 y la contraseña uviose per corréu electrónicu",
'logentry-newusers-autocreate' => 'La cuenta $1 se creó automáticamente',
-'newuserlog-byemail' => 'conseña unviada per corréu electrónicu',
'logentry-rights-rights' => '$1 camudó la pertenencia a grupos de $3 dende $4 a $5',
'logentry-rights-rights-legacy' => '$1 camudó la pertenencia a grupos de $3',
'logentry-rights-autopromote' => '$1 promocionó automáticamente de $4 a $5',
'api-error-ok-but-empty' => 'Fallu internu: nun hai respuesta del sirvidor.',
'api-error-overwrite' => 'Nun ta permitío sobroscribir un ficheru esistente.',
'api-error-stashfailed' => 'Fallu internu: el sirvidor nun pudo guardar el ficheru temporal.',
+'api-error-publishfailed' => 'Fallu internu: el sirvidor nun pudo espublizar el ficheru temporal.',
'api-error-timeout' => 'El sirvidor nun respondió nel tiempu esperáu.',
'api-error-unclassified' => 'Hebo un fallu desconocíu',
'api-error-unknown-code' => 'Fallu desconocíu: «$1»',
# New logging system
'revdelete-restricted' => 'irutara rewana pu ristusik',
'revdelete-unrestricted' => 'irutara tiolteyena pu ristusik',
-'newuserlog-byemail' => 'remravlem staksayan kan e-mail',
'rightsnone' => '(mek)',
);
'tog-externaleditor' => 'Susmaya görə xarici müqayisə proqramlarından istifadə et',
'tog-externaldiff' => 'Susmaya görə xarici müqayisə proqramlarından istifadə et',
'tog-showjumplinks' => '"Keçid et:" linklərini aktivləşdir',
-'tog-uselivepreview' => 'Canlı sınaq baxışı xüsusiyyətini istifadə et (JavaScript, sınaq mərhələsində)',
+'tog-uselivepreview' => 'Canlı sınaq baxışı xüsusiyyətindən istifadə et (JavaScript tələb edir, sınaq mərhələsindədir)',
'tog-forceeditsummary' => 'Qısa məzmunu boş saxladıqda mənə bildir',
'tog-watchlisthideown' => 'Mənim redaktələrimi izləmə siyahısında gizlət',
'tog-watchlisthidebots' => 'Bot redaktələrini izləmə siyahısında gizlət',
'logentry-newusers-create' => '$1 istifadəçi hesabı yaratdı',
'logentry-newusers-create2' => '$1 $3 üçün istifadəçi hesabı yaratdı',
'logentry-newusers-autocreate' => '$1 hesabı avtomatik yaradıldı',
-'newuserlog-byemail' => 'parol e-maillə göndərildi',
'rightsnone' => '(yoxdur)',
# Feedback
$fallback = 'fa';
$rtl = true;
+$namespaceNames = array(
+ NS_MEDIA => 'مئدیا',
+ NS_SPECIAL => 'اؤزل',
+ NS_MAIN => '',
+ NS_TALK => 'دانیشیق',
+ NS_USER => 'ایستیفادهچی',
+ NS_USER_TALK => 'ایستیفادهچی_دانیشیغی',
+ NS_PROJECT_TALK => '$1_دانیشیق',
+ NS_FILE => 'فایل',
+ NS_FILE_TALK => 'فایل_دانیشیغی',
+ NS_MEDIAWIKI => 'مئدیاویکی',
+ NS_MEDIAWIKI_TALK => 'مئدیاویکی_دانیشیغی',
+ NS_TEMPLATE => 'شابلون',
+ NS_TEMPLATE_TALK => 'شابلون_دانیشیغی',
+ NS_HELP => 'یاردیم',
+ NS_HELP_TALK => 'یاردیم_دانیشیغی',
+ NS_CATEGORY => 'بؤلمه',
+ NS_CATEGORY_TALK => 'بؤلمه_دانیشیغی',
+);
+
+$specialPageAliases = array(
+ 'Activeusers' => array( 'چالیشقان_ایستسفادهچیلر' ),
+ 'Allmessages' => array( 'بوتون_مئساژلار' ),
+ 'Allpages' => array( 'بوتون_صحیفهلر' ),
+ 'Ancientpages' => array( 'اسکی_صحیفهلر' ),
+ 'Badtitle' => array( 'پیس_آد' ),
+ 'Blankpage' => array( 'بوش_صحیفه' ),
+ 'ChangePassword' => array( 'رمزی_دَییش' ),
+ 'CreateAccount' => array( 'حساب_یارات' ),
+ 'Mycontributions' => array( 'چالیشمالاریم' ),
+ 'Mypage' => array( 'صحیفهم' ),
+ 'Mytalk' => array( 'دانیشیغیم' ),
+ 'Myuploads' => array( 'یوکلهدیکلریم' ),
+ 'Newimages' => array( 'یئنی_فایللار' ),
+ 'Newpages' => array( 'یئنی_صحیفهلر' ),
+ 'PasswordReset' => array( 'رمز_دَییشمه' ),
+ 'Randompage' => array( 'راستگله' ),
+ 'Recentchanges' => array( 'سون_دَییشیکلر' ),
+ 'Search' => array( 'آختار' ),
+ 'Shortpages' => array( 'قیسسا_صحیفهلر' ),
+ 'Specialpages' => array( 'اؤزل_صحیفهلر' ),
+ 'Statistics' => array( 'آمار' ),
+ 'Unusedcategories' => array( 'ایشلنممیش_بؤلمهلر' ),
+ 'Unusedimages' => array( 'ایشلنممیش_فایللار' ),
+ 'Unusedtemplates' => array( 'ایشلنممیش_شابلونلار' ),
+ 'Unwatchedpages' => array( 'باخیلمامیش_صحیفهلر' ),
+ 'Upload' => array( 'یوکله' ),
+ 'Version' => array( 'نوسخه' ),
+ 'Watchlist' => array( 'ایزلهدیکلر' ),
+);
+
+$magicWords = array(
+ 'numberofpages' => array( '1', 'صحیفهلر_ساییسی', 'تعدادصفحهها', 'NUMBEROFPAGES' ),
+ 'numberofarticles' => array( '1', 'مقالهلر_ساییسی', 'تعدادمقالهها', 'NUMBEROFARTICLES' ),
+ 'numberoffiles' => array( '1', 'قایللار_ساییسی', 'تعدادپروندهها', 'NUMBEROFFILES' ),
+ 'numberofusers' => array( '1', 'ایستیفادهچیلر_ساییسی', 'تعدادکاربران', 'NUMBEROFUSERS' ),
+ 'numberofactiveusers' => array( '1', 'چالیشقان_ایستیفادهچیلر', 'کاربرانفعال', 'کاربران_فعال', 'NUMBEROFACTIVEUSERS' ),
+ 'numberofedits' => array( '1', 'دَییشدیرمه_ساییسی', 'تعدادویرایشها', 'NUMBEROFEDITS' ),
+ 'pagename' => array( '1', 'صحیفهنین_آدی', 'نامصفحه', 'نام_صفحه', 'PAGENAME' ),
+ 'img_right' => array( '1', 'ساغ', 'راست', 'right' ),
+ 'img_left' => array( '1', 'سول', 'چپ', 'left' ),
+ 'img_none' => array( '1', 'هئچ', 'هیچ', 'none' ),
+ 'img_framed' => array( '1', 'قابیق', 'قاب', 'framed', 'enframed', 'frame' ),
+);
+
$messages = array(
# User preference toggles
'tog-underline' => 'باغلانتیلارین آلتینی خطله:',
'gotaccount' => 'اؤنجهدن حسابینیز وارمی؟ $1.',
'gotaccountlink' => 'گیریش',
'userlogin-resetlink' => 'گیریش بیلگیلرینیزی اونوتموسونوز؟',
-'createaccountmail' => 'اÛ\8cÙ\85Û\8cÙ\84 اÛ\8cÙ\84Ù\87',
+'createaccountmail' => 'بÛ\8cر گئÚ\86Û\8cجÛ\8c راستâ\80\8cÚ¯Ù\84Ù\87 رÙ\85ز اÛ\8cØ´Ù\84ت Ù\88 اÙ\88Ù\86Ù\88 آشاغÛ\8cدا بÙ\84Ù\84Ù\86دÛ\8cرÙ\86 اÛ\8cÙ\85Û\8cÙ\84 آدرسÛ\8cÙ\86Ù\87 گؤÙ\86در',
'createaccountreason' => 'نَدَنلیک:',
'badretype' => 'یازدیغینیز رمزلر بیر دئییللر.',
'userexists' => 'یازدیغینیز آد، اؤنجهدن ایشدهدیر.
آیریجا بو علاوه یازینی سیزین یازدیغینیزدان یا دا سربست کوپیالاما ایجازهسی وئرن بیر قایناقدان کوپیالادیغینیزی بیزه اؤهدهلرینه ائتمکدسینیز (دئتاللار اوچون ایستیناد: $1).',
'longpageerror' => "خطا: داخیل متنین اوزونلوغو قبول ائدیله بیلر ان چوخ اوزونلوق اولان {{PLURAL: $2 | بیر کیلوبایت | $2 کیلوبایت}} دان چوخدور و {{PLURAL: $1 | بیر کیلوبایت | $1 کیلوبایت}} بؤیوکلوگوندهدیر.'
دییشیکلیگینین کایدئدیلئمئز.",
-'readonlywarning' => "'''دیققت: باخیم سببی ایله وئریلنلر بازاسی بو آندا کیلیدلیدیر. بو سببله دییشیکلیکلرینین بو آندا قئیدئدیل میجاغدیر. یازدیقلارینیزی باشقا بیر پرونده ده آلیب ساخلایا و داها سونرا تکرار بورا گتیریب یازا بیلرسینیز '
+'readonlywarning' => "'''دیقت: باخیم سببی ایله دیتابیس بو آندا قیفیللیدیر. بو سببله دییشیکلیکلرینین بو آندا قئید ائدیل میهجکدیر. یازدیقلارینیزی باشقا بیر فایلدا آلیب ساخلایا و داها سونرا یئنیدن بورا گتیریب یازا بیلرسینیز.
-کیلیدلهین خیدمتله بو شرحی علاوه ائتمیشدیر: $1",
+اونو قیفیللایان ایدارهچی، بو شرحی وئریبدیر: $1",
'protectedpagewarning' => "' 'خاطیرلیریق: بو صحیفه باغلانیب دیر و یالنیز مودیر اولانلار طرفیندن دییشدیریله بیلر.'
سون گوندهلیک گیردیسی ایستیناد مقصدلی آشاغیدا وئریلمیشدیر:",
'semiprotectedpagewarning' => "'قئید:' بو صحیفه محافظهلی اولدوغو اوچون یالنیز قئیدیاتدان کئچمیش ایستیفادهچیلر دییشدیر ائده بیلرلر.",
# Special:ActiveUsers
'activeusers' => 'چالیشان ایستیفادهچیلرین لیستی',
'activeusers-intro' => 'بوردا سون {{PLURAL:$1|بیر|$1}} گونده بیر ایشلر گؤرن ایستیفادهچیلرین لیستی گؤستریلیر.',
-'activeusers-count' => 'سون {{PLURAL:$3|بیر|$3}} گونده، {{PLURAL:$1|بیر|$1}} دَییشیکلیک.',
+'activeusers-count' => 'سون {{PLURAL:$3|گون|$3 گون}}ده، {{PLURAL:$1|$1}} چالیشما',
'activeusers-from' => 'بوندان باشلایاراق ایستیفادهچیلری گؤستر:',
'activeusers-hidebots' => 'بوتلاری گیزلت',
'activeusers-hidesysops' => 'ایدارهچیلری گیزلت',
'exportlistauthors' => 'هر صحیفه اوچون دَییشدیرمه ائدن سیياهیسینی اؤزونده ساخلايین',
'export-submit' => 'ایخراج',
'export-addcattext' => 'صحیفهلری بو بولمه دن علاوه ائت:',
-'export-addcat' => 'عÙ\84اÙ\88Ù\87 ائت',
+'export-addcat' => 'آرتÛ\8cر',
'export-addnstext' => 'صحیفهلری آدلار فزاسیندان علاوه ائت:',
-'export-addns' => 'عÙ\84اÙ\88Ù\87 ائت',
+'export-addns' => 'آرتÛ\8cر',
'export-download' => 'فایلی قئید ائت',
'export-templates' => 'شابلونلاری داخیل ائت',
'export-pagelinks' => 'باغلی صحیفهلری داخیل درینلیک:',
'specialpages-group-highuse' => 'ان چوخ ایستیفاده ائدیلن صحیفهلر',
'specialpages-group-pages' => 'صحیفهلرین سیاهیلاری',
'specialpages-group-pagetools' => 'صحیفه آلتلری',
-'specialpages-group-wiki' => 'ویکی بیلگیلری و آلتلری',
+'specialpages-group-wiki' => 'بیلگیلر و آلتلر',
'specialpages-group-redirects' => 'خصوصی ایستیقامتلندیرمه صحیفهلری',
'specialpages-group-spam' => 'هرزه یازماق آلتلری',
'logentry-newusers-newusers' => ' بیر ایستیفادهچی حسابی $1 یاراتدی',
'logentry-newusers-create' => 'بیر ایستیفادهچی حسابی $1 یاراتدی',
'logentry-newusers-create2' => 'بیر ایستیفادهچی $1 حسابی $3 یاراتدی',
+'logentry-newusers-byemail' => '$3 ایستیفادهچی حسابی، $1 ایله یارادیلیب و رمز، ایمیل ایله گؤندریلیبدیر',
'logentry-newusers-autocreate' => '$1 حسابی اوتوماتیک یارادیلدی',
-'newuserlog-byemail' => 'رمز ایمیل ایله گؤندریلدی',
'logentry-rights-rights' => '$1 $3-ین قروپ عوضولوگونو $4-دن $5-ه دَییشدیردی',
'logentry-rights-rights-legacy' => '$1، $3-ین قروپ عوضولوگونو دَییشدیردی',
'logentry-rights-autopromote' => '$1-ین مقامی اوتوماتیک $4-دن $5-ه آرتیریلدی',
'api-error-ok-but-empty' => 'ایچری خطا: خیدمتچیدن جاواب گلمهدی.',
'api-error-overwrite' => 'بیر اولان فایلین اوستونه یازماغا ایجازه یوخدور.',
'api-error-stashfailed' => 'ایچری خطا: خیدمتچی، گئچیجی فایلی ساخلایانمادی.',
+'api-error-publishfailed' => 'ایچری خطاسی: خیدمتچی، گئچیجی فایلی یایانمادی.',
'api-error-timeout' => 'خیدمتچی، گؤزلهنیلن واختدا جاواب وئرمهدی.',
'api-error-unclassified' => 'بیر تانینمامیش خطا قاباغا گلدی.',
'api-error-unknown-code' => 'تانینمامیش خطا: «$1».',
NS_USER => 'Ҡатнашыусы',
NS_USER_TALK => 'Ҡатнашыусы_менән_һөйләшеү',
NS_PROJECT_TALK => '$1_буйынса_фекерләшеү',
- NS_FILE => 'Ð Ó\99Ñ\81ем',
- NS_FILE_TALK => 'Ð Ó\99Ñ\81ем_буйынса_фекерләшеү',
+ NS_FILE => 'Файл',
+ NS_FILE_TALK => 'Файл_буйынса_фекерләшеү',
NS_MEDIAWIKI => 'MediaWiki',
NS_MEDIAWIKI_TALK => 'MediaWiki_буйынса_фекерләшеү',
NS_TEMPLATE => 'Ҡалып',
'Фекер_алышыу' => NS_TALK,
'Ҡатнашыусы_м-н_фекер_алышыу' => NS_USER_TALK,
'$1_б-са_фекер_алышыу' => NS_PROJECT_TALK,
+ 'Рәсем' => NS_FILE,
+ 'Рәсем_буйынса_фекерләшеү' => NS_FILE_TALK,
'Рәсем_б-са_фекер_алышыу' => NS_FILE_TALK,
'MediaWiki_б-са_фекер_алышыу' => NS_MEDIAWIKI_TALK,
'Ҡалып_б-са_фекер_алышыу' => NS_TEMPLATE_TALK,
'logentry-newusers-create' => '$1 ҡатнашыусыһының иҫәп яҙмаһы булдырылды',
'logentry-newusers-create2' => '$3 ҡатнашыусыһының иҫәп яҙмаһы $1 тарафынан булдырылды',
'logentry-newusers-autocreate' => 'Автоматик рәүештә $1 иҫәп яҙыуы яһалды',
-'newuserlog-byemail' => 'пароль электрон почта адресы аша ебәрелде',
'logentry-rights-rights' => '$1 $3 ҡулланыусыһының төркөмдәрҙәге ағзалығын $4 икән, $5 тип үҙгәртте',
'logentry-rights-rights-legacy' => '$1 $3 ҡулланыусыһының төркөм ағзалығын үҙгәртте',
'logentry-rights-autopromote' => '$1 автоматик рәүештә $2 икән, $3 ителде.',
$fallback = 'de';
+$namespaceNames = array(
+ NS_MEDIA => 'Media',
+ NS_SPECIAL => 'Spezial',
+ NS_TALK => 'Dischkrian',
+ NS_USER => 'Nutza',
+ NS_USER_TALK => 'Nutza_Dischkrian',
+ NS_PROJECT_TALK => '$1_Dischkrian',
+ NS_FILE => 'Datei',
+ NS_FILE_TALK => 'Datei_Dischkrian',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'MediaWiki_Dischkrian',
+ NS_TEMPLATE => 'Vorlog',
+ NS_TEMPLATE_TALK => 'Vorlog_Dischkrian',
+ NS_HELP => 'Huif',
+ NS_HELP_TALK => 'Huif_Dischkrian',
+ NS_CATEGORY => 'Kategorie',
+ NS_CATEGORY_TALK => 'Kategorie_Dischkrian',
+);
+
+$namespaceAliases = array(
+ # German namespaces
+ 'Medium' => NS_MEDIA,
+ 'Diskussion' => NS_TALK,
+ 'Benutzer' => NS_USER,
+ 'Benutzer_Diskussion' => NS_USER_TALK,
+ '$1_Diskussion' => NS_PROJECT_TALK,
+ 'Datei_Diskussion' => NS_FILE_TALK,
+ 'MediaWiki_Diskussion' => NS_MEDIAWIKI_TALK,
+ 'Vorlage' => NS_TEMPLATE,
+ 'Vorlage_Diskussion' => NS_TEMPLATE_TALK,
+ 'Hilfe' => NS_HELP,
+ 'Hilfe_Diskussion' => NS_HELP_TALK,
+ 'Kategorie_Diskussion' => NS_CATEGORY_TALK,
+);
+
$messages = array(
# User preference toggles
'tog-underline' => 'Links unterstreichen:',
# New logging system
'revdelete-restricted' => 'محدودیت آن په مدیران سیستم بوت',
'revdelete-unrestricted' => 'به زور چه مدیران سیستم محدودیتان',
-'newuserlog-byemail' => 'کلمه رمز گون ایمیل دیم دهگ بوت',
'rightsnone' => '(هچ یک)',
);
'logentry-newusers-create' => 'An paragamit na panindog $1 pinagmukna na',
'logentry-newusers-create2' => 'An paragamit na panindog $3 pinagmukna na ni $1',
'logentry-newusers-autocreate' => 'An paragamit na panindog $1 awtomatikong pinagmukna na',
-'newuserlog-byemail' => 'an pasa-taramon ipinadara na sa paagi kan e-surat',
'logentry-rights-rights' => '$1 nagliwat kan pangrupong pagkamiyembro para sa $3 gikan sa $4 pasiring sa $5',
'logentry-rights-rights-legacy' => '$1 nagliwat kan pangrupong pagkamiyembro para sa $3',
'logentry-rights-autopromote' => '$1 awtomatikong pinagpalangkaw gikan sa $4 pasiring sa $5',
'$1_размовы' => NS_PROJECT_TALK,
);
+$namespaceGenderAliases = array(
+ NS_USER => array( 'male' => 'Удзельнік', 'female' => 'Удзельніца' ),
+ NS_USER_TALK => array( 'male' => 'Размовы_з_удзельнікам', 'female' => 'Размовы_з_удзельніцай' ),
+);
+
$magicWords = array(
'img_thumbnail' => array( '1', 'міні', 'мініяцюра', 'thumbnail', 'thumb' ),
'img_manualthumb' => array( '1', 'міні=$1', 'мініяцюра=$1', 'thumbnail=$1', 'thumb=$1' ),
'logentry-newusers-create' => '$1 стварыў уліковы запіс удзельніка',
'logentry-newusers-create2' => '$1 стварыў уліковы запіс удзельніка $3',
'logentry-newusers-autocreate' => 'Аўтаматычна створаны ўліковы запіс $1',
-'newuserlog-byemail' => 'пароль адасланы эл.поштай',
'rightsnone' => '(няма)',
# Feedback
'gotaccount' => "Ужо маеце рахунак? '''$1'''.",
'gotaccountlink' => 'Увайдзіце',
'userlogin-resetlink' => 'Забыліся пра зьвесткі для ўваходу?',
-'createaccountmail' => 'па Ñ\8dлекÑ\82Ñ\80оннай поÑ\88Ñ\86е',
+'createaccountmail' => 'СÑ\82ваÑ\80Ñ\8bÑ\86Ñ\8c Ñ\87аÑ\81овÑ\8b адволÑ\8cнÑ\8b паÑ\80олÑ\8c Ñ\96 даÑ\81лаÑ\86Ñ\8c Ñ\8fго на e-mail адÑ\80аÑ\81, пазнаÑ\87анÑ\8b нÑ\96жÑ\8dй',
'createaccountreason' => 'Прычына:',
'badretype' => 'Уведзеныя Вамі паролі не супадаюць.',
'userexists' => 'Уведзенае Вамі імя ўдзельніка ўжо выкарыстоўваецца кімсьці іншым.
'''КАЛІ ЛАСКА, НЕ ЗЬМЯШЧАЙЦЕ ТУТ БЕЗ ДАЗВОЛУ МАТЭРЫЯЛЫ, ЯКІЯ АХОЎВАЮЦЦА АЎТАРСКІМ ПРАВАМ!'''",
'longpageerror' => "'''Памылка: Аб’ём тэксту, які Вы спрабуеце запісаць складае $1 {{PLURAL:$1|кілябайт|кілябайты|кілябайтаў}}, што болей устаноўленага абмежаваньня на $2 {{PLURAL:$2|кілябайт|кілябайты|кілябайтаў}}.'''
Старонка ня можа быць захаваная.",
-'readonlywarning' => "'''ПАПЯРЭДЖАНЬНЕ: База зьвестак была заблякаваная для тэхнічнага абслугоўваньня, таму немагчыма зараз захаваць Вашыя зьмены.
-Вы можаце скапіяваць тэкст у файл на Вашым кампутары, а пазьней захаваць сюды.'''
+'readonlywarning' => "'''ПАПЯРЭДЖАНЬНЕ: База зьвестак была заблякаваная для тэхнічнага абслугоўваньня, таму немагчыма зараз захаваць Вашыя зьмены.'''
+Вы можаце скапіяваць тэкст у файл на Вашым кампутары, а пазьней захаваць сюды.
Адміністратар, які заблякаваў базу зьвестак, прапанаваў наступнае тлумачэньне: $1",
'protectedpagewarning' => "'''Папярэджаньне: Гэтая старонка была абароненая, таму толькі адміністратары могуць рэдагаваць яе.'''
# Special:ActiveUsers
'activeusers' => 'Сьпіс актыўных удзельнікаў',
'activeusers-intro' => 'Гэта сьпіс удзельнікаў, якія былі актыўнымі на працягу $1 {{PLURAL:$1|апошняга дня|апошніх дзён|апошніх дзён}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|рэдагаваньне|рэдагаваньні|рэдагаваньняў}} за $3 {{PLURAL:$3|апошні дзень|апошнія дні|апошніх дзён}}',
+'activeusers-count' => '$1 {{PLURAL:$1|дзеяньне|дзеяньні|дзеяньняў}} за $3 {{PLURAL:$3|апошні дзень|апошнія дні|апошніх дзён}}',
'activeusers-from' => 'Паказваць ўдзельнікаў, пачынаючы з:',
'activeusers-hidebots' => 'Схаваць робатаў',
'activeusers-hidesysops' => 'Схаваць адміністратараў',
'usermessage-editor' => 'Дастаўка сыстэмных паведамленьняў',
# Watchlist
-'watchlist' => 'Ð\9cой Ñ\81ьпіс назіраньня',
+'watchlist' => 'Сьпіс назіраньня',
'mywatchlist' => 'Сьпіс назіраньня',
'watchlistfor2' => 'Для $1 $2',
'nowatchlist' => 'Ваш сьпіс назіраньня пусты.',
'specialpages-group-highuse' => 'Частаўжываныя старонкі',
'specialpages-group-pages' => 'Сьпісы старонак',
'specialpages-group-pagetools' => 'Інструмэнты для старонак',
-'specialpages-group-wiki' => 'Зьвесткі пра вікі і прылады',
+'specialpages-group-wiki' => 'Зьвесткі і прылады',
'specialpages-group-redirects' => 'Спэцыяльныя старонкі-перанакіраваньні',
'specialpages-group-spam' => 'Інструмэнты для барацьбы са спамам',
'logentry-newusers-newusers' => 'Быў створаны рахунак $1',
'logentry-newusers-create' => 'Быў створаны рахунак $1',
'logentry-newusers-create2' => '$1 стварыў рахунак $3',
+'logentry-newusers-byemail' => '$1 {{GENDER:$2|стварыў|стварыла}} рахунак $3, пароль быў дасланы электроннай поштай',
'logentry-newusers-autocreate' => 'Рахунак $1 быў створаны аўтаматычна',
-'newuserlog-byemail' => 'Пароль адасланы па электроннай пошце',
'logentry-rights-rights' => '$1 {{GENDER:$1|зьмяніў|зьмяніла}} прыналежнасьць $3 да групы з $4 на $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|зьмяніў|зьмяніла}} прыналежнасьць $3 да групаў',
'logentry-rights-autopromote' => '$1 {{GENDER:$1|быў аўтаматычна пераведзены|была аўтаматычна пераведзеная}} з групы $4 ў $5',
'api-error-ok-but-empty' => 'Унутраная памылка: няма адказу ад сэрвэра.',
'api-error-overwrite' => 'Замена існуючага файла забароненая.',
'api-error-stashfailed' => 'Унутраная памылка: сэрвэр ня змог захаваць часовы файл.',
+'api-error-publishfailed' => 'Унутраная памылка: сэрвэр ня змог захаваць часловы файл.',
'api-error-timeout' => 'Сэрвэр не адказаў у чаканы тэрмін.',
'api-error-unclassified' => 'Узьнікла невядомая памылка',
'api-error-unknown-code' => 'Невядомая памылка: «$1».',
'protectedpagetext' => 'Тази страница е защитена, за да се предотвратят редактиране или други действия.',
'viewsourcetext' => 'Можете да разгледате и да копирате кодa на страницата:',
'viewyourtext' => "Можете да прегледате и копирате изходния код на '''вашите редакции''' на тази страница:",
-'protectedinterface' => 'Тази страница съдържа текст, нужен за работата на системата. Тя е защитена против редактиране, за да се предотвратят възможни злоупотреби.',
+'protectedinterface' => 'Тази страница съдържа текст, нужен за работата на системата. Тя е защитена против редактиране, за да се предотвратят възможни злоупотреби.
+За извършване на промяна за всички уикита, посетете [//translatewiki.net/ translatewiki.net], проектът за локализация на MediaWiki.',
'editinginterface' => "'''Внимание:''' Редактирате страница, която се използва за интерфейса на софтуера. Промяната й ще повлияе на външния вид на уикито.
-За превеждане обмислете използването на [//translatewiki.net/wiki/Main_Page?setlang=bg translatewiki.net], проектът за локализиране на MediaWiki.",
+За превеждане, обмислете използването на [//translatewiki.net/ translatewiki.net], проектът за локализиране на MediaWiki.",
'sqlhidden' => '(Заявка на SQL — скрита)',
'cascadeprotected' => 'Тази страница е защитена против редактиране, защото е включена в {{PLURAL:$1|следната страница, която от своя страна има|следните страници, които от своя страна имат}} каскадна защита:
$2',
'ns-specialprotected' => 'Специалните страници не могат да бъдат редактирани.',
'titleprotected' => "Тази страница е била защитена срещу създаване от [[User:$1|$1]].
Посочената причина е ''$2''.",
-'filereadonlyerror' => "Файлът „$1“ не може да бъде променен, тъй като файловото хранилище „$2“ е в режим само за четене.
+'filereadonlyerror' => 'Файлът „$1“ не може да бъде променен, тъй като файловото хранилище „$2“ е в режим само за четене.
-Ð\94аденаÑ\82а пÑ\80иÑ\87ина е â\80\9e''$3''â\80\9c.",
+Ð\90дминиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\8aÑ\82, койÑ\82о го е заклÑ\8eÑ\87ил, е поÑ\81оÑ\87ил Ñ\81леднаÑ\82а пÑ\80иÑ\87ина: â\80\9e$3â\80\9c.',
# Virus scanner
'virus-badscanner' => "Лоша конфигурация: непознат скенер за вируси: ''$1''",
'changeemail-oldemail' => 'Текущ адрес за е-поща:',
'changeemail-newemail' => 'Нов адрес за е-поща:',
'changeemail-none' => '(няма)',
+'changeemail-password' => 'Парола за {{SITENAME}}:',
'changeemail-submit' => 'Промяна на е-пощата',
'changeemail-cancel' => 'Отказване',
<div style=\"font-variant:small-caps\">'''Не публикувайте произведения с авторски права без разрешение!'''</div>",
'longpageerror' => "'''ГРЕШКА: Изпратеният текст е с големина {{PLURAL:$1|един килобайт|$1 килобайта}}, което надвишава позволения максимум от {{PLURAL:$2|един килобайт|$2 килобайта}}.'''
Поради тази причина той не може да бъде съхранен.",
-'readonlywarning' => "'''ВНИМАНИЕ: Базата от данни беше затворена за поддръжка, затова в момента промените ви не могат да бъдат съхранени. Ако желаете, можете да съхраните страницата като текстов файл и да се опитате да я публикувате по-късно.'''
+'readonlywarning' => "'''ВНИМАНИЕ: Базата от данни беше затворена за поддръжка, затова в момента промените няма да могат да бъдат съхранени.'''
+
+Ако желаете, можете да съхраните страницата като текстов файл и да се опитате да я публикувате по-късно.
Администраторът, който е затворил базата от данни, е посочил следната причина: $1",
'protectedpagewarning' => "'''Внимание: Страницата е защитена и само потребители със статут на администратори могат да я редактират.'''
'revdelete-reason-dropdown' => '* Стандартни причини за изтриване
** Нарушение на авторски права
** Неуместна лична информация
+** Неуместно потребителско име
** Потенциално клеветническа информация',
'revdelete-otherreason' => 'Друга/допълнителна причина:',
'revdelete-reasonotherlist' => 'Друга причина',
'youremail' => 'Е-поща:',
'username' => '{{GENDER:$1|Потребителско име}}:',
'uid' => '{{GENDER:$1|Потребителски}} номер:',
-'prefs-memberingroups' => 'Член на {{PLURAL:$1|група|групи}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Член}} на {{PLURAL:$1|група|групи}}:',
'prefs-registration' => 'Регистрация:',
'yourrealname' => 'Истинско име:',
'yourlanguage' => 'Език:',
'disambiguations' => 'Страници, сочещи към пояснителни страници',
'disambiguationspage' => 'Template:Пояснение',
-'disambiguations-text' => "Следните страници сочат към '''пояснителна страница''', вместо към истинската тематична страница.<br />Една страница се смята за пояснителна, ако ползва шаблон, към който се препраща от [[MediaWiki:Disambiguationspage]]",
+'disambiguations-text' => "Следните страници сочат към '''пояснителна страница''', вместо към истинската тематична страница.<br />Една страница се смята за пояснителна, ако ползва шаблон, към който се препраща от [[MediaWiki:Disambiguationspage]].",
'doubleredirects' => 'Двойни пренасочвания',
'doubleredirectstext' => 'Тази страница съдържа списък със страници, които пренасочват към друга пренасочваща страница.
'linksearch-pat' => 'Търсене по:',
'linksearch-ns' => 'Именно пространство:',
'linksearch-ok' => 'Търсене',
-'linksearch-text' => 'Възможна е употребата на заместващи знаци като: „*.wikipedia.org“.<br />Поддържани протоколи: <code>$1</code>',
+'linksearch-text' => 'Възможна е употребата на заместващи знаци като: „*.wikipedia.org“.
+Необходим е поне домейн от най-високо ниво, например „*.org“.<br />
+{{PLURAL:$2|Поддържан протокол|Поддържани протоколи}}: <code>$1</code> (ако не е посочено, по подразбиране се използва http:// ).',
'linksearch-line' => '$1 с препратка от $2',
'linksearch-error' => 'Заместващите знаци могат да стоят само в началото на името на хоста.',
'protect-cascadeon' => 'Тази страница е защитена против редактиране, защото е включена в {{PLURAL:$1|следната страница, която от своя страна има|следните страници, които от своя страна имат}} каскадна защита. Можете да промените нивото на защита на страницата, но това няма да повлияе върху каскадната защита.',
'protect-default' => 'Позволяване за всички потребители',
'protect-fallback' => 'Позволяване само за потребители с права на „$1“',
-'protect-level-autoconfirmed' => 'Ð\91локиÑ\80ане на нови и неÑ\80егиÑ\81Ñ\82Ñ\80иÑ\80ани потребители',
-'protect-level-sysop' => 'Само за администратори',
+'protect-level-autoconfirmed' => 'Ð\9fозволено Ñ\81амо за авÑ\82омаÑ\82иÑ\87но одобÑ\80ени потребители',
+'protect-level-sysop' => 'Ð\9fозволено Ñ\81амо за администратори',
'protect-summary-cascade' => 'каскадно',
'protect-expiring' => 'изтича на $1 (UTC)',
'protect-expiring-local' => 'срок на изтичане $1',
'whatlinkshere-hideredirs' => '$1 на пренасочващи страници',
'whatlinkshere-hidetrans' => '$1 на включени страници',
'whatlinkshere-hidelinks' => '$1 на препратки',
-'whatlinkshere-hideimages' => '$1 препратки към файла',
+'whatlinkshere-hideimages' => '$1 на пÑ\80епÑ\80аÑ\82ки кÑ\8aм Ñ\84айла',
'whatlinkshere-filters' => 'Филтри',
# Block/unblock
# Move page
'move-page' => 'Преместване на $1',
'move-page-legend' => 'Преместване на страница',
-'movepagetext' => "Ð\9fоÑ\81Ñ\80едÑ\81Ñ\82вом долниÑ\8f Ñ\84оÑ\80мÑ\83лÑ\8fÑ\80 можеÑ\82е да пÑ\80еименÑ\83ваÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86а, пÑ\80емеÑ\81Ñ\82вайки Ñ\86Ñ\8fлаÑ\82а й история на новото име. Старото заглавие ще се превърне в пренасочваща страница.
-Ð\9fÑ\80епÑ\80аÑ\82киÑ\82е кÑ\8aм Ñ\81Ñ\82аÑ\80аÑ\82а Ñ\81Ñ\82Ñ\80аниÑ\86а нÑ\8fма да бÑ\8aдаÑ\82 пÑ\80оменени; заÑ\82ова пÑ\80овеÑ\80еÑ\82е за двойни или невалидни пÑ\80енаÑ\81оÑ\87ваниÑ\8f.
-Вие сами би трябвало да се убедите в това, дали препратките продължават да сочат там, където се предполага.
+'movepagetext' => "Ð\98зползванеÑ\82о на Ñ\84оÑ\80мÑ\83лÑ\8fÑ\80а по-долÑ\83 Ñ\89е пÑ\80еименÑ\83ва Ñ\81Ñ\82Ñ\80аниÑ\86а, каÑ\82о Ñ\81е пÑ\80емеÑ\81Ñ\82и Ñ\86Ñ\8fлаÑ\82а Ñ\9d Ñ\80едакÑ\86ионна иÑ\81Ñ\82оÑ\80иÑ\8f история на новото име. Старото заглавие ще се превърне в пренасочваща страница.
+Ð\9cоже да Ñ\81е избеÑ\80е вÑ\8aзможноÑ\81Ñ\82 пÑ\80енаÑ\81оÑ\87ваниÑ\8fÑ\82а кÑ\8aм оÑ\80игиналноÑ\82о заглавие да бÑ\8aдаÑ\82 обновени авÑ\82омаÑ\82иÑ\87но. Ð\92 Ñ\81лÑ\83Ñ\87ай, Ñ\87е Ñ\82ази вÑ\8aзможноÑ\81Ñ\82 не е избÑ\80ана, пÑ\80епоÑ\80Ñ\8aÑ\87иÑ\82елно е да Ñ\81е пÑ\80овеÑ\80и за [[Special:DoubleRedirects|двойни]] или [[Special:BrokenRedirects|невалидни пÑ\80енаÑ\81оÑ\87ваниÑ\8f]].
+Вие сами би трябвало да се убедите в това дали препратките продължават да сочат там, където се предполага.
-Страницата '''няма''' да бъде преместена, ако вече съществува страница с новото име, освен ако е празна или пренасочване и няма редакционна история.
+Ð\9eбÑ\8aÑ\80неÑ\82е внимание, Ñ\87е Ñ\81траницата '''няма''' да бъде преместена, ако вече съществува страница с новото име, освен ако е празна или пренасочване и няма редакционна история.
'''ВНИМАНИЕ!'''
Това може да е голяма и неочаквана промяна за известна страница. Уверете се, че разбирате последствията, преди да продължите.",
'import-interwiki-templates' => 'Включване на всички шаблони',
'import-interwiki-submit' => 'Внасяне',
'import-interwiki-namespace' => 'Целево именно пространство:',
+'import-interwiki-rootpage' => 'Целева основна страница (незадължително):',
'import-upload-filename' => 'Име на файл:',
'import-comment' => 'Коментар:',
'importtext' => 'Изнесете файла от изходното уики чрез „[[Special:Export|инструмента за изнасяне]]“. Съхранете го на твърдия диск на компютъра си и го качете тук.',
'minutes' => '{{PLURAL:$1|$1 минута|$1 минути}}',
'hours' => '{{PLURAL:$1|$1 час|$1 часа}}',
'days' => '{{PLURAL:$1|$1 ден|$1 дни}}',
+'months' => '{{PLURAL:$1|един месец|$1 месеца}}',
+'years' => '{{PLURAL:$1|една година|$1 години}}',
'ago' => 'преди $1',
+'just-now' => 'току що',
# Bad image list
'bad_image_list' => 'Спазва се следният формат:
* <span class="mw-specialpagecached">Само складирани специални страници (възможно е да са остарели).</span>',
'specialpages-group-maintenance' => 'Доклади по поддръжката',
'specialpages-group-other' => 'Други специални страници',
-'specialpages-group-login' => 'Ð\92лизане / Ñ\80егиÑ\81Ñ\82Ñ\80иÑ\80ане',
+'specialpages-group-login' => 'Ð\92лизане / Ñ\81Ñ\8aздаване на Ñ\81меÑ\82ка',
'specialpages-group-changes' => 'Последни промени и дневници',
'specialpages-group-media' => 'Доклади за файловете и качванията',
'specialpages-group-users' => 'Потребители и права',
'specialpages-group-highuse' => 'Широко използвани страници',
'specialpages-group-pages' => 'Списъци на страниците',
'specialpages-group-pagetools' => 'Инструменти за страниците',
-'specialpages-group-wiki' => 'Уики данни и инструменти',
+'specialpages-group-wiki' => 'Ð\94анни и инструменти',
'specialpages-group-redirects' => 'Пренасочващи специални страници',
'specialpages-group-spam' => 'Инструменти против спам',
'logentry-newusers-create' => 'Потребителската сметка $1 беше създадена',
'logentry-newusers-create2' => '$1 създаде потребителска сметка $3',
'logentry-newusers-autocreate' => 'Сметката $1 беше създадена автоматично',
-'newuserlog-byemail' => 'паролата е изпратена по е-поща',
'logentry-rights-autopromote' => '
$1 е автоматично повишен от $4 до $5',
'rightsnone' => '(никакви)',
'api-error-ok-but-empty' => 'Вътрешна грешка: Няма отговор от сървъра.',
'api-error-overwrite' => 'Не е позволено презаписването върху съществуващ файл.',
'api-error-stashfailed' => 'Вътрешна грешка: Сървърът не успя да съхрани временния файл.',
+'api-error-publishfailed' => 'Вътрешна грешка: Сървърът не успя да съхрани временния файл.',
'api-error-timeout' => 'Сървърът не отговори в рамките на предвиденото време.',
'api-error-unclassified' => 'Възникна непозната грешка.',
'api-error-unknown-code' => 'Непозната грешка: "$1"',
$fallback = 'bho';
-$messages = array(
-# User preference toggles
-'tog-underline' => 'लिंक के नीचे रेखा',
-'tog-justify' => 'पैराग्राफ जस्टीफाई',
-'tog-hideminor' => 'हाल के परिवर्तन में मामूली संपादन छुपाईं',
-'tog-numberheadings' => 'स्वयं-सांख्यिकी शिर्षक',
-'tog-rememberpassword' => 'इ ब्राउजर पर हमार प्रवेश जारी रहे (अधिकतम $1 {{PLURAL:$1|दिन|दिन}})',
-'tog-previewonfirst' => 'पहिलका सम्पादन पर पूर्वावलोकन देखीं',
-
-'underline-always' => 'हमेशा',
-'underline-never' => 'कभी ना',
-'underline-default' => 'डिफॉल्ट ब्राउजर',
-
-# Dates
-'sunday' => 'इतवार',
-'monday' => 'सोमवार',
-'tuesday' => 'मंगलवार',
-'wednesday' => 'बुधवार',
-'thursday' => 'गुरुवार',
-'friday' => 'शुक्रवार',
-'saturday' => 'शनिवार',
-'sun' => 'इत',
-'mon' => 'सोम',
-'tue' => 'मंगल',
-'wed' => 'बुध',
-'thu' => 'गुरु',
-'fri' => 'शुक्र',
-'sat' => 'शनि',
-'january' => 'जनवरी',
-'february' => 'फरवरी',
-'march' => 'मार्च',
-'april' => 'अप्रिल',
-'may_long' => 'मई',
-'june' => 'जून',
-'july' => 'जुलाई',
-'august' => 'अगस्त',
-'september' => 'सितम्बर',
-'october' => 'अक्टूबर',
-'november' => 'नवम्बर',
-'december' => 'दिसम्बर',
-'january-gen' => 'जनवरी',
-'february-gen' => 'फरवरी',
-'march-gen' => 'मार्च',
-'april-gen' => 'अप्रिल',
-'may-gen' => 'मई',
-'june-gen' => 'जून',
-'july-gen' => 'जुलाई',
-'august-gen' => 'अगस्त',
-'september-gen' => 'सितम्बर',
-'october-gen' => 'अक्टूबर',
-'november-gen' => 'नवम्बर',
-'december-gen' => 'दिसम्बर',
-'jan' => 'जन',
-'feb' => 'फर',
-'mar' => 'मार्च',
-'apr' => 'अप्रिल',
-'may' => 'मई',
-'jun' => 'जून',
-'jul' => 'जुल',
-'aug' => 'अग',
-'sep' => 'सित',
-'oct' => 'अक्टू',
-'nov' => 'नव',
-'dec' => 'दिस',
-
-# Categories related messages
-'pagecategories' => '{{PLURAL:$1|श्रेणी|श्रेणी}}',
-
-'about' => 'बारे में',
-'article' => 'सामग्री पन्ना',
-'newwindow' => '(नया विंडो में खोलीं)',
-'cancel' => 'निरस्त',
-'mytalk' => 'हमार बात',
-'navigation' => 'परिभ्रमण',
-
-# Cologne Blue skin
-'qbfind' => 'खोज',
-'qbbrowse' => 'ब्राउज',
-'qbedit' => 'सम्पादन',
-'qbpageoptions' => 'ई पन्ना',
-'qbmyoptions' => 'हमार पन्ना',
-'qbspecialpages' => 'विशेष पन्ना',
-'faq' => 'साधारण सवाल',
-'faqpage' => 'Project:साधारण सवाल',
-
-# Vector skin
-'vector-action-delete' => 'मिटाईं',
-'vector-action-move' => 'स्थांतरण',
-'vector-action-protect' => 'संरक्षित करीं',
-'vector-action-undelete' => 'मत मिटाईं',
-'vector-action-unprotect' => 'असुरक्षित करीं',
-'vector-view-create' => 'बनाईं',
-'vector-view-edit' => 'सम्पादन',
-'vector-view-history' => 'इतिहास देखीं',
-'vector-view-view' => 'पढ़ीं',
-'vector-view-viewsource' => 'स्त्रोत देखीं',
-
-'errorpagetitle' => 'त्रुटी',
-'returnto' => 'जाईं $1 पर।',
-'tagline' => 'भोजपुरी {{SITENAME}} से',
-'help' => 'मदद',
-'search' => 'खोज',
-'searchbutton' => 'खोजीं',
-'go' => 'जाईं',
-'searcharticle' => 'जाईं',
-'history' => 'पन्ना के इतिहास',
-'history_short' => 'इतिहास',
-'updatedmarker' => 'हमार अन्तिम आगमन से बदलाव',
-'printableversion' => 'छापे लायक संस्करण',
-'permalink' => 'स्थायी लिंक',
-'print' => 'छापीं',
-'edit' => 'सम्पादन',
-'create' => 'बनाईं',
-'editthispage' => 'ई पन्ना के सम्पादन करीं',
-'create-this-page' => 'ई पन्ना के निर्माण करीं',
-'delete' => 'मिटाईं',
-'deletethispage' => 'ई पन्ना के मिटाईं',
-'protect' => 'संरक्षण करीं',
-'protect_change' => 'बदलीं',
-'protectthispage' => 'इ पन्ना के सुरक्षित करीं।',
-'unprotect' => 'असुरक्षित करीं',
-'unprotectthispage' => 'इ पन्ना के असुरक्षित करीं',
-'newpage' => 'नया पन्ना',
-'talkpage' => 'इ पन्ना पर चर्चा करीं',
-'talkpagelinktext' => 'बात-चीत',
-'specialpage' => 'ख़ाश पन्ना',
-'personaltools' => 'ब्यक्तिगत औजार',
-'postcomment' => 'नया खण्ड',
-'articlepage' => 'सामग्री पन्ना देखीं',
-'talk' => 'बात-चीत',
-'views' => 'विचारसूची',
-'toolbox' => 'औजार-पेटी',
-'userpage' => 'प्रयोगकर्ता पन्ना देखीं',
-'projectpage' => 'परियोजना पन्ना देखीं',
-'imagepage' => 'फाईल पन्ना देखीँ',
-'mediawikipage' => 'सन्देश पन्ना देखीं',
-'templatepage' => 'टेम्पलेट पन्ना देखीं',
-'viewhelppage' => 'मदद पन्ना देखीं',
-'categorypage' => 'श्रेणी पन्ना देखीं',
-'viewtalkpage' => 'बात-चीत देखीं',
-'otherlanguages' => 'अन्य भाषा में',
-'redirectedfrom' => '($1 द्वारा पुन: निर्देशित)',
-'redirectpagesub' => 'पुन: निर्देशित पन्ना',
-'lastmodifiedat' => '$1 के $2 पर ई पन्ना पर अन्तिम बार परिवर्तन भईल।',
-'protectedpage' => 'सुरक्षित पन्ना',
-'jumpto' => 'अहिजा जाईं:',
-'jumptonavigation' => 'परिभ्रमण',
-'jumptosearch' => 'खोजीं',
-'view-pool-error' => 'क्षमा करीं, ई समय सर्वर पर बहुत ज्यादा लोड बढ़ गईल बा।
-ई पन्ना के बहुते प्रयोगकर्ता लोग देखे के कोशिश कर रहल बानी।
-ई पन्ना के फिर से देखे से पहिले कृपया कुछ देर तक इन्तजार करीं।
-
-$1',
-
-# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
-'aboutsite' => '{{SITENAME}} के बारे में',
-'aboutpage' => 'Project:बारे में',
-'copyright' => 'सामग्री $1 के तहत उपलब्ध बा।',
-'copyrightpage' => '{{ns:project}}:लेखाधिकार',
-'currentevents' => 'हाल के घटना',
-'currentevents-url' => 'Project:हाल के घटना',
-'disclaimers' => 'अस्विकरण',
-'disclaimerpage' => 'Project:सामान्य अस्विकरण',
-'edithelp' => 'मदद सम्पादन',
-'edithelppage' => 'Help:सम्पादन',
-'mainpage' => 'मुख्य पन्ना',
-'mainpage-description' => 'पहिलका पन्ना',
-'portal' => 'सामुदायिक पन्ना',
-'portal-url' => 'Project:सामुदायिक पोर्टल',
-'privacy' => 'गोपनीयता नीति',
-'privacypage' => 'Project:गोपनीयता नीति',
-
-'badaccess' => 'अनुमति त्रुटी',
-'badaccess-group0' => 'रउआ जवन कार्रवाई खातिर अनुरोध कईले बानी उ के निष्पादन करे के अनुमति नईखे।',
-
-'ok' => 'ठिक',
-'retrievedfrom' => '"$1" से लियल गईल',
-'youhavenewmessages' => 'रउआ लगे बा $1 ($2).',
-'newmessageslink' => 'नया सन्देश',
-'newmessagesdifflink' => 'अन्तिम परिवर्तन',
-'youhavenewmessagesmulti' => 'रउआ लगे $1 पर नया सन्देश बा',
-'editsection' => 'सम्पादन',
-'editold' => 'सम्पादन',
-'viewsourceold' => 'स्त्रोत देखीं',
-'editlink' => 'सम्पादन',
-'viewsourcelink' => 'स्त्रोत देखीं',
-'editsectionhint' => 'सम्पादन खण्ड: $1',
-'toc' => 'सामग्री',
-'showtoc' => 'देखाईं',
-'hidetoc' => 'छुपाईं',
-'thisisdeleted' => 'देखीं या भंडार करीं $1?',
-'viewdeleted' => '$1 देखब?',
-'site-rss-feed' => '$1 आर एस एस फिड',
-'site-atom-feed' => '$1 एटम फिड',
-'page-rss-feed' => '"$1" आर एस एस फिड',
-'page-atom-feed' => '"$1" एटम फिड',
-'red-link-title' => '$1 (पन्ना मौजूद नईखे)।',
-
-# Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'पन्ना',
-'nstab-user' => 'प्रयोगकर्ता पन्ना',
-'nstab-media' => 'मिडीया पन्ना',
-'nstab-special' => 'विशेष पन्ना',
-'nstab-project' => 'परियोजना पन्ना',
-'nstab-image' => 'फाईल',
-'nstab-mediawiki' => 'सन्देश',
-'nstab-template' => 'टेम्पलेट',
-'nstab-help' => 'मदद पन्ना',
-'nstab-category' => 'श्रेणी',
-
-# Main script and global functions
-'nosuchaction' => 'अईसन कौनो कार्रवाई नाहि',
-'nosuchspecialpage' => 'अईसन कौनो ख़ाश पन्ना नाहि',
-'nospecialpagetext' => '<strong>रउआ एगो अवैद्य विशेष पन्ना के अनुरोध कईले बानी।</strong>
-
-वैद्य विशेष पन्ना के सूची मिल सकत बा [[Special:SpecialPages|{{int:specialpages}}]] पर।',
-
-# General errors
-'error' => 'त्रुटी',
-'databaseerror' => 'डेटाबेस त्रुटी',
-'readonly' => 'डेटाबेस लॉक बा',
-'missing-article' => 'डेटाबास ऊ पन्ना के पाठ्य के ना खोज पाईल जौन ई के खोजे के रहल, नामित "$1" $2.
-ई सब साधारणत: निम्नलिखीत अप्रचलित अन्तर अथवा एगो पन्ना पर इतिहास के लिंक जौन मिटा दिहल गईल बा के कारण भईल।
-
-यदि ई बात नईखे, त हो सकत बा सॉफ्टवेयर में बग पावत होखब।
-कृपया ई एगो [[Special:ListUsers/sysop|प्रबन्धक]] के यू आर एल के बारे में एगो नोट बनाके खबर करीं।',
-'viewsource' => 'स्त्रोत देखीं',
-
-# Login and logout pages
-'yourname' => 'प्रयोगकर्ता नाम',
-'yourpassword' => 'गुप्त शब्द',
-'yourpasswordagain' => 'गुप्त-शब्द पुन:डालीं:',
-'login' => 'खाता में प्रवेश',
-'nav-login-createaccount' => 'खाता प्रवेश / खाता बनाईं',
-'loginprompt' => '{{SITENAME}} में प्रवेश खातिर राउर कुकिज चालू होवे के चाहीं',
-'userlogin' => 'खाता प्रवेश / खाता बनाईं',
-'userloginnocreate' => 'खाता में प्रवेश',
-'logout' => 'खाता से बाहर',
-'userlogout' => 'खाता से बाहर',
-'notloggedin' => 'खाता में प्रवेश नईखीं भईल',
-'nologin' => 'का एगो खाता नईखे? $1.',
-'nologinlink' => 'एगो खाता बनाईं',
-'createaccount' => 'खाता बनाईं',
-'gotaccount' => 'का पहिले से एगो खाता बा? $1.',
-'gotaccountlink' => 'खाता में प्रवेश',
-'createaccountmail' => 'ई-मेल द्वारा',
-'badretype' => 'रउआ जौन गुप्त शब्द डालत बानी उ नईखे मेल खात।',
-'userexists' => 'ई प्रयोगकर्ता नाम पहिले से इस्तेमाल में बा। कृपया कौनो दोसर नाम चुनीं।',
-'loginerror' => 'खाता प्रवेश में त्रुटि',
-'createaccounterror' => 'ई खाता ना बन पाईल: $1',
-'nocookiesnew' => 'प्रयोगकर्ता खाता त बन गईल, बाँकी रउआ प्रवेश नईखीं भईल।
-{{SITENAME}} प्रयोगकर्ता लोग के खाता में प्रवेश करावे खातिर कुकिज के प्रयोग करेला।
-राउर कुकिज असक्षम बा।
-कृपया उ के सक्षम करीं, उ के बाद राउर नया प्रयोगकर्ता नाम आ गुप्त शब्द के साथ प्रवेश करीं।',
-'nocookieslogin' => '{{SITENAME}} प्रयोगकर्ता लोग के खाता में प्रवेश करावे खातिर कुकिज के प्रयोग करेला।
-राउर कुकिज असक्षम बा।
-कृपया उ के सक्षम करीं आ फिर से कोशिश करीं',
-'noname' => 'रउआ उपयुक्त प्रयोगकर्ता नाम नईखीं निर्दिष्ट कईले।',
-'loginsuccesstitle' => 'खाता प्रवेश में सफल',
-'loginsuccess' => "''' \"\$1\" के रुप में रउआ {{SITENAME}} में अब प्रवेश कर चुकल बानी।'''",
-'nosuchuser' => '"$1" नाम से कौनो प्रयोगकर्ता नईखन।
-प्रयोगकर्ता नाम संवेदनशील मामला बा।
-शब्द-वर्तनी के जाँच करीं, आ चाहे [[Special:UserLogin/signup|एगो नया खाता बनाईं]]।',
-'nouserspecified' => 'रउआ एगो प्रयोगकर्ता नाम निर्दिष्ट करे के बा।',
-'login-userblocked' => 'ई प्रयोगकर्ता के खाता निष्क्रिय हो चुकल बा। प्रवेश के आज्ञा नईखे।',
-'wrongpassword' => 'गलत गुप्त-शब्द डलले बानी।
-कृपया फिर से कोशिश करीं।',
-'wrongpasswordempty' => 'गुप्त-शब्द खाली बा। कृपया फिर से कोशिश करीं।',
-'passwordtooshort' => 'गुप्त-शब्द कम से कम {{PLURAL:$1|1 अक्षर|$1 अक्षर}} के होवे के चाहीं।',
-'password-name-match' => 'राउर गुप्त-शब्द राउर प्रयोगकर्ता नाम से अलग होवे के चाहीं।',
-'mailmypassword' => 'नया गुप्त-शब्द ई-मेल पर भेजीं',
-'passwordremindertitle' => '{{SITENAME}} खातिर नया अस्थायी गुप्त-शब्द',
-
-# Change password dialog
-'resetpass' => 'गुप्त-शब्द बदलीं',
-'oldpassword' => 'पुराना गुप्त-शब्द:',
-'newpassword' => 'नया गुप्त-शब्द:',
-'retypenew' => 'नया गुप्त-शब्द पुन: डालीं:',
-
-# Edit page toolbar
-'bold_tip' => 'मोट पाठ्य',
-'italic_sample' => 'इटालिक पाठ्य',
-'italic_tip' => 'इटालिक पाठ्य',
-'headline_sample' => 'शिर्षक पाठ्य',
-'image_sample' => 'उदाहरण.jpg',
-'media_sample' => 'उदाहरण.ogg',
-'media_tip' => 'फाईल लिंक',
-'sig_tip' => 'timestamp के साथ राउर हस्ताक्षर',
-
-# Edit pages
-'summary' => 'सारांश:',
-'subject' => 'विषय/शिर्षक:',
-'minoredit' => 'छोट परिवर्तन',
-'watchthis' => 'ई पन्ना ध्यानसूची में डालीं',
-'savearticle' => 'पन्ना सुरक्षित करीं',
-'preview' => 'पूर्वावलोकन',
-'showpreview' => 'पूर्वावलोकन देखाईं',
-'showlivepreview' => 'सीधा पूर्वावलोकन',
-'showdiff' => 'परिवर्तन देखाईं',
-'anoneditwarning' => "'''चेतावनी:''' रउआ आपन खाता में प्रवेश नईखीं कईले। ई पन्ना के सम्पादन इतिहास पर राउर आई पी पता दर्ज कईल जाई।",
-'anonpreviewwarning' => "''रउआ खाता में प्रवेश नईखीं भईल। सुरक्षित करेब त ई पन्ना के सम्पादन इतिहास पर राउर आई पी पता दर्ज हो जाई।\"",
-'missingsummary' => "'''स्मरणपत्र:'''रउआ एगो सारांश के सम्पादन नईखीं प्रदान कईले। अगर रउआ \"फिर से सुरक्षित करीं\" पर क्लिक करेब, त राउर सम्पादन बिना एगो सारांश के सुरक्षित हो जाई।",
-'missingcommenttext' => 'कृपया निचे एगो टिप्पणी करीं।',
-'missingcommentheader' => "'''स्मरणपत्र:''' रउआ ई टिप्पणी खातिर कौनो विषय/शिर्षक प्रदान नईखीं कईले। \"{{int:savearticle}}\" यदि रउआ फिर से सुरक्षित करब त राउर सम्पादन बिना कौनो शिर्षक के सुरक्षित हो जाई।",
-'summary-preview' => 'सारांश पूर्वावलोकन:',
-'subject-preview' => 'विषय/शिर्षक पूर्वावलोकन:',
-'blockedtitle' => 'निष्क्रिय प्रयोगकर्ता',
-'blockednoreason' => 'कउनो कारण उल्लेखित नईखे',
-'nosuchsectiontitle' => 'खण्ड ना मिल सकल।',
-'loginreqtitle' => 'खाता में प्रवेश जरुरी बा',
-'loginreqlink' => 'खाता में प्रवेश',
-'accmailtitle' => 'गुप्त-शब्द भेजा गईल',
-'newarticle' => '(नया)',
-'newarticletext' => "रउआ एगो अइसन लिंक के पन्ना के अनुसरण कइले बानी जउन अभी तक उपलब्ध नइखे।
-पन्ना बनावे खातिर, नीचे के बाकस में टाईप करे के शुरु करीं (ज्यादा जानकारी खातिर देखीं [[{{MediaWiki:Helppage}}|मदद पन्ना]])।
-यदि रउआ अहिजा गलती से आ गईल बानी त, आपन ब्राउजर के '''back''' (बैक) बटन दबाईं",
-'yourdiff' => 'अंतर',
-'template-protected' => '(संरक्षित)',
-
-# History pages
-'revisionasof' => '$1 के रुप में संशोधन',
-'revision-info' => '$2 में से $1 के रुप में संशोधन',
-'previousrevision' => '← पुरान संशोधन',
-'nextrevision' => 'नया संशोधन →',
-'currentrevisionlink' => 'हाल के संशोधन',
-'cur' => 'हाल',
-'next' => 'अगिला',
-'last' => 'पछिला',
-'page_first' => 'पहिलका',
-'page_last' => 'आखिरी',
-'histlegend' => "चुनाव अन्तर: तुलना करे खातिर संशोधन के रेडियो बटन पर निशान लगाईं आ enter बटन दबाईं आ चाहे निचला बटन दबाईं।<br />
-Legend: '''({{int:cur}})''' = हाल के संशोधन के साथ अंतर, '''({{int:last}})''' = पुर्ववर्ती संशोधन के साथ अंतर, '''{{int:minoreditletter}}''' = छोट सम्पादन।",
-'history-fieldset-title' => 'इतिहास निहारीं',
-'history-show-deleted' => 'खाली मेटावल',
-'histfirst' => 'बहुत पहिले के',
-'histlast' => 'हाल के',
-'historysize' => '({{PLURAL:$1|1 बाइट|$1 बाइट}})',
-'historyempty' => '(खाली)',
-
-# Revision feed
-'history-feed-title' => 'संशोधन इतिहास',
-'history-feed-description' => 'विकि पर इ पन्ना के संशोधन के इतिहास',
-'history-feed-item-nocomment' => '$1 $2 पर',
-'history-feed-empty' => 'अनुरोध करल गईल पन्ना उपलब्ध नईखे। हो सकत बा उ के विकि पर से मिटा दिहल गईल होखे, आ चाहे उ के नाम बदल देवल गईल होखे।
-प्रासंगिक पन्ना के [[Special:Search|विकि पर खोजे के]] कोशिश करत रहीं।',
-
-# Revision deletion
-'rev-deleted-comment' => '(टिप्पणी मिटा दिहल गईल बा)',
-'rev-deleted-user' => '(प्रयोगकर्ता के नाम मिटा दिहल गईल बा)',
-'rev-deleted-event' => '(लॉग कार्रवाई मिटा दिहल गईल बा)',
-'rev-deleted-user-contribs' => '[प्रयोगकर्ता नाम आ चाहे आइ पी पता हटा दिहल गईल बा - योगदान से सम्पादन छुप गईल बा]',
-'rev-deleted-text-permission' => "ई पन्ना के संशोधन '''मिटा'''' दिहल गईल बा।
-मेटावल जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} डिलेशन लॉग] में मिली।",
-'rev-delundel' => 'दिखाईं/छुपाईं',
-'revdel-restore' => 'दूश्यता बदलीं',
-'revdel-restore-deleted' => 'मिटल संसोधन',
-'revdel-restore-visible' => 'दृश्यमान संसोधन',
-'pagehist' => 'पन्ना के इतिहास',
-'deletedhist' => 'मिटावल इतिहास',
-
-# Merge log
-'revertmerge' => 'अलग करीं',
-'mergelogpagetext' => 'एक पन्ना इतिहास के दुसर पन्ना इतिहास में तुरंत विलय भईल एगो सूची नीचे दिहल बा।',
-
-# Diffs
-'history-title' => "''$1'' के संशोधन इतिहास",
-'lineno' => 'पंक्ति $1:',
-'compareselectedversions' => 'चुनल गईल संशोधन में अन्तर देखीं',
-'showhideselectedversions' => 'चुनल गईल संशोधन दिखाईं/छुपाईं',
-'editundo' => 'पूर्ववत',
-'diff-multi' => '({{PLURAL:$1|एगो मध्यम संशोधन|$1 गो मध्यम संशोधन}} नईखे दिखावल)',
-
-# Search results
-'searchresults' => 'खोज परिणाम',
-'searchresults-title' => '$1 खातिर खोज परिणाम',
-'searchresulttext' => '{{SITENAME}} के खोज करे के बारे में अधिक जानकारी खातिर, देखीं [[{{MediaWiki:Helppage}}| {{int:help}}]]।',
-'searchsubtitle' => '\'\'\'[[:$1]]\'\'\' खातिर राउर करल गईल खोज ([[Special:Prefixindex/$1| "$1" से शुरु होवे वाला सब पन्ना]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|all pages that link to "$1"]])',
-'searchsubtitleinvalid' => "रउआ '''$1''' खातिर खोज कईनी ह",
-'titlematches' => 'पन्ना के शिर्षक मिलत बा।',
-'notitlematches' => 'पन्ना के शिर्षक नईखे मिलत',
-'textmatches' => 'पन्ना के पाठ्य मिलत बा',
-'notextmatches' => 'पन्ना के पाठ्य नईखे मिलत',
-'prevn' => 'पिछला {{PLURAL:$1|$1}}',
-'nextn' => 'अगला {{PLURAL:$1|$1}}',
-'prevn-title' => 'पिछला $1 {{PLURAL:$1|परिणाम}}',
-'nextn-title' => 'अगला $1 {{PLURAL:$1|परिणाम}}',
-'shown-title' => 'दिखाईं $1 {{PLURAL:$1|परिणाम}}',
-'viewprevnext' => 'देखीं ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-legend' => 'खोज विकल्प',
-'searchmenu-exists' => "'''इ विकि पर ''[[:$1]]'' नाम से एगो पन्ना उपलब्ध बा'''",
-'searchmenu-new' => "'''इ विकि पर ''[[:$1]]'' नाम से पन्ना बनाईं'''",
-'searchhelp-url' => 'Help:सामग्री',
-'searchmenu-prefix' => '[[विशेष:उपसर्ग सूची/$1|इ उपसर्ग साथे पन्ना ब्राउज करीं]]',
-'searchprofile-articles' => 'सामग्री पन्ना',
-'searchprofile-project' => 'मदद आ परियोजना पन्ना',
-'searchprofile-images' => 'मल्टिमीडिया',
-'searchprofile-everything' => 'सब कुछ',
-'searchprofile-advanced' => 'अग्रिम',
-'searchprofile-articles-tooltip' => '$1 में खोजीं',
-'searchprofile-project-tooltip' => '$1 में खोजीं',
-'searchprofile-images-tooltip' => 'फाईल खातिर खोज',
-'searchprofile-everything-tooltip' => 'सभन सामग्री में खोजीं (वार्ता पन्ना सहित)',
-'search-result-size' => '$1 ({{PLURAL:$2|1 शब्द|$2 शब्द}})',
-'search-result-score' => 'प्रासंगिकता: $1%',
-'search-redirect' => '(पुन: निर्देशण $1)',
-'search-section' => '(खंड $1)',
-'search-suggest' => 'का राउर मतलब बा: $1',
-'search-interwiki-caption' => 'बहिन परियोजना',
-'search-interwiki-default' => '$1 के परिणाम:',
-'search-interwiki-more' => '(अउर)',
-'search-relatedarticle' => 'संबंधित',
-'mwsuggest-disable' => 'AJAX सुझाव असक्षम',
-'searcheverything-enable' => 'सभन सन्दर्भ में खोजीं',
-'searchrelated' => 'संबंधित',
-'searchall' => 'सब',
-'showingresults' => "नीचे देखावल जा रहल बा {{PLURAL:$1|'''1''' परिणाम|'''$1''' परिणाम}} #'''$2''' से शुरु होवे वाला।",
-'showingresultsnum' => "नीचे देखावल जा रहल बा {{PLURAL:$3|'''1''' परिणाम|'''$3''' परिणाम}} #'''$2''' से शुरु होवे वाला।",
-'powersearch' => 'उन्नत खोज',
-'powersearch-legend' => 'उन्नत खोज',
-'powersearch-ns' => 'सन्दर्भ में खोजीं',
-'powersearch-redir' => 'पुन:निर्देश सूची',
-'powersearch-field' => 'खातिर खोज',
-'powersearch-togglelabel' => 'जाँच:',
-'powersearch-toggleall' => 'सब',
-'powersearch-togglenone' => 'कउनो ना',
-'search-external' => 'बाहरी खोज',
-
-# Quickbar
-'qbsettings-none' => 'कउनो ना',
-
-# Preferences page
-'preferences' => 'वरीयता',
-'mypreferences' => 'हमार पसन्द',
-'prefs-edits' => 'सम्पादन संख्या',
-'prefsnologin' => 'खाता में प्रवेश नईखीं कईले',
-'changepassword' => 'गुप्त शब्द बदलीं',
-'skin-preview' => 'पूर्वावलोकन',
-'prefs-rc' => 'तुरंत भईल परिवर्तन',
-
-# Recent changes
-'recentchanges' => 'तुरंत भईल परिवर्तन',
-'rcshowhideminor' => '$1 छोट सम्पादन',
-'diff' => 'अन्तर',
-'hist' => 'इति',
-'hide' => 'छुपाँई',
-'show' => 'दिखाईं',
-'minoreditletter' => 'छो',
-'newpageletter' => 'न',
-'boteditletter' => 'बो',
-'number_of_watching_users_pageview' => '[$1 देखल जा रहल बा {{PLURAL:$1|प्रयोगकर्ता|प्रयोगकर्ता}}]',
-
-# Recent changes linked
-'recentchangeslinked' => 'सम्बन्धित बदलाव',
-'recentchangeslinked-feed' => 'सम्बन्धित बदलाव',
-'recentchangeslinked-toolbox' => 'सम्बन्धित बदलाव',
-
-# Upload
-'upload' => 'फाईल लादीं',
-
-# File description page
-'filehist' => 'पन्ना के इतिहास',
-'filehist-deleteall' => 'सब मिटाईं',
-'filehist-deleteone' => 'मिटाईं',
-'filehist-current' => 'मौजूदा',
-'filehist-datetime' => 'तारिख/समय',
-'filehist-thumb' => 'थम्बनेल',
-'filehist-nothumb' => 'बिन थम्बनेल',
-'filehist-user' => 'प्रयोगकर्ता',
-'filehist-dimensions' => 'आयाम',
-'filehist-filesize' => 'फाईल के आकार',
-'filehist-comment' => 'टिप्पणी',
-'filehist-missing' => 'गायब फाईल',
-'imagelinks' => 'फाईल लिंक',
-'nolinkstoimage' => 'इ फाईल जोड़े कौनो फाइल लिंक नईखे।',
-'morelinkstoimage' => 'इ फाइल संगे जुड़ल [[Special:WhatLinksHere/$1|सब लिंक]] देखीं।',
-'sharedupload' => 'इ फाईल $1 से बा आ दुसर परियोजना में प्रयोग करल जा सकत बा।',
-'sharedupload-desc-there' => 'इ फाईल $1 से बा आ दुसर परियोजना में प्रयोग करल जा सकत बा। अधिक जानकारी खातिर कृपया [$2 फाईल विवरण पन्ना] देखीं।',
-'filepage-nofile' => 'इ नाम से कौनो फाईल उपलब्ध नईखे।',
-'filepage-nofile-link' => 'इ नाम से कौनो फाईल उपलब्ध नईखे, लेकिन रउआ [$1 के लाद] सकत बानी।',
-'uploadnewversion-linktext' => 'इ फाईल के नया संस्करण लादीं।',
-'shared-repo-from' => '$1 से',
-'shared-repo' => 'एगो आवटिंत भंडार गृह',
-'shared-repo-name-wikimediacommons' => 'विकिमीडिया कॉमन्स',
-
-# File reversion
-'filerevert' => 'पुन: निर्देशित $1',
-'filerevert-legend' => 'पुन: निर्देशित फाईल',
-'filerevert-comment' => 'कारण:',
-
-# File deletion
-'filedelete' => '$1 के मिटाईं',
-'filedelete-legend' => 'फाईल के मिटाईं',
-'filedelete-comment' => 'कारण:',
-'filedelete-submit' => 'मिटाईं',
-'filedelete-success' => "'''$1''' के मिटा दिहल गईल बा।",
-'filedelete-nofile' => "'''$1''' उपलब्ध नईखे।",
-
-# Random page
-'randompage' => 'अविशिष्ट पन्ना',
-
-# Miscellaneous special pages
-'nbytes' => '$1 {{PLURAL:$1|बाईट|बाईट्स}}',
-'move' => 'स्थान्तरण',
-'movethispage' => 'ई पन्ना के स्थांतरण करीं',
-
-# Book sources
-'booksources' => 'किताबी स्त्रोत',
-
-# Special:AllPages
-'allpagessubmit' => 'जाईं',
-'allpagesprefix' => 'उपसर्ग के साथे पन्ना प्रदर्शन:',
-
-# E-mail user
-'emailuser' => 'ई प्रयोगकर्ता के ईमेल करीं',
-
-# Watchlist
-'watchlist' => 'हमार ध्यानसूची',
-'mywatchlist' => 'हमार ध्यानसूची',
-'watch' => 'ध्यानसूची में डालीं',
-'watchthispage' => 'ई पन्ना ध्यानसूची में डालीं',
-'unwatch' => 'ध्यानसूची से हटाईं',
-
-# Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'ध्यानसूची में जाते हुए',
-'unwatching' => 'ध्यानसूची से हटते हुए',
-
-# Undelete
-'undeletelink' => 'देखीं/बहाल करीं',
-
-# Namespace form on various pages
-'namespace' => 'सन्दर्भ',
-'invert' => 'चयनित पलटीं',
-'blanknamespace' => '(मुख्य)',
-
-# Contributions
-'contributions' => 'प्रयोगकर्ता योगदान',
-'contributions-title' => ' $1 खातिर प्रयोगकर्ता योगदान',
-'mycontris' => 'हमार योगदान',
-'nocontribs' => 'ई मानदंड से मिलत जुलत कौनो बदलाव ना मिलल।',
-'uctop' => '(शीर्ष)',
-'month' => 'महिना से (आ उ से पहिले):',
-'year' => 'साल से (आ उ से पहिले):',
-
-'sp-contributions-newbies' => 'खाली नया खाता के योगदान देखीं।',
-'sp-contributions-newbies-sub' => 'नया खाता खातिर',
-'sp-contributions-newbies-title' => 'नया खाता खातिर प्रयोगकर्ता के योगदान।',
-'sp-contributions-blocklog' => 'निष्क्रीय खाता',
-'sp-contributions-deleted' => 'नष्ट प्रयोगकर्ता के योगदान।',
-'sp-contributions-logs' => 'लौग',
-'sp-contributions-talk' => 'बात-चीत',
-'sp-contributions-userrights' => 'प्रयोगकर्ता अधिकार प्रबन्धन',
-'sp-contributions-blocked-notice' => 'ई प्रयोगकर्ता के ई समय निष्क्रीय करल गईल बा।
-नविनतम नष्ट लौग प्रविष्टी उद्धरण खातिर निचे दिहल बा:',
-
-# What links here
-'whatlinkshere' => 'अहिजा का जुड़ी',
-'whatlinkshere-title' => 'पन्ना जौन "$1" से जुड़ेला',
-'whatlinkshere-page' => 'पन्ना:',
-'linkshere' => "नीचे के सब पन्ना '''[[:$1]]''' से जुड़ेला:",
-'nolinkshere' => "'''[[:$1]]''' से कौनो पन्ना नईखे जुड़ल।",
-'nolinkshere-ns' => "चुनल गईल सन्दर्भ में '''[[:$1]]''' से कौनो पन्ना ना जुड़ेला।",
-'isredirect' => 'पुन: निर्दिष्ट पन्ना',
-'isimage' => 'तस्वीर लिंक',
-'whatlinkshere-prev' => '{{PLURAL:$1|पिछला|पिछला $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|अगला|अगला $1}}',
-'whatlinkshere-links' => '← लिंक',
-'whatlinkshere-hideredirs' => '$1 पुन: निर्देशित',
-'whatlinkshere-hidelinks' => '$1 लिंक',
-'whatlinkshere-hideimages' => '$1 तस्वीर लिंक',
-'whatlinkshere-filters' => 'फिल्टर',
-
-# Block/unblock
-'blockip' => 'प्रतिबंधित प्रयोगकर्ता',
-'blocklink' => 'निष्क्रिय',
-'unblocklink' => 'ताला खोलीं',
-'change-blocklink' => 'ब्लॉक बदलीं',
-'contribslink' => 'योगदान',
-'blocklogpage' => 'निष्क्रिय खाता',
-
-# Move page
-'movepagebtn' => 'पन्ना स्थांतरण करीं',
-'revertmove' => 'पिछलका स्थिति',
-
-# Thumbnails
-'thumbnail-more' => 'बढ़ाईं',
-'filemissing' => 'फाईल गायब',
-
-# Tooltip help for the actions
-'tooltip-pt-userpage' => 'राउर प्रयोगकर्ता पन्ना',
-'tooltip-pt-mytalk' => 'राउर वार्ता पन्ना',
-'tooltip-pt-preferences' => 'राउर पसन्द',
-'tooltip-pt-mycontris' => 'राउर योगदान के सूची',
-'tooltip-pt-login' => 'रउआ के खाता प्रवेश खातिर प्रोत्साहित करल जा रहल बा, बाँकि ई अनिवार्य नईखे',
-'tooltip-pt-anonlogin' => 'रउआ के खाता प्रवेश खातिर प्रोत्साहित करल जा रहल बा, बाँकि ई अनिवार्य नईखे',
-'tooltip-pt-logout' => 'खाता से बाहर',
-'tooltip-ca-talk' => 'सामग्री पन्ना के बारे में बात-चीत',
-'tooltip-ca-edit' => 'रउआ ई पन्ना के सम्पादन कर सकत बानी। कृपया पन्ना सुरक्षित करे से पहिले पूर्वावलोकन बटन के इस्तेमाल करीं।',
-'tooltip-ca-addsection' => 'एगो नया खण्ड शुरु करीं',
-'tooltip-ca-viewsource' => 'इ पन्ना के संरक्षित कर दिहल गईल बा। रऊआ एकर मूल देख सकत बानी।',
-'tooltip-ca-history' => 'ई पन्ना के पिछला संशोधन',
-'tooltip-ca-protect' => 'इ पन्ना के संरक्षित करीं।',
-'tooltip-ca-unprotect' => 'इ पन्ना के संरक्षण हटाईं।',
-'tooltip-ca-delete' => 'ई पन्ना मिटाईं',
-'tooltip-ca-move' => 'ई पन्ना के स्थांतरण करीं',
-'tooltip-ca-watch' => 'इ पन्ना के आपन ध्यानसूची में डालीं',
-'tooltip-search' => '{{SITENAME}} खोजीं',
-'tooltip-search-go' => 'यदि पन्ना मौजूद होई त ईहे सटीक नाम के साथ उ पन्ना पर जाईं',
-'tooltip-search-fulltext' => 'ई पाठ्य खातिर पन्ना खोजीं',
-'tooltip-p-logo' => 'मुख्य पन्ना पर जाईं',
-'tooltip-n-mainpage' => 'मुख्य पन्ना पर जाईं',
-'tooltip-n-mainpage-description' => 'मुख्य पन्ना पर पधारीं',
-'tooltip-n-portal' => 'परियोजना के बारे मेँ, रउआ का कर सकत बानी, वस्तु कहाँ खोजब',
-'tooltip-n-currentevents' => 'वर्तमान के घटना पर पृष्ठभूमी जानकारी खोजीं',
-'tooltip-n-recentchanges' => 'विकि पर तुरंत भईल परिवर्तन के सूची',
-'tooltip-n-randompage' => 'बेतरतिब पन्ना लादीं (Load करीं)',
-'tooltip-n-help' => 'जगह पता लगावे खातिर',
-'tooltip-t-whatlinkshere' => 'अहिजा लिंक होखे वाला सब विकि पन्ना के सूची',
-'tooltip-t-recentchangeslinked' => 'ई पन्ना से जुड़ल पन्नवन पर तुरंत भईल परिवर्तन',
-'tooltip-t-upload' => 'फाईल लादीं (अपलोड )',
-'tooltip-t-specialpages' => 'ख़ाश पन्नवन के सूची',
-'tooltip-t-print' => 'ई पन्ना के छापे लायक संस्करण।',
-'tooltip-t-permalink' => 'ई पन्ना के संसोधन खातिर स्थायी लिंक।',
-'tooltip-ca-nstab-main' => 'सामग्री पन्ना देखीं',
-'tooltip-ca-nstab-special' => 'ई एगो ख़ाश पन्ना ह, रउआ ई पन्ना के सम्पादन नईखीं कर सकत',
-'tooltip-save' => 'आपन बदलाव के सुरक्षित करीं',
-
-# Media information
-'svg-long-desc' => 'एस वी जी फाईल, नॉमिनल्ली $1 x $2 पिक्सल्स, फाईल के आकार $3',
-'show-big-image' => 'पुरा गुणवत्ता',
-'file-info-gif-looped' => 'लूप्ड',
-'file-info-gif-frames' => '$1 {{PLURAL:$1|फ्रेम}}',
-'file-info-png-looped' => 'लूप्ड',
-
-# Bad image list
-'bad_image_list' => 'फोर्मेट निम्न अनुसार बा:
-खाली सूची सामग्री (* से शुरु होवे वाला पंक्ति ) मानल गईल बा।
-पंक्ति पर पहिला लिंक एगो खराब फाईल के साथ जुड़ल होवे के चाहीं।
-कोई भी बाद वाला लिंक ओही पंक्ति पर अईला पर उ के अपवाद मानल जाई, अर्थात जौन पन्ना पर फाईल इनलाईन हो सकत बा।',
-
-# Metadata
-'metadata' => 'मेटाडाटा',
-'metadata-help' => 'इ फाईल में अतिरिक्त जानकारी उपलब्ध बा, हो सकत बा कि इ डिजीटल कैमरा या स्कैनर से लेवल गईल होखे। यदि इ फाईल एकर मूल फाईल में से संशोधित करल गईल बा त कुछ जानकारी उजागर ना हो सकी।',
-'metadata-expand' => 'विस्तृत विवरण देखाईं',
-'metadata-collapse' => 'विस्तृत विवरण छुपाँईं',
-
-# EXIF tags
-'exif-imagewidth' => 'चौड़ाई',
-'exif-imagelength' => 'ऊँचाई',
-'exif-bitspersample' => 'अवयव प्रति बीट',
-'exif-compression' => 'सम्पीड़न प्रणाली',
-'exif-photometricinterpretation' => 'पिक्सल रचना',
-'exif-orientation' => 'अभिसंस्करण',
-'exif-samplesperpixel' => 'अवयवन के संख्या',
-'exif-planarconfiguration' => 'डेटा प्रबन्धन',
-'exif-xresolution' => 'क्षैतिज समाधान',
-'exif-yresolution' => 'लम्बवत समाधान',
-'exif-stripoffsets' => 'चित्र डेटा के स्थिती',
-'exif-jpeginterchangeformatlength' => 'JPEG डेटा के बाइट',
-
-# 'all' in various places, this might be different for inflected languages
-'namespacesall' => 'सब',
-'monthsall' => 'सब',
-'limitall' => 'सब',
-
-# E-mail address confirmation
-'confirmemail' => 'इ-मेल पता कन्फर्म करीं',
-
-# Special:SpecialPages
-'specialpages' => 'ख़ाश पन्ना',
-
-# New logging system
-'revdelete-restricted' => 'प्रबंधक पर प्रतिबंध लागू',
-'revdelete-unrestricted' => 'प्रबंधक पर से प्रतिबंध समाप्त',
-
-);
'watching' => 'ध्यानसूची में जाते हुए',
'unwatching' => 'ध्यानसूची से हटते हुए',
+'created' => 'बनावल गईल',
+
# Undelete
'undeletelink' => 'देखीं/बहाल करीं',
'logentry-newusers-create' => '$1 ma-ulah sabuting akun pamakai',
'logentry-newusers-create2' => '$1 ma-ulah sabuting akun pamakai $3',
'logentry-newusers-autocreate' => 'Akun $1 utumatis diulah',
-'newuserlog-byemail' => 'Katasunduk dikirimakan lung suril.',
'rightsnone' => '(kadada)',
# Feedback
'logentry-newusers-create' => '$1 অ্যাকাউন্টটি তৈরী করা হয়েছে',
'logentry-newusers-create2' => '$1 ব্যবহারকারী $3 নামের অ্যাকাউন্টটি তৈরী করেছেন',
'logentry-newusers-autocreate' => '$1 অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে তৈরি হয়েছে',
-'newuserlog-byemail' => 'শব্দচাবি ইমেইলের মাধ্যমে পাঠানো হয়েছে',
'logentry-rights-rights' => '$1 ব্যবহারকারী, $3 এর দলগত সদস্যপদ $4 থেকে $5 এ পরিবর্তন করেছেন',
'logentry-rights-autopromote' => '$1 সয়ংক্রিয়ভাবে $4 থেকে $5 এ উন্নীত হয়েছে',
'rightsnone' => '(কিছু নাই)',
# New logging system
'revdelete-restricted' => 'ডান্ডিকরেকুরাগরাঙ সীমাবদ্ধতাহানি ফলা',
'revdelete-unrestricted' => 'ডান্ডিকরেকুরাগরাঙ সীমাবদ্ধতাহানি নেইকর',
-'newuserlog-byemail' => 'ই-মেইলর মা পেঠাদিয়াসি পাসৱার্ডগ',
'rightsnone' => '(নেই)',
# Search suggestions
'viewsource-title' => 'Gwelet an tarzh evit $1',
'actionthrottled' => 'Ober daleet',
'actionthrottledtext' => "A-benn dizarbenn ar strob, n'haller ket implijout an ober-mañ re alies en ur frapad amzer lakaet, hag aet oc'h dreist ar muzul. Klaskit en-dro a-benn un nebeut munutennoù.",
-'protectedpagetext' => "Prennet eo bet ar bajenn-mañ. N'haller ket kemmañ anezhi ken.",
+'protectedpagetext' => 'Prennet eo bet ar bajenn-mañ kuit na vefe skrivet pe cheñchet un dra bennak enni',
'viewsourcetext' => 'Gallout a rit gwelet hag eilañ danvez ar bajenn-mañ',
'viewyourtext' => "Gallout a rit gwelet hag eilañ mammenn ho '''kemmoù''' d'ar bajenn-mañ :",
'protectedinterface' => 'Testenn ar bajenn-mañ a dalvez evit etrefas ar meziant er wiki-mañ. Setu perak eo bet gwarezet ar bajenn.',
'gotaccount' => "Ur gont zo ganeoc'h dija ? '''$1'''.",
'gotaccountlink' => 'Kevreañ',
'userlogin-resetlink' => "Ha disoñjet eo bet ho titouroù kevreañ ganeoc'h ?",
-'createaccountmail' => 'dre bostel',
+'createaccountmail' => 'Dre bostel',
'createaccountreason' => 'Abeg :',
'badretype' => 'Ne glot ket ar gerioù-tremen an eil gant egile.',
'userexists' => "Implijet eo an anv implijer lakaet ganeoc'h dija.
'''NA IMPLIJIT KET LABOURIOÙ GANT GWIRIOÙ AOZER (COPYRIGHT) HEP AOTRE D'OBER KEMENT-SE!'''",
'copyrightwarning2' => "Notit mat e c'hall kement degasadenn graet ganeoc'h war {{SITENAME}} bezañ kemmet, adaozet pe lamet kuit gant an implijerien all. Mar ne fell ket deoc'h e vije kemmet-digemmet ar pezh hoc'h eus skrivet na gemerit ket perzh er raktres-mañ.<br /> Gouestlañ a rit ivez eo bet savet ar boued spered ganeoc'h pe eilet diwar ur vammenn frank a wirioù pe en domani foran (gwelet $1 evit gouzout hiroc'h). '''NA IMPLIJIT KET LABOURIOÙ GANT GWIRIOÙ AOZER HEP AOTRE D'OBER KEMENT-SE!'''",
'longpageerror' => "'''FAZI : {{PLURAL:$1|Ur c'hilookted|$1 kilookted}} hir eo an destenn lakaet ganeoc'h, ar pezh zo hiroc'h eget {{PLURAL:$2|ur c'hilookted|$2 kilookted}}, ar vent vrasañ aotreet. N'haller ket enrollañ.'''",
-'readonlywarning' => "'''KEMENN DIWALL : stanket eo an diaz titouroù a-benn bezañ trezalc'het; setu ne viot ket evit enrollañ ho kemmoù diouzhtu-diouzhtu eta.
-Gallout a rit eilañ-pegañ an destenn en ur restr skrid all hag enrollañ anezhi a-benn diwezhatoc'hik.'''
+'readonlywarning' => "'''KEMENN DIWALL : prennet eo bet an diaz titouroù evit bezañ trezalc'het; setu ne viot ket evit enrollañ ho kemmoù diouzhtu-diouzhtu eta.'''
-Setu an displegadenn lakaet gant ar merour en deus stanket an traoù : $1",
+Gallout a rit eilañ ha pegañ ho testenn en ur restr skrid all hag enrollañ anezhi a-benn diwezhatoc'hik.'''
+
+Setu an displegadenn lakaet gant ar merour eo bet prennet an traoù gantañ : $1",
'protectedpagewarning' => "'''KEMENN DIWALL: Gwarezet eo bet ar bajenn-mañ. N'eus nemet an implijerien ganto ar statud merour a c'hall kemmañ anezhi.'''
Enmont diwezhañ ar marilh a ziskouezer amañ a-is evel dave :",
'semiprotectedpagewarning' => "''Notenn :''' Gwarezet eo ar bajenn-mañ; n'eus nemet an implijerien bet krouet ur gont ganto a kemmañ anezhi. Kasadenn ziwezhañ ar marilh zo diskouezet amañ a-is evel dave :",
'prefs-emailconfirm-label' => 'Kadarnaat ar postel :',
'prefs-textboxsize' => 'Ment ar prenestr skridaozañ',
'youremail' => 'Postel :',
-'username' => 'Anv implijer :',
-'uid' => 'Niv. identelezh an implijer :',
+'username' => '{{GENDER:$1|Anv implijer|Anv implijerez}}:',
+'uid' => '{{GENDER:$1|Niv. identelezh an implijer|Niv. identelezh an implijerez}}:',
'prefs-memberingroups' => 'Ezel eus {{PLURAL:$1|ar strollad|ar strolladoù}}:',
'prefs-registration' => 'Deiziad enskrivañ :',
'yourrealname' => 'Anv gwir*',
'protect-default' => 'Aotren an holl implijerien',
'protect-fallback' => 'Ezhomm zo aotre "$1"',
'protect-level-autoconfirmed' => "Stankañ an implijerien nevez hag ar re n'int ket enrollet",
-'protect-level-sysop' => 'Merourien hepken',
+'protect-level-sysop' => 'Aotren ar verourien hepken',
'protect-summary-cascade' => 'Gwareziñ dre skalierad',
'protect-expiring' => "a zeu d'e dermen d'an $1",
'protect-expiring-local' => "a ya d'e dermen d'an $1",
'logentry-newusers-create' => 'Krouet eo bet ar gont implijer $1',
'logentry-newusers-create2' => 'Gant $1 eo bet krouet ar gont implijer $3',
'logentry-newusers-autocreate' => 'Krouet eo bet kont $1 ent emgefre',
-'newuserlog-byemail' => 'ger-tremen kaset dre bostel',
'rightsnone' => '(netra)',
# Feedback
'category-empty' => "''Ova kategorija trenutno ne sadrži članke ni medije.''",
'hidden-categories' => '{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}}',
'hidden-category-category' => 'Sakrivene kategorije',
-'category-subcat-count' => '{{PLURAL:$2|Ova kategorija ima sljedeću $1 podkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeće podkategorije|sljedećih $1 podkategorija}}, od $2 ukupno.}}',
+'category-subcat-count' => '{{PLURAL:$2|Ova kategorija ima sljedeću podkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeće podkategorije|sljedećih $1 podkategorija}}, od $2 ukupno.}}',
'category-subcat-count-limited' => 'Ova kategorija sadrži {{PLURAL:$1|slijedeću $1 podkategoriju|slijedeće $1 podkategorije|slijedećih $1 podkategorija}}.',
'category-article-count' => '{{PLURAL:$2|U ovoj kategoriji se nalazi $1 članak.|{{PLURAL:$1|Prikazan je $1 članak|Prikazana su $1 članka|Prikazano je $1 članaka}} od ukupno $2 u ovoj kategoriji.}}',
'category-article-count-limited' => '{{PLURAL:$1|Slijedeća $1 stranica je|Slijedeće $1 stranice su|Slijedećih $1 stranica je}} u ovoj kategoriji.',
'''NE ŠALJITE AUTORSKIM PRAVOM ZAŠTIĆENE TEKSTOVE BEZ DOZVOLE!'''",
'longpageerror' => "'''Greška: Tekst, koji ste poslali, je dug {{PLURAL:$1|jedan kilobajt|$1 kilobajta}}, što je veće od maksimuma, koji iznosi {{PLURAL:$2|jedan kilobajt|$2 kilobajta}}.'''
Stranica ne može biti sačuvana.",
-'readonlywarning' => "'''PAŽNJA: Baza je zaključana zbog održavanja, tako da nećete moći da sačuvate svoje izmjene za sada.
-Možda želite da kopirate i nalijepite tekst u tekst editor i sačuvate ga za kasnije.'''
+'readonlywarning' => "'''PAŽNJA: Baza je zaključana zbog održavanja, tako da nećete moći da sačuvate svoje izmjene za sada.'''
+Možda želite da kopirate i nalijepite tekst u tekst editor i sačuvate ga za kasnije.
Administrator koji je zaključao bazu je naveo slijedeće objašnjenje: $1",
'protectedpagewarning' => "'''PAŽNJA: Ova stranica je zaključana tako da samo korisnici sa administratorskim privilegijama mogu da je mijenjaju.'''
'revdelete-only-restricted' => 'Greška pri sakrivanju stavke od dana $2, $1: ne možete ukloniti stavke od pregledavanja administratora bez da odaberete neku od drugih opcija za uklanjanje.',
'revdelete-reason-dropdown' => '*Uobičajeni razlozi brisanja
** Kršenje autorskih prava
-** Neadekvatni lični podaci',
+** Neprikladan komentar ili lični podac
+** Neprikladno korisničko ime
+** Uvredljivi podaci',
'revdelete-otherreason' => 'Ostali/dodatni razlog:',
'revdelete-reasonotherlist' => 'Ostali razlozi',
'revdelete-edit-reasonlist' => 'Uredi razloge brisanja',
'backend-fail-delete' => 'Ne može se izbrisati datoteka $1.',
'backend-fail-alreadyexists' => 'Datoteka $1 već postoji.',
'backend-fail-store' => 'Ne može se spremiti datoteka $1 na $2.',
+'backend-fail-copy' => 'Nije uspjelo kopiranje datoteke "$1" u "$2".',
+'backend-fail-move' => 'Nije uspjelo premještanje datoteke "$1" u "$2".',
'backend-fail-read' => 'Ne mogu čitati datoteku $1.',
'backend-fail-create' => 'Ne mogu napraviti datoteku $1.',
'disambiguations' => 'Stranice koje vode na čvor članke',
'disambiguationspage' => '{{ns:template}}:Čvor',
-'disambiguations-text' => "Slijedeće stranice su povezane sa '''čvor stranicom'''.
-Po pravilu, one se trebaju povezati sa konkretnim člankom.<br />
-Stranica se smatra čvorom, ukoliko koristi šablon koji je povezan sa spiskom [[MediaWiki:Disambiguationspage|čvor stranica]]",
+'disambiguations-text' => "Slijedeće stranice sadrže najmanje jedan link na '''čvor stranicom'''.
+Umjesto toga, one se trebaju povezati sa konkretnim konkretnim stranicom.<br />
+Stranica se smatra čvorom, ukoliko koristi šablon koji je povezan sa spiskom [[MediaWiki:Disambiguationspage]]",
'doubleredirects' => 'Dvostruka preusmjerenja',
'doubleredirectstext' => 'Ova stranica prikazuje stranice koje preusmjeravaju na druga preusmjerenja.
'emailuser-title-target' => 'Pošalji e-poruku {{GENDER:$1|korisniku|korisnici|korisniku}}',
'emailuser-title-notarget' => 'Pošalji e-mail korisniku',
'emailpage' => 'Pošalji e-mail korisniku',
-'emailpagetext' => 'Možete korisiti formu ispod za slanje e-mail poruka ovom korisniku.
+'emailpagetext' => 'Možete korisiti formu ispod za slanje e-mail poruka {{GENDER:$1|ovom korisniku|ovoj korisnici|ovom korisniku}}.
E-mail adresa koju ste unijeli u [[Special:Preferences|Vašim korisničkim postavkama]] će biti prikazana kao adresa pošiljaoca, tako da će primaoc poruke moći da Vam odgovori.',
'usermailererror' => 'Objekat pošte je vratio grešku:',
'defemailsubject' => '{{SITENAME}} e-pošta od {{GENDER:$1|korisnika|korisnice|korisnika}} $1',
'usermessage-editor' => 'Sistem za poruke',
# Watchlist
-'watchlist' => 'Moji praćeni članci',
+'watchlist' => 'Praćeni članci',
'mywatchlist' => 'Praćeni članci',
'watchlistfor2' => 'Za $1 $2',
'nowatchlist' => 'Nemate ništa na svom spisku praćenih članaka.',
'watchnologin' => 'Niste prijavljeni',
'watchnologintext' => 'Morate biti [[Special:UserLogin|prijavljeni]] da bi ste mijenjali spisak praćenih članaka.',
'addwatch' => 'Dodaj na spisak praćenja',
-'addedwatchtext' => 'Stranica "[[:$1]]" je dodata vašem [[Special:Watchlist|spisku praćenih članaka]]. Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti navedene ovde, i stranica će biti <b>podebljana</b> u [[Special:RecentChanges|spisku]] nedavnih izmjena da bi se lakše uočila.
-
-Ako kasnije želite da uklonite stranicu sa vašeg spiska praćenih članaka, kliknite na "prekini praćenje" na paleti.',
+'addedwatchtext' => 'Stranica "[[:$1]]" je dodata vašem [[Special:Watchlist|spisku praćenih članaka]].
+Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti navedene ovde.',
'removewatch' => 'Ukloni sa spiska praćenja',
'removedwatchtext' => 'Stranica "[[:$1]]" je uklonjena iz [[Special:Watchlist|vašeg spiska praćenih članaka]].',
'watch' => 'Prati članak',
'logentry-newusers-create' => 'Korisnički račun $1 je napravljen',
'logentry-newusers-create2' => '$3 je {{GENDER:$2|napravio|napravila}} korisnički račun $1',
'logentry-newusers-autocreate' => 'Korisnički račun $1 je automatski napravljen',
-'newuserlog-byemail' => 'šifra je poslana putem e-maila',
'logentry-rights-rights' => '$1 {{GENDER:$1|je promijenio|je promijenila|je promijenio}} članstvo grupe za $3 iz $4 u $5',
'logentry-rights-rights-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3',
'logentry-rights-autopromote' => 'Korisničkom računu $1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5',
'logentry-newusers-create' => "S'ha creat el compte d'usuari $1",
'logentry-newusers-create2' => "$1 ha creat el compte d'usuari $3",
'logentry-newusers-autocreate' => "El compte d'usuari $1 ha estat creat de manera automàtica",
-'newuserlog-byemail' => 'contrasenya enviada per correu electrònic',
'logentry-rights-rights' => '$1 ha canviat la pertinença de grups per $3 de $4 a $5',
'logentry-rights-rights-legacy' => '$1 ha canviat la pertinença de grups per $3',
'logentry-rights-autopromote' => '$1 ha estat promogut automàticament de $4 a $5',
# New logging system
'revdelete-restricted' => 'mga na-aplay nga restriksyon sa mga tagdumala',
'revdelete-unrestricted' => 'gitangtang ang mga restriksyon alang sa mga tagdumala',
-'newuserlog-byemail' => "ang pasword gipadala na pinaagi sa ''e-mail''",
'rightsnone' => '(wala)',
);
'logentry-newusers-create' => 'ھەژماری بەکارھێنەریی $1 دروست کرا',
'logentry-newusers-create2' => 'ھەژماری بەکارھێنەریی $3 لە لایەن $1 دروست کرا',
'logentry-newusers-autocreate' => 'ھەژماری $1 بە شێوەی خۆگەڕ دروستکرا',
-'newuserlog-byemail' => 'تێپەڕوشە بە ئیمەیل نێردرا.',
'rightsnone' => '(ھیچ)',
# Feedback
# HTML forms
'htmlform-reset' => 'Денъишикликлерни кери ал',
-# New logging system
-'newuserlog-byemail' => 'пароль e-mail вастасынен йиберильген',
-
# Search suggestions
'searchsuggest-containing' => 'ичинде бу олгъан...',
# HTML forms
'htmlform-reset' => 'Deñişikliklerni keri al',
-# New logging system
-'newuserlog-byemail' => 'parol e-mail vastasınen yiberilgen',
-
# Search suggestions
'searchsuggest-containing' => 'içinde bu olğan...',
);
$namespaceAliases = array(
- 'Uživatel_diskuse' => NS_USER_TALK, # old literal translation backward compatibility
- 'Uživatelka_diskuse' => NS_USER_TALK, # female complement to old literal translation style
- '$1_diskuse' => NS_PROJECT_TALK, # old literal translation backward compatibility
- 'Soubor_diskuse' => NS_FILE_TALK, # old literal translation backward compatibility
- 'MediaWiki_diskuse' => NS_MEDIAWIKI_TALK, # old literal translation backward compatibility
- 'Šablona_diskuse' => NS_TEMPLATE_TALK, # old literal translation backward compatibility
- 'Nápověda_diskuse' => NS_HELP_TALK, # old literal translation backward compatibility
- 'Kategorie_diskuse' => NS_CATEGORY_TALK, # old literal translation backward compatibility
+ 'Uživatel_diskuse' => NS_USER_TALK, # old literal translation backward compatibility
+ 'Uživatelka_diskuse' => NS_USER_TALK, # female complement to old literal translation style
+ '$1_diskuse' => NS_PROJECT_TALK, # old literal translation backward compatibility
+ 'Soubor_diskuse' => NS_FILE_TALK, # old literal translation backward compatibility
+ 'MediaWiki_diskuse' => NS_MEDIAWIKI_TALK, # old literal translation backward compatibility
+ 'Šablona_diskuse' => NS_TEMPLATE_TALK, # old literal translation backward compatibility
+ 'Nápověda_diskuse' => NS_HELP_TALK, # old literal translation backward compatibility
+ 'Kategorie_diskuse' => NS_CATEGORY_TALK, # old literal translation backward compatibility
);
$namespaceGenderAliases = array(
- NS_USER => array( 'male' => 'Uživatel', 'female' => 'Uživatelka' ),
- NS_USER_TALK => array( 'male' => 'Diskuse_s_uživatelem', 'female' => 'Diskuse_s_uživatelkou' ),
+ NS_USER => array( 'male' => 'Uživatel', 'female' => 'Uživatelka' ),
+ NS_USER_TALK => array( 'male' => 'Diskuse_s_uživatelem', 'female' => 'Diskuse_s_uživatelkou' ),
);
$specialPageAliases = array(
'Categories' => array( 'Kategorie' ),
'ChangeEmail' => array( 'Změna_emailu', 'Zmena_emailu' ),
'ChangePassword' => array( 'Změna_hesla', 'Zmena_hesla', 'Resetovat_heslo' ),
+ 'ComparePages' => array( 'Porovnání_stránek', 'PorovnáníStránek', 'Porovnani_stranek', 'PorovnaniStranek' ),
'Confirmemail' => array( 'Potvrdit_e-mail' ),
'Contributions' => array( 'Příspěvky', 'Prispevky' ),
'CreateAccount' => array( 'Vytvořit_účet', 'Vytvorit_ucet' ),
'gotaccount' => "Už jste registrováni? '''$1'''.",
'gotaccountlink' => 'Přihlaste se',
'userlogin-resetlink' => 'Zapomněli jste přihlašovací údaje?',
-'createaccountmail' => 'pomocí e-mailu',
+'createaccountmail' => 'Použít dočasné náhodné heslo a odeslat ho na níže uvedenou e-mailovou adresu',
'createaccountreason' => 'Důvod:',
'badretype' => 'Vámi napsaná hesla nesouhlasí.',
'userexists' => 'Zadané uživatelské jméno se již používá.
Uložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>), podrobnosti najdete na $1. '''Nekopírujte díla chráněná autorským právem bez dovolení!'''",
'longpageerror' => "'''Chyba: Pokoušíte se uložit text o velikosti {{PLURAL:$1|$1 KiB}}, přičemž dovolené maximum je {{PLURAL:$2|$2 KiB}}.'''
Vaše změna nemůže být uložena.",
-'readonlywarning' => "'''VAROVÁNÍ: Databáze byla uzamčena kvůli údržbě, takže nebudete moci uložit své změny. Můžete si okopírovat text do souboru a uložit ho na později.'''
+'readonlywarning' => "'''Varování: Databáze byla uzamčena kvůli údržbě, takže momentálně nebudete moci uložit své změny.'''
+Můžete si okopírovat text do souboru a uložit ho na později.
Správce serveru, který databázi zamkl, poskytl toto zdůvodnění: $1",
'protectedpagewarning' => "'''Varování: Tato stránka byla zamčena, takže ji mohou editovat pouze správci.'''
# Special:ActiveUsers
'activeusers' => 'Seznam aktivních uživatelů',
'activeusers-intro' => 'Toto je seznam uživatelů, kteří byli nějak aktivní v {{plural:$1|posledním dni|posledních $1 dnech}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|editace|editace|editací}} během {{PLURAL:$3|posledního dne|posledních $3 dnů}}',
+'activeusers-count' => '$1 {{PLURAL:$1|akce|akce|akcí}} během {{PLURAL:$3|posledního dne|posledních $3 dnů}}',
'activeusers-from' => 'Zobrazit uživatele počínaje od:',
'activeusers-hidebots' => 'Skrýt roboty',
'activeusers-hidesysops' => 'Skrýt správce',
'days' => '{{PLURAL:$1|$1 den|$1 dny|$1 dní}}',
'months' => '{{PLURAL:$1|$1 měsícem|$1 měsíci}}',
'years' => '{{PLURAL:$1|$1 rokem|$1 roky}}',
-'ago' => 'před
-$1',
+'ago' => 'před $1',
'just-now' => 'Právě teď',
# Bad image list
'specialpages-group-highuse' => 'Často používané stránky',
'specialpages-group-pages' => 'Seznamy stránek',
'specialpages-group-pagetools' => 'Nástroje ke stránkám',
-'specialpages-group-wiki' => 'Informace a nástroje k celé wiki',
+'specialpages-group-wiki' => 'Nástroje a data',
'specialpages-group-redirects' => 'Přesměrovávací speciální stránky',
'specialpages-group-spam' => 'Protispamové nástroje',
'logentry-newusers-newusers' => 'Byl založen uživatelský účet $1',
'logentry-newusers-create' => 'Byl založen uživatelský účet $1',
'logentry-newusers-create2' => '$1 založil uživatelský účet $3',
+'logentry-newusers-byemail' => '$1 {{GENDER:$2|založil|založila}} uživatelský účet $3, heslo bylo posláno e-mailem',
'logentry-newusers-autocreate' => 'Automaticky byl založen účet $1',
-'newuserlog-byemail' => 'heslo zasláno e-mailem',
'logentry-rights-rights' => '$1 {{GENDER:$2|změnil|změnila}} členství $3 ve skupinách z $4 na $5',
'logentry-rights-rights-legacy' => '$1 změnil členství $3 ve skupinách',
'logentry-rights-autopromote' => '$1 byl automaticky povýšen z $4 na $5',
'api-error-nomodule' => 'Interní chyba: není nastaven načítací modul.',
'api-error-ok-but-empty' => 'Interní chyba: ze serveru nepřišla odpověď.',
'api-error-overwrite' => 'Není dovoleno přepsat existující soubor.',
-'api-error-stashfailed' => 'Vnitřní chyba: serveru se nepodařilo uložit dočasný soubor.',
+'api-error-stashfailed' => 'Vnitřní chyba: Serveru se nepodařilo uložit dočasný soubor.',
+'api-error-publishfailed' => 'Vnitřní chyba: Serveru se nepodařilo zveřejnit dočasný soubor.',
'api-error-timeout' => 'Server neodpověděl v očekávaném čase.',
'api-error-unclassified' => 'Došlo k neznámé chybě',
'api-error-unknown-code' => 'Neznámá chyba: „$1“',
* @author ОйЛ
*/
+$specialPageAliases = array(
+ 'Allpages' => array( 'Вьсѩ_страницѧ' ),
+ 'Categories' => array( 'Катигорїѩ' ),
+ 'Contributions' => array( 'Добродѣꙗниꙗ' ),
+ 'Preferences' => array( 'Строи' ),
+ 'Recentchanges' => array( 'Послѣдьнѩ_мѣнꙑ' ),
+ 'Search' => array( 'Исканиѥ' ),
+ 'Statistics' => array( 'Статїстїка' ),
+ 'Upload' => array( 'Положєниѥ_дѣла' ),
+);
+
$namespaceNames = array(
NS_MEDIA => 'Срѣдьства',
NS_SPECIAL => 'Нарочьна',
* @author Lloffiwr
* @author Malafaya
* @author Reedy
+ * @author Robin Owain
* @author Thaf
* @author Urhixidur
* @author Xxglennxx
Gallwch ddefnyddio {{SITENAME}} yn anhysbys, neu fe allwch <span class='plainlinks'>[$1 fewngofnodi eto]</span> wrth yr un un enw neu wrth enw arall.
Sylwer y bydd rhai tudalennau yn parhau i ymddangos fel ag yr oeddent pan oeddech wedi mewngofnodi hyd nes i chi glirio celc eich porwr.",
'welcomeuser' => 'Croeso, $1!',
+'welcomecreation-msg' => 'Peidiwch ag anghofio newid eich [[Special:Preferences|{{SITENAME}} preferences]].',
'yourname' => 'Eich enw defnyddiwr:',
'yourpassword' => 'Eich cyfrinair:',
'yourpasswordagain' => 'Ail-deipiwch y cyfrinair:',
'diff-multi-manyusers' => '(Ni ddangosir {{PLURAL:$1|yr $1 diwygiad|yr $1 diwygiad|y $1 ddiwygiad|y $1 diwygiad|y $1 diwygiad|y $1 diwygiad}} rhyngol gan mwy na $2 {{PLURAL:$2|o ddefnyddwyr}}.)',
'difference-missing-revision' => "Ni chafwyd hyd i $1 {{PLURAL:$2|diwygiad|diwygiad|ddiwygiad|diwygiad}} o'r gwahaniaeth ($1) {{PLURAL:$2|hwn}}.
-Fel arfer, fe ddigwydd hyn pan mae dyn wedi dilyn hen gyswllt gwahaniaeth i dudalen sydd erbyn hyn wedi cael ei dileu.
+Fel arfer, fe ddigwydd hyn pan mae person wedi dilyn hen gyswllt gwahaniaeth i dudalen sydd erbyn hyn wedi cael ei ddileu.
Mae manylion pellach i'w cael yn [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} lòg y dileuon].",
# Search results
'pageinfo-article-id' => 'ID y dudalen',
'pageinfo-language' => 'Iaith cynnwys y dudalen',
'pageinfo-robot-policy' => 'Statws i beiriannau chwilio',
-'pageinfo-robot-index' => 'Gellir ei rhestri gan beiriannau chwilio',
-'pageinfo-robot-noindex' => 'Ni ellir ei rhestri gan beiriannau chwilio',
+'pageinfo-robot-index' => 'Gellir ei rhestru gan beiriannau chwilio',
+'pageinfo-robot-noindex' => 'Ni ellir ei rhestru gan beiriannau chwilio',
'pageinfo-views' => 'Nifer yr ymweliadau',
'pageinfo-watchers' => 'Nifer gwylwyr y dudalen',
'pageinfo-redirects-name' => "Nifer yr ailgyfeiriadau i'r dudalen hon",
'months' => '{{PLURAL:$1|$1 mis|mis|deufis|$1 mis}}',
'years' => '{{PLURAL:$1|$1 blwyddyn|blwyddyn|$1 flynedd|$1 blynedd|$1 blynedd|$1 mlynedd}}',
'ago' => '$1 yn ôl',
-'just-now' => 'gynnau',
+'just-now' => 'nawr',
# Bad image list
'bad_image_list' => "Dyma'r fformat:
'logentry-newusers-create' => 'Dechreuwyd y cyfrif defnyddiwr $1',
'logentry-newusers-create2' => 'Dechreuwyd y cyfrif defnyddiwr $3 gan $1',
'logentry-newusers-autocreate' => 'Crëwyd y cyfrif $1 yn awtomatig',
-'newuserlog-byemail' => 'anfonwyd y cyfrinair trwy e-bost',
'rightsnone' => '(dim)',
# Feedback
* @author Morten LJ
* @author Najami
* @author Nghtwlkr
+ * @author Palnatoke
* @author Peter Alberti
* @author Peter Andersen
* @author Purodha
'newwindow' => '(åbner i et nyt vindue)',
'cancel' => 'Afbryd',
'moredotdotdot' => 'Mere...',
+'morenotlisted' => 'Mere ikke angivet...',
'mypage' => 'Side',
'mytalk' => 'Diskussion',
'anontalk' => 'Diskussionsside for denne IP-adresse',
'gotaccount' => 'Har du allerede en konto? $1.',
'gotaccountlink' => 'Log på',
'userlogin-resetlink' => 'Har du glemt dine login oplysninger?',
-'createaccountmail' => 'via e-mail',
+'createaccountmail' => 'Brug en midlertidig tilfældig adgangskode og send den til e-mailadressen angivet nedenfor',
'createaccountreason' => 'Begrundelse:',
'badretype' => 'De indtastede adgangskoder er ikke ens.',
'userexists' => 'Det brugernavn, du har valgt, er allerede i brug.
# E-mail sending
'php-mail-error-unknown' => "Ukendt fejl i PHP's mail()-funtion",
'user-mail-no-addy' => 'Forsøgte at sende email uden en email-adresse',
+'user-mail-no-body' => 'Forsøgte at sende en e-mail med tomt eller urimeligt kort indhold.',
# Change password dialog
'resetpass' => 'Skift adgangskode',
'''OVERFØR IKKE OPHAVSRETSLIGT BESKYTTET INDHOLD UDEN TILLADELSE!'''",
'longpageerror' => "'''Fejl: Teksten, som du ville gemme, er {{PLURAL:$1|en kilobyte|$1 kilobytes}} stor, hvilket er mere end det tilladte maksimum på {{PLURAL:$2|en kilobyte|$2 kilobytes}}.'''
Det er ikke muligt at gemme den.",
-'readonlywarning' => "'''ADVARSEL: Databasen er låst på grund af vedligeholdelse, så du kan ikke gemme dine ændringer lige nu. Det kan godt være en god ide at kopiere din tekst til en tekstfil, så du kan gemme den til senere.'''
+'readonlywarning' => "'''Advarsel: Databasen er låst på grund af vedligeholdelse, så du kan ikke gemme dine ændringer lige nu.'''
+Det kan godt være en god ide at kopiere din tekst til en tekstfil, så du kan gemme den til senere.
-Systemadministratoren som låste databasen, gav denne forklaring: $1",
+Administratoren som låste databasen, gav denne forklaring: $1",
'protectedpagewarning' => "'''ADVARSEL: Denne side er skrivebeskyttet, så kun administratorer kan redigere den.'''<br />
Den seneste logpost vises nedenfor:",
'semiprotectedpagewarning' => "'''Bemærk: Siden er låst, så kun registrerede brugere kan ændre den.'''
# Special:ActiveUsers
'activeusers' => 'Liste over aktive brugere',
'activeusers-intro' => 'Dette er en liste over brugere, som har haft en eller anden form for aktivitet inden for {{PLURAL:$1|den|de}} seneste {{PLURAL:$1|dag|$1 dage}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|redigering|redigeringer}} i {{PLURAL:$3|det seneste døgn|de seneste $3 dage}}',
+'activeusers-count' => '$1 {{PLURAL:$1|handling|handlinger}} i {{PLURAL:$3|det seneste døgn|de seneste $3 dage}}',
'activeusers-from' => 'Vis brugere som starter med:',
'activeusers-hidebots' => 'Skjul robotter',
'activeusers-hidesysops' => 'Skjul administratorer',
'protect-locked-access' => "Den brugerkonto har ikke de nødvendige rettigheder til at ændre sidebeskyttelsen. Her er de aktuelle beskyttelsesindstillinger for siden '''„$1“:'''",
'protect-cascadeon' => 'Denne side er del af en nedarvet skrivebeskyttelse. Wen er indeholdt i nedenstående {{PLURAL:$1|side|sider}}, som er skrivebeskyttet med tilvalg af "nedarvende sidebeskyttelse" Sidebeskyttelsen kan ændres for denne side, det påvirker dog ikke kaskadespærringen:',
'protect-default' => 'Tillad alle brugere',
-'protect-fallback' => 'Kræver "$1"-tilladelse',
-'protect-level-autoconfirmed' => 'Spær for nye og uregistrerede brugere',
-'protect-level-sysop' => 'Kun administratorer',
+'protect-fallback' => 'Tillad kun brugere med "$1" adgang',
+'protect-level-autoconfirmed' => 'Tillad kun autobekræftede brugere',
+'protect-level-sysop' => 'Tillad kun administratorer',
'protect-summary-cascade' => 'nedarvende',
'protect-expiring' => 'til $1 (UTC)',
'protect-expiring-local' => 'udløber $1',
'pageinfo-magic-words' => '{{PLURAL:$1|Magisk|Magiske}} ord ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Skjult kategori|Skjulte kategorier}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Transkluderet skabelon|Transkluderede skabeloner}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Side|Sider}} transkluderet på ( $1 )',
'pageinfo-toolboxlink' => 'Oplysninger om siden',
'pageinfo-redirectsto' => 'Omdirigerer til',
'pageinfo-redirectsto-info' => 'info',
'specialpages-group-highuse' => 'Højt profilerede sider',
'specialpages-group-pages' => 'Sidelister',
'specialpages-group-pagetools' => 'Sideværktøjer',
-'specialpages-group-wiki' => 'Wikidata og værktøjer',
+'specialpages-group-wiki' => 'Data og værktøjer',
'specialpages-group-redirects' => 'Specialsider der viderestiller',
'specialpages-group-spam' => 'Spamværktøjer',
'logentry-newusers-newusers' => 'Brugerkontoen $1 blev oprettet',
'logentry-newusers-create' => 'Brugerkontoen $1 blev oprettet',
'logentry-newusers-create2' => 'Brugerkontoen $3 blev oprettet af $1',
+'logentry-newusers-byemail' => 'Brugerkonto $3 blev oprettet af $1 og adgangskode er sendt via e-mail',
'logentry-newusers-autocreate' => 'Kontoen $1 blev automatisk oprettet',
-'newuserlog-byemail' => 'kodeord tilsendt pr. e-mail',
'logentry-rights-rights' => '$1 ændrede gruppemedlemskabet for $3 fra $4 til $5',
'logentry-rights-rights-legacy' => '$1 ændrede gruppemedlemskabet for $3',
'logentry-rights-autopromote' => '$1 blev automatisk forfremmet fra $4 til $5',
'api-error-ok-but-empty' => 'Intern fejl: intet svar fra serveren.',
'api-error-overwrite' => 'Det er ikke tilladt at overskrive en eksisterende fil.',
'api-error-stashfailed' => 'Intern fejl: serveren kunne ikke gemme midlertidig fil.',
+'api-error-publishfailed' => 'Intern fejl: serveren kunne ikke udgive midlertidig fil.',
'api-error-timeout' => 'Serveren svarede ikke tilbage inden for den forventede tid.',
'api-error-unclassified' => 'En ukendt fejl opstod.',
'api-error-unknown-code' => 'Ukendt fejl: "$1"',
'Userlogin' => array( 'Anmelden' ),
'Userlogout' => array( 'Abmelden' ),
'Userrights' => array( 'Benutzerrechte' ),
+ 'Version' => array( 'Versionsinformationen' ),
'Wantedcategories' => array( 'Gewünschte_Kategorien' ),
'Wantedfiles' => array( 'Gewünschte_Dateien', 'Fehlende_Dateien' ),
'Wantedpages' => array( 'Gewünschte_Seiten' ),
'gotaccount' => "Du hast bereits ein Benutzerkonto? '''$1'''.",
'gotaccountlink' => 'Anmelden',
'userlogin-resetlink' => 'Die Anmeldedaten vergessen?',
-'createaccountmail' => 'Benutzerkonto anlegen (mit Passwortzusendung)',
+'createaccountmail' => 'Ein temporäres Zufallspasswort verwenden und an die unten angegebene E-Mail-Adresse versenden',
'createaccountreason' => 'Grund:',
'badretype' => 'Die beiden Passwörter stimmen nicht überein.',
'userexists' => 'Dieser Benutzername ist schon vergeben.
# Special:ActiveUsers
'activeusers' => 'Aktive Benutzer',
'activeusers-intro' => 'Dies ist eine Liste von Benutzern, die innerhalb {{PLURAL:$1|des letzten Tages|der letzten $1 Tage}} Aktivitäten aufwiesen.',
-'activeusers-count' => '$1 {{PLURAL:$1|Bearbeitung|Bearbeitungen}} in den {{PLURAL:$3|letzten 24 Stunden|vergangenen $3 Tagen}}',
+'activeusers-count' => '$1 {{PLURAL:$1|Aktion|Aktionen}} in den {{PLURAL:$3|letzten 24 Stunden|vergangenen $3 Tagen}}',
'activeusers-from' => 'Zeige Benutzer ab:',
'activeusers-hidebots' => 'Bots ausblenden',
'activeusers-hidesysops' => 'Administratoren ausblenden',
'movepagetext' => "Mit untenstehendem Formular kannst du eine Seite umbenennen, indem du sie mitsamt allen Versionen auf einen neuen Titel verschiebst.
Der alte Titel wird danach zum neuen weiterleiten.
Du kannst Weiterleitungen, die auf den Originaltitel verlinken, automatisch korrigieren lassen.
-Stelle sicher, dass du im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|kaputten Weiterleitungen]] überprüfst.
+Stelle sicher, dass du im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfst.
Du bist dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.
Die Seite wird '''nicht''' verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, diese eine Weiterleitung ohne Versionsgeschichte.
-Dies bedeutet, dass du die Umbenennung rückgängig machen kannst, sofern du einen Fehler gemacht hast. Du kannst hingegen keine Seite überschreiben.
+Dies bedeutet, dass du die Umbenennung rückgängig machen kannst, sofern du einen Fehler gemacht hast. Du kannst hingegen keine existierende Seite überschreiben.
'''Warnung!'''
Die Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.
Du solltest daher die Konsequenzen verstanden haben, bevor du jetzt fortfährst.",
'movepagetext-noredirectfixer' => "Mit untenstehendem Formular kannst du eine Seite umbenennen, indem du sie mitsamt allen Versionen auf einen neuen Titel verschiebst.
Der alte Titel wird danach zum neuen weiterleiten.
-Stelle sicher, dass du im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|kaputten Weiterleitungen]] überprüfst.
+Stelle sicher, dass du im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfst.
Du bist dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.
Die Seite wird '''nicht''' verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, diese ist eine Weiterleitung ohne Versionsgeschichte.
-Dies bedeutet, dass du die Umbenennung rückgängig machen kannst, sofern du einen Fehler gemacht hast. Du kannst hingegen keine Seite überschreiben.
+Dies bedeutet, dass du die Umbenennung rückgängig machen kannst, sofern du einen Fehler gemacht hast. Du kannst hingegen keine existierende Seite überschreiben.
'''Warnung!'''
Die Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.
'pageinfo-article-id' => 'Seitenkennnummer',
'pageinfo-language' => 'Seiteninhaltssprache',
'pageinfo-robot-policy' => 'Suchmaschinenstatus',
-'pageinfo-robot-index' => 'Indizierbar',
-'pageinfo-robot-noindex' => 'Nicht indizierbar',
+'pageinfo-robot-index' => 'Indexierbar',
+'pageinfo-robot-noindex' => 'Nicht indexierbar',
'pageinfo-views' => 'Anzahl der Seitenaufrufe',
'pageinfo-watchers' => 'Anzahl der Beobachter der Seite',
'pageinfo-redirects-name' => 'Weiterleitungen zu dieser Seite',
'version-variables' => 'Erweiterungen mit Variablen',
'version-antispam' => 'Spamschutzerweiterungen',
'version-skins' => 'Benutzeroberflächen',
+'version-api' => 'API-Erweiterungen',
'version-other' => 'Andere Erweiterungen',
'version-mediahandlers' => 'Mediennutzungserweiterungen',
'version-hooks' => "Schnittstellen ''(Hooks)''",
'specialpages-group-highuse' => 'Häufig benutzte Seiten',
'specialpages-group-pages' => 'Seitenlisten',
'specialpages-group-pagetools' => 'Seitenwerkzeuge',
-'specialpages-group-wiki' => 'Systemdaten und Werkzeuge',
+'specialpages-group-wiki' => 'Daten und Werkzeuge',
'specialpages-group-redirects' => 'Weiterleitende Spezialseiten',
'specialpages-group-spam' => 'Spam-Werkzeuge',
'logentry-newusers-newusers' => 'Benutzerkonto $1 wurde erstellt',
'logentry-newusers-create' => 'Benutzerkonto $1 wurde erstellt',
'logentry-newusers-create2' => 'Benutzerkonto $3 wurde von $1 erstellt',
+'logentry-newusers-byemail' => 'Das Benutzerkonto $3 wurde von $1 erstellt und das Passwort wurde per E-Mail zugesandt',
'logentry-newusers-autocreate' => 'Benutzerkonto $1 wurde automatisch erstellt',
-'newuserlog-byemail' => 'das Passwort wurde per E-Mail versandt',
'logentry-rights-rights' => '$1 änderte die Gruppenzugehörigkeit für $3 von $4 zu $5',
'logentry-rights-rights-legacy' => '$1 änderte die Gruppenzugehörigkeit für $3',
'logentry-rights-autopromote' => '$1 wurde automatisch von $4 zu $5 zugeordnet',
'api-error-ok-but-empty' => 'Interner Fehler: Der Server reagiert nicht.',
'api-error-overwrite' => 'Das Überschreiben einer vorhandenen Datei ist nicht erlaubt.',
'api-error-stashfailed' => 'Interner Fehler: Der Server konnte keine temporäre Datei speichern.',
+'api-error-publishfailed' => 'Interner Fehler: Der Server konnte die temporäre Datei nicht veröffentlichen.',
'api-error-timeout' => 'Der Server hat nicht innerhalb der erwarteten Zeit reagiert.',
'api-error-unclassified' => 'Ein unbekannter Fehler ist aufgetreten.',
'api-error-unknown-code' => 'Unbekannter Fehler: „$1“',
'Activeusers' => array( 'KarberêAktivi', 'AktivKarberi' ),
'Allmessages' => array( 'MesaciPêro' ),
'Allpages' => array( 'PeleyPêro' ),
- 'Ancientpages' => array( 'PeleyVerêni' ),
+ 'Ancientpages' => array( 'PeleyKehani' ),
'Badtitle' => array( 'SernameyoXırab' ),
- 'Blankpage' => array( 'PelaVeng', 'VengPela' ),
- 'Block' => array( 'Bloke', 'BlokeIP', 'BlokeKarber' ),
- 'Blockme' => array( 'BlokêMe' ),
+ 'Blankpage' => array( 'PelêVengi' ),
+ 'Block' => array( 'Bloqe', 'BloqeIP', 'BloqeyêKarber' ),
+ 'Blockme' => array( 'BloqeyêMe' ),
'Booksources' => array( 'KıtabeÇıme' ),
'BrokenRedirects' => array( 'HetênayışoXırab' ),
- 'Categories' => array( 'Kategoriye' ),
- 'ChangeEmail' => array( 'EpostaBıvurnê' ),
+ 'Categories' => array( 'Kategoriy' ),
+ 'ChangeEmail' => array( 'EpostaVurnayış' ),
'ChangePassword' => array( 'ParolaBıvurnê', 'ParolaResetke' ),
'ComparePages' => array( 'PelaPêverke' ),
'Confirmemail' => array( 'EpostayAraştke' ),
'CreateAccount' => array( 'HesabVırazê' ),
'Deadendpages' => array( 'PelaBıgirê' ),
'DeletedContributions' => array( 'İştıraqêkeBesterneyayê' ),
- 'Disambiguations' => array( 'ManeoBin' ),
- 'DoubleRedirects' => array( 'DıletHeteneayış' ),
- 'EditWatchlist' => array( 'ListeyaTemaşiVurnayış' ),
+ 'Disambiguations' => array( 'Arêzekerdış' ),
+ 'DoubleRedirects' => array( 'HetanayışoDılet' ),
+ 'EditWatchlist' => array( 'ListeyaSeyrkerdışiVurnayış' ),
'Emailuser' => array( 'EpostayaKarberi' ),
'Export' => array( 'Ateberde' ),
'Fewestrevisions' => array( 'TewrtaynRevizyon' ),
'Filepath' => array( 'RayaDosya', 'HerunaDosya', 'CayêDosya' ),
'Import' => array( 'Azeredê', 'Atewrke' ),
'Invalidateemail' => array( 'EpostaAraştkerdışiBıterknê' ),
- 'BlockList' => array( 'ListeyêBloki', 'IPBloki', 'Blokeyê_IP' ),
+ 'BlockList' => array( 'ListeyêBloqi', 'IPBloqi', 'Blokqeyê_IP' ),
'LinkSearch' => array( 'GreCıgeyrayış' ),
- 'Listadmins' => array( 'ListeyêXizmetkaran' ),
- 'Listbots' => array( 'ListeyêBotan' ),
- 'Listfiles' => array( 'ListeyêDosyayan', 'DosyayaListeke', 'ListeyêResiman' ),
- 'Listgrouprights' => array( 'ListeyêHeqêGruban', 'HeqêGrubdeKarberan' ),
- 'Listredirects' => array( 'ListeyêHetanayışi' ),
- 'Listusers' => array( 'ListeyêKarberan', 'KarberaListeke' ),
+ 'Listadmins' => array( 'ListeyaSerkaran' ),
+ 'Listbots' => array( 'ListeyaBotan' ),
+ 'Listfiles' => array( 'ListeyaDosyayan', 'DosyayaListeke', 'ListeyêResiman' ),
+ 'Listgrouprights' => array( 'ListeyaHeqandêGruban', 'HeqêGrubdeKarberan' ),
+ 'Listredirects' => array( 'ListeyaArêzekerdışan' ),
+ 'Listusers' => array( 'ListeyaKarberan', 'KarberaListeke' ),
'Lockdb' => array( 'DBKilitke' ),
'Log' => array( 'Qeyd', 'Qeydi' ),
- 'Lonelypages' => array( 'PeleyêBêkesi' ),
- 'Longpages' => array( 'PeleyeDergi' ),
- 'MergeHistory' => array( 'RavêrdaPêtewrke' ),
+ 'Lonelypages' => array( 'PeleyêBêwayıri' ),
+ 'Longpages' => array( 'PeleyêDergi' ),
+ 'MergeHistory' => array( 'VerênanPêtewrke' ),
'MIMEsearch' => array( 'NIMECıgeyrayış' ),
'Mostcategories' => array( 'TewrvêşiKategoriyıni' ),
'Mostimages' => array( 'DosyeyêkeCırêvêşiGreDeyayo' ),
+ 'Mostinterwikis' => array( 'TewrvêşiTeberwiki' ),
'Mostlinked' => array( 'PeleyêkeCırêvêşiGreDeyayo' ),
'Mostlinkedcategories' => array( 'KategoriyêkeCırêvêşiGreDeyayo' ),
'Mostlinkedtemplates' => array( 'ŞablonêkeCırêvêşiGreDeyayo' ),
'Mostrevisions' => array( 'TewrvêşiRevizyon' ),
- 'Movepage' => array( 'PelaAhulne' ),
- 'Mycontributions' => array( 'İştıraqeMe' ),
- 'Mypage' => array( 'PelaMe' ),
- 'Mytalk' => array( 'PersiyeMe' ),
+ 'Movepage' => array( 'PelerBerê' ),
+ 'Mycontributions' => array( 'İştıraqêMe' ),
+ 'Mypage' => array( 'PeleyêMe' ),
+ 'Mytalk' => array( 'WerênayışêMe' ),
'Myuploads' => array( 'BarkerdışeMe' ),
'Newimages' => array( 'DosyeyêNewey', 'ResimêNewey' ),
- 'Newpages' => array( 'PeleyeNewey' ),
+ 'Newpages' => array( 'PeleyêNewey' ),
'PasswordReset' => array( 'ParolaResetkerdış' ),
'PermanentLink' => array( 'GreyoDaimi' ),
'Popularpages' => array( 'PeleyêPopuleri' ),
'Revisiondelete' => array( 'RevizyoniBesterne' ),
'Search' => array( 'Cıgeyre' ),
'Shortpages' => array( 'PeleyêKılmi' ),
- 'Specialpages' => array( 'PeleyXısusi' ),
+ 'Specialpages' => array( 'PeleyêXısusi' ),
'Statistics' => array( 'İstatistiki' ),
'Tags' => array( 'Etiketi' ),
'Unblock' => array( 'BloqiWedarne' ),
'Uncategorizedpages' => array( 'PeleyêkeKategorinêbiyê' ),
'Uncategorizedtemplates' => array( 'ŞablonêkeKategorinêbiyê' ),
'Undelete' => array( 'Peyserbiya' ),
- 'Unlockdb' => array( 'DBSırmiake' ),
+ 'Unlockdb' => array( 'DBKılitiAke' ),
'Unusedcategories' => array( 'KategoriyêkeNêkaryayê' ),
'Unusedimages' => array( 'DosyeyêkeNêkaryayê' ),
'Unusedtemplates' => array( 'ŞablonêkeNêkaryayê' ),
'Unwatchedpages' => array( 'PeleyêkeNêweyneyênê' ),
- 'Upload' => array( 'Barke' ),
+ 'Upload' => array( 'Barkerdış' ),
'UploadStash' => array( 'BarkerdışêNımtey' ),
- 'Userlogin' => array( 'KarberDekewtış' ),
+ 'Userlogin' => array( 'KarberCıkewtış' ),
'Userlogout' => array( 'KarberVıcyayış' ),
'Userrights' => array( 'HeqêKarberan', 'SysopKerdış', 'BotKerdış' ),
'Version' => array( 'Versiyon' ),
'Wantedfiles' => array( 'DosyeyêkeWazênê' ),
'Wantedpages' => array( 'PeleyêkeWazênê' ),
'Wantedtemplates' => array( 'ŞablonêkeWazênê' ),
- 'Watchlist' => array( 'Listeyseyri' ),
+ 'Watchlist' => array( 'ListaSeyri' ),
'Whatlinkshere' => array( 'PelarêGre' ),
'Withoutinterwiki' => array( 'Bêİnterwiki' ),
);
'defaultsort_noreplace' => array( '0', 'cewabçıniyo', 'noreplace' ),
'pagesincategory_all' => array( '0', 'pêro', 'all' ),
'pagesincategory_pages' => array( '0', 'peley', 'pages' ),
+ 'pagesincategory_subcats' => array( '0', 'bınkati', 'subcats' ),
'pagesincategory_files' => array( '0', 'dosyey', 'files' ),
);
keyepel nıka zaf meşğulo yew dema herayi de newe ra tesel bıkerê.',
'license' => 'Lisans:',
-'license-header' => 'Lisans',
+'license-header' => 'Lisansdayış',
'nolicense' => 'Theba nêweçineya',
'license-nopreview' => '(verqeydî çin o)',
'upload_source_url' => '(yew URLê raştî, şar rê akerde yo)',
'logentry-newusers-create' => 'Hesabê karberi $1 vıraziya',
'logentry-newusers-create2' => 'Hesabê karberi $1 terefê $3 ra vıraziya',
'logentry-newusers-autocreate' => 'Hesabê $1 Otomatikmen vıraziya',
-'newuserlog-byemail' => 'pê e-mail ra paralo şiravt',
'logentry-rights-rights' => '$1 qandê $3 rê ezayina grube $4 ra $5 vuriye',
'logentry-rights-rights-legacy' => '$1 qandê $3 rê ezayina grube vuriye',
'logentry-rights-autopromote' => '$1 otomatikmen $4 ra terfi bi ra $5',
'logentry-newusers-create' => 'Wužywarske konto $1 jo se załožyło',
'logentry-newusers-create2' => '$1 jo załožył wužywarske konto $3',
'logentry-newusers-autocreate' => 'Konto $1 jo se awtomatiski załožyło',
-'newuserlog-byemail' => 'Pótajne słowo bu pśez e-mail pósłane.',
'logentry-rights-rights' => '$1 jo kupkowe cłonkojstwo za $3 z $4 do $5 změnił',
'logentry-rights-rights-legacy' => '$1 jo kupkowe cłonkojstwo za $3 změnił',
'logentry-rights-autopromote' => '$1 jo se awtomatiski wót $4 do $5 pówušył',
$rtl = true;
$namespaceNames = array(
+ NS_MEDIA => 'މީޑިއާ',
NS_SPECIAL => 'ހާއްޞަ',
+ NS_MAIN => '',
NS_TALK => 'ޚިޔާލު',
NS_USER => 'މެމްބަރު',
+ NS_USER_TALK => 'މެމްބަރުގެ_ވާހަކަ',
NS_FILE => 'ފައިލް',
NS_FILE_TALK => 'ފައިލް_ޚިޔާލު',
NS_MEDIAWIKI => 'މީޑިއާވިކީ',
NS_TALK => 'Συζήτηση',
NS_USER => 'Χρήστης',
NS_USER_TALK => 'Συζήτηση_χρήστη',
- NS_PROJECT_TALK => '$1_συζήτηση',
+ NS_PROJECT_TALK => 'Συζήτηση_$1',
NS_FILE => 'Αρχείο',
NS_FILE_TALK => 'Συζήτηση_αρχείου',
NS_MEDIAWIKI => 'MediaWiki',
);
$namespaceAliases = array(
- 'Μέσον' => NS_MEDIA,
- 'Εικόνα' => NS_FILE,
+ 'Μέσον' => NS_MEDIA,
+ '$1_συζήτηση' => NS_PROJECT_TALK,
+ 'Εικόνα' => NS_FILE,
'Συζήτηση_εικόνας' => NS_FILE_TALK,
);
'Block' => array( 'Φραγή', 'ΦραγήIP', 'ΦραγήΧρήστη' ),
'Blockme' => array( 'ΦραγήΕμένα' ),
'Booksources' => array( 'ΠηγέςΒιβλίων' ),
- 'BrokenRedirects' => array( 'Î\9bανθαÏ\83μένεςΑνακατευθύνσεις' ),
+ 'BrokenRedirects' => array( 'Î\9aαÏ\84εÏ\83Ï\84Ï\81αμμένεςΑνακατευθύνσεις' ),
'Categories' => array( 'Κατηγορίες' ),
'ChangePassword' => array( 'ΑλλαγήΚωδικού', 'ΑρχικοποίησηΠάσου', 'ΑρχικοποίησηΚωδικού' ),
'Confirmemail' => array( 'ΕπιβεβαίωσηEmail' ),
'pagenamee' => array( '1', 'ΟΝΟΜΑΣΕΛΙΔΑΣΚ', 'PAGENAMEE' ),
'namespace' => array( '1', 'ΠΕΡΙΟΧΗ', 'NAMESPACE' ),
'namespacee' => array( '1', 'ΠΕΡΙΟΧΗΚ', 'NAMESPACEE' ),
+ 'namespacenumber' => array( '1', 'ΑΡΙΘΜΟΣΟΝΟΜΑΤΟΣΧΩΡΟΥ', 'NAMESPACENUMBER' ),
'talkspace' => array( '1', 'ΠΕΡΙΟΧΗΣΥΖΗΤΗΣΕΩΝ', 'TALKSPACE' ),
'talkspacee' => array( '1', 'ΠΕΡΙΟΧΗΣΥΖΗΤΗΣΕΩΝΚ', 'TALKSPACEE' ),
'subjectspace' => array( '1', 'ΠΕΡΙΟΧΗΘΕΜΑΤΩΝ', 'SUBJECTSPACE', 'ARTICLESPACE' ),
'gotaccount' => "Έχετε ήδη έναν λογαριασμό; '''$1'''.",
'gotaccountlink' => 'Είσοδος',
'userlogin-resetlink' => 'Ξεχάσατε τα στοιχεία σύνδεσής σας;',
-'createaccountmail' => 'Î\9cε ηλεκÏ\84Ï\81ονικÏ\8c Ï\84αÏ\87Ï\85δÏ\81ομείο',
+'createaccountmail' => 'ΧÏ\81ήÏ\83η Ï\84Ï\85Ï\87αίοÏ\85 Ï\80Ï\81οÏ\83Ï\89Ï\81ινοÏ\8d κÏ\89δικοÏ\8d Ï\80Ï\81Ï\8cÏ\83βαÏ\83ηÏ\82 και αÏ\80οÏ\83Ï\84ολή Ï\84οÏ\85 Ï\83Ï\84η διεÏ\8dθÏ\85νÏ\83η ηλεκÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 Ï\80οÏ\85 καθοÏ\81ίζεÏ\84αι Ï\80αÏ\81ακάÏ\84Ï\89',
'createaccountreason' => 'Αιτία:',
'badretype' => 'Οι κωδικοί που έχετε δηλώσει δεν συμφωνούν μεταξύ τους.',
'userexists' => 'Το όνομα χρήστη που εισαγάγατε βρίσκεται ήδη σε χρήση.
'''ΠΑΡΑΚΑΛΟΥΜΕ ΝΑ ΜΗΝ ΤΟΠΟΘΕΤΕΙΤΕ ΠΝΕΥΜΑΤΙΚΑ ΚΑΤΟΧΥΡΩΜΕΝΟ ΕΡΓΟ ΧΩΡΙΣ ΑΔΕΙΑ!'''",
'longpageerror' => "'''Σφάλμα: Το κείμενο που καταχωρήσατε έχει μήκος {{PLURAL:$1|ένα kilobyte|$1 kilobytes}}, το οποίο είναι μεγαλύτερο από το μέγιστο {{PLURAL:$2|του ενός kilobyte|των $2 kilobytes}}.'''
Δεν μπορεί να αποθηκευτεί.",
-'readonlywarning' => "'''ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η βάση δεδομένων έχει κλειδωθεί για συντήρηση, έτσι δεν θα μπορέσετε να αποθηκεύσετε αυτά που έχετε επεξεργαστεί. Μπορείτε αν θέλετε να αποθηκεύσετε το κείμενο σε αρχείο κειμένου (με αποκοπή-και-επικόλληση) για να το χρησιμοποιήσετε αργότερα.'''
+'readonlywarning' => "'''Προειδοποίηση: Η βάση δεδομένων έχει κλειδωθεί για συντήρηση, έτσι δεν θα μπορέσετε να αποθηκεύσετε τις επεξεργασίες σας αυτή τη στιγμή.'''
+Μπορείτε αν θέλετε να μεταφέρετε με αντιγραφή-επικόλληση το κείμενό σας σε αρχείο κειμένου και να το αποθηκεύσετε για αργότερα.
Ο διαχειριστής που την κλείδωσε έδωσε την εξής εξήγηση: $1",
'protectedpagewarning' => "'''Προειδοποίηση: Αυτή η σελίδα έχει κλειδωθεί ώστε μόνο χρήστες με δικαιώματα διαχειριστή μπορούν να την επεξεργαστούν.'''
# Special:ActiveUsers
'activeusers' => 'Κατάλογος ενεργών χρηστών',
'activeusers-intro' => 'Αυτή είναι μια λίστα από χρήστες που είχαν κάποιου είδους δραστηριότητα {{PLURAL:$1|την τελευταία $1 μέρα|τις τελευταίες $1 μέρες}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|επεξεργασία|επεξεργασίες}} {{PLURAL:$3|την τελευταία ημέρα|τις τελευταίες $3 ημέρες}}',
+'activeusers-count' => '$1 {{PLURAL:$1|ενέργεια|ενέργειες}} τις τελευταίες {{PLURAL:$3|μέρα|$3 μέρες}}',
'activeusers-from' => 'Προβολή χρηστών ξεκινώντας από:',
'activeusers-hidebots' => 'Απόκρυψη bots',
'activeusers-hidesysops' => 'Απόκρυψη διαχειριστών',
Εδώ είναι οι τρέχουσες ρυθμίσεις για τη σελίδα '''$1''':",
'protect-cascadeon' => 'Αυτή η σελίδα είναι προς το παρόν προστατευμένη επειδή περιλαμβάνεται {{PLURAL:$1|στην ακόλουθη σελίδα, η οποία έχει|στις ακόλουθες σελίδες, οι οποίες έχουν}} τη διαδοχική προστασία ενεργοποιημένη. Μπορείτε να αλλάξετε το επίπεδο προστασίας αυτής της σελίδας, αλλά δεν θα επηρεάσει τη διαδοχική προστασία.',
'protect-default' => 'Να επιτρέπονται όλοι οι χρήστες',
-'protect-fallback' => 'Î\91ίÏ\84ηÏ\83η δικαιÏ\89μάÏ\84Ï\89ν "$1"',
-'protect-level-autoconfirmed' => 'ΦÏ\81αγή νÎÏ\89ν καθÏ\8eÏ\82 και μη εγγεγÏ\81αμμÎνÏ\89ν Ï\87Ï\81ηÏ\83Ï\84Ï\8eν',
-'protect-level-sysop' => 'Î\9cÏ\8cνο διαχειριστές',
+'protect-fallback' => 'Î\9dα εÏ\80ιÏ\84Ï\81ÎÏ\80εÏ\84αι μÏ\8cνο Ï\83ε Ï\87Ï\81ήÏ\83Ï\84εÏ\82 με δικαιÏ\8eμαÏ\84α «$1»',
+'protect-level-autoconfirmed' => 'Î\9dα εÏ\80ιÏ\84Ï\81ÎÏ\80ονÏ\84αι μÏ\8cνο αÏ\85Ï\84οεÏ\80ιβεβαιÏ\89μÎνοι Ï\87Ï\81ήÏ\83Ï\84εÏ\82',
+'protect-level-sysop' => 'Î\9dα εÏ\80ιÏ\84Ï\81ÎÏ\80εÏ\84αι μÏ\8cνο Ï\83Ï\84οÏ\85Ï\82 διαχειριστές',
'protect-summary-cascade' => 'διαδοχική',
'protect-expiring' => 'λήγει στις $1 (UTC)',
'protect-expiring-local' => 'λήγει στις $1',
# Move page
'move-page' => 'Μετακίνηση $1',
'move-page-legend' => 'Μετακίνηση σελίδας',
-'movepagetext' => "ΧÏ\81ηÏ\83ιμοÏ\80οιÏ\8eνÏ\84αÏ\82 Ï\84η Ï\86Ï\8cÏ\81μα Ï\80οÏ\85 ακολοÏ\85θεί μÏ\80οÏ\81είÏ\84ε να μεÏ\84ονομάÏ\83εÏ\84ε Ï\83ελίδεÏ\82 και να μεÏ\84αÏ\86ÎÏ\81εÏ\84ε Ï\8cλο Ï\84ο ιÏ\83Ï\84οÏ\81ικÏ\8c Ï\84οÏ\85ς στο νέο όνομα.
-Ο παλιός τίτλος της σελίδας θα γίνει μια σελίδα ανακατεύθυνσης στο νέο τίτλο.
-Μπορείτε να ενημερώσετε τις ανακατευθύνσεις που οδηγούν στον αρχικό τίτλο αυτόματα.
-Î\91ν εÏ\80ιλÎξεÏ\84ε να μην γίνει, θα Ï\80Ï\81ÎÏ\80ει να ελÎγξεÏ\84ε Ï\84ιÏ\82 [[Special:DoubleRedirects|διÏ\80λÎÏ\82]] και Ï\84ιÏ\82 [[Special:BrokenRedirects|κατεστραμμένες ανακατευθύνσεις]].
-Είστε υπεύθυνος να επιβεβαιώσετε ότι οι σύνδεσμοι εξακολουθούν να οδηγούν προς τις κατευθύνσεις που πρέπει.
+'movepagetext' => "ΧÏ\81ηÏ\83ιμοÏ\80οιÏ\8eνÏ\84αÏ\82 Ï\84η Ï\86Ï\8cÏ\81μα Ï\80οÏ\85 ακολοÏ\85θεί θα γίνει μεÏ\84ονομαÏ\83ία Ï\83ελίδαÏ\82, μεÏ\84αÏ\86ÎÏ\81ονÏ\84αÏ\82 Ï\8cλο Ï\84ο ιÏ\83Ï\84οÏ\81ικÏ\8c Ï\84ης στο νέο όνομα.
+Ο παλιός τίτλος της σελίδας θα γίνει σελίδα ανακατεύθυνσης προς τον νέο τίτλο.
+Μπορείτε να ενημερώσετε αυτόματα τις ανακατευθύνσεις που οδηγούν στον αρχικό τίτλο.
+Î\91ν εÏ\80ιλÎξεÏ\84ε να μην ενημεÏ\81Ï\89θοÏ\8dν αÏ\85Ï\84Ï\8cμαÏ\84α, μην ξεÏ\87άÏ\83εÏ\84ε να ελÎγξεÏ\84ε για [[Special:DoubleRedirects|διÏ\80λÎÏ\82]] ή [[Special:BrokenRedirects|κατεστραμμένες ανακατευθύνσεις]].
+Είναι δική σας ευθύνη να επιβεβαιώσετε ότι οι σύνδεσμοι εξακολουθούν να δείχνουν προς τη σωστή κατεύθυνση.
-Î\9bάβεÏ\84ε Ï\85Ï\80Ï\8cÏ\88η Ï\83αÏ\82 Ï\8cÏ\84ι η Ï\83ελίδα '''δεν''' θα μεÏ\84ακινηθεί αν Ï\85Ï\80άÏ\81Ï\87ει ήδη μια άλλη Ï\83ελίδα κάÏ\84Ï\89 αÏ\80Ï\8c Ï\84ο νÎο Ï\84ίÏ\84λο, εκÏ\84Ï\8cÏ\82 αν η Ï\83ελίδα αÏ\85Ï\84ή είναι κενή ή είναι ανακαÏ\84εÏ\8dθÏ\85νÏ\83η Ï\87Ï\89Ï\81ίÏ\82 ιστορικό επεξεργασίας.
-Αυτό σημαίνει ότι, στην περίπτωση που έχετε κάνει λάθος, μπορείτε να μετονομάσετε μια σελίδα ξαναδίνοντας της την αρχική της ονομασία αλλά δεν μπορείτε να αντικαταστήσετε μια υπάρχουσα σελίδα.
+Î\9bάβεÏ\84ε Ï\85Ï\80Ï\8cÏ\88ιν Ï\83αÏ\82 Ï\8cÏ\84ι η Ï\83ελίδα '''δεν''' θα μεÏ\84ακινηθεί αν Ï\85Ï\80άÏ\81Ï\87ει ήδη μια άλλη Ï\83ελίδα Ï\85Ï\80Ï\8c Ï\84ο νÎο Ï\84ίÏ\84λο, εκÏ\84Ï\8cÏ\82 αν η Ï\83ελίδα αÏ\85Ï\84ή είναι κενή ή ανακαÏ\84εÏ\8dθÏ\85νÏ\83η και δεν ÎÏ\87ει ιστορικό επεξεργασίας.
+Αυτό σημαίνει ότι σε περίπτωση λάθους μπορείτε να μετονομάσετε ξανά μια σελίδα δίνοντας της την αρχική της ονομασία αλλά δεν μπορείτε να αντικαταστήσετε μια υπάρχουσα σελίδα.
'''ΠΡΟΣΟΧΗ!'''
-Î\97 μεÏ\84ονομαÏ\83ία Ï\83ελίδαÏ\82 είναι μια αιÏ\86νίδια και δÏ\81αÏ\83Ï\84ική αλλαγή όταν πρόκειται για δημοφιλείς σελίδες.
-Παρακαλούμε, πριν το αποφασίσετε, να εξετάσετε προσεκτικά τις πιθανές επιπτώσεις αυτής της ενέργειας.",
+Î\91Ï\85Ï\84ή η αλλαγή μÏ\80οÏ\81εί να αÏ\80οβεί δÏ\81αÏ\83Ï\84ική και αναÏ\80άνÏ\84εÏ\87η όταν πρόκειται για δημοφιλείς σελίδες.
+Παρακαλούμε βεβαιωθείτε ότι αντιλαμβάνεστε τις επιπτώσεις αυτής της ενέργειας πριν προχωρήσετε.",
'movepagetext-noredirectfixer' => "Χρησιμοποιώντας τη φόρμα που ακολουθεί μπορείτε να μετονομάσετε σελίδες και να μεταφέρετε όλο το ιστορικό τους στο νέο όνομα.
Ο παλιός τίτλος της σελίδας θα γίνει μια σελίδα ανακατεύθυνσης στο νέο τίτλο.
Μπορείτε να ενημερώσετε τις ανακατευθύνσεις που οδηγούν στον αρχικό τίτλο αυτόματα.
'specialpages-group-highuse' => 'Πολυσύχναστες σελίδες',
'specialpages-group-pages' => 'Κατάλογοι σελίδων',
'specialpages-group-pagetools' => 'Εργαλεία σελίδων',
-'specialpages-group-wiki' => 'Î\92ικι δεδομένα και εργαλεία',
+'specialpages-group-wiki' => 'Î\94εδομένα και εργαλεία',
'specialpages-group-redirects' => 'Ανακατεύθυνση ειδικών σελίδων',
'specialpages-group-spam' => 'Εργαλεία κατά των ανεπιθύμητων διαφημιστικών',
'logentry-delete-restore' => 'Ο/η $1 αποκατέστησε τη σελίδα $3',
'logentry-delete-event' => '{{GENDER:$1|Ο|Η}} $1 άλλαξε την ορατότητα σε {{PLURAL:$5|ένα γεγονός καταγραφής|$5 log events}} στο $3: $4',
'logentry-delete-revision' => '{{GENDER:$1|Ο|Η}} $1 άλλαξε την ορατότητα {{PLURAL:$5|μιας έκδοσης|$5 εκδόσεων}} στη σελίδα $3: $4',
-'logentry-delete-event-legacy' => '{{GENDER:$2|Ο|Η}} $1 άλλαξε την ορατότητα της καταγραφής συμβάντων στη σελίδα $3',
+'logentry-delete-event-legacy' => '{{GENDER:$2|Ο|Η}} $1 άλλαξε την ορατότητα των καταγραφόμενων συμβάντων στη σελίδα $3',
'logentry-delete-revision-legacy' => '{{GENDER:$1|Ο|Η}} $1 άλλαξε την ορατότητα των αναθεωρήσεων στη σελίδα $3',
'logentry-suppress-delete' => '{{GENDER:$1|Ο|Η}} $1 διέγραψε τη σελίδα $3',
+'logentry-suppress-event' => '{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα {{PLURAL:$5|ενός καταγραφόμενου συμβάντος|$5 καταγραφόμενων συμβάντων}} στη σελίδα $3: $4',
+'logentry-suppress-revision' => '{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα {{PLURAL:$5|μίας αναθεώρησης|$5 αναθεωρήσεων}} στη σελίδα $3: $4',
+'logentry-suppress-event-legacy' => '{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα των καταγραφόμενων συμβάντων στη σελίδα $3',
'logentry-suppress-revision-legacy' => '$1 κρυφά άλλαξαν την ορατότητα των αναθεωρήσεων στη σελίδα $3',
'revdelete-content-hid' => 'το περιεχόμενο αποκρύφθηκε',
'revdelete-summary-hid' => 'Η σύνοψη επεξεργασίας αποκρύφθηκε',
'logentry-newusers-create' => 'Ο λογαριασμός χρήστη $1 δημιουργήθηκε',
'logentry-newusers-create2' => 'Ο λογαριασμός χρήστη $3 δημιουργήθηκε από {{GENDER:$1|τον|την}} $1',
'logentry-newusers-autocreate' => 'Ο λογαριασμός $1 δημιουργήθηκε αυτόματα',
-'newuserlog-byemail' => 'ο κωδικός έχει σταλεί μέσω ηλεκτρονικού μηνύματος',
'logentry-rights-rights-legacy' => '{{GENDER:$1|Ο|Η}} $1 άλλαξε την ιδιότητα μέλους ομάδας {{GENDER:$1|του|της}} $3',
'logentry-rights-autopromote' => '$1 προωθήθηκε αυτόματα από το $4 στο $5',
'rightsnone' => '(κανένα)',
'gotaccount' => 'Already have an account? $1.',
'gotaccountlink' => 'Log in',
'userlogin-resetlink' => 'Forgotten your login details?',
-'createaccountmail' => 'By e-mail',
+'createaccountmail' => 'Use a temporary random password and send it to the e-mail address specified below',
'createaccountreason' => 'Reason:',
'badretype' => 'The passwords you entered do not match.',
'userexists' => 'Username entered already in use.
'longpageerror' => "'''Error: The text you have submitted is {{PLURAL:$1|one kilobyte|$1 kilobytes}} long, which is longer than the maximum of {{PLURAL:$2|one kilobyte|$2 kilobytes}}.'''
It cannot be saved.",
'readonlywarning' => "'''Warning: The database has been locked for maintenance, so you will not be able to save your edits right now.'''
-You may wish to cut-n-paste the text into a text file and save it for later.
+You may wish to copy and paste your text into a text file and save it for later.
The administrator who locked it offered this explanation: $1",
'protectedpagewarning' => "'''Warning: This page has been protected so that only users with administrator privileges can edit it.'''
'activeusers' => 'Active users list',
'activeusers-summary' => '', # do not translate or duplicate this message to other languages
'activeusers-intro' => 'This is a list of users who had some kind of activity within the last $1 {{PLURAL:$1|day|days}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|edit|edits}} in the last {{PLURAL:$3|day|$3 days}}',
+'activeusers-count' => '$1 {{PLURAL:$1|action|actions}} in the last {{PLURAL:$3|day|$3 days}}',
'activeusers-from' => 'Display users starting at:',
'activeusers-hidebots' => 'Hide bots',
'activeusers-hidesysops' => 'Hide administrators',
'usermessage-template' => 'MediaWiki:UserMessage', # only translate this message to other languages if you have to change it
# Watchlist
-'watchlist' => 'My watchlist',
+'watchlist' => 'Watchlist',
'watchlist-summary' => '', # do not translate or duplicate this message to other languages
'mywatchlist' => 'Watchlist',
'watchlistfor2' => 'For $1 $2',
'enotif_mailer' => '{{SITENAME}} notification mailer',
'enotif_reset' => 'Mark all pages visited',
'enotif_impersonal_salutation' => '{{SITENAME}} user',
-'enotif_subject_deleted' => '{{SITENAME}} page $1 has been deleted by {{gender:$2|$2}}',
-'enotif_subject_created' => '{{SITENAME}} page $1 has been created by {{gender:$2|$2}}',
-'enotif_subject_moved' => '{{SITENAME}} page $1 has been moved by {{gender:$2|$2}}',
-'enotif_subject_restored' => '{{SITENAME}} page $1 has been restored by {{gender:$2|$2}}',
-'enotif_subject_changed' => '{{SITENAME}} page $1 has been changed by {{gender:$2|$2}}',
-'enotif_body_intro_deleted' => 'The {{SITENAME}} page $1 has been deleted on $PAGEEDITDATE by {{gender:$2|$2}}, see $3.',
-'enotif_body_intro_created' => 'The {{SITENAME}} page $1 has been created on $PAGEEDITDATE by {{gender:$2|$2}}, see $3 for the current revision.',
-'enotif_body_intro_moved' => 'The {{SITENAME}} page $1 has been moved on $PAGEEDITDATE by {{gender:$2|$2}}, see $3 for the current revision.',
-'enotif_body_intro_restored' => 'The {{SITENAME}} page $1 has been restored on $PAGEEDITDATE by {{gender:$2|$2}}, see $3 for the current revision.',
-'enotif_body_intro_changed' => 'The {{SITENAME}} page $1 has been changed on $PAGEEDITDATE by {{gender:$2|$2}}, see $3 for the current revision.',
+'enotif_subject_deleted' => '{{SITENAME}} page $1 has been {{GENDER:$2|deleted}} by $2',
+'enotif_subject_created' => '{{SITENAME}} page $1 has been {{GENDER:$2|created}} by $2',
+'enotif_subject_moved' => '{{SITENAME}} page $1 has been {{GENDER:$2|moved}} by $2',
+'enotif_subject_restored' => '{{SITENAME}} page $1 has been {{GENDER:$2|restored}} by $2',
+'enotif_subject_changed' => '{{SITENAME}} page $1 has been {{GENDER:$2|changed}} by $2',
+'enotif_body_intro_deleted' => 'The {{SITENAME}} page $1 has been {{GENDER:$2|deleted}} on $PAGEEDITDATE by $2, see $3.',
+'enotif_body_intro_created' => 'The {{SITENAME}} page $1 has been {{GENDER:$2|created}} on $PAGEEDITDATE by $2, see $3 for the current revision.',
+'enotif_body_intro_moved' => 'The {{SITENAME}} page $1 has been {{GENDER:$2|moved}} on $PAGEEDITDATE by $2, see $3 for the current revision.',
+'enotif_body_intro_restored' => 'The {{SITENAME}} page $1 has been {{GENDER:$2|restored}} on $PAGEEDITDATE by $2, see $3 for the current revision.',
+'enotif_body_intro_changed' => 'The {{SITENAME}} page $1 has been {{GENDER:$2|changed}} on $PAGEEDITDATE by $2, see $3 for the current revision.',
'enotif_lastvisited' => 'See $1 for all changes since your last visit.',
'enotif_lastdiff' => 'See $1 to view this change.',
'enotif_anon_editor' => 'anonymous user $1',
'specialpages-group-highuse' => 'High use pages',
'specialpages-group-pages' => 'Lists of pages',
'specialpages-group-pagetools' => 'Page tools',
-'specialpages-group-wiki' => 'Wiki data and tools',
+'specialpages-group-wiki' => 'Data and tools',
'specialpages-group-redirects' => 'Redirecting special pages',
'specialpages-group-spam' => 'Spam tools',
'logentry-newusers-newusers' => 'User account $1 was created',
'logentry-newusers-create' => 'User account $1 was created',
'logentry-newusers-create2' => 'User account $3 was created by $1',
+'logentry-newusers-byemail' => 'User account $3 was created by $1 and password was sent by e-mail',
'logentry-newusers-autocreate' => 'User account $1 was created automatically',
-'newuserlog-byemail' => 'password sent by e-mail',
'logentry-rights-rights' => '$1 changed group membership for $3 from $4 to $5',
'logentry-rights-rights-legacy' => '$1 changed group membership for $3',
'logentry-rights-autopromote' => '$1 was automatically promoted from $4 to $5',
'api-error-ok-but-empty' => 'Internal error: No response from server.',
'api-error-overwrite' => 'Overwriting an existing file is not allowed.',
'api-error-stashfailed' => 'Internal error: Server failed to store temporary file.',
+'api-error-publishfailed' => 'Internal error: Server failed to publish temporary file.',
'api-error-timeout' => 'The server did not respond within the expected time.',
'api-error-unclassified' => 'An unknown error occurred.',
'api-error-unknown-code' => 'Unknown error: "$1".',
'logentry-newusers-create' => '$1 kreis konton',
'logentry-newusers-create2' => '$1 kreis uzanton $3',
'logentry-newusers-autocreate' => 'Konto $1 estis kreita aŭtomate',
-'newuserlog-byemail' => 'pasvorto sendita retpoŝte',
'logentry-rights-rights' => '$1 ŝanĝis grupan membrecon por $3 de $4 al $5',
'logentry-rights-rights-legacy' => '$1 ŝanĝis grupan membrecon por $3',
'logentry-rights-autopromote' => '$1 estis aŭtomate altrangigita de $4 al $5',
'newwindow' => '(se abre en una ventana nueva)',
'cancel' => 'Cancelar',
'moredotdotdot' => 'Más...',
+'morenotlisted' => 'Más no en la lista...',
'mypage' => 'Mi página',
'mytalk' => 'Discusión',
'anontalk' => 'Discusión para esta IP',
# E-mail sending
'php-mail-error-unknown' => 'Error desconocido en la función mail() de PHP.',
'user-mail-no-addy' => 'Se ha intentado enviar correo electrónico sin una dirección de correo electrónico.',
+'user-mail-no-body' => 'Trató de enviar un correo electrónico con un cuerpo vacío o excesivamente corto.',
# Change password dialog
'resetpass' => 'Cambiar la contraseña',
'''¡No uses escritos con copyright sin permiso!'''",
'longpageerror' => "'''Error: El texto que has enviado ocupa {{PLURAL:$1|un kilobyte|$1 kilobytes}}, que excede el máximo de {{PLURAL:$2|un kilobyte|$2 kilobytes}}.'''
No se lo puede guardar.",
-'readonlywarning' => "'''Aviso: La base de datos ha sido bloqueada por cuestiones de mantenimiento, así que no podrás guardar tus modificaciones en este momento.
-Puedes copiar y pegar el texto en un archivo y guardarlo para más tarde.'''
+'readonlywarning' => "'''Advertencia: La base de datos ha sido bloqueada para mantenimiento, así que no podrás guardar tus ediciones en este momento.'''
+Quizás quieras copiar y pegar tu texto en un archivo de texto y guardarlo para después.
-El administrador que la bloqueó dio esta explicación: $1",
+El administrador que lo bloqueó ofreció esta explicación: $1",
'protectedpagewarning' => "'''Aviso: Esta página ha sido protegida de manera que solo usuarios con permisos de administrador puedan editarla.'''
A continuación se muestra la última entrada de registro para referencia:",
'semiprotectedpagewarning' => "'''Nota:''' Esta página ha sido protegida para que solo usuarios registrados puedan editarla.
'prot_1movedto2' => 'heredando la protección al trasladar [[$1]] a [[$2]]',
'protect-badnamespace-title' => 'Espacio de nombres no protegible',
'protect-badnamespace-text' => 'Las páginas de este espacio de nombres no pueden ser protegidas',
+'protect-norestrictiontypes-text' => 'Esta página no se puede proteger ya que no hay ningún tipo de restricción disponible.',
+'protect-norestrictiontypes-title' => 'Página no protegible',
'protect-legend' => 'Confirmar protección',
'protectcomment' => 'Motivo:',
'protectexpiry' => 'Caducidad:',
'protect-cascadeon' => 'Actualmente esta página está protegida porque está incluida en {{PLURAL:$1|la siguiente página|las siguientes páginas}}, que tienen activada la opción de protección en cascada. Puedes cambiar el nivel de protección de esta página, pero no afectará a la protección en cascada.',
'protect-default' => 'Permitir todos los usuarios',
'protect-fallback' => 'Necesita el permiso «$1»',
-'protect-level-autoconfirmed' => 'Bloquear usuarios nuevos y no registrados',
-'protect-level-sysop' => 'Solo administradores',
+'protect-level-autoconfirmed' => 'Permitir solo usuarios autoconfirmados',
+'protect-level-sysop' => 'Permitir solo administradores',
'protect-summary-cascade' => 'en cascada',
'protect-expiring' => 'caduca el $1 (UTC)',
'protect-expiring-local' => 'caduca el $1',
'pageinfo-magic-words' => '{{PLURAL:$1|Palabra mágica|Palabras mágicas}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría oculta|Categorías ocultas}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Plantilla incluida|Plantillas incluidas}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Página incluida|Páginas incluidas}} ($1)',
'pageinfo-toolboxlink' => 'Información de la página',
'pageinfo-redirectsto' => 'Redirige a',
'pageinfo-redirectsto-info' => 'Información',
'minutes' => '{{PLURAL:$1|un minuto|$1 minutos}}',
'hours' => '{{PLURAL:$1|una hora|$1 horas}}',
'days' => '{{PLURAL:$1|un día|$1 días}}',
+'months' => '{{PLURAL:$1|$1 mes|$1 meses}}',
+'years' => '{{PLURAL:$1|$1 año|$1 años}}',
'ago' => 'hace $1',
'just-now' => 'Ahora mismo',
'logentry-newusers-create' => 'Se ha creado la cuenta de usuario $1',
'logentry-newusers-create2' => '$1 ha creado la cuenta de usuario $3',
'logentry-newusers-autocreate' => 'La cuenta $1 fue creada automáticamente',
-'newuserlog-byemail' => 'contraseña enviada por correo electrónico',
'logentry-rights-rights' => '$1 modificó los grupos a los que pertenece $3: de $4 a $5',
'logentry-rights-rights-legacy' => '$1 ha cambiado la pertenencia a grupos de $3',
'logentry-rights-autopromote' => '$1 fue promocionado automáticamente de $4 a $5',
'api-error-ok-but-empty' => 'Error interno: No hay respuesta del servidor.',
'api-error-overwrite' => 'No se permite sobrescribir un archivo existente.',
'api-error-stashfailed' => 'Error interno: El servidor no pudo almacenar el archivo temporal.',
+'api-error-publishfailed' => 'Error interno: el servidor no pudo publicar el archivo temporal.',
'api-error-timeout' => 'El servidor no respondió en el plazo previsto.',
'api-error-unclassified' => 'Ocurrió un error desconocido.',
'api-error-unknown-code' => 'Error desconocido: «$1»',
'logentry-newusers-create' => 'Loodud kasutajakonto $1',
'logentry-newusers-create2' => '$1 lõi kasutajakonto $3',
'logentry-newusers-autocreate' => 'Konto $1 loodi automaatselt',
-'newuserlog-byemail' => 'parool saadetud e-postiga',
'rightsnone' => '(puudub)',
# Feedback
'logentry-newusers-newusers' => '$1 wikilariak erabiltzaile kontu bat sortu du',
'logentry-newusers-create' => '$1 wikilariak erabiltzaile kontu bat sortu du',
'logentry-newusers-create2' => '$1 wikilariak $3 erabiltzaile kontu bat sortu du',
-'newuserlog-byemail' => 'pasahitza e-postaz bidali da',
'rightsnone' => '(bat ere ez)',
# Feedback
# New logging system
'revdelete-restricted' => 'las restricionis a los çahorilis án siu apricás',
'revdelete-unrestricted' => 'las restricionis a los çahorilis án siu esborrás',
-'newuserlog-byemail' => 'consínia enviá pol e-mail',
'rightsnone' => '(dengunu)',
);
'logentry-newusers-create' => 'حساب کاربری $1 ایجاد شد',
'logentry-newusers-create2' => 'حساب کاربری $3 توسط $1 ایجاد شد',
'logentry-newusers-autocreate' => 'حساب $1 به شکل خودکار ساخته شد',
-'newuserlog-byemail' => 'گذرواژه بوسیله رایانامه ارسال شد',
'logentry-rights-rights' => '$1 عضویت $3 را از گروه $4 به $5 تغییر داد',
'logentry-rights-rights-legacy' => '$1 گروه عضویت $3 را تغییر داد',
'logentry-rights-autopromote' => '$1 به طور خودکار از $4 به $5 ارتقا یافت',
'MIMEsearch' => array( 'MIME-haku' ),
'Mostcategories' => array( 'Luokitelluimmat_sivut' ),
'Mostimages' => array( 'Viitatuimmat_tiedostot' ),
+ 'Mostinterwikis' => array( 'Eniten_kielilinkkejä' ),
'Mostlinked' => array( 'Viitatuimmat_sivut' ),
'Mostlinkedcategories' => array( 'Viitatuimmat_luokat' ),
'Mostlinkedtemplates' => array( 'Viitatuimmat_mallineet' ),
'gotaccount' => "Jos sinulla on jo tunnus, voit '''$1'''.",
'gotaccountlink' => 'kirjautua sisään',
'userlogin-resetlink' => 'Unohditko salasanasi?',
-'createaccountmail' => 'sähköpostitse',
+'createaccountmail' => 'Käytä satunnaista väliaikaissalasanaa ja lähetä se alla määritettyyn sähköpostiosoitteeseen',
'createaccountreason' => 'Syy',
'badretype' => 'Syöttämäsi salasanat ovat erilaiset.',
'userexists' => 'Pyytämäsi käyttäjänimi on jo käytössä. Valitse toinen käyttäjänimi.',
# Special:ActiveUsers
'activeusers' => 'Aktiivisten käyttäjien lista',
'activeusers-intro' => 'Tämä on luettelo käyttäjistä, jotka ovat tehneet jotain viimeisen $1 {{PLURAL:$1|päivän}} sisällä.',
-'activeusers-count' => '$1 {{PLURAL:$1|muokkaus|muokkausta}} viimeisen {{PLURAL:$3|päivän|$3 päivän}} aikana',
+'activeusers-count' => '$1 {{PLURAL:$1|toiminto|toimintoa}} viimeisen {{PLURAL:$3|päivän|$3 päivän}} aikana',
'activeusers-from' => 'Näytä käyttäjät alkaen',
'activeusers-hidebots' => 'Piilota botit',
'activeusers-hidesysops' => 'Piilota ylläpitäjät',
'prot_1movedto2' => 'siirsi sivun [[$1]] uudelle nimelle [[$2]]',
'protect-badnamespace-title' => 'Nimiavaruus ei suojattavissa',
'protect-badnamespace-text' => 'Tämän nimiavaruuden sivuja ei voi suojata.',
+'protect-norestrictiontypes-text' => 'Tätä sivua ei voi suojata, koska mitään rajoitusvaihtoehtoja ei ole käytettävissä.',
+'protect-norestrictiontypes-title' => 'Ei suojattavissa oleva sivu',
'protect-legend' => 'Suojaukset',
'protectcomment' => 'Syy',
'protectexpiry' => 'Vanhentuu',
'protect-locked-access' => "Sinulla ei ole tarvittavia oikeuksia sivujen suojauksen muuttamiseen. Alla on sivun ”'''$1'''” nykyiset suojaukset:",
'protect-cascadeon' => 'Tämä sivu on suojauksen kohteena, koska se on sisällytetty alla {{PLURAL:$1|olevaan laajennetusti suojattuun sivuun|oleviin laajennetusti suojattuihin sivuihin}}. Voit muuttaa tämän sivun suojaustasoa, mutta se ei vaikuta laajennettuun suojaukseen.',
'protect-default' => 'Salli kaikki käyttäjät',
-'protect-fallback' => 'Vaadi $1-oikeus',
+'protect-fallback' => 'Salli vain käyttäjät, joilla on oikeus $1',
'protect-level-autoconfirmed' => 'Estä uudet ja kirjautumattomat käyttäjät',
-'protect-level-sysop' => 'Vain ylläpitäjät',
+'protect-level-sysop' => 'Salli vain ylläpitäjät',
'protect-summary-cascade' => 'laajennettu',
'protect-expiring' => 'vanhentuu $1 (UTC)',
'protect-expiring-local' => 'vanhentuu $1',
Jos et halua tätä tehtävän automaattisesti, muista tehdä tarkistukset [[Special:DoubleRedirects|kaksinkertaisten]] tai [[Special:BrokenRedirects|rikkinäisten]] ohjausten varalta.
Olet vastuussa siitä, että linkit osoittavat sinne, mihin niiden on tarkoituskin osoittaa.
-Huomaa, että sivua '''ei''' siirretä mikäli uusi otsikko on olemassa olevan sivun käytössä, paitsi milloin kyseessä on tyhjä sivu tai ohjaus, jolla ei ole muokkaushistoriaa.
+Huomaa, että sivua '''ei''' siirretä mikäli uusi otsikko on olemassa olevan sivun käytössä, paitsi milloin kyseessä on ohjaus, jolla ei ole muokkaushistoriaa.
Tämä tarkoittaa sitä, että voit siirtää sivun takaisin vanhalle nimelleen mikäli teit virheen, mutta et voi kirjoittaa olemassa olevan sivun päälle.
Tämä saattaa olla suuri ja odottamaton muutos suositulle sivulle. Varmista, että tiedät seuraukset ennen kuin siirrät sivun.",
'pageinfo-magic-words' => '{{PLURAL:$1|Taikasana|Taikasanat}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Piilotettu luokka|Piilotetut luokat}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Sisällytetty malline|Sisällytetyt mallineet}} ($1)',
+'pageinfo-transclusions' => 'Sisällytetty {{PLURAL:$1|sivulle|sivuille}} ($1)',
'pageinfo-toolboxlink' => 'Sivun tiedot',
'pageinfo-redirectsto' => 'Ohjaus sivulle',
'pageinfo-redirectsto-info' => 'tiedot',
'pageinfo-contentpage' => 'Lasketaan sisältösivuksi',
'pageinfo-contentpage-yes' => 'Kyllä',
'pageinfo-protect-cascading-yes' => 'Kyllä',
+'pageinfo-category-info' => 'Luokkatiedot',
+'pageinfo-category-pages' => 'Sivujen määrä',
+'pageinfo-category-subcats' => 'Alaluokkien määrä',
+'pageinfo-category-files' => 'Tiedostojen määrä',
# Skin names
'skinname-standard' => 'Perus',
'minutes' => '{{PLURAL:$1|$1 minuutti|$1 minuuttia}}',
'hours' => '{{PLURAL:$1|$1 tunti|$1 tuntia}}',
'days' => '{{PLURAL:$1|$1 päivä|$1 päivää}}',
+'months' => '{{PLURAL:$1|$1 kuukausi|$1 kuukautta}}',
+'years' => '{{PLURAL:$1|$1 vuosi|$1 vuotta}}',
'ago' => '$1 sitten',
'just-now' => 'juuri nyt',
'specialpages-group-highuse' => 'Sivujen käyttöaste',
'specialpages-group-pages' => 'Sivulistaukset',
'specialpages-group-pagetools' => 'Sivutyökalut',
-'specialpages-group-wiki' => 'Wikitiedot ja työkalut',
+'specialpages-group-wiki' => 'Tiedot ja työkalut',
'specialpages-group-redirects' => 'Ohjaavat toimintosivut',
'specialpages-group-spam' => 'Mainostenpoistotyökalut',
'logentry-newusers-create' => 'Käyttäjätunnus $1 luotiin',
'logentry-newusers-create2' => '$1 loi käyttäjätunnuksen $3',
'logentry-newusers-autocreate' => 'Käyttäjätunnus $1 luotiin automaattisesti',
-'newuserlog-byemail' => 'salasana lähetetty sähköpostitse',
'logentry-rights-rights' => '$1 muutti käyttäjän $3 oikeudet ryhmistä $4 ryhmiin $5',
'logentry-rights-autopromote' => '$1 ylennettiin automaattisesti ryhmistä $4 ryhmiin $5',
'rightsnone' => '(ei oikeuksia)',
'api-error-nomodule' => 'Sisäinen virhe: tallennusmoduulia ei ole asetettu.',
'api-error-ok-but-empty' => 'Sisäinen virhe: palvelimelta ei saatu vastausta.',
'api-error-overwrite' => 'Olemassa olevan tiedoston korvaaminen ei ole sallittua.',
-'api-error-stashfailed' => 'Sisäinen virhe: välikaikaisen tiedoston tallentaminen epäonnistui.',
+'api-error-stashfailed' => 'Sisäinen virhe: Väliaikaisen tiedoston tallentaminen epäonnistui.',
+'api-error-publishfailed' => 'Sisäinen virhe: Väliaikaisen tiedoston julkaiseminen epäonnistui.',
'api-error-timeout' => 'Palvelin ei vastannut odotetun ajan kuluessa.',
'api-error-unclassified' => 'Tapahtui tuntematon virhe.',
'api-error-unknown-code' => 'Tuntematon virhe: $1',
'Booksources' => array( 'Ouvrages_de_référence', 'Ouvrages_de_reference', 'Ouvragesderéférence', 'Ouvragesdereference', 'Recherche_ISBN', 'Recherche_isbn', 'RechercheISBN', 'Rechercheisbn' ),
'BrokenRedirects' => array( 'Redirections_cassées', 'RedirectionCassées', 'Redirections_cassees', 'RedirectionsCassees' ),
'Categories' => array( 'Catégories' ),
+ 'ChangeEmail' => array( 'ChangerCouriel', 'Changer_courrielw' ),
'ChangePassword' => array( 'Changement_du_mot_de_passe', 'ChangementDuMotDePasse' ),
'Confirmemail' => array( 'Confirmer_l\'adresse_de_contact', 'Confirmer_le_courriel', 'ConfirmerLeCourriel' ),
'CreateAccount' => array( 'Créer_un_compte', 'CréerUnCompte', 'CréerCompte' ),
'DeletedContributions' => array( 'Contributions_supprimées', 'ContributionsSupprimées', 'ContributionSupprimees' ),
'Disambiguations' => array( 'Homonymies', 'Homonymie', 'Pages_d\'homonymie' ),
'DoubleRedirects' => array( 'Doubles_redirections', 'DoublesRedirections', 'Redirections_doubles', 'RedirectionsDoubles' ),
+ 'EditWatchlist' => array( 'Éditer_Liste_de_suivi', 'ÉditerListeDeSuivi' ),
'Emailuser' => array( 'Envoyer_un_courriel', 'EnvoyerUnCourriel', 'Courriel', 'Envoyer_un_e-mail', 'EnvoyerUnEMail', 'E-mail', 'EMail' ),
'Export' => array( 'Exporter', 'Exportation' ),
'Fewestrevisions' => array( 'Pages_les_moins_modifiées', 'PagesLesMoinsModifiées', 'Pages_les_moins_modifiees', 'PagesLesMoinsModifiees', 'Les_moins_modifiés', 'LesMoinsModifiés', 'Les_moins_modifies', 'LesMoinsModifies' ),
'pagenamee' => array( '1', 'NOMPAGEX', 'PAGENAMEE' ),
'namespace' => array( '1', 'ESPACENOMMAGE', 'NAMESPACE' ),
'namespacee' => array( '1', 'ESPACENOMMAGEX', 'NAMESPACEE' ),
+ 'namespacenumber' => array( '1', 'NOMBREESPACENOMMAGE', 'NAMESPACENUMBER' ),
'talkspace' => array( '1', 'ESPACEDISCUSSION', 'TALKSPACE' ),
'talkspacee' => array( '1', 'ESPACEDISCUSSIONX', 'TALKSPACEE' ),
'subjectspace' => array( '1', 'ESPACESUJET', 'ESPACEARTICLE', 'SUBJECTSPACE', 'ARTICLESPACE' ),
'protectionlevel' => array( '1', 'NIVEAUDEPROTECTION', 'PROTECTIONLEVEL' ),
'url_path' => array( '0', 'CHEMIN', 'PATH' ),
'url_query' => array( '0', 'QUESTION', 'QUERY' ),
+ 'pagesincategory_all' => array( '0', 'tous', 'all' ),
+ 'pagesincategory_files' => array( '0', 'fichier', 'files' ),
);
$bookstoreList = array(
'gotaccount' => "Vous avez déjà un compte ? '''$1'''.",
'gotaccountlink' => 'Connectez-vous',
'userlogin-resetlink' => 'Vous avez oublié vos détails de connexion ?',
-'createaccountmail' => 'par courriel',
+'createaccountmail' => 'Utiliser un mot de passe aléatoire temporaire et l’envoyer à l’adresse de courriel spécifiée ci-dessous',
'createaccountreason' => 'Motif :',
'badretype' => 'Les mots de passe que vous avez saisis ne correspondent pas.',
'userexists' => "Nom d'utilisateur entré déjà utilisé.
'longpageerror' => "'''Erreur: Le texte que vous avez soumis fait {{PLURAL:$1|un Kio|$1 Kio}}, ce qui dépasse la limite fixée à {{PLURAL:$2|un Kio|$2 Kio}}.'''
Il ne peut pas être sauvegardé.",
'readonlywarning' => "'''AVERTISSEMENT : la base de données a été verrouillée pour des opérations de maintenance. Vous ne pouvez donc pas publier vos modifications pour l'instant.'''
-Vous pouvez copier le texte dans un fichier texte et le conserver pour plus tard.
+Vous pouvez copier et coller votre texte dans un fichier texte et l’enregistrer pour plus tard.
-L'administrateur ayant verrouillé la base de données a donné l'explication suivante : $1",
+L'administrateur ayant verrouillé la base de données a donné l'explication suivante: $1",
'protectedpagewarning' => "'''AVERTISSEMENT : cette page est protégée. Seuls les utilisateurs ayant le statut d'administrateur peuvent la modifier.'''<br />
La dernière entrée du journal est affichée ci-dessous pour référence :",
'semiprotectedpagewarning' => "'''Note :''' Cette page a été protégée de telle façon que seuls les contributeurs enregistrés puissent la modifier. La dernière entrée du journal est affichée ci-dessous pour référence :",
# Special:ActiveUsers
'activeusers' => 'Liste des utilisateurs actifs',
'activeusers-intro' => 'Ceci est une liste des utilisateurs qui ont exercé une quelconque activité au cours {{PLURAL:$1|de la dernière journée|des $1 derniers jours}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|modification|modifications}} dans {{PLURAL:$3|le dernier jour|les $3 derniers jours}}',
+'activeusers-count' => '$1 {{PLURAL:$1|action|actions}} lors {{PLURAL:$3|du dernier jour|des $3 derniers jours}}',
'activeusers-from' => 'Afficher les utilisateurs depuis :',
'activeusers-hidebots' => 'Masquer les robots',
'activeusers-hidesysops' => 'Masquer les administrateurs',
'specialpages-group-highuse' => "Pages d'utilisation intensive",
'specialpages-group-pages' => 'Listes de pages',
'specialpages-group-pagetools' => 'Outils pour les pages',
-'specialpages-group-wiki' => 'Données du wiki et outils',
+'specialpages-group-wiki' => 'Données et outils',
'specialpages-group-redirects' => 'Pages spéciales redirigées',
'specialpages-group-spam' => 'Outils anti-pourriel',
'logentry-newusers-newusers' => 'Le compte utilisateur $1 a été créé',
'logentry-newusers-create' => 'Le compte utilisateur $1 a été créé',
'logentry-newusers-create2' => 'Le compte utilisateur $3 a été créé par $1',
+'logentry-newusers-byemail' => 'Le compte utilisateur $3 a été créé par $1 et le mot de passe a été envoyé par courriel',
'logentry-newusers-autocreate' => 'Le compte $1 a été créé automatiquement',
-'newuserlog-byemail' => 'mot de passe envoyé par courriel',
'logentry-rights-rights' => "$1 a modifié l'appartenance au groupe pour $3 de $4 à $5",
'logentry-rights-rights-legacy' => "$1 a modifié l'appartenance au groupe pour $3",
'logentry-rights-autopromote' => '$1 a été promu automatiquement de $4 à $5',
'api-error-ok-but-empty' => "Erreur interne : Le serveur n'a pas répondu.",
'api-error-overwrite' => "Écraser un fichier existant n'est pas autorisé.",
'api-error-stashfailed' => "Erreur interne : le serveur n'a pas pu enregistrer le fichier temporaire.",
+'api-error-publishfailed' => 'Erreur interne: Le serveur n’a pas pu publier le fichier temporaire.',
'api-error-timeout' => "Le serveur n'a pas répondu dans le délai imparti.",
'api-error-unclassified' => "Une erreur inconnue s'est produite",
'api-error-unknown-code' => 'Erreur inconnue : « $1 »',
'tog-hidepatrolled' => 'Cachiér los changements gouardâs dedens los dèrriérs changements',
'tog-newpageshidepatrolled' => 'Cachiér les pâges gouardâyes entre-mié la lista de les pâges novèles',
'tog-extendwatchlist' => 'Ètendre la lista de siuvu por montrar tôs los changements et pas ren que los ples novéls',
-'tog-usenewrc' => 'Rassemblar los changements per pâge dedens los dèrriérs changements et la lista de siuvu (at fôta de JavaScript)',
+'tog-usenewrc' => 'Rassemblar los changements per pâge dedens los dèrriérs changements et la lista de siuvu (il at fôta de JavaScript)',
'tog-numberheadings' => 'Numerotar ôtomaticament los titros de sèccion',
-'tog-showtoolbar' => 'Montrar la bârra d’outils de changement (at fôta de JavaScript)',
-'tog-editondblclick' => 'Changiér des pâges sur doblo-clic (at fôta de JavaScript)',
+'tog-showtoolbar' => 'Montrar la bârra d’outils de changement (il at fôta de JavaScript)',
+'tog-editondblclick' => 'Changiér des pâges sur doblo-clic (il at fôta de JavaScript)',
'tog-editsection' => 'Activar lo changement de sèccions avouéc los lims « [changiér] »',
-'tog-editsectiononrightclick' => 'Activar lo changement de sèccions per clic drêt sur lors titros (at fôta de JavaScript)',
+'tog-editsectiononrightclick' => 'Activar lo changement de sèccions per clic drêt sur lors titros (il at fôta de JavaScript)',
'tog-showtoc' => 'Montrar la trâbla de les matiéres (por les pâges qu’ont més de 3 sèccions)',
'tog-rememberpassword' => 'Sè rapelar de mon contresegno sur ceti navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
'tog-watchcreations' => 'Apondre les pâges que fé et pués los fichiérs que tèlècharjo a ma lista de siuvu',
'tog-previewontop' => 'Montrar l’apèrçu d’amont la zona de changement',
'tog-previewonfirst' => 'Montrar l’apèrçu pendent lo premiér changement',
'tog-nocache' => 'Dèsactivar lo cacho de les pâges per lo navigator',
-'tog-enotifwatchlistpages' => 'Mè mandar un mèssâjo quand na pâge ou ben un fichiér de ma lista de siuvu est changiê(e)',
+'tog-enotifwatchlistpages' => 'Mè mandar un mèssâjo quand na pâge un fichiér de ma lista de siuvu est changiê(e)',
'tog-enotifusertalkpages' => 'Mè mandar un mèssâjo quand ma pâge de discussion est changiêe',
'tog-enotifminoredits' => 'Mè mandar un mèssâjo mémo en câs de petiôts changements de les pâges et des fichiérs',
'tog-enotifrevealaddr' => 'Rèvèlar mon adrèce èlèctronica dedens los mèssâjos de notificacion',
'tog-shownumberswatching' => 'Montrar lo nombro d’utilisators que siuvont na pâge',
'tog-oldsig' => 'Signatura ègzistenta :',
'tog-fancysig' => 'Trètar la signatura coment de vouiquitèxto (sen lim ôtomatico)',
-'tog-externaleditor' => 'Empleyér per dèfôt un changior de tèxto de defôr (solament por los utilisators avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
-'tog-externaldiff' => 'Empleyér per dèfôt un comparator de defôr (solament por los utilisators avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
+'tog-externaleditor' => 'Empleyér per dèfôt un changior de tèxto de defôr (solament por los utilisators avanciês, il at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
+'tog-externaldiff' => 'Empleyér per dèfôt un comparator de defôr (solament por los utilisators avanciês, il at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
'tog-showjumplinks' => 'Activar los lims d’accèssibilitât « {{int:jumpto}} »',
-'tog-uselivepreview' => 'Empleyér l’apèrçu rapido (at fôta de JavaScript) (èxpèrimentâl)',
+'tog-uselivepreview' => 'Empleyér l’apèrçu rapido (il at fôta de JavaScript) (èxpèrimentâl)',
'tog-forceeditsummary' => 'M’avèrtir quand j’é pas buchiê de rèsumâ de changement',
'tog-watchlisthideown' => 'Cachiér los mins changements dedens la lista de siuvu',
'tog-watchlisthidebots' => 'Cachiér los changements fêts per des robots dedens la lista de siuvu',
'underline-always' => 'Tojorn',
'underline-never' => 'Jamés',
-'underline-default' => 'Valor de l’habelyâjo ou ben du navigator per dèfôt',
+'underline-default' => 'Valor de l’habelyâjo du navigator per dèfôt',
# Font style option in Special:Preferences
'editfont-style' => 'Stilo de police de la zona de changement :',
'category_header' => 'Pâges dedens la catègorie « $1 »',
'subcategories' => 'Sot-catègories',
'category-media-header' => 'Fichiérs mèdia dedens la catègorie « $1 »',
-'category-empty' => "''Ora ceta catègorie contint gins de pâge ou ben de fichiér mèdia.''",
+'category-empty' => "''Ora ceta catègorie contint gins de pâge de fichiér mèdia.''",
'hidden-categories' => '{{PLURAL:$1|Catègorie cachiêe|Catègories cachiêes}}',
'hidden-category-category' => 'Catègories cachiêes',
'category-subcat-count' => 'Cela catègorie-que at {{PLURAL:$2|ren que ceta sot-catègorie.|{{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}, sur na soma de $2.}}',
'create-this-page' => 'Fâre cela pâge',
'delete' => 'Suprimar',
'deletethispage' => 'Suprimar ceta pâge',
-'undelete_short' => 'Refâre {{PLURAL:$1|yon changement|$1 changements}}',
-'viewdeleted_short' => 'Vêre {{PLURAL:$1|yon changement suprimâ|$1 changements suprimâs}}',
+'undelete_short' => 'Refâre {{PLURAL:$1|un changement|$1 changements}}',
+'viewdeleted_short' => 'Vêre {{PLURAL:$1|un changement suprimâ|$1 changements suprimâs}}',
'protect' => 'Protègiér',
'protect_change' => 'changiér',
'protectthispage' => 'Protègiér ceta pâge',
'redirectedfrom' => '(Redirigiêe dês $1)',
'redirectpagesub' => 'Pâge de redirèccion',
'lastmodifiedat' => 'Dèrriér changement de ceta pâge lo $1 a $2.',
-'viewcount' => 'Ceta pâge est étâye vua {{PLURAL:$1|yon côp|$1 côps}}.',
+'viewcount' => 'Ceta pâge est étâye vua {{PLURAL:$1|un côp|$1 côps}}.',
'protectedpage' => 'Pâge protègiêe',
'jumpto' => 'Alar a :',
'jumptonavigation' => 'navigacion',
'hidetoc' => 'cachiér',
'collapsible-collapse' => 'repleyér',
'collapsible-expand' => 'dèpleyér',
-'thisisdeleted' => 'Voléd-vos vêre ou ben refâre $1 ?',
-'viewdeleted' => 'Vêre $1 ?',
-'restorelink' => '{{PLURAL:$1|yon changement suprimâ|$1 changements suprimâs}}',
+'thisisdeleted' => '’T-o que vos voléd vêre ou ben refâre $1 ?',
+'viewdeleted' => '’T-o que vos voléd vêre $1 ?',
+'restorelink' => '{{PLURAL:$1|un changement suprimâ|$1 changements suprimâs}}',
'feedlinks' => 'Flux :',
'feed-invalid' => 'Tipo d’abonement du flux pas justo.',
'feed-unavailable' => 'Los flux de sindicacion sont pas disponiblos',
L’administrator que l’at vèrrolyê at balyê cet’èxplicacion : $1',
'missing-article' => 'La bâsa de donâs at pas trovâ lo tèxto d’una pâge qu’el arêt diu trovar, apelâye « $1 » $2.
-En g·ènèral cen arreve en siuvent un lim d’una dif ou ben d’un historico dèpassâ(ye) de vers na pâge qu’est étâye suprimâye.
+En g·ènèral cen arreve en siuvent un lim d’una dif d’un historico dèpassâ(ye) de vers na pâge qu’est étâye suprimâye.
S’o est pas lo câs, pôt étre quèstion d’una cofierie dedens la programeria.
La volyéd signalar a un [[Special:ListUsers/sysop|administrator]] sen oubliar de lui endicar l’URL du lim.',
'filenotfound' => 'Empossiblo de trovar lo fichiér « $1 ».',
'fileexistserror' => 'Empossiblo d’ècrire lo fichiér « $1 » : lo fichiér ègziste.',
'unexpected' => 'Valor emprèvua : « $1 » = « $2 ».',
-'formerror' => 'Fôta : empossiblo de sometre lo formulèro.',
+'formerror' => 'Fôta : empossiblo de mandar lo formulèro.',
'badarticleerror' => 'Cel’accion pôt pas étre fêta sur ceta pâge.',
-'cannotdelete' => 'Empossiblo de suprimar la pâge ou ben lo fichiér « $1 ».
-Pôt-étre la suprèssion est ja étâye fêta per quârqu’un d’ôtro.',
+'cannotdelete' => 'Empossiblo de suprimar la pâge lo fichiér « $1 ».
+Pôt-étre la suprèssion est ja étâye fêta per un ôtro.',
'cannotdelete-title' => 'Empossiblo de suprimar la pâge « $1 »',
'delete-hook-aborted' => 'Suprèssion anulâye per un grèfon.
Nion’èxplicacion est étâye balyêe.',
'badtitle' => 'Crouyo titro',
'badtitletext' => 'Lo titro de la pâge demandâye est pas justo, vouedo ou ben o est un titro entèrlengoua ou entèrvouiqui mâl-liyê.
Contint sûrament yon ou ben un mouél de caractèros que pôvont pas étre empleyês dedens los titros.',
-'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.',
+'perfcached' => 'Cetes donâs sont en cacho et pôvont pas étre a jorn. Por lo més {{PLURAL:$1|un 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|un 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 ique seront pas betâyes a jorn.',
'wrong_wfQuery_params' => 'Paramètros fôx dessus wfQuery()<br />
'protectedpagetext' => 'Ceta pâge est étâye protègiêe por empachiér son changement ou ben d’ôtres accions.',
'viewsourcetext' => 'Vos pouede vêre et pués copiyér lo tèxto sôrsa de ceta pâge :',
'viewyourtext' => "Vos pouede vêre et pués copiyér lo tèxto sôrsa de '''voutros changements''' a ceta pâge :",
-'protectedinterface' => 'Cela pâge-que balye de tèxto d’entèrface por la programeria sur ceti vouiqui, et est vêr protègiêe por èvitar los abus.
+'protectedinterface' => 'Cela pâge-que balye de tèxto d’entèrface por la programeria sur ceti vouiqui, et el est vêr protègiêe por èvitar los abus.
Por apondre ou ben changiér des traduccions sur tôs los vouiquis, volyéd empleyér [//translatewiki.net/ translatewiki.net], lo projèt de localisacion de MediaWiki.',
'editinginterface' => "'''Atencion :''' vos éte aprés changiér na pâge empleyêe por fâre lo tèxto d’entèrface de la programeria.
Los changements sè cognetront sur l’aparence de l’entèrface utilisator por los ôtros utilisators de ceti vouiqui.
Por apondre ou ben changiér des traduccions sur tôs los vouiquis, volyéd empleyér [//translatewiki.net/ translatewiki.net], lo projèt de localisacion de MediaWiki.",
'sqlhidden' => '(Demanda SQL cachiêe)',
-'cascadeprotected' => 'Cela pâge-que est protègiêe perce qu’el est entrebetâye dedens {{PLURAL:$1|ceta pâge, qu’est étâye protègiêe|cetes pâges, que sont étâyes protègiêes}} avouéc lo chouèx « protèccion en cascâda » activâ :
+'cascadeprotected' => 'Cela pâge-que est protègiêe, el est entrebetâye dedens {{PLURAL:$1|ceta pâge qu’est étâye protègiêe|cetes pâges que sont étâyes protègiêes}} 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 ô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.',
+'customcssprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge CSS, contint la configuracion a sè d’un ôtr’utilisator.',
+'customjsprotected' => 'Vos avéd pas la pèrmission de changiér cela pâge JavaScript, contint la configuracion a sè d’un ôtr’utilisator.',
'ns-specialprotected' => 'Les pâges spèciâles pôvont pas étre changiêes.',
'titleprotected' => "Cél titro est étâ protègiê a la crèacion per [[User:$1|$1]].
La rêson balyêe est « ''$2'' ».",
-'filereadonlyerror' => 'Empossiblo de changiér lo fichiér « $1 » perce que lo dèpôt de fichiérs « $2 » est en lèctura solèta.
+'filereadonlyerror' => 'Empossiblo de changiér lo fichiér « $1 » perce que lo dèpôt de fichiérs « $2 » est justo en lèctura.
L’administrator que l’at vèrrolyê at balyê cet’èxplicacion : « $3 ».',
'invalidtitle-knownnamespace' => 'Titro pas justo avouéc l’èspâço de noms « $2 » et lo tèxto « $3 »',
'invalidtitle-unknownnamespace' => 'Titro pas justo avouéc lo numerô d’èspâço de noms encognu $1 et lo tèxto « $2 »',
'exception-nologin' => 'Pas branchiê',
-'exception-nologin-text' => 'Cela pâge ou ben cel’accion at fôta d’étre branchiê sur ceti vouiqui.',
+'exception-nologin-text' => 'Cela pâge cel’accion at fôta d’étre branchiê sur ceti vouiqui.',
# Virus scanner
'virus-badscanner' => "Crouye configuracion : scanor de virus encognu : ''$1''",
'gotaccount' => "Vos avéd ja un compto ? '''$1.'''",
'gotaccountlink' => 'Branchiéd-vos',
'userlogin-resetlink' => 'Vos éd oubliâ voutros dètalys de branchement ?',
-'createaccountmail' => 'per mèssageria èlèctronica',
+'createaccountmail' => 'Empleyér un contresegno temporèro fêt per hasârd et pués lo mandar a l’adrèce èlèctronica spècifiâye ce-desot',
'createaccountreason' => 'Rêson :',
'badretype' => 'Los contresegnos que vos éd buchiês sont pas pariérs.',
'userexists' => 'Lo nom d’utilisator buchiê est ja empleyê.
Los volyéd activar et pués vos tornar branchiér avouéc lo mémo nom et lo mémo contresegno.",
'nocookieslogin' => "{{SITENAME}} emplèye des tèmouens (''cookies'') por lo branchement mas vos los éd dèsactivâs.
Los volyéd activar et pués tornar èprovar.",
-'nocookiesfornew' => "Lo compto utilisator est pas étâ fêt, perce que nos ens pas possu confirmar la sina sôrsa.
+'nocookiesfornew' => "Lo compto utilisator est pas étâ fêt, nos ens pas possu confirmar la sina sôrsa.
Controlâd que vos éd activâ los tèmouens (''cookies''), rechargiéd la pâge et pués tornâd èprovar.",
'noname' => 'Vos éd pas spècifiâ un nom d’utilisator justo.',
'loginsuccesstitle' => 'Branchement reussi',
'nosuchuser' => 'L’utilisator « $1 » ègziste pas.
Los noms d’utilisator sont sensiblos a la câssa.
Controlâd l’ortografia ou ben [[Special:UserLogin/signup|féte un compto novél]].',
-'nosuchusershort' => 'Y at gins d’utilisator avouéc lo nom « $1 ».
+'nosuchusershort' => 'Y at pas un utilisator avouéc lo nom « $1 ».
Volyéd controlar l’ortografia.',
'nouserspecified' => 'Vos dête spècifiar un nom d’utilisator.',
'login-userblocked' => 'Cet’utilisator est blocâ. Branchement pas ôtorisâ.',
Volyéd tornar èprovar.',
'wrongpasswordempty' => 'Vos éd pas buchiê de contresegno.
Volyéd tornar èprovar.',
-'passwordtooshort' => 'Voutron contresegno dêt contegnir u muens $1 caractèro{{PLURAL:$1||s}}.',
+'passwordtooshort' => 'Voutron contresegno dêt contegnir por lo muens $1 caractèro{{PLURAL:$1||s}}.',
'password-name-match' => 'Voutron contresegno dêt étre difèrent de voutron nom d’utilisator.',
'password-login-forbidden' => 'L’usâjo de cél nom d’utilisator et de cél contresegno est étâ dèfendu.',
'mailmypassword' => 'Recêvre un contresegno novél per mèssageria èlèctronica',
'passwordremindertitle' => 'Contresegno temporèro novél por {{SITENAME}}',
-'passwordremindertext' => 'Quârqu’un (probâblament vos, dês l’adrèce IP $1) at demandâ un contresegno
+'passwordremindertext' => 'Yon (probâblament vos, dês l’adrèce IP $1) at demandâ un contresegno
novél por {{SITENAME}} ($4). Un contresegno temporèro est étâ fêt por
-l’utilisator « $2 » et est « $3 ». S’o ére voutra entencion, vos vos devréd
+l’utilisator « $2 » et il est « $3 ». S’o ére voutra entencion, vos vos devréd
branchiér et pués chouèsir un contresegno novél.
-Voutron contresegno temporèro èxpirerat dens {{PLURAL:$5|yon jorn|$5 jorns}}.
+Voutron contresegno temporèro èxpirerat dens {{PLURAL:$5|un jorn|$5 jorns}}.
Se cela demanda vint pas de vos ou ben que vos vos éte rapelâ
de voutron contresegno et que vos souhètâd pas més lo changiér, vos
'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, ren que yon mèssâjo de sovegnence serat mandâ per {{PLURAL:$1|hora|entèrvalo de $1 hores}}.',
+Por èvitar los abus, ren que yon serat mandâ per {{PLURAL:$1|hora|entèrvalo de $1 hores}}.',
'mailerror' => 'Fôta pendent l’èxpèdicion du mèssâjo : $1',
-'acct_creation_throttle_hit' => 'Quârqu’un qu’emplèye voutron adrèce IP at fêt {{PLURAL:$1|yon compto|$1 comptos}} pendent les 24 hores passâyes, cen qu’est la limita ôtorisâye dens ceti temps.
+'acct_creation_throttle_hit' => 'Yon qu’emplèye voutron adrèce IP at fêt {{PLURAL:$1|un compto|$1 comptos}} pendent les 24 hores passâyes, cen qu’est la limita ôtorisâye dens ceti temps.
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 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 pas justo.
+'invalidemailaddress' => 'Cet’adrèce èlèctronica pôt pas étre accèptâye, semble avêr un format pas justo.
Volyéd buchiér n’adrèce bien formatâye ou ben lèssiér cél champ vouedo.',
'cannotchangeemail' => 'Les adrèces èlèctroniques des comptos pôvont pas étre changiêes sur ceti vouiqui.',
'emaildisabled' => 'Ceti seto pôt pas mandar des mèssâjos.',
'accountcreated' => 'Compto fêt',
'accountcreatedtext' => 'Lo compto utilisator por $1 est étâ fêt.',
'createaccount-title' => 'Crèacion d’un compto por {{SITENAME}}',
-'createaccount-text' => 'Quârqu’un at fêt un compto por voutron adrèce èlèctronica dessus {{SITENAME}} ($4) apelâ « $2 », avouéc lo contresegno « $3 ».
+'createaccount-text' => 'Yon at fêt un compto por voutron adrèce èlèctronica dessus {{SITENAME}} ($4) apelâ « $2 », avouéc lo contresegno « $3 ».
Vos vos devriâd branchiér et pués changiér dês ora voutron contresegno.
Ignorâd ceti mèssâjo se cél compto est étâ fêt per fôta.',
Volyéd atendre devant que tornar èprovar.',
'login-abort-generic' => 'Voutra tentativa de branchement at pas reussi - Anulâye',
'loginlanguagelabel' => 'Lengoua : $1',
-'suspicious-userlogout' => 'Voutra demanda de dèbranchement est étâye refusâye perce que semble qu’el est étâye mandâye per un navigator câsso ou ben la misa en cacho d’un proxi.',
+'suspicious-userlogout' => 'Voutra demanda de dèbranchement est étâye refusâye, semble qu’el est étâye mandâye per un navigator câsso ou ben la misa en cacho d’un proxi.',
# E-mail sending
'php-mail-error-unknown' => 'Fôta encognua dens la fonccion mail() de PHP.',
-'user-mail-no-addy' => 'At tâchiê de mandar un mèssâjo sen adrèce èlèctronica.',
-'user-mail-no-body' => 'At tâchiê de mandar un mèssâjo avouéc un côrp vouedo ou ben dèrêsonâblament côrt.',
+'user-mail-no-addy' => 'Il at tâchiê de mandar un mèssâjo sen adrèce èlèctronica.',
+'user-mail-no-body' => 'Il at tâchiê de mandar un mèssâjo avouéc un côrp vouedo ou ben dèrêsonâblament côrt.',
# Change password dialog
'resetpass' => 'Changiér lo contresegno',
'passwordreset-pretext' => '{{PLURAL:$1||Buchiéd yona de les piéces de donâs ce-desot}}',
'passwordreset-username' => 'Nom d’utilisator :',
'passwordreset-domain' => 'Domêno :',
-'passwordreset-capture' => 'Vêre lo mèssâjo que rèsulte ?',
+'passwordreset-capture' => '’T-o que vos voléd vêre lo mèssâjo que rèsulte ?',
'passwordreset-capture-help' => 'Se vos pouentâd cela câsa, lo mèssâjo (avouéc lo contresegno temporèro) vos serat montrâ quand serat mandâ a l’utilisator.',
'passwordreset-email' => 'Adrèce èlèctronica :',
'passwordreset-emailtitle' => 'Dètalys du compto dessus {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Quârqu’un (probâblament vos, dês l’adrèce IP $1) at demandâ na sovegnence des dètalys
+'passwordreset-emailtext-ip' => 'Yon (probâblament vos, dês l’adrèce IP $1) at demandâ na sovegnence des dètalys
de voutron compto por {{SITENAME}} ($4). {{PLURAL:$3|Ceti compto utilisator est associyê|Cetos comptos utilisators sont associyês}}
a cel’adrèce èlèctronica :
$2
-{{PLURAL:$3|Cél contresegno temporèro èxpirerat|Celos contresegnos temporèros èxpireront}} dens {{PLURAL:$5|yon jorn|$5 jorns}}.
+{{PLURAL:$3|Cél contresegno temporèro èxpirerat|Celos contresegnos temporèros èxpireront}} dens {{PLURAL:$5|un jorn|$5 jorns}}.
Ora vos vos dête branchiér et pués chouèsir un contresegno novél. Se cela demanda vint pas de vos
ou ben que vos vos éte rapelâ de voutron contresegno originâl et que vos souhètâd pas més lo changiér,
vos pouede ignorar ceti mèssâjo et continuar a empleyér voutron viely contresegno.',
$2
-{{PLURAL:$3|Cél contresegno temporèro èxpirerat|Celos contresegnos temporèros èxpireront}} dens {{PLURAL:$5|yon jorn|$5 jorns}}.
+{{PLURAL:$3|Cél contresegno temporèro èxpirerat|Celos contresegnos temporèros èxpireront}} dens {{PLURAL:$5|un jorn|$5 jorns}}.
Ora vos vos dête branchiér et pués chouèsir un contresegno novél. Se cela demanda vint pas de vos
ou ben que vos vos éte rapelâ de voutron contresegno originâl et que vos souhètâd pas més lo changiér,
vos pouede ignorar ceti mèssâjo et continuar a empleyér voutron viely contresegno.',
'changeemail-no-info' => 'Vos dête étre branchiê por arrevar tot drêt a cela pâge.',
'changeemail-oldemail' => 'Adrèce èlèctronica d’ora :',
'changeemail-newemail' => 'Novèl’adrèce èlèctronica :',
-'changeemail-none' => '(niona)',
+'changeemail-none' => '(pas yona)',
'changeemail-password' => 'Voutron contresegno dessus {{SITENAME}} :',
'changeemail-submit' => 'Changiér l’adrèce èlèctronica',
'changeemail-cancel' => 'Anular',
'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).'''
+'blockedtext' => "'''Voutron nom d’utilisator voutron adrèce IP est étâ(ye) blocâ(ye).'''
Lo blocâjo est étâ fêt per $1.
La rêson balyêe est ''$2''.
Vos pouede pas empleyér la fonccionalitât « Lui mandar un mèssâjo » a muens qu’un’adrèce èlèctronica justa 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 l’identifient de blocâjo est $5.
Volyéd entrebetar tôs los dètalys ce-dessus dedens na sé-quinta demanda que vos faréd.",
-'autoblockedtext' => "Voutron adrèce IP est étâye blocâye ôtomaticament perce qu’el est étâye empleyêe per un ôtr’utilisator, lui-mémo blocâ per $1.
+'autoblockedtext' => "Voutron adrèce IP est étâye blocâye ôtomaticament, el est étâye empleyêe per un ôtr’utilisator, lui-mémo blocâ per $1.
La rêson balyêe est :
:''$2''
'''Se la tentativa de changement ére lèg·itima, volyéd tornar èprovar.'''
Se cen tôrne pas reussir, vos volyéd [[Special:UserLogout|dèbranchiér]] et pués vos tornar branchiér.",
-'token_suffix_mismatch' => "'''Voutron changement est pas étâ accèptâ perce que voutron cliant at mècllâ los caractèros de ponctuacion dedens lo jeton de changement.'''
+'token_suffix_mismatch' => "'''Voutron changement est pas étâ accèptâ, voutron cliant at mècllâ los caractèros de ponctuacion dedens lo jeton de changement.'''
Lo changement est étâ refusâ por empachiér la corrupcion du tèxto de la pâge.
Des côps ceti problèmo arreve quand vos empleyéd un sèrviço de proxi Vouèbe anonimo qu’est pas de sûr.",
'edit_form_incomplete' => "'''Quârques parties du formulèro de changement ont pas avengiê lo sèrvior ; controlâd que voutros changements sont entiérs et pués tornâd èprovar.'''",
'editingsection' => 'Changement de $1 (sèccion)',
'editingcomment' => 'Changement de $1 (novèla sèccion)',
'editconflict' => 'Conflit de changement : $1',
-'explainconflict' => "Quârqu’un d’ôtro at changiê ceta pâge aprés que vos vos seyâd betâ a la changiér.
+'explainconflict' => "Un ôtro at changiê ceta pâge aprés que vos vos seyâd betâ a la changiér.
La zona de changement de d’amont contint lo tèxto de la pâge coment ègziste orendrêt.
Voutros changements aparèssont dedens la zona de changement de desot.
Vos voléd devêr fusionar voutros changements dedens lo tèxto ègzistent.
Se vos l’encartâd, tôs los changements fêts dês ceta vèrsion seront pèrdus.",
'yourdiff' => 'Difèrences',
'copyrightwarning' => "Volyéd notar que totes les contribucions a {{SITENAME}} sont considèrâyes coment publeyêes desot los tèrmos de la $2 (vêde $1 por més de dètalys).
-Se vos voléd pas que voutros ècrits seyont changiês sen pouent de rèstriccion et pués rebalyês a volontât, adonc los volyéd pas sometre ique.<br />
-Vos nos assurâd asse-ben que vos éd cen ècrit vos-mémo ou ben que vos l’éd copiyê d’una sôrsa que vint du domêno publico ou ben d’un’ôtra ressôrsa libra.
+Se vos voléd pas que voutros ècrits seyont changiês sen pouent de rèstriccion et pués rebalyês a volontât, adonc los volyéd pas mandar ique.<br />
+Vos nos assurâd asse-ben que vos éd cen ècrit vos-mémo ou ben que vos l’éd copiyê d’una sôrsa que vint du domêno publico ou d’un’ôtra ressôrsa libra.
'''Empleyéd gins d’ôvra desot drêt d’ôtor sen pèrmission èxprèssa !'''",
'copyrightwarning2' => "Volyéd notar que totes les contribucions a {{SITENAME}} pôvont étre changiêes ou ben enlevâyes per d’ôtros contributors.
-Se vos voléd pas que voutros ècrits seyont changiês sen pouent de rèstriccion, adonc los volyéd pas sometre ique.<br />
-Vos nos assurâd asse-ben que vos éd cen ècrit vos-mémo ou ben que vos l’éd copiyê d’una sôrsa que vint du domêno publico ou ben d’un’ôtra ressôrsa libra (vêde $1 por més de dètalys).
+Se vos voléd pas que voutros ècrits seyont changiês sen pouent de rèstriccion, adonc los volyéd pas mandar ique.<br />
+Vos nos assurâd asse-ben que vos éd cen ècrit vos-mémo ou ben que vos l’éd copiyê d’una sôrsa que vint du domêno publico ou d’un’ôtra ressôrsa libra (vêde $1 por més de dètalys).
'''Empleyéd gins d’ôvra desot drêt d’ôtor sen pèrmission èxprèssa !'''",
-'longpageerror' => "'''Fôta : lo tèxto que vos éd somês fât {{PLURAL:$1|yon Kio|$1 Kio}}, cen que dèpâsse la limita fixâye a {{PLURAL:$2|yon Kio|$2 Kio}}.'''
+'longpageerror' => "'''Fôta : lo tèxto que vos éd mandâ fât {{PLURAL:$1|un Kio|$1 Kio}}, cen que dèpâsse la limita fixâye a {{PLURAL:$2|un Kio|$2 Kio}}.'''
Pôt pas étre encartâ.",
'readonlywarning' => "'''Atencion : la bâsa de donâs est étâye vèrrolyêe por mantegnence, vos porréd vêr pas encartar voutros changements d’abôrd.'''
-Vos pouede copiyér lo tèxto dedens un fichiér tèxto et pués l’encartar por ples târd.
+Vos pouede copiyér et côlar voutron tèxto dedens un fichiér tèxto et pués l’encartar por ples târd.
L’administrator qu’at vèrrolyê la bâsa de donâs at balyê cet’èxplicacion : $1",
'protectedpagewarning' => "'''Atencion : ceta pâge est étâye protègiêe de façon que solament los utilisators qu’ont lo statut d’administrator la pouessont changiér.'''
-La dèrriére entrâ du jornal est montrâye ce-desot por refèrence :",
+Por refèrence, la dèrriére entrâ du jornal est balyêe ce-desot :",
'semiprotectedpagewarning' => "'''Nota :''' ceta pâge est étâye protègiêe de façon que solament los utilisators encartâs la pouessont changiér.
-La dèrriére entrâ du jornal est montrâye ce-desot por refèrence :",
+Por refèrence, la dèrriére entrâ du jornal est balyêe ce-desot :",
'cascadeprotectedwarning' => "'''Atencion :''' cela pâge-que est étâye protègiêe de façon que solament los utilisators qu’ont lo statut d’administrator la pouessont changiér, perce qu’el est entrebetâye dedens {{PLURAL:$1|ceta pâge protègiêe|cetes pâges protègiêes}} avouéc la « protèccion en cascâda » activâye :",
'titleprotectedwarning' => "'''Atencion : ceta pâge est étâye protègiêe de façon que des [[Special:ListGroupRights|drêts spècificos]] sont nècèssèros por la povêr fâre.'''
-La dèrriére entrâ du jornal est montrâye ce-desot por refèrence :",
+Por refèrence, la dèrriére entrâ du jornal est balyêe ce-desot :",
'templatesused' => '{{PLURAL:$1|Modèlo empleyê|Modèlos empleyês}} per ceta pâge :',
'templatesusedpreview' => '{{PLURAL:$1|Modèlo empleyê|Modèlos empleyês}} dedens cet’apèrçu :',
'templatesusedsection' => '{{PLURAL:$1|Modèlo empleyê|Modèlos empleyês}} dedens ceta sèccion :',
'recreate-moveddeleted-warn' => "'''Atencion : vos éte aprés refâre na pâge qu’est étâye suprimâye dês devant.'''
Demandâd-vos se fôt franc continuar son changement.
-Por comoditât, lo jornal de les suprèssions et des dèplacements de cela pâge est montrâ ce-desot :",
+Por comoditât, lo jornal de les suprèssions et des dèplacements de cela pâge est balyê ce-desot :",
'moveddeleted-notice' => 'Ceta pâge est étâye suprimâye.
-Por refèrence, lo jornal de les suprèssions et des dèplacements de cela pâge est montrâ ce-desot.',
+Por refèrence, lo jornal de les suprèssions et des dèplacements de cela pâge est balyê ce-desot.',
'log-fulllog' => 'Vêre lo jornal complèt',
'edit-hook-aborted' => 'Changement anulâ per un grèfon.
Nion’èxplicacion est étâye balyêe.',
'edit-gone-missing' => 'Empossiblo de betar a jorn la pâge.
Semble que seye étâye suprimâye.',
'edit-conflict' => 'Conflit de changement.',
-'edit-no-change' => 'Voutron changement est étâ ignorâ perce que nion changement est étâ fêt u tèxto.',
+'edit-no-change' => 'Voutron changement est étâ ignorâ, nion changement est étâ fêt u tèxto.',
'edit-already-exists' => 'Empossiblo de fâre na pâge novèla.
Ègziste ja.',
'defaultmessagetext' => 'Mèssâjo per dèfôt',
'post-expand-template-inclusion-warning' => "'''Atencion :''' la talye des modèlos entrebetâs est trop grôssa.
Quârques modèlos seront pas entrebetâs.",
'post-expand-template-inclusion-category' => 'Pâges yô que la talye des modèlos entrebetâs est dèpassâye',
-'post-expand-template-argument-warning' => "'''Atencion :''' cela pâge contint u muens yon argument de modèlo qu’at na talye d’èxpension trop grôssa.
+'post-expand-template-argument-warning' => "'''Atencion :''' cela pâge contint por lo muens un argument de modèlo qu’at na talye d’èxpension trop grôssa.
Celos arguments sont pas étâs betâs.",
'post-expand-template-argument-category' => 'Pâges que contegnont des arguments de modèlo pas betâs',
'parser-template-loop-warning' => 'Modèlo en boclla dècelâ : [[$1]]',
Vos la pouede vêre ; y pôt avêr més de dètalys dedens lo [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jornal de les rèprèssions].",
'rev-deleted-no-diff' => "Vos pouede pas vêre ceta dif perce que yona de les vèrsions est étâye '''suprimâye'''.
Y pôt avêr més de dètalys dedens lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de les suprèssions].",
-'rev-suppressed-no-diff' => "Vos pouede pas vêre ceta dif perce que yona de les vèrsions est étâye '''suprimâye'''.",
+'rev-suppressed-no-diff' => "Vos pouede pas vêre ceta dif, yona de les vèrsions est étâye '''suprimâye'''.",
'rev-deleted-unhide-diff' => "Yona de les vèrsions de ceta dif est étâye '''suprimâye'''.
Y pôt avêr més de dètalys dedens lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de les suprèssions].
Vos pouede adés [$1 vêre cela dif] se vos o voléd.",
'rev-showdeleted' => 'montrar',
'revisiondelete' => 'Suprimar / refâre des vèrsions',
'revdelete-nooldid-title' => 'Vèrsion ciba pas justa',
-'revdelete-nooldid-text' => 'Vos éd pas spècifiâ na vèrsion ciba (ou ben des vèrsions cibes) por fâre cela
+'revdelete-nooldid-text' => 'Vos éd pas spècifiâ na vèrsion ciba (des vèrsions cibes) por fâre cela
fonccion, la vèrsion spècifiâye ègziste pas ou ben vos tâchiéd de cachiér la vèrsion d’ora.',
'revdelete-nologtype-title' => 'Nion tipo de jornal balyê',
'revdelete-nologtype-text' => 'Vos éd pas spècifiâ un tipo de jornal por fâre cel’accion.',
'revdelete-nologid-title' => 'Entrâ du jornal pas justa',
'revdelete-nologid-text' => 'Ou ben vos éd pas spècifiâ un èvènement du jornal ciba por fâre cela fonccion ou ben l’entrâ spècifiâye ègziste pas.',
'revdelete-no-file' => 'Lo fichiér spècifiâ ègziste pas.',
-'revdelete-show-file-confirm' => 'Éte-vos de sûr de volêr vêre na vèrsion suprimâye du fichiér « <nowiki>$1</nowiki> » du $2 a $3 ?',
+'revdelete-show-file-confirm' => '’T-o que vos éte de sûr de volêr vêre na vèrsion suprimâye du fichiér « <nowiki>$1</nowiki> » du $2 a $3 ?',
'revdelete-show-file-submit' => 'Ouè',
'revdelete-selected' => "'''{{PLURAL:$2|Vèrsion chouèsia|Vèrsions chouèsies}} de [[:$1]] :'''",
'logdelete-selected' => "'''{{PLURAL:$1|Èvènement du jornal chouèsi|Èvènements du jornal chouèsis}} :'''",
Vos y avéd pas accès.',
'revdelete-modify-missing' => 'Fôta en changient la piéce avouéc l’identifient $1 : el est manquenta dedens la bâsa de donâs !',
'revdelete-no-change' => "'''Atencion :''' la piéce datâye du $1 a $2 at ja la configuracion de visibilitât demandâye.",
-'revdelete-concurrent-change' => 'Fôta en changient la piéce datâye du $1 a $2 : lo sin statut semble étre étâ changiê per quârqu’un d’ôtro justo que vos tâchiêvâd d’o changiér.
+'revdelete-concurrent-change' => 'Fôta en changient la piéce datâye du $1 a $2 : lo sin statut semble étre étâ changiê per un ôtro justo que vos tâchiêvâd d’o changiér.
Volyéd controlar los jornals.',
'revdelete-only-restricted' => 'Fôta en cachient la piéce datâye du $1 a $2 : vos pouede pas rèprimar celes piéces de la vua ux administrators sen chouèsir avouéc des ôtros chouèx de visibilitât.',
'revdelete-reason-dropdown' => '*Rêsons corentes de suprèssion
'compareselectedversions' => 'Comparar les vèrsions chouèsies',
'showhideselectedversions' => 'Montrar / cachiér les vèrsions chouèsies',
'editundo' => 'dèfâre',
-'diff-multi' => '({{PLURAL:$1|Yona vèrsion entèrmèdièra|$1 vèrsions entèrmèdières}} per {{PLURAL:$2|yon utilisator|$2 utilisators}} {{PLURAL:$1|est pas montrâye|sont pas montrâyes}})',
-'diff-multi-manyusers' => '({{PLURAL:$1|Yona vèrsion entèrmèdièra|$1 vèrsions entèrmèdières}} per més de $2 utilisator{{PLURAL:$2||s}} {{PLURAL:$1|est pas montrâye|sont pas montrâyes}})',
-'difference-missing-revision' => '{{PLURAL:$2|Yona vèrsion|$2 vèrsions}} de cela difèrence ($1) {{PLURAL:$2|est pas étâye trovâye|sont pas étâyes trovâyes}}.
+'diff-multi' => '({{PLURAL:$1|Na vèrsion entèrmèdièra|$1 vèrsions entèrmèdières}} per {{PLURAL:$2|un utilisator|$2 utilisators}} {{PLURAL:$1|est pas montrâye|sont pas montrâyes}})',
+'diff-multi-manyusers' => '({{PLURAL:$1|Na vèrsion entèrmèdièra|$1 vèrsions entèrmèdières}} per més de $2 utilisator{{PLURAL:$2||s}} {{PLURAL:$1|est pas montrâye|sont pas montrâyes}})',
+'difference-missing-revision' => '{{PLURAL:$2|Na vèrsion|$2 vèrsions}} de cela difèrence ($1) {{PLURAL:$2|est pas étâye trovâye|sont pas étâyes trovâyes}}.
En g·ènèral cen arreve en siuvent un lim d’una dif dèpassâye de vers na pâge qu’est étâye suprimâye.
Vos pouede trovar més de dètalys dedens lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de les suprèssions].',
# Quickbar
'qbsettings' => 'Bârra rapida',
-'qbsettings-none' => 'Niona',
+'qbsettings-none' => 'Pas yona',
'qbsettings-fixedleft' => 'Fixa a gôche',
'qbsettings-fixedright' => 'Fixa a drêta',
'qbsettings-floatingleft' => 'Fllotenta a gôche',
'yourrealname' => 'Veré nom :',
'yourlanguage' => 'Lengoua :',
'yourvariant' => 'Varianta de la lengoua du contegnu :',
-'prefs-help-variant' => 'Voutra varianta ou ben ortografia prèferâye por fâre vêre les pâges de contegnu de ceti vouiqui.',
+'prefs-help-variant' => 'Voutra varianta voutron ortografia prèferâye por fâre vêre les pâges de contegnu de ceti vouiqui.',
'yournick' => 'Signatura novèla :',
'prefs-help-signature' => 'Los comentèros sur les pâges de discussion dêvont étre signês avouéc « <nowiki>~~~~</nowiki> » que serat convèrti per voutra signatura avouéc la dâta et hora.',
'badsig' => 'Signatura bruta pas justa.
'rc_categories_any' => 'Totes',
'rc-change-size-new' => '$1 octèt{{PLURAL:$1||s}} aprés changement',
'newsectionsummary' => '/* $1 */ novèla sèccion',
-'rc-enhanced-expand' => 'Montrar los dètalys (at fôta de JavaScript)',
+'rc-enhanced-expand' => 'Montrar los dètalys (il at fôta de JavaScript)',
'rc-enhanced-hide' => 'Cachiér los dètalys',
-'rc-old-title' => 'fêt avouéc lo titro « $1 »',
+'rc-old-title' => 'fêta avouéc lo titro originâl « $1 »',
# Recent changes linked
-'recentchangeslinked' => 'Changements de les pâges liyês',
-'recentchangeslinked-feed' => 'Changements de les pâges liyês',
-'recentchangeslinked-toolbox' => 'Changements de les pâges liyês',
-'recentchangeslinked-title' => 'Changements de les pâges liyês a « $1 »',
-'recentchangeslinked-noresult' => 'Y at gins de changement sur les pâges liyês pendent lo temps chouèsi.',
-'recentchangeslinked-summary' => "Ceta pâge spèciâla montre los dèrriérs changements sur les pâges que sont liyês.
-Les pâges de voutra [[Special:Watchlist|lista de survelyence]] sont '''en grâs'''.",
+'recentchangeslinked' => 'Changements liyês',
+'recentchangeslinked-feed' => 'Changements liyês',
+'recentchangeslinked-toolbox' => 'Changements liyês',
+'recentchangeslinked-title' => 'Changements liyês a « $1 »',
+'recentchangeslinked-noresult' => 'Y at gins de changement sur les pâges liyêes pendent lo temps chouèsi.',
+'recentchangeslinked-summary' => "O est na lista des dèrriérs changements sur les pâges liyêes a na pâge spècifiâye (sur los membros d’una catègorie spècifiâye).
+Les pâges de voutra [[Special:Watchlist|lista de siuvu]] sont en '''grâs'''.",
'recentchangeslinked-page' => 'Nom de la pâge :',
-'recentchangeslinked-to' => 'Fâre vêre los changements de les pâges qu’ont un lim de vers la pâge balyê pletout que l’envèrsa',
+'recentchangeslinked-to' => 'Montrar pletout los changements sur les pâges liyêes a la pâge balyêe',
# Upload
'upload' => 'Tèlèchargiér un fichiér',
'uploadbtn' => 'Tèlèchargiér lo fichiér',
-'reuploaddesc' => 'Anular lo tèlèchargement et tornar u formulèro de tèlèchargement.',
+'reuploaddesc' => 'Anular lo tèlèchargement et pués tornar u formulèro de tèlèchargement',
'upload-tryagain' => 'Mandar la dèscripcion du fichiér changiê',
-'uploadnologin' => 'Pas branchiê',
-'uploadnologintext' => 'Vos dête étre [[Special:UserLogin|branchiê]] por tèlèchargiér des fichiérs sur lo sèrvor.',
-'upload_directory_missing' => 'Lo rèpèrtouèro de tèlèchargement ($1) est entrovâblo et pués at pas possu étre fêt per lo sèrvor vouèbe.',
-'upload_directory_read_only' => 'Lo rèpèrtouèro de tèlèchargement ($1) est pas accèssiblo en ècritura dês lo sèrvor vouèbe.',
-'uploaderror' => 'Èrror pendent lo tèlèchargement',
-'upload-recreate-warning' => "'''Atencion : un fichiér avouéc cél nom at étâ suprimâ ou ben dèplaciê.'''
-
-Los jornals de les suprèssions et des changements de nom de cela pâge sont montrâs ce-desot :",
+'uploadnologin' => 'Pas branchiê(ye)',
+'uploadnologintext' => 'Vos dête étre [[Special:UserLogin|branchiê(ye)]] por tèlèchargiér des fichiérs.',
+'upload_directory_missing' => 'Lo rèpèrtouèro de tèlèchargement ($1) est manquent et pués il at pas possu étre fêt per lo sèrvior Vouèbe.',
+'upload_directory_read_only' => 'Lo rèpèrtouèro de tèlèchargement ($1) est pas accèssiblo en ècritura dês lo sèrvior Vouèbe.',
+'uploaderror' => 'Fôta pendent lo tèlèchargement',
+'upload-recreate-warning' => "'''Atencion : un fichiér avouéc cél nom est étâ suprimâ ou ben dèplaciê.'''
+
+Por comoditât, lo jornal de les suprèssions et des dèplacements de cela pâge est balyê ce-desot :",
'uploadtext' => "Empleyéd lo formulèro ce-desot por tèlèchargiér des fichiérs.
-Por vêre ou ben rechèrchiér des fichiérs tèlèchargiês dês devant, vêde la [[Special:FileList|lista des fichiérs tèlèchargiês]]. Los tèlèchargements sont asse-ben encartâs dedens lo [[Special:Log/upload|jornal des tèlèchargements]], et pués les suprèssions dedens lo [[Special:Log/delete|jornal de les suprèssions]].
+Por vêre ou ben rechèrchiér des fichiérs tèlèchargiês dês devant, vêde la [[Special:FileList|lista des fichiérs tèlèchargiês]]. Los (re-)tèlèchargements sont asse-ben encartâs dedens lo [[Special:Log/upload|jornal des tèlèchargements]], et pués les suprèssions dedens lo [[Special:Log/delete|jornal de les suprèssions]].
Por entrebetar un fichiér dedens na pâge, empleyéd un lim de yona de cetes fôrmes :
* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichiér.jpg]]</nowiki></code>''' por empleyér la vèrsion en plêna largior du fichiér
* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichiér.png|200px|thumb|left|tèxto dèscriptif]]</nowiki></code>''' por empleyér na figura de 200 pixèls de lârjo dedens na bouèta a gôche avouéc « tèxto dèscriptif » coment dèscripcion
* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fichiér.ogg]]</nowiki></code>''' por liyér tot drêt vers lo fichiér sen lo fâre vêre",
-'upload-permitted' => 'Formats de fichiérs ôtorisâs : $1.',
-'upload-preferred' => 'Formats de fichiérs prèferâs : $1.',
-'upload-prohibited' => 'Formats de fichiérs dèfendus : $1.',
-'uploadlog' => 'Jornal des tèlèchargements',
+'upload-permitted' => 'Tipos de fichiérs ôtorisâs : $1.',
+'upload-preferred' => 'Tipos de fichiérs prèferâs : $1.',
+'upload-prohibited' => 'Tipos de fichiérs dèfendus : $1.',
+'uploadlog' => 'jornal des tèlèchargements',
'uploadlogpage' => 'Jornal des tèlèchargements',
-'uploadlogpagetext' => 'Vê-que la lista des dèrriérs fichiérs tèlèchargiês sur lo sèrvor.
-Vêde la [[Special:NewFiles|galerie des novéls fichiérs]] por una presentacion ples visuâla.',
+'uploadlogpagetext' => 'Vê-que na lista des dèrriérs fichiérs tèlèchargiês.
+Vêde la [[Special:NewFiles|galerie des novéls fichiérs]] por un apèrçu ples visuâl.',
'filename' => 'Nom du fichiér',
'filedesc' => 'Dèscripcion',
'fileuploadsummary' => 'Dèscripcion :',
'filereuploadsummary' => 'Changements du fichiér :',
-'filestatus' => 'Statut des drêts d’ôtor :',
+'filestatus' => 'Statut du drêt d’ôtor :',
'filesource' => 'Sôrsa :',
'uploadedfiles' => 'Fichiérs tèlèchargiês',
-'ignorewarning' => 'Ignorar l’avèrtissement et pués sôvar quand mémo lo fichiér',
+'ignorewarning' => 'Ignorar l’avèrtissement et pués encartar lo fichiér dens tôs los câs',
'ignorewarnings' => 'Ignorar tôs los avèrtissements',
-'minlength1' => 'Los noms de fichiér dêvont comprendre u muens yona lètra.',
+'minlength1' => 'Los noms de fichiérs dêvont contegnir por lo muens na lètra.',
'illegalfilename' => 'Lo nom de fichiér « $1 » contint des caractèros dèfendus dens los titros de pâges.
Lo volyéd renomar et pués lo tornar tèlèchargiér.',
'filename-toolong' => 'Lo nom du fichiér pôt pas dèpassar 240 octèts.',
'logentry-newusers-create' => 'Lo compto utilisator $1 est étâ fêt',
'logentry-newusers-create2' => 'Lo compto utilisator $3 est étâ fêt per $1',
'logentry-newusers-autocreate' => 'Lo compto $1 at étâ fêt ôtomaticament',
-'newuserlog-byemail' => 'contresegno mandâ per mèssageria èlèctronica',
'logentry-rights-rights' => '$1 at changiê l’apartegnence a la tropa por « $3 » de $4 a $5',
'logentry-rights-rights-legacy' => '$1 at changiê l’apartegnence a la tropa por « $3 »',
'logentry-rights-autopromote' => '$1 est étâ nomâ ôtomaticament de $4 a $5',
'newwindow' => '(wårt önj en nai waning ääm mååged)',
'cancel' => 'Oufbreege',
'moredotdotdot' => 'Mör ...',
+'morenotlisted' => 'Öödern, ei apfeerd ...',
'mypage' => 'Sidj',
'mytalk' => 'Diskusjuun',
'anontalk' => 'Diskusjoonssid foon jüdeer IP',
'namespaces' => 'Noomerüme',
'variants' => 'Fariante',
+'navigation-heading' => 'Nawigatsjuun',
'errorpagetitle' => 'Fäägel',
'returnto' => 'Tubääg tu jü side $1.',
'tagline' => 'Üt {{SITENAME}}',
'youhavenewmessages' => 'Dü hääst $1 aw din diskusjoonssid ($2).',
'newmessageslink' => 'naie tisinge',
'newmessagesdifflink' => 'Leest änring',
+'youhavenewmessagesfromusers' => 'Dü heest $1 faan {{PLURAL:$3|en öödern brüker|$3 ööder brükern}} ($2).',
+'youhavenewmessagesmanyusers' => 'Dü heest $1 faan flook ööder brükern ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|ian nei nooracht|nei noorachten}}',
+'newmessagesdifflinkplural' => 'leetst {{PLURAL:$1|feranrang|feranrangen}}',
'youhavenewmessagesmulti' => 'Dü hääst nai tisinge aw $1',
'editsection' => 'Beårbe',
'editsection-brackets' => '[$1]',
'invalidtitle-knownnamespace' => 'Ferkiard auerskraft uun di nöömrüm „$2“ an tekst „$3“',
'invalidtitle-unknownnamespace' => 'Ferkiard auerskraft uun di ünbekäänd nöömrüm „$1“ an tekst „$2“',
'exception-nologin' => 'Ei uunmeldet',
+'exception-nologin-text' => 'Det könst dü bluas bewerke, wan dü uunmeldet beest.',
# Virus scanner
'virus-badscanner' => "Hiinje konfigurasjoon: ünbekånde fiirusscanner: ''$1''",
Dü koost {{SITENAME}} nü anonüüm widerbrüke, unti de wider uner diseelew unti en oudern brükernoome <span class='plainlinks'>[$1 önjmälde]</span>.
Påås aw, dåt hu side nuch wise koone, dåt dü önjmälded bast, sülung dü ai dan browsercache lääsimååged heest.",
+'welcomeuser' => 'Welkimen, $1!',
+'welcomecreation-msg' => 'Din brükerkonto as iinracht wurden.
+Ferjid det ei, an aachte üüb din [[Special:Preferences|{{SITENAME}} iinstelangen]].',
'yourname' => 'Brükernoome:',
'yourpassword' => 'Pååsuurd:',
'yourpasswordagain' => 'Schriw pååsuurd nuch iinjsen:',
-'remembermypassword' => 'Aw diheere komputer foon duur önjmälde (maksimool for {{PLURAL:$1|däi|deege}})',
+'remembermypassword' => 'Aw diheere komputer foon duur önjmälde (maksimool for $1 {{PLURAL:$1|däi|deege}})',
'securelogin-stick-https' => 'Eefter önjmälding ma HTTPS ferbünen bliwe',
'yourdomainname' => 'Din domain:',
+'password-change-forbidden' => 'Üüb detheer wiki könst dü nian paaswurden feranre.',
'externaldberror' => 'Deer läit en fäägel bai jü äkstärn autentifisiiring for, unti dü möist din äkstärn brükerkonto äi aktualisiire.',
'login' => 'Önjmälde',
'nav-login-createaccount' => 'Önjmälde',
# E-mail sending
'php-mail-error-unknown' => 'Ünbekäänd feeler mä det funktsjuun mail() faan PHP.',
'user-mail-no-addy' => 'Köö niinj e-mail schake suner e-mail-adres.',
+'user-mail-no-body' => 'Dü wulst en e-mail saner tekst wechsjüür.',
# Change password dialog
'resetpass' => 'Pååsuurd änre',
'changeemail-oldemail' => 'Aktuel e-mail adres',
'changeemail-newemail' => 'Nei e-mail adres',
'changeemail-none' => '(niin)',
+'changeemail-password' => 'Din {{SITENAME}} paaswurd:',
'changeemail-submit' => 'E-mail adres feranre',
'changeemail-cancel' => 'Ufbreeg',
<span class="plainlinks">önj da deertuhiirende [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} logböke säke] unti jüdeer sid [{{fullurl:{{FULLPAGENAME}}|action=edit}} beårbe]</span>.',
'noarticletext-nopermission' => 'Üüb detdiar sidj stäänt noch niks, oober dü mutst diar uk niks iinskriiw.
Dü könst diar üüb ööder sidjen efter [[Special:Search/{{PAGENAME}}|sjük]] of a <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAME}}}} logbuken uunluke].</span>',
+'missing-revision' => 'Det werjuun #$1 faan det sidj "{{PAGENAME}}" jaft at ei.
+
+Det komt diar miast faan, dat en ual ferwisang stregen wurden as.
+Dü könst det uun\'t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} logbuk faan stregen sidjen] efterlees.',
'userpage-userdoesnotexist' => "Det brükerkonto ''$1'' as ei diar.
Wel dü detdiar sidj würelk maage/bewerke?",
'userpage-userdoesnotexist-view' => 'Benjüterkonto "$1" bestoont ai.',
'edit-already-exists' => 'Köö niinj nai sid mååge.
Dåt bestöö ål.',
'defaultmessagetext' => 'Standard tekst',
+'content-failed-to-parse' => "Parsing faan $2 för't model $1 ging skiaf: $3",
+'invalid-content-data' => 'Diar stäänt wat uun, wat diar ei hen hiart',
+'content-not-allowed-here' => '„$1“ mut ei skrewen wurd üüb sidj [[$2]]',
+
+# Content models
+'content-model-wikitext' => 'wikitekst',
+'content-model-text' => 'normool tekst',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
# Parser/template warnings
'expensive-parserfunction-warning' => 'Woorschauing: Jüdeer sid önjthålt tu fool apteele foon widluftie parserfunksjoone.
'expansion-depth-exceeded-warning' => 'Detdiar sidj hää tuföl ütjwidjangen (expansion)',
'parser-unstrip-loop-warning' => 'Diar as en jinsidjag ferwisang',
'parser-unstrip-recursion-limit' => 'Tuföl jinsidjag ferwisangen bi $1',
+'converter-manual-rule-error' => "Bi't manuel reegel för't spriakferanrang lääpt wat skiaf.",
# "Undo" feature
'undo-success' => 'Detdiar feranrang koon turag nimen wurd.
'editundo' => 'tunintemååge',
'diff-multi' => '({{PLURAL:$1|Ian wersjuun diartesken|$1 wersjuunen diartesken}} faan {{PLURAL:$2|ään brüker|$2 brükern}} {{PLURAL:$1|woort|wurd}} ei uunwiset)',
'diff-multi-manyusers' => '({{PLURAL:$1|Ian wersjuun diartesken|$1 wersjuunen diartesken}} faan muar üs $2 {{PLURAL:$2|brüker|brükern}} wurd ei uunwiset)',
+'difference-missing-revision' => "{{PLURAL:$2|Ian werjuun|$2 werjuunen}} faan di ferskeel ($1) {{PLURAL:$2|as|san}} ei fünjen wurden.
+
+Det komt diar miast faan, dat en ual ferwisang stregen wurden as.
+Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} logbuk faan stregen sidjen] efterlees.",
# Search results
'searchresults' => 'Säkjresultoote',
'htmlform-submit' => 'Invie',
'htmlform-selectorother-other' => 'Altris',
-# New logging system
-'newuserlog-byemail' => 'peraule clâf mandade par pueste eletroniche',
-
# Search suggestions
'searchsuggest-search' => 'Ricercje',
'searchsuggest-containing' => 'che al à dentri...',
# New logging system
'revdelete-restricted' => 'hat beheinings oplein oan behearders',
'revdelete-unrestricted' => 'hat beheinings foar behearders goedmakke',
-'newuserlog-byemail' => 'wachtwurd is ferstjoerd oer e-mail',
'rightsnone' => '(gjin)',
);
NS_TALK => '談詑',
NS_USER => '用戶',
NS_USER_TALK => '用戶・談詑',
- NS_PROJECT_TALK => '$1_談詑',
+ NS_PROJECT_TALK => '$1・談詑',
NS_FILE => '文檔',
NS_FILE_TALK => '文檔・談詑',
NS_MEDIAWIKI_TALK => 'MediaWiki・談詑',
NS_CATEGORY_TALK => '分類・談詑',
);
+$namespaceAliases = array(
+ '$1_談詑' => NS_PROJECT_TALK,
+);
+
$messages = array(
# Variants for Gan language
'variantname-gan-hans' => '简体',
# Namespace form on various pages
'namespace' => 'Namespace:',
-'invert' => 'Cuir na tagh mi bun os cionn',
+'invert' => 'Cuir na thagh mi bun os cionn',
'blanknamespace' => '(Prìomh)',
# Contributions
'currentday2' => array( '1', 'DÍAACTUAL2', 'DIAATUAL2', 'CURRENTDAY2' ),
'currentdayname' => array( '1', 'NOMEDODÍAACTUAL', 'NOMEDODIAATUAL', 'CURRENTDAYNAME' ),
'currentyear' => array( '1', 'ANOACTUAL', 'ANOATUAL', 'CURRENTYEAR' ),
+ 'currenttime' => array( '1', 'DATAEHORAACTUAIS', 'HORARIOATUAL', 'CURRENTTIME' ),
'currenthour' => array( '1', 'HORAACTUAL', 'HORAATUAL', 'CURRENTHOUR' ),
'localmonth' => array( '1', 'MESLOCAL', 'LOCALMONTH', 'LOCALMONTH2' ),
'localmonth1' => array( '1', 'MESLOCAL1', 'LOCALMONTH1' ),
'localday2' => array( '1', 'DÍALOCAL2', 'DIALOCAL2', 'LOCALDAY2' ),
'localdayname' => array( '1', 'NOMEDODÍALOCAL', 'NOMEDODIALOCAL', 'LOCALDAYNAME' ),
'localyear' => array( '1', 'ANOLOCAL', 'LOCALYEAR' ),
+ 'localtime' => array( '1', 'DATAEHORALOCAIS', 'HORARIOLOCAL', 'LOCALTIME' ),
'localhour' => array( '1', 'HORALOCAL', 'LOCALHOUR' ),
'numberofpages' => array( '1', 'NÚMERODEPÁXINAS', 'NUMERODEPAGINAS', 'NÚMERODEPÁGINAS', 'NUMBEROFPAGES' ),
'numberofarticles' => array( '1', 'NÚMERODEARTIGOS', 'NUMERODEARTIGOS', 'NUMBEROFARTICLES' ),
'numberoffiles' => array( '1', 'NÚMERODEFICHEIROS', 'NUMERODEARQUIVOS', 'NÚMERODEARQUIVOS', 'NUMBEROFFILES' ),
'numberofusers' => array( '1', 'NÚMERODEUSUARIOS', 'NUMERODEUSUARIOS', 'NÚMERODEUSUÁRIOS', 'NUMBEROFUSERS' ),
+ 'numberofactiveusers' => array( '1', 'NÚMERODEUSUARIOSACTIVOS', 'NUMERODEUSUARIOSATIVOS', 'NÚMERODEUSUÁRIOSATIVOS', 'NUMBEROFACTIVEUSERS' ),
'numberofedits' => array( '1', 'NÚMERODEEDICIÓNS', 'NUMERODEEDICOES', 'NÚMERODEEDIÇÕES', 'NUMBEROFEDITS' ),
+ 'numberofviews' => array( '1', 'NÚMERODEVISITAS', 'NUMERODEEXIBICOES', 'NÚMERODEEXIBIÇÕES', 'NUMBEROFVIEWS' ),
'pagename' => array( '1', 'NOMEDAPÁXINA', 'NOMEDAPAGINA', 'NOMEDAPÁGINA', 'PAGENAME' ),
'namespace' => array( '1', 'ESPAZODENOMES', 'DOMINIO', 'DOMÍNIO', 'ESPACONOMINAL', 'ESPAÇONOMINAL', 'NAMESPACE' ),
'fullpagename' => array( '1', 'NOMECOMPLETODAPÁXINA', 'NOMECOMPLETODAPAGINA', 'NOMECOMPLETODAPÁGINA', 'FULLPAGENAME' ),
'subpagename' => array( '1', 'NOMEDASUBPÁXINA', 'NOMEDASUBPAGINA', 'NOMEDASUBPÁGINA', 'SUBPAGENAME' ),
'basepagename' => array( '1', 'NOMEDAPÁXINABASE', 'NOMEDAPAGINABASE', 'NOMEDAPÁGINABASE', 'BASEPAGENAME' ),
'talkpagename' => array( '1', 'NOMEDAPÁXINADECONVERSA', 'NOMEDAPAGINADEDISCUSSAO', 'NOMEDAPÁGINADEDISCUSSÃO', 'TALKPAGENAME' ),
- 'img_manualthumb' => array( '1', 'miniatura=$1', 'miniaturadaimagem=$1', 'thumbnail=$1', 'thumb=$1' ),
+ 'img_thumbnail' => array( '1', 'miniatura', 'miniaturadaimaxe', 'miniaturadaimagem', 'thumbnail', 'thumb' ),
+ 'img_manualthumb' => array( '1', 'miniatura=$1', 'miniaturadaimaxe=$1', 'miniaturadaimagem=$1', 'thumbnail=$1', 'thumb=$1' ),
'img_right' => array( '1', 'dereita', 'direita', 'right' ),
'img_left' => array( '1', 'esquerda', 'left' ),
'img_none' => array( '1', 'ningún', 'nenhum', 'none' ),
'img_center' => array( '1', 'centro', 'center', 'centre' ),
+ 'img_framed' => array( '1', 'conmarco', 'conbordo', 'marco', 'commoldura', 'comborda', 'framed', 'enframed', 'frame' ),
+ 'img_frameless' => array( '1', 'senmarco', 'senbordo', 'semmoldura', 'semborda', 'frameless' ),
'img_page' => array( '1', 'páxina=$1', 'páxina $1', 'página=$1', 'página $1', 'page=$1', 'page $1' ),
'img_border' => array( '1', 'bordo', 'borda', 'border' ),
+ 'img_top' => array( '1', 'arriba', 'acima', 'top' ),
+ 'img_text_top' => array( '1', 'texto-arriba', 'text-top' ),
+ 'img_middle' => array( '1', 'medio', 'meio', 'middle' ),
+ 'img_bottom' => array( '1', 'abaixo', 'bottom' ),
+ 'img_text_bottom' => array( '1', 'texto-abaixo', 'text-bottom' ),
+ 'img_link' => array( '1', 'ligazón=$1', 'ligação=$1', 'link=$1' ),
+ 'img_class' => array( '1', 'clase=$1', 'class=$1' ),
+ 'sitename' => array( '1', 'NOMEDOSITIO', 'NOMEDOSITE', 'NOMEDOSÍTIO', 'SITENAME' ),
+ 'localurl' => array( '0', 'URLLOCAL', 'LOCALURL:' ),
+ 'articlepath' => array( '0', 'RUTADOARTIGO', 'ARTICLEPATH' ),
+ 'pageid' => array( '0', 'IDDAPÁXINA', 'PAGEID' ),
+ 'server' => array( '0', 'SERVIDOR', 'SERVER' ),
+ 'servername' => array( '0', 'NOMEDOSERVIDOR', 'SERVERNAME' ),
'grammar' => array( '0', 'GRAMÁTICA:', 'GRAMMAR:' ),
+ 'gender' => array( '0', 'SEXO:', 'GENERO', 'GÊNERO', 'GENDER:' ),
'displaytitle' => array( '1', 'AMOSAROTÍTULO', 'EXIBETITULO', 'EXIBETÍTULO', 'DISPLAYTITLE' ),
'newsectionlink' => array( '1', '__LIGAZÓNDANOVASECCIÓN__', '__LINKDENOVASECAO__', '__LINKDENOVASEÇÃO__', '__LIGACAODENOVASECAO__', '__LIGAÇÃODENOVASEÇÃO__', '__NEWSECTIONLINK__' ),
'language' => array( '0', '#LINGUA:', '#IDIOMA:', '#LANGUAGE:' ),
'hiddencat' => array( '1', '__CATEGORÍAOCULTA__', '__CATEGORIAOCULTA__', '__CATOCULTA__', '__HIDDENCAT__' ),
'pagesincategory' => array( '1', 'PÁXINASNACATEGORÍA', 'PAGINASNACATEGORIA', 'PÁGINASNACATEGORIA', 'PAGINASNACAT', 'PÁGINASNACAT', 'PAGESINCATEGORY', 'PAGESINCAT' ),
'pagesize' => array( '1', 'TAMAÑODAPÁXINA', 'TAMANHODAPAGINA', 'TAMANHODAPÁGINA', 'PAGESIZE' ),
+ 'url_path' => array( '0', 'RUTA', 'PATH' ),
+ 'pagesincategory_all' => array( '0', 'todos', 'all' ),
+ 'pagesincategory_pages' => array( '0', 'páxinas', 'pages' ),
+ 'pagesincategory_subcats' => array( '0', 'subcategorías', 'subcats' ),
+ 'pagesincategory_files' => array( '0', 'ficheiros', 'files' ),
);
$separatorTransformTable = array( ',' => '.', '.' => ',' );
'gotaccount' => "Xa ten unha conta? '''$1'''.",
'gotaccountlink' => 'Acceda ao sistema',
'userlogin-resetlink' => 'Esqueceu os seus datos de rexistro?',
-'createaccountmail' => 'Por correo electrónico',
+'createaccountmail' => 'Utilizar un contrasinal aleatorio temporal e envialo ao enderezo de correo electrónico especificado embaixo',
'createaccountreason' => 'Motivo:',
'badretype' => 'Os contrasinais que inseriu non coinciden.',
'userexists' => 'O nome de usuario que inseriu xa está en uso.
# Special:ActiveUsers
'activeusers' => 'Lista de usuarios activos',
'activeusers-intro' => 'Esta é unha lista cos usuarios que tiveron algún tipo de actividade {{PLURAL:$1|no último día|nos últimos $1 días}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|edición|edicións}} {{PLURAL:$3|no último día|nos últimos $3 días}}',
+'activeusers-count' => '$1 {{PLURAL:$1|acción|accións}} {{PLURAL:$3|no último día|nos últimos $3 días}}',
'activeusers-from' => 'Mostrar os usuarios que comecen por:',
'activeusers-hidebots' => 'Agochar os bots',
'activeusers-hidesysops' => 'Agochar os administradores',
'usermessage-editor' => 'Editor das mensaxes do sistema',
# Watchlist
-'watchlist' => 'A miña lista de vixilancia',
+'watchlist' => 'Lista de vixilancia',
'mywatchlist' => 'Lista de vixilancia',
'watchlistfor2' => 'De $1 $2',
'nowatchlist' => 'Non ten elementos na súa lista de vixilancia.',
'specialpages-group-highuse' => 'Páxinas con máis uso',
'specialpages-group-pages' => 'Listas de páxinas',
'specialpages-group-pagetools' => 'Ferramentas das páxinas',
-'specialpages-group-wiki' => 'Datos do wiki e ferramentas',
+'specialpages-group-wiki' => 'Datos e ferramentas',
'specialpages-group-redirects' => 'Páxinas de redirección especiais',
'specialpages-group-spam' => 'Ferramentas contra o spam',
'logentry-newusers-newusers' => 'Creouse a conta de usuario $1',
'logentry-newusers-create' => 'Creouse a conta de usuario $1',
'logentry-newusers-create2' => '$1 creou a conta de usuario $3',
+'logentry-newusers-byemail' => '$1 creou a conta de usuario $3; o contrasinal enviouse por correo electrónico',
'logentry-newusers-autocreate' => 'A conta de usuario $1 creouse automaticamente',
-'newuserlog-byemail' => 'contrasinal enviado por correo electrónico',
'logentry-rights-rights' => '$1 cambiou o grupo ao que pertence $3 de $4 a $5',
'logentry-rights-rights-legacy' => '$1 cambiou o grupo ao que pertence $3',
'logentry-rights-autopromote' => '$1 foi promovido automaticamente de $4 a $5',
'api-error-nomodule' => 'Erro interno: Non hai ningún módulo de cargas.',
'api-error-ok-but-empty' => 'Erro interno: Non hai resposta do servidor.',
'api-error-overwrite' => 'Non está permitido sobrescribir un ficheiro existente.',
-'api-error-stashfailed' => 'Erro interno: O servidor non puido almacenar os ficheiros temporais.',
+'api-error-stashfailed' => 'Erro interno: O servidor non puido almacenar o ficheiro temporal.',
+'api-error-publishfailed' => 'Erro interno: O servidor non puido publicar o ficheiro temporal.',
'api-error-timeout' => 'O servidor non respondeu no tempo esperado.',
'api-error-unclassified' => 'Houbo un erro descoñecido.',
'api-error-unknown-code' => 'Erro descoñecido: "$1"',
# New logging system
'revdelete-restricted' => 'ἐφηρμοσμένοι περιορισμοὶ διὰ τοὺς ἐπιτρόπους',
'revdelete-unrestricted' => 'αἱρεθέντες περιορισμοὶ διὰ τοὺς ἐπιτρόπους',
-'newuserlog-byemail' => 'σύνθημα ἀπεσταλμένον μέσῳ ἠλ-ταχυδρομείου',
'rightsnone' => '(Οὐδέν)',
# Feedback
'pageinfo-article-id' => 'Syten-ID',
'pageinfo-language' => 'Syteninhaltssproch',
'pageinfo-robot-policy' => 'Suechmaschinestatus',
-'pageinfo-robot-index' => 'Indizierbar',
-'pageinfo-robot-noindex' => 'Nit indizierbar',
+'pageinfo-robot-index' => 'Indexierbar',
+'pageinfo-robot-noindex' => 'Nit indexierbar',
'pageinfo-views' => 'Aazahl Sytenufruef',
'pageinfo-watchers' => 'Aazahl vu Beobachter',
'pageinfo-redirects-name' => 'Wyterleitige zue däre Syte',
'logentry-newusers-create' => 'Benutzerkonto $1 isch aagleit wore.',
'logentry-newusers-create2' => 'Benutzerkonto $3 isch aalgeit wore vu $1',
'logentry-newusers-autocreate' => 'S Benutzerchonto $1 isch automatisch erstellt worde',
-'newuserlog-byemail' => 's Passwort isch per E-Mail gschickt wore',
'logentry-rights-rights' => '$1 het d Gruppezuegherigkeit fir $3 vu $4 uf $5 gänderet',
'logentry-rights-rights-legacy' => '$1 het d Gruppezuegherigkeit fir $3 gänderet',
'logentry-rights-autopromote' => '$1 isch automatisch vu $4 zue $5 zuegordnet wore',
# Move page
'move-page' => '$1 ખસેડો',
'move-page-legend' => 'પાનું ખસેડો',
-'movepagetext' => "નà«\80àª\9aà«\87નà«\81àª\82 ફà«\8bરà«\8dમ વાપરવાથà«\80 àª\86 પાનાનà«\81àª\82 નામ બદલાàª\87 àª\9cશà«\87 àª\85નà«\87 તà«\87માàª\82 રહà«\87લà«\80 બધà«\80 મહિતિ નવા નામે બનેલાં પાનામાં ખસેડાઇ જશે.
+'movepagetext' => "નà«\80àª\9aà«\87નà«\81àª\82 ફà«\8bરà«\8dમ વાપરવાથà«\80 àª\86 પાનાનà«\81àª\82 નામ બદલાàª\87 àª\9cશà«\87 àª\85નà«\87 તà«\87માàª\82 રહà«\87લà«\80 બધà«\80 માહિતà«\80 નવા નામે બનેલાં પાનામાં ખસેડાઇ જશે.
જુનું પાનું, નવા બનેલા પાના તરફ વાળતું થશે.
તમે આવા અન્યત્ર વાળેલાં પનાઓને આપોઆપ જ તેના મુળ શીર્ષક સાથે જોડી શકશો.
જો તમે તેમ કરવા ના ઇચ્છતા હોવ તો, [[Special:DoubleRedirects|બેવડા]] અથવા [[Special:BrokenRedirects|ત્રુટક કડી વાળા]] અન્યત્ર વાળેલા પાનાઓની યાદી ચકાસીને ખાતરી કરી લેશો.
'logentry-newusers-create' => 'સભ્ય ખાતું $1 બનાવવામાં આવ્યું',
'logentry-newusers-create2' => 'સભ્ય ખાતું $3 $1 વડે બનાવવામાં આવ્યું',
'logentry-newusers-autocreate' => 'એકાઉન્ટ $1 બનાવનાર આપોઆપ',
-'newuserlog-byemail' => 'ગુપ્ત સંજ્ઞા ઇ-મેલ દ્વારા મોકલાઇ છે.',
'rightsnone' => '(કંઈ નહી)',
# Feedback
'gotaccount' => 'כבר נרשמתם? $1.',
'gotaccountlink' => 'כניסה לחשבון',
'userlogin-resetlink' => 'שכחת את פרטי הכניסה?',
-'createaccountmail' => '×\91×\90×\9eצע×\95ת ×\93×\95×\90"×\9c',
+'createaccountmail' => 'ש×\99×\9e×\95ש ×\91ס×\99ס×\9e×\94 ×\96×\9e× ×\99ת ×\90קר×\90×\99ת ×\95ש×\9c×\99×\97ת×\94 ×\9c×\9bת×\95×\91ת ×\94×\93×\95×\90"×\9c ×\94×\9eצ×\95×\99× ×ª ×\9c×\94×\9c×\9f',
'createaccountreason' => 'סיבה:',
'badretype' => 'הסיסמאות שהזנתם אינן מתאימות.',
'userexists' => 'שם המשתמש שבחרתם כבר נמצא בשימוש.
# Special:ActiveUsers
'activeusers' => 'רשימת משתמשים פעילים',
'activeusers-intro' => 'זוהי רשימת המשתמשים שביצעו פעולה כלשהי {{PLURAL:$1|ביום האחרון|ביומיים האחרונים|ב־$1 הימים האחרונים}}.',
-'activeusers-count' => '{{PLURAL:$1|ער×\99×\9b×\94 ×\90×\97ת|$1 ער×\99×\9bות}} ב{{PLURAL:$3|יום האחרון|יומיים האחרונים|־$3 הימים האחרונים}}',
+'activeusers-count' => '{{PLURAL:$1|פע×\95×\9c×\94 ×\90×\97ת|$1 פע×\95×\9cות}} ב{{PLURAL:$3|יום האחרון|יומיים האחרונים|־$3 הימים האחרונים}}',
'activeusers-from' => 'הצגת משתמשים החל מ:',
'activeusers-hidebots' => 'הסתרת בוטים',
'activeusers-hidesysops' => 'הסתרת מפעילי מערכת',
'usermessage-editor' => 'שולח הודעות המערכת',
# Watchlist
-'watchlist' => 'רשימת המעקב שלי',
+'watchlist' => 'רשימת המעקב',
'mywatchlist' => 'רשימת מעקב',
'watchlistfor2' => 'עבור $1 $2',
'nowatchlist' => 'אין דפים ברשימת המעקב.',
'enotif_mailer' => 'הודעות {{SITENAME}}',
'enotif_reset' => 'סימון כל הדפים כאילו נצפו',
'enotif_impersonal_salutation' => 'משתמש של {{SITENAME}}',
-'enotif_subject_deleted' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נמחק על ידי {{gender:$2|$2}}',
-'enotif_subject_created' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נוצר על ידי {{gender:$2|$2}}',
-'enotif_subject_moved' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} הועבר על ידי {{gender:$2|$2}}',
-'enotif_subject_restored' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שוחזר על ידי {{gender:$2|$2}}',
-'enotif_subject_changed' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שונה על ידי {{gender:$2|$2}}',
-'enotif_body_intro_deleted' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נמחק ב־$PAGEEDITDATE על ידי {{gender:$2|$2}}, ראו $3.',
-'enotif_body_intro_created' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נוצר ב־$PAGEEDITDATE על ידי {{gender:$2|$2}}, ראו $3 לגרסה הנוכחית.',
-'enotif_body_intro_moved' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} הועבר ב־$PAGEEDITDATE על ידי {{gender:$2|$2}}, ראו $3 לגרסה הנוכחית.',
-'enotif_body_intro_restored' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שוחזר ב־$PAGEEDITDATE על ידי {{gender:$2|$2}}, ראו $3 לגרסה הנוכחית.',
-'enotif_body_intro_changed' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שונה ב־$PAGEEDITDATE על ידי {{gender:$2|$2}}, ראו $3 לגרסה הנוכחית.',
+'enotif_subject_deleted' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נמחק על ידי $2',
+'enotif_subject_created' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נוצר על ידי $2',
+'enotif_subject_moved' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} הועבר על ידי $2',
+'enotif_subject_restored' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שוחזר על ידי $2',
+'enotif_subject_changed' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שונה על ידי $2',
+'enotif_body_intro_deleted' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נמחק ב־$PAGEEDITDATE על ידי $2, ראו $3.',
+'enotif_body_intro_created' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נוצר ב־$PAGEEDITDATE על ידי $2, ראו $3 לגרסה הנוכחית.',
+'enotif_body_intro_moved' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} הועבר ב־$PAGEEDITDATE על ידי $2, ראו $3 לגרסה הנוכחית.',
+'enotif_body_intro_restored' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שוחזר ב־$PAGEEDITDATE על ידי $2, ראו $3 לגרסה הנוכחית.',
+'enotif_body_intro_changed' => 'הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שונה ב־$PAGEEDITDATE על ידי $2, ראו $3 לגרסה הנוכחית.',
'enotif_lastvisited' => 'ראו $1 לכל השינויים מאז ביקורכם האחרון.',
'enotif_lastdiff' => 'ראו $1 לשינוי זה.',
'enotif_anon_editor' => 'משתמש אנונימי $1',
'specialpages-group-highuse' => 'דפים בשימוש רב',
'specialpages-group-pages' => 'רשימות דפים',
'specialpages-group-pagetools' => 'כלים לדפים',
-'specialpages-group-wiki' => 'מידע וכלים על האתר',
+'specialpages-group-wiki' => 'מידע וכלים',
'specialpages-group-redirects' => 'הפניות מדפים מיוחדים',
'specialpages-group-spam' => 'כלי ספאם',
'logentry-newusers-newusers' => 'חשבון המשתמש $1 נוצר',
'logentry-newusers-create' => 'חשבון המשתמש $1 נוצר',
'logentry-newusers-create2' => 'חשבון המשתמש $3 נוצר על ידי $1',
+'logentry-newusers-byemail' => 'חשבון המשתמש $3 נוצר על ידי $1 והסיסמה נשלחה בדוא"ל',
'logentry-newusers-autocreate' => 'חשבון המשתמש $1 נוצר אוטומטית',
-'newuserlog-byemail' => 'הסיסמה נשלחה בדוא"ל',
'logentry-rights-rights' => '$1 שינה את ההרשאות של $3 מ$4 ל$5',
'logentry-rights-rights-legacy' => '$1 שינה את ההרשאות של $3',
'logentry-rights-autopromote' => '$1 קודם אוטומטית מ$4 ל$5',
'api-error-ok-but-empty' => 'שגיאה פנימית: אין תשובה מהשרת.',
'api-error-overwrite' => 'לא מותרת החלפת קובץ קיים.',
'api-error-stashfailed' => 'שגיאה פנימית: השרת נכשל באחסון הקובץ הזמני.',
+'api-error-publishfailed' => 'שגיאה פנימית: השרת נכשל בפרסום הקובץ הזמני.',
'api-error-timeout' => 'השרת לא השיב בזמן המצופה.',
'api-error-unclassified' => 'אירעה שגיאה בלתי ידועה.',
'api-error-unknown-code' => 'שגיאה בלתי ידועה: "$1".',
'Allmessages' => array( 'सभी_सन्देश', 'सभी_संदेश' ),
'Allpages' => array( 'सभी_पृष्ठ', 'सभी_पन्ने' ),
'Ancientpages' => array( 'पुराने_पृष्ठ', 'पुराने_पन्ने' ),
- 'Badtitle' => array( 'खराब_शीर्षक' ),
+ 'Badtitle' => array( 'à¤\96़राब_शà¥\80रà¥\8dषà¤\95' ),
'Blankpage' => array( 'रिक्त_पृष्ठ', 'खाली_पृष्ठ' ),
'Block' => array( 'अवरोधन', 'आइ_पी_अवरोधन', 'सदस्य_अवरोधन' ),
'Blockme' => array( 'स्वावरोधन', 'स्व_अवरोधन', 'मुझे_रोकिये' ),
'Filepath' => array( 'फ़ाइल_पथ', 'फाइल_पथ', 'संचिका_पथ' ),
'Import' => array( 'आयात' ),
'Invalidateemail' => array( 'अप्रमाणित_ईमेल', 'अमान्य_ईमेल', 'ईमेल_अमान्य_करें' ),
+ 'JavaScriptTest' => array( 'जावा_स्क्रिप्ट_परीक्षा' ),
'BlockList' => array( 'अवरोध_सूची', 'अवरोधित_सदस्य_सूची', 'अवरोधित_आइ_पी_सूची' ),
'LinkSearch' => array( 'बाहरी_कड़ी_खोज' ),
'Listadmins' => array( 'प्रबन्धक_सूची', 'प्रबंधक_सूची' ),
'MIMEsearch' => array( 'माइम_खोज' ),
'Mostcategories' => array( 'सर्वाधिक_श्रेणीकृत', 'सर्वाधिक_श्रेणियाँ' ),
'Mostimages' => array( 'सर्वाधिक_प्रयुक्त_फ़ाइलें', 'सर्वाधिक_प्रयुक्त_फाइलें' ),
+ 'Mostinterwikis' => array( 'ज़्यादा_इंटेर्विकियाँ' ),
'Mostlinked' => array( 'सर्वाधिक_जुड़े_पृष्ठ' ),
'Mostlinkedcategories' => array( 'सर्वाधिक_प्रयुक्त_श्रेणियाँ' ),
'Mostlinkedtemplates' => array( 'सर्वाधिक_प्रयुक्त_साँचे' ),
'Withoutinterwiki' => array( 'अन्तरविकि_रहित', 'अंतरविकि_रहित' ),
);
+$magicWords = array(
+ 'redirect' => array( '0', '#अनुप्रेषित', '#REDIRECT' ),
+);
+
$digitTransformTable = array(
'0' => '०', # ०
'1' => '१', # १
'logentry-newusers-create' => 'सदस्य खाता $1 बनाया गया',
'logentry-newusers-create2' => 'सदस्य खाता $3 $1 द्वारा बनाया गया था',
'logentry-newusers-autocreate' => 'खाते $1 स्वचालित रूप से बनाया गया',
-'newuserlog-byemail' => 'कूटशब्द इ-मेल द्वारा भेजा गया हैं',
'logentry-rights-rights' => '$1 ने $3 के सदस्य समूह $4 से बदलकर $5 किये',
'logentry-rights-rights-legacy' => '$1 ने $3 के सदस्य समूह बदले',
'logentry-rights-autopromote' => '$1 के सदस्य समूह स्वतः $4 से बदलकर $5 किये गए',
# New logging system
'revdelete-restricted' => 'sysops pe llabu restrictions',
'revdelete-unrestricted' => 'sysops se hatawa gae rukawat',
-'newuserlog-byemail' => 'password ke e-mail se bheja gais hai',
'logentry-rights-rights' => '$1 $3 ke group ke membership ke $4 se badal ke $5 kar dia hae',
'logentry-rights-rights-legacy' => '$1 $3 ke group membership ke badal dia hae',
'logentry-rights-autopromote' => '$1 ke apne se $2 se $3 ke promotion dewa gais',
'category-subcat-count-limited' => 'Ova kategorija ima {{PLURAL:$1|podkategoriju|$1 podkategorije|$1 podkategorija}}.',
'category-article-count' => '{{PLURAL:$2|Ova kategorija sadrži $2 članak.|{{PLURAL:$1|Prikazano je $1 članak|Prikazana su $1 članka|Prikazano je $1 članaka}} od njih $2 ukupno.}}',
'category-article-count-limited' => '{{PLURAL:$1|stranica je|$1 stranice su|$1 stranica je}} u ovoj kategoriji.',
-'category-file-count' => '{{PLURAL:$2|Ova kategorija sadrži samo sljedeću datoteku.|{{PLURAL:$1|datoteka je|$1 datoteke su|$1 datoteka je}} u ovoj kategoriji, od njih $2 ukupno.}}',
+'category-file-count' => 'Ova kategorija sadrži $2 {{PLURAL:$2|datoteku|datoteke|datoteka}}. {{PLURAL:$1|Slijedi $1 datoteka|Slijede $1 datoteke|Slijedi $1 datoteka}}.',
'category-file-count-limited' => '{{PLURAL:$1|datoteka je|$1 datoteke su|$1 datoteka su}} u ovoj kategoriji.',
'listingcontinuesabbrev' => 'nast.',
'index-category' => 'Indeksirane stranice',
'logentry-newusers-create' => 'Suradnički račun $1 je otvoren.',
'logentry-newusers-create2' => '$1 je {{GENDER:$2|otvorio|otvorila}} suradnički račun $3',
'logentry-newusers-autocreate' => 'Suradnički račun $1 je automatski stvoren',
-'newuserlog-byemail' => 'lozinka poslana e-poštom',
'logentry-rights-rights' => '$1 {{GENDER:$2|je promijenio|je promijenila}} suradnička prava računa $3 iz $4 u $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|je promijenio|je promijenila|je promijenio}} članstvo grupe suradničkog računa $3',
'logentry-rights-autopromote' => 'Suradničkom računu $1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5',
'logentry-newusers-create' => 'Wužiwarske konto $1 je so załožiło',
'logentry-newusers-create2' => '$1 załoži wužiwarske konto $3',
'logentry-newusers-autocreate' => 'Konto $1 je so awtomatisce załožiło',
-'newuserlog-byemail' => 'Hesło z e-mejlku pósłane',
'logentry-rights-rights' => '$1 změni skupinske čłonstwo za $3 z $4 do $5',
'logentry-rights-rights-legacy' => '$1 změni skupinske čłonstwo za $3',
'logentry-rights-autopromote' => '$1 powyši so awtomatisce wot $4 do $5',
# New logging system
'revdelete-restricted' => 'aplike restriksyon sa yo pou administratè yo',
-'newuserlog-byemail' => 'mopas an voye pa imèl',
);
* @author BáthoryPéter
* @author CERminator
* @author Cerasus
+ * @author Csigabi
* @author Dani
* @author Dj
* @author Dorgan
'passwordreset-capture-help' => 'Ha kipipálod a dobozt, amellett, hogy kiküldődik az üzenet a felhasználónak, megjelenik számodra (az ideiglenes jelszavakkal együtt)',
'passwordreset-email' => 'E-mail cím:',
'passwordreset-emailtitle' => 'A(z) {{SITENAME}}-fiók adatai',
-'passwordreset-emailtext-ip' => 'Valaki (vélhetően Te, a $1 IP-címrő)l emlékeztetők kért a {{SITENAME}} ($4) oldalon felvett fiókokról. A következő felhasználói {{PLURAL:$3|fiók van|fiókok vannak}} hozzárendelve ehhez az e-mail címhez:
+'passwordreset-emailtext-ip' => 'Valaki (vélhetően Te, a $1 IP-címről) emlékeztetőt kért a {{SITENAME}} ($4) oldalon felvett fiókokról. A következő felhasználói {{PLURAL:$3|fiók van|fiókok vannak}} hozzárendelve ehhez az e-mail címhez:
$2
$2
{{PLURAL:$3|Ez az ideiglenes jelszó|Ezek az ideiglenes jelszavak}} $5 nap múlva {{PLURAL:$3|jár|járnak}} le. Jelentkezz be, és cseréld le a jelszavadat. Ha valaki más kérte az emlékeztetőt, vagy eszedbe jutott a régi jelszó, és nem akarod lecserélni a jelszavadat, hagyd figyelmen kívül ezt az üzenetet, és használd a régi jelszavadat.',
-'passwordreset-emailelement' => 'Felhaználónév: $1
+'passwordreset-emailelement' => 'Felhasználónév: $1
Ideiglenes jelszó: $2',
'passwordreset-emailsent' => 'Emlékeztető e-mail elküldve.',
'passwordreset-emailsent-capture' => 'Az alább látható emlékeztető e-mail elküldve.',
'logentry-newusers-create' => '$1 felhasználói fiók létrehozva',
'logentry-newusers-create2' => '$1 létrehozta $3 felhasználói fiókját',
'logentry-newusers-autocreate' => '$1 fiók automatikusan létrehozva',
-'newuserlog-byemail' => 'a jelszót kiküldtük a megadott e-mail címre',
'logentry-rights-rights' => '$1 megváltoztatta $3 csoport tagságát erről: $4 erre: $5',
'logentry-rights-rights-legacy' => '$1 megváltoztatta $3 csoport tagságát',
'logentry-rights-autopromote' => '$1 automatikusan előléptetve erről: $4 erre: $5',
'Allmessages' => array( 'Բոլորուղերձները' ),
'Allpages' => array( 'Բոլորէջերը' ),
'Ancientpages' => array( 'Ամենահինէջերը' ),
- 'Block' => array( 'Արգելափակելip' ),
+ 'Block' => array( 'Արգելափակել այփին' ),
'Blockme' => array( 'Արգելափակել' ),
'Booksources' => array( 'Գրքայինաղբյուրները' ),
'BrokenRedirects' => array( 'Կոտրվածվերահղումները' ),
'Export' => array( 'Արտահանելէջերը' ),
'FileDuplicateSearch' => array( 'Կրկնօրինակֆայլերիորոնում' ),
'Import' => array( 'Ներմուծել' ),
- 'BlockList' => array( 'ԱրգելափակվածIPները' ),
+ 'BlockList' => array( 'Արգելափակված այփի ները' ),
'Listadmins' => array( 'Ադմիններիցանկը' ),
'Listfiles' => array( 'Պատկերներիցանկը' ),
'Listredirects' => array( 'Ցույցտալվերահղումները' ),
'logentry-newusers-newusers' => '$1 մասնակիցը ստեղծեց նոր հաշիվ',
'logentry-newusers-create' => '$1 մասնակիցը ստեղծեց նոր հաշիվ',
'logentry-newusers-create2' => '$1 Ստեղծեց նոր հաշիվ $3',
-'newuserlog-byemail' => 'Գաղտնաբառն ուղարկված է էլ․ փոստով',
'rightsnone' => '(ոչ մի)',
# Feedback
'actionthrottled' => 'Action limitate',
'actionthrottledtext' => 'Como mesura anti-spam, tu es limitate de executar iste action troppo de vices durante un curte periodo de tempore, e tu ha excedite iste limite.
Per favor reprova post alcun minutas.',
-'protectedpagetext' => 'Iste pagina ha essite protegite contra modificationes.',
+'protectedpagetext' => 'Iste pagina ha essite protegite pro impedir le modification o altere actiones.',
'viewsourcetext' => 'Tu pote vider e copiar le codice-fonte de iste pagina:',
'viewyourtext' => "Tu pote vider e copiar le fonte de '''tu modificationes''' de iste pagina:",
'protectedinterface' => 'Iste pagina contine texto pro le interfacie del software de iste wiki, e es protegite pro impedir le abuso. Pro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de traduction de MediaWiki.',
'''Non submitte material subjecte a copyright sin autorisation expresse!'''",
'longpageerror' => "'''Error: Le texto que tu submitteva occupa {{PLURAL:$1|un kilobyte|$1 kilobytes}}, excedente le maximo de {{PLURAL:$2|un kilobyte|$2 kilobytes}}.'''
Illo non pote esser salveguardate.",
-'readonlywarning' => "'''Attention: Le base de datos ha essite blocate pro mantenentia, ergo tu non pote salveguardar tu modificationes in iste momento.'''
-Nos recommenda copiar-e-collar le texto in un file de texto e salveguardar lo pro plus tarde.
+'readonlywarning' => "'''Attention: Le base de datos ha essite blocate pro mantenentia. Tu non pote salveguardar tu modificationes in iste momento.'''
+Nos recommenda copiar-e-collar le texto in un file e salveguardar lo pro plus tarde.
-Le administrator qui lo blocava dava iste explication: $1",
+Le administrator qui ha blocate le base de datos ha fornite iste explication: $1",
'protectedpagewarning' => "'''Attention: Iste pagina ha essite protegite de sorta que solmente usatores con privilegios de administrator pote modificar lo.''' Le ultime entrata del registro es fornite hic infra pro referentia:",
'semiprotectedpagewarning' => "'''Nota:''' Iste pagina ha essite protegite de maniera que solmente usatores registrate pote modificar lo. Le ultime entrata del registro es fornite hic infra pro referentia:",
'cascadeprotectedwarning' => "'''Attention:''' Iste pagina ha essite protegite de maniera que solmente administratores pote modificar lo, proque illo es includite in le protection in cascada del sequente {{PLURAL:$1|pagina|paginas}}:",
# Special:ActiveUsers
'activeusers' => 'Lista de usatores active',
'activeusers-intro' => 'Isto es un lista de usatores que habeva alcun typo de activitate intra le ultime $1 {{PLURAL:$1|die|dies}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|modification|modificationes}} in le ultime {{PLURAL:$3|die|$3 dies}}',
+'activeusers-count' => '$1 {{PLURAL:$1|action|actiones}} in le ultime {{PLURAL:$3|die|$3 dies}}',
'activeusers-from' => 'Presentar usatores a partir de:',
'activeusers-hidebots' => 'Celar bots',
'activeusers-hidesysops' => 'Celar administratores',
'usermessage-editor' => 'Messagero del systema',
# Watchlist
-'watchlist' => 'Mi observatorio',
+'watchlist' => 'Observatorio',
'mywatchlist' => 'Observatorio',
'watchlistfor2' => 'De $1 $2',
'nowatchlist' => 'Tu non ha paginas sub observation.',
'watchnologin' => 'Tu non ha aperite un session',
'watchnologintext' => 'Tu debe [[Special:UserLogin|aperir un session]] pro modificar tu observatorio.',
'addwatch' => 'Adder al observatorio',
-'addedwatchtext' => "Le pagina \"[[:\$1]]\" ha essite addite a tu [[Special:Watchlist|observatorio]].
-Le modificationes futur in iste pagina e in su pagina de discussion essera listate ibi,
-e le pagina apparera '''in litteras grasse''' in le [[Special:RecentChanges|lista de modificationes recente]] pro
-render lo plus facile de deteger.",
+'addedwatchtext' => 'Le pagina "[[:$1]]" ha essite addite a tu [[Special:Watchlist|observatorio]].
+Le modificationes futur in iste pagina e in le pagina de discussion associate essera listate in illo.',
'removewatch' => 'Remover del observatorio',
'removedwatchtext' => 'Le pagina "[[:$1]]" ha essite removite de [[Special:Watchlist|tu observatorio]].',
'watch' => 'Observar',
'protect-cascadeon' => 'Iste pagina es actualmente protegite proque illo es includite in le sequente {{PLURAL:$1|pagina, le qual|paginas, le quales}} ha activate le protection in cascada.
Tu pote cambiar le nivello de protection de iste pagina, ma isto non cambiara le effecto del protection in cascada.',
'protect-default' => 'Permitter tote le usatores',
-'protect-fallback' => 'Requirer permission de "$1"',
-'protect-level-autoconfirmed' => 'Blocar usatores nove e non registrate',
-'protect-level-sysop' => 'Administratores solmente',
+'protect-fallback' => 'Permitter solmente usatores con le permission de "$1"',
+'protect-level-autoconfirmed' => 'Permitter solmente usatores autoconfirmate',
+'protect-level-sysop' => 'Permitter solmente administratores',
'protect-summary-cascade' => 'in cascada',
'protect-expiring' => 'expira le $1 (UTC)',
'protect-expiring-local' => 'expira le $1',
'blanknamespace' => '(Principal)',
# Contributions
-'contributions' => 'Contributiones del usator',
+'contributions' => 'Contributiones del {{GENDER:$1|usator}}',
'contributions-title' => 'Contributiones del usator $1',
'mycontris' => 'Contributiones',
'contribsub2' => 'Pro $1 ($2)',
# Move page
'move-page' => 'Renominar $1',
'move-page-legend' => 'Renominar pagina',
-'movepagetext' => "Per medio del formulario infra tu pote renominar un pagina, transferente tote su historia al nove nomine.
+'movepagetext' => "Per medio del formulario hic infra tu pote renominar un pagina, transferente tote su historia al nove nomine.
Le titulo anterior devenira un pagina de redirection verso le nove titulo.
Tu pote actualisar automaticamente le redirectiones que puncta verso le titulo original.
-Si tu prefere non facer isto, assecura te de reparar omne redirectiones [[Special:DoubleRedirects|duple]] o [[Special:BrokenRedirects|rupte]].
+Si tu prefere non facer isto, non oblida de reparar omne redirectiones [[Special:DoubleRedirects|duple]] o [[Special:BrokenRedirects|rupte]].
Tu ha le responsabilitate de assecurar que le ligamines continua a punctar verso le paginas correcte.
-Nota que le pagina '''non''' essera renominate si existe ja un pagina sub le nove titulo, salvo si illo es vacue o un redirection e non ha un historia de modificationes passate.
-Isto vole dicer que tu pote renominar un pagina retro a su titulo original si tu ha committite un error, ben que tu non pote superscriber un pagina existente.
+Nota que le pagina '''non''' essera renominate si existe jam un pagina sub le nove titulo, excepte si iste es un redirection sin historia de modificationes passate.
+Isto te lassa le possibilitate de restaurar le titulo original de un pagina si tu ha committite un error, sin permitter te de supplantar un pagina existente.
-'''ATTENTION!'''
+'''Attention!'''
Isto pote esser un cambio drastic e inexpectate pro un pagina popular;
per favor assecura te de haber comprendite le consequentias de isto ante de continuar.",
'movepagetext-noredirectfixer' => "Per medio del formulario infra tu pote renominar un pagina, transferente tote su historia al nove nomine.
'logentry-newusers-create' => 'Le conto de usator $1 ha essite create',
'logentry-newusers-create2' => 'Le conto de usator $3 ha essite create per $1',
'logentry-newusers-autocreate' => 'Le conto $1 ha essite create automaticamente',
-'newuserlog-byemail' => 'contrasigno inviate per e-mail',
'logentry-rights-rights' => '$1 cambiava le appertinentia a gruppos pro $3 de $4 a $5',
'logentry-rights-rights-legacy' => '$1 cambiava le appertinentia a gruppos pro $3',
'logentry-rights-autopromote' => '$1 ha essite automaticamente promovite de $4 a $5',
'newwindow' => '(buka di jendela baru)',
'cancel' => 'Batalkan',
'moredotdotdot' => 'Lainnya...',
+'morenotlisted' => 'Selanjutnya...',
'mypage' => 'Halaman',
'mytalk' => 'Pembicaraan',
'anontalk' => 'Pembicaraan IP ini',
'gotaccount' => "Sudah terdaftar sebagai pengguna? '''$1'''.",
'gotaccountlink' => 'Masuk log',
'userlogin-resetlink' => 'Lupa detail info masuk Anda?',
-'createaccountmail' => 'melalui surel',
+'createaccountmail' => 'Gunakan kata sandi acak sementara dan kirimkan ke surel yang tercantum di bawah',
'createaccountreason' => 'Alasan:',
'badretype' => 'Kata sandi yang Anda masukkan salah.',
'userexists' => 'Nama pengguna yang dimasukkan telah digunakan.
# E-mail sending
'php-mail-error-unknown' => 'Kesalahan yang tidak dikenal dalam fungsi mail() PHP',
'user-mail-no-addy' => 'Mencoba mengirimkan surel tanpa alamat surel.',
+'user-mail-no-body' => 'Mencoba untuk mengirim surel kosong atau terlalu pendek.',
# Change password dialog
'resetpass' => 'Ganti kata sandi',
'copyrightwarning' => "Perhatikan bahwa semua kontribusi terhadap {{SITENAME}} dianggap dilisensikan sesuai dengan $2 (lihat $1 untuk informasi lebih lanjut). Jika Anda tidak ingin tulisan Anda disunting dan disebarkan ke halaman web yang lain, jangan kirimkan ke sini.<br />Anda juga berjanji bahwa ini adalah hasil karya Anda sendiri, atau disalin dari sumber milik umum atau sumber bebas yang lain. '''JANGAN KIRIMKAN KARYA YANG DILINDUNGI HAK CIPTA TANPA IZIN!'''",
'copyrightwarning2' => "Perhatikan bahwa semua kontribusi terhadap {{SITENAME}} dapat disunting, diubah, atau dihapus oleh penyumbang lainnya. Jika Anda tidak ingin tulisan Anda disunting orang lain, jangan kirimkan ke sini.<br />Anda juga berjanji bahwa ini adalah hasil karya Anda sendiri, atau disalin dari sumber milik umum atau sumber bebas yang lain (lihat $1 untuk informasi lebih lanjut). '''JANGAN KIRIMKAN KARYA YANG DILINDUNGI HAK CIPTA TANPA IZIN!'''",
'longpageerror' => "'''KESALAHAN: Teks yang Anda kirimkan sebesar $1 kilobita, yang berarti lebih besar daripada jumlah maksimum $2 kilobita. Teks tidak dapat disimpan.'''",
-'readonlywarning' => "'''PERINGATAN: Basis data sedang dikunci karena pemeliharaan, sehingga saat ini Anda tidak dapat menyimpan hasil suntingan Anda.
-Anda mungkin perlu menyalin teks suntingan Anda ini dan menyimpannya ke sebuah berkas teks dan memuatkannya lagi setelah pemeliharaan selesai.'''
+'readonlywarning' => "'''PERINGATAN: Basis data sedang dikunci karena pemeliharaan, sehingga saat ini Anda tidak dapat menyimpan hasil suntingan Anda.'''
+Anda mungkin perlu menyalin teks suntingan Anda ini dan menyimpannya ke sebuah berkas teks dan memuatkannya lagi kemudian.
Pengurus yang mengunci basis data memberikan penjelasan berikut: $1",
'protectedpagewarning' => "'''Peringatan: Halaman ini sedang dilindungi sehingga hanya pengguna dengan hak akses pengurus yang dapat menyuntingnya.'''
'undo-success' => 'Suntingan ini dapat dibatalkan. Tolong cek perbandingan di bawah untuk meyakinkan bahwa benar itu yang Anda ingin lakukan, lalu simpan perubahan tersebut untuk menyelesaikan pembatalan suntingan.',
'undo-failure' => 'Suntingan ini tidak dapat dibatalkan karena konflik penyuntingan antara.',
'undo-norev' => 'Suntingan ini tidak dapat dibatalkan karena halaman tidak ditemukan atau telah dihapuskan.',
-'undo-summary' => 'Membatalkan revisi $1 oleh [[Special:Contributions/$2|$2]] ([[Pembicaraan pengguna:$2|bicara]])',
+'undo-summary' => 'Membatalkan revisi $1 oleh [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])',
# Account creation failure
'cantcreateaccounttitle' => 'Akun tak dapat dibuat',
# Special:ActiveUsers
'activeusers' => 'Daftar pengguna aktif',
'activeusers-intro' => 'Berikut adalah daftar pengguna yang memiliki suatu bentuk aktivitas selama paling tidak $1 {{PLURAL:$1|hari|hari}} terakhir.',
-'activeusers-count' => '$1 {{PLURAL:$1||}}suntingan selama {{PLURAL:$3||}}$3 hari terakhir',
+'activeusers-count' => '$1 {{PLURAL:$1|aktivitas|aktivitas}} dalam {{PLURAL:$3|hari|$3 hari}} terakhir',
'activeusers-from' => 'Tampilkan pengguna mulai dari:',
'activeusers-hidebots' => 'Sembunyikan bot',
'activeusers-hidesysops' => 'Sembunyikan pengurus',
'enotif_anon_editor' => 'pengguna anonim $1',
'enotif_body' => 'Halo $WATCHINGUSERNAME,
-
-Halaman $PAGETITLE di {{SITENAME}} telah $CHANGEDORCREATED pada $PAGEEDITDATE oleh $PAGEEDITOR, lihat $PAGETITLE_URL untuk revisi terakhir.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
Ringkasan suntingan: $PAGESUMMARY $PAGEMINOREDIT
Kami tidak akan mengirim pemberitahuan lain bila ada perubahan lebih lanjut sampai Anda mengunjungi halaman ini.
Anda juga dapat menyetel ulang tanda pemberitahuan untuk semua halaman pantauan pada daftar pantauan Anda.
- Sistem pemberitahuan situs {{SITENAME}}
+Sistem pemberitahuan situs {{SITENAME}}
--
Untuk mengubah setelan pemberitahuan surel, kunjungi
'prot_1movedto2' => '[[$1]] dipindahkan ke [[$2]]',
'protect-badnamespace-title' => 'Ruang nama yang tidak dapat dilindungi',
'protect-badnamespace-text' => 'Halaman dalam ruang nama ini tidak dapat dilindungi.',
+'protect-norestrictiontypes-text' => 'Halaman ini tidak dapat dilindungi karena tidak ada tipe pembatasan yang tersedia.',
+'protect-norestrictiontypes-title' => 'Halaman tak-dilindungi',
'protect-legend' => 'Konfirmasi pelindungan',
'protectcomment' => 'Alasan:',
'protectexpiry' => 'Kedaluwarsa:',
'protect-locked-access' => "Akun Anda tidak dapat memiliki hak untuk mengganti tingkat pelindungan halaman. Berikut adalah konfigurasi saat ini untuk halaman '''$1''':",
'protect-cascadeon' => 'Halaman ini sedang dilindungi karena disertakan dalam {{PLURAL:$1|halaman|halaman-halaman}} berikut yang telah dilindungi dengan pilihan pelindungan runtun diaktifkan. Anda dapat mengganti tingkat pelindungan untuk halaman ini, tapi hal tersebut tidak akan mempengaruhi pelindungan runtun.',
'protect-default' => 'Izinkan semua pengguna',
-'protect-fallback' => 'Memerlukan hak akses "$1"',
-'protect-level-autoconfirmed' => 'Blokir pengguna baru dan tak terdaftar',
-'protect-level-sysop' => 'Hanya pengurus',
+'protect-fallback' => 'Hanya untuk pengguna dengan izin "$1"',
+'protect-level-autoconfirmed' => 'Hanya untuk pengguna terdaftar otomatis',
+'protect-level-sysop' => 'Hanya untuk pengurus',
'protect-summary-cascade' => 'runtun',
'protect-expiring' => 'kedaluwarsa $1 (UTC)',
'protect-expiring-local' => 'kedaluwarsa $1',
# Move page
'move-page' => 'Pindahkan $1',
'move-page-legend' => 'Pindahkan halaman',
-'movepagetext' => "Formulir di bawah ini digunakan untuk mengubah nama suatu halaman dan memindahkan semua data sejarah ke nama baru. Judul yang lama akan menjadi halaman peralihan menuju judul yang baru. Pranala kepada judul lama tidak akan berubah. Pastikan untuk memeriksa terhadap peralihan halaman yang rusak atau berganda setelah pemindahan. Anda bertanggung jawab untuk memastikan bahwa pranala terus menyambung ke halaman yang seharusnya.
+'movepagetext' => "Menggunakan formulir di bawah ini akan mengubah nama suatu halaman dan memindahkan semua data sejarah ke nama baru.
+Judul lama akan menjadi halaman pengalihan ke judul baru.
+Anda dapat memperbarui pengalihan yang menuju ke judul asli secara otomatis.
+Jika Anda memilih tidak, pastikan untuk memeriksa
+[[Special:DoubleRedirects|double]] atau [[Special:BrokenRedirects|broken redirects]].
+Anda bertanggung jawab untuk memastikan bahwa pranala terhubung ke tempat seharusnya.
-Perhatikan bahwa halaman '''tidak''' akan dipindah apabila telah ada halaman yang menggunakan judul yang baru, kecuali bila halaman tersebut kosong atau merupakan halaman peralihan dan tidak mempunyai sejarah penyuntingan. Ini berarti Anda dapat mengubah nama halaman kembali seperti semula apabila Anda membuat kesalahan, dan Anda tidak dapat menimpa halaman yang telah ada.
+Perhatikan bahwa halaman '''tidak''' akan dipindah apabila telah ada halaman pada judul yang baru, kecuali bila halaman peralihan dan tidak mempunyai sejarah penyuntingan.
+Ini berarti Anda dapat mengubah kembali nama halaman seperti semula apabila Anda membuat kesalahan, dan Anda tidak dapat menimpa halaman yang telah ada.
-'''Peringatan:''' Ini dapat mengakibatkan perubahan yang tak terduga dan drastis bagi halaman yang populer. Pastikan Anda mengerti konsekuensi dari perbuatan ini sebelum melanjutkan.",
+'''Peringatan:'''
+Ini dapat mengakibatkan perubahan drastis dan tak terduga bagi halaman yang populer; pastikan Anda mengerti konsekuensinya sebelum melanjutkan.",
'movepagetext-noredirectfixer' => "Formulir di bawah ini digunakan untuk mengubah nama suatu halaman dan memindahkan semua data sejarah ke nama baru.
Judul yang lama akan menjadi halaman peralihan menuju judul yang baru.
Pastikan untuk memeriksa pengalihan [[Special:DoubleRedirects|ganda]] atau [[Special:BrokenRedirects|rusak]].
'immobile-target-namespace-iw' => 'Pranala interwiki bukanlah target yang valid untuk pemindahan halaman.',
'immobile-source-page' => 'Halaman ini tidak dapat dipindahkan.',
'immobile-target-page' => 'Tidak dapat memindahkan ke judul tujuan tersebut.',
+'bad-target-model' => 'Tujuan yang diinginkan menggunakan model konten yang berbeda. Tidak dapat mengkonversi dari $1 untuk $2 .',
'imagenocrossnamespace' => 'Tidak dapat memindahkan berkas ke ruang nama non-berkas',
'nonfile-cannot-move-to-file' => 'Tidak dapat memindahkan non-berkas ke ruang nama berkas',
'imagetypemismatch' => 'Ekstensi yang diberikan tidak cocok dengan tipe berkas',
'import-error-interwiki' => 'Halaman " $1 " tidak diimpor karena namanya dicadangkan untuk pranala eksternal (interwiki).',
'import-error-special' => 'Halaman " $1 " tidak diimpor karena milik ruang nama khusus yang tidak mengizinkan adanya halaman.',
'import-error-invalid' => 'Halaman "$1" tidak diimpor karena namanya tidak valid.',
+'import-error-unserialize' => 'Revisi $2 halaman " $1 " tidak bisa diurutkan. Revisi dilaporkan untuk menggunakan konten model $3 urutan sebagai $4 .',
'import-options-wrong' => '{{PLURAL:$2|Opsi|Opsi}} salah: <nowiki>$1</nowiki>',
'import-rootpage-invalid' => 'Halaman turunan yang diberikan adalah judul yang salah.',
'import-rootpage-nosubpage' => 'Ruang nama "$1" di halaman turunan tidak mengizinkan subhalaman.',
'pageinfo-magic-words' => '{{PLURAL:$1|Kata|Kata}} ajaib ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Kategori|Kategori}} tersembunyi ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Templat|Templat}} yang ditransklusi ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Halaman|Halaman}} ditransklusikan pada ( $1 )',
'pageinfo-toolboxlink' => 'Informasi halaman',
'pageinfo-redirectsto' => 'Beralih ke',
'pageinfo-redirectsto-info' => 'Info',
'pageinfo-contentpage' => 'Dihitung sebagai halaman konten',
'pageinfo-contentpage-yes' => 'Ya',
+'pageinfo-protect-cascading' => 'Perlindungan berurutan dari sini',
'pageinfo-protect-cascading-yes' => 'Ya',
+'pageinfo-protect-cascading-from' => 'Perlindungan mulai dari',
+'pageinfo-category-info' => 'Kategori informasi',
+'pageinfo-category-pages' => 'Jumlah halaman',
+'pageinfo-category-subcats' => 'Jumlah subkategori',
+'pageinfo-category-files' => 'Jumlah berkas',
# Skin names
'skinname-standard' => 'Klasik',
'markedaspatrollederror' => 'Tidak dapat menandai telah dipatroli',
'markedaspatrollederrortext' => 'Anda harus menentukan satu revisi untuk ditandai sebagai yang dipatroli.',
'markedaspatrollederror-noautopatrol' => 'Anda tidak diizinkan menandai suntingan Anda sendiri dipatroli.',
+'markedaspatrollednotify' => 'Perubahan ini untuk $1 telah ditandai terpatroli.',
+'markedaspatrollederrornotify' => 'Menandai sebagai terpatroli gagal.',
# Patrol log
'patrol-log-page' => 'Log patroli',
'minutes' => '{{PLURAL:$1|$1 menit|$1 menit}}',
'hours' => '{{PLURAL:$1|$1 jam|$1 jam}}',
'days' => '{{PLURAL:$1|$1 hari|$1 hari}}',
+'months' => '{{PLURAL:$1|$1 bulan|$1 bulan}}',
+'years' => '{{PLURAL:$1|$1 tahun|$1 tahun}}',
'ago' => '$1 yang lalu',
'just-now' => 'baru saja',
'specialpages-group-highuse' => 'Frekuensi tinggi',
'specialpages-group-pages' => 'Daftar halaman',
'specialpages-group-pagetools' => 'Peralatan halaman',
-'specialpages-group-wiki' => 'Data dan peralatan wiki',
+'specialpages-group-wiki' => 'Data dan peralatan',
'specialpages-group-redirects' => 'Pencarian dan pengalihan',
'specialpages-group-spam' => 'Peralatan spam',
'revdelete-unrestricted' => 'pembatasan akses opsis dihapuskan',
'logentry-move-move' => '$1 memindahkan halaman $3 ke $4',
'logentry-move-move-noredirect' => '$1 memindahkan halaman $3 ke $4 tanpa membuat pengalihan',
-'logentry-move-move_redir' => '$1 memindahkan halaman $3 ke $4 melalui pengalihan',
-'logentry-move-move_redir-noredirect' => '$1 memindahkan halaman $3 ke $4 melalui pengalihan tanpa membuat pengalihan',
+'logentry-move-move_redir' => '$1 memindahkan halaman $3 ke $4 menimpa pengalihan lama',
+'logentry-move-move_redir-noredirect' => '$1 memindahkan halaman $3 ke $4 menimpa pengalihan lama tanpa membuat pengalihan',
'logentry-patrol-patrol' => '$1 menandai revisi $4 dari halaman $3 terpatroli',
'logentry-patrol-patrol-auto' => '$1 secara otomatis menandai revisi $4 dari halaman $3 terpatroli',
'logentry-newusers-newusers' => 'Akun pengguna $1 telah dibuat',
'logentry-newusers-create' => '$1 membuat akun pengguna',
'logentry-newusers-create2' => '$1 membuat akun pengguna $3',
+'logentry-newusers-byemail' => 'Akun pengguna $3 diciptakan oleh $1 dan password dikirim melalui surel',
'logentry-newusers-autocreate' => 'Akun $1 dibuat secara otomatis',
-'newuserlog-byemail' => 'kata sandi dikirim melalui surel',
'logentry-rights-rights' => '$1 mengubah keanggotaan grup $3 dari $4 menjadi $5',
'logentry-rights-rights-legacy' => '$1 mengubah keanggotaan grup $3',
'logentry-rights-autopromote' => '$1 secara otomatis dipromosikan dari $4 menjadi $5',
'api-error-ok-but-empty' => 'Kesalahan internal: tidak ada tanggapan dari peladen.',
'api-error-overwrite' => 'Tidak diizinkan untuk menimpa berkas yang sudah ada.',
'api-error-stashfailed' => 'Kesalahan internal: server gagal menyimpan berkas sementara.',
+'api-error-publishfailed' => 'Kesalahan internal: server gagal menyimpan berkas sementara.',
'api-error-timeout' => 'Peladen tidak merespons dalam waktu yang diharapkan.',
'api-error-unclassified' => 'Terjadi galat yang tidak diketahui',
'api-error-unknown-code' => 'Kesalahan tidak dikenal: "$1"',
'logentry-newusers-create' => 'Nagpartuat idi ti $1 a pakabilangan ti agar-aramat',
'logentry-newusers-create2' => 'Nagpartuat ni ti $3 a pakabilangan ti agar-aramat babaen ni $1',
'logentry-newusers-autocreate' => 'Ti pakabilangan ni $1 ket automatiko a napartuat',
-'newuserlog-byemail' => 'naipatulod ti kontrasenias ti e-surat',
'logentry-rights-rights' => 'Ni $1 ket nangbaliw ti grupo a panakaikameng para kenni $3 manipud ti $4 iti $5',
'logentry-rights-rights-legacy' => 'Ni $1 ket nangbaliw ti grupo a panakaikameng para kenni $3',
'logentry-rights-autopromote' => 'Ni $1 ket automatiko idi a naipangato manipud ti $4 iti $5',
'logentry-newusers-create' => 'Notandaaðgangurinn $1 var stofnaður',
'logentry-newusers-create2' => '$1 stofnaði notandaaðganginn $3',
'logentry-newusers-autocreate' => 'Aðgangurinn $1 var stofnaður sjálfvirkt',
-'newuserlog-byemail' => 'lykilorð sent með tölvupósti',
'rightsnone' => '(engin)',
# Feedback
'Filepath' => array( 'Percorso' ),
'Import' => array( 'Importa' ),
'Invalidateemail' => array( 'InvalidaEMail' ),
+ 'JavaScriptTest' => array( 'TestJavaScript' ),
'BlockList' => array( 'IPBloccati', 'ElencoBlocchi', 'Blocchi' ),
'LinkSearch' => array( 'CercaCollegamenti', 'CercaLink' ),
'Listadmins' => array( 'Amministratori', 'ElencoAmministratori', 'Admin', 'Sysop', 'Cricca' ),
'MIMEsearch' => array( 'RicercaMIME' ),
'Mostcategories' => array( 'PagineConPiùCategorie' ),
'Mostimages' => array( 'ImmaginiPiùRichiamate' ),
+ 'Mostinterwikis' => array( 'InterwikiPiùRichiamati' ),
'Mostlinked' => array( 'PaginePiùRichiamate' ),
'Mostlinkedcategories' => array( 'CategoriePiùRichiamate' ),
'Mostlinkedtemplates' => array( 'TemplatePiùRichiamati' ),
'img_left' => array( '1', 'sinistra', 'left' ),
'img_none' => array( '1', 'nessuno', 'none' ),
'img_center' => array( '1', 'centro', 'center', 'centre' ),
+ 'img_framed' => array( '1', 'riquadrato', 'incorniciato', 'originale', 'framed', 'enframed', 'frame' ),
+ 'img_frameless' => array( '1', 'senza_cornice', 'frameless' ),
'img_page' => array( '1', 'pagina=$1', 'pagina_$1', 'page=$1', 'page $1' ),
+ 'img_upright' => array( '1', 'verticale', 'verticale=$1', 'verticale_$1', 'upright', 'upright=$1', 'upright $1' ),
'img_border' => array( '1', 'bordo', 'border' ),
+ 'img_sub' => array( '1', 'pedice', 'sub' ),
+ 'img_top' => array( '1', 'sopra', 'top' ),
+ 'img_text_top' => array( '1', 'testo-sopra', 'text-top' ),
+ 'img_middle' => array( '1', 'metà', 'middle' ),
+ 'img_bottom' => array( '1', 'sotto', 'bottom' ),
+ 'img_text_bottom' => array( '1', 'testo-sotto', 'text-bottom' ),
'sitename' => array( '1', 'NOMESITO', 'SITENAME' ),
'servername' => array( '0', 'NOMESERVER', 'SERVERNAME' ),
'gender' => array( '0', 'GENERE:', 'GENDER:' ),
'currentweek' => array( '1', 'SETTIMANACORRENTE', 'CURRENTWEEK' ),
'localweek' => array( '1', 'SETTIMANALOCALE', 'LOCALWEEK' ),
'plural' => array( '0', 'PLURALE:', 'PLURAL:' ),
+ 'displaytitle' => array( '1', 'MOSTRATITOLO', 'DISPLAYTITLE' ),
'language' => array( '0', '#LINGUA', '#LANGUAGE:' ),
'numberofadmins' => array( '1', 'NUMEROADMIN', 'NUMBEROFADMINS' ),
'special' => array( '0', 'speciale', 'special' ),
'index' => array( '1', '__INDICE__', '__INDEX__' ),
'noindex' => array( '1', '__NOINDICE__', '__NOINDEX__' ),
'protectionlevel' => array( '1', 'LIVELLOPROTEZIONE', 'PROTECTIONLEVEL' ),
+ 'formatdate' => array( '0', 'formatodata', 'formatdate', 'dateformat' ),
+ 'pagesincategory_pages' => array( '0', 'pagine', 'pages' ),
+ 'pagesincategory_files' => array( '0', 'file', 'files' ),
);
$linkTrail = '/^([a-zàéèíîìóòúù]+)(.*)$/sDu';
'gotaccount' => "Hai già un accesso? '''$1'''.",
'gotaccountlink' => 'Entra',
'userlogin-resetlink' => 'Hai dimenticato i tuoi dati di accesso?',
-'createaccountmail' => 'Tramite email',
+'createaccountmail' => "Usa una password casuale temporanea e inviala all'indirizzo e-mail specificato sotto",
'createaccountreason' => 'Motivo:',
'badretype' => 'Le password inserite non coincidono tra loro.',
'userexists' => 'Il nome utente inserito è già utilizzato.
# Special:ActiveUsers
'activeusers' => 'Elenco degli utenti attivi',
'activeusers-intro' => 'Questo è un elenco di utenti che hanno avuto qualche tipo di attività da $1 {{PLURAL:$1|giorno|giorni}} a questa parte.',
-'activeusers-count' => "$1 {{PLURAL:$1|modifica|modifiche}} {{PLURAL:$3|nell'ultimo giorno|negli ultimi $3 giorni}}",
+'activeusers-count' => "$1 {{PLURAL:$1|azione|azioni}} {{PLURAL:$3|nell'ultimo giorno|negli ultimi $3 giorni}}",
'activeusers-from' => 'Mostra gli utenti a partire da:',
'activeusers-hidebots' => 'Nascondi i bot',
'activeusers-hidesysops' => 'Nascondi gli amministratori',
'specialpages-group-highuse' => 'Pagine molto usate',
'specialpages-group-pages' => 'Elenchi di pagine',
'specialpages-group-pagetools' => 'Strumenti utili per le pagine',
-'specialpages-group-wiki' => 'Strumenti e informazioni sul progetto',
+'specialpages-group-wiki' => 'Dati e strumenti',
'specialpages-group-redirects' => 'Pagine speciali di redirect',
'specialpages-group-spam' => 'Strumenti contro lo spam',
'logentry-newusers-newusers' => "L'utenza $1 è stata creata",
'logentry-newusers-create' => "L'utenza $1 è stata creata",
'logentry-newusers-create2' => "L'utenza $3 è stata creata da $1",
+'logentry-newusers-byemail' => "L'utente $3 è stato creato da $1 e la password è stata inviata via e-mail",
'logentry-newusers-autocreate' => "L'utenza $1 è stata creata automaticamente",
-'newuserlog-byemail' => 'password inviata via mail',
'logentry-rights-rights' => "$1 ha modificato l'appartenenza di $3 dal gruppo $4 al gruppo $5",
'logentry-rights-rights-legacy' => "$1 ha modificato l'appartenenza a gruppi di $3",
'logentry-rights-autopromote' => '$1 è stato/a automaticamente promosso/a da $4 a $5',
'api-error-ok-but-empty' => 'Errore interno: nessuna risposta dal server.',
'api-error-overwrite' => 'Sovrascrivere un file esistente non è consentito.',
'api-error-stashfailed' => 'Errore interno: il server non è riuscito a memorizzare il documento temporaneo.',
+'api-error-publishfailed' => 'Errore interno: il server non è riuscito a pubblicare il documento temporaneo.',
'api-error-timeout' => 'Il server non ha risposto entro il tempo previsto.',
'api-error-unclassified' => 'Si è verificato un errore sconosciuto.',
'api-error-unknown-code' => 'Errore sconosciuto: "$1"',
'navigation-heading' => '案内メニュー',
'errorpagetitle' => 'エラー',
'returnto' => '$1 に戻る。',
-'tagline' => '提供:{{SITENAME}}',
+'tagline' => '提供: {{SITENAME}}',
'help' => 'ヘルプ',
'search' => '検索',
'searchbutton' => '検索',
'retrievedfrom' => '「$1」から取得',
'youhavenewmessages' => '$1があります ($2)。',
'newmessageslink' => '新着メッセージ',
-'newmessagesdifflink' => '最終更新の差分',
+'newmessagesdifflink' => '最新の差分',
'youhavenewmessagesfromusers' => '{{PLURAL:$3|他の利用者|$3 人の利用者}}からの$1があります ($2)。',
'youhavenewmessagesmanyusers' => '多数の利用者からの$1があります ($2)。',
'newmessageslinkplural' => '{{PLURAL:$1|新着メッセージ}}',
-'newmessagesdifflinkplural' => '最終更新の{{PLURAL:$1|差分}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|最新の差分|最新版までの差分}}',
'youhavenewmessagesmulti' => '$1に新着メッセージがあります',
'editsection' => '編集',
'editold' => '編集',
'thisisdeleted' => '$1を閲覧または復元しますか?',
'viewdeleted' => '$1を閲覧しますか?',
'restorelink' => '{{PLURAL:$1|削除された$1編集}}',
-'feedlinks' => 'フィード:',
+'feedlinks' => 'フィード:',
'feed-invalid' => 'フィード形式の指定が正しくありません。',
'feed-unavailable' => 'フィードの配信は利用できません',
'site-rss-feed' => '$1のRSSフィード',
ソフトウェアにバグがある可能性があります。
最後に実行を試みたクエリ:
<blockquote><code>$1</code></blockquote>
-(関数「<code>$2</code>」内)。
-データベースはエラー「<samp>$3:$4</samp>」を返しました。',
+(関数「<code>$2</code>」内)。
+データベースはエラー「<samp>$3: $4</samp>」を返しました。',
'dberrortextcl' => 'データベース クエリの構文エラーが発生しました。
最後に実行を試みたクエリ:
「$1」
-(関数「$2」内)。
-データベースはエラー「$3:$4」を返しました',
+(関数「$2」内)。
+データベースはエラー「$3: $4」を返しました',
'laggedslavemode' => "'''警告:''' ページに最新の編集が反映されていない可能性があります。",
'readonly' => 'データベースがロックされています',
'enterlockreason' => 'ロックの理由とロック解除の予定を入力してください',
'missingarticle-diff' => '(差分: $1, $2)',
'readonly_lag' => 'データベースはスレーブのデータベースサーバーがマスターに同期するまで自動的にロックされています',
'internalerror' => '内部エラー',
-'internalerror_info' => '内部エラー:$1',
+'internalerror_info' => '内部エラー: $1',
'fileappenderrorread' => '追加中に、「$1」を読み取れませんでした。',
'fileappenderror' => '「$1」を「$2」に追加できませんでした。',
'filecopyerror' => 'ファイル「$1」を「$2」に複製できませんでした。',
'filedeleteerror' => 'ファイル「$1」を削除できませんでした。',
'directorycreateerror' => 'ディレクトリ「$1」を作成できませんでした。',
'filenotfound' => 'ファイル「$1」が見つかりませんでした。',
-'fileexistserror' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ã\81«å¤±æ\95\97ï¼\9aファイルが存在します。',
+'fileexistserror' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81«æ\9b¸ã\81\8dè¾¼ã\82\81ã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9f: ファイルが存在します。',
'unexpected' => '予期しない値「$1」=「$2」です。',
-'formerror' => 'エラー:フォームを送信できませんでした。',
+'formerror' => 'エラー: フォームを送信できませんでした。',
'badarticleerror' => 'このページでは要求された操作を行えません。',
'cannotdelete' => 'ページまたはファイル「$1」を削除できませんでした。
他の人が既に削除した可能性があります。',
'actionthrottledtext' => '短時間にこの操作を大量に行ったため、スパム対策として設定されている制限を超えました。
少し時間をおいてからもう一度操作してください。',
'protectedpagetext' => 'このページは編集や他の操作ができないように保護されています。',
-'viewsourcetext' => 'このページのソースの閲覧やコピーができます:',
-'viewyourtext' => "このページへの'''あなたの編集'''のソースの閲覧やコピーができます:",
+'viewsourcetext' => 'このページのソースの閲覧やコピーができます:',
+'viewyourtext' => "このページへの'''あなたの編集'''のソースの閲覧やコピーができます:",
'protectedinterface' => 'このページにはこのウィキのソフトウェアのインターフェイスに使用されるテキストが保存されており、いたずらなどの防止のために保護されています。
すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/ translatewiki.net] を使用してください。',
'editinginterface' => "'''警告:''' ソフトウェアのインターフェイスに使用されるテキストのページを編集しています。
'exception-nologin-text' => 'このページまたは操作には、このウィキへのログインが必要です。',
# Virus scanner
-'virus-badscanner' => "環境設定が不適合です:不明なウイルス検知ソフトウェア:''$1''",
+'virus-badscanner' => "環境設定が不適合です: 不明なウイルス対策ソフトウェア: ''$1''",
'virus-scanfailed' => 'スキャンに失敗しました(コード $1)',
-'virus-unknownscanner' => '不明なウイルス対策:',
+'virus-unknownscanner' => '不明なウイルス対策ソフトウェア:',
# Login and logout pages
'logouttext' => "'''ログアウトしました。'''
'gotaccount' => 'アカウントを既に持っている場合、$1。',
'gotaccountlink' => 'ログインしてください',
'userlogin-resetlink' => 'ログイン情報をお忘れですか?',
-'createaccountmail' => 'メールで送信',
-'createaccountreason' => '理由:',
+'createaccountmail' => '一時的でランダムなパスワードを生成して、以下に指定したメールアドレスに送信する',
+'createaccountreason' => '理由:',
'badretype' => '入力したパスワードが一致しません。',
'userexists' => '入力された利用者名は既に使用されています。
他の名前を選んでください。',
'password-login-forbidden' => 'この利用者名とパスワードの使用は禁止されています。',
'mailmypassword' => '新しいパスワードをメールで送信',
'passwordremindertitle' => '{{SITENAME}}の仮パスワード通知',
-'passwordremindertext' => '誰か(おそらくあなた)がIPアドレス$1から{{SITENAME}} ($4) のログイン用パスワードの再発行を申請しました。
+'passwordremindertext' => '誰か (おそらくあなた) が IP アドレス $1 から{{SITENAME}} ($4) のログイン用パスワードの再発行を申請しました。
利用者「$2」の仮パスワードが作成され「$3」に設定されました。
もしあなたがこの申請をしたのであれば、ログインして新しいパスワードを決めてください。
-この仮パスワードは {{PLURAL:$5|$5 日間}}で有効期限が切れます。
+この仮パスワードは {{PLURAL:$5|$5 日|$5 日間}}で有効期限が切れます。
この申請をしたのが他人の場合、あるいはパスワードを思い出してパスワード変更が不要になった場合は、
このメッセージを無視して、引き続き以前のパスワードを使用し続けることができます。',
メールに記載された手順に従って、このアカウントの所有者であることの確認が取れると、このアカウント宛のメールを受け取れるようになります。',
'throttled-mailpassword' => '新しいパスワードは過去 {{PLURAL:$1|$1 時間}}に送信済みです。
悪用防止のため、パスワードの再発行は {{PLURAL:$1|$1 時間}}に 1 回のみです。',
-'mailerror' => 'ã\83¡ã\83¼ã\83«ã\81®é\80\81ä¿¡ä¸ã\81«ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81¾ã\81\97ã\81\9fï¼\9a$1',
+'mailerror' => 'ã\83¡ã\83¼ã\83«ã\82\92é\80\81ä¿¡ã\81\99ã\82\8bé\9a\9bã\81«ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81¾ã\81\97ã\81\9f: $1',
'acct_creation_throttle_hit' => 'あなたと同じ IP アドレスでこのウィキに訪れた人が、最近 24 時間で {{PLURAL:$1|$1 アカウント}}を作成しており、これはこの期間で作成が許可されている最大数です。
そのため、現在この IP アドレスではアカウントをこれ以上作成できません。',
'emailauthenticated' => 'メールアドレスは$2 $3に認証済みです。',
'passwordreset-pretext' => '{{PLURAL:$1||下記のデータのいずれか 1 つを入力してください}}',
'passwordreset-username' => '利用者名:',
'passwordreset-domain' => 'ドメイン:',
-'passwordreset-capture' => '送信されるメールの内容を表示しますか?',
+'passwordreset-capture' => 'お送りするメールの内容を表示しますか?',
'passwordreset-capture-help' => 'このボックスにチェックを入れると、利用者に送信されるメールの内容(仮パスワードを含む)をあなたも閲覧できます。',
'passwordreset-email' => 'メールアドレス:',
'passwordreset-emailtitle' => '{{SITENAME}}上のアカウントの詳細',
-'passwordreset-emailtext-ip' => 'どなたか(おそらくあなた、IP アドレス $1)が {{SITENAME}} ($4) での
+'passwordreset-emailtext-ip' => '誰か (おそらくあなた、IP アドレス $1) が {{SITENAME}} ($4) での
あなたのアカウントの詳細情報を送信するよう申請しました。
以下の利用者{{PLURAL:$3|アカウント|アカウント群}}がこのメールアドレスと紐付けられています。
$2
-{{PLURAL:$3|この仮パスワード|これらの仮パスワード}}は {{PLURAL:$5|$5 日間}}で有効期限が切れます。
+{{PLURAL:$3|この仮パスワード|これらの仮パスワード}}は {{PLURAL:$5|$5 日|$5 日間}}で有効期限が切れます。
あなたはすぐにログインして新しいパスワードを設定する必要があります。
これが他の誰かによる申請である場合、あるいはあなたが自分の元のパスワードを
覚えていてそれを変更したくない場合には、このメッセージを無視して以前のパスワードを
この申請が他の誰かによるものの場合、あるいはあなたが自分の元のパスワードを
覚えていて、変更したくない場合は、このメッセージを無視して
以前のパスワードを使い続けることができます。',
-'passwordreset-emailelement' => '利用者名:$1
-仮パスワード:$2',
+'passwordreset-emailelement' => '利用者名: $1
+仮パスワード: $2',
'passwordreset-emailsent' => '確認メールをお送りしました。',
'passwordreset-emailsent-capture' => '下記の内容の、確認メールをお送りしました。',
'passwordreset-emailerror-capture' => '以下の内容の確認メールを生成しましたが、利用者への送信に失敗しました: $1',
'link_sample' => 'リンクの名前',
'link_tip' => '内部リンク',
'extlink_sample' => 'http://www.example.com リンクの名前',
-'extlink_tip' => '外部リンク(http:// を忘れずに付けてください)',
+'extlink_tip' => '外部リンク (http:// を忘れずに付けてください)',
'headline_sample' => '見出し文',
'headline_tip' => '2段目の見出し',
'nowiki_sample' => 'ここにマークアップを無効にするテキストを入力します',
'missingcommenttext' => '以下にコメントを入力してください。',
'missingcommentheader' => "'''注意:''' このコメントに対する題名/見出しが空欄です。
「{{int:savearticle}}」ボタンをもう一度押すと、空のまま編集が保存されます。",
-'summary-preview' => '要約のプレビュー:',
-'subject-preview' => '題名/見出しのプレビュー:',
+'summary-preview' => '要約のプレビュー:',
+'subject-preview' => '題名/見出しのプレビュー:',
'blockedtitle' => '利用者はブロックされています',
'blockedtext' => "'''この利用者名またはIPアドレスはブロックされています。'''
'creating' => '「$1」を作成中',
'editingsection' => '「$1」を編集中 (節単位)',
'editingcomment' => '「$1」を編集中 (新しい節)',
-'editconflict' => '編集競合:$1',
+'editconflict' => '編集競合: $1',
'explainconflict' => "このページを編集し始めた後に、他の誰かがこのページを変更しました。
上側のテキスト領域は現在の最新の状態です。
編集していた文章は下側のテキスト領域に示されています。
上側のテキスト領域の内容'''だけ'''が、「{{int:savearticle}}」をクリックした時に実際に保存されます。",
'yourtext' => '編集中の文章',
'storedversion' => '保存された版',
-'nonunicodebrowser' => "'''警告:ご使用中のブラウザーはUnicodeに未対応です。'''
-安全にページを編集する回避策を表示しています:編集ボックス内の非ASCII文字を16進数コードで表現しています。",
-'editingold' => "'''警告:このページの古い版を編集しています。'''
-保存すると、この版以降に追加されていた変更がすべて失われます。",
+'nonunicodebrowser' => "'''警告: ご使用中のブラウザーは Unicode に未対応です。'''
+安全にページを編集する回避策を表示しています: 編集ボックス内の非 ASCII 文字を 16 進数コードで表現しています。",
+'editingold' => "'''警告: このページの古い版を編集しています。'''
+保存すると、この版以降になされた変更がすべて失われます。",
'yourdiff' => '差分',
'copyrightwarning' => "{{SITENAME}}への投稿は、すべて$2 (詳細は$1を参照) のもとで公開したと見なされることにご注意ください。
あなたが投稿したものを、他人がよって遠慮なく編集し、それを自由に配布するのを望まない場合は、ここには投稿しないでください。<br />
また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
'''著作権保護されている作品を、許諾なしに投稿しないでください!'''",
-'copyrightwarning2' => "{{SITENAME}}ã\81¸ã\81®ã\81\99ã\81¹ã\81¦ã\81®æ\8a\95稿ã\81¯ã\80\81ä»\96ã\81®å\88©ç\94¨è\80\85ã\81\8cç·¨é\9b\86ã\80\81å¤\89æ\9b´ã\80\81é\99¤å\8e»ã\81\99ã\82\8bå\8f¯è\83½æ\80§があります。
+'copyrightwarning2' => "{{SITENAME}}ã\81¸ã\81®ã\81\99ã\81¹ã\81¦ã\81®æ\8a\95稿ã\81¯ã\80\81ä»\96ã\81®å\88©ç\94¨è\80\85ã\81«ã\82\88ã\81£ã\81¦ç·¨é\9b\86ã\80\81å¤\89æ\9b´ã\80\81é\99¤å\8e»ã\81\95ã\82\8cã\82\8bå ´å\90\88があります。
あなたの投稿を、他人が遠慮なく編集するのを望まない場合は、ここには投稿しないでください。<br />
-また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は$1を参照)。
+また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください (詳細は$1を参照)。
'''著作権保護されている作品を、許諾なしに投稿してはいけません!'''",
'longpageerror' => "'''エラー: 投稿された文章は {{PLURAL:$1|$1 KB}} の長さがあります。これは投稿できる最大の長さ {{PLURAL:$2|$2 KB}} を超えています。'''
この編集内容は保存できません。",
'readonlywarning' => "'''警告: データベースがメンテナンスのためロックされており、現在は編集内容を保存できません。'''
-å¿\85è¦\81ã\81§ã\81\82ã\82\8cã\81°æ\96\87ç« ã\82\92ã\82«ã\83\83ã\83\88&ペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
+å¿\85è¦\81ã\81§ã\81\82ã\82\8cã\81°æ\96\87ç« ã\82\92ã\82³ã\83\94ã\83¼&ペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
データベースをロックした管理者による説明は以下の通りです: $1",
'protectedpagewarning' => "'''警告: このページは保護されているため、管理者権限を持つ利用者のみが編集できます。'''
'cascadeprotectedwarning' => "'''警告:''' このページはカスケード保護されている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、管理者権限を持つ利用者のみが編集できるように保護されています:",
'titleprotectedwarning' => "'''警告: このページは保護されているため、作成には[[Special:ListGroupRights|特定の権限]]が必要です。'''
参考として以下に最後の記録を表示します:",
-'templatesused' => 'このページで使用されている{{PLURAL:$1|テンプレート}}:',
-'templatesusedpreview' => 'このプレビューで使用されている{{PLURAL:$1|テンプレート}}:',
-'templatesusedsection' => 'この節で使用されている{{PLURAL:$1|テンプレート}}:',
+'templatesused' => 'このページで使用されている{{PLURAL:$1|テンプレート}}:',
+'templatesusedpreview' => 'このプレビューで使用されている{{PLURAL:$1|テンプレート}}:',
+'templatesusedsection' => 'この節で使用されている{{PLURAL:$1|テンプレート}}:',
'template-protected' => '(保護)',
'template-semiprotected' => '(半保護)',
-'hiddencategories' => 'このページは {{PLURAL:$1|$1 個の隠しカテゴリ}}に属しています:',
+'hiddencategories' => 'このページは {{PLURAL:$1|$1 個の隠しカテゴリ}}に属しています:',
'edittools' => '<!-- ここに書いたテキストは編集及びアップロードのフォームの下に表示されます。 -->',
'nocreatetext' => '{{SITENAME}}ではページの新規作成を制限しています。
元のページに戻って既存のページを編集するか、[[Special:UserLogin|ログインまたはアカウント作成]]をしてください。',
'sectioneditnotsupported-title' => '節単位編集はサポートされていません',
'sectioneditnotsupported-text' => 'このページでは節単位編集はサポートされません。',
'permissionserrors' => '認証エラー',
-'permissionserrorstext' => 'あなたにはこの操作を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
+'permissionserrorstext' => 'あなたにはこの操作を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
'permissionserrorstext-withaction' => 'あなたには「$2」を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
-'recreate-moveddeleted-warn' => "'''警告:以前削除されたページを再作成しようとしています。'''
+'recreate-moveddeleted-warn' => "'''警告: 以前削除されたページを再作成しようとしています。'''
このページの編集を続行するのが適切かどうかご確認ください。
-参考までに、このページの削除と移動の記録を以下に示します:",
+参考までに、このページの削除と移動の記録を以下に示します:",
'moveddeleted-notice' => 'このページは削除されています。
参考のため、このページの削除と移動の記録を以下に表示します。',
'log-fulllog' => '完全な記録を閲覧',
'post-expand-template-argument-warning' => "'''警告:''' このページは、展開後のサイズが大きすぎるテンプレート引数を少なくとも 1 つ含んでいます。
これらの引数を省略しました。",
'post-expand-template-argument-category' => '省略されたテンプレート引数を含むページ',
-'parser-template-loop-warning' => 'ã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\81®ã\83«ã\83¼ã\83\97ã\81\8cæ¤\9cå\87ºã\81\95ã\82\8cã\81¾ã\81\97ã\81\9fï¼\9a[[$1]]',
+'parser-template-loop-warning' => 'ã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\81®ã\83«ã\83¼ã\83\97ã\82\92æ¤\9cå\87ºã\81\97ã\81¾ã\81\97ã\81\9f: [[$1]]',
'parser-template-recursion-depth-warning' => 'テンプレートの再帰の深さ($1)が上限を超えました',
'language-converter-depth-warning' => '言語変換機能の深さ($1)が制限を超えました',
'node-count-exceeded-category' => 'ノード数が制限を超えたページ',
'cantcreateaccounttitle' => 'アカウントを作成できません',
'cantcreateaccount-text' => "このIPアドレス('''$1''')からのアカウント作成は[[User:$3|$3]]によってブロックされています。
-$3が示した理由:''$2''",
+$3が示した理由: ''$2''",
# History pages
'viewpagelogs' => 'このページの記録を閲覧',
'uploadnologin' => 'ログインしていません',
'uploadnologintext' => 'ファイルをアップロードするには[[Special:UserLogin|ログイン]]する必要があります。',
'upload_directory_missing' => 'アップロード先ディレクトリ ($1) が見つかりませんでした。ウェブ サーバーによる作成もできませんでした。',
-'upload_directory_read_only' => 'アップロード先ディレクトリ($1)には、ウェブサーバーが書き込めません。',
+'upload_directory_read_only' => 'アップロード先ディレクトリ ($1) には、ウェブサーバーが書き込めません。',
'uploaderror' => 'アップロードのエラー',
'upload-recreate-warning' => "'''警告: その名前のファイルは、以前に削除または移動されています。'''
'sharedupload-desc-here' => 'このファイルは$1から来ており、他のプロジェクトで使用されている可能性があります。
$1での[$2 ファイル解説ページ]にある説明を以下に示します。',
'sharedupload-desc-edit' => 'このファイルは$1から来ており、他のプロジェクトで使用されている可能性があります。
-$1での[$2 ファイル解説ページ]にある説明を編集したほうがいいかもしれません。',
+$1での[$2 ファイル解説ページ]にある説明を編集した方がいいかもしれません。',
'sharedupload-desc-create' => 'このファイルは$1から来ており、他のプロジェクトで使用されている可能性があります。
-$1での[$2 ファイル解説ページ]にある説明を編集したほうがいいかもしれません。',
+$1での[$2 ファイル解説ページ]にある説明を編集した方がいいかもしれません。',
'filepage-nofile' => 'この名前のファイルは存在しません。',
'filepage-nofile-link' => 'この名前のファイルは存在しませんが、[$1 アップロード]できます。',
'uploadnewversion-linktext' => 'このファイルの新しい版をアップロードする',
'log' => '記録',
'all-logs-page' => 'すべての公開記録',
'alllogstext' => '{{SITENAME}}の取得できる記録をまとめて表示しています。
-記録の種類、実行した利用者(大文字小文字は区別)、影響を受けたページ(大文字小文字は区別)による絞り込みができます。',
+記録の種類、実行した利用者 (大文字小文字は区別)、影響を受けたページ (大文字小文字は区別) による絞り込みができます。',
'logempty' => '該当する記録はありません。',
'log-title-wildcard' => 'この文字列で始まるページ名を検索',
'showhideselectedlogentries' => '選択した記録項目を表示/非表示',
# Special:ActiveUsers
'activeusers' => '活動中の利用者一覧',
'activeusers-intro' => 'これは過去 $1 {{PLURAL:$1|日|日間}}に何らかの活動をした利用者の一覧です。',
-'activeusers-count' => '過去 {{PLURAL:$3|1 日|$3 日間}}に $1 {{PLURAL:$1|回の編集}}',
+'activeusers-count' => '過去 {{PLURAL:$3|1 日|$3 日間}}に $1 {{PLURAL:$1|回の操作}}',
'activeusers-from' => '最初に表示する利用者:',
'activeusers-hidebots' => 'ボットを隠す',
'activeusers-hidesysops' => '管理者を隠す',
'enotif_mailer' => '{{SITENAME}} 通知メール',
'enotif_reset' => 'すべてのページを訪問済みにする',
'enotif_impersonal_salutation' => '{{SITENAME}}の利用者',
-'enotif_subject_deleted' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が削除しました',
-'enotif_subject_created' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が作成しました',
-'enotif_subject_moved' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が移動しました',
-'enotif_subject_restored' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が復元しました',
-'enotif_subject_changed' => '{{SITENAME}} ページ $1 を {{gender:$2|$2}} が変更しました',
-'enotif_body_intro_deleted' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって削除されました。$3をご覧ください。',
-'enotif_body_intro_created' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって作成されました。現在の版は$3で閲覧できます。',
-'enotif_body_intro_moved' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって移動されました。現在の版は$3で閲覧できます。',
-'enotif_body_intro_restored' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって復元されました。現在の版は$3で閲覧できます。',
-'enotif_body_intro_changed' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、{{gender:$2 |$2}}によって変更されました。現在の版は$3で閲覧できます。',
+'enotif_subject_deleted' => '{{SITENAME}} ページ $1 を $2 が{{GENDER:$2|削除しました}}',
+'enotif_subject_created' => '{{SITENAME}} ページ $1 を $2 が{{GENDER:$2|作成しました}}',
+'enotif_subject_moved' => '{{SITENAME}} ページ $1 を $2 が{{GENDER:$2|移動しました}}',
+'enotif_subject_restored' => '{{SITENAME}} ページ $1 を $2 が{{GENDER:$2|復元しました}}',
+'enotif_subject_changed' => '{{SITENAME}} ページ $1 を $2 が{{GENDER:$2|変更しました}}',
+'enotif_body_intro_deleted' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、$2 によって{{GENDER:$2|削除}}されました。$3 をご覧ください。',
+'enotif_body_intro_created' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、$2 によって{{GENDER:$2|作成}}されました。現在の版は $3 で閲覧できます。',
+'enotif_body_intro_moved' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、$2 によって{{GENDER:$2|移動}}されました。現在の版は $3 で閲覧できます。',
+'enotif_body_intro_restored' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、$2 によって{{GENDER:$2|復元}}されました。現在の版は $3 で閲覧できます。',
+'enotif_body_intro_changed' => '{{SITENAME}}のページ「$1」が$PAGEEDITDATEに、$2 によって{{GENDER:$2|変更}}されました。現在の版は $3 で閲覧できます。',
'enotif_lastvisited' => '最終訪問以降のすべての変更は $1 をご覧ください。',
'enotif_lastdiff' => 'この変更内容を表示するには $1 をご覧ください。',
'enotif_anon_editor' => '匿名利用者「$1」',
# Metadata
'metadata' => 'メタデータ',
-'metadata-help' => 'このファイルには、追加情報があります(おそらく、作成やデジタル化する際に使用したデジタルカメラやスキャナーが追加したものです)。
-このファイルが元の状態から変更されている場合、いくつかの項目は、修正されたファイルを完全に反映していないかもしれません。',
+'metadata-help' => 'このファイルには、追加情報があります (おそらく、作成やデジタル化する際に使用したデジタルカメラやスキャナーが追加したものです)。
+このファイルが元の状態から変更されている場合、修正されたファイルを完全に反映していない項目がある場合があります。',
'metadata-expand' => '拡張項目を表示',
'metadata-collapse' => '拡張項目を非表示',
'metadata-fields' => 'このメッセージで列挙している画像メタデータフィールドは、メタデータ表を折り畳んだ状態のときに画像ページに読み込まれます。
'confirmemail_loggedin' => 'メールアドレスは確認されました。',
'confirmemail_error' => '確認情報を保存する際にエラーが発生しました。',
'confirmemail_subject' => '{{SITENAME}} メールアドレスの確認',
-'confirmemail_body' => '誰か(おそらくあなた)が、IPアドレス$1から、
+'confirmemail_body' => '誰か (おそらくあなた) が、IPアドレス$1から、
このメールアドレスで{{SITENAME}}のアカウント「$2」を登録しました。
このアカウントが本当に自分のものか確認して、
-{{SITENAME}}のメール機能を有効にするには、以下のURLをブラウザーで開いてください:
+{{SITENAME}}のメール機能を有効にするには、以下のURLをブラウザーで開いてください:
$3
もしアカウントの登録をした覚えがない場合は、
-次のURLをブラウザーで開いて、メールアドレスの確認を中止してください:
+次のURLをブラウザーで開いて、メールアドレスの確認を中止してください:
$5
'deletedwhileediting' => "'''警告''': このページが、編集開始後に削除されました!",
'confirmrecreate' => "あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを以下の理由で削除しました:
: ''$2''
-本当にこのままこのページを再作成していいか確認してください。",
-'confirmrecreate-noreason' => 'あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを削除しました。本当にこのページを再作成していいかご確認ください。',
+このままこのページを本当に再作成していいか確認してください。",
+'confirmrecreate-noreason' => 'あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを削除しました。このページを本当に再作成していいかご確認ください。',
'recreate' => '再作成する',
# action=purge
'specialpages-group-highuse' => 'よく利用されているページ',
'specialpages-group-pages' => 'ページの一覧',
'specialpages-group-pagetools' => 'ページツール',
-'specialpages-group-wiki' => 'ã\82¦ã\82£ã\82ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±とツール',
+'specialpages-group-wiki' => 'ã\83\87ã\83¼ã\82¿とツール',
'specialpages-group-redirects' => '転送される特別ページ',
'specialpages-group-spam' => 'スパム対策ツール',
'logentry-newusers-newusers' => '利用者アカウント $1 が作成されました',
'logentry-newusers-create' => '利用者アカウント $1 が作成されました',
'logentry-newusers-create2' => '利用者アカウント $3 が $1 により作成されました',
+'logentry-newusers-byemail' => '利用者アカウント $3 が $1 によって作成され、そのパスワードをメールで送信しました',
'logentry-newusers-autocreate' => '利用者アカウント $1 が自動的に作成されました',
-'newuserlog-byemail' => 'パスワードをメールで送信しました',
'logentry-rights-rights' => '$1 が $3 の所属グループを $4 から $5 に変更しました',
'logentry-rights-rights-legacy' => '$1 が $3 の所属グループを変更しました',
'logentry-rights-autopromote' => '$1 が $4 から $5 に自動的に昇格しました',
'feedback-cancel' => 'キャンセル',
'feedback-submit' => 'フィードバックを送信',
'feedback-adding' => 'ページへのフィードバックの追加...',
-'feedback-error1' => 'エラー:APIから認識されない結果が返ってきました',
-'feedback-error2' => 'エラー:編集に失敗しました',
-'feedback-error3' => 'エラー:APIからの応答がありません',
+'feedback-error1' => 'エラー: 認識できない結果を API が返しました',
+'feedback-error2' => 'エラー: 編集に失敗しました',
+'feedback-error3' => 'エラー: API からの応答がありません',
'feedback-thanks' => 'ありがとうございます。フィードバックを「[$2 $1]」のページに投稿しました。',
'feedback-close' => '完了',
'feedback-bugcheck' => 'Great! [$1 既出のバグ]に既に含まれていないかご確認ください。',
# API errors
'api-error-badaccess-groups' => 'このウィキへのファイルのアップロードが許可されていません。',
-'api-error-badtoken' => '内部エラー:トークンが正しくありません。',
+'api-error-badtoken' => '内部エラー: トークンが正しくありません。',
'api-error-copyuploaddisabled' => 'URLによるアップロードはこのサーバーでは無効になっています。',
'api-error-duplicate' => '当ウェブサイト上には、既に同じ内容の{{PLURAL:$1|[$2 他のファイル]が|[$2 他のファイルがいくつか]}}存在しています。',
'api-error-duplicate-archive' => 'サイト上に同じ内容の{{PLURAL:$1|[$2 別のファイル]が|[$2 他のファイルがいくつか]}}既にありましたが、{{PLURAL:$1|それは|それらは}}削除されました。',
'api-error-duplicate-popup-title' => '重複した{{PLURAL:$1|ファイル|ファイル群}}です。',
'api-error-empty-file' => '送信されたファイルは空でした。',
'api-error-emptypage' => '内容がないページの新規作成は許可されていません。',
-'api-error-fetchfileerror' => '内部エラー:ファイルの取得中に問題が発生しました。',
+'api-error-fetchfileerror' => '内部エラー: ファイルを取得する際に問題が発生しました。',
'api-error-fileexists-forbidden' => '「$1」という名前のファイルは存在しており、上書きはできません。',
'api-error-fileexists-shared-forbidden' => '「$1」という名前のファイルは共有ファイルリポジトリに存在しており、上書きはできません。',
'api-error-file-too-large' => '送信されたファイルは大きすぎます。',
'api-error-filetype-banned-type' => '$1{{PLURAL:$4|は許可されていないファイル形式です}}。許可されている{{PLURAL:$3|ファイル形式}}は$2です。',
'api-error-filetype-missing' => 'ファイルに拡張子がありません。',
'api-error-hookaborted' => '拡張機能のフックによって、修正が中断されました。',
-'api-error-http' => '内部エラー:サービスへの接続で問題が発生しました。',
+'api-error-http' => '内部エラー: サーバーに接続できませんでした。',
'api-error-illegal-filename' => 'ファイル名が許可されていません。',
-'api-error-internal-error' => '内部エラー:ウィキ上でアップロードを処理する際に問題が発生しました。',
-'api-error-invalid-file-key' => '内部エラー:一時格納場所にファイルが見つかりませんでした。',
-'api-error-missingparam' => '内部エラー:リクエストのパラメーターが足りません。',
-'api-error-missingresult' => '内部エラー:複製に成功したか判断できませんでした。',
+'api-error-internal-error' => '内部エラー: ウィキ上でアップロードを処理する際に問題が発生しました。',
+'api-error-invalid-file-key' => '内部エラー: 一時格納場所にファイルが見つかりませんでした。',
+'api-error-missingparam' => '内部エラー: リクエストのパラメーターが足りません。',
+'api-error-missingresult' => '内部エラー: 複製に成功したかどうか判断できませんでした。',
'api-error-mustbeloggedin' => 'ファイルをアップロードするにはログインする必要があります。',
-'api-error-mustbeposted' => '内部エラー:リクエストはHTTP POSTである必要があります。',
+'api-error-mustbeposted' => '内部エラー: リクエストは HTTP の POST メソッドである必要があります。',
'api-error-noimageinfo' => 'アップロードには成功しましたが、サーバーはファイルに関する情報を返しませんでした。',
-'api-error-nomodule' => '内部エラー:アップロードを処理するモジュールが設定されていません。',
-'api-error-ok-but-empty' => '内部エラー:サーバーからの応答がありません。',
+'api-error-nomodule' => '内部エラー: アップロードを処理するモジュールが設定されていません。',
+'api-error-ok-but-empty' => '内部エラー: サーバーからの応答がありません。',
'api-error-overwrite' => '既存のファイルへの上書きは許可されていません。',
-'api-error-stashfailed' => '内部エラー:サーバーは一時ファイルを格納できませんでした。',
+'api-error-stashfailed' => '内部エラー: サーバーは一時ファイルを格納できませんでした。',
'api-error-timeout' => 'サーバーが決められた時間内に応答しませんでした。',
'api-error-unclassified' => '不明なエラーが発生しました。',
'api-error-unknown-code' => '不明なエラー:「$1」',
-'api-error-unknown-error' => '内部エラー:ファイルのアップロードの途中で問題が発生しました。',
+'api-error-unknown-error' => '内部エラー: ファイルをアップロードする際に問題が発生しました。',
'api-error-unknown-warning' => '不明な警告:「$1」',
'api-error-unknownerror' => '不明なエラー:「$1」',
'api-error-uploaddisabled' => 'このウィキではアップロードは無効になっています。',
# Special:SpecialPages
'specialpages' => 'Sonst sider',
-# New logging system
-'newuserlog-byemail' => 'kodeort tilsend via e-mail',
-
);
* @file
*
* @author Anggoro
+ * @author Bennylin
* @author Helix84
* @author Hoo
* @author Kaganer
'underline-always' => 'Tansah',
'underline-never' => 'Ora',
-'underline-default' => 'Miturut konfigurasi panjlajah wèb',
+'underline-default' => 'Kulit atau penjelajah bawaan',
# Font style option in Special:Preferences
'editfont-style' => 'Modhèl aksara (font) ing kotak suntingan:',
'newwindow' => '(buka ing jendhéla anyar)',
'cancel' => 'Batalna',
'moredotdotdot' => 'Liyané...',
+'morenotlisted' => 'Isih ana...',
'mypage' => 'Kaca',
'mytalk' => 'Wicara',
'anontalk' => 'Dhiskusi IP puniki',
'databaseerror' => 'Kasalahan database',
'dberrortext' => 'Ana kasalahan sintaks ing panyuwunan basis data.
Kasalahan iki mbokmenawa nuduhaké anané \'\'bug\'\' ing software.
-Panyuwunan basis data sing pungkasan yakuwi: <blockquote><tt>$1</tt></blockquote>
-saka jroning fungsi "<tt>$2</tt>".
-Basis data ngasilaké kasalahan "<tt>$3: $4</tt>".',
+Panyuwunan basis data sing pungkasan yakuwi: <blockquote><code>$1</code></blockquote>
+saka jroning fungsi "<code>$2</code>".
+Basis data ngasilaké kasalahan "<samp>$3: $4</samp>".',
'dberrortextcl' => 'Ana kasalahan sintaks ing panyuwunan basis data.
Panyuwunan basis data sing pungkasan iku:
"$1"
Cathet yèn sapérangan kaca mungkin isih nampilaké tulisan yèn Sampéyan isih nèng njero log, kuwi bisa ilang yèn Sampéyan ngresiki ''cache'' pramban Sampéyan.",
'welcomeuser' => 'Sugeng Rawuh, $1!',
+'welcomecreation-msg' => 'Akun panjenengan wis kacipta. Aja lali nata konfigurasi [[Special:Preferences|preferensi {{SITENAME}}]] panjenengan.',
'yourname' => 'Asma pangangeman',
'yourpassword' => 'Tembung sandhi:',
'yourpasswordagain' => 'Balènana tembung sandhi',
'gotaccount' => "Wis kagungan akun? '''$1'''.",
'gotaccountlink' => 'Mlebu',
'userlogin-resetlink' => 'Lali rincian mlebu log Sampéyan?',
-'createaccountmail' => 'liwat layang e-mail',
+'createaccountmail' => 'Nganggoa sandi sembarang lan kirimna liwat layang e-mail ing ngisor iki',
'createaccountreason' => 'Alesan:',
'badretype' => 'Sandhi panjenengan ora gathuk',
'userexists' => 'Jeneng panganggo sing dilebokaké lagi dianggo.
# E-mail sending
'php-mail-error-unknown' => 'Kasalahan ora dingertèni nèng piguna mail() PHP.',
'user-mail-no-addy' => 'Njajal ngirim layang èlèktronik tanpa alamat layang èlèktronik.',
+'user-mail-no-body' => 'Nyoba ngirim layang e-mail, tapi isine kosong.',
# Change password dialog
'resetpass' => 'Ganti tembung sandi',
'passwordreset-capture-help' => 'Yèn Sampéyan nyentang kothak iki, layang èlèktronik (mawa tembung sandhi sawetara) bakal ditampilaké nèng Sampéyan lan uga dikirim nèng panganggo.',
'passwordreset-email' => 'Alamat layang èlèktronik:',
'passwordreset-emailtitle' => 'Rincian akun nèng {{SITENAME}}',
+'passwordreset-emailtext-ip' => 'Seseorang (mungkin Anda, dari alamat IP $1) meminta pengingat
+detail akun untuk {{SITENAME}} ($4). {{PLURAL:$3|Akun|Akun-akun}} berikut
+terkait dengan alamat surel ini:
+
+$2
+
+{{PLURAL:$3|Sandi sementara|Sandi sementara}} berikut akan kedaluwarsa dalam {{PLURAL:$5|satu hari|$5 hari}}.
+Anda harus masuk dan memilih sandi baru sekarang. Jika orang lain membuat
+permintaan ini atau jika Anda ingat sandi asli dan tidak lagi
+ingin mengubahnya, Anda dapat mengabaikan pesan ini dan terus menggunakan sandi lama.',
+'passwordreset-emailtext-user' => 'Seseorang (mungkin Anda, dari alamat IP $1) meminta pengingat detail akun untuk {{SITENAME}} ($4).
+{{PLURAL:$3|Akun|Akun-akun}} berikut terkait dengan alamat surel ini:
+
+$2
+
+{{PLURAL:$3|Sandi sementara|Sandi sementara}} berikut akan kedaluwarsa dalam {{PLURAL:$5|satu hari|$5 hari}}.
+Anda harus masuk dan memilih sandi baru sekarang. Jika orang lain membuat
+permintaan ini atau jika Anda ingat sandi asli dan tidak lagi
+ingin mengubahnya, Anda dapat mengabaikan pesan ini dan terus menggunakan sandi lama.',
'passwordreset-emailelement' => 'Jeneng panganggo: $1
Tembung sandhi sawetara: $2',
'passwordreset-emailsent' => 'Layang èlèktronik pangèling wis dikirim.',
'changeemail-oldemail' => 'Alamat layang èlèktronik saiki:',
'changeemail-newemail' => 'Alamat layang èlèktronik anyar:',
'changeemail-none' => '(ora ana)',
+'changeemail-password' => 'Sandi {{SITENAME}} panjenengan:',
'changeemail-submit' => 'Ganti layang èlèktronik',
'changeemail-cancel' => 'Batal',
'note' => "'''Cathetan:'''",
'previewnote' => "'''Èling yèn Sampéyan mung ndelok pratayang.'''
Owahan Sampéyan durung kasimpen!",
-'continue-editing' => 'Banjuraké nyunting',
+'continue-editing' => 'Lunga menyang area nyunting',
'previewconflict' => 'Pratilik iki nuduhaké tèks ing bagian dhuwur kothak suntingan tèks kayadéné bakal katon yèn panjenengan bakal simpen.',
'session_fail_preview' => "'''Nuwun sèwu, suntingan panjenengan ora bisa diolah amarga dhata sèsi kabusak.
Coba kirim dhata manèh. Yèn tetep ora bisa, coba log metua lan mlebu log manèh.''''''Amerga wiki iki marengaké panggunan kodhe HTML mentah, mula pratilik didhelikaké minangka pancegahan marang serangan JavaScript.'''
'edit-already-exists' => 'Ora bisa nggawé kaca anyar.
Amerga wis ana.',
'defaultmessagetext' => 'Tèks layang gawan',
+'content-failed-to-parse' => 'Gagal menjabarkan konten $2 untuk model $1: $3',
+'invalid-content-data' => 'Data konten ora sah',
+'content-not-allowed-here' => 'Konten "$1" ora oleh ing kaca [[$2]]',
+
+# Content models
+'content-model-wikitext' => 'teks wiki',
+'content-model-text' => 'teks polos',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
# Parser/template warnings
'expensive-parserfunction-warning' => "Pènget: Kaca iki ngandhut kakèhan panggunan fungsi ''parser'' sing larang.
'node-count-exceeded-warning' => 'Kaca munjuli itungan-nodé',
'expansion-depth-exceeded-category' => 'Kaca sing jeroné èkspansi wis punjul',
'expansion-depth-exceeded-warning' => 'Kaca munculi jeroné èkspansi',
+'parser-unstrip-loop-warning' => 'Unstrip loop detected',
+'parser-unstrip-recursion-limit' => 'Unstrip recursion limit exceeded ($1)',
'converter-manual-rule-error' => 'Kasalahan kadètèk nèng aturan pangubahan basa manual',
# "Undo" feature
'revdelete-concurrent-change' => 'Gagal ngowahi révisi tanggal $1, jam $2: statusé mbokmanawa wis diowahi déning panganggo liya bebarengan karo panjenengan.
Mangga priksa cathetan log.',
'revdelete-only-restricted' => 'Ora bisa ndhelikaké siji barang mawa tanggal $1 wanci $2: Sampéyan ora bisa ndhelikaké barang kuwi saka pangurus tanpa milih salah sawiji pilihan kanggo ndhelikaké sing liyané.',
-'revdelete-reason-dropdown' => '*Alesan mbusak sing umum
-** Planggaran hak cipta
-** Inpormasi pribadi sing ora patut
-** Inpormasi sing potènsial ngrusak martabat',
+'revdelete-reason-dropdown' => '*Alasan penghapusan yang umum
+** Pelanggaran hak cipta
+** Komentar atau informasi pribadi yang tidak pantas
+** Nama pengguna yang tidak pantas
+** Berpotensi mencemarkan nama baik',
'revdelete-otherreason' => 'Alesan liya/tambahan:',
'revdelete-reasonotherlist' => 'Alesan liya',
'revdelete-edit-reasonlist' => 'Sunting alesan pambusakan',
'timezoneregion-indian' => 'Samodra Hindhia',
'timezoneregion-pacific' => 'Samodra Pasifik',
'allowemail' => 'Marengaké panganggo liyané ngirim layang èlèktronik (email).',
-'prefs-searchoptions' => 'Opsi-opsi panggolèkan',
+'prefs-searchoptions' => 'Golèk',
'prefs-namespaces' => 'Ruang jeneng / Bilik jeneng',
'defaultns' => 'Utawa golèki ing bilik jeneng iki:',
'default' => 'baku',
'prefs-emailconfirm-label' => 'Konfirmasi layang-e:',
'prefs-textboxsize' => 'Ukuran kothak suntingan',
'youremail' => 'Layang élèktronik (E-mail):',
-'username' => 'Asma panganggo:',
-'uid' => 'ID panganggo:',
-'prefs-memberingroups' => 'Anggota {{PLURAL:$1|klompok|klompok-klompok}}:',
+'username' => '{{GENDER:$1|Asma panganggo}}:',
+'uid' => '{{GENDER:$1|ID panganggo}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Anggota}} {{PLURAL:$1|klompok|klompok-klompok}}:',
'prefs-registration' => 'Wektu régistrasi:',
'yourrealname' => 'Asma sajatiné :',
'yourlanguage' => 'Basa sing dianggo:',
'backend-fail-notsame' => 'Berkas nonidèntik wis ana nèng "$1".',
'backend-fail-invalidpath' => '"$1" dudu jurusan nyimpen sing sah.',
'backend-fail-delete' => 'Ora bisa mbusak berkas "$1".',
+'backend-fail-describe' => 'Gagal mengubah metadata untuk berkas "$1".',
'backend-fail-alreadyexists' => 'Berkas "$1" wis ana.',
'backend-fail-store' => 'Ora bisa nyèlèhaké berkas "$1" nèng "$2".',
'backend-fail-copy' => 'Ora bisa nyalin berkas "$1" nèng "$2".',
'backend-fail-read' => 'Ora bisa maca berkas "$1".',
'backend-fail-create' => 'Ora bisa nulis berkas "$1".',
'backend-fail-maxsize' => 'Ora bisa nulis berkas "$1" amarga luwih gedhé saka {{PLURAL:$2|sak bita|$2 bita}}.',
+'backend-fail-readonly' => 'Backend penyimpanan "$1" ini saat ini hanya bisa dibaca. Alasan yang diberikan adalah: "\'\'$2\'\'"',
+'backend-fail-synced' => 'Berkas "$1" dalam keadaan yang tidak konsisten dalam backends penyimpanan internal',
+'backend-fail-connect' => 'Tidak dapat menyambung ke penyimpanan backend "$1".',
+'backend-fail-internal' => 'Kesalahan yang tidak dikenal terjadi di backend penyimpanan "$1".',
'backend-fail-contenttype' => 'Ora bisa nemtokaké jinisé kontèn saka berkas sing arep disimpen nèng "$1".',
-'backend-fail-usable' => 'Ora bisa nulis berkas "$1" amarga idin durung nyukupi utawa ilang dirèktori/kontaineré.',
+'backend-fail-batchsize' => 'Penyimpanan backend diberikan batch $1 berkas {{PLURAL:$1||}}operasi; batasnya adalah $2 {{PLURAL:$2||}}operasi.',
+'backend-fail-usable' => 'Ora bisa maca utawa nulis berkas "$1" amarga idin durung nyukupi utawa ilang dirèktori/kontaineré.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'Tidak dapat menyambung ke database jurnal untuk penyimpanan backend "$1".',
+'filejournal-fail-dbquery' => 'Tidak bisa update database jurnal untuk penyimpanan backend "$1".',
# Lock manager
'lockmanager-notlocked' => 'Ora bisa mbukak gembok "$1"; kuwi ora kagembok.',
'uploadnewversion-linktext' => 'Unggahna vèrsi sing luwih anyar tinimbang gambar iki',
'shared-repo-from' => 'saka $1',
'shared-repo' => 'sawijining panyimpenan kanggo bebarengan',
+'upload-disallowed-here' => 'Anda tidak bisa menimpa berkas ini.',
# File reversion
'filerevert' => 'Balèkna $1',
# Miscellaneous special pages
'nbytes' => '$1 {{PLURAL:$1|bita|bita}}',
'ncategories' => '$1 {{PLURAL:$1|kategori|kategori}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwiki}}',
'nlinks' => '$1 {{PLURAL:$1|pranala|pranala}}',
'nmembers' => '$1 {{PLURAL:$1|anggota|anggota}}',
'nrevisions' => '$1 {{PLURAL:$1|revisi|revisi}}',
'mostlinkedtemplates' => 'Cithakan sing kerep dhéwé dienggo',
'mostcategories' => 'Kaca sing kategoriné akèh dhéwé',
'mostimages' => 'Berkas sing kerep dhéwé dienggo',
+'mostinterwikis' => 'Halaman dengan interwiki terbanyak',
'mostrevisions' => 'Kaca mawa pangowahan sing akèh dhéwé',
'prefixindex' => 'Kabèh kaca mawa ater-ater',
'prefixindex-namespace' => 'Kabèh kaca mawa ater-ater (bilik jeneng $1)',
'linksearch-pat' => 'Pola panggolèkan:',
'linksearch-ns' => 'Bilik nama:',
'linksearch-ok' => 'Golèk',
-'linksearch-text' => "''Wildcards'' kaya ta \"*.wikipedia.org\" bisa dienggo.<br />Protokol sing disengkuyung: <code>\$1</code>",
+'linksearch-text' => 'Tanda bintang seperti "*.wikipedia.org" dapat digunakan.
+Perlu sedikitnya satu domain tingkat atas, misalnya "*.org".<br />
+{{PLURAL:$2|Protokol|Protokol}} yang didukung: <code>$1</code> (menggunakan http:// bila protokol tidak ditentukan)',
'linksearch-line' => '$1 disambung saka $2',
'linksearch-error' => "''Wildcards'' namung bisa dienggo ing bagéyan awal saka jeneng host.",
'mailnologin' => 'Ora ana alamat layang e-mail',
'mailnologintext' => 'Panjenengan kudu [[Special:UserLogin|mlebu log]] lan kagungan alamat e-mail sing sah ing [[Special:Preferences|preféèrensi]] yèn kersa ngirim layang e-mail kanggo panganggo liya.',
'emailuser' => 'Kirim e-mail panganggo iki',
+'emailuser-title-target' => 'Kirim surel ke {{GENDER:$1|pengguna}} ini',
+'emailuser-title-notarget' => 'Kirimi panganggo iki layang e-mail',
'emailpage' => 'Kirimi panganggo iki layang e-mail',
-'emailpagetext' => 'Panjenengan bisa migunakaké formulir ing ngisor kanggo ngirim layang-e marang panganggo iki.
+'emailpagetext' => 'Panjenengan bisa migunakaké formulir ing ngisor kanggo ngirim layang-e marang {{GENDER:$1|panganggo}} iki.
Alamat layang-e sing panjenengan lebokaké ing [[Special:Preferences|préferèsi panjenengan]] bakal dadi alamat "Saka" jroning layang-e kasebut, mula panampa layang-e bakal bisa mbalesi langsung menyang panjenengan.',
'usermailererror' => 'Kaluputan obyèk layang:',
'defemailsubject' => '{{SITENAME}} layang èlèktronik saka panganggo "$1"',
'usermessage-editor' => 'Pawartaning layang sistem',
# Watchlist
-'watchlist' => 'Daftar artikel pilihan',
+'watchlist' => 'Daptar pangawasan',
'mywatchlist' => 'Daftar pangawasan',
'watchlistfor2' => 'Kanggo $1 $2',
'nowatchlist' => 'Daftar pangawasan panjenengan kosong.',
'watchnologin' => 'Durung mlebu log',
'watchnologintext' => 'Panjenengan kudu [[Special:UserLogin|mlebu log]] kanggo ngowahi daftar artikel pilihan.',
'addwatch' => 'Tambah nèng daptar pangawasan',
-'addedwatchtext' => "Kaca \"[[:\$1]]\" wis ditambahaké menyang [[Special:Watchlist|daftar pangawasan]].
-Owah-owahan sing dumadi ing tembé ing kaca iku lan kaca dhiskusi sing kagandhèng, bakal dipacak ing kéné, lan kaca iku bakal dituduhaké '''kandel''' ing [[Special:RecentChanges|daftar owah-owahan iku]] supados luwih gampang katon.",
+'addedwatchtext' => 'Kaca "[[:$1]]" wis ditambahaké menyang [[Special:Watchlist|daftar pangawasan]].
+Owah-owahan sing dumadi ing tembé ing kaca iku lan kaca dhiskusi sing kagandhèng, bakal dipacak ing kéné.',
'removewatch' => 'Singkiraké saka daptar pangawasan',
'removedwatchtext' => 'Kaca "[[:$1]]" wis dibusak saka [[Special:Watchlist|daftar pangawasan]].',
'watch' => 'tutana',
'enotif_mailer' => 'Pangirim Notifikasi {{SITENAME}}',
'enotif_reset' => 'Tandhanana kabèh kaca sing wis ditiliki',
'enotif_impersonal_salutation' => 'Panganggo {{SITENAME}}',
+'enotif_subject_deleted' => 'Halaman $1 di {{SITENAME}} telah dihapus oleh {{gender:$2|$2}}',
+'enotif_subject_created' => 'Halaman $1 di {{SITENAME}} telah dibuat oleh {{gender:$2|$2}}',
+'enotif_subject_moved' => 'Halaman $1 di {{SITENAME}} telah dipindahkan oleh {{gender:$2|$2}}',
+'enotif_subject_restored' => 'Halaman $1 di {{SITENAME}} telah dikembalikan oleh {{gender:$2|$2}}',
+'enotif_subject_changed' => 'Halaman $1 di {{SITENAME}} telah diubah oleh {{gender:$2|$2}}',
+'enotif_body_intro_deleted' => 'Halaman $1 di {{SITENAME}} telah dihapus pada $PAGEEDITDATE oleh {{gender:$2|$2}}, lihat $3.',
+'enotif_body_intro_created' => 'Halaman $1 di {{SITENAME}} telah dibuat pada $PAGEEDITDATE oleh {{gender:$2|$2}}, lihat $3 untuk revisi terkini.',
+'enotif_body_intro_moved' => 'Halaman $1 di {{SITENAME}} telah dipindahkan pada $PAGEEDITDATE oleh {{gender:$2|$2}}, lihat $3 untuk revisi terkini.',
+'enotif_body_intro_restored' => 'Halaman $1 di {{SITENAME}} telah dikembalikan pada $PAGEEDITDATE oleh {{gender:$2|$2}}, lihat $3 untuk revisi terkini.',
+'enotif_body_intro_changed' => 'Halaman $1 di {{SITENAME}} telah diubah pada $PAGEEDITDATE oleh {{gender:$2|$2}}, lihat $3 untuk revisi terkini.',
'enotif_lastvisited' => 'Deleng $1 kanggo kabèh owah-owahan wiwit pungkasan panjenengan niliki.',
'enotif_lastdiff' => 'Tilikana $1 kanggo mirsani owah-owahan iki.',
'enotif_anon_editor' => 'panganggo anonim $1',
'prot_1movedto2' => '$1 dialihaké menyang $2',
'protect-badnamespace-title' => 'Bilik jeneng sing ora bisa dijagani',
'protect-badnamespace-text' => 'Kaca nèng bilik jeneng iki ora bisa dijagani.',
+'protect-norestrictiontypes-text' => 'Kaca iki ora isa diproteksi.',
+'protect-norestrictiontypes-title' => 'Kaca sing ora bisa diproteksi',
'protect-legend' => 'Konfirmasi pangreksan',
'protectcomment' => 'Alesan:',
'protectexpiry' => 'Kadaluwarsa:',
'undeletepagetext' => '{{PLURAL:$1|kaca iki wis dibusak nanging isih|$1 kaca iki wis dibusak nanging isih}} ana ing arsip lan bisa dibalèkaké.
Arsip bisa diresiki sakala-kala.',
'undelete-fieldset-title' => 'Mulihaké rèvisi',
-'undeleteextrahelp' => "Kanggo mbalèkaké kabèh sajarah kaca, kothongaké kabèh kothak-cèk lan klik '''''Balèkna'''''.
-Kanggo nglakoni pambalèkan pinilih, conthèngen kothak-cèk sing magepokan karo révisi sing dipéngini lan klik '''''Balèkna'''''.
+'undeleteextrahelp' => "Kanggo mbalèkaké kabèh sajarah kaca, kothongaké kabèh kothak-cèk lan klik '''''{{int:undeletebtn}}'''''.
+Kanggo nglakoni pambalèkan pinilih, conthèngen kothak-cèk sing magepokan karo révisi sing dipéngini lan klik '''''{{int:undeletebtn}}'''''.
Mencèt tombol '''''Reset''''' bakal ngosongaké isi komentar lan kabèh kothak-cèk.",
'undeleterevisions' => '$1 {{PLURAL:$1|révisi|révisi}} diarsipaké',
'undeletehistory' => 'Yèn panjenengan mbalèkaké kaca, kabèh révisi bakal dibalèkaké jroning sajarah.
'undeletedrevisions-files' => '$1 {{PLURAL:$1|révisi|révisi}} lan $2 berkas dibalèkaké',
'undeletedfiles' => '$1 {{PLURAL:$1|berkas|berkas}} dibalèkaké',
'cannotundelete' => 'Olèhé mbatalaké pambusakan gagal;
-mbokmenawa wis ana wong liya sing luwih dhisik nglakoni pambatalan.',
+$1',
'undeletedpage' => "'''$1 bisa dibalèkaké'''
Delengen [[Special:Log/delete|log pambusakan]] kanggo data pambusakan lan pambalèkan.",
'blanknamespace' => '(Utama)',
# Contributions
-'contributions' => 'Sumbangan panganggo',
+'contributions' => 'Sumbangan {{GENDER:$1|panganggo}}',
'contributions-title' => 'Kontribusi panganggo kanggo $1',
'mycontris' => 'Kontribusi',
'contribsub2' => 'Kanggo $1 ($2)',
'reblock-logentry' => 'Ngowahi sèting pamblokiran [[$1]] kanthi wektu daluwarsa $2 $3',
'blocklogtext' => 'Ing ngisor iki kapacak log pamblokiran lan panjabelan blokir panganggo.
Alamat IP sing diblokir sacara otomatis ora ana ing daftar iki.
-Mangga mirsani [[Special:BlockList|daftar alamat IP sing diblokir]] kanggo daftar blokir pungkasan.',
+Mangga mirsani [[Special:BlockList|daftar panganggo sing diblokir]] kanggo daftar blokir pungkasan.',
'unblocklogentry' => 'njabel blokir "$1"',
'block-log-flags-anononly' => 'namung panganggo anonim waé',
'block-log-flags-nocreate' => 'opsi nggawé akun utawa rékening dipatèni',
'''PÈNGET!'''
Perkara iki bisa ngakibataké owah-owahan sing drastis lan ora kaduga kanggo kaca-kaca sing populèr;
pastekaké dhisik panjenengan ngerti konsekwènsi saka panggayuh panjenengan sadurungé dibanjuraké.",
+'movepagetext-noredirectfixer' => "Formulir di bawah ini digunakan untuk mengubah nama suatu halaman dan memindahkan semua data sejarah ke nama baru.
+Judul yang lama akan menjadi halaman peralihan menuju judul yang baru.
+Pastikan untuk memeriksa pengalihan [[Special:DoubleRedirects|ganda]] atau [[Special:BrokenRedirects|rusak]].
+Anda bertanggung jawab untuk memastikan bahwa pranala terus menyambung ke halaman yang seharusnya.
+
+Perhatikan bahwa halaman '''tidak''' akan dipindah apabila telah ada halaman yang menggunakan judul yang baru, kecuali bila halaman tersebut kosong atau merupakan halaman peralihan dan tidak mempunyai sejarah penyuntingan.
+Ini berarti Anda dapat mengubah nama halaman kembali seperti semula apabila Anda membuat kesalahan, dan Anda tidak dapat menimpa halaman yang telah ada.
+
+'''Peringatan:'''
+Hal ini dapat mengakibatkan perubahan yang tak terduga dan drastis bagi halaman yang populer;
+Pastikan Anda mengerti konsekuensi dari perbuatan ini sebelum melanjutkan.",
'movepagetalktext' => "Kaca dhiskusi sing kagandhèng uga bakal dipindhahaké sacara otomatis '''kejaba yèn:'''
*Sawijining kaca dhiskusi sing ora kosong wis ana sangisoring irah-irahan (judhul) anyar, utawa
'immobile-target-namespace-iw' => 'Pranala interwiki dudu target sing sah kanggo pamindhahan kaca.',
'immobile-source-page' => 'Kaca iki ora bisa dipindhahaké.',
'immobile-target-page' => 'Ora bisa mindhahaké menyang irah-irahan tujuan kasebut.',
+'bad-target-model' => 'Halaman yang dituju menggunakan model isi yang berbeda. Tidak dapat mengonversi $1 ke $2.',
'imagenocrossnamespace' => 'Ora bisa mindhahaké gambar menyang bilik nama non-gambar',
'nonfile-cannot-move-to-file' => 'Ora bisa mindhahaké non-berkas nèng bilik jeneng berkas',
'imagetypemismatch' => 'Èkstènsi anyar berkas ora cocog karo jenisé',
'import-interwiki-templates' => 'Katutna kabèh cithakan',
'import-interwiki-submit' => 'Impor',
'import-interwiki-namespace' => 'Bilik jeneng tujuan:',
+'import-interwiki-rootpage' => 'Halaman turunan tujuan (opsional):',
'import-upload-filename' => 'Jeneng berkas:',
'import-comment' => 'Komentar:',
'importtext' => 'Mangga èkspor berkas saka wiki sumber nganggo [[Special:Export|prangkat èkspor]].
'import-error-interwiki' => 'Kaca "$1" ora diimpor amarga jenengé dicadhangaké kango pranala njaba (interwiki).',
'import-error-special' => 'Kaca "$1" ora diimpor amarga kuwi kalebu nèng bilik jeneng kusus sing ora nglilakaké anané kaca.',
'import-error-invalid' => 'Kaca "$1" ora diimpor amarga jenengé ora sah.',
+'import-error-unserialize' => 'Revisi $2 dari halaman "$1" tidak dapat di-\'\'unserialized\'\'. Revisi tersebut dilaporkan menggunakan model konten $3 diserialisasi sebagai $4.',
+'import-options-wrong' => '{{PLURAL:$2|Opsi|Opsi}} salah: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Halaman turunan yang diberikan adalah judul yang salah.',
+'import-rootpage-nosubpage' => 'Ruang nama "$1" di halaman turunan tidak mengizinkan subhalaman.',
# Import log
'importlogpage' => 'Log impor',
# Info page
'pageinfo-title' => 'Inpormasi kanggo "$1"',
+'pageinfo-not-current' => 'Maaf, tidak mungkin memberikan informasi ini ke revisi lama.',
+'pageinfo-header-basic' => 'Informasi dhasar',
'pageinfo-header-edits' => 'Riwayat suntingan',
+'pageinfo-header-restrictions' => 'Perlindungan halaman',
+'pageinfo-header-properties' => 'Properti kaca',
+'pageinfo-display-title' => 'Judul tampilan',
+'pageinfo-default-sort' => 'Kunci urut baku',
+'pageinfo-length' => 'Panjang halaman (dalam bita)',
+'pageinfo-article-id' => 'ID kaca',
+'pageinfo-language' => 'Bahasa isi halaman',
+'pageinfo-robot-policy' => 'Status mesin pencari',
+'pageinfo-robot-index' => 'Dapat diindeks',
+'pageinfo-robot-noindex' => 'Tidak dapat diindeks',
'pageinfo-views' => 'Cacahing delokan',
'pageinfo-watchers' => 'Cacahé pangawas kaca',
+'pageinfo-redirects-name' => 'Pengalihan ke halaman ini',
+'pageinfo-subpages-name' => 'Subhalaman halaman ini',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|pengalihan|pengalihan}}; $3 {{PLURAL:$3|non-pengalihan|non-pengalihan}})',
+'pageinfo-firstuser' => 'Pembuat halaman',
+'pageinfo-firsttime' => 'Tanggal pembuatan halaman',
+'pageinfo-lastuser' => 'Penyunting terakhir',
'pageinfo-lasttime' => 'Tanggal suntingan pungkasan',
'pageinfo-edits' => 'Cacahé kabèh suntingan',
'pageinfo-authors' => 'Cacahé kabèh panganggit sing bédha-bédha.',
'pageinfo-recent-authors' => 'Cacahé panganggit sing bédha-bédha saiki',
'pageinfo-magic-words' => '{{PLURAL:$1|Tembung|Tembung}} mujarab ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Katégori|Katégori}} kadhelikaké ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Templat|Templat}} yang ditransklusi ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Kaca|Kaca}} sing ditransklusi ing ($1)',
'pageinfo-toolboxlink' => 'Informasi kaca',
'pageinfo-redirectsto' => 'Dialihaké dhateng',
'pageinfo-redirectsto-info' => 'info',
'pageinfo-contentpage' => 'Diétung minangka satunggaling kaca isi',
'pageinfo-contentpage-yes' => 'Iya',
+'pageinfo-protect-cascading' => 'Proteksi runtun',
'pageinfo-protect-cascading-yes' => 'Iya',
+'pageinfo-protect-cascading-from' => 'Proteksi runtun saking',
+'pageinfo-category-info' => 'Informasi kategori',
+'pageinfo-category-pages' => 'Cacahing kaca',
+'pageinfo-category-subcats' => 'Jumlah subkategori',
+'pageinfo-category-files' => 'Cacahing gambar',
# Patrolling
'markaspatrolleddiff' => 'Tandhanana wis dipatroli',
'markedaspatrollederror' => 'Ora bisa awèh tandha wis dipatroli',
'markedaspatrollederrortext' => 'Panjenengan kudu nentokaké sawijining révisi kanggo ditandhani minangka sing dipatroli.',
'markedaspatrollederror-noautopatrol' => 'Panjenengan ora pareng nandhani suntingan panjenengan dhéwé minangka dipatroli.',
+'markedaspatrollednotify' => 'Perubahan $1 telah dipatroli.',
+'markedaspatrollederrornotify' => 'Penanda patroli gagal dibuat.',
# Patrol log
'patrol-log-page' => 'Log patroli',
'file-info-size-pages' => '$1 × $2 piksel, gedhéné berkas: $3, jinisé MIME: $4, $5 {{PLURAL:$5|kaca|kaca}}',
'file-nohires' => 'Ora ana résolusi sing luwih dhuwur.',
'svg-long-desc' => 'Berkas SVG, nominal $1 × $2 piksel, gedhené berkas: $3',
+'svg-long-desc-animated' => 'Berkas SVG, nominal $1 × $2 piksel, gedhené berkas: $3',
+'svg-long-error' => 'Berkas SVG ora sah: $1',
'show-big-image' => 'Résolusi kebak',
'show-big-image-preview' => 'Gedhéné pratayang iki: $1',
'show-big-image-other' => '{{PLURAL:$2|Résolusi|Résolusi}} liya: $1.',
'file-info-png-looped' => 'mubeng',
'file-info-png-repeat' => 'diputer {{PLURAL:$1|ping|ping}} $1',
'file-info-png-frames' => '$1 {{PLURAL:$1|rangka|rangka}}',
+'file-no-thumb-animation' => "'''Catatan: Karena keterbatasan teknis, cuplikan berkas ini tidak akan teranimasikan.'''",
+'file-no-thumb-animation-gif' => "'''Catatan: Karena keterbatasan teknis, cuplikan gambar GIF beresolusi tinggi seperti yang satu ini tidak akan teranimasikan.'''",
# Special:NewFiles
'newimages' => 'Galeri berkas anyar',
'minutes' => '{{PLURAL:$1|$1 menit|$1 menit}}',
'hours' => '{{PLURAL:$1|$1 jam|$1 jam}}',
'days' => '{{PLURAL:$1|$1 dina|$1 dina}}',
+'months' => '{{PLURAL:$1|$1 sasi|$1 sasi}}',
+'years' => '{{PLURAL:$1|$1 taun|$1 taun}}',
'ago' => '$1 kapungkur',
+'just-now' => 'baru saja',
# Bad image list
'bad_image_list' => "Formaté kaya mengkéné:
# EXIF attributes
'exif-compression-1' => 'Ora dikomprèsi',
+'exif-compression-2' => 'CCITT Group 3 1-Dimensional Modified Huffman RLE',
+'exif-compression-3' => 'CCITT Group 3 fax encoding',
+'exif-compression-4' => 'CCITT Group 4 fax encoding',
'exif-copyrighted-true' => 'Mawa hak cipta',
'exif-copyrighted-false' => 'Domain umum',
'exif-gpsdirection-m' => 'Arah magnètis',
'exif-ycbcrpositioning-1' => 'Kapusat',
+'exif-ycbcrpositioning-2' => 'Atas (co-sited)',
'exif-dc-contributor' => 'Kontributor',
'exif-dc-coverage' => 'Cakepan latar utawa wektu média',
$5
+Konfirmasi iki bakal kadaluwarsa ing $4.',
+'confirmemail_body_changed' => 'Sawijining wong, mbokmenawa panjenengan dhéwé, saka alamat IP $1, wis ndaftaraké akun "$2" mawa alamat e-mail iki ing {{SITENAME}}. Bukaka pranala iki ing panjlajah wèb panjenengan.
+
+$3
+
+Yèn panjenengan *ora tau* ndaftar akun iki, tutna pranala ing ngisor iki kanggo mbatalaké konfirmasi alamat e-mail:
+
+$5
+
+Konfirmasi iki bakal kadaluwarsa ing $4.',
+'confirmemail_body_set' => 'Sawijining wong, mbokmenawa panjenengan dhéwé, saka alamat IP $1, wis ndaftaraké akun "$2" mawa alamat e-mail iki ing {{SITENAME}}. Bukaka pranala iki ing panjlajah wèb panjenengan.
+
+$3
+
+Yèn panjenengan *ora tau* ndaftar akun iki, tutna pranala ing ngisor iki kanggo mbatalaké konfirmasi alamat e-mail:
+
+$5
+
Konfirmasi iki bakal kadaluwarsa ing $4.',
'confirmemail_invalidated' => 'Pandhedhesan (konfirmasi) alamat e-mail batal',
'invalidateemail' => 'Batalna pandhedhesan (konfirmasi) e-mail',
# Scary transclusion
'scarytranscludedisabled' => '[Transklusi cithakan interwiki dipatèni]',
'scarytranscludefailed' => '[Olèhé njupuk cithakan $1 gagal]',
+'scarytranscludefailed-httpstatus' => '[Pengambilan templat $1 gagal: HTTP $2]',
'scarytranscludetoolong' => '[URL-é kedawan]',
# Delete conflict
'version-license' => 'Lisènsi',
'version-poweredby-credits' => "Wiki iki disengkuyung déning '''[//www.mediawiki.org/ MediaWiki]''', hak cipta © 2001-$1 $2.",
'version-poweredby-others' => 'liyané',
+'version-credits-summary' => 'Kami ingin mengakui orang-orang berikut atas kontribusinya terhadap [[Special:Version|MediaWiki]].',
+'version-license-info' => 'MediaWiki adalah perangkat lunak bebas; Anda diperbolehkan untuk mendistribusikan dan/atau memodfikasinya dengan persyaratan Lisensi Publik Umum GNU yang diterbitkan oleh Free Software Foundation; versi 2 atau terbaru.
+
+MediaWiki didistribusikan dengan harapan dapat digunakan, tetapi TANPA JAMINAN APA PUN; tanpa jaminan PERDAGANGAN atau KECOCOKAN UNTUK TUJUAN TERTENTU. Lihat Lisensi Publik Umum GNU untuk informasi lebih lanjut.
+
+Anda seharusnya telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING salinan Lisensi Publik Umum GNU] bersama dengan program ini; jika tidak, kirim surat ke Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA atau [//www.gnu.org/licenses/old-licenses/gpl-2.0.html baca daring].',
'version-software' => "''Software'' wis diinstalasi",
'version-software-product' => 'Prodhuk',
'version-software-version' => 'Vèrsi',
'logentry-newusers-newusers' => 'Akun panganggo $1 digawé',
'logentry-newusers-create' => 'Akun panganggo $1 digawé',
'logentry-newusers-create2' => 'Akun panganggo $3 digawé déning $1',
+'logentry-newusers-byemail' => 'Akun pengguna $3 dibuat oleh $1 dan kata sandi dikirim melalui e-mail',
'logentry-newusers-autocreate' => 'Akun $1 digawé otomatis',
-'newuserlog-byemail' => 'tembung sandhi wis dikirim liwat e-mail',
+'logentry-rights-rights' => 'ngganti kaanggotan kelompok kanggo $3 saka $4 dadi $5',
+'logentry-rights-rights-legacy' => '$1 mengubah keanggotaan grup $3',
+'logentry-rights-autopromote' => 'otomatis ditawakaké saka $4 nèng $5',
'rightsnone' => '(ora ana)',
# Feedback
'api-error-ok-but-empty' => 'Kasalahan njero: Ora ana tanggepan saka sasana.',
'api-error-overwrite' => 'Nibani berkas sing wis ana ora dililakaké.',
'api-error-stashfailed' => 'Kasalahan njero: Sasana gagal nyèlèhaké berkas sawetara.',
+'api-error-publishfailed' => 'Kasalahan njero: Sasana gagal nyèlèhaké berkas sawetara.',
'api-error-timeout' => 'Sasana ora nanggepi nèng wektu sing karepaké.',
'api-error-unclassified' => 'Ana masalah sing ora dingertèni.',
'api-error-unknown-code' => 'Kasalahan ora dingertèni: "$1".',
'tog-ccmeonemails' => 'გამომიგზავნე ელფოსტების ასლები, რომლებსაც მე სხვა მომხმარებლებს ვუგზავნი',
'tog-diffonly' => 'დამალე გვერდის შიგთავსი ცვლილების ქვევით',
'tog-showhiddencats' => 'დამალული კატეგორიების ჩვენება',
+'tog-noconvertlink' => 'სათაურის გარდაქმნის ბმულის გამორთვა',
'tog-norollbackdiff' => 'გამოტოვეთ ცვლილება გაუქმებისას',
'underline-always' => 'მუდამ',
'saveusergroups' => 'მომხმარებელთა ჯგუფების შენახვა',
'userrights-groupsmember' => 'ჯგუფის წევრი:',
'userrights-groupsmember-auto' => 'ნაგულისხმევი წევრი:',
+'userrights-groupsmember-type' => '$1',
'userrights-groups-help' => 'თქვენ შეგიძლიათ შეცვალოთ ჯგუფები, რომელშიც შედის ეს მომხმარებელი.
* თუ ჯგუფის სახელწოდებასთან გაკეთებულია ნიშნული, ე.ი მომხმარებელი შედის ამ ჯგუფში.
* თუ ნიშნული არ არის – მომხმარებელი არ განეკუთვნება არსებულ ჯგუფს.
# Special:ActiveUsers
'activeusers' => 'აქტიურ მომხმარებელთა სია',
'activeusers-intro' => 'ეს არის მომხმარებელთა სია, რომელთაც აქვს წვლილი უკანასკნელი $1 {{PLURAL:$1|დღის|დღის}} განმავლობაში.',
-'activeusers-count' => '$1 {{PLURAL:$1|á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90|á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90}} {{PLURAL:$2|$3 á\83\93á\83¦á\83\94|$3 დღის}} განმავლობაში.',
+'activeusers-count' => '$1 {{PLURAL:$1|á\83\9bá\83\9dá\83¥á\83\9bá\83\94á\83\93á\83\94á\83\91á\83\90|á\83\9bá\83\9dá\83¥á\83\9bá\83\94á\83\93á\83\94á\83\91á\83\90}} {{PLURAL:$3|á\83\93á\83¦á\83\98á\83¡|$3 დღის}} განმავლობაში.',
'activeusers-from' => 'მომხმარებელთა ჩვენება, დაწყებული:',
'activeusers-hidebots' => 'რობოტების დამალვა',
'activeusers-hidesysops' => 'ადმინისტრატორების დამალვა',
'emailusernamesubmit' => 'შენახვა',
'email-legend' => 'წერილის გაგზავნა სხვა მომხმარებლისადმი {{grammar:genitive|{{SITENAME}}}}',
'emailfrom' => 'გამომგზავნი:',
-'emailto' => 'á\83\90á\83\93á\83 á\83\94á\83¡á\83\90á\83¢ი:',
+'emailto' => 'á\83\9bá\83\98á\83\9bá\83¦á\83\94á\83\91ი:',
'emailsubject' => 'თემა:',
'emailmessage' => 'შეტყობინება:',
'emailsend' => 'გაგზავნა',
'prot_1movedto2' => '[[$1]] გადატანილია გვერდზე [[$2]]',
'protect-badnamespace-title' => 'დაუცველი სახელთა სივრცე',
'protect-badnamespace-text' => 'ამ სახელთა სივრცის გვერდების დაცვა შეუძლებელია.',
+'protect-norestrictiontypes-title' => 'დაუცველი გვერდი',
'protect-legend' => 'დაცვის დადასტურება',
'protectcomment' => 'მიზეზი:',
'protectexpiry' => 'ვადა',
თქვენ შეგიძლიათ ამ გვერდის დაცვის დონე შეცვალოთ, თუმცა ეს კასკადურ დაცვაზე გავლენას არ იქონიებს.',
'protect-default' => 'ყველა მომხმარებელი',
'protect-fallback' => 'ხელმისაწვდომია მხოლოდ „$1-ის“ უფლების მქონე მომხმარებლებისათვის',
-'protect-level-autoconfirmed' => 'á\83\90á\83®á\83\90á\83\9aá\83\98 á\83\93á\83\90 á\83\90á\83 á\83\90á\83 á\83\94á\83\92á\83\98á\83¡á\83¢á\83 á\83\98á\83 á\83\94á\83\91á\83£á\83\9aá\83\98 á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\94á\83\91á\83\98á\83¡á\83\90á\83\92á\83\90á\83\9c á\83\93á\83\90á\83ªá\83\95á\83\90',
+'protect-level-autoconfirmed' => 'á\83®á\83\94á\83\9aá\83\9bá\83\98á\83¡á\83\90á\83¬á\83\95á\83\93á\83\9dá\83\9bá\83\98á\83\90 á\83\9bá\83®á\83\9dá\83\9aá\83\9dá\83\93 á\83\90á\83\95á\83¢á\83\9dá\83\9bá\83\90á\83¢á\83£á\83 á\83\90á\83\93 á\83\93á\83\90á\83\93á\83\90á\83¡á\83¢á\83£á\83 á\83\94á\83\91á\83£á\83\9aá\83\98 á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\94á\83\91á\83\98á\83¡á\83\90á\83\97á\83\95á\83\98á\83¡',
'protect-level-sysop' => 'მხოლოდ ადმინისტრატორები',
+'protect-summary-desc' => '[$1=$2] ($3)',
'protect-summary-cascade' => 'იერარქიული',
'protect-expiring' => 'ვადა გასდის: $1 (UTC)',
'protect-expiring-local' => 'ვადის გასვლის თარიღია $1',
'pageinfo-protect-cascading' => 'კასკადური დაცვა აქედან',
'pageinfo-protect-cascading-yes' => 'დიახ',
'pageinfo-protect-cascading-from' => 'კასკადური დაცვა',
+'pageinfo-category-info' => 'ინფორმაცია კატეგორიის შესახებ',
+'pageinfo-category-pages' => 'გვერდების რაოდენობა',
+'pageinfo-category-subcats' => 'ქვეკატეგორიების რაოდენობა',
+'pageinfo-category-files' => 'ფაილების რაოდენობა',
# Skin names
'skinname-standard' => 'კლასიკური',
'minutes' => '$1 წუთის',
'hours' => '$1 საათის',
'days' => '$1 დღის',
+'months' => '{{PLURAL:$1|$1 თვე|$1 თვე}}',
+'years' => '{{PLURAL:$1|$1 წელი|$1 წელი}}',
'ago' => '$1 წინ',
'just-now' => 'ახლახანს',
'specialpages-group-highuse' => 'ხშირად გამოყენებული გვერდები',
'specialpages-group-pages' => 'გვერდების სიები',
'specialpages-group-pagetools' => 'ინსტრუმენტები გვერდებისთვის',
-'specialpages-group-wiki' => 'á\83\95á\83\98á\83\99á\83\98-á\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\94á\83\91á\83\98 á\83\93á\83\90 á\83\98á\83\9cá\83¡á\83¢á\83 á\83£á\83\9bá\83\94á\83\9cá\83¢á\83\94á\83\91á\83\98',
+'specialpages-group-wiki' => 'მონაცემები და ინსტრუმენტები',
'specialpages-group-redirects' => 'სპეცგვერდების გადამისამართება',
'specialpages-group-spam' => 'ინსტრუმენტები სპამის წინააღმდეგ',
'logentry-newusers-create' => 'შეიქმნა მომხმარებლის ანგარიში $1',
'logentry-newusers-create2' => 'მომხმარებლის ანგარიში $3 შექმნა მომხმარებელმა $1',
'logentry-newusers-autocreate' => 'ავტომატურად შეიქმნა მომხმარებლის ანგარიში $1',
-'newuserlog-byemail' => 'პაროლი ელ-ფოსტითაა გამოგზავნილი',
'logentry-rights-rights' => '$1 შეცვალა ჯგუფის წევრობა $3-თვის $4-დან $5-ზე',
'logentry-rights-rights-legacy' => '$1 შეცვალა ჯგუფის წევრობა $3-თვის',
'logentry-rights-autopromote' => '$1 ავტომატურად იქნა გადაყვანილი $4–დან $5–ში',
# New logging system
'revdelete-restricted' => "administratorlarg'a qollanılg'an sheklewler",
'revdelete-unrestricted' => "administratorlardan alıp taslang'an sheklewler",
-'newuserlog-byemail' => 'parol e-mail arqalı jiberildi',
'rightsnone' => '(hesh qanday)',
);
# $fallback = 'ru'; // bug 27785
+$namespaceNames = array(
+ NS_MEDIA => 'Медиа',
+ NS_SPECIAL => 'Служебная',
+ NS_TALK => 'Тепсэлъэхьыгъуэ',
+ NS_USER => 'ЦӀыхухэт',
+ NS_USER_TALK => 'ЦӀыхухэт_тепсэлъэхьыгъуэ',
+ NS_PROJECT_TALK => '$1_тепсэлъэхьыгъуэ',
+ NS_FILE => 'Файл',
+ NS_FILE_TALK => 'Файл_тепсэлъэхьыгъуэ',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'MediaWiki_тепсэлъэхьыгъуэ',
+ NS_TEMPLATE => 'Шаблон',
+ NS_TEMPLATE_TALK => 'Шаблон_тепсэлъэхьыгъуэ',
+ NS_HELP => 'ДэӀэпыкъуэгъуэ',
+ NS_HELP_TALK => 'ДэӀэпыкъуэгъуэ_тепсэлъэхьыгъуэ',
+ NS_CATEGORY => 'Категориэ',
+ NS_CATEGORY_TALK => 'Категориэ_тепсэлъэхьыгъуэ',
+);
+
+$namespaceAliases = array(
+ # Russian namespaces
+ 'Обсуждение' => NS_TALK,
+ 'Участник' => NS_USER,
+ 'Обсуждение_участника' => NS_USER_TALK,
+ 'Обсуждение_{{GRAMMAR:genitive|$1}}' => NS_PROJECT_TALK,
+ 'Обсуждение_файла' => NS_FILE_TALK,
+ 'Обсуждение_MediaWiki' => NS_MEDIAWIKI_TALK,
+ 'Обсуждение_шаблона' => NS_TEMPLATE_TALK,
+ 'Справка' => NS_HELP,
+ 'Обсуждение_справки' => NS_HELP_TALK,
+ 'Категория' => NS_CATEGORY,
+ 'Обсуждение_категории' => NS_CATEGORY_TALK,
+);
+
+// Remove Russian gender aliases
+$namespaceGenderAliases = array();
+
$messages = array(
# User preference toggles
'tog-underline' => 'ТехьэпӀэхэр щӀэтхъэн:',
'index-category' => 'نو انڈیکس صفحات',
'noindex-category' => 'نو انڈیکس صفحات',
'broken-file-category' => 'نس پھت صفحات',
+'categoryviewer-pagedlinks' => '($1) ($2)',
'about' => 'تعارف',
'article' => 'صفحۂ مشمول',
[[Special:Version|version page]]',
'ok' => 'ٹھیک شیر',
+'pagetitle' => '$1 - {{SITENAME}}',
'pagetitle-view-mainpage' => '{{SITENAME}}',
'retrievedfrom' => '‘‘$1’’ نقل کاردو',
'youhavenewmessages' => 'تہ بچے ای $1 شیر۔ ($2)',
'newmessagesdifflink' => 'تـجـدیـد مـاقـبل آخـراری فـرق',
'youhavenewmessagesmulti' => 'ء$1 تہ بچے نوغ نوغ پیغامات شینی',
'editsection' => 'ترمیم',
+'editsection-brackets' => '[$1]',
'editold' => 'ترمیم',
'viewsourceold' => 'مآخذو لوڑے',
'editlink' => 'تدوین کورے',
'site-atom-feed' => '$1 اٹوم فیڈ',
'page-rss-feed' => '$1 آر ایس ایس فیڈ',
'page-atom-feed' => '$1 آٹوم فیڈ',
+'feed-atom' => 'اٹوم',
+'feed-rss' => 'آر ایس ایس',
'red-link-title' => '
$1 (صفحہ موجود نیکی)',
'revdel-restore-deleted' => 'حذف شدہ رویژنز',
'revdel-restore-visible' => 'ویزیبل رویژنز',
+# History merging
+'mergehistory-revisionrow' => '$1 ($2) $3 . . $4 $5 $6',
+
# Merge log
'revertmerge' => 'غیر ضم',
'username' => 'ممبارو نم',
'uid' => 'ممبارو لمبار:',
'prefs-memberingroups' => '{{PLURAL:$1|گروہ|گروہاں}} رُکن:',
+'prefs-registration-date-time' => '$1',
'yourrealname' => '* اصلی نم',
'yournick' => 'دسخط',
'badsig' => "ناقص خام دسخط.
'about' => 'Heqa',
'article' => 'Pela tedeesteyu',
'newwindow' => '(zerrê pençerê dê newey de beno ra)',
-'cancel' => 'Texelnaene',
+'cancel' => 'Bıtexelne',
'moredotdotdot' => 'Jêde...',
'mypage' => 'Pela mı',
'mytalk' => 'Hurênayişê mı',
'watchthisupload' => 'Na dosya de şêr ke',
'license' => 'Lisans:',
-'license-header' => 'Lisanskerdene',
+'license-header' => 'Lisansdais',
# Special:ListFiles
'imgfile' => 'dosya',
'logentry-newusers-create' => '$1 жаңадан аккаунт тіркеді',
'logentry-newusers-create2' => '$1 $3 деген аккаунт тіркеді',
'logentry-newusers-autocreate' => '$1 аккаунты автоматты түрде тіркелді',
-'newuserlog-byemail' => 'Құпия сөз e-mail арқылы жіберілді',
'rightsnone' => '(ешқандай)',
# Search suggestions
'actionthrottledtext' => 'ក្រោមវិធានការប្រឆាំងស្ប៉ាម អ្នកត្រូវបានគេកំហិតមិនឱ្យធ្វើសកម្មភាពនេះច្រើនដងពេកទេក្នុងរយៈពេលខ្លីមួយ។
សូមព្យាយាមម្ដងទៀតក្នុងរយៈពេលប៉ុន្មាននាទីទៀត។',
-'protectedpagetext' => 'á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87á\9e\94á\9e¶á\9e\93á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84á\9e\98á\9e·á\9e\93á\9e±á\9f\92á\9e\99á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82â\80\8b។',
+'protectedpagetext' => 'á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87á\9e\94á\9e¶á\9e\93á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\80á\9e¶á\9e\9aá\9e\96á\9e¶á\9e\9aá\9e\98á\9e·á\9e\93á\9e±á\9f\92á\9e\99á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82â\80\8bá\9e¬á\9e\92á\9f\92á\9e\9cá\9e¾á\9e\9fá\9e\80á\9e\98á\9f\92á\9e\98á\9e\97á\9e¶á\9e\96á\9e\95á\9f\92á\9e\9fá\9f\81á\9e\84á\9e\91á\9f\80á\9e\8fá\9e\9bá\9e¾á\9e\9cá\9e¶។',
'viewsourcetext' => 'អ្នកអាចមើលនិងចម្លងកូដរបស់ទំព័រនេះ៖',
'viewyourtext' => "អ្នកអាចមើលនិងចម្លងកូដរបស់'''ការកែប្រែរបស់អ្នក'''ទៅកាន់ទំព័រនេះ៖",
'protectedinterface' => 'ទំព័រនេះផ្ដល់នូវអត្ថបទអន្តរមុខសម្រាប់សូហ្វវែរនៅក្នុងវិគីនេះ និងត្រូវបានចាក់សោដើម្បីចៀសវាងការបំពាន។
ដើម្បីបន្ថែមឬផ្លាស់ប្ដូរការបកប្រែសំរាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [//translatewiki.net/ translatewiki.net] ដែលជាគំរោងបកប្រែរបស់MediaWiki។',
-'editinginterface' => "'''á\9e\94á\9f\92á\9e\9aá\9e\99á\9f\90á\9e\8fá\9f\92á\9e\93á\9f\96''' á\9e¢á\9f\92á\9e\93á\9e\80á\9e\80á\9f\86á\9e\96á\9e»á\9e\84á\9e\8fá\9f\82á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bâ\80\8bá\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\93á\9e¼á\9e\9cá\9e¢á\9e\93á\9f\92á\9e\8fá\9e\9aá\9e\98á\9e»á\9e\81á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\95á\9f\92á\9e\93á\9f\82á\9e\80á\9e\91á\9e\93á\9f\8bâ\80\8bá\9f\94 á\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\85á\9f\86á\9e\96á\9f\84á\9f\87á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87â\80\8bá\9e\93á\9e¹á\9e\84á\9e\94á\9f\89á\9f\87á\9e\96á\9e¶á\9e\9bá\9f\8bá\9e\8aá\9e\9bá\9f\8bá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e¢á\9e\93á\9f\92á\9e\8fá\9e\9aá\9e\98á\9e»á\9e\81á\9e\93á\9f\83á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bâ\80\8bá\9e\87á\9e¶á\9e\85á\9f\92á\9e\9aá\9e¾á\9e\93 á\9e\8aá\9f\82á\9e\9bá\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\9cá\9e·á\9e\94á\9e\9fá\9e¶á\9e\99á\9e\93á\9f\81á\9f\87á\9f\94 á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\80á\9e¶á\9e\9aá\9e\94á\9e\80á\9e\94á\9f\92á\9e\9aá\9f\82 á\9e\9fá\9e¼á\9e\98á\9e\96á\9e·á\9e\85á\9e¶á\9e\9aá\9e\8eá\9e¶á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b [//translatewiki.net/wiki/Main_Page?setlang=km translatewiki.net] (á\9e\94á\9f\81á\9e\8fá\9e¶á\9e\9cá\9e·á\9e\82á\9e¸) á\9e\82á\9e\98á\9f\92á\9e\9aá\9f\84á\9e\84â\80\8bá\9e¢á\9e\93á\9f\92á\9e\8fá\9e\9aá\9e\87á\9e¶á\9e\8fá\9e¼á\9e\94á\9e\93á\9e¸á\9e\99á\9e\80á\9e\98á\9f\92á\9e\98â\80\8bá\9e\93á\9f\83មេឌាវិគី ។",
+'editinginterface' => "'''á\9e\94á\9f\92á\9e\9aá\9e\99á\9f\90á\9e\8fá\9f\92á\9e\93á\9f\96''' á\9e¢á\9f\92á\9e\93á\9e\80á\9e\80á\9f\86á\9e\96á\9e»á\9e\84á\9e\8fá\9f\82á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bâ\80\8bá\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\87á\9e¼á\9e\93á\9e¢á\9e\93á\9f\92á\9e\8fá\9e\9aá\9e\98á\9e»á\9e\81á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\9fá\9e¼á\9e á\9f\92á\9e\9cá\9e\9cá\9f\82á\9e\9aá\9f\94 á\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\85á\9f\86á\9e\96á\9f\84á\9f\87á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e\93á\9f\81á\9f\87â\80\8bá\9e\93á\9e¹á\9e\84á\9e\94á\9f\89á\9f\87á\9e\96á\9e¶á\9e\9bá\9f\8bá\9e\8aá\9e\9bá\9f\8bá\9e\91á\9f\92á\9e\9aá\9e\84á\9f\8bá\9e\91á\9f\92á\9e\9aá\9e¶á\9e\99á\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e¢á\9e\93á\9f\92á\9e\8fá\9e\9aá\9e\98á\9e»á\9e\81á\9e\9fá\9f\86á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bâ\80\8bá\9e\87á\9e¶á\9e\85á\9f\92á\9e\9aá\9e¾á\9e\93 á\9e\8aá\9f\82á\9e\9bá\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\9cá\9e·á\9e\82á\9e¸á\9e\93á\9f\81á\9f\87á\9f\94 á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\94á\9e\93á\9f\92á\9e\90á\9f\82á\9e\98á\9e¬á\9e\95á\9f\92á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\80á\9e¶á\9e\9aá\9e\94á\9e\80á\9e\94á\9f\92á\9e\9aá\9f\82â\80\8bá\9e\9fá\9f\86á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\9cá\9e·á\9e\82á\9e¸á\9e\91á\9e¶á\9f\86á\9e\84á\9e¢á\9e\9fá\9f\8b á\9e\9fá\9e¼á\9e\94á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b [//translatewiki.net/wiki/Main_Page?setlang=km translatewiki.net] á\9e\82á\9e\98á\9f\92á\9e\9aá\9f\84á\9e\84â\80\8bá\9e\94á\9e\80á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9aá\9e\94á\9e\9fá\9f\8bមេឌាវិគី ។",
'sqlhidden' => '(ការអង្កេត SQL ត្រូវបិទបាំង)',
'cascadeprotected' => 'ទំព័រនេះត្រូវបានការពារពីការការប្រែដោយសារវាមាន{{PLURAL:$1|ទំព័រ, ដែលមាន}} ដែលត្រូវបានការពារជាមួយជំរើស"ជាបណ្ដាក់"៖
$2',
'gotaccount' => "បើលោកអ្នកមានគណនីសម្រាប់ប្រើហើយ សូម'''$1'''។",
'gotaccountlink' => 'កត់ឈ្មោះចូល',
'userlogin-resetlink' => 'តើអ្នកភ្លេចព័ត៌មានលំអិតសំរាប់កត់ឈ្មោះចូលហើយ?',
-'createaccountmail' => 'á\9e\8fá\9e¶á\9e\98á\9e\9aá\9e\99á\9f\88á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9b',
+'createaccountmail' => 'á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9f\86á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\96á\9f\92á\9e\9aá\9f\80á\9e\84á\9e\94á\9e\8eá\9f\92á\9e\8aá\9f\84á\9f\87á\9e¢á\9e¶á\9e\9fá\9e\93á\9e»á\9f\92á\9e\93 á\9e\9aá\9e½á\9e\85á\9e\95á\9f\92á\9e\89á\9e¾á\9e\9cá\9e¶á\9e\91á\9f\85á\9e\80á\9e¶á\9e\93á\9f\8bá\9e¢á\9e¶á\9e\9fá\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98',
'createaccountreason' => 'មូលហេតុ៖',
'badretype' => 'ពាក្យសំងាត់ដែលអ្នកបានបញ្ចូលនោះ គឺមិនស៊ីគ្នាទេ។',
'userexists' => 'អត្តនាមដែលអ្នកបានវាយបញ្ចូលមានគេប្រើហើយ។
'changeemail-oldemail' => 'អាសយដ្ឋានអ៊ីមែលបច្ចុប្បន្ន៖',
'changeemail-newemail' => 'អាសយដ្ឋានអ៊ីមែលថ្មី៖',
'changeemail-none' => '(គ្មាន)',
+'changeemail-password' => 'ពាក្យសំងាត់{{SITENAME}}របស់អ្នក:',
'changeemail-submit' => 'ផ្លាស់ប្ដូរអ៊ីមែល',
'changeemail-cancel' => 'បោះបង់',
'prefs-emailconfirm-label' => 'បញ្ជាក់ទទួលស្គាល់អ៊ីមែល៖',
'prefs-textboxsize' => 'ទំហំរបស់ផ្ទាំងកែប្រែទំព័រ',
'youremail' => 'អ៊ីមែល៖',
-'username' => 'អត្តនាម៖',
-'uid' => 'អត្តលេខ៖',
-'prefs-memberingroups' => 'សមាជិកក្នុង{{PLURAL:$1|ក្រុម|ក្រុម}}៖',
+'username' => '{{GENDER:$1|អត្តនាម}}៖',
+'uid' => 'អត្តលេខ{{GENDER:$1|អ្នកប្រើប្រាស់}}៖',
+'prefs-memberingroups' => '{{GENDER:$2|សមាជិក}}ក្នុង{{PLURAL:$1|ក្រុម|ក្រុម}}៖',
'prefs-registration' => 'កាលបរិច្ឆេទចុះឈ្មោះ៖',
'yourrealname' => 'ឈ្មោះពិត៖',
'yourlanguage' => 'ភាសា៖',
'linksearch-ns' => 'លំហឈ្មោះ៖',
'linksearch-ok' => 'ស្វែងរក',
'linksearch-text' => 'Wildcards ដូចជា "*.wikipedia.org" អាចប្រើបាន។
-á\9e\8fá\9f\86á\9e\9aá\9e¼á\9e\9cá\9e¢á\9f\84á\9e\99á\9e\98á\9e¶á\9e\93á\9e\99á\9f\89á\9e¶á\9e\84á\9e á\9f\84á\9e\85á\9e\8eá\9e¶á\9e\9fá\9f\8bá\9e¢á\9f\84á\9e\99á\9e\98á\9e¶á\9e\93á\9e\8aá\9e¼á\9e\98á\9f\89á\9f\82á\9e\93á\9e\80á\9f\86á\9e\9aá\9e·á\9e\8fá\9e\9bá\9e¾á\9e\82á\9f\81 á\9e§á\9e\91á\9e¶á\9e á\9e¶á\9e\9aá\9e\8eá\9f\8d "*.org"á\9f\94<br />
-ប្រូតូខូលប្រើបាន៖ <code>$1</code> (តាមលំនាំដើមជា http:// ប្រសិនបើគ្មានបញ្ជាក់ប្រូតូខូល)។',
+តំរូវអោយមានយ៉ាងហោចណាស់អោយមានដូម៉ែនកំរិតលើគេ ឧទាហរណ៍ "*.org"។<br />
+{{PLURAL:$2ប្រូតូខូល|ប្រូតូខូល}}ប្រើបាន៖ <code>$1</code> (តាមលំនាំដើមជា http:// ប្រសិនបើគ្មានបញ្ជាក់ប្រូតូខូល)។',
'linksearch-line' => '$1បានតភ្ជាប់ពី$2',
# Special:ListUsers
# Special:ActiveUsers
'activeusers' => 'បញ្ជីរាយនាមអ្នកប្រើប្រាស់សកម្ម',
'activeusers-intro' => 'នេះជាបញ្ជីរាយនាមអ្នកប្រើប្រាស់ដែលមានសកម្មភាពក្នុងរូបភាពណាមួយក្នុងរយៈពេល $1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}}ចុងក្រោយ។',
-'activeusers-count' => '$1 {{PLURAL:$1|កំនែប្រែ|កំនែប្រែ}}ក្នុងរយៈពេល{{PLURAL:$3|ថ្ងៃ|$3 ថ្ងៃ}}ចុងក្រោយ',
+'activeusers-count' => '{{PLURAL:$1|សកម្មភាព|សកម្មភាព}}ចំនួន$1 ក្នុងរយៈពេល{{PLURAL:$3|១ថ្ងៃ|$3 ថ្ងៃ}}ចុងក្រោយ',
'activeusers-from' => 'បង្ហាញអត្តនាមផ្ដើមដោយ៖',
'activeusers-hidebots' => 'លាក់រូបយន្ត',
'activeusers-hidesysops' => 'លាក់អ្នកអភិបាល',
'usermessage-editor' => 'ប្រព័ន្ធផ្ញើសារ',
# Watchlist
-'watchlist' => 'បញ្ជីតាមដានរបស់ខ្ញុំ',
+'watchlist' => 'បញ្ជីតាមដាន',
'mywatchlist' => 'បញ្ជីតាមដាន',
'watchlistfor2' => 'សំរាប់ $1 $2',
'nowatchlist' => 'គ្មានអ្វីនៅក្នុងបញ្ជីតាមដានរបស់អ្នកទេ។',
អ្នកអាចផ្លាស់ប្តូរកម្រិតការពារនៃ ទំព័រ ប៉ុន្តែវានឹងមិនប៉ះពាល់ដល់ការការពារជាថ្នាក់ទេ។',
'protect-default' => 'អនុញ្ញាតអ្នកប្រើប្រាស់ទាំងអស់',
-'protect-fallback' => 'á\9e\8fá\9e\98á\9f\92á\9e\9aá\9e¼á\9e\9cá\9e±á\9f\92á\9e\99á\9e\98á\9e¶á\9e\93á\9e\80á\9e¶á\9e\9aá\9e¢á\9e\93á\9e»á\9e\89á\9f\92á\9e\89á\9e¶á\9e\8fá\9e\93á\9f\83 "$1"',
-'protect-level-autoconfirmed' => 'á\9e á\9e¶á\9e\98á\9e\83á\9e¶á\9e\8fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\90á\9f\92á\9e\98á\9e¸â\80\8bá\9e\93á\9e¹á\9e\84â\80\8bá\9e¢á\9f\92á\9e\93á\9e\80â\80\8bâ\80\8bá\9e\98á\9e·á\9e\93á\9e\91á\9e¶á\9e\93á\9f\8bá\9e\85á\9e»á\9f\87á\9e\88á\9f\92á\9e\98á\9f\84á\9f\87',
-'protect-level-sysop' => 'á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\8fá\9f\82á\9e¢á\9f\92á\9e\93á\9e\80á\9e\90á\9f\82á\9e\91á\9e¶á\9f\86á\9e\94á\9f\92á\9e\9aá\9e\96á\9f\90á\9e\93á\9f\92á\9e\92',
+'protect-fallback' => 'á\9e\9fá\9f\86á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\8fá\9f\82á\9e¢á\9f\92á\9e\93á\9e\80á\9e\8aá\9f\82á\9e\9bá\9e\98á\9e¶á\9e\93á\9e\80á\9e¶á\9e\9aá\9e¢á\9e\93á\9e»á\9e\89á\9f\92á\9e\89á\9e¶á\9e\8f "$1"',
+'protect-level-autoconfirmed' => 'á\9e\9fá\9f\86á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\8fá\9f\82á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\94á\9e\89á\9f\92á\9e\87á\9e¶á\9e\80á\9f\8bá\9e\91á\9e\91á\9e½á\9e\9bá\9e\9fá\9f\92á\9e\82á\9e¶á\9e\9bá\9f\8bá\9e\8aá\9f\84á\9e\99á\9e\9fá\9f\92á\9e\9cá\9f\90á\9e\99á\9e\94á\9f\92á\9e\9aá\9e\9cá\9e\8fá\9f\92á\9e\8fá\9e·',
+'protect-level-sysop' => 'á\9e\9fá\9e\98á\9f\92á\9e\9aá\9e¶á\9e\94á\9f\8bá\9e\8fá\9f\82á\9e¢á\9e\97á\9e·á\9e\94á\9e¶á\9e\9b',
'protect-summary-cascade' => 'ការពារជាថ្នាក់',
'protect-expiring' => 'ផុតកំណត់ $1 (UTC)',
'protect-expiring-local' => 'ផុតកំណត់ $1',
'blanknamespace' => '(ទូទៅ)',
# Contributions
-'contributions' => 'ការរួមចំណែករបស់អ្នកប្រើប្រាស់',
+'contributions' => 'ការរួមចំណែករបស់{{GENDER:$1|អ្នកប្រើប្រាស់}}',
'contributions-title' => 'ការរួមចំណែករបស់អ្នកប្រើប្រាស់ $1',
'mycontris' => 'ការរួមចំណែក',
'contribsub2' => 'សម្រាប់ $1 ($2)',
'version-software' => 'ផ្នែកទន់ដែលបានដំឡើង',
'version-software-product' => 'ផលិតផល',
'version-software-version' => 'កំណែ',
+'version-entrypoints-header-url' => 'URL',
# Special:FilePath
'filepath' => 'ផ្លូវនៃឯកសារ',
'specialpages-group-highuse' => 'ទំព័រដែលត្រូវបានប្រើច្រើន',
'specialpages-group-pages' => 'បញ្ជីទំព័រនានា',
'specialpages-group-pagetools' => 'ឧបករណ៍ទំព័រ',
-'specialpages-group-wiki' => 'ទិន្នន័យនិងឧបករណ៍វិគី',
+'specialpages-group-wiki' => 'ទិន្នន័យនិងឧបករណ៍',
'specialpages-group-redirects' => 'ទំព័របញ្ជូនបន្តពិសេសៗ',
'specialpages-group-spam' => 'ឧបករណ៍ស្ព៊ែម',
'logentry-newusers-create' => 'បានបង្កើតគណនីអ្នកប្រើប្រាស់ $1',
'logentry-newusers-create2' => ' $3 បានបង្កើតគណនីអ្នកប្រើប្រាស់ $1',
'logentry-newusers-autocreate' => 'គណនី $1 ត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិ',
-'newuserlog-byemail' => 'ពាក្យសំងាត់ត្រូវបានផ្ញើតាមអ៊ីមែល',
'logentry-rights-rights' => '$1 បានផ្លាស់ប្ដូរសមាជិកភាពរបស់ $3 ពី $4 ទៅជា $5',
'logentry-rights-rights-legacy' => '$1បានផ្លាស់ប្ដូរសមាជិកភាពរបស់ $3',
'logentry-rights-autopromote' => '$1 ត្រូវបានតំលើងសមាជិកភាពពី $4 ជា $5',
'Allmessages' => array( '모든메시지' ),
'Allpages' => array( '모든문서' ),
'Ancientpages' => array( '오래된문서' ),
- 'Badtitle' => array( 'ì\9e\98못ë\90\9cì\9d´ë¦\84', 'ì\9d¸ì\8b\9dë¶\88ê°\80ì\9d´ë¦\84', 'ì\9e\98못ë\90\9cì \9c목', 'ì\9d¸ì\8b\9dë¶\88ê°\80ì \9c목' ),
+ 'Badtitle' => array( 'ì\9e\98못ë\90\9cì \9c목', 'ì\9d¸ì\8b\9dë¶\88ê°\80ì \9c목', 'ì\9e\98못ë\90\9cì\9d´ë¦\84', 'ì\9d¸ì\8b\9dë¶\88ê°\80ì\9d´ë¦\84' ),
'Blankpage' => array( '빈문서' ),
- 'Block' => array( '차단' ),
- 'Blockme' => array( '자가차단' ),
+ 'Block' => array( '차단', 'IP차단', '사용자차단' ),
+ 'Blockme' => array( 'ì\9e\90기차ë\8b¨', 'ì\9e\90ê°\80ì°¨ë\8b¨' ),
'Booksources' => array( '책찾기' ),
'BrokenRedirects' => array( '끊긴넘겨주기' ),
'Categories' => array( '분류' ),
'Invalidateemail' => array( '이메일인증취소', '이메일인증해제' ),
'JavaScriptTest' => array( '자바스크립트시험' ),
'BlockList' => array( '차단된사용자', '차단목록' ),
- 'LinkSearch' => array( '외부링크찾기', '외부링크검색' ),
+ 'LinkSearch' => array( '링크찾기', '링크검색' ),
'Listadmins' => array( '관리자', '관리자목록' ),
'Listbots' => array( '봇', '봇목록' ),
'Listfiles' => array( '파일', '그림', '파일목록', '그림목록' ),
'Preferences' => array( '환경설정' ),
'Prefixindex' => array( '접두어찾기' ),
'Protectedpages' => array( '보호된문서' ),
- 'Protectedtitles' => array( '생성보호된문서', '만들기보호된문서' ),
+ 'Protectedtitles' => array( '만들기보호된문서', '생성보호된문서' ),
'Randompage' => array( '임의문서' ),
'Randomredirect' => array( '임의넘겨주기' ),
'Recentchanges' => array( '최근바뀜' ),
'Unusedimages' => array( '안쓰는파일', '안쓰는그림', '쓰이지않는파일', '쓰이지않는그림' ),
'Unusedtemplates' => array( '안쓰는틀', '쓰이지않는틀' ),
'Unwatchedpages' => array( '주시안되는문서' ),
- 'Upload' => array( '올리기', '파일올리기', '그림올리기' ),
+ 'Upload' => array( '올리기', '파일올리기', '그림올리기', '업로드' ),
'UploadStash' => array( '올린비공개파일' ),
'Userlogin' => array( '로그인' ),
'Userlogout' => array( '로그아웃' ),
- 'Userrights' => array( '권한조정' ),
+ 'Userrights' => array( '권한조정', '관리자하기', '봇하기' ),
'Version' => array( '버전' ),
'Wantedcategories' => array( '필요한분류' ),
'Wantedfiles' => array( '필요한파일', '필요한그림' ),
'gotaccount' => '계정이 이미 있다면, $1.',
'gotaccountlink' => '로그인하세요',
'userlogin-resetlink' => '사용자 이름이나 비밀번호를 잊으셨나요?',
-'createaccountmail' => '이메일로 보내기',
+'createaccountmail' => 'ì\9e\84ì\8b\9c ì\9e\84ì\9d\98 ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\95\84ë\9e\98ì\97\90 ì§\80ì \95í\95\9c ì\9d´ë©\94ì\9d¼ë¡\9c ë³´ë\82´ê¸°',
'createaccountreason' => '이유:',
'badretype' => '입력한 비밀번호가 서로 다릅니다.',
'userexists' => '입력하신 사용자 이름이 이미 등록되어 있습니다.
'longpageerror' => "'''오류: 문서의 크기가 {{PLURAL:$1|$1킬로바이트}}로 최대 크기인 {{PLURAL:$2|$2킬로바이트}}보다 큽니다.'''
저장할 수 없습니다.",
'readonlywarning' => "'''경고: 데이터베이스가 관리를 위해 잠겨 있습니다. 따라서 문서를 편집한 내용을 지금 저장할 수 없습니다.'''
-편집 내용을 복사 붙여넣기 등을 사용하여 일단 다른 곳에 저장한 후, 나중에 다시 시도해 주세요.
+편집 내용을 복사하여 붙여넣기 등을 사용하여 일단 다른 곳에 저장한 후, 나중에 다시 시도해 주세요.
잠근 관리자가 남긴 설명은 다음과 같습니다: $1",
'protectedpagewarning' => "'''경고: 이 문서는 관리자만 편집할 수 있도록 보호되어 있습니다.'''
'node-count-exceeded-warning' => '문서가 노드 수를 초과하였습니다.',
'expansion-depth-exceeded-category' => '문서가 확장 깊이를 초과하였습니다.',
'expansion-depth-exceeded-warning' => '문서가 확장 깊이를 초과하였습니다',
-'parser-unstrip-loop-warning' => 'ì\8a¤í\8a¸ë¦½í\95\98ì§\80 ì\95\8aë\8a\94 ë°\98ë³µì\9d´ ê°\90ì§\80ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤',
-'parser-unstrip-recursion-limit' => '스트립하지 않는 재귀 한도가 초과됨 ($1)',
+'parser-unstrip-loop-warning' => 'Unstripì\9d\98 ë°\98ë³µì\9d\84 ê°\90ì§\80í\96\88ì\8aµë\8b\88ë\8b¤',
+'parser-unstrip-recursion-limit' => 'Unstrip의 재귀 한도를 초과했습니다 ($1)',
'converter-manual-rule-error' => '언어 변환 규칙을 수동으로 지정하는 도중 오류',
# "Undo" feature
# Special:ActiveUsers
'activeusers' => '활동적인 사용자 목록',
'activeusers-intro' => '다음은 최근 $1일 동안 활동한 사용자의 목록입니다.',
-'activeusers-count' => '최근 $3일 사이의 편집 $1개',
+'activeusers-count' => '최근 {{PLURAL:$3|1일|$3일}} 사이의 {{PLURAL:$1|활동}} $1회',
'activeusers-from' => '다음으로 시작하는 사용자를 보기:',
'activeusers-hidebots' => '봇을 숨기기',
'activeusers-hidesysops' => '관리자를 숨기기',
'tooltip-ca-nstab-category' => '분류 문서 내용을 봅니다.',
'tooltip-minoredit' => '사소한 편집으로 표시하기',
'tooltip-save' => '바뀜 저장하기',
-'tooltip-preview' => '편집 미리 보기. 저장하기 전에 꼭 미리 보기를 해 주세요!',
+'tooltip-preview' => '바뀜을 미리 봅니다. 저장하기 전에 꼭 미리 보기를 해 주세요!',
'tooltip-diff' => '자신이 바꾼 것 보기',
'tooltip-compareselectedversions' => '이 문서에서 선택한 두 판간의 차이를 비교',
'tooltip-watch' => '이 문서를 주시문서 목록에 추가',
'file-info-gif-looped' => '반복됨',
'file-info-gif-frames' => '$1 프레임',
'file-info-png-looped' => '반복됨',
-'file-info-png-repeat' => '$1번 재생됨',
+'file-info-png-repeat' => '$1{{PLURAL:$1|번}} 재생됨',
'file-info-png-frames' => '$1 프레임',
'file-no-thumb-animation' => "'''참고: 기술적인 제한으로 인해 이 파일의 섬네일은 애니메이션을 지원하지 않습니다.'''",
'file-no-thumb-animation-gif' => "'''참고: 기술적인 제한으로 인해 고해상도 GIF 그림 섬네일은 애니메이션을 지원하지 않습니다.'''",
'specialpages-group-highuse' => '많이 쓰이는 문서 목록',
'specialpages-group-pages' => '문서 목록',
'specialpages-group-pagetools' => '문서 도구',
-'specialpages-group-wiki' => '위키 정보와 도구',
+'specialpages-group-wiki' => '데이터와 도구',
'specialpages-group-redirects' => '넘겨주기 특수 문서',
'specialpages-group-spam' => '스팸 처리 도구',
'logentry-newusers-newusers' => '$1 사용자 계정을 만들었습니다.',
'logentry-newusers-create' => '$1 사용자 계정을 만들었습니다.',
'logentry-newusers-create2' => '$1 사용자가 $3 사용자 계정을 만들었습니다.',
+'logentry-newusers-byemail' => '$3 사용자 계정이 $1에 만들어졌고 비밀번호는 이메일로 보냈습니다',
'logentry-newusers-autocreate' => '$1 사용자 계정을 자동적으로 만들었습니다.',
-'newuserlog-byemail' => '이메일로 보낸 비밀번호',
'logentry-rights-rights' => '$1 사용자가 $3 사용자의 권한을 $4에서 $5으로 바꾸었습니다.',
'logentry-rights-rights-legacy' => '$1 사용자가 $3 사용자의 권한을 바꾸었습니다.',
'logentry-rights-autopromote' => '$1 사용자의 권한이 자동적으로 $4에서 $5으로 바뀌었습니다.',
'api-error-ok-but-empty' => '내부 오류: 서버에서 응답이 없습니다.',
'api-error-overwrite' => '이미 있는 파일을 덮어쓸 수 없습니다.',
'api-error-stashfailed' => '내부 오류: 서버가 임시 파일을 저장하지 못했습니다.',
+'api-error-publishfailed' => '내부 오류: 서버가 임시 파일을 게시하지 못했습니다.',
'api-error-timeout' => '서버가 제 시간 내에 응답하지 않았습니다.',
'api-error-unclassified' => '알 수 없는 오류가 발생했습니다.',
'api-error-unknown-code' => '알 수 없는 오류: "$1".',
// Remove Russian aliases
$namespaceGenderAliases = array();
+$specialPageAliases = array(
+ 'Activeusers' => array( 'Тири_къошулуучула' ),
+ 'Allmessages' => array( 'Системаны_билдириулери' ),
+ 'Allpages' => array( 'Бютеу_бетле' ),
+ 'Blankpage' => array( 'Бош_бет' ),
+ 'Block' => array( 'Блокла' ),
+ 'Blockme' => array( 'Мени_блокла' ),
+ 'Booksources' => array( 'Китабланы_къайнакълары' ),
+ 'BrokenRedirects' => array( 'Джыртылгъан_редиректле' ),
+ 'Categories' => array( 'Категорияла' ),
+ 'ChangeEmail' => array( 'E-mail_ауушдур' ),
+ 'ChangePassword' => array( 'Пароль_ауушдур' ),
+ 'ComparePages' => array( 'Бетлени_тенглешдириу' ),
+ 'Confirmemail' => array( 'E-mail_тюзлюгюн_бегит' ),
+ 'Contributions' => array( 'Къошум' ),
+ 'CreateAccount' => array( 'Тергеу_джазыуну_къура', 'Къошулуучуну_къура', 'Зарегистрироваться' ),
+ 'Deadendpages' => array( 'Чыкъмазча_бетле' ),
+ 'DeletedContributions' => array( 'Кетерилген_къошум' ),
+ 'Disambiguations' => array( 'Кёб_магъаналы' ),
+ 'DoubleRedirects' => array( 'Экили_редирект' ),
+);
+
+$magicWords = array(
+ 'redirect' => array( '0', '#джибериу', '#редирект', '#перенаправление', '#перенапр', '#REDIRECT' ),
+ 'notoc' => array( '0', '__БАШЛАСЫЗ__', '__БЕЗ_ОГЛАВЛЕНИЯ__', '__БЕЗ_ОГЛ__', '__NOTOC__' ),
+ 'nogallery' => array( '0', '_ГАЛЛЕРЕЯСЫЗ__', '__БЕЗ_ГАЛЕРЕИ__', '__NOGALLERY__' ),
+);
+
$messages = array(
# User preference toggles
'tog-underline' => 'Джибериулени черт:',
'logentry-newusers-create' => '$1 тергеу джазыу (аккаунт) къуралды',
'logentry-newusers-create2' => '$1, $3 тергеу джазыуну къурады',
'logentry-newusers-autocreate' => '$1 тергеу джазыу автомат халда къуралды',
-'newuserlog-byemail' => 'пароль электрон почта бла джиберилгенди',
'logentry-rights-rights' => '$1 къошулуучу, $3 къошулуучуну членлигин $4 къауумдан $5 къауумгъа кёчюрдю',
'logentry-rights-rights-legacy' => '$1 къошулуучу, $3 къушулуучуну къауумлада членлигин тюрлендирди',
'logentry-rights-autopromote' => '$1 къошулуучу, $4 къауумдан автомат халда $5 къауумгъа кёчюрюлдю',
NS_FILE_TALK => 'فَیِل_بَحَژ',
NS_MEDIAWIKI => 'میڈیاوکی',
NS_MEDIAWIKI_TALK => 'میڈیاوکی_بَحَژ',
+ NS_TEMPLATE => 'فرما',
+ NS_TEMPLATE_TALK => 'فرما_بَحَژ',
NS_HELP => 'پَلزُن',
NS_HELP_TALK => 'پَلزُن_بَحَژ',
NS_CATEGORY => 'زٲژ',
* @author Rk_kaul (on ks.wikipedia.org)
*/
+$namespaceNames = array(
+ NS_MEDIA => 'मीडिया',
+ NS_SPECIAL => 'खास',
+ NS_TALK => 'बहज़',
+ NS_USER => 'रुक्न',
+ NS_USER_TALK => 'रुक्न_बहज़',
+ NS_PROJECT_TALK => '$1_बहज़',
+ NS_FILE => 'फ़ाइल',
+ NS_FILE_TALK => 'फ़ाइल_बहज़',
+ NS_MEDIAWIKI => 'मीडियाविकि',
+ NS_MEDIAWIKI_TALK => 'मीडियाविकि_बहज़',
+ NS_TEMPLATE => 'नमॆना',
+ NS_TEMPLATE_TALK => 'नमॆना_बहज़',
+ NS_HELP => 'म॒दत',
+ NS_HELP_TALK => 'म॒दत_बहज़',
+ NS_CATEGORY => 'ज़ॉज़',
+ NS_CATEGORY_TALK => 'ज़ॉज़_बहज़',
+);
+
$digitTransformTable = array(
'0' => '०', # ०
'1' => '१', # १
'tog-externaleditor' => 'Nemm jedes Mol en extern Editor-Projramm (Doför bruchs de extra Enstellunge op Dingem Kompjutor. Dat es jet för Fachlück. Doh kanns De [//www.mediawiki.org/wiki/Manual:External_editors mieh drövver lässe])',
'tog-externaldiff' => 'Nemm jedes Mol en extern Diff-Projramm (Doför bruchs de extra Enstellunge op Dingem Kompjutor. Dat es jet för Fachlück. Doh kanns De [//www.mediawiki.org/wiki/Manual:External_editors mieh drövver lässe])',
'tog-showjumplinks' => '„Jangk-noh“-Links usjevve, die bei em „Zojang ohne Barrikad“ helfe dun',
-'tog-uselivepreview' => 'Dun de „Lebendije Vör-Aansich“ zeije (em Usprobierstadium, un bruch Java_Skripp)',
+'tog-uselivepreview' => 'Dun de „Lebendije Vör-Aansich“ zeije (bruch Java_Skripp)',
'tog-forceeditsummary' => 'Froch noh, wann en däm Feld „Koot zosammejefass, Quell“ beim Avspeichere nix dren steiht',
'tog-watchlisthideown' => 'Dun ming eije Änderunge <strong>nit</strong> en minger Oppassliss aanzeije',
'tog-watchlisthidebots' => 'Dun jedes Mol dä Bots ehr Änderunge <strong>nit</strong> en minger Oppassliss zeije',
'logentry-newusers-create' => 'Dä neue Metmaacher $1 wood aanjelaat.',
'logentry-newusers-create2' => 'Dä $1 hät dä $3 als ene neue Metmaacher aanjelaat.',
'logentry-newusers-autocreate' => 'Dä $1 wood automattesch als Metmaacher aanjelaat.',
-'newuserlog-byemail' => 'dat Passwood wood med de e-mail loßjescheck',
'logentry-rights-rights' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} „$1“ hät däm Metmaacher „$3“ sing Jroppe-Räächde vun „$4“ op „$5“ ömjestallt.',
'logentry-rights-rights-legacy' => '{{GENDER:$1|Dä|Et|Dä Metmaacher|De|Dat}} $1 hät däm Metmaacher $3 sing Räääschte-Jroppe verändert.',
'logentry-rights-autopromote' => '{{GENDER:$1|Dä|Et|Dä Metmaacher|De|Dat}} $1 wood automattesch vum $4 zom $5 jemaat.',
'logentry-move-move_redir' => '$1 navê $3 guherand û kir $4',
'logentry-newusers-newusers' => '$1 hesabekî bikarhêneriyê çêkir',
'logentry-newusers-create' => '$1 hesabekî bikarhêneriyê çêkir',
-'newuserlog-byemail' => 'şîfre bi e-nameyê hate şandin',
'rightsnone' => '(tune)',
# Feedback
);
$specialPageAliases = array(
- 'Allmessages' => array( 'OllMessajow' ),
- 'Allpages' => array( 'OllFolednow' ),
- 'Ancientpages' => array( 'FolednowKoth' ),
+ 'Activeusers' => array( 'DevnydhyoryonBew' ),
+ 'Allmessages' => array( 'OllMessajys' ),
+ 'Allpages' => array( 'OllFolennow' ),
+ 'Ancientpages' => array( 'FolennowCoth' ),
'Badtitle' => array( 'TitelDrog' ),
'Blankpage' => array( 'FolenWag' ),
- 'Block' => array( 'Lettya' ),
- 'Booksources' => array( 'PednfentynyowLyver' ),
- 'Categories' => array( 'Klassys' ),
+ 'Block' => array( 'Difen' ),
+ 'Blockme' => array( 'DifenVy' ),
+ 'Booksources' => array( 'PennfentynyowLyver' ),
+ 'BrokenRedirects' => array( 'DaswedyansowTerrys' ),
+ 'Categories' => array( 'Classys' ),
'ChangeEmail' => array( 'ChanjyaEbost' ),
'ChangePassword' => array( 'ChanjyaGerTremena' ),
+ 'ComparePages' => array( 'KehevelyFolennow' ),
+ 'Confirmemail' => array( 'AfydhyaEbost' ),
'Contributions' => array( 'Kevrohow' ),
- 'CreateAccount' => array( 'FormyaAkont' ),
+ 'CreateAccount' => array( 'FormyaAcont' ),
+ 'Deadendpages' => array( 'FolennowFordhDhall' ),
'DeletedContributions' => array( 'KevrohowDiles' ),
- 'EditWatchlist' => array( 'ChanjyaRolGolyas' ),
+ 'Disambiguations' => array( 'Diamstyryansow' ),
+ 'DoubleRedirects' => array( 'DaswedyansowDewblek' ),
+ 'EditWatchlist' => array( 'ChanjyaOwRolGolyas' ),
'Emailuser' => array( 'EbostyaDevnydhyer' ),
- 'Export' => array( 'Esperthi' ),
- 'Import' => array( 'Ymperthi' ),
- 'MIMEsearch' => array( 'HwilansMIME' ),
+ 'Export' => array( 'Esperthy' ),
+ 'Fewestrevisions' => array( 'AnLyhaAmendyansow' ),
+ 'Filepath' => array( 'HensAnFolen' ),
+ 'Import' => array( 'Ymperthy' ),
+ 'Invalidateemail' => array( 'DigomposaEbost' ),
+ 'JavaScriptTest' => array( 'PrevyansJavaScript' ),
+ 'BlockList' => array( 'RolDhifen' ),
+ 'LinkSearch' => array( 'WhilasKevrennow' ),
+ 'Listadmins' => array( 'RolyaMenystroryon' ),
+ 'Listbots' => array( 'RolyaBottys' ),
+ 'Listfiles' => array( 'RolyaRestrennow' ),
+ 'Listgrouprights' => array( 'RolyaGwiryowBagas' ),
+ 'Listredirects' => array( 'RolyaDaswedyansow' ),
+ 'Listusers' => array( 'RolyaDevnydhyoryon' ),
+ 'Lockdb' => array( 'AlwhedhaDB' ),
+ 'Log' => array( 'Covnoten', 'Covnotennow' ),
+ 'Lonelypages' => array( 'FolennowDigoweth' ),
+ 'Longpages' => array( 'FolennowHir' ),
+ 'MergeHistory' => array( 'IstoryKesunya' ),
+ 'MIMEsearch' => array( 'WhilasMIME' ),
+ 'Mostcategories' => array( 'AnMoyhaClassys' ),
+ 'Mostimages' => array( 'AnMoyhaRestrennowKevennys' ),
+ 'Mostinterwikis' => array( 'AnMoyhaInterwikis' ),
+ 'Mostlinked' => array( 'AnMoyhaFolennowKevrennys' ),
+ 'Mostlinkedcategories' => array( 'AnMoyhaClassysKevrennys' ),
+ 'Mostlinkedtemplates' => array( 'AnMoyhaScantlynsKevrennys' ),
+ 'Mostrevisions' => array( 'AnMoyhaAmendyansow' ),
'Movepage' => array( 'GwayaFolen' ),
'Mycontributions' => array( 'OwHevrohow' ),
'Mypage' => array( 'OwFolen' ),
- 'Mytalk' => array( 'OwHows' ),
- 'Myuploads' => array( 'OwUghkargansow' ),
- 'Newimages' => array( 'RestrednowNowyth' ),
- 'Newpages' => array( 'FolednowNowyth' ),
+ 'Mytalk' => array( 'OwHescows' ),
+ 'Myuploads' => array( 'OwUghcargansow' ),
+ 'Newimages' => array( 'RestrennowNowyth' ),
+ 'Newpages' => array( 'FolennowNowyth' ),
'PasswordReset' => array( 'DassetyaGerTremena' ),
+ 'PermanentLink' => array( 'KevrenFast' ),
+ 'Popularpages' => array( 'FolennowGerysDa' ),
'Preferences' => array( 'Dowisyansow' ),
+ 'Prefixindex' => array( 'MenegvaRagerow' ),
+ 'Protectedpages' => array( 'FolennowDifresys' ),
+ 'Protectedtitles' => array( 'TitlysDifres' ),
'Randompage' => array( 'FolenDreJons' ),
+ 'Randomredirect' => array( 'DaswedyansDreJons' ),
'Recentchanges' => array( 'Chanjyow_a-dhiwedhes' ),
- 'Search' => array( 'Hwilas' ),
- 'Specialpages' => array( 'FolednowArbednek' ),
- 'Uncategorizedcategories' => array( 'KlassysHebKlass' ),
- 'Uncategorizedimages' => array( 'RestrednowHebKlass' ),
- 'Uncategorizedpages' => array( 'FolednowHebKlass' ),
- 'Uncategorizedtemplates' => array( 'SkantlynsHebKlass' ),
- 'Upload' => array( 'Ughkarga' ),
- 'Userlogin' => array( 'Omgelmi' ),
- 'Userlogout' => array( 'Digelmi' ),
+ 'Recentchangeslinked' => array( 'ChanjyowKelmys' ),
+ 'Revisiondelete' => array( 'DileaAmendyans' ),
+ 'Search' => array( 'Whilas' ),
+ 'Shortpages' => array( 'FolennowCot' ),
+ 'Specialpages' => array( 'FolennowArbennek' ),
+ 'Statistics' => array( 'Statystygyon' ),
+ 'Unblock' => array( 'DiswulDifennans' ),
+ 'Uncategorizedcategories' => array( 'ClassysHebClass' ),
+ 'Uncategorizedimages' => array( 'RestrennowHebClass' ),
+ 'Uncategorizedpages' => array( 'FolennowHebClass' ),
+ 'Uncategorizedtemplates' => array( 'ScantlynsHebClass' ),
+ 'Undelete' => array( 'DiswulDileans' ),
+ 'Unlockdb' => array( 'DialwhedhaDB' ),
+ 'Unusedcategories' => array( 'ClassysHebDevnydh' ),
+ 'Unusedimages' => array( 'RestrennowHebDevnydh' ),
+ 'Unusedtemplates' => array( 'ScantlynsHebDevnydh' ),
+ 'Unwatchedpages' => array( 'FolennowHebAgaHolyas' ),
+ 'Upload' => array( 'Ughcarga' ),
+ 'Userlogin' => array( 'Omgelmy' ),
+ 'Userlogout' => array( 'Digelmy' ),
'Userrights' => array( 'GwiryowDevnydhyer' ),
'Version' => array( 'Versyon' ),
- 'Wantedcategories' => array( 'KlassysHwansus' ),
- 'Wantedfiles' => array( 'RestrednowHwansus' ),
- 'Wantedpages' => array( 'FolednowHwansus' ),
- 'Wantedtemplates' => array( 'SkantlynsHwansus' ),
+ 'Wantedcategories' => array( 'ClassysWhansus' ),
+ 'Wantedfiles' => array( 'RestrennowWhansus' ),
+ 'Wantedpages' => array( 'FolennowWhansus' ),
+ 'Wantedtemplates' => array( 'ScantlynsWhansus' ),
'Watchlist' => array( 'Rol_golyas' ),
- 'Whatlinkshere' => array( 'OwKevrednaObma' ),
+ 'Whatlinkshere' => array( 'OwKevrennaOmma' ),
+ 'Withoutinterwiki' => array( 'HebInterwiki' ),
+);
+
+$magicWords = array(
+ 'redirect' => array( '0', '#DASWEDYANS', '#REDIRECT' ),
+ 'numberofpages' => array( '1', 'NIVERAFOLENNOW', 'NUMBEROFPAGES' ),
+ 'numberofarticles' => array( '1', 'NIVERAERTHYGLOW', 'NUMBEROFARTICLES' ),
+ 'numberoffiles' => array( '1', 'NIVERARESTRENNOW', 'NUMBEROFFILES' ),
+ 'numberofusers' => array( '1', 'NIVERADHEVNYDHYORYON', 'NUMBEROFUSERS' ),
+ 'numberofactiveusers' => array( '1', 'NIVERADHEVNYDHYORYONVEW', 'NUMBEROFACTIVEUSERS' ),
+ 'numberofedits' => array( '1', 'NIVERAJANJYOW', 'NUMBEROFEDITS' ),
+ 'numberofviews' => array( '1', 'NIVERAWELOW', 'NUMBEROFVIEWS' ),
+ 'pagename' => array( '1', 'HANOWANFOLEN', 'PAGENAME' ),
+ 'fullpagename' => array( '1', 'HANOWLEUNANFOLEN', 'FULLPAGENAME' ),
+ 'img_thumbnail' => array( '1', 'skeusennik', 'thumbnail', 'thumb' ),
+ 'img_manualthumb' => array( '1', 'skeusennik=$1', 'thumbnail=$1', 'thumb=$1' ),
+ 'img_right' => array( '1', 'dyhow', 'right' ),
+ 'img_left' => array( '1', 'cledh', 'left' ),
+ 'img_none' => array( '1', 'nagonan', 'none' ),
+ 'img_center' => array( '1', 'cresel', 'center', 'centre' ),
+ 'img_framed' => array( '1', 'fremys', 'framed', 'enframed', 'frame' ),
+ 'img_frameless' => array( '1', 'hebfram', 'frameless' ),
+ 'img_page' => array( '1', 'folen=$1', 'folen_$1', 'page=$1', 'page $1' ),
+ 'img_top' => array( '1', 'gwartha', 'top' ),
+ 'img_text_top' => array( '1', 'text-gwartha', 'text-top' ),
+ 'img_middle' => array( '1', 'cres', 'middle' ),
+ 'img_bottom' => array( '1', 'goles', 'bottom' ),
+ 'img_text_bottom' => array( '1', 'text-goles', 'text-bottom' ),
+ 'img_link' => array( '1', 'kevren=$1', 'link=$1' ),
+ 'sitename' => array( '1', 'HANOWANWIASVA', 'SITENAME' ),
+ 'pageid' => array( '0', 'IDANFOLEN', 'PAGEID' ),
+ 'server' => array( '0', 'SERVYER', 'SERVER' ),
+ 'servername' => array( '0', 'HANOWANSERVYER', 'SERVERNAME' ),
+ 'grammar' => array( '0', 'GRAMASEK:', 'GRAMMAR:' ),
+ 'fullurl' => array( '0', 'URLLEUN:', 'FULLURL:' ),
+ 'displaytitle' => array( '1', 'DISQWEDHESANTITEL', 'DISPLAYTITLE' ),
+ 'language' => array( '0', '#YETH:', '#LANGUAGE:' ),
+ 'numberofadmins' => array( '1', 'NIVERAVENYSTRORYON', 'NUMBEROFADMINS' ),
+ 'special' => array( '0', 'arbennek', 'special' ),
+ 'filepath' => array( '0', 'HENSANFOLEN:', 'FILEPATH:' ),
+ 'hiddencat' => array( '1', '__CLASSCUDHYS__', '__HIDDENCAT__' ),
+ 'pagesincategory' => array( '1', 'RESTRENNOWYNCLASS', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+ 'pagesize' => array( '1', 'MENSANRESTREN', 'PAGESIZE' ),
+ 'index' => array( '1', '__MENEGVA__', '__INDEX__' ),
+ 'noindex' => array( '1', '__HEBMENEGVA__', '__NOINDEX__' ),
+ 'numberingroup' => array( '1', 'NIVERYNBAGAS', 'NUMBERINGROUP', 'NUMINGROUP' ),
+ 'url_path' => array( '0', 'HENS', 'PATH' ),
+ 'pagesincategory_all' => array( '0', 'oll', 'all' ),
+ 'pagesincategory_pages' => array( '0', 'folennow', 'pages' ),
);
$messages = array(
'logentry-newusers-create' => '$1 эсеп жазуусу жаратылды',
'logentry-newusers-create2' => '$1 эсеп жазуусун жаратты',
'logentry-newusers-autocreate' => 'Автоматтуу түрдө $1 эсеп жазуусу жаратылды',
-'newuserlog-byemail' => 'сырсөз эл. почта аркылуу жөнөтүлдү',
'rightsnone' => '(жок)',
# Feedback
'specialpages-group-users' => 'Usores eorumque potestates',
'specialpages-group-pages' => 'Indices paginarum',
'specialpages-group-pagetools' => 'Instrumenta paginarum',
-'specialpages-group-wiki' => 'Vici-data et instrumenta',
+'specialpages-group-wiki' => 'Data et instrumenta',
'specialpages-group-redirects' => 'Paginae speciales redirigentes',
'specialpages-group-spam' => 'Instrumenta contra praeconia incommoda',
'logentry-newusers-create' => 'Ratio usoris $1 creata est',
'logentry-newusers-create2' => 'Ratio usoris $3 creata est ab usore $1',
'logentry-newusers-autocreate' => 'Ratio $1 automatice creata est',
-'newuserlog-byemail' => 'tessera missa litteris electronicis',
'rightsnone' => '(nullus)',
# Search suggestions
# New logging system
'logentry-newusers-autocreate' => 'El cuento $1 fue crîado otomatika mente',
-'newuserlog-byemail' => 'kóddiche mandado con letral',
# Feedback
'feedback-subject' => 'Sujeto',
'pagename' => array( '1', 'Säitennumm', 'SEITENNAME', 'PAGENAME' ),
'namespace' => array( '1', 'Nummraum', 'NAMENSRAUM', 'NAMESPACE' ),
'subjectspace' => array( '1', 'Haaptnummraum', 'HAUPTNAMENSRAUM', 'SUBJECTSPACE', 'ARTICLESPACE' ),
- 'subjectpagename' => array( '1', 'Haaptsäit', 'HAUPTSEITE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+ 'subjectpagename' => array( '1', 'Haaptsäit', 'HAUPTSEITE', 'HAUPTSEITENNAME', 'VORDERSEITE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
'img_thumbnail' => array( '1', 'Miniatur', 'miniatur', 'mini', 'thumbnail', 'thumb' ),
'img_right' => array( '1', 'riets', 'rechts', 'right' ),
'img_left' => array( '1', 'lénks', 'links', 'left' ),
'formatnum' => array( '0', 'ZUELEFORMAT', 'ZAHLENFORMAT', 'FORMATNUM' ),
'special' => array( '0', 'spezial', 'special' ),
'hiddencat' => array( '1', '__VERSTOPPT_KATEGORIE__', '__VERSTECKTE_KATEGORIE__', '__WARTUNGSKATEGORIE__', '__HIDDENCAT__' ),
- 'pagesincategory_pages' => array( '0', 'Säiten', 'pages' ),
- 'pagesincategory_files' => array( '0', 'Fichieren', 'files' ),
+ 'pagesincategory_pages' => array( '0', 'Säiten', 'seiten', 'pages' ),
+ 'pagesincategory_files' => array( '0', 'Fichieren', 'dateien', 'files' ),
);
$messages = array(
'gotaccount' => "Dir hutt schonn e Benotzerkont? '''$1'''.",
'gotaccountlink' => 'Umellen',
'userlogin-resetlink' => "Hutt Dir d'Detailer vun Ärem Login vergiess?",
-'createaccountmail' => 'Via E-Mail',
+'createaccountmail' => 'En temporäert Passwuert benotzen an et per E-Mail un déi E-Mailadress schécken déi hei drënner steet',
'createaccountreason' => 'Grond:',
'badretype' => 'Är Passwierder stëmmen net iwwerdeneen.',
'userexists' => 'De Benotzernumm deen agi gouf gëtt scho benotzt.
# E-mail sending
'php-mail-error-unknown' => 'Onbekannte Feeler an der PHP-Mail-Fonctioun',
'user-mail-no-addy' => 'Huet versicht eng Mail ouni Mailadress ze schécken',
+'user-mail-no-body' => 'Et gouf probéiert eng E-Mail ouni Text oder mat engem ze kuerzen Text ze schécken.',
# Change password dialog
'resetpass' => 'Passwuert änneren',
'copyrightwarning2' => "W.e.g. notéiert datt all Kontributiounen op {{SITENAME}} vun anere Benotzer verännert oder geläscht kënne ginn. Wann dir dat net wëllt, da setzt näischt heihinner.<br />
Dir verspriecht ausserdeem datt dir dësen Text selwer verfaasst hutt, oder aus dem Domaine public oder anere fräie Quelle kopéiert hutt. (cf. $1 fir méi Detailler). '''DROT KEE COPYRECHTLECH GESCHÜTZTE CONTENU AN!'''",
'longpageerror' => "'''FEELER: Den Text, den Dir Versicht ze späicheren, huet {{PLURAL:$1|1 Kilobyte|$1 Kilobytes}}. Dëst ass méi wéi den erlaabte Maximum vun {{PLURAL:$2|1 Kilobyte|$2 Kilobytes}}''' Dofir kann den Text net gespäichert ginn.",
-'readonlywarning' => "'''OPGEPASST: D'Datebank gouf wéinst Maintenanceaarbechte fir Säitenännerunge gespaart, dofir kënnt Dir déi Säit den Ament net ofspäicheren. Versuergt den Text a versicht d'Ännerunge méi spéit nach emol ze maachen.'''
+'readonlywarning' => "'''OPGEPASST: D'Datebank gouf wéinst Maintenanceaarbechte gespaart, dofir kënnt Dir Är Ännerungen den Ament net ofspäicheren.'''
+Dir kënnt den Text kopéieren an an een Textfichier drasetzen an deen ofspäicheren fir méi spéit.
Den Administrateur den d'Datebank gespaart huet, huet dës Erklärung ginn: $1",
'protectedpagewarning' => "'''OPGEPASST: Dës Säit gouf gespaart a kann nëmme vun engem Administrateur geännert ginn.''' Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
# Special:ActiveUsers
'activeusers' => 'Lëscht vun den aktive Benotzer',
'activeusers-intro' => 'Dëst ass eng Lëscht vun de Benotzer déi op iergend eng Manéier an de leschten $1 {{PLURAL:$1|Dag|Deeg}} aktiv waren.',
-'activeusers-count' => '$1 {{PLURAL:$1|Ännerung|Ännerungen}} {{PLURAL:$3|gëschter|an de leschten $3 Deeg}}',
+'activeusers-count' => '$1 {{PLURAL:$1|Aktioun|Aktiounen}} {{PLURAL:$3|gëschter|an de leschten $3 Deeg}}',
'activeusers-from' => 'Benotzer weisen, ugefaang bäi:',
'activeusers-hidebots' => 'Botte verstoppen',
'activeusers-hidesysops' => 'Administrateure verstoppen',
'usermessage-editor' => 'Benoriichtegungs-System',
# Watchlist
-'watchlist' => 'Meng Iwwerwaachungslëscht',
+'watchlist' => 'Iwwerwaachungslëscht',
'mywatchlist' => 'Iwwerwaachungslëscht',
'watchlistfor2' => 'Vum $1 $2',
'nowatchlist' => 'Är Iwwerwaachungslëscht ass eidel.',
'move-page' => 'Réckel $1',
'move-page-legend' => 'Säit réckelen',
'movepagetext' => "Wann dir dëse Formulaire benotzt, réckelt dir eng komplett Säit mat hirem Historique op en neien Numm.
-Den alen Titel déngt als Viruleedung op déi nei Säit.
+Den alen Titel gëtt eng Viruleedung op déi nei Säit.
Dir kënnt Viruleedungen déi op déi al Säit ginn automatesch aktualiséieren.
-Wann Dir dat net maacht, da vergewëssert iech datt keng [[Special:DoubleRedirects|duebel]] oder [[Special:BrokenRedirects|futtis Viruleedungen]] am Spill sinn.
-Dir sidd responsabel datt d'Linke weiderhinn dohinner pointéieren, wou se hi sollen.
+Wann Dir dat net maacht, da vergewëssert Iech datt keng [[Special:DoubleRedirects|duebel]] oder [[Special:BrokenRedirects|futtis Viruleedungen]] am Spill sinn.
+Dir sidd responsabel datt d'Linke weiderhin dohinner pointéieren, wou se hi sollen.
Beuecht w.e.g. datt d'Säit '''net''' geréckelt gëtt, wann et schonns eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.
-Dëst bedeit datt dir eng Säit ëmbenenne kënnt an datt dir keng Säit iwwerschreiwe kënnt, déi et schonns gëtt.
+Dëst bedeit datt dir eng Säit zréck op hiren ursprénglechen Numm ëmbenenne kënnt wann Dir Iech geiert hat an datt dir keng Säit iwwerschreiwe kënnt, déi et schonns gëtt.
'''OPGEPASST!'''
Dëst kann en drastesche Changement fir eng populär Säit bedeiten;
'specialpages-group-highuse' => 'Dacks benotzte Säiten',
'specialpages-group-pages' => 'Lëschte vu Säiten',
'specialpages-group-pagetools' => 'Handwierksgeschir fir Säiten',
-'specialpages-group-wiki' => 'Systemdaten an Handwierksgeschir',
+'specialpages-group-wiki' => 'Daten an Handwierksgeschir',
'specialpages-group-redirects' => 'Spezialsäiten déi viruleeden',
'specialpages-group-spam' => 'Handwierksgeschir géint de Spam',
'logentry-newusers-newusers' => 'De Benotzerkont $1 gouf ugeluecht',
'logentry-newusers-create' => 'De Benotzerkont $1 gouf ugeluecht',
'logentry-newusers-create2' => 'De Benotzerkont $3 gouf vum $1 ugeluecht',
+'logentry-newusers-byemail' => "De Benotzerkont $3 gouf vum $1 ugeluecht an d'Passwuert gouf per E-Mail geschéckt.",
'logentry-newusers-autocreate' => 'De Benotzerkont $1 gouf automatesch ugeluecht',
-'newuserlog-byemail' => "d'Passwuert gouf per E-Mail geschéckt",
'logentry-rights-autopromote' => "De Benotzer $1 huet d'Benotzerrechter automatesch vu(n) $4 op $5 geännert",
'rightsnone' => '(keen)',
'api-error-ok-but-empty' => 'Interne Feeler: keng Äntwert vum Server.',
'api-error-overwrite' => "D'Iwwerschreiwe vun engem Fichier ass net erlaabt.",
'api-error-stashfailed' => 'Interne Feeler: de Server konnt den temporäre Fichier net späicheren.',
+'api-error-publishfailed' => 'Interne Feeler: de Server konnt den temporäre Fichier net publizéieren.',
'api-error-timeout' => 'De Server huet net bannen där Zäit geäntwert déi virgesinn ass.',
'api-error-unclassified' => 'En onbekannte Feeler ass geschitt',
'api-error-unknown-code' => 'Onbekannte Feeler: "$1"',
'prefs-edits' => 'Дьузар хъувунрин кьадар',
'prefsnologin' => 'Куьне гьахьнавач',
'changepassword' => 'Парол дегишарун',
-'prefs-skin' => 'КЪайдадиз ттунин тема',
+'prefs-skin' => 'Къайдадиз ттунин тема',
'skin-preview' => 'Сифтедин килигун',
'datedefault' => 'Туькlуьрмир',
'prefs-beta' => 'Бета-мумкинвилер',
'prefs-changeemail' => 'Э-почта дегишарун',
'prefs-setemail' => 'Э-почта эцигна туькIуьрун',
'prefs-email' => 'E-mail туькlуьрунин кьадарар',
-'prefs-rendering' => 'КЪецепатан акунар',
+'prefs-rendering' => 'Къецепатан акунар',
'saveprefs' => 'Хуьн',
'resetprefs' => 'Хуьн тавунвай дегишвилер алудун',
'restoreprefs' => 'Авайл хьиз кьунвай низамарунар туькIуьр хъувун',
'logentry-newusers-create' => "$1 haet 'ne gebroeker aangemaak",
'logentry-newusers-create2' => "$1 haet 'ne gebroeker $3 aangemaak",
'logentry-newusers-autocreate' => 'De gebroeker $1 is autematis aangemaak',
-'newuserlog-byemail' => 'wachwaord is versjik per e-mail',
'rightsnone' => '(gein)',
# Feedback
'logentry-newusers-create' => '$1 sukūrė naudotojo paskyrą',
'logentry-newusers-create2' => '$1 sukūrė naudotojo paskyrą $3',
'logentry-newusers-autocreate' => 'Paskyra $1 buvo sukurta automatiškai',
-'newuserlog-byemail' => 'slaptažodis nusiųstas elektroniniu paštu',
'logentry-rights-rights' => '$1 pakeista narystė grupėje $3 iš $4 į $5',
'logentry-rights-rights-legacy' => '$1 pakeista narystė grupėje $3',
'logentry-rights-autopromote' => '$1 buvo automatiškai pervestas iš $4 į $5',
'logentry-newusers-create' => '$1 hian hmangtu siangchan a siam.',
'logentry-newusers-create2' => '$1 hian hmangtu siangchan $3 a siam.',
'logentry-newusers-autocreate' => 'Siangchan $1 hi amahin a insiam.',
-'newuserlog-byemail' => 'thurûk e-lehkha hmanga thawn a ni.',
# Feedback
'feedback-subject' => 'Thupui:',
'logentry-newusers-create' => 'Lietotāja konts $1 tika izveidots',
'logentry-newusers-create2' => 'Lietotāja kontu $3 izveidoja $1',
'logentry-newusers-autocreate' => 'Konts $1 tika izveidots automātiski',
-'newuserlog-byemail' => 'parole nosūtīta pa e-pastu',
'rightsnone' => '(nav)',
# Feedback
# New logging system
'revdelete-restricted' => '應限至有秩',
'revdelete-unrestricted' => '除限自有秩',
-'newuserlog-byemail' => '號發自電郵',
'rightsnone' => '(凡)',
);
'logentry-newusers-create' => '$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता',
'logentry-newusers-create2' => '$1 {{लिंग:$2|बनाएल}} {{लिंग:$4|एकटा प्रयोक्ता खाता}} $3',
'logentry-newusers-autocreate' => 'खाता $1 छल {{लिंग:$2|बनाएल}} स्वतः',
-'newuserlog-byemail' => 'कूटशब्द ई-पत्र द्वारा पठाएल गेल',
'rightsnone' => '(कोनो नै)',
# API errors
# New logging system
'revdelete-restricted' => 'нолдаф тевс кардафксне системонь вятиксненди',
'revdelete-unrestricted' => 'системонь вятиксненди кардафксне валхтфт',
-'newuserlog-byemail' => 'сувама валце кучф электрононь сёрмаса',
'rightsnone' => '(аш)',
);
'logentry-newusers-newusers' => 'Noforonina ny kaontim-pikambana $1',
'logentry-newusers-create' => 'Noforonina ny kaontim-pikambana $1',
'logentry-newusers-create2' => "Noforonin'i $1 ny kaomtim-pikambana $3",
-'logentry-newusers-autocreate' => 'Noforonina ho azy ny kaontim-pikambana $&',
-'newuserlog-byemail' => "tenimiafina nalefa tamin'ny imailaka",
+'logentry-newusers-autocreate' => 'Noforonina ho azy ny kaontim-pikambana $1',
'logentry-rights-rights' => "$1 dia nanova ny sokajim-pikambana isian'i $3 avy amin'ny $4 lasa $5",
'logentry-rights-rights-legacy' => "$1 nanova ny vonodrom-pikambana isian'i $3",
'logentry-rights-autopromote' => 'Lasa $5 ho azy i $1 izay $4 taloha',
$fallback = 'id';
+$namespaceNames = array(
+ NS_FILE => 'Berkas',
+ NS_TEMPLATE => 'Templat',
+);
+
$messages = array(
# User preference toggles
'tog-underline' => 'Garih bawahi link:',
'tog-enotifusertalkpages' => 'E-mail ambo jiko laman barundiang denai lah barubah',
'tog-enotifminoredits' => 'Kirimkan surel juo untuk saketek suntingan pado laman jo gambar',
'tog-enotifrevealaddr' => 'Cogokan alamaik e-mail den pado e-mail notifikasi',
-'tog-shownumberswatching' => 'Tujuakkan jumlah pamantau',
+'tog-shownumberswatching' => 'Tunjuakkan jumlah pamantau',
'tog-oldsig' => 'Tando tangan kini:',
'tog-fancysig' => 'Palakuan tando tangan sabagai teks wiki (tanpa suatu tautan otomatis)',
'tog-externaleditor' => 'Gunokan editor eksternal sacaro bawaan (untuak nan ahli sajo, kabutuahan pangaturan khusus pado komputer Sanak [//www.mediawiki.org/wiki/Manual:External_editors Informasi labiah lanjuik.].)',
'tuesday' => 'Salaso',
'wednesday' => "Raba'a",
'thursday' => 'Kamih',
-'friday' => 'Jumek',
+'friday' => 'Jumaik',
'saturday' => 'Sabtu',
'sun' => 'Min',
'mon' => 'Sin',
'category_header' => 'Laman dalam kategori "$1"',
'subcategories' => 'Subkategori',
'category-media-header' => 'Laman/Media dalam kategori "$1"',
-'category-empty' => "''Kini ko, indak ado terdapat laman ataupun media dalam kategori iko.''",
+'category-empty' => "''Kini ko, indak ado laman ataupun media dalam kategori ko.''",
'hidden-categories' => '{{PLURAL:$1|Kategori tapandam|Kategori tapandam}}',
'hidden-category-category' => 'Kategori tasambunyi',
'category-subcat-count' => '{{PLURAL:$2|Kategori ko hanyo punyo subkategori berikut.|Kategori ko punyo {{PLURAL:$1|subkategori|$1 subkategori}}, dari total $2.}}',
'listingcontinuesabbrev' => 'lanjuik',
'index-category' => 'Laman nan diindeks',
'noindex-category' => 'Laman nan indak diindeks',
-'broken-file-category' => 'Laman jo gambar rusak',
+'broken-file-category' => 'Laman jo gamba rusak',
-'about' => 'Tentang',
+'about' => 'Perihal',
'article' => 'Artikel',
-'newwindow' => '(buka di jandela baru)',
+'newwindow' => '(bukak di jandela baru)',
'cancel' => 'Batalkan',
'moredotdotdot' => 'Lainnyo...',
+'morenotlisted' => 'Salabiahnyo...',
'mypage' => 'Laman',
'mytalk' => 'Maota',
'anontalk' => 'Ota IP iko',
'and' => ' jo',
# Cologne Blue skin
-'qbfind' => 'Pencarian',
-'qbbrowse' => 'Browse',
+'qbfind' => 'Pancarian',
+'qbbrowse' => 'Jalajah',
'qbedit' => 'Suntiang',
'qbpageoptions' => 'Laman ko',
'qbmyoptions' => 'Laman denai',
-'qbspecialpages' => 'Halaman istimewa',
+'qbspecialpages' => 'Laman istimewa',
'faq' => 'FAQ',
'faqpage' => 'Project:FAQ',
'variants' => 'Variasi:',
'navigation-heading' => 'Menu navigasi',
-'errorpagetitle' => 'Kesalahan',
+'errorpagetitle' => 'Kasalahan',
'returnto' => 'Baliak ka $1',
'tagline' => 'Dari {{SITENAME}}',
'help' => 'Bantuan',
'jumptonavigation' => 'pinteh',
'jumptosearch' => 'cari',
'view-pool-error' => 'Maaf, server sadang sibuak pado kini ko.
-Talalu banyak pangguno barusaho mancaliak laman iko.
-Tunggu sabanta sabalum Sanak mancubo baliak mangakses laman iko.
+Talalu banyak pangguno barusaho mancaliak laman ko.
+Tunggu sabanta sabalum Sanak mancubo baliak mangakses laman ko.
$1',
'pool-timeout' => 'Lewat waktu manunggu kunci',
'disclaimerpage' => 'Project:Sanggahan umum',
'edithelp' => 'Bantuan suntiangan',
'edithelppage' => 'Help:Suntingan',
-'helppage' => 'Help:Takadia',
+'helppage' => 'Help:Isi',
'mainpage' => 'Laman Utamo',
'mainpage-description' => 'Laman utamo',
'policy-url' => 'Project:Kabijakan',
'privacy' => 'Kecipehan privasi',
'privacypage' => 'Project:Kecipehan privasi',
-'badaccess' => 'Kesalahan hak akses',
-'badaccess-group0' => 'Sanak indak diizinkan untuak malakukan tindakan nan Sanak minta.',
-'badaccess-groups' => 'Tindakan nan Sanak minta dibatasi untuak pangguno dalam {{PLURAL:$2|kalompok|ciek dari kelompok}}: $1.',
+'badaccess' => 'Kasalahan hak akses',
+'badaccess-group0' => 'Sanak indak diizinkan untuak malakukan tindakan nan Sanak nio.',
+'badaccess-groups' => 'Tindakan nan Sanak nio dibatasi untuak pangguno dalam {{PLURAL:$2|kalompok|ciek dari kelompok}}: $1.',
'versionrequired' => 'Dibutuahkan MediaWiki versi $1',
-'versionrequiredtext' => 'MediaWiki versi $1 dibutuahkan untuak manggunokan laman ijo. Caliak [[Special:Version|laman versi]]',
+'versionrequiredtext' => 'MediaWiki versi $1 dibutuahkan untuak manggunokan laman ko. Caliak [[Special:Version|versi laman]]',
'ok' => 'OK',
'retrievedfrom' => 'Didapek dari "$1"',
'youhavenewmessagesmanyusers' => 'Sanak mandapek $1 dari banyak pangguno ($2)',
'newmessageslinkplural' => '{{PLURAL:$1|sabuah pasan baru|pasan baru}}',
'newmessagesdifflinkplural' => '{{PLURAL:$1|parubahan}} taakhia',
-'youhavenewmessagesmulti' => 'Awak ang mandapek pasan baru pado $1',
+'youhavenewmessagesmulti' => 'Sanak mandapek pasan baru pado $1',
'editsection' => 'suntiang',
'editold' => 'suntiang',
'viewsourceold' => 'caliak sumber',
'restorelink' => 'Caliak {{PLURAL:$1|ciek suntiangan|$1 suntiangan}} nan dihapuih',
'feedlinks' => 'Umpan:',
'feed-invalid' => 'Tipe pamintaan umpan indak tapek.',
-'feed-unavailable' => 'Umpan sindikasi indak tasadio',
-'site-rss-feed' => '$1 RSS Umpan',
+'feed-unavailable' => 'Sindikasi umpan indak tasadio',
+'site-rss-feed' => '$1 Umpan RSS',
'site-atom-feed' => 'Umpan Atom $1',
'page-rss-feed' => 'Umpan RSS "$1"',
'page-atom-feed' => '"$1" umpan Atom',
'createaccount' => 'Buek akun baharu',
'gotaccount' => "Alah tadaftar sabagai pangguno? '''$1'''.",
'gotaccountlink' => 'Masuak log',
-'userlogin-resetlink' => 'Lupo detail info masuak Sanak?',
-'createaccountmail' => 'malalui surel',
+'userlogin-resetlink' => 'Lupo rincian info masuak Sanak?',
+'createaccountmail' => 'Pakai kato sandi sumbarang samantaro, lalu kirim ka alamaik surel nan di bawah ko',
'createaccountreason' => 'Alasan:',
'badretype' => 'Kato sandi nan Sanak masuakkan salah.',
'userexists' => 'Namo pangguno nan dipiliah alah tapakai.
Namo psngguno msmbedokan kapitalisasi.
Pariso baliak ejaan Sanak, atau [[Special:UserLogin/signup|buek akun baharu]].',
'nosuchusershort' => 'Indak ado pangguno jo namo "$1".
-Sila pariso baliak ejaan Sanak.',
+Cubo pariso baliak ejaan Sanak.',
'nouserspecified' => 'Sanak harus mamasuakkan namo pangguno.',
'login-userblocked' => 'Pangguno iko diblokir. Indak diizinan/dipabuliahan untuak masuak log.',
'wrongpassword' => 'Kato sandi nan Sanak masuakkan salah. Sila cubo baliak.',
# E-mail sending
'php-mail-error-unknown' => 'Kasalahan nan indak dikana dalam fungsi mail() PHP',
'user-mail-no-addy' => 'Mancubo mangirim e-mail tanpa alamat e-mail nan sah.',
+'user-mail-no-body' => 'Mancubo kirim surel kosong atau pasan talalu pendek',
# Change password dialog
'resetpass' => 'Tuka kato sandi',
'passwordreset-emailelement' => 'Namo pangguno: $1
Sandi samantaro: $2',
'passwordreset-emailsent' => 'Surel pangingek alah dikiriman.',
-'passwordreset-emailsent-capture' => 'E-mail paringatan alah dikirim, nan tacaliak di bawah ko.',
+'passwordreset-emailsent-capture' => 'Surel paringatan alah dikirim, nan nampak di bawah ko.',
'passwordreset-emailerror-capture' => 'Surel pangingek, nan ditampilkan di bawah, alah dibuek, tapi pengirimannyo gagal ka pangguno: $1',
# Special:ChangeEmail
'changeemail' => 'Tuka alamat e-mail.',
'changeemail-header' => 'Ganti alamat e-mail.',
-'changeemail-text' => 'Panuahan formulir iko untuak mangganti alamat e-mail. Sanak harus mamasuakkan kato kunci untuak mangonfirmasi.',
-'changeemail-no-info' => 'Sanak harus masuak log untuak mangakses halaman ko.',
-'changeemail-oldemail' => 'Alamat e-mail kini:',
-'changeemail-newemail' => 'Alamat e-mail baharu:',
+'changeemail-text' => 'Isi formulir ko untuak mangganti alamat surel. Sanak harus mamasuakkan kato sandi untuak mayakinkan parubahan.',
+'changeemail-no-info' => 'Sanak harus masuak log untuak mangakses laman ko.',
+'changeemail-oldemail' => 'Alamat surel kini:',
+'changeemail-newemail' => 'Alamat surel baru:',
'changeemail-none' => '(indak ado)',
'changeemail-password' => 'Sandi {{SITENAME}} Sanak:',
-'changeemail-submit' => 'Ganti e-mail.',
+'changeemail-submit' => 'Ganti surel.',
'changeemail-cancel' => 'Batalkan',
# Edit page toolbar
'link_tip' => 'Pranala dalam',
'extlink_sample' => 'http://www.example.com judul pranala',
'extlink_tip' => 'Pranala lua (ingek awalannyo http://)',
-'headline_sample' => 'Teks tajuk',
-'headline_tip' => 'Tingkek 2 tajuk',
-'nowiki_sample' => 'Masuakkan disiko teks yang indak diformat',
-'nowiki_tip' => 'Abaikan pemformatan wiki',
+'headline_sample' => 'Teks judul',
+'headline_tip' => 'Tingkek 2 judul',
+'nowiki_sample' => 'Masuakkan disiko teks nan indak baformat',
+'nowiki_tip' => 'Abaikan format wiki',
'image_tip' => 'Cantumkan berkas',
'media_tip' => 'Pranala berkas',
'sig_tip' => 'Tandotangan awak jo tando waktu',
# Edit pages
'summary' => 'Ringkasan:',
-'subject' => 'Subjek/tajuk:',
-'minoredit' => 'Iko disuntiang saketek',
+'subject' => 'Subjek/judul:',
+'minoredit' => 'Suntiangan ketek',
'watchthis' => 'Pantau laman ko',
-'savearticle' => 'Simpan halaman',
-'preview' => 'Pratonton',
-'showpreview' => 'Caliak pratonton',
+'savearticle' => 'Simpan laman',
+'preview' => 'Pratayang',
+'showpreview' => 'Caliak pratayang',
'showlivepreview' => 'Pratayang langsuang',
'showdiff' => 'Caliak parubahan',
'anoneditwarning' => "'''Peringatan:''' Awak alun masuak log.
'missingsummary' => "'''Paringatan:''' Sanak indak mamasuakan ringkasan panyuntiangan. Jikok Sanak baliak manakan tombol Simpan, suntiangan Sanak akan disimpan tanpa ringkasan panyuntiangan.",
'missingcommenttext' => 'Sila masuakan komenta di bawah iko.',
'missingcommentheader' => "'''Paringatan:''' Sanak alun maagihan subjek atau judul untuak komenta Sanak. Jikok Sanak baliak manakan \"{{int:savearticle}}\", suntiangan Sanak akan disimpan tanpa komenta tasabuik.",
-'summary-preview' => 'Pratonton ringkasan:',
-'subject-preview' => 'Pratayang sabyek/tajuak:',
+'summary-preview' => 'Ringkasan pratayang:',
+'subject-preview' => 'Pratayang subyek/judul:',
'blockedtitle' => 'Pangguno diblokir',
'blockedtext' => "'''Namo pangguno atau alamaik IP Sanak alah diblokir.'''
Jikok Sanak adolah saurang pangguno anonim dan marasa mandapekkan komentar-komentar nan indak relevan nan ditujuan langsung kapado Sanak, sila [[Special:UserLogin/signup|mambuek akun]] atau [[Special:UserLogin|masuak log]] untuak mahindari karancuan jo pangguno anonim lainnya di lain wakatu.''",
'noarticletext' => 'Kini ko indak ada teks di laman iko.
Sanak dapek [[Special:Search/{{PAGENAME}}|malakukan pancarian untuak judul laman iko]] di laman-laman lain, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mancari log takaik], atau [{{fullurl:{{FULLPAGENAME}}|action=edit}} manyuntiang laman iko]</span>.',
-'noarticletext-nopermission' => 'Kini ko indak ado teks dalam laman iko.
+'noarticletext-nopermission' => 'Kini ko indak ado teks dalam laman ko.
-Sanak dapek [[Special:Search/{{PAGENAME}}|malakukan pancahari untuak judul laman iko]] di laman lain, atau <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mancahari log takaik] </span>, tapi Sanak indak punyo izin untuak mambuek laman iko.',
+Sanak dapek [[Special:Search/{{PAGENAME}}|malakukan pancahrian untuak judul laman ko]] di laman lain, atau <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mancahari log takaik] </span>, tapi Sanak indak punyo izin untuak mambuek laman ko.',
'missing-revision' => 'Revisi $1 di laman nan banamo "{{PAGENAME}}" ko indak ado.
Hal iko biasonyo disababkan dek pranala sijarah nan alah kadaluarsa ka laman nan alah dihapuih.
Rinciannyo dapek dicaliak di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log panghapuihan].',
'userpage-userdoesnotexist' => 'Akun pangguno "<nowiki>$1</nowiki>" indak tadafta.',
'userpage-userdoesnotexist-view' => 'Pangguno "$1" indak tadafta.',
-'blocked-notice-logextract' => 'Pangguno iko sadang diblokir.
-Entri log pamblokiran tabaharu iko disadioan di bawah iko untuak referensi:',
+'blocked-notice-logextract' => 'Pangguno ko tangah diblokir.
+Entri log pamblokiran tabaru disadioan di bawah ko untuak referensi:',
'clearyourcache' => "'''Catatan:''' Sasudah menyimpan, Sanak mungkin harus meminteh singgahan paramban Sanak untuak maliek parubahan.
* '''Firefox / Safari:''' Tahan ''Shift'' sambia mangklik ''Reload'', atau takan ''Ctrl-F5'' atau ''Ctrl-R'' (''⌘-R'' di Mac)
* '''Google Chrome:''' Takan ''Ctrl-Shift-R'' (''⌘-Shift-R'' di Mac)
'''Jan dikirim karya bahak cipta nan indak baizin!'''",
'copyrightwarning2' => "Parhatikan bahawa sadoalah kontribusi terhadap {{SITENAME}} dapek disuntiang, diubah, atau dihapuih oleh panyumbang lainnyo. Jikok Sanak indak ingin tulisan Sanak disuntiang urang lain, jan kiriman ka siko.<br />Sanak jua bajanji bahawa iko adolah hasil karyo Sanak surang, atau disalin dari sumber miliak umum atau sumber bebas nan lain (liek $1 untuak informasi labiah lanjuik). '''JAN KIRIMAN KARYO NAN DILINDUNGI HAK CIPTA TANPA IJIN!'''",
'longpageerror' => "'''KASALAHAN: Teks nan Sanak kiriman sagadang {{PLURAL:$1|kilobita|$1 kilobita}}, nan barati labiah gadang dari jumlah maksimum {{PLURAL:$2|kilobita|$2 kilobita}}. Teks indak dapek disimpan.'''",
-'readonlywarning' => "'''PARINGATAN: Basis data sadang dikunci karano pamaliharaan, sahinggo saat iko Sanak indak dapek manyimpan hasil suntiangan Sanak.
-Sanak mungkin paralu manyalin teks suntiangan Sanak iko dan manyimpannyo ka sabuah berkas teks dan mamuekannyo baliak sausai pamaliharaan usai.'''
+'readonlywarning' => "'''PARINGATAN: Basis data sadang dikunci untuak pamaliharaan, sahinggo saat iko Sanak indak dapek manyimpan hasil suntiangan.'''
+Sanak mungkin paralu manyalin teks suntiangan Sanak ko dan simpankan ka sabuah berkas teks guno mamuekannyo baliak kundian.
-Pangurus nan mangunci basis data magiahan panjalehan barikuik: $1",
+Panguruih nan mangunci basis data maagiahan panjalehan barikuik: $1",
'protectedpagewarning' => "'''Paringatan: Laman iko sadang dilinduangi sahinggo hanyo pangguno jo hak akses pangurus nan dapek manyuntiangnyo.'''
Entri catatan tarakhir disadioan di bawah untuak referensi:",
'semiprotectedpagewarning' => "'''Paringatan: Laman iko sadang dilinduangi sahinggo hanyo pangguno tadafta nan bisa manyuntiangnyo.'''
Harap patimbangan apokah layak untuak malanjutan suntiangan Sanak.
Barikuik adolah log panghapuihan dan pamindahan dari laman iko:",
-'moveddeleted-notice' => 'Laman iko alah dihapuih.
-Sabagai referensi, barikuik adolah log panghapusan dan pamindahan laman iko.',
+'moveddeleted-notice' => 'Laman ko alah dihapuih.
+Sabagai referensi, barikuik adolah log panghapusan dan pamindahannyo.',
'log-fulllog' => 'Liek saluruah log',
'edit-hook-aborted' => 'Suntiangan dibatalan samo kait parser
tanpa ado katarangan.',
'content-model-css' => 'CSS',
# Parser/template warnings
-'expensive-parserfunction-warning' => "'''Warning:''' Laman ko manganduang talalu banyak panggilan fungsi parser.
+'expensive-parserfunction-warning' => "'''Paringatan:''' Laman ko manganduang talalu banyak panggilan fungsi parser.
Seharusnyo kurang dari $2 {{PLURAL:$2|panggilan|$2 panggilan}}, tapi {{PLURAL:$1|kini ado $1 panggilan|kini ko ado $1 panggilan}}.",
'expensive-parserfunction-category' => 'Laman nan talalu banyak panggilan fungsi parser',
'post-expand-template-inclusion-warning' => "'''Peringatan:''' Ukuran templat talalu gadang.
Babarapo templat akan diabaikan.",
'post-expand-template-inclusion-category' => 'Laman nan ukurannyo templatnyo malabiahi bateh',
-'post-expand-template-argument-warning' => 'Peringatan: Laman ko barisi satidaknyo ciek uraian templat na baukuran ekspansi nan talalu gadang.
+'post-expand-template-argument-warning' => 'Paringatan: Laman ko barisi satidaknyo ciek uraian templat na baukuran ekspansi nan talalu gadang.
Uraian-uraian tu alah diabaikan.',
'post-expand-template-argument-category' => 'Laman nan barisi uraian template nan diabaikan',
'parser-template-loop-warning' => 'Hubungan barulang templat tadeteksi: [[$1]]',
'node-count-exceeded-warning' => 'Laman hitungan-node lah talampau',
'expansion-depth-exceeded-category' => 'Laman dima kadalaman ekspansi lah talampau',
'expansion-depth-exceeded-warning' => 'Laman kadalaman ekspansi lah talampau',
+'parser-unstrip-loop-warning' => 'Unstrip loop detected',
'converter-manual-rule-error' => 'Kasalahan tadeteksi di aturan manual konversi bahaso',
# "Undo" feature
'undo-norev' => 'Suntiangan ko indak dapek dibatalan dek laman indak ditamukan atau lah dihapuih.',
'undo-summary' => 'Mambatalan revisi $1 oleh [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])',
+# Account creation failure
+'cantcreateaccounttitle' => 'Indak dapek mambuek akun',
+
# History pages
'viewpagelogs' => 'Caliak log untuak laman ko',
'currentrev-asof' => 'Revisi terkini pado $1',
'nextrevision' => 'Revisi selanjutnyo →',
'currentrevisionlink' => 'Revisi terkini',
'cur' => 'kini',
+'next' => 'lanjuik',
'last' => 'sabalun',
+'page_first' => 'awal',
+'page_last' => 'akhir',
'histlegend' => "Membandingkan pilihan: Tandoi antaro duo versi nan ingin dibandingan dangan mamilih kotak radionyo, dan takan tombol ''Bandiangan versi tapiliah''.<br />
Legend: '''({{int:kini}})''' = perbedaan jo versi taakhia, '''({{int:dulu}})''' = pabedoan jo versi sabalunnyo, '''{{int:k}}''' = suntiangan ketek, '''{{int:b}}''' = suntiangan bot.",
'history-fieldset-title' => 'Talusuri riwayaik',
'history-show-deleted' => 'Hanyo nan dihapuih',
'histfirst' => 'Nan lamo',
'histlast' => 'Nan baru',
+'historysize' => '({{PLURAL:$1|bita|$1 bita}})',
+'historyempty' => '(kosong)',
# Revision feed
+'history-feed-title' => 'Riwayat revisi',
+'history-feed-description' => 'Riwayat revisi laman ko di wiki',
'history-feed-item-nocomment' => '$1 pado $2',
# Revision deletion
'viewprevnext' => 'Caliakkan ($1 {{int:pipe-separator}} $2) ($3)',
'searchmenu-exists' => "'''Ado laman nan banamo \"[[:\$1]]\" pado wiki ko.'''",
'searchmenu-new' => "'''Buek laman \"[[:\$1]]\" di wiki ko!'''",
+'searchhelp-url' => 'Help:Isi',
'searchprofile-articles' => 'Laman isi',
'searchprofile-project' => 'Laman Bantuan jo Proyek',
'searchprofile-images' => 'Multimedia',
'searchprofile-advanced-tooltip' => 'Pacarian di ruang namo tatantu',
'search-result-size' => '$1 ({{PLURAL:$2|1 kato|$2 kato}})',
'search-result-category-size' => '{{PLURAL:$1|1 anggota|$1 anggota}} ({{PLURAL:$2|1 subkategori|$2 subkategori}}, {{PLURAL:$3|1 berkas|$3 berkas}})',
+'search-result-score' => 'Relevansi: $1%',
'search-redirect' => '(pangaliahan $1)',
'search-section' => '(bagian $1)',
'search-suggest' => 'Mungkin maksud awak: $1',
'powersearch-ns' => 'Mancari di ruangnamo:',
'powersearch-redir' => 'Dafta pangaliahan',
'powersearch-field' => 'Mancari',
+'powersearch-togglelabel' => 'Piliah:',
+'powersearch-toggleall' => 'Sadonyo',
+'powersearch-togglenone' => 'Dak ado',
# Preferences page
'preferences' => 'Preferensi',
'mypreferences' => 'Preferensi',
-'prefs-beta' => 'Corak Beta',
-'prefs-labs' => 'Corak Uji',
-'youremail' => 'Surek Elektronik:',
+'prefs-beta' => 'Fitur Beta',
+'prefs-datetime' => 'Tanggal dan waktu',
+'prefs-labs' => 'Fitur uji',
+'prefs-user-pages' => 'Laman pangguno',
+'prefs-personal' => 'Profil pangguno',
+'prefs-rc' => 'Parubahan tabaru',
+'prefs-watchlist' => 'Dafta pantauan',
+'prefs-watchlist-days' => 'Lamonyo dalam daftar pantauan:',
+'timezoneregion-africa' => 'Afrika',
+'timezoneregion-america' => 'Amerika',
+'timezoneregion-antarctica' => 'Antarktika',
+'timezoneregion-arctic' => 'Arktik',
+'timezoneregion-asia' => 'Asia',
+'timezoneregion-atlantic' => 'Samudera Atlantik',
+'timezoneregion-australia' => 'Australia',
+'timezoneregion-europe' => 'Eropa',
+'timezoneregion-indian' => 'Samudera Hindia',
+'timezoneregion-pacific' => 'Samudera Pasifik',
+'allowemail' => 'Izinkan pangguno lain mangirim surel',
+'prefs-searchoptions' => 'Cari',
+'prefs-namespaces' => 'Ruang namo',
+'defaultns' => 'Ataupun cari dalam ruang-ruang namo ko:',
+'default' => 'baku',
+'prefs-files' => 'Berkas',
+'prefs-custom-css' => 'CSS pribadi',
+'prefs-custom-js' => 'JS pribadi',
+'prefs-common-css-js' => 'CSS/JS babagi untuak sado kulit:',
+'prefs-emailconfirm-label' => 'Surel konfirmasi:',
+'prefs-textboxsize' => 'Ukuran kotak suntiang',
+'youremail' => 'Surel:',
+'username' => '{{GENDER:$1|Namo pangguno}}:',
'yourrealname' => 'Namo sabananyo:',
'prefs-help-email' => 'Alamaik surek elektronik ko hanyo tambahan se, namun paralu untuak maulang kato kunci, jiko awak ang lupo kato kunci.',
'prefs-help-email-others' => 'Awak ang juo dapek mamiliah untuak mangizinkan urang lain manghubungi awak ang jo surek elektronik malalui laman pangguno atau laman ota.
Alamaik surek elektronik awak ang tu indak kan katahuan dek urang lain nan manghubungi awak ang tu.',
+'prefs-signature' => 'Tando tangan',
# Groups
'group-sysop' => 'Pengurus',
'numberingroup' => array( '1', 'БРОЈВОГРУПА', 'NUMBERINGROUP', 'NUMINGROUP' ),
'staticredirect' => array( '1', '__СТАТИЧНОПРЕНАСОЧУВАЊЕ__', '__STATICREDIRECT__' ),
'protectionlevel' => array( '1', 'НИВОНАЗАШТИТА', 'PROTECTIONLEVEL' ),
- 'formatdate' => array( '0', 'Ñ\84оÑ\80маÑ\82надаÑ\82Ñ\83м', 'formatdate', 'dateformat' ),
+ 'formatdate' => array( '0', 'форматдатум', 'formatdate', 'dateformat' ),
'url_path' => array( '0', 'ПАТЕКА', 'PATH' ),
'url_wiki' => array( '0', 'ВИКИ', 'WIKI' ),
'url_query' => array( '0', 'БАРАЊЕ', 'QUERY' ),
'gotaccount' => "Веќе имате корисничка сметка? '''$1'''.",
'gotaccountlink' => 'Најавете се',
'userlogin-resetlink' => 'Си ги заборавивте податоците за најава?',
-'createaccountmail' => 'по е-поÑ\88Ñ\82а',
+'createaccountmail' => 'Ð\94аÑ\98 пÑ\80ивÑ\80емена пÑ\80оизволна лозинка и иÑ\81пÑ\80аÑ\82и Ñ\98а на долÑ\83наведенаÑ\82а адÑ\80еÑ\81а',
'createaccountreason' => 'Причина:',
'badretype' => 'Внесените лозинки не се совпаѓаат.',
'userexists' => 'Корисничкото име што го внесовте е зафатено.
'longpageerror' => "'''Грешка: Текстот што го внесовте е голем {{PLURAL:$1|еден килобајт|$1 килобајти}}, што ја надминува границата од {{PLURAL:$2|еден килобајт|$2 килобајти}}.'''
Затоа нема да може да се зачува.",
'readonlywarning' => "'''ПРЕДУПРЕДУВАЊЕ: Базата на податоци е заклучена заради одржување, па нема да можете да ги зачувате промените сега.
-Пробајте да го зачувате текстот за подоцна, локално (со прекопирање) во некоја податотека.'''
+
+Ви препорачуваме да го прекопирате текстот на текстуална податотека за да го зачувате за подоцна.'''
Администраторот кој ја заклучил базата на податоци го дал следново објаснување: $1",
'protectedpagewarning' => "'''Предупредување: Оваа страница е заклучена, така што само корисници со администраторски привилегии можат да ја уредуваат.'''
# Special:ActiveUsers
'activeusers' => 'Список на активни корисници',
'activeusers-intro' => 'Ова е список на корисници кои биле на некој начин активни во последните $1 {{PLURAL:$1|ден|дена}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|уредување|уредувања}} {{PLURAL:$3|денес|во последните $3 дена}}',
+'activeusers-count' => '$1 {{PLURAL:$1|дејство|дејства}} {{PLURAL:$3|денес|во последните $3 дена}}',
'activeusers-from' => 'Прикажи корисници почнувајќи од:',
'activeusers-hidebots' => 'Скриј ботови',
'activeusers-hidesysops' => 'Скриј администратори',
'usermessage-editor' => 'Системски гласник',
# Watchlist
-'watchlist' => 'набљудувања',
+'watchlist' => 'Ð\9dабљудувања',
'mywatchlist' => 'Набљудувања',
'watchlistfor2' => 'За $1 $2',
'nowatchlist' => 'Немате ништо во списокот на набљудувања.',
'specialpages-group-highuse' => 'Најкористени страници',
'specialpages-group-pages' => 'Списоци на страници',
'specialpages-group-pagetools' => 'Алатки за страници',
-'specialpages-group-wiki' => 'Ð\92ики-податоци и алатки',
+'specialpages-group-wiki' => 'Ð\9fодатоци и алатки',
'specialpages-group-redirects' => 'Пренасочување на специјални страници',
'specialpages-group-spam' => 'Алатки против спам',
'logentry-newusers-newusers' => 'Направена е корисничката сметка $1',
'logentry-newusers-create' => 'Направена е корисничката сметка $1',
'logentry-newusers-create2' => 'Направена е корисничката сметка $3; создавач: $1',
+'logentry-newusers-byemail' => '$1 ја создаде корисничката сметка $3. Лозинката ви ја испративме по е-пошта',
'logentry-newusers-autocreate' => 'Сметката $1 е создадена автоматски',
-'newuserlog-byemail' => 'испратена лозинка по е-пошта',
'logentry-rights-rights' => '$1 го смени групното членство за $3 од $4 во $5',
'logentry-rights-rights-legacy' => '$1 го смени групното членство за $3',
'logentry-rights-autopromote' => '$1 е автоматски унапреден од $4 во $5',
'api-error-nomodule' => 'Внатрешна грешка: нема зададено модул за подигање.',
'api-error-ok-but-empty' => 'Внатрешна грешка: опслужувачот не одговара.',
'api-error-overwrite' => 'Презапишувањето врз постоечки податотеки не е дозволено.',
-'api-error-stashfailed' => 'Внатрешна грешка: опслужувачот не успеа да ја складира привремената податотека.',
+'api-error-stashfailed' => 'Внатрешна грешка: Опслужувачот не успеа да ја складира привремената податотека.',
+'api-error-publishfailed' => 'Внатрешна грешка: Опслужувачот не успеа да ја објави привремената податотека.',
'api-error-timeout' => 'Опслужувачот не одговори во очекуваното време.',
'api-error-unclassified' => 'Се појави непозната грешка.',
'api-error-unknown-code' => 'Непозната грешка: „$1“',
'img_text_bottom' => array( '1', 'എഴുത്ത്-താഴെ', 'text-bottom' ),
'img_link' => array( '1', 'കണ്ണി=$1', 'link=$1' ),
'img_alt' => array( '1', 'പകരം=$1', 'alt=$1' ),
+ 'img_class' => array( '1', 'ശ്രേണി=$1', 'class=$1' ),
'sitename' => array( '1', 'സൈറ്റിന്റെപേര്', 'SITENAME' ),
'ns' => array( '0', 'നാമേ:', 'NS:' ),
'localurl' => array( '0', 'ലോക്കൽയുആർഎൽ:', 'LOCALURL:' ),
'padleft' => array( '0', 'ഇടത്ത്നിറക്കുക', 'PADLEFT' ),
'padright' => array( '0', 'വലത്ത്നിറക്കുക', 'PADRIGHT' ),
'special' => array( '0', 'പ്രത്യേകം', 'special' ),
+ 'speciale' => array( '0', 'സവിശേഷം', 'speciale' ),
'defaultsort' => array( '1', 'സ്വതവേയുള്ളക്രമപ്പെടുത്തൽ:', 'സ്വതവേയുള്ളക്രമപ്പെടുത്തൽചാവി:', 'സ്വതവേയുള്ളവർഗ്ഗക്രമപ്പെടുത്തൽ:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
'filepath' => array( '0', 'പ്രമാണപഥം:', 'FILEPATH:' ),
'tag' => array( '0', 'റ്റാഗ്', 'ടാഗ്', 'tag' ),
'category-empty' => "''ഈ വർഗ്ഗത്തിൽ താളുകളോ പ്രമാണങ്ങളോ ഇല്ല.''",
'hidden-categories' => '{{PLURAL:$1|മറഞ്ഞിരിക്കുന്ന വർഗ്ഗം|മറഞ്ഞിരിക്കുന്ന വർഗ്ഗങ്ങൾ}}',
'hidden-category-category' => 'മറഞ്ഞിരിക്കുന്ന വർഗ്ഗങ്ങൾ',
-'category-subcat-count' => '{{PLURAL:$2|à´\88 വർà´\97àµ\8dà´\97à´¤àµ\8dതിനàµ\8d, താഴàµ\86 നൽà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´\92à´°àµ\81 à´\89പവർà´\97àµ\8dà´\97à´\82 മാതàµ\8dരമാണàµ\81à´³àµ\8dളതàµ\8d.|à´\88 വർà´\97àµ\8dà´\97à´¤àµ\8dതിനàµ\8d $2 à´\89പവർà´\97àµ\8dà´\97à´\99àµ\8dà´\99à´³àµ\81à´³àµ\8dളതിൽ {{PLURAL:$1|à´\92à´°àµ\86à´£àµ\8dà´£à´\82|$1 à´\8eà´£àµ\8dà´£à´\82}} താഴàµ\86 നൽà´\95à´¿à´¯ിരിക്കുന്നു.}}',
+'category-subcat-count' => '{{PLURAL:$2|à´\88 വർà´\97àµ\8dà´\97à´¤àµ\8dതിനàµ\81 താഴàµ\86 നൽà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´\92à´°àµ\81 à´\89പവർà´\97àµ\8dà´\97à´\82 മാതàµ\8dരമാണàµ\81à´³àµ\8dളതàµ\8d.|à´\88 വർà´\97àµ\8dà´\97à´¤àµ\8dതിനàµ\8d à´\86à´\95àµ\86 $2 à´\89പവർà´\97àµ\8dà´\97à´\99àµ\8dà´\99ൾ à´\89à´³àµ\8dളതിൽ {{PLURAL:$1|à´\92à´°àµ\81 à´\89പവർà´\97àµ\8dà´\97à´\82|$1 à´\89പവർà´\97àµ\8dà´\97à´\99àµ\8dà´\99ൾ}}, താഴàµ\86à´\95àµ\8dà´\95àµ\8aà´\9fàµ\81à´¤àµ\8dà´¤ിരിക്കുന്നു.}}',
'category-subcat-count-limited' => 'ഈ വർഗ്ഗത്തിനു താഴെ നൽകിയിരിക്കുന്ന {{PLURAL:$1|ഉപവർഗ്ഗമുണ്ട്|$1 ഉപവർഗ്ഗങ്ങളുണ്ട്}}.',
'category-article-count' => '{{PLURAL:$2|ഈ വർഗ്ഗത്തിൽ താഴെ നൽകിയിരിക്കുന്ന ഒരു താൾ മാത്രമാണുള്ളത്.|ഈ വർഗ്ഗത്തിൽ $2 താളുകളുള്ളതിൽ {{PLURAL:$1|ഒരു താൾ|$1 എണ്ണം}} താഴെ നൽകിയിരിക്കുന്നു.}}',
'category-article-count-limited' => 'ഈ വർഗ്ഗത്തിൽ താഴെ നൽകിയിരിക്കുന്ന {{PLURAL:$1|ഒരു താൾ ഉണ്ട്|$1 താളുകൾ ഉണ്ട്}}.',
'gotaccount' => "താങ്കൾക്ക് അംഗത്വമുണ്ടോ? '''$1'''.",
'gotaccountlink' => 'പ്രവേശിക്കുക',
'userlogin-resetlink' => 'താങ്കളുടെ ലോഗിൻ വിവരങ്ങൾ മറന്നു പോയോ?',
-'createaccountmail' => 'à´\87à´®àµ\86യിൽ വഴി',
+'createaccountmail' => 'താതàµ\8dà´\95ാലിà´\95മായ à´\95àµ\8dരമരഹിത രഹസàµ\8dയവാà´\95àµ\8dà´\95àµ\8d à´\89പയàµ\8bà´\97à´¿à´\95àµ\8dà´\95ാനനàµ\81വാദà´\82 നൽà´\95àµ\81à´\95à´¯àµ\81à´\82 à´\85à´¤àµ\8d താഴàµ\86 à´µàµ\8dà´¯à´\95àµ\8dതമാà´\95àµ\8dà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´\87à´®àµ\86യിൽ വിലാസതàµ\8dതിലàµ\87à´¯àµ\8dà´\95àµ\8dà´\95àµ\8d à´\85à´¯à´\95àµ\8dà´\95àµ\81à´\95à´¯àµ\81à´\82 à´\9aàµ\86à´¯àµ\8dà´¯àµ\81à´\95',
'createaccountreason' => 'കാരണം:',
'badretype' => 'താങ്കൾ നൽകിയ രഹസ്യവാക്കുകൾ സമമല്ല.',
'userexists' => 'നൽകിയ ഉപയോക്തൃനാമം മുമ്പേ നിലവിലുണ്ട്.
ഇതു താങ്കൾത്തന്നെ എഴുതിയതാണെന്നും, അതല്ലെങ്കിൽ പകർപ്പവകാശ നിയമങ്ങളുടെ പരിധിയിലില്ലാത്ത ഉറവിടങ്ങളിൽനിന്നും പകർത്തിയതാണെന്നും ഉറപ്പാക്കുക (കുടുതൽ വിവരത്തിനു $1 കാണുക).
'''പകർപ്പവകാശ സംരക്ഷണമുള്ള സൃഷ്ടികൾ ഒരു കാരണവശാലും ഇവിടെ പ്രസിദ്ധീകരിക്കരുത്!'''",
'longpageerror' => "'''പിഴവ്: താങ്കൾ സമർപ്പിച്ച എഴുത്തുകൾക്ക് {{PLURAL:$1|ഒരു കിലോബൈറ്റ്|$1 കിലോബൈറ്റ്സ്}} വലിപ്പമുണ്ട്. പരമാവധി അനുവദനീയമായ വലിപ്പം {{PLURAL:$2|ഒരു കിലോബൈറ്റ്|$2 കിലോബൈറ്റ്സ്}} ആണ്. അതിനാലിതു സേവ് ചെയ്യാൻ സാദ്ധ്യമല്ല.'''",
-'readonlywarning' => "'''à´®àµ\81à´¨àµ\8dനറിയിപàµ\8dà´ªàµ\8d: à´¡àµ\87à´±àµ\8dറാബàµ\87à´¸àµ\8d പരിപാലനതàµ\8dതിനàµ\81 à´µàµ\87à´£àµ\8dà´\9fà´¿ ബനàµ\8dധിà´\9aàµ\8dà´\9aà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81, à´\85à´¤àµ\81à´\95àµ\8aà´£àµ\8dà´\9fàµ\8d താà´\99àµ\8dà´\95ളിപàµ\8dà´ªàµ\8bൾ വരàµ\81à´¤àµ\8dതിയ മാറàµ\8dà´±à´\99àµ\8dà´\99ൾ à´¸àµ\87à´µàµ\8d à´\9aàµ\86à´¯àµ\8dയാൻ സാദàµ\8dà´§àµ\8dയമലàµ\8dà´².''' താà´\99àµ\8dà´\95ൾ വരàµ\81à´¤àµ\8dതിയ മാറàµ\8dà´±à´\99àµ\8dà´\99ൾ à´\92à´°àµ\81 à´\9fàµ\86à´\95àµ\8dà´¸àµ\8dà´±àµ\8dà´±àµ\8d à´ªàµ\8dരമാണതàµ\8dതിലàµ\87à´\95àµ\8dà´\95àµ\8d à´ªà´\95ർതàµ\8dതി (à´\95à´\9fàµ\8dà´\9fàµ\8d & പേസ്റ്റ്) പിന്നീടുള്ള ഉപയോഗത്തിനായി സേവ് ചെയ്യുവാൻ താല്പര്യപ്പെടുന്നു. ഡേറ്റാബേസ് ബന്ധിച്ച അഡ്മിനിസ്ട്രേറ്റർ നൽകിയ വിശദീകരണം: $1",
+'readonlywarning' => "'''à´®àµ\81à´¨àµ\8dനറിയിപàµ\8dà´ªàµ\8d: à´¡àµ\87à´±àµ\8dറാബàµ\87à´¸àµ\8d പരിപാലനതàµ\8dതിനàµ\81 à´µàµ\87à´£àµ\8dà´\9fà´¿ ബനàµ\8dധിà´\9aàµ\8dà´\9aà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81, à´\85à´¤àµ\81à´\95àµ\8aà´£àµ\8dà´\9fàµ\8d താà´\99àµ\8dà´\95ളിപàµ\8dà´ªàµ\8bൾ വരàµ\81à´¤àµ\8dതിയ മാറàµ\8dà´±à´\99àµ\8dà´\99ൾ à´¸àµ\87à´µàµ\8d à´\9aàµ\86à´¯àµ\8dയാൻ സാദàµ\8dà´§àµ\8dയമലàµ\8dà´².''' താà´\99àµ\8dà´\95ൾ വരàµ\81à´¤àµ\8dതിയ മാറàµ\8dà´±à´\99àµ\8dà´\99ൾ à´\92à´°àµ\81 à´\9fàµ\86à´\95àµ\8dà´¸àµ\8dà´±àµ\8dà´±àµ\8d à´ªàµ\8dരമാണതàµ\8dതിലàµ\87à´\95àµ\8dà´\95àµ\8d à´ªà´\95ർതàµ\8dതി (à´\95àµ\8bà´ªàµ\8dപി & പേസ്റ്റ്) പിന്നീടുള്ള ഉപയോഗത്തിനായി സേവ് ചെയ്യുവാൻ താല്പര്യപ്പെടുന്നു. ഡേറ്റാബേസ് ബന്ധിച്ച അഡ്മിനിസ്ട്രേറ്റർ നൽകിയ വിശദീകരണം: $1",
'protectedpagewarning' => "'''മുന്നറിയിപ്പ്: ഈ താൾ കാര്യനിർവാഹക പദവിയുള്ളവർക്കു മാത്രം തിരുത്താൻ സാധിക്കാവുന്ന തരത്തിൽ സംരക്ഷിക്കപ്പെട്ടിരിക്കുന്നു.''' അവലംബമായി രേഖകളിൽ ലഭ്യമായ ഏറ്റവും പുതിയ വിവരം താഴെ നൽകിയിരിക്കുന്നു:",
'semiprotectedpagewarning' => "'''ശ്രദ്ധിക്കുക:'''അംഗത്വമെടുത്തിട്ടുള്ളവർക്കുമാത്രം തിരുത്താൻ സാധിക്കുന്ന വിധത്തിൽ ഈ താൾ സംരക്ഷിക്കപ്പെട്ടിരിക്കുന്നു. അവലംബമായി രേഖകളിലെ ഏറ്റവും പുതിയ വിവരം താഴെ കൊടുത്തിരിക്കുന്നു:",
'cascadeprotectedwarning' => "'''മുന്നറിയിപ്പ്:''' ഈ താൾ കാര്യനിർവാഹക അവകാശമുള്ളവർക്കു മാത്രം തിരുത്തുവാൻ സാധിക്കുന്ന വിധത്തിൽ സംരക്ഷിക്കപ്പെട്ടിട്ടുള്ളതാണ്. {{PLURAL:$1|താൾ|താളുകൾ}} കാസ്കേഡ് സംരക്ഷണം ചെയ്തപ്പോൾ അതിന്റെ ഭാഗമായി സംരക്ഷിക്കപ്പെട്ടിട്ടുള്ളതാണ് ഈ താൾ.",
# Special:ActiveUsers
'activeusers' => 'സജീവ ഉപയോക്താക്കളുടെ പട്ടിക',
'activeusers-intro' => 'ഇത് കഴിഞ്ഞ {{PLURAL:$1|ദിവസം|$1 ദിവസങ്ങളിൽ}} ഏതെങ്കിലും വിധത്തിലുള്ള പ്രവർത്തനങ്ങൾ ചെയ്ത ഉപയോക്താക്കളുടെ പട്ടികയാണ്.',
-'activeusers-count' => 'à´\95à´´à´¿à´\9eàµ\8dà´\9e {{PLURAL:$3|à´\92à´°àµ\81 ദിവസà´\82|$3 ദിവസà´\99àµ\8dà´\99ളിൽ}} {{PLURAL:$1|à´\92à´°àµ\81 തിരàµ\81à´¤àµ\8dà´¤àµ\8d|$1 തിരàµ\81à´¤àµ\8dà´¤àµ\81കൾ}}',
+'activeusers-count' => 'à´\95à´´à´¿à´\9eàµ\8dà´\9e {{PLURAL:$3|à´\92à´°àµ\81 ദിവസà´\82|$3 ദിവസà´\99àµ\8dà´\99ളിൽ}} {{PLURAL:$1|à´\92à´°àµ\81 à´ªàµ\8dà´°à´µàµ\83à´¤àµ\8dതി|$1 à´ªàµ\8dà´°à´µàµ\83à´¤àµ\8dതികൾ}}',
'activeusers-from' => 'ഇങ്ങനെ തുടങ്ങുന്ന ഉപയോക്താക്കളെ കാട്ടുക:',
'activeusers-hidebots' => 'യന്ത്രങ്ങളെ മറയ്ക്കുക',
'activeusers-hidesysops' => 'കാര്യനിർവാഹകരെ മറയ്ക്കുക',
'usermessage-editor' => 'വ്യവസ്ഥാസന്ദേശകൻ',
# Watchlist
-'watchlist' => 'ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക',
+'watchlist' => 'ശ്രദ്ധിക്കുന്നവ',
'mywatchlist' => 'ശ്രദ്ധിക്കുന്നവ',
'watchlistfor2' => 'ഉപയോക്താവ്:$1 $2',
'nowatchlist' => 'താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ഇനങ്ങളൊന്നുമില്ല.',
# Move page
'move-page' => '$1 മാറ്റുക',
'move-page-legend' => 'താൾ മാറ്റുക',
-'movepagetext' => "താഴെയുള്ള ഫോം ഒരു താളിനെ പുനർനാമകരണം ചെയ്യാനുള്ളതാണ്.
-താളിന്റെ പഴയരൂപങ്ങളും ഈ മാറ്റത്തിന് വിധേയമാക്കപ്പെടും.
+'movepagetext' => "താഴെയുള്ള ഫോം ഒരു താളിനെ പുനർനാമകരണം ചെയ്യാനുള്ളതാണ്, താളിന്റെ നാൾവഴിയും അക്കൂടെ പുതിയ പേരിലേയ്ക്ക് മാറുന്നതാണ്.
പഴയ തലക്കെട്ട്, പുതിയ തലക്കെട്ടുള്ള താളിലേക്കുള്ള ഒരു തിരിച്ചുവിടൽ താളായി മാറും.
പഴയ തലക്കെട്ടിലേക്കുള്ള തിരിച്ചുവിടലുകൾ യന്ത്രങ്ങൾ ഉപയോഗിച്ച് താങ്കൾക്ക് ശരിയാക്കാവുന്നതാണ്.
അങ്ങനെ വേണ്ട എന്നാണ് താങ്കളാഗ്രഹിക്കുന്നതെങ്കിൽ [[Special:DoubleRedirects|ഇരട്ട തിരിച്ചുവിടലുകളോ]], [[Special:BrokenRedirects|ഫലപ്രദമല്ലാത്ത തിരിച്ചുവിടലുകളോ]] ഉണ്ടാകുന്നുണ്ടോയെന്ന് ദയവായി പരിശോധിക്കുക.
'specialpages-group-highuse' => 'കൂടുതൽ ഉപയോഗിക്കപ്പെട്ട താളുകൾ',
'specialpages-group-pages' => 'താളുകളുടെ പട്ടിക',
'specialpages-group-pagetools' => 'താളുകൾക്കുള്ള ഉപകരണങ്ങൾ',
-'specialpages-group-wiki' => 'വിà´\95àµ\8dà´\95à´¿ വിവരà´\99àµ\8dà´\99à´³àµ\81à´\82 à´\89à´ªà´\95à´°à´£à´\99àµ\8dà´\99à´³àµ\81à´\82',
+'specialpages-group-wiki' => 'വിവരങ്ങളും ഉപകരണങ്ങളും',
'specialpages-group-redirects' => 'തിരിച്ചുവിടൽ സംബന്ധിച്ച പ്രത്യേക താളുകൾ',
'specialpages-group-spam' => 'പാഴെഴുത്ത് ഉപകരണങ്ങൾ',
'logentry-newusers-newusers' => '$1 എന്ന ഉപയോക്തൃ അംഗത്വം സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു',
'logentry-newusers-create' => '$1 എന്ന ഉപയോക്തൃ അംഗത്വം സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു',
'logentry-newusers-create2' => '$3 എന്ന ഉപയോക്തൃ അംഗത്വം $1 സൃഷ്ടിച്ചിരിക്കുന്നു',
+'logentry-newusers-byemail' => '$3 എന്ന ഉപയോക്തൃ അംഗത്വം $1 സൃഷ്ടിച്ചിരിക്കുന്നു, രഹസ്യവാക്ക് ഇമെയിൽ വഴി അയച്ചു',
'logentry-newusers-autocreate' => '$1 എന്ന അംഗത്വം സ്വയം സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു',
-'newuserlog-byemail' => 'രഹസ്യവാക്ക് ഇ-മെയിൽ വഴി അയച്ചിരിക്കുന്നു',
'logentry-rights-rights' => '$3 എന്ന ഉപയോക്താവിന്റെ സംഘ അംഗത്വം $1, $4 എന്നതിൽ നിന്നു $5 എന്നതിലേക്കു മാറ്റിയിരിക്കുന്നു',
'logentry-rights-rights-legacy' => '$3 എന്ന ഉപയോക്താവിന്റെ സംഘ അംഗത്വം $1 മാറ്റിയിരിക്കുന്നു',
'logentry-rights-autopromote' => '$1 എന്ന ഉപയോക്താവ് $4 എന്നതിൽ നിന്നും $5 എന്നതിലേയ്ക്ക് സ്വയം ഉയർത്തിയിരിക്കുന്നു',
'api-error-ok-but-empty' => 'ആന്തരിക പിഴവ്: സെർവറിൽ നിന്ന് പ്രതികരണമൊന്നും ലഭിക്കുന്നില്ല.',
'api-error-overwrite' => 'നിലവിലുള്ള പ്രമാണത്തിന്റെ മുകളിൽ സ്ഥാപിക്കൽ അനുവദിച്ചിട്ടില്ല.',
'api-error-stashfailed' => 'ആന്തരിക പിഴവ്: പ്രമാണം താത്കാലികമായി സംഭരിക്കുന്നതിൽ സെർവർ പരാജയപ്പെട്ടു.',
+'api-error-publishfailed' => 'ആന്തരിക പിഴവ്: താത്കാലിക പ്രമാണം പ്രസിദ്ധീകരിക്കുന്നതിൽ സെർവർ പരാജയപ്പെട്ടു.',
'api-error-timeout' => 'പ്രതീക്ഷിക്കപ്പെട്ട കാലാവധിക്കുള്ളിൽ സെർവർ പ്രതികരിച്ചില്ല.',
'api-error-unclassified' => 'അപരിചിതമായ പിഴവ് സംഭവിച്ചിരിക്കുന്നു',
'api-error-unknown-code' => 'അപരിചിതമായ പിഴവ്: "$1"',
'logentry-delete-restore' => '$3 хуудсыг $1 сэтгээсэн',
'revdelete-restricted' => 'системийн операторуудад тавигдсан хязгаарлалтууд',
'revdelete-unrestricted' => 'системийн операторуудаас авч хаясан хязгаарлалтууд',
-'newuserlog-byemail' => 'мэйлээр явуулсан нууц үг',
'logentry-rights-rights' => '$1 $3 дахь грүпийн гишүүнчлэлээ $4 ээс $5 руу шилжүүллээ',
'logentry-rights-rights-legacy' => '$1 $3 дэхь грүпийн гишүүнчлэлээ сольсон',
'logentry-rights-autopromote' => '$1 $4 аас $5 руу автоматаар дэвшигдлээ',
'logentry-newusers-create' => 'एक सदस्यखाते $1 तयार केले',
'logentry-newusers-create2' => '$1 ने सदस्य खाते $3 निर्मित केले आहे.',
'logentry-newusers-autocreate' => '$1 खाते स्वयमेव निर्मित झाले आहे.',
-'newuserlog-byemail' => 'परवलीचा शब्द ई-मेल मार्फत पाठविलेला आहे',
'logentry-rights-rights-legacy' => '$1 ने $3 चे ग्रुप सदस्यत्व बदलले',
'rightsnone' => '(काहीही नाही)',
'logentry-newusers-create' => 'Akaun pengguna $1 dibuka',
'logentry-newusers-create2' => 'Akaun pengguna $3 dibuka oleh $1',
'logentry-newusers-autocreate' => 'Akaun $1 dibuka secara automatik',
-'newuserlog-byemail' => 'kata laluan dihantar melalui e-mel',
'logentry-rights-rights' => '$1 menukar keahlian kumpulan untuk $3 dari $4 ke $5',
'logentry-rights-rights-legacy' => '$1 menukar keahlian kumpulan untuk $3',
'logentry-rights-autopromote' => '$1 dinaik pangkat secara automatik dari $4 ke $5',
'logentry-newusers-create' => 'Il-kont $1 ġie maħluq',
'logentry-newusers-create2' => 'Il-kont $3 ġie maħluq minn $1',
'logentry-newusers-autocreate' => 'Il-kont $1 ġie maħluq awtomatikament',
-'newuserlog-byemail' => "il-password intbagħtet permezz ta' posta elettronika",
'logentry-rights-rights' => "$1 biddel is-sħubija ta' $3 minn $4 għal $5",
'logentry-rights-rights-legacy' => "$1 biddel is-sħubija fil-gruppi ta' $3",
'logentry-rights-autopromote' => '$1 ġie awtomatikament promoss minn $4 għal $5',
# New logging system
'revdelete-restricted' => 'အက်ဒမင်များသို့ ကန့်သတ်ချက်များ သက်ရောက်ရန်',
'revdelete-unrestricted' => 'အက်ဒမင်များအတွက် ကန့်သတ်ချက်များကို ဖယ်ရှားရန်',
-'newuserlog-byemail' => 'စကားဝှက်ကို အီးမေးဖြင့် ပို့လိုက်ပါပြီ။',
'rightsnone' => '(ဘာမှမရှိ)',
# API errors
'htmlform-selectorother-other' => 'Лия',
# New logging system
-'newuserlog-byemail' => 'салава валот кучозь е-сёрмасо',
'rightsnone' => '(арасть)',
# Feedback
'gotaccount' => 'Har du allerede en konto? $1.',
'gotaccountlink' => 'Logg inn',
'userlogin-resetlink' => 'Har du glemt påloggingsdetaljene dine?',
-'createaccountmail' => 'per e-post',
+'createaccountmail' => 'Bruk et midlertidig tilfeldig passord, og send det til e-postadressen nedenfor',
'createaccountreason' => 'Årsak:',
'badretype' => 'Passordene samsvarte ikke.',
'userexists' => 'Brukernavnet er allerede i bruk.
'specialpages-group-highuse' => 'Ofte brukte sider',
'specialpages-group-pages' => 'Sidelister',
'specialpages-group-pagetools' => 'Sideverktøy',
-'specialpages-group-wiki' => 'Informasjon og verktøy for wikien',
+'specialpages-group-wiki' => 'Data og verktøy',
'specialpages-group-redirects' => 'Omdirigerende spesialsider',
'specialpages-group-spam' => 'Spamverktøy',
'logentry-newusers-newusers' => 'Kontoen $1 ble opprettet',
'logentry-newusers-create' => 'Kontoen $1 ble opprettet',
'logentry-newusers-create2' => 'Kontoen $3 ble opprettet av $1',
+'logentry-newusers-byemail' => 'Kontoen $3 ble opprettet av $1 og passordet sendt med e-post',
'logentry-newusers-autocreate' => 'Konto $1 ble opprettet automatisk',
-'newuserlog-byemail' => 'passord sendt på e-post',
'logentry-rights-rights' => '$1 endret gruppemedlemskap for $3 fra $4 til $5',
'logentry-rights-rights-legacy' => '$1 endret gruppemedlemskap for $3',
'logentry-rights-autopromote' => '$1 ble automatisk forfremmet fra $4 til $5',
'api-error-ok-but-empty' => 'Intern feil: ingen svar fra server.',
'api-error-overwrite' => 'Det er ikke tillatt å overskrive eksisterende filer.',
'api-error-stashfailed' => 'Internal error: tjeneren greide ikke å lagre midlertidig fil.',
+'api-error-publishfailed' => 'Intern feil: Tjeneren greide ikke å publisere midlertidig fil.',
'api-error-timeout' => 'Serveren svarte ikke innenfor forventet tid.',
'api-error-unclassified' => 'En ukjent feil har oppstått',
'api-error-unknown-code' => 'Ukjent feil: "$1"',
'noeditsection' => array( '0', '__KEENÄNNERNLINK__', '__ABSCHNITTE_NICHT_BEARBEITEN__', '__NOEDITSECTION__' ),
'currentmonth' => array( '1', 'AKTMAAND', 'JETZIGER_MONAT', 'JETZIGER_MONAT_2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
'currentmonthname' => array( '1', 'AKTMAANDNAAM', 'JETZIGER_MONATSNAME', 'CURRENTMONTHNAME' ),
- 'currentmonthnamegen' => array( '1', 'AKTMAANDNAAMGEN', 'JETZIGER_MONATSNAME_GENITIV', 'CURRENTMONTHNAMEGEN' ),
- 'currentday' => array( '1', 'AKTDAG', 'JETZIGER_KALENDERTAG', 'CURRENTDAY' ),
+ 'currentmonthnamegen' => array( '1', 'AKTMAANDNAAMGEN', 'JETZIGER_MONATSNAME_GENITIV', 'JETZIGER_MONATSNAME_GEN', 'CURRENTMONTHNAMEGEN' ),
+ 'currentday' => array( '1', 'AKTDAG', 'JETZIGER_KALENDERTAG', 'JETZIGER_TAG', 'CURRENTDAY' ),
'currentdayname' => array( '1', 'AKTDAGNAAM', 'JETZIGER_WOCHENTAG', 'CURRENTDAYNAME' ),
'currentyear' => array( '1', 'AKTJOHR', 'JETZIGES_JAHR', 'CURRENTYEAR' ),
'currenttime' => array( '1', 'AKTTIED', 'JETZIGE_UHRZEIT', 'CURRENTTIME' ),
# New logging system
'revdelete-restricted' => 'Inschränkungen för Administraters instellt',
'revdelete-unrestricted' => 'Inschränkungen för Administraters rutnahmen',
-'newuserlog-byemail' => 'Passwoord per E-Mail toschickt',
'rightsnone' => '(kene)',
);
<?php
-/** Nedersaksies (Nedersaksies)
+/** Low Saxon (Netherlands) (Nedersaksies)
*
* See MessagesQqq.php for message documentation incl. usage of parameters
* To improve a translation please visit http://translatewiki.net
'logentry-newusers-create' => '$1 hef n gebruker an-emaakt',
'logentry-newusers-create2' => '$1 hef n gebruker $3 an-emaakt',
'logentry-newusers-autocreate' => 'De gebruker $1 is automaties an-emaakt',
-'newuserlog-byemail' => 'wachtwoord is verstuurd via de netpost',
'rightsnone' => '(gien)',
# Feedback
'revdelete-restricted' => 'प्रबन्धकहरुमाथि सीमितता लागू गरियो',
'revdelete-unrestricted' => 'प्रवन्धककोलागि निषेधहरु हटाइयो ।',
'logentry-move-move' => '$1 द्वारा $3 पृष्ठलाई $4 मा सारियो',
-'newuserlog-byemail' => 'इ मेलबाट पठाइएको प्रवेशशव्द',
'rightsnone' => '(कुनैपनि होइन)',
# Feedback
'img_middle' => array( '1', 'midden', 'middle' ),
'img_bottom' => array( '1', 'beneden', 'bottom' ),
'img_text_bottom' => array( '1', 'tekst-beneden', 'text-bottom' ),
- 'img_link' => array( '1', 'verwijzing=$1', 'link=$1' ),
+ 'img_link' => array( '1', 'koppeling=$1', 'verwijzing=$1', 'link=$1' ),
'sitename' => array( '1', 'SITENAAM', 'SITENAME' ),
'ns' => array( '0', 'NR:', 'NS:' ),
'nse' => array( '0', 'NRE:', 'NSE:' ),
'displaytitle' => array( '1', 'WEERGEGEVENTITEL', 'TOONTITEL', 'DISPLAYTITLE' ),
'rawsuffix' => array( '1', 'V', 'R' ),
'newsectionlink' => array( '1', '__NIEUWESECTIELINK__', '__NIEUWESECTIEKOPPELING__', '__NEWSECTIONLINK__' ),
- 'nonewsectionlink' => array( '1', '__GEENNIEUWESECTIELINK__', '__GEENNIEUWKOPJEVERWIJZING__', '__NONEWSECTIONLINK__' ),
+ 'nonewsectionlink' => array( '1', '__GEENNIEUWKOPJEKOPPELING__', '__GEENNIEUWESECTIELINK__', '__GEENNIEUWKOPJEVERWIJZING__', '__NONEWSECTIONLINK__' ),
'currentversion' => array( '1', 'HUIDIGEVERSIE', 'CURRENTVERSION' ),
'urlencode' => array( '0', 'URLCODEREN', 'CODEERURL', 'URLENCODE:' ),
'anchorencode' => array( '0', 'ANKERCODEREN', 'CODEERANKER', 'ANCHORENCODE' ),
'gotaccount' => 'Hebt u al een gebruikersnaam? $1.',
'gotaccountlink' => 'Aanmelden',
'userlogin-resetlink' => 'Bent u uw aanmeldgegevens vergeten?',
-'createaccountmail' => 'Per e-mail',
+'createaccountmail' => 'Gebruik een tijdelijk willekeurig wachtwoord en stuur het naar het e-mailadres dat hieronder is vermeld',
'createaccountreason' => 'Reden:',
'badretype' => 'De ingevoerde wachtwoorden verschillen van elkaar.',
'userexists' => 'De gekozen gebruikersnaam is al in gebruik.
# Special:ActiveUsers
'activeusers' => 'Aanwezige gebruikers',
'activeusers-intro' => 'Dit is een lijst met gebruikers die enige activiteit hebben laten zien in de afgelopen {{PLURAL:$1|dag|$1 dagen}}.',
-'activeusers-count' => '$1 recente {{PLURAL:$1|bewerking|bewerkingen}} in de {{PLURAL:$3|afgelopen dag|laatste $3 dagen}}',
+'activeusers-count' => '$1 recente {{PLURAL:$1|handeling|handelingen}} in de {{PLURAL:$3|afgelopen dag|laatste $3 dagen}}',
'activeusers-from' => 'Gebruikers worden weergegeven vanaf:',
'activeusers-hidebots' => 'Bots verbergen',
'activeusers-hidesysops' => 'Beheerders verbergen',
'specialpages-group-highuse' => "Veelgebruikte pagina's",
'specialpages-group-pages' => 'Paginalijsten',
'specialpages-group-pagetools' => 'Paginahulpmiddelen',
-'specialpages-group-wiki' => 'Wikigegevens en -hulpmiddelen',
+'specialpages-group-wiki' => 'Gegevens en -hulpmiddelen',
'specialpages-group-redirects' => "Doorverwijzende speciale pagina's",
'specialpages-group-spam' => 'Spamhulpmiddelen',
'logentry-newusers-newusers' => 'Gebruiker $1 is aangemaakt',
'logentry-newusers-create' => 'Gebruiker $1 is aangemaakt',
'logentry-newusers-create2' => 'Gebruiker $3 is aangemaakt door $1',
+'logentry-newusers-byemail' => 'Gebruiker $3 is aangemaakt door $1 en het wachtwoord is per e-mail verzonden',
'logentry-newusers-autocreate' => 'De gebruiker $1 is automatisch aangemaakt',
-'newuserlog-byemail' => 'wachtwoord is verzonden per e-mail',
'logentry-rights-rights' => '$1 heeft groepslidmaatschap voor $3 gewijzigd van $4 naar $5',
'logentry-rights-rights-legacy' => '$1 heeft groepslidmaatschap voor $3 gewijzigd',
'logentry-rights-autopromote' => '$1 is automatisch gepromoveerd van $4 naar $5',
'api-error-ok-but-empty' => 'Interne fout: de server heeft geen gegevens teruggeleverd.',
'api-error-overwrite' => 'Het overschrijven van een bestand bestand is niet toegestaan.',
'api-error-stashfailed' => 'Interne fout: de server kon het tijdelijke bestand niet opslaan.',
+'api-error-publishfailed' => 'Interne fout: de server kon het tijdelijke bestand niet publiceren.',
'api-error-timeout' => 'De server heeft niet binnen de verwachte tijd geantwoord.',
'api-error-unclassified' => 'Er is een onbekende fout opgetreden',
'api-error-unknown-code' => 'Interne fout: "$1"',
'category-empty' => "''Kategorien inneheld for tida ingen sider eller mediefiler.''",
'hidden-categories' => '{{PLURAL:$1|Gøymd kategori|Gøymde kategoriar}}',
'hidden-category-category' => 'Gøymde kategoriar',
-'category-subcat-count' => 'Kategorien har {{PLURAL:$2|berre den følgjande underkategorien|{{PLURAL:$1|den følgjande underkategorien|dei følgjande $1 underkategoriane}}, av totalt $2}}.',
-'category-subcat-count-limited' => 'Denne kategorien har {{PLURAL:$1|den følgjande underkategorien|dei følgjande $1 underkategoriane}}.',
-'category-article-count' => 'Kategorien inneheld {{PLURAL:$2|berre den følgjande sida|dei følgjande {{PLURAL:$1|side|$1 sidene}}, av totalt $2}}.',
+'category-subcat-count' => 'Kategorien har {{PLURAL:$2|berre denne underkategorien|{{PLURAL:$1|denne underkategorien|desse $1 underkategoriane}}, av totalt $2}}.',
+'category-subcat-count-limited' => 'Kategorien har {{PLURAL:$1|denne underkategorien|desse $1 underkategoriane}}.',
+'category-article-count' => 'Kategorien inneheld {{PLURAL:$2|berre denne sida|{{PLURAL:$1|denne sida|desse $1 sidene}}, av totalt $2}}.',
'category-article-count-limited' => 'Følgjande {{PLURAL:$1|side|$1 sider}} er i denne kategorien.',
'category-file-count' => 'Kategorien inneheld {{PLURAL:$2|berre den følgjande fila|dei følgjande {{PLURAL:$1|fil|$1 filene}}, av totalt $2}}.',
'category-file-count-limited' => 'Følgjande {{PLURAL:$1|fil|$1 filer}} er i denne kategorien.',
'gotaccount' => "Har du ein brukarkonto? '''$1'''.",
'gotaccountlink' => 'Logg inn',
'userlogin-resetlink' => 'Har du gløymd påloggingsopplysingane dine?',
-'createaccountmail' => 'over e-post',
+'createaccountmail' => 'Bruk eit mellombels tilfeldig passord og send det til e-postadressa som er oppgjeven under',
'createaccountreason' => 'Årsak:',
'badretype' => 'Passorda du skreiv inn er ikkje like.',
'userexists' => 'Brukarnamnet er alt i bruk. Vel eit anna brukarnamn.',
'''LEGG ALDRI INN MATERIALE SOM ANDRE HAR OPPHAVSRETT TIL UTAN LØYVE FRÅ DEI!'''",
'longpageerror' => "'''Feil: Teksten du sende inn er {{PLURAL:$1|éin kilobyte|$1 kilobyte}} stor, noko som er større enn øvstegrensa på {{PLURAL:$2|éin kilobyte|$2 kilobyte}}.''' Han kan difor ikkje lagrast.",
-'readonlywarning' => "'''ÅTVARING: Databasen er skriveverna på grunn av vedlikehald, så du kan ikkje lagre endringane dine akkurat no. Det kan vera lurt å kopiere teksten din til ei tekstfil, så du kan lagre han her seinare.'''
+'readonlywarning' => "'''ÅTVARING: Databasen er skriveverna på grunn av vedlikehald, så du kan ikkje lagre endringane dine akkurat no. Det kan vera lurt å kopiere teksten din til ei tekstfil, så du kan lagre han her seinare.'''
-Systemadministratoren som låste databasen gav følgjande årsak: $1",
+Systemadministratoren som låste databasen gav denne årsaka: $1",
'protectedpagewarning' => "'''ÅTVARING: Denne sida er verna, slik at berre administratorar kan endra henne.'''
Det siste loggelementet er oppgjeve under som referanse:",
'semiprotectedpagewarning' => "'''Merk:''' Denne sida er verna slik at berre registrerte brukarar kan endre henne.
'ntransclusions' => 'brukt på $1 {{PLURAL:$1|side|sider}}',
'specialpage-empty' => 'Det er ingen resultat for denne rapporten.',
'lonelypages' => 'Foreldrelause sider',
-'lonelypagestext' => 'Følgjande sider er ikkje lenkja til på andre sider på {{SITENAME}}.',
+'lonelypagestext' => 'Desse sidene er ikkje lenkja til eller inkluderte på andre sider på {{SITENAME}}.',
'uncategorizedpages' => 'Ukategoriserte sider',
'uncategorizedcategories' => 'Ukategoriserte kategoriar',
'uncategorizedimages' => 'Ukategoriserte filer',
# Special:ActiveUsers
'activeusers' => 'Liste over aktive brukarar',
'activeusers-intro' => 'Dette er ei liste over brukarar som har hatt ei eller anna form for aktivitet innanfor {{PLURAL:$1|den siste dagen|dei siste dagane}}.',
-'activeusers-count' => '{{PLURAL:$1|Éi endring|$1 endringar}} {{PLURAL:$3|det siste døgeret|dei siste $3 døgra}}',
+'activeusers-count' => '{{PLURAL:$1|Éi handling|$1 handlingar}} {{PLURAL:$3|det siste døgeret|dei siste $3 døgra}}',
'activeusers-from' => 'Vis brukarar frå og med:',
'activeusers-hidebots' => 'Skjul botar',
'activeusers-hidesysops' => 'Skjul administratorar',
'blocklist-tempblocks' => 'Gøym mellombelse blokkeringar',
'blocklist-addressblocks' => 'Gøym einskilde IP-blokkeringar',
'blocklist-rangeblocks' => 'Gøym intervallblokkeringar',
-'blocklist-timestamp' => 'Tidsmerkje',
+'blocklist-timestamp' => 'Tidsmerke',
'blocklist-target' => 'Mål',
'blocklist-expiry' => 'Endar',
'blocklist-by' => 'Blokkerande admin',
'allmessages' => 'Systemmeldingar',
'allmessagesname' => 'Namn',
'allmessagesdefault' => 'Standardtekst',
-'allmessagescurrent' => 'Noverande tekst',
+'allmessagescurrent' => 'Gjeldande meldingstekst',
'allmessagestext' => 'Dette er ei liste over systemmeldingar i MediaWiki-namnerommet.
Vitja [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] og [//translatewiki.net translatewiki.net] om du ynskjer å bidra til den generelle omsetjinga av MediaWiki.',
'allmessagesnotsupportedDB' => "Denne sida kan ein ikkje bruka fordi «'''\$wgUseDatabaseMessages'''» er slått av.",
'specialpages-group-highuse' => 'Mykje brukte sider',
'specialpages-group-pages' => 'Sidelister',
'specialpages-group-pagetools' => 'Sideverktøy',
-'specialpages-group-wiki' => 'Informasjon og verktøy for wikien',
+'specialpages-group-wiki' => 'Data og verktøy',
'specialpages-group-redirects' => 'Omdirigerande spesialsider',
'specialpages-group-spam' => 'Spamverktøy',
'logentry-newusers-newusers' => 'Brukarkontoen $1 vart oppretta',
'logentry-newusers-create' => 'Brukarkontoen $1 vart oppretta',
'logentry-newusers-create2' => 'Brukarkontoen $3 vart oppretta av $1',
+'logentry-newusers-byemail' => 'Brukarkontoen $3 vart oppretta av $1 og passord vart sendt med e-post',
'logentry-newusers-autocreate' => 'Kontoen $1 vart oppretta av seg sjølv',
-'newuserlog-byemail' => 'passordet er sendt på e-post',
'logentry-rights-rights' => '$1 endra gruppemedlemskap for $3 frå $4 til $5',
'logentry-rights-rights-legacy' => '$1 endra gruppemedlemskap for $3',
'logentry-rights-autopromote' => '$1 vart automatisk forfremja frå $4 til $5',
'api-error-ok-but-empty' => 'Intern feil: ikkje noko svar frå tenaren.',
'api-error-overwrite' => 'Det er ikkje tillate å skriva over filer som alt finst.',
'api-error-stashfailed' => 'Intern feil: tenaren greidde ikkje å lagra ei mellombels fil.',
+'api-error-publishfailed' => 'Intern feil: tenaren greidde ikkje å publisera mellombels fil.',
'api-error-timeout' => 'Tenaren svara ikkje innan tida svar var venta.',
'api-error-unclassified' => 'Det oppstod ein ukjend feil.',
'api-error-unknown-code' => 'Ukjend feil: «$1»',
'badtitle' => 'Títol marrit',
'badtitletext' => 'Lo títol de la pagina demandada es invalid, void o s’agís d’un títol interlenga o interprojècte mal ligat. Benlèu conten un o maites caractèrs que pòdon pas èsser utilizats dins los títols.',
'perfcached' => "Las donadas seguendas son en escondedor e benlèu, son pas a jorn. Un maximum de {{PLURAL:$1|un resultat|$1 resultats}} es disponible dins l'escondedor.",
-'perfcachedts' => "Las donadas que segon son dins l'amagatal, son doncas pas forçadament a jorn. La darrièra actualizacion data del $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
+'perfcachedts' => "Las donadas seguendas son en escondedor e benlèu, son pas a jorn. Un maximum de {{PLURAL:$1|un resultat|$1 resultats}} es disponible dins l'escondedor.",
'querypage-no-updates' => 'Las mesas a jorn per aquesta pagina son actualamnt desactivadas. Las donadas çaijós son pas mesas a jorn.',
'wrong_wfQuery_params' => 'Paramètres incorrèctes sus wfQuery()<br />
Foncion : $1<br />
'viewsource-title' => 'Veire la font de $1',
'actionthrottled' => 'Accion limitada',
'actionthrottledtext' => "Per luchar contra lo spam, l’utilizacion d'aquesta accion es limitada a un cèrt nombre de còps dins una sosta pro corta. S'avèra qu'avètz depassat aqueste limit. Ensajatz tornamai dins qualques minutas.",
-'protectedpagetext' => 'Aquesta pagina es estada protegida per empachar sa modificacion.',
+'protectedpagetext' => "Aquesta pagina es estada protegida per empachar sa modificacion o d'autras accions.",
'viewsourcetext' => 'Podètz veire e copiar lo contengut de l’article per poder trabalhar dessús :',
+'viewyourtext' => "Podètz veire e copiar lo contengut de '''vòstras modificacions''' a aquesta pagina :",
'protectedinterface' => 'Aquesta pagina provesís de tèxte d’interfàcia pel logicial e es protegida per evitar los abuses.',
'editinginterface' => "'''Atencion :''' sètz a editar una pagina utilizada per crear lo tèxte de l’interfàcia del logicial. Los cambiaments se repercutaràn, segon lo contèxte, sus totas o d'unas paginas visiblas pels autres utilizaires. Per las traduccions, vos convidam a utilizar lo projècte MediaWiki d'internacionalizacion dels messatges [//translatewiki.net/wiki/Main_Page?setlang=oc translatewiki.net].",
'sqlhidden' => '(Requèsta SQL amagada)',
'emailconfirmlink' => 'Confirmatz vòstra adreça de corrièr electronic',
'invalidemailaddress' => "Aquesta adreça de corrièr electronic pòt pas èsser acceptada perque sembla qu'a un format incorrècte.
Picatz una adreça plan formatada o daissatz aqueste camp void.",
+'emaildisabled' => 'Aqueste site pòt pas mandar de corrièls.',
'accountcreated' => 'Compte creat.',
'accountcreatedtext' => "Lo compte d'utilizaire de $1 es estat creat.",
'createaccount-title' => "Creacion d'un compte per {{SITENAME}}",
'usernamehasherror' => "Lo nom d'utilizaire pòt pas conténer de caractèrs de hachage",
'login-throttled' => 'Avètz ensajat tròp de temptativas de connexion darrièrament.
Esperatz abans d’ensajar tornamai.',
+'login-abort-generic' => 'Vòstra temptativa de connexion a fracassat',
'loginlanguagelabel' => 'Lenga: $1',
'suspicious-userlogout' => 'Vòstra demanda de desconnexion es estada refusada perque sembla qu’es estada mandada per un navigador copat o la mesa en escondedor d’un proxy.',
+# E-mail sending
+'php-mail-error-unknown' => 'Error desconeguda dins la foncion mail() de PHP.',
+
# Change password dialog
'resetpass' => 'Cambiar lo senhal del compte',
'resetpass_announce' => 'Vos sètz enregistrat amb un senhal temporari mandat per corrièr electronic. Per acabar l’enregistrament, vos cal picar un senhal novèl aicí :',
'logentry-newusers-create' => "Lo compte d'utilizaire $1 es estat creat",
'logentry-newusers-create2' => "Lo compte d'utilizaire $3 es estat creat per $1",
'logentry-newusers-autocreate' => 'Lo compte $1 es estat creat automaticament',
-'newuserlog-byemail' => 'senhal mandat per corrièr electronic',
'rightsnone' => '(cap)',
# Feedback
'logentry-newusers-create' => 'ସଭ୍ୟ ଖାତା $1 ତିଆରି କରାଗଲା',
'logentry-newusers-create2' => 'ସଭ୍ୟ ଖାତା $3ଟି $1 ଦ୍ଵାରା ତିଆରି କରାଗଲା',
'logentry-newusers-autocreate' => '$1 ଖାତାଟି ଆପେଆପେ ତିଆରିହେଲା',
-'newuserlog-byemail' => 'ଇ-ମେଲରେ ପାସୱାର୍ଡ଼ ପଠାଇଦିଆଗଲା',
'logentry-rights-rights' => '$1, $3 ପାଇଁ $4ରୁ $5କୁ ସଭ୍ୟପଦ ବଦଳାଇଲେ',
'logentry-rights-rights-legacy' => '$1, $3 ପାଇଁ ଗୋଷ୍ଠୀ ସଭ୍ୟପଦ ବଦଳାଇଛି',
'logentry-rights-autopromote' => '$1 ଆପେ ଆପେ $4ରୁ $5କୁ ଗଲେ',
'Activeusers' => array( 'АктивонАрхайджытæ' ),
'Allmessages' => array( 'ФыстæджытæИууылдæр' ),
'Allpages' => array( 'ФæрстæИууылдæр' ),
+ 'Ancientpages' => array( 'ЗæрондФæрстæ' ),
+ 'Badtitle' => array( 'Æвзæрном' ),
'Blankpage' => array( 'АфтидФарс' ),
'Block' => array( 'Блок' ),
'Blockme' => array( 'НыблокМæКæн' ),
'Confirmemail' => array( 'EmailБæлвырдКæнын' ),
'Contributions' => array( 'Бавæрд' ),
'CreateAccount' => array( 'АккаунтСкæнын' ),
+ 'Deadendpages' => array( 'ХæдбарФæрстæ' ),
'DeletedContributions' => array( 'ХафтБавæрд' ),
+ 'Disambiguations' => array( 'Бирæнысаниуæгджынтæ' ),
+ 'DoubleRedirects' => array( 'ДывæрÆрвыстытæ' ),
+ 'EditWatchlist' => array( 'ЦæстдардИвын' ),
+ 'Emailuser' => array( 'АрхайæгмæEmail' ),
+ 'Export' => array( 'Экспорт' ),
+ 'Fewestrevisions' => array( 'ЦъусдæрФæлтæртæ' ),
+ 'FileDuplicateSearch' => array( 'ФайлыДубликатАгурын' ),
+ 'Filepath' => array( 'ФайлмæФæт' ),
+ 'Import' => array( 'Импорт' ),
+ 'Invalidateemail' => array( 'EmailРабæлвырдКæнын' ),
+ 'JavaScriptTest' => array( 'JavaScriptТест' ),
+ 'BlockList' => array( 'Блокты_Номхыгъд' ),
+ 'LinkSearch' => array( 'ÆрвитæнАгурын' ),
+ 'Listadmins' => array( 'РадгæстыНомхыгъд' ),
+ 'Listbots' => array( 'БоттыНомхыгъд' ),
+ 'Listfiles' => array( 'НывтыНомхыгъд' ),
+ 'Listgrouprights' => array( 'АрхайджытыБартыНомхыгъд' ),
+ 'Listredirects' => array( 'ÆрвыстытыНомхыгъд' ),
+ 'Listusers' => array( 'АрхайджытыНомхыгъд' ),
+ 'Lockdb' => array( 'РДСæхгæнын' ),
+ 'Log' => array( 'Логтæ' ),
+ 'Lonelypages' => array( 'ИунæгФæрстæ' ),
+ 'Longpages' => array( 'ДаргъФæрстæ' ),
+ 'MergeHistory' => array( 'ИсторитæБаиуКæнын' ),
+ 'MIMEsearch' => array( 'MIMEАгурын' ),
+ 'Mostcategories' => array( 'ФылдæрКатегоритæ' ),
+ 'Mostimages' => array( 'ÆппæтыАрхайдФайлтæ' ),
+ 'Mostinterwikis' => array( 'ФылдæрИнтервикитæ' ),
+ 'Mostlinked' => array( 'ФылдæрБастФæрстæ' ),
+ 'Mostlinkedcategories' => array( 'ФылдæрБастКатегоритæ' ),
+ 'Mostlinkedtemplates' => array( 'ФылдæрБастХуызæгтæ' ),
+ 'Mostrevisions' => array( 'ФылдæрФæлтæртæ' ),
+ 'Movepage' => array( 'ФарсХæссын' ),
'Mycontributions' => array( 'МæБавæрд' ),
'Mypage' => array( 'МæФарс' ),
'Mytalk' => array( 'МæНыхас' ),
'Myuploads' => array( 'МæБавгæд' ),
'Newimages' => array( 'НогФайлтæ' ),
'Newpages' => array( 'НогФæрстæ' ),
- 'Preferences' => array( 'Фадæттæ' ),
+ 'PasswordReset' => array( 'ПарольНогКæнын' ),
+ 'PermanentLink' => array( 'УдгасÆрвитæн' ),
+ 'Popularpages' => array( 'АрæхФæрстæ' ),
+ 'Preferences' => array( 'Уагæвæрдтæ' ),
+ 'Prefixindex' => array( 'РазæфтуантыИндекс' ),
+ 'Protectedpages' => array( 'ÆхгæдФæрстæ' ),
+ 'Protectedtitles' => array( 'ÆхгæдНæмттæ' ),
'Randompage' => array( 'ÆрхаугæФарс' ),
+ 'Randomredirect' => array( 'ÆрхаугæРарвыст' ),
'Recentchanges' => array( 'ФæстагИвдтытæ' ),
+ 'Recentchangeslinked' => array( 'БастИвдтытæ' ),
+ 'Revisiondelete' => array( 'ИвдХафын' ),
'Search' => array( 'Агурын' ),
+ 'Shortpages' => array( 'ЦыбырФæрстæ' ),
+ 'Specialpages' => array( 'СæрмагондФæрстæ' ),
+ 'Statistics' => array( 'Статистикæ' ),
+ 'Tags' => array( 'Тегтæ' ),
+ 'Unblock' => array( 'РаблокКæнын' ),
+ 'Uncategorizedcategories' => array( 'ÆнæКатегориКатегоритæ' ),
+ 'Uncategorizedimages' => array( 'ÆнæКатегориФайлтæ' ),
+ 'Uncategorizedpages' => array( 'ÆнæКатегориФæрстæ' ),
+ 'Uncategorizedtemplates' => array( 'ÆнæКатегориХуызæгтæ' ),
+ 'Undelete' => array( 'Рацаразын' ),
+ 'Unlockdb' => array( 'РДРаблокКæнын' ),
+ 'Unusedcategories' => array( 'ÆнæАрхайдКатегоритæ' ),
+ 'Unusedimages' => array( 'ÆнæАрхайдФайлтæ' ),
+ 'Unusedtemplates' => array( 'ÆнæАрхайдХуызæгтæ' ),
+ 'Unwatchedpages' => array( 'ÆнæЦæстдардФæрстæ' ),
+ 'Upload' => array( 'Æвгæнын' ),
+ 'Userlogin' => array( 'Бахизын' ),
+ 'Userlogout' => array( 'Рахизын' ),
+ 'Userrights' => array( 'АрхайæджыБартæ' ),
+ 'Version' => array( 'Фæлтæр' ),
+ 'Wantedcategories' => array( 'ХъæугæКатегоритæ' ),
+ 'Wantedfiles' => array( 'ХъæугæФайлтæ' ),
+ 'Wantedpages' => array( 'ХъæугæФæрстæ' ),
+ 'Wantedtemplates' => array( 'ХъæугæХуызæгтæ' ),
'Watchlist' => array( 'Цæстдард' ),
+ 'Whatlinkshere' => array( 'АрдæмЦыÆрвиты' ),
+ 'Withoutinterwiki' => array( 'ÆнæИнтервики' ),
);
$magicWords = array(
- 'redirect' => array( '0', '#РАРВЫСТ', '#перенаправление', '#перенапр', '#REDIRECT' ),
+ 'redirect' => array( '0', '#ÆРВИТÆН', '#ÆРВЫСТ', '#РАРВЫСТ', '#перенаправление', '#перенапр', '#REDIRECT' ),
+ 'notoc' => array( '0', '__ÆНÆСÆР__', '__БЕЗ_ОГЛАВЛЕНИЯ__', '__БЕЗ_ОГЛ__', '__NOTOC__' ),
+ 'nogallery' => array( '0', '__ÆНÆГАЛЕРЕЙ__', '__БЕЗ_ГАЛЕРЕИ__', '__NOGALLERY__' ),
+ 'forcetoc' => array( '0', '__СÆРТИМÆ__', '__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__', '__ОБЯЗ_ОГЛ__', '__FORCETOC__' ),
+ 'toc' => array( '0', '__СÆРТÆ__', '__ОГЛАВЛЕНИЕ__', '__ОГЛ__', '__TOC__' ),
+ 'noeditsection' => array( '0', '__ÆНÆХАЙИВЫНÆЙ__', '__БЕЗ_РЕДАКТИРОВАНИЯ_РАЗДЕЛА__', '__NOEDITSECTION__' ),
+ 'currentmonth' => array( '1', 'АЦЫМÆЙ', 'АЦЫМÆЙ2', 'ТЕКУЩИЙ_МЕСЯЦ', 'ТЕКУЩИЙ_МЕСЯЦ_2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+ 'currentmonth1' => array( '1', 'АЦЫМÆЙ1', 'ТЕКУЩИЙ_МЕСЯЦ_1', 'CURRENTMONTH1' ),
+ 'currentmonthname' => array( '1', 'АЦЫМÆЙЫНОМ', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА', 'CURRENTMONTHNAME' ),
+ 'currentmonthnamegen' => array( '1', 'АЦЫМÆЙЫНОМГУЫР', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА_РОД', 'CURRENTMONTHNAMEGEN' ),
+ 'currentmonthabbrev' => array( '1', 'АЦЫМÆЙЫНОМЦЫБ', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА_АБР', 'CURRENTMONTHABBREV' ),
+ 'currentday' => array( '1', 'АБОН', 'ТЕКУЩИЙ_ДЕНЬ', 'CURRENTDAY' ),
+ 'currentday2' => array( '1', 'АБОН2', 'ТЕКУЩИЙ_ДЕНЬ_2', 'CURRENTDAY2' ),
+ 'currentdayname' => array( '1', 'АБОНЫБОНЫНОМ', 'НАЗВАНИЕ_ТЕКУЩЕГО_ДНЯ', 'CURRENTDAYNAME' ),
+ 'currentyear' => array( '1', 'АЦЫАЗ', 'ТЕКУЩИЙ_ГОД', 'CURRENTYEAR' ),
+ 'currenttime' => array( '1', 'НЫРЫРÆСТÆГ', 'ТЕКУЩЕЕ_ВРЕМЯ', 'CURRENTTIME' ),
+ 'currenthour' => array( '1', 'НЫРЫСАХАТ', 'ТЕКУЩИЙ_ЧАС', 'CURRENTHOUR' ),
+ 'numberofpages' => array( '1', 'ФÆРСТЫНЫМÆЦ', 'КОЛИЧЕСТВО_СТРАНИЦ', 'NUMBEROFPAGES' ),
+ 'numberofarticles' => array( '1', 'УАЦТЫНЫМÆЦ', 'КОЛИЧЕСТВО_СТАТЕЙ', 'NUMBEROFARTICLES' ),
+ 'pagename' => array( '1', 'ФАРСЫНОМ', 'НАЗВАНИЕ_СТРАНИЦЫ', 'PAGENAME' ),
+ 'img_thumbnail' => array( '1', 'къаддæргонд', 'къаддæр', 'мини', 'миниатюра', 'thumbnail', 'thumb' ),
+ 'img_manualthumb' => array( '1', 'къаддæргонд=$1', 'къаддæр=$1', 'мини=$1', 'миниатюра=$1', 'thumbnail=$1', 'thumb=$1' ),
'img_right' => array( '1', 'рахиз', 'справа', 'right' ),
'img_left' => array( '1', 'галиу', 'слева', 'left' ),
+ 'img_none' => array( '1', 'æнæ', 'без', 'none' ),
+ 'img_center' => array( '1', 'астæу', 'центр', 'center', 'centre' ),
);
$linkTrail = '/^((?:[a-z]|а|æ|б|в|г|д|е|ё|ж|з|и|й|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я|“|»)+)(.*)$/sDu';
'newwindow' => '(кæны ног рудзынджы)',
'cancel' => 'Ныууадзын',
'moredotdotdot' => 'Фылдæр…',
+'morenotlisted' => 'Фылдæр æнææвдыст...',
'mypage' => 'Фарс',
'mytalk' => 'Ныхас',
'anontalk' => 'Ацы IP-адрисы тæрхон',
$specialPageAliases = array(
'Activeusers' => array( 'ਸਰਗਰਮ_ਮੈਂਬਰ' ),
+ 'Allmessages' => array( 'ਸਾਰੇ_ਸਨੇਹੇ' ),
+ 'Allpages' => array( 'ਸਾਰੇ_ਪੰਨੇ' ),
+ 'Ancientpages' => array( 'ਪੁਰਾਣੇ_ਪੰਨੇ' ),
'Badtitle' => array( 'ਖਰਾਬ_ਸਿਰਲੇਖ' ),
'Blankpage' => array( 'ਖਾਲੀ_ਪੰਨਾ' ),
'Block' => array( 'ਪਾਬੰਦੀ_ਲਾਓ', 'IP_’ਤੇ_ਪਾਬੰਦੀ_ਲਾਓ', 'ਮੈਂਬਰ_’ਤੇ_ਪਾਬੰਦੀ_ਲਾਓ' ),
+ 'Blockme' => array( 'ਮੇਰੇ_’ਤੇ_ਪਾਬੰਦੀ_ਲਾਓ' ),
+ 'Booksources' => array( 'ਕਿਤਾਬ_ਸਰੋਤ' ),
+ 'BrokenRedirects' => array( 'ਟੁੱਟੇ_ਰੀਡਿਰੈਕਟ' ),
'Categories' => array( 'ਸ਼੍ਰੇਣੀਆਂ' ),
'ChangeEmail' => array( 'ਈ-ਮੇਲ_ਬਦਲੋ' ),
'ChangePassword' => array( 'ਪਾਸਵਰਡ_ਬਦਲੋ', 'ਪਾਸਵਰਡ_ਰੀਸੈੱਟ_ਕਰੋ' ),
+ 'ComparePages' => array( 'ਪੰਨਿਆਂ_ਦੀ_ਤੁਲਨਾ_ਕਰੋ' ),
+ 'Confirmemail' => array( 'ਈ-ਮੇਲ_ਤਸਦੀਕ_ਕਰੋ' ),
'Contributions' => array( 'ਯੋਗਦਾਨ' ),
'CreateAccount' => array( 'ਖਾਤਾ_ਬਣਾਓ' ),
+ 'Deadendpages' => array( 'ਬੰਦ_ਪੰਨੇ' ),
'DeletedContributions' => array( 'ਮਿਟਾਏ_ਯੋਗਦਾਨ' ),
+ 'Disambiguations' => array( 'ਗੁੰਝਲਖੋਲ੍ਹ' ),
'DoubleRedirects' => array( 'ਦੂਹਰੇ_ਰੀਡਿਰੈਕਟ' ),
'EditWatchlist' => array( 'ਨਿਗਰਾਨੀ-ਲਿਸਟ_ਸੋਧੋ' ),
- 'Emailuser' => array( 'ਵਰਤੋਂਕਾਰ_ਨੂੰ_ਈ-ਮੇਲ' ),
+ 'Emailuser' => array( 'ਮੈਂਬਰ_ਨੂੰ_ਈ-ਮੇਲ_ਕਰੋ' ),
+ 'Export' => array( 'ਨਿਰਯਾਤ' ),
+ 'Fewestrevisions' => array( 'ਸਭ_ਤੋਂ_ਘੱਟ_ਰੀਵਿਜ਼ਨਾਂ' ),
+ 'FileDuplicateSearch' => array( 'ਨਕਲੀ_ਫ਼ਾਈਲ_ਖੋਜੋ' ),
+ 'Filepath' => array( 'ਫ਼ਾਈਲ_ਪਥ' ),
+ 'Import' => array( 'ਆਯਾਤ' ),
+ 'Invalidateemail' => array( 'ਗਲਤ_ਈ-ਮੇਲ_ਪਤਾ' ),
'JavaScriptTest' => array( 'ਜਾਵਾਸਕ੍ਰਿਪਟ_ਪਰਖ' ),
- 'Listadmins' => array( 'ਐਡਮਿਨਾਂ_ਦੀ_ਸੂਚੀ' ),
- 'Listbots' => array( 'ਬੋਟਾਂ_ਦੀ_ਲਿਸਟ' ),
- 'Listfiles' => array( 'ਫ਼ਾਈਲਾਂ_ਦੀ_ਲਿਸਟ', 'ਤਸਵੀਰਾਂ_ਦੀ_ਲਿਸਟ' ),
- 'Listredirects' => array( 'ਰੀਡਿਰੈਕਟਾਂ_ਦੀ_ਲਿਸਟ' ),
- 'Listusers' => array( 'ਵਰਤੋਂਕਾਰਾਂ_ਦੀ_ਲਿਸਟ' ),
- 'Longpages' => array( 'ਲੰਬੇ_ਸਫ਼ੇ' ),
- 'MergeHistory' => array( 'ਰਲ਼ਾਉਣ_ਦਾ_ਅਤੀਤ' ),
- 'MIMEsearch' => array( 'MIME_ਖੋਜ' ),
+ 'BlockList' => array( 'ਪਾਬੰਦੀਆਂ_ਦੀ_ਸੂਚੀ' ),
+ 'LinkSearch' => array( 'ਲਿੰਕ_ਖੋਜੋ' ),
+ 'Listadmins' => array( 'ਪ੍ਰਬੰਧਕਾਂ_ਦੀ_ਸੂਚੀ' ),
+ 'Listbots' => array( 'ਬੋਟਾਂ_ਦੀ_ਸੂਚੀ' ),
+ 'Listfiles' => array( 'ਫ਼ਾਈਲਾਂ_ਦੀ_ਸੂਚੀ' ),
+ 'Listgrouprights' => array( 'ਵਰਤੋਂਕਾਰ_ਹੱਕ_ਸੂਚੀ' ),
+ 'Listredirects' => array( 'ਰੀਡਿਰੈਕਟਾਂ_ਦੀ_ਸੂਚੀ' ),
+ 'Listusers' => array( 'ਵਰਤੋਂਕਾਰਾਂ_ਦੀ_ਸੂਚੀ' ),
+ 'Lockdb' => array( 'ਡੈਟਾਬੇਸ_’ਤੇ_ਤਾਲਾ_ਲਗਾਓ' ),
+ 'Log' => array( 'ਚਿੱਠਾ', 'ਚਿੱਠੇ' ),
+ 'Lonelypages' => array( 'ਇਕੱਲੇ_ਪੰਨੇ' ),
+ 'Longpages' => array( 'ਲੰਬੇ_ਪੰਨੇ' ),
+ 'MergeHistory' => array( 'ਰਲਾਉਣ_ਦਾ_ਅਤੀਤ' ),
+ 'MIMEsearch' => array( 'MIME_ਖੋਜੋ' ),
+ 'Mostcategories' => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਸ਼੍ਰੇਣੀਆਂ' ),
+ 'Mostimages' => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਜੁੜੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
+ 'Mostinterwikis' => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਇੰਟਰਵਿਕੀ' ),
+ 'Mostlinked' => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਜੁੜੇ_ਪੰਨੇ' ),
+ 'Mostlinkedcategories' => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਜੁੜੀਆਂ_ਸ਼੍ਰੇਣੀਆਂ' ),
+ 'Mostlinkedtemplates' => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਜੁੜੇ_ਫਰਮੇ' ),
+ 'Mostrevisions' => array( 'ਸਭ_ਤੋਂ_ਵੱਧ_ਰੀਵਿਜ਼ਨ' ),
'Movepage' => array( 'ਸਿਰਲੇਖ_ਬਦਲੋ' ),
'Mycontributions' => array( 'ਮੇਰੇ_ਯੋਗਦਾਨ' ),
+ 'Mypage' => array( 'ਮੇਰਾ_ਪੰਨਾ' ),
'Mytalk' => array( 'ਮੇਰੀ_ਚਰਚਾ' ),
'Myuploads' => array( 'ਮੇਰੇ_ਅੱਪਲੋਡ' ),
- 'Newimages' => array( 'ਨਵੀਆਂ_ਫ਼ਾਈਲਾਂ', 'ਨਵੀਆਂ_ਤਸਵੀਰਾਂ' ),
+ 'Newimages' => array( 'ਨਵੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
'Newpages' => array( 'ਨਵੇਂ_ਪੰਨੇ' ),
'PasswordReset' => array( 'ਪਾਸਵਰਡ_ਰੀਸੈੱਟ' ),
'PermanentLink' => array( 'ਪੱਕਾ_ਲਿੰਕ' ),
'Prefixindex' => array( 'ਅਗੇਤਰ_ਤਤਕਰਾ' ),
'Protectedpages' => array( 'ਸੁਰੱਖਿਅਤ_ਪੰਨੇ' ),
'Protectedtitles' => array( 'ਸੁਰੱਖਿਅਤ_ਸਿਰਲੇਖ' ),
- 'Randompage' => array( 'ਰਲ਼ਵਾਂ', 'ਰਲਵਾਂ_ਪੰਨਾ' ),
- 'Randomredirect' => array( 'ਰਲਵਾਂ_ਰੀਡਿਰੈਕਟ' ),
- 'Recentchanges' => array( 'ਤਾਜਾ_ਤਬਦੀਲੀਆਂ' ),
- 'Search' => array( 'ਖੋਜ' ),
+ 'Randompage' => array( 'ਰਲਵਾਂ_ਪੰਨਾ' ),
+ 'Randomredirect' => array( 'ਸੁਰੱਖਿਅਤ_ਰੀਡਿਰੈਕਟ' ),
+ 'Recentchanges' => array( 'ਹਾਲ_\'ਚ_ਹੋਈਆਂ_ਤਬਦੀਲੀਆਂ' ),
+ 'Recentchangeslinked' => array( 'ਜੁੜੀਆਂ_ਤਾਜ਼ਾ_ਤਬਦੀਲੀਆਂ' ),
+ 'Revisiondelete' => array( 'ਰੀਵਿਜਨ_ਮਿਟਾਓ' ),
+ 'Search' => array( 'ਖੋਜੋ' ),
'Shortpages' => array( 'ਛੋਟੇ_ਪੰਨੇ' ),
'Specialpages' => array( 'ਖਾਸ_ਪੰਨੇ' ),
- 'Statistics' => array( 'à¨\86à¨\82ਕੜੇ' ),
+ 'Statistics' => array( 'à¨\85à©°ਕੜੇ' ),
'Tags' => array( 'ਟੈਗ' ),
- 'Undelete' => array( 'ਅਣ-ਮਿਟਾਉਣ' ),
+ 'Unblock' => array( 'ਪਾਬੰਦੀ_ਹਟਾਓ' ),
+ 'Uncategorizedcategories' => array( 'ਸ਼੍ਰੇਣੀਹੀਣ_ਸ਼੍ਰੇਣੀਆਂ' ),
+ 'Uncategorizedimages' => array( 'ਸ਼੍ਰੇਣੀਹੀਣ_ਫ਼ਾਈਲਾਂ' ),
+ 'Uncategorizedpages' => array( 'ਸ਼੍ਰੇਣੀਹੀਣ_ਪੰਨੇ' ),
+ 'Uncategorizedtemplates' => array( 'ਸ਼੍ਰੇਣੀਹੀਣ_ਸਾਂਚੇ' ),
+ 'Undelete' => array( 'ਅਣ-ਹਟਾਓਣ' ),
+ 'Unlockdb' => array( 'ਡੈਟਾਬੇਸ_ਖੋਲ੍ਹੋ' ),
+ 'Unusedcategories' => array( 'ਅਣਵਰਤੀਆਂ_ਸ਼੍ਰੇਣੀਆਂ' ),
+ 'Unusedimages' => array( 'ਅਣਵਰਤੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
+ 'Unusedtemplates' => array( 'ਅਣਵਰਤੇ_ਫਰਮੇ' ),
+ 'Unwatchedpages' => array( 'ਬੇ-ਨਿਗਰਾਨ_ਪੰਨੇ' ),
'Upload' => array( 'ਅੱਪਲੋਡ' ),
'Userlogin' => array( 'ਮੈਂਬਰ_ਲਾਗਇਨ' ),
'Userlogout' => array( 'ਮੈਂਬਰ_ਲਾਗਆਊਟ' ),
+ 'Userrights' => array( 'ਮੈਂਬਰ_ਹੱਕ', 'ਪ੍ਰਬੰਧਕ_ਬਣਾਓ', 'ਬੋਟ_ਬਣਾਓ' ),
+ 'Version' => array( 'ਰੂਪ' ),
'Wantedcategories' => array( 'ਚਾਹੀਦੀਆਂ_ਸ਼੍ਰੇਣੀਆਂ' ),
'Wantedfiles' => array( 'ਚਾਹੀਦੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
+ 'Wantedpages' => array( 'ਚਾਹੀਦੇ_ਪੰਨੇ', 'ਟੁੱਟੇ_ਜੋੜ' ),
'Wantedtemplates' => array( 'ਚਾਹੀਦੇ_ਫਰਮੇ' ),
'Watchlist' => array( 'ਨਿਗਰਾਨੀ-ਲਿਸਟ' ),
+ 'Whatlinkshere' => array( 'ਕਿਹੜੇ_ਪੰਨੇ_ਇੱਥੇ_ਜੋੜਦੇ_ਹਨ' ),
'Withoutinterwiki' => array( 'ਬਿਨਾਂ_ਇੰਟਰਵਿਕੀਆਂ_ਵਾਲੇ' ),
);
+$magicWords = array(
+ 'redirect' => array( '0', '#ਰੀਡਿਰੈਕਟ', '#REDIRECT' ),
+ 'url_wiki' => array( '0', 'ਵਿਕੀ', 'WIKI' ),
+ 'defaultsort_noerror' => array( '0', 'ਗਲਤੀ_ਨਹੀਂ', 'noerror' ),
+ 'pagesincategory_all' => array( '0', 'ਸਬ', 'all' ),
+ 'pagesincategory_pages' => array( '0', 'ਪੰਨੇ', 'pages' ),
+ 'pagesincategory_subcats' => array( '0', 'ਉਪਸ਼੍ਰੇਣੀਆਂ', 'subcats' ),
+ 'pagesincategory_files' => array( '0', 'ਫ਼ਾਈਲਾਂ', 'files' ),
+);
+
$digitTransformTable = array(
'0' => '੦', # ੦
'1' => '੧', # ੧
'category-empty' => "''ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਇਸ ਵੇਲੇ ਕੋਈ ਵੀ ਪੰਨਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
'hidden-categories' => '{{PLURAL:$1|ਲੁਕਵੀਂ ਸ਼੍ਰੇਣੀ|ਲੁਕਵੀਂਆਂ ਸ਼੍ਰੇਣੀਆਂ}}',
'hidden-category-category' => 'ਲੁਕੀਆਂ ਕੈਟੇਗਰੀਆਂ',
-'category-subcat-count' => 'à¨\87ਸ ਸ਼à©\8dਰà©\87ਣà©\80 ਵਿੱà¨\9a, à¨\95à©\81ੱਲ $2 ਵਿੱà¨\9aà©\8bà¨\82, {{PLURAL:$2|ਸਿਰਫ਼ ਇਹ ਉਪਸ਼੍ਰੇਣੀ ਹੈ|ਇਹ {{PLURAL:$1|ਉਪਸ਼੍ਰੇਣੀ ਹੈ|$1 ਉਪਸ਼੍ਰੇਣੀਆਂ ਹਨ}}}}।',
+'category-subcat-count' => 'à¨\87ਸ ਸ਼à©\8dਰà©\87ਣà©\80 ਵਿੱà¨\9a, à¨\95à©\81ੱਲ $2 ਵਿੱà¨\9aà©\8bà¨\82, {{PLURAL:$2|à¨\95à©\87ਵਲ ਇਹ ਉਪਸ਼੍ਰੇਣੀ ਹੈ|ਇਹ {{PLURAL:$1|ਉਪਸ਼੍ਰੇਣੀ ਹੈ|$1 ਉਪਸ਼੍ਰੇਣੀਆਂ ਹਨ}}}}।',
'category-subcat-count-limited' => 'ਇਸ ਕੈਟੇਗਰੀ ਵਿਚ {{PLURAL:$1|ਸਬ-ਕੈਟੇਗਰੀ ਹੈ|$1 ਸਬ-ਕੈਟੇਗਰੀਆਂ ਹਨ}}।',
-'category-article-count' => '{{PLURAL:$2|à¨\87ਸ ਸ਼à©\8dਰà©\87ਣà©\80 ਵਿੱà¨\9a ਸਿਰਫ਼ ਇਹ ਪੰਨਾ ਹੈ।| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ, ਕੁੱਲ $2 ਵਿੱਚੋਂ, ਇਹ {{PLURAL:$1|ਪੰਨਾ ਹੈ|$1 ਪੰਨੇ ਹਨ}}}}।',
+'category-article-count' => '{{PLURAL:$2|à¨\87ਸ ਸ਼à©\8dਰà©\87ਣà©\80 ਵਿੱà¨\9a à¨\95à©\87ਵਲ ਇਹ ਪੰਨਾ ਹੈ।| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ, ਕੁੱਲ $2 ਵਿੱਚੋਂ, ਇਹ {{PLURAL:$1|ਪੰਨਾ ਹੈ|$1 ਪੰਨੇ ਹਨ}}}}।',
'category-article-count-limited' => 'ਮੌਜੂਦਾ ਕੈਟੇਗਰੀ ਵਿਚ ਇਹ {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ ਹਨ}}।',
-'category-file-count' => '{{PLURAL:$2|à¨\87ਸ ਸ਼à©\8dਰà©\87ਣà©\80 ਵਿੱà¨\9a ਸਿਰਫ਼ ਇਹ ਫ਼ਾਈਲ ਹੈ|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}}}।',
+'category-file-count' => '{{PLURAL:$2|à¨\87ਸ ਸ਼à©\8dਰà©\87ਣà©\80 ਵਿੱà¨\9a à¨\95à©\87ਵਲ ਇਹ ਫ਼ਾਈਲ ਹੈ|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}}}।',
'category-file-count-limited' => 'ਮੌਜੂਦਾ ਕੈਟੇਗਰੀ ਵਿਚ ਇਹ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}।',
'listingcontinuesabbrev' => 'ਜਾਰੀ',
'index-category' => 'ਤਤਕਰੇ ਵਾਲ਼ੇ ਸਫ਼ੇ',
'namespaces' => 'ਨਾਮ-ਥਾਂਵਾਂ',
'variants' => 'ਬਦਲ',
+'navigation-heading' => 'ਦਿਕਚਾਲਨ ਸੂਚੀ',
'errorpagetitle' => 'ਗਲਤੀ',
'returnto' => '$1 ’ਤੇ ਵਾਪਸ ਜਾਓ।',
'tagline' => '{{SITENAME}} ਤੋਂ',
'otherlanguages' => 'ਹੋਰ ਭਾਸ਼ਾਵਾਂ',
'redirectedfrom' => '($1 ਤੋਂ ਰੀਡਿਰੈਕਟ)',
'redirectpagesub' => 'ਰੀਡਿਰੈਕਟ ਸਫ਼ਾ',
-'lastmodifiedat' => 'à¨\87ਹ ਪੰਨਾ à¨\86à¨\96ਰà©\80 ਵਾਰ $1 ਨà©\82à©° $2 â\80\99ਤà©\87 ਬਦਲ à¨\97ਿਆ ਸੀ।',
+'lastmodifiedat' => 'à¨\87ਸ ਪੰਨਾ ਦਾ ਪਿੱà¨\9bਲਾ ਬਦਲਾਵ $1 ਨà©\82à©° $2 ਵà¨\9cà©\87 ਹà©\8bà¨\87ਆ ਸੀ।',
'viewcount' => 'ਇਹ ਸਫ਼ਾ {{PLURAL:$1|ਇੱਕ ਵਾਰ|$1 ਵਾਰ}} ਵੇਖਿਆ ਗਿਆ।',
'protectedpage' => 'ਸੁਰੱਖਿਅਤ ਪੇਜ',
'jumpto' => 'ਇਸ ’ਤੇ ਜਾਓ:',
'retrievedfrom' => '"$1" ਤੋਂ ਲਿਆ',
'youhavenewmessages' => 'ਤੁਹਾਡੇ ਲਈ $1। ($2)',
'newmessageslink' => 'ਨਵੇਂ ਸੁਨੇਹੇ',
-'newmessagesdifflink' => 'ਪਿà¨\9bਲà©\80 ਬਦਲà©\80',
+'newmessagesdifflink' => 'ਪਿੱà¨\9bਲਾ ਬਦਲਾਵ',
'youhavenewmessagesfromusers' => '{{PLURAL:$3|ਇੱਕ ਵਰਤੋਂਕਾਰ|$3 ਵਰਤੋਂਕਾਰਾਂ}} ਵੱਲੋਂ ਤੁਹਾਨੂੰ $1 ($2)।',
'youhavenewmessagesmanyusers' => 'ਕਈ ਵਰਤੋਂਕਾਰਾਂ ਵੱਲੋਂ ਤੁਹਾਨੂੰ $1 ($2)।',
'newmessageslinkplural' => '{{PLURAL:$1|ਇੱਕ ਨਵਾਂ ਸੁਨੇਹਾ|ਨਵੇਂ ਸੁਨੇਹੇ}} {{PLURAL:$1|ਹੈ|ਹਨ}}',
'nstab-main' => 'ਪੰਨਾ',
'nstab-user' => 'ਵਰਤੋਂਕਾਰ ਪੰਨੇ',
'nstab-media' => 'ਮੀਡੀਆ ਸਫ਼ਾ',
-'nstab-special' => 'à¨\96ਾਸ ਪੰਨਾ',
+'nstab-special' => 'ਵਿਸ਼à©\87ਸ਼ ਪੰਨਾ',
'nstab-project' => 'ਪਰਿਯੋਜਨਾ ਪੰਨਾ',
'nstab-image' => 'ਫ਼ਾਈਲ',
'nstab-mediawiki' => 'ਸੁਨੇਹਾ',
'viewsource' => 'ਸਰੋਤ ਵੇਖੋ',
'viewsource-title' => '$1 ਲਈ ਸਰੋਤ ਵੇਖੋ',
'actionthrottled' => 'ਕਾਰਜ ਬੰਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ',
+'actionthrottledtext' => 'ਸਪੈਮ ਦੀ ਰੋਕਥਾਮ ਲਈ, ਇਹ ਕਰੀਆ ਇਨ੍ਹੇ ਘੱਟ ਸਮੇਂ ਵਿੱਚ ਇੱਕ ਸੀਮਾ ਤੋਂ ਜਿਆਦਾ ਵਾਰ ਕਰਨ ਤੋਂ ਮਨਾਹੀ ਹੈ, ਅਤੇ ਤੁਸੀਂ ਇਸ ਸੀਮਾ ਨੂੰ ਪਾਰ ਕਰ ਚੁੱਕੇ ਹੋ।
+ਕਿਰਪਾ ਕਰਕੇ ਕੁਝ ਸਮੇਂ ਬਾਅਦ ਪੁੰਨ: ਜਤਨ ਕਰੋ।',
'protectedpagetext' => 'ਇਹ ਪੰਨੇ ਸੰਪਾਦਨ ਅਤੇ ਹੋਰ ਕੰਮ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੋਇਆ ਹੈ।',
'viewsourcetext' => 'ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ਦਾ ਸਰੋਤ ਵੇਖ ਅਤੇ ਨਕਲ ਕਰ ਸਕਦੇ ਹੋ:',
'viewyourtext' => 'ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ’ਤੇ ਕੀਤੀਆਂ "ਆਪਣੀਆਂ ਸੋਧਾਂ" ਦਾ ਸਰੋਤ ਵੇਖ ਅਤੇ ਨਕਲ ਕਰ ਸਕਦੇ ਹੋ:',
'protectedinterface' => 'ਇਹ ਪੰਨਾ ਸਾਫ਼ਟਵੇਅਰ ਇੰਟਰਫ਼ੇਸ ਦਾ ਮੂਲ ਪਾਠ ਹੈ ,ਅਤੇ ਦੁਰਵਰਤੌਂ ਤੌਂ ਬਚਾਅ ਲਈ ਰਾਖਵਾਂ ਕੀਤਾ ਗਿਆ ਹੈ।',
'editinginterface' => "'''ਚਿਤਾਵਨੀ''' ਤੁਸੀਂ ਐਸੇ ਪੰਨੇ ਨੂੰ ਬਦਲ ਰਹੇ ਹੋ ਜੋ ਸਾਫ਼ਟਵੇਅਰ ਇੰਟਰਫ਼ੇਸ ਦੇ ਮੂਲ ਪਾਠ ਲਈ ਵਰਤਿਆ ਗਿਆ ਹੈ।
ਇਸ ਪੰਨੇ ਦੇ ਬਦਲਾਅ ਦੁਸਰੇ ਵਰਤੋਂ ਕਰਣ ਵਾਲਿਆਂ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਇੰਟਰਫਲੇਸ ਦੀ ਸ਼ਕਲ ਤੇ ਅਸਰ ਪਾ ਦੇਣਗੇ।ਅਨੁਵਾਦ ਕਰਣ ਲਈ ,ਕਿਰਪਾ ਕਰਕੇ [//translatewiki.net/wiki/Main_Page?setlang=pa ਟ੍ਰਾਂਸਲੇਟਵਿਕੀ.ਨੈਟ] ਦੀ ਵਰਤੌਂ ਕਰੋ,ਇਹ ਮੀਡੀਆਵਿਕੀ ਦੀ ਸਥਾਨਕੀਕਰਣ ਯੋਜਨਾ ਹੈ।",
+'cascadeprotected' => 'ਇਹ ਪੰਨਾ ਸੁਰੱਖਿਅਤ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਨਿੱਚੇ ਲਿਖੇ {{PLURAL:$1|ਪੰਨਾ|ਪੰਨੇ}} ਦੀ ਸੁਰੱਖਿਆ-ਸੀੜੀ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ:
+$2',
'namespaceprotected' => "ਤੁਹਾਨੂੰ '''$1''' ਥਾਂ-ਨਾਮ ਵਾਲ਼ੇ ਸਫ਼ਿਆਂ ਵਿਚ ਫੇਰ-ਬਦਲ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
'customcssprotected' => 'ਤੁਹਾਨੂੰ ਇਸ CSS ਸਫ਼ੇ ਵਿਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ ਇਸ ਵਿਚ ਕਿਸੇ ਹੋਰ ਮੈਂਬਰ ਦੀਆਂ ਨਿੱਜੀ ਸੈਟਿੰਗਾਂ ਹਨ।',
'customjsprotected' => 'ਤੁਹਾਨੂੰ ਇਸ CSS ਸਫ਼ੇ ਵਿਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ ਇਸ ਵਿਚ ਕਿਸੇ ਹੋਰ ਮੈਂਬਰ ਦੀਆਂ ਨਿੱਜੀ ਸੈਟਿੰਗਾਂ ਹਨ।',
Note that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
'welcomeuser' => 'ਸੁਆਗਤ, $1!',
'welcomecreation-msg' => 'ਤੁਹਾਡਾ ਖਾਤਾ ਬਣ ਚੁੱਕਾ ਹੈ। ਆਪਣੀਆਂ [[Special:Preferences|{{SITENAME}} ਪਸੰਦਾਂ]] ਬਦਲਣੀਆਂ ਨਾ ਭੁੱਲੋ।',
-'yourname' => 'ਮà©\88à¨\82ਬਰ ਨਾਮ:',
+'yourname' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਨਾਮ:',
'yourpassword' => 'ਪਾਸਵਰਡ:',
'yourpasswordagain' => 'ਪਾਸਵਰਡ ਦੁਬਾਰਾ ਲਿਖੋ:',
'remembermypassword' => 'ਇਸ ਕੰਪਿਊਟਰ ’ਤੇ ਮੇਰਾ ਲਾਗਇਨ ਯਾਦ ਰੱਖੋ (ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾਂ}} ਲਈ)',
'password-change-forbidden' => 'ਇਸ ਵਿਕੀ ਤੇ ਤੁਸੀਂ ਪਾਸਵਰਡ ਨਹੀਂ ਬਦਲ ਸਕਦੇ।',
'login' => 'ਲਾਗ ਇਨ',
'nav-login-createaccount' => 'ਲਾਗ ਇਨ/ਖਾਤਾ ਬਣਾਓ',
-'loginprompt' => 'ਤà©\81ਹਾਨà©\82à©° {{SITENAME}} â\80\99ਤà©\87 ਲਾà¨\97à¨\87ਨ à¨\95ਰਨ ਲà¨\88 à¨\95à©\82à¨\95à©\80à¨\9c਼ ਯੋਗ ਕਰਨੇ ਜ਼ਰੂਰੀ ਹਨ।',
+'loginprompt' => 'ਤà©\81ਹਾਨà©\82à©° {{SITENAME}} â\80\99ਤà©\87 ਲਾà¨\97à¨\87ਨ à¨\95ਰਨ ਲà¨\88 à¨\95à©\82à¨\95à©\80ਸ ਯੋਗ ਕਰਨੇ ਜ਼ਰੂਰੀ ਹਨ।',
'userlogin' => 'ਲਾਗ ਇਨ/ਖਾਤਾ ਬਣਾਓ',
'userloginnocreate' => 'ਲਾਗ ਇਨ',
'logout' => 'ਲਾਗ ਆਉਟ',
# Edit pages
'summary' => 'ਸਾਰ:',
'subject' => 'ਵਿਸ਼ਾ/ਹੈੱਡਲਾਈਨ:',
-'minoredit' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fà©\80 ਬਦਲà©\80 ਹੈ',
+'minoredit' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fਾ ਬਦਲਾਵ ਹੈ',
'watchthis' => 'ਇਸ ਪੰਨੇ ’ਤੇ ਧਿਆਨ ਰੱਖੋ',
'savearticle' => 'ਪੰਨਾ ਸਾਂਭੋ',
'preview' => 'ਝਲਕ',
'showpreview' => 'ਝਲਕ ਵੇਖੋ',
'showlivepreview' => 'ਲਾਈਵ ਝਲਕ',
-'showdiff' => 'ਤਬਦà©\80ਲà©\80 ਵà©\87à¨\96à©\8b',
+'showdiff' => 'ਬਦਲਾਵ ਵਿà¨\96ਾà¨\93',
'anoneditwarning' => "'''ਚੇਤਾਵਨੀ:''' ਤੁਸੀਂ ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ ਹੈ। ਤੁਹਾਡਾ IP ਐਡਰੈੱਸ ਇਸ ਪੰਨੇ ਦੇ ਇਤਿਹਾਸ ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤਾ ਜਾਵੇਗਾ।",
'anonpreviewwarning' => "''ਤੁਸੀਂ ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ। ਤਬਦੀਲੀ ਸਾਂਭਣ ਨਾਲ਼ ਤੁਹਾਡਾ IP ਪਤਾ ਸਫ਼ੇ ਦੇ ਸੋਧ ਅਤੀਤ ਵਿਚ ਰਿਕਾਰਡ ਹੋ ਜਾਵੇਗਾ।''",
'missingsummary' => "'''ਯਾਦ-ਦਹਾਨੀ:''' ਤੁਸੀਂ ਸੋਧ ਸਾਰ ਮੁਹੱਈਆ ਨਹੀਂ ਕਰਵਾਇਆ। ਜੇ ਤੁਸੀਂ \"{{int:savearticle}}\" ਤੇ ਦੁਬਾਰਾ ਕਲਿੱਕ ਕੀਤਾ ਤਾਂ ਤੁਹਾਡਾ ਸਫ਼ਾ ਇਸਦੇ ਬਿਨਾਂ ਹੀ ਸਾਂਭਿਆ ਜਾਵੇਗਾ।",
'''ਇਹ ਹਾਲੇ ਸਾਂਭੀ ਨਹੀਂ ਗਈ ਹੈ!'''",
'updated' => '(ਅੱਪਡੇਟ)',
'note' => "'''ਨੋਟ:'''",
-'previewnote' => "'''ਯਾਦ ਰੱਖੋ ਇਹ ਕੇਵਲ ਇੱਕ ਝਲਕ ਹੈ।''' ਤੁਹਾਡੀਆਂ ਬਦਲੀਆਂ ਹਾਲੇ ਸਾਂਭੀਆਂ ਨਹੀਂ ਗਈਆਂ!",
+'previewnote' => "'''ਯਾਦ ਰੱਖੋ, ਇਹ ਕੇਵਲ ਇੱਕ ਝਲਕ ਹੈ।'''
+ਤੁਹਾਡੇ ਬਦਲਾਵ ਹੁਣੇ ਤੱਕ ਸਾਂਭੇ ਨਹੀਂ ਗਏ ਹਨ!",
'continue-editing' => 'ਸੰਪਾਦਨ ਜਾਰੀ ਰੱਖੋ',
'previewconflict' => 'ਇਹ ਝਲਕ ਲਿਖਤ ਦਾ ਓਹ ਅਕਸ ਪੇਸ਼ ਕਰਦੀ ਹੈ ਜਿਵੇਂ ਓਹ ਤੁਹਾਡੇ ਸਾਂਭੇ ਜਾਣ ਤੋਂ ਬਾਅਦ ਦਿੱਸੇਗਾ।',
'editing' => '$1 ਸੰਪਾਦਨ',
'nocreate-loggedin' => 'ਤੁਹਾਨੂੰ ਨਵੇਂ ਸਫ਼ੇ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
'permissionserrors' => 'ਅਧਿਕਾਰ ਗਲਤੀਆਂ',
'permissionserrorstext' => 'ਤੁਹਾਨੂੰ ਇੰਝ ਕਰਨ ਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ। ਹੇਠ ਦਿੱਤੇ {{PLURAL:$1|ਕਾਰਨ|ਕਾਰਨ}} ਨੇ:',
-'permissionserrorstext-withaction' => '{{PLURAL:$1|ਇਸ ਕਾਰਨ|ਇਹਨਾਂ ਕਾਰਨਾਂ}} ਕਰਕੇ ਤੁਹਾਨੂੰ $2 ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ:',
+'permissionserrorstext-withaction' => 'ਤੁਹਾਨੂੰ $2 ਦੀ ਅਨੁਮਤੀ ਨਹੀਂ ਹਨ, ਨਿੱਚੇ ਲਿਖੇ {{PLURAL:$1|ਕਾਰਨ|ਕਾਰਨਾਂ}} ਦੀ ਵਜ੍ਹਾ:',
'recreate-moveddeleted-warn' => "'''ਚਿਤਾਵਣੀ:
ਤੁਸੀਂ ਐਸਾ ਪੰਨਾ ਬਣਾ ਰਹੇ ਹੋ ਜੋ ਪਹਿਲਾਂ ਹਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।'''
# Parser/template warnings
'post-expand-template-inclusion-warning' => "'''ਖਬਰਦਾਰ:''' ਸਾਂਚਾ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਕੁਝ ਟੈਂਪਲੇਟ ਸ਼ਾਮਲ ਨਹੀਂ ਹੋਣਗੇ।",
'post-expand-template-inclusion-category' => 'ਓਹ ਪੰਨੇ ਜਿੱਥੇ ਟੈਂਪਲੇਟਾਂ ਦੇ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਅਕਾਰ ਹੱਦੋਂ ਵਧ ਗਿਆ ਹੈ',
-'post-expand-template-argument-warning' => "'''à¨\96਼ਬਰਦਾਰ:'''
+'post-expand-template-argument-warning' => "'''à¨\9aà©\87ਤਾਵਨà©\80:'''
ਇਸ ਪੰਨੇ ਤੇ ਘੱਟੋ ਘੱਟ ਇੱਕ ਐਸੀ ਸਾਂਚਾ ਬਹਿਸ ਹੈ ਜਿਸ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਅਜਿਹੀਆਂ ਬਹਿਸਾਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
'post-expand-template-argument-category' => 'ਐਸੇ ਪੰਨੇ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਸਾਂਚੇ ਦੇ ਸਁਘਟਕ ਛੁੱਟ ਗਏ ਹਨ ।',
'parser-template-loop-warning' => 'ਸਾਂਚੇ ਦਾ ਲੂਪ ਲੱਭਿਆ: [[$1]]',
'currentrevisionlink' => 'ਸਭ ਤੋ ਨਵਾਂ ਰੀਵਿਜਨ',
'cur' => 'ਮੌਜੂਦਾ',
'next' => 'ਅੱਗੇ',
-'last' => 'à¨\86à¨\96ਰà©\80',
+'last' => 'ਪਿੱà¨\9bਲਾ',
'page_first' => 'ਪਹਿਲਾਂ',
'page_last' => 'ਆਖਰੀ',
-'histlegend' => "ਫ਼ਰà¨\95 ਵੇਖੋ:
+'histlegend' => "à¨\85ੰਤਰ ਵੇਖੋ:
ਮੁਕਾਬਲਾ ਕਰਨ ਲਈ ਰੀਵਿਜਨਾਂ ਦੇ ਰੇਡੀਓ ਬਟਨਾਂ ਵਿੱਚ ਨਿਸ਼ਾਨ ਲਾਓ ਅਤੇ ਜਾਓ ਜਾਂ ਸਭ ਤੋਂ ਥੱਲੇ ਵਾਲੇ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ। <br />
ਲੈਜਅੰਡ:
-'''({{int:cur}})''' = ਨਵà©\87à¨\82 ਰà©\80ਵਿà¨\9cਨ ਨਾਲà©\8bà¨\82 ਫ਼ਰà¨\95, '''({{int:last}})''' = à¨\86à¨\96ਰà©\80 ਰà©\80ਵਿà¨\9cਨ ਨਾਲà©\8bà¨\82 ਫ਼ਰà¨\95, '''({{int:minoreditletter}})''' = à¨\9bà©\8bà¨\9fà©\80 ਸà©\8bਧ।",
+'''({{int:cur}})''' = ਨਵà©\87à¨\82 ਰà©\80ਵਿà¨\9cਨ ਨਾਲà©\8bà¨\82 à¨\85ੰਤਰ, '''({{int:last}})''' = ਪਿੱà¨\9bਲà©\80 ਰà©\80ਵਿà¨\9cਨ ਨਾਲà©\8bà¨\82 à¨\85ੰਤਰ, '''({{int:minoreditletter}})''' = à¨\9bà©\8bà¨\9fਾ ਬਦਲਾਵ।",
'history-fieldset-title' => 'ਇਤਿਹਾਸ ਨੂੰ ਬ੍ਰਾਊਜ਼ ਕਰੋ',
-'history-show-deleted' => 'ਸਿਰਫ਼ ਹਟਾਏ ਗਏ',
+'history-show-deleted' => 'à¨\95à©\87ਵਲ ਹਟਾਏ ਗਏ',
'histfirst' => 'ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਦੇ',
'histlast' => 'ਸਭ ਤੋਂ ਨਵਾਂ',
'historysize' => '($1 ਬਾਈਟ)',
'rev-suppressed-diff-view' => "ਇਸ ਫ਼ਰਕ ਵਿੱਚੋਂ ਇੱਕ ਰੀਵਿਜ਼ਨ '''ਜ਼ਬਤ''' ਕੀਤੀ ਜਾ ਚੁੱਕੀ ਹੈ।
ਤਫ਼ਸੀਲ [{{fullurl:{{#Special:Log}}/delete|
page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵੇਖੀ ਜਾ ਸਕਦੀ ਹੈ।",
-'rev-delundel' => 'ਦਿà¨\96ਾà¨\93/ਲà©\81à¨\95ਾਓ',
+'rev-delundel' => 'ਵਿà¨\96ਾà¨\93/à¨\9bà©\81ਪਾਓ',
'rev-showdeleted' => 'ਵਖਾਓ',
'revisiondelete' => 'ਰੀਵਿਜ਼ਨ ਮਿਟਾਓ/ਮਿਟਾਈ ਰੱਦ ਕਰੋ',
'revdelete-nooldid-title' => 'ਕੋਈ ਟਾਰਗੇਟ ਰੀਵਿਜ਼ਨ ਨਹੀਂ',
'compareselectedversions' => 'ਚੁਣੇ ਵਰਜਨਾਂ ਦੀ ਤੁਲਨਾ',
'showhideselectedversions' => 'ਚੁਣੇ ਰੀਵਿਜ਼ਨ ਵਖਾਓ/ਲੁਕਾਓ',
'editundo' => 'ਉਧੇੜੋ',
-'diff-multi' => '({{PLURAL:$2|ਮà©\88à¨\82ਬਰ ਦà©\80|$2 ਮà©\88à¨\82ਬਰਾà¨\82 ਦà©\80à¨\86à¨\82}} {{PLURAL:$1|ਵਿà¨\9aà¨\95ਾਰਲà©\80 ਰà©\80ਵਿà¨\9cਨ ਨਹà©\80à¨\82 ਦਿà¨\96ਾà¨\88 à¨\9cਾ ਰਹà©\80|ਵਿà¨\9aà¨\95ਾਰਲà©\80à¨\86à¨\82 $1 ਰà©\80ਵਿà¨\9c਼ਨਾਂ ਨਹੀਂ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ}})',
+'diff-multi' => '({{PLURAL:$2|ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਦà©\80|$2 ਵਰਤà©\8bà¨\82à¨\95ਾਰਾà¨\82 ਦà©\80à¨\86à¨\82}} {{PLURAL:$1|ਵਿà¨\9aà¨\95ਾਰਲà©\80 ਰà©\80ਵਿà¨\9cਨ ਨਹà©\80à¨\82 ਦਿà¨\96ਾà¨\88 à¨\9cਾ ਰਹà©\80|ਵਿà¨\9aà¨\95ਾਰਲà©\80à¨\86à¨\82 $1 ਰà©\80ਵਿà¨\9cਨਾਂ ਨਹੀਂ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ}})',
# Search results
'searchresults' => 'ਖੋਜ ਨਤੀਜੇ',
'gender-female' => 'ਔਰਤ',
'email' => 'ਈਮੇਲ',
'prefs-help-realname' => 'ਅਸਲੀ ਨਾਂ ਚੋਣਵਾਂ ਹੈ, ਅਤੇ ਜੇ ਤੁਸੀਂ ਇਹ ਦਿੱਤਾ ਹੈ ਤਾਂ ਤੁਹਾਡੇ ਕੰਮ ਵਾਸਤੇ ਗੁਣ ਦੇ ਤੌਰ ਉੱਤੇ ਵਰਤਿਆ ਜਾਵੇਗਾ।',
-'prefs-help-email' => 'ਤà©\81ਹਾਡà©\80 ਮਰà¨\9c਼à©\80 ਹà©\88 à¨\88ਮà©\87ਲ ਪਤਾ ਦਿà¨\93 à¨\9cਾà¨\82 ਨਾ ਦਿà¨\93 ਪਰ ਪਾਸਵਰਡ à¨à©\81ੱਲ à¨\9cਾਣ ਤà©\87 ਨਵਾà¨\82 ਪਾਸਵਰਡ ਹਾਸਲ à¨\95ਰਨ ਲà¨\88 à¨\87ਹ à¨\9c਼ਰੂਰੀ ਹੈ।',
+'prefs-help-email' => 'ਤà©\81ਹਾਡà©\80 ਮਰà¨\9cà©\80 ਹà©\88 à¨\88ਮà©\87ਲ ਪਤਾ ਦਿà¨\93 à¨\9cਾà¨\82 ਨਾ ਦਿà¨\93 ਪਰ ਪਾਸਵਰਡ à¨à©\81ੱਲ à¨\9cਾਣ ਤà©\87 ਨਵਾà¨\82 ਪਾਸਵਰਡ ਹਾਸਲ à¨\95ਰਨ ਲà¨\88 à¨\87ਹ à¨\9cਰੂਰੀ ਹੈ।',
'prefs-help-email-others' => 'ਤੁਸੀਂ ਇਹ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ ਕਿ ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਜਾਂ ਚਰਚਾ ਪੰਨੇ ਤੋਂ ਹੋਰ ਵਰਤੋਂਕਾਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜ ਸਕਣ?
ਜਦੋਂ ਹੋਰ ਵਰਤੋਂਕਾਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜਦੇ ਹਨ ਤਾਂ ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਜ਼ਾਹਰ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ।',
'prefs-help-email-required' => 'ਈ-ਮੇਲ ਪਤਾ ਚਾਹੀਦਾ ਹੈ।',
'action-sendemail' => 'ਈ-ਮੇਲਾਂ ਭੇਜਣ',
# Recent changes
-'nchanges' => '$1 {{PLURAL:$1|ਬਦਲੀ|
-ਬਦਲੀਆਂ}}',
-'recentchanges' => 'ਹਾਲ ਹੀ ’ਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ',
-'recentchanges-legend' => 'ਹਾਲ ਦੀਆਂ ਬਦਲੀਆਂ ਸਬੰਧੀ ਚੋਣਾਂ',
+'nchanges' => '$1 {{PLURAL:$1|ਬਦਲਾਵ}}',
+'recentchanges' => 'ਹਾਲ ’ਚ ਹੋਏ ਬਦਲਾਵ',
+'recentchanges-legend' => 'ਹਾਲ ਦੇ ਪਰਿਵਰਤਨ ਸਬੰਧੀ ਵਿਕਲਪ',
'recentchanges-summary' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹੋਈਆਂ ਸਭ ਤੋਂ ਨਵੀਆਂ ਤਬਦੀਲੀਆਂ ਇਸ ਸਫ਼ੇ ’ਤੇ ਵੇਖੋ।',
-'recentchanges-feed-description' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹਾਲ ਹੀ ਵਿਚ ਹੋਈਆਂ ਬਦਲੀਆਂ ਇਸ ਫ਼ੀਡ ’ਚ ਵੇਖੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।',
+'recentchanges-feed-description' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹਾਲ ‘ਚ ਹੋਏ ਬਦਲਾਵ ਇਸ ਫ਼ੀਡ ’ਚ ਵੇਖੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।',
'recentchanges-label-newpage' => 'ਇਹ ਸੰਪਾਦਨ ਨੇ ਨਵਾਂ ਪੰਨਾ ਬਣਾਇਆ ਹੈ',
'recentchanges-label-minor' => 'ਇਹ ਇੱਕ ਛੋਟਾ ਸੰਪਾਦਨ ਹੈ',
'recentchanges-label-bot' => 'ਇਹ ਸੰਪਾਦਨ ਬੋਟ ਵਲੋਂ ਕੀਤੀ ਗਈ ਹੈ',
'recentchanges-label-unpatrolled' => 'ਇਹ ਫੇਰ-ਬਦਲ ਹਾਲੇ ਵੇਖਿਆ ਨਹੀਂ ਗਿਆ',
'rcnote' => "$4, $5 ਤੱਕ ਆਖਰੀ {{PLURAL:$2|ਦਿਨ|'''$2''' ਦਿਨਾਂ}} ਵਿੱਚ {{PLURAL:$1|'''1''' ਬਦਲੀ ਹੋਈ ਹੈ।|'''$1''' ਬਦਲੀਆਂ ਹੋਈਆਂ ਹਨ।}}",
-'rcnotefrom' => "'''$2''' ਤੱà¨\95 ('''$1''' ਤੱà¨\95 ਦਿੱਸਦà©\80à¨\86à¨\82) ਤਬਦà©\80ਲà©\80à¨\86à¨\82 ਹੇਠ ਦਿੱਤੀਆਂ ਹਨ।",
-'rclistfrom' => '$1 ਤà©\8bà¨\82 ਸ਼à©\81ਰà©\82 à¨\95ਰà¨\95à©\87 ਨਵà©\80à¨\86à¨\82 ਬਦਲà©\80à¨\86à¨\82 ਵੇਖਾਓ',
-'rcshowhideminor' => '$1 à¨\9bà©\8bà¨\9fà©\80à¨\86à¨\82 ਬਦਲà©\80à¨\86à¨\82',
+'rcnotefrom' => "'''$2''' ਤੱà¨\95 ('''$1''' ਤੱà¨\95 ਦਿੱਸਦà©\87) ਬਦਲਾਵ ਹੇਠ ਦਿੱਤੀਆਂ ਹਨ।",
+'rclistfrom' => '$1 ਤà©\8bà¨\82 ਸ਼à©\81ਰà©\82 à¨\95ਰà¨\95à©\87 ਨਵà©\87à¨\82 ਬਦਲਾਵ ਵੇਖਾਓ',
+'rcshowhideminor' => '$1 à¨\9bà©\8bà¨\9fà©\87 ਬਦਲਾਵ',
'rcshowhidebots' => '$1 ਬੋਟ',
-'rcshowhideliu' => '$1 ਲਾà¨\97à¨\87ਨ ਹà©\8bà¨\8f ਮà©\88à¨\82ਬਰ',
+'rcshowhideliu' => '$1 ਲਾà¨\97à¨\87ਨ ਹà©\8bà¨\8f ਵਰਤà©\8bà¨\82à¨\95ਾਰਾà¨\82',
'rcshowhideanons' => '$1 ਗੁਮਨਾਮ ਵਰਤੋਂਕਾਰ',
'rcshowhidepatr' => 'ਜਾਂਚੇ ਹੋਏ ਸੰਪਾਦਨ $1',
-'rcshowhidemine' => 'ਮà©\87ਰà©\80à¨\86à¨\82 ਬਦਲà©\80à¨\86à¨\82 $1',
-'rclinks' => 'ਪਿà¨\9bਲà©\87 $2 ਦਿਨਾà¨\82 ਵਿੱà¨\9a ਹà©\8bà¨\88à¨\86à¨\82 $1 ਬਦਲà©\80à¨\86à¨\82 ਵੇਖਾਓ<br /> $3',
-'diff' => 'ਫ਼ਰà¨\95',
+'rcshowhidemine' => 'ਮà©\87ਰà©\87 ਬਦਲਾਵ $1',
+'rclinks' => 'ਪਿà¨\9bਲà©\87 $2 ਦਿਨਾà¨\82 ਵਿੱà¨\9a ਹà©\8bà¨\8f $1 ਬਦਲਾਵ ਵੇਖਾਓ<br /> $3',
+'diff' => 'à¨\85ੰਤਰ',
'hist' => 'ਇਤਿਹਾਸ',
-'hide' => 'ਲà©\81à¨\95ਾਓ',
-'show' => 'ਵਖਾਓ',
+'hide' => 'à¨\9bà©\81ਪਾਓ',
+'show' => 'ਵਿà¨\96ਾà¨\93',
'minoreditletter' => 'ਛੋ',
'newpageletter' => 'ਨ',
-'boteditletter' => 'ਬ',
+'boteditletter' => 'ਬੋ',
'rc_categories_any' => 'ਕੋਈ ਵੀ',
-'rc-enhanced-expand' => 'ਵੇਰਵਾ ਵਖਾਓ (ਜਾਵਾਸਕ੍ਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
-'rc-enhanced-hide' => 'ਵà©\87ਰਵਾ ਲà©\81à¨\95ਾਓ',
+'rc-enhanced-expand' => 'ਵà©\87ਰਵਾ ਵà©\87à¨\96ਾà¨\93 (à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f ਲà©\8bà©\9cà©\80à¨\82ਦà©\80 ਹà©\88)',
+'rc-enhanced-hide' => 'ਵà©\87ਰਵਾ à¨\9bà©\81ਪਾਓ',
# Recent changes linked
-'recentchangeslinked' => 'ਸਬੰਧਤ ਤਬਦà©\80ਲà©\80à¨\86à¨\82',
+'recentchangeslinked' => 'ਸਬੰਧਤ ਬਦਲਾਵ',
'recentchangeslinked-feed' => 'ਸਬੰਧਤ ਤਬਦੀਲੀਆਂ',
-'recentchangeslinked-toolbox' => 'ਸਬੰਧਿਤ ਬਦਲà©\80à¨\86à¨\82',
-'recentchangeslinked-title' => '"$1" ਨਾਲ ਸਬੰਧਿਤ ਤਬਦà©\80ਲà©\80à¨\86à¨\82',
-'recentchangeslinked-noresult' => 'à¨\9cà©\81à©\9cà©\87 ਪੰਨਿà¨\86à¨\82 â\80\99ਤà©\87, ਦਿੱਤà©\87 ਸਮà©\87à¨\82 â\80\99à¨\9a à¨\95à©\8bà¨\88 ਬਦਲà©\80 ਨਹੀਂ ਹੋਈ।',
-'recentchangeslinked-summary' => 'à¨\87ਹ ਸà©\82à¨\9aà©\80 à¨\87ੱà¨\95 à¨\96ਾਸ ਪੰਨà©\87 ਨਾਲ ਸਬੰਧਿਤ ਪੰਨਿà¨\86à¨\82 à¨\9cਾà¨\82 à¨\95ਿਸà©\87 à¨\96ਾਸ ਸ਼à©\8dਰà©\87ਣà©\80 ਦà©\87 ਮà©\88à¨\82ਬਰਾà¨\82 ਦà©\87 ਹਾਲ ਵਿੱà¨\9a ਹà©\8bà¨\88à¨\86à¨\82 ਬਦਲà©\80à¨\86ਂ ਨੂੰ ਦਰਸਾਂਉਦੀ ਹੈ। [[Special:Watchlist|ਤੁਹਾਡੀ ਧਿਆਨਸੂਚੀ]] ਵਿੱਚ ਮੌਜੂਦ ਪੰਨੇ ਮੋਟੇ ਅੱਖਰਾਂ ਵਿੱਚ ਦਿਖਾਈ ਦੇਣਗੇ।',
+'recentchangeslinked-toolbox' => 'ਪੰਨà©\87 ਨਾਲ ਸੰਬੰਧਿਤ ਬਦਲਾਵ',
+'recentchangeslinked-title' => '"$1" ਨਾਲ ਸਬੰਧਿਤ ਬਦਲਾਵ',
+'recentchangeslinked-noresult' => 'à¨\9cà©\81à©\9cà©\87 ਪੰਨਿà¨\86à¨\82 â\80\99ਤà©\87, ਦਿੱਤà©\87 ਸਮà©\87à¨\82 â\80\99à¨\9a à¨\95à©\8bà¨\88 ਬਦਲਾਵ ਨਹੀਂ ਹੋਈ।',
+'recentchangeslinked-summary' => 'à¨\87ਹ ਸà©\82à¨\9aà©\80 à¨\87ੱà¨\95 ਵਿਸ਼à©\87ਸ਼ ਪੰਨà©\87 ਨਾਲ ਸਬੰਧਿਤ ਪੰਨਿà¨\86à¨\82 à¨\9cਾà¨\82 à¨\95ਿਸà©\87 ਵਿਸ਼à©\87ਸ਼ ਸ਼à©\8dਰà©\87ਣà©\80 ਦà©\87 ਮà©\88à¨\82ਬਰਾà¨\82 ਦà©\87 ਹਾਲ â\80\98à¨\9a ਹà©\8bà¨\8f ਬਦਲਾਵਾਂ ਨੂੰ ਦਰਸਾਂਉਦੀ ਹੈ। [[Special:Watchlist|ਤੁਹਾਡੀ ਧਿਆਨਸੂਚੀ]] ਵਿੱਚ ਮੌਜੂਦ ਪੰਨੇ ਮੋਟੇ ਅੱਖਰਾਂ ਵਿੱਚ ਦਿਖਾਈ ਦੇਣਗੇ।',
'recentchangeslinked-page' => 'ਪੰਨੇ ਦਾ ਨਾਮ:',
-'recentchangeslinked-to' => 'à¨\87ਸਦà©\87 ਬਦਲà©\87 à¨\87ਸ ਪੰਨà©\87 ਨਾਲ à¨\9cà©\81à©\9cà©\87 ਪੰਨਿà¨\86à¨\82 ਵਿੱà¨\9a ਹà©\8bà¨\8f ਬਦਲਾà¨\85 ਦਿਖਾਓ',
+'recentchangeslinked-to' => 'à¨\87ਸਦà©\87 ਬਦਲà©\87 à¨\87ਸ ਪੰਨà©\87 ਨਾਲ à¨\9cà©\81à©\9cà©\87 ਪੰਨਿà¨\86à¨\82 ਵਿੱà¨\9a ਹà©\8bà¨\8f ਬਦਲਾà¨\85 ਵਿਖਾਓ',
# Upload
'upload' => 'ਫ਼ਾਈਲ ਅੱਪਲੋਡ ਕਰੋ',
'watchlistcontains' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ $1 {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|ਸਫ਼ੇ ਹਨ}}।',
'wlnote' => "$3, $4 ਮੁਤਾਬਕ ਆਖ਼ਰੀ {{PLURAL:$2|ਘੰਟੇ|'''$2''' ਘੰਟਿਆਂ}} ਵਿਚ {{PLURAL:
$1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ}}, ਹੇਠਾਂ ਵੇਖੋ।",
-'wlshowlast' => 'à¨\86à¨\96ਰà©\80 $1 ਦਿਨ $2 à¨\98à©°à¨\9fà©\87 $3 ਵà¨\96ਾà¨\93',
+'wlshowlast' => 'ਪਿੱà¨\9bਲà©\87 $1 à¨\98à©°à¨\9fà©\87 $2 ਦਿਨ $3 ਵà©\87à¨\96à©\8b',
'watchlist-options' => 'ਧਿਆਨਸੂਚੀ ਦੇ ਇਖਤਿਆਰ',
# Displayed when you click the "watch" button and it is in the process of watching
ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਕੋਈ ਹੋਰ ਨਾਮ ਚੁਣੋ।',
'movedto' => 'ਮੂਵ ਕੀਤਾ',
'movepage-page-moved' => 'ਸਫ਼ਾ $1 ਨੂੰ $2 ’ਤੇ ਭੇਜਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।',
-'movelogpage' => 'ਸਿਰਲà©\87à¨\96 ਬਦਲà©\80 ਦਾ ਚਿੱਠਾ',
+'movelogpage' => 'ਸਥਾਨਾà¨\82ਤਰਣ ਦਾ ਚਿੱਠਾ',
'movereason' => 'ਕਾਰਨ:',
'revertmove' => 'ਰੱਦ ਕਰੋ',
'delete_and_move' => 'ਹਟਾਓ ਅਤੇ ਮੂਵ ਕਰੋ',
'tooltip-t-print' => 'ਇਹ ਪੰਨੇ ਦਾ ਛਪਣਯੋਗ ਵਰਜਨ',
'tooltip-t-permalink' => 'ਪੰਨੇ ਦੇ ਇਸ ਰੀਵਿਜਨ ਲਈ ਪੱਕਾ ਲਿੰਕ',
'tooltip-ca-nstab-main' => 'ਸਮੱਗਰੀ ਪੰਨਾ ਵੇਖੋ',
-'tooltip-ca-nstab-user' => 'ਮà©\88à¨\82ਬਰ ਪੰਨਾ ਵੇਖੋ',
+'tooltip-ca-nstab-user' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਪੰਨਾ ਵੇਖੋ',
'tooltip-ca-nstab-media' => 'ਮੀਡਿਆ ਪੇਜ ਵੇਖੋ',
'tooltip-ca-nstab-special' => 'ਇਹ ਵਿਸ਼ੇਸ਼ ਪੰਨਾ ਹੈ, ਤੁਸੀਂ ਇਸ ਪੰਨੇ ਨੂੰ ਬਦਲ ਨਹੀਂ ਸਕਦੇ।',
'tooltip-ca-nstab-project' => 'ਪਰਿਯੋਜਨਾ ਪੰਨਾ ਵੇਖੋ',
'tooltip-ca-nstab-template' => 'ਸਾਂਚਾ ਵੇਖੋ',
'tooltip-ca-nstab-help' => 'ਮੱਦਦ ਪੇਜ ਵੇਖੋ',
'tooltip-ca-nstab-category' => 'ਸ਼੍ਰੇਣੀ ਪੰਨਾ ਵੇਖੋ',
-'tooltip-minoredit' => 'à¨\87ਸ â\80\99ਤà©\87 ਬਤà©\8cਰ à¨\9bà©\8bà¨\9fà©\80 ਬਦਲà©\80 ਨਿਸ਼ਾਨ ਲਾਓ',
+'tooltip-minoredit' => 'à¨\87ਸ â\80\99ਤà©\87 ਬਤà©\8cਰ à¨\9bà©\8bà¨\9fਾ ਬਦਲਾਵ ਨਿਸ਼ਾਨ ਲਾਓ',
'tooltip-save' => 'ਆਪਣੀਆਂ ਤਬਦੀਲੀਆਂ ਸਾਂਭੋ',
-'tooltip-preview' => 'à¨\86ਪਣà©\80 ਤਬਦà©\80ਲà©\80 ਦੀ ਝਲਕ ਵੇਖੋ, ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਵਰਤੋਂ!',
+'tooltip-preview' => 'à¨\86ਪਣà©\87 ਬਦਲਾਵ ਦੀ ਝਲਕ ਵੇਖੋ, ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਵਰਤੋਂ!',
'tooltip-diff' => 'ਤੁਹਾਡੇ ਦੁਆਰਾ ਲਿਖਤ ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਵਖਾਉਂਦਾ ਹੈ',
'tooltip-compareselectedversions' => 'ਇਸ ਪੰਨੇ ਦੇ ਦੋ ਚੁਣੇ ਹੋਏ ਸੋਧਾਂ ਵਿੱਚ ਫ਼ਰਕ ਵੇਖੋ',
'tooltip-watch' => 'ਇਸ ਪੰਨੇ ਨੂੰ ਆਪਣੀ ਧਿਆਨਸੂਚੀ ਵਿੱਚ ਪਾਓ',
'tooltip-watchlistedit-raw-submit' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਨਵੀਂ ਕਰੋ',
'tooltip-upload' => 'ਅੱਪਲੋਡ ਸਟਾਰਟ ਕਰੋ',
'tooltip-rollback' => "''ਵਾਪਸ ਮੋੜੋ'' ਇੱਕ ਹੀ ਕਲਿੱਕ ਨਾਲ ਆਖਰੀ ਯੋਗਦਾਨ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ",
-'tooltip-undo' => '"à¨\89ਧà©\87à©\9cਨਾ" à¨\87ਸ ਤਬਦà©\80ਲà©\80 ਨੂੰ ਰੱਦ ਕਰਕੇ ਸੋਧ ਫ਼ਾਰਮ ਨੂੰ ਝਲਕ ਦੇ ਸ਼ੈਲੀ ਵਿੱਚ ਦਿਖਾਉਂਦਾ ਹੈ।
-à¨\87à©°à¨\9d "ਸਾਰ" ਵਿੱà¨\9a ਤਬਦà©\80ਲà©\80 ਨਕਾਰਨ ਦਾ ਕਾਰਨ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।',
+'tooltip-undo' => '"à¨\89ਧà©\87à©\9cਨਾ" à¨\87ਸ ਬਦਲਾਵ ਨੂੰ ਰੱਦ ਕਰਕੇ ਸੋਧ ਫ਼ਾਰਮ ਨੂੰ ਝਲਕ ਦੇ ਸ਼ੈਲੀ ਵਿੱਚ ਦਿਖਾਉਂਦਾ ਹੈ।
+à¨\87à©°à¨\9d "ਸਾਰ" ਵਿੱà¨\9a ਬਦਲਾਵ ਨਕਾਰਨ ਦਾ ਕਾਰਨ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।',
'tooltip-preferences-save' => 'ਪਸੰਦਾਂ ਸਾਂਭੋ',
'tooltip-summary' => 'ਸੰਖੇਪ ਸਾਰ ਦਰਜ ਕਰੋ',
# Info page
'pageinfo-header-edits' => 'ਸੋਧਾਂ ਦਾ ਅਤੀਤ',
+'pageinfo-article-id' => 'ਪੰਨਾ ਆਈ.ਡੀ',
'pageinfo-watchers' => 'ਸਫ਼ੇ ’ਤੇ ਨਜ਼ਰ ਰੱਖਣ ਵਾਲਿਆਂ ਦੀ ਗਿਣਤੀ',
'pageinfo-edits' => 'ਕੁੱਲ ਸੋਧਾਂ',
'skinname-simple' => 'ਸੈਂਪਲ',
# Browsing diffs
-'previousdiff' => 'â\86\90 à¨\87ਸ ਤà©\8bà¨\82 ਪà©\81ਰਾਣà©\80 ਬਦਲà©\80',
-'nextdiff' => 'ਤਾà¨\9c਼ਾ ਸੰਪਾਦਨ â\86\92',
+'previousdiff' => 'â\86\90 à¨\87ਸ ਤà©\8bà¨\82 ਪà©\81ਰਾਣਾ ਬਦਲਾਵ',
+'nextdiff' => 'ਤਾਜਾ ਸੰਪਾਦਨ →',
# Media information
'thumbsize' => 'ਥੰਮਨੇਲ ਆਕਾਰ:',
'file-info-size' => '$1 × $2 ਪਿਕਸਲ, ਫ਼ਾਈਲ ਆਕਾਰ: $3, MIME ਕਿਸਮ: $4',
'file-nohires' => 'ਇਸ ਤੋਂ ਵੱਡੀ ਚਿੱਤਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
'svg-long-desc' => 'SVG ਫ਼ਾਈਲ, ਆਮ ਤੌਰ ’ਤੇ $1 × $2 ਪਿਕਸਲ, ਫ਼ਾਈਲ ਦਾ ਅਕਾਰ: $3',
-'show-big-image' => 'ਪà©\82ਰਾ ਰà©\88à¨\9c਼à©\8bਲà©\87ਸ਼ਨ',
+'show-big-image' => 'ਪੂਰਾ ਰੈਜੋਲੇਸ਼ਨ',
# Special:NewFiles
'newimages' => 'ਨਵੀਆਂ ਫ਼ਾਈਲਾਂ ਦੀ ਗੈਲਰੀ',
'watchlistedit-raw-removed' => '{{PLURAL:$1|1 title was|$1 titles were}} ਹਟਾਓ:',
# Watchlist editing tools
-'watchlisttools-view' => 'ਮà©\8cà¨\95à©\87 ਮà©\81ਤਾਬà¨\95 ਬਦਲà©\80à¨\86à¨\82 ਵੇਖੋ',
+'watchlisttools-view' => 'à¨\86ਧਾਰਿਤ ਬਦਲਾਵ ਵੇਖੋ',
'watchlisttools-edit' => 'ਧਿਆਨਸੂਚੀ ਵੇਖੋ ’ਤੇ ਸੰਪਾਦਨ ਕਰੋ',
'watchlisttools-raw' => 'ਕੱਚੀ ਧਿਆਨਸੂਚੀ ਸੰਪਾਦਨ ਕਰੋ',
$fallback = 'de';
+$namespaceNames = array(
+ NS_MEDIA => 'Medium',
+ NS_SPECIAL => 'Schbezial',
+ NS_TALK => 'Babble',
+ NS_USER => 'Benudzer',
+ NS_USER_TALK => 'Benudzer_Dischbediere',
+ NS_PROJECT_TALK => '$1_Dischbediere',
+ NS_FILE => 'Dadai',
+ NS_FILE_TALK => 'Dadai_Dischbediere',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'MediaWiki_Dischbediere',
+ NS_TEMPLATE => 'Vorlach',
+ NS_TEMPLATE_TALK => 'Vorlach_Dischbediere',
+ NS_HELP => 'Hilf',
+ NS_HELP_TALK => 'Hilf_Dischbediere',
+ NS_CATEGORY => 'Kadegorie',
+ NS_CATEGORY_TALK => 'Kadegorie_Dischbediere',
+);
+
+$namespaceAliases = array(
+ # German namespaces
+ 'Medium' => NS_MEDIA,
+ 'Spezial' => NS_SPECIAL,
+ 'Diskussion' => NS_TALK,
+ 'Benutzer' => NS_USER,
+ 'Benutzer_Diskussion' => NS_USER_TALK,
+ '$1_Diskussion' => NS_PROJECT_TALK,
+ 'Datei' => NS_FILE,
+ 'Datei_Diskussion' => NS_FILE_TALK,
+ 'MediaWiki_Diskussion' => NS_MEDIAWIKI_TALK,
+ 'Vorlage' => NS_TEMPLATE,
+ 'Vorlage_Diskussion' => NS_TEMPLATE_TALK,
+ 'Hilfe' => NS_HELP,
+ 'Hilfe_Diskussion' => NS_HELP_TALK,
+ 'Kategorie' => NS_CATEGORY,
+ 'Kategorie_Diskussion' => NS_CATEGORY_TALK,
+);
+
$messages = array(
# User preference toggles
'tog-showtoolbar' => "Werkzaich zum Bearwaide zaische (dodezu brauchd's JavaScript)",
'resetprefs' => 'Oischdellunge verwerfe',
'guesstimezone' => 'Aus em Browser iwwernemme',
'yourrealname' => 'Birscherlischer Nome:',
+'yourlanguage' => 'Schbrooch:',
'gender-unknown' => 'Ghoim gkalde',
# Groups
'group-bureaucrat' => 'Birokrade',
'group-all' => '(alle)',
-'group-bot-member' => 'Bot',
-'group-sysop-member' => 'Adminischdrador',
-'group-bureaucrat-member' => 'Birokrad',
+'group-bot-member' => '{{GENDER:$1|Bot}}',
+'group-sysop-member' => '{{GENDER:$1|Adminischdrador}}',
+'group-bureaucrat-member' => '{{GENDER:$1|Birokrad}}',
'grouppage-sysop' => '{{ns:project}}:Adminischtratore',
'rcshowhidemine' => 'Mai Bearwaidunge $1',
'rclinks' => 'Zeich die letschte $1 Ännerunge in de letschte $2 Dache<br />$3',
'diff' => 'Unnerschied',
-'hist' => 'Gschicht',
+'hist' => 'Gschichd',
'hide' => 'vaschdeggle',
'show' => 'zaische',
'minoreditletter' => 'k',
'uploadbtn' => 'Datei hochlade',
'uploadlogpage' => 'Dateie-Logbuch',
'filedesc' => 'Zommefassung',
+'fileuploadsummary' => 'Zommefassung:',
'savefile' => 'Datei schbeichere',
-'uploadedimage' => 'hot „[[$1]]“ hochglade',
+'uploadedimage' => 'hod „[[$1]]“ nuffglade',
# Lock manager
'lockmanager-notlocked' => '„$1“ hod ned uffgmachd were kenne, die isch ganed gschberd gwesd.',
* @author Holek
* @author Jwitos
* @author Kaganer
+ * @author Kaligula
* @author Karol007
* @author Lajsikonik
* @author Lampak
* @author Reedy
* @author Remedios44
* @author Remember the dot
+ * @author Rezonansowy
* @author Rzuwig
* @author Saper
* @author Sovq
'redirect' => array( '0', '#PATRZ', '#PRZEKIERUJ', '#TAM', '#REDIRECT' ),
'notoc' => array( '0', '__BEZSPISU__', '__NOTOC__' ),
'nogallery' => array( '0', '__BEZGALERII__', '__NOGALLERY__' ),
- 'forcetoc' => array( '0', '__ZESPISEM__', '__FORCETOC__' ),
+ 'forcetoc' => array( '0', '__ZESPISEM__', '__WYMUŚSPIS__', '__FORCETOC__' ),
'toc' => array( '0', '__SPIS__', '__TOC__' ),
'noeditsection' => array( '0', '__BEZEDYCJISEKCJI__', '__NOEDITSECTION__' ),
'currentday' => array( '1', 'AKTUALNYDZIEŃ', 'CURRENTDAY' ),
'gotaccount' => "Masz już konto? '''$1'''.",
'gotaccountlink' => 'Zaloguj się',
'userlogin-resetlink' => 'Zapomniałeś danych do zalogowania się?',
-'createaccountmail' => 'Wyślij hasło e-mailem',
+'createaccountmail' => 'Użyj tymczasowego hasła wygenerowanego losowo i wyślij je na podany poniżej adres e-mail',
'createaccountreason' => 'Powód',
'badretype' => 'Wprowadzone hasła różnią się między sobą.',
'userexists' => 'Wybrana przez Ciebie nazwa użytkownika jest już zajęta.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach ''domeny publicznej'' lub kompatybilnych (zobacz także $1).
'''PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!'''",
'longpageerror' => "'''Błąd! Wprowadzony przez Ciebie tekst ma {{PLURAL:$1|1 kilobajt|$1 kilobajty|$1 kilobajtów}}. Długość tekstu nie może przekraczać {{PLURAL:$2|1 kilobajt|$2 kilobajty|$2 kilobajtów}}. Tekst nie może być zapisany.'''",
-'readonlywarning' => "'''Uwaga! Baza danych została zablokowana do celów administracyjnych. W tej chwili nie można zapisać nowej wersji strony. Zapisz jej treść do pliku, używając wytnij i wklej, aby zachować na później.'''
+'readonlywarning' => "'''Uwaga! Baza danych została zablokowana do celów administracyjnych. W tej chwili nie można zapisać nowej wersji strony. Jeśli chcesz, może skopiować ją do pliku, aby móc zapisać ją później.'''
Administrator, który zablokował bazę, podał następujące wyjaśnienie: $1",
'protectedpagewarning' => "'''Uwaga! Możliwość modyfikacja tej strony została zabezpieczona. Mogą ją edytować jedynie użytkownicy z uprawnieniami administratora.'''
'linksearch-ok' => 'Szukaj',
'linksearch-text' => 'Można użyć symboli wieloznacznych jak „*.wikipedia.org”.
Wymaga podania co najmniej domeny najwyższego poziomu np. „*.org”.<br />
-Obsługiwane protokoły: <code>$1</code> (jeśli nie podano, domyślny to http://).',
+{{PLURAL:$2|Obsługiwany protokół|Obsługiwane protokoły}}: <code>$1</code> (jeśli nie podano, domyślny to http://).',
'linksearch-line' => '$1 link na stronie $2',
'linksearch-error' => 'Symbolu wieloznacznego można użyć wyłącznie na początku nazwy hosta.',
'enotif_subject_moved' => 'Strona projektu {{SITENAME}} o nazwie $1 została przeniesiona przez {{gender:$2|$2}}',
'enotif_subject_restored' => 'Strona projektu {{SITENAME}} o nazwie $1 została przywrócona przez {{gender:$2|$2}}',
'enotif_subject_changed' => 'Strona projektu {{SITENAME}} o nazwie $1 została zmieniona przez {{gender:$2|$2}}',
-'enotif_body_intro_deleted' => 'Strona projektu {{SITENAME}} o nazwie $1 została usunięta $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
+'enotif_body_intro_deleted' => 'Strona projektu {{SITENAME}} o nazwie $1 została usunięta $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz: $3',
'enotif_body_intro_created' => 'Strona projektu {{SITENAME}} o nazwie $1 została stworzona $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
'enotif_body_intro_moved' => 'Strona projektu {{SITENAME}} o nazwie $1 została przeniesiona $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
'enotif_body_intro_restored' => 'Strona projektu {{SITENAME}} o nazwie $1 została przywrócona $PAGEEDITDATE przez {{gender:$2|$2}}, zobacz aktualną wersję na: $3',
'prot_1movedto2' => 'stronę [[$1]] przeniósł do [[$2]]',
'protect-badnamespace-title' => 'Przestrzeń nazw, w której nie można zabezpieczać stron',
'protect-badnamespace-text' => 'Stron w tej przestrzeni nazw nie można zabezpieczać.',
+'protect-norestrictiontypes-text' => 'Ta strona nie może być chroniona, gdyż nie ma dla niej żadnych dostępnych typów ograniczeń.',
'protect-norestrictiontypes-title' => 'Nieblokowalna strona',
'protect-legend' => 'Potwierdź zabezpieczenie',
'protectcomment' => 'Powód',
'protect-default' => 'Dostęp mają wszyscy użytkownicy',
'protect-fallback' => 'Wymaga uprawnień „$1”',
'protect-level-autoconfirmed' => 'Blokuj nowych i niezarejestrowanych użytkowników',
-'protect-level-sysop' => 'Dostęp mają tylko administratorzy',
+'protect-level-sysop' => 'Dozwolone tylko dla administratorów',
'protect-summary-cascade' => 'dziedziczenie',
'protect-expiring' => 'wygasa $1 (UTC)',
'protect-expiring-local' => 'wygasa $1',
Pod starym tytułem zostanie umieszczona strona przekierowująca.
Możesz automatycznie zaktualizować przekierowania wskazujące na tytuł przed zmianą.
Jeśli nie wybierzesz tej opcji, upewnij się po przeniesieniu strony, czy nie powstały [[Special:DoubleRedirects|podwójne]] lub [[Special:BrokenRedirects|zerwane przekierowania]].
-Jesteś odpowiedzialny za to, by linki w dalszym ciągu pokazywały tam, gdzie powinny.
+Jesteś odpowiedzialny za to, by linki w dalszym ciągu prowadziły tam, gdzie powinny.
Strona '''nie''' zostanie przeniesiona, jeśli strona o nowej nazwie już istnieje, chyba że jest pusta lub jest przekierowaniem i ma pustą historię edycji.
To oznacza, że błędną operację zmiany nazwy można bezpiecznie odwrócić, zmieniając nową nazwę strony na poprzednią, i że nie można nadpisać istniejącej strony.
'pageinfo-magic-words' => 'Magiczne {{PLURAL:$1|słowo|słowa|słowa}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Ukryta kategoria|Ukryte kategorie|Ukryte kategorie}} ($1)',
'pageinfo-templates' => 'Wykorzystywan{{PLURAL:$1|y szablon|e szablony}} ($1)',
+'pageinfo-transclusions' => 'Dołączona na {{PLURAL:$1|stronie|stronach}} ($1)',
'pageinfo-toolboxlink' => 'Informacje o tej stronie',
'pageinfo-redirectsto' => 'Przekierowuje na',
'pageinfo-redirectsto-info' => 'informacje',
'pageinfo-protect-cascading' => 'Zabezpieczona z włączoną opcją dziedziczenia',
'pageinfo-protect-cascading-yes' => 'Tak',
'pageinfo-protect-cascading-from' => 'Zabezpieczenie dziedziczone z',
+'pageinfo-category-info' => 'Informacje o kategorii',
+'pageinfo-category-pages' => 'Liczba stron',
+'pageinfo-category-subcats' => 'Liczba podkategorii',
+'pageinfo-category-files' => 'Liczba plików',
# Skin names
'skinname-standard' => 'Standardowa',
'minutes' => '{{PLURAL:$1|$1 minuta|$1 minuty|$1 minut}}',
'hours' => '{{PLURAL:$1|$1 godzina|$1 godziny|$1 godzin}}',
'days' => '{{PLURAL:$1|$1 dzień|$1 dni}}',
+'months' => '{{PLURAL:$1|$1 miesiąc|$1 miesiące|$1 miesięcy}}',
+'years' => '{{PLURAL:$1|$1 rok|$1 lata|$1 lat}}',
'ago' => '$1 temu',
'just-now' => 'przed chwilą',
'specialpages-group-highuse' => 'Strony często używane',
'specialpages-group-pages' => 'Zestawienia stron',
'specialpages-group-pagetools' => 'Narzędzia stron',
-'specialpages-group-wiki' => 'Informacje oraz narzędzia wiki',
+'specialpages-group-wiki' => 'Informacje i narzędzia',
'specialpages-group-redirects' => 'Specjalne strony przekierowujące',
'specialpages-group-spam' => 'Narzędzia do walki ze spamem',
'logentry-delete-restore' => '$1 {{GENDER:$2|odtworzył|odtworzyła}} stronę $3',
'logentry-delete-event' => '$1 {{GENDER:$2|zmienił|zmieniła}} widoczność {{PLURAL:$5|zdarzenia|$5 zdarzeń}} w rejestrze $3, wykonano następujące operacje: $4',
'logentry-delete-revision' => '$1 {{GENDER:$2|zmienił|zmieniła}} widoczność {{PLURAL:$5|wersji|$5 wersji}} strony $3, wykonano następujące operacje: $4',
-'logentry-delete-event-legacy' => '$1 {{GENDER:$2|zmienił|zmieniła}} widoczność zdarzeń w rejestrze $3',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|zmienił|zmieniła}} widoczność zdarzeń w rejestrze strony $3',
'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|zmienił|zmieniła}} widoczność wersji strony $3',
'logentry-suppress-delete' => '$1 ukrywa stronę $3',
'logentry-suppress-event' => '$1 potajemnie zmienia widoczność {{PLURAL:$5|zdarzenia|$5 zdarzeń}} w $3, wykonano następujące operacje: $4',
'logentry-move-move-noredirect' => '$1 {{GENDER:$2|przeniósł|przeniosła}} stronę $3 na $4, bez pozostawienia przekierowania pod starym tytułem',
'logentry-move-move_redir' => '$1 {{GENDER:$2|przeniósł|przeniosła}} stronę $3 na $4 w miejsce przekierowania',
'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|przeniósł|przeniosła}} stronę $3 na $4 w miejsce przekierowania i bez pozostawienia przekierowania pod starym tytułem',
-'logentry-patrol-patrol' => '$1 {{GENDER:$2|odznaczył|odznaczyła}} wersję $4 strony $3 jako sprawdzoną',
-'logentry-patrol-patrol-auto' => '$1 automatycznie {{GENDER:$2|odznaczył|odznaczyła}} wersję $4 strony $3 jako sprawdzoną',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|oznaczył|oznaczyła}} wersję $4 strony $3 jako sprawdzoną',
+'logentry-patrol-patrol-auto' => '$1 automatycznie {{GENDER:$2|oznaczył|oznaczyła}} wersję $4 strony $3 jako sprawdzoną',
'logentry-newusers-newusers' => 'Konto użytkownika $1 zostało utworzone',
'logentry-newusers-create' => 'Konto użytkownika $1 zostało utworzone',
'logentry-newusers-create2' => 'Konto użytkownika $3 zostało utworzone przez użytkownika $1',
+'logentry-newusers-byemail' => 'Konto $3 zostało utworzone przez użytkownika $1, hasło wysłano e-mailem',
'logentry-newusers-autocreate' => '$1 automatycznie tworzy konto użytkownika',
-'newuserlog-byemail' => 'hasło zostało wysłane e‐mailem',
'logentry-rights-rights' => '$1 {{GENDER:$2|zmienił|zmieniła}} przynależność $3 do grup ($4 → $5)',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|zmienił|zmieniła}} przynależność $3 do grup',
'logentry-rights-autopromote' => '$1 automatycznie {{GENDER:$2|zmienił|zmieniła}} przynależność ($4 → $5)',
'api-error-ok-but-empty' => 'Błąd wewnętrzny – brak odpowiedzi od serwera.',
'api-error-overwrite' => 'Nadpisanie istniejącego pliku nie jest dopuszczalne.',
'api-error-stashfailed' => 'Błąd wewnętrzny – serwer nie mógł zapisać pliku tymczasowego.',
+'api-error-publishfailed' => 'Błąd wewnętrzny: serwer nie mógł zapisać pliku tymczasowego.',
'api-error-timeout' => 'Serwer nie odpowiedział w oczekiwanym czasie.',
'api-error-unclassified' => 'Wystąpił nieznany błąd',
'api-error-unknown-code' => 'Błąd nieznany – „$1”',
'logentry-newusers-create' => "Ël cont utent $1 a l'é stàit creà",
'logentry-newusers-create2' => "Ël cont utent $3 a l'é stàit creà da $1",
'logentry-newusers-autocreate' => "Ël cont $1 a l'é stàit creà an automàtich",
-'newuserlog-byemail' => 'ciav spedìa për pòsta eletrònica',
'logentry-rights-rights' => "$1 a l'ha tramudà l'apartenesa a la partìa për $3 da $4 a $5",
'logentry-rights-rights-legacy' => "$1 a l'ha tramudà l'apartenensa a la partìa për $3",
'logentry-rights-autopromote' => "$1 a l'é stàit automaticament promovù da $4 a $5",
'logentry-newusers-create' => '$1 {{جنس:$2|بنایا}} اک ورتن والا کھاتہ',
'logentry-newusers-create2' => '$1 {{جنس:$2|بنایا}} {{جنس:$4|اک ورتن کھاتہ}} $3',
'logentry-newusers-autocreate' => 'کھاتہ $1 اپنے آپ ای {{جنس:$2|بنایا گیا}} بنایا گیا۔',
-'newuserlog-byemail' => 'کنجی ای-میل راہ پیج دتی گئی۔',
'rightsnone' => '(کوئی وی نئیں)',
# Feedback
# New logging system
'revdelete-restricted' => 'ensadinnais arāikinsenins per perwaldītajans',
'revdelete-unrestricted' => 'āupausinais arāikinsenins per perwaldītajans',
-'newuserlog-byemail' => 'kliptaswīrds tengīntan pra e-mail',
'rightsnone' => '(nisātausna)',
);
'vector-action-addsection' => 'سرليکونه ورګډول',
'vector-action-delete' => 'ړنګول',
'vector-action-move' => 'لېږدول',
-'vector-action-protect' => 'پروژه',
+'vector-action-protect' => 'ژغورل',
'vector-action-undelete' => 'ناړنګول',
'vector-action-unprotect' => 'ژغورنه بدلول',
'vector-view-create' => 'جوړول',
'gotaccount' => 'آيا وار دمخې يو ګڼون لری؟ $1.',
'gotaccountlink' => 'ننوتل',
'userlogin-resetlink' => 'د ننوتلو مالومات مو هېر شوي؟',
-'createaccountmail' => 'د برېښليک له مخې',
+'createaccountmail' => 'يو لنډمهاله ناټاکلی پټنوم کارول او په لاندې ورکړل شوې برېښليک پته کې ورلېږل',
'createaccountreason' => 'سبب:',
'badretype' => 'دا پټنوم چې تاسې ليکلی د مخکني پټنوم سره ورته نه دی.',
'userexists' => 'کوم کارن نوم چې تاسې ورکړی هغه بل چا کارولی.
'logentry-newusers-newusers' => 'د $1 کارن ګڼون جوړ شو',
'logentry-newusers-create' => 'د $1 کارن ګڼون جوړ شو',
'logentry-newusers-autocreate' => 'د $1 ګڼون په اتوماتيک ډول جوړ شو',
-'newuserlog-byemail' => 'پټنوم مو برېښليک ته درولېږه',
'rightsnone' => '(هېڅ)',
# Feedback
'Mytalk' => array( 'Minha_discussão' ),
'Newimages' => array( 'Ficheiros_novos', 'Imagens_novas', 'Arquivos_novos' ),
'Newpages' => array( 'Páginas_novas', 'Artigos_novos' ),
+ 'PermanentLink' => array( 'Ligação_permanente', 'Link_permanente' ),
'Popularpages' => array( 'Páginas_populares', 'Artigos_populares' ),
'Preferences' => array( 'Preferências' ),
'Prefixindex' => array( 'Índice_por_prefixo', 'Índice_de_prefixo' ),
'action-suppressionlog' => 'ver este registo privado',
'action-block' => 'impedir este utilizador de editar',
'action-protect' => 'alterar os níveis de protecção desta página',
-'action-rollback' => 'Reverter rapidamente as edições do último utilizador que editou uma dada página',
+'action-rollback' => 'reverter rapidamente as edições do último utilizador que editou uma dada página',
'action-import' => 'importar esta página a partir de outra wiki',
'action-importupload' => 'importar esta página a partir de um ficheiro xml',
'action-patrol' => 'marcar as edições de outros utilizadores como patrulhadas',
'protect-summary-cascade' => 'em cascata',
'protect-expiring' => 'expira a $1 (UTC)',
'protect-expiring-local' => 'expira a $1',
-'protect-expiry-indefinite' => 'tempo indefinido',
+'protect-expiry-indefinite' => 'indefinidamente',
'protect-cascade' => 'Proteja quaisquer páginas que estejam incluídas nesta (protecção em cascata)',
'protect-cantedit' => 'Não pode alterar o nível de protecção desta página, porque não tem permissão para editá-la.',
'protect-othertime' => 'Outra duração:',
'logentry-delete-delete' => '$1 apagou a página $3',
'logentry-delete-restore' => '$1 restaurou a página $3',
'logentry-delete-event' => '$1 alterou a visibilidade {{PLURAL:$5|de uma entrada|das $5 entradas}} em $3: $4',
-'logentry-delete-revision' => '$1 alterou a visibilidade {{PLURAL:$5|de uma revisão|das $5 revisões}} em $3: $4',
+'logentry-delete-revision' => '$1 alterou a visibilidade de {{PLURAL:$5|uma revisão|$5 revisões}} em $3: $4',
'logentry-delete-event-legacy' => '$1 alterou a visibilidade de uma entrada em $3',
'logentry-delete-revision-legacy' => '$1 alterou a visibilidade de uma revisão em $3',
'logentry-suppress-delete' => '$1 suprimiu a página $3',
'logentry-newusers-create' => 'A conta de utilizador $1 foi criada',
'logentry-newusers-create2' => 'A conta de utilizador $3 foi criada por $1',
'logentry-newusers-autocreate' => 'A conta $1 foi criada automaticamente',
-'newuserlog-byemail' => 'palavra-chave enviada por correio-electrónico',
'logentry-rights-rights' => '$1 modificou os privilégios do utilizador $3 de $4 para $5',
'rightsnone' => '(nenhum)',
'Mytalk' => array( 'Minha_discussão' ),
'Newimages' => array( 'Arquivos_novos', 'Imagens_novas', 'Ficheiros_novos' ),
'Newpages' => array( 'Páginas_novas', 'Artigos_novos' ),
+ 'PermanentLink' => array( 'Ligação_permanente', 'Link_permanente' ),
'Popularpages' => array( 'Páginas_populares', 'Artigos_populares' ),
'Preferences' => array( 'Preferências' ),
'Prefixindex' => array( 'Índice_de_prefixo', 'Índice_por_prefixo' ),
'newwindow' => '(abre em uma nova janela)',
'cancel' => 'Cancelar',
'moredotdotdot' => 'Mais...',
+'morenotlisted' => 'Outros não listados...',
'mypage' => 'Página',
'mytalk' => 'Discussão',
'anontalk' => 'Discussão para este IP',
'gotaccount' => "Já possui uma conta? '''$1'''.",
'gotaccountlink' => 'Autenticar-se',
'userlogin-resetlink' => 'Esqueceu-se do seu nome de usuário ou da senha?',
-'createaccountmail' => 'por e-mail',
+'createaccountmail' => 'Usar uma senha aleatória e temporária que será enviada ao endereço de e-mail especificado a seguir',
'createaccountreason' => 'Razão:',
'badretype' => 'As senhas que você digitou não são iguais.',
'userexists' => 'O nome de usuário fornecido já está em uso.
# E-mail sending
'php-mail-error-unknown' => 'Erro desconhecido na função mail() do PHP',
'user-mail-no-addy' => 'Tentou enviar uma mensagem sem um endereço de e-mail.',
+'user-mail-no-body' => 'Você tentou enviar com o campo de e-mail vazio ou com poucos caracteres.',
# Change password dialog
'resetpass' => 'Alterar senha',
'''NÃO ENVIE TRABALHO PROTEGIDO POR DIREITOS DE AUTOR SEM A DEVIDA PERMISSÃO!'''",
'longpageerror' => "'''Erro: O texto que submeteu ocupa {{PLURAL:$1|um kilobyte|$1 kilobytes}}, que excede o máximo de {{PLURAL:$2|um kilobyte|$2 kilobytes}}.'''
A página não pode ser salva.",
-'readonlywarning' => "'''Aviso: A base de dados foi bloqueada para manutenção, por isso você não poderá salvar a sua edição neste momento.'''
-Pode, no entanto, copiar o seu texto num editor externo e guardá-lo para posterior envio.
+'readonlywarning' => "'''Aviso: O banco de dados foi bloqueado para manutenção, por isso você não poderá salvar a sua edição neste momento.'''
+Talvez você queira copiar o seu texto num editor externo e guardá-lo, para posterior envio.
-Quem bloqueou o banco de dados forneceu a seguinte justificativa: $1",
+Quem bloqueou o banco de dados forneceu a seguinte explicação: $1",
'protectedpagewarning' => "'''Atenção: Esta página foi protegida para que apenas usuários com privilégios de administrador possam editá-la.'''
A última entrada no histórico é fornecida abaixo como referência:",
'semiprotectedpagewarning' => "'''Nota:''' Esta página foi protegida, sendo que apenas usuários registrados poderão editá-la.
'revdelete-hide-comment' => 'Ocultar o sumário de edição',
'revdelete-hide-user' => 'Ocultar nome de usuário/IP do editor',
'revdelete-hide-restricted' => 'Suprimir dados de administradores assim como de outros',
-'revdelete-radio-same' => '(não altere)',
+'revdelete-radio-same' => '(não alterar)',
'revdelete-radio-set' => 'Sim',
'revdelete-radio-unset' => 'Não',
'revdelete-suppress' => 'Suprimir dados de administradores, bem como de outros',
'revdelete-unsuppress' => 'Remover restrições das edições restauradas',
'revdelete-log' => 'Motivo:',
-'revdelete-submit' => 'Aplicar {{PLURAL:$1|à revisão selecionada|à revisões selecionadas}}',
+'revdelete-submit' => 'Aplicar {{PLURAL:$1|à revisão selecionada|às revisões selecionadas}}',
'revdelete-success' => "'''A visibilidade da revisão foi definida com sucesso.'''",
'revdelete-failure' => "'''A visibilidade da revisão não foi atualizada:'''
$1",
'action-suppressionlog' => 'ver este registro privado',
'action-block' => 'impedir que este usuário edite',
'action-protect' => 'alterar os níveis de proteção desta página',
-'action-rollback' => 'Reverter rapidamente as edições do último usuário que editou uma página em particular',
+'action-rollback' => 'reverter rapidamente as edições do último usuário que editou uma página em particular',
'action-import' => 'importar esta página a partir de outro wiki',
'action-importupload' => 'importar esta página através do carregamento de um arquivo',
'action-patrol' => 'marcar as edições de outros usuários como patrulhadas',
'linksearch-ok' => 'Pesquisar',
'linksearch-text' => 'É possível usar caracteres coringa, como "*.wikipedia.org".
Necessário no mínimo um domínio de nível superior, por exemplo "*.org".<br />
-Protocolos suportados: <code>$1</code> (o padrão é http://).',
+{{PLURAL:$2|Protocolo suportado|Protocolos suportados}}: <code>$1</code> (caso nenhum seja especificado, o protocolo http:// será selecionado automaticamente).',
'linksearch-line' => '$2 possui links para $1',
'linksearch-error' => "\"Caracteres mágicos\" (''wildcards'') só podem ser usados no início do endereço.",
# Special:ActiveUsers
'activeusers' => 'Lista de usuários ativos',
'activeusers-intro' => 'Esta é uma lista de usuários com algum tipo de atividade nos últimos $1 {{PLURAL:$1|dia|dias}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|edição|edições}} {{PLURAL:$3|no último dia|nos últimos $3 dias}}',
+'activeusers-count' => '$1 {{PLURAL:$1|ação|ações}} {{PLURAL:$3|no último dia|nos últimos $3 dias}}',
'activeusers-from' => 'Mostrar usuários começando em:',
'activeusers-hidebots' => 'Esconder robôs',
'activeusers-hidesysops' => 'Esconder administradores',
'prot_1movedto2' => '[[$1]] foi movido para [[$2]]',
'protect-badnamespace-title' => 'Espaço de nomes não-protegidos',
'protect-badnamespace-text' => 'As páginas presentes nesse espaço de nomes não se pode proteger',
+'protect-norestrictiontypes-text' => 'Esta página não pode ser protegida, pois não há nenhum tipo de restrição disponível.',
+'protect-norestrictiontypes-title' => 'Página com proteção indisponível',
'protect-legend' => 'Confirmar proteção',
'protectcomment' => 'Motivo:',
'protectexpiry' => 'Expiração',
Esta é a configuração atual para a página '''$1''':",
'protect-cascadeon' => 'Esta página encontra-se protegida, uma vez que se encontra incluída {{PLURAL:$1|na página listada a seguir, protegida|nas páginas listadas a seguir, protegidas}} com a "proteção progressiva" ativada. Você poderá alterar o nível de proteção desta página, mas isso não afetará a "proteção progressiva".',
'protect-default' => 'Permitir todos os usuários',
-'protect-fallback' => 'É necessário o privilégio de "$1"',
-'protect-level-autoconfirmed' => 'Bloquear usuários novos e não registrados',
-'protect-level-sysop' => 'Apenas administradores',
+'protect-fallback' => 'Permitir apenas os usuários com privilégio de "$1"',
+'protect-level-autoconfirmed' => 'Permitir apenas usuários auto-confirmados',
+'protect-level-sysop' => 'Permitir apenas administradores',
'protect-summary-cascade' => 'p. progressiva',
'protect-expiring' => 'expira em $1 (UTC)',
'protect-expiring-local' => 'expira $1',
-'protect-expiry-indefinite' => 'tempo indefinido',
+'protect-expiry-indefinite' => 'indefinidamente',
'protect-cascade' => '"Proteção progressiva" - proteja quaisquer páginas que estejam incluídas nesta.',
'protect-cantedit' => 'Você não pode alterar o nível de proteção desta página uma vez que você não se encontra habilitado a editá-la.',
'protect-othertime' => 'Outra duração:',
# Move page
'move-page' => 'Mover $1',
'move-page-legend' => 'Mover página',
-'movepagetext' => "Utilizando o seguinte formulário você poderá renomear uma página, movendo todo o histórico para o novo título. O título anterior será transformado em um redirecionamento para o novo.
-
-Links para as páginas antigas não serão mudados; certifique-se de verificar por redirecionamentos quebrados ou duplos. Você é responsável por certificar-se que os links continuam apontando para onde eles deveriam apontar.
-
-Note que a página '''não''' será movida se já existir uma página com o novo título, a não ser que ele esteja vazio ou seja um redirecionamento e não tenha histórico de edições. Isto significa que pode renomear uma página de volta para o nome que tinha anteriormente se cometer algum engano e que não pode sobrescrever uma página.
-
-<b>CUIDADO!</b>
-Isto pode ser uma mudança drástica e inesperada para uma página popular; por favor, tenha certeza de que compreende as consequências da mudança antes de prosseguir.",
+'movepagetext' => "Utilizando o formulário a seguir você poderá renomear uma página, movendo todo o histórico para o novo título.
+O título anterior será transformado em um redirecionamento para o novo.
+Você poderá optar em atualizar automaticamente os redirecionamentos que se destinem ao título original.
+Caso escolha pela não-atualização, se certifique de verificar por redirecionamentos [[Special:DoubleRedirects|duplos]] ou [[Special:BrokenRedirects|quebrados]].
+É de sua responsabilidade que os links continuem direcionando para onde eles devem.
+
+Note que a página '''não''' será movida se já existir uma página com o novo título, a não ser que ele seja um redirecionamento e não tenha histórico de edições.
+Isto significa que você pode renomear uma página de volta para o seu nome anterior se cometer algum engano e que não poderá sobrescrever uma página existente.
+
+'''CUIDADO!'''
+Esta pode ser uma mudança drástica e inesperada para uma página popular;
+tenha certeza de que compreende as consequências da mudança antes de prosseguir.",
'movepagetext-noredirectfixer' => "Usando o formulário abaixo, você irá alterar o nome de uma página e moverá todo o histórico desta para o nome novo.
A página antiga será transformada numa página de redirecionamento para a nova.
Verifique a existência de [[Special:DoubleRedirects|redirecionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].
'pageinfo-magic-words' => '{{PLURAL:$1|Palavra mágica|Palavras mágicas}} ($1)',
'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria oculta|Categorias ocultas}} ($1)',
'pageinfo-templates' => '{{PLURAL:$1|Predefinição transcluída|Predefinições transcluídas ($1)}}',
+'pageinfo-transclusions' => '{{PLURAL:$1|Página incluída |Páginas incluídas}} ($1)',
'pageinfo-toolboxlink' => 'Informações da página',
-'pageinfo-redirectsto' => 'Redirecionar para',
+'pageinfo-redirectsto' => 'Redireciona para',
'pageinfo-redirectsto-info' => 'informações',
'pageinfo-contentpage' => 'Contado como uma página de conteúdo',
'pageinfo-contentpage-yes' => 'Sim',
'pageinfo-protect-cascading' => 'Proteção em cascata ativada',
'pageinfo-protect-cascading-yes' => 'Sim',
'pageinfo-protect-cascading-from' => 'Proteções herdadas de',
+'pageinfo-category-info' => 'Informações da categoria',
+'pageinfo-category-pages' => 'Número de páginas',
+'pageinfo-category-subcats' => 'Número de subcategorias',
+'pageinfo-category-files' => 'Número de arquivos',
# Skin names
'skinname-standard' => 'Clássico',
'minutes' => '{{PLURAL:$1|um minuto|$1 minutos}}',
'hours' => '{{PLURAL:$1|uma hora|$1 horas}}',
'days' => '{{PLURAL:$1|um dia|$1 dias}}',
+'months' => '{{PLURAL:$1|$1 mês|$1 meses}}',
+'years' => '{{PLURAL:$1|$1 ano|$1 anos}}',
'ago' => '$1 atrás',
'just-now' => 'agora mesmo',
'specialpages-group-highuse' => 'Páginas muito usadas',
'specialpages-group-pages' => 'Listas de páginas',
'specialpages-group-pagetools' => 'Ferramentas de páginas',
-'specialpages-group-wiki' => 'Dados e ferramentas sobre este wiki',
+'specialpages-group-wiki' => 'Dados e ferramentas',
'specialpages-group-redirects' => 'Páginas especiais redirecionadas',
'specialpages-group-spam' => 'Ferramentas anti-spam',
'logentry-delete-delete' => '$1 apagou a página $3',
'logentry-delete-restore' => '$1 restaurou a página $3',
'logentry-delete-event' => '$1 alterou a visibilidade {{PLURAL:$5|de uma entrada|de $5 entradas}} do registro $3: $4',
-'logentry-delete-revision' => '$1 alterou a visibilidade {{PLURAL:$5|de uma revisão|das $5 revisões}} em $3: $4',
+'logentry-delete-revision' => '$1 alterou a visibilidade de {{PLURAL:$5|uma revisão|$5 revisões}} em $3: $4',
'logentry-delete-event-legacy' => '$1 alterou a visibilidade de uma entrada em $3',
'logentry-delete-revision-legacy' => '$1 alterou a visibilidade de uma revisão em $3',
'logentry-suppress-delete' => '$1 suprimiu a página $3',
'logentry-newusers-newusers' => 'A conta de usuário $1 foi criada',
'logentry-newusers-create' => 'A conta de usuário $1 foi criada',
'logentry-newusers-create2' => 'A conta de usuário $3 foi criada por $1',
+'logentry-newusers-byemail' => 'A conta de usuário $3 foi criada por $1, com a senha sendo enviada por e-mail',
'logentry-newusers-autocreate' => 'A conta $1 foi criada automaticamente',
-'newuserlog-byemail' => 'senha enviada por correio-eletrônico',
'logentry-rights-rights' => '$1 alterou os grupos de usuário de $3 de $4 para $5',
'logentry-rights-rights-legacy' => '$1 alterou os grupos de $3',
'logentry-rights-autopromote' => '$1 foi promovido automaticamente de $4 a $5',
Used in message {{msg-mw|youhavenewmessages}} (as parameter $1).
{{Identical|New messages}}',
-'newmessagesdifflink' => 'This is the second link displayed in an orange rectangle when a user gets a message on his talk page. Used in message {{msg-mw|youhavenewmessages}} (as parameter $2).',
+'newmessagesdifflink' => 'This is the second link displayed in an orange rectangle when a user gets a message on his talk page. Used in message {{msg-mw|youhavenewmessages}} (as parameter $2).
+
+See also:
+* {{msg-mw|Newmessagesdifflinkplural}}',
'youhavenewmessagesfromusers' => 'New talk indicator message: the message appearing when someone edited your user talk page.
The message takes three parameters;
*$1 {{msg-mw|newmessageslinkplural}},
'newmessageslinkplural' => 'Like {{msg-mw|newmessageslink}} but supporting pluralization. Used in message {{msg-mw|youhavenewmessagesfromusers}} (as parameter $1).
This message itself takes one parameter, $1, which is 1 if there was one new edit, or 2 if there was more than one new edit
since the last time the user has seen his or her talk page.',
-'newmessagesdifflinkplural' => 'Like {{msg-mw|newmessagesdifflink}} but supporting pluralization. Used in message {{msg-mw|youhavenewmessagesfromusers}} (as parameter $2).
-This message itself takes one parameter, $1, which is the number of new edits since the last time the user has seen his or her talk page.',
+'newmessagesdifflinkplural' => 'This message itself takes one parameter, $1, which is the number of new edits since the last time the user has seen his or her talk page: it should be used only for correct [[plural]] as in the source text, as the exact number is not relevant.
+
+Like {{msg-mw|newmessagesdifflink}} but supporting pluralization.
+
+Used in message {{msg-mw|youhavenewmessagesfromusers}} (as parameter $2).',
'youhavenewmessagesmulti' => 'The alternative of {{msg|youhavenewmessages}} as used on wikis with a special setup so they can receive the "new message" notice on other wikis as well. Used on [http://www.wikia.com/ Wikia].
The format is: "{{int:youhavenewmessagesmulti| [[MediaWiki:Newmessageslink/{{SUBPAGENAME}}|{{int:newmessageslink}}]]}}"',
'editsection' => 'Display name of link to edit a section on a content page. Example: [{{MediaWiki:Editsection}}].
{{Identical|$1 bots}}",
'rcshowhideliu' => 'Option text in [[Special:RecentChanges]]',
'rcshowhideanons' => "Option text in [[Special:RecentChanges]]. Parameters:
-* $1 is the 'show/hide' command, with the text taken from either {{msg-mw|show}} or {{msg-mw|hide}}.",
+* $1 is the 'show/hide' command, with the text taken from either {{msg-mw|show}} or {{msg-mw|hide}}.
+{{Identical|Anonymous user}}",
'rcshowhidepatr' => "Option text in [[Special:RecentChanges]]. Parameters:
* $1 is the 'show/hide' command, with the text taken from either {{msg-mw|show}} or {{msg-mw|hide}}.",
'rcshowhidemine' => "Option text in [[Special:RecentChanges]]. Parameters:
'activeusers' => 'Title of [[Special:ActiveUsers]]',
'activeusers-intro' => 'Used as introduction in [[Special:ActiveUsers]]. Parameters:
* $1 - number of days (<code>$wgActiveUserDays</code>)',
-'activeusers-count' => "Used in [[Special:ActiveUsers]] to show the active user's recent edit count in brackets ([]).
-* $1 is the number of recent edits
+'activeusers-count' => "Used in [[Special:ActiveUsers]] to show the active user's recent action count in brackets ([]).
+* $1 is the number of recent actions
* $2 is the user's name for use with GENDER (optional)
* $3 is the maximum number of days of the RecentChangesList",
'activeusers-from' => 'Used as label for checkbox in the form on [[Special:ActiveUsers]].
**{{msg-mw|enotif body intro deleted}}
**{{msg-mw|enotif body intro created}}
**{{msg-mw|enotif body intro moved}}
-**{{msg-mw|enotif body intro restored}}
+**{{msg-mw|enotif body intro restored}}
**{{msg-mw|enotif body intro changed}} (for all the other cases).
*$NEWPAGE consists of either
**if the page is new (in older releases), {{msg-mw|enotif newpagetext}}
'rollback' => '{{Identical|Rollback}}',
'rollback_short' => '{{Identical|Rollback}}',
'rollbacklink' => '{{Identical|Rollback}}
-This link text appears on the recent changes page to users who have the "rollback" right.
+This link text appears on the recent changes page to users who have the "rollback" right.
This message has a tooltip {{msg-mw|tooltip-rollback}}
{{Doc-actionlink}}',
See also {{msg-mw|Minutes-abbrev}}
-Part of variable $1 in {{msg-mw|Ago}}',
+Part of variable $1 in {{msg-mw|Ago}}.
+{{Identical|Minute}}',
'hours' => 'Full word for "hours". $1 is the number of hours.
See also {{msg-mw|Hours-abbrev}}
$4 is the gender of the target user.',
'logentry-newusers-create2' => '{{Logentry}}
-$4 is the name of the target user.',
+$4 is the name of the user that was created.',
+'logentry-newusers-byemail' => '{{Logentry}}
+
+$4 is the name of the user that was created.',
'logentry-newusers-autocreate' => '{{Logentry}}
$4 is the gender of the target user.',
-'newuserlog-byemail' => 'Used as reason in [[Special:Log/newusers]].',
'logentry-rights-rights' => '*$1 - username
*$2 - (see below)
*$3 - username
'api-error-ok-but-empty' => 'API error message that can be used for client side localisation of API errors.',
'api-error-overwrite' => 'API error message that can be used for client side localisation of API errors.',
'api-error-stashfailed' => 'API error message that can be used for client side localisation of API errors.',
+'api-error-publishfailed' => 'API error message that can be used for client side localisation of API errors.',
'api-error-timeout' => 'API error message that can be used for client side localisation of API errors.',
'api-error-unclassified' => 'API error message that can be used for client side localisation of API errors.',
'api-error-unknown-code' => 'API error message that can be used for client side localisation of API errors. Parameters:
# Durations
'duration-seconds' => '{{Related|Duration}}',
-'duration-minutes' => '{{Related|Duration}}',
+'duration-minutes' => '{{Related|Duration}}
+{{Identical|Minute}}',
'duration-hours' => '{{Related|Duration}}',
'duration-days' => '{{Related|Duration}}',
'duration-weeks' => '{{Related|Duration}}',
'logentry-newusers-create' => '$1 sutiyuq rakiquna kamarisqañam',
'logentry-newusers-create2' => '$1 sutiyuq ruraqqa $3 sutiyuq rakiqunatam kamarirqanñam',
'logentry-newusers-autocreate' => '$1 sutiyuq rakiqunaqa kikinmanta kamarisqam',
-'newuserlog-byemail' => 'e-chaskiwan kachasqa yaykuna rima',
'rightsnone' => '(-)',
# Feedback
'logentry-newusers-create' => 'Il conto $1 è vegnì creà',
'logentry-newusers-create2' => 'Il conto $3 è vegnì creà da $1',
'logentry-newusers-autocreate' => 'Il conto $1 è vegnì creà automaticamain',
-'newuserlog-byemail' => 'tramess il pled-clav per e-mail',
'logentry-rights-rights' => '$1 ha midà la commembranza da gruppas per $3 da $4 a $5',
'logentry-rights-rights-legacy' => '$1 ha midà la commembranza da gruppas per $3',
'logentry-rights-autopromote' => '$1 è vegnì promovì automaticamain da $4 a $5',
'Contributions' => array( 'Contribuții' ),
'CreateAccount' => array( 'Înregistrare' ),
'Deadendpages' => array( 'Pagini_fără_legături' ),
- 'DeletedContributions' => array( 'Contibuții_șterse' ),
+ 'DeletedContributions' => array( 'Contribuții_șterse' ),
'Disambiguations' => array( 'Dezambiguizări' ),
'DoubleRedirects' => array( 'Redirectări_duble' ),
'Emailuser' => array( 'Email_utilizator' ),
'delete-hook-aborted' => 'Ștergerea a fost abandonată din cauza unui hook.
Nicio explicație furnizată.',
'badtitle' => 'Titlu incorect',
-'badtitletext' => 'Titlul căutat a fost invalid, gol sau o legătură invalidă inter-linguală sau inter-wiki.
-
-Poate conține unul sau mai multe caractere ce nu poate fi folosit în titluri.',
+'badtitletext' => 'Titlul paginii căutate este incorect, gol sau este o legătură interlinguală sau interwiki incorectă.
+Poate conține unul sau mai multe caractere ce nu pot fi folosite în titluri.',
'perfcached' => 'Datele următoare au fost păstrate în cache și s-ar putea să nu fie actualizate. Un maxim de {{PLURAL:$1|un rezultat este disponibil|$1 rezultate sunt disponibile}} în cache.',
'perfcachedts' => 'Informațiile de mai jos provin din cache, ultima actualizare efectuându-se la $1. Un maxim de {{PLURAL:$4|un rezultat este disponibil|$4 rezultate sunt disponibile}} în cache.',
'querypage-no-updates' => 'Actualizările acestei pagini sunt momentan dezactivate. Informațiile de aici nu sunt împrospătate.',
'gotaccount' => "Aveți deja un cont de utilizator? '''$1'''.",
'gotaccountlink' => 'Autentificați-vă',
'userlogin-resetlink' => 'Ați uitat datele de autentificare?',
-'createaccountmail' => 'după e-mail',
+'createaccountmail' => 'Utilizează o parolă temporară aleasă la întâmplare și o trimite la adresa de e-mail specificată mai jos',
'createaccountreason' => 'Motiv:',
'badretype' => 'Parolele pe care le-ați introdus diferă.',
'userexists' => 'Numele de utilizator pe care l-ați introdus este deja folosit.
Acțiunea nu este reversibilă.',
'prefs-emailconfirm-label' => 'Confirmare e-mail:',
'prefs-textboxsize' => 'Mărime căsuță de modificare',
-'youremail' => 'Adresa de e-mail:',
+'youremail' => 'Adresă de e-mail:',
'username' => '{{GENDER:$1|Nume de utilizator}}:',
'uid' => 'ID {{GENDER:$1|utilizator|utilizatoare}}:',
'prefs-memberingroups' => '{{GENDER:$2|Membru|Membră}} în {{PLURAL:$1|grupul|grupurile}}:',
'listusers-blocked' => '(blocat{{GENDER:$1||ă|}})',
# Special:ActiveUsers
-'activeusers' => 'Lista de utilizatori activi',
-'activeusers-intro' => 'Aceasta este o listă cu utilizatorii care au avut un fel de activitate în {{PLURAL:$1|ultima zi|ultimele $1 zile}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|modificare recentă|modificări recente}} în {{PLURAL:$3|ultima zi|ultimele $3 zile}}',
+'activeusers' => 'Listă utilizatori activi',
+'activeusers-intro' => 'Aceasta este o listă cu utilizatorii care au avut orice fel de activitate în {{PLURAL:$1|ultima zi|ultimele $1 zile}}.',
+'activeusers-count' => '{{PLURAL:$1|o acțiune|$1 acțiuni|$1 de acțiuni}} în {{PLURAL:$3|ultima zi|ultimele $3 zile|ultimele $3 de zile}}',
'activeusers-from' => 'Afișează utilizatori începând cu:',
'activeusers-hidebots' => 'Ascunde roboții',
'activeusers-hidesysops' => 'Ascunde administratorii',
'specialpages-group-highuse' => 'Pagini utilizate intens',
'specialpages-group-pages' => 'Liste de pagini',
'specialpages-group-pagetools' => 'Unelte pentru pagini',
-'specialpages-group-wiki' => 'Date și unelte wiki',
+'specialpages-group-wiki' => 'Date și instrumente',
'specialpages-group-redirects' => 'Pagini speciale de redirecționare',
'specialpages-group-spam' => 'Unelte spam',
'logentry-newusers-newusers' => 'Contul de utilizator $1 a fost creat',
'logentry-newusers-create' => 'Contul de utilizator $1 a fost creat',
'logentry-newusers-create2' => 'Contul de utilizator $3 a fost creat de către $1',
+'logentry-newusers-byemail' => 'Contul de utilizator $3 a fost creat de către $1, iar parola a fost trimisă prin e-mail',
'logentry-newusers-autocreate' => 'Contul $1 a fost creat în mod automat',
-'newuserlog-byemail' => 'parola trimisă prin e-mail',
'logentry-rights-rights' => '$1 a schimbat apartenența la grup pentru $3 de la $4 la $5',
'logentry-rights-rights-legacy' => '$1 a schimbat apartenența la grup pentru $3',
'logentry-rights-autopromote' => '$1 a fost promovat în mod automat de la $4 la $5',
'api-error-ok-but-empty' => 'Eroare internă: niciun răspuns de la server.',
'api-error-overwrite' => 'Nu este permisă suprascrierea unui fișier existent.',
'api-error-stashfailed' => 'Eroare internă: serverul nu a putut stoca fișierul temporar.',
+'api-error-publishfailed' => 'Eroare internă: serverul nu a putut publica fișierul temporar.',
'api-error-timeout' => 'Serverul nu a răspuns în timp util.',
'api-error-unclassified' => 'A apărut o eroare necunoscută.',
'api-error-unknown-code' => 'Eroare necunoscută: „$1”',
'gotaccount' => "Tine già 'nu cunde? '''$1'''.",
'gotaccountlink' => 'Tràse',
'userlogin-resetlink' => "T'è scurdate le dettaglie pe trasè?",
-'createaccountmail' => 'pe e-mail',
+'createaccountmail' => 'Pe e-mail',
'createaccountreason' => 'Mutive:',
'badretype' => 'Le passuord ca è scritte non ge sonde uguale.',
'userexists' => "'U nome de l'utende ca è scritte jè già ausate.
'''NO REGGISTRA' FATIJE CUPERTE DA 'U COPYRIGHT SENZA PERMESSE! NO FA STUDECARIE!'''",
'longpageerror' => "'''ERRORE: 'U teste ca tu vuè ccu reggistre è luenghe {{PLURAL:$1|'nu kilobyte|$1 kilobyte}}, invece 'u limite massime jè de {{PLURAL:$2|'nu kilobyte|$2 kilobyte}}.'''
Non ge puè reggistrà sta pàggene.",
-'readonlywarning' => "'''FA ATTENZIO': 'U database ha state bloccate pe manutenziona, e allore tu non ge puè reggistrà le cangiaminde ca ste face mò.'''
-Tu puè fa 'na bella cose, tagghie e 'nzicche le cangiaminde jndr'à 'nu file de teste sus a 'u combiuter tue e pò cchiù tarde le reggistre sus 'a Uicchi.
+'readonlywarning' => "'''FA ATTENZIO': 'U database ha state bloccate pe manutenzione, e allore tu non ge puè reggistrà le cangiaminde ca ste face mò.'''
+Tu puè fa 'na bella cose, tagghie e 'nzicche le cangiaminde jndr'à 'nu file de teste sus a 'u combiuter tune e pò cchiù tarde le reggistre sus 'a Uicchi.
-L'amministratore ca ha bloccate 'u database ha scritte stu mutive: $1",
+L'amministratore ca ha bloccate 'u database ha date stu mutive: $1",
'protectedpagewarning' => "'''ATTENZIO': Sta pàgene ha state bloccate e allore sulamende le utinde cu le privilegge de ''sysop'' ponne cangiarle.'''
L'urteme archivie de le trasute ha state previste aqquà sotte pe referimende:",
'semiprotectedpagewarning' => "'''Fà attenzione:''' Sta pàgene ha state bloccate accussì sulamende l'utinde reggistrete ponne fà cangiaminde.
# Special:ActiveUsers
'activeusers' => "Liste de l'utinde attive",
'activeusers-intro' => "Queste jè 'n'elenghe de utinde ca avene fatte certe tipe de attività fine a l'urteme $1 {{PLURAL:$1|sciurne|sciurne}}.",
-'activeusers-count' => "$1 {{PLURAL:$1|cangiamende|cangiaminde}} jndr'à l'urteme {{PLURAL:$3|sciurne|$3 sciurne}}",
+'activeusers-count' => "$1 {{PLURAL:$1|cangiamende|cangiaminde}} jndr'à l'urteme {{PLURAL:$3|sciurne}}",
'activeusers-from' => "Fà vedè l'utinde partenne da:",
'activeusers-hidebots' => 'Scunne le bot',
'activeusers-hidesysops' => 'Scunne le amministrature',
'logentry-newusers-create' => "'U cunde utende $1 ha state ccrejate",
'logentry-newusers-create2' => "$1 {{GENDER:$2|ccrejate}} {{GENDER:$4|'nu cunde utende}} $3",
'logentry-newusers-autocreate' => "'U cunde utende $1 ha state ccrejate automaticamende",
-'newuserlog-byemail' => 'password mannete pe e-mail',
'logentry-rights-rights' => "$1 membre d'u gruppe cangiate pe $3 da $4 a $5",
'logentry-rights-rights-legacy' => "$1 ave cangiate 'u membre d'u gruppe pe $3",
'logentry-rights-autopromote' => '$1 ha state promosse automaticamende da $4 a $5',
'api-error-ok-but-empty' => "Errore inderne: Nisciune resposte da 'u server.",
'api-error-overwrite' => "'A sovrascritture de 'nu file ca esiste non ge se pò fà.",
'api-error-stashfailed' => "Errore inderne: 'U server ha fallite 'a reggistrazione de le file temboranèe.",
+'api-error-publishfailed' => "Errore inderne: 'U server ha fallite 'a pubblecazione d'u file temboranèe.",
'api-error-timeout' => "'U server non g'ave resposte jndr'à 'u tiembe ca 'u spettave.",
'api-error-unclassified' => "'N'errore scanusciute s'a verificate",
'api-error-unknown-code' => 'Errore scanusciute: "$1"',
'hidden-category-category' => 'Скрытые категории',
'category-subcat-count' => '{{PLURAL:$2|Эта категория содержит только следующую подкатегорию.|Эта категория содержит $1 {{PLURAL:$1|подкатегорию|подкатегории}} из $2 всего.}}',
'category-subcat-count-limited' => 'В этой категории {{PLURAL:$1|$1 подкатегория|$1 подкатегории|$1 подкатегорий}}.',
-'category-article-count' => '{{PLURAL:$2|Эта категория содержит только одну страницу.|{{PLURAL:$1|Показана $1 страница|Показано $1 страницы|Показано $1 страниц}} из $2 {{PLURAL:$2|имеющейся|имеющихся}}.}}',
+'category-article-count' => '{{PLURAL:$2|Эта категория содержит только одну страницу.|{{PLURAL:$1|Показана $1 страница|Показано $1 страницы|Показано $1 страниц}} из $2.}}',
'category-article-count-limited' => 'В этой категории {{PLURAL:$1|$1 страница|$1 страницы|$1 страниц}}.',
'category-file-count' => '{{PLURAL:$2|Эта категория содержит только один файл.|В этой категории {{PLURAL:$1|показан $1 файл|показано $1 файла|показано $1 файлов}} из $2 {{PLURAL:$2|имеющейся|имеющихся}}.}}',
'category-file-count-limited' => 'В этой категории {{PLURAL:$1|$1 файл|$1 файла|$1 файлов}}.',
'go' => 'Перейти',
'searcharticle' => 'Перейти',
'history' => 'История',
-'history_short' => 'история',
+'history_short' => 'Ð\98стория',
'updatedmarker' => 'обновлено после моего последнего посещения',
'printableversion' => 'Версия для печати',
'permalink' => 'Постоянная ссылка',
'''НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!'''",
'longpageerror' => "'''ОШИБКА: записываемый вами текст имеет размер {{PLURAL:$1|$1 килобайт|$1 килобайта|$1 килобайт}}, что больше, чем установленный предел в {{PLURAL:$2|$2 килобайт|$2 килобайта|$2 килобайт}}. Страница не может быть сохранена.'''",
'readonlywarning' => "'''Предупреждение. База данных заблокирована в связи с процедурами обслуживания, поэтому вы не можете записать ваши изменения прямо сейчас.'''
-Ð\92озможно, вам Ñ\81ледÑ\83еÑ\82 Ñ\81оÑ\85Ñ\80аниÑ\82Ñ\8c Ñ\82екÑ\81Ñ\82 в Ñ\84айл, Ñ\87Ñ\82обÑ\8b воÑ\81полÑ\8cзоваÑ\82Ñ\8cÑ\81Ñ\8f Ñ\8dÑ\82им Ñ\82екÑ\81Ñ\82ом позже.
+Ð\92озможно, вам Ñ\81ледÑ\83еÑ\82 Ñ\81копиÑ\80оваÑ\82Ñ\8c Ñ\8dÑ\82оÑ\82 Ñ\82екÑ\81Ñ\82 в Ñ\82екÑ\81Ñ\82овÑ\8bй Ñ\84айл, Ñ\87Ñ\82обÑ\8b Ñ\81оÑ\85Ñ\80аниÑ\82Ñ\8c его на бÑ\83дÑ\83Ñ\89ее.
Администратор, заблокировавший базу данных, оставил следующее объяснение: $1",
'protectedpagewarning' => "'''Предупреждение. Эта страница защищена от изменений, её могут редактировать только участники с полномочиями администраторов.'''
'protect-locked-access' => "У вашей учётной записи недостаточно прав для изменения уровня защиты страницы. Текущие установки для страницы '''$1''':",
'protect-cascadeon' => 'Эта страница защищена в связи с тем, что она включена {{PLURAL:$1|в указанную ниже страницу, на которую|в нижеследующие страницы, на которые}} установлена каскадная защита. Вы можете изменить уровень защиты этой страницы, но это не повлияет на каскадную защиту.',
'protect-default' => 'Без защиты',
-'protect-fallback' => 'ТÑ\80ебÑ\83еÑ\82Ñ\81Ñ\8f Ñ\80азÑ\80еÑ\88ение «$1»',
-'protect-level-autoconfirmed' => 'Ð\97аÑ\89иÑ\82иÑ\82Ñ\8c оÑ\82 новÑ\8bÑ\85 и незаÑ\80егиÑ\81Ñ\82Ñ\80иÑ\80ованнÑ\8bÑ\85 Ñ\83Ñ\87аÑ\81Ñ\82ников',
-'protect-level-sysop' => 'ТолÑ\8cко админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\8b',
+'protect-fallback' => 'РазÑ\80еÑ\88ено Ñ\82олÑ\8cко Ñ\83Ñ\87аÑ\81Ñ\82никам Ñ\81 пÑ\80авами «$1»',
+'protect-level-autoconfirmed' => 'РазÑ\80еÑ\88ено Ñ\82олÑ\8cко авÑ\82оподÑ\82веÑ\80ждÑ\91ннÑ\8bм Ñ\83Ñ\87аÑ\81Ñ\82никам',
+'protect-level-sysop' => 'РазÑ\80еÑ\88ено Ñ\82олÑ\8cко админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80ам',
'protect-summary-cascade' => 'каскадная',
'protect-expiring' => 'истекает $1 (UTC)',
'protect-expiring-local' => 'истекает $1',
# Move page
'move-page' => '$1 — переименование',
'move-page-legend' => 'Переименование страницы',
-'movepagetext' => "Воспользовавшись формой ниже, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.
-Старое название станет перенаправлением на новое название.
+'movepagetext' => "Воспользовавшись нижеприведённой формой, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.
+Старое название станет перенаправлением на новое.
Вы можете автоматически обновить перенаправления, которые вели на старое название.
Если вы этого не сделаете, пожалуйста, проверьте наличие [[Special:DoubleRedirects|двойных]] и [[Special:BrokenRedirects|разорванных перенаправлений]].
-Вы отвечаете за то, что бы ссылки продолжали и далее указывают туда, куда предполагалось.
+Вы отвечаете за то, чтобы ссылки продолжали и далее указывать туда, куда предполагалось.
-Ð\9eбÑ\80аÑ\82иÑ\82е внимание, Ñ\87Ñ\82о Ñ\81Ñ\82Ñ\80аниÑ\86а '''не бÑ\83деÑ\82''' пеÑ\80еименована, еÑ\81ли Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81 новÑ\8bм названием Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82, кÑ\80оме Ñ\81лÑ\83Ñ\87аев, еÑ\81ли она Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f пеÑ\80енапÑ\80авлением или пÑ\83Ñ\81Ñ\82а и не имеет истории правок.
-Это означает, что вы можете переименовать страницу обратно в то название, которое у него только что было, если вы переименовали по ошибке, но вы не можете случайно затереть существующую страницу.
+Ð\9eбÑ\80аÑ\82иÑ\82е внимание, Ñ\87Ñ\82о Ñ\81Ñ\82Ñ\80аниÑ\86а '''не бÑ\83деÑ\82''' пеÑ\80еименована, еÑ\81ли Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82 Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\81 названием, иденÑ\82иÑ\87нÑ\8bм вÑ\8bбÑ\80анномÑ\83, кÑ\80оме Ñ\81лÑ\83Ñ\87аев, когда Ñ\82акаÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f пеÑ\80енапÑ\80авлением или пÑ\83Ñ\81Ñ\82а, и пÑ\80и Ñ\8dÑ\82ом не имеет истории правок.
+Это означает, что вы можете переименовать страницу обратно в то название, которое у него только что было, если вы сделали преименование ошибочно, но вы не можете случайно затереть существующую страницу.
-'''ПРЕДУПРЕЖДЕНИЕ!'''
-Переименование может привести к масштабным и неожиданным изменениям для ''популярных'' страниц.
+'''Предупреждение!'''
+Переименование ''популярных'' страниц может привести к масштабным и неожиданным изменениям.
Пожалуйста, прежде чем вы продолжите, убедитесь, что вы понимаете все возможные последствия.",
'movepagetext-noredirectfixer' => "Воспользовавшись формой ниже, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.
Старое название станет перенаправлением на новое название.
'logentry-newusers-create' => 'Создана учётная запись $1',
'logentry-newusers-create2' => '$1 {{GENDER:$2|создал|создала}} учётную запись для $3',
'logentry-newusers-autocreate' => 'Автоматически создана учётная запись $1',
-'newuserlog-byemail' => 'пароль отправлен по эл. почте',
'logentry-rights-rights' => '$1 {{GENDER:$1|изменил|изменила}} членство в группах для $3 с $4 на $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|изменил|изменила}} членство в группах для $3',
'logentry-rights-autopromote' => 'Учётная запись «$1» была автоматически переведена из $4 в $5',
'api-error-ok-but-empty' => 'Внутренняя ошибка: нет ответа от сервера.',
'api-error-overwrite' => 'Не допускается замена существующего файла.',
'api-error-stashfailed' => 'Внутренняя ошибка: сервер не смог сохранить временный файл.',
+'api-error-publishfailed' => 'Внутренняя ошибка: сервер не смог сохранить временный файл.',
'api-error-timeout' => 'Сервер не отвечает в течение ожидаемого времени.',
'api-error-unclassified' => 'Произошла неизвестная ошибка',
'api-error-unknown-code' => 'Неизвестная ошибка: «$1»',
'logentry-newusers-create' => 'Створене было хосновательске конто $1',
'logentry-newusers-create2' => '$1 створив хосновательске конто $3',
'logentry-newusers-autocreate' => 'Автоматічно было створене конто $1',
-'newuserlog-byemail' => 'гело послане електронічнов поштов',
'logentry-rights-rights' => '$1 {{GENDER:$1|змінив|змінила}} членство в ґрупах про $3 із $4 на $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|змінив|змінила}} членство в ґрупах про $3',
'logentry-rights-autopromote' => '$1 было автоматічно переведено із $4 в $5',
'pageinfo-protect-cascading' => 'अतस्तु संरक्षणविधिः सोपानवत् गच्छति',
'pageinfo-protect-cascading-yes' => 'आम्',
'pageinfo-protect-cascading-from' => 'अधोलिखितेभ्यः संरक्षणविधिः सोपानवत् गच्छति',
+'pageinfo-category-info' => 'वर्गविषयकसूचना',
+'pageinfo-category-pages' => 'पृष्ठानां सङ्ख्या',
+'pageinfo-category-subcats' => 'उपवर्गानां सङ्ख्या',
# Skin names
'skinname-standard' => 'पूर्व',
'logentry-newusers-create' => '$1 योजकलेखाम् असृजत्',
'logentry-newusers-create2' => '$1, $3 इति योजकलेखाम् असृजत्',
'logentry-newusers-autocreate' => '$1 लेखा स्वयमेव सृष्टं जातम्',
-'newuserlog-byemail' => 'कूटशब्दः ईपत्रद्वारा प्रेषितः',
'logentry-rights-rights' => '$1 इत्ययं $3 इत्यस्य समूहसदस्यतां $4 इत्यतः परिवर्त्य $5 इत्यकरोत्',
'logentry-rights-rights-legacy' => '$1, $3 इत्यस्मै समूहसदस्यतां पर्यवर्तयत्',
'logentry-rights-autopromote' => '$1 इत्ययं स्वचालितरूपेण $4 इत्यतः $5 इति यावत् पदोन्नतः',
'logentry-newusers-create' => '$1 диэн кыттааччы бэлиэтэннэ',
'logentry-newusers-create2' => '$3 кыттааччыны $1 бэлиэтээбит',
'logentry-newusers-autocreate' => 'Маннык аат $1 аптамаатынан бэлиэтэнилиннэ',
-'newuserlog-byemail' => 'киирии тыл эл. почтаннан ыытылынна',
'rightsnone' => '(суох)',
# Feedback
'htmlform-selectorother-other' => 'Àteru',
# New logging system
-'newuserlog-byemail' => 'password imbiada via e-mail',
'rightsnone' => '(nisciunu)',
# Search suggestions
);
$specialPageAliases = array(
- 'Allmessages' => array( 'Missaggi' ),
- 'Allpages' => array( 'TuttiLiPàggini' ),
- 'Ancientpages' => array( 'PàgginiMenuNovi' ),
- 'Blankpage' => array( 'PàgginaVacanti' ),
+ 'Activeusers' => array( 'UtentiAttivi' ),
+ 'Allmessages' => array( 'Messaggi' ),
+ 'Allpages' => array( 'TutteLePagine' ),
+ 'Ancientpages' => array( 'PagineMenoRecenti' ),
+ 'Badtitle' => array( 'TitoloErrato' ),
+ 'Blankpage' => array( 'PaginaVuota' ),
'Block' => array( 'Blocca' ),
'Blockme' => array( 'BloccaProxy' ),
'Booksources' => array( 'RicercaISBN' ),
- 'BrokenRedirects' => array( 'RinnirizzamentiSbagghiati' ),
- 'Categories' => array( 'Catigurìi' ),
- 'ChangePassword' => array( 'RimpostaPassword' ),
- 'Confirmemail' => array( 'CunfermaEmail' ),
- 'Contributions' => array( 'Cuntribbuti', 'CuntribbutiUtenti' ),
- 'CreateAccount' => array( 'CrìatiNuCuntu' ),
- 'Deadendpages' => array( 'PàgginiSenzaNisciuta' ),
- 'DeletedContributions' => array( 'CuntribbutiScancillati' ),
- 'Disambiguations' => array( 'Disambiguazzioni' ),
- 'DoubleRedirects' => array( 'RinnirizzamentiDuppi' ),
- 'Emailuser' => array( 'MannaEmail' ),
+ 'BrokenRedirects' => array( 'RedirectErrati' ),
+ 'Categories' => array( 'Categorie' ),
+ 'ChangeEmail' => array( 'CambiaEmail' ),
+ 'ChangePassword' => array( 'CambiaPassword' ),
+ 'ComparePages' => array( 'ComparaPagine' ),
+ 'Confirmemail' => array( 'ConfermaEMail' ),
+ 'Contributions' => array( 'Contributi', 'ContributiUtente', 'Edit' ),
+ 'CreateAccount' => array( 'CreaAccount' ),
+ 'Deadendpages' => array( 'PagineSenzaUscita' ),
+ 'DeletedContributions' => array( 'ContributiCancellati' ),
+ 'Disambiguations' => array( 'Disambigua' ),
+ 'DoubleRedirects' => array( 'RedirectDoppi' ),
+ 'EditWatchlist' => array( 'ModificaOsservati', 'ModificaOsservatiSpeciali', 'ModificaListaSeguiti' ),
+ 'Emailuser' => array( 'InviaEMail' ),
'Export' => array( 'Esporta' ),
- 'Fewestrevisions' => array( 'PàgginiCuCchiùPiccaRivisioni' ),
- 'Import' => array( 'Mporta' ),
- 'BlockList' => array( 'IPBluccati' ),
- 'LinkSearch' => array( 'CercaCullicamenti' ),
- 'Listadmins' => array( 'Amministratura' ),
- 'Listbots' => array( 'ListaBot' ),
- 'Listfiles' => array( 'Mmàggini' ),
- 'Listgrouprights' => array( 'AlencuPirmessiGruppi' ),
- 'Listredirects' => array( 'Rinnirizzamenti', 'ListaRinnirizzamenti' ),
- 'Listusers' => array( 'Utilizzatura', 'ListaUtilizzatura' ),
- 'Lockdb' => array( 'BloccaDB', 'BloccaDatabase' ),
- 'Log' => array( 'Riggistri', 'Riggistru' ),
- 'Lonelypages' => array( 'PàgginiOrfani' ),
- 'Longpages' => array( 'PàgginiCchiùLonghi' ),
- 'MergeHistory' => array( 'UnìficaCrunuluggìa' ),
+ 'Fewestrevisions' => array( 'PagineConMenoRevisioni' ),
+ 'FileDuplicateSearch' => array( 'CercaFileDuplicati' ),
+ 'Filepath' => array( 'Percorso' ),
+ 'Import' => array( 'Importa' ),
+ 'Invalidateemail' => array( 'InvalidaEMail' ),
+ 'JavaScriptTest' => array( 'TestJavaScript' ),
+ 'BlockList' => array( 'IPBloccati', 'ElencoBlocchi', 'Blocchi' ),
+ 'LinkSearch' => array( 'CercaCollegamenti', 'CercaLink' ),
+ 'Listadmins' => array( 'Amministratori', 'ElencoAmministratori', 'Admin', 'Sysop', 'Cricca' ),
+ 'Listbots' => array( 'Bot', 'ElencoBot' ),
+ 'Listfiles' => array( 'File', 'Immagini' ),
+ 'Listgrouprights' => array( 'ElencoPermessiGruppi', 'Privilegi' ),
+ 'Listredirects' => array( 'Redirect', 'ElencoRedirect' ),
+ 'Listusers' => array( 'Utenti', 'ElencoUtenti' ),
+ 'Lockdb' => array( 'BloccaDB' ),
+ 'Log' => array( 'Registri', 'Registro' ),
+ 'Lonelypages' => array( 'PagineOrfane' ),
+ 'Longpages' => array( 'PaginePiùLunghe' ),
+ 'MergeHistory' => array( 'FondiCronologia', 'UnificaCronologia' ),
'MIMEsearch' => array( 'RicercaMIME' ),
- 'Mostcategories' => array( 'PàgginiCuCchiossaiCatigurìi' ),
- 'Mostimages' => array( 'MmàgginiCchiùRichiamati' ),
- 'Mostlinked' => array( 'PàgginiCchiùRichiamati' ),
- 'Mostlinkedcategories' => array( 'CatigurìiCchiùRichiamati' ),
- 'Mostlinkedtemplates' => array( 'TemplateCchiùRichiamati' ),
- 'Mostrevisions' => array( 'PàgginiCuCchiossaiRivisioni' ),
- 'Movepage' => array( 'Sposta', 'Rinòmina' ),
- 'Mycontributions' => array( 'CuntribbutiMei' ),
- 'Mypage' => array( 'MèPàgginaUtenti' ),
- 'Mytalk' => array( 'DiscussioniMei' ),
- 'Newimages' => array( 'MmàgginiRicenti' ),
- 'Newpages' => array( 'PàgginiCchiùNovi' ),
- 'Popularpages' => array( 'PàgginiCchiùVisitati' ),
- 'Preferences' => array( 'Prifirenzi' ),
- 'Prefixindex' => array( 'Prifissi' ),
- 'Protectedpages' => array( 'PàgginiPrutiggiuti' ),
- 'Protectedtitles' => array( 'TìtuliPrutiggiuti' ),
- 'Randompage' => array( 'PàgginaAmmuzzu' ),
- 'Randomredirect' => array( 'RedirectAmmuzzu' ),
- 'Recentchanges' => array( 'ÙrtimiCanciamenti' ),
- 'Recentchangeslinked' => array( 'CanciamentiCurrilati' ),
- 'Revisiondelete' => array( 'ScancellaRivisioni' ),
- 'Search' => array( 'Ricerca', 'Cerca' ),
- 'Shortpages' => array( 'PàgginiCchiùCurti' ),
- 'Specialpages' => array( 'PàgginiSpiciali' ),
- 'Statistics' => array( 'Statìstichi' ),
- 'Uncategorizedcategories' => array( 'CatigurìiSenzaCatigurìi' ),
- 'Uncategorizedimages' => array( 'MmàgginiSenzaCatigurìi' ),
- 'Uncategorizedpages' => array( 'PàgginiSenzaCatigurìi' ),
- 'Uncategorizedtemplates' => array( 'TemplateSenzaCatigurìi' ),
- 'Undelete' => array( 'Riprìstina' ),
- 'Unlockdb' => array( 'SbloccaDB', 'SbloccaDatabase' ),
- 'Unusedcategories' => array( 'CatigurìiNonUsati' ),
- 'Unusedimages' => array( 'MmàgginiNonUsati' ),
- 'Unusedtemplates' => array( 'TemplateNunUsati' ),
- 'Unwatchedpages' => array( 'PàgginiNunTaliati' ),
- 'Upload' => array( 'Càrrica' ),
- 'Userlogin' => array( 'Tràsi', 'Login' ),
- 'Userlogout' => array( 'Nesci', 'Logout' ),
- 'Userrights' => array( 'PirmessiUtenti' ),
- 'Version' => array( 'Virsioni' ),
- 'Wantedcategories' => array( 'CatigurìiAddumannati' ),
- 'Wantedfiles' => array( 'FileAddumannati' ),
- 'Wantedpages' => array( 'PàgginiAddumannati' ),
- 'Wantedtemplates' => array( 'TemplateAddumannati' ),
- 'Watchlist' => array( 'ArtìculiTaliati' ),
- 'Whatlinkshere' => array( 'ChiPuntaCcà' ),
- 'Withoutinterwiki' => array( 'SenzaInterwiki' ),
+ 'Mostcategories' => array( 'PagineConPiùCategorie' ),
+ 'Mostimages' => array( 'ImmaginiPiùRichiamate' ),
+ 'Mostinterwikis' => array( 'InterwikiPiùRichiamati' ),
+ 'Mostlinked' => array( 'PaginePiùRichiamate' ),
+ 'Mostlinkedcategories' => array( 'CategoriePiùRichiamate' ),
+ 'Mostlinkedtemplates' => array( 'TemplatePiùRichiamati' ),
+ 'Mostrevisions' => array( 'PagineConPiùRevisioni' ),
+ 'Movepage' => array( 'Sposta', 'Rinomina' ),
+ 'Mycontributions' => array( 'MieiContributi' ),
+ 'Mypage' => array( 'MiaPaginaUtente', 'MiaPagina' ),
+ 'Mytalk' => array( 'MieDiscussioni' ),
+ 'Myuploads' => array( 'MieiUpload', 'MieiEdit' ),
+ 'Newimages' => array( 'ImmaginiRecenti' ),
+ 'Newpages' => array( 'PaginePiùRecenti' ),
+ 'PasswordReset' => array( 'ReimpostaPassword' ),
+ 'PermanentLink' => array( 'LinkPermanente' ),
+ 'Popularpages' => array( 'PaginePiùVisitate' ),
+ 'Preferences' => array( 'Preferenze' ),
+ 'Prefixindex' => array( 'Prefissi' ),
+ 'Protectedpages' => array( 'PagineProtette' ),
+ 'Protectedtitles' => array( 'TitoliProtetti' ),
+ 'Randompage' => array( 'PaginaCasuale' ),
+ 'Randomredirect' => array( 'RedirectCasuale' ),
+ 'Recentchanges' => array( 'UltimeModifiche' ),
+ 'Recentchangeslinked' => array( 'ModificheCorrelate' ),
+ 'Revisiondelete' => array( 'CancellaRevisione' ),
+ 'Search' => array( 'Arriscedi', 'Cerca', 'Trova' ),
+ 'Shortpages' => array( 'PaginePiùCorte' ),
+ 'Specialpages' => array( 'PagineSpeciali' ),
+ 'Statistics' => array( 'Statistiche' ),
+ 'Tags' => array( 'Etichette', 'Tag' ),
+ 'Unblock' => array( 'ElencoSblocchi', 'Sblocchi' ),
+ 'Uncategorizedcategories' => array( 'CategorieSenzaCategorie' ),
+ 'Uncategorizedimages' => array( 'ImmaginiSenzaCategorie' ),
+ 'Uncategorizedpages' => array( 'PagineSenzaCategorie' ),
+ 'Uncategorizedtemplates' => array( 'TemplateSenzaCategorie' ),
+ 'Undelete' => array( 'Ripristina' ),
+ 'Unlockdb' => array( 'SbloccaDB' ),
+ 'Unusedcategories' => array( 'CategorieNonUsate', 'CategorieVuote' ),
+ 'Unusedimages' => array( 'ImmaginiNonUsate' ),
+ 'Unusedtemplates' => array( 'TemplateNonUsati' ),
+ 'Unwatchedpages' => array( 'PagineNonOsservate' ),
+ 'Upload' => array( 'Carica' ),
+ 'Userlogin' => array( 'Entra', 'Login' ),
+ 'Userlogout' => array( 'Esci', 'Logout' ),
+ 'Userrights' => array( 'PermessiUtente' ),
+ 'Version' => array( 'Versione' ),
+ 'Wantedcategories' => array( 'CategorieRichieste' ),
+ 'Wantedfiles' => array( 'FileRichiesti' ),
+ 'Wantedpages' => array( 'PagineRichieste' ),
+ 'Wantedtemplates' => array( 'TemplateRichiesti' ),
+ 'Watchlist' => array( 'OsservatiSpeciali' ),
+ 'Whatlinkshere' => array( 'PuntanoQui' ),
+ 'Withoutinterwiki' => array( 'PagineSenzaInterwiki' ),
);
$messages = array(
'revdelete-unrestricted' => 'ristrizzioni pi suli amministraturi rimossi',
'logentry-move-move' => '$1 spustau la pàggina $3 a $4',
'logentry-newusers-create' => '$1 criau na utenza',
-'newuserlog-byemail' => 'password mannata via mail',
'rightsnone' => '(nuddu)',
# Search suggestions
'logentry-newusers-newusers' => '$1 padėrba nauduotuojė paskīra',
'logentry-newusers-create2' => '$1 padėrba nauduotuojė paskīra $3',
'logentry-newusers-autocreate' => 'Paskīra $1 bova padėrbta autuomatėškā',
-'newuserlog-byemail' => 'slaptažuodis ėšsiōsts par el. pašta',
'rightsnone' => '(juokiū)',
);
'logentry-newusers-create' => 'Korisnički račun $1 je napravljen',
'logentry-newusers-create2' => 'Korisnički račun $3 {{GENDER:|je napravio|je napravila|je napravio}} $1',
'logentry-newusers-autocreate' => 'Račun $1 je samostalno otvoren',
-'newuserlog-byemail' => 'lozinka je poslana putem e-maila',
'logentry-rights-rights' => '$1 {{GENDER:$1|je promijenio|je promijenila|je promijenio}} članstvo grupe za $3 iz $4 u $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|je promenio|je promenila|je promenio}} članstvo grupe za $3',
'logentry-rights-autopromote' => '$1 je automatski {{GENDER:$1|unaprijeđen|unaprijeđena|unaprijeđen}} iz $4 u $5',
'logentry-newusers-create' => '$1 පරිශීලක ගිණුමක් තනන ලදී',
'logentry-newusers-create2' => '$1 විසින් $3 පරිශීලක ගිණුම තනන ලදී',
'logentry-newusers-autocreate' => '$1 ගිණුම ස්වංක්රීයව නිර්මිතය',
-'newuserlog-byemail' => 'විද්යුත්-තැපෑලෙන් මුර-පදය යවන ලදි',
'rightsnone' => '(කිසිවක් නොමැත)',
# Feedback
'logentry-newusers-create' => 'Bol vytvorený používateľský účet $1',
'logentry-newusers-create2' => '$1 vytvoril používateľský účet $3',
'logentry-newusers-autocreate' => 'Automaticky bol založený účet $1',
-'newuserlog-byemail' => 'heslo poslané emailom',
'logentry-rights-rights' => '$1 {{GENDER:$2|zmenil|zmenila}} členstvo $3 v skupinách z $4 na $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|zmenil|zmenila}} členstvo $3 v skupinách',
'logentry-rights-autopromote' => '$1 {{GENDER:$2|bol automaticky povýšený|bola automaticky povýšená}} z $4 na $5',
'gotaccount' => 'Račun že imate? $1.',
'gotaccountlink' => 'Prijavite se',
'userlogin-resetlink' => 'Ste pozabili svoje prijavne podatke?',
-'createaccountmail' => 'Po e-pošti',
+'createaccountmail' => 'Ustvari začasno naključno geslo in ga pošlji na spodaj navedeni e-poštni naslov',
'createaccountreason' => 'Razlog:',
'badretype' => 'Gesli, ki ste ju vnesli, se ne ujemata.',
'userexists' => 'Uporabniško ime, ki ste ga vnesli, je že zasedeno.
# Special:ActiveUsers
'activeusers' => 'Seznam aktivnih uporabnikov',
'activeusers-intro' => 'Seznam uporabnikov, ki so bili kakor koli aktivni v {{PLURAL:$1|zadnjem $1 dnevu|zadnjih $1 dneh}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}} v {{PLURAL:$3|preteklem dnevu|preteklih $3 dneh}}',
+'activeusers-count' => '$1 {{PLURAL:$1|dejanje|dejanji|dejanja|dejanj}} v {{PLURAL:$3|preteklem dnevu|preteklih $3 dneh}}',
'activeusers-from' => 'Prikaži uporabnike začenši z:',
'activeusers-hidebots' => 'Skrij bote',
'activeusers-hidesysops' => 'Skrij administratorje',
'specialpages-group-highuse' => 'Strani visoke uporabe',
'specialpages-group-pages' => 'Seznam strani',
'specialpages-group-pagetools' => 'Orodja strani',
-'specialpages-group-wiki' => 'Podatki in orodja wiki',
+'specialpages-group-wiki' => 'Podatki in orodja',
'specialpages-group-redirects' => 'Preusmerjajoče posebne strani',
'specialpages-group-spam' => 'Orodja za spam',
'logentry-newusers-create' => '$1 je ustvaril(-a) uporabniški račun',
'logentry-newusers-create2' => '$1 je ustvaril(-a) uporabniški račun $3',
'logentry-newusers-autocreate' => 'Račun $1 je bil samodejno ustvarjen',
-'newuserlog-byemail' => 'geslo je bilo poslano po e-pošti',
'logentry-rights-rights' => '$1 je spremenil(-a) članstvo skupine $3 z $4 na $5',
'logentry-rights-rights-legacy' => '$1 je spremenil(-a) članstvo skupine $3',
'logentry-rights-autopromote' => '$1 je bil(-a) samodejno povišan(-a) z $4 na $5',
'api-error-ok-but-empty' => 'Notranja napaka: strežnik se ne odziva.',
'api-error-overwrite' => 'Prepisovanje obstoječe datoteke ni dovoljeno.',
'api-error-stashfailed' => 'Notranja napaka: strežnik ni uspel shraniti začasne datoteke.',
+'api-error-publishfailed' => 'Notranja napaka: strežnik ni uspel objaviti začasne datoteke.',
'api-error-timeout' => 'Strežnik se ni odzval v pričakovanem času.',
'api-error-unclassified' => 'Prišlo je do neznane napake',
'api-error-unknown-code' => 'Neznana napaka: »$1«',
# New logging system
'revdelete-restricted' => 'Einschränkungen gelten au fier Administratorn',
'revdelete-unrestricted' => 'Einschränkungen fier Administratorn uffgehobn',
-'newuserlog-byemail' => 'doas Passwurt wourde per E-Mail versandt',
);
'search-redirect' => '(waxaa loo toosiyay $1)',
'search-section' => '(maqaalka $1)',
'search-suggest' => 'Ma waxaad ulajeeday: $1',
+'search-interwiki-caption' => 'Mashaariicda walaalaha',
'search-interwiki-default' => '$1 natiijooyinka:',
'search-interwiki-more' => '(wax kale)',
'search-relatedarticle' => 'La xiriiro',
# Groups
'group' => 'Koox:',
'group-user' => 'Isticmaalada',
+'group-autoconfirmed' => 'Gude galayaasha la hubiyey si iskeed ah',
'group-bot' => 'botyada',
'group-sysop' => 'Maamulada',
'group-all' => '(dhamaan)',
'group-sysop-member' => '{{GENDER:$1|maamulaha}}',
'grouppage-user' => '{{ns:project}}:Isticmaalada',
+'grouppage-autoconfirmed' => '{{ns:project}}:Gude gale la hubiyey si iskeeda ah',
'grouppage-sysop' => '{{ns:project}}:Maamulada',
# Rights
'watching' => 'Daawasho...',
'enotif_subject_created' => '{{SITENAME}} Bogga $1 Qof ayaa sameeyey {{gender:$2|$2}}',
+'enotif_subject_changed' => '{{SITENAME}} Bogga $1 Waxaa {{GENDER:$2|Bedel}} ku sameeyey qof $2',
'enotif_body_intro_created' => 'Bogga {{SITENAME}} ga $1 waxaa la sameeyey $PAGEEDITDATE qof {{gender:$2|$2}}, eeg $3 sida laga dhigay hadda.',
+'enotif_body_intro_restored' => 'Booga {{SITENAME}} $1 waa labadelay {{GENDER:$2|dib u habayn}} waqtigaan $PAGEEDITDATE waxaana badalay $2, eeg $3 sida hadda laga dhigay.',
'enotif_body_intro_changed' => 'Bogga {{SITENAME}} ga $1 waxaa la badelay $PAGEEDITDATE qof {{gender:$2|$2}}, eeg $3 sida laga dhigay hadda.',
'enotif_lastvisited' => 'Eeg $1 Dhamaan isbedeleda ilaa goortii kuugu dambaysay.',
'enotif_lastdiff' => 'Eeg $1 si aad u aragto bedelkaan.',
'logentry-newusers-create' => '$1 krijoi një llogari',
'logentry-newusers-create2' => '$1 krijoi një llogari $3',
'logentry-newusers-autocreate' => 'Llogaria $1 u krijua automatikisht',
-'newuserlog-byemail' => 'fjalëkalimi u dërgua në postën elektronike',
'rightsnone' => '(asgjë)',
# Feedback
'minoredit' => 'мања измена',
'watchthis' => 'надгледај ову страницу',
'savearticle' => 'Сачувај страницу',
-'preview' => 'Преглед',
-'showpreview' => 'Ð\9fÑ\80егледаÑ\98',
+'preview' => 'Претпреглед',
+'showpreview' => 'Ð\9fÑ\80икажи пÑ\80еÑ\82пÑ\80еглед',
'showlivepreview' => 'Тренутни преглед',
'showdiff' => 'Прикажи измене',
'anoneditwarning' => "'''Упозорење:''' нисте пријављени.
# Delete conflict
'deletedwhileediting' => "'''Упозорење''': ова страница је обрисана након што сте почели с уређивањем!",
-'confirmrecreate' => "[[User:$1|$1]] ([[User talk:$1|разговор]]) {{GENDER:$1|је обрисао|је обрисала|је обрисао}} ову страницу након што сте почели да је уређујете из следећег разлога:
+'confirmrecreate' => "[[User:$1|$1]] ([[User talk:$1|разговор]]) {{GENDER:$1|је обрисао|је обрисала|обриса}} ову страницу након што сте почели да је уређујете из следећег разлога:
: ''$2''
Потврдите да стварно желите да направите страницу.",
'confirmrecreate-noreason' => 'Корисник [[User:$1|$1]] ([[User talk:$1|разговор]]) је обрисао ову страницу након што сте почели да га уређујете. Потврдите да стварно желите да поново направите ову страницу.',
'logentry-newusers-create' => '$1 {{GENDER:|је отворио|је отворила|је отворио}} кориснички налог',
'logentry-newusers-create2' => '$1 {{GENDER:|је отворио|је отворила|је отворио}} кориснички налог $3',
'logentry-newusers-autocreate' => 'Налог $1 је самостално отворен',
-'newuserlog-byemail' => 'лозинка је послата е-поштом',
'logentry-rights-rights' => '$1 {{GENDER:$1|је променио|је променила|је променио}} чланство групе за $3 из $4 у $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|је променио|је променила|је променио}} чланство групе за $3',
'logentry-rights-autopromote' => '$1 је аутоматски {{GENDER:$1|унапређен|унапређена|унапређен}} из $4 у $5',
'logentry-newusers-create' => '$1 {{GENDER:|je otvorio|je otvorila|je otvorio}} korisnički nalog',
'logentry-newusers-create2' => '$1 {{GENDER:|je otvorio|je otvorila|je otvorio}} korisnički nalog $3',
'logentry-newusers-autocreate' => 'Nalog $1 je samostalno otvoren',
-'newuserlog-byemail' => 'lozinka je poslata e-poštom',
'logentry-rights-rights' => '$1 {{GENDER:$1|je promenio|je promenila|je promenio}} članstvo grupe za $3 iz $4 u $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|je promenio|je promenila|je promenio}} članstvo grupe za $3',
'logentry-rights-autopromote' => '$1 je automatski {{GENDER:$1|unapređen|unapređena|unapređen}} iz $4 u $5',
# New logging system
'revdelete-restricted' => 'Einskränkengen jäilde uk foar Administratore',
'revdelete-unrestricted' => 'Ienskränkengen foar Administratore wächhoald',
-'newuserlog-byemail' => 'dät Paaswoud wuud uur E-Mail fersoand',
'rightsnone' => '(-)',
# Search suggestions
# New logging system
'revdelete-restricted' => 'akses geus dibatesan ukur keur kuncén',
'revdelete-unrestricted' => 'Watesan akses kuncén dihapuskeun',
-'newuserlog-byemail' => 'Sandi geus dikirim maké surélék.',
'rightsnone' => '(euweuh)',
# Feedback
'newwindow' => '(öppnas i ett nytt fönster)',
'cancel' => 'Avbryt',
'moredotdotdot' => 'Mer...',
+'morenotlisted' => 'Mer som inte är listad...',
'mypage' => 'Min sida',
'mytalk' => 'Diskussion',
'anontalk' => 'Diskussionssida för denna IP-adress',
'gotaccount' => "Har du redan ett användarkonto? '''$1'''.",
'gotaccountlink' => 'Logga in',
'userlogin-resetlink' => 'Har du glömt dina inloggningsuppgifter?',
-'createaccountmail' => 'med e-post',
+'createaccountmail' => 'Använd ett tillfällig slumpartat lösenord och skicka den till e-postadressen som anges nedan',
'createaccountreason' => 'Orsak:',
'badretype' => 'De lösenord du uppgett överensstämmer inte med varandra.',
'userexists' => 'Det valda användarnamnet används redan.
'longpageerror' => "'''FEL: Texten som du försöker spara är {{PLURAL:$1|en kilobyte|$1 kilobyte}}, vilket är mer än det maximalt tillåtna {{PLURAL:$2|en kilobyte|$2 kilobyte}}.'''
Den kan inte sparas.",
'readonlywarning' => "'''VARNING: Databasen är tillfälligt låst för underhåll. Du kommer inte att kunna spara dina ändringar just nu.
-Det kan vara klokt att kopiera över texten till din egen dator, tills databasen är upplåst igen.'''
+Det kan vara klokt att kopiera texten till ett textdokument som sparas på din dator tills vidare.'''
Administratören som låste databasen gav följande förklaring: $1",
'protectedpagewarning' => "'''Varning: Den här sidan har låsts så att bara användare med administratörsrättigheter kan redigera den.'''
# Special:ActiveUsers
'activeusers' => 'Lista över aktiva användare',
'activeusers-intro' => 'Detta är en lista på användare som har haft någon form av aktivitet inom de senaste $1 {{PLURAL:$1|dygnet|dygnen}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|redigering|redigeringar}} {{PLURAL:$3|det senaste dygnet|de senaste $3 dygnen}}',
+'activeusers-count' => '$1 {{PLURAL:$1|handling|handlingar}} {{PLURAL:$3|det senaste dygnet|de senaste $3 dygnen}}',
'activeusers-from' => 'Visa användare från och med:',
'activeusers-hidebots' => 'Göm botar',
'activeusers-hidesysops' => 'Dölj administratörer',
Om du väljer att inte göra det, kontrollera då att du inte skapar några [[Special:DoubleRedirects|dubbla]] eller [[Special:BrokenRedirects|trasiga omdirigeringar]].
Du bör också se till att länkar fortsätter att peka dit de ska.
-Notera att sidan '''inte''' kan flyttas om det redan finns en sida under den nya sidtiteln, såvida inte den sidan är tom eller en omdirigering till den gamla titeln och saknar annan versionshistorik.
+Notera att sidan '''inte''' kan flyttas om det redan finns en sida under den nya sidtiteln, såvida inte den sidan är en omdirigering till den gamla titeln och saknar annan versionshistorik.
Det innebär att du kan flytta tillbaks en sida om du råkar göra fel, och att du inte kan skriva över existerande sidor.
'''VARNING!'''
'specialpages-group-highuse' => 'Sidor som används mycket',
'specialpages-group-pages' => 'Listor över sidor',
'specialpages-group-pagetools' => 'Sidverktyg',
-'specialpages-group-wiki' => 'Information och verktyg för wikin',
+'specialpages-group-wiki' => 'Data och verktyg',
'specialpages-group-redirects' => 'Omdirigerande specialsidor',
'specialpages-group-spam' => 'Spamverktyg',
'logentry-newusers-newusers' => 'Användarkonto $1 skapades',
'logentry-newusers-create' => 'Användarkonto $1 skapades',
'logentry-newusers-create2' => 'Användarkonto $3 skapades av $1',
+'logentry-newusers-byemail' => 'Användarkontot $3 skapades av $1 och lösenordet skickades via e-post',
'logentry-newusers-autocreate' => 'Kontot $1 skapades automatiskt',
-'newuserlog-byemail' => 'lösenord skickat med e-post',
'logentry-rights-rights' => '$1 ändrade gruppmedlemskap för $3 från $4 till $5',
'logentry-rights-rights-legacy' => '$1 ändrade gruppmedlemskap för $3',
'logentry-rights-autopromote' => '$1 befordrades automatiskt från $4 till $5',
'api-error-ok-but-empty' => 'Internt fel: Inget svar från servern.',
'api-error-overwrite' => 'Det är inte tillåtet att skriva över en befintlig fil.',
'api-error-stashfailed' => 'Internt fel: servern kunde inte lagra temporär fil.',
+'api-error-publishfailed' => 'Internt fel: Servern kunde inte publicera temporär fil.',
'api-error-timeout' => 'Servern svarade inte inom förväntad tid.',
'api-error-unclassified' => 'Ett okänt fel uppstod',
'api-error-unknown-code' => 'Okänt fel: "$1"',
'logentry-newusers-create' => '$1 alianzisha akaunti ya mtumiaji',
'logentry-newusers-create2' => '$1 alianzisha akaunti ya mtumiaji $3',
'logentry-newusers-autocreate' => 'Akaunti ya mtumiaji $1 ilianzishwa na mashine',
-'newuserlog-byemail' => 'neno la siri limetumwa kwa barua pepe',
'rightsnone' => '(hana)',
# Feedback
# New logging system
'revdelete-restricted' => 'naštaluj uograničyńo do administratorůw',
'revdelete-unrestricted' => 'wycofej uograničyńo do administratorůw',
-'newuserlog-byemail' => 'hasło uostało wysłane e-brifym',
'rightsnone' => 'podstawowo',
);
'logentry-newusers-create' => '$1 ஒரு புதிய பயனர் கணக்கை உருவாக்கியுள்ளார்.',
'logentry-newusers-create2' => '$3 பயனர் கணக்கினை $1 உருவாக்கினார்',
'logentry-newusers-autocreate' => 'கணக்கு $1 தானாக உருவாக்கப்பட்டது',
-'newuserlog-byemail' => 'மின்னஞ்சல் மூலம் கடவுச்சொல் அனுப்பப்பட்டுவிட்டது',
'rightsnone' => '(எதுவுமில்லை)',
# Feedback
'revdelete-only-restricted' => '$2, $1 తేదీ గల అంశాన్ని దాచడంలో పొరపాటు: ఇతర దృశ్యత వికల్పాల్లోంచి ఒకదాన్ని ఎంచుకోకుండా అంశాలని నిర్వాహకులకు కనబడకుండా అణచివెయ్యలేరు.',
'revdelete-reason-dropdown' => '*సాధారణ తొలగింపు కారణాలు
** కాపీహక్కుల ఉల్లంఘన
-** అసంబద్ధ వ్యక్తిగత సమాచారం
+** అసంబద్ధ వ్యాఖ్య లేదా వ్యక్తిగత సమాచారం
+** అసంబద్ధ వాడుకరి పేరు
** నిందాపూర్వక సమాచారం',
'revdelete-otherreason' => 'ఇతర/అదనపు కారణం:',
'revdelete-reasonotherlist' => 'ఇతర కారణం',
'timezoneregion-indian' => 'హిందూ మహాసముద్రం',
'timezoneregion-pacific' => 'పసిఫిక్ మహాసముద్రం',
'allowemail' => 'ఇతర వాడుకరుల నుండి ఈ-మెయిళ్ళను రానివ్వు',
-'prefs-searchoptions' => 'à°\85à°¨à±\8dà°µà±\87à°·à°£ à°\8eà°\82పిà°\95à°²à±\81',
+'prefs-searchoptions' => 'à°µà±\86à°¤à±\81à°\95à±\81లాà°\9f',
'prefs-namespaces' => 'పేరుబరులు',
'defaultns' => 'లేకపోతే ఈ నేంస్పేసులలో అన్వేషించు:',
'default' => 'అప్రమేయం',
'prefs-emailconfirm-label' => 'ఈ-మెయిల్ నిర్ధారణ:',
'prefs-textboxsize' => 'దిద్దుబాటు కిటికీ పరిమాణం',
'youremail' => 'మీ ఈ-మెయిలు*',
-'username' => 'వాడుకరి పేరు:',
+'username' => '{{GENDER:$1|వాడుకరి పేరు}}:',
'uid' => 'వాడుకరి ID:',
'prefs-memberingroups' => 'సభ్యులుగా ఉన్న {{PLURAL:$1|గుంపు|గుంపులు}}:',
'prefs-registration' => 'నమోదైన సమయం:',
'blanknamespace' => '(మొదటి)',
# Contributions
-'contributions' => 'వాడుకరి రచనలు',
+'contributions' => '{{GENDER:$1|వాడుకరి}} రచనలు',
'contributions-title' => '$1 యొక్క మార్పులు-చేర్పులు',
'mycontris' => 'మార్పులు చేర్పులు',
'contribsub2' => '$1 ($2) కొరకు',
'minutes' => '{{PLURAL:$1|ఒక నిమిషం|$1 నిమిషాల}}',
'hours' => '{{PLURAL:$1|ఒక గంట|$1 గంటల}}',
'days' => '{{PLURAL:$1|ఒక రోజు|$1 రోజుల}}',
+'months' => '{{PLURAL:$1|ఒక నెల|$1 నెలల}}',
+'years' => '{{PLURAL:$1|ఒక సంవత్సరం|$1 సంవత్సరాల}}',
'ago' => '$1 క్రితం',
+'just-now' => 'ఇప్పుడే',
# Bad image list
'bad_image_list' => 'కింద తెలిపిన తీరులో కలపాలి:
'logentry-newusers-create' => '$1 ఒక వాడుకరి ఖాతాను సృష్టించారు',
'logentry-newusers-create2' => '$1 వాడుకరి ఖాతా $3ను సృష్టించారు',
'logentry-newusers-autocreate' => '$1 ఖాతాను ఆటోమెటిగ్గా సృష్టించారు',
-'newuserlog-byemail' => 'ఈ-మెయిలులో సంకేతపదం పంపించాం',
'rightsnone' => '(ఏమీలేవు)',
# Feedback
# New logging system
'revdelete-restricted' => 'маҳдудиятҳо ба мудирон амалӣ шуданд',
'revdelete-unrestricted' => 'маҳдудиятҳо аз мудирон бардошта шуданд',
-'newuserlog-byemail' => 'калимаи убур ба почтаи электронӣ фиристода шуд',
'rightsnone' => '(ҳеҷ)',
);
# New logging system
'revdelete-restricted' => 'mahdudijatho ba mudiron amalī şudand',
'revdelete-unrestricted' => 'mahdudijatho az mudiron bardoşta şudand',
-'newuserlog-byemail' => 'kalimai ubur ba poctai elektronī firistoda şud',
'rightsnone' => '(heç)',
);
'faqpage' => 'Project:คำถามถามบ่อย',
# Vector skin
-'vector-action-addsection' => 'à¹\80à¸\9eิà¹\88มหัวà¸\82à¹\89à¸ใหม่',
+'vector-action-addsection' => 'à¹\80à¸\9eิà¹\88มสà¹\88วà¸\99ใหม่',
'vector-action-delete' => 'ลบ',
'vector-action-move' => 'เปลี่ยนชื่อ',
'vector-action-protect' => 'ป้องกัน',
'history' => 'ประวัติหน้า',
'history_short' => 'ประวัติ',
'updatedmarker' => 'การปรับตั้งแต่การเข้าชมครั้งล่าสุดของฉัน',
-'printableversion' => 'รุà¹\88à¸\99สำหรัà¸\9aพิมพ์',
+'printableversion' => 'รุà¹\88à¸\99à¸\9eรà¹\89à¸à¸¡พิมพ์',
'permalink' => 'ลิงก์ถาวร',
'print' => 'พิมพ์',
'view' => 'ดู',
'gotaccount' => "มีบัญชีแล้วใช่ไหม '''$1'''",
'gotaccountlink' => 'ล็อกอิน',
'userlogin-resetlink' => 'ลืมรายละเอียดล็อกอินของคุณหรือ',
-'createaccountmail' => 'à¸\9cà¹\88าà¸\99à¸\97าà¸\87à¸à¸µà¹\80มล',
+'createaccountmail' => 'à¹\83à¸\8aà¹\89รหัสà¸\9cà¹\88าà¸\99สุà¹\88มà¸\8aัà¹\88วà¸\84ราวà¹\81ละสà¹\88à¸\87à¹\84à¸\9bยัà¸\87à¸\97ีà¹\88à¸à¸¢à¸¹à¹\88à¸à¸µà¹\80มลà¸\97ีà¹\88ระà¸\9aุà¸\94à¹\89าà¸\99ลà¹\88าà¸\87',
'createaccountreason' => 'เหตุผล:',
'badretype' => 'รหัสผ่านที่ใส่ไม่ตรงกัน',
'userexists' => 'ชื่อผู้ใช้ที่กรอกมีผู้อื่นใช้ไปแล้ว กรุณาเลือกชื่ออื่น',
'''อย่าส่งงานที่มีลิขสิทธิ์เข้ามาก่อนได้รับอนุญาตจากเจ้าของ!'''",
'longpageerror' => "'''ผิดพลาด: ข้อความที่คุณส่งเข้ามามีขนาด $1 กิโลไบต์
ซึ่งเกินกว่าขนาดที่กำหนดไว้ที่ $2 กิโลไบต์ จึงไม่สามารถบันทึกได้'''",
-'readonlywarning' => "'''คำเตือน: ขณะนี้ฐานข้อมูลถูกล็อกเพื่อบำรุงรักษา จึงไม่สามารถบันทึกข้อมูลที่แก้ไขได้ แนะนำให้คัดลอกไปเก็บไว้ที่อื่นก่อนแล้วนำมาบันทึกในเว็บไซต์นี้ภายหลัง'''
+'readonlywarning' => "'''คำเตือน: ฐานข้อมูลถูกล็อกเพื่อบำรุงรักษา ฉะนั้นคุณจึงไม่สามารถบันทึกการเปลี่ยนแปลงของคุณได้ในขณะนี้'''
+คุณอาจต้องการคัดลอกและวางข้อความของคุณในไฟล์ข้อความ และบันทึกไว้ใช้ภายหลัง
ผู้ดูแลระบบที่ล็อกฐานข้อมูลได้ให้คำอธิบายดังนี้: $1",
'protectedpagewarning' => "'''คำเตือน: หน้านี้ถูกล็อก และแก้ไขได้เฉพาะผู้ใช้ที่มีสิทธิผู้ดูแลระบบเท่านั้น'''
'rc_categories' => 'จำกัดเฉพาะหมวดหมู่ (แยกด้วย "|")',
'rc_categories_any' => 'ใด ๆ',
'rc-change-size-new' => '$1 ไบต์หลังปรับปรุง',
-'newsectionsummary' => '/* $1 */ หัวà¸\82à¹\89à¸ใหม่',
+'newsectionsummary' => '/* $1 */ สà¹\88วà¸\99ใหม่',
'rc-enhanced-expand' => 'แสดงรายละเอียด (ต้องใช้จาวาสคริปต์)',
'rc-enhanced-hide' => 'ซ่อนรายละเอียด',
'rc-old-title' => 'เดิมถูกสร้างในชื่อ "$1"',
# Special:ActiveUsers
'activeusers' => 'รายการผู้ใช้ประจำ',
'activeusers-intro' => 'นี่คือรายนามผู้ใช้ที่มีกิจกรรมใด ๆ ใน $1 วันที่ผ่านมา',
-'activeusers-count' => '{{PLURAL:$1|à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82ลà¹\88าสุà¸\94|à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82ล่าสุด $1 รายการ}} ในช่วง $3 วันที่ผ่านมา',
+'activeusers-count' => '{{PLURAL:$1|à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\81ารลà¹\88าสุà¸\94|à¸\9bà¸\8fิà¸\9aัà¸\95ิà¸\81ารล่าสุด $1 รายการ}} ในช่วง $3 วันที่ผ่านมา',
'activeusers-from' => 'แสดงชื่อผู้ใช้โดยเริ่มจาก:',
'activeusers-hidebots' => 'ซ่อนบอต',
'activeusers-hidesysops' => 'ซ่อนผู้ดูแลระบบ',
'usermessage-editor' => 'ตัวส่งข้อความของระบบ',
# Watchlist
-'watchlist' => 'รายการเฝ้าดูของฉัน',
+'watchlist' => 'รายการเฝ้าดู',
'mywatchlist' => 'รายการเฝ้าดู',
'watchlistfor2' => 'สำหรับ $1 $2',
'nowatchlist' => 'ไม่มีรายการในรายการเฝ้าดูของคุณ',
'protect-cascadeon' => 'หน้านี้ถูกล็อกเนื่องจากเป็นส่วนหนึ่งของ{{PLURAL:$1|หน้า|หน้า}}ที่ถูกล็อกแบบสืบทอด
คุณสามารถเปลี่ยนระดับการล็อกได้ แต่จะไม่มีผลต่อการล็อกแบบสืบทอด',
'protect-default' => 'อนุญาตผู้ใช้ทั้งหมด',
-'protect-fallback' => 'à¸\88ำà¹\80à¸\9bà¹\87à¸\99à¸\95à¹\89à¸à¸\87à¹\83à¸\8aà¹\89สิà¸\97à¸\98ิà¹\83à¸\99à¸\81าร "$1"',
+'protect-fallback' => 'à¸à¸\99ุà¸\8dาà¸\95à¹\80à¸\89à¸\9eาะà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\97ีà¹\88มีสิà¸\97à¸\98ิ "$1"',
'protect-level-autoconfirmed' => 'บล็อกผู้ใช้ใหม่และผู้ใช้ไม่ลงทะเบียน',
-'protect-level-sysop' => 'เฉพาะผู้ดูแลระบบ',
+'protect-level-sysop' => 'à¸à¸\99ุà¸\8dาà¸\95à¹\80à¸\89à¸\9eาะà¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9a',
'protect-summary-cascade' => 'สืบทอด',
'protect-expiring' => 'หมดอายุ $1 (UTC)',
'protect-expiring-local' => 'หมดอายุ $1',
# Move page
'move-page' => 'ย้าย $1',
'move-page-legend' => 'เปลี่ยนชื่อ',
-'movepagetext' => "à¸\81ารà¹\83à¸\8aà¹\89à¹\81à¸\9aà¸\9aà¸\94à¹\89าà¸\99ลà¹\88าà¸\87à¸\88ะà¹\80à¸\9bลีà¹\88ยà¸\99à¸\8aืà¹\88à¸à¸«à¸\99à¹\89า à¸\8bึà¹\88à¸\87à¸\88ะà¸\97ำà¹\83หà¹\89à¸\9bระวัà¸\95ิà¸\97ัà¹\89à¸\87หมà¸\94ยà¹\89ายà¹\84à¸\9bยัà¸\87à¸\8aืà¹\88à¸ใหม่
+'movepagetext' => "à¸\81ารà¹\83à¸\8aà¹\89à¹\81à¸\9aà¸\9aà¸\94à¹\89าà¸\99ลà¹\88าà¸\87à¸\88ะà¹\80à¸\9bลีà¹\88ยà¸\99à¸\8aืà¹\88à¸à¸«à¸\99à¹\89า à¹\81ละยà¹\89ายà¸\9bระวัà¸\95ิà¸\97ัà¹\89à¸\87หมà¸\94à¹\84à¸\9bยัà¸\87à¸\8aืà¹\88à¸à¹\80รืà¹\88à¸à¸\87ใหม่
ชื่อเรื่องเก่าจะกลายเป็นหน้าเปลี่ยนทางไปยังชื่อเรื่องใหม่
-ให้แน่ใจว่า ตรวจสอบ[[Special:DoubleRedirects|หน้าเปลี่ยนทางซ้ำซ้อน]]หรือ[[Special:BrokenRedirects|หน้าเปลี่ยนทางที่เสีย]]
-คุณจะเป็นผู้รับผิดชอบเพื่อให้แน่ใจว่าลิงก์ต่าง ๆ ยังชี้ไปยังที่ที่สมควร
+คุณสามารถปรับให้หน้าเปลี่ยนทางที่ชี้ไปยังชื่อเรื่องเดิมได้อัตโนมัติ
+แต่หากคุณเลือกไม่ทำเช่นนั้น ให้แน่ใจว่าตรวจสอบ[[Special:DoubleRedirects|หน้าเปลี่ยนทางซ้ำซ้อน]]หรือ[[Special:BrokenRedirects|หน้าเปลี่ยนทางที่เสีย]]
+คุณเป็นผู้รับผิดชอบเพื่อให้แน่ใจว่าลิงก์ต่าง ๆ ยังชี้ไปยังที่ที่สมควร
-à¹\82à¸\9bรà¸\94à¸\97ราà¸\9aวà¹\88าหà¸\99à¹\89าà¸\94ัà¸\87à¸\81ลà¹\88าวà¸\88ะ'''à¹\84มà¹\88'''à¸\96ูà¸\81ยà¹\89าย à¸\96à¹\89ามีหà¸\99à¹\89าà¸\97ีà¹\88à¹\83à¸\8aà¹\89à¸\8aืà¹\88à¸à¹\80รืà¹\88à¸à¸\87à¹\83หมà¹\88à¸à¸¢à¸¹à¹\88à¹\81ลà¹\89ว à¹\80วà¹\89à¸\99à¹\81à¸\95à¹\88à¹\80à¸\9bà¹\87à¸\99หà¸\99à¹\89าวà¹\88าà¸\87หรืà¸à¸«à¸\99à¹\89าà¹\80à¸\9bลีà¹\88ยà¸\99à¸\97าà¸\87 à¹\81ละà¹\84มà¹\88มีà¸\9bระวัà¸\95ิà¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\83à¸\99à¸à¸\94ีà¸\95
+โปรดทราบว่าหน้าดังกล่าวจะ'''ไม่'''ถูกย้าย ถ้ามีหน้าที่ใช้ชื่อเรื่องใหม่อยู่แล้ว เว้นแต่เป็นหน้าเปลี่ยนทาง และไม่มีประวัติการแก้ไขในอดีต
ซึ่งหมายความว่า คุณสามารถเปลี่ยนชื่อหน้ากลับเป็นชื่อเดิมได้หากคุณทำผิดพลาด และคุณไม่สามารถเขียนทับหน้าที่มีอยู่แล้วได้
'''คำเตือน!'''
'specialpages-group-highuse' => 'หน้าที่มีการใช้งานสูง',
'specialpages-group-pages' => 'รายชื่อหน้า',
'specialpages-group-pagetools' => 'เครื่องมือเกี่ยวกับหน้าต่าง ๆ',
-'specialpages-group-wiki' => 'à¹\80à¸\84รืà¹\88à¸à¸\87มืà¸à¹\81ละà¸\82à¹\89à¸à¸¡à¸¹à¸¥à¸§à¸´à¸\81ิ',
+'specialpages-group-wiki' => 'à¸\82à¹\89à¸à¸¡à¸¹à¸¥à¹\81ละà¹\80à¸\84รืà¹\88à¸à¸\87มืà¸',
'specialpages-group-redirects' => 'เปลี่ยนทางหน้าพิเศษ',
'specialpages-group-spam' => 'เครื่องมือเกี่ยวกับสแปม',
'logentry-newusers-create' => 'บัญชีผู้ใช้ $1 ถูกสร้างขึ้น',
'logentry-newusers-create2' => 'บัญชีผู้ใช้ $3 ถูกสร้างขึ้นโดย $1',
'logentry-newusers-autocreate' => 'บัญชี $1 ถูกสร้างขึ้นอัตโนมัติ',
-'newuserlog-byemail' => 'รหัสผ่านถูกส่งทางอีเมล',
'rightsnone' => '(ไม่มี)',
# Feedback
# New logging system
'revdelete-restricted' => 'administratorlara goýlan çäklendirmeler',
'revdelete-unrestricted' => 'administratorlardan aýyrylan çäklendirmeler',
-'newuserlog-byemail' => 'parol e-poçta bilen iberildi',
'rightsnone' => '(hiç biri)',
# Search suggestions
'viewcount' => 'Namataan na pahinang ito nang {{PLURAL:$1|isang|$1}} beses.',
'protectedpage' => 'Pahinang nakasanggalang',
'jumpto' => 'Tumalon sa:',
-'jumptonavigation' => 'paglilibot (nabigasyon)',
+'jumptonavigation' => 'paglilibot',
'jumptosearch' => 'paghahanap',
'view-pool-error' => 'Paumanhin, ngunit masyado pong abala ang mga serbidor sa sandaling ito.
Masyadong maraming tagagamit ay sinusubukang tingnan ang pahinang ito.
'feed-invalid' => 'Hindi tanggap na uri ng serbisyo ng pagpaparating.',
'feed-unavailable' => 'Walang serbisyo mula sa sindikasyong pangpaglalathala',
'site-rss-feed' => 'Kargang RSS ng $1',
-'site-atom-feed' => 'Kargang Atom ng $1',
+'site-atom-feed' => 'Sindikasyong Atom ng $1',
'page-rss-feed' => 'Kargang RSS ng "$1"',
-'page-atom-feed' => 'Kargang Atom ng "$1"',
+'page-atom-feed' => 'Sindikasyong Atom ng "$1"',
'feed-atom' => 'Atom',
'feed-rss' => 'RSS',
'red-link-title' => '$1 (hindi umiiral ang pahina)',
Maaari kang tumuloy sa paggamit ng {{SITENAME}} nang hindi nakikilala (anonimo), o maaaring kang <span class='plainlinks'>[$1 lumagda/tumala muli]</span> bilang kapareho o ibang tagagamit.
Tandaan na may ilang pahinang maaaring magpatuloy na nagpapakitang parang nakalagda ka pa rin, hanggang sa linisin mo ang iyong baunang pambasa-basa (''browser cache'').",
+'welcomeuser' => 'Mabuhay, $1!',
+'welcomecreation-msg' => 'Nilikha na ang iyong kuwenta.
+Huwag kalimutang baguhin ang iyong [[Special:Preferences|mga kagustuhan sa {{SITENAME}}]].',
'yourname' => 'Bansag:',
'yourpassword' => 'Hudyat:',
'yourpasswordagain' => 'Hudyat mo uli:',
'defaultmessagetext' => 'Nakatakdang teksto ng mensahe',
# Content models
+'content-model-wikitext' => 'wikiteksto',
'content-model-text' => 'purong teksto',
# Parser/template warnings
'prefs-emailconfirm-label' => 'Kumpirmasyon ng e-liham:',
'prefs-textboxsize' => 'Sukat ng bintana ng pagbabago',
'youremail' => 'E-liham:',
-'username' => 'Bansag:',
+'username' => '{{GENDER:$1|Bansag}}:',
'uid' => 'ID ng tagagamit:',
'prefs-memberingroups' => 'Kasapi ng {{PLURAL:$1|na pangkat|na mga pangkat}}:',
'prefs-memberingroups-type' => '$1',
'undelete-revisionrow' => '$1 $2 ($3) $4 . . $5 $6 $7',
# Namespace form on various pages
-'namespace' => 'Espasyo ng pangalan:',
+'namespace' => 'Ngalan-espasyo:',
'invert' => 'Baligtarin and pinili',
'tooltip-invert' => 'Tsekan ang kahong ito upang ikubli ang mga pagbabago sa mga pahina sa loob ng napiling mga puwang ng pangalan (at ang kaugnay na puwang ng pangalan kung may tsek)',
'namespace_association' => 'Kaugnay na mga puwang na pampangalan',
'blocklist-nousertalk' => 'hindi mo mababago ang iyong pansariling pahina ng usapan',
'ipblocklist-empty' => 'Walang laman ang talaan ng pagharang/paghadlang.',
'ipblocklist-no-results' => 'Nakaharang ang hiniling na IP address o bansag.',
-'blocklink' => 'harangin/hadlangan',
-'unblocklink' => 'tanggalin ang pagharang/paghadlang',
+'blocklink' => 'harangin',
+'unblocklink' => 'tanggalin ang pagharang',
'change-blocklink' => 'baguhin ang pagharang/paghadlang',
'contribslink' => 'ambag',
'emaillink' => 'ipadala ang e-liham',
'tooltip-pt-logout' => 'Umalis sa pagkakalagda',
'tooltip-ca-talk' => 'Usapan tungkol sa nilalaman ng pahinang ito',
'tooltip-ca-edit' => 'Maaaring baguhin ang pahinang ito. Paki gamit ang buton ng paunang tingin bago itala.',
-'tooltip-ca-addsection' => 'Magsimula ng isang bagong seksyon',
+'tooltip-ca-addsection' => 'Magsimula ng isang bagong seksiyon',
'tooltip-ca-viewsource' => 'Nakaprotekta ang pahinang ito. Makikita mo lamang ang pinagmulan (source) nito.',
'tooltip-ca-history' => 'Nakaraang bersyon ng pahinang ito.',
'tooltip-ca-protect' => 'Iprotekta ang pahinang ito',
'tooltip-t-whatlinkshere' => 'Tala ng lahat ng pahina ng mga wiking nakakawing dito',
'tooltip-t-recentchangeslinked' => 'Kamakailang mga pagbabago na nakakawing mula sa pahinang ito',
'tooltip-feed-rss' => 'Subo/Kargang RSS para sa pahinang ito',
-'tooltip-feed-atom' => 'Subo/kargang Atom para sa pahinang ito',
+'tooltip-feed-atom' => 'Sindikasyong Atom para sa pahinang ito',
'tooltip-t-contributions' => 'Tunghayan ang tala ng mga ambag ng tagagamit na ito',
'tooltip-t-emailuser' => 'Magpadala ng isang e-liham sa tagagamit na ito',
'tooltip-t-upload' => 'Magkarga ng mga talaksan',
'tooltip-t-specialpages' => 'Tala ng lahat ng mga natatanging pahina',
-'tooltip-t-print' => 'Nalilimbag na bersyon ng pahinang ito',
+'tooltip-t-print' => 'Bersiyong maililimbag ng pahinang ito',
'tooltip-t-permalink' => 'Palagiang kawing sa bersyong ito ng pahina',
'tooltip-ca-nstab-main' => 'Tingnan ang pahina ng nilalaman',
'tooltip-ca-nstab-user' => 'Tingnan ang pahina ng tagagamit',
'widthheight' => '$1 × $2',
'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|pahina|mga pahina}}',
'file-info' => 'sukat ng talaksan: $1, tipo ng MIME: $2',
-'file-info-size' => '$1 × $2 piksel, sukat ng talaksan: $3, tipo ng MIME: $4',
+'file-info-size' => '$1 × $2 piksel, laki ng talaksan: $3, uri ng MIME: $4',
'file-info-size-pages' => '$1 × $2 mga piksel, sukat ng talaksan: $3, uri ng MIME: $4, $5 {{PLURAL:$5|pahina|mga pahina}}',
'file-nohires' => 'Walang makuhang mas mataas na resolusyon (kalinawan).',
'svg-long-desc' => 'Talaksang SVG, nasa mga bilang na $1 × $2 mga piksel, sukat ng talaksan: $3',
# Special:Tags
'tags' => 'Tanggap na mga tatak ng pagbabago',
-'tag-filter' => '[[Special:Tags|Tatakan]] ang pansala:',
+'tag-filter' => 'Pansala ng [[Special:Tags|tatak]]:',
'tag-filter-submit' => 'Pansala',
'tags-title' => 'Mga tatak',
'tags-intro' => 'Itinatala ng pahinang ito ang mga tatak na maaaring ipantatak ng sopwer sa isang pagbabago, at ang kanilang kahulugan.',
'logentry-newusers-create' => 'Lumikha si $1 ng isang kuwenta ng tagagamit',
'logentry-newusers-create2' => 'Lumikha si $1 ng isang kuwenta ng tagagamit na $3',
'logentry-newusers-autocreate' => 'Kusang nalikha ang akawnt na $1',
-'newuserlog-byemail' => 'Ipinadala ang hudyat sa pamamagitan ng e-liham',
'rightsnone' => '(wala)',
# Feedback
'Listusers' => array( 'KullanıcıListesi', 'KullanıcıListele' ),
'Lockdb' => array( 'DBKilitle', 'VeritabanıKilitle' ),
'Log' => array( 'Günlük', 'Günlükler', 'Kayıt', 'Kayıtlar' ),
- 'Lonelypages' => array( 'YalnızSayfalar' ),
+ 'Lonelypages' => array( 'YalnızSayfalar', 'YetimSayfalar' ),
'Longpages' => array( 'UzunSayfalar' ),
'MergeHistory' => array( 'GeçmişBirleştir' ),
'MIMEsearch' => array( 'MIMEArama' ),
'logentry-newusers-create' => 'Kullanıcı hesabı $1 oluşturdu',
'logentry-newusers-create2' => '$1 kullanıcı hesabı oluşturdu $3',
'logentry-newusers-autocreate' => '$1 hesabı otomatik olarak oluşturuldu',
-'newuserlog-byemail' => 'e-posta yoluyla şifre gönderilmiştir',
'rightsnone' => '(hiçbiri)',
# Feedback
'group-user' => 'Hadome',
'group-all' => '(kulle)',
+# Special:Log/newusers
+'newuserlogpage' => 'User creation log',
+
# Associated actions - in the sentence "You do not have permission to X"
'action-edit' => 'Mşaḥlaf iFaṭaṭe',
# Special:ListUsers
'listusers-submit' => 'Maḥway',
-# Special:Log/newusers
-'newuserlogpage' => 'User creation log',
-
# Special:ListGroupRights
'listgrouprights-group' => 'Gudo',
'listgrouprights-rights' => 'Ḥaqat',
'right-move-subpages' => "yisa matluka lawa na matluka-ntsongo ya wona, kun'wana",
'right-delete' => 'Sula matluka lawa',
+# Special:Log/newusers
+'newuserlogpage' => 'Nghula ya nxaxamelo wa ku tumbuluxiwa ka vatirhisi',
+
# Associated actions - in the sentence "You do not have permission to X"
'action-read' => 'hlaya tluka leri',
'action-edit' => 'Lulamisa tluka leri',
'linksearch-ok' => 'Lava',
'linksearch-line' => '$1 yi khwekerisiwe kusuka eka $2',
-# Special:Log/newusers
-'newuserlogpage' => 'Nghula ya nxaxamelo wa ku tumbuluxiwa ka vatirhisi',
-
# Special:ListGroupRights
'listgrouprights-members' => '(nxaxamelo wa valandzeri)',
'logentry-newusers-create' => '$1 хисап язмасы төзеде',
'logentry-newusers-create2' => '$1 $3 кулланучы хисап язмасын төзеде',
'logentry-newusers-autocreate' => 'Автоматик рәвештә $1 хисап язмасы төзелде.',
-'newuserlog-byemail' => 'серсүз электрон почта аша җибәрелде',
'rightsnone' => '(юк)',
# Feedback
# New logging system
'revdelete-restricted' => 'çikläwlär idaräçelärgä dä qullanıla',
-'newuserlog-byemail' => 'sersüz elektron poçta aşa cibärelde',
'rightsnone' => '(yuq)',
);
* @author לערי ריינהארט
*/
+$fallback = 'ru';
+$fallback8bitEncoding = "windows-1251";
+
$namespaceNames = array(
NS_MEDIA => 'Медиа',
NS_SPECIAL => 'Тускай',
NS_TALK => 'Чугаа',
NS_USER => 'Aжыглакчы',
- NS_USER_TALK => 'AжÑ\8bглакÑ\87Ñ\8b_Ñ\87Ñ\83гаазÑ\83',
- NS_PROJECT_TALK => '$1_Ñ\87Ñ\83гаазÑ\83',
+ NS_USER_TALK => 'AжÑ\8bглакÑ\87Ñ\8b_Ñ\87Ñ\83гаазÑ\8b',
+ NS_PROJECT_TALK => '$1_Ñ\87Ñ\83гаазÑ\8b',
NS_FILE => 'Файл',
- NS_FILE_TALK => 'Файл_Ñ\87Ñ\83гаазÑ\83',
+ NS_FILE_TALK => 'Файл_Ñ\87Ñ\83гаазÑ\8b',
NS_MEDIAWIKI => 'МедиаВики',
- NS_MEDIAWIKI_TALK => 'Ð\9cедиаÐ\92ики_Ñ\87Ñ\83гаазÑ\83',
- NS_TEMPLATE => 'Ð¥Ñ\8dÑ\8d',
- NS_TEMPLATE_TALK => 'Ð¥Ñ\8dÑ\8d_Ñ\87Ñ\83гаазÑ\83',
+ NS_MEDIAWIKI_TALK => 'Ð\9cедиаÐ\92ики_Ñ\87Ñ\83гаазÑ\8b',
+ NS_TEMPLATE => 'Ð\9cайÑ\8bк',
+ NS_TEMPLATE_TALK => 'Ð\9cайÑ\8bк_Ñ\87Ñ\83гаазÑ\8b',
NS_HELP => 'Дуза',
- NS_HELP_TALK => 'Ð\94Ñ\83за_Ñ\87Ñ\83гаазÑ\83',
- NS_CATEGORY => 'Ð\91өлүк',
- NS_CATEGORY_TALK => 'Ð\91өлүк_Ñ\87Ñ\83гаазÑ\83',
+ NS_HELP_TALK => 'Ð\94Ñ\83за_Ñ\87Ñ\83гаазÑ\8b',
+ NS_CATEGORY => 'Ð\9aаÑ\82егоÑ\80иÑ\8f',
+ NS_CATEGORY_TALK => 'Ð\9aаÑ\82егоÑ\80иÑ\8f_Ñ\87Ñ\83гаазÑ\8b',
);
-$namespaceAliases = array(
- 'Aжыглакчы_чугаа' => NS_USER_TALK,
- '$1_чугаа' => NS_PROJECT_TALK,
- 'Чурук' => NS_FILE,
- 'Чурук_чугаа' => NS_FILE_TALK,
- 'МедиаВики_чугаа' => NS_MEDIAWIKI_TALK,
- 'Хээ_чугаа' => NS_TEMPLATE_TALK,
- 'Дуза_чугаа' => NS_HELP_TALK,
- 'Бөлүк_чугаа' => NS_CATEGORY_TALK,
+
+$magicWords = array(
+ 'redirect' => array( '0', '#ШИГЛЕДИР', '#REDIRECT' ),
+ 'notoc' => array( '0', '__ДОПЧУЗУЧОК__', '__NOTOC__' ),
+ 'toc' => array( '0', '__ДОПЧУЗУ__', '__TOC__' ),
+ 'currentmonth' => array( '1', 'АМГЫАЙ', 'АМГЫАЙ2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+ 'currentmonth1' => array( '1', 'АМГЫАЙ1', 'CURRENTMONTH1' ),
+ 'currentmonthname' => array( '1', 'АМГЫАЙНЫҢАДЫ', 'CURRENTMONTHNAME' ),
+ 'currentday' => array( '1', 'АМГЫХҮН', 'CURRENTDAY' ),
+ 'currentday2' => array( '1', 'АМГЫХҮН2', 'CURRENTDAY2' ),
+ 'currentdayname' => array( '1', 'АМГЫХҮННҮҢАДЫ', 'CURRENTDAYNAME' ),
+ 'currentyear' => array( '1', 'АМГЫЧЫЛ', 'CURRENTYEAR' ),
+ 'currenttime' => array( '1', 'АМГЫҮЕ', 'CURRENTTIME' ),
+ 'currenthour' => array( '1', 'АМГЫШАК', 'CURRENTHOUR' ),
+ 'numberofpages' => array( '1', 'АРЫННАРНЫҢСАНЫ', 'NUMBEROFPAGES' ),
+ 'numberofarticles' => array( '1', 'ЧҮҮЛДЕРНИҢСАНЫ', 'NUMBEROFARTICLES' ),
+ 'numberoffiles' => array( '1', 'ФАЙЛДАРНЫҢСАНЫ', 'NUMBEROFFILES' ),
+ 'numberofusers' => array( '1', 'АЖЫГЛАКЧЫЛАРНЫҢСАНЫ', 'NUMBEROFUSERS' ),
+ 'numberofedits' => array( '1', 'ӨСКЕРЛИИШКИННЕРНИҢСАНЫ', 'NUMBEROFEDITS' ),
+ 'pagename' => array( '1', 'АРЫННЫҢАДЫ', 'PAGENAME' ),
+ 'namespace' => array( '1', 'АТТАРДЕЛГЕМИ', 'NAMESPACE' ),
+ 'namespacee' => array( '1', 'АТТАРДЕЛГЕМИ2', 'NAMESPACEE' ),
+ 'namespacenumber' => array( '1', 'АТТАРДЕЛГЕМИНИҢСАНЫ', 'NAMESPACENUMBER' ),
+ 'talkspace' => array( '1', 'ЧУГААДЕЛГЕМИ', 'TALKSPACE' ),
+ 'talkspacee' => array( '1', 'ЧУГААДЕЛГЕМИ2', 'TALKSPACEE' ),
+ 'img_right' => array( '1', 'оң', 'right' ),
+ 'img_left' => array( '1', 'солагай', 'left' ),
+ 'img_center' => array( '1', 'төп', 'center', 'centre' ),
+ 'sitename' => array( '1', 'САЙТТЫҢАДЫ', 'SITENAME' ),
+ 'ns' => array( '0', 'АД:', 'NS:' ),
+ 'nse' => array( '0', 'АД2:', 'NSE:' ),
+ 'currentweek' => array( '1', 'АМГЫЧЕДИХОНУК', 'CURRENTWEEK' ),
+ 'currentdow' => array( '1', 'АМГЫЧЕДИХОНУКТУҢХҮНҮ', 'CURRENTDOW' ),
+ 'raw' => array( '0', 'ЧИГ:', 'RAW:' ),
+ 'language' => array( '0', '#ДЫЛ:', '#LANGUAGE:' ),
+ 'special' => array( '0', 'тускай', 'special' ),
+ 'tag' => array( '0', 'демдек', 'tag' ),
+ 'pagesincategory_all' => array( '0', 'шупту', 'all' ),
+ 'pagesincategory_pages' => array( '0', 'арыннар', 'pages' ),
+ 'pagesincategory_files' => array( '0', 'файлдар', 'files' ),
);
$bookstoreList = array(
'Barnes & Noble' => 'http://shop.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=$1'
);
-$fallback8bitEncoding = "windows-1251";
-
$messages = array(
# User preference toggles
'tog-underline' => 'Холбааны шыяры:',
'newwindow' => '(يېڭى كۆزنەكتە ئاچ)',
'cancel' => 'ۋاز كەچ',
'moredotdotdot' => 'تەپسىلىي…',
+'morenotlisted' => 'تەپسىلاتى كۆرسىتىلمىگەنلىرى…',
'mypage' => 'بەتىم',
'mytalk' => 'مۇنازىرە بېتىم',
'anontalk' => 'بۇ IP نىڭ مۇنازىرە بېتى',
'gotaccount' => "ھېساباتىم بار؟ '''$1'''.",
'gotaccountlink' => 'تىزىمغا كىر',
'userlogin-resetlink' => 'تىزىمغا كىرىش تەپسىلاتىنى ئۇنۇتتىڭىز؟',
-'createaccountmail' => 'ئېلخەتتە',
+'createaccountmail' => 'ۋاقىتلىق ئىختىيارىي بىر ئېمنى ئىشلىتىدۇ ھەمدە تۆۋەندىكى بەلگىلەنگەن تورخەت ئادرېسىغا ئەۋەتىدۇ',
'createaccountreason' => 'سەۋەب:',
'badretype' => 'سىز كىرگۈزگەن ئىم ماس كەلمىدى.',
'userexists' => 'كىرگۈزگەن ئىشلەتكۈچى ئاتى ئىشلىتىلىۋاتىدۇ.
# E-mail sending
'php-mail-error-unknown' => 'PHP نىڭ mail() فونكسىيەسىدىكى يوچۇن خاتالىق',
'user-mail-no-addy' => 'ئېلخەت ئادرېسسىز خەت يوللاشنى سىنىدى.',
+'user-mail-no-body' => 'بوش ياكى مەزمۇنى قىسقا مۇۋاپىق بولمىغان تورخەت ئەۋەتىشنى سىنىدى.',
# Change password dialog
'resetpass' => 'ئىم ئۆزگەرت',
'readonlywarning' => "'''ئاگاھلاندۇرۇش: ساندان قۇلۇپلىنىپ ئاسرىلىۋاتىدۇ، شۇڭلاشقا ئۆزگەرتىشىڭىزنى ساقلىيالمايسىز.'''
سىز بۇ تېكستنى كۆچۈرۈپ تېكست ھۆججىتىگە ساقلاپ، سەل تۇرۇپ ئاندىن ئۆزگەرتىڭ.
-باشقۇرغۇچىنىڭ چۈشەندۈرۈشى تۆۋەندىكىچە: $1",
+ساÙ\86داÙ\86Ù\86Ù\89 Ù\82Û\87Ù\84Û\87Ù¾Ù\84Ù\89غاÙ\86 باشÙ\82Û\87رغÛ\87Ú\86Ù\89Ù\86Ù\89Ú Ú\86Û\88Ø´Û\95Ù\86دÛ\88رÛ\88Ø´Ù\89 تÛ\86Û\8bÛ\95Ù\86دÙ\89Ù\83Ù\89Ú\86Û\95: $1",
'protectedpagewarning' => "'''ئاگاھلاندۇرۇش:''' بۇ بەت قۇلۇپلانغان شۇڭلاشقا باشقۇرغۇچى ھوقۇقىغا ئىگە ئىشلەتكۈچىلا ئۇنى ئۆزگەرتەلەيدۇ. پايدىلىنىش ئۈچۈن تۆۋەندە يېقىنقى خاتىرە تەمىنلەندى:",
'semiprotectedpagewarning' => "'''دىققەت:''' بۇ بەت قۇلۇپلانغان شۇڭلاشقا خەتلەتكەن ئىشلەتكۈچىلا ئۇنى تەھرىرلىيەلەيدۇ.
پايدىلىنىش ئۈچۈن تۆۋەندە يېقىنقى خاتىرە تەمىنلەندى:",
# Special:ActiveUsers
'activeusers' => 'ئاكتىپ ئەزالار تىزىملىكى',
'activeusers-intro' => 'بۇ يېقىنقى $1 {{PLURAL:$1| كۈن|كۈن}}دىكى مەشغۇلات قىلغان ئىشلەتكۈچىلەر تىزىملىكى.',
-'activeusers-count' => 'يېقىنقى {{PLURAL:$3|كۈن|$3 كۈن}}دىكى $1 {{PLURAL:$1|تەھرىر|تەھرىر}} قېتىم سانى',
+'activeusers-count' => 'يېقىنقى {{PLURAL:$3|كۈن|$3 كۈن}}دىكى {{PLURAL:$1|مەشغۇلات}} قېتىم سانى $1',
'activeusers-from' => 'باشلانغان ئىشلەتكۈچىنى كۆرسەت:',
'activeusers-hidebots' => 'ماشىنا ئادەمنى يوشۇر',
'activeusers-hidesysops' => 'باشقۇرغۇچىنى يوشۇر',
'usermessage-template' => 'MediaWiki:UserMessage',
# Watchlist
-'watchlist' => 'كۆزەت تىزىملىكىم',
+'watchlist' => 'كۆزەت تىزىملىكى',
'mywatchlist' => 'كۆزىتىش تىزىملىكى',
'watchlistfor2' => '$1 $2 ئۈچۈن',
'nowatchlist' => 'كۆزەت تىزىملىكىڭىز بوش.',
'prot_1movedto2' => '[[$1]] دىن [[$2]]غا يۆتكەلدى',
'protect-badnamespace-title' => 'قوغداتقل بولمايدىغان ئىسىم بوشلۇق',
'protect-badnamespace-text' => 'بۇ ئىسىم بوشلۇقىدىكى بەتنى قوغدىغىلى بولمايدۇ.',
+'protect-norestrictiontypes-text' => 'بۇ بەتنى ساقلىيالمايدۇ سەۋەبى ئىشلەتكىلى بولىدىغان قوغداش تىپى يوق.',
+'protect-norestrictiontypes-title' => 'قوغدىغىلى بولمايدىغان بەت',
'protect-legend' => 'قوغداش جەزملە',
'protectcomment' => 'سەۋەب:',
'protectexpiry' => 'قەرەلى:',
'protect-cascadeon' => 'تۆۋەندىكى {{PLURAL:$1|بىر|بىر قانچە}} بەت مەزكۇر بەتنى ئۆز ئىچىگە ئېلىش بىلەن بىللە زەنجىرسىمان قوغداش قوزغىتىلغان.
شۇڭلاشقا بۇ بەتمۇ قوغدالغان. بۇ بەتنىڭ قوغداش دەرىجىسىنى ئۆزگەرتەلەيسىز، ئەمما زەنجىرسىمان قوغداشقا تەسىر كۆرسەتمەيدۇ.',
'protect-default' => 'ھەممە ئىشلەتكۈچىگە يول قوي',
-'protect-fallback' => '"$1" نىڭ ئىجازىتى زۆرۈر.',
-'protect-level-autoconfirmed' => 'يېڭى ۋە تىزىملاتمىغان ئىشلەتكۈچى چەكلىنىدۇ',
-'protect-level-sysop' => 'باشقۇرغۇچىلا',
+'protect-fallback' => 'پەقەت "$1" ھوقۇقى بار ئىشلەتكۈچىلەرگىلا يول قويىدۇ',
+'protect-level-autoconfirmed' => 'ئۆزلۈكىدىن جەزملەنگەن ئىشلەتكۈچىلەرگىلا يول قويىدۇ',
+'protect-level-sysop' => 'باشقۇرغۇچىلارغىلا يول قويىدۇ',
'protect-summary-cascade' => 'زەنجىرسىمان قۇلۇپ',
'protect-expiring' => ' $1 (UTC) توختىتىلغان',
'protect-expiring-local' => '$1 ۋاقتى توشىدۇ',
'pageinfo-magic-words' => '{{PLURAL:$1|سېھرىي خەت}}',
'pageinfo-hidden-categories' => '{{PLURAL:$1|يوشۇرۇلغان تۈر}}',
'pageinfo-templates' => '{{PLURAL:$1|سىڭدۈرۈلگەن قېلىپ}}',
+'pageinfo-transclusions' => '($1) {{PLURAL:$1|بەت}}تە سىڭدۈرۈلگەن',
'pageinfo-toolboxlink' => 'بەت ئۇچۇر',
'pageinfo-redirectsto' => 'قايتا نىشانلىنىدىغىنى',
'pageinfo-redirectsto-info' => ' ئۇچۇر',
'pageinfo-protect-cascading' => 'زەنجىرلىك قۇلۇپ بۇ جايدىن باشلىنىدۇ',
'pageinfo-protect-cascading-yes' => 'ھەئە',
'pageinfo-protect-cascading-from' => 'قوغداش دەرىجىسىنىڭ باغلىنىش ئورنى',
+'pageinfo-category-info' => 'تۈر ئۇچۇرى',
+'pageinfo-category-pages' => 'بەت سانى',
+'pageinfo-category-subcats' => 'تارماق تۈر سانى',
+'pageinfo-category-files' => 'ھۆججەت سانى',
# Skin names
'skinname-standard' => 'Classic',
'minutes' => '{{PLURAL: $1|$1مىنۇت}}',
'hours' => '{{PLURAL:$1|$1سائەت}}',
'days' => '{{PLURAL:$1|$1 كۈن}}',
+'months' => '{{PLURAL:$1|$1 ئاي}}',
'years' => '{{PLURAL:$1|$1 يىل}}',
'ago' => '$1 بۇرۇن',
'just-now' => 'بايا',
'specialpages-group-highuse' => 'كۆپ ئىشلىتىلگەن بەت',
'specialpages-group-pages' => 'بەت تىزىملىكى',
'specialpages-group-pagetools' => 'بەت قورالى',
-'specialpages-group-wiki' => 'Wiki سانلىق مەلۇماتى ۋە قورال',
+'specialpages-group-wiki' => 'سانلىق مەلۇمات ۋە قوراللار',
'specialpages-group-redirects' => 'قايتا نىشانلانغان ئالاھىدە بەت',
'specialpages-group-spam' => 'ئەخلەتكە قارشى قورال',
'logentry-newusers-newusers' => 'ئەزا $1 قۇرۇلبولدى',
'logentry-newusers-create' => 'ئەزا $1 قۇرۇلبولدى',
'logentry-newusers-create2' => 'ئىشلەتكۈچى ھېساباتى $3 نى $1 قۇردى',
+'logentry-newusers-byemail' => 'ئىشلەتكۈچى ھېساباتى $3 نى $1 قۇردى ھەمدە ئىمنى تورخەتكە ئەۋەتتى',
'logentry-newusers-autocreate' => 'ئىشلەتكۈچى $1 ئاپتوماتلىق قۇرۇلدى',
-'newuserlog-byemail' => 'ئىم ئىلخەتتە يوللاندى',
'logentry-rights-rights' => '$3 نىڭ ئىشلەتكۈچى گۇرۇپپىسىنى $4 دىن $5 غا $1 ئالماشتۇردى',
'logentry-rights-rights-legacy' => '$3 نىڭ ئىشلەتكۈچى گۇرۇپپىسىنى $1 ئۆزگەرتتى',
'logentry-rights-autopromote' => '$1 نىڭ ئىشلەتكۈچى گۇرۇپپىسى ئۆزلۈكىدىن $4 دىن $5 غا يۈكسەلدى',
'api-error-ok-but-empty' => 'ئىچكى خاتالىق: مۇلازىمېتىردا ئىنكاس يوق.',
'api-error-overwrite' => 'مەۋجۇد ھۆججەت قاپلاشقا يول قويمايدۇ.',
'api-error-stashfailed' => 'ئىچكى خاتالىق: مۇلازىمېتىر ۋاقىتلىق ھۆججەتنى ساقلىيالمىدى.',
+'api-error-publishfailed' => 'ئىچكى خاتالىق: مۇلازىمېتىر ۋاقىتلىق ھۆججەتنى تارقىتالمىدى.',
'api-error-timeout' => 'مۇلازىمەت كومپيۇتېر كۆتكەن ۋاقتا ئىنكاس قايتۇرمىدى.',
'api-error-unclassified' => 'نامەلۇم خاتالىق كۆرۈلدى.',
'api-error-unknown-code' => 'نامەلۇم خاتالىق:"$1"',
'gotaccount' => "Ви вже зареєстровані? '''$1'''.",
'gotaccountlink' => 'Увійдіть',
'userlogin-resetlink' => 'Забули дані, потрібні для входу?',
-'createaccountmail' => 'елекÑ\82Ñ\80онноÑ\8e поÑ\88Ñ\82оÑ\8e',
+'createaccountmail' => 'Ð\92икоÑ\80иÑ\81Ñ\82аÑ\82и Ñ\82имÑ\87аÑ\81овий випадковий паÑ\80олÑ\8c Ñ\96 надÑ\96Ñ\81лаÑ\82и його на адÑ\80еÑ\81Ñ\83 елекÑ\82Ñ\80онноÑ\97 поÑ\88Ñ\82и, вказанÑ\83 нижÑ\87е',
'createaccountreason' => 'Причина:',
'badretype' => 'Уведені вами паролі не збігаються.',
'userexists' => "Уведене ім'я користувача вже існує.
# Special:ActiveUsers
'activeusers' => 'Список активних користувачів',
'activeusers-intro' => 'Це список користувачів, які здійснювали які-небудь дії за {{PLURAL:$1|останній $1 день|останні $1 дні|останні $1 днів}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|редагування|редагування|редагувань}} за {{PLURAL:$3|останній $3 день|останні $3 дні|останні $3 днів}}',
+'activeusers-count' => '$1 {{PLURAL:$1|дія|дії|дій}} за {{PLURAL:$3|останній $3 день|останні $3 дні|останні $3 днів}}',
'activeusers-from' => 'Показувати користувачів, починаючи з:',
'activeusers-hidebots' => 'Приховати ботів',
'activeusers-hidesysops' => 'Приховати адміністраторів',
'specialpages-group-highuse' => 'Часто вживані',
'specialpages-group-pages' => 'Списки сторінок',
'specialpages-group-pagetools' => 'Інструменти',
-'specialpages-group-wiki' => 'Ð\92Ñ\96кÑ\96-дані та інструменти',
+'specialpages-group-wiki' => 'Ð\94ані та інструменти',
'specialpages-group-redirects' => 'Перенаправлення',
'specialpages-group-spam' => 'Інструменти проти спаму',
'logentry-newusers-newusers' => 'Створено обліковий запис $1',
'logentry-newusers-create' => '$1 — створено обліковий запис',
'logentry-newusers-create2' => '$1 {{GENDER:$2|створив|створила}} обліковий запис {{GENDER:$4|користувача|користувачки}} $3',
+'logentry-newusers-byemail' => 'Обліковий запис {{GENDER:$2|користувача|користувачки}} створений {{GENDER:$4|користувачем|користувачкою}} $1 і пароль було надіслано електронною поштою',
'logentry-newusers-autocreate' => '$1 — автоматично створений обліковий запис',
-'newuserlog-byemail' => 'пароль надісланий електронною поштою',
'logentry-rights-rights' => '$1 {{GENDER:$1|змінив|змінила}} членство в групах для $3 із $4 на $5',
'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|змінив|змінила}} членство в групах для $3',
'logentry-rights-autopromote' => '$1 було автоматично переведено із $4 в $5',
'api-error-ok-but-empty' => 'Внутрішня помилка: сервер не відповідає.',
'api-error-overwrite' => 'Заміну існуючого файлу не дозволено.',
'api-error-stashfailed' => 'Внутрішня помилка: сервер не зміг зберегти тимчасовий файл.',
+'api-error-publishfailed' => 'Внутрішня помилка: сервер не зміг опублікувати тимчасовий файл.',
'api-error-timeout' => 'Сервер не відповідає протягом очікуваного часу.',
'api-error-unclassified' => 'Сталася невідома помилка.',
'api-error-unknown-code' => 'Невідома помилка: «$1»',
NS_CATEGORY_TALK => 'تبادلۂ_خیال_زمرہ',
);
+$specialPageAliases = array(
+ 'Activeusers' => array( 'متحرک_صارفین' ),
+ 'Allmessages' => array( 'تمام_پیغامات' ),
+ 'Allpages' => array( 'تمام_صفحات' ),
+ 'Ancientpages' => array( 'قدیم_صفحات' ),
+ 'Badtitle' => array( 'خراب_عنوان' ),
+ 'Blankpage' => array( 'خالی_صفحہ' ),
+ 'Block' => array( 'پابندی،_دستور_شبکی_پابندی،_پابندی_بر_صارف' ),
+ 'Blockme' => array( 'میری_پابندی' ),
+ 'Booksources' => array( 'کتابی_وسائل' ),
+ 'BrokenRedirects' => array( 'شکستہ_رجوع_مکررات' ),
+ 'Categories' => array( 'زمرہ_جات' ),
+ 'ChangeEmail' => array( 'ڈاک_تبدیل' ),
+ 'ChangePassword' => array( 'کلمہ_شناخت_تبدیل،_تنظیم_کلمہ_شناخت' ),
+ 'ComparePages' => array( 'موازنہ_صفحات' ),
+ 'Confirmemail' => array( 'تصدیق_ڈاک' ),
+ 'Contributions' => array( 'شراکتیں' ),
+ 'CreateAccount' => array( 'تخلیق_کھاتہ' ),
+ 'Deadendpages' => array( 'مردہ_صفحات' ),
+ 'DeletedContributions' => array( 'حذف_شدہ_شراکتیں' ),
+ 'Disambiguations' => array( 'ضد_ابہام_صفحات' ),
+ 'DoubleRedirects' => array( 'دوہرے_رجوع_مکررات' ),
+ 'EditWatchlist' => array( 'ترمیم_زیر_نظر' ),
+ 'Emailuser' => array( 'صارف_ڈاک' ),
+ 'Export' => array( 'برآمدگی' ),
+ 'Fewestrevisions' => array( 'کم_نظر_ثانی_شدہ' ),
+ 'FileDuplicateSearch' => array( 'دہری_ملف_تلاش' ),
+ 'Filepath' => array( 'راہ_ملف' ),
+ 'Import' => array( 'درآمدگی' ),
+ 'Invalidateemail' => array( 'ڈاک_تصدیق_منسوخ' ),
+ 'JavaScriptTest' => array( 'تجربہ_جاوا_اسکرپٹ' ),
+ 'BlockList' => array( 'فہرست_ممنوع،_فہرست_دستور_شبکی_ممنوع' ),
+ 'LinkSearch' => array( 'تلاش_روابط' ),
+ 'Listadmins' => array( 'فہرست_منتظمین' ),
+ 'Listbots' => array( 'فہرست_روبہ_جات' ),
+ 'Listfiles' => array( 'فہرست_املاف،_فہرست_تصاویر' ),
+ 'Listgrouprights' => array( 'فہرست_اختیارات_گروہ،_صارفی_گروہ_اختیارات' ),
+ 'Listredirects' => array( 'فہرست_رجوع_مکررات' ),
+ 'Listusers' => array( 'فہرست_صارفین،_صارف_فہرست' ),
+ 'Log' => array( 'نوشتہ،_نوشتہ_جات' ),
+ 'Lonelypages' => array( 'یتیم_صفحات' ),
+ 'Longpages' => array( 'طویل_صفحات' ),
+ 'MergeHistory' => array( 'ضم_تاریخچہ' ),
+ 'Movepage' => array( 'منتقلی_صفحہ' ),
+ 'Mycontributions' => array( 'میرا_حصہ' ),
+ 'Mypage' => array( 'میرا_صفحہ' ),
+ 'Mytalk' => array( 'میری_گفتگو' ),
+ 'Myuploads' => array( 'میرے_زبراثقالات' ),
+ 'Newimages' => array( 'جدید_املاف،_جدید_تصاویر' ),
+ 'Newpages' => array( 'جدید_صفحات' ),
+ 'PermanentLink' => array( 'مستقل_ربط' ),
+ 'Popularpages' => array( 'مقبول_صفحات' ),
+ 'Preferences' => array( 'ترجیحات' ),
+ 'Prefixindex' => array( 'اشاریہ_سابقہ' ),
+ 'Protectedpages' => array( 'محفوظ_صفحات' ),
+ 'Protectedtitles' => array( 'محفوظ_عناوین' ),
+ 'Randompage' => array( 'تصادف،_تصادفی_مقالہ' ),
+ 'Randomredirect' => array( 'تصادفی_رجوع_مکرر' ),
+ 'Recentchanges' => array( 'حالیہ_تبدیلیاں' ),
+ 'Recentchangeslinked' => array( 'متعلقہ_تبدیلیاں' ),
+ 'Revisiondelete' => array( 'حذف_اعادہ' ),
+ 'Search' => array( 'تلاش' ),
+ 'Shortpages' => array( 'مختصر_صفحات' ),
+ 'Specialpages' => array( 'خصوصی_صفحات' ),
+ 'Statistics' => array( 'شماریات' ),
+ 'Uncategorizedcategories' => array( 'غیر_زمرہ_بند_زمرہ_جات' ),
+ 'Uncategorizedimages' => array( 'غیر_زمرہ_بند_املاف،_غیر_زمرہ_بند_تصاویر' ),
+ 'Uncategorizedpages' => array( 'غیر_زمرہ_بند_صفحات' ),
+ 'Uncategorizedtemplates' => array( 'غیر_زمرہ_بند_سانچے' ),
+ 'Undelete' => array( 'بحال' ),
+ 'Unusedcategories' => array( 'غیر_مستعمل_زمرہ_جات' ),
+ 'Unusedimages' => array( 'غیر_مستعمل_املاف،_غیر_مستعمل_تصاویر' ),
+ 'Unusedtemplates' => array( 'غیر_مستعمل_سانچے' ),
+ 'Unwatchedpages' => array( 'نادیدہ_صفحات' ),
+ 'Upload' => array( 'زبراثقال' ),
+ 'Userlogin' => array( 'داخل_نوشتگی' ),
+ 'Userlogout' => array( 'خارج_نوشتگی' ),
+ 'Userrights' => array( 'صارفی_اختیارات' ),
+ 'Version' => array( 'اخراجہ' ),
+ 'Wantedcategories' => array( 'مطلوب_زمرہ_جات' ),
+ 'Wantedfiles' => array( 'مطلوب_املاف' ),
+ 'Wantedpages' => array( 'مطلوب_صفحات،_شکستہ_روابط' ),
+ 'Wantedtemplates' => array( 'مطلوب_سانچے' ),
+ 'Watchlist' => array( 'زیر_نظر_فہرست' ),
+ 'Whatlinkshere' => array( 'یہاں_کس_کا_رابطہ' ),
+ 'Withoutinterwiki' => array( 'بدون_بین_الویکی' ),
+);
+
+$magicWords = array(
+ 'redirect' => array( '0', '#رجوع_مکرر', '#REDIRECT' ),
+ 'notoc' => array( '0', '_فہرست_نہیں_', '__NOTOC__' ),
+ 'toc' => array( '0', '__فہرست__', '__TOC__' ),
+ 'noeditsection' => array( '0', '__ناتحریرقسم__', '__NOEDITSECTION__' ),
+ 'msg' => array( '0', 'پیغام:', 'MSG:' ),
+ 'subst' => array( '0', 'نقل:', 'SUBST:' ),
+ 'safesubst' => array( '0', 'محفوظ_نقل:', 'SAFESUBST:' ),
+ 'img_thumbnail' => array( '1', 'تصغیر', 'thumbnail', 'thumb' ),
+ 'img_right' => array( '1', 'دائیں', 'right' ),
+ 'img_left' => array( '1', 'بائیں', 'left' ),
+ 'img_center' => array( '1', 'درمیان', 'center', 'centre' ),
+ 'sitename' => array( '1', 'نام_موقع', 'SITENAME' ),
+ 'grammar' => array( '0', 'قواعد:', 'GRAMMAR:' ),
+ 'gender' => array( '0', 'جنس:', 'GENDER:' ),
+ 'special' => array( '0', 'خاص', 'special' ),
+ 'speciale' => array( '0', 'خاص_عنوان', 'speciale' ),
+ 'index' => array( '1', '__اشاریہ__', '__INDEX__' ),
+ 'noindex' => array( '1', '__نااشاریہ__', '__NOINDEX__' ),
+);
+
$messages = array(
# User preference toggles
'tog-underline' => 'ربط کی خط کشیدگی:',
'Kategoriya_munozarasi' => NS_CATEGORY_TALK,
);
+$magicWords = array(
+ 'redirect' => array( '0', '#YONALTIRISH', '#REDIRECT' ),
+ 'notoc' => array( '0', '__ICHIDAGILARYOQ__', '__NOTOC__' ),
+ 'nogallery' => array( '0', '__GALEREYAYOQ__', '__NOGALLERY__' ),
+ 'forcetoc' => array( '0', '__ICHIDAGILARMAJBURIY__', '__FORCETOC__' ),
+ 'toc' => array( '0', '__ICHIDAGILARI__', '__ICHIDAGILAR__', '__TOC__' ),
+ 'noeditsection' => array( '0', '__TAHRIRYOQ__', '__TARTIBLASHYOQ__', '__NOEDITSECTION__' ),
+ 'currentmonth' => array( '1', 'JORIYOY', 'JORIYOY2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+ 'currentmonth1' => array( '1', 'JORIYOY1', 'CURRENTMONTH1' ),
+ 'currentmonthname' => array( '1', 'JORIYOYNOMI', 'CURRENTMONTHNAME' ),
+ 'currentmonthnamegen' => array( '1', 'JORIYOYNOMIQARATQICH', 'CURRENTMONTHNAMEGEN' ),
+ 'currentmonthabbrev' => array( '1', 'JORIYOYQISQARTMASI', 'CURRENTMONTHABBREV' ),
+ 'currentday' => array( '1', 'JORIYKUN', 'CURRENTDAY' ),
+ 'currentday2' => array( '1', 'JORIYKUN2', 'CURRENTDAY2' ),
+ 'currentdayname' => array( '1', 'JORIYKUNNOMI', 'CURRENTDAYNAME' ),
+ 'currentyear' => array( '1', 'JORIYYIL', 'CURRENTYEAR' ),
+ 'currenttime' => array( '1', 'JORIYVAQT', 'CURRENTTIME' ),
+ 'currenthour' => array( '1', 'JORIYSOAT', 'CURRENTHOUR' ),
+ 'localmonth' => array( '1', 'MAHALLIYOY', 'MAHALLIYOY2', 'LOCALMONTH', 'LOCALMONTH2' ),
+ 'localmonth1' => array( '1', 'MAHALLIYOY1', 'LOCALMONTH1' ),
+ 'localmonthname' => array( '1', 'MAHALLIYOYNOMI', 'LOCALMONTHNAME' ),
+ 'localmonthnamegen' => array( '1', 'MAHALLIYOYQARATQICH', 'LOCALMONTHNAMEGEN' ),
+ 'localmonthabbrev' => array( '1', 'MAHALLIYOYQISQARTMASI', 'LOCALMONTHABBREV' ),
+ 'localday' => array( '1', 'MAHALLIYKUN', 'LOCALDAY' ),
+ 'localday2' => array( '1', 'MAHALLIYKUN2', 'LOCALDAY2' ),
+ 'localdayname' => array( '1', 'MAHALLIYKUNNOMI', 'LOCALDAYNAME' ),
+ 'localyear' => array( '1', 'MAHALLIYYIL', 'LOCALYEAR' ),
+ 'localtime' => array( '1', 'MAHALLIYVAQT', 'LOCALTIME' ),
+ 'localhour' => array( '1', 'MAHALLIYSOAT', 'LOCALHOUR' ),
+ 'numberofpages' => array( '1', 'SAHIFASONI', 'NUMBEROFPAGES' ),
+ 'numberofarticles' => array( '1', 'MAQOLASONI', 'NUMBEROFARTICLES' ),
+ 'numberoffiles' => array( '1', 'FAYLSONI', 'NUMBEROFFILES' ),
+ 'numberofusers' => array( '1', 'FOYDALANUVCHISONI', 'NUMBEROFUSERS' ),
+ 'numberofactiveusers' => array( '1', 'FAOLFOYDALANUVCHISONI', 'NUMBEROFACTIVEUSERS' ),
+ 'numberofedits' => array( '1', 'OZGARISHSONI', 'NUMBEROFEDITS' ),
+ 'numberofviews' => array( '1', 'KORISHSONI', 'NUMBEROFVIEWS' ),
+ 'pagename' => array( '1', 'SAHIFANOMI', 'PAGENAME' ),
+ 'numberofadmins' => array( '1', 'ADMINISTRATORSONI', 'NUMBEROFADMINS' ),
+ 'special' => array( '0', 'maxsus', 'special' ),
+ 'tag' => array( '0', 'yorliq', 'tag' ),
+ 'hiddencat' => array( '1', '__YASHIRINTURKUM__', '__HIDDENCAT__' ),
+ 'pagesincategory' => array( '1', 'TURKUMDAGISAHIFALAR', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+ 'pagesize' => array( '1', 'SAHIFAHAJMI', 'PAGESIZE' ),
+ 'index' => array( '1', '__INDEKS__', '__INDEX__' ),
+ 'noindex' => array( '1', '__INDEKSYOQ__', '__NOINDEX__' ),
+ 'url_wiki' => array( '0', 'VIKI', 'WIKI' ),
+);
+
$linkTrail = '/^([a-zʻʼ“»]+)(.*)$/sDu';
$messages = array(
'Booksources' => array( 'SercaISBN' ),
'BrokenRedirects' => array( 'RimandiSbalià' ),
'Categories' => array( 'Categorie' ),
- 'ChangePassword' => array( 'ReinpostaPassword' ),
+ 'ChangeEmail' => array( 'CanbiaEmail' ),
+ 'ChangePassword' => array( 'CanbiaPassword' ),
'ComparePages' => array( 'ConfrontaPagine' ),
'Confirmemail' => array( 'ConfermaEMail' ),
'Contributions' => array( 'Contributi' ),
'DeletedContributions' => array( 'ContributiScancelà' ),
'Disambiguations' => array( 'Disanbiguassion' ),
'DoubleRedirects' => array( 'DópiRimandi' ),
+ 'EditWatchlist' => array( 'CanbiaTegnuiDeOcio' ),
'Emailuser' => array( 'MandaEMail' ),
'Export' => array( 'Esporta' ),
'Fewestrevisions' => array( 'PagineConMancoRevision' ),
'MIMEsearch' => array( 'SercaMIME' ),
'Mostcategories' => array( 'PagineConPiassèCategorie' ),
'Mostimages' => array( 'FilePiassèDoparà' ),
+ 'Mostinterwikis' => array( 'PiassèInterwiki' ),
'Mostlinked' => array( 'PaginePiassèRiciamà' ),
'Mostlinkedcategories' => array( 'CategoriePiassèDoparà' ),
'Mostlinkedtemplates' => array( 'ModèiPiassèDoparà' ),
'Mycontributions' => array( 'IMeContributi' ),
'Mypage' => array( 'LaMePaginaUtente' ),
'Mytalk' => array( 'LeMeDiscussion' ),
+ 'Myuploads' => array( 'IMeCaricamenti' ),
'Newimages' => array( 'FileNovi' ),
'Newpages' => array( 'PagineNove' ),
+ 'PasswordReset' => array( 'ReinpostaPassword' ),
+ 'PermanentLink' => array( 'LinkParmanente' ),
'Popularpages' => array( 'PaginePiassèVisità' ),
'Preferences' => array( 'Preferense' ),
'Prefixindex' => array( 'Prefissi' ),
'tog-previewontop' => "Mostra l'anteprima sora ła caseła de modifega e no soto",
'tog-previewonfirst' => "Mostra l'anteprima par ła prima modifega",
'tog-nocache' => 'Disativa ła cache par łe pajine del browser',
-'tog-enotifwatchlistpages' => 'Segnałame via e-mail łe modifeghe a łe pajine oservae',
+'tog-enotifwatchlistpages' => "Segnałame via e-mail có vien canbià na pàjina o un file prexente inte ła lista de łe tegnùe d'ocio",
'tog-enotifusertalkpages' => 'Avìseme par e-mail se i scrive su la me pagina de discussion',
-'tog-enotifminoredits' => 'Avìseme par e-mail anca par i canbiamenti picenini',
+'tog-enotifminoredits' => "Avìxeme par e-mail anca pa' i canbiamenti picenini de pàjine e file",
'tog-enotifrevealaddr' => 'Fà védar el me indirisso e-mail in tei messagi de aviso',
'tog-shownumberswatching' => 'Mostra el numaro de utenti che i ga ła pajina en oservasion',
'tog-oldsig' => 'Anteprima de ła firma:',
'underline-always' => 'Senpre',
'underline-never' => 'Mai',
-'underline-default' => 'Mantieni łe inpostasion del browser',
+'underline-default' => 'Mantien łe inpostasion del browser o de ła skin',
# Font style option in Special:Preferences
'editfont-style' => "Stiłe font de l'area de modifega:",
'cancel' => 'Lassa star',
'moredotdotdot' => 'Altro...',
'morenotlisted' => 'Altro nó elencà',
-'mypage' => 'La me pagina',
+'mypage' => 'Pàjina',
'mytalk' => 'Discussion',
'anontalk' => 'Discusion par sto IP',
'navigation' => 'Navigasion',
'vector-action-protect' => 'Protezi',
'vector-action-undelete' => 'Recupera',
'vector-action-unprotect' => 'Canbia ła protesion',
-'vector-simplesearch-preference' => "Intaca i sugerimenti di ricerca avansadi (solo par l'interfacia Vector)",
+'vector-simplesearch-preference' => "Abiłita ła sbara par ła riserca senplifegà (soło che par l'interfacia Vector)",
'vector-view-create' => 'Crea',
'vector-view-edit' => 'Canbia',
'vector-view-history' => "Varda ła 'storia",
# General errors
'error' => 'Erore',
'databaseerror' => 'Erore del database',
-'dberrortext' => 'Erore de sintassi ne ła richiesta inoltrà al database.
-Ciò podaria indicare ła presensa de on bug nel software.
-L\'ultima query invià al database xè sta:
+'dberrortext' => 'Eror de sintasi inte ła dimanda inoltrà al database.
+Ciò podaria indicar ła prexensa de un bug inte\'l software.
+L\'ultema query invià al database ła xè sta:
<blockquote><tt>$1</tt></blockquote>
riciamà da ła funsion "<tt>$2</tt>".
-El database el ga restituio el seguente erore "<tt>$3: $4</tt>".',
+El database el ga restituio el seguente eror "<tt>$3: $4</tt>".',
'dberrortextcl' => 'Erore de sintasi ne ła richiesta inoltrà al database.
L\'ultima query invià al database xè sta:
"$1"
'viewsource-title' => 'Varda el testo de $1',
'actionthrottled' => 'Asion ritardà',
'actionthrottledtext' => "Come misura de sicuresa contro e o spam, l'esecusion de alcune asion e a xè limità a on numaro masimo de volte en on determinà periodo de tenpo, limite che en questo caso xè sta superà. Se prega de riprovare tra qualche minuto.",
-'protectedpagetext' => 'Sta pagina la xe stà proteta de modo che nissuni possa canbiarla.',
+'protectedpagetext' => 'Sta pàjina ła xe stà proteta de modo che nisun posa canbiarla o far altre operasion.',
'viewsourcetext' => 'Se pole vardar e copiar el testo de sta pagina:',
'viewyourtext' => "Xè posibile vedàre e copiare el codexe sorzente de le '''to modifighe''' a sta pajina:",
-'protectedinterface' => "Sta pagina la gà drento un testo de l'interfacia utente del software, quindi la xe proteta parché nissuni la strussia.",
-'editinginterface' => "'''Ocio:''' El testo de sta pajina el fa parte de l'interfacia utente del sito. Tute łe modifeghe aportae a sta pajina se riflete so i mesaji visuałizà par tuti i utenti.
-Par łe tradusion, considera ła posibiłità de usare [//translatewiki.net/wiki/Main_Page?setlang=vec translatewiki.net], el projeto MediaWiki par ła localizasion.",
+'protectedinterface' => "Sta pàjina ła gà drento un testo de l'interfacia utente del software de sto sito, quindi la xe proteta parché nisuni ła strusie.
+Par xontar o modifegar tradusion par tute łe wiki doparar [//translatewiki.net/ translatewiki.net], el projeto de locałixasion de MediaWiki.",
+'editinginterface' => "'''Ocio:''' El testo de sta pàjina el fa parte de l'interfacia utente del sito. Tute łe modifeghe aportae a sta pajina se riflete so i mesaji visuałixà par tuti i utenti so sta wiki.
+Par xontare o modifegar łe tradusion vałide so tute łe wiki, considera ła posibiłità de doparar [//translatewiki.net/wiki/Main_Page?setlang=vec translatewiki.net], el projeto MediaWiki par ła localixasion.",
'sqlhidden' => '(ła query SQL ła xè sta sconta)',
'cascadeprotected' => 'So sta pajina no xè posibiłe efetuare modifeghe parché xè sta inclusa {{PLURAL:$1|ne ła pajina indicà de seguito, che xè sta proteta|ne łe pajine indicae de seguito, che e xè sta protete}} sełesionando ła protesion "ricorsiva":
$2',
'gotaccount' => "Sito zà iscrito? '''$1'''.",
'gotaccountlink' => 'Entra',
'userlogin-resetlink' => "Desmentegà i to dati d'aceso?",
-'createaccountmail' => 'Par e-mail',
+'createaccountmail' => 'Dopara na password caxuałe tenporanea e inviała al indiriso e-mail spesifegà cuà soto',
'createaccountreason' => 'Motivassion:',
'badretype' => 'Le do password le xe difarenti.',
'userexists' => 'El nome utente inserido vien xa doparà da cualchedun altro.
'userpage-userdoesnotexist-view' => 'L\'utensa "$1" no la xe gnancora registrà.',
'blocked-notice-logextract' => "Sto utente xè atualmente blocà.
L'ultimo ełemento del rejistro de i blochi xè riportà de seguito par informasion:",
-'clearyourcache' => "Ocio: dopo aver salvà, połe darse che te gabi da netare ła cache del to browser par védar i canbiamenti.
+'clearyourcache' => "Ocio: dopo 'ver salvà, pol darse che te gabi da netare ła cache del to browser par védar i canbiamenti.
*Par '''Firefox / Safari:''' tien macà el boton de łe majuscołe e schicia \"Recarga\", o senò maca ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' se te ghè el Mac)
-*Par '''Google Chrome''':schicia ''Ctrl-Shift-R'' (''⌘-Shift-R'' co' un Mac)
+*Par '''Google Chrome''':schicia ''Ctrl-Shift-R'' (''⌘-Shift-R'' có un Mac)
*Par '''Internet Explorer''': tien schicià el boton \"Ctrl\" fin che te schici '''Recarga''', senò schicia '''Ctrl+F5'''
-*Par '''Konqueror''': schicia \"Recarga\" o maca ''F5'';
-*Par '''Opera:''' néta la cache in ''Strumenti → Preferense;''",
+*Par '''Opera:''' néta la cache in ''Strumenti → Prefarense;''",
'usercssyoucanpreview' => "'''Sugerimento:''' se consiglia de doparar el boton \"{{int:showpreview}} par proàr i novi CSS prima de salvarli.",
'userjsyoucanpreview' => "'''Sugerimento:''' se consiglia de doparar el boton \"{{int:showpreview}}\" par proàr i novi JavaScript prima de salvarli.",
'usercsspreview' => "'''Sta qua la xe solo n'anteprima del proprio CSS personal.
'updated' => '(Agiornà)',
'note' => "'''Nota:'''",
'previewnote' => "Sta cua ła xe soło n'anteprima; i canbiamenti a ła pajina NO i xe gnancora stà salvài!",
-'continue-editing' => 'Continua modifegare',
+'continue-editing' => "Va a l'area de modifega",
'previewconflict' => 'Sta anteprima la corisponde al testo ne la casèla de edizion de sora, e la fa védar come vegnarà fora la pagina se te machi "Salva la pagina" in sto momento.',
'session_fail_preview' => "No xè stà possibiłe salvar le to modifiche parché i dati de la session i xè andai persi.
Par piaser, riproa da novo.
'''NO STA INSERIR OPERE PROTETE DA COPYRIGHT SENSA PERMESSO!'''",
'longpageerror' => "'''Erore: el testo invià xe grando {{PLURAL:$1|1|$1}} kilobyte, che xe de pì deła dimension masima consentìa de {{PLURAL:$2|1|$2}} kilobyte.'''
El testo no połe esare salvà.",
-'readonlywarning' => "'''OCIO: El database el xe stà blocà par manutenzion, quindi no se pol salvar le modifiche in sto momento.
-Par no pèrdarle, te pol copiar tuto quel che te ghè inserìo fin desso ne la casela de modifica, incolarlo in un programa de elaborazion de testi e salvarlo, intanto che te speti che i sbloca el database.'''
+'readonlywarning' => "'''OCIO: El database el xe stà blocà par manutension, cuindi nó se pol salvar łe modifeghe in sto momento.'''
+Par nó pèrdarle, te pol copiar tuto chel che te ghè inserìo fin deso inte ła caxeła de modifega, incołarlo inte un programa de elaborasion de testi e salvarlo, intanto che te speti che i sbloca el database.
-L'aministrador che gà blocà el database el gà dato la seguente spiegassion: $1",
+L'aministrador che gà blocà el database el gà dato ła seguente spiegasion: $1",
'protectedpagewarning' => "'''Ocio:''' Sta pajina ła xe sta proteta in maniera che soło i aministradori i posa canbiarla. Sta qua ła xe l'ultima operasion catà sul registro de ła pajina:",
'semiprotectedpagewarning' => "'''Ocio:''' Sta pajina ła xe stà proteta in maniera che soło i utenti rexistrài i posa canbiarla. Sta qua ła xe l'ultima operasion catà sul registro de ła pajina:",
'cascadeprotectedwarning' => "'''Ocio:''' Sta pajina ła xe stà proteta in maniera che soło i utenti co priviłegi de aministrador i posa canbiarla. Questo sucede parché ła pajina ła xe inclusa {{PLURAL:\$1|'nte ła pajina indicà de seguito, che ła xe stà proteta|ne le pagine indicà de seguito, che łe xe stae protete}} sełesionando ła protesion \"ricorsiva\":",
'revdelete-no-change' => "''Ocio:''' la version datà $1 a le $2 la gà zà le inpostassion de visibilità da ti richieste.",
'revdelete-concurrent-change' => "No se riesse a modificar la version datà $1 a le $2: pararìa che qualchidun altro el gavesse canbià el stato de la version intanto che ti te sercavi de far la stessa roba. Daghe n'ociada sui registri.",
'revdelete-only-restricted' => "Eròr sercando de scondar l'elemento datà $1 a le $2: no te podi inpedirghe ai aministradori de vardar na revision se no te selessioni al tenpo stesso una de le altre opzioni de restrizion.",
-'revdelete-reason-dropdown' => '*Motivassion pi comuni par la scancelassion
-** Violassion de copyright
-** Informassion personali inapropriàe',
+'revdelete-reason-dropdown' => '*Motivasion pi comuni par la scansełasion
+** Viołasion de copyright
+** Comenti o informasion personali inapropriàe
+** Nome utente inapropià
+** Informasion potensialmente difamatoria',
'revdelete-otherreason' => 'Altro:',
'revdelete-reasonotherlist' => 'Altra motivassion',
'revdelete-edit-reasonlist' => 'Modifica le motivazion par la scancelazion',
'prefs-rc' => 'Ultime modifeghe',
'prefs-watchlist' => "Pàjine tegnùe d'ocio",
'prefs-watchlist-days' => 'Nùmaro de giòrni da far védar nei osservati speciali:',
-'prefs-watchlist-days-max' => 'Masimo $1 dì',
+'prefs-watchlist-days-max' => 'Masimo $1 {{PLURAL:$1|xorno|xorni}}',
'prefs-watchlist-edits' => 'Nùmaro de modifiche da far védar con le funzion avanzade:',
'prefs-watchlist-edits-max' => 'Numaro massimo: 1000',
'prefs-watchlist-token' => "Segnal par le pagine tegnùe d'ocio:",
'timezoneregion-indian' => 'Oceano Indian',
'timezoneregion-pacific' => 'Oceano Pacifico',
'allowemail' => 'Consenti la ricezion de e-mail da altri utenti<sup>1</sup>',
-'prefs-searchoptions' => 'Opsioni de riserca',
+'prefs-searchoptions' => 'Riserca',
'prefs-namespaces' => 'Namespace',
'defaultns' => 'Serca in sti namespace se no diversamente specificà:',
'default' => 'predefinìo',
'prefs-emailconfirm-label' => "Conferma de l'e-mail:",
'prefs-textboxsize' => 'Dimension de la casèla de modifica',
'youremail' => 'La to e-mail',
-'username' => 'Nome utente',
-'uid' => 'ID utente:',
-'prefs-memberingroups' => 'Menbro {{PLURAL:$1|del grupo|dei grupi}}:',
+'username' => '{{GENDER:$1|Nome utente}}:',
+'uid' => '{{GENDER:$1|ID utente}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Menbro}} {{PLURAL:$1|del grupo|de i grupi}}:',
'prefs-registration' => 'Data de registrassion:',
'yourrealname' => 'El to vero nome:',
'yourlanguage' => 'Lengua:',
'disambiguations' => 'Pajine cołegade a pajine de dixanbiguasion',
'disambiguationspage' => 'Template:Disambigua',
-'disambiguations-text' => "Le pagine ne la lista che segue le contien dei colegamenti a '''pagine de disanbiguazion''' e no a l'argomento a cui le dovarìà far riferimento.<br />
-Vien considerà pagine de disanbiguazion tute quele che contien i modèi elencà in [[MediaWiki:Disambiguationspage]]",
+'disambiguations-text' => "Łe pàjine inte ła lista cuà soto łe ga drento almanco un ligamento a na '''pàjina de dixanbiguasion'''.
+Łe podaria dover puntar a na pàjina pì apropià.<br />
+Vien considerae pàjine de dixanbiguasion tute cuełe che łe ga drento i modełi elencai in [[MediaWiki:Disambiguationspage]].",
'doubleredirects' => 'Redirect dopi',
'doubleredirectstext' => 'Sta pagina le elenca pagine che rimanda a altre pagine de rimando.
'linksearch-pat' => 'Espression de riserca:',
'linksearch-ns' => 'Namespace:',
'linksearch-ok' => 'Serca',
-'linksearch-text' => 'Xe posibiłe doparare metacarateri, come "*.wikipedia.org".<br />
-Xe necesario almanco un dominio de primo liveło, tipo "*.org".<br />
-Protocołi suportadi: <code>$1</code> (no sta xontare nesuno de sti cuà inte ła to riçerca).',
+'linksearch-text' => 'Xe posibiłe doparare metacarateri, come "*.wikipedia.org".
+Xe nesesario almanco un dominio de primo liveło, tipo "*.org".<br />
+{{PLURAL:$2|Protocoło suportà|Protocołi suportai}}: <code>$1</code> (predefinio http:// se nisun protocoło el xe spesifegà).',
'linksearch-line' => '$1 presente ne la pagina $2',
'linksearch-error' => "I metacaràteri i pode vegner doparài solo a l'inizio del nome de l'host.",
# Special:ActiveUsers
'activeusers' => 'Lista dei utenti ativi',
'activeusers-intro' => 'Sta qua xe la lista dei utenti che ga fato calcossa {{PLURAL:$1|sto ultimo zorno|sti ultimi $1 zorni}}.',
-'activeusers-count' => "$1 {{PLURAL:$1|canbiamento|canbiamenti}} {{PLURAL:$3|ne l'ultimo zorno|in tei ultimi $3 zorni}}",
+'activeusers-count' => "$1 {{PLURAL:$1|asion}} {{PLURAL:$3|inte'l ultimo xorno|inte i ultimi $3 xorni}}",
'activeusers-from' => 'Fà védar i utenti a partir da:',
'activeusers-hidebots' => 'Scondi i bot',
'activeusers-hidesysops' => 'Scondi i aministradori',
'listgrouprights-rights' => 'Diriti',
'listgrouprights-helppage' => 'Help:Diriti dei grupi',
'listgrouprights-members' => '(Elenco de i menbri)',
-'listgrouprights-addgroup' => 'Pode zontar {{PLURAL:$2|al grupo|ai grupi}}: $1',
-'listgrouprights-removegroup' => 'Pode cavar {{PLURAL:$2|dal grupo|dai grupi}}: $1',
-'listgrouprights-addgroup-all' => 'Pode zontar tuti i grupi',
-'listgrouprights-removegroup-all' => 'Pode cavar tuti i grupi',
-'listgrouprights-addgroup-self' => 'Poder zontar la propria utensa in {{PLURAL:$2|te un grupo|più grupi}}: $1',
-'listgrouprights-removegroup-self' => 'Poder cavar la propria utensa da {{PLURAL:$2|un grupo|dei grupi}}: $1',
-'listgrouprights-addgroup-self-all' => 'Pode zontar la propria utensa in tuti i grupi',
-'listgrouprights-removegroup-self-all' => 'Pode cavar la propria utensa da tuti i grupi',
+'listgrouprights-addgroup' => 'Pol xontar {{PLURAL:$2|al grupo|ai grupi}}: $1',
+'listgrouprights-removegroup' => 'Pol cavar {{PLURAL:$2|dal grupo|dai grupi}}: $1',
+'listgrouprights-addgroup-all' => 'Pol xontar a tuti i grupi',
+'listgrouprights-removegroup-all' => 'Pol cavar da tuti i grupi',
+'listgrouprights-addgroup-self' => 'Pol xontarse {{PLURAL:$2|al grupo|ai grupi}}: $1',
+'listgrouprights-removegroup-self' => 'Pol cavarse da {{PLURAL:$2|un grupo|dei grupi}}: $1',
+'listgrouprights-addgroup-self-all' => 'Pol xontarse a tuti i grupi',
+'listgrouprights-removegroup-self-all' => 'Pol cavarse da tuti i grupi',
# E-mail user
'mailnologin' => 'Nissun indirizo a cui mandarghe el messagio',
'emailuser-title-target' => 'Scrivi na e-mail a {{GENDER:$1|sto|sta}} utente',
'emailuser-title-notarget' => "Scrivi na e-mail a l'utente",
'emailpage' => "Scrivi na e-mail a l'utente",
-'emailpagetext' => 'Te podi usar el modulo chi soto par mandare na e-mail a sto utente.
-La e-mail che te ghè indicà ne le [[Special:Preferences|to preferense]] la vegnarà fora nel canpo "Da" de la mail, così che el destinatario el possa rispóndarte a ti diretamente.',
+'emailpagetext' => 'Te podi usar el moduło chi soto par mandare na e-mail a sto {{GENDER:$1|utente}}.
+Ła e-mail che te ghè indicà inte łe [[Special:Preferences|to prefarense]] ła vegnarà fora inte\'l canpo "Da" de la mail, cusì che\'l destinatario el posa rispóndarte diretamente a ti.',
'usermailererror' => "L'ogeto mail el gà restituìo l'eror:",
'defemailsubject' => 'Mesajo da {{SITENAME}} dal utente "$1"',
'usermaildisabled' => 'e-mail utente disabiłità',
'usermessage-editor' => 'Messagero de sistema',
# Watchlist
-'watchlist' => "Pagine tegnùe d'ocio",
+'watchlist' => "Pàjine tegnùe d'ocio",
'mywatchlist' => "Pàjine tegnùe d'ocio",
'watchlistfor2' => 'De $1 $2',
'nowatchlist' => "No te ghè indicà pagine da tegner d'ocio.",
'watchnologin' => 'Acesso mia efetuà',
'watchnologintext' => 'Te ghè prima da far el [[Special:UserLogin|login]] par modificar la to lista de osservati speciali.',
'addwatch' => "Tien d'ocio",
-'addedwatchtext' => "La pagina \"[[:\$1]]\" la xe stà zontà a la to [[Special:Watchlist|lista de pagine da tegner d'ocio]].
-I futuri canbiamenti a sta pagina e a la so pagina de discussion i se vedarà fora qua, e la pagina la se vedarà in '''grosso''' sui [[Special:RecentChanges|ultimi canbiamenti]] par tegnerla d'ocio mejo.",
+'addedwatchtext' => 'Ła pagina "[[:$1]]" ła xe stà xontà a ła to [[Special:Watchlist|lista de pàjine da tegner d\'ocio]].
+I futuri canbiamenti a sta pàjina e a ła so pàjina de discusion i vegnarà elencai in cheła pàjina là.',
'removewatch' => "Cava da łe tegnùe d'ocio",
'removedwatchtext' => 'La pagina "[[:$1]]" la xe stà cavà da le to [[Special:Watchlist|pagine tegnùe de ocio]].',
'watch' => "Tien d'ocio",
'watchmethod-list' => 'controło de i osservati speciałi par modifeghe recenti',
'watchlistcontains' => 'La lista de i osservati speciałi la contien {{PLURAL:$1|una pagina|$1 pagine}}.',
'iteminvalidname' => "Problemi con la voxe '$1', nome mìa vałido...",
-'wlnote' => "Qua soto te cati {{PLURAL:$1|l'ultimo canbiamento|i ultimi '''$1''' canbiamenti}} ne {{PLURAL:$2|l'ultima ora|le ultime '''$2''' ore}}.",
+'wlnote' => "Cuà soto te cati {{PLURAL:$1|'l ultimo canbiamento|i ultimi '''$1''' canbiamenti}} inte {{PLURAL:$2|l'ultema ora|łe ultime '''$2''' ore}}; i dati i xe axornai a łe $4 del $3.",
'wlshowlast' => 'Mostra le ultime $1 ore $2 zorni $3',
'watchlist-options' => "Inpostassion de le pagine tegnùe d'ocio",
'enotif_anon_editor' => 'utente anonimo $1',
'enotif_body' => 'Caro/a $WATCHINGUSERNAME,
-ła pàxena $PAGETITLE de {{SITENAME}} la xè stà $CHANGEDORCREATED el $PAGEEDITDATE da $PAGEEDITOR, varda $PAGETITLE_URL par ła version atuałe.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
-Somario del redator: $PAGESUMMARY $PAGEMINOREDIT
+Ogeto del intervento, inserio dal autor: $PAGESUMMARY $PAGEMINOREDIT
-Contatta el redator:
-mail: $PAGEEDITOR_EMAIL
-wiki: $PAGEEDITOR_WIKI
+Contata l\'autor:
+via posta eletronega: $PAGEEDITOR_EMAIL
+so\'l sito: $PAGEEDITOR_WIKI
-No ghe sarà altre notifiche in caso de ulteriori canbiamenti, a manco che ti no te visiti sta pàxena.
-Te podi anca reinpostar l\'avixo de notifica par tuti i osservati speciałi de ła to łista.
+Nó vegnarà inviae altre notifeghe in caxo de ulteriori atività, se nó te vixiti ła pàjina. Inoltre, xe posibiłe modifegar łe inpostasion de notifega par tute łe pàjine inte ła lista de łe tegnùe d\'ocio.
- El to amichevole sistema de notifica de {{SITENAME}}
+ El sistema de notifega de {{SITENAME}}, al to servisio
--
-Par canbiar łe inpostassion de i to osservati speciałi, visita
-{{canonicalurl:Special:Watchlist/edit}}
+Par modifegar łe inpostasion de łe notifeghe via posta eletronega, varda
+{{canonicalurl:{{#special:Preferences}}}}
+
+Par modifegar ła lista de łe tegnùe d\'ocio, varda
+{{canonicalurl:{{#special:EditWatchlist}}}}
-Par cavar la pagina da i to osservati speciałi, visita
+Par cavar ła pàjina da ła lista de łe tegnùe d\'ocio, varda
$UNWATCHURL
-Par riscontri e ulteriore assistensa:
+Par comentare e risevere ajuto:
{{canonicalurl:{{MediaWiki:Helppage}}}}',
'created' => 'creà',
'changed' => 'canbià',
Le impostazion atuali par la pagina le xe '''$1''':",
'protect-cascadeon' => 'Al momento sta pagina la xe blocà parché la xe inclusa {{PLURAL:$1|ne la pagina indicà de seguito, par la quale|ne le pagine indichè de seguito, par le quali}} xe ativa la protezion ricorsiva. Se pol modificar el livel de protezion individual de la pagina, ma le inpostazion derivanti da la protezion ricorsiva no le sarà mìa modificà.',
'protect-default' => 'Autoriza tuti i utenti',
-'protect-fallback' => 'Ghe vole el parmesso de "$1"',
-'protect-level-autoconfirmed' => 'Bloca i utenti novi o mia registrà',
-'protect-level-sysop' => 'Solo aministradori',
+'protect-fallback' => 'Consentio soło che a i utenti có parmeso "$1"',
+'protect-level-autoconfirmed' => 'Consentio soło che a i utenti "autoconfermai"',
+'protect-level-sysop' => 'Consentio soło che a i aministradori',
'protect-summary-cascade' => 'ricorsiva',
'protect-expiring' => 'scadensa: $1 (UTC)',
'protect-expiring-local' => 'scade el $1',
'undeletepagetext' => "{{PLURAL:$1|La pàxena qua de sèvito la xe stà scancelà, ma la ghe xe 'ncora in archivio e pertanto se pole 'ncora recuperarla|Le $1 pàxene qua de sèvito le xe stà scancelè, ma le ghe xe 'ncora in archivio e pertanto se pole 'ncora recuperarle}}.
L'archivio el vien svodà periodicamente.",
'undelete-fieldset-title' => 'Recupera version',
-'undeleteextrahelp' => "Par recuperar la storia de la pàxena par intiero, lassa tute łe casełe desełezionàe e struca '''''Ripristina'''''.
-Par efetuar un ripristino sełetivo, seleziona łe casełe corispondenti a łe revixion da ripristinar e struca '''''Ripristina'''''. Strucando '''''Reset''''' vegnarà deselezionàe tute łe casełe e svodà el posto par el comento.",
+'undeleteextrahelp' => "Par recuperar l'intiera storia de ła pàjina, łasar tute łe caxełe desełesionae e strucar so '''''{{int:undeletebtn}}'''''.
+Par efetuar un ripristino sełetivo, sełesionar łe caxełe corispondenti a łe revixion da ripristinar e strucar so '''''{{int:undeletebtn}}'''''.",
'undeleterevisions' => '{{PLURAL:$1|Una revision|$1 revision}} in archivio',
'undeletehistory' => 'Recuperando sta pàxena, tute łe so revixion le vegnarà inserìe da novo ne ła rełativa cronołogia.
Se dopo ła scancełazion xè stà creà na nova pàxena col stesso titoło, łe revixion recuperà le sarà inserìe ne ła cronołogia preçedente.',
'undeletedrevisions' => '{{PLURAL:$1|Una revision recuperà|$1 revision recuperà}}',
'undeletedrevisions-files' => '{{PLURAL:$1|Una revision|$1 revision}} e $2 file recuperà',
'undeletedfiles' => '{{PLURAL:$1|Un file recuperà|$1 file recuperà}}',
-'cannotundelete' => "El recupero no'l xè riussìo: qualchedun altro el podarià aver xà recuperà ła pàxena.",
+'cannotundelete' => 'Ripristino nó riusìo:
+$1',
'undeletedpage' => "'''$1 la xè stà recuperà'''
Consulta el [[Special:Log/delete|registro de le scancełassion]] par vardare łe scancełassion e i recuperi pì reçenti.",
# Move page
'move-page' => 'Spostamento de $1',
'move-page-legend' => 'Spostamento de pagina',
-'movepagetext' => "Col modulo qua soto te podi rinominar na pagina, spostando anca tuta la so storia al titolo novo.
-El vecio titolo el deventarà automaticamente un rimando (redirect) che punta al titolo novo.
-Te podi agiornar automaticamente i rimandi che punta al vecio titolo.
-Se te siegli de no farlo, tiente in mente de controlar ben che no se crea [[Special:DoubleRedirects|dopi redirect]] o [[Special:BrokenRedirects|redirect interoti]].
-Resta ne la to responsabilità de controlar che i colegamenti i continua a puntar dove che i deve.
+'movepagetext' => "Có 'l moduło cuà soto te podi rinominar na pàjina, spostando anca tuta ła so storia al titoło novo.
+El vecio titoło el devegnarà automategamente un rimando (redirect) che ponta al titoło novo.
+Te podi axornar automategamente i rimandi che ponta al vecio titoło.
+Se te siełi de nó farlo, tiente inamente de controłar ben che nó se cree [[Special:DoubleRedirects|dopi rimandi]] o [[Special:BrokenRedirects|rimandi interoti]].
+Resta inte ła to responsabiłità de controłar che i ligamenti i continue a pontar 'ndove che i deve.
-Ocio: la pagina '''no''' la sarà spostà se ghe fusse zà na pagina col titolo novo, a meno che no la sia na pagina voda o un rimando, e senpre che no la gabia na storia.
-Questo significa che, se te fè un eror, te podi da novo rinominar na pagina col vecio titolo, ma no te podi sovrascrìvar na pagina zà esistente.
+Ocio: ła pàjina '''nó''' ła sarà spostà se ghe fuse xà na pàjina có 'l titoło novo, a meno che nó ła sia un rimando, e senpre che nó ła gabia na storia.
+Cuesto signifega che, se te fè un eror, te podi da novo rinominar na pàjina có 'l vecio titoło, ma nó te podi sovrascrìvar na pàjina xà existente.
'''OCIO!'''
-Sto canbiamento drastico el podarìa dar problemi che no se se speta, specialmente se se trata de na pagina molto visità.
-Stà ben tento a le conseguense del spostamento, prima de farlo.",
+Sto canbiamento drastico el podarìa dar problemi che nó se se speta, spesalmente se se trata de na pàjina molto vixità.
+Stà ben tento a łe conseguense del spostamento, prima de farlo.",
'movepagetext-noredirectfixer' => "Col modulo qua soto te podi rinominar na pagina, spostando anca tuta la so storia al titolo novo.
El vecio titolo el deventarà automaticamente un rimando (redirect) che punta al titolo novo.
Tiente in mente de controlar ben che no se crea [[Special:DoubleRedirects|dopi redirect]] o [[Special:BrokenRedirects|redirect interoti]].
'specialpages-group-highuse' => 'Pagine doparà assè',
'specialpages-group-pages' => 'Liste de pagine',
'specialpages-group-pagetools' => 'Strumenti par le pagine',
-'specialpages-group-wiki' => 'Dati e strumenti wiki',
+'specialpages-group-wiki' => "Strumenti e informasion so'l projeto",
'specialpages-group-redirects' => 'Pagine speciali de rimando',
'specialpages-group-spam' => 'Strumenti anti spam',
'logentry-patrol-patrol-auto' => '$1 ga segnà automategamente la revixion $4 de la pajina $3 come verifegà',
'logentry-newusers-newusers' => "L'utensa $1 xe sta creà",
'logentry-newusers-create' => "L'utensa $1 xe sta creà",
-'logentry-newusers-create2' => 'Lutensa $3 xe sta creà da $1',
+'logentry-newusers-create2' => "L'utensa $3 xe sta creà da $1",
+'logentry-newusers-byemail' => "L'utensa $3 xe sta creà da $1 e ła password ła xe sta invià via e-mail",
'logentry-newusers-autocreate' => "L'utensa $1 xè stà creà automategamente",
-'newuserlog-byemail' => 'password spedìa par e-mail',
'logentry-rights-rights' => "$1 ga canbià l'apartenensa de $3 dal grupo $4 al grupo $5",
'logentry-rights-rights-legacy' => "$1 ga canbià l'apartenensa a grupi de $3",
'logentry-rights-autopromote' => '$1 xe stà automategamente promoso/a da $4 a $5',
'api-error-ok-but-empty' => 'Eror interno: nisuna risposta dal server.',
'api-error-overwrite' => 'Nó xe parmeso de sorascrìvar un file existente.',
'api-error-stashfailed' => "Eror interno: el server nó 'l xe riusio a memorixar el documento tenporaneo.",
+'api-error-publishfailed' => "Eror interno: el server nó 'l xe riusio a publicar el documento tenporaneo.",
'api-error-timeout' => "El server nó 'l ga risposto entro el tenpo previsto.",
'api-error-unclassified' => 'Se gà verifegà un eror sconosùo.',
'api-error-unknown-code' => 'Eror sconosùo: "$1"',
# New logging system
'revdelete-restricted' => 'kaidendused administratoriden täht',
'revdelete-unrestricted' => 'kaidendused heittud administratoriden täht',
-'newuserlog-byemail' => 'peisana om oigetud e-počtadme',
'rightsnone' => '(ei ole)',
# Feedback
'Ancientpages' => array( 'Trang_cũ' ),
'Badtitle' => array( 'Tựa_đề_hỏng' ),
'Blankpage' => array( 'Trang_trắng' ),
- 'Block' => array( 'Cấm_IP' ),
+ 'Block' => array( 'Cấm', 'Cấm_IP', 'Cấm_thành_viên', 'Cấm_người_dùng' ),
'Blockme' => array( 'Khóa_tôi', 'Khoá_tôi' ),
'Booksources' => array( 'Nguồn_sách' ),
'BrokenRedirects' => array( 'Đổi_hướng_sai' ),
'img_page' => array( '1', 'trang=$1', 'trang $1', 'page=$1', 'page $1' ),
'img_upright' => array( '1', 'đứng', 'đứng=$1', 'đứng $1', 'upright', 'upright=$1', 'upright $1' ),
'img_link' => array( '1', 'liên_kết=$1', 'link=$1' ),
+ 'img_class' => array( '1', 'lớp=$1', 'class=$1' ),
'int' => array( '0', 'NỘI:', 'INT:' ),
'sitename' => array( '1', 'TÊNMẠNG', 'SITENAME' ),
'ns' => array( '0', 'KGT:', 'NS:' ),
'localurl' => array( '0', 'URLĐỊAPHƯƠNG:', 'LOCALURL:' ),
- 'articlepath' => array( '0', 'LỐIBÀI', 'ARTICLEPATH' ),
+ 'articlepath' => array( '0', 'ĐƯỜNGDẪNBÀI', 'LỐIBÀI', 'ARTICLEPATH' ),
+ 'pageid' => array( '0', 'IDTRANG', 'PAGEID' ),
'server' => array( '0', 'MÁYCHỦ', 'SERVER' ),
'servername' => array( '0', 'TÊNMÁYCHỦ', 'SERVERNAME' ),
- 'scriptpath' => array( '0', 'ĐƯỜNGDẪNSCRIPT', 'SCRIPTPATH' ),
+ 'scriptpath' => array( '0', 'ĐƯỜNGDẪNKỊCHBẢN', 'ĐƯỜNGDẪNSCRIPT', 'SCRIPTPATH' ),
+ 'stylepath' => array( '0', 'ĐƯỜNGDẪNKIỂU', 'STYLEPATH' ),
'grammar' => array( '0', 'NGỮPHÁP:', 'GRAMMAR:' ),
'gender' => array( '0', 'GIỐNG:', 'GENDER:' ),
'notitleconvert' => array( '0', '__KHÔNGCHUYỂNTÊN__', '__NOTITLECONVERT__', '__NOTC__' ),
'pagesize' => array( '1', 'CỠTRANG', 'PAGESIZE' ),
'numberingroup' => array( '1', 'CỠNHÓM', 'NUMBERINGROUP', 'NUMINGROUP' ),
'staticredirect' => array( '1', '__ĐỔIHƯỚNGNHẤTĐỊNH__', '__STATICREDIRECT__' ),
+ 'protectionlevel' => array( '1', 'MỨCKHÓA', 'MỨCKHOÁ', 'PROTECTIONLEVEL' ),
'url_path' => array( '0', 'ĐƯỜNGDẪN', 'PATH' ),
+ 'url_query' => array( '0', 'TRUYVẤN', 'QUERY' ),
);
$datePreferences = array(
'gotaccount' => "Đã mở tài khoản rồi? '''$1'''.",
'gotaccountlink' => 'Đăng nhập',
'userlogin-resetlink' => 'Quên mất thông tin đăng nhập?',
-'createaccountmail' => 'qua thư điện tử',
+'createaccountmail' => 'Sử dụng mật khẩu ngẫu nhiên tạm và gửi nó cho địa chỉ thư điện tử được chỉ định ở dưới',
'createaccountreason' => 'Lý do:',
'badretype' => 'Hai mật khẩu không khớp.',
'userexists' => 'Tên người dùng được nhập đã có người lấy.
# Special:ActiveUsers
'activeusers' => 'Danh sách thành viên tích cực',
'activeusers-intro' => 'Dánh sách này liệt kê các thành viên đã hoạt động cách nào đó trong $1 ngày qua.',
-'activeusers-count' => '$1 {{PLURAL:$1|sửa đổi|sửa đổi}} trong {{PLURAL:$3|ngày|$3 ngày}} gần đây',
+'activeusers-count' => '$1 tác vụ trong {{PLURAL:$3|ngày|$3 ngày}} qua',
'activeusers-from' => 'Hiển thị thành viên bắt đầu từ:',
'activeusers-hidebots' => 'Ẩn robot',
'activeusers-hidesysops' => 'Ẩn bảo quản viên',
'usermessage-editor' => 'Trình thông báo hệ thống',
# Watchlist
-'watchlist' => 'Trang tôi theo dõi',
+'watchlist' => 'Danh sách theo dõi',
'mywatchlist' => 'Trang theo dõi',
'watchlistfor2' => 'Của $1 $2',
'nowatchlist' => 'Danh sách theo dõi của bạn không có gì.',
Nếu bạn chọn không cập nhật, hãy nhớ kiểm tra [[Special:DoubleRedirects|đổi hướng kép]] hoặc [[Special:BrokenRedirects|đổi hướng đến trang không tồn tại]].
Bạn phải chịu trách nhiệm đảm bảo các liên kết đó tiếp tục trỏ đến nơi chúng cần đến.
-Chú ý rằng trang sẽ '''không''' bị di chuyển nếu đã có một trang tại tên mới, trừ khi nó rỗng hoặc là trang đổi hướng và không có lịch sử sửa đổi trước đây.
+Chú ý rằng trang sẽ '''không''' bị di chuyển nếu đã có một trang tại tên mới, trừ khi nó là trang đổi hướng và không có lịch sử sửa đổi trước đây.
Điều này có nghĩa là bạn có thể đổi tên trang lại như cũ nếu bạn có nhầm lẫn, và bạn không thể ghi đè lên một trang đã có sẵn.
'''CẢNH BÁO!'''
'exif-gpslongituderef' => 'Kinh độ đông hay tây',
'exif-gpslongitude' => 'Kinh độ',
'exif-gpsaltituderef' => 'Tham chiếu cao độ',
-'exif-gpsaltitude' => 'Độ cao',
+'exif-gpsaltitude' => 'Cao độ',
'exif-gpstimestamp' => 'Giờ GPS (đồng hồ nguyên tử)',
'exif-gpssatellites' => 'Vệ tinh nhân tạo dùng để đo',
'exif-gpsstatus' => 'Tình trạng đầu thu',
'specialpages-group-highuse' => 'Trang được dùng nhiều',
'specialpages-group-pages' => 'Danh sách các trang',
'specialpages-group-pagetools' => 'Công cụ cho trang',
-'specialpages-group-wiki' => 'Dữ liệu và công cụ cho wiki',
+'specialpages-group-wiki' => 'Dữ liệu và công cụ',
'specialpages-group-redirects' => 'Đang đổi hướng trang đặc biệt',
'specialpages-group-spam' => 'Công cụ chống spam',
'logentry-newusers-newusers' => 'Đã mở tài khoản người dùng $1',
'logentry-newusers-create' => 'Đã mở tài khoản người dùng $1',
'logentry-newusers-create2' => '$1 đã mở tài khoản người dùng $3',
+'logentry-newusers-byemail' => '$1 đã mở tài khoản người dùng $3 và nhận mật khẩu qua thư điện tử',
'logentry-newusers-autocreate' => 'Tài khoản $1 đã được mở tự động',
-'newuserlog-byemail' => 'gửi mật khẩu qua thư điện tử',
'logentry-rights-rights' => '$1 đã đổi các nhóm liên kết của $3 từ $4 đến $5',
'logentry-rights-rights-legacy' => '$1 đã đổi các nhóm liên kết của $3',
'logentry-rights-autopromote' => '$1 đã được tự động phong cấp từ $4 đến $5',
'api-error-ok-but-empty' => 'Lỗi nội bộ: Máy chủ không phản hồi.',
'api-error-overwrite' => 'Không được ghi đè một tập tin đã tồn tại.',
'api-error-stashfailed' => 'Lỗi nội bộ: Máy chủ bị thất bại trong việc lưu giữ tập tin tạm.',
+'api-error-publishfailed' => 'Lỗi nội bộ: Máy chủ bị thất bại trong việc xuất bản tập tin tạm.',
'api-error-timeout' => 'Máy chủ không đáp ứng trong thời gian dự kiến.',
'api-error-unclassified' => 'Gặp lỗi không ngờ',
'api-error-unknown-code' => 'Lỗi không rõ: “$1”',
# New logging system
'revdelete-restricted' => 'miedükams pelonöfükons pro guvans',
'revdelete-unrestricted' => 'miedükams pro guvans pemoükons',
-'newuserlog-byemail' => 'letavöd pesedon me pot leäktronik',
'rightsnone' => '(nonik)',
# Search suggestions
'logentry-newusers-create' => "$1 a-st ahivé on conte d' uzeu",
'logentry-newusers-create2' => "$1 a-st ahivé on conte d' uzeu $3",
'logentry-newusers-autocreate' => 'li conte $1 a stî ahivé otomaticmint',
-'newuserlog-byemail' => "emilaedje d' on scret",
'rightsnone' => '(nouk)',
# Feedback
'cancel' => 'Pasagdi',
'moredotdotdot' => 'Damo pa nga…',
'mypage' => 'Akon pakli',
-'mytalk' => 'Akon paghingay',
+'mytalk' => 'Mga akon paghingay',
'anontalk' => 'Paghingay para hini nga IP',
'navigation' => 'Paglayag',
'and' => ' ngan',
# Preferences page
'preferences' => 'Mga karuyag',
-'mypreferences' => 'Akon mga karuyag',
+'mypreferences' => 'Mga akon karuyag',
'prefs-edits' => 'Ihap han mga pagliwat:',
'prefsnologin' => 'Diri nakalog-in',
'changepassword' => 'Igliwan an tigaman-pagsulod',
'usermessage-editor' => 'Mensahero han sistema',
# Watchlist
-'watchlist' => 'Akon barantayan',
-'mywatchlist' => 'Akon angay timan-an',
+'watchlist' => 'Barantayan',
+'mywatchlist' => 'Mga angay timan-an nakon',
'watchlistfor2' => 'Para ha $1 $2',
'watchnologin' => 'Diri nakalog-in',
'watch' => 'Bantayi',
'blanknamespace' => '(Panguna)',
# Contributions
-'contributions' => 'Mga amot han gumaramit',
+'contributions' => 'Mga ámot ni {{GENDER:$1|User}}',
'contributions-title' => 'Mga amot han gumaramit para ha $1',
-'mycontris' => 'Akon mga ámot',
+'mycontris' => 'Mga ámot nakon',
'contribsub2' => 'Para ha $1 $2',
'uctop' => '(bawbaw)',
'month' => 'Tikang ha bulan (ngan uruunhan):',
'whatlinkshere-hideredirs' => '$1 nga mga redirek',
'whatlinkshere-hidetrans' => '$1 nga mga transklusyon',
'whatlinkshere-hidelinks' => '$1 an mga sumpay',
-'whatlinkshere-hideimages' => '$1 sumpay hin hulagway',
+'whatlinkshere-hideimages' => '$1 an mga sumpay han paypay',
'whatlinkshere-filters' => 'Mga panara',
# Block/unblock
'logentry-newusers-create' => '$1 in naghimo hin gumaramit nga akawnt',
'logentry-newusers-create2' => '$1 in naghimo hin gumaramit nga akawnt $3',
'logentry-newusers-autocreate' => 'An akawnt nga $1 in lugaring nga nahimo',
-'newuserlog-byemail' => 'Ginpadangat an tigaman-pagsulod pinaagi han e-mail',
'rightsnone' => '(waray)',
# Feedback
# New logging system
'revdelete-restricted' => 'doxalub digal ngir yorkat yi',
'revdelete-unrestricted' => 'digal ngir yorkat yi deñ na',
-'newuserlog-byemail' => 'baatujáll bi yónne nañu ko cib bataaxal',
'rightsnone' => '(menn)',
);
'toc' => array( '0', '__אינהאלט__', '__תוכן_עניינים__', '__תוכן__', '__TOC__' ),
'noeditsection' => array( '0', '__נישט_רעדאקטירן__', '__ללא_עריכה__', '__NOEDITSECTION__' ),
'currentday' => array( '1', 'לויפיקער_טאג', 'יום נוכחי', 'CURRENTDAY' ),
+ 'currentyear' => array( '1', 'לויפֿיקע_יאָר', 'שנה נוכחית', 'CURRENTYEAR' ),
+ 'currenttime' => array( '1', 'לויפֿיקע_צײַט', 'שעה נוכחית', 'CURRENTTIME' ),
'numberofpages' => array( '1', 'צאל_בלעטער', 'מספר דפים כולל', 'מספר דפים', 'NUMBEROFPAGES' ),
'numberofarticles' => array( '1', 'צאל_ארטיקלען', 'מספר ערכים', 'NUMBEROFARTICLES' ),
+ 'numberoffiles' => array( '1', 'צאל_טעקעס', 'מספר קבצים', 'NUMBEROFFILES' ),
+ 'numberofusers' => array( '1', 'צאל_באניצער', 'מספר משתמשים', 'NUMBEROFUSERS' ),
'pagename' => array( '1', 'בלאטנאמען', 'שם הדף', 'PAGENAME' ),
'namespace' => array( '1', 'נאמענטייל', 'מרחב השם', 'NAMESPACE' ),
'fullpagename' => array( '1', 'פולבלאטנאמען', 'שם הדף המלא', 'FULLPAGENAME' ),
'img_right' => array( '1', 'רעכטס', 'ימין', 'right' ),
'img_left' => array( '1', 'לינקס', 'שמאל', 'left' ),
'img_none' => array( '1', 'אן', 'ללא', 'none' ),
+ 'img_width' => array( '1', '$1פיקס', '$1 פיקסלים', '$1px' ),
'img_center' => array( '1', 'צענטער', 'מרכז', 'center', 'centre' ),
'img_sub' => array( '1', 'אונטער', 'תחתי', 'sub' ),
+ 'img_super' => array( '1', 'איבער', 'עילי', 'super', 'sup' ),
'img_top' => array( '1', 'אויבן', 'למעלה', 'top' ),
'img_bottom' => array( '1', 'אונטן', 'למטה', 'bottom' ),
'img_link' => array( '1', 'לינק=$1', 'קישור=$1', 'link=$1' ),
# Special:ActiveUsers
'activeusers' => 'ליסטע פֿון אַקטיווע באַניצער',
'activeusers-intro' => 'דאָס איז א ליסטע פֿון באַניצער וואָס זענען געווען אַקטיוו אינערהאָלב $1 {{PLURAL:$1|דעם לעצטן טאָג|די לעצטע $1 טעג}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|×\91×\90Ö·×\90ַר×\91×¢×\98×\95× ×\92|×\91×\90Ö·×\90ַר×\91×¢×\98×\95× ×\92×¢×\9f}} אין {{PLURAL:$3|דעם לעצטן טאָג|די לעצטע $3 טעג}}',
+'activeusers-count' => '$1 {{PLURAL:$1|פע×\95×\9c×\94|פע×\95×\9c×\95ת}} אין {{PLURAL:$3|דעם לעצטן טאָג|די לעצטע $3 טעג}}',
'activeusers-from' => 'ווײַזן באַניצער אָנהייבנדיג פון:',
'activeusers-hidebots' => 'באַהאַלטן באטן',
'activeusers-hidesysops' => 'באַהאַלטן סיסאפן',
'usermessage-template' => 'MediaWiki:באניצער־מעלדונג',
# Watchlist
-'watchlist' => '×\9e×\99×\99×\9f ×\90×\95×\99פפַּ×\90סונג ליסטע',
+'watchlist' => '×\90×\95×\99פֿפ×\90Ö·סונג ליסטע',
'mywatchlist' => 'אויפפַּאסונג ליסטע',
'watchlistfor2' => 'פֿאַר $1 $2',
'nowatchlist' => 'איר האט נישט קיין שום בלעטער אין אייער אויפפַּאסונג ליסטע.',
איר קענט ענדערן דעם שיצונג ניווא פונעם בלאַט, אבער דאס וועט נישט ווירקן אויף דער קאַסקאַדירטער שיצונג .',
'protect-default' => 'אלע באניצער ערלויבט',
-'protect-fallback' => 'פֿ×\90×\93ערט "$1" ערלויבניש',
-'protect-level-autoconfirmed' => '×\91×\9c×\90ק×\99ר×\9f × ×²Ö·×¢ ×\90×\95×\9f × ×\99×\98 ×\90×²Ö·× ×\92עשר×\99×\91×¢× ×¢ ×\91×\90Ö·× ×\99צערס',
-'protect-level-sysop' => 'נאר סיסאפן',
+'protect-fallback' => '×\93ער×\9c×\95×\99×\91×\9f × ×\90ר ×\91×\90× ×\99צער ×\9e×\99ט "$1" ערלויבניש',
+'protect-level-autoconfirmed' => '×\9c×\90×\96×\9f × ×\90ר ×\90×\95×\99×\98×\90×\9e×\90×\98×\99ש ×\91×\90ש×\98×¢×\98×\99ק×\98×¢ ×\91×\90Ö·× ×\99צער',
+'protect-level-sysop' => '×\93ער×\9c×\95×\99×\91×\9f × ×\90ר ס×\99ס×\90פ×\9f',
'protect-summary-cascade' => 'קאסקאדירן',
'protect-expiring' => 'גייט אויס $1 (UTC)',
'protect-expiring-local' => 'לאזט אויס $1',
'move-page' => 'באַוועגן $1',
'move-page-legend' => 'באַוועגן בלאַט',
'movepagetext' => "זיך באניצן מיט דעם פֿארעם וועט פֿארענדערן דעם נאמען פֿון דעם בלאט, און וועט אריבערפֿירן זיין געשיכטע צום נייעם נאמען.
-
-דאס אלטע קעפל וועט ווערן א ווייטערפֿירן בלאט צום נייעם נאמען.
+דאס אלטע קעפל וועט ווערן א ווייטערפֿירן בלאט צום נייעם קעפל.
איר קענט דערהיינטיגן ווייטערפֿירונגען צום אלטן נאמען אויטאמאטיש.
-טאמער נישט, טוט פֿארזיכערן אז עס איז נישטא קיין [[Special:DoubleRedirects|געטאפלטע]] אדער [[Special:BrokenRedirects|צעבראכענע]] ווייטערפֿירונגען.
+טאמער נישט, טוט פֿארזיכערן אז עס איז נישטא קיין [[Special:DoubleRedirects|געטאפלטע]] אדער [[Special:BrokenRedirects|צעבראכענע ווייטערפֿירונגען]].
-איר זענט פֿאראנטווארטלעך זיכער מאכן אז אלע פֿארבינדונגען ווערן געריכטעט צו דער געהעריגער ריכטונג.
+איר זענט פֿאראנטווארטלעך זיכער מאכן אז אלע פֿארבינדונגען ווערן געריכטעט צום געהעריגן ציל.
-אכטונג: דער בלאט וועט נישט ווערן אריבערגעפֿירט אויב עס איז שוין דא א בלאט אונטער דעם נייעם נאמען, אחוץ ווען ער איז ליידיג. אדער ער איז א ווייטערפֿירונג בלאט, און ער האט נישט קיין געשיכטע פון ענדערונגען. פשט דערפֿון, אז איר קענט איבערקערן א ווייטערפֿירונג וואס איר האט אט געמאכט בטעות, און איר קענט נישט אריבערשרייבן אן עקסיסטירנדן בלאט.
+דער בלאט וועט '''נישט''' ווערן אריבערגעפֿירט אויב עס איז שוין דא א בלאט אונטער דעם נייעם נאמען, אחוץ ווען ער איז א ווייטערפֿירונג בלאט, און ער האט נישט קיין געשיכטע פון ענדערונגען.
+פשט דערפֿון, אז איר קענט איבערקערן א ווייטערפֿירונג וואס איר האט אט געמאכט בטעות, און איר קענט נישט אריבערשרייבן אן עקסיסטירנדן בלאט.
-'''ווארענונג:''' אזא ענדערונג קען זיין דראסטיש און נישט געווינטשען פאר א פאפולערן בלאט; ביטע פֿארזיכערט אז איר פֿארשטייט די ווייטגרייכנדע קאנסקווענסן צו דער אקציע בעפֿאר איר פֿירט דאס אויס.",
+'''ווארענונג!'''
+ אזא ענדערונג קען זיין דראסטיש און נישט געווינטשען פאר א פאפולערן בלאט;
+ביטע פֿארזיכערט אז איר פֿארשטייט די ווייטגרייכנדע קאנסקווענסן צו דער אקציע בעפֿאר איר פֿירט דאס אויס.",
'movepagetext-noredirectfixer' => "זיך באניצן מיט דעם פֿארעם אונטן וועט פֿארענדערן דעם נאמען פֿון דעם בלאט, און וועט אריבערפֿירן זיין געשיכטע צום נייעם נאמען.
דאס אלטע קעפל וועט ווערן א ווייטערפֿירן בלאט צום נײַעם נאמען.
'logentry-newusers-create' => 'באניצער קאנטע $1 געשאפן געווארן',
'logentry-newusers-create2' => 'באניצער קאנטע $1 געשאפן געווארן דורך $3',
'logentry-newusers-autocreate' => 'קאנטע $1 באשאפן אויטאמאטיש',
-'newuserlog-byemail' => 'פאַסווארט געשיקט דורך ע-פאסט',
'logentry-rights-rights' => '$1 האט געביטן גרופע מיטגלידערשאַפֿט פֿאַר $3 פֿון $4 אויף $5',
'logentry-rights-rights-legacy' => '$1 האט געביטן גרופע מיטגלידערשאפט פאר $3',
'logentry-rights-autopromote' => '$1 אויטאמאטיש פראמאווירט פון $4 צו $5',
'logentry-newusers-create' => 'Àpamọ́ oníṣe $1 jẹ́ dídá',
'logentry-newusers-create2' => 'Àpamọ́ oníṣe $3 jẹ́ dídá látọwọ́ $1',
'logentry-newusers-autocreate' => 'Àkópamọ́ $1 jẹ́ dídá fúnrarẹ̀',
-'newuserlog-byemail' => 'ọ̀rọ̀ìpamọ́ jẹ́ fífiránṣẹ́ pẹ̀lú e-mail',
'logentry-rights-rights' => '$1 yí ìjọ́mọ ẹgbẹ́ padà fún $3 láti $4 sí $5',
'logentry-rights-rights-legacy' => '$1 yí ìjọ́mọ ẹgbẹ́ padà fún $3',
'logentry-rights-autopromote' => '$1 jẹ́ gbígbéga nífúnraẹni láti $4 sí $5',
# New logging system
'revdelete-restricted' => '已經應用限制到操作員',
'revdelete-unrestricted' => '已經拎走對於操作員嘅限制',
-'newuserlog-byemail' => '密碼已由電郵寄出',
'rightsnone' => '(無)',
# Search suggestions
$specialPageAliases = array(
'Activeusers' => array( '活跃用户' ),
- 'Allmessages' => array( '所有信息' ),
+ 'Allmessages' => array( '所有消息' ),
'Allpages' => array( '所有页面' ),
'Ancientpages' => array( '最早页面' ),
'Badtitle' => array( '无效标题' ),
'MIMEsearch' => array( 'MIME搜索' ),
'Mostcategories' => array( '最多分类页面' ),
'Mostimages' => array( '最多链接文件' ),
+ 'Mostinterwikis' => array( '最多跨wiki链接页面' ),
'Mostlinked' => array( '最多链接页面' ),
'Mostlinkedcategories' => array( '最多链接分类' ),
'Mostlinkedtemplates' => array( '最多链接模板' ),
'Statistics' => array( '统计信息' ),
'Tags' => array( '标签' ),
'Unblock' => array( '解除封禁' ),
- 'Uncategorizedcategories' => array( 'æ\97 分类分类' ),
- 'Uncategorizedimages' => array( 'æ\97 分类文件' ),
- 'Uncategorizedpages' => array( 'æ\97 分类页面' ),
- 'Uncategorizedtemplates' => array( 'æ\97 分类模板' ),
+ 'Uncategorizedcategories' => array( 'æ\9cª分类分类' ),
+ 'Uncategorizedimages' => array( 'æ\9cª分类文件' ),
+ 'Uncategorizedpages' => array( 'æ\9cª分类页面' ),
+ 'Uncategorizedtemplates' => array( 'æ\9cª分类模板' ),
'Undelete' => array( '恢复被删页面' ),
'Unlockdb' => array( '解除数据库锁定' ),
'Unusedcategories' => array( '未使用分类' ),
'gotaccount' => '已经拥有账户?请$1。',
'gotaccountlink' => '登录',
'userlogin-resetlink' => '忘记了您的登录信息?',
-'createaccountmail' => '通过电子邮件',
+'createaccountmail' => '使用一个临时的随机密码,并将它发送到以下指定的电子邮件地址',
'createaccountreason' => '原因:',
'badretype' => '您所输入的密码并不相同。',
-'userexists' => '用户名已存在,请使用其他名称。',
+'userexists' => '用户名已存在。请使用其他名称。',
'loginerror' => '登录错误',
'createaccounterror' => '无法建立账户:$1',
'nocookiesnew' => '已成功创建新账户!检测到您已禁用 Cookies,请先启用然后登录。',
您可以联系$1或其他的[[{{MediaWiki:Grouppage-sysop}}|管理员]]以申诉此次封禁。若您已在[[Special:Preferences|个人设置]]中设置了一个有效的电子邮件地址,且未被封禁电子邮件功能,则您可通过“发送邮件”功能来联系相关管理员。您当前的 IP 地址是$3,此次封禁的 ID 为#$5。请在您的查询中注明上述所有信息。",
'blockednoreason' => '无给出原因',
'whitelistedittext' => '您必须先$1才可编辑页面。',
-'confirmedittext' => '您必须确认您的电子邮件地址才能编辑本页。请通过[[Special:Preferences|个人设置]]页面设置并确认。',
+'confirmedittext' => '你必须确认你的电子邮件地址才能编辑页面。请通过[[Special:Preferences|系统设置]]设置并确认你的电子邮件地址。',
'nosuchsectiontitle' => '没有这个段落',
'nosuchsectiontext' => '您尝试编辑的章节并不存在。
可能是在您查看页面时已经移动或删除。',
'''不要在未获授权的情况下发表!'''",
'longpageerror' => "'''错误:您所提交的文本长度有{{PLURAL:$1|1|$1}}KB,这大于{{PLURAL:$2|1|$2}}KB的最大值。'''
因此,该文本无法保存。",
-'readonlywarning' => "'''警告:数据库被锁定以进行维护,所以您目前将无法保存您的修改。'''您或许希望将本段文字先复制并保存到文本文件,并在稍后进行修改。
+'readonlywarning' => "警告:数据库被锁定以进行维护,所以您目前将无法保存您的修改。'''您或许希望将本段文字先剪贴并保存到文本文件,并在稍后进行修改。
锁定数据库的管理员有如下解释:$1",
'protectedpagewarning' => "'''警告:本页面已被保护,只有拥有管理员权限的用户可以编辑。'''下面提供最后的日志条目以供参考:",
'sectioneditnotsupported-text' => '本页面不支持段落编辑。',
'permissionserrors' => '权限错误',
'permissionserrorstext' => '因为下列{{PLURAL:$1|原因}},您没有权限执行该操作:',
-'permissionserrorstext-withaction' => 'å\9b 为ä¸\8bå\88\97{{PLURAL:$1|å\8e\9få\9b }}ï¼\8cæ\82¨没有权限$2:',
-'recreate-moveddeleted-warn' => "'''警告:您正在重新创建曾经被删除的页面。'''
+'permissionserrorstext-withaction' => 'å\9b 为以ä¸\8b{{PLURAL:$1|å\8e\9få\9b }}ï¼\8cä½ 没有权限$2:',
+'recreate-moveddeleted-warn' => "'''警告:你正在重新创建曾经被删除的页面。'''
-您应该考虑继续编辑本页是否合适。这里提供本页的删除和移动记录以供参考:",
+你应该考虑继续编辑本页是否合适。这里提供本页的删除和移动记录以供参考:",
'moveddeleted-notice' => '本页面已被删除。下面提供本页的删除和移动日志以供参考。',
'log-fulllog' => '查看完整日志',
'edit-hook-aborted' => '编辑被hook指令取消。
'qbsettings-directionality' => '根据您的语言文本方向固定位置',
# Preferences page
-'preferences' => '个人设置',
-'mypreferences' => '个人设置',
+'preferences' => '系统设置',
+'mypreferences' => '系统设置',
'prefs-edits' => '编辑数量:',
'prefsnologin' => '尚未登录',
'prefsnologintext' => '您必须先<span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} 登录]</span>才能设置个人参数。',
'recentchangescount' => '默认显示的编辑数:',
'prefs-help-recentchangescount' => '该项包含最近更改、页面历史和日志。',
'prefs-help-watchlist-token' => '此栏填写的密钥可以生成您监视列表的RSS源。任何知晓本栏密钥的人都能阅读您的监视列表,因此请使用安全的数值。这里已提供了一个随机生成的数值供您选择:$1',
-'savedprefs' => '新的系统设置已经保存。',
+'savedprefs' => '你的系统设置已经保存。',
'timezonelegend' => '时区:',
'localtime' => '当地时间:',
'timezoneuseserverdefault' => '使用wiki默认值($1)',
'prefs-help-gender' => '选填项目。使软件使用正确的性别称呼。该信息将会公开。',
'email' => '电子邮件',
'prefs-help-realname' => '真实姓名是可选的项目。如果您选择提供它,它将会用于贡献署名。',
-'prefs-help-email' => '电子邮件地址是可选的项目。但是在您忘记密码需要重置密码时需要它。',
-'prefs-help-email-others' => '您也可以选择让其他用户通过您的用户页或讨论页上的链接用电子邮件联系您。其他用户联系您时,您的电子邮件地址将不会被显示。',
+'prefs-help-email' => '电子邮件地址是选填项目。但是在你忘记密码需要重置密码时需要电子邮件地址。',
+'prefs-help-email-others' => '你亦可以选择让其他用户通过你的用户页或讨论页上的链接用电子邮件联系你。其他用户联系你时你的电子邮件地址不会显示。',
'prefs-help-email-required' => '电子邮件地址是必填项目。',
'prefs-info' => '基本信息',
'prefs-i18n' => '界面语言',
'action-import' => '从其他wiki导入本页面',
'action-importupload' => '从文件上传导入本页面',
'action-patrol' => '标记他人的编辑为已巡查',
-'action-autopatrol' => '将您的编辑标记为已巡查',
+'action-autopatrol' => '使你的编辑标记为已巡查',
'action-unwatchedpages' => '查看未受监视页面的列表',
'action-mergehistory' => '合并本页面的历史',
'action-userrights' => '编辑所有用户的权限',
'speciallogtitlelabel' => '目标(标题或用户):',
'log' => '日志',
'all-logs-page' => '所有公开日志',
-'alllogstext' => '所有{{SITENAME}}公开日志的联合展示。 您可以通过选择日志类型、输入用户名(区分大小写)或相关页面(区分大小写)筛选日志条目。',
+'alllogstext' => '所有{{SITENAME}}公开日志的联合展示。你可以通过选择日志类型、输入用户名(区分大小写)或相关页面(区分大小写)筛选日志条目。',
'logempty' => '在日志中不存在匹配项。',
'log-title-wildcard' => '搜索以该文字开头的标题',
'showhideselectedlogentries' => '显示/隐藏所选日志项',
# E-mail user
'mailnologin' => '没有发送地址',
-'mailnologintext' => '您必须[[Special:UserLogin|登录]]并在您的[[Special:Preferences|个人设置]]中设置一个有效的电子邮件地址才能向其他用户发送电子邮件。',
+'mailnologintext' => '你必须[[Special:UserLogin|登录]]并在你的[[Special:Preferences|系统设置]]中拥有有效的电子邮件地址才能向其他用户发送电子邮件。',
'emailuser' => '电邮联系',
'emailuser-title-target' => '邮件联系该{{GENDER:$1|用户}}',
'emailuser-title-notarget' => '邮件联系',
-'emailpage' => '邮件联系',
+'emailpage' => '电邮联系',
'emailpagetext' => '您可以使用下面的表单向该{{GENDER:$1|用户}}发送电子邮件消息。
您在[[Special:Preferences|个人设置]]中输入的电子邮件地址将显示为该邮件的“发件人”地址,所以收件人可以直接回复给您。',
'usermailererror' => 'Mail 对象返回错误:',
'blocklogtext' => '这是用户封禁和解封操作的日志。自动封禁IP地址没有列出。请见[[Special:BlockList|封禁列表]]查看目前正在进行的阻止和封禁的列表。',
'unblocklogentry' => '解封$1',
'block-log-flags-anononly' => '仅限匿名用户',
-'block-log-flags-nocreate' => '创建帐户已禁用',
+'block-log-flags-nocreate' => '账户创建停用',
'block-log-flags-noautoblock' => '自动封禁已禁用',
'block-log-flags-noemail' => '邮件功能已禁用',
'block-log-flags-nousertalk' => '不能编辑自己的讨论页面',
'tooltip-pt-preferences' => '您的系统设置',
'tooltip-pt-watchlist' => '您正在监视的页面的列表',
'tooltip-pt-mycontris' => '您的贡献列表',
-'tooltip-pt-login' => '我们鼓励您登录,但这不是必须的',
-'tooltip-pt-anonlogin' => '我们鼓励您登录,但这不是必须的',
+'tooltip-pt-login' => '我们鼓励你登录,不过这不是强制的',
+'tooltip-pt-anonlogin' => '我们鼓励你登录,不过这不是强制的',
'tooltip-pt-logout' => '注销',
'tooltip-ca-talk' => '有关内容页面的讨论',
-'tooltip-ca-edit' => '您可以编辑本页。请在保存前使用预览按钮查看修改。',
+'tooltip-ca-edit' => '你可以编辑本页面。请在保存前使用预览按钮。',
'tooltip-ca-addsection' => '开始新段落',
'tooltip-ca-viewsource' => '本页面受保护。您可以查看它的源代码。',
'tooltip-ca-history' => '本页面的历史版本',
'tooltip-p-logo' => '访问首页',
'tooltip-n-mainpage' => '访问首页',
'tooltip-n-mainpage-description' => '访问首页',
-'tooltip-n-portal' => '关于本项目,您可以做些什么,在哪里可以找到您需要的东西',
+'tooltip-n-portal' => '关于本项目,你可以做什么,在哪里找到你需要的事物',
'tooltip-n-currentevents' => '查看当前事件的背景信息',
'tooltip-n-recentchanges' => '本wiki的最近更改列表',
'tooltip-n-randompage' => '载入一个随机页面',
'tooltip-ca-nstab-main' => '查看内容页面',
'tooltip-ca-nstab-user' => '查看用户页面',
'tooltip-ca-nstab-media' => '查看媒体文件页面',
-'tooltip-ca-nstab-special' => '这是一个特殊页面,您不能编辑本页',
+'tooltip-ca-nstab-special' => '本页为特殊页面,你不能编辑本页',
'tooltip-ca-nstab-project' => '查看项目页面',
'tooltip-ca-nstab-image' => '查看文件页面',
'tooltip-ca-nstab-mediawiki' => '查看系统信息',
'tooltip-watchlistedit-raw-submit' => '更新监视列表',
'tooltip-recreate' => '重建该页面,无论是否被删除。',
'tooltip-upload' => '开始上传',
-'tooltip-rollback' => '点击“回退”恢复上一位贡献者对本页的编辑',
+'tooltip-rollback' => '单击“回退”恢复上一位贡献者对本页的编辑',
'tooltip-undo' => '“撤销”可以恢复该编辑并在预览模式下打开编辑表单。它允许在摘要中加入原因。',
'tooltip-preferences-save' => '保存设置',
'tooltip-summary' => '请输入简短的摘要',
'simple.js' => '/* 此处的JavaScript将加载于使用Simple皮肤的用户 */',
'modern.js' => '/* 此处的JavaScript将加载于使用Modern皮肤的用户 */',
'vector.js' => '/* 此处的JavaScript将加载于使用Vector皮肤的用户 */',
+'group-autoconfirmed.js' => '/* 此处的JavaScript将仅加载于自动确认用户 */',
+'group-bot.js' => '/* 此处的JavaScript将仅加载于机器人 */',
+'group-sysop.js' => '/* 此处的JavaScript将仅加载于管理员 */',
+'group-bureaucrat.js' => '/* 此处的JavaScript将仅加载于行政员 */',
# Metadata
'notacceptable' => '该网站服务器不能提供您的客户端能识别的数据格式。',
'sp-newimages-showfrom' => '从$1 $2开始显示新文件',
# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds-abbrev' => '$1秒',
+'minutes-abbrev' => '$1分',
+'hours-abbrev' => '$1小时',
+'days-abbrev' => '$1天',
'seconds' => '$1秒',
'minutes' => '$1分',
'hours' => '$1小时',
# E-mail address confirmation
'confirmemail' => '确认邮箱地址',
-'confirmemail_noemail' => '您还没有在您的[[Special:Preferences|个人设置]]中设置有效的电子邮件地址。',
+'confirmemail_noemail' => '你还没有在你的[[Special:Preferences|系统设置]]中设置有效的电子邮件地址。',
'confirmemail_text' => '{{SITENAME}}要求您在使用邮件功能之前验证您的邮箱地址。
点击以下按钮可向您的邮箱发送一封确认邮件。该邮件包含有一行代码链接;
请在您的浏览器中加载此链接以确认您的邮箱地址是有效的。',
'specialpages-group-highuse' => '高度使用页面',
'specialpages-group-pages' => '页面列表',
'specialpages-group-pagetools' => '页面工具',
-'specialpages-group-wiki' => 'Wiki数据与工具',
+'specialpages-group-wiki' => '数据与工具',
'specialpages-group-redirects' => '重定向特殊页面',
'specialpages-group-spam' => '反垃圾链接工具',
'logentry-newusers-newusers' => '已创建用户帐户 $1',
'logentry-newusers-create' => '创建用户帐户$1',
'logentry-newusers-create2' => '创建用户帐户 $3 由 $1',
+'logentry-newusers-byemail' => '$1创建用户$3并将密码用电子邮件发送',
'logentry-newusers-autocreate' => '账户$1被自动创建',
-'newuserlog-byemail' => '密码已用电子邮件发送',
'logentry-rights-rights' => '$1将$3的用户组从$4改为$5',
'logentry-rights-rights-legacy' => '$1更改$3的用户组',
'logentry-rights-autopromote' => '$1的用户组已自动从$4改为$5',
'api-error-ok-but-empty' => '内部错误:服务器没有响应。',
'api-error-overwrite' => '不允许覆盖现有文件。',
'api-error-stashfailed' => '内部错误:服务器保存临时文件失败。',
+'api-error-publishfailed' => '内部错误:服务器发布临时文件失败。',
'api-error-timeout' => '服务器没有在预期内响应。',
'api-error-unclassified' => '出现未知错误。',
'api-error-unknown-code' => '未知错误:$1',
'Allmessages' => array( '所有信息' ),
'Allpages' => array( '所有頁面' ),
'Ancientpages' => array( '最早頁面' ),
+ 'Badtitle' => array( '無效標題' ),
'Blankpage' => array( '空白頁面' ),
'Block' => array( '查封用戶' ),
'Blockme' => array( '封禁我' ),
'Booksources' => array( '網絡書源' ),
'BrokenRedirects' => array( '損壞的重定向頁' ),
'Categories' => array( '頁面分類' ),
+ 'ChangeEmail' => array( '修改郵箱' ),
'ChangePassword' => array( '修改密碼' ),
'ComparePages' => array( '頁面比較' ),
'Confirmemail' => array( '確認電子郵件' ),
'Filepath' => array( '文件路徑' ),
'Import' => array( '導入頁面' ),
'Invalidateemail' => array( '不可識別的電郵地址' ),
+ 'JavaScriptTest' => array( 'JavaScript測試' ),
'BlockList' => array( '封禁列表' ),
'LinkSearch' => array( '搜索網頁鏈接' ),
'Listadmins' => array( '管理員列表' ),
'MIMEsearch' => array( 'MIME搜索' ),
'Mostcategories' => array( '最多分類頁面' ),
'Mostimages' => array( '最多鏈接文件' ),
+ 'Mostinterwikis' => array( '最多跨維基連結' ),
'Mostlinked' => array( '最多鏈接頁面' ),
'Mostlinkedcategories' => array( '最多鏈接分類' ),
'Mostlinkedtemplates' => array( '最多鏈接模板' ),
'Withoutinterwiki' => array( '沒有跨語言鏈接的頁面' ),
);
+$magicWords = array(
+ 'notoc' => array( '0', '__無目錄__', '__无目录__', '__NOTOC__' ),
+ 'nogallery' => array( '0', '__無圖庫__', '__无图库__', '__NOGALLERY__' ),
+ 'forcetoc' => array( '0', '__強制目錄__', '__强显目录__', '__FORCETOC__' ),
+ 'toc' => array( '0', '__目錄__', '__目录__', '__TOC__' ),
+ 'noeditsection' => array( '0', '__無段落編輯__', '__无段落编辑__', '__NOEDITSECTION__' ),
+ 'currentmonth' => array( '1', '本月', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+ 'currentmonthabbrev' => array( '1', '本月簡稱', '本月简称', 'CURRENTMONTHABBREV' ),
+ 'currentday' => array( '1', '今天', 'CURRENTDAY' ),
+ 'currenttime' => array( '1', '當前時間', '此時', '此时', '当前时间', 'CURRENTTIME' ),
+ 'img_thumbnail' => array( '1', '縮圖', '缩略图', 'thumbnail', 'thumb' ),
+ 'img_manualthumb' => array( '1', '縮圖=$1', '缩略图=$1', 'thumbnail=$1', 'thumb=$1' ),
+ 'img_right' => array( '1', '右', 'right' ),
+ 'img_left' => array( '1', '左', 'left' ),
+ 'img_none' => array( '1', '無', '无', 'none' ),
+ 'img_width' => array( '1', '$1像素', '$1px' ),
+ 'img_center' => array( '1', '置中', '居中', 'center', 'centre' ),
+ 'img_framed' => array( '1', '有框', 'framed', 'enframed', 'frame' ),
+ 'img_frameless' => array( '1', '無框', '无框', 'frameless' ),
+ 'img_page' => array( '1', '頁=$1', '$1頁', '页数=$1', '$1页', 'page=$1', 'page $1' ),
+ 'img_link' => array( '1', '連結=$1', '链接=$1', 'link=$1' ),
+ 'sitename' => array( '1', '網站名稱', '站点名称', 'SITENAME' ),
+ 'ns' => array( '0', '名字空間', '名字空间:', 'NS:' ),
+ 'nse' => array( '0', '名字空間E', '名字空间E:', 'NSE:' ),
+ 'localurl' => array( '0', '本地URL', '本地URL:', 'LOCALURL:' ),
+ 'localurle' => array( '0', '本地URLE', '本地URLE:', 'LOCALURLE:' ),
+ 'pageid' => array( '0', '頁面ID', '页面ID', 'PAGEID' ),
+ 'server' => array( '0', '伺服器', '服务器', 'SERVER' ),
+ 'servername' => array( '0', '伺服器名稱', '服务器名', 'SERVERNAME' ),
+ 'gender' => array( '0', '性別:', '性别:', 'GENDER:' ),
+ 'notitleconvert' => array( '0', '__不轉換標題__', '__不转换标题__', '__NOTITLECONVERT__', '__NOTC__' ),
+ 'nocontentconvert' => array( '0', '__不轉換內容__', '__不转换内容__', '__NOCONTENTCONVERT__', '__NOCC__' ),
+ 'displaytitle' => array( '1', '顯示標題', '显示标题', 'DISPLAYTITLE' ),
+ 'currentversion' => array( '1', '當前版本', '当前版本', 'CURRENTVERSION' ),
+ 'hiddencat' => array( '1', '__隱藏分類__', '__隐藏分类__', '__HIDDENCAT__' ),
+ 'staticredirect' => array( '1', '__靜態重定向__', '__静态重定向__', '__STATICREDIRECT__' ),
+);
+
$bookstoreList = array(
'博客來書店' => 'http://www.books.com.tw/exep/prod/booksfile.php?item=$1',
'三民書店' => 'http://www.sanmin.com.tw/page-qsearch.asp?ct=search_isbn&qu=$1',
'gotaccount' => '已經擁有帳號?$1。',
'gotaccountlink' => '登入',
'userlogin-resetlink' => '忘記了你的登錄信息?',
-'createaccountmail' => '通過電郵',
+'createaccountmail' => '使用一個臨時的隨機密碼,並將它發送到以下指定的電子郵件地址',
'createaccountreason' => '理由:',
'badretype' => '您所輸入的密碼並不相同。',
'userexists' => '!您所輸入的用戶名稱已經存在,請另選一個名稱。',
'''不要在未獲授權的情況下發表!'''",
'longpageerror' => "'''錯誤:您所提交的文本長度有{{PLURAL:$1|1|$1}}KB,這大於{{PLURAL:$2|1|$2}}KB的最大值。 '''
因此,該文本無法保存。",
-'readonlywarning' => "'''警告: 資料庫被鎖定以進行維護,所以您目前將無法保存您的修改。'''您或許希望先將本段文字複製並保存到文字檔案,然後等一會兒再修改。
+'readonlywarning' => "'''警告: 資料庫被鎖定以進行維護,所以您目前將無法保存您的修改。'''
+您可先複製您的文字並保存到文字檔案,然後等一會兒再修改。
鎖定資料庫的管理員有如下解釋:$1",
'protectedpagewarning' => "'''警告:本頁已經被保護,只有擁有管理員許可權的用戶才可修改。'''
'specialpages-group-highuse' => '高度使用頁面',
'specialpages-group-pages' => '頁面清單',
'specialpages-group-pagetools' => '頁面工具',
-'specialpages-group-wiki' => 'Wiki 資料和工具',
+'specialpages-group-wiki' => '資料和工具',
'specialpages-group-redirects' => '重新定向特殊頁面',
'specialpages-group-spam' => '反垃圾工具',
'logentry-newusers-newusers' => '已建立用戶「$1」',
'logentry-newusers-create' => '已建立用戶「$1」',
'logentry-newusers-create2' => '用戶「$1」建立用戶「$3」',
+'logentry-newusers-byemail' => '$1建立用戶$3並電郵密碼給他',
'logentry-newusers-autocreate' => '帳戶$1被自動創建',
-'newuserlog-byemail' => '密碼已由電子郵件寄出',
'logentry-rights-rights' => '$1將$3的權限從$4改為$5',
'logentry-rights-rights-legacy' => '$1更改$3的權限',
'logentry-rights-autopromote' => '$1的權限自動從$4改為$5',
'api-error-nomodule' => '內部錯誤:缺少上傳模塊集。',
'api-error-ok-but-empty' => '內部錯誤:伺服器沒有響應。',
'api-error-overwrite' => '不允許覆蓋現有檔案。',
-'api-error-stashfailed' => '內部錯誤:伺服器保存臨時文件失敗。',
+'api-error-stashfailed' => '內部錯誤:伺服器保存臨時檔案失敗。',
+'api-error-publishfailed' => '內部錯誤:伺服器發佈臨時檔案失敗。',
'api-error-timeout' => '伺服器沒有在預期的時間內回應。',
'api-error-unclassified' => '發生未知錯誤。',
'api-error-unknown-code' => '未知錯誤:$1',
$encPrompt = wfEscapeShellArg( $prompt );
$command = "read -er -p $encPrompt && echo \"\$REPLY\"";
$encCommand = wfEscapeShellArg( $command );
- $line = wfShellExec( "$bash -c $encCommand", $retval );
+ $line = wfShellExec( "$bash -c $encCommand", $retval, array(), array( 'walltime' => 0 ) );
if ( $retval == 0 ) {
return $line;
$ops = array();
$fsFiles = array();
$copiedRel = array(); // for output message
+
+ // Download the batch of source files into backend cache...
+ if ( $this->hasOption( 'missingonly' ) ) {
+ $srcPaths = array();
+ foreach ( $srcPathsRel as $srcPathRel ) {
+ $srcPaths[] = $src->getRootStoragePath() . "/$backendRel/$srcPathRel";
+ }
+ $fsFiles = $src->getLocalReferenceMulti( array( 'srcs' => $srcPaths, 'latest' => 1 ) );
+ }
+
+ // Determine what files need to be copied over...
foreach ( $srcPathsRel as $srcPathRel ) {
$srcPath = $src->getRootStoragePath() . "/$backendRel/$srcPathRel";
$dstPath = $dst->getRootStoragePath() . "/$backendRel/$srcPathRel";
$this->output( "Already have $srcPathRel.\n" );
continue; // assume already copied...
}
- // Note: getLocalReference() is fast for FS backends
- $fsFile = $src->getLocalReference( array( 'src' => $srcPath, 'latest' => 1 ) );
+ $fsFile = array_key_exists( $srcPath, $fsFiles )
+ ? $fsFiles[$srcPath]
+ : $src->getLocalReference( array( 'src' => $srcPath, 'latest' => 1 ) );
if ( !$fsFile ) {
$this->error( "Could not get local copy of $srcPath.", 1 ); // die
} elseif ( !$fsFile->exists() ) {
$copiedRel[] = $srcPathRel;
}
+ // Copy in the batch of source files...
$t_start = microtime( true );
$status = $dst->doQuickOperations( $ops, array( 'bypassReadOnly' => 1 ) );
if ( !$status->isOK() ) {
'1movedto2',
'1movedto2_redir',
'move-redirect-suppressed',
- // 'newuserlog-byemail',
'newuserlog-create-entry',
'newuserlog-create2-entry',
'newuserlog-autocreate-entry',
'logentry-newusers-newusers',
'logentry-newusers-create',
'logentry-newusers-create2',
+ 'logentry-newusers-byemail',
'logentry-newusers-autocreate',
- 'newuserlog-byemail',
'logentry-rights-rights',
'logentry-rights-rights-legacy',
'logentry-rights-autopromote',
'1movedto2',
'1movedto2_redir',
'move-redirect-suppressed',
- // 'newuserlog-byemail',
'newuserlog-create-entry',
'newuserlog-create2-entry',
'newuserlog-autocreate-entry',
'api-error-ok-but-empty',
'api-error-overwrite',
'api-error-stashfailed',
+ 'api-error-publishfailed',
'api-error-timeout',
'api-error-unclassified',
'api-error-unknown-code',
foreach ( array( 'address', 'port', 'authKey' ) as $par ) {
if ( !isset( $config[$par] ) ) {
die( "Usage: php LockServerDaemon.php " .
- "--address <address> --port <port> --authkey <key> " .
+ "--address <address> --port <port> --authKey <key> " .
"[--lockTimeout <seconds>] " .
- "[--maxLocks <integer>] [--maxClients <integer>] [--maxBacklog <integer>]"
+ "[--maxLocks <integer>] [--maxClients <integer>] [--maxBacklog <integer>]\n"
);
}
}
* http://www.gnu.org/copyleft/gpl.html
*
* @file
- * @todo Make this work on PostgreSQL and maybe other database servers
* @ingroup Maintenance
*/
public function __construct() {
parent::__construct();
$this->mDescription = "Pick a database that has pending jobs";
- $this->addOption( 'type', "The type of job to search for", false, true );
+ $this->addOption( 'type', "Search by job type", false, true );
+ $this->addOption( 'types', "Space separated list of job types to search for", false, true );
}
public function execute() {
global $wgMemc;
- $type = $this->getOption( 'type', false );
+ $type = false; // job type required/picked
+ if ( $this->hasOption( 'types' ) ) {
+ $types = explode( ' ', $this->getOption( 'types' ) );
+ } elseif ( $this->hasOption( 'type' ) ) {
+ $types = array( $this->getOption( 'type' ) );
+ } else {
+ $types = false;
+ }
$memcKey = 'jobqueue:dbs:v3';
$pendingDbInfo = $wgMemc->get( $memcKey );
do {
$again = false;
- if ( $type === false ) {
+ if ( $types === false ) {
$candidates = call_user_func_array( 'array_merge', $pendingDBs );
- } elseif ( isset( $pendingDBs[$type] ) ) {
- $candidates = $pendingDBs[$type];
} else {
$candidates = array();
+ $possTypes = array_intersect( $types, array_keys( $pendingDBs ) );
+ if ( $possTypes ) {
+ $possTypes = array_values( $possTypes );
+ $type = $possTypes[ mt_rand( 0, count( $possTypes ) - 1 ) ];
+ $candidates = $pendingDBs[$type];
+ }
}
if ( !$candidates ) {
- return;
+ return; // no jobs for this type
}
$candidates = array_values( $candidates );
$db = $candidates[ mt_rand( 0, count( $candidates ) - 1 ) ];
if ( !$this->checkJob( $type, $db ) ) {
- if ( $type === false ) {
- // There are no jobs available in the current database
- foreach ( $pendingDBs as $type2 => $dbs ) {
- $pendingDBs[$type2] = array_diff( $pendingDBs[$type2], array( $db ) );
- }
- } else {
- // There are no jobs of this type available in the current database
- $pendingDBs[$type] = array_diff( $pendingDBs[$type], array( $db ) );
- }
+ $pendingDBs = $this->delistDB( $pendingDBs, $db, $type );
// Update the cache to remove the outdated information.
// Make sure that this does not race (especially with full rebuilds).
- $pendingDbInfo['pendingDBs'] = $pendingDBs;
if ( $wgMemc->add( "$memcKey:lock", 1, 60 ) ) { // lock
$curInfo = $wgMemc->get( $memcKey );
- if ( $curInfo && $curInfo['timestamp'] === $pendingDbInfo['timestamp'] ) {
- $wgMemc->set( $memcKey, $pendingDbInfo );
+ if ( is_array( $curInfo ) ) {
+ $curInfo['pendingDBs'] =
+ $this->delistDB( $curInfo['pendingDBs'], $db, $type );
+ $wgMemc->set( $memcKey, $curInfo );
+ // May as well make use of this newer information
+ $pendingDBs = $curInfo['pendingDBs'];
}
$wgMemc->delete( "$memcKey:lock" ); // unlock
}
}
} while ( $again );
- $this->output( $db . "\n" );
+ if ( $this->hasOption( 'types' ) ) {
+ $this->output( $db . " " . $type . "\n" );
+ } else {
+ $this->output( $db . "\n" );
+ }
+ }
+
+ private function delistDB( array $pendingDBs, $db, $type ) {
+ if ( $type === false ) {
+ // There are no jobs available in the current database
+ foreach ( $pendingDBs as $type2 => $dbs ) {
+ $pendingDBs[$type2] = array_diff( $pendingDBs[$type2], array( $db ) );
+ }
+ } else {
+ // There are no jobs of this type available in the current database
+ $pendingDBs[$type] = array_diff( $pendingDBs[$type], array( $db ) );
+ }
+ return $pendingDBs;
}
/**
* @param $dbName string
* @return bool
*/
- function checkJob( $type, $dbName ) {
+ private function checkJob( $type, $dbName ) {
$group = JobQueueGroup::singleton( $dbName );
if ( $type === false ) {
foreach ( $group->getDefaultQueueTypes() as $type ) {
$t = microtime( true );
$this->runJobsLog( $job->toString() . " STARTING" );
$status = $job->run();
- $group->ack( $job ); // done
+ if ( $status ) {
+ $group->ack( $job ); // done
+ }
$t = microtime( true ) - $t;
$timeMs = intval( $t * 1000 );
if ( !$status ) {
break;
}
// Don't let any slaves/backups fall behind...
- $group->get( $type )->waitForBackups();
+ $group->get( $job->getType() )->waitForBackups();
}
} while ( $job ); // stop when there are no jobs
}
return htmlspecialchars(
'?' .
- wfArrayToCGI( array(
+ wfArrayToCgi( array(
'filter' => $_filter ? $_filter : $filter,
'sort' => $_sort ? $_sort : $sort,
'expand' => implode( ',', array_keys( $_expand ) )
),
'mediawiki.searchSuggest' => array(
'scripts' => 'resources/mediawiki/mediawiki.searchSuggest.js',
+ 'styles' => 'resources/mediawiki/mediawiki.searchSuggest.css',
'messages' => array(
'searchsuggest-search',
'searchsuggest-containing',
),
'dependencies' => array( 'mediawiki.libs.jpegmeta', 'mediawiki.util' ),
),
+ 'mediawiki.special.userlogin.signup' => array(
+ 'scripts' => 'resources/mediawiki.special/mediawiki.special.userLogin.signup.js',
+ ),
'mediawiki.special.javaScriptTest' => array(
'scripts' => 'resources/mediawiki.special/mediawiki.special.javaScriptTest.js',
'messages' => array_merge( Skin::getSkinNameMessages(), array(
// Strings which precede a version number in a user agent string - combined and used as match 1 in
// version detectection
versionPrefixes = [
- 'camino', 'chrome', 'firefox', 'netscape', 'netscape6', 'opera', 'version', 'konqueror',
+ 'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'netscape6', 'opera', 'version', 'konqueror',
'lynx', 'msie', 'safari', 'ps3'
],
// Used as matches 2, 3 and 4 in version extraction - 3 is used as actual version number
versionSuffix = '(\\/|\\;?\\s|)([a-z0-9\\.\\+]*?)(\\;|dev|rel|\\)|\\s|$)',
// Names of known browsers
names = [
- 'camino', 'chrome', 'firefox', 'netscape', 'konqueror', 'lynx', 'msie', 'opera',
+ 'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'konqueror', 'lynx', 'msie', 'opera',
'safari', 'ipod', 'iphone', 'blackberry', 'ps3', 'rekonq'
],
// Tanslations for conforming browser names
var conditions, dir, i, op, val;
profile = $.isPlainObject( profile ) ? profile : $.client.profile();
-
dir = $( 'body' ).is( '.rtl' ) ? 'rtl' : 'ltr';
// Check over each browser condition to determine if we are running in a compatible client
if ( typeof map[dir] !== 'object' || map[dir][profile.name] === undefined ) {
return true;
}
conditions = map[dir][profile.name];
+ if ( conditions === false ) {
+ return false;
+ }
for ( i = 0; i < conditions.length; i++ ) {
op = conditions[i][0];
val = conditions[i][1];
- if ( val === false ) {
- return false;
- }
if ( typeof val === 'string' ) {
if ( !( eval( 'profile.version' + op + '"' + val + '"' ) ) ) {
return false;
}
}
}
+
return true;
}
};
setTimeout( function () {
// Render special
var $special = context.data.$container.find( '.suggestions-special' );
- context.config.special.render.call( $special, context.data.$textbox.val() );
+ context.config.special.render.call( $special, context.data.$textbox.val(), context );
}, 1 );
}
},
*/
configure: function ( context, property, value ) {
var newCSS,
- $autoEllipseMe, $result, $results, $span,
+ $autoEllipseMe, $result, $results, childrenWidth,
i, expWidth, matchedText, maxWidth, text;
// Validate creation using fallback values
context.data.selectedWithMouse = true;
$.suggestions.highlight(
context,
- $(this).closest( '.suggestions-results div' ),
+ $(this).closest( '.suggestions-results .suggestions-result' ),
false
);
} )
.appendTo( $results );
// Allow custom rendering
if ( typeof context.config.result.render === 'function' ) {
- context.config.result.render.call( $result, context.config.suggestions[i] );
+ context.config.result.render.call( $result, context.config.suggestions[i], context );
} else {
// Add <span> with text
- if( context.config.highlightInput ) {
- matchedText = context.data.prevText;
- }
$result.append( $( '<span>' )
.css( 'whiteSpace', 'nowrap' )
.text( text )
);
+ }
- // Widen results box if needed
- // New width is only calculated here, applied later
- $span = $result.children( 'span' );
- if ( $span.outerWidth() > $result.width() && $span.outerWidth() > expWidth ) {
- // factor in any padding, margin, or border space on the parent
- expWidth = $span.outerWidth() + ( context.data.$container.width() - $span.parent().width());
- }
- $autoEllipseMe = $autoEllipseMe.add( $result );
+ if ( context.config.highlightInput ) {
+ matchedText = context.data.prevText;
}
+
+ // Widen results box if needed
+ // New width is only calculated here, applied later
+ childrenWidth = $result.children().outerWidth();
+ if ( childrenWidth > $result.width() && childrenWidth > expWidth ) {
+ // factor in any padding, margin, or border space on the parent
+ expWidth = childrenWidth + ( context.data.$container.width() - $result.width() );
+ }
+ $autoEllipseMe = $autoEllipseMe.add( $result );
}
// Apply new width for results box, if any
if ( expWidth > context.data.$container.width() ) {
result = context.data.$container.find( '.suggestions-result:last' );
} else {
result = selected.prev();
+ if ( !( result.length && result.hasClass( '.suggestions-result' ) ) ) {
+ // there is something in the DOM between selected element and the wrapper, bypass it
+ result = selected.parents( '.suggestions-results > *' ).prev().find( '.suggestions-result' ).eq(0);
+ }
+
if ( selected.length === 0 ) {
// we are at the beginning, so lets jump to the last item
if ( context.data.$container.find( '.suggestions-special' ).html() !== '' ) {
result = context.data.$container.find( '.suggestions-special' );
} else {
- result = context.data.$container.find( '.suggestions-results div:last' );
+ result = context.data.$container.find( '.suggestions-results .suggestions-result:last' );
}
}
}
} else if ( result === 'next' ) {
if ( selected.length === 0 ) {
// No item selected, go to the first one
- result = context.data.$container.find( '.suggestions-results div:first' );
+ result = context.data.$container.find( '.suggestions-results .suggestions-result:first' );
if ( result.length === 0 && context.data.$container.find( '.suggestions-special' ).html() !== '' ) {
// No suggestion exists, go to the special one directly
result = context.data.$container.find( '.suggestions-special' );
}
} else {
result = selected.next();
+ if ( !( result.length && result.hasClass( '.suggestions-result' ) ) ) {
+ // there is something in the DOM between selected element and the wrapper, bypass it
+ result = selected.parents( '.suggestions-results > *' ).next().find( '.suggestions-result' ).eq(0);
+ }
+
if ( selected.is( '.suggestions-special' ) ) {
result = $( [] );
} else if (
// textbox loses focus. Instead, listen for a mousedown followed
// by a mouseup on the same div.
.mousedown( function ( e ) {
- context.data.mouseDownOn = $( e.target ).closest( '.suggestions-results div' );
+ context.data.mouseDownOn = $( e.target ).closest( '.suggestions-results .suggestions-result' );
} )
.mouseup( function ( e ) {
- var $result = $( e.target ).closest( '.suggestions-results div' ),
+ var $result = $( e.target ).closest( '.suggestions-results .suggestions-result' ),
$other = context.data.mouseDownOn;
context.data.mouseDownOn = $( [] );
if ( $result.get( 0 ) !== $other.get( 0 ) ) {
return;
}
- $.suggestions.highlight( context, $result, true );
- context.data.$container.hide();
- if ( typeof context.config.result.select === 'function' ) {
- context.config.result.select.call( $result, context.data.$textbox );
+ // do not interfere with non-left clicks or if modifier keys are pressed (e.g. ctrl-click)
+ if ( !( e.which !== 1 || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey ) ) {
+ $.suggestions.highlight( context, $result, true );
+ context.data.$container.hide();
+ if ( typeof context.config.result.select === 'function' ) {
+ context.config.result.select.call( $result, context.data.$textbox );
+ }
}
+ // but still restore focus to the textbox, so that the suggestions will be hidden properly
context.data.$textbox.focus();
} )
)
if ( $special.get( 0 ) !== $other.get( 0 ) ) {
return;
}
- context.data.$container.hide();
- if ( typeof context.config.special.select === 'function' ) {
- context.config.special.select.call( $special, context.data.$textbox );
+ // do not interfere with non-left clicks or if modifier keys are pressed (e.g. ctrl-click)
+ if ( !( e.which !== 1 || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey ) ) {
+ context.data.$container.hide();
+ if ( typeof context.config.special.select === 'function' ) {
+ context.config.special.select.call( $special, context.data.$textbox );
+ }
}
+ // but still restore focus to the textbox, so that the suggestions will be hidden properly
context.data.$textbox.focus();
} )
.mousemove( function ( e ) {
--- /dev/null
+/**
+ * JavaScript for Special:UserLogin/signup
+ */
+jQuery( document ).ready( function ( $ ) {
+ $( '#wpCreateaccountMail' )
+ .on( 'change', function() {
+ $( '.mw-row-password' ).toggle( !$( this ).attr( 'checked' ) );
+ } )
+ .trigger( 'change' );
+} );
--- /dev/null
+/* Make sure the links are not underlined or colored, ever. */
+/* There is already a :focus / :hover indication on the <div>. */
+.suggestions a.mw-searchSuggest-link,
+.suggestions a.mw-searchSuggest-link:hover,
+.suggestions a.mw-searchSuggest-link:active,
+.suggestions a.mw-searchSuggest-link:focus {
+ text-decoration: none;
+ color: black;
+}
+
+.suggestions-result-current a.mw-searchSuggest-link,
+.suggestions-result-current a.mw-searchSuggest-link:hover,
+.suggestions-result-current a.mw-searchSuggest-link:active,
+.suggestions-result-current a.mw-searchSuggest-link:focus {
+ color: white;
+}
*/
( function ( mw, $ ) {
$( document ).ready( function ( $ ) {
- var map, searchboxesSelectors,
+ var map, resultRenderCache, searchboxesSelectors,
// Region where the suggestions box will appear directly below
// (using the same width). Can be a container element or the input
// itself, depending on what suits best in the environment.
return;
}
+ // Compute form data for search suggestions functionality.
+ function computeResultRenderCache( context ) {
+ var $form, formAction, baseHref, linkParams;
+
+ // Compute common parameters for links' hrefs
+ $form = context.config.$region.closest( 'form' );
+
+ formAction = $form.attr( 'action' );
+ baseHref = formAction + ( formAction.match(/\?/) ? '&' : '?' );
+
+ linkParams = {};
+ $.each( $form.serializeArray(), function ( idx, obj ) {
+ linkParams[ obj.name ] = obj.value;
+ } );
+
+ return {
+ textParam: context.data.$textbox.attr( 'name' ),
+ linkParams: linkParams,
+ baseHref: baseHref
+ };
+ }
+
+ // The function used to render the suggestions.
+ function renderFunction( text, context ) {
+ if ( !resultRenderCache ) {
+ resultRenderCache = computeResultRenderCache( context );
+ }
+
+ // linkParams object is modified and reused
+ resultRenderCache.linkParams[ resultRenderCache.textParam ] = text;
+
+ // this is the container <div>, jQueryfied
+ this
+ .append(
+ // the <span> is needed for $.autoEllipsis to work
+ $( '<span>' )
+ .css( 'whiteSpace', 'nowrap' )
+ .text( text )
+ )
+ .wrap(
+ $( '<a>' )
+ .attr( 'href', resultRenderCache.baseHref + $.param( resultRenderCache.linkParams ) )
+ .addClass( 'mw-searchSuggest-link' )
+ );
+ }
+
+ function specialRenderFunction( query, context ) {
+ var $el = this;
+
+ if ( !resultRenderCache ) {
+ resultRenderCache = computeResultRenderCache( context );
+ }
+
+ // linkParams object is modified and reused
+ resultRenderCache.linkParams[ resultRenderCache.textParam ] = query;
+
+ if ( $el.children().length === 0 ) {
+ $el
+ .append(
+ $( '<div>' )
+ .addClass( 'special-label' )
+ .text( mw.msg( 'searchsuggest-containing' ) ),
+ $( '<div>' )
+ .addClass( 'special-query' )
+ .text( query )
+ .autoEllipsis()
+ )
+ .show();
+ } else {
+ $el.find( '.special-query' )
+ .text( query )
+ .autoEllipsis();
+ }
+
+ if ( $el.parent().hasClass( 'mw-searchSuggest-link' ) ) {
+ $el.parent().attr( 'href', resultRenderCache.baseHref + $.param( resultRenderCache.linkParams ) + '&fulltext=1' );
+ } else {
+ $el.wrap(
+ $( '<a>' )
+ .attr( 'href', resultRenderCache.baseHref + $.param( resultRenderCache.linkParams ) + '&fulltext=1' )
+ .addClass( 'mw-searchSuggest-link' )
+ );
+ }
+ }
+
// General suggestions functionality for all search boxes
searchboxesSelectors = [
// Primary searchbox on every page in standard skins
}
},
result: {
+ render: renderFunction,
select: function ( $input ) {
$input.closest( 'form' ).submit();
}
// Special suggestions functionality for skin-provided search box
$searchInput.suggestions( {
result: {
+ render: renderFunction,
select: function ( $input ) {
$input.closest( 'form' ).submit();
}
},
special: {
- render: function ( query ) {
- var $el = this;
- if ( $el.children().length === 0 ) {
- $el
- .append(
- $( '<div>' )
- .addClass( 'special-label' )
- .text( mw.msg( 'searchsuggest-containing' ) ),
- $( '<div>' )
- .addClass( 'special-query' )
- .text( query )
- .autoEllipsis()
- )
- .show();
- } else {
- $el.find( '.special-query' )
- .text( query )
- .autoEllipsis();
- }
- },
+ render: specialRenderFunction,
select: function ( $input ) {
$input.closest( 'form' ).append(
$( '<input type="hidden" name="fulltext" value="1"/>' )
'GenericArrayObjectTest' => "$testDir/phpunit/includes/libs/GenericArrayObjectTest.php",
# tests/phpunit/includes/site
- 'SiteObjectTest' => "$testDir/phpunit/includes/site/SiteObjectTest.php",
+ 'SiteTest' => "$testDir/phpunit/includes/site/SiteTest.php",
'TestSites' => "$testDir/phpunit/includes/site/TestSites.php",
# tests/phpunit/languages
private function teardownGlobals() {
RepoGroup::destroySingleton();
FileBackendGroup::destroySingleton();
- LockManagerGroup::destroySingleton();
+ LockManagerGroup::destroySingletons();
LinkCache::singleton()->clear();
foreach ( $this->savedGlobals as $var => $val ) {
!! end
+!! test
+Entities inside <nowiki>
+!! input
+<nowiki><</nowiki>
+!! result
+<p><
+</p>
+!! end
+
###
### Comments
!! end
+!! test
+Entities inside <pre>
+!! input
+<pre><</pre>
+!! result
+<pre><</pre>
+
+!! end
+
!! test
<pre> with forbidden attribute values (bug 3202)
!! input
!! end
+!!test
+Gallery with invalid title as link (bug 43964)
+!! input
+<gallery>
+File:foobar.jpg|link=<
+</gallery>
+!! result
+<ul class="gallery">
+ <li class="gallerybox" style="width: 155px"><div style="width: 155px">
+ <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+ <div class="gallerytext">
+ </div>
+ </div></li>
+</ul>
+
+!! end
+
!!test
Language parser function
!! input
</p>
!! end
+!! test
+HTML tag with broken attribute value quoting
+!! input
+<span title="Hello world>Foo</span>
+!! result
+<p><span>Foo</span>
+</p>
+!! end
+
+!! test
+Parsoid-only: HTML tag with broken attribute value quoting
+!! options
+disabled
+!! input
+<span title="Hello world>Foo</span>
+!! result
+<p><span title="Hello world">Foo</span>
+</p>
+!! end
+
+!! test
+Table with broken attribute value quoting
+!! input
+{|
+| title="Hello world|Foo
+|}
+!! result
+<table>
+<tr>
+<td>Foo
+</td></tr></table>
+
+!! end
+
+!! test
+Table with broken attribute value quoting on consecutive lines
+!! input
+{|
+| title="Hello world|Foo
+| style="color:red|Bar
+|}
+!! result
+<table>
+<tr>
+<td>Foo
+</td>
+<td>Bar
+</td></tr></table>
+
+!! end
+
+!! test
+Parsoid-only: Table with broken attribute value quoting on consecutive lines
+!! options
+disabled
+!! input
+{|
+| title="Hello world|Foo
+| style="color:red|Bar
+|}
+!! result
+<table>
+<tr>
+<td title="Hello world">Foo
+</td><td style="color: red;">Bar
+</td></tr></table>
+
+!! end
+
TODO:
more images
more tables
class MediaWikiPHPUnitCommand extends PHPUnit_TextUI_Command {
- static $additionalOptions = array(
+ public static $additionalOptions = array(
'regex=' => false,
'file=' => false,
'use-filebackend=' => false,
$this->backupStaticAttributes = false;
}
- function run( PHPUnit_Framework_TestResult $result = NULL ) {
+ function run( PHPUnit_Framework_TestResult $result = null ) {
/* Some functions require some kind of caching, and will end up using the db,
* which we can't allow, as that would open a new connection for mysql.
* Replace with a HashBag. They would not be going to persist anyway.
'page_id' => 0,
'page_namespace' => 0,
'page_title' => ' ',
- 'page_restrictions' => NULL,
+ 'page_restrictions' => null,
'page_counter' => 0,
'page_is_redirect' => 0,
'page_is_new' => 0,
return $this->assertTrue( $value == '', $msg );
}
- static private function unprefixTable( $tableName ) {
+ private static function unprefixTable( $tableName ) {
global $wgDBprefix;
return substr( $tableName, strlen( $wgDBprefix ) );
}
- static private function isNotUnittest( $table ) {
+ private static function isNotUnittest( $table ) {
return strpos( $table, 'unittest_' ) !== 0;
}
}
}
+ /**
+ * Check whether we have the 'gzip' commandline utility, will skip
+ * the test whenever "gzip -V" fails.
+ *
+ * Result is cached at the process level.
+ *
+ * @return bool
+ *
+ * @since 1.21
+ */
+ protected function checkHasGzip() {
+ static $haveGzip;
+
+ if( $haveGzip === null ) {
+ $retval = null;
+ wfShellExec( 'gzip -V', $retval );
+ $haveGzip = ($retval === 0);
+ }
+
+ if( !$haveGzip ) {
+ $this->markTestSkipped( "Skip test, requires the gzip utility in PATH" );
+ }
+
+ return $haveGzip;
+ }
+
+ /**
+ * Check if $extName is a loaded PHP extension, will skip the
+ * test whenever it is not loaded.
+ *
+ * @since 1.21
+ */
+ protected function checkPHPExtension( $extName ) {
+ $loaded = extension_loaded( $extName );
+ if( ! $loaded ) {
+ $this->markTestSkipped( "PHP extension '$extName' is not loaded, skipping." );
+ }
+ return $loaded;
+ }
+
/**
* Asserts that an exception of the specified type occurs when running
* the provided code.
'GPSVersionID' => '2.2.0.0'
)
);
-
// Reload block from DB
$userBlock = Block::newFromTarget( $username );
$this->assertTrue(
- (bool) $block->prevents( 'createaccount' ),
+ (bool)$block->prevents( 'createaccount' ),
"Block object in DB should prevents 'createaccount'"
);
// Reload user
$u = User::newFromName( $username );
$this->assertTrue(
- (bool) $u->isBlockedFromCreateAccount(),
+ (bool)$u->isBlockedFromCreateAccount(),
"Our sandbox user '$username' should NOT be able to create account"
);
}
$block = Block::newFromID( $res['id'] );
$this->assertEquals( 'UserOnForeignWiki', $block->getTarget()->getName(), 'Correct blockee name' );
- $this->assertEquals( '14146', $block->getTarget()->getId(), 'Correct blockee id' );
+ $this->assertEquals( '14146', $block->getTarget()->getId(), 'Correct blockee id' );
$this->assertEquals( 'MetaWikiUser', $block->getBlocker(), 'Correct blocker name' );
$this->assertEquals( 'MetaWikiUser', $block->getByName(), 'Correct blocker name' );
$this->assertEquals( 0, $block->getBy(), 'Correct blocker id' );
/**
* Test the CDB reader/writer
*/
-
class CdbTest extends MediaWikiTestCase {
protected function setUp() {
}
}
+ /**
+ * @group medium
+ */
public function testCdb() {
$dir = wfTempDir();
if ( !is_writable( $dir ) ) {
* @dataProvider provideXdiffAdler32
*/
function testXdiffAdler32( $input ) {
- $xdiffHash = substr( xdiff_string_rabdiff( $input, '' ), 0, 4 );
+ $xdiffHash = substr( xdiff_string_rabdiff( $input, '' ), 0, 4 );
$dhb = new DiffHistoryBlob;
$myHash = $dhb->xdiffAdler32( $input );
$this->assertSame( bin2hex( $xdiffHash ), bin2hex( $myHash ),
return $this->data[$cluster][$id];
}
-}
\ No newline at end of file
+}
/* Test the parser entry points */
function testParse() {
$title = Title::newFromText( __FUNCTION__ );
- $parserOutput = $this->parser->parse( "Test\n{{Foo}}\n{{Bar}}" , $title, $this->options );
+ $parserOutput = $this->parser->parse( "Test\n{{Foo}}\n{{Bar}}", $title, $this->options );
$this->assertEquals( "<p>Test\nContent of <i>Template:Foo</i>\nContent of <i>Template:Bar</i>\n</p>", $parserOutput->getText() );
}
function testPreprocess() {
$title = Title::newFromText( __FUNCTION__ );
- $outputText = $this->parser->preprocess( "Test\n{{Foo}}\n{{Bar}}" , $title, $this->options );
+ $outputText = $this->parser->preprocess( "Test\n{{Foo}}\n{{Bar}}", $title, $this->options );
$this->assertEquals( "Test\nContent of ''Template:Foo''\nContent of ''Template:Bar''", $outputText );
}
$catName = wfMessage( 'broken-file-category' )->inContentLanguage()->text();
$cat = Title::makeTitleSafe( NS_CATEGORY, $catName );
$expected = array( $cat->getDBkey() );
- $parserOutput = $this->parser->parse( "[[file:nonexistent]]" , $title, $this->options );
+ $parserOutput = $this->parser->parse( "[[file:nonexistent]]", $title, $this->options );
$result = $parserOutput->getCategoryLinks();
$this->assertEquals( $expected, $result );
}
function testTrackingCategorySpecial() {
// Special pages shouldn't have tracking cats.
$title = SpecialPage::getTitleFor( 'Contributions' );
- $parserOutput = $this->parser->parse( "[[file:nonexistent]]" , $title, $this->options );
+ $parserOutput = $this->parser->parse( "[[file:nonexistent]]", $title, $this->options );
$result = $parserOutput->getCategoryLinks();
$this->assertEmpty( $result );
}
}
public function testAddIntegers() {
- $this->object->add( 'one', 1 );
- $this->object->add( 'negone', -1 );
+ $this->object->add( 'one', 1 );
+ $this->object->add( 'negone', -1 );
$this->assertEquals(
array(
'negone' => array(
- 'default' => -1,
+ 'default' => -1,
'value' => null,
'consumed' => false,
'type' => FormOptions::INT,
$this->object = new FormOptions;
$this->object->add( 'string1', 'string one' );
$this->object->add( 'string2', 'string two' );
- $this->object->add( 'integer', 0 );
- $this->object->add( 'intnull', 0, FormOptions::INTNULL );
+ $this->object->add( 'integer', 0 );
+ $this->object->add( 'intnull', 0, FormOptions::INTNULL );
}
/** Helpers for testGuessType() */
* @dataProvider provideArrayToCGI
*/
function testArrayToCGI( $array, $result ) {
- $this->assertEquals( $result, wfArrayToCGI( $array ) );
+ $this->assertEquals( $result, wfArrayToCgi( $array ) );
}
function testArrayToCGI2() {
$this->assertEquals(
"baz=bar&foo=bar",
- wfArrayToCGI(
+ wfArrayToCgi(
array( 'baz' => 'bar' ),
array( 'foo' => 'bar', 'baz' => 'overridden value' ) ) );
}
* @dataProvider provideCgiRoundTrip
*/
function testCgiRoundTrip( $cgi ) {
- $this->assertEquals( $cgi, wfArrayToCGI( wfCgiToArray( $cgi ) ) );
+ $this->assertEquals( $cgi, wfArrayToCgi( wfCgiToArray( $cgi ) ) );
}
function testMimeTypeMatch() {
}
/* TODO: many more! */
}
-
$this->assertEquals( "wfGetCaller::intermediateFunction", self::intermediateFunction( $i + 1, $i ) );
}
}
-
class NothingClass {
public $calls = 0;
- static public function someStatic( &$foo, &$bar ) {
+ public static function someStatic( &$foo, &$bar ) {
$foo = 'bah';
return true;
}
function testIsValidUri( $expect, $URI, $message = '' ) {
$this->assertEquals(
$expect,
- (bool) Http::isValidURI( $URI ),
+ (bool)Http::isValidURI( $URI ),
$message
);
}
$c = sprintf( "%01d", $i );
foreach ( array_unique( array( $a, $b, $c ) ) as $f ) {
$ip = "$f.$f.$f.$f";
- $this->assertTrue( IP::isValid( $ip ) , "$ip is a valid IPv4 address" );
+ $this->assertTrue( IP::isValid( $ip ), "$ip is a valid IPv4 address" );
}
}
foreach ( range( 0x0, 0xFFFF, 0xF ) as $i ) {
$c = sprintf( "%02x", $i );
foreach ( array_unique( array( $a, $b, $c ) ) as $f ) {
$ip = "$f:$f:$f:$f:$f:$f:$f:$f";
- $this->assertTrue( IP::isValid( $ip ) , "$ip is a valid IPv6 address" );
+ $this->assertTrue( IP::isValid( $ip ), "$ip is a valid IPv6 address" );
}
}
// test with some abbreviations
$c = sprintf( "%02s", $i );
foreach ( array_unique( array( $a, $b, $c ) ) as $f ) {
$ip = "$f:$f:$f:$f:$f:$f:$f:$f";
- $this->assertFalse( IP::isValid( $ip ) , "$ip is not a valid IPv6 address" );
+ $this->assertFalse( IP::isValid( $ip ), "$ip is not a valid IPv6 address" );
}
}
// Have CIDR
*/
public function testip2longWrapper() {
// @todo FIXME: Add more tests ?
- $this->assertEquals( pow(2,32) - 1, IP::toUnsigned( '255.255.255.255' ));
+ $this->assertEquals( pow(2,32) - 1, IP::toUnsigned( '255.255.255.255' ) );
$i = 'IN.VA.LI.D';
$this->assertFalse( IP::toUnSigned( $i ) );
}
$this->assertSelect( $table, $fields, $condition, $expectedRows );
}
}
-
$this->assertThat( $file, $this->isInstanceOf( 'LocalFile' ), 'wfLocalFile() returns LocalFile for valid Titles' );
}
}
-
-
$this->assertFalse( MWNamespace::subjectEquals( $ns1, $ns2, $msg ) );
}
}
-
/**
* @covers Revision::__construct
*/
- public function testConstructFromRow()
- {
+ public function testConstructFromRow() {
$orig = $this->makeRevision();
$dbr = wfgetDB( DB_SLAVE );
/**
* @covers Revision::newFromRow
*/
- public function testNewFromRow()
- {
+ public function testNewFromRow() {
$orig = $this->makeRevision();
$dbr = wfgetDB( DB_SLAVE );
/**
* @covers Revision::newFromArchiveRow
*/
- public function testNewFromArchiveRow()
- {
+ public function testNewFromArchiveRow() {
$page = $this->createPage( 'RevisionStorageTest_testNewFromArchiveRow', 'Lorem Ipsum', CONTENT_MODEL_WIKITEXT );
$orig = $page->getRevision();
$page->doDeleteArticle( 'test Revision::newFromArchiveRow' );
/**
* @covers Revision::newFromId
*/
- public function testNewFromId()
- {
+ public function testNewFromId() {
$orig = $this->makeRevision();
$rev = Revision::newFromId( $orig->getId() );
/**
* @covers Revision::fetchRevision
*/
- public function testFetchRevision()
- {
+ public function testFetchRevision() {
$page = $this->createPage( 'RevisionStorageTest_testFetchRevision', 'one', CONTENT_MODEL_WIKITEXT );
$id1 = $page->getRevision()->getId();
/**
* @covers Revision::selectFields
*/
- public function testSelectFields()
- {
+ public function testSelectFields() {
global $wgContentHandlerUseDB;
$fields = Revision::selectFields();
/**
* @covers Revision::getPage
*/
- public function testGetPage()
- {
+ public function testGetPage() {
$page = $this->the_page;
$orig = $this->makeRevision( array( 'page' => $page->getId() ) );
/**
* @covers Revision::getText
*/
- public function testGetText()
- {
+ public function testGetText() {
$this->hideDeprecated( 'Revision::getText' );
$orig = $this->makeRevision( array( 'text' => 'hello hello.' ) );
/**
* @covers Revision::getContent
*/
- public function testGetContent_failure()
- {
+ public function testGetContent_failure() {
$rev = new Revision( array(
'page' => $this->the_page->getId(),
'content_model' => $this->the_page->getContentModel(),
/**
* @covers Revision::getContent
*/
- public function testGetContent()
- {
+ public function testGetContent() {
$orig = $this->makeRevision( array( 'text' => 'hello hello.' ) );
$rev = Revision::newFromId( $orig->getId() );
/**
* @covers Revision::revText
*/
- public function testRevText()
- {
+ public function testRevText() {
$this->hideDeprecated( 'Revision::revText' );
$orig = $this->makeRevision( array( 'text' => 'hello hello rev.' ) );
$rev = Revision::newFromId( $orig->getId() );
/**
* @covers Revision::getRawText
*/
- public function testGetRawText()
- {
+ public function testGetRawText() {
$this->hideDeprecated( 'Revision::getRawText' );
$orig = $this->makeRevision( array( 'text' => 'hello hello raw.' ) );
/**
* @covers Revision::getContentModel
*/
- public function testGetContentModel()
- {
+ public function testGetContentModel() {
global $wgContentHandlerUseDB;
if ( !$wgContentHandlerUseDB ) {
/**
* @covers Revision::getContentFormat
*/
- public function testGetContentFormat()
- {
+ public function testGetContentFormat() {
global $wgContentHandlerUseDB;
if ( !$wgContentHandlerUseDB ) {
/**
* @covers Revision::isCurrent
*/
- public function testIsCurrent()
- {
+ public function testIsCurrent() {
$page = $this->createPage( 'RevisionStorageTest_testIsCurrent', 'Lorem Ipsum', CONTENT_MODEL_WIKITEXT );
$rev1 = $page->getRevision();
/**
* @covers Revision::getPrevious
*/
- public function testGetPrevious()
- {
+ public function testGetPrevious() {
$page = $this->createPage( 'RevisionStorageTest_testGetPrevious', 'Lorem Ipsum testGetPrevious', CONTENT_MODEL_WIKITEXT );
$rev1 = $page->getRevision();
/**
* @covers Revision::getNext
*/
- public function testGetNext()
- {
+ public function testGetNext() {
$page = $this->createPage( 'RevisionStorageTest_testGetNext', 'Lorem Ipsum testGetNext', CONTENT_MODEL_WIKITEXT );
$rev1 = $page->getRevision();
/**
* @covers Revision::newNullRevision
*/
- public function testNewNullRevision()
- {
+ public function testNewNullRevision() {
$page = $this->createPage( 'RevisionStorageTest_testNewNullRevision', 'some testing text', CONTENT_MODEL_WIKITEXT );
$orig = $page->getRevision();
}
function testGetRevisionTextGzip() {
- if ( !function_exists( 'gzdeflate' ) ) {
- $this->markTestSkipped( 'Gzip compression is not enabled (requires zlib).' );
- } else {
- $row = new stdClass;
- $row->old_flags = 'gzip';
- $row->old_text = gzdeflate( 'This is a bunch of revision text.' );
- $this->assertEquals(
- 'This is a bunch of revision text.',
- Revision::getRevisionText( $row ) );
- }
+ $this->checkPHPExtension( 'zlib' );
+
+ $row = new stdClass;
+ $row->old_flags = 'gzip';
+ $row->old_text = gzdeflate( 'This is a bunch of revision text.' );
+ $this->assertEquals(
+ 'This is a bunch of revision text.',
+ Revision::getRevisionText( $row ) );
}
function testGetRevisionTextUtf8Native() {
}
function testGetRevisionTextUtf8NativeGzip() {
- if ( !function_exists( 'gzdeflate' ) ) {
- $this->markTestSkipped( 'Gzip compression is not enabled (requires zlib).' );
- } else {
- $row = new stdClass;
- $row->old_flags = 'gzip,utf-8';
- $row->old_text = gzdeflate( "Wiki est l'\xc3\xa9cole superieur !" );
- $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
- $this->assertEquals(
- "Wiki est l'\xc3\xa9cole superieur !",
- Revision::getRevisionText( $row ) );
- }
+ $this->checkPHPExtension( 'zlib' );
+
+ $row = new stdClass;
+ $row->old_flags = 'gzip,utf-8';
+ $row->old_text = gzdeflate( "Wiki est l'\xc3\xa9cole superieur !" );
+ $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
+ $this->assertEquals(
+ "Wiki est l'\xc3\xa9cole superieur !",
+ Revision::getRevisionText( $row ) );
}
function testGetRevisionTextUtf8LegacyGzip() {
- if ( !function_exists( 'gzdeflate' ) ) {
- $this->markTestSkipped( 'Gzip compression is not enabled (requires zlib).' );
- } else {
- $row = new stdClass;
- $row->old_flags = 'gzip';
- $row->old_text = gzdeflate( "Wiki est l'\xe9cole superieur !" );
- $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
- $this->assertEquals(
- "Wiki est l'\xc3\xa9cole superieur !",
- Revision::getRevisionText( $row ) );
- }
+ $this->checkPHPExtension( 'zlib' );
+
+ $row = new stdClass;
+ $row->old_flags = 'gzip';
+ $row->old_text = gzdeflate( "Wiki est l'\xe9cole superieur !" );
+ $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
+ $this->assertEquals(
+ "Wiki est l'\xc3\xa9cole superieur !",
+ Revision::getRevisionText( $row ) );
}
function testCompressRevisionTextUtf8() {
}
function testCompressRevisionTextUtf8Gzip() {
- global $wgCompressRevisions;
+ $this->checkPHPExtension( 'zlib' );
+ global $wgCompressRevisions;
$wgCompressRevisions = true;
$row = new stdClass;
* @group Database
* @dataProvider dataGetSize
*/
- public function testGetSize( $text, $model, $expected_size )
- {
+ public function testGetSize( $text, $model, $expected_size ) {
$rev = $this->newTestRevision( $text, 'RevisionTest_testGetSize', $model );
$this->assertEquals( $expected_size, $rev->getSize() );
}
* @group Database
* @dataProvider dataGetSha1
*/
- public function testGetSha1( $text, $model, $expected_hash )
- {
+ public function testGetSha1( $text, $model, $expected_hash ) {
$rev = $this->newTestRevision( $text, 'RevisionTest_testGetSha1', $model );
$this->assertEquals( $expected_hash, $rev->getSha1() );
}
$this->assertEquals( "Test", $title->isLocal() );
}
}
-
SeleniumConfig::getSeleniumSettings($seleniumSettings,
$seleniumBrowsers,
$seleniumTestSuites);
- $this->assertEquals($seleniumSettings, $this->testSettings0 ,
+ $this->assertEquals($seleniumSettings, $this->testSettings0,
'The selenium settings should have been read from the file defined in $wgSeleniumConfigFile'
);
$this->assertEquals($seleniumBrowsers, $this->testBrowsers0,
private function writeToTempFile($textToWrite) {
$this->tempFileName = tempnam(sys_get_temp_dir(), 'test_settings.');
$tempFile = fopen( $this->tempFileName, "w" );
- fwrite($tempFile , $textToWrite);
+ fwrite($tempFile, $textToWrite);
fclose($tempFile);
}
$this->assertEquals( $getall['simple'], $GLOBALS['simple'], 'extractAllGlobals(): simple setting' );
$this->assertEquals( $getall['fallback'], $GLOBALS['fallback'], 'extractAllGlobals(): fallback setting' );
$this->assertEquals( $getall['params'], $GLOBALS['params'], 'extractAllGlobals(): parameter replacement' );
- $this->assertEquals( $getall['global'], $GLOBALS['global'], 'extractAllGlobals(): merging with global' );
- $this->assertEquals( $getall['merge'], $GLOBALS['merge'], 'extractAllGlobals(): merging setting' );
+ $this->assertEquals( $getall['global'], $GLOBALS['global'], 'extractAllGlobals(): merging with global' );
+ $this->assertEquals( $getall['merge'], $GLOBALS['merge'], 'extractAllGlobals(): merging setting' );
}
}
*/
function testValidOutput( $format, $expected, $original ) {
$timestamp = new MWTimestamp( $original );
- $this->assertEquals( $expected, (string) $timestamp->getTimestamp( $format ) );
+ $this->assertEquals( $expected, (string)$timestamp->getTimestamp( $format ) );
}
/**
}
}
+ /**
+ * Provides test parameter values for testIsValidMoveOperation()
+ */
+ function dataTestIsValidMoveOperation() {
+ return array(
+ array( 'Test', 'Test', 'selfmove' ),
+ array( 'File:Test.jpg', 'Page', 'imagenocrossnamespace' )
+ );
+ }
+
+ /**
+ * Auth-less test of Title::userCan
+ *
+ * @param array $whitelistRegexp
+ * @param string $source
+ * @param string $action
+ * @param array|string|true $expected Required error
+ *
+ * @covers Title::checkReadPermission
+ * @dataProvider dataWgWhitelistReadRegexp
+ */
+ function testWgWhitelistReadRegexp($whitelistRegexp, $source, $action, $expected) {
+
+ // $wgWhitelistReadRegexp must be an array. Since the provided test cases
+ // usually have only one regex, it is more concise to write the lonely regex
+ // as a string. Thus we cast to an array() to honor $wgWhitelistReadRegexp
+ // type requisite.
+ if( is_string( $whitelistRegexp ) ) {
+ $whitelistRegexp = array( $whitelistRegexp );
+ }
+
+ $title = Title::newFromDBkey( $source );
+
+ global $wgGroupPermissions;
+ $oldPermissions = $wgGroupPermissions;
+ // Disallow all so we can ensure our regex works
+ $wgGroupPermissions = array();
+ $wgGroupPermissions['*']['read'] = false;
+
+ global $wgWhitelistRead;
+ $oldWhitelist = $wgWhitelistRead;
+ // Undo any LocalSettings explicite whitelists so they won't cause a
+ // failing test to succeed. Set it to some random non sense just
+ // to make sure we properly test Title::checkReadPermissions()
+ $wgWhitelistRead = array( 'some random non sense title' );
+
+ global $wgWhitelistReadRegexp;
+ $oldWhitelistRegexp = $wgWhitelistReadRegexp;
+ $wgWhitelistReadRegexp = $whitelistRegexp ;
+
+ // Just use $wgUser which in test is a user object for '127.0.0.1'
+ global $wgUser;
+ // Invalidate user rights cache to take in account $wgGroupPermissions
+ // change above.
+ $wgUser->clearInstanceCache();
+ $errors = $title->userCan( $action, $wgUser );
+
+ // Restore globals
+ $wgGroupPermissions = $oldPermissions;
+ $wgWhitelistRead = $oldWhitelist;
+ $wgWhitelistReadRegexp = $oldWhitelistRegexp;
+
+ if( is_bool( $expected ) ) {
+ # Forge the assertion message depending on the assertion expectation
+ $allowableness = $expected
+ ? " should be allowed"
+ : " should NOT be allowed"
+ ;
+ $this->assertEquals( $expected, $errors, "User action '$action' on [[$source]] $allowableness." );
+ } else {
+ $errors = $this->flattenErrorsArray( $errors );
+ foreach ( (array)$expected as $error ) {
+ $this->assertContains( $error, $errors );
+ }
+ }
+ }
+
+ /**
+ * Provides test parameter values for testWgWhitelistReadRegexp()
+ */
+ function dataWgWhitelistReadRegexp() {
+ $ALLOWED = true;
+ $DISALLOWED = false;
+
+ return array(
+ // Everything, if this doesn't work, we're really in trouble
+ array( '/.*/', 'Main_Page', 'read', $ALLOWED ),
+ array( '/.*/', 'Main_Page', 'edit', $DISALLOWED ),
+
+ // We validate against the title name, not the db key
+ array( '/^Main_Page$/', 'Main_Page', 'read', $DISALLOWED ),
+ // Main page
+ array( '/^Main/', 'Main_Page', 'read', $ALLOWED ),
+ array( '/^Main.*/', 'Main_Page', 'read', $ALLOWED ),
+ // With spaces
+ array( '/Mic\sCheck/', 'Mic Check', 'read', $ALLOWED ),
+ // Unicode multibyte
+ // ...without unicode modifier
+ array( '/Unicode Test . Yes/', 'Unicode Test Ñ Yes', 'read', $DISALLOWED ),
+ // ...with unicode modifier
+ array( '/Unicode Test . Yes/u', 'Unicode Test Ñ Yes', 'read', $ALLOWED ),
+ // Case insensitive
+ array( '/MiC ChEcK/', 'mic check', 'read', $DISALLOWED ),
+ array( '/MiC ChEcK/i', 'mic check', 'read', $ALLOWED ),
+
+ // From DefaultSettings.php:
+ array( "@^UsEr.*@i", 'User is banned', 'read', $ALLOWED ),
+ array( "@^UsEr.*@i", 'User:John Doe', 'read', $ALLOWED ),
+
+ // With namespaces:
+ array( '/^Special:NewPages$/', 'Special:NewPages', 'read', $ALLOWED ),
+ array( null, 'Special:Newpages', 'read', $DISALLOWED ),
+
+ );
+ }
+
function flattenErrorsArray( $errors ) {
$result = array();
foreach ( $errors as $error ) {
// let the user have a few (3) edits
$page = WikiPage::factory( Title::newFromText( 'Help:UserTest_EditCount' ) );
for( $i = 0; $i < 3; $i++ ) {
- $page->doEdit( (string) $i, 'test', 0, false, $user );
+ $page->doEdit( (string)$i, 'test', 0, false, $user );
}
$user->clearInstanceCache();
}
- function fakeUploadChunk( $fieldName, $fileName, $type, & $chunkData ){
+ function fakeUploadChunk( $fieldName, $fileName, $type, & $chunkData ) {
$tmpName = tempnam( wfTempDir(), "" );
- // copy the chunk data to temp location:
+ // copy the chunk data to temp location:
if ( !file_put_contents( $tmpName, $chunkData ) ) {
throw new Exception( "couldn't copy chunk data to $tmpName" );
}
-
+
clearstatcache();
$size = filesize( $tmpName );
if ( $size === false ) {
throw new Exception( "couldn't stat $tmpName" );
}
-
+
$_FILES[ $fieldName ] = array(
'name' => $fileName,
'type' => $type,
class ApiFormatPhpTest extends ApiFormatTestBase {
function testValidPhpSyntax() {
-
+
$data = $this->apiRequest( 'php', array( 'action' => 'query', 'meta' => 'siteinfo' ) );
-
+
$this->assertInternalType( 'array', unserialize( $data ) );
- $this->assertGreaterThan( 0, count( (array) $data ) );
-
-
+ $this->assertGreaterThan( 0, count( (array)$data ) );
+
}
}
$maintClass = 'GenerateRandomImages';
require( RUN_MAINTENANCE_IF_MAIN );
-
-
if ( $expected ) {
$this->assertNotNull( $name, "no name found for content model $id" );
- $this->assertTrue( preg_match( $expected, $name ) > 0 ,
+ $this->assertTrue( preg_match( $expected, $name ) > 0,
"content model name for #$id did not match pattern $expected"
);
} else {
* @return mixed the native representation of the content. Could be a string, a nested array
* structure, an object, a binary blob... anything, really.
*/
- public function getNativeData()
- {
+ public function getNativeData() {
return $this->data;
}
*
* @return ParserOutput
*/
- public function getParserOutput( Title $title, $revId = null, ParserOptions $options = NULL, $generateHtml = true ) {
+ public function getParserOutput( Title $title, $revId = null, ParserOptions $options = null, $generateHtml = true ) {
return new ParserOutput( $this->getNativeData() );
}
}
* @dataProvider dataGetDeletionUpdates
*/
public function testDeletionUpdates( $title, $model, $text, $expectedStuff ) {
- $title = Title::newFromText( $title );
- $title->resetArticleID( 2342 ); //dummy id. fine as long as we don't try to execute the updates!
+ $ns = $this->getDefaultWikitextNS();
+ $title = Title::newFromText( $title, $ns );
$content = ContentHandler::makeContent( $text, $title, $model );
- $updates = $content->getDeletionUpdates( WikiPage::factory( $title ) );
+ $page = WikiPage::factory( $title );
+ $page->doEditContent( $content, '' );
+
+ $updates = $content->getDeletionUpdates( $page );
// make updates accessible by class name
foreach ( $updates as $update ) {
$this->assertEquals( $value, $v, "unexpected value for field $field in instance of $class" );
}
}
+
+ $page->doDeleteArticle( '' );
}
public static function provideConvert() {
* @group Database
*/
public function testGetSecondaryDataUpdates( $title, $model, $text, $expectedStuff ) {
- $title = Title::newFromText( $title );
- $title->resetArticleID( 2342 ); //dummy id. fine as long as we don't try to execute the updates!
+ $ns = $this->getDefaultWikitextNS();
+ $title = Title::newFromText( $title, $ns );
$content = ContentHandler::makeContent( $text, $title, $model );
+ $page = WikiPage::factory( $title );
+ $page->doEditContent( $content, '' );
+
$updates = $content->getSecondaryDataUpdates( $title );
// make updates accessible by class name
$this->assertEquals( $value, $v, "unexpected value for field $field in instance of $class" );
}
}
+
+ $page->doDeleteArticle( '' );
}
public static function dataGetSection() {
),
);
}
-}
\ No newline at end of file
+}
return true;
}
- function replaceVars( $s ) {
+ /**
+ * Override parent visibility to public
+ */
+ public function replaceVars( $s ) {
return parent::replaceVars( $s );
}
}
* @since 1.20
* @return string
*/
- protected abstract function getRowClass();
+ abstract protected function getRowClass();
/**
* @since 1.20
* @return IORMTable
*/
- protected abstract function getTableInstance();
+ abstract protected function getTableInstance();
/**
* @since 1.20
* @return array
*/
- public abstract function constructorTestProvider();
+ abstract public function constructorTestProvider();
/**
* @since 1.20
// TODO: test all of the methods!
-}
\ No newline at end of file
+}
$status = $this->prepare( array( 'dir' => dirname( $path ) ) );
$this->assertGoodStatus( $status,
"Preparing $path succeeded without warnings ($backendName)." );
- $ops[] = array( 'op' => 'create', 'dst' => $path, 'content' => mt_rand(0,50000) );
+ $ops[] = array( 'op' => 'create', 'dst' => $path, 'content' => mt_rand(0, 50000) );
$purgeOps[] = array( 'op' => 'delete', 'src' => $path );
}
$purgeOps[] = array( 'op' => 'null' );
$this->assertEquals( $expected, $list, "Correct dir listing ($backendName)." );
+ $iter = $this->backend->getDirectoryList( array( 'dir' => "$base/unittest-cont1/e/subdir1" ) );
+ $items = is_array( $iter ) ? $iter : iterator_to_array( $iter );
+ $this->assertEquals( array(), $items, "Directory listing is empty." );
+
foreach ( $files as $file ) { // clean up
$this->backend->doOperation( array( 'op' => 'delete', 'src' => $file ) );
}
$iter = $this->backend->getDirectoryList( array( 'dir' => "$base/unittest-cont1/not/exists" ) );
- foreach ( $iter as $iter ) {} // no errors
+ foreach ( $iter as $file ) {} // no errors
+ $items = is_array( $iter ) ? $iter : iterator_to_array( $iter );
+ $this->assertEquals( array(), $items, "Directory listing is empty." );
+
+ $iter = $this->backend->getDirectoryList( array( 'dir' => "$base/unittest-cont1/e/not/exists" ) );
+ $items = is_array( $iter ) ? $iter : iterator_to_array( $iter );
+ $this->assertEquals( array(), $items, "Directory listing is empty." );
}
public function testLockCalls() {
$f = $this->storeit( $fn, $infn, 0 );
$this->assertTrue( $f->isOK(), 'failed to store a new file' );
$this->assertEquals( $f->failCount, 0, "counts wrong {$f->successCount} {$f->failCount}" );
- $this->assertEquals( $f->successCount, 1 , "counts wrong {$f->successCount} {$f->failCount}" );
+ $this->assertEquals( $f->successCount, 1, "counts wrong {$f->successCount} {$f->failCount}" );
if ( $fromrepo ) {
$f = $this->storeit( "Other-$fn", $infn, FileRepo::OVERWRITE);
$infn = $f->value;
$f = $this->storeit( $fn, $infn, FileRepo::OVERWRITE );
$this->assertTrue( $f->isOK(), 'We should be allowed to overwrite' );
$this->assertEquals( $f->failCount, 0, "counts wrong {$f->successCount} {$f->failCount}" );
- $this->assertEquals( $f->successCount, 1 , "counts wrong {$f->successCount} {$f->failCount}" );
+ $this->assertEquals( $f->successCount, 1, "counts wrong {$f->successCount} {$f->failCount}" );
// This should fail because we're overwriting.
$f = $this->storeit( $fn, $infn, 0 );
$this->assertFalse( $f->isOK(), 'We should not be allowed to overwrite' );
$this->assertEquals( $f->failCount, 1, "counts wrong {$f->successCount} {$f->failCount}" );
- $this->assertEquals( $f->successCount, 0 , "counts wrong {$f->successCount} {$f->failCount}" );
+ $this->assertEquals( $f->successCount, 0, "counts wrong {$f->successCount} {$f->failCount}" );
// This should succeed because we're overwriting the same content.
$f = $this->storeit( $fn, $infn, FileRepo::OVERWRITE_SAME );
$this->assertTrue( $f->isOK(), 'We should be able to overwrite the same content' );
$this->assertEquals( $f->failCount, 0, "counts wrong {$f->successCount} {$f->failCount}" );
- $this->assertEquals( $f->successCount, 1 , "counts wrong {$f->successCount} {$f->failCount}" );
+ $this->assertEquals( $f->successCount, 1, "counts wrong {$f->successCount} {$f->failCount}" );
// This should fail because we're overwriting different content.
if ( $fromrepo ) {
$f = $this->storeit( "Other-$fn", $otherfn, FileRepo::OVERWRITE);
$f = $this->storeit( $fn, $otherfn, FileRepo::OVERWRITE_SAME );
$this->assertFalse( $f->isOK(), 'We should not be allowed to overwrite different content' );
$this->assertEquals( $f->failCount, 1, "counts wrong {$f->successCount} {$f->failCount}" );
- $this->assertEquals( $f->successCount, 0 , "counts wrong {$f->successCount} {$f->failCount}" );
+ $this->assertEquals( $f->successCount, 0, "counts wrong {$f->successCount} {$f->failCount}" );
}
public function teststore() {
".foo\t{\tleft\t:\t0;}",
".foo\t{\tright\t:\t0;}"
),
+
+ // Guard against partial keys
+ array(
+ '.foo { leftxx: 0; }',
+ '.foo { leftxx: 0; }'
+ ),
+ array(
+ '.foo { rightxx: 0; }',
+ '.foo { rightxx: 0; }'
+ ),
);
}
*/
function provideTransformBrokenCases() {
return array(
- // Guard against partial keys
- array(
- '.foo { leftxx: 0; }',
- '.foo { leftxx: 0; }'
- ),
- array(
- '.foo { rightxx: 0; }',
- '.foo { rightxx: 0; }'
- ),
-
// Guard against selectors that look flippable
array(
# <foo-left-x attr="x">
*
* @return array
*/
- public abstract function elementInstancesProvider();
+ abstract public function elementInstancesProvider();
/**
* Returns the name of the concrete class being tested.
*
* @return string
*/
- public abstract function getInstanceClass();
+ abstract public function getInstanceClass();
/**
* Provides instances of the concrete class being tested.
'log-description-phpunit' => 'Log for PHPUnit-tests',
'logentry-phpunit-test' => '$1 {{GENDER:$2|tests}} with page $3',
'logentry-phpunit-param' => '$4',
-);
\ No newline at end of file
+);
)
);
}
-
-
+
+
const TEST_WIDTH = 100;
const TEST_HEIGHT = 200;
-
+
/**
* @dataProvider provideBitmapExtractPreRotationDimensions
*/
function testBitmapExtractPreRotationDimensions( $rotation, $expected ) {
$result = $this->handler->extractPreRotationDimensions( array(
- 'physicalWidth' => self::TEST_WIDTH,
+ 'physicalWidth' => self::TEST_WIDTH,
'physicalHeight' => self::TEST_HEIGHT,
), $rotation );
$this->assertEquals( $expected, $result );
}
-
+
function provideBitmapExtractPreRotationDimensions() {
return array(
array(
0,
- array( self::TEST_WIDTH, self::TEST_HEIGHT )
+ array( self::TEST_WIDTH, self::TEST_HEIGHT )
),
array(
90,
- array( self::TEST_HEIGHT, self::TEST_WIDTH )
+ array( self::TEST_HEIGHT, self::TEST_WIDTH )
),
array(
180,
- array( self::TEST_WIDTH, self::TEST_HEIGHT )
+ array( self::TEST_WIDTH, self::TEST_HEIGHT )
),
array(
270,
- array( self::TEST_HEIGHT, self::TEST_WIDTH )
+ array( self::TEST_HEIGHT, self::TEST_WIDTH )
),
);
}
}
-
* Tests zTXt tag (compressed textual metadata)
*/
function testPngNativetZtxt() {
+ $this->checkPHPExtension( 'zlib' );
+
$meta = PNGMetadataExtractor::getMetadata( $this->filePath .
'Png-native-test.png' );
$expected = "foo bar baz foo foo foo foof foo foo foo foo";
* - pcntl_fork is supported by the system
* - cache type will correctly support calls over forks
*/
- $fork = (bool) $this->getCliArg( 'use-bagostuff=' );
+ $fork = (bool)$this->getCliArg( 'use-bagostuff=' );
$fork &= function_exists( 'pcntl_fork' );
$fork &= !$this->cache instanceof HashBagOStuff;
$fork &= !$this->cache instanceof EmptyBagOStuff;
*/
private function assertMagic( $expected, $magic ) {
if( in_array( $magic, $this->expectedAsInteger ) ) {
- $expected = (int) $expected;
+ $expected = (int)$expected;
}
# Generate a message for the assertion
* and then was ucfirst( basename( $filename, '.txt' )
* but that didn't work with names like foo.tests.txt
*/
- $className = str_replace( '.', '_', ucfirst( $testsName ) );
+ $className = str_replace( '.', '_', ucfirst( $testsName ) );
eval( "/** @group Database\n@group Parser\n*/ class $className extends NewParserTest { protected \$file = '" . strtr( $filename, array( "'" => "\\'", '\\' => '\\\\' ) ) . "'; } " );
// TODO: Add tests for cleanSig() / cleanSigInSig(), getSection(), replaceSection(), getPreloadText()
}
-
$this->assertEquals( $shouldMatch, ParserOutput::isLinkInternal( $server, $url ) );
}
+
+ public function testExtensionData() {
+ $po = new ParserOutput();
+
+ $po->setExtensionData( "one", "Foo" );
+
+ $this->assertEquals( "Foo", $po->getExtensionData( "one" ) );
+ $this->assertNull( $po->getExtensionData( "spam" ) );
+
+ $po->setExtensionData( "two", "Bar" );
+ $this->assertEquals( "Foo", $po->getExtensionData( "one" ) );
+ $this->assertEquals( "Bar", $po->getExtensionData( "two" ) );
+
+ $po->setExtensionData( "one", null );
+ $this->assertNull( $po->getExtensionData( "one" ) );
+ $this->assertEquals( "Bar", $po->getExtensionData( "two" ) );
+ }
}
$this->assertEquals( $this->normalizeXml( $expectedXml ), $this->preprocessToXml( $wikiText ) );
}
}
-
* @ingroup Test
*
* @group Site
- * @group Database
*
* @licence GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
*/
-class MediaWikiSiteTest extends SiteObjectTest {
-
- public function setUp() {
- parent::setUp();
-
- static $hasSites = false;
-
- if ( !$hasSites ) {
- TestSites::insertIntoDb();
- $hasSites = true;
- }
- }
-
- public function testFactoryConstruction() {
- $this->assertInstanceOf( 'MediaWikiSite', MediaWikiSite::newFromGlobalId( 'enwiki' ) );
- $this->assertInstanceOf( 'Site', MediaWikiSite::newFromGlobalId( 'enwiki' ) );
- $this->assertInstanceOf( 'MediaWikiSite', SitesTable::singleton()->newRow( array( 'type' => Site::TYPE_MEDIAWIKI ) ) );
- }
+class MediaWikiSiteTest extends SiteTest {
public function testNormalizePageTitle() {
- $site = MediaWikiSite::newFromGlobalId( 'enwiki' );
+ $site = new MediaWikiSite();
+ $site->setGlobalId( 'enwiki' );
//NOTE: this does not actually call out to the enwiki site to perform the normalization,
// but uses a local Title object to do so. This is hardcoded on SiteLink::normalizePageTitle
* @dataProvider fileUrlProvider
*/
public function testGetFileUrl( $url, $filePath, $pathArgument, $expected ) {
- $site = MediaWikiSite::newFromGlobalId( 'enwiki' );
-
+ $site = new MediaWikiSite();
$site->setFilePath( $url . $filePath );
$this->assertEquals( $expected, $site->getFileUrl( $pathArgument ) );
* @dataProvider provideGetPageUrl
*/
public function testGetPageUrl( $path, $page, $expected ) {
- /* @var MediaWikiSite $site */
- $site = MediaWikiSite::newFromGlobalId( 'enwiki' );
-
+ $site = new MediaWikiSite();
$site->setLinkPath( $path );
+
$this->assertContains( $path, $site->getPageUrl() );
$this->assertContains( $expected, $site->getPageUrl( $page ) );
}
+++ /dev/null
-<?php
-
-/**
- * Tests for the SiteArray class.
- * The tests for methods defined in the SiteList interface are in SiteListTest.
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * 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
- *Both
- * Bith
- * @file
- * @since 1.21
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- *
- * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class SiteArrayTest extends GenericArrayObjectTest {
-
- /**
- * @see GenericArrayObjectTest::elementInstancesProvider
- *
- * @since 1.21
- *
- * @return array
- */
- public function elementInstancesProvider() {
- $sites = TestSites::getSites();
-
- $siteArrays = array();
-
- $siteArrays[] = $sites;
-
- $siteArrays[] = array( array_shift( $sites ) );
-
- $siteArrays[] = array( array_shift( $sites ), array_shift( $sites ) );
-
- return $this->arrayWrap( $siteArrays );
- }
-
- /**
- * @see GenericArrayObjectTest::getInstanceClass
- *
- * @since 1.21
- *
- * @return array
- */
- public function getInstanceClass() {
- return 'SiteArray';
- }
-
- /**
- * @dataProvider instanceProvider
- *
- * @since 1.21
- *
- * @param SiteArray $list
- */
- public function testSerializationMore( SiteArray $list ) {
- $serialization = serialize( $list );
- /**
- * @var SiteArray $copy
- */
- $copy = unserialize( $serialization );
-
- $this->assertArrayEquals( $list->getGlobalIdentifiers(), $copy->getGlobalIdentifiers() );
-
- /**
- * @var Site $site
- */
- foreach ( $list as $site ) {
- $this->assertTrue( $copy->hasInternalId( $site->getInternalId() ) );
- }
- }
-
-}
\ No newline at end of file
<?php
/**
- * Tests for the SiteList implementing classes.
+ * Tests for the SiteList class.
*
* 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
$listInstances = array();
foreach ( $sitesArrays as $sitesArray ) {
- $listInstances[] = new SiteArray( $sitesArray[0] );
+ $listInstances[] = new SiteList( $sitesArray[0] );
}
return $this->arrayWrap( $listInstances );
$this->assertArrayEquals( $expected, $identifiers );
}
+ /**
+ * @dataProvider siteListProvider
+ *
+ * @since 1.21
+ *
+ * @param SiteList $list
+ */
+ public function testSerialization( SiteList $list ) {
+ $serialization = serialize( $list );
+ /**
+ * @var SiteArray $copy
+ */
+ $copy = unserialize( $serialization );
+
+ $this->assertArrayEquals( $list->getGlobalIdentifiers(), $copy->getGlobalIdentifiers() );
+
+ /**
+ * @var Site $site
+ */
+ foreach ( $list as $site ) {
+ $this->assertTrue( $copy->hasInternalId( $site->getInternalId() ) );
+ }
+ }
-}
\ No newline at end of file
+}
+++ /dev/null
-<?php
-
-/**
- * Tests for the SiteObject class.
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * 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
- * @since 1.21
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- * @group Database
- *
- * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class SiteObjectTest extends ORMRowTest {
-
- /**
- * @see ORMRowTest::getRowClass
- * @since 1.21
- * @return string
- */
- protected function getRowClass() {
- return 'SiteObject';
- }
-
- /**
- * @see ORMRowTest::getTableInstance
- * @since 1.21
- * @return IORMTable
- */
- protected function getTableInstance() {
- return SitesTable::singleton();
- }
-
- /**
- * @see ORMRowTest::constructorTestProvider
- * @since 1.21
- * @return array
- */
- public function constructorTestProvider() {
- $argLists = array();
-
- $argLists[] = array( 'global_key' => 'foo' );
-
- $argLists[] = array( 'global_key' => 'bar', 'type' => Site::TYPE_MEDIAWIKI );
-
- $constructorArgs = array();
-
- foreach ( $argLists as $argList ) {
- $constructorArgs[] = array( $argList, true );
- }
-
- return $constructorArgs;
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testGetInterwikiIds( Site $site ) {
- $this->assertInternalType( 'array', $site->getInterwikiIds() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testGetNavigationIds( Site $site ) {
- $this->assertInternalType( 'array', $site->getNavigationIds() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testAddNavigationId( Site $site ) {
- $site->addNavigationId( 'foobar' );
- $this->assertTrue( in_array( 'foobar', $site->getNavigationIds(), true ) );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testAddInterwikiId( Site $site ) {
- $site->addInterwikiId( 'foobar' );
- $this->assertTrue( in_array( 'foobar', $site->getInterwikiIds(), true ) );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testGetLanguageCode( Site $site ) {
- $this->assertTypeOrFalse( 'string', $site->getLanguageCode() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testSetLanguageCode( Site $site ) {
- $site->setLanguageCode( 'en' );
- $this->assertEquals( 'en', $site->getLanguageCode() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testNormalizePageName( Site $site ) {
- $this->assertInternalType( 'string', $site->normalizePageName( 'Foobar' ) );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testGetGlobalId( Site $site ) {
- $this->assertInternalType( 'string', $site->getGlobalId() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testSetGlobalId( Site $site ) {
- $site->setGlobalId( 'foobar' );
- $this->assertEquals( 'foobar', $site->getGlobalId() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testGetType( Site $site ) {
- $this->assertInternalType( 'string', $site->getType() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testGetPath( Site $site ) {
- $this->assertTypeOrFalse( 'string', $site->getPath( 'page_path' ) );
- $this->assertTypeOrFalse( 'string', $site->getPath( 'file_path' ) );
- $this->assertTypeOrFalse( 'string', $site->getPath( 'foobar' ) );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testGetAllPaths( Site $site ) {
- $this->assertInternalType( 'array', $site->getAllPaths() );
- }
-
- /**
- * @dataProvider instanceProvider
- * @param Site $site
- */
- public function testSetAndRemovePath( Site $site ) {
- $count = count( $site->getAllPaths() );
-
- $site->setPath( 'spam', 'http://www.wikidata.org/$1' );
- $site->setPath( 'spam', 'http://www.wikidata.org/foo/$1' );
- $site->setPath( 'foobar', 'http://www.wikidata.org/bar/$1' );
-
- $this->assertEquals( $count + 2, count( $site->getAllPaths() ) );
-
- $this->assertInternalType( 'string', $site->getPath( 'foobar' ) );
- $this->assertEquals( 'http://www.wikidata.org/foo/$1', $site->getPath( 'spam' ) );
-
- $site->removePath( 'spam' );
- $site->removePath( 'foobar' );
-
- $this->assertEquals( $count, count( $site->getAllPaths() ) );
-
- $this->assertFalse( $site->getPath( 'foobar' ) );
- $this->assertFalse( $site->getPath( 'spam' ) );
- }
-
- public function testSetLinkPath() {
- /* @var SiteObject $site */
- $site = $this->getRowInstance( $this->getMockFields(), false );
- $path = "TestPath/$1";
-
- $site->setLinkPath( $path );
- $this->assertEquals( $path, $site->getLinkPath() );
- }
-
- public function testGetLinkPathType() {
- /* @var SiteObject $site */
- $site = $this->getRowInstance( $this->getMockFields(), false );
-
- $path = 'TestPath/$1';
- $site->setLinkPath( $path );
- $this->assertEquals( $path, $site->getPath( $site->getLinkPathType() ) );
-
- $path = 'AnotherPath/$1';
- $site->setPath( $site->getLinkPathType(), $path );
- $this->assertEquals( $path, $site->getLinkPath() );
- }
-
- public function testSetPath() {
- /* @var SiteObject $site */
- $site = $this->getRowInstance( $this->getMockFields(), false );
-
- $path = 'TestPath/$1';
- $site->setPath( 'foo', $path );
-
- $this->assertEquals( $path, $site->getPath( 'foo' ) );
- }
-
- public function testProtocolRelativePath() {
- /* @var SiteObject $site */
- $site = $this->getRowInstance( $this->getMockFields(), false );
-
- $type = $site->getLinkPathType();
- $path = '//acme.com/'; // protocol-relative URL
- $site->setPath( $type, $path );
-
- $this->assertEquals( '', $site->getProtocol() );
- }
-
- public function provideGetPageUrl() {
- //NOTE: the assumption that the URL is built by replacing $1
- // with the urlencoded version of $page
- // is true for SiteObject but not guaranteed for subclasses.
- // Subclasses need to override this provider appropriately.
-
- return array(
- array( #0
- 'http://acme.test/TestPath/$1',
- 'Foo',
- '/TestPath/Foo',
- ),
- array( #1
- 'http://acme.test/TestScript?x=$1&y=bla',
- 'Foo',
- 'TestScript?x=Foo&y=bla',
- ),
- array( #2
- 'http://acme.test/TestPath/$1',
- 'foo & bar/xyzzy (quux-shmoox?)',
- '/TestPath/foo%20%26%20bar%2Fxyzzy%20%28quux-shmoox%3F%29',
- ),
- );
- }
-
- /**
- * @dataProvider provideGetPageUrl
- */
- public function testGetPageUrl( $path, $page, $expected ) {
- /* @var SiteObject $site */
- $site = $this->getRowInstance( $this->getMockFields(), false );
-
- //NOTE: the assumption that getPageUrl is based on getLinkPath
- // is true for SiteObject but not guaranteed for subclasses.
- // Subclasses need to override this test case appropriately.
- $site->setLinkPath( $path );
- $this->assertContains( $path, $site->getPageUrl() );
-
- $this->assertContains( $expected, $site->getPageUrl( $page ) );
- }
-
- protected function assertTypeOrFalse( $type, $value ) {
- if ( $value === false ) {
- $this->assertTrue( true );
- }
- else {
- $this->assertInternalType( $type, $value );
- }
- }
-
-}
\ No newline at end of file
--- /dev/null
+<?php
+
+/**
+ * Tests for the SiteSQLStore class.
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * 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
+ * @since 1.21
+ *
+ * @ingroup Site
+ * @ingroup Test
+ *
+ * @group Site
+ * @group Database
+ *
+ * @licence GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+class SiteSQLStoreTest extends MediaWikiTestCase {
+
+ public function testGetSites() {
+ $expectedSites = TestSites::getSites();
+ TestSites::insertIntoDb();
+
+ $store = SiteSQLStore::newInstance();
+
+ $sites = $store->getSites();
+
+ $this->assertInstanceOf( 'SiteList', $sites );
+
+ /**
+ * @var Site $site
+ */
+ foreach ( $sites as $site ) {
+ $this->assertInstanceOf( 'Site', $site );
+ }
+
+ foreach ( $expectedSites as $site ) {
+ if ( $site->getGlobalId() !== null ) {
+ $this->assertTrue( $sites->hasSite( $site->getGlobalId() ) );
+ }
+ }
+ }
+
+ public function testSaveSites() {
+ $store = SiteSQLStore::newInstance();
+
+ $sites = array();
+
+ $site = new Site();
+ $site->setGlobalId( 'ertrywuutr' );
+ $site->setLanguageCode( 'en' );
+ $sites[] = $site;
+
+ $site = new MediaWikiSite();
+ $site->setGlobalId( 'sdfhxujgkfpth' );
+ $site->setLanguageCode( 'nl' );
+ $sites[] = $site;
+
+ $this->assertTrue( $store->saveSites( $sites ) );
+
+ $site = $store->getSite( 'ertrywuutr' );
+ $this->assertInstanceOf( 'Site', $site );
+ $this->assertEquals( 'en', $site->getLanguageCode() );
+ $this->assertTrue( is_integer( $site->getInternalId() ) );
+ $this->assertTrue( $site->getInternalId() >= 0 );
+
+ $site = $store->getSite( 'sdfhxujgkfpth' );
+ $this->assertInstanceOf( 'Site', $site );
+ $this->assertEquals( 'nl', $site->getLanguageCode() );
+ $this->assertTrue( is_integer( $site->getInternalId() ) );
+ $this->assertTrue( $site->getInternalId() >= 0 );
+ }
+
+ public function testReset() {
+ $store1 = SiteSQLStore::newInstance();
+ $store2 = SiteSQLStore::newInstance();
+
+ // initialize internal cache
+ $this->assertGreaterThan( 0, $store1->getSites()->count() );
+ $this->assertGreaterThan( 0, $store2->getSites()->count() );
+
+ // Clear actual data. Will purge the external cache and reset the internal
+ // cache in $store1, but not the internal cache in store2.
+ $this->assertTrue( $store1->clear() );
+
+ // sanity check: $store2 should have a stale cache now
+ $this->assertNotNull( $store2->getSite( 'enwiki' ) );
+
+ // purge cache
+ $store2->reset();
+
+ // ...now the internal cache of $store2 should be updated and thus empty.
+ $site = $store2->getSite( 'enwiki' );
+ $this->assertNull( $site );
+ }
+
+ public function testClear() {
+ $store = SiteSQLStore::newInstance();
+ $this->assertTrue( $store->clear() );
+
+ $site = $store->getSite( 'enwiki' );
+ $this->assertNull( $site );
+
+ $sites = $store->getSites();
+ $this->assertEquals( 0, $sites->count() );
+ }
+
+}
--- /dev/null
+<?php
+
+/**
+ * Tests for the Site class.
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * 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
+ * @since 1.21
+ *
+ * @ingroup Site
+ * @ingroup Test
+ *
+ * @group Site
+ *
+ * @licence GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+class SiteTest extends MediaWikiTestCase {
+
+ public function instanceProvider() {
+ return $this->arrayWrap( TestSites::getSites() );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testGetInterwikiIds( Site $site ) {
+ $this->assertInternalType( 'array', $site->getInterwikiIds() );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testGetNavigationIds( Site $site ) {
+ $this->assertInternalType( 'array', $site->getNavigationIds() );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testAddNavigationId( Site $site ) {
+ $site->addNavigationId( 'foobar' );
+ $this->assertTrue( in_array( 'foobar', $site->getNavigationIds(), true ) );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testAddInterwikiId( Site $site ) {
+ $site->addInterwikiId( 'foobar' );
+ $this->assertTrue( in_array( 'foobar', $site->getInterwikiIds(), true ) );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testGetLanguageCode( Site $site ) {
+ $this->assertTypeOrValue( 'string', $site->getLanguageCode(), null );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testSetLanguageCode( Site $site ) {
+ $site->setLanguageCode( 'en' );
+ $this->assertEquals( 'en', $site->getLanguageCode() );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testNormalizePageName( Site $site ) {
+ $this->assertInternalType( 'string', $site->normalizePageName( 'Foobar' ) );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testGetGlobalId( Site $site ) {
+ $this->assertTypeOrValue( 'string', $site->getGlobalId(), null );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testSetGlobalId( Site $site ) {
+ $site->setGlobalId( 'foobar' );
+ $this->assertEquals( 'foobar', $site->getGlobalId() );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testGetType( Site $site ) {
+ $this->assertInternalType( 'string', $site->getType() );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testGetPath( Site $site ) {
+ $this->assertTypeOrValue( 'string', $site->getPath( 'page_path' ), null );
+ $this->assertTypeOrValue( 'string', $site->getPath( 'file_path' ), null );
+ $this->assertTypeOrValue( 'string', $site->getPath( 'foobar' ), null );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testGetAllPaths( Site $site ) {
+ $this->assertInternalType( 'array', $site->getAllPaths() );
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testSetAndRemovePath( Site $site ) {
+ $count = count( $site->getAllPaths() );
+
+ $site->setPath( 'spam', 'http://www.wikidata.org/$1' );
+ $site->setPath( 'spam', 'http://www.wikidata.org/foo/$1' );
+ $site->setPath( 'foobar', 'http://www.wikidata.org/bar/$1' );
+
+ $this->assertEquals( $count + 2, count( $site->getAllPaths() ) );
+
+ $this->assertInternalType( 'string', $site->getPath( 'foobar' ) );
+ $this->assertEquals( 'http://www.wikidata.org/foo/$1', $site->getPath( 'spam' ) );
+
+ $site->removePath( 'spam' );
+ $site->removePath( 'foobar' );
+
+ $this->assertEquals( $count, count( $site->getAllPaths() ) );
+
+ $this->assertNull( $site->getPath( 'foobar' ) );
+ $this->assertNull( $site->getPath( 'spam' ) );
+ }
+
+ public function testSetLinkPath() {
+ $site = new Site();
+ $path = "TestPath/$1";
+
+ $site->setLinkPath( $path );
+ $this->assertEquals( $path, $site->getLinkPath() );
+ }
+
+ public function testGetLinkPathType() {
+ $site = new Site();
+
+ $path = 'TestPath/$1';
+ $site->setLinkPath( $path );
+ $this->assertEquals( $path, $site->getPath( $site->getLinkPathType() ) );
+
+ $path = 'AnotherPath/$1';
+ $site->setPath( $site->getLinkPathType(), $path );
+ $this->assertEquals( $path, $site->getLinkPath() );
+ }
+
+ public function testSetPath() {
+ $site = new Site();
+
+ $path = 'TestPath/$1';
+ $site->setPath( 'foo', $path );
+
+ $this->assertEquals( $path, $site->getPath( 'foo' ) );
+ }
+
+ public function testProtocolRelativePath() {
+ $site = new Site();
+
+ $type = $site->getLinkPathType();
+ $path = '//acme.com/'; // protocol-relative URL
+ $site->setPath( $type, $path );
+
+ $this->assertEquals( '', $site->getProtocol() );
+ }
+
+ public function provideGetPageUrl() {
+ //NOTE: the assumption that the URL is built by replacing $1
+ // with the urlencoded version of $page
+ // is true for Site but not guaranteed for subclasses.
+ // Subclasses need to override this provider appropriately.
+
+ return array(
+ array( #0
+ 'http://acme.test/TestPath/$1',
+ 'Foo',
+ '/TestPath/Foo',
+ ),
+ array( #1
+ 'http://acme.test/TestScript?x=$1&y=bla',
+ 'Foo',
+ 'TestScript?x=Foo&y=bla',
+ ),
+ array( #2
+ 'http://acme.test/TestPath/$1',
+ 'foo & bar/xyzzy (quux-shmoox?)',
+ '/TestPath/foo%20%26%20bar%2Fxyzzy%20%28quux-shmoox%3F%29',
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider provideGetPageUrl
+ */
+ public function testGetPageUrl( $path, $page, $expected ) {
+ $site = new Site();
+
+ //NOTE: the assumption that getPageUrl is based on getLinkPath
+ // is true for Site but not guaranteed for subclasses.
+ // Subclasses need to override this test case appropriately.
+ $site->setLinkPath( $path );
+ $this->assertContains( $path, $site->getPageUrl() );
+
+ $this->assertContains( $expected, $site->getPageUrl( $page ) );
+ }
+
+ protected function assertTypeOrFalse( $type, $value ) {
+ if ( $value === false ) {
+ $this->assertTrue( true );
+ }
+ else {
+ $this->assertInternalType( $type, $value );
+ }
+ }
+
+ /**
+ * @dataProvider instanceProvider
+ * @param Site $site
+ */
+ public function testSerialization( Site $site ) {
+ $this->assertInstanceOf( 'Serializable', $site );
+
+ $serialization = serialize( $site );
+ $newInstance = unserialize( $serialization );
+
+ $this->assertInstanceOf( 'Site', $newInstance );
+
+ $this->assertEquals( $serialization, serialize( $newInstance ) );
+ }
+
+}
+++ /dev/null
-<?php
-
-/**
- * Tests for the Sites class.
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * 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
- * @since 1.21
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @group Site
- * @group Database
- *
- * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
- */
-class SitesTest extends MediaWikiTestCase {
-
- public function setUp() {
- parent::setUp();
- TestSites::insertIntoDb();
- }
-
- public function testSingleton() {
- $this->assertInstanceOf( 'Sites', Sites::singleton() );
- $this->assertTrue( Sites::singleton() === Sites::singleton() );
- }
-
- public function testGetSites() {
- $this->assertInstanceOf( 'SiteList', Sites::singleton()->getSites() );
- }
-
-
- public function testGetSite() {
- $count = 0;
- $sites = Sites::singleton()->getSites();
-
- /**
- * @var Site $site
- */
- foreach ( $sites as $site ) {
- $this->assertInstanceOf( 'Site', $site );
-
- $this->assertEquals(
- $site,
- Sites::singleton()->getSite( $site->getGlobalId() )
- );
-
- if ( ++$count > 100 ) {
- break;
- }
- }
- }
-
- public function testNewSite() {
- $this->assertInstanceOf( 'Site', Sites::newSite() );
- $this->assertInstanceOf( 'Site', Sites::newSite( 'enwiki' ) );
- }
-
- public function testGetGroup() {
- $wikipedias = Sites::singleton()->getSiteGroup( "wikipedia" );
-
- $this->assertFalse( $wikipedias->isEmpty() );
-
- /* @var Site $site */
- foreach ( $wikipedias as $site ) {
- $this->assertEquals( 'wikipedia', $site->getGroup() );
- }
- }
-
-}
public static function getSites() {
$sites = array();
- $site = Sites::newSite( 'foobar' );
+ $site = new Site();
+ $site->setGlobalId( 'foobar' );
$sites[] = $site;
- $site = Sites::newSite( 'enwiktionary' );
+ $site = new MediaWikiSite();
+ $site->setGlobalId( 'enwiktionary' );
$site->setGroup( 'wiktionary' );
- $site->setType( Site::TYPE_MEDIAWIKI );
$site->setLanguageCode( 'en' );
$site->addNavigationId( 'enwiktionary' );
$site->setPath( MediaWikiSite::PATH_PAGE, "https://en.wiktionary.org/wiki/$1" );
$site->setPath( MediaWikiSite::PATH_FILE, "https://en.wiktionary.org/w/$1" );
$sites[] = $site;
- $site = Sites::newSite( 'dewiktionary' );
+ $site = new MediaWikiSite();
+ $site->setGlobalId( 'dewiktionary' );
$site->setGroup( 'wiktionary' );
- $site->setType( Site::TYPE_MEDIAWIKI );
$site->setLanguageCode( 'de' );
$site->addInterwikiId( 'dewiktionary' );
$site->addInterwikiId( 'wiktionaryde' );
$site->setPath( MediaWikiSite::PATH_FILE, "https://de.wiktionary.org/w/$1" );
$sites[] = $site;
- $site = Sites::newSite( 'spam' );
+ $site = new Site();
+ $site->setGlobalId( 'spam' );
$site->setGroup( 'spam' );
- $site->setType( Site::TYPE_UNKNOWN );
$site->setLanguageCode( 'en' );
$site->addNavigationId( 'spam' );
$site->addNavigationId( 'spamz' );
$sites[] = $site;
foreach ( array( 'en', 'de', 'nl', 'sv', 'sr', 'no', 'nn' ) as $langCode ) {
- $site = Sites::newSite( $langCode . 'wiki' );
+ $site = new MediaWikiSite();
+ $site->setGlobalId( $langCode . 'wiki' );
$site->setGroup( 'wikipedia' );
- $site->setType( Site::TYPE_MEDIAWIKI );
$site->setLanguageCode( $langCode );
$site->addInterwikiId( $langCode );
$site->addNavigationId( $langCode );
* @since 0.1
*/
public static function insertIntoDb() {
- $dbw = wfGetDB( DB_MASTER );
-
- $dbw->begin( __METHOD__ );
-
- $dbw->delete( 'sites', '*', __METHOD__ );
- $dbw->delete( 'site_identifiers', '*', __METHOD__ );
-
- /**
- * @var Site $site
- */
- foreach ( TestSites::getSites() as $site ) {
- $site->save();
- }
-
- $dbw->commit( __METHOD__ );
-
- Sites::singleton()->getSites( false ); // re-cache
+ $sitesTable = SiteSQLStore::newInstance();
+ $sitesTable->clear();
+ $sitesTable->saveSites( TestSites::getSites() );
}
-}
\ No newline at end of file
+}
/** see bug 29495 */
/** @dataProvider providerFormatNum*/
function testFormatNum( $result, $value ) {
- $this->assertEquals( $result, $this->getLang()->formatNum( $value ) );
+ $this->assertEquals( $result, $this->getLang()->formatNum( $value ) );
}
function providerFormatNum() {
);
}
+ /**
+ * Test Language::isWellFormedLanguageTag()
+ * @dataProvider provideWellFormedLanguageTags
+ */
+ function testWellFormedLanguageTag( $code, $message = '' ) {
+ $this->assertTrue(
+ Language::isWellFormedLanguageTag( $code ),
+ "validating code $code $message"
+ );
+ }
+
+ /**
+ * The test cases are based on the tests in the GaBuZoMeu parser
+ * written by Stéphane Bortzmeyer <bortzmeyer@nic.fr>
+ * and distributed as free software, under the GNU General Public Licence.
+ * http://www.bortzmeyer.org/gabuzomeu-parsing-language-tags.html
+ */
+ function provideWellFormedLanguageTags() {
+ return array(
+ array( 'fr', 'two-letter code' ),
+ array( 'fr-latn', 'two-letter code with lower case script code' ),
+ array( 'fr-Latn-FR', 'two-letter code with title case script code and uppercase country code' ),
+ array( 'fr-Latn-419', 'two-letter code with title case script code and region number' ),
+ array( 'fr-FR', 'two-letter code with uppercase' ),
+ array( 'ax-TZ', 'Not in the registry, but well-formed' ),
+ array( 'fr-shadok', 'two-letter code with variant' ),
+ array( 'fr-y-myext-myext2', 'non-x singleton' ),
+ array( 'fra-Latn', 'ISO 639 can be 3-letters' ),
+ array( 'fra', 'three-letter language code' ),
+ array( 'fra-FX', 'three-letter language code with country code' ),
+ array( 'i-klingon', 'grandfathered with singleton' ),
+ array( 'I-kLINgon', 'tags are case-insensitive...' ),
+ array( 'no-bok', 'grandfathered without singleton' ),
+ array( 'i-enochian', 'Grandfathered' ),
+ array( 'x-fr-CH', 'private use' ),
+ array( 'es-419', 'two-letter code with region number' ),
+ array( 'en-Latn-GB-boont-r-extended-sequence-x-private', 'weird, but well-formed' ),
+ array( 'ab-x-abc-x-abc', 'anything goes after x' ),
+ array( 'ab-x-abc-a-a', 'anything goes after x, including several non-x singletons' ),
+ array( 'i-default', 'grandfathered' ),
+ array( 'abcd-Latn', 'Language of 4 chars reserved for future use' ),
+ array( 'AaBbCcDd-x-y-any-x', 'Language of 5-8 chars, registered' ),
+ array( 'de-CH-1901', 'with country and year' ),
+ array( 'en-US-x-twain', 'with country and singleton' ),
+ array( 'zh-cmn', 'three-letter variant' ),
+ array( 'zh-cmn-Hant', 'three-letter variant and script' ),
+ array( 'zh-cmn-Hant-HK', 'three-letter variant, script and country' ),
+ array( 'xr-p-lze', 'Extension' ),
+ );
+ }
+
+ /**
+ * Negative test for Language::isWellFormedLanguageTag()
+ * @dataProvider provideMalformedLanguageTags
+ */
+ function testMalformedLanguageTag( $code, $message = '' ) {
+ $this->assertFalse(
+ Language::isWellFormedLanguageTag( $code ),
+ "validating that code $code is a malformed language tag - $message"
+ );
+ }
+
+ /**
+ * The test cases are based on the tests in the GaBuZoMeu parser
+ * written by Stéphane Bortzmeyer <bortzmeyer@nic.fr>
+ * and distributed as free software, under the GNU General Public Licence.
+ * http://www.bortzmeyer.org/gabuzomeu-parsing-language-tags.html
+ */
+ function provideMalformedLanguageTags() {
+ return array(
+ array( 'f', 'language too short' ),
+ array( 'f-Latn', 'language too short with script' ),
+ array( 'xr-lxs-qut', 'variants too short' ), # extlangS
+ array( 'fr-Latn-F', 'region too short' ),
+ array( 'a-value', 'language too short with region' ),
+ array( 'tlh-a-b-foo', 'valid three-letter with wrong variant' ),
+ array( 'i-notexist', 'grandfathered but not registered: invalid, even if we only test well-formedness' ),
+ array( 'abcdefghi-012345678', 'numbers too long' ),
+ array( 'ab-abc-abc-abc-abc', 'invalid extensions' ),
+ array( 'ab-abcd-abc', 'invalid extensions' ),
+ array( 'ab-ab-abc', 'invalid extensions' ),
+ array( 'ab-123-abc', 'invalid extensions' ),
+ array( 'a-Hant-ZH', 'short language with valid extensions' ),
+ array( 'a1-Hant-ZH', 'invalid character in language' ),
+ array( 'ab-abcde-abc', 'invalid extensions' ),
+ array( 'ab-1abc-abc', 'invalid characters in extensions' ),
+ array( 'ab-ab-abcd', 'invalid order of extensions' ),
+ array( 'ab-123-abcd', 'invalid order of extensions' ),
+ array( 'ab-abcde-abcd', 'invalid extensions' ),
+ array( 'ab-1abc-abcd', 'invalid characters in extensions' ),
+ array( 'ab-a-b', 'extensions too short' ),
+ array( 'ab-a-x', 'extensions too short, even with singleton' ),
+ array( 'ab--ab', 'two separators' ),
+ array( 'ab-abc-', 'separator in the end' ),
+ array( '-ab-abc', 'separator in the beginning' ),
+ array( 'abcd-efg', 'language too long' ),
+ array( 'aabbccddE', 'tag too long' ),
+ array( 'pa_guru', 'A tag with underscore is invalid in strict mode' ),
+ array( 'de-f', 'subtag too short' ),
+ );
+ }
+
+ /**
+ * Negative test for Language::isWellFormedLanguageTag()
+ */
+ function testLenientLanguageTag() {
+ $this->assertTrue(
+ Language::isWellFormedLanguageTag( 'pa_guru', true ),
+ 'pa_guru is a well-formed language tag in lenient mode'
+ );
+ }
+
/**
* Test Language::isValidBuiltInCode()
* @dataProvider provideLanguageCodes
*/
function testBuiltInCodeValidation( $code, $message = '' ) {
$this->assertTrue(
- (bool) Language::isValidBuiltInCode( $code ),
+ (bool)Language::isValidBuiltInCode( $code ),
"validating code $code $message"
);
}
function testBuiltInCodeValidationRejectUnderscore() {
$this->assertFalse(
- (bool) Language::isValidBuiltInCode( 'be_tarask' ),
+ (bool)Language::isValidBuiltInCode( 'be_tarask' ),
"reject underscore in language code"
);
}
);
}
+ /**
+ * Test Language::isKnownLanguageTag()
+ * @dataProvider provideKnownLanguageTags
+ */
+ function testKnownLanguageTag( $code, $message = '' ) {
+ $this->assertTrue(
+ (bool) Language::isKnownLanguageTag( $code ),
+ "validating code $code - $message"
+ );
+ }
+
+ function provideKnownLanguageTags() {
+ return array(
+ array( 'fr', 'simple code' ),
+ array( 'bat-smg', 'an MW legacy tag' ),
+ array( 'sgs', 'an internal standard MW name, for which a legacy tag is used externally' ),
+ );
+ }
+
+ /**
+ * Test Language::isKnownLanguageTag()
+ */
+ function testKnownCldrLanguageTag() {
+ if ( !class_exists( 'LanguageNames' ) ) {
+ $this->markTestSkipped( 'reason' );
+ }
+
+ $this->assertTrue(
+ (bool) Language::isKnownLanguageTag( 'pal' ),
+ 'validating code "pal" an ancient language, which probably will not appear in Names.php, but appears in CLDR in English'
+ );
+ }
+
+ /**
+ * Negative tests for Language::isKnownLanguageTag()
+ * @dataProvider provideUnKnownLanguageTags
+ */
+ function testUnknownLanguageTag( $code, $message = '' ) {
+ $this->assertFalse(
+ (bool) Language::isKnownLanguageTag( $code ),
+ "checking that code $code is invalid - $message"
+ );
+ }
+
+ function provideUnknownLanguageTags() {
+ return array(
+ array( 'mw', 'non-existent two-letter code' ),
+ );
+ }
+
/**
* @dataProvider provideSprintfDateSamples
*/
);
}
}
-
* @dataProvider validTestCases
*/
function testValidRules( $expected, $rules, $number, $comment ) {
- $result = CLDRPluralRuleEvaluator::evaluate( $number, (array) $rules );
+ $result = CLDRPluralRuleEvaluator::evaluate( $number, (array)$rules );
$this->assertEquals( $expected, $result, $comment );
}
* @expectedException CLDRPluralRuleError
*/
function testInvalidRules( $rules, $comment ) {
- CLDRPluralRuleEvaluator::evaluate( 1, (array) $rules );
+ CLDRPluralRuleEvaluator::evaluate( 1, (array)$rules );
}
function validTestCases() {
*/
protected function gunzip( $fname ) {
$gzipped_contents = file_get_contents( $fname );
- if ( $gzipped_contents === FALSE ) {
+ if ( $gzipped_contents === false ) {
$this->fail( "Could not get contents of $fname" );
}
// We resort to use gzinflate instead of gzdecode, as gzdecode
function testOutputEmpty() {
$this->m->output( "" );
- $this->assertOutputPrePostShutdown( "", False );
+ $this->assertOutputPrePostShutdown( "", false );
}
function testOutputString() {
$this->m->output( "foo" );
- $this->assertOutputPrePostShutdown( "foo", False );
+ $this->assertOutputPrePostShutdown( "foo", false );
}
function testOutputStringString() {
$this->m->output( "foo" );
$this->m->output( "bar" );
- $this->assertOutputPrePostShutdown( "foobar", False );
+ $this->assertOutputPrePostShutdown( "foobar", false );
}
function testOutputStringNL() {
$this->m->output( "foo\n" );
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testOutputStringNLNL() {
$this->m->output( "foo\n\n" );
- $this->assertOutputPrePostShutdown( "foo\n\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n\n", false );
}
function testOutputStringNLString() {
$this->m->output( "foo\nbar" );
- $this->assertOutputPrePostShutdown( "foo\nbar", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar", false );
}
function testOutputStringNLStringNL() {
$this->m->output( "foo\nbar\n" );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputStringNLStringNLLinewise() {
$this->m->output( "foo\n" );
$this->m->output( "bar\n" );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputStringNLStringNLArbitrary() {
$this->m->output( "ba" );
$this->m->output( "" );
$this->m->output( "r\n" );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputStringNLStringNLArbitraryAgain() {
$this->m->output( "a" );
$this->m->output( "" );
$this->m->output( "r\n" );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputWNullChannelEmpty() {
$this->m->output( "", null );
- $this->assertOutputPrePostShutdown( "", False );
+ $this->assertOutputPrePostShutdown( "", false );
}
function testOutputWNullChannelString() {
$this->m->output( "foo", null );
- $this->assertOutputPrePostShutdown( "foo", False );
+ $this->assertOutputPrePostShutdown( "foo", false );
}
function testOutputWNullChannelStringString() {
$this->m->output( "foo", null );
$this->m->output( "bar", null );
- $this->assertOutputPrePostShutdown( "foobar", False );
+ $this->assertOutputPrePostShutdown( "foobar", false );
}
function testOutputWNullChannelStringNL() {
$this->m->output( "foo\n", null );
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testOutputWNullChannelStringNLNL() {
$this->m->output( "foo\n\n", null );
- $this->assertOutputPrePostShutdown( "foo\n\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n\n", false );
}
function testOutputWNullChannelStringNLString() {
$this->m->output( "foo\nbar", null );
- $this->assertOutputPrePostShutdown( "foo\nbar", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar", false );
}
function testOutputWNullChannelStringNLStringNL() {
$this->m->output( "foo\nbar\n", null );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputWNullChannelStringNLStringNLLinewise() {
$this->m->output( "foo\n", null );
$this->m->output( "bar\n", null );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputWNullChannelStringNLStringNLArbitrary() {
$this->m->output( "ba", null );
$this->m->output( "", null );
$this->m->output( "r\n", null );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputWNullChannelStringNLStringNLArbitraryAgain() {
$this->m->output( "a", null );
$this->m->output( "", null );
$this->m->output( "r\n", null );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputWChannelString() {
$this->m->output( "foo", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo", True );
+ $this->assertOutputPrePostShutdown( "foo", true );
}
function testOutputWChannelStringNL() {
$this->m->output( "foo\n", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo", True );
+ $this->assertOutputPrePostShutdown( "foo", true );
}
function testOutputWChannelStringNLNL() {
// outputChanneled with a string ending in a nl ... which is not allowed
// according to the documentation of outputChanneled)
$this->m->output( "foo\n\n", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\n", True );
+ $this->assertOutputPrePostShutdown( "foo\n", true );
}
function testOutputWChannelStringNLString() {
$this->m->output( "foo\nbar", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar", true );
}
function testOutputWChannelStringNLStringNL() {
$this->m->output( "foo\nbar\n", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar", true );
}
function testOutputWChannelStringNLStringNLLinewise() {
$this->m->output( "foo\n", "bazChannel" );
$this->m->output( "bar\n", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar", True );
+ $this->assertOutputPrePostShutdown( "foobar", true );
}
function testOutputWChannelStringNLStringNLArbitrary() {
$this->m->output( "ba", "bazChannel" );
$this->m->output( "", "bazChannel" );
$this->m->output( "r\n", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar", True );
+ $this->assertOutputPrePostShutdown( "foobar", true );
}
function testOutputWChannelStringNLStringNLArbitraryAgain() {
$this->m->output( "a", "bazChannel" );
$this->m->output( "", "bazChannel" );
$this->m->output( "r\n", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar", true );
}
function testOutputWMultipleChannelsChannelChange() {
$this->m->output( "bar", "bazChannel" );
$this->m->output( "qux", "quuxChannel" );
$this->m->output( "corge", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar\nqux\ncorge", True );
+ $this->assertOutputPrePostShutdown( "foobar\nqux\ncorge", true );
}
function testOutputWMultipleChannelsChannelChangeNL() {
$this->m->output( "bar\n", "bazChannel" );
$this->m->output( "qux\n", "quuxChannel" );
$this->m->output( "corge", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar\nqux\ncorge", True );
+ $this->assertOutputPrePostShutdown( "foobar\nqux\ncorge", true );
}
function testOutputWAndWOChannelStringStartWO() {
$this->m->output( "bar", "bazChannel" );
$this->m->output( "qux" );
$this->m->output( "quux", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar\nquxquux", True );
+ $this->assertOutputPrePostShutdown( "foobar\nquxquux", true );
}
function testOutputWAndWOChannelStringStartW() {
$this->m->output( "bar" );
$this->m->output( "qux", "bazChannel" );
$this->m->output( "quux" );
- $this->assertOutputPrePostShutdown( "foo\nbarqux\nquux", False );
+ $this->assertOutputPrePostShutdown( "foo\nbarqux\nquux", false );
}
function testOutputWChannelTypeSwitch() {
$this->m->output( "foo", 1 );
$this->m->output( "bar", 1.0 );
- $this->assertOutputPrePostShutdown( "foo\nbar", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar", true );
}
function testOutputIntermittentEmpty() {
$this->m->output( "foo" );
$this->m->output( "" );
$this->m->output( "bar" );
- $this->assertOutputPrePostShutdown( "foobar", False );
+ $this->assertOutputPrePostShutdown( "foobar", false );
}
function testOutputIntermittentFalse() {
$this->m->output( "foo" );
$this->m->output( false );
$this->m->output( "bar" );
- $this->assertOutputPrePostShutdown( "foobar", False );
+ $this->assertOutputPrePostShutdown( "foobar", false );
}
function testOutputIntermittentFalseAfterOtherChannel() {
$this->m->output( "foo" );
$this->m->output( false );
$this->m->output( "bar" );
- $this->assertOutputPrePostShutdown( "qux\nfoobar", False );
+ $this->assertOutputPrePostShutdown( "qux\nfoobar", false );
}
function testOutputWNullChannelIntermittentEmpty() {
$this->m->output( "foo", null );
$this->m->output( "", null );
$this->m->output( "bar", null );
- $this->assertOutputPrePostShutdown( "foobar", False );
+ $this->assertOutputPrePostShutdown( "foobar", false );
}
function testOutputWNullChannelIntermittentFalse() {
$this->m->output( "foo", null );
$this->m->output( false, null );
$this->m->output( "bar", null );
- $this->assertOutputPrePostShutdown( "foobar", False );
+ $this->assertOutputPrePostShutdown( "foobar", false );
}
function testOutputWChannelIntermittentEmpty() {
$this->m->output( "foo", "bazChannel" );
$this->m->output( "", "bazChannel" );
$this->m->output( "bar", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar", True );
+ $this->assertOutputPrePostShutdown( "foobar", true );
}
function testOutputWChannelIntermittentFalse() {
$this->m->output( "foo", "bazChannel" );
$this->m->output( false, "bazChannel" );
$this->m->output( "bar", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar", True );
+ $this->assertOutputPrePostShutdown( "foobar", true );
}
// Note that (per documentation) outputChanneled does take strings that end
function testOutputChanneledEmpty() {
$this->m->outputChanneled( "" );
- $this->assertOutputPrePostShutdown( "\n", False );
+ $this->assertOutputPrePostShutdown( "\n", false );
}
function testOutputChanneledString() {
$this->m->outputChanneled( "foo" );
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testOutputChanneledStringString() {
$this->m->outputChanneled( "foo" );
$this->m->outputChanneled( "bar" );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputChanneledStringNLString() {
$this->m->outputChanneled( "foo\nbar" );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputChanneledStringNLStringNLArbitraryAgain() {
$this->m->outputChanneled( "a" );
$this->m->outputChanneled( "" );
$this->m->outputChanneled( "r" );
- $this->assertOutputPrePostShutdown( "\nfoo\n\n\nb\na\n\nr\n", False );
+ $this->assertOutputPrePostShutdown( "\nfoo\n\n\nb\na\n\nr\n", false );
}
function testOutputChanneledWNullChannelEmpty() {
$this->m->outputChanneled( "", null );
- $this->assertOutputPrePostShutdown( "\n", False );
+ $this->assertOutputPrePostShutdown( "\n", false );
}
function testOutputChanneledWNullChannelString() {
$this->m->outputChanneled( "foo", null );
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testOutputChanneledWNullChannelStringString() {
$this->m->outputChanneled( "foo", null );
$this->m->outputChanneled( "bar", null );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputChanneledWNullChannelStringNLString() {
$this->m->outputChanneled( "foo\nbar", null );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputChanneledWNullChannelStringNLStringNLArbitraryAgain() {
$this->m->outputChanneled( "a", null );
$this->m->outputChanneled( "", null );
$this->m->outputChanneled( "r", null );
- $this->assertOutputPrePostShutdown( "\nfoo\n\n\nb\na\n\nr\n", False );
+ $this->assertOutputPrePostShutdown( "\nfoo\n\n\nb\na\n\nr\n", false );
}
function testOutputChanneledWChannelString() {
$this->m->outputChanneled( "foo", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo", True );
+ $this->assertOutputPrePostShutdown( "foo", true );
}
function testOutputChanneledWChannelStringNLString() {
$this->m->outputChanneled( "foo\nbar", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar", true );
}
function testOutputChanneledWChannelStringString() {
$this->m->outputChanneled( "foo", "bazChannel" );
$this->m->outputChanneled( "bar", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar", True );
+ $this->assertOutputPrePostShutdown( "foobar", true );
}
function testOutputChanneledWChannelStringNLStringNLArbitraryAgain() {
$this->m->outputChanneled( "a", "bazChannel" );
$this->m->outputChanneled( "", "bazChannel" );
$this->m->outputChanneled( "r", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar", true );
}
function testOutputChanneledWMultipleChannelsChannelChange() {
$this->m->outputChanneled( "bar", "bazChannel" );
$this->m->outputChanneled( "qux", "quuxChannel" );
$this->m->outputChanneled( "corge", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar\nqux\ncorge", True );
+ $this->assertOutputPrePostShutdown( "foobar\nqux\ncorge", true );
}
function testOutputChanneledWMultipleChannelsChannelChangeEnclosedNull() {
$this->m->outputChanneled( "bar", null );
$this->m->outputChanneled( "qux", null );
$this->m->outputChanneled( "corge", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar\nqux\ncorge", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar\nqux\ncorge", true );
}
function testOutputChanneledWMultipleChannelsChannelAfterNullChange() {
$this->m->outputChanneled( "bar", null );
$this->m->outputChanneled( "qux", null );
$this->m->outputChanneled( "corge", "quuxChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar\nqux\ncorge", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar\nqux\ncorge", true );
}
function testOutputChanneledWAndWOChannelStringStartWO() {
$this->m->outputChanneled( "bar", "bazChannel" );
$this->m->outputChanneled( "qux" );
$this->m->outputChanneled( "quux", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar\nqux\nquux", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar\nqux\nquux", true );
}
function testOutputChanneledWAndWOChannelStringStartW() {
$this->m->outputChanneled( "bar" );
$this->m->outputChanneled( "qux", "bazChannel" );
$this->m->outputChanneled( "quux" );
- $this->assertOutputPrePostShutdown( "foo\nbar\nqux\nquux\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\nqux\nquux\n", false );
}
function testOutputChanneledWChannelTypeSwitch() {
$this->m->outputChanneled( "foo", 1 );
$this->m->outputChanneled( "bar", 1.0 );
- $this->assertOutputPrePostShutdown( "foo\nbar", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar", true );
}
function testOutputChanneledWOChannelIntermittentEmpty() {
$this->m->outputChanneled( "foo" );
$this->m->outputChanneled( "" );
$this->m->outputChanneled( "bar" );
- $this->assertOutputPrePostShutdown( "foo\n\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n\nbar\n", false );
}
function testOutputChanneledWOChannelIntermittentFalse() {
$this->m->outputChanneled( "foo" );
$this->m->outputChanneled( false );
$this->m->outputChanneled( "bar" );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputChanneledWNullChannelIntermittentEmpty() {
$this->m->outputChanneled( "foo", null );
$this->m->outputChanneled( "", null );
$this->m->outputChanneled( "bar", null );
- $this->assertOutputPrePostShutdown( "foo\n\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n\nbar\n", false );
}
function testOutputChanneledWNullChannelIntermittentFalse() {
$this->m->outputChanneled( "foo", null );
$this->m->outputChanneled( false, null );
$this->m->outputChanneled( "bar", null );
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testOutputChanneledWChannelIntermittentEmpty() {
$this->m->outputChanneled( "foo", "bazChannel" );
$this->m->outputChanneled( "", "bazChannel" );
$this->m->outputChanneled( "bar", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foobar", True );
+ $this->assertOutputPrePostShutdown( "foobar", true );
}
function testOutputChanneledWChannelIntermittentFalse() {
$this->m->outputChanneled( "foo", "bazChannel" );
$this->m->outputChanneled( false, "bazChannel" );
$this->m->outputChanneled( "bar", "bazChannel" );
- $this->assertOutputPrePostShutdown( "foo\nbar", True );
+ $this->assertOutputPrePostShutdown( "foo\nbar", true );
}
function testCleanupChanneledClean() {
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "", False );
+ $this->assertOutputPrePostShutdown( "", false );
}
function testCleanupChanneledAfterOutput() {
$this->m->output( "foo" );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo", False );
+ $this->assertOutputPrePostShutdown( "foo", false );
}
function testCleanupChanneledAfterOutputWNullChannel() {
$this->m->output( "foo", null );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo", False );
+ $this->assertOutputPrePostShutdown( "foo", false );
}
function testCleanupChanneledAfterOutputWChannel() {
$this->m->output( "foo", "bazChannel" );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testCleanupChanneledAfterNLOutput() {
$this->m->output( "foo\n" );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testCleanupChanneledAfterNLOutputWNullChannel() {
$this->m->output( "foo\n", null );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testCleanupChanneledAfterNLOutputWChannel() {
$this->m->output( "foo\n", "bazChannel" );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testCleanupChanneledAfterOutputChanneledWOChannel() {
$this->m->outputChanneled( "foo" );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testCleanupChanneledAfterOutputChanneledWNullChannel() {
$this->m->outputChanneled( "foo", null );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testCleanupChanneledAfterOutputChanneledWChannel() {
$this->m->outputChanneled( "foo", "bazChannel" );
$this->m->cleanupChanneled();
- $this->assertOutputPrePostShutdown( "foo\n", False );
+ $this->assertOutputPrePostShutdown( "foo\n", false );
}
function testMultipleMaintenanceObjectsInteractionOutput() {
$this->assertEquals( "foobar", $this->getActualOutput(),
"Output before shutdown simulation (m2)" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foobar", False );
+ $this->assertOutputPrePostShutdown( "foobar", false );
}
function testMultipleMaintenanceObjectsInteractionOutputWNullChannel() {
$this->assertEquals( "foobar", $this->getActualOutput(),
"Output before shutdown simulation (m2)" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foobar", False );
+ $this->assertOutputPrePostShutdown( "foobar", false );
}
function testMultipleMaintenanceObjectsInteractionOutputWChannel() {
$this->assertEquals( "foobar", $this->getActualOutput(),
"Output before shutdown simulation (m2)" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foobar\n", True );
+ $this->assertOutputPrePostShutdown( "foobar\n", true );
}
function testMultipleMaintenanceObjectsInteractionOutputWNullChannelNL() {
$this->assertEquals( "foo\nbar\n", $this->getActualOutput(),
"Output before shutdown simulation (m2)" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testMultipleMaintenanceObjectsInteractionOutputWChannelNL() {
$this->assertEquals( "foobar", $this->getActualOutput(),
"Output before shutdown simulation (m2)" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foobar\n", True );
+ $this->assertOutputPrePostShutdown( "foobar\n", true );
}
function testMultipleMaintenanceObjectsInteractionOutputChanneled() {
$this->assertEquals( "foo\nbar\n", $this->getActualOutput(),
"Output before shutdown simulation (m2)" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testMultipleMaintenanceObjectsInteractionOutputChanneledWNullChannel() {
$this->assertEquals( "foo\nbar\n", $this->getActualOutput(),
"Output before shutdown simulation (m2)" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foo\nbar\n", False );
+ $this->assertOutputPrePostShutdown( "foo\nbar\n", false );
}
function testMultipleMaintenanceObjectsInteractionOutputChanneledWChannel() {
$this->assertEquals( "foobar", $this->getActualOutput(),
"Output before shutdown simulation (m2)" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foobar\n", True );
+ $this->assertOutputPrePostShutdown( "foobar\n", true );
}
function testMultipleMaintenanceObjectsInteractionCleanupChanneledWChannel() {
"Output after second cleanup" );
$m2->simulateShutdown();
- $this->assertOutputPrePostShutdown( "foobar\n\n", False );
+ $this->assertOutputPrePostShutdown( "foobar\n\n", false );
}
);
// The mock itself
- $prefetchMock = $this->getMock( 'BaseDump', array( 'prefetch' ), array(), '', FALSE );
+ $prefetchMock = $this->getMock( 'BaseDump', array( 'prefetch' ), array(), '', false );
$prefetchMock->expects( $this->exactly( 6 ) )
->method( 'prefetch' )
->will( $this->returnValueMap( $prefetchMap ) );
$nameOutputDir = $this->getNewTempDirectory();
$stderr = fopen( 'php://output', 'a' );
- if ( $stderr === FALSE ) {
+ if ( $stderr === false ) {
$this->fail( "Could not open stream for stderr" );
}
* @group large
*/
function testCheckpointGzip() {
+ $this->checkHasGzip();
$this->checkpointHelper( "gzip" );
}
function testXmlDumpsBackupUseCaseLogging() {
global $wgContLang;
+ $this->checkHasGzip();
+
// Preparing the dump
$fname = $this->getNewTempFile();
$dumper = new BackupDumper( array ( "--output=gzip:" . $fname,
// to be able to alert (once dumping produces reports) that this test
// needs updates.
$dumper->stderr = fopen( 'php://output', 'a' );
- if ( $dumper->stderr === FALSE ) {
+ if ( $dumper->stderr === false ) {
$this->fail( "Could not open stream for stderr" );
}
}
function testCurrentStubGzip () {
+ $this->checkHasGzip();
+
// Preparing the dump
$fname = $this->getNewTempFile();
$dumper = new BackupDumper( array ( "--output=gzip:" . $fname ) );
// We reproduce such a setup with our mini fixture, although we omit
// chunks, and all the other gimmicks of xmldumps-backup.
//
+ $this->checkHasGzip();
+
$fnameMetaHistory = $this->getNewTempFile();
$fnameMetaCurrent = $this->getNewTempFile();
$fnameArticles = $this->getNewTempFile();
// computer. We only check that reporting does not crash the dumping
// and that something is reported
$dumper->stderr = fopen( 'php://output', 'a' );
- if ( $dumper->stderr === FALSE ) {
+ if ( $dumper->stderr === false ) {
$this->fail( "Could not open stream for stderr" );
}
/**
* @var bool Whether or not a text for stdin has been provided
*/
- private $mockSetUp = False;
+ private $mockSetUp = false;
/**
* @var Array Invocation counters for the mocked aspects
*
* @param $stdin String The string to be used instead of stdin
*/
- function mockStdin( $stdin )
- {
+ function mockStdin( $stdin ) {
$this->mockStdinText = $stdin;
- $this->mockSetUp = True;
+ $this->mockSetUp = true;
}
/**
* @return Array An array, whose keys are function names. The corresponding values
* denote the number of times the function has been invoked.
*/
- function mockGetInvocations()
- {
+ function mockGetInvocations() {
return $this->mockInvocations;
}
// -----------------------------------------------------------------
// Mocked functions from FetchText follow.
- function getStdin( $len = null )
- {
+ function getStdin( $len = null ) {
$this->mockInvocations['getStdin']++;
if ( $len !== null ) {
throw new PHPUnit_Framework_ExpectationFailedException(
// The main answer
$output = $this->getActualOutput();
- $firstLineEndPos = strpos( $output,"\n");
- if ( $firstLineEndPos === FALSE ) {
+ $firstLineEndPos = strpos( $output, "\n" );
+ if ( $firstLineEndPos === false ) {
$this->fail( "Could not find end of first line of output" );
}
- $firstLine = substr( $output, 0 , $firstLineEndPos );
+ $firstLine = substr( $output, 0, $firstLineEndPos );
$this->assertRegExp( "/^" . self::getServerRE() . "$/D",
$firstLine, "DB Server" );
/** Local cache for sidebar messages */
private $messages;
- function __construct() {
- parent::__construct();
- }
-
/** Build $this->messages array */
private function initMessagesHref() {
# List of default messages for the sidebar:
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailure="false"
- timeoutForSmallTests="2"
- timeoutForMediumTests="10"
+ timeoutForSmallTests="10"
+ timeoutForMediumTests="30"
timeoutForLargeTests="60"
strict="true"
verbose="true">
rtl: true
}
},
+ // Iceweasel 10.0.6
+ 'Mozilla/5.0 (X11; Linux i686; rv:10.0.6) Gecko/20100101 Iceweasel/10.0.6': {
+ title: 'Iceweasel 10.0.6',
+ platform: 'Linux',
+ profile: {
+ name: 'iceweasel',
+ layout: 'gecko',
+ layoutVersion: 20100101,
+ platform: 'linux',
+ version: '10.0.6',
+ versionBase: '10',
+ versionNumber: 10
+ },
+ wikiEditor: {
+ ltr: true,
+ rtl: true
+ }
+ },
// Firefox 5
// Safari 3
// Safari 4
// Check the source file storage path
if ( !$img->exists() ) {
- wfThumbError( 404, 'The source file for the specified thumbnail does not exist.' );
+ wfThumbError( 404, "The source file '$fileName' does not exist." );
wfProfileOut( __METHOD__ );
return;
} elseif ( $img->getPath() === false ) {
- wfThumbError( 500, 'The source file is not locally accessible.' );
+ wfThumbError( 500, "The source file '$fileName' is not locally accessible." );
wfProfileOut( __METHOD__ );
return;
}