'ChangesListSpecialPageStructuredFilters': Called to allow extensions to register
filters for pages inheriting from ChangesListSpecialPage (in core: RecentChanges,
RecentChangesLinked, and Watchlist). Generally, you will want to construct
-new ChangesListBooleanFilter or ChangesListStringOptionsFilter objects. You can
-then either add them to existing ChangesListFilterGroup objects (accessed through
-$special->getFilterGroup), or create your own. If you create new groups, you
-must register them with $special->registerFilterGroup.
+new ChangesListBooleanFilter or ChangesListStringOptionsFilter objects.
+
+When constructing them, you specify which group they belong to. You can reuse
+existing groups (accessed through $special->getFilterGroup), or create your own.
+If you create new groups, you must register them with $special->registerFilterGroup.
$special: ChangesListSpecialPage instance
'ChangeTagAfterDelete': Called after a change tag has been deleted (that is,
$title: The title the 'go' feature has decided to forward the user to
&$url: Initially null, hook subscribers can set this to specify the final url to redirect to
-'SpecialSearchNogomatch': Called when user clicked the "Go" button but the
-target doesn't exist.
+'SpecialSearchNogomatch': Called when the 'Go' feature is triggered (generally
+from autocomplete search other than the main bar on Special:Search) and the
+target doesn't exist. Full text search results are generated after this hook is
+called.
&$title: title object generated from the text entered by the user
'SpecialSearchPowerBox': The equivalent of SpecialSearchProfileForm for
*/
protected $priority;
+ const RESERVED_NAME_CHAR = '_';
+
/**
- * Create a new filter with the specified configuration.
+ * Creates a new filter with the specified configuration, and registers it to the
+ * specified group.
*
* It infers which UI (it can be either or both) to display the filter on based on
* which messages are provided.
*
* @param array $filterDefinition ChangesListFilter definition
*
- * $filterDefinition['name'] string Name of filter
+ * $filterDefinition['name'] string Name of filter; use lowercase with no
+ * punctuation
* $filterDefinition['cssClassSuffix'] string CSS class suffix, used to mark
* that a particular row belongs to this filter (when a row is included by the
* filter) (optional)
'ChangesListFilterGroup this filter belongs to' );
}
+ if ( strpos( $filterDefinition['name'], self::RESERVED_NAME_CHAR ) !== false ) {
+ throw new MWException( 'Filter names may not contain \'' .
+ self::RESERVED_NAME_CHAR .
+ '\'. Use the naming convention: \'lowercase\''
+ );
+ }
+
+ if ( $this->group->getFilter( $filterDefinition['name'] ) ) {
+ throw new MWException( 'Two filters in a group cannot have the ' .
+ "same name: '{$filterDefinition['name']}'" );
+ }
+
$this->name = $filterDefinition['name'];
if ( isset( $filterDefinition['cssClassSuffix'] ) ) {
const DEFAULT_PRIORITY = -100;
+ const RESERVED_NAME_CHAR = '_';
+
/**
* Create a new filter group with the specified configuration
*
* @param array $groupDefinition Configuration of group
- * * $groupDefinition['name'] string Group name
+ * * $groupDefinition['name'] string Group name; use camelCase with no punctuation
* * $groupDefinition['title'] string i18n key for title (optional, can be omitted
* * only if none of the filters in the group display in the structured UI)
* * $groupDefinition['type'] string A type constant from a subclass of this one
* * changes list entries are filtered out.
*/
public function __construct( array $groupDefinition ) {
+ if ( strpos( $groupDefinition['name'], self::RESERVED_NAME_CHAR ) !== false ) {
+ throw new MWException( 'Group names may not contain \'' .
+ self::RESERVED_NAME_CHAR .
+ '\'. Use the naming convention: \'camelCase\''
+ );
+ }
+
$this->name = $groupDefinition['name'];
if ( isset( $groupDefinition['title'] ) ) {
* Get filter by name
*
* @param string $name Filter name
- * @return ChangesListFilter Specified filter
+ * @return ChangesListFilter|null Specified filter, or null if it is not registered
*/
public function getFilter( $name ) {
- return $this->filters[$name];
+ return isset( $this->filters[$name] ) ? $this->filters[$name] : null;
}
/**
* @param Title $title
* @throws MWException
*/
- function setTitle( $title ) {
+ public function setTitle( $title ) {
if ( is_object( $title ) ) {
$this->title = $title;
} elseif ( is_null( $title ) ) {
/**
* @param int $id
*/
- function setID( $id ) {
+ public function setID( $id ) {
$this->id = $id;
}
/**
* @param string $ts
*/
- function setTimestamp( $ts ) {
+ public function setTimestamp( $ts ) {
# 2003-08-05T18:30:02Z
$this->timestamp = wfTimestamp( TS_MW, $ts );
}
/**
* @param string $user
*/
- function setUsername( $user ) {
+ public function setUsername( $user ) {
$this->user_text = $user;
}
/**
* @param User $user
*/
- function setUserObj( $user ) {
+ public function setUserObj( $user ) {
$this->userObj = $user;
}
/**
* @param string $ip
*/
- function setUserIP( $ip ) {
+ public function setUserIP( $ip ) {
$this->user_text = $ip;
}
/**
* @param string $model
*/
- function setModel( $model ) {
+ public function setModel( $model ) {
$this->model = $model;
}
/**
* @param string $format
*/
- function setFormat( $format ) {
+ public function setFormat( $format ) {
$this->format = $format;
}
/**
* @param string $text
*/
- function setText( $text ) {
+ public function setText( $text ) {
$this->text = $text;
}
/**
* @param string $text
*/
- function setComment( $text ) {
+ public function setComment( $text ) {
$this->comment = $text;
}
/**
* @param bool $minor
*/
- function setMinor( $minor ) {
+ public function setMinor( $minor ) {
$this->minor = (bool)$minor;
}
/**
* @param mixed $src
*/
- function setSrc( $src ) {
+ public function setSrc( $src ) {
$this->src = $src;
}
* @param string $src
* @param bool $isTemp
*/
- function setFileSrc( $src, $isTemp ) {
+ public function setFileSrc( $src, $isTemp ) {
$this->fileSrc = $src;
$this->fileIsTemp = $isTemp;
}
/**
* @param string $sha1base36
*/
- function setSha1Base36( $sha1base36 ) {
+ public function setSha1Base36( $sha1base36 ) {
$this->sha1base36 = $sha1base36;
}
/**
* @param string $filename
*/
- function setFilename( $filename ) {
+ public function setFilename( $filename ) {
$this->filename = $filename;
}
/**
* @param string $archiveName
*/
- function setArchiveName( $archiveName ) {
+ public function setArchiveName( $archiveName ) {
$this->archiveName = $archiveName;
}
/**
* @param int $size
*/
- function setSize( $size ) {
+ public function setSize( $size ) {
$this->size = intval( $size );
}
/**
* @param string $type
*/
- function setType( $type ) {
+ public function setType( $type ) {
$this->type = $type;
}
/**
* @param string $action
*/
- function setAction( $action ) {
+ public function setAction( $action ) {
$this->action = $action;
}
/**
* @param array $params
*/
- function setParams( $params ) {
+ public function setParams( $params ) {
$this->params = $params;
}
/**
* @return Title
*/
- function getTitle() {
+ public function getTitle() {
return $this->title;
}
/**
* @return int
*/
- function getID() {
+ public function getID() {
return $this->id;
}
/**
* @return string
*/
- function getTimestamp() {
+ public function getTimestamp() {
return $this->timestamp;
}
/**
* @return string
*/
- function getUser() {
+ public function getUser() {
return $this->user_text;
}
/**
* @return User
*/
- function getUserObj() {
+ public function getUserObj() {
return $this->userObj;
}
/**
* @return string
*/
- function getText() {
+ public function getText() {
return $this->text;
}
/**
* @return ContentHandler
*/
- function getContentHandler() {
+ public function getContentHandler() {
if ( is_null( $this->contentHandler ) ) {
$this->contentHandler = ContentHandler::getForModelID( $this->getModel() );
}
/**
* @return Content
*/
- function getContent() {
+ public function getContent() {
if ( is_null( $this->content ) ) {
$handler = $this->getContentHandler();
$this->content = $handler->unserializeContent( $this->text, $this->getFormat() );
/**
* @return string
*/
- function getModel() {
+ public function getModel() {
if ( is_null( $this->model ) ) {
$this->model = $this->getTitle()->getContentModel();
}
/**
* @return string
*/
- function getFormat() {
+ public function getFormat() {
if ( is_null( $this->format ) ) {
$this->format = $this->getContentHandler()->getDefaultFormat();
}
/**
* @return string
*/
- function getComment() {
+ public function getComment() {
return $this->comment;
}
/**
* @return bool
*/
- function getMinor() {
+ public function getMinor() {
return $this->minor;
}
/**
* @return mixed
*/
- function getSrc() {
+ public function getSrc() {
return $this->src;
}
/**
* @return bool|string
*/
- function getSha1() {
+ public function getSha1() {
if ( $this->sha1base36 ) {
return Wikimedia\base_convert( $this->sha1base36, 36, 16 );
}
/**
* @return string
*/
- function getFileSrc() {
+ public function getFileSrc() {
return $this->fileSrc;
}
/**
* @return bool
*/
- function isTempSrc() {
+ public function isTempSrc() {
return $this->isTemp;
}
/**
* @return mixed
*/
- function getFilename() {
+ public function getFilename() {
return $this->filename;
}
/**
* @return string
*/
- function getArchiveName() {
+ public function getArchiveName() {
return $this->archiveName;
}
/**
* @return mixed
*/
- function getSize() {
+ public function getSize() {
return $this->size;
}
/**
* @return string
*/
- function getType() {
+ public function getType() {
return $this->type;
}
/**
* @return string
*/
- function getAction() {
+ public function getAction() {
return $this->action;
}
/**
* @return string
*/
- function getParams() {
+ public function getParams() {
return $this->params;
}
/**
* @return bool
*/
- function importOldRevision() {
+ public function importOldRevision() {
$dbw = wfGetDB( DB_MASTER );
# Sneak a single revision into place
return true;
}
- function importLogItem() {
+ public function importLogItem() {
$dbw = wfGetDB( DB_MASTER );
$user = $this->getUserObj() ?: User::newFromName( $this->getUser() );
/**
* @return bool
*/
- function importUpload() {
+ public function importUpload() {
# Construct a file
$archiveName = $this->getArchiveName();
if ( $archiveName ) {
/**
* @return bool|string
*/
- function downloadSource() {
+ public function downloadSource() {
if ( !$this->config->get( 'EnableUploads' ) ) {
return false;
}
'_MemCachedServers', 'wgDBserver', 'wgDBuser',
'wgDBpassword', 'wgUseInstantCommons', 'wgUpgradeKey', 'wgDefaultSkin',
'wgMetaNamespace', 'wgLogo', 'wgAuthenticationTokenVersion', 'wgPingback',
- '_Caches',
],
$db->getGlobalNames()
);
case 'db':
case 'memcached':
case 'accel':
- case 'none':
$cacheType = 'CACHE_' . strtoupper( $this->values['_MainCacheType'] );
break;
+ case 'none':
default:
- // If the user skipped the options page,
- // default to CACHE_ACCEL if available
- if ( count( $this->values['_Caches'] ) ) {
- $cacheType = 'CACHE_ACCEL';
- } else {
- $cacheType = 'CACHE_NONE';
- }
+ $cacheType = 'CACHE_NONE';
}
$mcservers = $this->buildMemcachedServerList();
"config-missing-db-name": "Meg kell adnod a(z) „{{int:config-db-name}}” értékét.",
"config-missing-db-host": "Meg kell adnod az „{{int:config-db-host}}” értékét.",
"config-missing-db-server-oracle": "Meg kell adnod az „{{int:config-db-host-oracle}}” értékét.",
- "config-invalid-db-server-oracle": "Érvénytelen adatbázis TNS: „$1”\nCsak ASCII betűk (a-z, A-Z), számok (0-9), alulvonás (_) és pont (.) használható.",
+ "config-invalid-db-server-oracle": "Érvénytelen adatbázis TNS: „$1”\nHasználd a „TNS Name” vagy az Easy Connect” sztringet!\n([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods]).",
"config-invalid-db-name": "Érvénytelen adatbázisnév: „$1”.\nCsak ASCII-karakterek (a-z, A-Z), számok (0-9), alulvonás (_) és kötőjel (-) használható.",
"config-invalid-db-prefix": "Érvénytelen adatbázisnév-előtag: „$1”.\nCsak ASCII-karakterek (a-z, A-Z), számok (0-9), alulvonás (_) és kötőjel (-) használható.",
"config-connection-error": "$1.\n\nEllenőrizd a hosztot, felhasználónevet és jelszót, majd próbáld újra.",
"config-nofile": "\"$1\" fájl nem található. Törölve lett?",
"config-extension-link": "Tudtad, hogy a wikid támogat [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions kiterjesztéseket]?\n\nBöngészhetsz [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category kiterjesztéseket kategóriánként] vagy válogathatsz a [https://www.mediawiki.org/wiki/Extension_Matrix kiterjesztésmátrixból] az összes kiterjesztés áttekintéséhez.",
"mainpagetext": "<strong>A MediaWiki telepítése sikeresen befejeződött.</strong>",
- "mainpagedocfooter": "Ha segítségre van szükséged a wikiszoftver használatához, akkor keresd fel a [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.\n\n== Alapok (angol nyelven) ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Beállítások listája]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki GyIK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources A MediaWiki fordítása a saját nyelvedre]"
+ "mainpagedocfooter": "Ha segítségre van szükséged a wikiszoftver használatához, akkor keresd fel a [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.\n\n== Alapok (angol nyelven) ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Beállítások listája]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki GyIK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources A MediaWiki fordítása a saját nyelvedre]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Tudd meg többet, hogyan küzdhetsz a kéretlen levelek ellen a wikiden]"
}
*
* @param string $groupName Name of group
*
- * @return ChangesListFilterGroup
+ * @return ChangesListFilterGroup|null Group, or null if not registered
*/
public function getFilterGroup( $groupName ) {
- return $this->filterGroups[$groupName];
+ return isset( $this->filterGroups[$groupName] ) ?
+ $this->filterGroups[$groupName] :
+ null;
}
// Currently, this intentionally only includes filters that display
return 'usermaildisabled';
}
- if ( !$user->isAllowed( 'sendemail' ) ) {
- return 'badaccess';
- }
-
+ // Run this before $user->isAllowed, to show appropriate message to anons (T160309)
if ( !$user->isEmailConfirmed() ) {
return 'mailnologin';
}
+ if ( !$user->isAllowed( 'sendemail' ) ) {
+ return 'badaccess';
+ }
+
if ( $user->isBlockedFromEmailuser() ) {
wfDebug( "User is blocked from sending e-mail.\n" );
$out->redirect( $url );
return;
}
+ // No match. If it could plausibly be a title
+ // run the No go match hook.
+ $title = Title::newFromText( $term );
+ if ( !is_null( $title ) ) {
+ Hooks::run( 'SpecialSearchNogomatch', [ &$title ] );
+ }
}
$this->setupPage( $term );
"revdelete-log": "Прычына:",
"revdelete-submit": "Ужыць для {{PLURAL:$1|1=выбранай вэрсіі|выбраных вэрсіяў}}",
"revdelete-success": "Бачнасьць вэрсіі абноўленая.",
- "revdelete-failure": "'''Немагчыма абнавіць бачнасьць вэрсіі:'''\n$1",
+ "revdelete-failure": "Немагчыма абнавіць бачнасьць вэрсіі:\n$1",
"logdelete-success": "Бачнасьць падзеі ўсталяваная.",
"logdelete-failure": "'''Немагчыма ўстанавіць бачнасьць у журнале:'''\n$1",
"revdel-restore": "Зьмяніць бачнасьць",
"rcfilters-filter-patrolled-label": "Правераныя",
"rcfilters-filter-patrolled-description": "Праўкі, пазначаныя як правераныя.",
"rcfilters-filter-unpatrolled-label": "Неправераныя",
+ "rcfilters-filter-unpatrolled-description": "Рэдагаваньні, не пазначаныя як правераныя.",
"rcfilters-filtergroup-significance": "Значэньне",
"rcfilters-filter-minor-label": "Дробныя праўкі",
"rcfilters-filter-minor-description": "Праўкі, якія аўтар пазначыў як дробныя.",
"page_last": "diwezhañ",
"histlegend": "Sellet ouzh an diforc'hioù : lakait un ask adal d'ar stummoù a fell deoc'h keñveriañ ha pouezit war kadarnaat pe war ar bouton en traoñ.<br />\nAlc'hwez : (red) = diforc'hioù gant ar stumm a-vremañ,\n(diwez) = diforc'hioù gant ar stumm kent, D = kemm dister",
"history-fieldset-title": "Furchal en istor",
- "history-show-deleted": "Diverket hepken",
+ "history-show-deleted": "Stumm diverket hepken",
"histfirst": "koshañ",
"histlast": "nevezañ",
"historysize": "({{PLURAL:$1|$1 okted|$1 okted}})",
"tags-delete-explanation-initial": "Emaoc'h o vont da ziverkañ an dikedenn \"$1\" a-ziwar an diaz roadennoù.",
"tags-delete-explanation-in-use": "Dilamet e vo diouzh an {{PLURAL:$2|$2 stumm pe moned marilh|holl $2 stumm ha/pe monedoù marilh}} m'emañ bet lakaet evit ar mare.",
"tags-delete-explanation-warning": "<strong>Ne vo ket posupl distreiñ</strong> war an ober-mañ <strong>n'haller ket nullañ</strong>, ha pa vefe gant merourien an diaz roadennoù zoken. Bezit peursur eo homañ an dikedenn a fell deoc'h diverkañ.",
+ "tags-delete-explanation-active": "Oberiant eo c'hoazh <strong>an dikedenn \"$1\" ha kenderc'hel a raio da vezañ kemeret e kont en dazont.</strong> Evit mirout na c'hoarvezfe, mont d'al lec'h(ioù) m'emañ an dikedenn da vezañ lakaet da dalvezout ha diweredekaat anezhi eno.",
"tags-delete-reason": "Abeg :",
+ "tags-delete-submit": "Diverkañ an dikedenn-mañ da viken",
+ "tags-delete-not-allowed": "N'haller ket diverkañ an tikedennoù termenet gant un astenn nemet e vefe aotreet en un doare sklaer d'en ober gant an astenn.",
"tags-delete-not-found": "N'eus ket eus an dikedenn \"$1\".",
+ "tags-delete-too-many-uses": "Talvezout a ra an dikedenn \"$1\" evit muioc'h eget $2 {{PLURAL:$2|stumm}}, ar pezh a dalvez ne c'hall ket bezañ diverket.",
+ "tags-delete-warnings-after-delete": "Diverket eo bet an dikedenn \"$1\" met kavet eo bet ar {{PLURAL:$2|c'hemenn|c'hemennoù}} da-heul :",
+ "tags-delete-no-permission": "N'oc'h ket aotreet da ziverkañ an dikedennoù kemmañ.",
"tags-activate-title": "Gweredekaat an dikedenn",
+ "tags-activate-question": "Emaoc'h o vont da weredekaat an dikedenn \"$1\".",
"tags-activate-reason": "Abeg :",
+ "tags-activate-not-allowed": "N'haller ket gweredekaat an dikedenn \"$1\".",
+ "tags-activate-not-found": "N'eus ket eus an dikedenn \"$1\".",
"tags-activate-submit": "Gweredekaat",
"tags-deactivate-title": "Diweredekaat an dikedenn",
+ "tags-deactivate-question": "Emaoc'h o vont da ziweredekaat an dikedenn \"$1\".",
"tags-deactivate-reason": "Abeg :",
+ "tags-deactivate-not-allowed": "N'haller ket diweredekaat an dikedenn \"$1\".",
"tags-deactivate-submit": "Diweredekaat",
+ "tags-apply-no-permission": "N'oc'h ket aotreet da lakaat tikedennoù kemmañ da dalvezout a-gevret gant ho kemmoù.",
+ "tags-apply-blocked": "N'hallit ket lakaat da dalvezout ar c'hemmañ tikedennoù hag ho kemmoù e-keit hag {{GENDER:$1|emaoc'h}} stanket.",
+ "tags-apply-not-allowed-one": "N'haller ket lakaat an dikedenn \"$1\" da dalvezout gant an dorn.",
"tags-edit-title": "Kemmañ an tikedennoù",
"tags-edit-manage-link": "Merañ an tikedennoù",
"tags-edit-existing-tags": "Tikedennoù zo anezho :",
"searchprofile-articles": "Mga panid sa sulod",
"searchprofile-images": "Multimedia",
"searchprofile-everything": "Tanan",
+ "searchprofile-advanced": "Abanse",
"searchprofile-articles-tooltip": "Pangita sa $1",
"searchprofile-images-tooltip": "Pangita og mga payl",
"searchprofile-everything-tooltip": "Pangita sa tanang sulod (lakip ang mga panid sa hisgot)",
"undeletelink": "tan-awa/ibalik",
"namespace": "Ngalang espasyo:",
"invert": "Baliha ang gipili",
+ "tooltip-invert": "I-tsek kini nga kahon aron tagoon ang mga kausaban sa mga panid sa gipili nga <i>namespace</i> (ug sa <i>associated namespace</i> kon gi-tsekan)",
+ "tooltip-namespace_association": "I-tsek kini nga kahon aron iapil ang mga panid sa hisgot o <i>subject namespace</i> nga may kalabotan sa gipili nga <i>namespace</i>",
"blanknamespace": "(Meyn)",
"contributions": "Mga tampo ning {{GENDER:$1|gumagamit}}",
"contributions-title": "Mga tampo sa gumagamit para kang $1",
"svg-long-desc": "SVG nga payl, nominally $1 × $2 pixels, size sa payl: $3",
"show-big-image": "Tibuok resolusyon",
"show-big-image-preview": "Gidak-on ning maong paunang tan-aw: $1.",
+ "show-big-image-other": "Uban pang {{PLURAL:$2|resolusyon|mga resoluyon}}: $1.",
"show-big-image-size": "$1 x $2 ka mga piksel",
"bad_image_list": "Ang pormat mao ang mosunod:\n\nAng mga list items (mga linya nga nagsugod sa*) ang gikonsiderar.\nAng unang sumpay sa linya kinahanglang sumpay sa payl nga daot.\nAng bisan unsang mosunod nga mga sumpay sa parehong linya gikonsiderar nga mga eksepsyon, i.e. mga panid diin ang payl mahimong inline.",
"metadata": "Metadata",
"login": "Přihlaste se",
"login-security": "Ověřte svou identitu",
"nav-login-createaccount": "Přihlášení / vytvoření účtu",
- "userlogin": "Přihlášení / vytvoření účtu",
- "userloginnocreate": "Přihlášení",
"logout": "Odhlásit se",
"userlogout": "Odhlášení",
"notloggedin": "Nejste přihlášen(a)",
"userlogin-noaccount": "Nemáte účet?",
"userlogin-joinproject": "Přidejte se k {{grammar:3sg|{{SITENAME}}}}",
- "nologin": "Dosud nemáte účet? $1.",
- "nologinlink": "Zaregistrujte se",
"createaccount": "Vytvořit účet",
- "gotaccount": "Už jste registrováni? $1.",
- "gotaccountlink": "Přihlaste se",
- "userlogin-resetlink": "Zapomněli jste přihlašovací údaje?",
"userlogin-resetpassword-link": "Zapomněli jste heslo?",
"userlogin-helplink2": "Nápověda k přihlašování",
"userlogin-loggedin": "Již jste {{GENDER:$1|přihlášen|přihlášena}} jako $1.\nPomocí formuláře níže se můžete přihlásit jako jiný uživatel.",
"createaccountmail": "Použít dočasné náhodné heslo a odeslat ho na uvedenou e-mailovou adresu",
"createaccountmail-help": "Lze využít k založení účtu pro jinou osobu bez prozrazení hesla.",
"createacct-realname": "Skutečné jméno (nepovinné)",
- "createaccountreason": "Důvod:",
"createacct-reason": "Důvod",
"createacct-reason-ph": "Proč si vytváříte další účet",
"createacct-reason-help": "Zpráva zobrazená v knize nových uživatelů",
"prefs-help-prefershttps": "Toto nastavení se projeví při příštím přihlášení.",
"prefswarning-warning": "Provedli jste změny nastavení, které dosud nejsou uloženy. Pokud tuto stránku opustíte, aniž byste klikli na „$1“, vaše nastavení se nezmění.",
"prefs-tabs-navigation-hint": "Tip: Pro přepínání mezi záložkami můžete používat šipky vlevo a vpravo.",
- "userrights": "Správa uživatelských skupin",
+ "userrights": "Uživatelská práva",
"userrights-lookup-user": "Vybrat uživatele",
"userrights-user-editname": "Zadejte uživatelské jméno:",
"editusergroup": "Načíst uživatelské skupiny",
"logentry-tag-update-revision": "$1 {{GENDER:$2|změnil|změnila}} značky na revizi $4 stránky $3 ({{PLURAL:$7|přidáno}} $6; {{PLURAL:$9|odebráno}} $8)",
"logentry-tag-update-logentry": "$1 {{GENDER:$2|změnil|změnila}} značky na protokolovacím záznamu $5 k stránce $3 ({{PLURAL:$7|přidáno}} $6; {{PLURAL:$9|odebráno}} $8)",
"rightsnone": "(žádné)",
- "revdelete-summary": "shrnutí editace",
"rightslogentry-temporary-group": "$1 (dočasně, do $2)",
"feedback-adding": "Komentář se přidává na stránku…",
"feedback-back": "Zpět",
"page_last": "last",
"histlegend": "Diff selection: Mark the radio boxes of the revisions to compare and hit enter or the button at the bottom.<br />\nLegend: <strong>({{int:cur}})</strong> = difference with latest revision, <strong>({{int:last}})</strong> = difference with preceding revision, <strong>{{int:minoreditletter}}</strong> = minor edit.",
"history-fieldset-title": "Browse history",
- "history-show-deleted": "Deleted only",
+ "history-show-deleted": "Revision deleted only",
"history_copyright": "-",
"histfirst": "oldest",
"histlast": "newest",
"page_last": "viimane",
"histlegend": "Märgi versioonid, mida tahad võrrelda ja vajuta võrdlemisnupule.\nLegend: (viim) = erinevused võrreldes viimase redaktsiooniga,\n(eel) = erinevused võrreldes eelmise redaktsiooniga, P = pisimuudatus",
"history-fieldset-title": "Ajaloo sirvimine",
- "history-show-deleted": "Üksnes kustutatud",
+ "history-show-deleted": "Üksnes kustutatud redaktsioonid",
"histfirst": "vanimad",
"histlast": "uusimad",
"historysize": "({{PLURAL:$1|1 bait|$1 baiti}})",
"prefs-help-prefershttps": "See eelistus jõustub pärast järgmist sisselogimist.",
"prefswarning-warning": "Oled teinud eelistustes muudatusi, mida pole veel salvestatud.\nKui lahkud sellelt leheküljelt ilma nupul \"$1\" klõpsamata, jäävad kehtima senised eelistused.",
"prefs-tabs-navigation-hint": "Spikker: Kaardiloendis toodud kaartide vahel liikumiseks saad kasutada vasakut ja paremat nooleklahvi.",
- "userrights": "Kasutajaõiguste haldus",
+ "userrights": "Kasutajaõigused",
"userrights-lookup-user": "Kasutaja valimine",
"userrights-user-editname": "Sisesta kasutajanimi:",
"editusergroup": "Laadi kasutajarühmad",
"prefs-help-prefershttps": "تأثیر این ترجیح بعد از ورود بعدی شما اعمال خواهد شد.",
"prefswarning-warning": "تغییراتتان به ترجیحات هنوز ذحیره نشده است.\nاگر این صفحه بدون کلیک بر «$1» ترک کنید ترجیحاتتان ذخیره نخواهد شد.",
"prefs-tabs-navigation-hint": "نکته: شما می توانید از کلیدهای جهتنمای چپ و راست برای حرکت بین زبانهها در فهرست زبانهها استفاده کنید.",
- "userrights": "مدیریت اختیارات کاربر",
+ "userrights": "اختیارات کاربر",
"userrights-lookup-user": "انتخاب یک کاربر",
"userrights-user-editname": "یک نام کاربری وارد کنید:",
"editusergroup": "بارگیری گروههای کاربر",
"page_last": "dernière",
"histlegend": "Sélection du diff : cochez les boutons radio des versions à comparer et appuyez sur entrée ou sur le bouton en bas.<br />\nLégende : <strong>({{int:cur}})</strong> = différence avec la dernière version, <strong>({{int:last}})</strong> = différence avec la version précédente, <strong>{{int:minoreditletter}}</strong> = modification mineure.",
"history-fieldset-title": "Naviguer dans l’historique",
- "history-show-deleted": "Supprimés seulement",
+ "history-show-deleted": "Révision supprimée uniquement",
"histfirst": "les plus anciennes",
"histlast": "les plus récentes",
"historysize": "($1 octet{{PLURAL:$1||s}})",
"movelogpagetext": "Voici la liste de toutes les pages renommées ou déplacées.",
"movesubpage": "Sous-page{{PLURAL:$1||s}}",
"movesubpagetext": "Cette page a $1 {{PLURAL:$1|sous-page affichée|sous-pages affichées}} ci-dessous.",
- "movesubpagetalktext": "La page de discussion correspodnante a $1 {{PLURAL:$1|sous-page|sous-pages}} affichées ci-dessous.",
+ "movesubpagetalktext": "La page de discussion correspondante a $1 {{PLURAL:$1|sous-page|sous-pages}} affichées ci-dessous.",
"movenosubpage": "Cette page n'a aucune sous-page.",
"movereason": "Motif :",
"revertmove": "rétablir",
"newwindow": "(woort uun en nei wönang eeben maaget)",
"cancel": "Ufbreeg",
"moredotdotdot": "Muar ...",
- "morenotlisted": "Detdiar list as ei komplet.",
+ "morenotlisted": "Detdiar list küd ei komplet wees.",
"mypage": "Sidj",
"mytalk": "Diskuschuun",
"anontalk": "Diskuschuun",
"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": "Uunmelde",
"nav-login-createaccount": "Melde di uun of skriiw di iin",
- "userlogin": "Melde di uun of skriiw di iin",
- "userloginnocreate": "Uunmelde",
"logout": "Ufmelde",
"userlogout": "Ufmelde",
"notloggedin": "Ei uunmeldet",
"userlogin-noaccount": "Dü heest noch nian brükerkonto ?",
"userlogin-joinproject": "Bi {{SITENAME}} mämaage",
- "nologin": "Dü heest nian brükerkonto? $1.",
- "nologinlink": "Nei brükerkonto iinracht",
"createaccount": "Brükerkonto iinracht",
- "gotaccount": "Dü hääst ål en brükerkonto? '''$1'''.",
- "gotaccountlink": "Uunmelde",
- "userlogin-resetlink": "Heest dü din login dooten ferjiden?",
"userlogin-resetpassword-link": "Paaswurd ferjiden?",
"userlogin-helplink2": "Halep bi't uunmeldin",
"userlogin-loggedin": "Du beest al üs {{GENDER:$1|$1}} uunmeldet.\nBrük det formulaar diar oner, am di mä en öödern nööm uuntumeldin.",
"createacct-another-email-ph": "E-Mail-adres uundu",
"createaccountmail": "E-mail tu detdiar adres ferschüür mä en tidjwiis tufelag paaswurd",
"createacct-realname": "Rocht nööm (optional)",
- "createaccountreason": "Grünj:",
"createacct-reason": "Grünj",
"createacct-reason-ph": "Huaram dü en ööder brükerkonto iinrachtst",
"createacct-submit": "Din brükerkonto iinracht",
"nocookieslogin": "{{SITENAME}} brükt cookies för't uunmeldin faan brükern.\nDü heest cookies deaktiwiaret.\nWees so gud an aktiwiare jo uun dan browser, an do ferschük det noch ans.",
"nocookiesfornew": "Det brükerkonto as ei iinracht wurden, auer wi ei witj, huar a dooten faan kem.\nÜüb dan kompjuuter skel cookies aktiwiaret wees. Do rep detheer sidj noch ans nei ap.",
"noname": "Dü skel en rochten brükernööm uundu.",
- "loginsuccesstitle": "Uunmeldin hää loket.",
+ "loginsuccesstitle": "Uunmeldet",
"loginsuccess": "'''Dü beest nü üs „$1“ bi {{SITENAME}} uunmeldet.'''",
- "nosuchuser": "Di brükernööm „$1“ jaft at ei. Aachte üüb det skriiwwiis (an uk üüb grat- an letjskriiwang), an do [[Special:CreateAccount|melde di nei uun]].",
+ "nosuchuser": "Di brükernööm „$1“ jaft at ei. Aachte üüb det skriiwwiis (an uk üüb grat- an letjskriiwang), of [[Special:CreateAccount|melde di nei uun]].",
"nosuchusershort": "Diar as nään brüker mä di nööm \"$1\".\nHeest dü ham uk rocht skrewen?",
"nouserspecified": "Dü skel en brükernööm uundu.",
"login-userblocked": "Didiar brüker as speret wurden. Hi mut ham ei uunmelde.",
"eauthentsent": "Diar as en e-mail tu det uunjiwen adres schüürd wurden.\n\nIar en e-mail faan ööder brükern auer det e-mail-funktjuun uunnimen wurd koon, skal seeker steld wurd, dat det e-mail-adres uk würelk tu di brüker hiart. Wees so gud an befulge jo uunwisangen uun det e-mail, wat dü jüst füngen heest.",
"throttled-mailpassword": "Diar as uun a leetst {{PLURAL:$1|stünj|$1 stünj}} al ans am en nei paaswurd uunfraaget wurden. Am dat diar nään masbrük mä drewen woort, koon bluas {{PLURAL:$1|iansis per stünj|iansis per $1 stünj}} am en nei paaswurd uunfraaget wurd.",
"mailerror": "Fäägel bai dåt siinjen foon e e-mail: $1",
- "acct_creation_throttle_hit": "Beschükern faan detheer wiki mä din IP-adres haa di leetst dai {{PLURAL:$1|1 brükerkonto|$1 brükerkontos}} iinracht. Muar san ei tuläät.\n\nBeschükern mä detdiar IP-adres kön daalang nian brükerkontos muar iinracht.",
+ "acct_creation_throttle_hit": "Beschükern faan detheer wiki mä din IP-adres haa a leetst $2 {{PLURAL:$1|1 brükerkonto|$1 brükerkontos}} iinracht. Muar san ei tuläät.\n\nBeschükern mä detdiar IP-adres kön daalang nian brükerkontos muar iinracht.",
"emailauthenticated": "Din e-mail-adres as di $2 am a klook $3 gudkäänd wurden.",
"emailnotauthenticated": "Din e-mail-adres as noch ei gudkäänd. Jodiar e-mail-funktjuunen kön iarst brükt wurd, wan det adres gudkäänd wurden as.",
"noemailprefs": "Du en e-mail-adres uun din iinstelangen iin, amdat dü jodiar funktjuunen brük könst.",
"botpasswords-insert-failed": "Di bot-nööm \"$1\" küd ei apnimen wurd. Ferlicht as hi al diar?",
"botpasswords-update-failed": "Di bot-nööm \"$1\" küd ei apnimen wurd. As hi stregen wurden?",
"botpasswords-created-title": "Bot-paaswurd as iinracht wurden.",
- "botpasswords-created-body": "Det bot-paaswurd \"$1\" as iinracht wurden an uun funktjuun.",
+ "botpasswords-created-body": "Det bot-paaswurd för di bot \"$1\" faan di brüker \"$2\" as iinracht wurden.",
"botpasswords-updated-title": "Bot-paaswurd as aktualisiaret wurden.",
- "botpasswords-updated-body": "Det bot-paaswurd \"$1\" as aktualisiaret wurden an uun funktjuun.",
+ "botpasswords-updated-body": "Det bot-paaswurd för di bot \"$1\" faan di brüker \"$2\" as aktualisiaret wurden.",
"botpasswords-deleted-title": "Bot-paaswurd as stregen wurden.",
- "botpasswords-deleted-body": "Det bot-paaswurd \"$1\" as stregen wurden.",
+ "botpasswords-deleted-body": "Det bot-paaswurd för di bot \"$1\" faan di brüker \"$2\" as stregen wurden.",
"resetpass_forbidden": "Det paaswurd koon ei feranert wurd.",
"resetpass-no-info": "Dü skel di uunmelde, am üüb det sidj tutugripen.",
"resetpass-submit-loggedin": "Paaswurd feranre",
"minoredit": "Det as man en letj feranrang",
"watchthis": "Detdiar sidj uun't uug behual",
"savearticle": "Sidj seekre",
+ "savechanges": "Sidj seekre",
+ "publishpage": "Sidj seekre",
+ "publishchanges": "Sidj seekre",
"preview": "Iarst ans luke",
"showpreview": "Iarst ans luke",
"showdiff": "Feranrangen wise",
"tooltip-ca-nstab-category": "Kategoriisidj uunluke",
"tooltip-minoredit": "Detdiar feranrang üs letj kääntiakne.",
"tooltip-save": "Feranrangen seekre",
+ "tooltip-publish": "Din feranrangen seekre",
"tooltip-preview": "Föörskau faan feranrangen üüb detdiar sidj. Iarst noch ans luke, iar dü det sidj seekerst!",
"tooltip-diff": "Feranrangen bi a tekst wise",
"tooltip-compareselectedversions": "Ferskeel tesken tau werjuunen faan detdiar sidj uunwise.",
"logentry-managetags-deactivate": "$1 {{GENDER:$2|hää}} det markiarang \"$4\" för't bewerkin faan brükern of bots de-aktiwiaret.",
"log-name-tag": "Markiarang-logbuk",
"rightsnone": "(-)",
- "revdelete-summary": "tuhuupefootings-komäntoor",
"feedback-adding": "Komentaar woort tu det sidj skrewen ...",
"feedback-back": "Turag",
"feedback-bugcheck": "Gud! Luke noch ans efter, of det ei ferlicht en [$1 bekäänden feeler] as.",
"page_last": "אחרון",
"histlegend": "בחירת גרסאות להשוואה: {{GENDER:|בחר|בחרי|בחרו}} את הגרסאות ש{{GENDER:|ברצונך|ברצונך|ברצונכם}} להשוות ולאחר מכן {{GENDER:|הקש|הקישי|הקישו}} על Enter או {{GENDER:|לחץ|לחצי|לחצו}} על הכפתור שלמטה.<br />\nמקרא: <strong>({{int:cur}})</strong> = השוואה עם הגרסה הנוכחית, <strong>({{int:last}})</strong> = השוואה עם הגרסה הקודמת, <strong>{{int:minoreditletter}}</strong> = עריכה משנית.",
"history-fieldset-title": "חיפוש בהיסטוריית הדף",
- "history-show-deleted": "ער×\99×\9bות מוסתרות בלבד",
+ "history-show-deleted": "×\92רס×\90ות מוסתרות בלבד",
"histfirst": "הישנות ביותר",
"histlast": "החדשות ביותר",
"historysize": "({{PLURAL:$1|בייט אחד|$1 בייטים}})",
"datedefault": "Nemoj postaviti",
"prefs-labs": "Labs mogućnosti",
"prefs-user-pages": "Suradničke stranice",
- "prefs-personal": "Podaci o suradniku",
+ "prefs-personal": "Podatci o suradniku",
"prefs-rc": "Nedavne promjene",
"prefs-watchlist": "Praćene stranice",
"prefs-editwatchlist": "Uredi popis praćenja",
--- /dev/null
+{
+ "@metadata": {
+ "authors": [
+ "Dani",
+ "Futhark1988",
+ "Máté",
+ "R-Joe",
+ "Tacsipacsi"
+ ]
+ },
+ "tog-underline": "Hivatkozások aláhúzása:",
+ "tog-hideminor": "Apró változtatások elrejtése a friss változtatások lapon",
+ "tog-hidepatrolled": "Az ellenőrzött szerkesztések elrejtése a friss változtatások lapon",
+ "tog-newpageshidepatrolled": "Ellenőrzött lapok elrejtése az új lapok listájáról",
+ "tog-extendwatchlist": "A figyelőlistán az összes változtatás látszódjon, ne csak az utolsó",
+ "tog-usenewrc": "Szerkesztések csoportosítása oldal szerint a friss változtatásokban és a figyelőlistán",
+ "tog-numberheadings": "Fejezetcímek automatikus számozása",
+ "tog-showtoolbar": "Szerkesztőeszközsor megjelenítése",
+ "tog-editondblclick": "A lapok szerkesztése dupla kattintásra",
+ "tog-editsectiononrightclick": "Szakaszok szerkesztése a szakaszcímre való jobb kattintással",
+ "tog-watchcreations": "Az Ön által létrehozott lapok és feltöltött fájlok felvétele a figyelőlistára",
+ "tog-watchdefault": "Az Ön által szerkesztett lapok és fájlok felvétele a figyelőlistájára",
+ "tog-watchmoves": "Az Ön által átnevezett lapok és fájlok felvétele a figyelőlistájára",
+ "tog-watchdeletion": "Az Ön által törölt lapok és fájlok hozzáadása a figyelőlistájához",
+ "tog-minordefault": "Alapértelmezésben az összes szerkesztése legyen aprónak jelölve",
+ "tog-previewontop": "Előnézet megjelenítése a szerkesztőablak előtt",
+ "tog-previewonfirst": "Előnézet első szerkesztésnél",
+ "tog-enotifwatchlistpages": "Értesítés küldése e-mailben, ha egy Ön által figyelt lap vagy fájl megváltozik",
+ "tog-enotifusertalkpages": "Értesítés e-mailben, ha megváltozik a vitalapja",
+ "tog-enotifminoredits": "Értesítés küldése e-mailben akkor is, ha egy Ön által figyelt lap vagy fájl megváltozik (apró változtatás)",
+ "tog-enotifrevealaddr": "Jelenítse meg az e-mail címét a figyelmeztető e-mailekben",
+ "tog-shownumberswatching": "A lapot figyelő szerkesztők számának megjelenítése",
+ "tog-oldsig": "A jelenlegi aláírás:",
+ "tog-fancysig": "Az aláírás wikiszöveg (nem lesz automatikusan hivatkozásba rakva)",
+ "tog-uselivepreview": "Élő előnézet használata (kísérleti)",
+ "tog-forceeditsummary": "Figyelmeztetés megjelenítése, ha nem ad meg szerkesztési összefoglalót",
+ "tog-watchlisthideown": "Az Ön szerkesztéseinek elrejtése a figyelőlistáról",
+ "tog-watchlisthidebots": "Robotok szerkesztéseinek elrejtése",
+ "tog-watchlisthideminor": "Apró változtatások elrejtése",
+ "tog-watchlisthideliu": "Bejelentkezett szerkesztők módosításainak elrejtése a figyelőlistáról",
+ "tog-watchlisthideanons": "Névtelen szerkesztések elrejtése",
+ "tog-watchlisthidepatrolled": "Az ellenőrzött szerkesztések elrejtése",
+ "tog-ccmeonemails": "A másoknak küldött e-mailjeiről kapon Ön is másolatot",
+ "tog-diffonly": "Ne mutassa a lap tartalmát a lapváltozatok közötti eltérések megtekintésekor",
+ "tog-showhiddencats": "Rejtett kategóriák megjelenítése",
+ "tog-norollbackdiff": "Ne jelenjenek meg az eltérések visszaállítás után",
+ "underline-always": "mindig",
+ "underline-never": "soha",
+ "underline-default": "Felület és böngésző alapértelmezése szerint",
+ "editfont-style": "A szerkesztőterület betűtípusa:",
+ "editfont-default": "a böngésző alapértelmezett beállítása",
+ "editfont-monospace": "fix szélességű betűtípus",
+ "editfont-sansserif": "talpatlan (sans-serif) betűtípus",
+ "editfont-serif": "talpas (serif) betűtípus",
+ "sunday": "vasárnap",
+ "monday": "hétfő",
+ "tuesday": "kedd",
+ "wednesday": "szerda",
+ "thursday": "csütörtök",
+ "friday": "péntek",
+ "saturday": "szombat",
+ "sun": "vas",
+ "mon": "hét",
+ "tue": "kedd",
+ "wed": "sze",
+ "thu": "csü",
+ "fri": "pén",
+ "sat": "szo",
+ "january": "január",
+ "february": "február",
+ "march": "március",
+ "april": "április",
+ "may_long": "május",
+ "june": "június",
+ "july": "július",
+ "august": "augusztus",
+ "september": "szeptember",
+ "october": "október",
+ "november": "november",
+ "december": "december",
+ "january-gen": "január",
+ "february-gen": "február",
+ "march-gen": "március",
+ "april-gen": "április",
+ "may-gen": "május",
+ "june-gen": "június",
+ "july-gen": "július",
+ "august-gen": "augusztus",
+ "september-gen": "szeptember",
+ "october-gen": "október",
+ "november-gen": "november",
+ "december-gen": "december",
+ "jan": "jan",
+ "feb": "febr",
+ "mar": "márc",
+ "apr": "ápr",
+ "may": "máj",
+ "jun": "jún",
+ "jul": "júl",
+ "aug": "aug",
+ "sep": "szept",
+ "oct": "okt",
+ "nov": "nov",
+ "dec": "dec",
+ "pagecategories": "{{PLURAL:$1|Kategória}}",
+ "category_header": "A(z) „$1” kategóriába tartozó lapok",
+ "subcategories": "Alkategóriák",
+ "category-media-header": "A(z) „$1” kategóriába tartozó médiafájlok",
+ "category-empty": "''Ebben a kategóriában pillanatnyilag egyetlen lap vagy médiafájl sem szerepel.''",
+ "hidden-categories": "{{PLURAL:$1|Rejtett kategória}}",
+ "hidden-category-category": "Rejtett kategóriák",
+ "category-subcat-count": "''{{PLURAL:$2|1=Ennek a kategóriának csak egyetlen alkategóriája van.|2=Ez a kategória az alábbi {{PLURAL:$1|1=alkategóriával|2=$1 alkategóriával}} rendelkezik (összesen $2 alkategóriája van).}}''",
+ "category-subcat-count-limited": "Ebben a kategóriában {{PLURAL:$1|egy|$1}} alkategória található.",
+ "category-article-count": "{{PLURAL:$2|A kategóriában csak a következő lap található.|A következő $1 lap található a kategóriában, összesen $2 lapból.}}",
+ "category-article-count-limited": "Ebben a kategóriában a következő {{PLURAL:$1|lap|$1 lap}} található:",
+ "category-file-count": "{{PLURAL:$2|Csak a következő fájl található ebben a kategóriában.|Az összesen $2 fájlból a következő $1-t listázza ez a kategórialap, a többi a további oldalakon található.}}",
+ "category-file-count-limited": "Ebben a kategóriában a következő {{PLURAL:$1|lap|$1 lap}} található:",
+ "listingcontinuesabbrev": "folyt.",
+ "index-category": "Indexelt lapok",
+ "noindex-category": "Nem indexelt lapok",
+ "broken-file-category": "Hibás fájlhivatkozásokat tartalmazó lapok",
+ "about": "Névjegy",
+ "article": "Szócikk",
+ "newwindow": "(új ablakban nyílik meg)",
+ "cancel": "Mégse",
+ "moredotdotdot": "Tovább…",
+ "mypage": "Lapom",
+ "mytalk": "Vitalap",
+ "anontalk": "Az IP-címhez tartozó vitalap",
+ "navigation": "Navigáció",
+ "and": " és",
+ "qbfind": "Keresés",
+ "qbbrowse": "Böngészés",
+ "qbedit": "Szerkesztés",
+ "qbpageoptions": "Lapbeállítások",
+ "qbmyoptions": "Lapjai",
+ "faq": "GyIK",
+ "faqpage": "Project:GyIK",
+ "actions": "Műveletek",
+ "namespaces": "Névterek",
+ "variants": "Változatok",
+ "errorpagetitle": "Hiba",
+ "returnto": "Vissza a(z) $1 laphoz.",
+ "tagline": "A {{SITENAME}} wikiből",
+ "help": "Segítség",
+ "search": "Keresés",
+ "searchbutton": "Keresés",
+ "go": "Menjen",
+ "searcharticle": "Menjen",
+ "history": "Laptörténet",
+ "history_short": "Laptörténet",
+ "updatedmarker": "az utolsó látogatása óta frissítették",
+ "printableversion": "Nyomtatható változat",
+ "permalink": "Hivatkozás erre a változatra",
+ "print": "Nyomtatás",
+ "view": "Olvasás",
+ "edit": "Szerkesztés",
+ "create": "Létrehozás",
+ "editthispage": "Lap szerkesztése",
+ "create-this-page": "Oldal létrehozása",
+ "delete": "Törlés",
+ "deletethispage": "Lap törlése",
+ "undelete_short": "{{PLURAL:$1|Egy|$1}} szerkesztés helyreállítása",
+ "viewdeleted_short": "{{PLURAL:$1|Egy|$1}} törölt szerkesztés megtekintése",
+ "protect": "Lapvédelem",
+ "protect_change": "módosítás",
+ "protectthispage": "Lapvédelem",
+ "unprotect": "Védelem módosítása",
+ "unprotectthispage": "Védelem módosítása",
+ "newpage": "Új lap",
+ "talkpage": "A lappal kapcsolatos megbeszélés",
+ "talkpagelinktext": "vitalap",
+ "specialpage": "Speciális lap",
+ "personaltools": "Személyes eszközök",
+ "articlepage": "Szócikk megtekintése",
+ "talk": "Vitalap",
+ "views": "Nézetek",
+ "toolbox": "Eszközök",
+ "userpage": "Felhasználó lapjának megtekintése",
+ "projectpage": "Projektlap megtekintése",
+ "imagepage": "A fájl leírólapjának megtekintése",
+ "mediawikipage": "Üzenetlap megtekintése",
+ "templatepage": "Sablon lapjának megtekintése",
+ "viewhelppage": "Súgólap megtekintése",
+ "categorypage": "Kategórialap megtekintése",
+ "viewtalkpage": "Beszélgetés megtekintése",
+ "otherlanguages": "Más nyelveken",
+ "redirectedfrom": "($1 szócikkből átirányítva)",
+ "redirectpagesub": "Átirányító lap",
+ "lastmodifiedat": "A lap utolsó módosítása: $1, $2",
+ "viewcount": "Ezt a lapot {{PLURAL:$1|egy|$1}} alkalommal keresték fel.",
+ "protectedpage": "Védett lap",
+ "jumpto": "Ugrás:",
+ "jumptonavigation": "navigáció",
+ "jumptosearch": "keresés",
+ "view-pool-error": "Sajnos a szerverek jelen pillanatban túl vannak terhelve, mert\ntúl sok felhasználó próbálta megtekinteni ezt az oldalt.\nKérjük, várjon egy kicsit, mielőtt újrapróbálkozna a lap megtekintésével!\n\n$1",
+ "pool-timeout": "Letelt a zárolás feloldására szánt várakozási idő",
+ "pool-queuefull": "A pool sor megtelt",
+ "pool-errorunknown": "Ismeretlen hiba",
+ "aboutsite": "A {{SITENAME}} wikiről",
+ "aboutpage": "Project:Rólunk",
+ "copyright": "A tartalom további jelölés hiányában a(z) $1 feltételei szerint használható fel.",
+ "copyrightpage": "{{ns:project}}:Szerzői jogok",
+ "currentevents": "Aktuális események",
+ "currentevents-url": "Project:Friss események",
+ "disclaimers": "Jogi nyilatkozat",
+ "disclaimerpage": "Project:Jogi nyilatkozat",
+ "edithelp": "Szerkesztési segítség",
+ "mainpage": "Kezdőlap",
+ "mainpage-description": "Kezdőlap",
+ "policy-url": "Project:Irányelvek",
+ "portal": "Közösségi portál",
+ "portal-url": "Project:Közösségi portál",
+ "privacy": "Adatvédelmi irányelvek",
+ "privacypage": "Project:Adatvédelmi irányelvek",
+ "badaccess": "Engedélyezési hiba",
+ "badaccess-group0": "Ezt a tevékenységet Ön nem végezheti el.",
+ "badaccess-groups": "Ezt a tevékenységet csak a(z) $1 {{PLURAL:$2|csoportba|csoportok valamelyikébe}} tartozó felhasználó végezheti el.",
+ "versionrequired": "A MediaWiki $1 verziója szükséges",
+ "versionrequiredtext": "A lap használatához a MediaWiki $1-s verziójára van szükség.\nTovábbi információkat a [[Special:Version|verzióinformációs lapon]] találhat.",
+ "ok": "OK",
+ "retrievedfrom": "A lap eredeti címe: „$1”",
+ "youhavenewmessages": "Új üzenet várja $1! (Az üzenetet $2.)",
+ "youhavenewmessagesmulti": "Új üzenetet várja a(z) $1 wikin",
+ "editsection": "szerkesztés",
+ "editold": "szerkesztés",
+ "viewsourceold": "lapforrás",
+ "editlink": "szerkesztés",
+ "viewsourcelink": "forráskód megtekintése",
+ "editsectionhint": "Szakasz szerkesztése: $1",
+ "toc": "Tartalomjegyzék",
+ "showtoc": "megjelenítés",
+ "hidetoc": "elrejtés",
+ "collapsible-collapse": "becsuk",
+ "collapsible-expand": "kinyit",
+ "nstab-main": "Lap",
+ "nosuchactiontext": "Az URL-ben megadott műveletet érvénytelen.\nValószínűleg elgépelte, hibás hivatkozásra kattintott, vagy a\na(z) {{SITENAME}} által használt szoftver hibája is lehet.",
+ "nospecialpagetext": "<strong>Érvénytelen speciális lapot akart megtekinteni.</strong>\n\nAz érvényes speciális lapok listáját a [[Special:SpecialPages|Speciális lapok]] oldalon találja meg.",
+ "enterlockreason": "Adja meg a lezárás okát, valamint egy becslést, hogy mikor kerül a lezárás feloldásra",
+ "exception-nologin-text": "Ezen lap vagy művelet eléréséhez, kérjük, [[Special:Userlogin|jelentkezzen be]].",
+ "login-security": "Személyazonosságának igazolása",
+ "userlogin-reauth": "Újra be kell jelentkeznie, hogy igazolja, ön $1.",
+ "createacct-loginerror": "A fiók sikeresen létrejött, de nem tudott automatikusan bejelentkezni. Kérjük, [[Special:UserLogin|jelentkezzen be manuálisan]]!",
+ "nosuchuser": "Nem létezik „$1” nevű szerkesztő.\nEllenőrizze, hogy helyesen írta-e be, vagy [[Special:CreateAccount|hozzon létre egy új fiókot]].",
+ "changeemail-newemail-help": "Ha el akarja távolítani az e-mail-címét, ezt a mezőt üresen kell hagynia. Ha eltávolítja az e-mail-címét, nem fogja tudni visszaállítani a jelszavát, és nem fog tudni e-maileket fogadni erről a wikiről.",
+ "changeemail-nochange": "Kérjük, adjon meg egy másik új e-mail-címet.",
+ "noarticletext": "Ez a lap jelenleg nem tartalmaz szöveget.\n[[Special:Search/{{PAGENAME}}|Rákereshet erre a címszóra]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} megtekintheti a kapcsolódó naplókat],\nvagy [{{fullurl:{{FULLPAGENAME}}|action=edit}} létrehozhatja a lapot].</span>",
+ "recentchangeslinked-toolbox": "Kapcsolódó változtatások",
+ "upload-form-label-not-own-work-local-generic-local": "Az [[Special:Upload|alapértelmezett feltöltőoldalt]] is kipróbálhatja.",
+ "filehist": "Fájl történet",
+ "newpages": "Új lapok",
+ "changecontentmodel-submit": "Módosít",
+ "specialpages": "Speciális lapok",
+ "sessionprovider-nocookies": "A sütik le lehetnek tiltva. Engedélyezze a sütiket, és próbálja meg újra!"
+}
"page_last": "ultima",
"histlegend": "Confronto tra versioni: selezionare le caselle corrispondenti alle versioni desiderate e premere Invio o il pulsante in basso.\n\nLegenda: '''({{int:cur}})''' = differenze con la versione attuale, '''({{int:last}})''' = differenze con la versione precedente, '''{{int:minoreditletter}}''' = modifica minore",
"history-fieldset-title": "Naviga nella cronologia",
- "history-show-deleted": "Solo quelli cancellati",
+ "history-show-deleted": "Solo versioni cancellate",
"histfirst": "prima",
"histlast": "ultima",
"historysize": "({{PLURAL:$1|1 byte|$1 byte}})",
"prefs-help-prefershttps": "Dës Astellung gëtt déi nächste Kéier wierksam wou Dir Iech ageloggt.",
"prefswarning-warning": "Dir hutt Ännerunge vun Ären Astellunge gemaach, déi nach net gespäichert goufen.\n\nWann Dir vun dëser Säit erof gitt ouni op \"$1\" ze klicken, da ginn Är Astellungen net aktualiséiert.",
"prefs-tabs-navigation-hint": "Tipp: Dir kënnt d'Feiler no lénks an no riets benotze fir tëscht den Tabs an der Lëscht vun den Tabs ze navigéieren.",
- "userrights": "Benotzerrechterverwaltung",
+ "userrights": "Benotzerrechter",
"userrights-lookup-user": "E Benotzer eraussichen",
"userrights-user-editname": "Benotzernumm uginn:",
"editusergroup": "Benotzergruppe lueden",
"rcfilters-filter-user-experience-level-learner-description": "Aktivitéit vu méi Deeg a méi Ännerunge wéi ''Nei Benotzer'' awer manner wéi ''Erfuere Benotzer''.",
"rcfilters-filter-user-experience-level-experienced-label": "Erfuere Benotzer.",
"rcfilters-filter-user-experience-level-experienced-description": "Méi wéi 30 Deeg Aktivitéit a méi wéi 500 Ännerungen.",
+ "rcfilters-filtergroup-reviewstatus": "Status nokucken",
"rcfilters-filter-patrolled-label": "Nogekuckt",
"rcfilters-filter-patrolled-description": "Ännerungen déi als nogekuckt markéiert sinn.",
"rcfilters-filter-unpatrolled-label": "Net nogekuckt",
"tog-enotifminoredits": "Sió pian-chi̍p mā kià tiān-tsú-phue hōo guá.",
"tog-enotifrevealaddr": "Hō͘ pat-lâng khoàⁿ ê tio̍h oá ê tiān-chú-phoe tē-chí",
"tog-shownumberswatching": "Hián-sī tng leh khoàⁿ ê iōng-chiá sò͘-bo̍k",
- "tog-oldsig": "Chit-má ê chhiam-miâ:",
+ "tog-oldsig": "Lí kì-sêng ê chhiam-miâ:",
"tog-fancysig": "共我的簽名當做文章文字,(無需要自動連結)",
"tog-uselivepreview": "Ēng sui khoàⁿ-māi",
"tog-forceeditsummary": "Pian-chi̍p khài-iàu bô thiⁿ ê sî-chūn, kā goá thê-chhéⁿ",
"tog-ccmeonemails": "Kià hō͘ pa̍t-lâng ê email sūn-soà kià copy hō͘ goá",
"tog-diffonly": "Diff ē-pêng bián hián-sī ia̍h ê loē-iông",
"tog-showhiddencats": "Hián-sī chhàng khí--lâi ê lūi-pia̍t",
- "tog-norollbackdiff": "ká tńg-khí liáu bián-koán cheng-chha goā-chē",
+ "tog-norollbackdiff": "Ká tńg--khí liáu-āu mái tián-sī cheng-chha",
"tog-useeditwarning": "Goá nā iáu-boē pó-chûn siu-kái--ê ia̍h tō thiàu khai, ài kā goá kóng.",
- "tog-prefershttps": "我登入的時陣愛用安全連線",
+ "tog-prefershttps": "Teng-ji̍p ê sî lóng ēng an-choân liân-chiap",
"underline-always": "Tiāⁿ-tio̍h",
"underline-never": "Tiāⁿ-tio̍h mài",
"underline-default": "Tòe liû-lám-khì ê siat-piān",
"newwindow": "(ē khui sin thang-á hián-sī)",
"cancel": "Chhú-siau",
"moredotdotdot": "Iáu-ū",
- "morenotlisted": "這毋是完整的表",
+ "morenotlisted": "Chit-ê lia̍t-toaⁿ khó-lêng iáu bô-chiâu",
"mypage": "Ia̍h",
"mytalk": "Thó-lūn",
"anontalk": "Thó-lūn",
"tagline": "Ùi {{SITENAME}}",
"help": "Soat-bêng-su",
"search": "Chhiau-chhoē",
+ "search-ignored-headings": " #<!-- leave this line exactly as it is --> <pre>\n# Tī chhiau-chhōe tang-tiong m̄-chhap ê thâu-pō͘.\n# Tùi che ê piàn-keng ē tòe thâu-pō͘ hông sek-ín ê sî khai-sí chok-iōng.\n# Lí thang lī-ēng khang pian-chi̍p lâi kiông-chè ia̍h-bīn têng-sin sek-ín.\n# Àn-chiàu ē-té ê kù-hoat:\n# * Só͘-ū tùi \"#\" khai-sí kàu jī-hâng bóe ê jī sī chi̍t-ê chù-kái.\n# * Só͘-ū hui khang-pe̍h jī-hâng kui--ê tio̍h sī m̄ hông chhap ê tê-bo̍k, hâm tōa-sió-jī chāi-lāi ta̍k hāng lóng sī.\nChham-khó\nHiòng-gōa liân-kiat\nSiong-koan\n #</pre> <!-- leave this line exactly as it is -->",
"searchbutton": "Chhoē",
"go": "Lâi-khì",
"searcharticle": "Lâi-khì",
"history": "Ia̍h le̍k-sú",
"history_short": "le̍k-sú",
+ "history_small": "le̍k-sú",
"updatedmarker": "Téng hoê goá lâi chiah liáu ū kái koè--ê",
"printableversion": "Ìn-soat pán-pún",
"permalink": "Éng-kiú liân-kiat",
"talk": "Thó-lūn",
"views": "Khoàⁿ",
"toolbox": "Ke-si",
- "tool-link-userrights": "Piàn-keng {{GENDER:$1|ēng-chiá}} hun-cho͘",
+ "tool-link-userrights": "Piàn-keng {{GENDER:$1|iōng-chiá}} hun-cho͘",
+ "tool-link-userrights-readonly": "Khòaⁿ {{GENDER:$1|iōng-chiá}} hun-cho͘",
+ "tool-link-emailuser": "Email hō͘ chit ūi {{GENDER:$1|iōng-chiá}}",
"userpage": "Khoàⁿ iōng-chiá ê Ia̍h",
"projectpage": "Khoàⁿ sū-kang ia̍h",
"imagepage": "Khoàⁿ tóng-àn ia̍h",
"page_last": "laatste",
"histlegend": "Selectie voor verschillen: selecteer de te vergelijken versies en toets ENTER of de knop onderaan.<br />\nVerklaring afkortingen: '''({{int:cur}})''' = verschil met huidige versie, '''({{int:last}})''' = verschil met voorgaande versie, '''{{int:minoreditletter}}''' = kleine wijziging",
"history-fieldset-title": "Door geschiedenis bladeren",
- "history-show-deleted": "Alleen verwijderd",
+ "history-show-deleted": "Alleen verwijderde versies",
"histfirst": "oudste",
"histlast": "nieuwste",
"historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
"page_last": "zadnja",
"histlegend": "Izbira primerjave: označite okroglo polje ob redakciji za primerjavo in stisnite enter ali gumb na dnu strani.<br />\nLegenda: '''({{int:cur}})''' = primerjava s trenutno redakcijo, '''({{int:last}})''' = primerjava s prejšnjo redakcijo, '''{{int:minoreditletter}}''' = manjše urejanje.",
"history-fieldset-title": "Zgodovina poizvedovanj",
- "history-show-deleted": "Samo izbrisani",
+ "history-show-deleted": "Samo izbrisana redakcija",
"histfirst": "najstarejše",
"histlast": "najnovejše",
"historysize": "({{PLURAL:$1|$1 zlog|$1 zloga|$1 zlogi|$1 zlogov}})",
"prefs-help-prefershttps": "Nastavitev bo začela veljati ob vaši naslednji prijavi.",
"prefswarning-warning": "V svojih nastavitvah ste naredili spremembe, ki jih še niste shranili. Če odidete s strani brez da bi kliknili »$1«, vaših nastavitev ne bomo posodobili.",
"prefs-tabs-navigation-hint": "Namig: Za krmarjenje med zavihki na seznamu zavihkov lahko uporabite levo in desno smerno tipko.",
- "userrights": "Upravljanje s pravicami uporabnikov",
+ "userrights": "Pravice uporabnika",
"userrights-lookup-user": "Izberite uporabnika",
"userrights-user-editname": "Vpišite uporabniško ime:",
"editusergroup": "Naloži uporabniške skupine",
"previewnote": "<strong>Не заборавите да је ово само претпреглед.</strong>\nВаше измене још нису сачуване!",
"continue-editing": "Иди на уређивачки оквир",
"previewconflict": "Овај преглед осликава како ће текст у текстуалном оквиру изгледати.",
- "session_fail_preview": "Ð\9dиÑ\81мо могли да обÑ\80адимо ваÑ\88Ñ\83 изменÑ\83 због гÑ\83биÑ\82ка подаÑ\82ака Ñ\81еÑ\81иÑ\98е.\n\nÐ\9cожда Ñ\81Ñ\82е одÑ\98авÑ\99ени. <strong>Ð\9fÑ\80овеÑ\80иÑ\82е да ли Ñ\81Ñ\82е пÑ\80иÑ\98авÑ\99ен и покÑ\83Ñ\88аÑ\98Ñ\82е поново</strong>.\n\nАко и даље не ради, покушајте да се [[Special:UserLogout|одјавите]] и поново пријавите и проверите да ли су на Вашем претраживачу дозвољени колачићи са овог сајта.",
+ "session_fail_preview": "Ð\98звиÑ\9aавамо Ñ\81е! Ð\9dиÑ\81мо могли да обÑ\80адимо Ð\92аÑ\88Ñ\83 изменÑ\83 због гÑ\83биÑ\82ка подаÑ\82ака Ñ\81еÑ\81иÑ\98е.\n\nÐ\9cожда Ñ\81Ñ\82е одÑ\98авÑ\99ени. <strong>Ð\9fÑ\80овеÑ\80иÑ\82е да ли Ñ\81Ñ\82е пÑ\80иÑ\98авÑ\99ен и покÑ\83Ñ\88аÑ\98Ñ\82е поново</strong>.\nАко и даље не ради, покушајте да се [[Special:UserLogout|одјавите]] и поново пријавите и проверите да ли су на Вашем претраживачу дозвољени колачићи са овог сајта.",
"session_fail_preview_html": "Нисмо могли да обрадимо вашу измену због губитка података сесије.\n\n<em>Будући да је на овом викију омогућен унос HTML ознака, преглед је сакривен као мера предострожности против напада преко јаваскрипта.</em>\n\n<strong>Ако сте покушали да направите праву измену, покушајте поново.<strong>\nАко и даље не ради, покушајте да се [[Special:UserLogout|одјавите]] и поново пријавите и проверите да ли Ваш претраживач дозвољава колачиће са овог сајта.",
"token_suffix_mismatch": "'''Ваша измена је одбачена јер је ваш прегледач убацио знакове интерпункције у новчић уређивања.\nТо се понекад догађа када се користи неисправан посредник.'''",
"edit_form_incomplete": "<strong>Неки делови обрасца за уређивање нису стигли до сервера. Проверите да ли су ваше измене непромењене и покушајте поново.</strong>",
"previewnote": "<strong>Ne zaboravite da je ovo samo pretpregled.</strong>\nVaše izmene još nisu sačuvane!",
"continue-editing": "Idi na uređivački okvir",
"previewconflict": "Ovaj pregled oslikava kako će tekst u tekstualnom okviru izgledati.",
- "session_fail_preview": "'''Nismo mogli da obradimo vašu izmenu zbog gubitka podataka sesije.'''\nPokušajte ponovo.\nAko i dalje ne radi, pokušajte da se [[Special:UserLogout|odjavite]] i ponovo prijavite.",
+ "session_fail_preview": "Izvinjavamo se! Nismo mogli da obradimo Vašu izmenu zbog gubitka podataka sesije.\n\nMožda ste odjavljeni. <strong>Proverite da li ste prijavljen i pokušajte ponovo</strong>.\nAko i dalje ne radi, pokušajte da se [[Special:UserLogout|odjavite]] i ponovo prijavite i proverite da li su na Vašem pretraživaču dozvoljeni kolačići sa ovog sajta.",
"session_fail_preview_html": "'''Nismo mogli da obradimo vašu izmenu zbog gubitka podataka sesije.'''\n\n''Budući da je na ovom vikiju omogućen unos HTML oznaka, pregled je sakriven kao mera predostrožnosti protiv napada preko javaskripta.''\n\n'''Ako ste pokušali da napravite pravu izmenu, pokušajte ponovo.\nAko i dalje ne radi, pokušajte da se [[Special:UserLogout|odjavite]] i ponovo prijavite.'''",
"token_suffix_mismatch": "'''Vaša izmena je odbačena jer je vaš pregledač ubacio znakove interpunkcije u novčić uređivanja.\nTo se ponekad događa kada se koristi neispravan posrednik.'''",
"edit_form_incomplete": "<strong>Neki delovi obrasca za uređivanje nisu stigli do servera. Proverite da li su vaše izmene nepromenjene i pokušajte ponovo.</strong>",
"table_pager_limit_label": "Sayfa başına öğe:",
"table_pager_limit_submit": "Git",
"table_pager_empty": "Sonuç yok",
- "autosumm-blank": "Sayfayı boşalttı",
+ "autosumm-blank": "Sayfa boşaltıldı",
"autosumm-replace": "Sayfa içeriği '$1' ile değiştiriliyor",
"autoredircomment": "[[$1]] sayfasına yönlendirildi",
"autosumm-new": "Yeni sayfa: \"$1\"",
"page_last": "末页",
"histlegend": "差异选择:选中要对比的版本的单选按钮,按Enter键或下方的按钮。<br />说明:<strong>({{int:cur}})</strong>=与最后版本之间的差异,<strong>({{int:last}})</strong>=与上一版本之间的差异,<strong>{{int:minoreditletter}}</strong>=小编辑。",
"history-fieldset-title": "浏览历史",
- "history-show-deleted": "仅显示已删除的版本",
+ "history-show-deleted": "仅限修订版本删除",
"histfirst": "最旧",
"histlast": "最新",
"historysize": "($1字节)",
--- /dev/null
+jquery.ui.draggable.js
+* 71e11de2a3 Fix positioning error with draggable, revert and grid.
+ https://phabricator.wikimedia.org/T140965#2944610
+
+ https://bugs.jqueryui.com/ticket/4696
+
+
+jquery.ui.datepicker
+* 19531f3c23 Add translations in de-AT and de-CH
+
+
+themes/smoothness/jquery.ui.theme.css
+* 5e772e39dd Remove dark color from links inside dialogs
+ https://phabricator.wikimedia.org/T85857
+
+ Removed ".ui-widget-content a { color: #222222; }"
+ and ".ui-widget-header a { color: #222222; }"
+
+
+themes/smoothness/jquery.ui.core.css:
+* dc1c29f204 Collapse border in ui-helper-clearfix
+ https://phabricator.wikimedia.org/T73601
+
+ Backport of upstream change released in jQuery UI v1.10.1
+ - http://bugs.jqueryui.com/ticket/8442
+ - https://github.com/jquery/jquery-ui/commit/cb42ee7ccd
+++ /dev/null
-jquery.ui.theme.css
-* Removed ".ui-widget-content a { color: #222222; }" and
- ".ui-widget-header a { color: #222222; }" due to bug T85857.
.mw-rcfilters-ui-capsuleItemWidget {
background-color: #fff;
border-color: #979797;
+ margin: 0 0.6em 0 0;
color: #222;
// Background and color of the capsule widget need a bit
&.oo-ui-widget-enabled .oo-ui-capsuleMultiselectWidget-handle {
background-color: #f8f9fa;
- border: 1px solid #a2a9b1;
- min-height: 5.5em;
- padding: 0.75em;
+ border-radius: 2px 2px 0 0;
+ padding: 0.3em 0.6em 0.6em 0.6em;
+ margin-top: 1.6em;
+ }
+ .mw-rcfilters-ui-table {
+ margin-top: 0.3em;
}
- &-content-title {
+ &-wrapper-content-title {
font-weight: bold;
color: #54595d;
}
&-search {
max-width: none;
- margin-top: -0.5em;
+ margin-top: -1px;
input {
// We need to reiterate the directionality
.mw-rcfilters-ui-filtersListWidget {
&-title {
font-size: 1.2em;
- padding: 0.75em;
+ padding: 0.75em 0.5em;
// TODO: Unify colors with official design palette
color: #54595d;
}
&-highlight {
width: 1em;
vertical-align: middle;
+ // Using the same padding that the filter item
+ // uses, so the button is aligned with the highlight
+ // buttons for the filters
+ padding-right: 0.5em;
}
&-title {
// Replace the entire fieldset
this.$element.empty().append( $fieldset.contents() );
+ // Make sure enhanced RC re-initializes correctly
+ mw.hook( 'wikipage.content' ).fire( this.$element );
this.cleanUpFieldset();
* Clean up the old-style show/hide that we have implemented in the filter list
*/
mw.rcfilters.ui.FormWrapperWidget.prototype.cleanUpFieldset = function () {
+ var $namespaceSelect = this.$element.find( '#namespace' ),
+ $namespaceCheckboxes = this.$element.find( '#nsassociated, #nsinvert' ),
+ collapseCookieName = 'changeslist-state';
+
this.$element.find( '.rcshowhideoption[data-feature-in-structured-ui=1]' ).each( function () {
// HACK: Remove the text node after the span.
// If there isn't one, we're at the end, so remove the text node before the span.
// Remove the span itself
this.parentNode.removeChild( this );
} );
+
+ // Bind namespace select to change event
+ // see resources/src/mediawiki.special/mediawiki.special.recentchanges.js
+ $namespaceCheckboxes.prop( 'disabled', $namespaceSelect.val() === '' );
+ $namespaceSelect.on( 'change', function () {
+ $namespaceCheckboxes.prop( 'disabled', $( this ).val() === '' );
+ } );
+
+ // Collapse legend
+ // see resources/src/mediawiki.special/mediawiki.special.changelist.legend.js
+ this.$element.find( '.mw-changeslist-legend' )
+ .makeCollapsible( {
+ collapsed: mw.cookie.get( collapseCookieName ) === 'collapsed'
+ } )
+ .on( 'beforeExpand.mw-collapsible', function () {
+ mw.cookie.set( collapseCookieName, 'expanded' );
+ } )
+ .on( 'beforeCollapse.mw-collapsible', function () {
+ mw.cookie.set( collapseCookieName, 'collapsed' );
+ } );
+
};
}( mediaWiki ) );
'MockDjVuHandler' => "$testDir/phpunit/mocks/media/MockDjVuHandler.php",
'MockOggHandler' => "$testDir/phpunit/mocks/media/MockOggHandler.php",
'MockMediaHandlerFactory' => "$testDir/phpunit/mocks/media/MockMediaHandlerFactory.php",
+ 'MockChangesListFilter' => "$testDir/phpunit/mocks/MockChangesListFilter.php",
+ 'MockChangesListFilterGroup' => "$testDir/phpunit/mocks/MockChangesListFilterGroup.php",
'MockWebRequest' => "$testDir/phpunit/mocks/MockWebRequest.php",
'MediaWiki\\Session\\DummySessionBackend'
=> "$testDir/phpunit/mocks/session/DummySessionBackend.php",
);
}
- public function testAutoPriorities() {
- $group = new ChangesListBooleanFilterGroup( [
- 'name' => 'groupName',
- 'priority' => 1,
- 'filters' => [
- [ 'name' => 'hidefoo', 'default' => false, ],
- [ 'name' => 'hidebar', 'default' => false, ],
- [ 'name' => 'hidebaz', 'default' => false, ],
- ],
- ] );
-
- $filters = $group->getFilters();
- $this->assertEquals(
- [
- -2,
- -3,
- -4,
- ],
- array_map(
- function ( $f ) {
- return $f->getPriority();
- },
- array_values( $filters )
- )
- );
- }
-
public function testGetJsData() {
$definition = [
'name' => 'some-group',
);
}
- /**
- * @expectedException MWException
- * @expectedExceptionMessage Supersets can only be defined for filters in the same group
- */
- public function testSetAsSupersetOf() {
- $groupA = new ChangesListBooleanFilterGroup( [
- 'name' => 'groupA',
- 'priority' => 2,
- 'filters' => [
- [
- 'name' => 'foo',
- 'default' => false,
- ],
- [
- 'name' => 'bar',
- 'default' => false,
- ]
- ],
- ] );
-
- $groupB = new ChangesListBooleanFilterGroup( [
- 'name' => 'groupB',
- 'priority' => 3,
- 'filters' => [
- [
- 'name' => 'baz',
- 'default' => true,
- ],
- ],
- ] );
-
- $foo = TestingAccessWrapper::newFromObject( $groupA->getFilter( 'foo' ) );
-
- $bar = $groupA->getFilter( 'bar' );
-
- $baz = $groupB->getFilter( 'baz' );
-
- $foo->setAsSupersetOf( $bar );
- $this->assertArrayEquals( [
- [
- 'group' => 'groupA',
- 'filter' => 'bar',
- ],
- ],
- $foo->subsetFilters,
- /** ordered= */ false,
- /** named= */ true
- );
-
- $foo->setAsSupersetOf( $baz, 'some-message' );
- }
-
public function testIsFeatureAvailableOnStructuredUi() {
$specialPage = $this->getMockBuilder( 'ChangesListSpecialPage' )
->setConstructorArgs( [
--- /dev/null
+<?php
+
+/**
+ * @covers ChangesListFilterGroup
+ */
+class ChangesListFilterGroupTest extends MediaWikiTestCase {
+ // @codingStandardsIgnoreStart
+ /**
+ * @expectedException MWException
+ * @expectedExceptionMessage Group names may not contain '_'. Use the naming convention: 'camelCase'
+ */
+ // @codingStandardsIgnoreEnd
+ public function testReservedCharacter() {
+ new MockChangesListFilterGroup(
+ [
+ 'type' => 'some_type',
+ 'name' => 'group_name',
+ 'priority' => 1,
+ 'filters' => [],
+ ]
+ );
+ }
+
+ public function testAutoPriorities() {
+ $group = new MockChangesListFilterGroup(
+ [
+ 'type' => 'some_type',
+ 'name' => 'groupName',
+ 'isFullCoverage' => true,
+ 'priority' => 1,
+ 'filters' => [
+ [ 'name' => 'hidefoo' ],
+ [ 'name' => 'hidebar' ],
+ [ 'name' => 'hidebaz' ],
+ ],
+ ]
+ );
+
+ $filters = $group->getFilters();
+ $this->assertEquals(
+ [
+ -2,
+ -3,
+ -4,
+ ],
+ array_map(
+ function ( $f ) {
+ return $f->getPriority();
+ },
+ array_values( $filters )
+ )
+ );
+ }
+
+ // Get without warnings
+ public function testGetFilter() {
+ $group = new MockChangesListFilterGroup(
+ [
+ 'type' => 'some_type',
+ 'name' => 'groupName',
+ 'isFullCoverage' => true,
+ 'priority' => 1,
+ 'filters' => [
+ [ 'name' => 'foo' ],
+ ],
+ ]
+ );
+
+ $this->assertEquals(
+ 'foo',
+ $group->getFilter( 'foo' )->getName()
+ );
+
+ $this->assertEquals(
+ null,
+ $group->getFilter( 'bar' )
+ );
+ }
+}
--- /dev/null
+<?php
+
+/**
+ * @covers ChangesListFilter
+ */
+class ChangesListFilterTest extends MediaWikiTestCase {
+ protected $group;
+
+ public function setUp() {
+ $this->group = $this->getGroup( [ 'name' => 'group' ] );
+
+ parent::setUp();
+ }
+
+ protected function getGroup( $groupDefinition ) {
+ return new MockChangesListFilterGroup(
+ $groupDefinition + [
+ 'isFullCoverage' => true,
+ 'type' => 'some_type',
+ 'name' => 'group',
+ 'filters' => [],
+ ]
+ );
+
+ }
+
+ // @codingStandardsIgnoreStart
+ /**
+ * @expectedException MWException
+ * @expectedExceptionMessage Filter names may not contain '_'. Use the naming convention: 'lowercase'
+ */
+ // @codingStandardsIgnoreEnd
+ public function testReservedCharacter() {
+ $filter = new MockChangesListFilter(
+ [
+ 'group' => $this->group,
+ 'name' => 'some_name',
+ 'priority' => 1,
+ ]
+ );
+ }
+
+ // @codingStandardsIgnoreStart
+ /**
+ * @expectedException MWException
+ * @expectedExceptionMessage Two filters in a group cannot have the same name: 'somename'
+ */
+ // @codingStandardsIgnoreEnd
+ public function testDuplicateName() {
+ new MockChangesListFilter(
+ [
+ 'group' => $this->group,
+ 'name' => 'somename',
+ 'priority' => 1,
+ ]
+ );
+
+ new MockChangesListFilter(
+ [
+ 'group' => $this->group,
+ 'name' => 'somename',
+ 'priority' => 2,
+ ]
+ );
+ }
+
+ /**
+ * @expectedException MWException
+ * @expectedExceptionMessage Supersets can only be defined for filters in the same group
+ */
+ public function testSetAsSupersetOf() {
+ $groupA = $this->getGroup(
+ [
+ 'name' => 'groupA',
+ 'filters' => [
+ [
+ 'name' => 'foo',
+ ],
+ [
+ 'name' => 'bar',
+ ]
+ ],
+ ]
+ );
+
+ $groupB = $this->getGroup(
+ [
+ 'name' => 'groupB',
+ 'filters' => [
+ [
+ 'name' => 'baz',
+ ],
+ ],
+ ]
+ );
+
+ $foo = TestingAccessWrapper::newFromObject( $groupA->getFilter( 'foo' ) );
+
+ $bar = $groupA->getFilter( 'bar' );
+
+ $baz = $groupB->getFilter( 'baz' );
+
+ $foo->setAsSupersetOf( $bar );
+ $this->assertArrayEquals( [
+ [
+ 'group' => 'groupA',
+ 'filter' => 'bar',
+ ],
+ ],
+ $foo->subsetFilters,
+ /** ordered= */ false,
+ /** named= */ true
+ );
+
+ $foo->setAsSupersetOf( $baz );
+ }
+}
--- /dev/null
+<?php
+
+class MockChangesListFilter extends ChangesListFilter {
+ public function displaysOnUnstructuredUi( ChangesListSpecialPage $specialPage ) {
+ throw new MWException(
+ 'Not implemented: If the test relies on this, put it one of the ' .
+ 'subclasses\' tests (e.g. ChangesListBooleanFilterTest) ' .
+ 'instead of testing the abstract class'
+ );
+ }
+}
--- /dev/null
+<?php
+
+class MockChangesListFilterGroup extends ChangesListFilterGroup {
+ public function createFilter( array $filterDefinition ) {
+ return new MockChangesListFilter( $filterDefinition );
+ }
+
+ public function registerFilter( MockChangesListFilter $filter ) {
+ $this->filters[$filter->getName()] = $filter;
+ }
+
+ public function isPerGroupRequestParameter() {
+ throw new MWException(
+ 'Not implemented: If the test relies on this, put it one of the ' .
+ 'subclasses\' tests (e.g. ChangesListBooleanFilterGroupTest) ' .
+ 'instead of testing the abstract class'
+ );
+ }
+}