## Sublime
sublime-*
sftp-config.json
+## Visual Studio Code
+*.vscode
# MediaWiki install & usage
/cache
* …
=== Deprecations in 1.33 ===
+* The configuration option $wgUseESI has been deprecated, and is expected
+ to be removed in a future release.
+* The configuration option $wgSquidPurgeUseHostHeader has been deprecated,
+ and is expected to be removed in a future release.
* …
=== Other changes in 1.33 ===
"wikimedia/php-session-serializer": "1.0.6",
"wikimedia/purtle": "1.0.7",
"wikimedia/relpath": "2.1.1",
- "wikimedia/remex-html": "2.0.0",
+ "wikimedia/remex-html": "2.0.1",
"wikimedia/running-stat": "1.2.1",
"wikimedia/scoped-callback": "2.0.0",
"wikimedia/utfnormal": "2.0.0",
# Surrogate-Control controls our CDN, Cache-Control downstream caches
if ( $this->mConfig->get( 'UseESI' ) ) {
+ wfDeprecated( '$wgUseESI = true', '1.33' );
header( 'Surrogate-Control: max-age=' . $this->mCacheDuration . ', content="ESI/1.0"' );
header( 'Cache-Control: s-maxage=0, must-revalidate, max-age=0' );
} else {
/**
* If you run Squid3 with ESI support, enable this (default:false):
+ * @deprecated in 1.33. This was a now-defunct experimental feature.
*/
$wgUseESI = false;
* reverse).
*
* @since 1.21
+ * @deprecated since 1.33, will always be true in a future release.
*/
$wgSquidPurgeUseHostHeader = true;
!$this->haveCacheVaryCookies()
) {
if ( $config->get( 'UseESI' ) ) {
+ wfDeprecated( '$wgUseESI = true', '1.33' );
# We'll purge the proxy cache explicitly, but require end user agents
# to revalidate against the proxy on each visit.
# Surrogate-Control controls our CDN, Cache-Control downstream caches
}
}
+ // Don't allow loading non-protected pages as javascript.
+ // In future we may further restrict this to only CONTENT_MODEL_JAVASCRIPT
+ // in NS_MEDIAWIKI or NS_USER, as well as including other config types,
+ // but for now be more permissive. Allowing protected pages outside of
+ // NS_USER and NS_MEDIAWIKI in particular should be considered a temporary
+ // allowance.
+ if (
+ $contentType === 'text/javascript' &&
+ !$title->isUserJsConfigPage() &&
+ !$title->inNamespace( NS_MEDIAWIKI ) &&
+ !in_array( 'sysop', $title->getRestrictions( 'edit' ) ) &&
+ !in_array( 'editprotected', $title->getRestrictions( 'edit' ) )
+ ) {
+
+ $log = LoggerFactory::getInstance( "security" );
+ $log->info( "Blocked loading unprotected JS {title} for {user}",
+ [
+ 'user' => $this->getUser()->getName(),
+ 'title' => $title->getPrefixedDBKey(),
+ ]
+ );
+ throw new HttpError( 403, wfMessage( 'unprotected-js' ) );
+ }
+
$response->header( 'Content-type: ' . $contentType . '; charset=UTF-8' );
$text = $this->getRawText();
// Step 4: Authentication complete! Set the user in the session and
// clean up.
- $this->logger->info( 'Login for {user} succeeded', [
+ $this->logger->info( 'Login for {user} succeeded from {clientip}', [
'user' => $user->getName(),
+ 'clientip' => $this->request->getIP(),
] );
/** @var RememberMeAuthenticationRequest $req */
$req = AuthenticationRequest::getRequestByClass(
$request[] = "PURGE $path HTTP/1.1";
$request[] = "Host: $host";
} else {
+ wfDeprecated( '$wgSquidPurgeUseHostHeader = false', '1.33' );
$request[] = "PURGE $url HTTP/1.0";
}
$request[] = "Connection: Keep-Alive";
"config-install-mainpage-failed": "Вмъкването на Началната страница беше невъзможно: $1",
"config-install-done": "<strong>Поздравления!</strong>\nИнсталирането на МедияУики приключи успешно.\n\nИнсталаторът създаде файл <code>LocalSettings.php</code>.\nТой съдържа всичката необходима основна конфигурация на уикито.\n\nНеобходимо е той да бъде изтеглен и поставен в основната директория на уикито (директорията, в която е и index.php). Изтеглянето би трябвало да започне автоматично.\n\nАко изтеглянето не започне автоматично или е било прекратено, файлът може да бъде изтеглен чрез щракване на препратката по-долу:\n\n$3\n\n<strong>Забележка:</strong> Ако това не бъде извършено сега, генерираният конфигурационен файл няма да е достъпен на по-късен етап ако не бъде изтеглен сега или инсталацията приключи без изтеглянето му.\n\nКогато файлът вече е в основната директория, <strong>[$2 уикито ще е достъпно на този адрес]</strong>.",
"config-install-done-path": "<strong>Поздравления!</strong>\nИнсталирането на МедияУики приключи успешно.\n\nИнсталаторът създаде файл <code>LocalSettings.php</code>.\nТой съдържа всички ваши настройки.\n\nНеобходимо е той да бъде изтеглен и поставен в <code>$4</code>. Изтеглянето би трябвало да започне автоматично.\n\nАко изтеглянето не започне автоматично или е било прекратено, файлът може да бъде изтеглен чрез щракване на препратката по-долу:\n\n$3\n\n<strong>Забележка:</strong> Ако това не бъде направено сега, генерираният конфигурационен файл няма да е достъпен на по-късен етап ако не бъде изтеглен сега или инсталацията приключи без изтеглянето му.\n\nКогато файлът вече е в основната директория, <strong>[$2 уикито ще е достъпно на този адрес]</strong>.",
- "config-install-success": "МедияУики беше успешно инсталиран. Можете да посетите <$1$2> за да видите Вашето уики.\nАко имате въпроси, вижте списъка с често задавани въпроси:\n<https://www.mediawiki.org/wiki/Manual:FAQ> или използвайте някой от форумите за поддръжка на тази страница.",
+ "config-install-success": "МедияУики беше успешно инсталиран. Можете да посетите <$1$2> за да видите Вашето уики.\n\nАко имате въпроси, вижте списъка с често задавани въпроси:\n<https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ> или използвайте някой от форумите за поддръжка на тази страница.",
"config-download-localsettings": "Изтегляне на <code>LocalSettings.php</code>",
"config-help": "помощ",
"config-help-tooltip": "щракнете за разгръщане",
"config-upload-deleted": "Mappe for slettede filer:",
"config-cc-again": "Vælg igen...",
"config-extensions": "Udvidelser",
+ "config-install-step-done": "udført",
+ "config-install-step-failed": "mislykkedes",
+ "config-install-user-alreadyexists": "Brugeren \"$1\" findes allerede",
+ "config-install-user-create-failed": "Oprettelse af brugeren \"$1\" mislykkedes: $2",
+ "config-install-tables": "Opretter tabeller",
+ "config-install-mainpage-failed": "Kunne ikke indsætte forside: $1",
"config-help": "hjælp",
"config-help-tooltip": "klik for at udvide",
"config-skins-screenshots": "$1 (skærmbilleder: $2)",
"config-help": "help",
"config-help-tooltip": "click to expand",
"config-nofile": "File \"$1\" could not be found. Has it been deleted?",
- "config-extension-link": "Did you know that your wiki supports [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions]?\n\nYou can browse [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category] or the [https://www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] to see the full list of extensions.",
+ "config-extension-link": "Did you know that your wiki supports [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions]?\n\nYou can browse [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category].",
"config-skins-screenshots": "$1 (screenshots: $2)",
"config-skins-screenshot": "$1 ($2)",
"config-extensions-requires": "$1 (requires $2)",
* @codeCoverageIgnore
*/
protected function getCurrentTime() {
- return $this->wallClockOverride ?: microtime( true );
+ if ( $this->wallClockOverride ) {
+ return $this->wallClockOverride;
+ }
+
+ $clockTime = (float)time(); // call this first
+ // microtime() uses an initial gettimeofday() call added to usage clocks.
+ // This can severely drift from time() and the microtime() value of other threads
+ // due to undercounting of the amount of time elapsed. Instead of seeing the current
+ // time as being in the past, use the value of time(). This avoids setting cache values
+ // that will immediately be seen as expired and possibly cause stampedes.
+ return max( microtime( true ), $clockTime );
}
/**
try {
foreach ( $to as $recip ) {
$sent = mail(
- $recip,
+ $recip->toString(),
self::quotedPrintable( $subject ),
$body,
$headers,
'user' => $main->getUser(),
'language' => $main->getLanguage(),
];
+ if ( $main->canUseWikiPage() ) {
+ $ctx['wikipage'] = $main->getWikiPage();
+ }
// Override
$wgTitle = $title;
$main->setRequest( $ctx['request'] );
$main->setUser( $ctx['user'] );
$main->setLanguage( $ctx['language'] );
+ if ( isset( $ctx['wikipage'] ) ) {
+ $main->setWikiPage( $ctx['wikipage'] );
+ }
return $ret;
}
'Text' => [
'type' => 'textarea',
'rows' => 20,
- 'cols' => 80,
'label-message' => 'emailmessage',
'required' => true,
],
public function execute( $par ) {
$out = $this->getOutput();
+ $request = $this->getRequest();
$out->addModuleStyles( 'mediawiki.special' );
$this->mTarget = is_null( $par )
- ? $this->getRequest()->getVal( 'wpTarget', $this->getRequest()->getVal( 'target', '' ) )
+ ? $request->getVal( 'wpTarget', $request->getVal( 'target', '' ) )
: $par;
+ // Make sure, that HTMLForm uses the correct target.
+ $request->setVal( 'wpTarget', $this->mTarget );
+
// This needs to be below assignment of $this->mTarget because
// getDescription() needs it to determine the correct page title.
$this->setHeaders();
list( $title, $msg, $params ) = $error;
throw new ErrorPageError( $title, $msg, $params );
}
- // Got a valid target user name? Else ask for one.
- $ret = self::getTarget( $this->mTarget, $this->getUser() );
- if ( !$ret instanceof User ) {
- if ( $this->mTarget != '' ) {
- // Messages used here: notargettext, noemailtext, nowikiemailtext
- $ret = ( $ret == 'notarget' ) ? 'emailnotarget' : ( $ret . 'text' );
- $out->wrapWikiMsg( "<p class='error'>$1</p>", $ret );
- }
- $out->addHTML( $this->userForm( $this->mTarget ) );
-
- return;
- }
-
- $this->mTargetObj = $ret;
-
- // Set the 'relevant user' in the skin, so it displays links like Contributions,
- // User logs, UserRights, etc.
- $this->getSkin()->setRelevantUser( $this->mTargetObj );
+ // Make sure, that a submitted form isn't submitted to a subpage (which could be
+ // a non-existing username)
$context = new DerivativeContext( $this->getContext() );
$context->setTitle( $this->getPageTitle() ); // Remove subpage
- $form = new HTMLForm( $this->getFormFields(), $context );
- // By now we are supposed to be sure that $this->mTarget is a user name
- $form->addPreText( $this->msg( 'emailpagetext', $this->mTarget )->parse() );
- $form->setSubmitTextMsg( 'emailsend' );
- $form->setSubmitCallback( [ __CLASS__, 'uiSubmit' ] );
- $form->setWrapperLegendMsg( 'email-legend' );
- $form->loadData();
-
- if ( !Hooks::run( 'EmailUserForm', [ &$form ] ) ) {
- return;
- }
-
- $result = $form->show();
-
- if ( $result === true || ( $result instanceof Status && $result->isGood() ) ) {
- $out->setPageTitle( $this->msg( 'emailsent' ) );
- $out->addWikiMsg( 'emailsenttext', $this->mTarget );
- $out->returnToMain( false, $this->mTargetObj->getUserPage() );
+ $this->setContext( $context );
+
+ // A little hack: HTMLForm will check $this->mTarget only, if the form was posted, not
+ // if the user opens Special:EmailUser/Florian (e.g.). So check, if the user did that
+ // and show the "Send email to user" form directly, if so. Show the "enter username"
+ // form, otherwise.
+ $this->mTargetObj = self::getTarget( $this->mTarget );
+ if ( !$this->mTargetObj instanceof User ) {
+ $this->userForm( $this->mTarget );
+ } else {
+ $this->sendEmailForm();
}
}
* @return string Form asking for user name.
*/
protected function userForm( $name ) {
- $this->getOutput()->addModules( 'mediawiki.userSuggest' );
- $string = Html::openElement(
- 'form',
- [ 'method' => 'get', 'action' => wfScript(), 'id' => 'askusername' ]
- ) .
- Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) .
- Html::openElement( 'fieldset' ) .
- Html::rawElement( 'legend', null, $this->msg( 'emailtarget' )->parse() ) .
- Html::label(
- $this->msg( 'emailusername' )->text(),
- 'emailusertarget'
- ) . "\u{00A0}" .
- Html::input(
- 'target',
- $name,
- 'text',
- [
- 'id' => 'emailusertarget',
- 'class' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
- 'autofocus' => true,
- 'size' => 30,
- ]
- ) .
- ' ' .
- Html::submitButton( $this->msg( 'emailusernamesubmit' )->text(), [] ) .
- Html::closeElement( 'fieldset' ) .
- Html::closeElement( 'form' ) . "\n";
-
- return $string;
+ $htmlForm = HTMLForm::factory( 'ooui', [
+ 'Target' => [
+ 'type' => 'user',
+ 'exists' => true,
+ 'label' => $this->msg( 'emailusername' )->text(),
+ 'id' => 'emailusertarget',
+ 'autofocus' => true,
+ 'value' => $name,
+ ]
+ ], $this->getContext() );
+
+ $htmlForm
+ ->setMethod( 'post' )
+ ->setSubmitCallback( [ $this, 'sendEmailForm' ] )
+ ->setFormIdentifier( 'userForm' )
+ ->setSubmitProgressive()
+ ->setId( 'askusername' )
+ ->setWrapperLegendMsg( 'emailtarget' )
+ ->setSubmitTextMsg( 'emailusernamesubmit' )
+ ->show();
}
- /**
- * Submit callback for an HTMLForm object, will simply call submit().
- *
- * @since 1.20
- * @param array $data
- * @param HTMLForm $form
- * @return Status|bool
- */
- public static function uiSubmit( array $data, HTMLForm $form ) {
- return self::submit( $data, $form->getContext() );
+ public function sendEmailForm() {
+ $out = $this->getOutput();
+
+ $ret = $this->mTargetObj;
+ if ( !$ret instanceof User ) {
+ if ( $this->mTarget != '' ) {
+ // Messages used here: notargettext, noemailtext, nowikiemailtext
+ $ret = ( $ret == 'notarget' ) ? 'emailnotarget' : ( $ret . 'text' );
+ return Status::newFatal( $ret );
+ }
+ return false;
+ }
+
+ $htmlForm = HTMLForm::factory( 'ooui', $this->getFormFields(), $this->getContext() );
+ // By now we are supposed to be sure that $this->mTarget is a user name
+ $htmlForm
+ ->addPreText( $this->msg( 'emailpagetext', $this->mTarget )->parse() )
+ ->setSubmitTextMsg( 'emailsend' )
+ ->setSubmitCallback( [ __CLASS__, 'submit' ] )
+ ->setFormIdentifier( 'sendEmailForm' )
+ ->setWrapperLegendMsg( 'email-legend' )
+ ->loadData();
+
+ if ( !Hooks::run( 'EmailUserForm', [ &$htmlForm ] ) ) {
+ return false;
+ }
+
+ $result = $htmlForm->show();
+
+ if ( $result === true || ( $result instanceof Status && $result->isGood() ) ) {
+ $out->setPageTitle( $this->msg( 'emailsent' ) );
+ $out->addWikiMsg( 'emailsenttext', $this->mTarget );
+ $out->returnToMain( false, $ret->getUserPage() );
+ }
+ return true;
}
/**
public function addWatchBatchForUser( User $user, array $targets );
/**
- * Removes the an entry for the User watching the LinkTarget
+ * Removes an entry for the User watching the LinkTarget
* Must be called separately for Subject & Talk namespaces
*
* @since 1.31
"tog-watchlisthideliu": "Peusom atra geupeusaneut lé ureuëng ngui nyang tamöng nibak dapeuta keunalön",
"tog-watchlisthideanons": "Peusöm atra nyang geupeusaneut lé ureuëng ngui hana geuturi nibak dapeuta keunalön",
"tog-watchlisthidepatrolled": "Peusom neuandam teukawai bak dapeuta keunalön",
+ "tog-watchlisthidecategorization": "Peusom peukawan laman",
"tog-ccmeonemails": "Peu'ék keu lôn seunalén surat-e nyang lôn peu'ék keu ureueng la'én",
"tog-diffonly": "Bek peuleumah asoë laman di yup beunida neuandam",
"tog-showhiddencats": "Peuleumah kawan teusom",
"publishpage": "Peuteubiet mieng",
"publishchanges": "Peuteubiet neuubah",
"savechanges-start": "Keubah neuubah...",
+ "publishchanges-start": "Peuteubiet neuubah...",
"preview": "Eu dilèë",
"showpreview": "Peuleumah hasé",
"showdiff": "Peuleumah neuubah",
"rev-delundel": "peuleumah/peusom",
"rev-showdeleted": "peudeuh",
"revdelete-show-file-submit": "Nyoe",
+ "revdelete-hide-image": "Peusom asoe beureukaih",
"revdelete-hide-comment": "Mohtasa neuandam",
"revdelete-radio-same": "(bèk neugantoe)",
"revdelete-radio-set": "Teusom",
"datedefault": "Hana geunalak",
"prefs-user-pages": "Laman ureueng ngui",
"prefs-personal": "Profil ureueng ngui",
- "prefs-rc": "Ban meuubah",
+ "prefs-rc": "Neuubah barô",
"prefs-watchlist": "Dapeuta keunalön",
"prefs-watchlist-days": "Jumeulah uroe nyang meupeudeuh bak dapeuta keunalön:",
"prefs-watchlist-days-max": "{{PLURAL:$1|uroë}}",
"recentchanges-summary": "Neukalön nyang ban meuubah bak wiki lam laman nyoe.",
"recentchanges-noresult": "Hana neuubah lam lheuëng watèë nyoë nyang paih ngön syarat",
"recentchanges-feed-description": "Seutöt neuubah barô lam wiki bak umpeuën nyoë.",
- "recentchanges-label-newpage": "Hasé peusaneut nyoë jipeugöt laman barô",
- "recentchanges-label-minor": "Nyoe geupeusaneut bacut",
+ "recentchanges-label-newpage": "Geupeugöt laman barô",
+ "recentchanges-label-minor": "Geupeusaneut bacut",
"recentchanges-label-bot": "Geupeusaneut lé bot",
"recentchanges-label-unpatrolled": "Hasé peusaneut nyoe goh lom geukalon",
- "recentchanges-label-plusminus": "Seunipat laman geugantoë lé jeumeulah bita nyoë",
+ "recentchanges-label-plusminus": "Neuubah seunipat laman lam byte",
"recentchanges-legend-heading": "<strong>Hareutoë:</strong>",
"recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (eu cit [[Special:NewPages|dapeuta laman barô]])",
"rcfilters-legend-heading": "<strong>Dapeuta seuningkat:</strong>",
"rcfilters-group-results-by-page": "Peusapat hasé meunurôt laman",
"rcfilters-activefilters": "Seunaréng udép",
"rcfilters-activefilters-hide": "Peusom",
+ "rcfilters-activefilters-hide-tooltip": "Peusom teumpat saréng aktif",
"rcfilters-limit-title": "Hasé keu teupeuleumah",
"rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|neuubah}}, $2",
"rcfilters-date-popup-title": "Watèe nyang neumita",
"rcfilters-filter-pageedits-label": "Peusaneut laman",
"rcfilters-filter-newpages-label": "Peugöt laman",
"rcfilters-filter-logactions-label": "Buet teucètèt",
- "rcfilters-liveupdates-button": "Neuubah jinoe",
+ "rcfilters-liveupdates-button": "Neuubah langsông",
"rcnotefrom": "Di yup nyoe nakeuh {{PLURAL:$5|neuubah}} yôh <strong>$3, $4</strong> (trôk 'an <strong>$1</strong> geupeuleumah).",
"rclistfrom": "Peuleumah neuubah barô yôh $3 $2 kön",
"rcshowhideminor": "$1 peusaneut bacut",
"imagelinks": "Seuneungui beureukaih",
"linkstoimage": "{{PLURAL:$1|laman}} di yup nyoe mupawôt u beureukaih nyoe:",
"nolinkstoimage": "Hana laman nyang na meupawôt u beureukaih nyoe.",
+ "linkstoimage-redirect": "$1 (pinah beureukaih) $2",
"sharedupload": "Beureukah nyoë dari $1 ngön kadang geunguy lé buët-buët la’én.",
"sharedupload-desc-here": "Beureukaih nyoe nejih nibak $1 ngon kadang geunguy le proyek-proyek la'en.\nTeuneurang bak [$2 on teuneurangjih] geupeuleumah di yup nyoe.",
"filepage-nofile": "Hana beureukaih ngön nan nyoe",
"whatlinkshere-filters": "Saréng",
"blockip": "Theun ureuëng ngui",
"ipboptions": "2 jeum:2 hours,1 uroë:1 day,3 uroë:3 days,1 minggu:1 week,2 minggu:2 weeks,1 buleuën:1 month,3 buleuën:3 months,6 buleuën:6 months,1 thôn:1 year,sabé:infinite",
+ "ipbhidename": "Peusom nan ureueng ngui nibak hasé peusaneut ngön dapeuta",
"ipblocklist": "Ureuëng ngui teutheun",
"ipblocklist-submit": "Mita",
"infiniteblock": "hana bataih",
"pageinfo-header-basic": "Keutrangan peuneuphôn",
"pageinfo-header-edits": "Riwayat peusaneut",
"pageinfo-header-restrictions": "Lindông laman",
+ "pageinfo-header-properties": "Keutrangan laman",
"pageinfo-display-title": "Judul tampilan",
"pageinfo-default-sort": "Gunci urôt baku",
"pageinfo-length": "Panyang laman (lam bit)",
"pageinfo-robot-noindex": "Hana geupeuidin",
"pageinfo-watchers": "Jumeulah ureueng kalön laman",
"pageinfo-redirects-name": "Jumeulah peuninah u laman nyoe",
+ "pageinfo-subpages-name": "Jeumeulah aneuk laman nibak laman nyoe",
"pageinfo-firstuser": "Ureueng peugöt laman",
"pageinfo-firsttime": "Uroe buleuen pumeugot laman",
"pageinfo-lastuser": "Ureueng peusaneut seuneulheueh",
"pageinfo-edits": "Jumeulah hasé peusaneut ban dum",
"pageinfo-authors": "Jumeulah ban dum ureueng teumuléh nyang mubida",
"pageinfo-recent-edits": "Jumeulah peusaneut ban-ban nyoe (lam $1 nyoe)",
+ "pageinfo-hidden-categories": "{{PLURAL:$1|Kawan}} teusom ($1)",
"pageinfo-toolboxlink": "Keutrangan laman",
"pageinfo-contentpage-yes": "Nyo",
"patrol-log-page": "Log patroli",
"tags-active-no": "H`an",
"tags-hitcount": "$1 {{PLURAL:$1|neuubah}}",
"logentry-delete-delete": "$1 {{GENDER:$2|geusampôh}} laman $3",
+ "revdelete-content-hid": "asoe geusom",
"logentry-move-move": "$1 {{GENDER:$2|geupinah}} laman $3 u $4",
"logentry-move-move-noredirect": "$1 {{GENDER:$2|geupinah}} laman $3 u $4 hana geubôh peuninah",
"logentry-move-move_redir": "$1 {{GENDER:$2|geupinah}} laman $3 u $4 ateueh laman peuninah",
"prefixindex": "كل الصفحات بالبادئة",
"prefixindex-namespace": "كل الصفحات مع بادئة (نطاق $1)",
"prefixindex-submit": "اعرض",
- "prefixindex-strip": "أخÙ\81 اÙ\84بادئة Ù\85Ù\86 اÙ\84Ù\82ائÙ\85Ø©",
+ "prefixindex-strip": "إخÙ\81اء اÙ\84بادئة Ù\81Ù\8a اÙ\84Ù\86تائج",
"shortpages": "صفحات قصيرة",
"longpages": "صفحات طويلة",
"deadendpages": "صفحات نهاية مسدودة",
"img-auth-badtitle": "Немагчыма стварыць слушную назву з «$1».",
"img-auth-nologinnWL": "Вы не ўвайшлі ў сыстэму, а «$1» не знаходзіцца ў белым сьпісе.",
"img-auth-nofile": "Файл «$1» не існуе.",
- "img-auth-isdir": "Ð\92Ñ\8b Ñ\81пÑ\80абÑ\83еÑ\86е аÑ\82Ñ\80Ñ\8bмаÑ\86Ñ\8c доÑ\81Ñ\82Ñ\83п да дÑ\8bÑ\80Ñ\8dкÑ\82оÑ\80Ñ\8bÑ\96 «$1».\nДазволены толькі доступ да файлаў.",
- "img-auth-streaming": "Ð\9fеÑ\80адаÑ\87а Ñ\81Ñ\82Ñ\80Ñ\83менÑ\8f «$1».",
+ "img-auth-isdir": "Ð\92Ñ\8b Ñ\81пÑ\80абÑ\83еÑ\86е аÑ\82Ñ\80Ñ\8bмаÑ\86Ñ\8c доÑ\81Ñ\82Ñ\83п да каÑ\82алÑ\91гÑ\83 «$1».\nДазволены толькі доступ да файлаў.",
+ "img-auth-streaming": "СÑ\82Ñ\80Ñ\83меннаÑ\8f пеÑ\80адаÑ\87а «$1».",
"img-auth-public": "Функцыя img_auth.php ужываецца для файла выхаду з прыватнай вікі.\nГэта вікі ўсталявана як публічная вікі.\nДля найлепшай бясьпекі img_auth.php выключана.",
"img-auth-noread": "Удзельнік ня мае доступу на чытаньне «$1».",
"http-invalid-url": "Няслушны URL-адрас: $1",
"ip_range_toolarge": "Забранено е блокиране на диапазони от IP адреси по-големи от /$1.",
"ip_range_exceeded": "IP диапазонът превишава максималния диапазон. Позволен диапазон: /$1.",
"proxyblocker": "Блокировач на проксита",
- "proxyblockreason": "IP-адÑ\80еÑ\81Ñ\8aÑ\82 ви беÑ\88е блокиÑ\80ан, Ñ\82Ñ\8aй каÑ\82о е анонимно доÑ\81Ñ\82Ñ\8aпен междинен Ñ\81Ñ\8aÑ\80вÑ\8aÑ\80. СвÑ\8aÑ\80жеÑ\82е Ñ\81е Ñ\81 доÑ\81Ñ\82авÑ\87ика ви на интернет и го информирайте за този сериозен проблем в сигурността.",
+ "proxyblockreason": "IP-адÑ\80еÑ\81Ñ\8aÑ\82 Ð\92и беÑ\88е блокиÑ\80ан, Ñ\82Ñ\8aй каÑ\82о е анонимно доÑ\81Ñ\82Ñ\8aпен междинен Ñ\81Ñ\8aÑ\80вÑ\8aÑ\80. СвÑ\8aÑ\80жеÑ\82е Ñ\81е Ñ\81 доÑ\81Ñ\82авÑ\87ика Ñ\81и на Ð\98нтернет и го информирайте за този сериозен проблем в сигурността.",
"sorbs": "DNSBL",
- "sorbsreason": "IP-адÑ\80еÑ\81Ñ\8aÑ\82 ви е записан като анонимно достъпен междинен сървър в DNSBL на {{SITENAME}}.",
- "sorbs_create_account_reason": "IP-адÑ\80еÑ\81Ñ\8aÑ\82 ви е запиÑ\81ан каÑ\82о анонимно доÑ\81Ñ\82Ñ\8aпен междинен Ñ\81Ñ\8aÑ\80вÑ\8aÑ\80 в DNSBL на {{SITENAME}}. Не може да създадете сметка.",
+ "sorbsreason": "IP-адÑ\80еÑ\81Ñ\8aÑ\82 Ð\92и е записан като анонимно достъпен междинен сървър в DNSBL на {{SITENAME}}.",
+ "sorbs_create_account_reason": "IP-адÑ\80еÑ\81Ñ\8aÑ\82 Ð\92и е запиÑ\81ан каÑ\82о анонимно доÑ\81Ñ\82Ñ\8aпен междинен Ñ\81Ñ\8aÑ\80вÑ\8aÑ\80 в DNSBL на {{SITENAME}}.\nНе може да създадете сметка.",
"cant-see-hidden-user": "Потребителят, който опитвате да блокирате, вече е блокиран и скрит. Тъй като нямате права да скривате потребители, не можете да видите или редактирате блокирането на потребителя.",
- "ipbblocked": "Ð\9dе можеÑ\82е да блокиÑ\80аÑ\82е и Ñ\80азблокиÑ\80аÑ\82е дÑ\80Ñ\83ги поÑ\82Ñ\80ебиÑ\82ели, заÑ\89оÑ\82о вие самият (самата) сте блокиран(а).",
+ "ipbblocked": "Ð\9dе можеÑ\82е да блокиÑ\80аÑ\82е и Ñ\80азблокиÑ\80аÑ\82е дÑ\80Ñ\83ги поÑ\82Ñ\80ебиÑ\82ели, заÑ\89оÑ\82о Ð\92ие самият (самата) сте блокиран(а).",
"ipbnounblockself": "Нямате право да се разблокирате сам(а).",
"lockdb": "Заключване на базата от данни",
"unlockdb": "Отключване на базата от данни",
- "lockdbtext": "Заключването на базата от данни ще попречи на всички потребители да редактират страници, да сменят своите настройки, да редактират своите списъци за наблюдение и на всички други техни действия, изискващи промени в базата данни.\nПотвърдете, че искате точно това и ще отключите базата от данни, когато привършите с работата по подръжката.",
+ "lockdbtext": "Заключването на базата от данни ще попречи на всички потребители да редактират страници, да сменят своите настройки, да редактират своите списъци за наблюдение и на всички други техни действия, изискващи промени в базата данни.\nПотвърдете, че искате точно това и ще отключите базата от данни, когато привършите с работата по поддръжката.",
"unlockdbtext": "Отключването на базата от данни ще възстанови способността на потребителите да редактират страници, да сменят своите настройки, да редактират своите списъци за наблюдение и изпълнението на всички други действия, изискващи промени в базата от данни.\nПотвърдете, че искате точно това.",
"lockconfirm": "Да, наистина искам да заключа базата от данни.",
"unlockconfirm": "Да, наистина искам да отключа базата от данни.",
"movecategorypage-warning": "<strong>Внимание:</strong> На път сте да преместите категорийна страница. Моля, обърнете внимание, че ще бъде преместена само страницата на категорията. <em>Никоя</em> от страниците в старата категория <em>няма</em> да бъде прекатегоризирана.",
"movenologintext": "Необходимо е да [[Special:UserLogin|влезете]], за да може да премествате страници.",
"movenotallowed": "Нямате права за преместване на страници.",
- "movenotallowedfile": "Ð\9dÑ\8fмаÑ\82е пÑ\80ава да пÑ\80емеÑ\81Ñ\82ваÑ\82е файлове.",
- "cant-move-user-page": "Ð\9dÑ\8fмаÑ\82е нÑ\83жниÑ\82е пÑ\80ава на достъп, за да местите потребителски страници (можете да местите само подстраници).",
+ "movenotallowedfile": "Ð\9dÑ\8fмаÑ\82е пÑ\80ава за пÑ\80емеÑ\81Ñ\82ване на файлове.",
+ "cant-move-user-page": "Ð\9dÑ\8fмаÑ\82е нÑ\83жниÑ\82е пÑ\80ава за достъп, за да местите потребителски страници (можете да местите само подстраници).",
"cant-move-to-user-page": "Нямате нужните права на достъп, за да извършвате преместване на страници върху потребителски страници (можете да местите само върху подстраници от потребителското пространство).",
"cant-move-category-page": "Нямате необходимите права за преместване на страници на категории.",
"cant-move-to-category-page": "Нямате необходимите права за преместване на страница в страница на категория.",
"cant-move-subpages": "Нямате права за преместване на подстраници.",
"namespace-nosubpages": "Именно пространство „$1“ не позволява подстраници.",
"newtitle": "Ново заглавие:",
- "move-watch": "Наблюдаване на страницата",
+ "move-watch": "Наблюдаване на изходната и целевата страници",
"movepagebtn": "Преместване",
"pagemovedsub": "Преместването беше успешно",
"movepage-moved": "<strong>Страницата „$1“ беше преместена под името „$2“</strong>",
"passwordreset-emailelement": "Brugernavn: \n$1\n\nMidlertidig adgangskode: \n$2",
"passwordreset-emailsentemail": "Hvis denne e-mailadresse er knyttet til din konto, så vil en e-mail om nulstilling af adgangskoden blive sendt.",
"passwordreset-emailsentusername": "Hvis der er en e-mailadresse forbundet med dette brugernavn, så vil en e-mail om nulstilling af adgangskoden blive sendt.",
+ "passwordreset-nocaller": "En kalder skal angives",
+ "passwordreset-nosuchcaller": "Kalderen findes ikke: $1",
"passwordreset-invalidemail": "Ugyldig e-mailadresse",
"passwordreset-nodata": "Hverken et brugernavn eller en e-mailadresse blev angivet",
"changeemail": "Ændr eller fjern e-mailadresse",
"passwordpolicies-policy-passwordcannotmatchblacklist": "Password cannot match specifically blacklisted passwords",
"passwordpolicies-policy-maximalpasswordlength": "Password must be less than $1 {{PLURAL:$1|character|characters}} long",
"passwordpolicies-policy-passwordcannotbepopular": "Password cannot be {{PLURAL:$1|the popular password|in the list of $1 popular passwords}}",
- "easydeflate-invaliddeflate": "Content provided is not properly deflated"
+ "easydeflate-invaliddeflate": "Content provided is not properly deflated",
+ "unprotected-js": "For security reasons JavaScript cannot be loaded from unprotected pages. Please only create javascript in the MediaWiki: namespace or as a User subpage"
}
"tooltip-pt-mycontris": "Una lista de {{GENDER:|sus}} contribuciones",
"tooltip-pt-login": "Le invitamos a que se registre, aunque no es obligatorio",
"tooltip-pt-createaccount": "Le invitamos a que cree una cuenta de usuario e inicie sesión, aunque ello no es obligatorio.",
- "tooltip-ca-talk": "Discusión acerca del artículo",
+ "tooltip-ca-talk": "Discusión acerca de la página de contenido",
"tooltip-ca-edit": "Editar esta página",
"tooltip-ca-history": "Versiones anteriores de esta página y sus autores",
"tooltip-ca-watch": "Añadir esta página a tu lista de seguimiento",
"tooltip-pt-login-private": "Es necesario acceder a una cuenta para utilizar este wiki",
"tooltip-pt-logout": "Salir de la sesión",
"tooltip-pt-createaccount": "Te recomendamos crear una cuenta e iniciar sesión; sin embargo, no es obligatorio",
- "tooltip-ca-talk": "Discusión acerca de la página de contenido",
+ "tooltip-ca-talk": "Discusión acerca de la página",
"tooltip-ca-edit": "Editar esta página",
"tooltip-ca-addsection": "Iniciar una sección nueva",
"tooltip-ca-viewsource": "Esta página está protegida.\nPuedes ver su código fuente",
"pageinfo-recent-authors": "تعداد نویسندگان یکتای اخیر",
"pageinfo-magic-words": "{{PLURAL:$1|حرف|حروف}} جادویی ($1)",
"pageinfo-hidden-categories": "{{PLURAL:$1| ردهٔ|ردهٔ}} پنهان ( $1 )",
- "pageinfo-templates": "{{PLURAL:$1|الگو|الگو}} استفادهشده ($1)",
+ "pageinfo-templates": "{{PLURAL:$1|الگوهای|الگوهای}} استفادهشده ($1)",
"pageinfo-transclusions": "{{PLURAL:$1|صفحهٔ|صفحههای}} تراگنجانششده در ($1)",
"pageinfo-toolboxlink": "اطلاعات صفحه",
"pageinfo-redirectsto": "تغییرمسیر به",
"prefixindex": "Toutes les pages commençant par…",
"prefixindex-namespace": "Toutes les pages avec préfixe (espace de noms $1)",
"prefixindex-submit": "Lister",
- "prefixindex-strip": "Enlever le préfixe dans la liste",
+ "prefixindex-strip": "Masquer le préfixe dans les résultats",
"shortpages": "Pages courtes",
"longpages": "Pages longues",
"deadendpages": "Pages en impasse",
"nosuchusershort": "\"$1\" hea nanvan konn vapurpi na.\nNanv boroitana chuk zali gai?",
"nouserspecified": "Vapurpeachem nanv diunk-uch zai.",
"login-userblocked": "Hea vapurpeak addaila. Sotrorombh korunk zaina.",
- "wrongpassword": "Chukichem gupitutor ghatlam.\nUpkar korun portun proyotn kor.",
+ "wrongpassword": "Chukichem vaporpeachem nanv vo gupitutor ghatlam.\nUpkar korun portun proyotn kor.",
"wrongpasswordempty": "Gupitutor ghalunk na.\nUpkar korun portun proyotn kor.",
"passwordtoolong": "Gupitutor {{PLURAL:$1|1 vornn|$1 vornnam}} proros vhodlem asunk zaina.",
"password-name-match": "Tujem gupitutor vapurpeachea nanva poros vegllem asunk zai.",
"showpreview": "Zholok dakhoi",
"showdiff": "Bodolpam dakhoi",
"anoneditwarning": "<strong>Chotrai:</strong> Tuven sotrorombh korunk nai. Tu bodlopam korit zalear tuzo internet potto soglleank polleunk zatelem. Tu <strong>[$1 sotrorombh korit]</strong> vo <strong>[$2 kont rochit]</strong> zalear, tujeo bodlopam tuzo vagddiachem nanvak zoddteleo ani anik-ui faide asat.",
- "missingcommenttext": "Upkar korun tumcheo xiro sokoil boroi.",
+ "missingcommenttext": "Upkar korun tumcheo xiro boroi.",
"blockedtitle": "Vapurpeak addaila",
"blockednoreason": "Kainch karonn diunk na",
"loginreqtitle": "Sotrorombh gorjechem",
"filehist-dimensions": "Akar",
"filehist-comment": "vivek",
"imagelinks": "Failicho vapor",
- "linkstoimage": "{{PLURAL:$1|Hem pan|$1 Him panam}} hea failik {{PLURAL:$1|zoddtta|zoddttat}}",
- "nolinkstoimage": "Hea failik zoddpi panam nant",
+ "linkstoimage": "{{PLURAL:$1|Hem pan|$1 Him panam}} hi fayl {{PLURAL:$1|vaporta|vaportat}}:",
+ "nolinkstoimage": "Hea faylik vaportat toslim panam nant",
"sharedupload-desc-here": "Hi fail $1, hachi ani dusrea prokolpanim haka uzar korunk zata.\nHachem [$2 failichem vivron panan] asleli vivron khala dilea:",
"upload-disallowed-here": "Tu hea faili voir borounk xokonai",
"filedelete-otherreason": "Dusrem/aniki karon:",
"watch": "Nodor dovor",
"watchthispage": "Hea panar dixtt dovor",
"unwatch": "Nodor kadd",
- "watchlist-details": "Tujea sadurvollerint {{PLURAL:$1|$1 pan asa|$1 panam asat}}, ulovpachim panam veglim mezonastanam.",
+ "watchlist-details": "Tujea Sadurvollerint {{PLURAL:$1|$1 pan asa|$1 panam asat}} (te-bhair ulovpachim panam asat).",
"wlheader-showupdated": "Tujea fatle bhette san bodol'lean tim panam '''datt''' dakhoileant.",
"wlshowlast": "Xevottchim $1 voram $2 dis dakhoi",
"watchlist-options": "Sadurvollericheo poryay",
"prefixindex": "כל הדפים עם התחילית",
"prefixindex-namespace": "כל הדפים עם התחילית (במרחב השם \"$1\")",
"prefixindex-submit": "הצגה",
- "prefixindex-strip": "×\94סתרת ×\94ת×\97×\99×\9c×\99ת ×\91רש×\99×\9e×\94",
+ "prefixindex-strip": "×\94סתרת ×\94ת×\97×\99×\9c×\99ת ×\91ת×\95צ×\90×\95ת",
"shortpages": "דפים קצרים",
"longpages": "דפים ארוכים",
"deadendpages": "דפים ללא קישורים",
"group-autoconfirmed": "Uzeri automatale konfirmita",
"group-bot": "Roboti",
"group-sysop": "Administreri",
+ "group-interface-admin": "Administreri dil interkonekto (interface)",
"group-bureaucrat": "Burokrati",
"group-suppress": "Efaceri",
"group-all": "(omna)",
"prefixindex": "Indice delle pagine per lettere iniziali",
"prefixindex-namespace": "Tutte le pagine con il prefisso del namespace $1",
"prefixindex-submit": "Mostra",
- "prefixindex-strip": "Nascondi prefisso nell'elenco",
+ "prefixindex-strip": "Nascondi il prefisso nei risultati",
"shortpages": "Pagine più corte",
"longpages": "Pagine più lunghe",
"deadendpages": "Pagine senza uscita",
"prefixindex": "접두어에 따른 문서 목록",
"prefixindex-namespace": "접두어가 있는 모든 문서 ($1 이름공간)",
"prefixindex-submit": "보이기",
- "prefixindex-strip": "목록에서 접두어 생략",
+ "prefixindex-strip": "결과에서 접두어 숨기기",
"shortpages": "내용이 적은 문서 목록",
"longpages": "내용이 많은 문서 목록",
"deadendpages": "막다른 문서 목록",
"nospecialpagetext": "<strong>Paginam specialem invalidam petivisti.</strong>\n\nPro indice paginarum specialum validarum, vide [[Special:SpecialPages|{{int:specialpages}}]].",
"error": "Erratum",
"databaseerror": "Erratum in basi datorum",
- "databaseerror-error": "Erraum: $1",
+ "databaseerror-error": "Erratum: $1",
"readonly": "Basis datorum obstructa",
"missingarticle-rev": "(ID numerus redactionis: $1)",
"missingarticle-diff": "(Diss: $1, $2)",
"pager-newer-n": "{{PLURAL:$1|recentiorem 1|recentiores $1}}",
"pager-older-n": "{{PLURAL:$1|superiorem 1|superiores $1}}",
"suppress": "Censura",
- "apisandbox-examples": "Exempli",
+ "apisandbox-examples": "Exempla",
"booksources": "Librorum fontes",
"booksources-search-legend": "Fontes impressas quaerere",
"booksources-search": "Quaerere",
"prefixindex": "Сите страници (со претставка)",
"prefixindex-namespace": "Сите страници со претставка (именски простор „$1“)",
"prefixindex-submit": "Прикажи",
- "prefixindex-strip": "Отстрани ја претставката во списокот",
+ "prefixindex-strip": "Отстрани ја претставката во исходот",
"shortpages": "Кратки страници",
"longpages": "Долги страници",
"deadendpages": "Слепи страници",
"autoblockedtext": "तुमचा आंतरजालीय अंकपत्ता आपोआप स्थगित केला आहे कारण तो इतर अशा सदस्याने वापरला, ज्याला $1ने प्रतिबंधित केले.\nआणि दिलेले कारण खालील प्रमाणे आहे\n::<em>$2</em>\nब्लॉकची सुरूवात: $8\nब्लॉकचा शेवट: $6\nकुणाला ब्लॉक करायचे आहे: $7\n\nतुम्ही $1शी संपर्क करू शकता किंवा इतर [[{{MediaWiki:Grouppage-sysop}}|प्रबंधकां पैकी]] एकाशी स्थगनाबद्दल चर्चा करू शकता.\n\n[[Special:Preferences|सदस्य पसंतीत]]त शाबीत विपत्र पत्ता नमूद असल्या शिवाय आणि तुम्हाला तो वापरण्या पासून प्रतिबंधित केले असल्यास तुम्ही \"{{int:emailuser}}\" सुविधा वापरू शकणार नाही.\nतुमचा सध्याचा अंकपत्ता $3 हा आहे, व तुमचा ब्लॉक क्रमांक #$5 हा आहे. \nतुमचा स्थगन क्र $5 आहे. कृपया या संदर्भातील चर्चेमध्ये वरील सर्व तपशिल उद्घृत करा.",
"blockednoreason": "कारण दिलेले नाही",
"whitelistedittext": "लेखांचे संपादन करण्यासाठी आधी $1 करा.",
- "confirmedittext": "तुम्ही संपादने करण्यापूर्वी तुमचा विपत्र पत्ता प्रमाणित करणे आवश्यक आहे.Please set and validate तुमचा विपत्र पत्ता तुमच्या [[Special:Preferences|सदस्य पसंती]]तून लिहा व सिद्ध करा.",
+ "confirmedittext": "तुम्ही संपादने करण्यापूर्वी तुमचा विपत्र पत्ता प्रमाणित करणे आवश्यक आहे. तुमचा विपत्र पत्ता तुमच्या [[Special:Preferences|सदस्य पसंती]]तून लिहा व सिद्ध करा.",
"nosuchsectiontitle": "असा विभाग नाही.",
"nosuchsectiontext": "तुम्ही अस्तिवात नसलेला विभाग संपादन करण्याचा प्रयत्न केला आहे.हे पान आपण बघत असतांना तो हलविल्या किंवा वगळल्या गेला आहे.",
"loginreqtitle": "सनोंद-प्रवेश आवश्यक आहे",
"expand_templates_remove_nowiki": "निकालात <nowiki>खूणपतका दाखवू नका",
"expand_templates_generate_xml": "XML चा पार्स (parse) वृक्ष दाखवा",
"expand_templates_preview": "झलक",
- "expand_templates_input_missing": "आपण काहीतरी आंतरदेय मजकूर पुरवावयास हवा.",
+ "expand_templates_input_missing": "à¤\86पण à¤\95ाहà¥\80तरà¥\80 à¤\86à¤\82तरदà¥\87य विà¤\95िमà¤\9cà¤\95à¥\82र पà¥\81रवावयास हवा.",
"pagelang-name": "पान",
"pagelang-language": "भाषा",
"pagelang-use-default": "अविचल भाषा वापरा",
"log-action-filter-all": "सर्व",
"log-action-filter-move-move": "उपरीलेखन (ओव्हररायटिंग) न-करता केलेली स्थानांतरणे",
"log-action-filter-move-move_redir": "उपरीलेखनासह (ओव्हररायटिंग) असलेली स्थानांतरणे",
+ "log-action-filter-newusers-create": "अनामिक सदस्याद्वारे निर्मित",
+ "log-action-filter-newusers-create2": "नोंदणीकृत सदस्याद्वारे निर्मित",
+ "log-action-filter-newusers-autocreate": "स्वयंचलित निर्माण",
+ "log-action-filter-newusers-byemail": "विपत्राद्वारे पाठविलेल्या परवलीच्या शब्दाद्वारे निर्मित",
+ "log-action-filter-patrol-patrol": "मानवी गस्त",
+ "log-action-filter-patrol-autopatrol": "स्वयंचलित गस्त",
+ "log-action-filter-protect-protect": "संरक्षण",
+ "log-action-filter-protect-modify": "संरक्षण परिवर्तन",
+ "log-action-filter-protect-unprotect": "असुरक्षित",
+ "log-action-filter-protect-move_prot": "संरक्षण स्थानांतरीत केले",
"log-action-filter-rights-rights": "मानवी बदल",
+ "log-action-filter-rights-autopromote": "स्वयंचलित बदल",
+ "log-action-filter-suppress-event": "नोंदी दडपणे",
+ "log-action-filter-suppress-revision": "आवृत्ती दडपणे",
+ "log-action-filter-suppress-delete": "पान दडपणे",
"log-action-filter-suppress-block": "रोधामार्फत सदस्य दाबणे",
"changecredentials": "अधिकारपत्रे (क्रेडेंटियल्स) बदला",
+ "changecredentials-submit": "अधिकारपत्रे (क्रेडेंटियल्स) बदला",
"removecredentials": "अधिकारपत्रे (क्रेडेंटियल्स) हटवा",
+ "removecredentials-submit": "अधिकारपत्रे (क्रेडेंटियल्स) हटवा",
"edit-error-short": "त्रुटी: $1",
"edit-error-long": "त्रुटी:$1",
"passwordpolicies": "परवलीच्या शब्दांची नीती",
"passwordpolicies-summary": "ही, या विकिवरील व्याख्यिकृत सदस्य गटांसाठी असलेली व सध्या प्रभावात असलेल्या परवलीच्या शब्दांच्या नीतींची यादी आहे.",
"passwordpolicies-group": "गट",
"passwordpolicies-policies": "नीती",
+ "passwordpolicies-policy-minimalpasswordlength": "परवलीचा शब्द हा किमान $1 {{PLURAL:$1|अक्षरापेक्षा|अक्षरांपेक्षा}} जास्त लांबीचा हवा",
"passwordpolicies-policy-minimumpasswordlengthtologin": "सनोंद-प्रवेशास,परवलीचा शब्द हा किमान $1 {{PLURAL:$1|अक्षर}} लांबीचा असावयास हवा",
"passwordpolicies-policy-passwordcannotmatchusername": "परवलीचा शब्द हा सदस्यनाव असू शकत नाही",
- "passwordpolicies-policy-maximalpasswordlength": "परवलीचा शब्द हा $1 {{PLURAL:$1|अक्षरापेक्षा|अक्षरांपेक्षा}} कमी लांबीचा हवा"
+ "passwordpolicies-policy-passwordcannotmatchblacklist": "परवलीच्या शब्दाचे,विशिष्ट काळ्या यादीत टाकलेल्या परवलीच्या शब्दाशी अनुरूपन (मॅच) असू शकत नाही.",
+ "passwordpolicies-policy-maximalpasswordlength": "परवलीचा शब्द हा $1 {{PLURAL:$1|अक्षरापेक्षा|अक्षरांपेक्षा}} कमी लांबीचा हवा",
+ "passwordpolicies-policy-passwordcannotbepopular": "परवलीचा शब्द हा {{PLURAL:$1|the popular password|$1 प्रसिद्ध शब्दांच्या यादीतील असू शकत नाही}}"
}
"Optilete",
"Goefie",
"AHmed Khaled",
- "Jeroen N"
+ "Jeroen N",
+ "Bdijkstra"
]
},
"tog-underline": "Verwijzingen onderstrepen:",
"confirm-mcrundo-title": "Een wijziging ongedaan maken",
"mcrundofailed": "Ongedaan maken mislukt",
"mcrundo-missingparam": "Er ontbreken nodige parameters in het verzoek.",
+ "mcrundo-changed": "De pagina is gewijzigd sinds u de veranderingen hebt bekeken. Beoordeel alstublieft de nieuwe wijziging.",
"mcrundo-parse-failed": "Kon de nieuwe versie niet verwerken: $1",
"quotation-marks": "\"$1\"",
"imgmultipageprev": "← vorige pagina",
"enhancedrc-history": "awaran",
"recentchanges": "Sampot ran dinuma",
"recentchanges-summary": "Tontonen so sankasampotan ran binalo ed ayan wiki diad panamegley to yan bolong.",
+ "recentchanges-feed-description": "Tontonen so sankasampotan ran binalo ed ayan wiki diad panamegley to yan feed.",
"recentchanges-label-minor": "Melag yan dinuma",
"recentchanges-submit": "Ipanengneng",
"rcfilters-activefilters-hide": "Iyamot",
"anoncontribs": "Saray entolong",
"year": "Taon:",
"sp-contributions-newbies-sub": "Para balo ran account",
+ "sp-contributions-blocklog": "log na aper",
"sp-contributions-talk": "tongtongan",
"sp-contributions-submit": "Anapen",
"whatlinkshere": "Antoray akaturo dia",
"ipbreason": "Katonongan",
"ipbsubmit": "Isebel ed sayan manag-usar",
"badipaddress": "Aga nayarin IP address",
+ "unblockip": "Ekalen so aper para ed manguusar",
"ipusubmit": "Aga la isebel so ayan address",
+ "unblocked": "Inekal so aper para ed [[User:$1|$1]].",
"autoblocklist-submit": "Anapen",
"ipblocklist": "Listaan na saray sebel ran IP address san username",
"blocklist-reason": "Katonongan",
"ipblocklist-submit": "Anapen",
"expiringblock": "nabalang no $1 $2",
"blocklink": "aperen",
+ "unblocklink": "ekalen so aper",
"contribslink": "saray entolong to",
+ "unblocklogentry": "nakal so aper na $1",
"block-log-flags-noemail": "inaper so e-mail",
"block-log-flags-nousertalk": "aga naduma so sarilin bolong para tongtongan",
"move-page-legend": "Iyales so bolong",
"passwordpolicies-policy-passwordcannotmatchblacklist": "Password policy that enforces that passwords are not on a list of blacklisted passwords (often previously used during MediaWiki automated testing)",
"passwordpolicies-policy-maximalpasswordlength": "Password policy that enforces a maximum number of characters a password must be. $1 - maximum number of characters that a password can be",
"passwordpolicies-policy-passwordcannotbepopular": "Password policy that enforces that a password is not in a list of $1 number of \"popular\" passwords. $1 - number of popular passwords the password will be checked against",
- "easydeflate-invaliddeflate": "Error message if the content passed to easydeflate was not deflated (compressed) properly"
+ "easydeflate-invaliddeflate": "Error message if the content passed to easydeflate was not deflated (compressed) properly",
+ "unprotected-js": "Error message shown when trying to load javascript via action=raw that is not protected"
}
"prefixindex": "Tutte le pàggene cu 'u prefisse",
"prefixindex-namespace": "Tutte le pàggene cu 'u prefisse ($1 namespace)",
"prefixindex-submit": "Fà 'ndrucà",
- "prefixindex-strip": "Strisce d'u prefisse jndr'à l'elenghe",
+ "prefixindex-strip": "Scunne 'u prefisse jndr'à le resultate",
"shortpages": "Pàggene corte",
"longpages": "Pàggene longhe",
"deadendpages": "Pàggene senza collegamende",
"tog-prefershttps": "ၽွင်းၶဝ်ႈၸႂ်ႉတိုဝ်းၼၼ်ႉ ၸႂ်ႉတိုဝ်းၶွၼ်ႇၼႅၵ်ႉသျိၼ်ႇ ဢၼ်ႁူမ်ႇလူမ်ႈ",
"underline-always": "ၵူႊယၢမ်း",
"underline-never": "ဢမ်ႇႁဵတ်းသေပွၵ်ႈ",
- "underline-default": "á\80\95á\80á\80°á\80\84á\80ºá\81µá\82\85á\80\9dá\80ºá\82\88á\81¾á\81¢á\80\84á\80ºá\82\81á\81¢á\80\84á\80ºá\82\8aတၢင်းၼွၵ်ႈ ဢမ်ႇၼၼ် ပြၢဝ်းသိူဝ်ႇ",
+ "underline-default": "á\80\95á\80á\80°á\80\84á\80ºá\81µá\82\85á\80\9dá\80ºá\82\88á\81¾á\81¢á\80\84á\80ºá\82\81á\81¢á\80\84á\80ºá\82\88တၢင်းၼွၵ်ႈ ဢမ်ႇၼၼ် ပြၢဝ်းသိူဝ်ႇ",
"editfont-style": "ဢွင်ႈတီႈဢၼ်ထတ်းမႄး ဝႅပ်ႇယၢင်ႇၾွၼ်ႉ",
"editfont-monospace": "ၾွၼ်ႉ မူဝ်ႇၼူဝ်သပဵတ်ႉ",
"editfont-sansserif": "ၾွၼ်ႉ San-serif",
"speciallogtitlelabel": "တီႈယိူင်း (ႁူဝ်ၶေႃႈ ဢမ်ႇၼၼ် {{ns:user}}: ၸိုဝ်ႈၽူႈၸႂ်ႉတိုဝ်း တႃႇ ၽူႈၸႂ်ႉတိုဝ်း):",
"log": "သၢႆမၢႆ",
"logeventslist-submit": "ၼႄ",
+ "logeventslist-more-filters": "ၼႄပၼ်သဵၼ်ႈသၢႆမၢႆတၢင်ႇၸိူဝ်း",
"all-logs-page": "သဵၼ်ႈမၢႆၵူၼ်းတင်းၼမ် တင်းမူတ်း",
"alllogstext": "ႁူမ်ႈၵၼ်ၼႄဝႆႉပၼ် သဵၼ်ႈမၢႆတွင်း ၶွင် {{SITENAME}} ဢၼ်ၸၢင်ႈဢဝ်လႆႈၼၼ်ႉ။\nၸဝ်ႈၵဝ်ႇ ၸၢင်ႈ လိူၵ်ႈ ပိူင်ထၢၼ်ႈသဵၼ်ႈမၢႆတွင်း၊ ၽူႈၸႂ်ႉတိုဝ်း(ၼင်ႇတူဝ်လိၵ်ႈလဵၵ်ႉယႂ်ႇ)၊ ဢမ်ႇၼၼ် ၼႃႈလိၵ်ႈဢၼ်ၵပ်းၵၢႆႇ (ၼင်ႇတူဝ်လိၵ်ႈလဵၵ်ႉယႂ်ႇ) သေၵေႃႈ တူၺ်းလႆႈယူႇ။",
"logempty": "ဢမ်ႇငမ်ႇၵၼ်တင်း တီႈၼႂ်းသဵၼ်ႈမၢႆ",
"uctop": "(ယၢမ်းလဵဝ်)",
"month": "တႄႇဢဝ်လိူၼ် (လႄႈ ဢၼ်ပူၼ်ႉမႃး):",
"year": "တႄႇဢဝ်ပီ (လႄႈ ဢၼ်ပူၼ်ႉမႃး):",
+ "date": "ၸႄႇဢဝ်ဝၼ်းထီႉ (လႄႈ ၸဝ်ႉသေၼၼ်ႉ):",
"sp-contributions-newbies": "ၼႄပၼ်လွင်ႈၶဝ်ႈႁူမ်ႈ ၶွင် ဢၶွင်ႉဢၼ်မႂ်ႇလၢႆလၢႆၵူၺ်းလႄႈ",
"sp-contributions-newbies-sub": "တွၼ်ႈတႃႇဢၶွင်ႉ ဢၼ်မႂ်ႇ",
"sp-contributions-blocklog": "မၢႆတမ်းၵၢၼ်ႁေႉတတ်း",
"externaldberror": "Дошло је до грешке при потврди идентитета базе података или вам није дозвољено да ажурирате свој спољни налог.",
"login": "Пријава",
"login-security": "Потврда вашег индентитета",
- "nav-login-createaccount": "Ð\9fÑ\80иÑ\98ава / Ñ\80егиÑ\81Ñ\82Ñ\80аÑ\86иÑ\98а",
+ "nav-login-createaccount": "Ð\9fÑ\80иÑ\98авиÑ\82е Ñ\81е / оÑ\82воÑ\80иÑ\82е налог",
"logout": "Одјава",
"userlogout": "Одјава",
"notloggedin": "Нисте пријављени",
"loginlanguagelabel": "Језик: $1",
"suspicious-userlogout": "Ваш захтев за одјаву је одбијен јер изгледа да га је послао покварени прегледач или кеширани прокси.",
"createacct-another-realname-tip": "Право име је опционално.\nАко одаберете да га наведете, биће коришћено за приписивање вашег рада.",
- "pt-login": "Ð\9fÑ\80иÑ\98ава",
+ "pt-login": "Ð\9fÑ\80иÑ\98авиÑ\82е Ñ\81е",
"pt-login-button": "Пријави ме",
"pt-login-continue-button": "Настави пријављивање",
- "pt-createaccount": "Ð\9eÑ\82ваÑ\80аÑ\9aе налога",
+ "pt-createaccount": "Ð\9eÑ\82воÑ\80иÑ\82е налог",
"pt-userlogout": "Одјави ме",
"php-mail-error-unknown": "Непозната грешка у функцији PHP mail().",
"user-mail-no-addy": "Покушали сте да пошаљете имејл без имејл-адресе.",
"namespace_association": "Повезани именски простор",
"tooltip-namespace_association": "Означите ову кутијицу да бисте укључили и разговор или именски простор теме која је повезана са изабраним именским простором",
"blanknamespace": "(главни)",
- "contributions": "Доприноси {{GENDER:$1|корисника|кориснице}}",
+ "contributions": "{{GENDER:$1|Доприноси корисника|Доприноси кориснице|Кориснички доприноси}}",
"contributions-title": "Доприноси {{GENDER:$1|корисника|кориснице}} $1",
"mycontris": "Доприноси",
"anoncontribs": "Доприноси",
"tooltip-pt-userpage": "{{GENDER:|Ваша}} корисничка страница",
"tooltip-pt-anonuserpage": "Корисничка страница за IP адресу с које уређујете",
"tooltip-pt-mytalk": "{{GENDER:|Ваша}} страница за разговор",
- "tooltip-pt-anontalk": "Дискусија о уређивањима са ове IP адресе",
+ "tooltip-pt-anontalk": "Дискусија о изменама са ове IP адресе",
"tooltip-pt-preferences": "{{GENDER:|Ваша}} подешавања",
"tooltip-pt-watchlist": "Списак страница које надгледате",
"tooltip-pt-mycontris": "Списак {{GENDER:|ваших}} доприноса",
"prefixindex": "Усі сторінки, що починаються з",
"prefixindex-namespace": "Усі сторінки з префіксом (простір назв $1)",
"prefixindex-submit": "Показати",
- "prefixindex-strip": "Ð\9eпÑ\83Ñ\81Ñ\82иÑ\82и пÑ\80еÑ\84Ñ\96кÑ\81 Ñ\83 Ñ\81пиÑ\81кÑ\83",
+ "prefixindex-strip": "Ð\9eпÑ\83Ñ\81Ñ\82иÑ\82и пÑ\80еÑ\84Ñ\96кÑ\81 Ñ\83 Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82аÑ\85",
"shortpages": "Короткі статті",
"longpages": "Довгі статті",
"deadendpages": "Сторінки без посилань",
"pageinfo-category-files": "فائلوں کی تعداد",
"pageinfo-user-id": "صارف آئی ڈی",
"pageinfo-file-hash": "ہیش قدر",
+ "pageinfo-view-protect-log": "اس صفحہ کے لیے نوشتہ محفوظ شدگی دیکھیے۔",
"markaspatrolleddiff": "بطور مراجعت شدہ نشان زد کریں",
"markaspatrolledtext": "اس صفحہ کو بطور مراجعت شدہ نشان زد کریں",
"markaspatrolledtext-file": "فائل کے اس نسخے کو مراجعت شدہ نشان زد کریں",
"summary-preview": "Pahiuna nga pagawas han dalikyat nga pulong:",
"subject-preview": "Pahiuna nga pagawas hit himangrawan:",
"blockedtitle": "Ginpugngan ini nga gumaramit",
- "blockedtext": "'''An imo agnay-gumaramit o IP address in ginpugngan.'''\n\nAn pagpugong in ginhimo ni $1.\nAn rason nga ginhatag in ''$2''.\n\n* Pagtikang han pagpugong: $8\n* Paghuman han pagpugong: $6\n* Ginpupugngan: $7\n\nPuydi nimo bilngon hi $1 o iba liwat nga [[{{MediaWiki:Grouppage-sysop}}|magdudumara]] para makipaghimangraw hiunong hini nga pagpugong.\nDiri nimo magagamit an \"ig-email ini nga gumaramit\" nga feature antes may-ada balido nga email address nga nakabutang ha imo [[Special:Preferences|mga preperensya han akawnt]] ngan waray ka pugngi paggamit hini.\nAn imo IP address yana in $3, ngan an imo pagpugong nga ID in #$5. Alayon la paglakip han ngatanan nga aada ha igbaw nga mga detalye ha bisan ano nga mga pakiana nga karuyag mo buhaton.",
+ "blockedtext": "'''An imo username o IP address in ginpugngan.'''\n\nAn pagpugong ginhimo ni $1.\nAn rason nga ginhatag kay tungod hin ''$2''.\n\n* Pagtikang han pagpugong: $8\n* Mahuhuman an pagpugong: $6\n* An pupugngan: $7\n\nPuydi nimo bilngon hi $1 o iba nga [[{{MediaWiki:Grouppage-sysop}}|magdudumara]] para makipaghimangraw hiunong hini nga pagpugong.\nDiri nimo magagamit an \"{{int:emailuser}}\" nga feature antes may-ada valid nga email address nga nakabutang ha imo [[Special:Preferences|account preferences]] ngan waray ka pugngi paggamit hini.\nAn imo IP address yana in $3, ngan an imo block ID amo in #$5. Alayon la paglakip han ngatanan nga aada ha igbaw nga mga detalye kun mamamakyana ka.",
"autoblockedtext": "An imo IP address in automatiko nga ginpugngan mahitungod nga ini in gingamit hin iba nga gumaramit, nga ginpugngan ni $1.\n\nAn rason nga ginhatag in ''$2''.\n\n* Pagtikang han pagpugong: $8\n* Paghuman han pagpugong: $6\n* Ginpupugngan: $7\n\nPuydi nimo bilngon hi $1 o iba liwat nga [[{{MediaWiki:Grouppage-sysop}}|magdudumara]] para makipaghimangraw hiunong hini nga pagpugong.\n\nGinpapasabot ka nga diri nimo magagamitan an \"ig-email ini nga gumaramit\" nga feature antes may-ada nimo balido nga email address nga nakarehistro ha imo [[Special:Preferences|mga preperensya han gumaramit]] ngan waray ka pugngi hit paggamit hini.\n\nAn imo IP address yana in $3, ngan an imo pagpugong nga ID in #$5. Alayon la paglakip han ngatanan nga aada ha igbaw nga mga detalye ha bisan ano nga mga pakiana nga karuyag mo buhaton.",
"blockednoreason": "waray katadungan nga ginhatag",
"whitelistedittext": "Kinahanglan mo mag-$1 para makaliwat han mga pakli.",
"filehist-filesize": "Kadako han fayl",
"filehist-comment": "Komento",
"imagelinks": "Mga gamit hin paypay",
- "linkstoimage": "An nasunod nga {{PLURAL:$1|pakli nasumpay|$1 mga pakli nasumpay}} hini nga paypay:",
- "linkstoimage-more": "Labaw hin $1 {{PLURAL:$1|nga pakli násúmpay|nga mga pakli násúmpay}} ngadâ hini nga paypay là.\nAn nasunód nga taramdan nagpapakita han {{PLURAL:$1|syahan nga pakli nga násúmpay|syahan nga $1 nga pakli nga násúmpay}} ngadâ hini nga paypay là.\nIn [[Special:WhatLinksHere/$2|bug-os nga taramdan]] áadâ.$2",
- "nolinkstoimage": "Waray mga pakli nga nasumpay hini nga fayl.",
+ "linkstoimage": "An masunod nga {{PLURAL:$1|ka pakli nagamit|$1 ka mga pakli nagamit}} hini nga file:",
+ "linkstoimage-more": "Labaw hin $1 {{PLURAL:$1|ka pakli nagamit|ka mga pakli nagamit}} hinin nga file.\nAn masunód nga taramdan nagpapakita han {{PLURAL:$1|syahan nga pakli|nauuna nga $1 ka mga pakli}} nga nagamit la hinin nga file.\nMayda inin [[Special:WhatLinksHere/$2|bug-os nga listahan]].",
+ "nolinkstoimage": "Waray pakli nga nagamit hinin nga file.",
"linkstoimage-redirect": "$1 (redirecta an paypay) $2",
"sharedupload": "Ini nga fayl tikang han $1 ngan puyde magamit ha iba nga mga proyekto.",
"sharedupload-desc-there": "Ini nga fayl tikang han $1 ngan puyde magamit ha iba nga mga proyekto.\nAlayon pagkita han [$2 nga pakli hin pagpahayag mahitungod hini nga fayl] para hin dugang nga kasayuran.",
"htmlform-reset": "Igbalik an mga pinamalyuan",
"htmlform-selectorother-other": "iba",
"logentry-delete-delete": "Hi $1 {{GENDER:$2|ginpara}} an pakli nga $3",
+ "logentry-delete-restore": "Hi $1 {{GENDER:$2|ginpabalik}} an pakli nga $3 ($4)",
"logentry-delete-revision": "$1 {{GENDER:$2|ginbalyo-an}} an pagkakita hin {{PLURAL:$5|usa nga pagliwat|$5 nga mga pagliwat}} dida han pakli $3: $4",
"revdelete-content-hid": "sulod nakatago",
"revdelete-summary-hid": "An halipotay nga masisiring hiton pagliwat in nakatago",
"prefixindex": "按詞頭查詢頁面",
"prefixindex-namespace": "按詞頭查詢頁面 ($1 命名空間)",
"prefixindex-submit": "顯示",
- "prefixindex-strip": "於清單中省略詞頭",
+ "prefixindex-strip": "在結果隱藏字首",
"shortpages": "過短的頁面",
"longpages": "過長的頁面",
"deadendpages": "無連結頁面",
// Kick whomever is currently controlling the account off
$user->setPassword( PasswordFactory::generateRandomPasswordString( 128 ) );
}
+ $this->output( "Done!\n" );
}
}
div.mw-rcfilters-ui-highlights {
body.mw-rcfilters-ui-initialized & {
display: inline-block;
- .mw-rcfilters-circle( @size-circle-result, @size-circle-result, 0 );
}
&-color {
&-none {
display: inline-block;
+ .mw-rcfilters-circle( @size-circle-result, @size-circle-result, 0 );
.mw-changeslist-watchedseen & {
.mw-rcfilters-ui-changesListWrapperWidget.mw-rcfilters-ui-changesListWrapperWidget-highlighted & {
}
- }
-
- // Watchlist unseen highlighted fixes
- // Seen (empty circle)
- // There's no need to correct 'unseen' because that would be
- // a filled colorful circle, which is the regular rendering
- .mw-changeslist-watchedseen &-c1 {
- .mw-rcfilters-circle-color( @highlight-c1, true, @highlight-c1, true );
- }
+ // Watchlist unseen highlighted fixes
+ // Seen (empty circle)
+ // There's no need to correct 'unseen' because that would be
+ // a filled colorful circle, which is the regular rendering
+ .mw-changeslist-watchedseen &-c1 {
+ .mw-rcfilters-circle-color( @highlight-c1, true, @highlight-c1, true );
+ }
- .mw-changeslist-watchedseen &-c2 {
- .mw-rcfilters-circle-color( @highlight-c2, true, @highlight-c2, true );
- }
+ .mw-changeslist-watchedseen &-c2 {
+ .mw-rcfilters-circle-color( @highlight-c2, true, @highlight-c2, true );
+ }
- .mw-changeslist-watchedseen &-c3 {
- .mw-rcfilters-circle-color( @highlight-c3, true, @highlight-c3, true );
- }
+ .mw-changeslist-watchedseen &-c3 {
+ .mw-rcfilters-circle-color( @highlight-c3, true, @highlight-c3, true );
+ }
- .mw-changeslist-watchedseen &-c4 {
- .mw-rcfilters-circle-color( @highlight-c4, true, @highlight-c4, true );
- }
+ .mw-changeslist-watchedseen &-c4 {
+ .mw-rcfilters-circle-color( @highlight-c4, true, @highlight-c4, true );
+ }
- .mw-changeslist-watchedseen &-c5 {
- .mw-rcfilters-circle-color( @highlight-c5, true, @highlight-c5, true );
+ .mw-changeslist-watchedseen &-c5 {
+ .mw-rcfilters-circle-color( @highlight-c5, true, @highlight-c5, true );
+ }
}
}
width: 100%;
}
}
+}
- &-highlights {
- display: none;
- padding: 0 @margin-circle 0 0;
- text-align: right;
- // The width is 5 circles times their diameter + individual margin
- // and then plus the general margin
- width: ~'calc( ( @{size-circle-result} + @{margin-circle-result} ) * 5 )';
- // And we want to shift the entire block to the left of the li
- position: relative;
- // Negative left margin of width + padding
- margin-left: ~'calc( ( @{size-circle-result} + @{margin-circle-result} ) * -5 - @{margin-circle} )';
-
- .mw-rcfilters-ui-changesListWrapperWidget-highlighted & {
- display: inline-block;
- }
+.mw-rcfilters-ui-highlights {
+ display: none;
+ padding: 0 @margin-circle 0 0;
+ // The width is 5 circles times their diameter + individual margin
+ // and then plus the general margin
+ width: ~'calc( ( @{size-circle-result} + @{margin-circle-result} ) * 5 )';
+ // And we want to shift the entire block to the left of the li
+ position: relative;
+ // Negative left margin of width + padding
+ margin-left: ~'calc( ( @{size-circle-result} + @{margin-circle-result} ) * -5 - @{margin-circle} )';
- // This needs to be very specific, since these are
- // position rules that should apply to all overrides
- .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-ui-changesListWrapperWidget-highlights > div&-circle {
- vertical-align: middle;
- .mw-rcfilters-circle( @size-circle-result, @size-circle-result, 0 );
- // This is to make the dots appear at the center of the
- // text itself; it's a horrendous hack and blame JamesF for it.
- margin-top: -2px;
- margin-right: @margin-circle-result;
- }
+ .mw-rcfilters-ui-changesListWrapperWidget-highlighted & {
+ display: inline-block;
+ }
+
+ // This needs to be very specific, since these are
+ // position rules that should apply to all overrides
+ .mw-rcfilters-ui-changesListWrapperWidget & > div {
+ vertical-align: middle;
+ .mw-rcfilters-circle( @size-circle-result, @size-circle-result, 0 );
+ // This is to make the dots appear at the center of the
+ // text itself; it's a horrendous hack and blame JamesF for it.
+ margin-top: -2px;
+ margin-right: @margin-circle-result;
+ float: right;
+ }
+
+ &-color {
+ &-none {
+ .mw-rcfilters-circle-color( @highlight-none, true );
+ display: inline-block;
- &-color {
- &-none {
- .mw-rcfilters-circle-color( @highlight-none, true );
- display: inline-block;
-
- .mw-rcfilters-highlight-color-c1 &,
- .mw-rcfilters-highlight-color-c2 &,
- .mw-rcfilters-highlight-color-c3 &,
- .mw-rcfilters-highlight-color-c4 &,
- .mw-rcfilters-highlight-color-c5 & {
- display: none;
- }
+ .mw-rcfilters-highlight-color-c1 &,
+ .mw-rcfilters-highlight-color-c2 &,
+ .mw-rcfilters-highlight-color-c3 &,
+ .mw-rcfilters-highlight-color-c4 &,
+ .mw-rcfilters-highlight-color-c5 & {
+ display: none;
}
- .result-circle( c1 );
- .result-circle( c2 );
- .result-circle( c3 );
- .result-circle( c4 );
- .result-circle( c5 );
}
+ .result-circle( c1 );
+ .result-circle( c2 );
+ .result-circle( c3 );
+ .result-circle( c4 );
+ .result-circle( c5 );
}
}
$this->parser->parse( $longLine, $title, $options )->getText( [ 'unwrap' => true ] ) );
}
+ /**
+ * @covers Parser::braceSubstitution
+ * @covers SpecialPageFactory::capturePath
+ */
+ public function testSpecialPageTransclusionRestoresGlobalState() {
+ $text = "{{Special:ApiHelp/help}}";
+ $title = Title::newFromText( 'testSpecialPageTransclusionRestoresGlobalState' );
+ $options = ParserOptions::newFromUser( new User() );
+
+ RequestContext::getMain()->setTitle( $title );
+ RequestContext::getMain()->getWikiPage()->CustomTestProp = true;
+
+ $parsed = $this->parser->parse( $text, $title, $options )->getText();
+ $this->assertContains( 'apihelp-header', $parsed );
+
+ // Verify that this property wasn't wiped out by the parse
+ $this->assertTrue( RequestContext::getMain()->getWikiPage()->CustomTestProp );
+ }
+
/**
* Test the parser entry points
* @covers Parser::parse