From: jenkins-bot Date: Sat, 27 Jun 2015 13:20:50 +0000 (+0000) Subject: Merge "Fix Button label in OOUI HTML Form and enable flags" X-Git-Tag: 1.31.0-rc.0~10949 X-Git-Url: https://git.cyclocoop.org/admin/?a=commitdiff_plain;h=3b55e4c4170c52145d9a541a7b91c4ae30ed0711;hp=1025f0a79c0ac5d02806ca24fc9c54513d63a7cf;p=lhc%2Fweb%2Fwiklou.git Merge "Fix Button label in OOUI HTML Form and enable flags" --- diff --git a/.gitattributes b/.gitattributes index 69d7b1baab..09f86a3280 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ *.sh eol=lf *.icc binary +*.webp binary diff --git a/RELEASE-NOTES-1.26 b/RELEASE-NOTES-1.26 index c2228ae81d..940adc9998 100644 --- a/RELEASE-NOTES-1.26 +++ b/RELEASE-NOTES-1.26 @@ -30,6 +30,12 @@ production. * (T68699) The expiration of the UserID and Token login cookies ($wgExtendedLoginCookieExpiration) can be configured independently of the expiration of all other cookies ($wgCookieExpiration). +* (T50519) Support for generating JPEG/PNG thumbnails from WebP images added + if ImageMagick is used as image scaler ($wgUseImageMagick = true). Uploading + of WebP images still disabled by default. Add $wgFileExtensions[] = + 'webp'; to LocalSettings.php to enable uploading of WebP images. +* Added a new hook 'EnhancedChangesListModifyLineData', to + modify the data used to build lines in enhanced recentchanges and watchlist. ==== External libraries ==== * Update es5-shim from v4.0.0 to v4.1.5. @@ -39,7 +45,7 @@ production. * Added mediawiki/at-ease 1.0.0 === Bug fixes in 1.26 === -* (bug 51283) load.php sometimes sends 304 response without full headers +* (T53283) load.php sometimes sends 304 response without full headers * (T65198) Talk page tabs now have a "rel=discussion" attribute === Action API changes in 1.26 === @@ -65,7 +71,7 @@ production. MediaWiki supports over 350 languages. Many localisations are updated regularly. Below only new and removed languages are listed, as well as -changes to languages because of Bugzilla reports. +changes to languages because of Phabricator reports. * Languages added: ** dty (डोटेली/Doteli), thanks to translators जनक राज भट्ट, बिप्लब आनन्द, @@ -111,7 +117,9 @@ changes to languages because of Bugzilla reports. instead of many optional positional arguments. Calling the constructor the old way will issue a deprecation warning. * The jquery.mwExtension module was deprecated. - +* $wgSpecialPageGroups was removed (deprecated in 1.21). +* SpecialPageFactory::setGroup was removed (deprecated in 1.21). +* SpecialPageFactory::getGroup was removed (deprecated in 1.21). == Compatibility == @@ -178,4 +186,3 @@ going to run a public MediaWiki, so you can be notified of security fixes. == IRC help == There's usually someone online in #mediawiki on irc.freenode.net. - diff --git a/autoload.php b/autoload.php index 504eaf22e2..917b022ea5 100644 --- a/autoload.php +++ b/autoload.php @@ -1040,6 +1040,7 @@ $wgAutoloadLocalClasses = array( 'RevisionList' => __DIR__ . '/includes/RevisionList.php', 'RevisionListBase' => __DIR__ . '/includes/RevisionList.php', 'RevisiondeleteAction' => __DIR__ . '/includes/actions/RevisiondeleteAction.php', + 'RiffExtractor' => __DIR__ . '/includes/libs/RiffExtractor.php', 'RightsLogFormatter' => __DIR__ . '/includes/logging/RightsLogFormatter.php', 'RollbackAction' => __DIR__ . '/includes/actions/RollbackAction.php', 'RollbackEdits' => __DIR__ . '/maintenance/rollbackEdits.php', @@ -1342,6 +1343,7 @@ $wgAutoloadLocalClasses = array( 'WebInstallerUpgrade' => __DIR__ . '/includes/installer/WebInstallerPage.php', 'WebInstallerUpgradeDoc' => __DIR__ . '/includes/installer/WebInstallerPage.php', 'WebInstallerWelcome' => __DIR__ . '/includes/installer/WebInstallerPage.php', + 'WebPHandler' => __DIR__ . '/includes/media/WebP.php', 'WebRequest' => __DIR__ . '/includes/WebRequest.php', 'WebRequestUpload' => __DIR__ . '/includes/WebRequest.php', 'WebResponse' => __DIR__ . '/includes/WebResponse.php', diff --git a/composer.json b/composer.json index 7419eb5b38..f72e7e4266 100644 --- a/composer.json +++ b/composer.json @@ -26,15 +26,15 @@ "psr/log": "1.0.0", "wikimedia/cdb": "1.0.1", "wikimedia/assert": "0.2.2", - "wikimedia/composer-merge-plugin": "1.1.0", + "wikimedia/composer-merge-plugin": "1.2.0", "wikimedia/utfnormal": "1.0.2", "zordius/lightncandy": "0.21" }, "require-dev": { - "jakub-onderka/php-parallel-lint": "~0.8", + "jakub-onderka/php-parallel-lint": "0.9", "justinrainbow/json-schema": "~1.3", "phpunit/phpunit": "3.7.37", - "mediawiki/mediawiki-codesniffer": "0.2.0" + "mediawiki/mediawiki-codesniffer": "0.3.0" }, "suggest": { "ext-fileinfo": "*", diff --git a/docs/extension.schema.json b/docs/extension.schema.json index d7d9e470c5..c9f629c4ac 100644 --- a/docs/extension.schema.json +++ b/docs/extension.schema.json @@ -575,7 +575,7 @@ "type": "object" }, "FilterLogTypes": { - "type": "array" + "type": "object" }, "LogNames": { "type": "object" diff --git a/docs/hooks.txt b/docs/hooks.txt index 8cfdee904f..bcdfa40a70 100644 --- a/docs/hooks.txt +++ b/docs/hooks.txt @@ -1304,6 +1304,13 @@ $changesList: EnhancedChangesList object &$links: The links that were generated by EnhancedChangesList $block: The RecentChanges objects in that block +'EnhancedChangesListModifyLineData': to alter data used to build +a recent change inner line in EnhancedChangesList. +$changesList: EnhancedChangesList object +&$data: An array with all the components that will be joined in order to create the line +$block: An array of RecentChange objects in that block +$rc: The RecentChange object for this line + 'ExemptFromAccountCreationThrottle': Exemption from the account creation throttle. $ip: The ip address of the user @@ -2403,7 +2410,9 @@ such as Special:MyPage and Special:MyTalk. &$redirectParams: An array of parameters preserved by redirecting special pages. 'RejectParserCacheValue': Return false to reject an otherwise usable -cached value from the Parser cache. +cached value from the Parser cache. NOTE: CARELESS USE OF THIS HOOK CAN +HAVE CATASTROPHIC CONSEQUENCES FOR HIGH-TRAFFIC INSTALLATIONS. USE WITH +EXTREME CARE. $parserOutput: ParserOutput value. $wikiPage: WikiPage object. $parserOptions: ParserOptions object. diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 0e6ff165cc..6f2f5b9ba4 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -884,6 +884,7 @@ $wgMediaHandlers = array( 'image/png' => 'PNGHandler', 'image/gif' => 'GIFHandler', 'image/tiff' => 'TiffHandler', + 'image/webp' => 'WebPHandler', 'image/x-ms-bmp' => 'BmpHandler', 'image/x-bmp' => 'BmpHandler', 'image/x-xcf' => 'XCFHandler', @@ -6968,14 +6969,6 @@ $wgAllowSpecialInclusion = true; */ $wgDisableQueryPageUpdate = false; -/** - * List of special pages, followed by what subtitle they should go under - * at Special:SpecialPages - * - * @deprecated since 1.21 Override SpecialPage::getGroupName instead - */ -$wgSpecialPageGroups = array(); - /** * On Special:Unusedimages, consider images "used", if they are put * into a category. Default (false) is not to count those as used. diff --git a/includes/MimeMagic.php b/includes/MimeMagic.php index 3b065255a4..2b240c3b02 100644 --- a/includes/MimeMagic.php +++ b/includes/MimeMagic.php @@ -695,7 +695,7 @@ class MimeMagic { } /* Look for WebP */ - if ( strncmp( $head, "RIFF", 4 ) == 0 && strncmp( substr( $head, 8, 8 ), "WEBPVP8 ", 8 ) == 0 ) { + if ( strncmp( $head, "RIFF", 4 ) == 0 && strncmp( substr( $head, 8, 7 ), "WEBPVP8", 7 ) == 0 ) { wfDebug( __METHOD__ . ": recognized file as image/webp\n" ); return "image/webp"; } diff --git a/includes/Setup.php b/includes/Setup.php index a97cfa6ad9..90fbf61a3e 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -536,7 +536,9 @@ if ( $wgTmpDirectory === false ) { // We don't use counters anymore. Left here for extensions still // expecting this to exist. Should be removed sometime 1.26 or later. -$wgDisableCounters = true; +if ( !isset( $wgDisableCounters ) ) { + $wgDisableCounters = true; +} if ( $wgMainWANCache === false ) { // Setup a WAN cache from $wgMainCacheType with no relayer. diff --git a/includes/User.php b/includes/User.php index 1ee8173b2f..21c09ccb26 100644 --- a/includes/User.php +++ b/includes/User.php @@ -378,7 +378,7 @@ class User implements IDBAccessObject { * @param integer $flags User::READ_* constant bitfield * @return bool False if the ID does not exist, true otherwise */ - public function loadFromId( $flags = self::READ_LATEST ) { + public function loadFromId( $flags = self::READ_NORMAL ) { if ( $this->mId == 0 ) { $this->loadDefaults(); return false; diff --git a/includes/ZhConversion.php b/includes/ZhConversion.php index b59be8c2c3..87cc48e0d6 100644 --- a/includes/ZhConversion.php +++ b/includes/ZhConversion.php @@ -3186,6 +3186,7 @@ $zh2Hant = array( '下签' => '下籤', '下课钟' => '下課鐘', '不干不净' => '不乾不淨', +'不干胶' => '不乾膠', '不克自制' => '不克自制', '不加自制' => '不加自制', '不占凶吉' => '不占凶吉', @@ -3372,7 +3373,6 @@ $zh2Hant = array( '干擦' => '乾擦', '干支剌' => '乾支剌', '干支支' => '乾支支', -'干敲梆子不卖油' => '乾敲梆子不賣油', '干料' => '乾料', '干旱' => '乾旱', '干暖' => '乾暖', @@ -3480,8 +3480,7 @@ $zh2Hant = array( '乱发生' => '亂發生', '乱发脾气' => '亂發脾氣', '乱发' => '亂髮', -'乱哄' => '亂鬨', -'乱哄不过来' => '亂鬨不過來', +'乱哄哄' => '亂鬨鬨', '了然后' => '了然後', '事有斗巧' => '事有鬥巧', '事里' => '事裡', @@ -3726,6 +3725,7 @@ $zh2Hant = array( '亮钟' => '亮鐘', '人云' => '人云', '人如风后入江云' => '人如風後入江雲', +'人干的' => '人幹的', '人欲' => '人慾', '人数只' => '人數只', '人数里' => '人數裡', @@ -3734,6 +3734,7 @@ $zh2Hant = array( '什锦面' => '什錦麵', '仇仇' => '仇讎', '介胄' => '介冑', +'他干的' => '他幹的', '他钟' => '他鐘', '付托' => '付託', '仙后' => '仙后', @@ -3846,6 +3847,7 @@ $zh2Hant = array( '个里' => '個裡', '个钟' => '個鐘', '个钟表' => '個鐘錶', +'们干的' => '們幹的', '幸免' => '倖免', '幸存' => '倖存', '幸幸' => '倖幸', @@ -4109,7 +4111,6 @@ $zh2Hant = array( '利于' => '利於', '刮来刮去' => '刮來刮去', '刮起来' => '刮起來', -'刮风下雪倒便宜' => '刮風下雪倒便宜', '刮胡' => '刮鬍', '到山里' => '到山裡', '制冷机' => '制冷機', @@ -4235,7 +4236,6 @@ $zh2Hant = array( '博尔术' => '博爾朮', '卜云吉' => '卜云吉', '占了卜' => '占了卜', -'占便宜的是呆' => '占便宜的是獃', '印累绶若' => '印纍綬若', '印制' => '印製', '印鉴' => '印鑑', @@ -4702,7 +4702,6 @@ $zh2Hant = array( '太后' => '太后', '太丑' => '太醜', '太阁' => '太閤', -'夯干' => '夯幹', '夸克' => '夸克', '夸父' => '夸父', '夸特' => '夸特', @@ -4839,6 +4838,7 @@ $zh2Hant = array( '对准表' => '對準錶', '对准钟' => '對準鐘', '对准钟表' => '對準鐘錶', +'对着干' => '對着幹', '对华发' => '對華發', '对表中' => '對表中', '对表扬' => '對表揚', @@ -4934,7 +4934,6 @@ $zh2Hant = array( '工作台' => '工作檯', '工致' => '工緻', '左冲右突' => '左衝右突', -'巧妇做不得无面馎饦' => '巧婦做不得無麵餺飥', '巧干' => '巧幹', '巧历' => '巧曆', '巧历史' => '巧歷史', @@ -4996,6 +4995,7 @@ $zh2Hant = array( '干吗' => '幹嗎', '干嘛' => '幹嘛', '干坏事' => '幹壞事', +'干大事' => '幹大事', '干完' => '幹完', '干家' => '幹家', '干得' => '幹得', @@ -5013,7 +5013,8 @@ $zh2Hant = array( '干甚么' => '幹甚麼', '干略' => '幹略', '干当' => '幹當', -'干的停当' => '幹的停當', +'干的事' => '幹的事', +'干的好事' => '幹的好事', '干细胞' => '幹細胞', '干线' => '幹線', '干练' => '幹練', @@ -5141,6 +5142,7 @@ $zh2Hant = array( '很凶' => '很兇', '很准' => '很準', '很丑' => '很醜', +'很松' => '很鬆', '律历志' => '律曆志', '后印' => '後印', '后台老板' => '後台老板', @@ -5356,7 +5358,9 @@ $zh2Hant = array( '怪里怪气' => '怪裡怪氣', '怫郁' => '怫鬱', '恂栗' => '恂慄', +'恒基' => '恒基', '恒生' => '恒生', +'恒隆' => '恒隆', '恕乏价催' => '恕乏价催', '息交绝游' => '息交絕遊', '息谷' => '息穀', @@ -5503,7 +5507,6 @@ $zh2Hant = array( '批复' => '批覆', '批注' => '批註', '批斗' => '批鬥', -'承制' => '承製', '抑制作用' => '抑制作用', '抑制剂' => '抑制劑', '抑郁' => '抑鬱', @@ -6547,6 +6550,7 @@ $zh2Hant = array( '滃郁' => '滃鬱', '滑借' => '滑藉', '汇丰' => '滙豐', +'渗漓' => '滲灕', '卤了' => '滷了', '卤五花' => '滷五花', '卤味' => '滷味', @@ -6590,7 +6594,6 @@ $zh2Hant = array( '澄江县' => '澂江縣', '澄澹精致' => '澄澹精致', '澒蒙' => '澒濛', -'泽渗漓而下降' => '澤滲灕而下降', '淀乃不耕之地' => '澱乃不耕之地', '淀北片' => '澱北片', '淀山' => '澱山', @@ -6659,6 +6662,7 @@ $zh2Hant = array( '烘制' => '烘製', '烤干' => '烤乾', '烤卤' => '烤滷', +'烹制' => '烹製', '焙干' => '焙乾', '无征不信' => '無徵不信', '无业游民' => '無業游民', @@ -6730,7 +6734,6 @@ $zh2Hant = array( '犹如表' => '猶如錶', '犹如钟' => '猶如鐘', '犹如钟表' => '猶如鐘錶', -'呆串了皮' => '獃串了皮', '狱里' => '獄裡', '奖杯' => '獎盃', '独裁制' => '獨裁制', @@ -6743,6 +6746,7 @@ $zh2Hant = array( '玉米面' => '玉米面', '王侯后' => '王侯后', '王后' => '王后', +'王添灯' => '王添灯', '王田里' => '王田里', '王鉴' => '王鑑', '王余鱼' => '王餘魚', @@ -7336,7 +7340,6 @@ $zh2Hant = array( '系辞' => '繫辭', '系鞋带' => '繫鞋帶', '系风捕影' => '繫風捕影', -'继承制' => '繼承制', '累囚' => '纍囚', '累堆' => '纍堆', '累瓦结绳' => '纍瓦結繩', @@ -7462,6 +7465,7 @@ $zh2Hant = array( '卧游' => '臥遊', '臧谷亡羊' => '臧穀亡羊', '临潼斗宝' => '臨潼鬥寶', +'自干五' => '自乾五', '自制一下' => '自制一下', '自制下来' => '自制下來', '自制不' => '自制不', @@ -8396,7 +8400,6 @@ $zh2Hant = array( '鄭凱云' => '鄭凱云', '配制饲料' => '配制飼料', '配图里' => '配圖裡', -'配水干管' => '配水幹管', '配制' => '配製', '酒帘' => '酒帘', '酒气冲天' => '酒氣衝天', @@ -8893,6 +8896,7 @@ $zh2Hant = array( '飘荡' => '飄蕩', '飘游' => '飄遊', '飘飘荡荡' => '飄飄蕩蕩', +'飘发自由女神' => '飄髮自由女神', '飞扎' => '飛紮', '飞刍挽粟' => '飛芻輓粟', '飞行钟' => '飛行鐘', @@ -9181,6 +9185,7 @@ $zh2Hant = array( '斗合' => '鬥合', '斗嘴' => '鬥嘴', '斗地主' => '鬥地主', +'斗垮' => '鬥垮', '斗士' => '鬥士', '斗富' => '鬥富', '斗巧' => '鬥巧', @@ -9196,6 +9201,7 @@ $zh2Hant = array( '斗打' => '鬥打', '斗批改' => '鬥批改', '斗技' => '鬥技', +'斗败' => '鬥敗', '斗文' => '鬥文', '斗智' => '鬥智', '斗暴' => '鬥暴', @@ -9211,6 +9217,7 @@ $zh2Hant = array( '斗牛' => '鬥牛', '斗犀台' => '鬥犀臺', '斗犬' => '鬥犬', +'斗狗' => '鬥狗', '斗狠' => '鬥狠', '斗兽' => '鬥獸', '斗叠' => '鬥疊', @@ -9225,6 +9232,7 @@ $zh2Hant = array( '斗草' => '鬥草', '斗叶儿' => '鬥葉兒', '斗叶子' => '鬥葉子', +'斗蛐' => '鬥蛐', '斗蟋蟀' => '鬥蟋蟀', '斗话' => '鬥話', '斗艳' => '鬥豔', @@ -9358,7 +9366,6 @@ $zh2Hant = array( '曲霉' => '麴黴', '麹霉' => '麴黴', '面人儿' => '麵人兒', -'面价' => '麵價', '面包' => '麵包', '面坊' => '麵坊', '面坯儿' => '麵坯兒', @@ -9370,7 +9377,6 @@ $zh2Hant = array( '面条' => '麵條', '面汤' => '麵湯', '面浆' => '麵漿', -'面灰' => '麵灰', '面疙瘩' => '麵疙瘩', '面皮' => '麵皮', '面码儿' => '麵碼兒', @@ -9380,6 +9386,7 @@ $zh2Hant = array( '面团' => '麵糰', '面缸' => '麵缸', '面茶' => '麵茶', +'面制品' => '麵製品', '面食' => '麵食', '面饺' => '麵餃', '面饼' => '麵餅', @@ -13327,7 +13334,6 @@ $zh2Hans = array( '乾崗' => '乾岗', '乾巛' => '乾巛', '乾州' => '乾州', -'乾式' => '乾式', '乾录' => '乾录', '乾錄' => '乾录', '乾律' => '乾律', @@ -14090,6 +14096,7 @@ $zh2TW = array( '老挝语' => '寮語', '老撾語' => '寮語', '波里活' => '寶萊塢', +'对着干' => '對著幹', '高峰时段' => '尖峰時段', '高峰时间' => '尖峰時間', '贊比亞' => '尚比亞', @@ -17765,6 +17772,7 @@ $zh2CN = array( '東南亞國家協會' => '东南亚国家联盟', '亚细安' => '东盟', '東協' => '东盟', +'仲介' => '中介', '臨著' => '临着', '臨著書' => '临著书', '臨著作' => '临著作', @@ -19249,6 +19257,7 @@ $zh2CN = array( '涵著者' => '涵著者', '涵著述' => '涵著述', '混帳' => '混账', +'清澈' => '清澈', '清帳' => '清账', '渴著' => '渴着', '渴著書' => '渴著书', @@ -20438,8 +20447,8 @@ $zh2CN = array( '髭著稱' => '髭著称', '髭著者' => '髭著者', '髭著述' => '髭著述', -'魚雷射' => '鱼雷射', -'鱼雷射' => '鱼雷射', +'魚雷' => '鱼雷', +'鱼雷' => '鱼雷', '咪高峰' => '麦克风', '黏著' => '黏着', '黏著書' => '黏著书', diff --git a/includes/actions/InfoAction.php b/includes/actions/InfoAction.php index 203c687eb4..0c34ddb4e5 100644 --- a/includes/actions/InfoAction.php +++ b/includes/actions/InfoAction.php @@ -234,7 +234,7 @@ class InfoAction extends FormlessAction { // Display title $displayTitle = $title->getPrefixedText(); - if ( !empty( $pageProperties['displaytitle'] ) ) { + if ( isset( $pageProperties['displaytitle'] ) ) { $displayTitle = $pageProperties['displaytitle']; } @@ -259,7 +259,7 @@ class InfoAction extends FormlessAction { // Default sort key $sortKey = $title->getCategorySortkey(); - if ( !empty( $pageProperties['defaultsort'] ) ) { + if ( isset( $pageProperties['defaultsort'] ) ) { $sortKey = $pageProperties['defaultsort']; } @@ -448,7 +448,8 @@ class InfoAction extends FormlessAction { } } $expiry = $title->getRestrictionExpiry( $restrictionType ); - $formattedexpiry = $this->msg( 'parentheses', $this->getLanguage()->formatExpiry( $expiry ) )->escaped(); + $formattedexpiry = $this->msg( 'parentheses', + $this->getLanguage()->formatExpiry( $expiry ) )->escaped(); $message .= $this->msg( 'word-separator' )->escaped() . $formattedexpiry; // Messages: restriction-edit, restriction-move, restriction-create, diff --git a/includes/api/ApiFeedWatchlist.php b/includes/api/ApiFeedWatchlist.php index d1beef8ae7..853b138379 100644 --- a/includes/api/ApiFeedWatchlist.php +++ b/includes/api/ApiFeedWatchlist.php @@ -126,7 +126,8 @@ class ApiFeedWatchlist extends ApiBase { $msg = wfMessage( 'watchlist' )->inContentLanguage()->text(); - $feedTitle = $this->getConfig()->get( 'Sitename' ) . ' - ' . $msg . ' [' . $this->getConfig()->get( 'LanguageCode' ) . ']'; + $feedTitle = $this->getConfig()->get( 'Sitename' ) . ' - ' . $msg . + ' [' . $this->getConfig()->get( 'LanguageCode' ) . ']'; $feedUrl = SpecialPage::getTitleFor( 'Watchlist' )->getFullURL(); $feed = new $feedClasses[$params['feedformat']] ( diff --git a/includes/api/ApiFormatPhp.php b/includes/api/ApiFormatPhp.php index d88dd40bd4..6420a5b518 100644 --- a/includes/api/ApiFormatPhp.php +++ b/includes/api/ApiFormatPhp.php @@ -68,7 +68,8 @@ class ApiFormatPhp extends ApiFormatBase { preg_match( '/\<\s*cross-domain-policy\s*\>/i', $text ) ) { $this->dieUsage( - 'This response cannot be represented using format=php. See https://bugzilla.wikimedia.org/show_bug.cgi?id=66776', + 'This response cannot be represented using format=php. ' . + 'See https://bugzilla.wikimedia.org/show_bug.cgi?id=66776', 'internalerror' ); } diff --git a/includes/api/i18n/de.json b/includes/api/i18n/de.json index 6c81ff07b7..0f0f548880 100644 --- a/includes/api/i18n/de.json +++ b/includes/api/i18n/de.json @@ -179,7 +179,7 @@ "apihelp-imagerotate-param-rotation": "Anzahl der Grad, um die das Bild im Uhrzeigersinn gedreht werden soll.", "apihelp-imagerotate-example-simple": "Datei:Beispiel.png um 90 Grad drehen.", "apihelp-imagerotate-example-generator": "Alle Bilder in der Kategorie:Flip um 180 Grad drehen.", - "apihelp-import-description": "Importiert eine Seite von einem anderen Wiki oder einer XML-Datei.\n\nBitte beachte, dass der HTTP-POST-Vorgang als Dateiupload ausgeführt werden muss (z.B. durch multipart/form-data), um eine Datei über den xml-Parameter zu senden.", + "apihelp-import-description": "Importiert eine Seite aus einem anderen Wiki oder von einer XML-Datei.\n\nBitte beachte, dass der HTTP-POST-Vorgang als Dateiupload ausgeführt werden muss (z.B. durch multipart/form-data), um eine Datei über den xml-Parameter zu senden.", "apihelp-import-param-summary": "Import-Zusammenfassung.", "apihelp-import-param-xml": "Hochgeladene XML-Datei.", "apihelp-import-param-interwikisource": "Für Interwiki-Importe: Wiki, von dem importiert werden soll.", @@ -271,7 +271,7 @@ "apihelp-query-param-export": "Exportiert die aktuellen Versionen der angegebenen oder generierten Seiten.", "apihelp-query-param-exportnowrap": "Gibt den XML-Export zurück, ohne ihn in ein XML-Ergebnis einzuschließen (gleiches Format wie durch [[Special:Export]]). Kann nur zusammen mit $1export genutzt werden.", "apihelp-query-param-iwurl": "Gibt an, ob die komplette URL zurückgegeben werden soll, wenn der Titel ein Interwikilink ist.", - "apihelp-query-param-rawcontinue": "Gibt rohe query-continue-Daten zur Fortsetzung zurück.", + "apihelp-query-param-rawcontinue": "Gibt query-continue-Rohdaten zur Fortsetzung zurück.", "apihelp-query-example-revisions": "Bezieht [[Special:ApiHelp/query+siteinfo|Seiteninformationen]] und [[Special:ApiHelp/query+revisions|Versionen]] der Main Page.", "apihelp-query-example-allpages": "Bezieht Versionen von Seiten, die mit API/ beginnen.", "apihelp-query+allcategories-description": "Alle Kategorien aufzählen.", diff --git a/includes/api/i18n/el.json b/includes/api/i18n/el.json index 1279f59e4a..867f594335 100644 --- a/includes/api/i18n/el.json +++ b/includes/api/i18n/el.json @@ -14,6 +14,7 @@ "apihelp-createaccount-param-email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου χρήστη (προαιρετικό).", "apihelp-createaccount-param-realname": "Πραγματικό όνομα χρήστη (προαιρετικό).", "apihelp-createaccount-param-mailpassword": "Εάν οριστεί σε οποιαδήποτε τιμή, ένας τυχαίος κωδικός πρόσβασης θα αποσταλεί μέσω ηλεκτρονικού ταχυδρομείου στο χρήστη.", + "apihelp-createaccount-param-language": "Κωδικός γλώσσας που να οριστεί ως προεπιλογή για το χρήστη (προαιρετικό, έχει ως προεπιλογή τη γλώσσα περιεχομένου).", "apihelp-delete-description": "Διαγραφή σελίδας.", "apihelp-delete-example-simple": "Διαγραφή Αρχικής Σελίδας.", "apihelp-edit-description": "Δημιουργία και επεξεργασία σελίδων.", @@ -26,6 +27,7 @@ "apihelp-edit-param-nocreate": "Να εμφανιστεί μήνυμα σφάλματος εάν η σελίδα δεν υπάρχει.", "apihelp-edit-param-watch": "Να προστεθεί η σελίδα στη λίστα παρακολούθησης του τρέχοντα χρήστη.", "apihelp-edit-param-unwatch": "Να αφαιρεθεί η σελίδα από τη λίστα παρακολούθησης του τρέχοντα χρήστη.", + "apihelp-edit-param-contentmodel": "Μοντέλο περιεχομένου για το νέο περιεχόμενο.", "apihelp-edit-example-edit": "Επεξεργασία κάποιας σελίδας.", "apihelp-emailuser-description": "Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου σε χρήστη.", "apihelp-emailuser-param-target": "Χρήστης στον οποίον να σταλεί το μήνυμα ηλεκτρονικού ταχυδρομείου.", diff --git a/includes/api/i18n/es.json b/includes/api/i18n/es.json index 97c38a650d..1923dc9e9b 100644 --- a/includes/api/i18n/es.json +++ b/includes/api/i18n/es.json @@ -9,7 +9,8 @@ "Edslov", "Carlos Cristia", "Ryo567", - "Csbotero" + "Csbotero", + "Chris TR" ] }, "apihelp-main-description": "
\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|Preguntas frecuentes]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correos]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API de anuncios]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n
\nEstado: Todas las características que se muestran en esta página debería funcionar, pero la API aún está en desarrollo activo y puede cambiar en cualquier momento. Suscríbete a [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la lista de correo de mediawiki-api-announce] para estar al día de las actualizaciones.\n\nSolicitudes erróneas: Cuando se envían solicitudes erróneas a la API, se envía un encabezado HTTP con la clave \"MediaWiki-API-Error\" y ambos valores, del encabezado y el código de error, se establecerán en el mismo valor. Para más información, véase [[mw:API:Errors_and_warnings|API: Errores y advertencias]].", @@ -17,6 +18,7 @@ "apihelp-main-param-format": "El formato de la salida.", "apihelp-main-param-smaxage": "Establece el encabezado s-maxage durante estos segundos. Los errores nunca se almacenan en caché.", "apihelp-main-param-maxage": "Establece el encabezado max-age durante estos segundos. Los errores nunca se almacenan en caché.", + "apihelp-main-param-assert": "Comprobar que el usuario haya iniciado sesión si el valor es user o si tiene el permiso de bot si bot.", "apihelp-main-param-requestid": "Cualquier valor dado aquí se incluirá en la respuesta. Se puede utilizar para distinguir solicitudes.", "apihelp-main-param-servedby": "Incluir el nombre del host que ha servido la solicitud en los resultados.", "apihelp-main-param-curtimestamp": "Incluir la marca de tiempo actual en el resultado.", diff --git a/includes/api/i18n/fr.json b/includes/api/i18n/fr.json index 68ed4e8eb2..0b35330917 100644 --- a/includes/api/i18n/fr.json +++ b/includes/api/i18n/fr.json @@ -129,6 +129,10 @@ "apihelp-expandtemplates-paramvalue-prop-properties": "Propriétés de la page définies par le développement des mots magiques dans le wikitexte.", "apihelp-expandtemplates-paramvalue-prop-volatile": "Si la sortie est volatile et ne devrait pas être réutilisée ailleurs dans la page.", "apihelp-expandtemplates-paramvalue-prop-ttl": "Le délai maximum après lequel la mise en cache de ce résultat doit être invalidée.", + "apihelp-expandtemplates-paramvalue-prop-modules": "Tous les modules ResourceLoader que les fonctions d’analyse ont demandé d’ajouter à la sortie. Soit jsconfigvars soit encodedjsconfigvars doit être demandé avec modules.", + "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Donne les variables de configuration JavaScript spécifiques à la page.", + "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Donne les variables de configuration JavaScript spécifiques à la page sous forme de chaîne JSON.", + "apihelp-expandtemplates-paramvalue-prop-parsetree": "L’arbre d’analyse XML de l’entrée.", "apihelp-expandtemplates-param-includecomments": "S’il faut inclure les commentaires HTML dans la sortie.", "apihelp-expandtemplates-param-generatexml": "Générer l’arbre d’analyse XML (remplacé par $1prop=parsetree).", "apihelp-expandtemplates-example-simple": "Développe le wikitexte {{Project:Sandbox}}.", @@ -196,8 +200,8 @@ "apihelp-import-param-interwikipage": "Pour les importations interwiki : page à importer.", "apihelp-import-param-fullhistory": "Pour les importations interwiki : importer tout l’historique, et pas seulement la version courante.", "apihelp-import-param-templates": "Pour les importations interwiki : importer aussi tous les modèles inclus.", - "apihelp-import-param-namespace": "Importer vers cet espace de noms. Écrase le paramètre $1rootpage.", - "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Ignoré si le paramètre $1namespace est fourni.", + "apihelp-import-param-namespace": "Importer vers cet espace de noms. Impossible à utiliser avec $1rootpage.", + "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Impossible à utiliser avec $1namespace.", "apihelp-import-example-import": "Importer [[meta:Help:ParserFunctions]] vers l’espace de noms 100 avec tout l’historique.", "apihelp-login-description": "Se connecter et obtenir les cookies d’authentification.\n\nDans le cas d’une connexion réussie, les cookies nécessaires seront inclus dans les entêtes de la réponse HTTP. Dans le cas d’une connexion en échec, les essais ultérieurs pourront être réduits afin de limiter les attaques automatisées de découverte du mot de passe.", "apihelp-login-param-name": "Nom d’utilisateur.", @@ -237,6 +241,7 @@ "apihelp-opensearch-param-suggest": "Ne rien faire si [[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]] vaut faux.", "apihelp-opensearch-param-redirects": "Comment gérer les redirections :\n;return:Renvoie la redirection elle-même.\n;resolve:Renvoie la page cible. Peut renvoyer moins de $1limit résultats.\nPour des raisons historiques, la valeur par défaut est « return » pour $1format=json et « resolve » pour les autres formats.", "apihelp-opensearch-param-format": "Le format de sortie.", + "apihelp-opensearch-param-warningsaserror": "Si des avertissements sont levés avec format=json, renvoyer une erreur d’API au lieu de les ignorer.", "apihelp-opensearch-example-te": "Trouver les pages commençant par Te.", "apihelp-options-description": "Modifier les préférences de l’utilisateur courant.\n\nSeules les options enregistrées dans le cœur ou dans l’une des extensions installées, ou les options avec une clé préfixée par « userjs- » (devant être utilisées dans les scripts utilisateur), peuvent être définies.", "apihelp-options-param-reset": "Réinitialise les préférences aux valeurs par défaut du site.", @@ -263,7 +268,29 @@ "apihelp-parse-param-pageid": "Analyser le contenu de cette page. Écrase $1page.", "apihelp-parse-param-redirects": "Si le paramètre $1page ou $1pageid est positionné sur une redirection, la résoudre.", "apihelp-parse-param-oldid": "Analyser le contenu de cette révision. Écrase $1page et $1pageid.", - "apihelp-parse-param-prop": "Quelles informations obtenir :\n;text:Fournit le texte analysé du wikitexte.\n;langlinks:Fournit les liens de langue dans le wikitexte analysé.\n;categories:Fournit les catégories dans le wikitexte analysé.\n;categorieshtml:Fournit la version HTML des catégories.\n;links:Fournit les liens internes dans le wikitexte analysé.\n;templates:Fournit les modèles dans le wikitexte analysé.\n;images:Fournit les images dans le wikitexte analysé.\n;externallinks:Fournit les liens externes dans le wikitexte analysé.\n;sections:Fournit les sections dans le wikitexte analysé.\n;revid:Ajoute l’ID de révision de la page analysée.\n;displaytitle:Ajoute le titre du wikitexte analysé.\n;headitems:Fournit les éléments à mettre dans le <head> de la page.\n;headhtml:Fournit le <head> analysé de la page.\n;modules:Fournit les modules ResourceLoader utilisés sur la page.\n;indicators:Fournit le HTML des indicateurs d’état de la page utilisés dans la page.\n;iwlinks:Fournit les liens interwiki dans le wikitexte analysé.\n;wikitext:Fournit le wikitexte d’origine qui a été analysé.\n;properties:Fournit différentes propriétés définies dans le wikitexte analysé.\n;limitreportdata:Fournit le rapport de limite de façon structurée. Ne fournit aucune donnée, quand $1disablepp est activé.\n;limitreporthtml:Fournit la version HTML du rapport de limite. Ne fournit aucune donnée, quand $1disablepp est activé.", + "apihelp-parse-param-prop": "Quelles informations obtenir :", + "apihelp-parse-paramvalue-prop-text": "Fournit le texte analysé du wikitexte.", + "apihelp-parse-paramvalue-prop-langlinks": "Fournit les liens de langue du wikitexte analysé.", + "apihelp-parse-paramvalue-prop-categories": "Fournit les catégories dans le wikitexte analysé.", + "apihelp-parse-paramvalue-prop-categorieshtml": "Fournit la version HTML des catégories.", + "apihelp-parse-paramvalue-prop-links": "Fournit les liens internes dans le wikitexte analysé.", + "apihelp-parse-paramvalue-prop-templates": "Fournit les modèles dans le wikitexte analysé.", + "apihelp-parse-paramvalue-prop-images": "Fournit les images dans le wikitexte analysé.", + "apihelp-parse-paramvalue-prop-externallinks": "Fournit les liens externes dans le wikitexte analysé.", + "apihelp-parse-paramvalue-prop-sections": "Fournit les sections dans le wikitexte analysé.", + "apihelp-parse-paramvalue-prop-revid": "Ajoute l’ID de révision de la page analysée.", + "apihelp-parse-paramvalue-prop-displaytitle": "Ajoute le titre du wikitexte analysé.", + "apihelp-parse-paramvalue-prop-headitems": "Fournit les éléments à mettre dans le <head> de la page.", + "apihelp-parse-paramvalue-prop-headhtml": "Fournit le <head> analysé de la page.", + "apihelp-parse-paramvalue-prop-modules": "Fournit les modules ResourceLoader utilisés sur la page. Soit jsconfigvars soit encodedjsconfigvars doit être demandé avec modules.", + "apihelp-parse-paramvalue-prop-jsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page.", + "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page comme chaîne JSON.", + "apihelp-parse-paramvalue-prop-indicators": "Fournit le HTML des indicateurs d’état de page utilisés sur la page.", + "apihelp-parse-paramvalue-prop-iwlinks": "Fournit les liens interwikis dans le wikitexte analysé.", + "apihelp-parse-paramvalue-prop-wikitext": "Fournit le wikitexte d’origine qui a été analysé.", + "apihelp-parse-paramvalue-prop-properties": "Fournit les diverses propriétés définies dans le wikitexte analysé.", + "apihelp-parse-paramvalue-prop-limitreportdata": "Fournit le rapport de limite d’une manière structurée. Ne fournit aucune donnée, si $1disablepp est positionné.", + "apihelp-parse-paramvalue-prop-limitreporthtml": "Fournit la version HTML du rapport de limite. Ne fournit aucune donnée, si $1disablepp est positionné.", "apihelp-parse-param-pst": "Faire une transformation avant enregistrement de l’entrée avant de l’analyser. Valide uniquement quand utilisé avec du texte.", "apihelp-parse-param-onlypst": "Faire une transformation avant enregistrement (PST) de l’entrée, mais ne pas l’analyser. Renvoie le même wikitexte, après que la PST a été appliquée. Valide uniquement quand utilisé avec $1text.", "apihelp-parse-param-effectivelanglinks": "Inclut les liens de langue fournis par les extensions (à utiliser avec $1prop=langlinks).", @@ -311,7 +338,7 @@ "apihelp-query-param-export": "Exporter les révisions actuelles de toutes les pages fournies ou générées.", "apihelp-query-param-exportnowrap": "Renvoyer le XML exporté sans l’inclure dans un résultat XML (même format que [[Special:Export]]). Utilisable uniquement avec $1export.", "apihelp-query-param-iwurl": "S’il faut obtenir l’URL complète si le titre est un lien interwiki.", - "apihelp-query-param-rawcontinue": "Actuellement ignoré. Plus tard, $1continue deviendra la valeur par défaut et sera nécessaire pour recevoir les données brutes de query-continue.", + "apihelp-query-param-rawcontinue": "Renvoyer les données query-continue brutes pour continuer.", "apihelp-query-example-revisions": "Récupérer [[Special:ApiHelp/query+siteinfo|l’info du site]] et [[Special:ApiHelp/query+revisions|les révisions]] de Page principale.", "apihelp-query-example-allpages": "Récupérer les révisions des pages commençant par API/.", "apihelp-query+allcategories-description": "Énumérer toutes les catégories.", @@ -807,11 +834,11 @@ "apihelp-query+revisions+base-param-difftotext": "Texte auquel comparer chaque révision. Compare uniquement un nombre limité de révisions. Écrase $1diffto. Si $1section est positionné, seule cette section sera comparée avec ce texte", "apihelp-query+revisions+base-param-contentformat": "Format de sérialisation utilisé pour $1difftotext et attendu pour la sortie du contenu.", "apihelp-query+search-description": "Effectuer une recherche en texte intégral.", - "apihelp-query+search-param-search": "Rechercher les titres (ou le contenu) de toutes les pages ayant cette valeur.", + "apihelp-query+search-param-search": "Rechercher les titres de page ou le contenu correspondant à cette valeur. Vous pouvez utiliser la chaîne de recherche pour invoquer des fonctionnalités de recherche spéciales, selon ce que le serveur de recherche du wiki implémente.", "apihelp-query+search-param-namespace": "Rechercher uniquement dans ces espaces de nom.", "apihelp-query+search-param-what": "Quel type de recherche effectuer.", "apihelp-query+search-param-info": "Quelles métadonnées renvoyer.", - "apihelp-query+search-param-prop": "Quelles propriétés renvoyer :\n;size:Ajoute la taille de la page en octets.\n;wordcount:Ajoute le nombre de mots de la page.\n;timestamp:Ajoute l’horodatage de la dernière modification de la page.\n;snippet:Ajoute un extrait analysé de la page.\n;titlesnippet:Ajoute un extrait analysé du titre de la page.\n;redirectsnippet:Ajoute un extrait analysé du titre de la redirection.\n;redirecttitle:Ajoute le titre de la redirection correspondante.\n;sectionsnippet:Ajoute un extrait analysé du titre de la section correspondante.\n;sectiontitle:Ajoute le titre de la section correspondante.\n;score:Obsolète et ignoré.\n;hasrelated:Obsolète et ignoré.", + "apihelp-query+search-param-prop": "Quelles propriétés renvoyer :\n;size:Ajoute la taille de la page en octets.\n;wordcount:Ajoute le nombre de mots de la page.\n;timestamp:Ajoute l’horodatage de la dernière modification de la page.\n;snippet:Ajoute un extrait analysé de la page.\n;titlesnippet:Ajoute un extrait analysé du titre de la page.\n;redirectsnippet:Ajoute un extrait analysé du titre de la redirection.\n;redirecttitle:Ajoute le titre de la redirection correspondante.\n;sectionsnippet:Ajoute un extrait analysé du titre de la section correspondante.\n;sectiontitle:Ajoute le titre de la section correspondante.\n;categorysnippet:Ajoute un extrait analysé de la catégorie correspondante.\n;isfilematch:Ajoute un booléen indiquant si la recherche correspond au contenu du fichier.\n;score:Obsolète et ignoré.\n;hasrelated:Obsolète et ignoré.", "apihelp-query+search-param-limit": "Combien de pages renvoyer au total.", "apihelp-query+search-param-interwiki": "Inclure les résultats interwiki dans la recherche, s’ils sont disponibles.", "apihelp-query+search-param-backend": "Quel serveur de recherche utiliser, si ce n’est pas celui par défaut.", @@ -938,8 +965,14 @@ "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixer l’horodatage de notification pour Page principale afin que toutes les modifications depuis le 1 janvier 2012 soient non vues", "apihelp-setnotificationtimestamp-example-allpages": "Réinitialiser l’état de notification sur les pages dans l’espace de noms {{ns:user}}.", "apihelp-tag-description": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.", + "apihelp-tag-param-rcid": "Un ou plus IDs de modification récente à partir desquels ajouter ou supprimer la balise.", + "apihelp-tag-param-revid": "Un ou plus IDs de révision à partir desquels ajouter ou supprimer la balise.", + "apihelp-tag-param-logid": "Un ou plus IDs d’entrée de journal à partir desquels ajouter ou supprimer la balise.", "apihelp-tag-param-add": "Balises à ajouter. Seules les balises définies manuellement peuvent être ajoutées.", + "apihelp-tag-param-remove": "Balises à supprimer. Seules les balises qui sont soit définies manuellement soit pas du tout définies peuvent être supprimées.", "apihelp-tag-param-reason": "Motif de la modification.", + "apihelp-tag-example-rev": "Ajoute la balise vandalism à partir de l’ID de révision 123 sans indiquer de motif", + "apihelp-tag-example-log": "Supprimer la balise spam à partir de l’ID d’entrée de journal 123 avec le motif Wrongly applied", "apihelp-tokens-description": "Obtenir les jetons pour les actions modifiant les données.\n\nCe module est obsolète, remplacé par [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].", "apihelp-tokens-param-type": "Types de jeton à demander.", "apihelp-tokens-example-edit": "Récupérer un jeton de modification (par défaut).", @@ -1001,10 +1034,13 @@ "apihelp-dumpfm-description": "Extraire les données au format de var_dump() de PHP (affiché proprement en HTML).", "apihelp-json-description": "Extraire les données au format JSON.", "apihelp-json-param-callback": "Si spécifié, inclut la sortie dans l’appel d’une fonction fournie. Pour plus de sûreté, toutes les données spécifiques à l’utilisateur seront restreintes.", - "apihelp-json-param-utf8": "Si spécifié, encode la plupart (mais pas tous) des caractères non ASCII en URF-8 au lieu de les remplacer par leur séquence d’échappement hexadécimale.", + "apihelp-json-param-utf8": "Si spécifié, encode la plupart (mais pas tous) des caractères non ASCII en URF-8 au lieu de les remplacer par leur séquence d’échappement hexadécimale. Valeur par défaut quand formatversion ne vaut pas 1.", + "apihelp-json-param-ascii": "Si spécifié, encode toutes ses séquences d’échappement non ASCII utilisant l’hexadécimal. Valeur par défaut quand formatversion vaut 1.", + "apihelp-json-param-formatversion": "Mise en forme de sortie :\n;1:Format rétro-compatible (booléens de style XML, clés * pour les nœuds de contenu, etc.).\n;2:Format moderne expérimental. Des détails peuvent changer !\n;latest:Utilise le dernier format (actuellement 2), peut changer sans avertissement.", "apihelp-jsonfm-description": "Extraire les données au format JSON (affiché proprement en HTML).", "apihelp-none-description": "Ne rien extraire.", "apihelp-php-description": "Extraire les données au format sérialisé de PHP.", + "apihelp-php-param-formatversion": "Mise en forme de la sortie :\n;1:Format rétro-compatible (bool&ens de style XML, clés * pour les nœuds de contenu, etc.).\n;2:Format moderne expérimental. Des détails peuvent changer !\n;latest:Utilise le dernier format (actuellement 2), peut changer sans avertissement.", "apihelp-phpfm-description": "Extraire les données au format sérialisé de PHP (affiché proprement en HTML).", "apihelp-rawfm-description": "Extraire les données avec les éléments de débogage au format JSON (affiché proprement en HTML).", "apihelp-txt-description": "Extraire les données au format de print_r() de PHP.", @@ -1019,6 +1055,7 @@ "apihelp-yamlfm-description": "Extraire les données YAML (affiché proprement en HTML).", "api-format-title": "Résultat de l’API de MédiaWiki", "api-format-prettyprint-header": "Voici la représentation HTML du format $1. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.\n\nSpécifiez le paramètre format pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez format=$2.\n\nVoyez la [[mw:API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.", + "api-format-prettyprint-header-only-html": "Ceci est une représentation HTML à des fins de déboguage, et n’est pas approprié à une utilisation applicative.\n\nVoir la [[mw:API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.", "api-orm-param-props": "Champs à rechercher.", "api-orm-param-limit": "Nombre maximal de lignes à renvoyer.", "api-pageset-param-titles": "Une liste des titres sur lesquels travailler.", @@ -1046,6 +1083,12 @@ "api-help-param-deprecated": "Obsolète.", "api-help-param-required": "Ce paramètre est obligatoire.", "api-help-datatypes-header": "Type de données", + "api-help-datatypes": "Certains types de paramètre dans les requêtes de l’API nécessitent plus d’explication :\n;boolean\n:Les paramètres booléens fonctionnent comme des cases à cocher HTML : si le paramètre est spécifié, quelle que soit sa valeur, il est considéré comme vrai. Pour une valeur fausse, enlever complètement le paramètre.\n;timestamp\n:Les horodatages peuvent être spécifiés sous différentes formes. Date et heure ISO 8601 est recommandé. Toutes les heures sont en UTC, tout fuseau horaire inclus est ignoré.\n:* Date et heure ISO 8601, 2001-01-15T14:56:00Z (la ponctuation et Z sont facultatifs)\n:* Date et heure ISO 8601 avec fractions de seconde (ignorées), 2001-01-15T14:56:00.00001Z (tirets, deux-points et Z sont facultatifs)\n:* Format MédiaWiki, 20010115145600\n:* Format numérique générique, 2001-01-15 14:56:00 (fuseau horaire facultatif en GMT, +##, ou -## sont ignorés)\n:* Format EXIF, 2001:01:15 14:56:00\n:*Format RFC 2822 (le fuseau horaire est facultatif), Mon, 15 Jan 2001 14:56:00\n:* Format RFC 850 (le fuseau horaire est facultatif), Monday, 15-Jan-2001 14:56:00\n:* Format ctime C, Mon Jan 15 14:56:00 2001\n:* Secondes depuis 1970-01-01T00:00:00Z sous forme d’entier de 1 à 13 chiffres (sans 0)\n:* La chaîne now", + "api-help-param-type-limit": "Type : entier ou max", + "api-help-param-type-integer": "Type : {{PLURAL:$1|1=entier|2=liste d’entiers}}", + "api-help-param-type-boolean": "Type : booléen ([[Special:ApiHelp/main#main/datatypes|détails]])", + "api-help-param-type-timestamp": "Type : {{PLURAL:$1|1=horodatage|2=liste d’horodatages}} ([[Special:ApiHelp/main#main/datatypes|formats autorisés]])", + "api-help-param-type-user": "Type : {{PLURAL:$1|1=nom d’utilisateur|2=liste de noms d’utilisateur}}", "api-help-param-list": "{{PLURAL:$1|1=Une valeur|2=Valeurs (séparées par {{!}})}} : $2", "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Doit être vide|Peut être vide, ou $2}}", "api-help-param-limit": "Pas plus de $1 autorisé.", diff --git a/includes/api/i18n/gl.json b/includes/api/i18n/gl.json index 3a98d08ae8..7a3355ab8c 100644 --- a/includes/api/i18n/gl.json +++ b/includes/api/i18n/gl.json @@ -329,8 +329,7 @@ "apihelp-query-param-export": "Exportar as revisións actuais de todas as páxinas dadas ou xeneradas.", "apihelp-query-param-exportnowrap": "Devolver o XML exportado sen incluílo nun resultado XML (mesmo formato que [[Special:Export]]). Só pode usarse con $1export.", "apihelp-query-param-iwurl": "Se fai falta obter a URL completa se o título é unha ligazón interwiki.", - "apihelp-query-param-continue": "Cando está presente, formatea query-continue como pares clave-valor que simplemente serán mesturados na consulta orixinal. Este parámetro debe fixarse a unha cadea baleira na consulta inicial.\n\nEste parámetro está recomendado para todos os novos desenvolvementos, e será o usado por defecto na seguinte versión da API.", - "apihelp-query-param-rawcontinue": "Actualmente ignorado. No futuro, $1continue virá por defecto e será necesario para recibir os datos en bruto de query-continue.", + "apihelp-query-param-rawcontinue": "Devolver os datos en bruto de query-continue para continuar.", "apihelp-query-example-revisions": "Consultar [[Special:ApiHelp/query+siteinfo|información do sitio]] e [[Special:ApiHelp/query+revisions|as revisións]] da Páxina Principal.", "apihelp-query-example-allpages": "Buscar revisións de páxinas que comecen por API/.", "apihelp-query+allcategories-description": "Numerar tódalas categorías", @@ -1079,7 +1078,6 @@ "api-help-param-type-limit": "Tipo: enteiro ou max", "api-help-param-type-integer": "Tipo: {{PLURAL:$1|1=enteiro|2=lista de enteiros}}", "api-help-param-type-boolean": "Tipo: booleano ([[Special:ApiHelp/main#main/datatypes|detalles]])", - "api-help-param-type-password": "", "api-help-param-type-timestamp": "Tipo: {{PLURAL:$1|1=selo de tempo|2=lista de selos de tempo}} ([[Special:ApiHelp/main#main/datatypes|formatos permitidos]])", "api-help-param-type-user": "Tipo: {{PLURAL:$1|1=nome de usuario|2=lista de nomes de usuarios}}", "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados con {{!}})}}: $2", diff --git a/includes/api/i18n/he.json b/includes/api/i18n/he.json index 23cca405a0..d3a76ba1eb 100644 --- a/includes/api/i18n/he.json +++ b/includes/api/i18n/he.json @@ -11,17 +11,31 @@ "Elyashiv" ] }, + "apihelp-main-description": "
\n* [[mw:API:Main_page|תיעוד]]\n* [[mw:API:FAQ|שו\"ת]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api רשימת דיוור]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce הודעות על API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R באגים ובקשות]\n
\nמצב: כל האפשרויות שמוצגות בדף הזה אמורות לעבוד, אבל ה־API עדיין בפיתוח פעיל, ויכול להשתנות בכל זמן. עשו מינוי ל [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ רשימת הדיוור mediawiki-api-announce] להודעות על עדכונים.\n\nבקשות שגויות: כשבקשות שגויות נשלחות ל־API, תישלח כותרת HTTP עם המפתח \"MediaWiki-API-Error\" ואז גם הערך של הכותרת וגם קוד השגיאה יוגדרו לאותו ערך. למידע נוסף ר' [[mw:API:Errors_and_warnings|API: שגיאות ואזהרות]].", "apihelp-main-param-action": "איזו פעולה לבצע.", "apihelp-main-param-format": "התבנית של הפלט.", + "apihelp-main-param-maxlag": "שיהוי מרבי יכול לשמש כשמדיה־ויקי מותקנת בצביר עם מסד נתונים משוכפל. כדי לחסוך בפעולות שגורמות יותר שיהוי בשכפול אתר, הפרמטר הזה יכול לגרום ללקוח להמתין עד ששיהוי השכפול יורד מתחת לערך שצוין. במקרה של שיהוי מוגזם, קוד השגיאה maxlag מוחזר עם הודעה כמו Waiting for $host: $lag seconds lagged.
ר' [[mw:Manual:Maxlag_parameter|מדריך למשתמש: פרמטר maxlag]] למידע נוסף.", "apihelp-main-param-smaxage": "הגדרת כותרת בקרת מטמון HTTP‏ s-maxage למספר כזה של שניות.", "apihelp-main-param-maxage": "הגדרת כותרת בקרת מטמון HTTP‏ max-age למספר כזה של שניות.", + "apihelp-main-param-assert": "לוודא שהמשתמש נכנס אם זה מוגדר ל־user, או שיש לו הרשאת בוט אם זה bot.", + "apihelp-main-param-requestid": "כל ערך שיינתן כאן ייכלל בתשובה. אפשר להשתמש בזה כדי להבדיל בין בקשות.", + "apihelp-main-param-servedby": "לכלול את שם המארח ששירת את הבקשה בתוצאות.", "apihelp-main-param-curtimestamp": "הכללת חותמת הזמן הנוכחית בתוצאה.", + "apihelp-main-param-origin": "בעת גישה ל־API עם בקשת AJAX חוצה מתחמים (CORS), יש להציב כאן את המתחם שממנו יוצאת הבקשה. זה היה להיות כלול בכל בקשה מקדימה, ולכן הוא חייב להיות חלק מה־URI של הבקשה (לא גוף ה־POST). זה חייב להיות תואם במדויק לאחד המקורות בכותרת Origin, כך שזה צריך להיות מוגדר למשהו כמו https://en.wikipedia.org או https://meta.wikimedia.org. אם הפרמטר הזה אינו תואם לכותרת Origin, תוחזר תשובת 403. אם הפרמטר הזה תורם לכותרת Origin והמקור נמצא ברשימה הלבנה, תוגדר כותרת Access-Control-Allow-Origin.", + "apihelp-main-param-uselang": "באיזו שפה להשתמש לתרגומי הודעות. אפשר לקבל רשימת קודים מ־[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] עם siprop=languages או לציין user כדי להשתמש בהעדפת השפה של המשתמש הנוכחי, או להגדיר את content להשתמש בקוד השפה של הוויקי הזה.", "apihelp-block-description": "חסימת משתמש.", "apihelp-block-param-user": "שם משתמש, כתובת IP, או טווח IP שהנך רוצה לחסום.", + "apihelp-block-param-expiry": "זמן תפוגה. יכול להיות יחסי (למשל 5 months או 2 weeks) או מוחלט (למשל 2014-09-18T12:34:56Z). אם זה מוגדר ל־infinite‏, indefinite, או never, החסימה לא תפוג לעולם.", "apihelp-block-param-reason": "סיבה לחסימה.", "apihelp-block-param-anononly": "לחסום משתמשים אלמוניים בלבד (דהיינו, השבתת עריכות אלמוניות מכתובת ה־IP הזאת)", "apihelp-block-param-nocreate": "מניעת יצירת חשבונות", "apihelp-block-param-autoblock": "חסימה אוטומטית גם של כתובת ה־IP האחרונה שהשתמש בה ושל כל כתובת IP שינסה להשתמש בה בעתיד.", + "apihelp-block-param-reblock": "אם המשתמש כבר חסום, לדרוס את החסימה הנוכחית.", + "apihelp-block-param-watchuser": "לעקוב אחרי דף המשתמש ודף השיחה של המשתמש או של כתובת ה־IP.", + "apihelp-checktoken-param-type": "סוג האסימון שבבדיקה.", + "apihelp-checktoken-param-token": "איזה אסימון לבדוק.", + "apihelp-checktoken-param-maxtokenage": "הגיל המרבי המותר של האסימון, בשניות.", + "apihelp-checktoken-example-simple": "בדיקת התקינות של אסימון csrf.", "apihelp-compare-param-fromtitle": "כותרת ראשונה להשוואה.", "apihelp-compare-param-fromid": "מס׳ זיהוי של העמוד הראשון להשוואה.", "apihelp-compare-param-fromrev": "גרסה ראשונה להשוואה.", @@ -50,29 +64,60 @@ "apihelp-delete-param-unwatch": "הסרת הדף מרשימת המעקב של של המשתמש הנוכחי.", "apihelp-delete-example-simple": "מחיקת Main Page.", "apihelp-delete-example-reason": "מחיקת Main Page. סיבה: Preparing for move.", + "apihelp-disabled-description": "היחידה הזאת כובתה.", "apihelp-edit-description": "יצירה ועריכה של דפים.", "apihelp-edit-param-title": "שם הדף לעריכה. לא לשימוש עם $1pageid.", "apihelp-edit-param-pageid": "מזהה הדף לעריכה. לא לשימוש עם $1title.", + "apihelp-edit-param-section": "מספר הפסקה 0 לפסקה העליונה, new לפסקה חדשה.", + "apihelp-edit-param-sectiontitle": "הכותרת לפסקה החדשה.", "apihelp-edit-param-text": "תוכן הדף.", + "apihelp-edit-param-summary": "תקציר עריכה. גם גותרת פסקה כש־$1section=new ו־$1sectiontitle אינו מוגדר.", "apihelp-edit-param-tags": "אילו תגי שינוי להחיל על הגרסה.", "apihelp-edit-param-minor": "עריכה משנית.", "apihelp-edit-param-notminor": "שינוי לא משני.", "apihelp-edit-param-bot": "סימון עריכה זו כבוט.", + "apihelp-edit-param-basetimestamp": "חותם־זמן של גרסת הבסיס, משמש לזיהוי התנגשויות עריכה. אפשר לקבל אותו באמצעות [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].", + "apihelp-edit-param-recreate": "לעקוב את כל הטעויות על כך שהדף נמחק בינתיים.", + "apihelp-edit-param-createonly": "לא לערוך את הדף אם הוא כבר קיים.", + "apihelp-edit-param-nocreate": "לזרוק שגיאה אם הדף אינו קיים.", "apihelp-edit-param-watch": "הוספת העמוד לרשימת המעקב של המשתמש הנוכחי.", "apihelp-edit-param-unwatch": "הסרת הדף מרשימת המעקב של של המשתמש הנוכחי.", + "apihelp-edit-param-watchlist": "להוסיף את הדף לרשימת המעקב של המשתמש הנוכחי או להסיר אותו משם, להשתמש בהעדפות, או לא לשנות את מצב המעקב.", "apihelp-edit-example-edit": "עריכת דף", "apihelp-emailuser-description": "שליחת דוא\"ל למשתמש.", + "apihelp-emailuser-param-target": "לאיזה משתמש לשלוח דוא\"ל.", + "apihelp-emailuser-param-subject": "כותרת נושא.", + "apihelp-emailuser-param-text": "גוף הדואר.", + "apihelp-emailuser-param-ccme": "שליחת עותק של הדואר הזה אליי.", + "apihelp-expandtemplates-description": "הרחבת כל התבניות בקוד הוויקי.", "apihelp-expandtemplates-param-title": "כותרת הדף.", + "apihelp-expandtemplates-param-text": "איזה קוד ויקי להמיר.", + "apihelp-expandtemplates-paramvalue-prop-wikitext": "קוד הוויקי המורחב.", "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.", "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.", + "apihelp-expandtemplates-paramvalue-prop-parsetree": "×¢×¥ פענוח XML של הקלט.", + "apihelp-expandtemplates-param-includecomments": "האם לכלול הערות HTML בפלט.", + "apihelp-expandtemplates-param-generatexml": "יצירת ×¢×¥ פענוח XML (מוחלף ב־$1prop=parsetree).", + "apihelp-feedcontributions-description": "החזרת הזנת תרומות משתמש.", "apihelp-feedcontributions-param-feedformat": "תסדיר ההזנה.", + "apihelp-feedcontributions-param-user": "לקבל תרומות של אילו משמשים.", + "apihelp-feedcontributions-param-namespace": "לפי איזה מרחב שם לסנן את התרומות.", "apihelp-feedcontributions-param-year": "החל משנה (ולפני כן).", "apihelp-feedcontributions-param-month": "החל מחודש (ולפני כן).", "apihelp-feedcontributions-param-tagfilter": "סינון תרומות בעלות התגיות הבאות.", "apihelp-feedcontributions-param-deletedonly": "הצגת תרומות שנמחקו בלבד.", "apihelp-feedcontributions-param-toponly": "הצגת עריכות שהן הגרסה העדכנית ביותר בלבד.", + "apihelp-feedcontributions-param-newonly": "להציג רק עריכות שהן יצירות דפים.", + "apihelp-feedcontributions-param-showsizediff": "להציג את ההבדל בגודל בין גרסאות.", "apihelp-feedcontributions-example-simple": "החזרת תרומות עבור המשתמש Example.", + "apihelp-feedrecentchanges-description": "להחזיר הזנת שינויים אחרונים.", "apihelp-feedrecentchanges-param-feedformat": "תסדיר ההזנה.", + "apihelp-feedrecentchanges-param-namespace": "לאיזה מרחב שם להגביל את התוצאות.", + "apihelp-feedrecentchanges-param-invert": "כל מרחבי השם למעט זה שנבחר.", + "apihelp-feedrecentchanges-param-associated": "לכלול מרחב שם משויך (שיחה או ראשי).", + "apihelp-feedrecentchanges-param-days": "לכמה ימים להגביל את התוצאות.", + "apihelp-feedrecentchanges-param-limit": "המספר המרבי של התוצאות להחזיר.", + "apihelp-feedrecentchanges-param-from": "להציג תוצאות מאז.", "apihelp-feedrecentchanges-param-hideminor": "הסתרת שינוים משניים.", "apihelp-feedrecentchanges-param-hidebots": "הסתרת שינויים שנעשו על ידי בוטים.", "apihelp-feedrecentchanges-param-hideanons": "הסתרת שינויים שנעשו על ידי אנונימים.", @@ -81,13 +126,41 @@ "apihelp-feedrecentchanges-param-hidemyself": "הסתרת שינוים שנעשו על ידי המשתמש הנוכחי.", "apihelp-feedrecentchanges-param-tagfilter": "סינון לפי תגית.", "apihelp-feedrecentchanges-param-target": "הצגת שינויים שנעשו בדפים המקושרים לדף זה בלבד.", + "apihelp-feedrecentchanges-param-showlinkedto": "להציג את השינויים בדפים שמקושרים לדף שנבחר במקום זה.", "apihelp-feedrecentchanges-example-simple": "הצגת שינויים אחרונים.", "apihelp-feedrecentchanges-example-30days": "הצגת שינויים אחרונים עבור 30 ימים.", + "apihelp-feedwatchlist-description": "החזרת הזנת רשימת מעקב.", "apihelp-feedwatchlist-param-feedformat": "תסדיר ההזנה.", + "apihelp-feedwatchlist-param-hours": "רשימת דפים ששונו בתוך מספר כזה של שעות מעכשיו.", + "apihelp-feedwatchlist-param-linktosections": "לקשר ישר לפסקאות ששונו אם אפשר.", + "apihelp-feedwatchlist-example-default": "הצגת הזנת רשימת מעקב.", + "apihelp-feedwatchlist-example-all6hrs": "להציג את כל השינויים בדפים שבמעקב ב־6 השעות האחרונות.", + "apihelp-filerevert-description": "לשחזר את הקובץ לגרסה ישנה יותר.", + "apihelp-filerevert-param-filename": "שם קובץ היעד, ללא התחילית File:.", + "apihelp-filerevert-param-comment": "הערת העלאה.", + "apihelp-filerevert-param-archivename": "שם הארכיון של הגרסה שאליה ישוחזר הקובץ.", "apihelp-help-description": "הצגת עזרה עבור היחידות שצוינו.", + "apihelp-help-param-recursivesubmodules": "לכלול עזרה לתת־יחידות באופן רקורסיבי.", "apihelp-help-param-helpformat": "תסדיר פלט העזרה.", "apihelp-help-param-toc": "לכלול תוכן עניינים בפלט HTML.", + "apihelp-help-example-main": "עזרה ליחידה הראשית.", + "apihelp-help-example-recursive": "כל העזרה בדף אחד.", + "apihelp-help-example-help": "עזרה ליחידת העזרה עצמה.", + "apihelp-help-example-query": "עזרה לשתי תת־יחידות של שאילתה.", + "apihelp-imagerotate-description": "סיבוב של תמונה אחת או יותר.", + "apihelp-imagerotate-param-rotation": "בכמה מעלות לסובב בכיוון השעון.", + "apihelp-imagerotate-example-simple": "לסובב את File:Example.png ב־90 מעלות.", + "apihelp-imagerotate-example-generator": "לסובב את כל התמונות ב־Category:Flip ב־180 מעלות.", + "apihelp-import-description": "לייבא דף מוויקי אחר או מקובץ XML.\n\nיש לשים לב לכך שפעולת HTTP POST צריכה להיעשות בתור העלאת קובץ (כלומר, עם multipart/form-data) בזמן שליחת קובץ לפרמטר xml.", + "apihelp-import-param-summary": "תקציר יבוא.", "apihelp-import-param-xml": "קובץ XML שהועלה.", + "apihelp-import-param-interwikisource": "ליבוא בין אתרי ויקי: מאיזה ויקי לייבא.", + "apihelp-import-param-interwikipage": "ליבוא בין אתרי ויקי: איזה דף לייבא.", + "apihelp-import-param-fullhistory": "ליבוא בין אתרי ויקי: לייבר את ההיסטוריה המלאה, לא רק את הגרסה הנוכחית.", + "apihelp-import-param-templates": "ליבוא בין אתרי ויקי: לייבא גם את כל התבניות המוכללות.", + "apihelp-import-param-namespace": "לייבא למרחב השם הזה. לא ניתן להשתמש בזה יחד עם $1rootpage.", + "apihelp-import-param-rootpage": "לייבא בתור תת־משנה של הדף הזה. לא ניתן להשתמש בזה יחד עם $1namespace.", + "apihelp-import-example-import": "לייבא את [[meta:Help:ParserFunctions]] למרחב השם 100 עם היסטוריה מלאה.", "apihelp-login-param-name": "שם משתמש.", "apihelp-login-param-password": "ססמה.", "apihelp-login-param-domain": "שם מתחם (רשות).", @@ -103,6 +176,20 @@ "apihelp-opensearch-param-search": "מחרוזת לחיפוש.", "apihelp-opensearch-param-namespace": "שמות מתחם לחיפוש.", "apihelp-opensearch-param-format": "תסדיר הפלט.", + "apihelp-options-param-reset": "אתחול ההעדפות לבררות המחדל של האתר.", + "apihelp-options-example-reset": "אתחול כל ההעדפות.", + "apihelp-paraminfo-description": "קבלת מידע על יחידות של API.", + "apihelp-paraminfo-param-helpformat": "תסדיר מחרוזות העזרה.", + "apihelp-paraminfo-param-pagesetmodule": "קבלת מידע גם על יחידת pageset (שמספק את titles=‎ וידידיו).", + "apihelp-parse-param-summary": "התקציר שצריך לפענח.", + "apihelp-parse-param-prop": "אילו פריטי מידע לקבל:", + "apihelp-parse-paramvalue-prop-text": "נותן טקסט מפוענח של קוד הוויקי.", + "apihelp-parse-paramvalue-prop-langlinks": "נותן קישורי שפה בקוד הוויקי המפוענח.", + "apihelp-parse-paramvalue-prop-categories": "נותן קטגוריות בקוד ויקי מפוענח.", + "apihelp-parse-paramvalue-prop-categorieshtml": "נותן את גרסת ה־HTML של הקטגוריות.", + "apihelp-parse-paramvalue-prop-links": "נותן קישורים פנימיים בקוד הוויקי המפוענח.", + "apihelp-parse-paramvalue-prop-templates": "נותן תבניות בקוד הוויקי המפוענח.", + "apihelp-parse-paramvalue-prop-images": "נותן תמונות בקוד הוויקי המפוענח.", "apihelp-parse-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.", "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.", "apihelp-protect-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.", @@ -110,8 +197,14 @@ "apihelp-query-param-list": "אילו רשימות לקבל.", "apihelp-query+allcategories-description": "מניין של כל הקטגוריות.", "apihelp-query+allcategories-param-from": "הקטגוריה ממנה להתחיל למנות.", + "apihelp-query+allcategories-param-to": "באיזו קטגוריה להפסיק לרשום.", + "apihelp-query+allcategories-param-prefix": "חיפוש כל כותרות הקטגוריות שמתחילות בערך הזה.", "apihelp-query+allcategories-param-dir": "באיזה כיוון למיין.", + "apihelp-query+allcategories-param-min": "להחזיר רק קטגוריות עם מספר כזה לפחות של חברים.", + "apihelp-query+allcategories-param-max": "להחזיר רק קטגוריות עם מספר כזה לכל היותר של חברים.", "apihelp-query+allcategories-param-limit": "כמה קטגוריות להחזיר.", + "apihelp-query+allcategories-param-prop": "אילו מאפיינים לקבל:\n;size:הוספת מספר הדפים בקטגוריה.\n;hidden:מתייג קטגוריות מוסתרות עם __HIDDENCAT__.", + "apihelp-query+allcategories-example-size": "רשימת קטגוריות עם מידע על מספר הדפים בכל אחת מהן.", "apihelp-query+alldeletedrevisions-param-start": "באיזה חותם זמן להתחיל לרשום.", "apihelp-query+alldeletedrevisions-param-end": "באיזה חותם זמן להפסיק לרשום.", "apihelp-query+alldeletedrevisions-param-from": "להתחיל את הרשימה בשם הזה.", @@ -286,34 +379,38 @@ "apihelp-xmlfm-description": "לפלוט נתונים בתסדיר XML (עם הדפסה יפה ב־HTML).", "apihelp-yamlfm-description": "לפלוט נתונים בתסדיר YAML (עם הדפסה יפה ב־HTML).", "api-format-title": "תוצאה של API של מדיה־ויקי", - "api-format-prettyprint-header": "זהו ייצוג ב־HTML של תסדיר $1. תסדיר HTML טוב לתיקון שגיאות, אבל אינו מתאים ליישומים.\n\nיש לציין את הפרמטר format כדי לשנות את תסדיר הפלט. כדי לראות ייצוג של תסדיר $1 לא ב־HTML יש לרשום format=$2.\n\nר' את [https://www.mediawiki.org/wiki/API התיעוד המלא], או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.", + "api-format-prettyprint-header": "זהו ייצוג ב־HTML של תסדיר $1. תסדיר HTML טוב לתיקון שגיאות, אבל אינו מתאים ליישומים.\n\nיש לציין את הפרמטר format כדי לשנות את תסדיר הפלט. כדי לראות ייצוג של תסדיר $1 לא ב־HTML יש לרשום format=$2.\n\nר' את [[mw:API|התיעוד המלא]], או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.", "api-orm-param-props": "באילו שדות לעשות שאילתה.", "api-orm-param-limit": "מספר מרבי של שורות להחזיר.", "api-pageset-param-titles": "רשימת כותרות.", "api-pageset-param-pageids": "רשימת מזהי דף לעובד עליהם.", "api-pageset-param-revids": "רשימת מזהי גרסה לעבוד עליהם.", - "api-pageset-param-generator": "קבלת רשימת דפים לעבוד עליהם על־ידי הרצת יחידת שאילתה שצוינה.\n\n'''לתשומת לבך:''' לשמות בפרמטר generator צריכה להיות התחילית \"g\", ר' דוגמאות.", - "api-pageset-param-redirects-generator": "פתרון אוטומטי של הפניות ב־$1titles, ב־$1pageids, וב־$1revids, ודפים שמחזיר $1generator.", - "api-pageset-param-redirects-nogenerator": "פתרון אוטומטי של הפניות ב־$1titles, ב־$1pageids וב־$1revids.", + "api-pageset-param-generator": "קבלת רשימת דפים לעבוד עליהם על־ידי הרצת יחידת שאילתה שצוינה.\n\nלתשומת לבך: לשמות בפרמטר generator צריכה להיות התחילית \"g\", ר' דוגמאות.", + "api-pageset-param-redirects-generator": "פתרון אוטומטי של הפניות ב־$1titles, ב־$1pageids, וב־$1revids, ודפים שמחזיר $1generator.", + "api-pageset-param-redirects-nogenerator": "פתרון אוטומטי של הפניות ב־$1titles, ב־$1pageids וב־$1pageids.", "api-pageset-param-converttitles": "המרת כותרות לסוגי כתב אחרים אם זה נחוץ. זה עובד רק אם שפת הכותרת של הוויקי תומכת בהמרת סוגי כתב. השפות שתמכות בהמרת סוגי כתב הן $1.", "api-help-title": "עזרה של MediaWiki API", "api-help-lead": "זהו דף תיעוד של API שנוצר באופן אוטומטי.\n\nתיעוד ודוגמאות: https://www.mediawiki.org/wiki/API", "api-help-main-header": "יחידה ראשית", "api-help-flag-deprecated": "יחידה זו אינה מומלצת לשימוש.", - "api-help-flag-internal": "יחידה זו היא פנימית או לא יציבה.\nהפעולה שלה עשויה להשתנות ללא הודעה מוקדמת.", + "api-help-flag-internal": "היחידה הזאת היא פנימית או בלתי־יציבה. הפעולה שלה יכולה להשתנות ללא הודעה מוקדמת.", "api-help-flag-readrights": "יחידה זו דורשת הרשאות קריאה.", "api-help-flag-writerights": "יחידה זו דורשת הרשאות כתיבה.", "api-help-flag-mustbeposted": "יחידה זו מקבלת רק בקשות POST.", - "api-help-flag-generator": "היחידה הזאת יכולה להיות מחולל.", + "api-help-flag-generator": "אפשר להשתמש ביחידה הזאת בתור מחולל.", "api-help-source": "מקור: $1", "api-help-source-unknown": "מקור: לא ידוע", - "api-help-license": "רישיון: [[$1|$2]]", + "api-help-license": "רישיון: [[$1|$2]]", "api-help-license-noname": "רישיון: [[$1|ראו קישור]]", "api-help-license-unknown": "רישיון: לא ידוע", "api-help-parameters": "{{PLURAL:$1|פרמטר|פרמטרים}}:", "api-help-param-deprecated": "מיושן.", "api-help-param-required": "פרמטר זה נדרש.", - "api-help-param-list": "{{PLURAL:$1|1=ערך אחד|2=ערכים (מופרדים באמצעות \"{{!}}\")}}: $2", + "api-help-datatypes-header": "סוגי נתונים", + "api-help-datatypes": "חלק מסוגי הפרמטרים בבקשות API דורשים הסבר נוסף:\n;בוליאני (boolean)\n:פרמטרים בוליאניים עובדים כמו תיבות סימון של HTML: אם הפרמטר צוין, בלי קשר לערך שלו, הוא אמת (true). בשביל ערך שקר (false), יש להשמיט את הפרמטר לגמרי.\n;חותם־זמן (timestamp)\n:אפשר לכתוב חותמי־זמן במספר תסדירים. תאריך ושעה לפי ISO 8601 הוא הדבר המומלת. כל הזמנים מצוינים ב־ UTC, לא תהיה השפעה לשום אזור זמן שיצוין.\n:* תאריך ושעה לפי ISO 8601‏, 2001-01-15T14:56:00Z (לא חובה לכתוב פיסוק ו־Z)\n:* תאריך ושעה לפי ISO 8601 עם חלקי שנייה (שלא תהיה להם שום השפעה), 2001-01-15T14:56:00.00001Z (לא חובה לכתוב קווים מפרידים, נקודתיים ו־Z)\n:* תסדיר MediaWiki‏, 20010115145600\n:* תסדיר מספרי כללי, 2001-01-15 14:56:00 (לאזור זמן אופציונלי של GMT‏, +##, או -## אין השפעה)\n:* תסדיר EXIF‏, 2001:01:15 14:56:00\n:* תסדיר RFC 2822 (אפשר להשמיט את אזור הזמן), Mon, 15 Jan 2001 14:56:00\n:* תסדיר RFC 850 (אפשר להשמיט את אזור הזמן), Monday, 15-Jan-2001 14:56:00\n:* תסדיר C ctime‏, Mon Jan 15 14:56:00 2001\n:* שניות מאז 1970-01-01T00:00:00Z בתור מספר שלך בין 1 ל־13 (לא כולל 0)\n:* המחרוזת now", + "api-help-param-type-integer": "סוג: {{PLURAL:$1|1=מספר שלם|2=רשימת מספרים שלמים}}", + "api-help-param-type-boolean": "סוג: בוליאני ([[Special:ApiHelp/main#main/datatypes|פרטים]])", + "api-help-param-list": "{{PLURAL:$1|1=ערך אחד|2=ערכים (מופרדים באמצעות \"{{!}}\")}}: $2", "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=חייב להיות ריק|יכול להיות ריק או $2}}", "api-help-param-limit": "מספר הפרמטרים לא יכול להיות גדול מ־$1.", "api-help-param-limit2": "המספר המרבי המותר הוא $1 (עבור בוטים – $2).", @@ -327,8 +424,8 @@ "api-help-param-default-empty": "ברירת מחדל: (ריק)", "api-help-param-token": "אסימון \"$1\" אוחזר מ־[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]", "api-help-param-token-webui": "לשם תאימות, גם האסימון שמשמש בממשק דפדפן מתקבל.", - "api-help-param-disabled-in-miser-mode": "כבוי בשל [https://www.mediawiki.org/wiki/Manual:$wgMiserMode מצב חיסכון].", - "api-help-param-limited-in-miser-mode": "'''לתשומת לבך:''' בשל [https://www.mediawiki.org/wiki/Manual:$wgMiserMode מצב חיסכון], שימוש בזה יכול להוביל לפחות מ־\"$1limit\" תוצאות לפני המשך; במצבים קיצוניים ייתכן שיחזרו אפס תוצאות.", + "api-help-param-disabled-in-miser-mode": "כבוי בשל [[mw:Manual:$wgMiserMode|מצב חיסכון]].", + "api-help-param-limited-in-miser-mode": "לתשומת לבך: בשל [[mw:Manual:$wgMiserMode|מצב חיסכון]], שימוש בזה יכול להוביל לפחות מ־$1limit תוצאות לפני המשך; במצבים קיצוניים ייתכן שיחזרו אפס תוצאות.", "api-help-param-direction": "באיזה כיוון למספר:\n;newer:לרשום את הישנים ביותר בהתחלה. לתשומת לבך: $1start חייב להיות לפני $1end.\n;older:לרשום את החדשים ביותר בהתחלה (בררת מחדל). לתשומת לבך: $1start חייב להיות אחרי $1end.", "api-help-param-continue": "כשיש עוד תוצאות, להשתמש בזה בשביל להמשיך.", "api-help-param-no-description": "(ללא תיאור)", diff --git a/includes/api/i18n/ksh.json b/includes/api/i18n/ksh.json index 9be0c62adf..351bac7fa0 100644 --- a/includes/api/i18n/ksh.json +++ b/includes/api/i18n/ksh.json @@ -260,6 +260,7 @@ "apihelp-query-param-prop": "Wat för en Eijeschaffte holle för de affjerohchte Sigge.", "apihelp-query-param-list": "Wat för en Leßte holle.", "apihelp-query-param-meta": "Wat för en Metta_Dahte ze holle.", + "apihelp-query-param-rawcontinue": "Jivv Rühdahte „query-continue“ för et Wigger Maache us.", "apihelp-query-example-allpages": "Holl Väsjohne vun Sigge, di met „API“ bejenne.", "apihelp-query+allcategories-description": "Alle Saachjroppe opzälle.", "apihelp-query+allcategories-param-from": "De Saachjropp, vun woh aan opzälle.", diff --git a/includes/api/i18n/qqq.json b/includes/api/i18n/qqq.json index 051ef0774a..c436d4f9e2 100644 --- a/includes/api/i18n/qqq.json +++ b/includes/api/i18n/qqq.json @@ -8,7 +8,9 @@ "McDutchie", "Raymond", "Anomie", - "Nemo bis" + "Nemo bis", + "Amire80", + "Siebrand" ] }, "apihelp-main-description": "{{doc-apihelp-description|main}}", @@ -168,7 +170,7 @@ "apihelp-feedwatchlist-example-all6hrs": "{{doc-apihelp-example|feedwatchlist}}", "apihelp-filerevert-description": "{{doc-apihelp-description|filerevert}}", "apihelp-filerevert-param-filename": "{{doc-apihelp-param|filerevert|filename}}", - "apihelp-filerevert-param-comment": "{{doc-apihelp-param|filerevert|comment}}", + "apihelp-filerevert-param-comment": "Translate as \"a comment about the upload\".\n\n{{doc-apihelp-param|filerevert|comment}}", "apihelp-filerevert-param-archivename": "{{doc-apihelp-param|filerevert|archivename}}", "apihelp-filerevert-example-revert": "{{doc-apihelp-example|filerevert}}", "apihelp-help-description": "{{doc-apihelp-description|help}}", @@ -1064,7 +1066,7 @@ "api-help-fallback-description": "{{notranslate}}", "api-help-fallback-parameter": "{{notranslate}}", "api-help-fallback-example": "{{notranslate}}", - "api-help-flags": "{{optional}} Label for the API help flags box\n\nParameters:\n* $1 - Number of flags to be displayed", + "api-help-flags": "{{ignored}} Label for the API help flags box\n\nParameters:\n* $1 - Number of flags to be displayed", "api-help-flag-deprecated": "Flag displayed for an API module that is deprecated", "api-help-flag-internal": "Flag displayed for an API module that is considered internal or unstable", "api-help-flag-readrights": "Flag displayed for an API module that requires read rights", @@ -1076,7 +1078,7 @@ "api-help-license": "Displayed in the flags box to indicate the license of an API module.\n\nParameters:\n* $1 - Page to link to display the full license text\n* $2 - Display text for the link\n\nSee also:\n* {{msg-mw|api-help-license-noname}}\n* {{msg-mw|api-help-license-unknown}}", "api-help-license-noname": "Displayed in the flags box to indicate the license of an API module, when the tag for the license is not known.\n\nParameters:\n* $1 - Page to link to display the full license text\n\nSee also:\n* {{msg-mw|api-help-license}}\n* {{msg-mw|api-help-license-unknown}}", "api-help-license-unknown": "Displayed in the flags box to indicate that the license of the API module is not known.\n\nSee also:\n* {{msg-mw|api-help-license}}\n* {{msg-mw|api-help-license-noname}}", - "api-help-help-urls": "{{optional}} Label for the API help urls section\n\nParameters:\n* $1 - Number of urls to be displayed", + "api-help-help-urls": "{{ignored}} Label for the API help urls section\n\nParameters:\n* $1 - Number of urls to be displayed", "api-help-parameters": "Label for the API help parameters section\n\nParameters:\n* $1 - Number of parameters to be displayed\n{{Identical|Parameter}}", "api-help-param-deprecated": "Displayed in the API help for any deprecated parameter\n{{Identical|Deprecated}}", "api-help-param-required": "Displayed in the API help for any required parameter", @@ -1085,7 +1087,7 @@ "api-help-param-type-limit": "{{technical}} {{doc-important|Do not translate text inside <kbd%gt; tags}} Used to indicate that a parameter is a \"limit\" type. Parameters:\n* $1 - Always 1.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]", "api-help-param-type-integer": "{{technical}} Used to indicate that a parameter is an integer or list of integers. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]", "api-help-param-type-boolean": "{{technical}} {{doc-important|Do not translate Special:ApiHelp in this message.}} Used to indicate that a parameter is a boolean. Parameters:\n* $1 - Always 1.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]", - "api-help-param-type-password": "{{optional}}{{technical}} Used to indicate that a parameter is a password or list of passwords. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]", + "api-help-param-type-password": "{{ignored}}{{technical}} Used to indicate that a parameter is a password or list of passwords. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]", "api-help-param-type-timestamp": "{{technical}} {{doc-important|Do not translate Special:ApiHelp in this message.}} Used to indicate that a parameter is a timestamp or list of timestamps. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]", "api-help-param-type-user": "{{technical}} Used to indicate that a parameter is a username or list of usernames. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]", "api-help-param-list": "Used to display the possible values for a parameter taking a list of values\n\nParameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes any number of values\n* $2 - Comma-separated list of values, possibly formatted using {{msg-mw|api-help-param-list-can-be-empty}}\n{{Identical|Value}}", diff --git a/includes/api/i18n/zh-hans.json b/includes/api/i18n/zh-hans.json index d0c124c132..15eba5b346 100644 --- a/includes/api/i18n/zh-hans.json +++ b/includes/api/i18n/zh-hans.json @@ -321,7 +321,8 @@ "apihelp-query-param-prop": "要为已查询页面获取的属性。", "apihelp-query-param-list": "要获取的列表。", "apihelp-query-param-meta": "要获取的元数据。", - "apihelp-query-param-rawcontinue": "目前被忽略。将来$1continue将成为默认,且这里将需要得到原始的query-continue数据。", + "apihelp-query-param-exportnowrap": "返回导出XML,不需要将其包裹在一个XML结果中(与[[Special:Export]]格式相同)。只能与$1export一起使用。", + "apihelp-query-param-rawcontinue": "为继续返回原始query-continue数据。", "apihelp-query-example-revisions": "获取Main Page的[[Special:ApiHelp/query+siteinfo|网站信息]]和[[Special:ApiHelp/query+revisions|修订版本]]。", "apihelp-query-example-allpages": "获取以API/开头的页面的修订版本", "apihelp-query+allcategories-description": "枚举所有类别。", @@ -419,6 +420,7 @@ "apihelp-query+alltransclusions-param-limit": "要返回的总计项目。", "apihelp-query+alltransclusions-param-dir": "罗列所采用的方向。", "apihelp-query+alltransclusions-example-unique": "列出孤立嵌入标题", + "apihelp-query+alltransclusions-example-unique-generator": "获取所有嵌入的标题,并标记缺失的。", "apihelp-query+alltransclusions-example-generator": "获得包含嵌入内容的页面。", "apihelp-query+allusers-description": "列举所有注册用户。", "apihelp-query+allusers-param-from": "枚举的起始用户名。", @@ -487,6 +489,7 @@ "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|模式}}:$2", "apihelp-query+deletedrevs-param-from": "从此标题开始列出。", "apihelp-query+deletedrevs-param-to": "列出至此标题为止。", + "apihelp-query+deletedrevs-param-unique": "每个页面只列出一个修订。", "apihelp-query+deletedrevs-param-tag": "只列出被此标签标记的修订。", "apihelp-query+deletedrevs-param-user": "只列出此用户做出的修订。", "apihelp-query+deletedrevs-param-excludeuser": "不要列出此用户做出的修订。", @@ -529,6 +532,7 @@ "apihelp-query+filearchive-param-sha1": "图片的SHA1哈希值。覆盖$1sha1base36。", "apihelp-query+filearchive-param-sha1base36": "基于base 36的图片的SHA1哈希值(用于MediaWiki)。", "apihelp-query+filearchive-example-simple": "显示已删除文件列表", + "apihelp-query+filerepoinfo-description": "返回有关wiki配置的图片存储库的元信息。", "apihelp-query+filerepoinfo-example-simple": "获得有关文件存储库的信息。", "apihelp-query+fileusage-description": "查找所有使用指定文件的页面。", "apihelp-query+fileusage-param-prop": "要获取的属性:\n;pageid:每个页面的页面ID。\n;title:每个页面的标题。\n;redirect:标记作为重定向的页面。", @@ -578,6 +582,7 @@ "apihelp-query+info-description": "获取基本页面信息。", "apihelp-query+info-param-prop": "要获取的额外属性:", "apihelp-query+info-paramvalue-prop-protection": "列出每个页面的保护等级。", + "apihelp-query+info-paramvalue-prop-talkid": "每个非讨论页面的讨论页的页面ID。", "apihelp-query+info-paramvalue-prop-watched": "列出每个页面的被监视状态。", "apihelp-query+info-paramvalue-prop-watchers": "监视人员数,如果允许。", "apihelp-query+info-paramvalue-prop-subjectid": "每个讨论页的母页面的页面ID。", @@ -693,6 +698,8 @@ "apihelp-query+search-example-simple": "搜索meaning。", "apihelp-query+search-example-text": "搜索文本meaning。", "apihelp-query+search-example-generator": "获得有关搜索meaning返回页面的页面信息。", + "apihelp-query+siteinfo-description": "返回有关网站的一般信息。", + "apihelp-query+siteinfo-param-prop": "要获取的信息:\n;general:全部系统信息。\n;namespaces:注册的名字空间及其规范名称列表。\n;namespacealiases:注册的名字空间别名列表。\n;specialpagealiases:特殊页面别名列表。\n;magicwords:魔术字及其别名列表。\n;statistics:返回网站统计。\n;interwikimap:返回跨wiki映射(可选过滤,可选择使用$1inlanguagecode本地化)。\n;dbrepllag:Returns database server with the highest replication lag.\n;usergroups:Returns user groups and the associated permissions.\n;libraries:Returns libraries installed on the wiki.\n;extensions:Returns extensions installed on the wiki.\n;fileextensions:Returns list of file extensions allowed to be uploaded.\n;rightsinfo:Returns wiki rights (license) information if available.\n;restrictions:Returns information on available restriction (protection) types.\n;languages:Returns a list of languages MediaWiki supports (optionally localised by using $1inlanguagecode).\n;skins:Returns a list of all enabled skins (optionally localised by using $1inlanguagecode, otherwise in the content language).\n;extensiontags:Returns a list of parser extension tags.\n;functionhooks:Returns a list of parser function hooks.\n;showhooks:Returns a list of all subscribed hooks (contents of [[mw:Manual:$wgHooks|$wgHooks]]).\n;variables:Returns a list of variable IDs.\n;protocols:Returns a list of protocols that are allowed in external links.\n;defaultoptions:Returns the default values for user preferences.", "apihelp-query+siteinfo-param-showalldb": "列出所有数据库服务器,不只是最落后的那个。", "apihelp-query+siteinfo-param-numberingroup": "列出用户组中的用户数。", "apihelp-query+siteinfo-param-inlanguagecode": "用于本地化语言名称(尽可能)和皮肤名称的语言代码。", diff --git a/includes/cache/MessageCache.php b/includes/cache/MessageCache.php index 79f4d6c54b..585fcd32c7 100644 --- a/includes/cache/MessageCache.php +++ b/includes/cache/MessageCache.php @@ -1113,7 +1113,8 @@ class MessageCache { if ( !$title || !$title instanceof Title ) { global $wgTitle; - wfDebugLog( 'GlobalTitleFail', __METHOD__ . ' called by ' . wfGetAllCallers( 5 ) . ' with no title set.' ); + wfDebugLog( 'GlobalTitleFail', __METHOD__ . ' called by ' . + wfGetAllCallers( 5 ) . ' with no title set.' ); $title = $wgTitle; } // Sometimes $wgTitle isn't set either... diff --git a/includes/changes/ChangesList.php b/includes/changes/ChangesList.php index 932006d4ce..8989b2aee0 100644 --- a/includes/changes/ChangesList.php +++ b/includes/changes/ChangesList.php @@ -204,7 +204,8 @@ class ChangesList extends ContextSource { $code = $lang->getCode(); static $fastCharDiff = array(); if ( !isset( $fastCharDiff[$code] ) ) { - $fastCharDiff[$code] = $config->get( 'MiserMode' ) || $context->msg( 'rc-change-size' )->plain() === '$1'; + $fastCharDiff[$code] = $config->get( 'MiserMode' ) + || $context->msg( 'rc-change-size' )->plain() === '$1'; } $formattedSize = $lang->formatNum( $szdiff ); @@ -542,6 +543,17 @@ class ChangesList extends ContextSource { } } + /** + * @param RecentChange $rc + * @return string + * @since 1.26 + */ + public function getRollback( RecentChange $rc ) { + $s = ''; + $this->insertRollback( $s, $rc ); + return $s; + } + /** * @param string $s * @param RecentChange $rc @@ -560,6 +572,18 @@ class ChangesList extends ContextSource { $s .= ' ' . $tagSummary; } + /** + * @param RecentChange $rc + * @param array $classes + * @return string + * @since 1.26 + */ + public function getTags( RecentChange $rc, array &$classes ) { + $s = ''; + $this->insertTags( $s, $rc, $classes ); + return $s; + } + public function insertExtra( &$s, &$rc, &$classes ) { // Empty, used for subclasses to add anything special. } diff --git a/includes/changes/EnhancedChangesList.php b/includes/changes/EnhancedChangesList.php index 54cde0dbee..545ea26e19 100644 --- a/includes/changes/EnhancedChangesList.php +++ b/includes/changes/EnhancedChangesList.php @@ -304,18 +304,18 @@ class EnhancedChangesList extends ChangesList { # Classes to apply -- TODO implement $classes = array(); $type = $rcObj->mAttribs['rc_type']; + $data = array(); $trClass = $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched ? ' class="mw-enhanced-watched"' : ''; + $separator = ' . . '; - $r .= ''; - $r .= $this->recentChangesFlags( array( + $data['recentChangesFlags'] = array( 'newpage' => $type == RC_NEW, 'minor' => $rcObj->mAttribs['rc_minor'], 'unpatrolled' => $rcObj->unpatrolled, 'bot' => $rcObj->mAttribs['rc_bot'], - ) ); - $r .= ' '; + ); $params = $queryParams; @@ -340,40 +340,65 @@ class EnhancedChangesList extends ChangesList { $link = '' . $link . ' '; } } - $r .= $link . ''; + $data['timestampLink'] = $link; + $currentAndLastLinks = ''; if ( !$type == RC_LOG || $type == RC_NEW ) { - $r .= ' ' . $this->msg( 'parentheses' )->rawParams( + $currentAndLastLinks .= ' ' . $this->msg( 'parentheses' )->rawParams( $rcObj->curlink . $this->message['pipe-separator'] . $rcObj->lastlink )->escaped(); } - $r .= ' . . '; + $data['currentAndLastLinks'] = $currentAndLastLinks; + $data['separatorAfterCurrentAndLastLinks'] = $separator; # Character diff if ( $RCShowChangedSize ) { $cd = $this->formatCharacterDifference( $rcObj ); if ( $cd !== '' ) { - $r .= $cd . ' . . '; + $data['characterDiff'] = $cd; + $data['separatorAfterCharacterDiff'] = $separator; } } if ( $rcObj->mAttribs['rc_type'] == RC_LOG ) { - $r .= $this->insertLogEntry( $rcObj ); + $data['logEntry'] = $this->insertLogEntry( $rcObj ); } else { # User links - $r .= $rcObj->userlink; - $r .= $rcObj->usertalklink; - $r .= $this->insertComment( $rcObj ); + $data['userLink'] = $rcObj->userlink; + $data['userTalkLink'] = $rcObj->usertalklink; + $data['comment'] = $this->insertComment( $rcObj ); } # Rollback - $this->insertRollback( $r, $rcObj ); + $data['rollback'] = $this->getRollback( $rcObj ); + # Tags - $this->insertTags( $r, $rcObj, $classes ); + $data['tags'] = $this->getTags( $rcObj, $classes ); + + // give the hook a chance to modify the data + Hooks::run( 'EnhancedChangesListModifyLineData', + array( $this, &$data, $block, $rcObj ) ); + + $line = ''; + if ( isset( $data['recentChangesFlags'] ) ) { + $line .= $this->recentChangesFlags( $data['recentChangesFlags'] ); + unset( $data['recentChangesFlags'] ); + } + $line .= ' '; + + if ( isset( $data['timestampLink'] ) ) { + $line .= '' . $data['timestampLink'] . ''; + unset( $data['timestampLink'] ); + } + + // everything else: makes it easier for extensions to add or remove data + $line .= implode( '', $data ); + + $line .= "\n"; - $r .= "\n"; + $r .= $line; } $r .= "\n"; diff --git a/includes/db/Database.php b/includes/db/Database.php index 94cf1f2c3e..2b8cfe255f 100644 --- a/includes/db/Database.php +++ b/includes/db/Database.php @@ -3829,6 +3829,7 @@ abstract class DatabaseBase implements IDatabase { * @param string $prefix Only show tables with this prefix, e.g. mw_ * @param string $fname Calling function name * @throws MWException + * @return array */ function listTables( $prefix = null, $fname = __METHOD__ ) { throw new MWException( 'DatabaseBase::listTables is not implemented in descendant class' ); @@ -3851,6 +3852,7 @@ abstract class DatabaseBase implements IDatabase { * @param string $prefix Only show VIEWs with this prefix, eg. unit_test_ * @param string $fname Name of calling function * @throws MWException + * @return array * @since 1.22 */ public function listViews( $prefix = null, $fname = __METHOD__ ) { @@ -3862,6 +3864,7 @@ abstract class DatabaseBase implements IDatabase { * * @param string $name Name of the database-structure to test. * @throws MWException + * @return bool * @since 1.22 */ public function isView( $name ) { diff --git a/includes/db/DatabaseMysql.php b/includes/db/DatabaseMysql.php index 823d9b67a6..b69efac5b1 100644 --- a/includes/db/DatabaseMysql.php +++ b/includes/db/DatabaseMysql.php @@ -33,10 +33,12 @@ class DatabaseMysql extends DatabaseMysqlBase { * @return resource False on error */ protected function doQuery( $sql ) { + $conn = $this->getBindingHandle(); + if ( $this->bufferResults() ) { - $ret = mysql_query( $sql, $this->mConn ); + $ret = mysql_query( $sql, $conn ); } else { - $ret = mysql_unbuffered_query( $sql, $this->mConn ); + $ret = mysql_unbuffered_query( $sql, $conn ); } return $ret; @@ -48,8 +50,7 @@ class DatabaseMysql extends DatabaseMysqlBase { * @throws DBConnectionError */ protected function mysqlConnect( $realServer ) { - # Fail now - # Otherwise we get a suppressed fatal error, which is very hard to track down + # Avoid a suppressed fatal error, which is very hard to track down if ( !extension_loaded( 'mysql' ) ) { throw new DBConnectionError( $this, @@ -93,8 +94,10 @@ class DatabaseMysql extends DatabaseMysqlBase { * @return bool */ protected function mysqlSetCharset( $charset ) { + $conn = $this->getBindingHandle(); + if ( function_exists( 'mysql_set_charset' ) ) { - return mysql_set_charset( $charset, $this->mConn ); + return mysql_set_charset( $charset, $conn ); } else { return $this->query( 'SET NAMES ' . $charset, __METHOD__ ); } @@ -104,14 +107,18 @@ class DatabaseMysql extends DatabaseMysqlBase { * @return bool */ protected function closeConnection() { - return mysql_close( $this->mConn ); + $conn = $this->getBindingHandle(); + + return mysql_close( $conn ); } /** * @return int */ function insertId() { - return mysql_insert_id( $this->mConn ); + $conn = $this->getBindingHandle(); + + return mysql_insert_id( $conn ); } /** @@ -129,7 +136,9 @@ class DatabaseMysql extends DatabaseMysqlBase { * @return int */ function affectedRows() { - return mysql_affected_rows( $this->mConn ); + $conn = $this->getBindingHandle(); + + return mysql_affected_rows( $conn ); } /** @@ -137,9 +146,11 @@ class DatabaseMysql extends DatabaseMysqlBase { * @return bool */ function selectDB( $db ) { + $conn = $this->getBindingHandle(); + $this->mDBname = $db; - return mysql_select_db( $db, $this->mConn ); + return mysql_select_db( $db, $conn ); } protected function mysqlFreeResult( $res ) { @@ -183,10 +194,14 @@ class DatabaseMysql extends DatabaseMysqlBase { } protected function mysqlRealEscapeString( $s ) { - return mysql_real_escape_string( $s, $this->mConn ); + $conn = $this->getBindingHandle(); + + return mysql_real_escape_string( $s, $conn ); } protected function mysqlPing() { - return mysql_ping( $this->mConn ); + $conn = $this->getBindingHandle(); + + return mysql_ping( $conn ); } } diff --git a/includes/db/DatabaseMysqlBase.php b/includes/db/DatabaseMysqlBase.php index a18964803f..4085fa9c4d 100644 --- a/includes/db/DatabaseMysqlBase.php +++ b/includes/db/DatabaseMysqlBase.php @@ -586,9 +586,12 @@ abstract class DatabaseMysqlBase extends DatabaseBase { function ping() { $ping = $this->mysqlPing(); if ( $ping ) { + // Connection was good or lost but reconnected... + // @note: mysqlnd (php 5.6+) does not support this (PHP bug 52561) return true; } + // Try a full disconnect/reconnect cycle if ping() failed $this->closeConnection(); $this->mOpened = false; $this->mConn = false; @@ -1058,6 +1061,28 @@ abstract class DatabaseMysqlBase extends DatabaseBase { ( $this->lastErrno() == 1290 && strpos( $this->lastError(), '--read-only' ) !== false ); } + /** + * Get the underlying binding handle, mConn + * + * Makes sure that mConn is set (disconnects and ping() failure can unset it). + * This catches broken callers than catch and ignore disconnection exceptions. + * Unlike checking isOpen(), this is safe to call inside of open(). + * + * @return resource|object + * @throws DBUnexpectedError + * @since 1.26 + */ + protected function getBindingHandle() { + if ( !$this->mConn ) { + throw new DBUnexpectedError( + $this, + 'DB connection was already closed or the connection dropped.' + ); + } + + return $this->mConn; + } + /** * @param string $oldName * @param string $newName diff --git a/includes/db/DatabaseMysqli.php b/includes/db/DatabaseMysqli.php index d2b5ecb1cf..8b51d81580 100644 --- a/includes/db/DatabaseMysqli.php +++ b/includes/db/DatabaseMysqli.php @@ -34,10 +34,12 @@ class DatabaseMysqli extends DatabaseMysqlBase { * @return resource */ protected function doQuery( $sql ) { + $conn = $this->getBindingHandle(); + if ( $this->bufferResults() ) { - $ret = $this->mConn->query( $sql ); + $ret = $conn->query( $sql ); } else { - $ret = $this->mConn->query( $sql, MYSQLI_USE_RESULT ); + $ret = $conn->query( $sql, MYSQLI_USE_RESULT ); } return $ret; @@ -50,8 +52,8 @@ class DatabaseMysqli extends DatabaseMysqlBase { */ protected function mysqlConnect( $realServer ) { global $wgDBmysql5; - # Fail now - # Otherwise we get a suppressed fatal error, which is very hard to track down + + # Avoid suppressed fatal error, which is very hard to track down if ( !function_exists( 'mysqli_init' ) ) { throw new DBConnectionError( $this, "MySQLi functions missing," . " have you compiled PHP with the --with-mysqli option?\n" ); @@ -116,8 +118,10 @@ class DatabaseMysqli extends DatabaseMysqlBase { * @return bool */ protected function mysqlSetCharset( $charset ) { - if ( method_exists( $this->mConn, 'set_charset' ) ) { - return $this->mConn->set_charset( $charset ); + $conn = $this->getBindingHandle(); + + if ( method_exists( $conn, 'set_charset' ) ) { + return $conn->set_charset( $charset ); } else { return $this->query( 'SET NAMES ' . $charset, __METHOD__ ); } @@ -127,14 +131,18 @@ class DatabaseMysqli extends DatabaseMysqlBase { * @return bool */ protected function closeConnection() { - return $this->mConn->close(); + $conn = $this->getBindingHandle(); + + return $conn->close(); } /** * @return int */ function insertId() { - return (int)$this->mConn->insert_id; + $conn = $this->getBindingHandle(); + + return (int)$conn->insert_id; } /** @@ -152,7 +160,9 @@ class DatabaseMysqli extends DatabaseMysqlBase { * @return int */ function affectedRows() { - return $this->mConn->affected_rows; + $conn = $this->getBindingHandle(); + + return $conn->affected_rows; } /** @@ -160,9 +170,11 @@ class DatabaseMysqli extends DatabaseMysqlBase { * @return bool */ function selectDB( $db ) { + $conn = $this->getBindingHandle(); + $this->mDBname = $db; - return $this->mConn->select_db( $db ); + return $conn->select_db( $db ); } /** @@ -289,11 +301,15 @@ class DatabaseMysqli extends DatabaseMysqlBase { * @return string */ protected function mysqlRealEscapeString( $s ) { - return $this->mConn->real_escape_string( $s ); + $conn = $this->getBindingHandle(); + + return $conn->real_escape_string( $s ); } protected function mysqlPing() { - return $this->mConn->ping(); + $conn = $this->getBindingHandle(); + + return $conn->ping(); } /** diff --git a/includes/db/LoadBalancer.php b/includes/db/LoadBalancer.php index 069185b796..52dca08758 100644 --- a/includes/db/LoadBalancer.php +++ b/includes/db/LoadBalancer.php @@ -60,8 +60,6 @@ class LoadBalancer { private $mLastError = 'Unknown error'; /** @var integer Total connections opened */ private $connsOpened = 0; - /** @var ProcessCacheLRU */ - private $mProcCache; /** @var integer Warn when this many connection are held */ const CONN_HELD_WARN_THRESHOLD = 10; @@ -113,8 +111,6 @@ class LoadBalancer { } } } - - $this->mProcCache = new ProcessCacheLRU( 30 ); } /** @@ -650,10 +646,7 @@ class LoadBalancer { public function openConnection( $i, $wiki = false ) { if ( $wiki !== false ) { $conn = $this->openForeignConnection( $i, $wiki ); - - return $conn; - } - if ( isset( $this->mConns['local'][$i][0] ) ) { + } elseif ( isset( $this->mConns['local'][$i][0] ) ) { $conn = $this->mConns['local'][$i][0]; } else { $server = $this->mServers[$i]; @@ -670,6 +663,15 @@ class LoadBalancer { } } + if ( $conn && !$conn->isOpen() ) { + // Connection was made but later unrecoverably lost for some reason. + // Do not return a handle that will just throw exceptions on use, + // but let the calling code (e.g. getReaderIndex) try another server. + // See DatabaseMyslBase::ping() for how this can happen. + $this->mErrorConnection = $conn; + $conn = false; + } + return $conn; } @@ -1234,16 +1236,8 @@ class LoadBalancer { return array( 0 => 0 ); // no replication = no lag } - if ( $this->mProcCache->has( 'slave_lag', 'times', 1 ) ) { - return $this->mProcCache->get( 'slave_lag', 'times' ); - } - # Send the request to the load monitor - $times = $this->getLoadMonitor()->getLagTimes( array_keys( $this->mServers ), $wiki ); - - $this->mProcCache->set( 'slave_lag', 'times', $times ); - - return $times; + return $this->getLoadMonitor()->getLagTimes( array_keys( $this->mServers ), $wiki ); } /** @@ -1270,8 +1264,10 @@ class LoadBalancer { /** * Clear the cache for slag lag delay times + * + * This is only used for testing */ public function clearLagTimeCache() { - $this->mProcCache->clear( 'slave_lag' ); + $this->getLoadMonitor()->clearCaches(); } } diff --git a/includes/db/LoadMonitor.php b/includes/db/LoadMonitor.php index 8c4d0ed2b7..7dc2da0647 100644 --- a/includes/db/LoadMonitor.php +++ b/includes/db/LoadMonitor.php @@ -75,13 +75,17 @@ class LoadMonitorMySQL implements LoadMonitor { /** @var LoadBalancer */ public $parent; /** @var BagOStuff */ - protected $cache; + protected $srvCache; + /** @var BagOStuff */ + protected $mainCache; public function __construct( $parent ) { global $wgMemc; $this->parent = $parent; - $this->cache = $wgMemc ?: wfGetMainCache(); + + $this->srvCache = ObjectCache::newAccelerator( array(), 'hash' ); + $this->mainCache = $wgMemc ?: wfGetMainCache(); } public function scaleLoads( &$loads, $group = false, $wiki = false ) { @@ -89,65 +93,79 @@ class LoadMonitorMySQL implements LoadMonitor { public function getLagTimes( $serverIndexes, $wiki ) { if ( count( $serverIndexes ) == 1 && reset( $serverIndexes ) == 0 ) { - // Single server only, just return zero without caching + # Single server only, just return zero without caching return array( 0 => 0 ); } - $expiry = 5; - $requestRate = 10; - - $cache = $this->cache; - $masterName = $this->parent->getServerName( 0 ); - $memcKey = wfMemcKey( 'lag_times', $masterName ); - $times = $cache->get( $memcKey ); - if ( is_array( $times ) ) { - # Randomly recache with probability rising over $expiry - $elapsed = time() - $times['timestamp']; - $chance = max( 0, ( $expiry - $elapsed ) * $requestRate ); - if ( mt_rand( 0, $chance ) != 0 ) { - unset( $times['timestamp'] ); // hide from caller - - return $times; - } - wfIncrStats( 'lag_cache.miss.expired' ); - } else { - wfIncrStats( 'lag_cache.miss.absent' ); + $key = $this->getLagTimeCacheKey(); + # Randomize TTLs to reduce stampedes (4.0 - 5.0 sec) + $ttl = mt_rand( 4e6, 5e6 ) / 1e6; + # Keep keys around longer as fallbacks + $staleTTL = 60; + + # (a) Check the local APC cache + $value = $this->srvCache->get( $key ); + if ( $value && $value['timestamp'] > ( microtime( true ) - $ttl ) ) { + wfDebugLog( 'replication', __FUNCTION__ . ": got lag times ($key) from local cache" ); + return $value['lagTimes']; // cache hit + } + $staleValue = $value ?: false; + + # (b) Check the shared cache and backfill APC + $value = $this->mainCache->get( $key ); + if ( $value && $value['timestamp'] > ( microtime( true ) - $ttl ) ) { + $this->srvCache->set( $key, $value, $staleTTL ); + wfDebugLog( 'replication', __FUNCTION__ . ": got lag times ($key) from main cache" ); + + return $value['lagTimes']; // cache hit } + $staleValue = $value ?: $staleValue; - # Cache key missing or expired - if ( $cache->lock( $memcKey, 0, 10 ) ) { + # (c) Cache key missing or expired; regenerate and backfill + if ( $this->mainCache->lock( $key, 0, 10 ) ) { # Let this process alone update the cache value - $unlocker = new ScopedCallback( function () use ( $cache, $memcKey ) { - $cache->unlock( $memcKey ); + $cache = $this->mainCache; + $unlocker = new ScopedCallback( function () use ( $cache, $key ) { + $cache->unlock( $key ); } ); - } elseif ( is_array( $times ) ) { + } elseif ( $staleValue ) { # Could not acquire lock but an old cache exists, so use it - unset( $times['timestamp'] ); // hide from caller - - return $times; + return $value['lagTimes']; } - $times = array(); + $lagTimes = array(); foreach ( $serverIndexes as $i ) { if ( $i == 0 ) { # Master - $times[$i] = 0; + $lagTimes[$i] = 0; } elseif ( false !== ( $conn = $this->parent->getAnyOpenConnection( $i ) ) ) { - $times[$i] = $conn->getLag(); + $lagTimes[$i] = $conn->getLag(); } elseif ( false !== ( $conn = $this->parent->openConnection( $i, $wiki ) ) ) { - $times[$i] = $conn->getLag(); - // Close the connection to avoid sleeper connections piling up. - // Note that the caller will pick one of these DBs and reconnect, - // which is slightly inefficient, but this only matters for the lag - // time cache miss cache, which is far less common that cache hits. + $lagTimes[$i] = $conn->getLag(); + # Close the connection to avoid sleeper connections piling up. + # Note that the caller will pick one of these DBs and reconnect, + # which is slightly inefficient, but this only matters for the lag + # time cache miss cache, which is far less common that cache hits. $this->parent->closeConnection( $conn ); } } # Add a timestamp key so we know when it was cached - $times['timestamp'] = time(); - $cache->set( $memcKey, $times, $expiry + 10 ); - unset( $times['timestamp'] ); // hide from caller + $value = array( 'lagTimes' => $lagTimes, 'timestamp' => microtime( true ) ); + $this->mainCache->set( $key, $value, $staleTTL ); + $this->srvCache->set( $key, $value, $staleTTL ); + wfDebugLog( 'replication', __FUNCTION__ . ": re-calculated lag times ($key)" ); + + return $value['lagTimes']; + } + + public function clearCaches() { + $key = $this->getLagTimeCacheKey(); + $this->srvCache->delete( $key ); + $this->mainCache->delete( $key ); + } - return $times; + private function getLagTimeCacheKey() { + # Lag is per-server, not per-DB, so key on the master DB name + return wfForeignMemcKey( $this->parent->getServerName( 0 ), '', 'lag_times' ); } } diff --git a/includes/filebackend/FileBackendMultiWrite.php b/includes/filebackend/FileBackendMultiWrite.php index 6a699f9410..d27d2c6850 100644 --- a/includes/filebackend/FileBackendMultiWrite.php +++ b/includes/filebackend/FileBackendMultiWrite.php @@ -433,7 +433,7 @@ class FileBackendMultiWrite extends FileBackend { */ protected function substPaths( $paths, FileBackendStore $backend ) { return preg_replace( - '!^mwstore://' . preg_quote( $this->name ) . '/!', + '!^mwstore://' . preg_quote( $this->name, '!' ) . '/!', StringUtils::escapeRegexReplacement( "mwstore://{$backend->getName()}/" ), $paths // string or array ); diff --git a/includes/htmlform/HTMLTextAreaField.php b/includes/htmlform/HTMLTextAreaField.php index a4ed95fb72..e4f78b25fa 100644 --- a/includes/htmlform/HTMLTextAreaField.php +++ b/includes/htmlform/HTMLTextAreaField.php @@ -14,7 +14,7 @@ class HTMLTextAreaField extends HTMLFormField { function getSpellCheck() { $val = isset( $this->mParams['spellcheck'] ) ? $this->mParams['spellcheck'] : null; - if( is_bool( $val ) ) { + if ( is_bool( $val ) ) { // "spellcheck" attribute literally requires "true" or "false" to work. return $val === true ? 'true' : 'false'; } diff --git a/includes/htmlform/HTMLTextField.php b/includes/htmlform/HTMLTextField.php index 06b397f2a7..9c5b8689fd 100644 --- a/includes/htmlform/HTMLTextField.php +++ b/includes/htmlform/HTMLTextField.php @@ -7,7 +7,7 @@ class HTMLTextField extends HTMLFormField { function getSpellCheck() { $val = isset( $this->mParams['spellcheck'] ) ? $this->mParams['spellcheck'] : null; - if( is_bool( $val ) ) { + if ( is_bool( $val ) ) { // "spellcheck" attribute literally requires "true" or "false" to work. return $val === true ? 'true' : 'false'; } diff --git a/includes/htmlform/OOUIHTMLForm.php b/includes/htmlform/OOUIHTMLForm.php index 6c9952a07f..056591aad1 100644 --- a/includes/htmlform/OOUIHTMLForm.php +++ b/includes/htmlform/OOUIHTMLForm.php @@ -54,7 +54,7 @@ class OOUIHTMLForm extends HTMLForm { $buttons = ''; if ( $this->mShowSubmit ) { - $attribs = array(); + $attribs = array( 'infusable' => true ); if ( isset( $this->mSubmitID ) ) { $attribs['id'] = $this->mSubmitID; diff --git a/includes/installer/i18n/uk.json b/includes/installer/i18n/uk.json index 345b475a33..73e1764cb5 100644 --- a/includes/installer/i18n/uk.json +++ b/includes/installer/i18n/uk.json @@ -68,7 +68,7 @@ "config-magic-quotes-sybase": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.", "config-mbstring": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.", "config-safe-mode": "'''Увага:''' Опція PHP [http://www.php.net/features.safe-mode «безпечний режим»] увімкнена.\nЦе може спричинити проблеми, зокрема із завантаженням файлів та вставкою математичних формул.", - "config-xml-bad": "XML-модуть PHP відсутній.\nMediaWiki необхідні його функції, без цього модуля вона працювати не буде.\nЯкщо Ви використовуєте Mandrake, встановіть php-xml пакет.", + "config-xml-bad": "XML-модуть PHP відсутній.\nMediaWiki необхідні його функції, без цього модуля вона працювати не буде.\nВам може знадобитися встановити php-xml RPM пакет.", "config-pcre-old": "'''Фатальна помилка:''' потрібно PCRE версії $1 або пізнішої.\nВаш виконуваний файл PHP пов'язаний з PCRE версії $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Подробиці].", "config-pcre-no-utf8": "'''Помилка''': PCRE-модуть PHP, вочевидь, було зібрано без підтримки PCRE_UTF8.\nMediaWiki вимагає підтримку UTF-8 для коректної роботи.", "config-memory-raised": "Обмеження пам'яті PHP (memory_limit) $1, піднято до $2.", diff --git a/includes/jobqueue/JobRunner.php b/includes/jobqueue/JobRunner.php index 77c42380a1..3dfffaeabb 100644 --- a/includes/jobqueue/JobRunner.php +++ b/includes/jobqueue/JobRunner.php @@ -203,8 +203,8 @@ class JobRunner implements LoggerAwareInterface { if ( $queuedTs ) { // Record time to run for the job type $pickupDelay = $popTime - $queuedTs; - $stats->timing( 'jobqueue.pickup_delay.all', $queuedTs ); - $stats->timing( "jobqueue.pickup_delay.$jType", $queuedTs ); + $stats->timing( 'jobqueue.pickup_delay.all', $pickupDelay ); + $stats->timing( "jobqueue.pickup_delay.$jType", $pickupDelay ); } // Mark the job as done on success or when the job cannot be retried diff --git a/includes/libs/BufferingStatsdDataFactory.php b/includes/libs/BufferingStatsdDataFactory.php index 457237a2c8..0caf90b39c 100644 --- a/includes/libs/BufferingStatsdDataFactory.php +++ b/includes/libs/BufferingStatsdDataFactory.php @@ -23,7 +23,6 @@ use Liuggio\StatsdClient\Entity\StatsdDataInterface; use Liuggio\StatsdClient\Factory\StatsdDataFactory; - /** * A factory for application metric data. * diff --git a/includes/libs/RiffExtractor.php b/includes/libs/RiffExtractor.php new file mode 100644 index 0000000000..f987c59d21 --- /dev/null +++ b/includes/libs/RiffExtractor.php @@ -0,0 +1,100 @@ + self::extractUInt32( $fileSize ), + 'fourCC' => $fourCC, + 'chunks' => array(), + ); + $numberOfChunks = 0; + + // Find out the chunks + while ( !feof( $file ) && !( $numberOfChunks >= $maxChunks && $maxChunks >= 0 ) ) { + $chunkStart = ftell( $file ); + + $chunkFourCC = fread( $file, 4 ); + if ( !$chunkFourCC || strlen( $chunkFourCC ) != 4 ) { + return $info; + } + + $chunkSize = fread( $file, 4 ); + if ( !$chunkSize || strlen( $chunkSize ) != 4 ) { + return $info; + } + $intChunkSize = self::extractUInt32( $chunkSize ); + + // Add chunk info to the info structure + $info['chunks'][] = array( + 'fourCC' => $chunkFourCC, + 'start' => $chunkStart, + 'size' => $intChunkSize + ); + + // Uneven chunks have padding bytes + $padding = $intChunkSize % 2; + // Seek to the next chunk + fseek( $file, $intChunkSize + $padding, SEEK_CUR ); + + } + + return $info; + } + + /** + * Extract a little-endian uint32 from a 4 byte string + * @param string $string 4-byte string + * @return int + */ + public static function extractUInt32( $string ) { + $unpacked = unpack( 'V', $string ); + return $unpacked[1]; + } +}; diff --git a/includes/libs/composer/ComposerLock.php b/includes/libs/composer/ComposerLock.php index 9c7bf2f9ac..22c33191d7 100644 --- a/includes/libs/composer/ComposerLock.php +++ b/includes/libs/composer/ComposerLock.php @@ -30,6 +30,9 @@ class ComposerLock { $deps[$installed['name']] = array( 'version' => ComposerJson::normalizeVersion( $installed['version'] ), 'type' => $installed['type'], + 'licenses' => isset( $installed['license'] ) ? $installed['license'] : array(), + 'authors' => isset( $installed['authors'] ) ? $installed['authors'] : array(), + 'description' => isset( $installed['description'] ) ? $installed['description']: '', ); } diff --git a/includes/libs/normal/UtfNormalUtil.php b/includes/libs/normal/UtfNormalUtil.php index ad9a2b9a6c..9ed9bc2431 100644 --- a/includes/libs/normal/UtfNormalUtil.php +++ b/includes/libs/normal/UtfNormalUtil.php @@ -27,6 +27,7 @@ use UtfNormal\Utils; + /** * Return UTF-8 sequence for a given Unicode code point. * diff --git a/includes/media/Bitmap.php b/includes/media/Bitmap.php index 5af7fbe1ae..4be20b243c 100644 --- a/includes/media/Bitmap.php +++ b/includes/media/Bitmap.php @@ -93,9 +93,8 @@ class BitmapHandler extends TransformationalImageHandler { // JPEG decoder hint to reduce memory, available since IM 6.5.6-2 $decoderHint = array( '-define', "jpeg:size={$params['physicalDimensions']}" ); } - } elseif ( $params['mimeType'] == 'image/png' ) { + } elseif ( $params['mimeType'] == 'image/png' || $params['mimeType'] == 'image/webp' ) { $quality = array( '-quality', '95' ); // zlib 9, adaptive filtering - } elseif ( $params['mimeType'] == 'image/gif' ) { if ( $this->getImageArea( $image ) > $wgMaxAnimatedGifArea ) { // Extract initial frame only; we're so big it'll diff --git a/includes/media/FormatMetadata.php b/includes/media/FormatMetadata.php index 17e3ddad0f..0fee8cc00f 100644 --- a/includes/media/FormatMetadata.php +++ b/includes/media/FormatMetadata.php @@ -1732,8 +1732,9 @@ class FormatMetadata extends ContextSource { } /** - * Turns an XMP-style multivalue array into a single value by dropping all but the first value. - * If the value is not a multivalue array (or a multivalue array inside a multilang array), it is returned unchanged. + * Turns an XMP-style multivalue array into a single value by dropping all but the first + * value. If the value is not a multivalue array (or a multivalue array inside a multilang + * array), it is returned unchanged. * See mediawiki.org/wiki/Manual:File_metadata_handling#Multi-language_array_format * @param mixed $value * @return mixed The value, or the first value if there were multiple ones @@ -1742,7 +1743,8 @@ class FormatMetadata extends ContextSource { protected function resolveMultivalueValue( $value ) { if ( !is_array( $value ) ) { return $value; - } elseif ( isset( $value['_type'] ) && $value['_type'] === 'lang' ) { // if this is a multilang array, process fields separately + } elseif ( isset( $value['_type'] ) && $value['_type'] === 'lang' ) { + // if this is a multilang array, process fields separately $newValue = array(); foreach ( $value as $k => $v ) { $newValue[$k] = $this->resolveMultivalueValue( $v ); diff --git a/includes/media/WebP.php b/includes/media/WebP.php new file mode 100644 index 0000000000..05d12c484f --- /dev/null +++ b/includes/media/WebP.php @@ -0,0 +1,306 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * + * @file + * @ingroup Media + */ + +/** + * Handler for Google's WebP format + * + * @ingroup Media + */ +class WebPHandler extends BitmapHandler { + const BROKEN_FILE = '0'; // value to store in img_metadata if error extracting metadata. + /** + * @var int Minimum chunk header size to be able to read all header types + */ + const MINIMUM_CHUNK_HEADER_LENGTH = 18; + /** + * @var int version of the metadata stored in db records + */ + const _MW_WEBP_VERSION = 1; + + const VP8X_ICC = 32; + const VP8X_ALPHA = 16; + const VP8X_EXIF = 8; + const VP8X_XMP = 4; + const VP8X_ANIM = 2; + + public function getMetadata( $image, $filename ) { + $parsedWebPData = self::extractMetadata( $filename ); + if ( !$parsedWebPData ) { + return self::BROKEN_FILE; + } + + $parsedWebPData['metadata']['_MW_WEBP_VERSION'] = self::_MW_WEBP_VERSION; + return serialize( $parsedWebPData ); + } + + public function getMetadataType( $image ) { + return 'parsed-webp'; + } + + public function isMetadataValid( $image, $metadata ) { + if ( $metadata === self::BROKEN_FILE ) { + // Do not repetitivly regenerate metadata on broken file. + return self::METADATA_GOOD; + } + + wfSuppressWarnings(); + $data = unserialize( $metadata ); + wfRestoreWarnings(); + + if ( !$data || !is_array( $data ) ) { + wfDebug( __METHOD__ . " invalid WebP metadata\n" ); + + return self::METADATA_BAD; + } + + if ( !isset( $data['metadata']['_MW_WEBP_VERSION'] ) + || $data['metadata']['_MW_WEBP_VERSION'] != self::_MW_WEBP_VERSION + ) { + wfDebug( __METHOD__ . " old but compatible WebP metadata\n" ); + + return self::METADATA_COMPATIBLE; + } + return self::METADATA_GOOD; + } + + /** + * Extracts the image size and WebP type from a file + * + * @param string $chunks Chunks as extracted by RiffExtractor + * @return array|bool Header data array with entries 'compression', 'width' and 'height', + * where 'compression' can be 'lossy', 'lossless', 'animated' or 'unknown'. False if + * file is not a valid WebP file. + */ + public static function extractMetadata( $filename ) { + wfDebugLog( 'WebP', __METHOD__ . ": Extracting metadata from $filename\n" ); + + $info = RiffExtractor::findChunksFromFile( $filename, 100 ); + if ( $info === false ) { + wfDebugLog( 'WebP', __METHOD__ . ": Not a valid RIFF file\n" ); + return false; + } + + if ( $info['fourCC'] != 'WEBP' ) { + wfDebugLog( 'WebP', __METHOD__ . ': FourCC was not WEBP: ' . + bin2hex( $info['fourCC'] ) . " \n" ); + return false; + } + + $metadata = self::extractMetadataFromChunks( $info['chunks'], $filename ); + if ( !$metadata ) { + wfDebugLog( 'WebP', __METHOD__ . ": No VP8 chunks found\n" ); + return false; + } + + return $metadata; + } + + /** + * Extracts the image size and WebP type from a file based on the chunk list + * @param array $chunks Chunks as extracted by RiffExtractor + * @return array Header data array with entries 'compression', 'width' and 'height', where + * 'compression' can be 'lossy', 'lossless', 'animated' or 'unknown' + */ + public static function extractMetadataFromChunks( $chunks, $filename ) { + $vp8Info = array(); + + foreach ( $chunks as $chunk ) { + if ( !in_array( $chunk['fourCC'], array( 'VP8 ', 'VP8L', 'VP8X' ) ) ) { + // Not a chunk containing interesting metadata + continue; + } + + $chunkHeader = file_get_contents( $filename, false, null, + $chunk['start'], self::MINIMUM_CHUNK_HEADER_LENGTH ); + wfDebugLog( 'WebP', __METHOD__ . ": {$chunk['fourCC']}\n" ); + + switch ( $chunk['fourCC'] ) { + case 'VP8 ': + return array_merge( $vp8Info, + self::decodeLossyChunkHeader( $chunkHeader ) ); + case 'VP8L': + return array_merge( $vp8Info, + self::decodeLosslessChunkHeader( $chunkHeader ) ); + case 'VP8X': + $vp8Info = array_merge( $vp8Info, + self::decodeExtendedChunkHeader( $chunkHeader ) ); + // Continue looking for other chunks to improve the metadata + break; + } + } + return $vp8Info; + } + + /** + * Decodes a lossy chunk header + * @param string $header Header string + * @return boolean|array See WebPHandler::decodeHeader + */ + protected static function decodeLossyChunkHeader( $header ) { + // Bytes 0-3 are 'VP8 ' + // Bytes 4-7 are the VP8 stream size + // Bytes 8-10 are the frame tag + // Bytes 11-13 are 0x9D 0x01 0x2A called the sync code + $syncCode = substr( $header, 11, 3 ); + if ( $syncCode != "\x9D\x01\x2A" ) { + wfDebugLog( 'WebP', __METHOD__ . ': Invalid sync code: ' . + bin2hex( $syncCode ) . "\n" ); + return array(); + } + // Bytes 14-17 are image size + $imageSize = unpack( 'v2', substr( $header, 14, 4 ) ); + // Image sizes are 14 bit, 2 MSB are scaling parameters which are ignored here + return array( + 'compression' => 'lossy', + 'width' => $imageSize[1] & 0x3FFF, + 'height' => $imageSize[2] & 0x3FFF + ); + } + + /** + * Decodes a lossless chunk header + * @param string $header Header string + * @return boolean|array See WebPHandler::decodeHeader + */ + public static function decodeLosslessChunkHeader( $header ) { + // Bytes 0-3 are 'VP8L' + // Bytes 4-7 are chunk stream size + // Byte 8 is 0x2F called the signature + if ( $header{8} != "\x2F" ) { + wfDebugLog( 'WebP', __METHOD__ . ': Invalid signature: ' . + bin2hex( $header{8} ) . "\n" ); + return array(); + } + // Bytes 9-12 contain the image size + // Bits 0-13 are width-1; bits 15-27 are height-1 + $imageSize = unpack( 'C4', substr( $header, 9, 4 ) ); + return array( + 'compression' => 'lossless', + 'width' => ( $imageSize[1] | ( ( $imageSize[2] & 0x3F ) << 8 ) ) + 1, + 'height' => ( ( ( $imageSize[2] & 0xC0 ) >> 6 ) | + ( $imageSize[3] << 2 ) | ( ( $imageSize[4] & 0x03 ) << 10 ) ) + 1 + ); + } + + /** + * Decodes an extended chunk header + * @param string $header Header string + * @return boolean|array See WebPHandler::decodeHeader + */ + public static function decodeExtendedChunkHeader( $header ) { + // Bytes 0-3 are 'VP8X' + // Byte 4-7 are chunk length + // Byte 8-11 are a flag bytes + $flags = unpack( 'c', substr( $header, 8, 1 ) ); + + // Byte 12-17 are image size (24 bits) + $width = unpack( 'V', substr( $header, 12, 3 ) . "\x00" ); + $height = unpack( 'V', substr( $header, 15, 3 ) . "\x00" ); + + return array( + 'compression' => 'unknown', + 'animated' => ($flags[1] & self::VP8X_ANIM) == self::VP8X_ANIM, + 'transparency' => ($flags[1] & self::VP8X_ALPHA) == self::VP8X_ALPHA, + 'width' => ( $width[1] & 0xFFFFFF ) + 1, + 'height' => ( $height[1] & 0xFFFFFF ) + 1 + ); + } + + public function getImageSize( $file, $path, $metadata = false ) { + if ( $file === null ) { + $metadata = self::getMetadata( $file, $path ); + } + if ( $metadata === false ) { + $metadata = $file->getMetadata(); + } + + wfSuppressWarnings(); + $metadata = unserialize( $metadata ); + wfRestoreWarnings(); + + if ( $metadata == false ) { + return false; + } + return array( $metadata['width'], $metadata['height'] ); + } + + /** + * @param $file + * @return bool True, not all browsers support WebP + */ + public function mustRender( $file ) { + return true; + } + + /** + * @param $file + * @return bool False if we are unable to render this image + */ + public function canRender( $file ) { + if ( self::isAnimatedImage( $file ) ) { + return false; + } + return true; + } + + /** + * @param File $image + * @return bool + */ + public function isAnimatedImage( $image ) { + $ser = $image->getMetadata(); + if ( $ser ) { + $metadata = unserialize( $ser ); + if ( isset($metadata['animated']) && $metadata['animated'] === true ) { + return true; + } + } + + return false; + } + + public function canAnimateThumbnail( $file ) { + return false; + } + + /** + * Render files as PNG + * + * @param $ext + * @param $mime + * @param $params + * @return array + */ + public function getThumbType( $ext, $mime, $params = null ) { + return array( 'png', 'image/png' ); + } + + /** + * Must use "im" for XCF + * + * @return string + */ + protected function getScalerType( $dstPath, $checkDstPath = true ) { + return 'im'; + } +} diff --git a/includes/parser/ParserCache.php b/includes/parser/ParserCache.php index 117b6e7544..44b0bc9e16 100644 --- a/includes/parser/ParserCache.php +++ b/includes/parser/ParserCache.php @@ -217,7 +217,6 @@ class ParserCache { ? $article->getPage() : $article; - if ( !$useOutdated && $value->expired( $touched ) ) { wfIncrStats( "pcache.miss.expired" ); $cacheTime = $value->getCacheTime(); diff --git a/includes/parser/ParserOutput.php b/includes/parser/ParserOutput.php index a8db1c9521..7068bd717e 100644 --- a/includes/parser/ParserOutput.php +++ b/includes/parser/ParserOutput.php @@ -103,7 +103,7 @@ class ParserOutput extends CacheTime { $text = str_replace( array( Parser::TOC_START, Parser::TOC_END ), '', $text ); } else { $text = preg_replace( - '#' . preg_quote( Parser::TOC_START ) . '.*?' . preg_quote( Parser::TOC_END ) . '#s', + '#' . preg_quote( Parser::TOC_START, '#' ) . '.*?' . preg_quote( Parser::TOC_END, '#' ) . '#s', '', $text ); diff --git a/includes/poolcounter/PoolCounter.php b/includes/poolcounter/PoolCounter.php index 5692d73199..1ec14aa148 100644 --- a/includes/poolcounter/PoolCounter.php +++ b/includes/poolcounter/PoolCounter.php @@ -192,10 +192,11 @@ abstract class PoolCounter { } /** - * Given a key (any string) and the number of lots, returns a slot number (an integer from the [0..($slots-1)] range). - * This is used for a global limit on the number of instances of a given type that can acquire a lock. - * The hashing is deterministic so that PoolCounter::$workers is always an upper limit of how many instances with - * the same key can acquire a lock. + * Given a key (any string) and the number of lots, returns a slot number (an integer from + * the [0..($slots-1)] range). This is used for a global limit on the number of instances of + * a given type that can acquire a lock. The hashing is deterministic so that + * PoolCounter::$workers is always an upper limit of how many instances with the same key + * can acquire a lock. * * @param string $key PoolCounter instance key (any string) * @param int $slots The number of slots (max allowed value is 65536) diff --git a/includes/profiler/output/ProfilerOutputDump.php b/includes/profiler/output/ProfilerOutputDump.php index bf4b85c2b8..09f5688785 100644 --- a/includes/profiler/output/ProfilerOutputDump.php +++ b/includes/profiler/output/ProfilerOutputDump.php @@ -45,7 +45,11 @@ class ProfilerOutputDump extends ProfilerOutput { public function log( array $stats ) { $data = $this->collector->getRawData(); - $filename = sprintf( "%s/%s.%s%s", $this->params['outputDir'], uniqid(), $this->collector->getProfileID(), $this->suffix ); + $filename = sprintf( "%s/%s.%s%s", + $this->params['outputDir'], + uniqid(), + $this->collector->getProfileID(), + $this->suffix ); file_put_contents( $filename, serialize( $data ) ); } } diff --git a/includes/profiler/output/ProfilerOutputText.php b/includes/profiler/output/ProfilerOutputText.php index 675277986d..dc24f18102 100644 --- a/includes/profiler/output/ProfilerOutputText.php +++ b/includes/profiler/output/ProfilerOutputText.php @@ -35,7 +35,7 @@ class ProfilerOutputText extends ProfilerOutput { parent::__construct( $collector, $params ); $this->thresholdMs = isset( $params['thresholdMs'] ) ? $params['thresholdMs'] - : .25; + : 1.0; } public function log( array $stats ) { if ( $this->collector->getTemplated() ) { diff --git a/includes/specialpage/SpecialPage.php b/includes/specialpage/SpecialPage.php index a7a43b0e30..eb18b8f1af 100644 --- a/includes/specialpage/SpecialPage.php +++ b/includes/specialpage/SpecialPage.php @@ -662,7 +662,6 @@ class SpecialPage { */ public function getFinalGroupName() { $name = $this->getName(); - $specialPageGroups = $this->getConfig()->get( 'SpecialPageGroups' ); // Allow overbidding the group from the wiki side $msg = $this->msg( 'specialpages-specialpagegroup-' . strtolower( $name ) )->inContentLanguage(); @@ -671,18 +670,6 @@ class SpecialPage { } else { // Than use the group from this object $group = $this->getGroupName(); - - // Group '-' is used as default to have the chance to determine, - // if the special pages overrides this method, - // if not overridden, $wgSpecialPageGroups is checked for b/c - if ( $group === '-' && isset( $specialPageGroups[$name] ) ) { - $group = $specialPageGroups[$name]; - } - } - - // never give '-' back, change to 'other' - if ( $group === '-' ) { - $group = 'other'; } return $group; @@ -697,8 +684,6 @@ class SpecialPage { * @since 1.21 */ protected function getGroupName() { - // '-' used here to determine, if this group is overridden or has a hardcoded 'other' - // Needed for b/c in getFinalGroupName - return '-'; + return 'other'; } } diff --git a/includes/specialpage/SpecialPageFactory.php b/includes/specialpage/SpecialPageFactory.php index 3786b36227..055e5887e8 100644 --- a/includes/specialpage/SpecialPageFactory.php +++ b/includes/specialpage/SpecialPageFactory.php @@ -347,34 +347,6 @@ class SpecialPageFactory { return array( $name, $par ); } - /** - * Add a page to a certain display group for Special:SpecialPages - * - * @param SpecialPage|string $page - * @param string $group - * @deprecated since 1.21 Override SpecialPage::getGroupName - */ - public static function setGroup( $page, $group ) { - wfDeprecated( __METHOD__, '1.21' ); - - global $wgSpecialPageGroups; - $name = is_object( $page ) ? $page->getName() : $page; - $wgSpecialPageGroups[$name] = $group; - } - - /** - * Get the group that the special page belongs in on Special:SpecialPage - * - * @param SpecialPage $page - * @return string - * @deprecated since 1.21 Use SpecialPage::getFinalGroupName - */ - public static function getGroup( &$page ) { - wfDeprecated( __METHOD__, '1.21' ); - - return $page->getFinalGroupName(); - } - /** * Check if a given name exist as a special page or as a special page alias * diff --git a/includes/specials/SpecialAllMessages.php b/includes/specials/SpecialAllMessages.php index f3e896a936..41c2f93377 100644 --- a/includes/specials/SpecialAllMessages.php +++ b/includes/specials/SpecialAllMessages.php @@ -130,7 +130,7 @@ class AllMessagesTablePager extends TablePager { if ( $prefix !== null ) { $this->displayPrefix = $prefix->getDBkey(); - $this->prefix = '/^' . preg_quote( $this->displayPrefix ) . '/i'; + $this->prefix = '/^' . preg_quote( $this->displayPrefix, '/' ) . '/i'; } else { $this->displayPrefix = false; $this->prefix = false; diff --git a/includes/specials/SpecialVersion.php b/includes/specials/SpecialVersion.php index 4442d811e9..0a91957bf7 100644 --- a/includes/specials/SpecialVersion.php +++ b/includes/specials/SpecialVersion.php @@ -522,6 +522,9 @@ class SpecialVersion extends SpecialPage { $out .= Html::openElement( 'tr' ) . Html::element( 'th', array(), $this->msg( 'version-libraries-library' )->text() ) . Html::element( 'th', array(), $this->msg( 'version-libraries-version' )->text() ) + . Html::element( 'th', array(), $this->msg( 'version-libraries-license' )->text() ) + . Html::element( 'th', array(), $this->msg( 'version-libraries-description' )->text() ) + . Html::element( 'th', array(), $this->msg( 'version-libraries-authors' )->text() ) . Html::closeElement( 'tr' ); foreach ( $lock->getInstalledDependencies() as $name => $info ) { @@ -530,13 +533,28 @@ class SpecialVersion extends SpecialPage { // in their proper section continue; } + $authors = array_map( function( $arr ) { + // If a homepage is set, link to it + if ( isset( $arr['homepage'] ) ) { + return "[{$arr['homepage']} {$arr['name']}]"; + } + return $arr['name']; + }, $info['authors'] ); + $authors = $this->listAuthors( $authors, false, "$IP/vendor/$name" ); $out .= Html::openElement( 'tr' ) . Html::rawElement( 'td', array(), - Linker::makeExternalLink( "https://packagist.org/packages/$name", $name ) + Linker::makeExternalLink( + "https://packagist.org/packages/$name", $name, + true, '', + array( 'class' => 'mw-version-library-name' ) + ) ) . Html::element( 'td', array(), $info['version'] ) + . Html::element( 'td', array(), $this->listToText( $info['licenses'] ) ) + . Html::element( 'td', array(), $info['description'] ) + . Html::rawElement( 'td', array(), $authors ) . Html::closeElement( 'tr' ); } $out .= Html::closeElement( 'table' ); @@ -959,7 +977,8 @@ class SpecialVersion extends SpecialPage { * 'and others' will be added to the end of the credits. * * @param string|array $authors - * @param string $extName Name of the extension for link creation + * @param string|bool $extName Name of the extension for link creation, + * false if no links should be created * @param string $extDir Path to the extension root directory * * @return string HTML fragment @@ -972,7 +991,7 @@ class SpecialVersion extends SpecialPage { if ( $item == '...' ) { $hasOthers = true; - if ( $this->getExtAuthorsFileName( $extDir ) ) { + if ( $extName && $this->getExtAuthorsFileName( $extDir ) ) { $text = Linker::link( $this->getPageTitle( "Credits/$extName" ), $this->msg( 'version-poweredby-others' )->escaped() @@ -991,7 +1010,7 @@ class SpecialVersion extends SpecialPage { } } - if ( !$hasOthers && $this->getExtAuthorsFileName( $extDir ) ) { + if ( $extName && !$hasOthers && $this->getExtAuthorsFileName( $extDir ) ) { $list[] = $text = Linker::link( $this->getPageTitle( "Credits/$extName" ), $this->msg( 'version-poweredby-others' )->escaped() diff --git a/includes/title/MalformedTitleException.php b/includes/title/MalformedTitleException.php index fb89e4fe06..0892ce4e57 100644 --- a/includes/title/MalformedTitleException.php +++ b/includes/title/MalformedTitleException.php @@ -30,7 +30,8 @@ class MalformedTitleException extends Exception { /** * @param string $errorMessage Localisation message describing the error (since MW 1.26) * @param string $titleText The invalid title text (since MW 1.26) - * @param string[] $errorMessageParameters Additional parameters for the error message. $titleText will be appended if it's not null. (since MW 1.26) + * @param string[] $errorMessageParameters Additional parameters for the error message. + * $titleText will be appended if it's not null. (since MW 1.26) */ public function __construct( $errorMessage = null, $titleText = null, $errorMessageParameters = array() ) { $this->errorMessage = $errorMessage; diff --git a/languages/i18n/ar.json b/languages/i18n/ar.json index e21a6c20a3..befe9b1539 100644 --- a/languages/i18n/ar.json +++ b/languages/i18n/ar.json @@ -1557,7 +1557,6 @@ "nmembers": "{{PLURAL:$1|لا أعضاء|عضو واحد|عضوان|$1 أعضاء|$1 عضوا|$1 عضو}}", "nmemberschanged": "$1 → $2 {{PLURAL:$2|عضو|أعضاء}}", "nrevisions": "{{PLURAL:$1|لا مراجعات|مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}}", - "nviews": "{{PLURAL:$1|مشاهدة واحدة|مشاهدتان|$1 مشاهدات|$1 مشاهدة}}", "nimagelinks": "مستخدم في {{PLURAL:$1||صفحة واحدة|صفحتين|$1 صفحات|$1 صفحة}}", "ntransclusions": "مستخدم في {{PLURAL:$1||صفحة واحدة|صفحتين|$1 صفحات|$1 صفحة}}", "specialpage-empty": "لا توجد نتائج لهذا التقرير.", @@ -3396,5 +3395,7 @@ "special-characters-group-khmer": "خميرية", "special-characters-title-endash": "واصلة قصيرة", "special-characters-title-emdash": "واصلة طويلة", - "special-characters-title-minus": "علامة الطرح" + "special-characters-title-minus": "علامة الطرح", + "mw-widgets-titleinput-description-new-page": "الصفحة غير موجودة بعد", + "mw-widgets-titleinput-description-redirect": "تحويل إلى $1" } diff --git a/languages/i18n/be-tarask.json b/languages/i18n/be-tarask.json index ee90db287e..2cd377b563 100644 --- a/languages/i18n/be-tarask.json +++ b/languages/i18n/be-tarask.json @@ -3032,6 +3032,8 @@ "tags-delete-submit": "Незваротна выдаліць гэтую метку", "tags-delete-not-allowed": "Меткі, вызначаныя пашырэньнем, ня могуць быць выдаленыя, акрамя выпадку, калі пашырэньне дазваляе гэта.", "tags-delete-not-found": "Метка «$1» не існуе.", + "tags-delete-too-many-uses": "Метка «$1» выкарыстаная ў больш чым $2 {{PLURAL:$2|вэрсіі|вэрсіях}}, адпаведна, яна ня можа быць выдаленая.", + "tags-delete-warnings-after-delete": "Метка «$1» была пасьпяхова выдаленая, але {{PLURAL:$2|1=атрыманае наступнае папярэджаньне|атрыманыя наступныя папярэджаньні}}:", "comparepages": "Параўнаньне старонак", "compare-page1": "Старонка 1", "compare-page2": "Старонка 2", @@ -3280,5 +3282,6 @@ "special-characters-group-khmer": "Кхмэрскія", "special-characters-title-endash": "кароткі працяжнік", "special-characters-title-emdash": "доўгі працяжнік", - "special-characters-title-minus": "мінус" + "special-characters-title-minus": "мінус", + "mw-widgets-titleinput-description-new-page": "старонка яшчэ не існуе" } diff --git a/languages/i18n/bn.json b/languages/i18n/bn.json index 44672a9684..3ce64ce7b7 100644 --- a/languages/i18n/bn.json +++ b/languages/i18n/bn.json @@ -3269,5 +3269,7 @@ "special-characters-group-khmer": "খেমার", "special-characters-title-endash": "en ড্যাশ", "special-characters-title-emdash": "em ড্যাশ", - "special-characters-title-minus": "বিয়োগ চিহ্ন" + "special-characters-title-minus": "বিয়োগ চিহ্ন", + "mw-widgets-titleinput-description-new-page": "পাতা এখনো বিদ্যমান নয়", + "mw-widgets-titleinput-description-redirect": "$1-এ পুনঃনির্দেশিত" } diff --git a/languages/i18n/bs.json b/languages/i18n/bs.json index 01a3af0aee..e5d4fd8cc5 100644 --- a/languages/i18n/bs.json +++ b/languages/i18n/bs.json @@ -140,8 +140,8 @@ "category-empty": "''Ova kategorija trenutno ne sadrži članke ni medije.''", "hidden-categories": "{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}}", "hidden-category-category": "Skrivene kategorije", - "category-subcat-count": "{{PLURAL:$2|Ova kategorija ima sljedeću podkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeću podkategoriju|sljedeće $1 podkategorije|sljedećih $1 podkategorija}}, od $2 ukupno.}}", - "category-subcat-count-limited": "Ova kategorija sadrži {{PLURAL:$1|slijedeću $1 podkategoriju|slijedeće $1 podkategorije|slijedećih $1 podkategorija}}.", + "category-subcat-count": "{{PLURAL:$2|Ova kategorija samo ima sljedeću potkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeću potkategoriju|sljedeće $1 potkategorije|sljedećih $1 potkategorija}}, od $2 ukupno.}}", + "category-subcat-count-limited": "Ova kategorija sadrži {{PLURAL:$1|sljedeću $1 potkategoriju|sljedeće $1 potkategorije|sljedećih $1 potkategorija}}.", "category-article-count": "{{PLURAL:$2|U ovoj kategoriji nalazi se $1 članak.|{{PLURAL:$1|Prikazan je $1 članak|Prikazana su $1 članka|Prikazano je $1 članaka}} od ukupno $2 u ovoj kategoriji.}}", "category-article-count-limited": "{{PLURAL:$1|Slijedeća $1 stranica je|Slijedeće $1 stranice su|Slijedećih $1 stranica je}} u ovoj kategoriji.", "category-file-count": "{{PLURAL:$2|Ova kategorija ima slijedeću $1 datoteku.|{{PLURAL:$1|Prikazana je $1 datoteka|Prikazane su $1 datoteke|Prikazano je $1 datoteka}} u ovoj kategoriji, od ukupno $2.}}", @@ -348,7 +348,7 @@ "title-invalid-talk-namespace": "VaÅ¡ zatraženi naslov stranice se odnosi na stranicu za razgovor koja ne može postojati.", "title-invalid-characters": "VaÅ¡ zatraženi naslov stranice sadrži nevažeće znakove: \"$1\".", "title-invalid-leading-colon": "Zahtjevani naslov stranice sadrži nevažeću dvotačku na početku.", - "perfcached": "Slijedeći podaci su keÅ¡irani i možda neće biti u potpunosti ažurirani. KeÅ¡ sadrži najviÅ¡e {{PLURAL:$1|jedan rezultat|$1 rezultata}}.", + "perfcached": "Sljedeći podaci su keÅ¡irani i možda neće biti u potpunosti ažurirani. KeÅ¡ sadrži najviÅ¡e {{PLURAL:$1|jedan rezultat|$1 rezultata}}.", "perfcachedts": "Sljedeći podaci nalaze se u memoriji i posljednji put ažurirani su $1. KeÅ¡ sadrži najviÅ¡e {{PLURAL:$4|jedan rezultat|$4 rezultata}}.", "querypage-no-updates": "Ažuriranje ove stranice je isključeno.\nPodaci koji se ovdje nalaze ne moraju biti aktuelni.", "viewsource": "Pogledaj izvor", @@ -586,8 +586,8 @@ "subject-preview": "Pregled tema/naslova:", "previewerrortext": "Dogodila se greÅ¡ka prilikom prikazivanja vaÅ¡ih izmjena.", "blockedtitle": "Korisnik je blokiran", - "blockedtext": "'''VaÅ¡e korisničko ime ili IP adresa je blokirana.'''\n\nBlokada izvrÅ¡ena od strane $1.\nDati razlog je slijedeći: ''$2''.\n\n*Početak blokade: $8\n*Kraj perioda blokade: $6\n*Ime blokiranog korisnika: $7\n\nMožete kontaktirati $1 ili nekog drugog [[{{MediaWiki:Grouppage-sysop}}|administratora]] da biste razgovarali o blokadi.\n\nNe možete koristiti opciju ''PoÅ¡alji e-mail korisniku'' osim ako niste unijeli e-mail adresu u [[Special:Preferences|VaÅ¡e postavke]].\nVaÅ¡a trenutna IP adresa je $3, a oznaka blokade je #$5.\nMolimo Vas da navedete gornje podatke pri zahtjevu za deblokadu.", - "autoblockedtext": "VaÅ¡a IP adresa je automatski blokirana jer je koriÅ¡tena od strane drugog korisnika, a blokirao ju je $1.\nNaveden je slijedeći razlog:\n\n:''$2''\n\n* Početak blokade: $8\n* Kraj blokade: $6\n* Blokirani korisnik: $7\n\nMožete kontaktirati $1 ili nekog drugog iz grupe [[{{MediaWiki:Grouppage-sysop}}|administratora]] i zahtijevati da Vas deblokira.\n\nZapamtite da ne možete koristiti opciju \"poÅ¡alji e-mail ovom korisniku\" sve dok ne unesete validnu e-mail adresu pri registraciji u VaÅ¡im [[Special:Preferences|korisničkim postavkama]] te Vas ne spriječava ga je koristite.\n\nVaÅ¡a trenutna IP adresa je $3, a ID blokade je $5.\nMolimo da navedete sve gore navedene detalje u zahtjevu za deblokadu.", + "blockedtext": "'''VaÅ¡e korisničko ime ili IP-adresa je blokirana.'''\n\nBlokada izvrÅ¡ena od strane $1.\nDati razlog je sljedeći: ''$2''.\n\n*Početak blokade: $8\n*Kraj perioda blokade: $6\n*Ime blokiranog korisnika: $7\n\nMožete kontaktirati sa $1 ili nekim drugim [[{{MediaWiki:Grouppage-sysop}}|administratorom]] da biste razgovarali o blokadi.\n\nNe možete koristiti opciju ''PoÅ¡alji e-mail korisniku'' osim ako niste unijeli e-mail adresu u [[Special:Preferences|VaÅ¡e postavke]].\nVaÅ¡a trenutna IP-adresa je $3, a oznaka blokade je #$5.\nMolimo Vas da navedete gornje podatke pri zahtjevu za deblokadu.", + "autoblockedtext": "VaÅ¡a IP-adresa automatski je blokirana jer ju je koristio drugi korisnik, a blokirao ju je $1.\nNaveden je sljedeći razlog:\n\n:''$2''\n\n* Početak blokade: $8\n* Kraj blokade: $6\n* Blokirani korisnik: $7\n\nMožete kontaktirati sa $1 ili nekim drugim iz grupe [[{{MediaWiki:Grouppage-sysop}}|administratora]] i zahtijevati da Vas deblokira.\n\nZapamtite da ne možete koristiti opciju \"poÅ¡alji e-mail ovom korisniku\" sve dok ne unesete validnu e-mail adresu pri registraciji u VaÅ¡im [[Special:Preferences|korisničkim postavkama]] i dok niste spriječeni (blokadom) da je koristite.\n\nVaÅ¡a trenutna IP-adresa je $3, a ID blokade je $5.\nMolimo da navedete sve gore navedene detalje u zahtjevu za deblokadu.", "blockednoreason": "razlog nije naveden", "whitelistedittext": "Da bi ste uređivali stranice, morate se $1.", "confirmedittext": "Morate potvrditi VaÅ¡u e-mail adresu prije nego počnete mijenjati stranice.\nMolimo da postavite i verifikujete VaÅ¡u e-mail adresu putem VaÅ¡ih [[Special:Preferences|korisničkih opcija]].", @@ -635,7 +635,7 @@ "nonunicodebrowser": "'''UPOZORENJE: VaÅ¡ preglednik ne podržava Unicode zapis znakova.\nMolimo Vas promijenite ga prije sljedećeg uređivanja članaka. Znakovi koji nisu po ASCII standardu će se u prozoru za izmjene pojaviti kao heksadecimalni kodovi.'''", "editingold": "'''PAŽNJA: Vi mijenjate stariju\nreviziju ove stranice.\nAko je snimite, sve promjene učinjene od ove revizije će biti izgubljene.'''", "yourdiff": "Razlike", - "copyrightwarning": "Za sve priloge poslate na projekat {{SITENAME}} smatramo da su objavljeni pod $2 (konsultujte $1 za detalje).\nUkoliko ne želite da vaÅ¡i članci budu podložni izmjenama i slobodnom rasturanju i objavljivanju,\nnemojte ih slati ovdje. Takođe, slanje članka podrazumijeva i vaÅ¡u izjavu da ste ga napisali sami, ili da ste ga kopirali iz izvora u javnom domenu ili sličnog slobodnog izvora.\n\n'''NEMOJTE SLATI RAD ZAÅ TIĆEN AUTORSKIM PRAVIMA BEZ DOZVOLE AUTORA!'''", + "copyrightwarning": "Za sve priloge poslane na projekt {{SITENAME}} smatramo da su objavljeni pod $2 (konsultirajte $1 za detalje).\nAko ne želite da vaÅ¡i članci budu podložni izmjenama i slobodnoj distribuciji i objavljivanju,\nnemojte ih slati ovdje. Također, slanje članka podrazumijeva i VaÅ¡u izjavu da ste ga napisali sami ili da ste ga kopirali iz izvora u javnom domenu ili sličnog slobodnog izvora.\n\n'''NEMOJTE SLATI RAD ZAÅ TIĆEN AUTORSKIM PRAVIMA BEZ DOZVOLE AUTORA!'''", "copyrightwarning2": "Zapamtite da svi doprinosi na stranici {{SITENAME}} može biti izmijenjen, promijenjen ili uklonjen od strane ostalih korisnika. Ako ne želite da ovo desi sa VaÅ¡im tekstom, onda ga nemojte slati ovdje.
\nTakođer nam garantujete da ste ovo Vi napisali, ili da ste ga kopirali iz javne domene ili sličnog slobodnog izvora informacija (pogledajte $1 za više detalja).\n'''NE ŠALJITE AUTORSKIM PRAVOM ZAŠTIĆENE TEKSTOVE BEZ DOZVOLE!'''", "longpageerror": "'''Greška: Tekst, koji ste poslali, je dug {{PLURAL:$1|jedan kilobajt|$1 kilobajta}}, što je veće od maksimuma, koji iznosi {{PLURAL:$2|jedan kilobajt|$2 kilobajta}}.'''\nStranica ne može biti sačuvana.", "readonlywarning": "'''PAŽNJA: Baza je zaključana zbog održavanja, tako da nećete moći da sačuvate svoje izmjene za sada.'''\nMožda želite da kopirate i nalijepite tekst u tekst editor i sačuvate ga za kasnije.\n\nAdministrator koji je zaključao bazu je naveo slijedeće objašnjenje: $1", @@ -847,11 +847,11 @@ "textmatches": "Tekst stranice odgovara", "notextmatches": "Tekst članka ne odgovara", "prevn": "{{PLURAL:$1|prethodni $1|prethodnih $1}}", - "nextn": "{{PLURAL:$1|slijedeći $1|slijedećih $1}}", + "nextn": "{{PLURAL:$1|sljedeći $1|sljedećih $1}}", "prev-page": "prethodna stranica", "next-page": "sljedeća stranica", "prevn-title": "{{PLURAL:$1|Prethodni $1 rezultat|Prethodna $1 rezultata|Prethodnih $1 rezultata}}", - "nextn-title": "{{PLURAL:$1|Slijedeći $1 rezultat|Slijedeća $1 rezultata|Slijedećih $1 rezultata}}", + "nextn-title": "{{PLURAL:$1|Sljedeći $1 rezultat|Sljedeća $1 rezultata|Sljedećih $1 rezultata}}", "shown-title": "Pokaži $1 {{PLURAL:$1|rezultat|rezultata}} po stranici", "viewprevnext": "Pogledaj ($1 {{int:pipe-separator}} $2) ($3).", "searchmenu-exists": "'''Postoji stranica pod nazivom \"[[:$1]]\" na ovoj wiki'''", @@ -865,7 +865,7 @@ "searchprofile-everything-tooltip": "Pretraži sve sadržaje (ukljujući i stranice za razgovor)", "searchprofile-advanced-tooltip": "Traži u ostalim imenskim prostorima", "search-result-size": "$1 ({{PLURAL:$2|$2 riječ|$2 riječi}})", - "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 podkategorija|$2 podkategorije|$2 podkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})", + "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 potkategorija|$2 potkategorije|$2 potkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})", "search-redirect": "(preusmjeravanje $1)", "search-section": "(sekcija $1)", "search-category": "(kategorija $1)", @@ -951,7 +951,7 @@ "default": "standardno", "prefs-files": "Datoteke", "prefs-custom-css": "Prilagođeni CSS", - "prefs-custom-js": "Prilagođeni JS", + "prefs-custom-js": "Prilagođeni JavaScript", "prefs-common-css-js": "Dijeljeni CSS/JS za sve kože:", "prefs-reset-intro": "Možete koristiti ovu stranicu da poništite Vaše postavke na ovom sajtu na pretpostavljene vrijednosti.\nOvo se ne može vratiti unazad.", "prefs-emailconfirm-label": "E-mail potvrda:", @@ -1107,6 +1107,7 @@ "right-sendemail": "Slanje e-maila drugim korisnicima", "right-passwordreset": "Pogledaj e-mailove za obnavljanje šifre", "right-managechangetags": "Napravi i briši [[Special:Tags|oznake]] iz baze podataka", + "right-applychangetags": "Primijeni [[Special:Tags|oznake]] na nečije izmjene", "newuserlogpage": "Zapis novih korisnika", "newuserlogpagetext": "Ovo je zapis o registraciji novih korisnika.", "rightslog": "Zapisnik korisničkih prava", @@ -1116,6 +1117,7 @@ "action-createpage": "napravite stranicu", "action-createtalk": "kreirate stranice za razgovor", "action-createaccount": "napravite ovaj korisnički račun", + "action-history": "gledate historiju ove stranice", "action-minoredit": "da označite ovu izmjenu kao malu", "action-move": "premjestite ovu stranicu", "action-move-subpages": "premjestite ovu stranicu, i njene podstranice", @@ -1151,12 +1153,14 @@ "action-viewmywatchlist": "pogledajte svoj spisak praćenih stranica", "action-viewmyprivateinfo": "pogledajte svoje privatne informacije", "action-editmyprivateinfo": "uredite svoje privatne podatke", + "action-managechangetags": "napravite i uklonite oznake iz baze podataka", "nchanges": "$1 {{PLURAL:$1|promjena|promjene|promjena}}", "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|izmjena od Vaše posljedne posjete}}", "enhancedrc-history": "historija", "recentchanges": "Nedavne izmjene", "recentchanges-legend": "Postavke nedavnih izmjena", "recentchanges-summary": "Na ovoj stranici možete pratiti nedavne izmjene.", + "recentchanges-noresult": "U zadanom vremenu nema promjena za zadane kriterije.", "recentchanges-feed-description": "Na ovoj stranici možete pratiti nedavne izmjene.", "recentchanges-label-newpage": "Ovom izmjenom pravi se nova stranica", "recentchanges-label-minor": "Ovo je mala izmjena", @@ -1406,7 +1410,7 @@ "filehist-comment": "Komentar", "imagelinks": "Upotreba datoteke", "linkstoimage": "{{PLURAL:$1|Slijedeća stranica koristi|Slijedećih $1 stranica koriste}} ovu sliku:", - "linkstoimage-more": "Više od $1 {{PLURAL:$1|datoteke|datoteka}} je povezano s ovom datotekom.\nSlijedeći spisak pokazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nOvdje je dostupan [[Special:WhatLinksHere/$2|potpuni spisak]].", + "linkstoimage-more": "Više od $1 {{PLURAL:$1|datoteke|datoteka}} povezano je s ovom datotekom.\nSljedeći spisak pokazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nOvdje je dostupan [[Special:WhatLinksHere/$2|potpuni spisak]].", "nolinkstoimage": "Nema stranica koje koriste ovu sliku.", "morelinkstoimage": "Vidi [[Special:WhatLinksHere/$1|ostale linkove]] prema ovoj datoteci.", "linkstoimage-redirect": "$1 (preusmjerenje datoteke) $2", @@ -1816,7 +1820,7 @@ "restriction-level-all": "svi nivoi", "undelete": "Pogledaj izbrisane stranice", "undeletepage": "Pogledaj i vrati izbrisane stranice", - "undeletepagetitle": "'''Slijedeći sadržaj prikazuje obrisane revizije od [[:$1|$1]]'''.", + "undeletepagetitle": "'''Sljedeći sadržaj prikazuje obrisane revizije od [[:$1|$1]]'''.", "viewdeletedpage": "Pogledaj izbrisane stranice", "undeletepagetext": "{{PLURAL:$1|Slijedeća $1 stranica je obrisana|Slijedeće $1 stranice su obrisane|Slijedećih $1 je obrisano}} ali su još uvijek u arhivi i mogu biti vraćene.\nArhiva moše biti periodično čišćena.", "undelete-fieldset-title": "Vraćanje revizija", @@ -2018,12 +2022,12 @@ "lockfilenotwritable": "Datoteka zaključavanja baze je zaštićena za pisanje.\nAko želite otključati ili zaključati bazu, ova datoteka mora biti omogućena za pisanje od strane web servera.", "databasenotlocked": "Baza podataka nije zaključana.", "lockedbyandtime": "(od $1 dana $2 u $3)", - "move-page": "Premještanje $1", - "move-page-legend": "Premjestite stranicu", + "move-page": "Premjesti $1", + "move-page-legend": "Premjesti stranicu", "movepagetext": "Korištenjem ovog formulara možete preimenovati stranicu, premještajući cijelu historiju na novo ime.\nČlanak pod starim imenom postat će stranica koja preusmjerava na članak pod novim imenom. \nMožete automatski izmijeniti preusmjerenje do izvornog naslova.\nAko se ne odlučite na to, provjerite [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|neispravna preusmjeravanja]].\nDužni ste provjeriti da svi linkovi i dalje nastave voditi na prave stranice.\n\nImajte na umu da članak '''neće''' biti premješten ako već postoji članak pod imenom na koje ga namjeravate preusmjeriti osim u slučaju stranice za preusmjeravanje koja nema nikakvih starih izmjena.\nTo znači da možete vratiti stranicu na prethodno mjesto ako pogriješite, ali ne možete zamijeniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može biti drastična i neočekivana promjena kad su u pitanju popularne stranice.\nMolimo da dobro razmislite prije no što premjestite stranicu.", - "movepagetext-noredirectfixer": "Koristeći donji obrazac, preimenovat ćete stranicu i premjestiti cijelu njenu historiju na novi naziv.\nStari naziv postat će preusmjerenje na novi naziv.\nMolimo da provjerite postoje li [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|nedovršena preusmjerenja]].\nVi ste za to odgovorni te morate provjeriti jesu li linkovi ispravni i vode li tamo kamo bi trebali voditi.\n\nImajte na umu da stranica '''neće''' biti premještena ako već postoji stranica s tim imenom, osim ako je prazna ili je preusmjerenje ili nema ranije historije.\nOvo znači da možete preimenovati stranicu nazad gdje je ranije bila preimenovana ako ste pogriješili, ali ne možete ponovo preimenovati postojeću stranicu.\n\n'''Pažnja!'''\nImajte na umu da preusmjeravanje popularnog članka može biti\ndrastična i neočekivana promjena za korisnike; molimo da budete sigurni da ste shvatili posljedice prije no što nastavite.", - "movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, će automatski biti premještena istovremeno '''osim:'''\n*Ako premještate stranicu preko imenskih prostora,\n*Neprazna stranica za razgovor već postoji pod novim imenom, ili\n*Odčekirajte donju kutiju.\n\nU tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.", - "movearticle": "Premjestite stranicu", + "movepagetext-noredirectfixer": "Koristeći donji obrazac, preimenovat ćete stranicu i premjestiti cijelu njenu historiju na novi naziv.\nStari naziv postat će preusmjerenje na novi naziv.\nMolimo da provjerite postoje li [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|nedovršena preusmjerenja]].\nVi ste za to odgovorni te morate provjeriti jesu li linkovi ispravni i vode li tamo kamo bi trebali voditi.\n\nImajte na umu da stranica '''neće''' biti premještena ako već postoji stranica s tim imenom, osim ako je prazna ili je preusmjerenje ili nema ranije historije.\nOvo znači da možete preimenovati stranicu nazad gdje je ranije bila preimenovana ako ste pogriješili, ali ne možete ponovo preimenovati postojeću stranicu.\n\n'''Pažnja!'''\nImajte na umu da premještanje popularnog članka može biti\ndrastična i neočekivana promjena za korisnike; molimo da budete sigurni da ste shvatili posljedice prije no što nastavite.", + "movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, automatski će biti pomjerena istovremeno '''osim ako:'''\n*pomjerate stranicu preko imenskih prostora\n*neprazna stranica za razgovor već postoji pod novim imenom\n*odčekirate donju kutiju.\n\nU tim slučajevima morat ćete ručno pomjeriti stranicu ako to želite.", + "movearticle": "Premjesti stranicu:", "moveuserpage-warning": "'''Upozorenje:''' Premještate korisničku stranicu. Molimo da zapamtite da će se samo stranica premjestiti a korisnik se ''neće'' preimenovati.", "movenologintext": "Morate biti registrovani korisnik i [[Special:UserLogin|prijavljeni]] da biste premjestili stranicu.", "movenotallowed": "Nemate dopuštenje za premještanje stranica.", @@ -2032,7 +2036,7 @@ "cant-move-to-user-page": "Nemate dopuštenje da premjestite stranicu na korisničku stranicu (osim na korisničku podstranicu).", "newtitle": "Novi naslov", "move-watch": "Prati ovu stranicu", - "movepagebtn": "premjestite stranicu", + "movepagebtn": "Premjesti članak", "pagemovedsub": "Premještanje uspjelo", "movepage-moved": "'''\"$1\" je premještena na \"$2\"'''", "movepage-moved-redirect": "Preusmjerenje je napravljeno.", @@ -2246,7 +2250,7 @@ "nocredits": "Autori ove stranice nisu navedeni.", "spamprotectiontitle": "Filter za zaštitu od neželjenih poruka", "spamprotectiontext": "Strana koju želite da sačuvate je blokirana od strane filtera za neželjene poruke.\nOvo je vjerovatno izazvao vezom ka vanjskoj nepoželjnoj stranici.", - "spamprotectionmatch": "Slijedeći tekst je izazvao naš filter za neželjene poruke: $1", + "spamprotectionmatch": "Sljedeći tekst aktivirao je naš filter za neželjene poruke: $1", "spambot_username": "MediaWiki čišćenje spama", "spam_reverting": "Vraćanje na posljednju verziju koja ne sadrži linkove ka $1", "spam_blanking": "Sve revizije koje sadrže linkove ka $1, očisti", @@ -2293,7 +2297,7 @@ "pageinfo-category-info": "Informacije o kategoriji", "pageinfo-category-total": "Ukupan broj članova", "pageinfo-category-pages": "Broj stranica", - "pageinfo-category-subcats": "Broj podkategorija", + "pageinfo-category-subcats": "Broj potkategorija", "pageinfo-category-files": "Broj datoteka", "markaspatrolleddiff": "Označi kao patrolirano", "markaspatrolledtext": "Označi ovaj članak kao patroliran", @@ -2803,9 +2807,9 @@ "watchlistedit-clear-submit": "Isprazni spisak nadgledanja (Ovo je trajno!)", "watchlistedit-clear-done": "Vaš spisak praćenja je očišćen.", "watchlisttools-clear": "Očisti spisak nadgledanja", - "watchlisttools-view": "Pregled promjena praćenih stranica", - "watchlisttools-edit": "Pogledaj i uredi listu praćenih članaka.", - "watchlisttools-raw": "Uređivanje praćenih stranica u okviru praćenja.", + "watchlisttools-view": "Pogledaj srodne izmjene", + "watchlisttools-edit": "Pogledaj i uredi spisak praćenja", + "watchlisttools-raw": "Uredi spisak praćenja u okviru za uređivanje", "iranian-calendar-m1": "Farvardin (Iranski kalendar)", "iranian-calendar-m2": "Ordibehesht", "iranian-calendar-m3": "Khordad", @@ -2963,6 +2967,8 @@ "tags-delete-title": "Izbriši oznaku", "tags-delete-reason": "Razlog:", "tags-delete-not-found": "Oznaka \"$1\" ne postoji.", + "tags-activate-reason": "Razlog:", + "tags-activate-not-found": "Oznaka \"$1\" ne postoji.", "comparepages": "Usporedi stranice", "compare-page1": "Stranica 1", "compare-page2": "Stranica 2", @@ -2977,7 +2983,7 @@ "dberr-info": "(ne može se spojiti server baze podataka: $1)", "dberr-usegoogle": "U međuvremenu, možete pokušati pretraživanje putem Google.", "dberr-outofdate": "Zapamtite da njihovi indeksi našeg sadržaja ne moraju uvijek biti ažurni.", - "dberr-cachederror": "Slijedeći tekst je keširana kopija zahtjevane stranice i možda nije potpuno ažurirana.", + "dberr-cachederror": "Sljedeći tekst je keširana kopija zahtijevane stranice, koja možda nije potpuno ažurirana.", "htmlform-invalid-input": "Postoje određeni problemi s Vašim unosom", "htmlform-select-badoption": "Vrijednost koju ste naveli nije valjana opcija.", "htmlform-int-invalid": "Vrijednost koju ste naveli nije cijeli broj.", diff --git a/languages/i18n/cs.json b/languages/i18n/cs.json index 407f9cc644..cd6951e9a7 100644 --- a/languages/i18n/cs.json +++ b/languages/i18n/cs.json @@ -649,6 +649,7 @@ "yourdiff": "Rozdíly", "copyrightwarning": "Všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} jsou zveřejňovány podle $2 (podrobnosti najdete na $1).\nPokud si nepřejete, aby váš text byl nemilosrdně upravován a volně šířen, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.
\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. public domain).\n'''NEVKLÁDEJTE DÍLA CHRÁNĚNÁ AUTORSKÝM PRÁVEM BEZ DOVOLENÍ!'''", "copyrightwarning2": "Uvědomte si, že všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} mohou být ostatními uživateli upraveny, pozměněny či odstraněny. Pokud si nepřejete, aby váš text byl nemilosrdně upravován, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.
\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. public domain); podrobnosti najdete na $1. '''Nekopírujte díla chráněná autorským právem bez dovolení!'''", + "editpage-cannot-use-custom-model": "Model obsahu této stránky nelze změnit.", "longpageerror": "'''Chyba: Pokoušíte se uložit text o velikosti {{PLURAL:$1|$1 KiB}}, přičemž dovolené maximum je {{PLURAL:$2|$2 KiB}}.'''\nVaše změna nemůže být uložena.", "readonlywarning": "Varování: Databáze byla uzamčena kvůli údržbě, takže momentálně nebudete moci uložit své změny.\nMůžete si okopírovat text do souboru a uložit si ho na později.\n\nSprávce serveru, který databázi zamkl, poskytl toto zdůvodnění: $1", "protectedpagewarning": "'''Varování: Tato stránka byla zamčena, takže ji mohou editovat pouze správci.'''\nNíže je pro přehled zobrazen nejnovější protokolovací záznam:", @@ -3406,5 +3407,7 @@ "special-characters-group-khmer": "Khmerština", "special-characters-title-endash": "krátká pomlčka", "special-characters-title-emdash": "dlouhá pomlčka", - "special-characters-title-minus": "znaménko minus" + "special-characters-title-minus": "znaménko minus", + "mw-widgets-titleinput-description-new-page": "stránka zatím neexistuje", + "mw-widgets-titleinput-description-redirect": "přesměrování na $1" } diff --git a/languages/i18n/de.json b/languages/i18n/de.json index ddfd44876e..14c6003979 100644 --- a/languages/i18n/de.json +++ b/languages/i18n/de.json @@ -3431,5 +3431,7 @@ "special-characters-group-khmer": "Khmer", "special-characters-title-endash": "Halbgeviertstrich", "special-characters-title-emdash": "Geviertstrich", - "special-characters-title-minus": "Minus" + "special-characters-title-minus": "Minus", + "mw-widgets-titleinput-description-new-page": "Seite ist noch nicht vorhanden", + "mw-widgets-titleinput-description-redirect": "Weiterleitung nach $1" } diff --git a/languages/i18n/dty.json b/languages/i18n/dty.json index 5462423789..59175beaed 100644 --- a/languages/i18n/dty.json +++ b/languages/i18n/dty.json @@ -262,7 +262,7 @@ "hidetoc": "लुकाउन्या", "collapsible-collapse": "खुम्च्याउन्या", "collapsible-expand": "फैलाउ", - "confirmable-confirm": "तमरो {{GENDER:$1|लिङ्ग}} हो?", + "confirmable-confirm": "क्या {{GENDER:$1|तम}} सुनिश्चित छौ ?", "confirmable-yes": "हो", "confirmable-no": "नाइँ", "thisisdeleted": "$1 हेर्न्या या पैल्लीका रुपमी फर्काउन्या हो?", @@ -443,6 +443,7 @@ "changeemail-submit": "इमेल परिवर्तन गद्या", "changeemail-throttled": "तमले अलै भौत फेर प्रवेशका निम्ति प्रयास गरया छौ।\nकृपया $1 पर्खेर मात्र प्रयास गर।", "resettokens": "टोकन पूर्वरुपमी फर्काउन्या", + "resettokens-text": "जो टोकन तमरो खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तम त्यसलाई यहाँ रिसेट गद्द सक्द्या हौ।\n\nयदि तमले तिनलाई भुलवस कैकनै देखाईदिया छौ वा तमरो खाता ह्याक भइसक्याको छ भन्या तम यसलाई रिसेट गर्या ।", "resettokens-no-tokens": "पूर्वरुमी फर्काउन्या कोई लै टोकन नाइथिन् ।", "resettokens-legend": "टोकन पूर्वरुपमी फर्काउन्या", "resettokens-tokens": "टोकनहरू:", @@ -473,7 +474,9 @@ "preview": "पूर्वावलोकन", "showpreview": "पूर्वालोकन धेकाउन्या", "showdiff": "परिवर्तन धेकाउन्या", + "blankarticle": "चेतावनी: तम एक खालि पानाको निर्माण गद्द लाग्याछौ ।\nयदि तमले \"{{int:savearticle}}\" लाई पुनः थिच्यौ भण्या पानो बिना कुनै सामग्री नै निर्मित गरिन्याछ ।", "anoneditwarning": "चेतावनी: तमले प्रवेश अरेको नाइथिन । तमरो आइपि ठेगाना पाना सम्पादन इतिहासमि दर्ता गरिन्या छ र यो सब्बैले हेद्द सक्कान । यदि तमलाईँ [$1 लगईन] वा [$2 नयाँ खाता बनाउन्या] गर्याभण्या तमबठे गरियाको सम्पादन तमरो प्रयोगकर्तानाममि जोडिन्याछ ।", + "selfredirect": "चेतावनी: तम यै पानालाई आफुमी पुनः निर्देशित गद्द लाग्याछौ ।\nहुनसक्छ तम अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गद्द लाग्याछौ, वा गलत पानाको सम्पादन गद्द लाग्याछौ ।\nतम पुनः एकपल्ट \"{{int:savearticle}}\" क्लिक गद्दाछौ, पुनः निर्देशित तसै लै बनाइन्याछ।", "summary-preview": "सारांश पूर्वालोकन:", "subject-preview": "विषय/शीर्षपंक्ति पूर्वरुप:", "blockedtitle": "प्रयोककर्तालाई रोक लगाइया छ", @@ -501,7 +504,10 @@ "editconflict": "सम्पादन बाँझ्यो: $1", "yourtext": "तमरा पाठहरू", "storedversion": "संग्रहित पुनरावलोकन", + "editingold": "चेतावनी: तम यै पानाको अति पुरानो अप्रचलित संशोधनलाई सम्पादन गद्द लाग्याछौ ।\nयदि तमीले यै परिवर्तनलाई सङ्ग्रह गर्यौ भण्या यै पछिका संशोधनहरू नष्ट हुन्याछन् ।", "yourdiff": "भिन्नताहरू", + "copyrightwarning2": "कृपया ध्यान देओ यै {{SITENAME}}मी दियाका योगदानहरूलाई अन्य योगदानकर्ताहरूद्वारा सम्पादन गरिन्याछ, परिवर्तन गरिन्याछ अथवा हटाइन्याछ । यदि तमरो लेखलाई निर्दयता पूर्वक सम्पादन गरेको चाहदैनौ भण्या त्यो यहाँ जनराख।
\nयदि तमी किटानसाथ भन्नाछौ कि यो लेख तम आफैले लेख्याको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबठे लियाको हो (विवरणकोलागि हेर $1 ). \n'''कपीराइट भयाको रचना अनुमति बिना यहाँ जनराख!'''", + "readonlywarning": "चेतावनी: तथ्याङ्क मर्मतको निम्ति बन्द गरियाकोछ, यै कारण तमी आफ्नो सम्पादन अहिले सङ्ग्रह गद्द सक्द्याहौन ।\n\nयदि तमी चाहन्छौ भण्या अहिले यहाँ भयाका पाठलाई कपि गरि कतै टेक्स्ट फाइलमी पेस्ट गरिबर सङ्ग्रह गद्द सक्द्याहौ ।\n\nप्रवन्धक जनले यो बन्द गर्याको छ उनले यसो विवरण दियाको छ: $1", "protectedpagewarning": "सूचना: यै पानालाई सुरक्षित गरियाको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यैलाई सम्पादन गद्द सक्द्याछन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइयाको छ:", "templatesused": "यै पानामी राखियाका {{PLURAL:$1|Template|ढाँचाहरू}} :", "template-protected": "(सुरक्षित)", @@ -522,6 +528,7 @@ "content-failed-to-parse": "$1 को लागि $2 सामग्रीलाई पार्स गर्न विफल, गल्ती: $3", "invalid-content-data": "अमान्य सामग्री डेटा", "content-not-allowed-here": "सामग्री \"$1\" [[$2]] पानामी राख्न अनुमती छैन ।", + "editwarning-warning": "यै पानाबठे बाहिर जाँदा तमले गर्याको कुनै पनि परिवर्तन हराउन्याछ ।\nयदि तमले लग इन गर्याको छ भण्या तमी यै सूचनालाई धेकाउन आफ्नो रोजाईहरूको \"{{int:prefs-editing}}\" भागमी गइबर बन्द गद्द सक्द्याहौ।", "content-model-wikitext": "विकिपाठ", "content-model-text": "साधारण पाठ", "content-model-javascript": "जाभास्क्रिप्ट", @@ -795,6 +802,8 @@ "upload-recreate-warning": "'''चेतावनी: त्यस नाममी रह्याका फाइलहरू सारियाको या हटायाको छ।'''\n\nयै पानाको सारियाको र हटायाको लग तमरो सहजताको लागि दियाको छ।", "filedesc": "सारांश:", "large-file": "यो सिफारिस गर्याछकि फाइलहरूको आकार $1 भन्दा ठूला हुनु हुँदैन;\nयै फाइलको आकार $2 छ ।", + "fileexists": "यै नामको फाइल पैल्ली नैं छ, यदि तम परिवर्तन गद्या कुरडीमू सुनिश्चित छैनौ भण्या कृपया [[:$1]] जाँच गर।\n[[$1|thumb]]", + "filewasdeleted": "यै नामको एक फाइल पहिली पनि अपलोड गरिबर पछि हटाई सकियाको छ।\nपुनः अपलोड गद्दु पूर्व तम $1 लाई निक्करी जाँच गर ।", "uploadstash-nofiles": "तमरा कोइ पनि स्टाश गर्याका फाइलहरू नाइथिन् ।", "uploadstash-refresh": "फाइलहरूको सूची ताजा गर्न्या", "license-header": "कोइ केइ नाइथिन", @@ -856,6 +865,8 @@ "activeusers-hidesysops": "प्रवन्धकहरू लुकाउन्या", "activeusers-noresult": "प्रयोगकर्ताहरू भेटियानन्", "mailnologintext": "तमीले अरु प्रयोगकर्तानलाई ईमेल पठाउनको लागि आफु पहिली [[Special:UserLogin|प्रवेश(लगइन)गर्याको]] हुनुपडन्छ र [[Special:Preferences|आफ्नो रोजाइहरूमी]] एउटा वैध ईमेल ठेगाना भयाको हुनुपडन्छ ।", + "emailpagetext": "तल दियाको फार्मले तमी यै {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्द्या हौ । तमीले जो ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता रोजाईहरू]]मी दियाका छियौ त्यो यै इमेललाई \"पठाउने\" को रूपमी आउन्याछ, अतः प्राप्तकर्ता तमीलाई सिधै जवाफ दिनसक्द्याछ ।", + "usermaildisabledtext": "यै विकिमी तम और प्रयोगकर्तानलाई ई-मेल पठाउन नाइसक्दा", "mywatchlist": "मेरो ध्यान सूची", "watch": "ध्यान राख", "watchthispage": "यै पानाको ध्यान राख", @@ -864,6 +875,7 @@ "notanarticle": "सामाग्री छैन", "enotif_reset": "सब्बै पानाहरू हेर्याको भनी चिनो लाउन्या", "enotif_body": "प्रिय $WATCHINGUSERNAME,\n\n\n{{SITENAME}}को पाना $PAGETITLE $PAGEEDITDATE का दिन $PAGEEDITOR द्वारा $CHANGEDORCREATED, \nअहिलको संशोधनको निउती हेर $PAGETITLE_URL ।\n\n$NEWPAGE\n\nसम्पादकको सारांश: $PAGESUMMARY $PAGEMINOREDIT\n\nसम्पादकसित सम्पर्क राख:\nमेल: $PAGEEDITOR_EMAIL\nविकि: $PAGEEDITOR_WIKI\n\nतमी यै पानामी नगयासम्म अब उसो कुनै परिवर्तन भयाका खण्डमी कुनै सूचना दिन्याछैन ।\nतमरा सम्पूर्ण ध्यान सूचीका पानानको लागि तमीले सूचना पताकालाई ध्यान सूचीमी पुनर्बहाली गद्द सक्द्या हौ । \n\n तमरो मित्र {{SITENAME}} सूचना प्रणाली\n--\nइमेल सूचना व्यवस्था परिवर्तन गद्द, जाओ\n{{canonicalurl:{{#special:Preferences}}}}\n\nध्यान सूची व्यवस्थित गर्न, जाओ\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nध्यान सूची मेट्न, जाओ\n$UNWATCHURL\n\nप्रतिक्रिया र अन्य सहयोगका निउती:\n$HELPPAGE", + "confirmdeletetext": "तमी यो पानो र यैको इतिहास मेट्ट लाग्याछौ । कृपया पुष्टि गर कि [[{{MediaWiki:Policy-url}}|नियम]] मुताबिक तम मेट्ट लाग्याछौ।", "dellogpage": "मेटाइयाको लग", "delete-toobig": "यै पानाको सम्पादन इतिहास भौतै र $1 {{PLURAL:$1|पुनरावलोक|पुनरावलोकहरू}}भन्दा बढी रह्याको छ।\n {{SITENAME}}मी दुर्घटनाको कारणले गडबडी आउनसक्द्या कुरडीलाई रोक्न यसा पानाहरूलाई मेट्नबठे निषेध गरियाको छ ।", "rollback": "सम्पादनहरू उल्टाउन्या", @@ -918,6 +930,8 @@ "contribslink": "योगदानहरू", "block-log-flags-anononly": "नाम नभयाका प्रयोकर्ताहरू मात्र", "ipbblocked": "तमी अरु प्रयोगकर्तानहरूलाई ब्लक गर्न वा उनीहरूको ब्लक खोल्न नाइसक्दा किनभने तमी आफै ब्लक भयाका छौ ।", + "lockdbtext": "डेटाबेसमी ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो रौजाईमी परिवर्तन, आफ्नो ध्यानसूचीमी सम्पादन, र अन्य वस्तु जैको लागि डेटाबेसमी परिवर्तन गरें हुन्छ, त्यैबठे वन्चित हुन्याछ । कृपया यो सुनिश्चित गर कि तम यो गर्न चाहन्छौ, र तम रक्षण पश्चात ताला खोल्न्या हौ ।", + "movepagetext-noredirectfixer": "तल दियाको फारमले पानाको नाम परिवर्तन गद्याछ, उइको सबै इतिहास पनि नयाँ नामले धेकिन्याछ ।\nपुरानो शीर्षक नयाँ नाममी अनुप्रेषण गद्याछ ।\nमूल शीर्षक तर्फ लिएर जान्या सबै अनुप्रेषणहरूलाई तम स्वचालित रूपले परिवर्तन गद्द सक्द्या हौ ।\nयदि तम यसो नाइ गद्या भया कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]का लागि पक्कै जाँच गर ।\nलिङ्क आफ्नो स्थानमै रहोस्, यो सुनिश्चित गर्ने जिम्मेवारी तमरो हो ।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भण्या नाम परिवर्तन '''हुन''' सक्दैन । तर यदि नयाँ शीर्षक भयाको लेख खाली छ अथवा कतै अन्य स्थानमी अनुप्रेषित गद्दैछ र साथै उइको पुरानो संस्करण छैन भण्या त्यैको नाम परिवर्तन हुन्याछ ।\nयैको अभिप्राय यो हो कि यदि तमीबठे गल्ती भयाको छ भण्या तम फेरी पुरानो नाममी यस पानालाई सार्न सक्द्याछौ, र साथै तम कुनै पहिली बठे रह्याको पानाको सट्टा यो स्थानान्तरण गद्द सक्द्या हौन ।\n\nचेतावनी!\nयदि पानो खासै लोकप्रिय छ भण्या त्यैको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्ना पहिली तमी यैको नतिजासँग परिचित भयाकाछौ ।", "cant-move-user-page": "तमसँग प्रयोगकर्ता पानाहरू साद्या अनुमती नाइथिन् (सहपानाहरू बाहेक)", "cant-move-to-user-page": "तमसँग पानाहरूलाई प्रयोगकर्ता पानामी साद्या अनुमती नाइथिन् (प्रयोगकर्ता सहपृष्ठहरूमी बाहेक)", "move-subpages": "उप पानाहरू सार्न्या($1 सम्मको)", @@ -929,6 +943,7 @@ "movenosubpage": "यै पानाको उपपाना नाइथी", "protectedpagemovewarning": "सूचना: यै पानालाई सुरक्षित गरियाको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यैको नाम बदल्न सक्द्या छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दियाको छ:", "export": "पानहरु पठौन्या", + "exporttext": "तमी विशिष्ठ पानाको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गद्द सक्द्याहौ अथवा पानाहरूको समूहका केहि XML मी बेर्न सक्द्याहौ।\nयो [[Special:Import|आयात पाना]]को सहायताले मीडियाविकीको प्रयोग गरिवर दोश्रो विकीबठे आयात गद्द सकिन्याछ।\n\nपानाहरूको निर्यात गद्दका लागि, तल विषय वस्तु बाकसमी शीर्षक देओ, एक शीर्षक प्रति पङ्क्ति, र छान कि तम वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहन्छौ वा चाहदैनौ, वा पछिल्लो सम्पादनका बारेमी जानकारीसँग मात्रै वर्तमान अवतरण चाहन्छौ।\n\nपछीको स्थितिको लागि तमी लिङ्कको पनि प्रयोग गद्द सक्द्याहौ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।", "thumbnail-more": "ठूलो बनौन्या", "import-noarticle": "आयात गद्दाकी लाई पानाहरू नाइथिन्", "tooltip-pt-userpage": "तमरो प्रयोगकर्ता पानो", @@ -1018,6 +1033,7 @@ "exif-orientation-1": "सानतिनो", "namespacesall": "सब्बै", "monthsall": "सब्बै", + "confirmrecreate": "प्रयोगकर्ता [[User:$1|$1]] ([[User talk:$1|कुरडी]])ले तमले सम्पादन सुरु गर्यापछि यो पानो मेट्याकाछन् । कारण थ्यो:\n: ''$2''\nकृपया सुनिश्चित गर कि तम यो पानो साँच्चै निर्माण गद्द चाहन्छौ ।", "lag-warn-normal": " $1 {{PLURAL:$1|सेकेन्ड |सेकेन्डहरू}} भन्दा नौला फेरबदलहरू यै सूचीमी नधेकाउन सक्छ ।", "lag-warn-high": "डेटावेस सर्भरको मस्तै ढिलाको कारणले $1 {{PLURAL:$1|सेकेन्ड|सेकेन्डहरू}} पछिका परिवर्तनहरू नधेकिन सक्छ ।", "watchlisttools-view": "आधारित फेरबदलीहरू हेर", @@ -1029,10 +1045,12 @@ "tag-filter": "[[Special:Tags|पुछड]] छानिन्या", "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ट्याग|ट्यागहरू}}]]: $2)", "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तनहरू}}", + "tags-delete-explanation-warning": "यो क्रिया अपरिवर्तनीय हो र त्यसलाई परिवर्तन गर्न नाईसकिंदो, डेटाबेस प्रवन्धक पनि यैलाई केहि गद्द सक्दाइनन् । विश्वासपूर्ण रूपले तम तय गर कि तमी यै ट्यागलाई हटाउन चाहन्छौ ।", "logentry-delete-delete": "$1 बठे पानो $3 {{GENDER:$2|मेटाइयो}}", "logentry-move-move": "$1 {{GENDER:$2|द्वारा}} $3 पृष्ठलाई $4 मि सारियो", "logentry-newusers-create": "प्रयोगकर्ता खाता $1 {{GENDER:$2|खोलियो}}", "logentry-upload-upload": "$1 ले $3 {{GENDER:$2|अपलोड अरेका छन्}}", + "feedback-bugornote": "यदि तमी कुनै प्राविधिक समस्यालाई विस्तारले सम्झाउन तयार छौ भण्या कृपया [$1 बग राख]।\nयदि हैन, भण्या तमी तल दियाको सरल फारमको प्रयोग गद्दसक्द्याहौ । तमरो टिप्पणी, तमरो प्रयोगकर्ता नाम र तमरो ब्राउजरको नाम सहित \"[$3 $2]\" पानामी जोडिन्याछ ।", "searchsuggest-search": "खोज", "api-error-duplicate": "यै साइटमी पहिलीबठे यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल छ]|भयाका [$2 केहि अरु फाइलहरू छन्]}} ।", "api-error-duplicate-archive": "यै साइटमी पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल थियो]|भयाका [$2 केहि अरु फाइलहरू थिए]}} ।\nतर {{PLURAL:$1|यो मेट्याको थियो|यी मेटायाका थिए}} ।", diff --git a/languages/i18n/el.json b/languages/i18n/el.json index 9071962ea5..9981328e42 100644 --- a/languages/i18n/el.json +++ b/languages/i18n/el.json @@ -252,12 +252,12 @@ "jumptonavigation": "πλοήγηση", "jumptosearch": "αναζήτηση", "view-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτή τη σελίδα.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτή τη σελίδα.\n\n$1", - "generic-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτό τον πόρο.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτό τον πόρο ξανά.", + "generic-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτό τον πόρο.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτό τον πόρο.", "pool-timeout": "Χρόνος αναμονής για το κλείδωμα", "pool-queuefull": "Η ουρά της δεξαμενής διεργασιών είναι πλήρης", "pool-errorunknown": "Άγνωστο σφάλμα", "pool-servererror": "Η υπηρεσία καταμετρητή ομαδοποίησης δεν είναι διαθέσιμη ($1).", - "poolcounter-usage-error": "Σφάλμα χρήσης:$1", + "poolcounter-usage-error": "Σφάλμα χρήσης: $1", "aboutsite": "Σχετικά με {{SITENAME}}", "aboutpage": "Project:Σχετικά", "copyright": "Το περιεχόμενο είναι διαθέσιμο σύμφωνα με την $1 εκτός αν αναφέρεται διαφορετικά.", @@ -273,8 +273,8 @@ "policy-url": "Project:Πολιτική", "portal": "Πύλη κοινότητας", "portal-url": "Project:Πύλη κοινότητας", - "privacy": "Πολιτική ιδιωτικότητας", - "privacypage": "Project:Πολιτική ιδιωτικότητας", + "privacy": "Πολιτική ιδιωτικού απορρήτου", + "privacypage": "Project:Πολιτική ιδιωτικού απορρήτου", "badaccess": "Σφάλμα άδειας", "badaccess-group0": "Δεν επιτρέπεται να εκτελέσετε την ενέργεια που ζητήσατε.", "badaccess-groups": "Η ενέργεια που ζητήσατε είναι περιορισμένη σε χρήστες που ανήκουν {{PLURAL:$2|στην ομάδα|σε μία από τις ομάδες}}: $1.", @@ -340,49 +340,49 @@ "readonly": "Κλειδωμένη βάση δεδομένων", "enterlockreason": "Εισαγάγετε μια αιτία για το κλείδωμα και μια εκτίμησή για το πότε το κλείδωμα αυτό θα αρθεί", "readonlytext": "Η βάση δεδομένων είναι επί του παρόντος κλειδωμένη απέναντι σε νέες καταχωρίσεις και άλλες τροποποιήσεις, πιθανότατα λόγω συντήρησης ρουτίνας, μετά την οποία θα επανέλθει σε κανονική λειτουργία. \n\nΟ διαχειριστής που την κλείδωσε έδωσε την ακόλουθη εξήγηση: $1", - "missing-article": "Η βάση δεδομένων δεν βρήκε κείμενο μιας σελίδας που θα έπρεπε να βρεθεί, με όνομα «$1» $2.\n\nΑυτό συνήθως προκαλείται ακολουθώντας ένα σύνδεσμο \"διαφοράς\" ή σύνδεσμο προς ιστορικό μιας σελίδας που έχει διαγραφεί.\n\nΕάν δεν πρόκειται για κάτι τέτοιο, μπορεί να βρήκατε ένα σφάλμα στο λογισμικό.\nΠαρακαλούμε αναφέρετε το σε ένα [[Special:ListUsers/sysop|διαχειριστή]], δίνοντας το URL.", + "missing-article": "Η βάση δεδομένων δεν βρήκε το κείμενο της σελίδας που θα έπρεπε να έχει βρεθεί, με όνομα «$1» $2.\n\nΑυτό συνήθως προκαλείται ακολουθώντας έναν παρωχημένο σύνδεσμο διαφορών ή ιστορικού κάποιας σελίδας που έχει διαγραφεί.\n\nΕάν δεν πρόκειται για κάτι τέτοιο, μπορεί να βρήκατε ένα σφάλμα στο λογισμικό.\nΠαρακαλούμε αναφέρετέ το αυτό σε κάποιο [[Special:ListUsers/sysop|διαχειριστή]], σημειώνοντας τη διεύθυνση URL.", "missingarticle-rev": "(αναθεώρηση#: $1)", "missingarticle-diff": "(Διαφ: $1, $2)", - "readonly_lag": "Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους servers των αντιγράφων της βάσης δεδομένων (slaves) να καλύψουν τη διαφορά με τον κεντρικό server του πρωτοτύπου της βάσης (master).", + "readonly_lag": "Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους εξυπηρετητές των αντιγράφων της βάσης δεδομένων να καλύψουν τη διαφορά με τον κεντρικό εξυπηρετητή του πρωτοτύπου της βάσης δεδομένων.", "internalerror": "Εσωτερικό σφάλμα", "internalerror_info": "Εσωτερικό σφάλμα: $1", "internalerror-fatal-exception": "Ανεπανόρθωτη εξαίρεση τύπου «$1»", "filecopyerror": "Δεν ήταν δυνατή η αντιγραφή του αρχείου «$1» στο «$2».", - "filerenameerror": "Δεν είναι δυνατή η μετονομασία του αρχείου «$1» σε «$2».", + "filerenameerror": "Δεν ήταν δυνατή η μετονομασία του αρχείου «$1» σε «$2».", "filedeleteerror": "Δεν ήταν δυνατή η διαγραφή του αρχείου «$1».", - "directorycreateerror": "Δεν μπορούσε να δημιουργηθεί η κατηγορία «$1».", + "directorycreateerror": "Δεν ήταν δυνατή η δημιουργία της κατηγορίας «$1».", "directoryreadonlyerror": "Ο κατάλογος «$1» είναι μόνο για ανάγνωση.", "directorynotreadableerror": "Ο κατάλογος «$1» δεν είναι αναγνώσιμος.", - "filenotfound": "Δεν είναι δυνατή η ανεύρεση του αρχείου «$1».", - "unexpected": "Μη προσδοκώμενη τιμή: «$1»=«$2».", - "formerror": "Σφάλμα: Δεν ήταν δυνατή η υποβολή της φόρμας!", - "badarticleerror": "Η ενέργεια αυτή δεν μπορεί να εκτελεσθεί στη συγκεκριμένη σελίδα.", + "filenotfound": "Δεν ήταν δυνατή η ανεύρεση του αρχείου «$1».", + "unexpected": "Μη αναμενόμενη τιμή: «$1»=«$2».", + "formerror": "Σφάλμα: Δεν ήταν δυνατή η υποβολή της φόρμας.", + "badarticleerror": "Η ενέργεια αυτή δεν μπορεί να εκτελεσθεί σε αυτήν τη σελίδα.", "cannotdelete": "Η σελίδα ή το αρχείο «$1» δεν μπόρεσε να διαγραφεί.\nΕνδεχομένως να έχει ήδη διαγραφεί από κάποιον άλλον.", - "cannotdelete-title": "Αδύνατη η διαγραφή της σελίδας «$1»", + "cannotdelete-title": "Δεν είναι δυνατή η διαγραφή της σελίδας «$1»", "delete-hook-aborted": "Η επεξεργασία ματαιώθηκε από το άγκιστρο του συντακτικού αναλυτή.\nΔεν έδωσε εξήγηση.", - "no-null-revision": "Δεν μπορούσε να δημιουργηθεί νέα μηδενική αναθεώρηση για τη σελίδα \"$1\"", + "no-null-revision": "Δεν ήταν δυνατή η δημιουργία νέας μηδενικής αναθεώρησης για τη σελίδα «$1»", "badtitle": "Ακατάλληλος τίτλος", "badtitletext": "Ο τίτλος της σελίδας που ζητήσατε δεν είναι έγκυρος ή είναι κενός ή πρόκειται για έναν εσφαλμένα συνδεδεμένο διαγλωσσικό τίτλο ή εσφαλμένα συνδεδεμένο τίτλο ανάμεσα σε διαφορετικά wiki.", "title-invalid-empty": "Ο τίτλος σελίδας που ζητήσατε είναι κενός ή περιέχει μόνο όνομα ονοματοχώρου.", "title-invalid-utf8": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρη ακολουθία UTF-8.", - "title-invalid-interwiki": "Ο τίτλος περιέχει σύνδεσμο interwiki", + "title-invalid-interwiki": "Ο τίτλος που ζητήσατε περιέχει σύνδεσμο interwiki που δεν μπορεί να χρησιμοποιηθεί σε τίτλους.", "title-invalid-talk-namespace": "Ο τίτλος σελίδας που ζητήσατε αναφέρεται σε σελίδα συζήτησης που δεν μπορεί να υπάρχει.", "title-invalid-characters": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρους χαρακτήρες: «$1».", "title-invalid-relative": "Ο τίτλος έχει σχετική διαδρομή. Τίτλοι παρόμοιων σελίδων (./, ../) δεν είναι έγκυροι, διότι συχνά δεν θα είναι προσβάσιμοι όταν χειρίζονται από το πρόγραμμα περιήγησης του χρήστη.", "title-invalid-magic-tilde": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρη ακολουθίας μαγικών περισπωμένων (~~~).", - "title-invalid-too-long": "Ο τίτλος σελίδας που ζητήσατε είναι υπερβολικά μεγάλος. Δεν πρέπει να είναι μεγαλύτερος από $1 bytes σε κωδικοποίηση UTF-8.", + "title-invalid-too-long": "Ο τίτλος σελίδας που ζητήσατε είναι υπερβολικά μεγάλος. Δεν πρέπει να είναι μεγαλύτερος από $1 {{PLURAL:$1|byte|bytes}} σε κωδικοποίηση UTF-8.", "title-invalid-leading-colon": "Ο τίτλος σελίδας που ζητήσατε περιέχει μια μη έγκυρη άνω και κάτω τελεία στην αρχή.", "perfcached": "Τα δεδομένα που ακολουθούν είναι cached και είναι πιθανόν να μην είναι επικαιροποιημένα. Ένα μέγιστο των {{PLURAL:$1|one result is|$1 results are}} διαθέσιμο στην cache.", "perfcachedts": "Τα ακόλουθα δεδομένα είναι αποθηκευμένα στην προσωρινή μνήμη και ενημερώθηκαν τελευταία φορά στις $2 στις $3. Υπάρχει διαθέσιμο ένα μέγιστο {{PLURAL:$4|ενός αποτελέσματος|$4 αποτελεσμάτων}} στην προσωρινή μνήμη.", "querypage-no-updates": "Οι ενημερώσεις για αυτή τη σελίδα είναι απενεργοποιημένες. Τα δεδομένα εδώ δεν θα ανανεωθούν προς το παρόν.", "viewsource": "Προβολή κώδικα", "viewsource-title": "Προβολή πηγαίου κώδικα για τη σελίδα $1", - "actionthrottled": "Περιορισμένη ενέργεια", + "actionthrottled": "Η ενέργεια παρεμποδίστηκε", "actionthrottledtext": "Σαν μέτρο κατά του spam, υπάρχει όριο στην εκτέλεση αυτής της ενέργειας πολλές φορές μέσα σε μικρό χρονικό διάστημα και έχετε ξεπεράσει αυτό το όριο.\nΠαρακαλούμε δοκιμάστε ξανά σε λίγα λεπτά.", "protectedpagetext": "Αυτή η σελίδα έχει προστατευθεί για πρόληψη επεξεργασίας ή άλλες ενέργειες.", - "viewsourcetext": "Μπορείτε να δείτε και να αντιγράψετε τον κώδικα αυτής της σελίδας:", - "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον κώδικα των '''επεξεργασιών σας''' σε αυτήν τη σελίδα:", - "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για αποτροπή τυχόν βανδαλισμού.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wikis, παρακαλούμε χρησιμοποιήστε [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικοποίησης του MediaWiki.", + "viewsourcetext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα αυτής της σελίδας:", + "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα των επεξεργασιών σας σε αυτήν τη σελίδα:", + "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για την πρόληψη κατάχρησης.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικής προσαρμογής της γλώσσας του MediaWiki.", "editinginterface": "Προειδοποίηση: Επεξεργάζεστε μια σελίδα η οποία χρησιμοποιείται για να παρέχει κείμενο διεπαφής για το λογισμικό. Αλλαγές σε αυτήν τη σελίδα θα επηρεάσουν την εμφάνιση της διεπαφής χρήστη για άλλους χρήστες αυτού του wiki.", "translateinterface": "Για να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [//translatewiki.net/ translatewiki.net], το έργο τοπικοποίησης του MediaWiki.", "cascadeprotected": "Αυτή η σελίδα έχει προστατευθεί από επεξεργασία, επειδή περιλαμβάνεται {{PLURAL:$1|στην ακόλουθη σελίδα, που είναι προστατευμένη|στις ακόλουθες σελίδες, που είναι προστατευμένες}} με ενεργοποιημένη τη «διαδοχική» προστασία στο:\n$2", @@ -662,6 +662,7 @@ "yourdiff": "Διαφορές", "copyrightwarning": "Παρακαλούμε σημειώστε ότι όλες οι συνεισφορές στον ιστότοπο {{SITENAME}} θεωρούνται ότι δημοσιεύονται σύμφωνα με την $2 (βλ. $1 για λεπτομέρειες).\nΑν δεν επιθυμείτε τα κείμενά σας να τα επεξεργάζονται ανηλεώς άλλοι χρήστες και να τα διαδίδουν κατά βούληση, τότε να μην τα υποβάλλετε εδώ.
Μας υπόσχεστε επίσης ότι αυτό το γράψατε μόνοι σας ή το αντιγράψατε από κάποια ελεύθερη πηγή ως κοινό κτήμα ή κάτι ανάλογο.\nΜην υποβάλλετε δουλειά που προστατεύεται από πνευματικά δικαιώματα χωρίς άδεια!", "copyrightwarning2": "Σημειώστε ότι όλες οι συνεισφορές στον ιστότοπο {{SITENAME}} μπορούν να υποστούν επεξεργασία, να αλλαχθούν, ή να αφαιρεθούν από άλλους συνεισφέροντες. Αν δεν θέλετε τα γραπτά σας να υποστούν επεξεργασία κατά βούληση, τότε μην τα τοποθετήσετε σε αυτό το χώρο.
\nΕπίσης μας υπόσχεστε πως ό,τι γράφετε είναι δικό σας, ή αντιγραμμένο από μια πηγή που είναι κοινό κτήμα, ή μια παρόμοια ελεύθερη πηγή (δείτε $1 για λεπτομέρειες).\n'''ΠΑΡΑΚΑΛΟΥΜΕ ΝΑ ΜΗΝ ΤΟΠΟΘΕΤΕΙΤΕ ΠΝΕΥΜΑΤΙΚΑ ΚΑΤΟΧΥΡΩΜΕΝΟ ΕΡΓΟ ΧΩΡΙΣ ΑΔΕΙΑ!'''", + "editpage-cannot-use-custom-model": "Το μοντέλο περιεχομένου αυτής της σελίδας δεν μπορεί να αλλάξει.", "longpageerror": "'''Σφάλμα: Το κείμενο που καταχωρήσατε έχει μήκος {{PLURAL:$1|ένα kilobyte|$1 kilobytes}}, το οποίο είναι μεγαλύτερο από το μέγιστο {{PLURAL:$2|του ενός kilobyte|των $2 kilobytes}}.'''\nΔεν μπορεί να αποθηκευτεί.", "readonlywarning": "'''Προειδοποίηση: Η βάση δεδομένων έχει κλειδωθεί για συντήρηση, έτσι δεν θα μπορέσετε να αποθηκεύσετε τις επεξεργασίες σας αυτή τη στιγμή.'''\nΜπορείτε αν θέλετε να μεταφέρετε με αντιγραφή-επικόλληση το κείμενό σας σε αρχείο κειμένου και να το αποθηκεύσετε για αργότερα.\n\nΟ διαχειριστής που την κλείδωσε έδωσε την εξής εξήγηση: $1", "protectedpagewarning": "'''Προειδοποίηση: Αυτή η σελίδα έχει κλειδωθεί ώστε μόνο χρήστες με δικαιώματα διαχειριστή μπορούν να την επεξεργαστούν.'''\nΗ πιο πρόσφατη καταχώρηση στο αρχείο καταγραφής παρέχεται παρακάτω για αναφορά:", @@ -883,7 +884,7 @@ "searchmenu-new": "Δημιουργήστε τη σελίδα «[[:$1]]» σε αυτό το wiki!\n{{PLURAL:$2|0=|Δείτε επίσης τη σελίδα που βρέθηκε με την αναζήτησή σας.|Δείτε επίσης τα αποτελέσματα της αναζήτησης που βρέθηκαν.}}", "searchprofile-articles": "Σελίδες περιεχομένου", "searchprofile-images": "Πολυμέσα", - "searchprofile-everything": "Οτιδήποτε", + "searchprofile-everything": "Τα πάντα", "searchprofile-advanced": "Προχωρημένο", "searchprofile-articles-tooltip": "Αναζήτηση σε $1", "searchprofile-images-tooltip": "Αναζήτηση αρχείων", @@ -996,7 +997,7 @@ "badsig": "Άκυρη υπογραφή raw: ελέγξτε τις ετικέτες HTML.", "badsiglength": "Η υπογραφή σας είναι πολύ μεγάλη.\nΠρέπει να είναι κάτω από $1 {{PLURAL:$1|χαρακτήρα|χαρακτήρες}}.", "yourgender": "Πώς προτιμάτε να χαρακτηρίζεστε;", - "gender-unknown": "Προτιμώ να μην μπω σε λεπτομέρειες", + "gender-unknown": "Όταν θα αναφέρει εσάς, το λογισμικό θα χρησιμοποιεί λέξεις ουδέτερες φύλου όποτε είναι δυνατόν.", "gender-male": "Άντρας", "gender-female": "Γυναίκα", "prefs-help-gender": "Η ρύθμιση αυτή της προτίμησης είναι προαιρετική.\nΤο λογισμικό χρησιμοποιεί την τιμή αυτής της παραμέτρου για να απευθύνεται προς εσάς και για να αναφέρεται σε σας όταν απευθύνεται σε άλλους, χρησιμοποιώντας το κατάλληλο γραμματικό γένος.\nΑυτή η πληροφορία θα είναι δημόσια.", @@ -1030,7 +1031,7 @@ "userrights-lookup-user": "Διαχείριση ομάδων χρηστών", "userrights-user-editname": "Δηλώστε όνομα χρήστη:", "editusergroup": "Επεξεργασία ομάδων χρηστών", - "editinguser": "Αλλαγή δικαιωμάτων χρήστη του χρήστη '''[[User:$1|$1]]''' $2", + "editinguser": "Αλλαγή δικαιωμάτων χρήστη {{GENDER:$1|του χρήστη|της χρήστριας}} [[User:$1|$1]] $2", "userrights-editusergroup": "Επεξεργασία ομάδων χρηστών", "saveusergroups": "Αποθήκευση ομάδων χρηστών", "userrights-groupsmember": "Μέλος της ομάδας:", @@ -1313,6 +1314,14 @@ "uploaddisabledtext": "Το ανέβασμα αρχείων είναι απενεργοποιημένο.", "php-uploaddisabledtext": "Οι επιφορτώσεις αρχείων ειναι απενεργοποιημένες στην PHP. Παρακαλούμε, ελέγξτε την ρύθμιση file_uploads.", "uploadscripted": "Αυτό το αρχείο περιέχει κώδικα HTML ή script που μπορεί να παρερμηνευθεί από μερικούς browser.", + "upload-scripted-pi-callback": "Δεν είναι δυνατό να ανεβάσετε αρχείο που περιέχει οδηγία επεξεργασίας φύλλου στυλ XML.", + "uploaded-script-svg": "Βρέθηκε στοιχείο με δυνατότητα δημιουργίας δέσμης ενεργειών «$1» στο ανεβασμένο αρχείο SVG.", + "uploaded-hostile-svg": "Βρέθηκε μη ασφαλές CSS στο στοιχείο στυλ του ανεβασμένου αρχείου SVG.", + "uploaded-setting-href-svg": "Η χρήση της ετικέτας «set» για την προσθήκη του χαρακτηριστικού «href» στο γονικό στοιχείο είναι αποκλεισμένη.", + "uploaded-wrong-setting-svg": "Η χρήση της ετικέτας «set» για την προσθήκη απομακρυσμένου προορισμού/προορισμού δεδομένων/προορισμού δέσμης ενεργειών είναι αποκλεισμένη. Βρέθηκε <set to=\"$1\"> στο ανεβασμένο αρχείο SVG.", + "uploaded-setting-handler-svg": "Κάθε SVG που θέτει το χαρακτηριστικό «χειρισμού» με απομακρυσμένο προορισμό/προορισμό δεδομένων/προορισμό δέσμης ενεργειών είναι αποκλεισμένο. Βρέθηκε $1=\"$2\" στο ανεβασμένο αρχείο SVG.", + "uploaded-remote-url-svg": "Κάθε SVG που θέτει οποιοδήποτε χαρακτηριστικό στυλ με απομακρυσμένη διεύθυνση URL είναι αποκλεισμένο. Βρέθηκε $1=\"$2\" στο ανεβασμένο αρχείο SVG.", + "uploaded-image-filter-svg": "Βρέθηκε φίλτρο εικόνας με διεύθυνση URL: <$1 $2=\"$3\"> στο ανεβασμένο αρχείο SVG.", "uploadscriptednamespace": "Αυτό το αρχείο SVG περιέχει μη αποδεκτό ονοματοχώρο «$1».", "uploadinvalidxml": "Δεν ήταν δυνατή η ανάλυση του κώδικα XML στο αρχείο.", "uploadvirus": "Το αρχείο περιέχει ιό! Λεπτομέρειες: $1", @@ -1421,6 +1430,7 @@ "listfiles-delete": "διαγραφή", "listfiles-summary": "Αυτή η ειδική σελίδα δείχνει όλα τα επιφορτωμένα αρχεία.", "listfiles_search_for": "Αναζήτηση για όνομα πολυμέσου:", + "listfiles-userdoesnotexist": "Ο λογαριασμός χρήστη «$1» δεν είναι εγγεγραμμένος.", "imgfile": "αρχείο", "listfiles": "Κατάλογος εικόνων", "listfiles_thumb": "Μικρογραφία", @@ -1499,6 +1509,7 @@ "unwatchedpages": "Μη παρακολουθούμενες σελίδες", "listredirects": "Λίστα ανακατευθύνσεων", "listduplicatedfiles": "Κατάλογος αρχείων με διπλότυπα", + "listduplicatedfiles-entry": "Το [[:File:$1|$1]] έχει [[$3|{{PLURAL:$2|διπλότυπο|$2 διπλότυπα}}]].", "unusedtemplates": "Αχρησιμοποίητα πρότυπα", "unusedtemplatestext": "Αυτή η σελίδα περιέχει όλες τις σελίδες στην περιοχή ονομάτος των {{ns:template}}, οι οποίες δεν περιλαμβάνονται σε άλλη σελίδα. Θυμηθείτε να ελέγξετε για άλλους συνδέσμους προς τα πρότυπα πριν τα διαγράψετε.", "unusedtemplateswlh": "άλλοι σύνδεσμοι", @@ -1706,6 +1717,7 @@ "index-category-desc": "Η σελίδα περιέχει στον κώδικά της ένα __INDEX__ (και βρίσκεται σε έναν ονοματοχώρο όπου αυτή η σήμανση επιτρέπεται) και ως εκ τούτου καταλογογραφείται από ρομπότ, ενώ κανονικά δεν θα καταλογογραφείτο.", "post-expand-template-inclusion-category-desc": "Το μέγεθος της σελίδας είναι μεγαλύτερο από $wgMaxArticleSize μετά την επέκταση όλων των προτύπων, έτσι ώστε ορισμένα πρότυπα δεν έχουν αναπτυχθεί.", "post-expand-template-argument-category-desc": "Η σελίδα είναι μεγαλύτερη από $wgMaxArticleSize μετά την επέκταση της μεταβλητής ενός προτύπου (κάτι σε τρίπλές αγκύλες, όπως {{{Foo}}}).", + "expensive-parserfunction-category-desc": "Η σελίδα χρησιμοποιεί πάρα πολλές ακριβές συναρτήσεις συντακτικού αναλυτή (όπως #ifexist). Βλ. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].", "broken-file-category-desc": "Η σελίδα περιέχει ένα σπασμένο σύνδεσμο αρχείου (σύνδεσμο για να ενσωμάτωση ενός αρχείου, ενώ το αρχείο δεν υπάρχει).", "hidden-category-category-desc": "Η κατηγορία περιέχει __HIDDENCAT__ στο περιεχόμενο της σελίδας της, που την εμποδίζει εκ προεπιλογής να εμφανίζεται στο πλαίσιο συνδέσμων κατηγοριών των σελίδων.", "trackingcategories-nodesc": "Καμία διαθέσιμη περιγραφή.", @@ -1737,7 +1749,7 @@ "emailccsubject": "Αντίγραφο του μηνυματός σας στο $1: $2", "emailsent": "Το μήνυμα έχει σταλεί", "emailsenttext": "Το μήνυμά σας έχει σταλεί.", - "emailuserfooter": "Αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου στάλθηκε από {{GENDER:$1|τον χρήστη|την χρήστρια}} $1 σ{{GENDER:$2|τον χρήστη|την χρήστρια}} $2 μέσω της λειτουργίας «αποστολής μηνύματος ηλεκτρονικού ταχυδρομείου σε χρήστη» στο {{SITENAME}}.", + "emailuserfooter": "Αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου στάλθηκε από {{GENDER:$1|το χρήστη|τη χρήστρια}} $1 σ{{GENDER:$2|το χρήστη|τη χρήστρια}} $2 μέσω της λειτουργίας «{{int:emailpage}}» στο {{SITENAME}}.", "usermessage-summary": "Φεύγετε από τις ειδοποιήσεις συστήματος.", "usermessage-editor": "Μηνύματα συστήματος", "usermessage-template": "MediaWiki:UserMessage", @@ -2136,6 +2148,7 @@ "immobile-target-namespace-iw": "Ο σύνδεσμος-interwiki δεν είναι έγκυρος στόχος για την μετακίνηση σελίδας.", "immobile-source-page": "Αυτή η σελίδα δεν είναι δυνατό να μετακινηθεί.", "immobile-target-page": "Δεν μπορεί να μετακινηθεί σε αυτόν τον τίτλο.", + "bad-target-model": "Ο επιθυμητός προορισμός χρησιμοποιεί διαφορετικό μοντέλο περιεχομένου. Δεν είναι δυνατή η μετατροπή από $1 σε $2.", "imagenocrossnamespace": "Δεν είναι δυνατή η μετακίνηση του αρχείου σε περιοχή ονομάτων που δεν αφορά αρχεία", "nonfile-cannot-move-to-file": " Δεν είναι δυνατή η μετακίνηση μη αρχείων σε αρχείο ονομάτων", "imagetypemismatch": "Η νέα επέκταση του αρχείου δεν ταιριάζει με τον τύπο του", @@ -2189,6 +2202,7 @@ "thumbnail_image-type": "Δεν υποστηρίζεται αυτός ο τύπος εικόνας", "thumbnail_gd-library": "Ατελής ενεργοποίηση της βιβλιοθήκης GD: αγνοούμενη λειτουργία $1", "thumbnail_image-missing": "Το αρχείο φαίνεται να λείπει: $1", + "thumbnail_image-failure-limit": "Έχουν γίνει πάρα πολλές πρόσφατες αποτυχημένες προσπάθειες ($1 ή περισσότερες) για να αποδοθεί αυτή μικρογραφία. Παρακαλούμε δοκιμάστε ξανά αργότερα.", "import": "Εισαγωγή σελίδων", "importinterwiki": "Εισαγωγή από άλλο wiki", "import-interwiki-text": "Επιλέξτε ένα wiki και τίτλο σελίδας για την εισαγωγή.\nΟι ημερομηνίες των αναθεωρήσεων και τα ονόματα των συντακτών θα διατηρηθούν.\nΌλες οι ενέργειες εισαγωγής από άλλα wiki καταγράφονται στο [[Special:Log/import|αρχείο καταγραφής εισαγωγών]].", @@ -2969,7 +2983,7 @@ "tag-filter-submit": "Φίλτρο", "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Ετικέτα|Ετικέτες}}]]: $2)", "tags-title": "Ετικέτες", - "tags-intro": "Η σελίδα συγκαταλέγει τις ετικέτες (καθώς και το τι σημαίνει η κάθε μία) με τις οποίες το software μπορεί να μαρκάρει μία επεξεργασία.", + "tags-intro": "Η σελίδα καταγράφει τις ετικέτες, καθώς και το τι σημαίνει η κάθε μία, με τις οποίες το λογισμικό μπορεί να μαρκάρει μία επεξεργασία.", "tags-tag": "Όνομα ετικέτας", "tags-display-header": "Εμφάνιση στις λίστες αλλαγής", "tags-description-header": "Πλήρης περιγραφή του νοήματος", @@ -2979,10 +2993,17 @@ "tags-actions-header": "Ενέργειες", "tags-active-yes": "Ναι", "tags-active-no": "Όχι", + "tags-source-extension": "Οριζόμενη από επέκταση", + "tags-source-manual": "Εφαρμοζόμενη με μη αυτόματο τρόπο από χρήστες και ρομπότ", "tags-source-none": "Όχι σε χρήση πλέον", "tags-edit": "επεξεργασία", + "tags-delete": "διαγραφή", + "tags-activate": "ενεργοποίηση", + "tags-deactivate": "απενεργοποίηση", "tags-hitcount": "$1 {{PLURAL:$1|αλλαγή|αλλαγές}}", + "tags-manage-no-permission": "Δεν έχετε δικαίωμα να διαχειριστείτε ετικέτες αλλαγής.", "tags-create-heading": "Δημιουργία νέας ετικέτας", + "tags-create-explanation": "Από προεπιλογή, οι πρόσφατα δημιουργημένες ετικέτες θα είναι διαθέσιμες για χρήση από χρήστες και ρομπότ.", "tags-create-tag-name": "Όνομα ετικέτας:", "tags-create-reason": "Αιτία:", "tags-create-submit": "Δημιουργία", @@ -2990,11 +3011,16 @@ "tags-create-invalid-chars": "Τα ονόματα ετικετών δεν πρέπει να περιέχουν κόμματα (,) ή καθέτους (/).", "tags-create-invalid-title-chars": "Τα ονόματα ετικετών δεν πρέπει να περιέχουν χαρακτήρες που δεν είναι δυνατό να χρησιμοποιηθούν σε τίτλους σελίδων.", "tags-create-already-exists": "Η ετικέτα «$1» υπάρχει ήδη.", + "tags-create-warnings-above": "{{PLURAL:$2|Αντιμετωπίστηκε η ακόλουθη προειδοποίηση|Αντιμετωπίστηκαν οι ακόλουθες προειδοποιήσεις}} όταν έγινε προσπάθεια για τη δημιουργία της ετικέτας «$1»:", + "tags-create-warnings-below": "Θέλετε να συνεχιστεί η δημιουργία της ετικέτας;", "tags-delete-title": "Διαγραφή ετικέτας", + "tags-delete-explanation-initial": "Πρόκειται να διαγράψετε την ετικέτα «$1» από τη βάση δεδομένων.", + "tags-delete-explanation-warning": "Αυτή η ενέργεια είναι μη αναστρέψιμη και δεν μπορεί να αναιρεθεί, ούτε καν από διαχειριστές της βάσης δεδομένων. Φροντίστε να είστε σίγουροι ότι αυτή είναι η ετικέτα που σκοπεύετε να διαγράψετε.", "tags-delete-reason": "Αιτία:", "tags-delete-submit": "Μη αναστρέψιμη διαγραφή αυτής της ετικέτας", "tags-delete-not-found": "Η ετικέτα «$1» δεν υπάρχει.", "tags-activate-title": "Ενεργοποίηση ετικέτας", + "tags-activate-question": "Πρόκειται να ενεργοποιήσετε την ετικέτα «$1».", "tags-activate-reason": "Αιτία:", "tags-activate-not-allowed": "Δεν είναι δυνατή η ενεργοποίηση της ετικέτας «$1».", "tags-activate-not-found": "Η ετικέτα «$1» δεν υπάρχει.", @@ -3005,8 +3031,11 @@ "tags-deactivate-not-allowed": "Δεν είναι δυνατή η απενεργοποίηση της ετικέτας «$1».", "tags-deactivate-submit": "Απενεργοποίηση", "tags-apply-no-permission": "Δεν έχετε τα απαραίτητα δικαιώματα για να εφαρμόσετε αλλαγή ετικετών μαζί με τις αλλαγές σας.", - "tags-apply-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να εφαρμοστεί με μη αυτόματο τρόπο.", - "tags-apply-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να εφαρμοστεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να εφαρμοστούν}} με μη αυτόματο τρόπο: $1", + "tags-apply-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να εφαρμοστεί με το χέρι.", + "tags-apply-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να εφαρμοστεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να εφαρμοστούν}} με το χέρι: $1", + "tags-update-add-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να προστεθεί με το χέρι.", + "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να προστεθεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να προστεθούν}} με το χέρι: $1", + "tags-update-remove-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να αφαιρεθεί.", "tags-edit-title": "Επεξεργασία ετικετών", "tags-edit-manage-link": "Διαχείριση ετικετών", "tags-edit-existing-tags": "Υπάρχουσες ετικέτες:", @@ -3018,6 +3047,8 @@ "tags-edit-chosen-placeholder": "Επιλέξτε μερικές ετικέτες", "tags-edit-chosen-no-results": "Δεν βρέθηκαν ετικέτες που να ταιριάζουν", "tags-edit-reason": "Αιτία:", + "tags-edit-success": "Οι αλλαγές εφαρμόστηκαν με επιτυχία.", + "tags-edit-failure": "Οι αλλαγές δεν ήταν δυνατόν να εφαρμοστούν:\n$1", "tags-edit-nooldid-title": "Μη έγκυρη αναθεώρηση προορισμού", "tags-edit-none-selected": "Παρακαλώ επιλέξτε τουλάχιστον μία ετικέτα για να προσθέσετε ή να αφαιρέσετε.", "comparepages": "Σύγκριση σελίδων", @@ -3073,7 +3104,14 @@ "revdelete-uname-unhid": "το όνομα χρήστη έπαψε να είναι κρυφό", "revdelete-restricted": "εφήρμοσε περιορισμούς στους sysops", "revdelete-unrestricted": "αφαίρεσε περιορισμούς στους sysops", + "logentry-block-block": "{{GENDER:$2|Ο|Η}} $1 έθεσε φραγή {{GENDER:$4|στον $3|στην $3}} με χρόνο λήξης $5 $6", "logentry-block-unblock": "{{GENDER:$2|Ο|Η}} $1 αφαίρεσε τη φραγή {{GENDER:$4|του|της}} $3", + "logentry-block-reblock": "{{GENDER:$2|Ο|Η}} $1 άλλαξε τις ρυθμίσεις φραγής {{GENDER:$4|για τον $3|για την $3}} με χρόνο λήξης $5 $6", + "logentry-suppress-block": "{{GENDER:$2|Ο|Η}} $1 έθεσε φραγή {{GENDER:$4|στον $3|στην $3}} με χρόνο λήξης $5 $6", + "logentry-suppress-reblock": "{{GENDER:$2|Ο|Η}} $1 άλλαξε τις ρυθμίσεις φραγής {{GENDER:$4|για τον $3|για την $3}} με χρόνο λήξης $5 $6", + "logentry-import-upload": "{{GENDER:$2|Ο|Η}} $1 εισήγαγε τη σελίδα $3 μέσω ανεβάσματος αρχείου", + "logentry-import-interwiki": "{{GENDER:$2|Ο|Η}} $1 εισήγαγε τη σελίδα $3 από άλλο wiki", + "logentry-merge-merge": "{{GENDER:$2|Ο|Η}} $1 συγχώνευσε τη σελίδα $3 με την $4 (αναθεωρήσεις μέχρι $5)", "logentry-move-move": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4", "logentry-move-move-noredirect": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4 χωρίς να αφήσει ανακατεύθυνση", "logentry-move-move_redir": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4 πάνω από την ανακατεύθυνση", @@ -3103,6 +3141,8 @@ "feedback-bugornote": "Εάν είστε έτοιμοι να περιγράψετε ένα τεχνικό πρόβλημα λεπτομερώς παρακαλούμε [$1 κάντε μια αναφορά σφάλματος].\nΔιαφορετικά, μπορείτε να χρησιμοποιήσετε την παρακάτω απλή φόρμα. Το σχόλιό σας θα προστεθεί στη σελίδα \"[$3 $2]\", μαζί με το όνομα χρήστη σας.", "feedback-cancel": "Ακύρωση", "feedback-close": "Ολοκληρώθηκε", + "feedback-dialog-title": "Υποβολή παρατηρήσεων", + "feedback-dialog-intro": "Μπορείτε να χρησιμοποιήσετε την παρακάτω εύκολη φόρμα για να υποβάλετε τις παρατηρήσεις σας. Το σχόλιό σας θα προστεθεί στην σελίδα «$1», μαζί με το όνομα χρήστη σας.", "feedback-error-title": "Σφάλμα", "feedback-error1": "Σφάλμα: Μη αναγνωρίσιμο αποτέλεσμα από το API", "feedback-error2": "Σφάλμα: Η επεξεργασία απέτυχε", @@ -3110,6 +3150,7 @@ "feedback-message": "Μήνυμα:", "feedback-subject": "Θέμα:", "feedback-submit": "Υποβολή", + "feedback-termsofuse": "Συμφωνώ να παρέχω παρατηρήσεις σύμφωνα με τους Όρους Χρήσης.", "feedback-thanks": "Ευχαριστούμε! Τα σχόλιά σας έχουν καταχωρηθεί στη σελίδα \"[$2 $1]\".", "feedback-thanks-title": "Σας ευχαριστούμε!", "searchsuggest-search": "Αναζήτηση", @@ -3219,8 +3260,11 @@ "mediastatistics-header-executable": "Εκτελέσιμα", "mediastatistics-header-archive": "Συμπιεσμένες μορφές", "json-error-unknown": "Υπήρξε πρόβλημα με το JSON. Σφάλμα: $1", + "json-error-depth": "Το μέγιστο βάθος στοίβας έχει ξεπεραστεί", + "json-error-state-mismatch": "Μη έγκυρο ή λάθος μορφοποιημένο JSON", "json-error-ctrl-char": "Σφάλμα χαρακτήρα ελέγχου, πιθανόν είναι εσφαλμένα κωδικοποιημένος.", "json-error-syntax": "Συντακτικό λάθος", + "json-error-utf8": "Λάθος μορφοποιημένοι χαρακτήρες UTF-8, πιθανόν εσφαλμένα κωδικοποιημένοι", "json-error-recursion": "Μία ή περισσότερες αναδρομικές αναφορές στην προς κωδικοποίηση τιμή.", "json-error-inf-or-nan": "Μία ή περισσότερες τιμές NAN ή INF στην προς κωδικοποίηση τιμή.", "json-error-unsupported-type": "Δόθηκε τιμή τύπου που δεν μπορεί να κωδικοποιηθεί.", diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 25ae0a25e4..b63ddf4095 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -3352,6 +3352,9 @@ "version-libraries": "Installed libraries", "version-libraries-library": "Library", "version-libraries-version": "Version", + "version-libraries-license": "License", + "version-libraries-description": "Description", + "version-libraries-authors": "Authors", "redirect": "Redirect by file, user, page or revision ID", "redirect-legend": "Redirect to a file or page", "redirect-text": "", diff --git a/languages/i18n/es.json b/languages/i18n/es.json index 71b1f5d9e4..919a625b79 100644 --- a/languages/i18n/es.json +++ b/languages/i18n/es.json @@ -3459,5 +3459,7 @@ "special-characters-group-khmer": "Jemer", "special-characters-title-endash": "semirraya", "special-characters-title-emdash": "raya", - "special-characters-title-minus": "signo de resta" + "special-characters-title-minus": "signo de resta", + "mw-widgets-titleinput-description-new-page": "la página aún no existe", + "mw-widgets-titleinput-description-redirect": "redirigir a $1" } diff --git a/languages/i18n/et.json b/languages/i18n/et.json index 03697419a8..ecd18654b0 100644 --- a/languages/i18n/et.json +++ b/languages/i18n/et.json @@ -3350,5 +3350,6 @@ "special-characters-group-khmer": "Khmeeri", "special-characters-title-endash": "mõttekriips", "special-characters-title-emdash": "pikk mõttekriips", - "special-characters-title-minus": "miinusmärk" + "special-characters-title-minus": "miinusmärk", + "mw-widgets-titleinput-description-new-page": "lehekülge pole veel" } diff --git a/languages/i18n/fi.json b/languages/i18n/fi.json index dc89a925d7..8181c7de07 100644 --- a/languages/i18n/fi.json +++ b/languages/i18n/fi.json @@ -666,6 +666,7 @@ "yourdiff": "Eroavaisuudet", "copyrightwarning": "'''Muutoksesi astuvat voimaan välittömästi.''' Kaikki {{GRAMMAR:illative|{{SITENAME}}}} tehtävät tuotokset katsotaan julkaistuksi $2 -lisenssin mukaisesti ($1). Jos et halua, että kirjoitustasi muokataan armottomasti ja uudelleenkäytetään vapaasti, älä tallenna kirjoitustasi. Tallentamalla muutoksesi lupaat, että kirjoitit tekstisi itse, tai kopioit sen jostain vapaasta lähteestä. '''ÄLÄ KÄYTÄ TEKIJÄNOIKEUDEN ALAISTA MATERIAALIA ILMAN LUPAA!'''", "copyrightwarning2": "Huomaa, että kuka tahansa voi muokata, muuttaa ja poistaa kaikkia sivustolle tekemiäsi lisäyksiä ja muutoksia. Muokkaamalla sivustoa luovutat sivuston käyttäjille tämän oikeuden ja takaat, että lisäämäsi aineisto on joko itse kirjoittamaasi tai peräisin jostain vapaasta lähteestä. Lisätietoja sivulla $1. '''TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!'''", + "editpage-cannot-use-custom-model": "Tämän sivun sisältömallia (content model) ei voida muuttaa.", "longpageerror": "'''Virhe: Lähettämäsi tekstin pituus on {{PLURAL:$1|kilotavu|$1 kilotavua}}. Tekstiä ei voida tallentaa, koska se on pitempi kuin sallittu enimmäispituus {{PLURAL:$2|yksi kilotavu|$2 kilotavua}}.'''", "readonlywarning": "'''Varoitus: Tietokanta on lukittu huoltoa varten, joten et pysty tallentamaan muokkauksiasi juuri nyt.'''\nSaattaa olla paras leikata ja liimata tekstisi omaan tekstitiedostoosi ja tallentaa se tänne myöhemmin.\n\nLukitsemisen syy: $1", "protectedpagewarning": "'''Varoitus: Tämä sivu on suojattu niin, että vain ylläpitäjät voivat muokata sitä.'''\nAlla on viimeisin lokitapahtuma:", @@ -3375,5 +3376,7 @@ "special-characters-group-khmer": "Khmer", "special-characters-title-endash": "ajatusviiva", "special-characters-title-emdash": "pitkä ajatusviiva", - "special-characters-title-minus": "miinusmerkki" + "special-characters-title-minus": "miinusmerkki", + "mw-widgets-titleinput-description-new-page": "sivua ei ole olemassa vielä", + "mw-widgets-titleinput-description-redirect": "ohjaus kohteeseen $1" } diff --git a/languages/i18n/fr.json b/languages/i18n/fr.json index 36284b7385..be8a55be9d 100644 --- a/languages/i18n/fr.json +++ b/languages/i18n/fr.json @@ -487,7 +487,7 @@ "invalidtitle-unknownnamespace": "Titre invalide avec le numéro d'espace de noms $1 et l'intitulé « $2 » inconnus", "exception-nologin": "Non connecté", "exception-nologin-text": "Veuillez vous connecter pour pouvoir accéder à cette page ou cette action.", - "exception-nologin-text-manual": "Veuillez $1 pour pouvoir accéder à cette page ou cette action.", + "exception-nologin-text-manual": "Veuillez vous $1 pour pouvoir accéder à cette page ou cette action.", "virus-badscanner": "Mauvaise configuration : scanneur de virus inconnu : ''$1''", "virus-scanfailed": "Échec de la recherche (code $1)", "virus-unknownscanner": "antivirus inconnu :", @@ -701,7 +701,7 @@ "blockedtext": "'''Votre compte utilisateur ou votre adresse IP a été bloqué.'''\n\nLe blocage a été effectué par $1.\nLa raison invoquée est la suivante : ''$2''.\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7.\n\nVous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour en discuter.\nVous ne pouvez utiliser la fonction « {{MediaWiki:emailpage}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été bloquée.\nVotre adresse IP actuelle est $3 et votre identifiant de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.", "autoblockedtext": "Votre adresse IP a été bloquée automatiquement car elle a été utilisée par un autre utilisateur, lui-même bloqué par $1.\nLa raison invoquée est :\n\n:''$2''\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7\n\nVous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:Grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.\n\nNotez que vous ne pourrez utiliser la fonctionnalité d’envoi de courriel que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été désactivée.\n\nVotre adresse IP actuelle est $3, et le numéro de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.", "blockednoreason": "aucune raison donnée", - "whitelistedittext": "Vous devez être $1 pour avoir la permission de modifier le contenu.", + "whitelistedittext": "Vous devez vous $1 pour avoir la permission de modifier le contenu.", "confirmedittext": "Vous devez confirmer votre adresse de courriel avant de modifier les pages.\nVeuillez entrer et valider votre adresse de courriel dans vos [[Special:Preferences|préférences]].", "nosuchsectiontitle": "Impossible de trouver la section", "nosuchsectiontext": "Vous avez essayé de modifier une section qui n'existe pas.\nElle a peut-être été déplacée ou supprimée depuis que vous avez lu cette page.", @@ -1343,7 +1343,7 @@ "reuploaddesc": "Annuler et retourner au formulaire d'import", "upload-tryagain": "Envoyer la description du fichier modifiée", "uploadnologin": "Non connecté", - "uploadnologintext": "Vous devez $1 pour importer des fichiers.", + "uploadnologintext": "Vous devez vous $1 pour importer des fichiers.", "upload_directory_missing": "Le répertoire d’import de fichier ($1) est introuvable et n’a pas pu être créé par le serveur web.", "upload_directory_read_only": "Le répertoire d’import de fichier ($1) n’est pas accessible en écriture depuis le serveur web.", "uploaderror": "Erreur lors de l’import", @@ -3548,5 +3548,7 @@ "special-characters-group-khmer": "khmer", "special-characters-title-endash": "tiret demi-cadratin", "special-characters-title-emdash": "tiret cadratin", - "special-characters-title-minus": "signe moins" + "special-characters-title-minus": "signe moins", + "mw-widgets-titleinput-description-new-page": "la page n’existe pas encore", + "mw-widgets-titleinput-description-redirect": "Redirection vers $1" } diff --git a/languages/i18n/gl.json b/languages/i18n/gl.json index c1ce4669c4..b24724d7fc 100644 --- a/languages/i18n/gl.json +++ b/languages/i18n/gl.json @@ -642,6 +642,7 @@ "yourdiff": "Diferenzas", "copyrightwarning": "Por favor, teña en conta que todas as contribucións a {{SITENAME}} considéranse publicadas baixo a $2 (vexa $1 para máis detalles). Se non quere que o que escriba se edite sen piedade e se redistribúa sen límites, entón non o envíe aquí.
\nAo mesmo tempo, prométanos que o que escribiu é da súa autoría ou que está copiado dun recurso do dominio público ou que permite unha liberdade semellante.\n'''NON ENVÍE MATERIAL CON DEREITOS DE AUTOR SEN PERMISO!'''", "copyrightwarning2": "Por favor, decátese de que todas as súas contribucións a {{SITENAME}} poden ser editadas, alteradas ou eliminadas por outras persoas. Se non quere que os seus escritos sexan editados sen piedade, non os publique aquí.
\nDo mesmo xeito, comprométese a que o que vostede escriba sexa da súa autoría ou copiado dunha fonte de dominio público ou recurso público semellante (vexa $1 para detalles).\n'''NON ENVÍE SEN PERMISO TRABALLOS CON DEREITOS DE COPIA!'''", + "editpage-cannot-use-custom-model": "O modelo de contido desta páxina non se pode modificar.", "longpageerror": "'''Erro: O texto que pretende gardar ocupa {{PLURAL:$1|$1 kilobyte|$1 kilobytes}}, e existe un límite dun máximo de {{PLURAL:$2|$2 kilobyte|$2 kilobytes}}.'''\nPolo tanto, non se pode gardar.", "readonlywarning": "'''Atención: A base de datos foi pechada para facer mantemento, polo que non vai poder gardar as súas edicións polo de agora.'''\nSe cadra, pode cortar e pegar o texto nun ficheiro de texto e gardalo para despois.\n\nO administrador que a pechou deu esta explicación: $1", "protectedpagewarning": "'''Aviso: Esta páxina foi protexida de xeito que só os usuarios con privilexios de administrador a poidan editar.'''\nVelaquí está a última entrada no rexistro, por se quere consultala:", @@ -3347,5 +3348,7 @@ "special-characters-group-khmer": "Camboxano", "special-characters-title-endash": "guión", "special-characters-title-emdash": "raia", - "special-characters-title-minus": "signo menos" + "special-characters-title-minus": "signo menos", + "mw-widgets-titleinput-description-new-page": "a páxina aínda non existe", + "mw-widgets-titleinput-description-redirect": "redirección cara a $1" } diff --git a/languages/i18n/gu.json b/languages/i18n/gu.json index 905bd95316..ca4bb3e175 100644 --- a/languages/i18n/gu.json +++ b/languages/i18n/gu.json @@ -2986,5 +2986,6 @@ "special-characters-group-devanagari": "દેવનાગરી", "special-characters-group-thai": "થાઈ", "special-characters-group-lao": "લાઓ", - "special-characters-group-khmer": "ખ્મેર" + "special-characters-group-khmer": "ખ્મેર", + "mw-widgets-titleinput-description-new-page": "પાનું અસ્તિત્વ ધરાવતું નથી." } diff --git a/languages/i18n/he.json b/languages/i18n/he.json index 3abdeea58a..d328a4af47 100644 --- a/languages/i18n/he.json +++ b/languages/i18n/he.json @@ -3424,5 +3424,7 @@ "special-characters-group-khmer": "קמרית", "special-characters-title-endash": "קו מפריד", "special-characters-title-emdash": "קו מפריד ארוך", - "special-characters-title-minus": "מינוס" + "special-characters-title-minus": "מינוס", + "mw-widgets-titleinput-description-new-page": "הדף עדיין לא קיים", + "mw-widgets-titleinput-description-redirect": "הפניה ל{{GRAMMAR:תחילית|$1}}" } diff --git a/languages/i18n/hi.json b/languages/i18n/hi.json index b3ee9c320e..fab2988b0c 100644 --- a/languages/i18n/hi.json +++ b/languages/i18n/hi.json @@ -3412,5 +3412,7 @@ "special-characters-group-khmer": "खमेर", "special-characters-title-endash": "एन डैश", "special-characters-title-emdash": "एम डैश", - "special-characters-title-minus": "ऋण चिह्न" + "special-characters-title-minus": "ऋण चिह्न", + "mw-widgets-titleinput-description-new-page": "पृष्ठ अभी मौजूद नहीं है", + "mw-widgets-titleinput-description-redirect": "$1 को अनुप्रेषित" } diff --git a/languages/i18n/hr.json b/languages/i18n/hr.json index 6e743257d9..616ba8e362 100644 --- a/languages/i18n/hr.json +++ b/languages/i18n/hr.json @@ -166,7 +166,7 @@ "moredotdotdot": "Više...", "morenotlisted": "Ovaj popis nije potpun.", "mypage": "Stranica", - "mytalk": "Moj razgovor", + "mytalk": "Razgovor", "anontalk": "Razgovor za ovu IP adresu", "navigation": "Orijentacija", "and": " i", @@ -866,7 +866,7 @@ "searchdisabled": "

Oprostite! Pretraga po cjelokupnoj bazi je zbog bržeg rada projekta {{SITENAME}} trenutačno onemogućena. Možete se poslužiti tražilicom Google.

", "search-error": "Greška prilikom pretrage: $1", "preferences": "Postavke", - "mypreferences": "Moje postavke", + "mypreferences": "Postavke", "prefs-edits": "Broj uređivanja:", "prefsnologintext2": "Molimo Vas prijavite se da biste promijenili postavke.", "prefs-skin": "Izgled", @@ -3099,5 +3099,6 @@ "special-characters-group-gujarati": "Gudžaratski znakovi", "special-characters-group-thai": "Tajlandski (tajski) znakovi", "special-characters-group-lao": "Laoski znakovi", - "special-characters-group-khmer": "kmerski" + "special-characters-group-khmer": "kmerski", + "mw-widgets-titleinput-description-redirect": "preusmjeravanje na $1" } diff --git a/languages/i18n/hu.json b/languages/i18n/hu.json index c31a97f5fd..a841c476f4 100644 --- a/languages/i18n/hu.json +++ b/languages/i18n/hu.json @@ -3348,5 +3348,7 @@ "special-characters-group-khmer": "Khmer", "special-characters-title-endash": "kötőjel", "special-characters-title-emdash": "hosszú kötőjel", - "special-characters-title-minus": "minusz jel" + "special-characters-title-minus": "minusz jel", + "mw-widgets-titleinput-description-new-page": "a lap még nem létezik", + "mw-widgets-titleinput-description-redirect": "átirányítás ide: $1" } diff --git a/languages/i18n/ia.json b/languages/i18n/ia.json index 8754712c91..f2fc89e410 100644 --- a/languages/i18n/ia.json +++ b/languages/i18n/ia.json @@ -336,6 +336,10 @@ "no-null-revision": "Non ha potite crear un nove version vacue del le pagina \"$1\"", "badtitle": "Titulo invalide", "badtitletext": "Le titulo de pagina requestate es invalide, vacue, o un titulo interlingual o interwiki incorrectemente ligate.\nEs possibile que illo contine un o plure characteres que non pote esser usate in titulos.", + "title-invalid-empty": "Le titulo de pagina requestate es vacue o contine solmente le nomine de un spatio de nomines.", + "title-invalid-utf8": "Le titulo de pagina requestate contine un sequentia UTF-8 invalide.", + "title-invalid-interwiki": "Le titulo de pagina requestate contine un ligamine interwiki que non pote esser usate in titulos.", + "title-invalid-talk-namespace": "Le titulo de pagina requestate refere a un pagina de discussion que non pote exister.", "perfcached": "Le sequente datos esseva recuperate del cache e possibilemente non es actual. Un maximo de {{PLURAL:$1|un resultato|$1 resultatos}} es disponibile in le cache.", "perfcachedts": "Le sequente datos esseva recuperate del cache e ha essite actualisate le $3 a $4. Un maximo de {{PLURAL:$4|un resultato|$4 resultatos}} es disponibile in le cache.", "querypage-no-updates": "Le actualisationes pro iste pagina es disactivate. Pro le momento, le datos hic non se cambiara.", @@ -1516,7 +1520,6 @@ "nmembers": "$1 {{PLURAL:$1|membro|membros}}", "nmemberschanged": "$1 → $2 {{PLURAL:$2|membro|membros}}", "nrevisions": "$1 {{PLURAL:$1|version|versiones}}", - "nviews": "$1 {{PLURAL:$1|visita|visitas}}", "nimagelinks": "Usate in $1 {{PLURAL:$1|pagina|paginas}}", "ntransclusions": "usate in $1 {{PLURAL:$1|pagina|paginas}}", "specialpage-empty": "Il non ha resultatos pro iste reporto.", diff --git a/languages/i18n/ilo.json b/languages/i18n/ilo.json index d15f6e79a6..b342d8bdc4 100644 --- a/languages/i18n/ilo.json +++ b/languages/i18n/ilo.json @@ -3218,5 +3218,7 @@ "special-characters-group-khmer": "Khmer", "special-characters-title-endash": "en dash", "special-characters-title-emdash": "em dash", - "special-characters-title-minus": "senial a panagkissay" + "special-characters-title-minus": "senial a panagkissay", + "mw-widgets-titleinput-description-new-page": "awan pay ti panid", + "mw-widgets-titleinput-description-redirect": "ibaw-ing iti $1" } diff --git a/languages/i18n/is.json b/languages/i18n/is.json index 12e502c1de..5dc3e63723 100644 --- a/languages/i18n/is.json +++ b/languages/i18n/is.json @@ -2962,5 +2962,7 @@ "special-characters-group-sinhala": "Sinhalskt", "special-characters-group-devanagari": "Devanagari", "special-characters-group-thai": "Taílenskt", - "special-characters-group-lao": "Laoskt" + "special-characters-group-lao": "Laoskt", + "mw-widgets-titleinput-description-new-page": "síðan er ekki enn til", + "mw-widgets-titleinput-description-redirect": "tilvísun á $1" } diff --git a/languages/i18n/it.json b/languages/i18n/it.json index 7668098f3f..f8d30a8d22 100644 --- a/languages/i18n/it.json +++ b/languages/i18n/it.json @@ -705,6 +705,7 @@ "yourdiff": "Differenze", "copyrightwarning": "Per favore tieni presente che tutti i contributi a {{SITENAME}} si considerano pubblicati nei termini d'uso della licenza $2 (vedi $1 per maggiori dettagli).\nSe non desideri che i tuoi testi possano essere modificati e ridistribuiti da chiunque senza alcuna limitazione, non inviarli qui.
\nInviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera.\n'''Non inviare materiale protetto da copyright senza autorizzazione!'''", "copyrightwarning2": "Per favore tieni presente che tutti i contributi a {{SITENAME}} possono essere modificati, stravolti o cancellati da altri contributori.\nSe non vuoi che i tuoi testi possano essere alterati, allora non inserirli.
\nInviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera (vedi $1 per maggiori dettagli).\n'''Non inviare materiale protetto da copyright senza autorizzazione!'''", + "editpage-cannot-use-custom-model": "Il modello del contenuto di questa pagina non può essere modificato.", "longpageerror": "'''Errore: il testo inviato è lungo {{PLURAL:$1|1|$1}} kilobyte, che è maggiore della dimensione massima consentita ({{PLURAL:$2|1|$2}} kilobyte).'''\nIl testo non può essere salvato.", "readonlywarning": "ATTENZIONE: il database è bloccato per manutenzione, non è momentaneamente possibile salvare le modifiche effettuate.\nPer non perderle, copiale in un file di testo e salvalo in attesa dello sblocco del database.\n\nL'amministratore che impostato il blocco ha fornito questa spiegazione: $1.", "protectedpagewarning": "'''Attenzione: questa pagina è stata bloccata in modo che solo gli utenti con privilegi di amministratore possano modificarla.'''\nL'ultimo elemento del registro è riportato di seguito per informazione:", @@ -1622,7 +1623,7 @@ "unusedimages": "File non utilizzati", "wantedcategories": "Categorie richieste", "wantedpages": "Pagine più richieste", - "wantedpages-summary": "Elenco delle pagine inesistenti con il maggior numero di collegamenti a loro, escludendo le pagine che hanno solo i reindirizzamenti che li collegano. Per un elenco di pagine inesistenti che hanno reindirizzamenti che li collegano, vedere [[{{#special:BrokenRedirects}}]].", + "wantedpages-summary": "Elenco delle pagine inesistenti con il maggior numero di collegamenti a loro, escludendo le pagine che hanno solo i reindirizzamenti che li collegano. Per un elenco di pagine inesistenti che hanno reindirizzamenti che li collegano, vedi [[{{#special:BrokenRedirects}}|l'elenco dei reindirizzamenti errati]].", "wantedpages-badtitle": "Titolo non valido nel gruppo di risultati: $1", "wantedfiles": "File richiesti", "wantedfiletext-cat": "I seguenti file sono utilizzati, ma non esistono. I file ospitati su repository esterni potrebbero essere elencati anche se di fatto esistenti. Questi falsi positivi saranno barrati. Le pagine che incorporano i file che non esistono sono elencate in [[:$1]].", @@ -3418,5 +3419,7 @@ "special-characters-group-khmer": "Khmer", "special-characters-title-endash": "lineetta enne", "special-characters-title-emdash": "lineetta emme", - "special-characters-title-minus": "segno meno" + "special-characters-title-minus": "segno meno", + "mw-widgets-titleinput-description-new-page": "questa pagina non esiste ancora", + "mw-widgets-titleinput-description-redirect": "reindirizzamento a $1" } diff --git a/languages/i18n/ja.json b/languages/i18n/ja.json index b6d4dba305..318ac12b6e 100644 --- a/languages/i18n/ja.json +++ b/languages/i18n/ja.json @@ -3215,9 +3215,14 @@ "tags-edit-existing-tags": "既存のタグ:", "tags-edit-existing-tags-none": "(なし)", "tags-edit-new-tags": "新しいタグ:", + "tags-edit-add": "これらのタグを追加:", + "tags-edit-remove": "これらのタグを除去:", "tags-edit-remove-all-tags": "(すべてのタグを除去)", + "tags-edit-chosen-placeholder": "いくつかのタグを選択", "tags-edit-chosen-no-results": "一致するタグが見つかりません", "tags-edit-reason": "理由:", + "tags-edit-revision-submit": "変更を {{PLURAL:$1|this revision|$1 revisions}} に適用", + "tags-edit-logentry-submit": "変更を {{PLURAL:$1|this log entry|$1 log entries}} に適用", "tags-edit-success": "変更が正常に適用されました。", "tags-edit-failure": "変更は適用できませんでした: $1", "tags-edit-nooldid-title": "無効な対象版", @@ -3423,7 +3428,7 @@ "log-description-pagelang": "これはページ言語の変更の記録です。", "logentry-pagelang-pagelang": "$1 がページ $3 の言語を $4 から $5 に{{GENDER:$2|変更しました}}", "default-skin-not-found": "おっと! あなたのウィキの既定の外装「$1」 ($wgDefaultSkin)は利用できません。\n\nあなたのインストールには以下の外装が含まれています。外装の有効化と既定の選択については、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル: 外装設定] をご覧ください。\n\n$2\n\n; MediaWikiをインストールしたばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。\n:* [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。\n:* [https://www.mediawiki.org/wiki/Download tarball installer] をダウンロードしてみてください。これにはいくつかの外装と拡張機能が含まれています。 skins/ ディレクトリからコピー&ペーストできます。\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。\n\n; MediaWiki をアップグレードした場合:\n: MediaWiki 1.24 以降のバージョンでは、インストール済みの外装は自動的には有効になりません。 ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery マニュアル:外装の自動探索] をご覧ください)。LocalSettings.php に以下の行をペーストして、現在インストールされている外装を有効にできます。\n\n
$3
\n\n; LocalSettings.phpを編集したばかりの場合:\n: 外装名に打ち間違いがないか再度確認してください。", - "default-skin-not-found-no-skins": "おっと! あなたのウィキの既定の外装「$1」 ($wgDefaultSkin)は利用できません。\n\n外装をインストールしていません。\n\n; MediaWikiをインストールしたばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。\n:* [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。\n:* [https://www.mediawiki.org/wiki/Download tarball installer] をダウンロードしてみてください。これには外装と拡張機能がいくつか含まれています。 skins/ ディレクトリからコピー&ペーストできます。\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。外装の有効化と既定の選択についての情報は、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル:外装設定] をご覧ください。", + "default-skin-not-found-no-skins": "おっと! $1で定義されている、あなたのウィキの既定の外装 ($wgDefaultSkin)は利用できません。\n\n外装をインストールしていません。\n\n; MediaWikiをインストールしたばかりか更新したばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。MediaWikiの1.24およびそれ以降は、メインのリポジトリ内には任意の外装が含まれていません。[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。, by:\n:* 個々の外装 tarballs を[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] ダウンロードすること。\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。外装の有効化と既定の選択についての情報は、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル:外装設定] をご覧ください。", "default-skin-not-found-row-enabled": "* $1 / $2 (有効)", "default-skin-not-found-row-disabled": "* $1 / $2 ('''無効''')", "mediastatistics": "メディア統計", @@ -3475,5 +3480,7 @@ "special-characters-group-khmer": "クメール文字", "special-characters-title-endash": "en ダッシュ", "special-characters-title-emdash": "em ダッシュ", - "special-characters-title-minus": "マイナス記号" + "special-characters-title-minus": "マイナス記号", + "mw-widgets-titleinput-description-new-page": "ページは存在しません", + "mw-widgets-titleinput-description-redirect": "$1 へのリダイレクト" } diff --git a/languages/i18n/ka.json b/languages/i18n/ka.json index 98a43a2b93..b376f83615 100644 --- a/languages/i18n/ka.json +++ b/languages/i18n/ka.json @@ -3415,5 +3415,7 @@ "special-characters-group-khmer": "ქჰმერული", "special-characters-title-endash": "ტირე", "special-characters-title-emdash": "გრძელი ტირე", - "special-characters-title-minus": "მინუსის ნიშანი" + "special-characters-title-minus": "მინუსის ნიშანი", + "mw-widgets-titleinput-description-new-page": "გვერდი ჯერ არ არსებობს", + "mw-widgets-titleinput-description-redirect": "გადამისამართება $1-ზე" } diff --git a/languages/i18n/kn.json b/languages/i18n/kn.json index 31a11c0ef9..36d18d415e 100644 --- a/languages/i18n/kn.json +++ b/languages/i18n/kn.json @@ -22,7 +22,8 @@ "The Evil IP address", "VASANTH S.N.", "לערי ריינהארט", - "아라" + "아라", + "Pavanaja" ] }, "tog-underline": "ಕೊಂಡಿಗಳ ಕೆಳಗೆ ಗೆರೆ ತೋರಿಸಿ", @@ -466,7 +467,7 @@ "mailerror": "ಅಂಚೆ ಕಳುಹಿಸುವಲ್ಲಿ ದೋಷ: $1", "acct_creation_throttle_hit": "ಕ್ಷಮಿಸಿ, ನೀವಾಗಲೇ{{PLURAL:$1|೧ ಖಾತೆಯನ್ನು|$1 ಖಾತೆಗಳನ್ನು}} ತೆರೆದಿದ್ದೀರಿ.\nಇನ್ನು ಹೆಚ್ಚಿನ ಖಾತೆಗಳನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.", "emailauthenticated": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವು ದಿನಾಂಕ $2 ಸಮಯ $3 ಅಂದು ಧೃಡೀಕೃತವಾಗಿದೆ.", - "emailnotauthenticated": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸ ಇನ್ನೂ ಧೃಡೀಕೃತವಾಗಿಲ್ಲ.\nಈ ಕೆಳಗಿನ ವೈಶಿಷ್ಟತೆಗಳಿಗೆ ಇ-ಅಂಚೆಯನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲು ಆಗುವುದಿಲ್ಲ.", + "emailnotauthenticated": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸ ಇನ್ನೂ ಧೃಡೀಕೃತವಾಗಿಲ್ಲ.\nಈ ಕೆಳಗಿನ ಆಯ್ಕೆಗಳಿಗೆ ಇ-ಅಂಚೆಯನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲು ಆಗುವುದಿಲ್ಲ.", "noemailprefs": "ಈ ಸೌಲಭ್ಯಗಳು ಕೆಲಸ ಮಾಡಬೇಕಾದರೆ ಒಂದು ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ.", "emailconfirmlink": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ಧೃಡೀಕರಿಸಿ", "invalidemailaddress": "ಈ ಇ-ಅಂಚೆ ವಿಳಾಸವು ಸರಿಯಾದ ಪ್ರಕಾರದಲ್ಲಿ ಇಲ್ಲದಿರುವುದರಿಂದ ಇದನ್ನು ಸ್ವೀಕಾರ ಮಾಡಲಾಗುವುದಿಲ್ಲ.\nದಯವಿಟ್ಟು ಸರಿಯಾದ ಪ್ರಕಾರದ ವಿಳಾಸವನ್ನು ಸೇರಿಸಿ ಅಥವ ಆ ಚೌಕವನ್ನು ಖಾಲಿ ಬಿಡಿ.", @@ -1138,7 +1139,6 @@ "nlinks": "$1 {{PLURAL:$1|ಸಂಪರ್ಕ|ಸಂಪರ್ಕಗಳು}}", "nmembers": "$1 {{PLURAL:$1|ಸದಸ್ಯ|ಸದಸ್ಯರು}}", "nrevisions": "$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಗಳು}}", - "nviews": "$1 {{PLURAL:$1|ನೋಟ|ನೋಟಗಳು}}", "lonelypages": "ಒಬ್ಬಂಟಿ ಪುಟಗಳು", "lonelypagestext": "ಈ ಕೆಳಗಿನ ಪುಟಗಳು {{SITENAME}} ಅಲ್ಲಿರುವ ಇತರ ಯಾವ ಪುಟದಿಂದಲೂ ಕೊಂಡಿಯನ್ನು ಹೊಂದಿಲ್ಲ.", "uncategorizedpages": "ಅವರ್ಗೀಕೃತ ಪುಟಗಳು", diff --git a/languages/i18n/ksh.json b/languages/i18n/ksh.json index a94723e018..ff06133f87 100644 --- a/languages/i18n/ksh.json +++ b/languages/i18n/ksh.json @@ -3415,5 +3415,7 @@ "special-characters-group-khmer": "Khmer-Kambodschaanesch", "special-characters-title-endash": "Ene Halfjeviertschtresch", "special-characters-title-emdash": "Ene Jeviertschtresch", - "special-characters-title-minus": "Et Winnijer-Zeische" + "special-characters-title-minus": "Et Winnijer-Zeische", + "mw-widgets-titleinput-description-new-page": "di Sigg jidd_et noch nit", + "mw-widgets-titleinput-description-redirect": "ömleijde op „$1“" } diff --git a/languages/i18n/ku-latn.json b/languages/i18n/ku-latn.json index 0867b83691..1ec83e4a6f 100644 --- a/languages/i18n/ku-latn.json +++ b/languages/i18n/ku-latn.json @@ -1790,5 +1790,7 @@ "special-characters-group-gujarati": "Gucaratî", "special-characters-group-thai": "Tay", "special-characters-group-lao": "Lao", - "special-characters-group-khmer": "Khmer" + "special-characters-group-khmer": "Khmer", + "mw-widgets-titleinput-description-new-page": "Rûpel hê tune ye", + "mw-widgets-titleinput-description-redirect": "beralî bike ber bi $1" } diff --git a/languages/i18n/lb.json b/languages/i18n/lb.json index 1b24490d78..abf7fabb89 100644 --- a/languages/i18n/lb.json +++ b/languages/i18n/lb.json @@ -3202,5 +3202,7 @@ "special-characters-group-thai": "Thai", "special-characters-group-lao": "Lao", "special-characters-group-khmer": "Khmer", - "special-characters-title-minus": "Minus-Zeechen" + "special-characters-title-minus": "Minus-Zeechen", + "mw-widgets-titleinput-description-new-page": "Säit gëtt et nach net", + "mw-widgets-titleinput-description-redirect": "Viruleedung op $1" } diff --git a/languages/i18n/lrc.json b/languages/i18n/lrc.json index af041969d6..72d3fb75fa 100644 --- a/languages/i18n/lrc.json +++ b/languages/i18n/lrc.json @@ -17,11 +17,11 @@ "tog-numberheadings": "سأربألگە خود شمارئشت کو", "tog-showtoolbar": "نأڤار أڤزار ڤیرایئشت نە نئشو بیە", "tog-editondblclick": "بألگە یا نە ڤا د نۊ پوٙرنیئن ڤیرایئشت بأکیت", - "tog-editsectiononrightclick": "بهرجا ویرایشت نه وا راس پورنین د بهرجا داسونیا کنشتگر کو", - "tog-watchcreations": "بلگیایی که مه راس کمه و جانیایایی که مه سوار کمه اضاف کو د سیل برگه مه", - "tog-watchdefault": "بلگیا و جانیایی که مه ویرایشت کمه اضاف کو د سیل برگم", - "tog-watchmoves": "بلگیاو جانیایی که مه جاوه جا کمه د سیل برگم اضاف کو", - "tog-watchdeletion": "بلگیا و جانیایی که مه پاک کمه اضاف کو د سیل برگم", + "tog-editsectiononrightclick": "بأرجا ڤیرایئشت نە ڤا راس پوٙرنییئن د بأرجا داسوٙنیا کونئشتگأر کو", + "tog-watchcreations": "بألگە یایی کئ مئ رأڤأندیاری کئمە و جانیایی کئ مئ سوڤار کئمە ئضاف کو د سئیل بأرگە مئ", + "tog-watchdefault": "بألگە یایی کئ مئ رأڤأندیاری کئمە و جانیایی کئ مئ سوڤار کئمە ئضاف کو د سئیل بأرگە مئ", + "tog-watchmoves": "بألگە یایی و جانیایی کئ مئ جا ڤئ جا کئمە ئضاف کو د سئیل بأرگە مئ", + "tog-watchdeletion": "بألگە یایی و جانیایی کئ مئ پاکسا کئمە ئضاف کو د سئیل بأرگە مئ", "tog-watchrollback": "همه بلگه یا نه د جایی که مه د سیل برگم می کم اضاف کو.", "tog-minordefault": "همه ویرایشتیا کؤچک نه وا پیش فرض بیئن نشو دار کو.", "tog-previewontop": "پیش سیل نه دما جعوه ویرایشت نشو بیئه", @@ -47,8 +47,8 @@ "tog-norollbackdiff": "فرخیا نه د بین بوریت نها یه گل عقو گرد کردن", "tog-useeditwarning": "د گاتی که آلشتیا اماییه نبیه د بلگه ویرایشت وه جا می نم خورم کو", "tog-prefershttps": "همیشه د گاتی که مه وامئن هئم د ارتواط امن وه کار بیئر", - "underline-always": "هميشه", - "underline-never": "هيژوخت", + "underline-always": "هأمیشە", + "underline-never": "هیژڤأخت", "underline-default": "پوسه یا دوارته نیئر پیش فرض", "editfont-style": "راساگه فونت شلک نه ویرایشت کو", "editfont-default": "دوارته نیئر پیش بینی بیه", diff --git a/languages/i18n/luz.json b/languages/i18n/luz.json index a3cf5a1329..7a0c7aec5d 100644 --- a/languages/i18n/luz.json +++ b/languages/i18n/luz.json @@ -78,18 +78,18 @@ "october": "مالبارکنۉن", "november": "ئا سردکنۉن", "december": "ئا رجکنۉن", - "january-gen": "اول قهاره", + "january-gen": "اول قهارھ", "february-gen": "لرشگون", - "march-gen": "ئنهزنون", - "april-gen": "نوروزماه", - "may-gen": "گلبارماه", - "june-gen": "جورش", - "july-gen": "میوه رسون", + "march-gen": "ئنهزنۉن", + "april-gen": "نۉرۉزماھ", + "may-gen": "گلبارماھ", + "june-gen": "جۉرش", + "july-gen": "میۉھ رسۉن", "august-gen": "مه گرمه", - "september-gen": "شنیارون", - "october-gen": "مالبارکنون", - "november-gen": "آو سردکنون", - "december-gen": "آو رجکنون", + "september-gen": "شنیارۉن", + "october-gen": "مالبارکنۉن", + "november-gen": "ئا سردکنۉن", + "december-gen": "ئا رجکنۉن", "jan": "اۉل قھارھ", "feb": "لرشگۉن", "mar": "ئنهزنۉن", @@ -121,11 +121,11 @@ "category-empty": "ای دسه الآن هیچ بلگه یا مدیا ناره", "hidden-categories": "{{PLURAL:$1|دسه قائم|دسه یل قائم}}", "hidden-category-category": "دسه بنی یل قائم", - "category-subcat-count": "{{PLURAL:$2|ای دسه فقط دسه یل فرعی دومنه داره.|ای دسه چیه یل دومنه داره {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}, بیشتر زه $2 کل.}}", + "category-subcat-count": "{{PLURAL:$2|ای دسه فقط دسه یل فرعی دۉمنه دارھ.|ای دسه چیه یل دۉمنه دارھ {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}, بیشتر زھ $2 کل.}}", "category-subcat-count-limited": "ای دسه چیه یل دومنه داره {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}.", - "category-article-count": "{{PLURAL:$2|ای دسه فقط بلگه یل دومنه داره .|دومن الذکر{{PLURAL:$1|بلگه هس|$1 بلگه هسن}} مئن ای دسه, بیشتر زه$2 کل.}}", + "category-article-count": "{{PLURAL:$2|ای دسه فقط بلگه یل دۉمنه داره .|دۉمن الذکر{{PLURAL:$1|بلگه هس|$1 بلگه هسن}} مئن ای دسه, بیشتر زھ$2 کل.}}", "category-article-count-limited": "دومن الذکر {{PLURAL:$1|بلگه هس|$1 بلگه هسن}} د او دسه جریانی.", - "category-file-count": "{{PLURAL:$2|ای دسه فقط فایلل دومنه داره.|دومن الذکر{{PLURAL:$1|فایل هس|$1 فایلل هسن}} دای دسه, بیشترزه$2 کل.}}", + "category-file-count": "{{PLURAL:$2|ای دسه فقط فایلل دۉمنه دارھ.|دۉمن الذکر{{PLURAL:$1|فایل هس|$1 فایلل هسن}} د ای دسه, بیشتر زھ$2 کل.}}", "category-file-count-limited": "دومن الذکر {{PLURAL:$1|فایل هس|$1 فایلل هسن}} د او دسه جریانی.", "listingcontinuesabbrev": "دنباله", "index-category": "بلگه یل ایندکس وابیده", @@ -133,7 +133,7 @@ "broken-file-category": "بلگه یل وا فایلل لینک اشکسه", "about": "درباره", "article": "بلگه محتوا", - "newwindow": "(د یه پنجره دیه وا کو )", + "newwindow": "(د یه پنجرھ دیه ۉا کۉ )", "cancel": "لغو", "moredotdotdot": "بیشتر...", "morenotlisted": "ای نوم بلگه کامل نی", @@ -154,14 +154,14 @@ "variants": "انۉاع", "navigation-heading": "منۉ ناۉ ۉری", "errorpagetitle": "خطا", - "returnto": "بازگشت وه $1.", + "returnto": "بازگشت وھ $1.", "tagline": "ز {{SITENAME}}", "help": "هومیاری", "search": "جستن", "searchbutton": "جستن", "go": "رو", "searcharticle": "رۉ", - "history": "ویرگارل بلگه", + "history": "تاریخچھ بلگه", "history_short": "تاریخچه", "updatedmarker": "بروز وابی تا موقع آخرین سیل کردن مو", "printableversion": "ۉرژن سی چاپ", @@ -172,7 +172,7 @@ "edit": "اصلاح", "edit-local": "اصلاح توضیحتل محلی", "create": "درست کردن", - "create-local": "وندن توضیحتل محلی", + "create-local": "ۉندن تۉضیحتل محلی", "editthispage": "اصلاح ای بلگه", "create-this-page": "درست کو ای بلگه نه", "delete": "حذف", @@ -185,7 +185,7 @@ "protectthispage": "ای بلگنه حفاظت کو", "unprotect": "تغییر دائن حالت حفاظت", "unprotectthispage": "تغییر دائن حالت حفاظت ای بلگه", - "newpage": "بلگه نو", + "newpage": "بلگه نۉ", "talkpage": "گپ زئن ای بلگه", "talkpagelinktext": "گپ", "specialpage": "بلگه مخصوص", @@ -205,7 +205,7 @@ "otherlanguages": "مئن زۉۉنل دیھ", "redirectedfrom": "(تصحیح مجدد زھ $1)", "redirectpagesub": "بلگه تصحیح و هدایت زه مجدد", - "redirectto": "تغییر دائن مسیر وه:", + "redirectto": "تغییر دائن مسیر ۉھ:", "lastmodifiedat": "ای بلگه اخیرا تغییر ۉاصلاح ۉابیه مئنه $1, مئنه $2.", "viewcount": "ای بلگه قابل دسترسی وابیه {{PLURAL:$1|یه بار|$1 مدتل}}.", "protectedpage": "بلگه حفاظت وابیه", @@ -226,7 +226,7 @@ "currentevents-url": "Project:اتفاقل جاری", "disclaimers": "انکار کنندھ یل", "disclaimerpage": "Project:انکار کارۉران", - "edithelp": "هومیاری سی اصلاح", + "edithelp": "هۉمیاری سی اصلاح", "mainpage": "بلگھ اصلی", "mainpage-description": "بلگھ اصلی", "policy-url": "Project:خط مشی", @@ -267,18 +267,18 @@ "site-rss-feed": "خبرخو RSS سی $1", "site-atom-feed": "خبرخۉ Atom سی $1", "page-rss-feed": "خبرخو RSS سی «$1»", - "page-atom-feed": "خبرخو Atom سی «$1»", + "page-atom-feed": "خبرخۉ Atom سی «$1»", "red-link-title": "(بلگھ ۉجود نارھ) $1", "sort-descending": "مرتب سازی وا صعودی", "sort-ascending": "مرتب سازی وا صعودی", "nstab-main": "بلگھ", - "nstab-user": "بلگه کارور", + "nstab-user": "بلگه کارۉر", "nstab-media": "بلگه مدیا", "nstab-special": "بلگھ یل ۉیجھ", - "nstab-project": "بلگه پروجه", + "nstab-project": "بلگه پرۉجه", "nstab-image": "فایل", "nstab-mediawiki": "پیوم", - "nstab-template": "الگو", + "nstab-template": "الگۉ", "nstab-help": "بلگه هومیاری", "nstab-category": "دسه", "nosuchaction": "چنی دستوری موجود نی", @@ -304,9 +304,9 @@ "formerror": "خطا:نیوا فرمنه ارسال کیت.", "badarticleerror": "ای عمل نیوا ری ای بلگه اجرا وابی.", "cannotdelete-title": "نیوا بلگنه حذف کی \"$1\"", - "badtitle": "عنوان بد", - "badtitletext": "عنوان درخواستی نامعتبر، خالی، یا عنوانی بین زوونی یا بین‌ویکی‌ای با پیوند نادرسته\nو ممکنه یه یا چند کاراکتر داشته بوه که مئن عنوان مربوط نوا زش استفاده کنین", - "viewsource": "دیئن منبع", + "badtitle": "عنۉان بد", + "badtitletext": "عنۉان درخۉاستی نامعتبر، خالی، یا عنۉانی بین زۉۉنی یا بین‌ۉیکی‌ای با پیۉند نادرسته.\nۉ ممکنه یه یا چند کاراکتر داشته بۉھ که مئن عنۉان مربۉط نۉا زش استفادھ کنین.", + "viewsource": "دیئن سرچشمھ", "viewsource-title": "دیئن منبع سی $1", "actionthrottled": "عمل متوقف وابی", "protectedpagetext": "ای بلگه سیکه اصلاح یا دیهر عملل ریش انجام نبی محافظت وابیه", @@ -322,54 +322,54 @@ "virus-unknownscanner": "آنتی ویروس ناشناخته", "welcomeuser": "خش اومیت، $1!", "yourname": "نوم کارور:", - "userlogin-yourname": "نوم کارور", - "userlogin-yourname-ph": "نوم خوتونه وارد بکیت", + "userlogin-yourname": "نۉم کارۉر", + "userlogin-yourname-ph": "نۉم کارۉری خۉتۉنه بنیت ایچھ", "createacct-another-username-ph": "نوم کارورنه وار بکیت", "yourpassword": "رمز:", "userlogin-yourpassword": "رمز", - "userlogin-yourpassword-ph": "رمز خوتونه وارد بکیت", - "createacct-yourpassword-ph": "رمزنه وارد بکیت", + "userlogin-yourpassword-ph": "رمز خۉتۉنه ۉارد بکنیت", + "createacct-yourpassword-ph": "رمزنه ۉارد بکنیت", "yourpasswordagain": "مجددا رمزنه تایپ بکیت", "createacct-yourpasswordagain": "تایید رمز", - "createacct-yourpasswordagain-ph": "رمزنه مجددا وارد بکیت", - "userlogin-remembermypassword": "منه تو نگه دار", + "createacct-yourpasswordagain-ph": "رمزنه دۉۉارھ ۉارد بکنیت", + "userlogin-remembermypassword": "منه تۉ بنھ", "userlogin-signwithsecure": "د اتصال ایمن استفاده کو", "yourdomainname": "دومین کارو:", "password-change-forbidden": "ایشا نیتریت مئنه ای ویکی رمزه یلنه اصلاح بکیت", - "login": "اویدن وه سیستم", + "login": "ئۉیدن ۉھ سیستم", "nav-login-createaccount": "اوییدن وه سیستم / درست کردن اکانت", "userlogin": "اوییدن وه سیستم / درست کردن اکانت", "userloginnocreate": "اویدن وه سیستم", "logout": "رهدن زه سیستم", "userlogout": "رهدن زه سیستم", "notloggedin": "نوایته", - "userlogin-noaccount": "اکانت ناریت؟", - "userlogin-joinproject": "ملحق شو وه {{SITENAME}}", + "userlogin-noaccount": "حسآۉ ناریت؟", + "userlogin-joinproject": "ملحق شۉ ۉھ {{SITENAME}}", "nologin": "اکانت ناریت؟ $1.", "nologinlink": "راست کردن یه حساو کاروری", - "createaccount": "درست کردن اکانت", + "createaccount": "راس کردن حسآۉ", "gotaccount": "اکانت داریت؟ $1.", "gotaccountlink": "اویدن وه سیستم", "userlogin-resetlink": "مشخصه یل ورود خوتونه نونیت؟", - "userlogin-resetpassword-link": "رمزتونه نونیت؟", - "userlogin-helplink2": "هومیاری وا اوییدن وه سیستم", + "userlogin-resetpassword-link": "رمزتۉنه نۉنیتۉ؟", + "userlogin-helplink2": "هۉمیاری ۉا ئۉیدن ۉھ سیستم", "userlogin-createanother": "یه اکانت دیه بساز", "createacct-emailrequired": "آدرس ایمیل", - "createacct-emailoptional": "آدرس ایمیل (واخوتونی)", - "createacct-email-ph": "آدرس ایمیل خوتونه وارد بکیت", + "createacct-emailoptional": "آدرس ایمیل (ۉاخۉتۉنی)", + "createacct-email-ph": "آدرس ایمیل خۉتۉنه ۉارد بکنیت", "createacct-another-email-ph": "آدرس ایمیلنه وارد بکیت", "createacct-realname": "نوم راسکی (واخوتونی)", "createaccountreason": "دلیل:", "createacct-reason": "دلیل", "createacct-reason-ph": "سیچه داریت یه اکانت دیه ایسازیت", "createacct-captcha": "چک کردن امنیتی", - "createacct-imgcaptcha-ph": "ای نشتنه ک دومن سیل کی وارد کو", - "createacct-submit": "اکانت خوتونه بسازیت", + "createacct-imgcaptcha-ph": "ای نشتنه کھ دۉمن سیل کی ۉارد کۉ", + "createacct-submit": "حسآۉ خۉتۉنه راس کنیت", "createacct-another-submit": "یه اکانت دیه بساز", - "createacct-benefit-heading": "{{SITENAME}} وا کسایی مث خوتون ساخته بیه", + "createacct-benefit-heading": "{{SITENAME}} ۉا بجلی کپ خۉتۉن راسھ بیه.", "createacct-benefit-body1": "{{PLURAL:$1|اصلاح|اصلاحل}}", "createacct-benefit-body2": "{{PLURAL:$1|بلگه|بلگه یل}}", - "createacct-benefit-body3": "اخیرا {{PLURAL:$1|هومیارنده|هومیارنده یل}}", + "createacct-benefit-body3": "اخیرا {{PLURAL:$1|هۉمیارندھ|هۉمیارندھ یل}}", "badretype": "رمزنه ک وارد کیت وایک جور نیوان", "userexists": "نوم کاروری ک وارد کیت الان در حال استفاده هسس\nلطفا یه نوم دیه انتخاب کیت", "loginerror": "خطا ورود", @@ -398,11 +398,11 @@ "accountcreated": "اکانت ساخته بی", "createaccount-title": "اکانت سازی سی {{SITENAME}}", "login-abort-generic": "ورود ایشا ناموفق وابی - سقط وابی", - "loginlanguagelabel": "زوون:$1", - "pt-login": "اۉیدن ۉھ سیستم", - "pt-login-button": "اویدن وه سیستم", + "loginlanguagelabel": "زۉۉن:$1", + "pt-login": "ئۉیدن ۉھ سیستم", + "pt-login-button": "ئۉیدن ۉھ سیستم", "pt-createaccount": "راس کردن حسآۉ", - "pt-userlogout": "رهدن زه سیستم", + "pt-userlogout": "رتن زھ سیستم", "changepassword": "تغییر رمز", "resetpass_announce": "سی پایان ورود ، ایشا واسی یه رمز جدید سیخوت به ونی.", "resetpass_header": "تغییر رمز اکانت", @@ -423,61 +423,61 @@ "bold_tip": "متن گپ نما", "italic_sample": "متن شکسته", "italic_tip": "متن شکسته", - "link_sample": "عنوان لینک", + "link_sample": "عنۉان لینک", "link_tip": "لینک داخلی", - "extlink_sample": "http://www.example.com عنوان لینک", + "extlink_sample": "http://www.example.com عنۉان لینک", "extlink_tip": "(به خاطر بسپار http:// prefix)\nلینک خارجی", "headline_sample": "سرخط متن", "headline_tip": "2سرخط یکسان", - "nowiki_sample": "متن شکل نداده یافرمت نوابیده را ایچو بنین", - "nowiki_tip": "زه فرمت کردن یا شکل دادن ویکی چشم پوشی کن", - "image_tip": "فایل محاط وابید", + "nowiki_sample": "متن شکل ندائھ یافرمت نۉابیدھ را ایچۉ بنین", + "nowiki_tip": "زھ فرمت کردن یا شکل دائن ۉیکی دس ۉردار", + "image_tip": "فایل محاط ۉابید", "media_tip": "لینک فایل", - "sig_tip": "امضای ایسا و برچسب زمان", - "hr_tip": "خط افقی (کم استفاده کنین)", + "sig_tip": "امضا ایشا ۉ برچسب زمان", + "hr_tip": "خط افقی (کم استفادھ کنین)", "summary": "خلاصه:", - "minoredit": "ای یه اصلاح کچک وابی", + "minoredit": "ای یه اصلاح کچک ۉابی", "watchthis": "پیگیری ای بلگه", - "savearticle": "بلگه ضبط بوه", + "savearticle": "بلگه ضبط بوھ", "showpreview": "پیش‌نمایش", - "showdiff": "نشودائن تغییرات", - "anoneditwarning": "هشدار: ایشا نوایته مئنه سیستم. آی پی ایشا سی عومو قابل رویت هی ار اصلاحی بکنیت. ار ایشا [$1 ورود] یا [$2 درست کردن یه حسآو], اصلاحل ایشا به حسآو کاروری ایشا گذاشته ایوان وا منفعل حسآول دیه..", - "loginreqlink": "اویدن وه سیستم", - "newarticletext": "ایشا یه لینک وه یه بلگنه که هنی وجود نارنه دنبال کردیته.\nسی درست کردن ای بلگه،نوشتنه مئنه جعبه زیر شروع کنیت(بینیتو [$1 help page] سی اصلاعات اضافی).\nار ایشا وا خطا ایچه هیسیت، ری back button مرورگر ایشا کلیژ کیت.", - "noarticletext": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|جستن سی عنوان ای بلگه]] مئنه بلگه یل دیه.\n<کلاس دهانه=\"لینکل ساده\">[{{آدرس کامل سایت:{{#مخصوص:نمایه یل}}|بلگه={{FULLPAGENAMEE}}}} جستن سی نمایل مربوط], یا [{{آدرس کامل سایت:{{FULLPAGENAME}}|اقدام=اصلاح}} اصلاح کو ای بلگنه].", - "noarticletext-nopermission": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|search for this page title]] مئنه بلگل دیه، یا [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]، ولی ایشا نیترید ای بلگنه درس بکنیت.", + "showdiff": "نشۉدائن تغییرل", + "anoneditwarning": "هشدار: ایشا نۉایته مئنه سیستم. آی پی ایشا سی عۉمۉم قابل رۉیت هی ار اصلاحی بکنیت. ار ایشا [$1 ورود] یا [$2 راس کردن یه حسآۉ], اصلاحل ایشا به حسآۉ کارۉری ایشا ھشتھ ایۉان ۉا منفعل حسآۉل دیه..", + "loginreqlink": "ئۉیدن ۉھ سیستم", + "newarticletext": "ایشا یه لینک ۉھ یه بلگنه که هنی ۉجود نارنه دنبال کردیته.\nسی راس کردن ای بلگه،نوشتنه مئنه جعبه زیر شرۉع کنیت(بینیتۉ [$1 help page] سی اصلاعات اضافی).\nار ایشا ۉا خطا ایچه هیسیت، ری back button مرۉرگر ایشا کلیژ کیت.", + "noarticletext": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|جستن سی عنوان ای بلگه]] مئنه بلگه یل دیه.\n[{{fullurl:{{#مخصۉص:نمایه یل}}|بلگه={{FULLPAGENAMEE}}}} جستن سی نمایل مربوط], یا [{{fullurl:{{FULLPAGENAME}}|اقدام=اصلاح}} اصلاح کۉ ای بلگنه].", + "noarticletext-nopermission": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|search for this page title]] مئنه بلگل دیه، یا [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]، ۉلی ایشا نیترید ای بلگنه راس بکنیت.", "editing": "درحال اصلاح $1", - "creating": "درست کردن $1", + "creating": "راس کردن $1", "editingsection": "درحال اصلاح $1 (قسمت)", - "templatesused": "{{PLURAL:$1|قالب|قالبل}} اسفاده بیه مئنه ای بلگه:", + "templatesused": "{{PLURAL:$1|قالب|قالبل}} اسفادھ بیه مئنه ای بلگه:", "template-protected": "(تحت حمایت)", - "template-semiprotected": "(نیمه حمایت وابیده)", - "hiddencategories": "ای بلگه عضو {{PLURAL:$1|1 دسه بنی قائم|$1 دسه بنی یل قائم}} هیسس :", - "permissionserrorstext-withaction": "ایشا اجازه ناریت که $2, سی ای {{PLURAL:$1|دلیل|دلیلل}}:", - "moveddeleted-notice": "ای بلگه حذف وابیده.\nحذف و انتقال سیاهه ای بلگه فراهم وابیده دومن سرچشمه.", - "viewpagelogs": "نشودائن نمایه ها سی ای بلگه", - "currentrev-asof": "آخرین نسخه تا $1", + "template-semiprotected": "(نیمه حمایت ۉابیدھ)", + "hiddencategories": "ای بلگه عضۉ {{PLURAL:$1|1 دسه بنی قائم|$1 دسه بنی یل قائم}} هیسس :", + "permissionserrorstext-withaction": "ایشا اجازھ ناریت که $2, سی ای {{PLURAL:$1|دلیل|دلیلل}}:", + "moveddeleted-notice": "ای بلگه حذف ۉابیدھ.\nحذف ۉ انتقال سیاهه ای بلگه فراهم ۉابیدھ دۉمن سرچشمه.", + "viewpagelogs": "نشۉدائن نمایه ها سی ای بلگه", + "currentrev-asof": "آخرین ۉرژن تا $1", "revisionasof": "اصلاح $1", - "revision-info": "نسخه $1 توسط {{GENDER:$6|$2}}$7", + "revision-info": "ۉرژن $1 تۉسط {{GENDER:$6|$2}}$7", "previousrevision": "← اصلاح قبلی", - "nextrevision": "نسخه جدیدتر →", - "currentrevisionlink": "آخرین نسخه", + "nextrevision": "ۉرژن نۉتر →", + "currentrevisionlink": "آخرین ۉرژن", "cur": "فعلی", "last": "قبلی", "rev-delundel": "قابلیت تغییر دائن", "history-title": "تاریخچه اصلاحل $1", - "difference-title": "تفاوت میان تجدید نطرل \"$1\"", + "difference-title": "فرخ ۉا بین تجدید نطرل \"$1\"", "lineno": "سطر $1:", "editundo": "لغو", - "diff-multi-sameuser": "({{PLURAL:$1|یه نسخه متوسط|$1 نسخه یل متوسط}} توسط کارور مشابه نشو نوابیه)", + "diff-multi-sameuser": "({{PLURAL:$1|یه ۉرزن متۉسط|$1 ۉرژنل متۉسط}} تۉسط کارۉر مشابه نشۉ نۉابیه)", "searchresults": "نتیجل جستن", "searchresults-title": "نتیجل جستن سی \"$1\"", "prevn": "قبلی {{PLURAL:$1|$1}}", "nextn": "بعدی {{PLURAL:$1|$1}}", - "nextn-title": "بعدی $1 {{PLURAL:$1|نتیجه|نتیجه یل}}", + "nextn-title": "بعدی $1 {{PLURAL:$1|نتیجه|نتیجل}}", "shown-title": "نشۉ دائن $1 {{PLURAL:$1|نتیجه|نتیجل}} د هر بلگه", - "viewprevnext": "مشاهده ($1 {{int:pipe-separator}} $2) ($3)", - "searchmenu-new": "درست کو ای بلگنه \"[[:$1]]\" مئنه ای ویکی! {{PLURAL:$2|0=|همچنین سل کو بلگه ای که وا جستن پیداش کردیه.|همچنین سل کو نتایج جستنه.}}", + "viewprevnext": "مشاهدھ ($1 {{int:pipe-separator}} $2) ($3)", + "searchmenu-new": "درست کۉ ای بلگنه \"[[:$1]]\" مئنه ای ۉیکی! {{PLURAL:$2|0=|همچنین سل کۉ بلگه ای که ۉا جستن پیداش کردیه.|همچنین سل کۉ نتیجل جستنه.}}", "searchprofile-articles": "بلگه محتۉا", "searchprofile-images": "چندرسانه ای", "searchprofile-everything": "همه چیا", @@ -489,57 +489,57 @@ "search-result-size": "$1 ({{PLURAL:$2|1 کلمه|$2 کلمل}})", "search-redirect": "(تغییر مسیر $1)", "search-section": "(قسمت $1)", - "search-suggest": "آیا منطور ایشا ای بی:$1", + "search-suggest": "آیا منطۉر ایشا ای بی:$1", "searchall": "همه", - "search-showingresults": "{{PLURAL:$4|نتیجه $1 ز $3|نتیجه یل $1 - $2 ز $3}}", - "search-nonefound": "نتیجه ای مرتبط وا هونی که در خواست دیته نی.", - "mypreferences": "تنظیمات", - "right-writeapi": "استفاده د نوشتن به صورت API", - "newuserlogpage": "سیاهه درست کردن حسآو", - "enhancedrc-history": "سرچشمه یل", + "search-showingresults": "{{PLURAL:$4|نتیجه $1 ز $3|نتیجل $1 - $2 ز $3}}", + "search-nonefound": "نتیجه ای مرتبط ۉا هۉنی که در خۉاست دیته نی.", + "mypreferences": "تنظیمل", + "right-writeapi": "استفادھ د نوشتن ۉھ صۉرت API", + "newuserlogpage": "سیاهه راس کردن حسآۉ", + "enhancedrc-history": "تاریخچھ", "recentchanges": "تغییرل نۉ", - "recentchanges-legend": "گزینه یل تغییرات اخیر", - "recentchanges-summary": "شیار تغییرات اخیر مئنه ای بلگه به ویکی .", + "recentchanges-legend": "گزینه یل تغییرل اخیر", + "recentchanges-summary": "شیار تغییرل اخیر مئنه ای بلگه ۉھ ۉیکی .", "recentchanges-label-newpage": "ای اصلاح یه بلگه نو ایسازھ", "recentchanges-label-minor": "ای یه اصلاح کچک ۉابی", "recentchanges-label-bot": "ای اصلاح تۉسط یه رۉبات انجام ۉابیه", - "recentchanges-label-unpatrolled": "ای اصلاح هنو گشت نوابیده", - "recentchanges-label-plusminus": "اندازه بلگه وا ای تعداد بایت تغییر داده بیه", - "recentchanges-legend-heading": "'''آلشتیا ایسنی :'''", - "recentchanges-legend-newpage": "{{عضول انجومن:تغییرل اخیر-برچسب-بلگه نو}} (هنی سل کو [[Special:NewPages|لیست بلگل نو]])", - "rclistfrom": "نشودادن تغییرات نو وا شروع زه $3 $2", - "rcshowhideminor": "اصلاحات کوچیک $1", - "rcshowhideminor-show": "نشو دائن", + "recentchanges-label-unpatrolled": "ای اصلاح هۉنۉ گشت نۉابیدھ", + "recentchanges-label-plusminus": "اندازھ بلگه ۉا ای تعداد بایت تغییر دادھ بیه", + "recentchanges-legend-heading": "'''آلشتیا ئیھ سنی :'''", + "recentchanges-legend-newpage": "{{عضۉل انجۉمن:تغییرل اخیر-برچسب-بلگه نۉ}} (هنی سل کۉ [[Special:NewPages|لیست بلگل نۉ]])", + "rclistfrom": "نشۉدائن تغییرل نۉ ۉا شرۉع زھ $3 $2", + "rcshowhideminor": "اصلاحل کچک $1", + "rcshowhideminor-show": "نشۉ دائن", "rcshowhideminor-hide": "قائم کردن", - "rcshowhidebots": "$1 ربات‌ل یا بوتل", - "rcshowhidebots-show": "نشو دائن", + "rcshowhidebots": "$1 ربات‌ل یا بۉتل", + "rcshowhidebots-show": "نشۉ دائن", "rcshowhidebots-hide": "قائم کردن", - "rcshowhideliu": "$1 حسآول وارد وابیده", + "rcshowhideliu": "$1 حسآۉل وارد وابیدھ", "rcshowhideliu-hide": "قائم کردن", - "rcshowhideanons": "$1 کاروران داخل نوابیده", - "rcshowhideanons-show": "نشو دائن", + "rcshowhideanons": "$1 کارۉران داخل نۉابیدھ", + "rcshowhideanons-show": "نشۉ دائن", "rcshowhideanons-hide": "قائم کردن", - "rcshowhidemine": "$1 اصلاحات مو", - "rcshowhidemine-show": "نشو دائن", + "rcshowhidemine": "$1 اصلاحل مۉ", + "rcshowhidemine-show": "نشۉ دائن", "rcshowhidemine-hide": "قائم کردن", - "rclinks": "نشودادن آخرین $1 تغییر در $2 روز اخیر؛ $3", - "diff": "تفاۉت", + "rclinks": "نشودائن ئاخرین $1 تغییر مئن $2 روز اخیر؛ $3", + "diff": "فرخ", "hist": "گزارش", "hide": "قائم کردن", - "show": "نشو دائن", + "show": "نشۉ دائن", "minoreditletter": "رز", "newpageletter": "تا", "boteditletter": "ر", "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتل}} بعد تغییر", - "recentchangeslinked": "تغییرل مربوط", + "recentchangeslinked": "تغییرل مربۉط", "recentchangeslinked-toolbox": "تغییرل مربوط", - "recentchangeslinked-title": "تغییرهای مرتبط با $1", - "recentchangeslinked-summary": " ای بلگه خاص تغییرات اخیر مئنه بلگل لینک وابیده وه ای بلگنه نشو اده.\nبلگلی که مئنه [[Special:Watchlist|لیست پیگیری یل]] ایشا هیسن به شکل '''سیاه''' نشو داده ابون.", - "recentchangeslinked-page": "نوم بلگه:", - "recentchangeslinked-to": "نشو دائن تغییرات بلگلی که و بلگه داده بیه لینک داده شدنه به جای", + "recentchangeslinked-title": "تغییرل مرتبط ۉا $1", + "recentchangeslinked-summary": "ای بلگه خاص تغییرل اخیر مئنه بلگل لینک ۉابیدھ ۉھ ای بلگنه نشۉ ادھ.\nبلگلی که مئنه [[Special:Watchlist|لیست پیگیری یل]] ایشا هیسن به شکل '''سیاھ''' نشۉ دادھ ابۉن.", + "recentchangeslinked-page": "نۉم بلگه:", + "recentchangeslinked-to": "نشۉ دائن تغییرل بلگلی که ۉ بلگه دادھ بیه لینک دادھ شدنه به جای", "upload": "بلم گیر کردن فایل", "filedesc": "خلاصه", - "license-header": "صدور مجوز", + "license-header": "صدۉر مجۉز", "imgfile": "فایل", "file-anchor-link": "فایل", "filehist": "تاریخچه فایل", @@ -553,18 +553,18 @@ "filehist-comment": "توضیح", "imagelinks": "استفاده د فایل", "linkstoimage": "ذیل الذکر {{PLURAL:$1|لینکل بلگه|$1 لینک بلگل}} به ای فایل:", - "nolinkstoimage": "بلگه یلی که وه ای فایل لینک دائنه نی.", + "nolinkstoimage": "بلگه یلی که ۉھ ای فایل لینک دائنه نی.", "sharedupload-desc-here": "ای فایل ز $1 اۉمائه ۉ شاید د پرۉجه یل دیه مورد استفادھ ۉابین.\nتۉضیحتل ری [$2 بلگه تۉضیح فایل] دۉمن نشۉ ۉابیه .", - "upload-disallowed-here": "ایشا نیترید ای فایلنه بنویسید", + "upload-disallowed-here": "ایشا نیترید ای فایلنه بنۉیسید", "randompage": "بلگھ بختھ کی", "nbytes": "$1 {{PLURAL:$1|بایت|بایتل}}", - "nmembers": "$1 {{PLURAL:$1|عضو|اعضول}}", + "nmembers": "$1 {{PLURAL:$1|عضۉ|اعضۉل}}", "newpages": "بلگھ یل نۉ", "pager-older-n": "{{PLURAL:$1|قدیمی تر 1|قدیمی تر $1}}", - "booksources": "منوبع کتآو", - "booksources-search-legend": "جستن سی منوبع کتآو", + "booksources": "سرچشمل کتآۉ", + "booksources-search-legend": "جستن سی سرچشمل کتآۉ", "booksources-search": "جستن", - "log": "نمایه ها", + "log": "نمایل", "allarticles": "همه بلگل", "allpagessubmit": "رۉ", "categories": "دسه یل", @@ -572,27 +572,27 @@ "watch": "پی‌گیری", "dellogpage": "نمایه حذف", "rollbacklink": "عقب گرد", - "rollbacklinkcount": "ورگرد $1 {{PLURAL:$1|اصلاح|اصلاحل}}", - "protectlogpage": "نمایه حفاظت وحمایت", + "rollbacklinkcount": "ۉرگرد $1 {{PLURAL:$1|اصلاح|اصلاحل}}", + "protectlogpage": "نمایه حفاظت ۉحمایت", "namespace": "همدرنگل:", "invert": "انتخاب برعکس بوھ", - "tooltip-invert": "انتخاب کو ای جعبنه سی قائم کردن تغییرل بلگلی که همدرنگلشو انتخاب وابین(و همدرنگل مرتبط ار انتخاب وابین)", + "tooltip-invert": "انتخاب کۉ ای جعبنه سی قائم کردن تغییرل بلگلی که همدرنگلشۉ انتخاب ۉابین(ۉ همدرنگل مرتبط ار انتخاب ۉابین)", "namespace_association": "همدرنگل مرتبط", - "tooltip-namespace_association": "انتخاب کو ای جعبنه سیکه گپ یا موضوع همدرنگ مرتبط وا همدرنگل انتخاب وابینه قرار بنی.", + "tooltip-namespace_association": "انتخاب کو ای جعبنه سیکه گپ یا مۉضۉع همدرنگ مرتبط ۉا همدرنگل انتخاب ۉابینه قرار بنی.", "blanknamespace": "(اصلی)", - "contributions": "{{GENDER:$1|کارور}} سهمل", - "mycontris": "مشارکتل", - "month": "در این ماه (و قبل زه آن):", - "year": "در ای سال (وقبل زه آن):", + "contributions": "{{GENDER:$1|سھمل}} کارۉر", + "mycontris": "سھمل", + "month": "مئنھ ای ماھ (ۉ قبل زھ ھۉ):", + "year": "مئنھ ای سال (ۉ قبل زھ ھۉ):", "whatlinkshere": "لینکل ای بلگه", - "whatlinkshere-title": "بلگل که لینک دائنه به \"$1\"", + "whatlinkshere-title": "بلگل که لینک دائنه ۉھ \"$1\"", "whatlinkshere-page": "بلگه", - "linkshere": "لینک بلگل ذیل الذکر به '''[[:$1]]''':", + "linkshere": "لینک بلگل دۉمن الذکر ۉھ '''[[:$1]]''':", "isredirect": "بلگه تغییر مسیر", - "istemplate": "استفاده‌ وابیده داخل بلگه", + "istemplate": "استفادھ ۉابیدھ داخل بلگه", "isimage": "لینک فایل", - "whatlinkshere-prev": "{{PLURAL:$1|قبلی |مورد قبلی$1}}", - "whatlinkshere-next": "{{PLURAL:$1|بعدی |مورد بعدی $1}}", + "whatlinkshere-prev": "{{PLURAL:$1|قبلی |مۉرد قبلی$1}}", + "whatlinkshere-next": "{{PLURAL:$1|بعدی |مۉرد بعدی $1}}", "whatlinkshere-links": "← لینکل", "whatlinkshere-hideredirs": "$1 تغییرل مسیر", "whatlinkshere-hidetrans": "$1 تراگنجایش", @@ -601,20 +601,20 @@ "blocklink": "بسه بۉھ", "contribslink": "شراکتل", "movelogpage": "نمایه جابجایی", - "export": "بلگل صادره یل", + "export": "بلگل صادرھ", "thumbnail-more": "گپ کردن", - "tooltip-pt-userpage": "حسآو کاروری ایشا", + "tooltip-pt-userpage": "حسآۉ کارۉری ایشا", "tooltip-pt-mytalk": "بلگه گپ ایشا", - "tooltip-pt-preferences": "اولویتل مو", - "tooltip-pt-watchlist": "لیست بلگلی که ایشا تغییرات هونونه دنبال اکنین", - "tooltip-pt-mycontris": "لیست مشارکتل ایشا", + "tooltip-pt-preferences": "اۉلۉیتل مۉ", + "tooltip-pt-watchlist": "لیست بلگلی که ایشا تغییرل هۉنۉنه دنبال اکنین", + "tooltip-pt-mycontris": "لیست سھمل ایشا", "tooltip-pt-login": "تۉصیه ۉابۉھ که ۉھ سیستم داخل بۉین. اما اجباری نیسس", - "tooltip-pt-logout": "رهدن زه سیستم", + "tooltip-pt-logout": "رتن زھ سیستم", "tooltip-pt-createaccount": "تۉصیه ۉابۉھ که حسآۉ کارۉری راس بکنیت یا ۉارد بۉین. اما اجباری نیسس", "tooltip-ca-talk": "قسھ د بلگه محتۉا", "tooltip-ca-edit": "ایسھ ترین ای بلگھ نھ اصلاح کنیت.لطفا قبل اصلاح ای بلگھ ز دۉکمه پیش نمایش استفاده کنیت", - "tooltip-ca-addsection": "آغاز کردن یه قسمت نو", - "tooltip-ca-viewsource": "ای بلگه تحت حمایته ایساترین منبعسه بوینین", + "tooltip-ca-addsection": "آغاز کردن یه قسمت نۉ", + "tooltip-ca-viewsource": "ای بلگه دۉمن حمایته. \nایشا ترین سرچشمھ سھ بۉینین", "tooltip-ca-history": "ۉیرگار", "tooltip-ca-move": "جابجاکردن ای بلگه", "tooltip-ca-watch": "اضاف کردن ای بلگه ۉھ لیست پیگیری یل ایشا", @@ -631,50 +631,50 @@ "tooltip-n-help": "ینه جا سی سیل کردن", "tooltip-t-whatlinkshere": "فهرست همه بلگه یل ۉیکی که ایچۉ لینک دارن", "tooltip-t-recentchangeslinked": "تغییرل آخر مئن بلگھ کھ لینک دانه وھ ای بلگھ", - "tooltip-feed-atom": "تغذیه کوچیک ترین جزء ای بلگه", - "tooltip-t-contributions": "یه لیس ز مشارکت کننده یل و مقاله دهنده یل ای بلگه", + "tooltip-feed-atom": "تغذیه کچک ترین جزء ای بلگه", + "tooltip-t-contributions": "یه لیست ز مشارکت کنندھ یل ۉ مقاله دهندھ یل ای بلگه", "tooltip-t-upload": "بلم گیر کردن فایلل", "tooltip-t-specialpages": "بلگھ یل ۉیجه", "tooltip-t-print": "ورژن سی چاپ ای بلگھ", "tooltip-t-permalink": "لینکل دائمی ۉھ ای ۉرژن ای بلگھ", "tooltip-ca-nstab-main": "دیئن بلگھ محتۉا", - "tooltip-ca-nstab-user": "دیئن بلگه کارور", + "tooltip-ca-nstab-user": "دیئن بلگه کارۉر", "tooltip-ca-nstab-special": "ای بلگه ھا ۉیجھ و ایشا نیترین خود ای بلگنه اصلاح کنیت", - "tooltip-ca-nstab-project": "دیئن بلگه پروجه", + "tooltip-ca-nstab-project": "دیئن بلگه پرۉجه", "tooltip-ca-nstab-image": "دیئن بلگه فایل", "tooltip-ca-nstab-template": "دیئن قالب", "tooltip-ca-nstab-category": "دیئن بلگه دسه بنی", - "tooltip-save": "ضبط کردن تغییراتت", - "tooltip-preview": " دیئن تغییرات ، لطفا قبل ضبط کردن د ای خدمت استفاده کنیت!", - "tooltip-diff": "دیدن تغییراتی که ایسا من ای متن انجام دادینه", + "tooltip-save": "ضبط کردن تغییرل ایشا", + "tooltip-preview": " دیئن تغییرل ، لطفا قبل ضبط کردن د ای خدمت استفادھ کنیت!", + "tooltip-diff": "دیئن تغییرلی که ایشا مئن ای متن انجام دادینه", "tooltip-rollback": "\"اعادھ\" ۉرگردۉندن به وضع اولیه سی ای بلگه که سی مشارکت آخر اصلاح ۉابیدھ ۉا یھ کلیک", - "tooltip-undo": "\"لغو\"ورگشت ای اصلاح و وا ویدن فرم اصلاح مئنه پیش نمایش.اجازه ایده که یه دلیل وه خلاصه اضافه بکنی.", - "tooltip-summary": "یه خلاصه کوچکی بنویس", - "simpleantispam-label": "انتخاب آنتی-اسپم\nپر نکنید اینه مئن!", + "tooltip-undo": "\"لغو\"ۉرگشت ای اصلاح ۉ ۉا ۉیدن فرم اصلاح مئنه پیش نمایش.اجازھ ایدھ که یه دلیل ۉھ خلاصه اضافه بکنی.", + "tooltip-summary": "یه خلاصه کچکی بنویسیت", + "simpleantispam-label": "انتخاب آنتی-اسپم\nپر نکنیت اینه مئن!", "pageinfo-toolboxlink": "اطلاعات بلگه", "previousdiff": "← اصلاح قدیمی", - "nextdiff": "اصلاح جدیدتر→", - "file-info-size": "$1 × $2 پیکسل, اندازه فایل: $3, MIME نوع: $4", + "nextdiff": "اصلاح نۉتر→", + "file-info-size": "$1 × $2 پیکسل, اندازھ فایل: $3, MIME نۉع: $4", "file-nohires": "قابلیت تفکیک بالاتری در دسترس نی.", - "svg-long-desc": "SVG فایل, تقریبا$1 × $2 پیکسل, اندازه فایل: $3", - "show-big-image": "اندازه اصلی", - "show-big-image-preview": "اندازه ای پیش نمایش:$1.", + "svg-long-desc": "SVG فایل, تقریبا$1 × $2 پیکسل, اندازھ فایل: $3", + "show-big-image": "اندازھ اصلی", + "show-big-image-preview": "اندازھ ای پیش نمایش:$1.", "show-big-image-other": "دیه {{PLURAL:$2|تفکیک پذیری|تفکیک پذیری یل}}: $1.", "show-big-image-size": "$1 × $2 پیکسلل", "metadata": "فرادادھ", - "metadata-help": " ای فایل دارای اطلاعات اضافه‌ای هی که احتمالاً با دوربین دیجیتالی‌ یا پویشگری که سی ایجاد یا دیجیتالی‌کردن هو به کار رهده اضاف وابیده . ایر فایل زه وضعیت اولیه اس تغییر داده وابیده بوه ممکنه همه توضیحات موجود اطلاعات عکس را منعکس نکنه", + "metadata-help": " ای فایل دارای اطلاعات اضافه‌ای هی که احتمالاً ۉا دۉربین دیجیتالی‌ یا پۉیشگری که سی ایجاد یا دیجیتالی‌کردن هۉ ۉھ کار رهدھ اضاف ۉابیدھ . ایر فایل زھ ۉضعیت اۉلیه اس تغییر دادھ ۉابیدھ بوھ ممکنه همه توضیحات مۉجود اطلاعات عیس رنھ منعکس نکنه.", "metadata-fields": "زمینه یل عیس فرادادھ که مئنه ای پیۉم لیس ۉابینه ، قرار ۉابی گرتن ری بلگه نۉمایش عیس ۉقتی که جدۉل فرادادھ فرۉریخت.\nبقیه قائم میشن ۉھ صۉرت پیش فرض.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude", "exif-orientation": "گرایش", "exif-xresolution": "تفکیک پذیری افقی", - "exif-yresolution": "تفکیک پذیری عمودی", - "exif-datetime": "تغییرات تاریخ و زمان فایل", - "exif-make": "کمپانی سازنده دوربین", - "exif-model": "مدل دوربین", - "exif-software": "نرم افزار مورد استفاده", - "exif-exifversion": "نسخه Exif", + "exif-yresolution": "تفکیک پذیری عمۉدی", + "exif-datetime": "تغییرل تاریخ و زمان فایل", + "exif-make": "کۉمپانی راسندھ دۉربین", + "exif-model": "مدل دۉربین", + "exif-software": "نرم افزار مۉرد استفادھ", + "exif-exifversion": "ۉرژن Exif", "exif-colorspace": "فضای رنگ", - "exif-datetimeoriginal": "تاریخ و زمان تولید داده یل", - "exif-datetimedigitized": "تاریخ و زمان دیجیتالی وابیدن", + "exif-datetimeoriginal": "تاریخ ۉ زمان تۉلید دادھ یل", + "exif-datetimedigitized": "تاریخ ۉ زمان دیجیتالی ۉابیدن", "exif-orientation-1": "عادی", "namespacesall": "همه", "monthsall": "همه", @@ -683,9 +683,9 @@ "specialpages": "بلگھ یل ۉیجھ", "tag-filter": "[[Special:Tags|برچسب]] فیلتر:", "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|برچسب|برچسبل}}]]: $2)", - "logentry-delete-delete": "$1 {{GENDER:$2|حذف وابیده}} بلگه $3", - "logentry-move-move": "$1 {{GENDER:$2|انتقال داده بیه}} بلگه $3 به $4", + "logentry-delete-delete": "$1 {{GENDER:$2|حذف ۉابیدھ}} بلگه $3", + "logentry-move-move": "$1 {{GENDER:$2|انتقال دادھ بیه}} بلگه $3 ۉھ $4", "logentry-newusers-create": "حسآۉ کارۉر $1 ۉابیه {{GENDER:$2|راس ۉیدھ }}", - "logentry-upload-upload": "$1 {{GENDER:$2|بارگذاری وابیده}} $3", + "logentry-upload-upload": "$1 {{GENDER:$2|بلم گیر کردھ ۉابی}} $3", "searchsuggest-search": "جستن" } diff --git a/languages/i18n/mk.json b/languages/i18n/mk.json index 9fed86b653..b2f59bcadb 100644 --- a/languages/i18n/mk.json +++ b/languages/i18n/mk.json @@ -3486,5 +3486,7 @@ "special-characters-group-khmer": "Кмерски", "special-characters-title-endash": "цртичка", "special-characters-title-emdash": "тире", - "special-characters-title-minus": "минус" + "special-characters-title-minus": "минус", + "mw-widgets-titleinput-description-new-page": "страницата сè уште не постои", + "mw-widgets-titleinput-description-redirect": "пренасочување кон $1" } diff --git a/languages/i18n/ml.json b/languages/i18n/ml.json index 8290fd0694..c21c33e09b 100644 --- a/languages/i18n/ml.json +++ b/languages/i18n/ml.json @@ -649,6 +649,7 @@ "yourdiff": "വ്യത്യാസങ്ങൾ", "copyrightwarning": "{{SITENAME}} സംരംഭത്തിൽ എഴുതപ്പെടുന്ന ലേഖനങ്ങളെല്ലാം $2 പ്രകാരം സ്വതന്ത്രമാണ് (വിശദാംശങ്ങൾക്ക് $1 കാണുക). താങ്കൾ എഴുതുന്ന ലേഖനം തിരുത്തപ്പെടുന്നതിലോ ഒഴിവാക്കപ്പെടുന്നതിലോ എതിർപ്പുണ്ടെങ്കിൽ ദയവായി ലേഖനമെഴുതാതിരിക്കുക.\n\nഈ ലേഖനം താങ്കൾത്തന്നെ എഴുതിയതാണെന്നും അതല്ലെങ്കിൽ പകർപ്പവകാശനിയമങ്ങളുടെ പരിധിയിലില്ലാത്ത ഉറവിടങ്ങളിൽനിന്ന് പകർത്തിയതാണെന്നും ഉറപ്പാക്കുക.\n\n'''പകർപ്പവകാശ സംരക്ഷണമുള്ള സൃഷ്ടികൾ ഒരു കാരണവശാലും ഇവിടെ പ്രസിദ്ധീകരിക്കരുത്.'''", "copyrightwarning2": "{{SITENAME}} സംരംഭത്തിൽ താങ്കൾ എഴുതി ചേർക്കുന്നതെല്ലാം മറ്റുപയോക്താക്കൾ തിരുത്തുകയോ, മാറ്റം വരുത്തുകയോ, ഒഴിവാക്കുകയോ ചെയ്തേക്കാം. താങ്കൾ എഴുതി ചേർക്കുന്നതു മറ്റ് ഉപയോക്താക്കൾ തിരുത്തുന്നതിലോ ഒഴിവാക്കുന്നതിലോ താങ്കൾക്ക് എതിർപ്പുണ്ടെങ്കിൽ ദയവായി ലേഖനമെഴുതാതിരിക്കുക.\nഇതു താങ്കൾത്തന്നെ എഴുതിയതാണെന്നും, അതല്ലെങ്കിൽ പകർപ്പവകാശ നിയമങ്ങളുടെ പരിധിയിലില്ലാത്ത ഉറവിടങ്ങളിൽനിന്നും പകർത്തിയതാണെന്നും ഉറപ്പാക്കുക (കുടുതൽ വിവരത്തിനു $1 കാണുക).\n'''പകർപ്പവകാശ സംരക്ഷണമുള്ള സൃഷ്ടികൾ ഒരു കാരണവശാലും ഇവിടെ പ്രസിദ്ധീകരിക്കരുത്!'''", + "editpage-cannot-use-custom-model": "ഈ താളിന്റെ ഉള്ളടക്ക മാതൃക മാറ്റാൻ കഴിയില്ല.", "longpageerror": "'''പിഴവ്: താങ്കൾ സമർപ്പിച്ച എഴുത്തുകൾക്ക് {{PLURAL:$1|ഒരു കിലോബൈറ്റ്|$1 കിലോബൈറ്റ്സ്}} വലിപ്പമുണ്ട്. പരമാവധി അനുവദനീയമായ വലിപ്പം {{PLURAL:$2|ഒരു കിലോബൈറ്റ്|$2 കിലോബൈറ്റ്സ്}} ആണ്‌. അതിനാലിതു സേവ് ചെയ്യാൻ സാദ്ധ്യമല്ല.'''", "readonlywarning": "'''മുന്നറിയിപ്പ്: ഡേറ്റാബേസ് പരിപാലനത്തിനു വേണ്ടി ബന്ധിച്ചിരിക്കുന്നു, അതുകൊണ്ട് താങ്കളിപ്പോൾ വരുത്തിയ മാറ്റങ്ങൾ സേവ് ചെയ്യാൻ സാദ്ധ്യമല്ല.''' താങ്കൾ വരുത്തിയ മാറ്റങ്ങൾ ഒരു ടെക്സ്റ്റ് ഫയലിലേക്ക് പകർത്തി (കോപ്പി & പേസ്റ്റ്) പിന്നീടുപയോഗിക്കുന്നതിനായി കരുതിവക്കാൻ താല്പര്യപ്പെടുന്നു. ഡേറ്റാബേസ് ബന്ധിച്ച അഡ്മിനിസ്ട്രേറ്റർ നൽകിയ വിശദീകരണം: $1", "protectedpagewarning": "'''മുന്നറിയിപ്പ്: ഈ താൾ കാര്യനിർവാഹക പദവിയുള്ളവർക്കു മാത്രം തിരുത്താൻ സാധിക്കാവുന്ന തരത്തിൽ സം‌രക്ഷിക്കപ്പെട്ടിരിക്കുന്നു.''' അവലംബമായി രേഖകളിൽ ലഭ്യമായ ഏറ്റവും പുതിയ വിവരം താഴെ നൽകിയിരിക്കുന്നു:", @@ -981,7 +982,7 @@ "badsig": "അനുവദനീയമല്ലാത്ത രൂപത്തിലുള്ള ഒപ്പ്. HTML ടാഗുകൾ പരിശോധിക്കുക.", "badsiglength": "താങ്കളുടെ ഒപ്പിനു നീളം കൂടുതലാണ്‌.\nഅതിലെ {{PLURAL:$1|അക്ഷരത്തിന്റെ|അക്ഷരങ്ങങ്ങളുടെ}} എണ്ണം $1 ൽ താഴെയായിരിക്കണം.", "yourgender": "ആൺ / പെൺ?", - "gender-unknown": "വെളിപ്പെടുത്താനാഗ്രഹിക്കുന്നില്ല", + "gender-unknown": "താങ്കളെ പരാമർശിക്കുമ്പോൾ, സാദ്ധ്യമാകുന്നയിടത്ത് ലിംഗരഹിത വാക്കുകൾ സോഫ്‌റ്റ്‌വേർ ഉപയോഗിക്കുന്നതാണ്", "gender-male": "പുരുഷൻ", "gender-female": "സ്ത്രീ", "prefs-help-gender": "ഈ സജ്ജീകരണം നിർബന്ധമല്ല.\nസോഫ്റ്റ്‌വെയർ ഉപയോഗിച്ച് സ്ത്രീകളേയും പുരുഷന്മാരേയും ശരിയായി സംബോധന ചെയ്യാൻ ഉപയോഗിക്കുന്നു.\nഈ വിവരം പരസ്യമായി ലഭ്യമായിരിക്കുന്നതാണ്‌.", @@ -1300,6 +1301,7 @@ "php-uploaddisabledtext": "പി.എച്ച്.പി.യിൽ പ്രമാണ അപ്‌‌ലോഡുകൾ സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.\nദയവായി file_uploads ക്രമീകരണങ്ങൾ പരിശോധിക്കുക.", "uploadscripted": "ഈ പ്രമാണത്തിൽ വെബ് ബ്രൗസർ തെറ്റായി വ്യാഖ്യാനിച്ചേക്കാവുന്ന എച്ച്.റ്റി.എം.എൽ. അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് കോഡ് ഉണ്ട്.", "uploaded-script-svg": "അപ്‌ലോഡ് ചെയ്ത എസ്.വി.ജി. പ്രമാണത്തിൽ സ്ക്രിപ്റ്റ് ചെയ്യാവുന്ന ഭാഗമായ \"$1\" കണ്ടെത്തി.", + "uploaded-hostile-svg": "അപ്‌ലോഡ് ചെയ്ത എസ്.വി.ജി. പ്രമാണത്തിൽ സുരക്ഷിതമല്ലാത്ത സി.എസ്.എസ്. സ്റ്റൈൽ ഭാഗം കണ്ടെത്താനായി.", "uploadscriptednamespace": "ഈ എസ്.വി.ജി. പ്രമാണത്തിൽ ഉപയോഗിക്കാൻ പാടില്ലാത്ത നാമമേഖലയായ \"$1\" ഉണ്ട്", "uploadinvalidxml": "അപ്‌ലോഡ് ചെയ്ത പ്രമാണത്തിലെ എക്സ്.എം.എൽ. പാഴ്സ് ചെയ്യാൻ കഴിയില്ല.", "uploadvirus": "പ്രമാണത്തിൽ വൈറസുണ്ട്! വിശദാംശങ്ങൾ: $1", @@ -1541,7 +1543,6 @@ "nmembers": "{{PLURAL:$1|ഒരു അംഗം|$1 അംഗങ്ങൾ}}", "nmemberschanged": "$1 → {{PLURAL:$2|ഒരു അംഗം|$2 അംഗങ്ങൾ}}", "nrevisions": "{{PLURAL:$1|ഒരു പതിപ്പ്|$1 പതിപ്പുകൾ}}", - "nviews": "{{PLURAL:$1|ഒരു സന്ദർശനം|$1 സന്ദർശനങ്ങൾ}}", "nimagelinks": "{{PLURAL:$1|ഒരു താളിൽ|$1 താളുകളിൽ}} ഉപയോഗിച്ചിരിക്കുന്നു", "ntransclusions": "{{PLURAL:$1|ഒരു താളിൽ|$1 താളുകളിൽ}} ഉപയോഗിച്ചിരിക്കുന്നു", "specialpage-empty": "ഈ താൾ ശൂന്യമാണ്.", diff --git a/languages/i18n/nan.json b/languages/i18n/nan.json index 4092f94e5c..6c8ecb0253 100644 --- a/languages/i18n/nan.json +++ b/languages/i18n/nan.json @@ -439,6 +439,8 @@ "emailnotauthenticated": "Lí ê e-mail chū-chí iáu-bōe khak-jīn ū-hāu, só·-í ē--kha ê e-mail kong-lêng bē-ēng-tit.", "noemailprefs": "Tī lí ê siat-piān chí-tēng chi̍t ê tiān-chú-phoe tē-chí thang hō͘ chia ê kong-lêng ē-tàng ēng.", "emailconfirmlink": "Chhiáⁿ khak-jīn lí ê e-mail chū-chí ū-hāu", + "pt-login": "Teng-ji̍p", + "pt-createaccount": "Khui sin kháu-chō", "user-mail-no-addy": "Siūⁿ beh kià tiān-chú-phoe, m̄-koh bô siá tē-chí.", "changepassword": "Oāⁿ bi̍t-bé", "resetpass_header": "Kái káu-chō ê bi̍t-bé.", @@ -480,7 +482,7 @@ "preview": "Seng khoàⁿ-māi", "showpreview": "Seng khoàⁿ-māi", "showdiff": "Khòaⁿ kái-piàn ê pō·-hūn", - "anoneditwarning": "'''Kéng-kò:''' Lí bô teng-ji̍p. Lí ê IP chū-chí ē kì tī pún ia̍h ê pian-chi̍p le̍k-sú lāi-bīn.", + "anoneditwarning": "'''thê-chhíⁿ:''' Lí bô teng-ji̍p. Lí nā ū kái mi̍h-kiāⁿ, lí ê IP ē hô͘ lâng khoàⁿ tio̍h. Lí nā [$1 teng-ji̍p] iah-sī [$2 khui chi̍t-ê kháu-chō]; lí kái ê mi̍h-kiāⁿ ē kái kì lí ê kháu-chō-miâ. Mā ū kî-thaⁿ ê hó-chhù.", "summary-preview": "Khài-iàu ê preview:", "subject-preview": "Ū-lám tê-bo̍k/piau-tê:", "blockednoreason": "無寫理由", @@ -514,7 +516,7 @@ "yourdiff": "Chha-pia̍t", "readonlywarning": "'''CHÙ-Ì: Chu-liāu-khò· taⁿ só tiâu leh thang pān î-siu khang-khòe, só·-í lí hiān-chú-sî bô thang pó-chûn jīn-hô phian-chi̍p hāng-bo̍k. Lí ē-sái kā siong-koan pō·-hūn tah--ji̍p-khì 1-ê bûn-jī tóng-àn pó-chûn, āu-chhiú chiah koh kè-sio̍k.'''", "protectedpagewarning": "'''KÉNG-KÒ: Pún ia̍h só tiâu leh. Kan-taⁿ ū hêng-chèng te̍k-koân ê iōng-chiá (sysop) ē-sái siu-kái.'''", - "templatesused": "Chit ia̍h iōng {{PLURAL:$1| ê pang-bô·| ê pang-bô·}} :", + "templatesused": "Chit ia̍h iōng {{PLURAL:$1| ê pang-bô·}} :", "templatesusedpreview": "Chit ê preview iōng chia ê pang-bô͘:", "templatesusedsection": "Chit ê section iōng chia ê pang-bô͘:", "template-protected": "(pó-hō͘)", @@ -626,6 +628,7 @@ "minoreditletter": "~", "newpageletter": "!", "boteditletter": "b", + "rc-change-size-new": "改了後;變做$1{{PLURAL:$1|位元}}", "recentchangeslinked": "Siong-koan ê kái-piàn", "recentchangeslinked-feed": "Siong-koan ê kái-piàn", "recentchangeslinked-toolbox": "Siong-koan ê kái-piàn", @@ -665,9 +668,10 @@ "filehist-current": "hiān-chāi", "filehist-datetime": "Ji̍t-kî/ Sî-kan", "filehist-thumb": "細張圖", + "filehist-thumbtext": "$1版本的細圖", "filehist-user": "Iōng-chiá", "imagelinks": "tóng-àn sù-iōng ê chōng-hòng", - "linkstoimage": "ē-kha $1 ê ia̍h ū iōng tio̍h chit ê iáⁿ-siōng:", + "linkstoimage": "ē-kha {{PLURAL:$1|ê ia̍h}} ū iōng tio̍h chit ê iáⁿ-siōng:", "nolinkstoimage": "Bô poàⁿ ia̍h liân kàu chit tiuⁿ iáⁿ-siōng.", "mimesearch": "MIME chhiau-chhoē", "unwatchedpages": "Bô lâng kàm-sī ê ia̍h", @@ -686,7 +690,7 @@ "nbytes": "$1 {{PLURAL:$1|jī-goân|jī-goân}}", "ncategories": "$1 {{PLURAL:$1|ê lūi-pia̍t |ê lūi-pia̍t}}", "nlinks": "$1 ê liân-kiat", - "nmembers": "$1{{PLURAL:$1|ê sêng-oân|ê sêng-oân}}", + "nmembers": "$1{{PLURAL:$1|ê sêng-oân}}", "nrevisions": "$1 ê siu-tēng-pún", "lonelypages": "Ko·-ia̍h", "uncategorizedpages": "Bô lūi-pia̍t ê ia̍h", @@ -869,6 +873,7 @@ "tooltip-pt-mycontris": "Lí ê kòng-hiàn lia̍t-toaⁿ", "tooltip-pt-login": "Hi-bāng lí teng-ji̍p; m̄-ko bô kiông-chè", "tooltip-pt-logout": "Teng-chhut", + "tooltip-pt-createaccount": "建議你先開一个口座(無一定愛);才閣登入。", "tooltip-ca-talk": "Loē-iông ê thó-lūn", "tooltip-ca-edit": "Lí ē-sái kái chit ia̍h. Beh chhûn chìn-chiân, chhiáⁿ chhi̍h sing-khoàⁿ-māi ê liú-á", "tooltip-ca-viewsource": "Chit ia̍h pó-hō͘ tiâu leh.\nLí ē-sái khoàⁿ i ê goân-sú-bé.", @@ -878,6 +883,7 @@ "tooltip-ca-watch": "共這頁加入去你的監視單", "tooltip-ca-unwatch": "Lí ê kàm-sī-toaⁿ soá tiàu chit ia̍h.", "tooltip-search": "Chhoé {{SITENAME}}", + "tooltip-search-go": "若有仝名的,就去彼頁。", "tooltip-search-fulltext": "Chhoé ū chia-ê jī ê ia̍h", "tooltip-p-logo": "Khì thâu-ia̍h", "tooltip-n-mainpage": "Khì thâu-ia̍h", @@ -897,6 +903,7 @@ "tooltip-t-permalink": "Chi̍t ia̍h kái--koè pán-pún ê éng-kiú liân-kiat", "tooltip-ca-nstab-main": "khoàⁿ ia̍h ê loē-iông", "tooltip-ca-nstab-user": "Khoàⁿ iōng-chiá ê Ia̍h", + "tooltip-ca-nstab-special": "這是一个特殊頁,你袂使改這頁。", "tooltip-ca-nstab-image": "Khoàⁿ tóng-àn ia̍h", "tooltip-ca-nstab-category": "Khoàⁿ lūi-pia̍t ia̍h", "tooltip-minoredit": "記這是一个小改", @@ -910,14 +917,16 @@ "siteuser": "{{SITENAME}} iōng-chiá $1", "othercontribs": "Kin-kù $1 ê kòng-hiàn.", "siteusers": "{{SITENAME}} iōng-chiá $1", + "pageinfo-toolboxlink": "頁的資訊", "markaspatrolleddiff": "Phiau-sī sûn--kòe", "markedaspatrolledtext": "Í-keng phiau-sī chit ê siu-tēng-pún ū lâng sûn--kòe.", "deletedrevision": "Kū siu-tēng-pún $1 thâi-tiāu ā.", - "previousdiff": "← Khì chêng 1 ê diff", - "nextdiff": "Khì āu 1 ê diff →", + "previousdiff": "← 進前改的", + "nextdiff": "新改的 →", "imagemaxsize": "Iáⁿ-siōng biô-su̍t-ia̍h ê tô· ke̍k-ke hián-sī jōa tōa tiuⁿ:", "thumbsize": "Sok-tô· (thumbnail) jōa tōa tiuⁿ:", "file-nohires": "Bô khah koân ê kái-sek-tō͘.", + "show-big-image-size": "$1 × $2 像素", "newimages": "Sin iáⁿ-siōng oē-lóng", "imagelisttext": "Í-hā sī '''$1''' tiuⁿ iáⁿ-siōng ê lia̍t-toaⁿ, $2 pâi-lia̍t.", "ilsubmit": "Kiám-sek", @@ -954,6 +963,8 @@ "duplicate-defaultsort": "'''Thê-chhíⁿ lí:'''Siat-piān ê pâi-lia̍t hong-sek \"$2\" thè-oāⁿ chìn-chêng ê siat-piān ê pâi-lia̍t hong-sek \"$1\".", "version": "Pán-pún", "specialpages": "Te̍k-sû-ia̍h", + "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|个標籤}}]]:$2)", + "searchsuggest-search": "揣", "expandtemplates": "Khok-chhiong pang-bô͘", "expand_templates_input": "Su-ji̍p bûn-jī:", "expand_templates_output": "Kiat-kó:", diff --git a/languages/i18n/ne.json b/languages/i18n/ne.json index dda1a80e93..70e0ff5b21 100644 --- a/languages/i18n/ne.json +++ b/languages/i18n/ne.json @@ -280,7 +280,7 @@ "hidetoc": "लुकाउनुहोस्", "collapsible-collapse": "खुम्च्याउने", "collapsible-expand": "फैलाउ", - "confirmable-confirm": "तपाईं {{GENDER:$1|लिङ्ग}} हो?", + "confirmable-confirm": "के {{GENDER:$1|तपाईं}} सुनिश्चित हुनुहुन्छ ?", "confirmable-yes": "हो", "confirmable-no": "होइन", "thisisdeleted": "$1 हेर्ने या पूर्वरुपमा फर्काउने हो?", @@ -550,7 +550,7 @@ "changeemail-submit": "इमेल परिवर्तन गर्ने", "changeemail-throttled": "तपाईंले भर्खरै धेरै पल्ट प्रवेशको निम्ति प्रयास गर्नुभएको छ।\nकृपया $1 पर्खेर मात्र प्रयास गर्नुहोस्।", "resettokens": "टोकन पूर्वरुपमा फर्काउने", - "resettokens-text": "जुन टोकन तपाईंको खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तपाईं त्यसलाई यहाँ रिसेट गर्न सक्नुहुन्छ।\n\nयदि तपाईं तिनलाई भुलवस कसैलाई देखाईदिनु भएको छ वा तपाईंको खाता ह्याक भइसकेको छ भने तपाईं यसलाई रिसेट गर्नुहोला।", + "resettokens-text": "जुन टोकन तपाईंको खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तपाईं त्यसलाई यहाँ रिसेट गर्न सक्नुहुन्छ।\n\nयदि तपाईंले तिनलाई भुलवस कसैलाई देखाईदिनु भएको छ वा तपाईंको खाता ह्याक भइसकेको छ भने तपाईं यसलाई रिसेट गर्नुहोला।", "resettokens-no-tokens": "पूर्वरुपमा फर्काउन कुनै पनि टोकन छैन ।", "resettokens-legend": "टोकनहरू पूर्वरुपमा फर्काउने", "resettokens-tokens": "टोकनहरू:", @@ -588,7 +588,7 @@ "anoneditwarning": "चेतावनी: तपाईँले प्रवेश गर्नु भएको छैन । तपाईँको आइपि ठेगाना पृष्ठ सम्पादन इतिहासमा दर्ता गरिने छ र यो सबैले हेर्न सक्छन । यदि तपाईं [$1 लगईन] वा [$2 नयाँ खाता बनाउने] गर्नुभयो भने तपाईंद्वारा गरिएको सम्पादन तपाईंको प्रयोगकर्तानाममा जोडिनेछ।", "anonpreviewwarning": "''तपाईंले प्रवेश गर्नु भएको छैन। संग्रह (Save) गरेको खण्डमा पृष्ठको इतिहासमा तपाईंको IP ठेगाना अंकित गरिनेछ।''", "missingsummary": "'''यादगर्नुहोस् :''' तपाईले सम्पादन सारांश दिनुभएको छैन ।\nयदि तपाईले संग्रहगर्नुहोस् थिच्नुभयो भने , सारांश बिना नै संग्रहित गरिने छ ।", - "selfredirect": "चेतावनी: तपाईं यस पृष्ठलाई आफुमा पुनः निर्देशित गर्दै हुनुहुन्छ।\nहुनसक्छ तपाई अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गर्दैहुनुहुन्छ, वा गलत पृष्ठको सम्पादन गर्दैहुनुहुन्छ।\nतपाईं पुन एकपटक \"{{int:savearticle}}\" क्लिक गर्नुहुन्छ, पुन:निर्देशित त्यसै पनि बनाइनेछ।", + "selfredirect": "चेतावनी: तपाईं यस पृष्ठलाई आफुमा पुनः निर्देशित गर्दै हुनुहुन्छ।\nहुनसक्छ तपाईं अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गर्दै हुनुहुन्छ, वा गलत पृष्ठको सम्पादन गर्दै हुनुहुन्छ।\nतपाईं पुनः एकपटक \"{{int:savearticle}}\" क्लिक गर्नुहुन्छ, पुनः निर्देशित त्यसै पनि बनाइनेछ।", "missingcommenttext": "कृपया टिप्पणी प्रविष्ठ गर्नुहोस् ।", "missingcommentheader": "'''याद गर्नुहोस् :''' तपाईँले टिप्पणीमा विषय /शीर्ष पंक्ति दिनुभएको छैन ।\nतपाईँले फेरि \"{{int:savearticle}}\" थिच्नु भएमा , तपाईको सम्पादन यसै रुपमा संग्रहित हुनेछ ।", "summary-preview": "सारांश पूर्वालोकन:", @@ -642,12 +642,12 @@ "yourtext": "तपाईंका पाठहरु", "storedversion": "संग्रहित पुनरावलोकन", "nonunicodebrowser": "चेतावनी: तपाईंको ब्राउजर युनिकोडलाई स्वीकार गर्दैन। \nतपाईंद्वारा सहि रुपले पृष्ठ सम्पादनको लागि: गैर-एयससिआइआइ क्यारेक्टर हेक्जाडेसिमल कोड (hexadecimal) मा देखाइनेछ।", - "editingold": "चेतावनी: तपाईं यस पृष्ठको अति पुरनो अप्रचलित संशोधनलाई सम्पादन गर्नुहुँदैछ।\nयदि तपाईंले यस परिवर्तनलाई सङ्ग्रह गर्नु भयो भने यस पछिका संशोधनहरू नष्ट हुनेछन्।", + "editingold": "चेतावनी: तपाईं यस पृष्ठको अति पुरानो अप्रचलित संशोधनलाई सम्पादन गर्नुहुँदैछ।\nयदि तपाईंले यस परिवर्तनलाई सङ्ग्रह गर्नु भयो भने यस पछिका संशोधनहरू नष्ट हुनेछन्।", "yourdiff": "भिन्नताहरु", "copyrightwarning": "कृपया ध्यान दिनुहोस् यस {{SITENAME}}मा दिइएका योगदानहरू $2को अनुसार सम्पादन र पुनर्वितरणकोलागि खुला मानिनेछ (विवरणकोलागि $1 हेर्नुहोस्) । यदि तपाईंको लेखलाई सम्पादन अथवा पुनः वितरण गराउन चाहनुहुन्न भने कृपया यहाँ तपाईंको लेख प्रस्तुत नगर्नुहोस् ।
\nयदि तपाईं किटानसाथ भन्नुहुन्छ कि कुनै लेख मैले लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो, '''यस्तो लेख कपिराइटबिना यहाँ नराख्नुहोस्!'''", - "copyrightwarning2": "कृपया ध्यान दिनुहोस् यस {{SITENAME}}मा दिइएका योगदानहरुलाई अन्य योगदाताहरुद्वारा सम्पादन गरिनेछ, परिवर्तन गरिनेछ अथवा हटाइनेछ। यदि तपाईंको लेखलाई निर्दयता पूर्वक सम्पादन गरेको चाहनुहुन्न भनें त्यो यहाँ नदिनुहोस्।
\nयदि तपाईं किटानसाथ भन्नुहुन्छ कि यो लेख तपाईं आफै लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो (विवरणकोलागि हेर्नुहोस् $1 ). \n'''कपीराइट भएको रचना अनुमति बिना यहाँ नदिनुहोस्!'''", + "copyrightwarning2": "कृपया ध्यान दिनुहोस् यस {{SITENAME}}मा दिइएका योगदानहरूलाई अन्य योगदानकर्ताहरूद्वारा सम्पादन गरिनेछ, परिवर्तन गरिनेछ अथवा हटाइनेछ। यदि तपाईंको लेखलाई निर्दयता पूर्वक सम्पादन गरेको चाहनुहुन्न भने त्यो यहाँ नदिनुहोस्।
\nयदि तपाईं किटानसाथ भन्नुहुन्छ कि यो लेख तपाईं आफैले लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो (विवरणकोलागि हेर्नुहोस् $1 ). \n'''कपीराइट भएको रचना अनुमति बिना यहाँ नदिनुहोस्!'''", "longpageerror": "'''त्रुटि: तपाईंले बुझाएको पाठ {{PLURAL:$1|one किलोबाइट|$1 किलोबाइट}} लामो छ, जो अधिकतम {{PLURAL:$2|one किलोबाइट|$2 किलोबाइट}} भन्दा लामो छ।'''\nयो संग्रहित हुन सक्तैन।", - "readonlywarning": "चेतावनी: तथ्याक मर्मतको निम्ति बन्द गरिएकोछ, यस कारण तपाईं आफ्नो सम्पादन अहिले सङ्ग्रह गर्न सक्नुहुन्न।\n\nयदि तपाईं चाहनुहुन्छ भने अहिले यहाँ भएका पाठलाई कट गरि कतै टेक्स्ट फाइलमा पेस्ट गरेर सङ्ग्रह गर्न सक्नुहुन्छ।\n\nप्रवन्धक जसले यो बन्द गरेको छ उसले यस्तो विवरण दिएको छ: $1", + "readonlywarning": "चेतावनी: तथ्याङ्क मर्मतको निम्ति बन्द गरिएकोछ, यस कारण तपाईं आफ्नो सम्पादन अहिले सङ्ग्रह गर्न सक्नुहुन्न।\n\nयदि तपाईं चाहनुहुन्छ भने अहिले यहाँ भएका पाठलाई कट गरि कतै टेक्स्ट फाइलमा पेस्ट गरेर सङ्ग्रह गर्न सक्नुहुन्छ।\n\nप्रवन्धक जसले यो बन्द गरेको छ उसले यस्तो विवरण दिएको छ: $1", "protectedpagewarning": "सूचना: यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यसलाई सम्पादन गर्न सक्छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:", "semiprotectedpagewarning": "सूचना: यो पृष्ठलाई सुरक्षित गरिएको हुँदा दर्ता भएका प्रयोगकर्ताहरूले मात्र यसलाई सम्पादन गर्न सक्छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:", "cascadeprotectedwarning": "चेतावनी: यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण संशोधन प्रवन्धनको विशेषाधिकार प्राप्त प्रयोगकर्ताले मात्र सम्पादन गर्न सक्नेछन् किन भने यो {{PLURAL:$1|पृष्ठ|पृष्ठहरू}}को सुरक्षित निम्न सूचीमा सुरक्षित छ:", @@ -682,7 +682,7 @@ "content-failed-to-parse": "$1 को लागि $2 सामग्रीलाई पार्स गर्न विफल, त्रुटि: $3", "invalid-content-data": "अमान्य सामग्री डेटा", "content-not-allowed-here": "सामग्री \"$1\" [[$2]] पृष्ठमा राख्न अनुमती छैन ।", - "editwarning-warning": "यस पृष्ठबाट बाहिर जाँदा तपाईं द्वारा गरिएको कुनै कोई पनि परिवर्तन हराउनेछ।\nयदि तपाईंले लग इन गर्नुभएको छ भने तपाईं यस सूचनालाई देखाउन आफ्नो अभिरूचीहरूको \"{{int:prefs-editing}}\" भागमा गएर बन्द गर्न सक्नुहुन्छ।", + "editwarning-warning": "यो पृष्ठबाट बाहिर जाँदा तपाईं द्वारा गरिएको कुनै पनि परिवर्तन हराउनेछ।\nयदि तपाईंले लग इन गर्नुभएको छ भने तपाईं यस सूचनालाई देखाउन आफ्नो अभिरूचीहरूको \"{{int:prefs-editing}}\" भागमा गएर बन्द गर्न सक्नुहुन्छ।", "editpage-notsupportedcontentformat-title": "सामग्री प्रकार समर्थित छैन", "editpage-notsupportedcontentformat-text": "$1 सामग्री स्वरूप $2 सामग्री मोडलद्वारा समर्थित छैन।", "content-model-wikitext": "विकिपाठ", @@ -1285,7 +1285,7 @@ "largefileserver": "उर्ध्वभरण गरिएको फाइल सर्भरमा निर्धारित सीमा भन्दा ठूलो छ।", "emptyfile": "तपाईले उर्ध्वभरण गर्नुभएको फाइल रित्तो छ।\nयो फाइलनाम गलत राखिएको कारणले भएको हुनसक्छ\nयो फाइल साच्चै उर्ध्वभरण गर्नेकुरामा निश्चित हुनुहोस् ।", "windows-nonascii-filename": "विशेष वर्ण सहितका फाइलनामहरु यस विकिद्वारा समर्थित छैनन् ।", - "fileexists": "यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भनें कृपया [[:$1]] जाँच गर्नुहोस्।\n[[$1|thumb]]", + "fileexists": "यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भने कृपया [[:$1]] जाँच गर्नुहोस्।\n[[$1|thumb]]", "filepageexists": "यस फाइलको लागि विवरण पृष्ठ पहिले नै [[:$1]] बनाइ सकिएको छ, तर यस नामको कुनै फाइल अहिले उपस्थित छैन। \nतपाईं जुन विवरण दिनुहुन्छ त्यो विवरण पृष्ठमा देखिंदैन। \nतपाईंको आफ्नो विवरणलाई त्यहाँ राख्न म्यानुअली सम्पादन गर्नु पर्नेछ।\n[[$1|thumb]]", "fileexists-extension": "यहि नामको एउटा फाइल पहिलेदेखि नैं छ: [[$2|thumb]]\n* उर्ध्वभरण हुँदै गरेको फाइलको नाम: [[:$1]]\n* पहिलेदेखि नैं भएको फाइलको नाम: [[:$2]]\nकृपया अर्कै नाम रोज्नुहोस्।", "fileexists-thumbnail-yes": "यो फाइल ठुलो चित्रको सानो आकार ''(थम्बनेल)'' जस्तो देखिन्छ। [[$1|thumb]]\n[[:$1]] फाइललाई हेर्ने।\nयदि जाँच गरिएको फाइल यसै आकारको छ भने सानो आकारको फाइल अपलोड गर्ने आवश्यकता छैन।", @@ -1315,7 +1315,7 @@ "upload-description": "फाइल वर्णन", "upload-options": "उर्ध्वभरण विकल्पहरु", "watchthisupload": "यो पृष्ठ निगरानी गर्नुहोस्", - "filewasdeleted": "यस नामको एक फाइल पहिले पनि अपलोड गरे पछि हटाई सकिएको छ।\nपुन अपलोड गर्नु पूर्व तपाईं $1 लाई राम्रो सँग जाँच गर्नुहोला।", + "filewasdeleted": "यस नामको एक फाइल पहिले पनि अपलोड गरे पछि हटाई सकिएको छ।\nपुनः अपलोड गर्नु पूर्व तपाईं $1 लाई राम्रोसँग जाँच गर्नुहोला।", "filename-bad-prefix": "तपाईं जुन फाइल अपलोड गर्दै हुनुहुन्छ त्यसको नाम \"$1\"बाट शुरू हुन्छ, जुन डिजिटल क्यामराद्वारा दिइएको नाम हो।\nकृपया यस फाइलको लागि कुनै दोश्रो अधिक जानकारीयुक्त नाम छान्नुहोस्।", "upload-success-subj": "उर्ध्वभरण सफल", "upload-success-msg": "[$2]बाट त्पाईंको उर्ध्वभरण सफल भयो। त्यो यहाँ पाउन सकिनेछ: [[:{{ns:file}}:$1]]", @@ -1715,7 +1715,7 @@ "emailuser-title-target": "{{GENDER:$1|प्रयोगकर्ता}}लाई इमेल गर्ने", "emailuser-title-notarget": "प्रयोगकर्तालाई इमेल गर्नुहोस्", "emailpage": "प्रयोगकर्तालाई इमेल गर्नुहोस्", - "emailpagetext": "तल दिइएको फर्मले तपाईं यस {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्नुहुन्छ। तपाईं जुन ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता अभिरूचीहरू]]मा दिनुभएको थियो त्यो यस इमेललाई \"पठाउने\" को रूपमा आउनेछ, अतः प्राप्तकर्ता तपाईंलाई सिधै जवाफ दिनसक्छ।", + "emailpagetext": "तल दिइएको फर्मले तपाईं यस {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्नुहुन्छ। तपाईंले जुन ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता अभिरूचीहरू]]मा दिनुभएको थियो त्यो यस इमेललाई \"पठाउने\" को रूपमा आउनेछ, अतः प्राप्तकर्ता तपाईंलाई सिधै जवाफ दिनसक्छ।", "defemailsubject": "{{SITENAME}} प्रयपोगकर्ता \"$1\" बाट इमेल", "usermaildisabled": "प्रयोगकर्ता इमेल निरस्त गरिएको", "usermaildisabledtext": "यस विकिमा तपाईं अरु प्रयोगकर्तालाई ई-मेल पठाउन सक्नुहुन्न", @@ -2075,7 +2075,7 @@ "ipbnounblockself": "तपाई आफैले आफैलाई रोक खुलाउन सक्नुहुन्न ।", "lockdb": "डेटाबेस ताल्चामार्ने", "unlockdb": "डेटाबेसको ताल्चा खोल्ने", - "lockdbtext": "डेटाबेसमा ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गरें हुन्छ, त्यसबाट वन्चित हुनेछ। कृपया यो सुनिश्चित गर्नुहोस कि तपाईं यो गर्न चाहनुहुन्छ, र तपाईं रक्षण पश्चात ताला खोल्नुहुन्छ।", + "lockdbtext": "डेटाबेसमा ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गरें हुन्छ, त्यसबाट वन्चित हुनेछ। कृपया यो सुनिश्चित गर्नुहोस् कि तपाईं यो गर्न चाहनुहुन्छ, र तपाईं रक्षण पश्चात ताला खोल्नुहुन्छ ।", "unlockdbtext": "डेटाबेसको ताला खोल्नका लागि सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीहरूमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गर्नु पर्छ, को सक्षमतालाई पुनर्स्थापित गर्नछ। कृपया यो सुनिश्चित गर्नुस कि तपाईं यो गर्न चाहनुहुन्छ।", "lockconfirm": "हो, म साँच्चिकै डेटाबेस थुन्न चाहन्छु।", "unlockconfirm": "हो , म साँच्चै डेटाबेसको ताल्चा खोल्न चाहन्छु ।", @@ -2092,7 +2092,7 @@ "move-page": " $1 लाई सार्ने", "move-page-legend": "पृष्ठ सार्नुहोस्", "movepagetext": "तल दिएको फारमको उपयोगले पृष्ठ नाम परिवर्तन हुनेछ र पृष्ठको सम्पूर्ण इतिहास नयाँ नामको साथमा जानेछ।\nपुरानो शीर्षक नयाँ शीर्षककोलागि अनुप्रेषित पृष्ठ बनिनेछ।\nतपाईंले यो स्वचालित रूपले अनुप्रेषित पृष्ठलाई अपडेट गर्न सक्नुहुनेछ।\nयदि तपाईं हुँदैन चुन्नुहुन्छ भनें जाँचेर सुनिश्चित गर्नुहोस् कि [[Special:DoubleRedirects|दोहोरो]] अथवा [[Special:BrokenRedirects|टुटेको अनुप्रेषण]]।\nतपाईंमाथि यो सुनिश्चित गर्ने उत्तरदायित्व रहन्छ कि लिङ्क कुन विन्दुमा जानु पर्ने हो ।\n\nध्यान दिनुहोस् नयाँ नामको पृष्ठ पहिलेबाट नैं छ भनें पृष्ठ सारिने छैन। नयाँ नामको पृष्ठ पहिलेबाट भएर पनि यदि यो खालि छ अथवा अनुप्रेषित छ र सम्पादित इतिहास छैन भनें सारिनेछ।\nयसको अर्थ हुन्छ यदि कुनै गल्ती गरेमा तपाईंले पुनः पुरानै नाम दिनु पर्ने हुन्छ यसलाई अधिलेखन गर्नसक्नु हुनेछैन। \n\nचेतावनी!\nयो एक लोकप्रिय पृष्ठको लागि एउटा कठोर र अप्रत्याशित परिवर्तन हुनसक्नेछ;\nकृपया सुनिश्चित गर्नुहोस् कि तपाईंले यसको सही परिणाम बुझ्नु भएको छ अनि मात्र नयाँ नाम दिन अघि बढ्नुहोस्।", - "movepagetext-noredirectfixer": "तल दिइएको फारम पृष्ठको नाम परिवर्तन गर्नेछ, उसको सबै इतिहास पनि नयाँ नामले देखिनेछ।\nपुरानो शीर्षक नयाँ नाममा अनुप्रेषण गर्नेछ।\nमूल शीर्षक तर्फ लिएर जाने सबै अनुप्रेषणहरूलाई तपाईं स्वचालित रूपले परिवर्तन गर्न सक्नुहुन्छ।\nयदि तपाईं यसो गर्नुहुन्न भने कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]को लागि पक्कै जाँच गर्नुहोस।\nलिङ्क आफ्नो स्थानमै रहोस, यो सुनिश्चित गर्ने जिम्मेवारी तपाईंको हो।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भने स्थानान्तरण '''हुन''' सक्दैन। तर यदि नयाँ शीर्षक भएको लेख खाली छ अथवा कतै अन्य स्थानमा अनुप्रेषित गर्दैछ र साथै उसको पुरानो संस्करण छैन भने त्यो स्थानान्तरण हुनेछ।\nयसको अभिप्राय यो हो कि यदि तपाईंद्वारा गलती भएको छ भने तपाईं फेरी पुरानो नाममा यस पृष्ठलाई स्थानान्तरण गर्न सक्नुहुन्छ, र साथै तपाईं कुनै पहिले देखि रहेको पृष्ठको सट्टा यो स्थानान्तरण गर्न सक्नुहुन्न।\n\nचेतावनी!\nयदि पृष्ठ खासै लोकप्रिय छ भने त्यसको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्दा पहिले तपाईं यसको नतिजासँग परिचित हुनुहुन्छ।", + "movepagetext-noredirectfixer": "तल दिइएको फारमले पृष्ठको नाम परिवर्तन गर्नेछ, उसको सबै इतिहास पनि नयाँ नामले देखिनेछ ।\nपुरानो शीर्षक नयाँ नाममा अनुप्रेषण गर्नेछ ।\nमूल शीर्षक तर्फ लिएर जाने सबै अनुप्रेषणहरूलाई तपाईं स्वचालित रूपले परिवर्तन गर्न सक्नुहुन्छ ।\nयदि तपाईं यसो गर्नुहुन्न भने कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]को लागि पक्कै जाँच गर्नुहोस् ।\nलिङ्क आफ्नो स्थानमै रहोस्, यो सुनिश्चित गर्ने जिम्मेवारी तपाईंको हो ।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भने नाम परिवर्तन '''हुन''' सक्दैन । तर यदि नयाँ शीर्षक भएको लेख खाली छ अथवा कतै अन्य स्थानमा अनुप्रेषित गर्दैछ र साथै उसको पुरानो संस्करण छैन भने त्यसको नाम परिवर्तन हुनेछ ।\nयसको अभिप्राय यो हो कि यदि तपाईंद्वारा गल्ती भएको छ भने तपाईं फेरी पुरानो नाममा यस पृष्ठलाई सार्न सक्नुहुन्छ, र साथै तपाईं कुनै पहिले देखि रहेको पृष्ठको सट्टा यो स्थानान्तरण गर्न सक्नुहुन्न।\n\nचेतावनी!\nयदि पृष्ठ खासै लोकप्रिय छ भने त्यसको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्दा पहिले तपाईं यसको नतिजासँग परिचित हुनुहुन्छ।", "movepagetalktext": "संबद्ध वार्तालाप पृष्ठ स्वतः योसित जानेछ '''यदि'''\n* नयाँ नामको पृष्ठको वार्तालाप पृष्ठ रिक्त छैन अथवा\n* तपाईंले यसको सन्दूकमा अनचेक गर्नुहुन्छ भनें '''वार्तालाप पृष्ठ जानेछैन'''। \n\nयस्तो भएमा, तपाईंको इच्छाले आफैंले (manually) पृष्ठ सार्नु अथवा मिलाउनु पर्ने हुन्छ।", "movearticle": "पृष्ठ सार्नुहोस्", "moveuserpage-warning": "'''चेतावनी:''' तपाईंले प्रयोगकर्ता पृष्ठ सार्न आँट्नु भएकोछ। कृपया याद राख्नुहोस् पृष्ठ मात्र सारिने छ र प्रयोगकर्ताको अर्को नाम राख्न '''सकिंदैन'''।", @@ -2149,7 +2149,7 @@ "move-over-sharedrepo": "==फाइल पहिले देखि छ==\n[[$1]] एक साझा भण्डारमा पहिले देखि नै छ। यस नामको स्थानान्तरणले नयाँ फाइल साझा फाइललाई ओभरराइड गर्नेछ।", "file-exists-sharedrepo": "छानिएको फाइल नाम पहिले देखि नै साझा भण्डारमा प्रयोगमा छ। कृपया अन्य नाम छान्नुहोस्।", "export": "पृष्ठहरू निर्यात गर्ने", - "exporttext": "तपाईं विशिष्ठ पृष्ठको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गर्न सक्नुहुन्छ अथवा पृष्ठहरूको समूहका केहि XML मा बेर्न सक्नुहुन्छ।\nयो [[Special:Import|आयात पृष्ठ]]को सहायताले मीडियाविकीको प्रयोग गरेर दोश्रो विकीबाट आयात गर्न सकिनेछ।\n\nपृष्ठहरूको निर्यात गर्नका लागि, तल विषय वस्तु बाकसमा शीर्षक दिनुहोस, एक शीर्षक प्रति पङ्क्ति, र छान्नुहोस् कि तपाईं वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहनुहुन्छ वा चाहनुहुन्न, वा पछिल्लो सम्पादनको बारेमा जानकारीसँग मात्रै वर्तमान अवतरण चाहनुहुन्छ।\n\nपछीको स्थितिको लागि तपाईं लिङ्कको पनि प्रयोग गर्न सक्नुहुन्छ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।", + "exporttext": "तपाईं विशिष्ठ पृष्ठको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गर्न सक्नुहुन्छ अथवा पृष्ठहरूको समूहका केहि XML मा बेर्न सक्नुहुन्छ।\nयो [[Special:Import|आयात पृष्ठ]]को सहायताले मीडियाविकीको प्रयोग गरेर दोश्रो विकीबाट आयात गर्न सकिनेछ।\n\nपृष्ठहरूको निर्यात गर्नका लागि, तल विषय वस्तु बाकसमा शीर्षक दिनुहोस्, एक शीर्षक प्रति पङ्क्ति, र छान्नुहोस् कि तपाईं वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहनुहुन्छ वा चाहनुहुन्न, वा पछिल्लो सम्पादनको बारेमा जानकारीसँग मात्रै वर्तमान अवतरण चाहनुहुन्छ।\n\nपछीको स्थितिको लागि तपाईं लिङ्कको पनि प्रयोग गर्न सक्नुहुन्छ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।", "exportall": "सबै पृष्ठहरू निर्यात गर्ने", "exportcuronly": "हालको संस्करण मात्र थप्ने ,पूरा इतिहास हैन", "exportnohistory": "----\nसूचना: यस फारमको प्रयोग गरेर पृष्ठको पुरै इतिहास निर्यात गर्दा प्रदर्शन कारणले अक्षम गरिएको छ।", @@ -3095,7 +3095,7 @@ "tags-delete-title": "ट्याग मेट्नुहोस्", "tags-delete-explanation-initial": "तपाईले ट्याग \"$1\" लाई डाटावेसबाट हटाउन खोज्दै हुनु हुन्छ ।", "tags-delete-explanation-in-use": "ट्यागलाई {{PLURAL:$2|$2 संशोधन वा लग प्रविष्टि|सबै $2 संशोधन र/वा लग प्रविष्टिहरू}}बाट हटाइनेछ जहाँ अहिले त्यसको प्रयोग गरिंदै छ।", - "tags-delete-explanation-warning": "यो क्रिया अपरिवर्तनीय हो र त्यसलाई परिवर्तन गर्न सकिंदैन, डेटाटाबेस प्रवन्धक पनि यसलाई केहि गर्न सक्दैनन्। विश्वासपूर्ण रूपले तपाईं तय गर्नुस कि तपाईं यस ट्यागलाई हटाउन चाहनुहुन्छ।", + "tags-delete-explanation-warning": "यो क्रिया अपरिवर्तनीय हो र त्यसलाई परिवर्तन गर्न सकिंदैन, डेटाबेस प्रवन्धक पनि यसलाई केहि गर्न सक्दैनन्। विश्वासपूर्ण रूपले तपाईं तय गर्नुहोस् कि तपाईं यस ट्यागलाई हटाउन चाहनुहुन्छ।", "tags-delete-explanation-active": "ट्याग \"$1\" अहिले पनि सक्रिय छ, र यसको प्रयोग भविष्यमा पनि जारी रहनेछ। यसलाई रोकनका लागि, ती स्थानहरूमा जानुहोस जहाँ यस ट्यागको प्रयोग भइरहेको छ र त्यहाँ देखि यसलाई अक्षम गर्नुहोस।", "tags-delete-reason": "कारण:", "tags-delete-submit": "उल्टाउन नसकिने गरि यो ट्यागलाई मेटाउने", @@ -3242,7 +3242,7 @@ "feedback-back": "अघिल्लो", "feedback-bugcheck": "राम्रो! जाँच्नुस की कतै [ $1 ज्ञात बगहरू] पहिले देखि नै नहोस्।", "feedback-bugnew": "मैले जाँच गरिसके। नयाँ बगको खबर दिनुहोस्", - "feedback-bugornote": "यदि तपाईं कुनै प्राविधिक समस्यालाई विस्तारले समझाउन तयार हुनुहुन्छ भने कृपया [$1 बग राख्नुहोस]।\nयदि हैन, भने तपाईं तल दिइएको सरल फारमको प्रयोग गर्नसक्नुहुन्छ। तपाईंको टिप्पणी तपाईंको प्रयोगकर्ता नाम र तपाईंको ब्राउजरको नाम सहित \"[$3 $2]\" पृष्ठ मा जोडिनेछ।", + "feedback-bugornote": "यदि तपाईं कुनै प्राविधिक समस्यालाई विस्तारले सम्झाउन तयार हुनुहुन्छ भने कृपया [$1 बग राख्नुहोस]।\nयदि हैन, भने तपाईं तल दिइएको सरल फारमको प्रयोग गर्नसक्नुहुन्छ। तपाईंको टिप्पणी तपाईंको प्रयोगकर्ता नाम र तपाईंको ब्राउजरको नाम सहित \"[$3 $2]\" पृष्ठमा जोडिनेछ।", "feedback-cancel": "रद्द गर्ने", "feedback-close": "गरियो", "feedback-external-bug-report-button": "प्राविधिक कार्य पेश गर्नुहोस्", @@ -3412,5 +3412,7 @@ "special-characters-group-khmer": "खेमर", "special-characters-title-endash": "इएन ड्यास", "special-characters-title-emdash": "इएम ड्यास", - "special-characters-title-minus": "घटाउने चिन्ह" + "special-characters-title-minus": "घटाउने चिन्ह", + "mw-widgets-titleinput-description-new-page": "हालसम्म पृष्ठ उपलब्ध छैन्", + "mw-widgets-titleinput-description-redirect": "$1 मा जाने" } diff --git a/languages/i18n/or.json b/languages/i18n/or.json index 7e67800937..dd78e7ed6e 100644 --- a/languages/i18n/or.json +++ b/languages/i18n/or.json @@ -560,7 +560,7 @@ "watchthis": "ଏହି ପୃଷ୍ଠାଟିକୁ ଦେଖିବେ", "savearticle": "ସାଇତିବେ [Save]", "preview": "ସାଇତିବା ଆଗରୁ ଦେଖନ୍ତୁ", - "showpreview": "ପୂର୍ବଦେଖଣା [Preview]", + "showpreview": "ଦେଖଣା [Preview]", "showdiff": "ବଦଳଗୁଡ଼ିକ ଦେଖାଇବେ", "blankarticle": "ଚେତାବନୀ: ଆପଣ ସମ୍ପାଦନା କରୁଥିବା ଏହି ପୃଷ୍ଠାଟି ଫାଙ୍କା ଅଛି ।\nଯଦି ଆପଣ \"{{int:savearticle}}\" ଉପରେ ଆଉଥରେ କ୍ଲିକ କରନ୍ତି, ପୃଷ୍ଠାଟି କୌଣସି ବିଷୟବସ୍ତୁ ନଥାଇ ତିଆରି ହୋଇଯିବ ।", "anoneditwarning": "ସାବଧାନ: ଆପଣ ଲଗ-ଇନ କରିନାହାନ୍ତି । ଅଧିକ ସମ୍ପାଦନା କଲେ ଆପଣଙ୍କ IP Address ଟି ସମସ୍ତଙ୍କୁ ଦେଖାଯିବ । [$1ଲଗ ଇନ କଲେ] କିମ୍ବା [$2 ନୂଆ ଖାତାଟିଏ ତିଆରି କଲେ], ଆପଣଙ୍କ ସମ୍ପାଦନାର ଶ୍ରେୟ ଅନ୍ୟାନ୍ୟ ସୁବିଧା ସହିତ ଆପଣଙ୍କ ଇଉଜର ନାମରେ ଦିଆହେବ ।", @@ -971,7 +971,7 @@ "prefs-timeoffset": "ସମୟ ଆରମ୍ଭ", "prefs-advancedediting": "ସାଧାରଣ ବିକଳ୍ପ", "prefs-editor": "ସମ୍ପାଦକ", - "prefs-preview": "ପୂର୍ବଦେଖଣା", + "prefs-preview": "ଦେଖଣା", "prefs-advancedrc": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ", "prefs-advancedrendering": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ", "prefs-advancedsearchoptions": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ", @@ -3087,7 +3087,7 @@ "expand_templates_remove_nowiki": "ଫଳାଫଳରେ ଟ୍ୟାଗମାନଙ୍କୁ ଦବାଇଦିଅନ୍ତୁ", "expand_templates_generate_xml": "XML ପାର୍ସ ସଂରଚନା ଦେଖାନ୍ତୁ", "expand_templates_generate_rawhtml": "କେବଳ HTML କୋଡ଼ ଦେଖାନ୍ତୁ", - "expand_templates_preview": "ପୂର୍ବଦେଖଣା", + "expand_templates_preview": "ଦେଖଣା", "pagelanguage": "ପୃଷ୍ଠା ଭାଷା ବଛା", "pagelang-name": "ପୃଷ୍ଠା", "pagelang-language": "ଭାଷା", diff --git a/languages/i18n/pa.json b/languages/i18n/pa.json index 90c926579c..10a1e12044 100644 --- a/languages/i18n/pa.json +++ b/languages/i18n/pa.json @@ -234,6 +234,7 @@ "pool-timeout": "ਲਾਕ ਲਈ ਉਡੀਕ ਦਾ ਵਕਤ ਖ਼ਤਮ ਹੋ ਗਿਆ ਹੈ", "pool-queuefull": "ਪੂਲ ਕਤਾਰ ਭਰੀ ਹੋਈ ਹੈ", "pool-errorunknown": "ਅਣਜਾਣ ਗਲਤੀ", + "poolcounter-usage-error": "ਵਰਤੋਂ ਵਿੱਚ ਗ਼ਲਤੀ:$1", "aboutsite": "{{SITENAME}} ਬਾਰੇ", "aboutpage": "Project:ਬਾਰੇ", "copyright": "ਕੁਝ ਹੋਰ ਨਾ ਲਿਖੇ ਜਾਣ 'ਤੇ ਸਮੱਗਰੀ $1 ਹੇਠ ਮੌਜੂਦ ਹੈ।", @@ -563,6 +564,7 @@ "missingcommenttext": "ਹੇਠਾਂ ਇੱਕ ਟਿੱਪਣੀ ਦਿਓ।", "summary-preview": "ਸੋਧ ਸਾਰ ਦੀ ਝਲਕ:", "subject-preview": "ਵਿਸ਼ੇ/ਸਿਰਨਾਵੇਂ ਦੀ ਝਲਕ:", + "previewerrortext": "ਤੁਹਾਡੀਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਝਲਕ ਵਿਖਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਵਿੱਚ ਗ਼ਲਤੀ ਆ ਗਈ।", "blockedtitle": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲੱਗੀ ਹੋਈ ਹੈ", "blockedtext": "'''ਤੁਹਾਡੇ ਮੌਮਬਰ ਨਾਮ ਜਾਂ IP ਪਤੇ ’ਤੇ ਪਾਬੰਦੀ ਲੱਗ ਚੁੱਕੀ ਹੈ।'''\n\nਪਾਬੰਦੀ $1 ਨੇ ਲਾਈ ਹੈ।\nਦਿੱਤਾ ਗਿਆ ਕਾਰਨ ਇਹ ਹੈ, ''$2''।\n\n* ਪਾਬੰਦੀ ਸ਼ੁਰੂ: $8\n* ਪਾਬੰਦੀ ਖਤਮ: $6\n* ਪਾਬੰਦੀ ਲਾਉਣ ਵਾਲੇ ਦਾ ਇਰਾਦਾ: $7\n\nਪਾਬੰਦੀ ਬਾਰੇ ਚਰਚਾ ਕਰਨ ਲਈ ਤੁਸੀਂ $1 ਜਾਂ ਕਿਸੇ ਹੋਰ\n[[{{MediaWiki:Grouppage-\nsysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।\nਤੁਸੀਂ 'ਇਸ ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ' ਸਹੂਲਤ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕਦੇ ਜੇ ਤੁਹਾਡੀਆਂ [[Special:Preferences|ਖਾਤਾ ਪਸੰਦਾਂ]] ਵਿੱਚ ਇੱਕ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ ਜਾਂ ਜੇ ਤੁਹਾਡੇ ਇਸਨੂੰ ਵਰਤਣ ਤੇ ਪਾਬੰਦੀ ਹੈ।\nਤੁਹਾਡਾ ਚਾਲੂ IP ਪਤਾ $3 ਹੈ,\nਅਤੇ ਪਾਬੰਦੀ ਪਤਾ #$5 ਹੈ।\nਮਿਹਰਬਾਨੀ ਕਰਕੇ ਆਪਣੇ ਕਿਸੇ ਵੀ ਸਵਾਲ ਜਾਂ ਪੁੱਛ-ਗਿੱਛ ਵਿਚ ਇਹ ਉੱਪਰਲੀ ਤਫ਼ਸੀਲ ਜ਼ਰੂਰ ਸ਼ਾਮਲ ਕਰੋ।", "blockednoreason": "ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦੱਸਿਆ ਗਿਆ", @@ -749,6 +751,7 @@ "showhideselectedversions": "ਚੁਣੀਆਂ ਸੁਧਾਈਆਂ ਦੀ ਦਿਸਣਯੋਗਤਾ ਬਦਲੋ", "editundo": "ਰੱਦ ਕਰੋ", "diff-empty": "(ਕੋਈ ਫ਼ਰਕ ਨਹੀਂ)", + "diff-multi-sameuser": "(ਇਸੀ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ {{PLURAL:$1|ਇੱਕ ਵਿਚਕਾਰਲੀ ਤਬਦੀਲੀ|$1 ਵਿਚਕਾਰਲੀਆਂ ਤਬਦੀਲੀਆਂ}} {{PLURAL:not shown|ਨਹੀਂ ਦਿਖਾਈ ਜਾ ਰਹੀ|ਨਹੀਂ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ}})", "searchresults": "ਖੋਜ ਨਤੀਜੇ", "searchresults-title": "\"$1\" ਲਈ ਖੋਜ ਨਤੀਜੇ", "titlematches": "ਆਰਟੀਕਲ ਟੈਕਸਟ ਮਿਲਦਾ", @@ -761,7 +764,7 @@ "shown-title": "ਪ੍ਰਤੀ ਸਫ਼ਾ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}} ਵਿਖਾਓ", "viewprevnext": "ਵੇਖੋ ($1 {{int:pipe-separator}} $2) ($3)", "searchmenu-exists": "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:$1]]\" ਨਾਮ ਦਾ ਸਫਾ ਹੈ।'''", - "searchmenu-new": "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:$1]]\" ਸਫ਼ਾ ਬਣਾਓ!'''", + "searchmenu-new": "ਇਸ ਵਿਕੀ ਉੱਤੇ ਸਫ਼ਾ \"[[:$1]]\" ਬਣਾਓ! {{PLURAL:$2|0=|ਇਸਦੇ ਨਾਲ ਖੋਜ ਦੇ ਨਤੀਜੇ ਵੀ ਦੇਖ ਲਵੋ।}}", "searchprofile-articles": "ਸਮੱਗਰੀ ਸਫ਼ੇ", "searchprofile-images": "ਮਲਟੀਮੀਡੀਆ", "searchprofile-everything": "ਸਭ ਕੁਝ", @@ -783,6 +786,7 @@ "searchrelated": "ਸਬੰਧਤ", "searchall": "ਸਭ", "showingresults": "ਹੇਠਾਂ #'''$2''' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ {{PLURAL:\n$1|'''1''' ਨਤੀਜਾ|'''$1''' ਤੱਕ ਨਤੀਜੇ}} ਵਖਾਓ।", + "search-showingresults": "{{PLURAL:$4|$3 ਵਿੱਚੋਂ $1 ਨਤੀਜੇ| $3 ਵਿੱਚੋਂ $1 - $2 ਨਤੀਜੇ}}", "search-nonefound": "ਤੁਹਾਡੀ ਖੋਜ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਮਿਲੇ।", "powersearch-legend": "ਤਕਨੀਕੀ ਖੋਜ", "powersearch-ns": "ਨੇਮ-ਸਪੇਸ ਵਿੱਚ ਖੋਜ:", @@ -1894,6 +1898,7 @@ "exif-pixelxdimension": "ਤਸਵੀਰ ਦੀ ਲੰਬਾਈ", "exif-usercomment": "ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਟਿੱਪਣੀਆਂ", "exif-relatedsoundfile": "ਮਿਲਦੀ-ਜੁਲਦੀ ਆਡੀਓ ਫ਼ਾਈਲ", + "exif-datetimeoriginal": "ਡਾਟਾ ਦੇ ਬਣਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ", "exif-datetimedigitized": "ਅੰਕਰੂਪ ਕਰਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ", "exif-fnumber": "ਐੱਫ਼ ਨੰਬਰ", "exif-subjectdistance": "ਵਿਸ਼ੇ ਦੀ ਵਿੱਥ", diff --git a/languages/i18n/pl.json b/languages/i18n/pl.json index 4e27b544cb..ca5db9a1ed 100644 --- a/languages/i18n/pl.json +++ b/languages/i18n/pl.json @@ -77,7 +77,8 @@ "VerMa", "Ency", "Kszapsza", - "Openbk" + "Openbk", + "Doctore" ] }, "tog-underline": "Podkreślenie linków:", @@ -123,7 +124,7 @@ "underline-never": "Nigdy", "underline-default": "według ustawień skórki lub przeglądarki", "editfont-style": "Styl czcionki w polu edycyjnym:", - "editfont-default": "Domyślna przeglądarka", + "editfont-default": "domyślny przeglądarki", "editfont-monospace": "czcionka o stałej szerokości", "editfont-sansserif": "czcionka bezszeryfowa", "editfont-serif": "czcionka szeryfowa", @@ -743,6 +744,7 @@ "content-model-css": "CSS", "content-json-empty-object": "Pusty obiekt", "content-json-empty-array": "Pusta tablica", + "duplicate-args-warning": "Ostrzeżenie: [[:$1]] wywołuje [[:$2]] z więcej niż jedną wartością dla parametru \"$3\". Tylko ostatnia podana wartość zostanie użyta.", "duplicate-args-category": "Strony zawierające wywołania szablonów z parametrami o takich samych nazwach", "duplicate-args-category-desc": "Strona zawiera szablony, które używają duplikatów argumentów, jak {{foo|bar=1|bar=2}} lub {{foo|bar|1=baz}}.", "expensive-parserfunction-warning": "Uwaga! Ta strona zawiera zbyt wiele wywołań złożonych obliczeniowo funkcji parsera.\n\nPowinno być mniej niż $2 {{PLURAL:$2|wywołanie|wywołania|wywołań}}, a obecnie {{PLURAL:$1|jest $1 wywołanie|są $1 wywołania|jest $1 wywołań}}.", @@ -3421,5 +3423,7 @@ "special-characters-group-khmer": "Khmerskie", "special-characters-title-endash": "półpauza", "special-characters-title-emdash": "pauza", - "special-characters-title-minus": "minus" + "special-characters-title-minus": "minus", + "mw-widgets-titleinput-description-new-page": "strona jeszcze nie istnieje", + "mw-widgets-titleinput-description-redirect": "przekierowanie do $1" } diff --git a/languages/i18n/pt.json b/languages/i18n/pt.json index 3a81bc4d98..e93576e5e7 100644 --- a/languages/i18n/pt.json +++ b/languages/i18n/pt.json @@ -3346,5 +3346,7 @@ "special-characters-group-khmer": "Cambojano", "special-characters-title-endash": "hífen", "special-characters-title-emdash": "travessão", - "special-characters-title-minus": "sinal de subtração" + "special-characters-title-minus": "sinal de subtração", + "mw-widgets-titleinput-description-new-page": "a página ainda não existe.", + "mw-widgets-titleinput-description-redirect": "redirecionar para $1" } diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index 7288066925..11ea692569 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -3522,6 +3522,9 @@ "version-libraries": "Header on [[Special:Version]] above a table that lists installed external libraries and their version numbers.", "version-libraries-library": "Column header for the library's name\n{{Identical|Library}}", "version-libraries-version": "Column header for the library's version number\n{{Identical|Version}}", + "version-libraries-license": "Column header for the library's license", + "version-libraries-description": "Column header for the library's description", + "version-libraries-authors": "Column header for the library's authors", "redirect": "{{doc-special|Redirect}}\nThis means \"Redirect by file'''name''', user '''ID''', page '''ID''', or revision ID\".", "redirect-legend": "Legend of fieldset around input box in [[Special:Redirect]]", "redirect-text": "Inside fieldset for [[Special:Redirect]]", diff --git a/languages/i18n/ro.json b/languages/i18n/ro.json index acc875399a..866b687001 100644 --- a/languages/i18n/ro.json +++ b/languages/i18n/ro.json @@ -3340,5 +3340,7 @@ "special-characters-group-khmer": "Khmeră", "special-characters-title-endash": "linie de pauză (en dash)", "special-characters-title-emdash": "linie de pauză (em dash)", - "special-characters-title-minus": "semnul minus" + "special-characters-title-minus": "semnul minus", + "mw-widgets-titleinput-description-new-page": "pagina nu există încă", + "mw-widgets-titleinput-description-redirect": "redirecționare către $1" } diff --git a/languages/i18n/roa-tara.json b/languages/i18n/roa-tara.json index 7d0cf3830e..5c364322f8 100644 --- a/languages/i18n/roa-tara.json +++ b/languages/i18n/roa-tara.json @@ -635,6 +635,7 @@ "yourdiff": "Differenze", "copyrightwarning": "Pe piacere vide ca tutte le condrebbute de {{SITENAME}} sonde considerete de essere rilasciete sotte 'a $2 (vide $1 pe le dettaglie).\nCe tu non ge vuè ca le condrebbute tue avènene ausete da otre o avènene cangete, non le scè mettènne proprie.
\nTu na promettere pure ca le cose ca scrive tu, sonde 'mbormaziune libbere o copiete da 'nu pubbleche dominie.
\n'''NON METTE' NISCIUNA FATJE CA JE' PROTETTE DA DERITTE SENZA PERMESSE!'''", "copyrightwarning2": "Pe piacere vide ca tutte le condrebbute de {{SITENAME}} ponne essere cangete, alterate o luvete da otre condrebbutore.\nCe tu non ge vuè ca quidde ca scrive avène cangete da tre, allore non scè scrivenne proprie aqquà.
\nTu ne stè promitte ca quidde ca scrive tu, o lè scritte cu 'u penziere tue o lè cupiate da risorse de pubbliche dominie o sembre robba libbere (vide $1 pe cchiù dettaglie).\n'''NO REGGISTRA' FATIJE CUPERTE DA 'U COPYRIGHT SENZA PERMESSE! NO FA STUDECARIE!'''", + "editpage-cannot-use-custom-model": "'U modelle de condenute de sta pàgene non ge pò essere cangiate.", "longpageerror": "'''ERRORE: 'U teste ca tu vuè ccu reggistre è luenghe {{PLURAL:$1|'nu kilobyte|$1 kilobyte}}, invece 'u limite massime jè de {{PLURAL:$2|'nu kilobyte|$2 kilobyte}}.'''\nNon ge puè reggistrà sta pàggene.", "readonlywarning": "'''FA ATTENZIO': 'U database ha state bloccate pe manutenzione, e allore tu non ge puè reggistrà le cangiaminde ca ste face mò.'''\nTu puè fa 'na bella cose, tagghie e 'nzicche le cangiaminde jndr'à 'nu file de teste sus a 'u combiuter tune e pò cchiù tarde le reggistre sus 'a Uicchi.\n\nL'amministratore ca ha bloccate 'u database ha date stu mutive: $1", "protectedpagewarning": "'''ATTENZIO': Sta pàgene ha state bloccate e allore sulamende le utinde cu le privilegge de ''sysop'' ponne cangiarle.'''\nL'urteme archivie de le trasute ha state previste aqquà sotte pe referimende:", @@ -680,6 +681,7 @@ "content-model-css": "CSS", "content-json-empty-object": "Oggette vacande", "content-json-empty-array": "Matrice vacande", + "duplicate-args-warning": "Attenziò: [[:$1]] ste chiame [[:$2]] cu cchiù de 'nu valore pu parametre \"$3\". Sulamende l'urteme valore date avène ausate.", "duplicate-args-category": "Pàggene ca ausane le argumende a doppie jndr'à le chiamate d'u template", "duplicate-args-category-desc": "'A pàgene téne chiamate a template ca ausane arguminde a doppie, cumme {{foo|bar=1|bar=2}} o {{foo|bar|1=baz}}.", "expensive-parserfunction-warning": "Fà attenziò: Sta vosce tène 'nu sbuenne de funziune de chiamate a l'analizzatore.\n\nAvessere a essere mene de $2 {{PLURAL:$2|chiamate|chiamate}}, 'nvece mò {{PLURAL:$1|ste $1 chiamate|ne stonne $1 chiamate}}.", @@ -1297,6 +1299,7 @@ "uploaded-script-svg": "Acchiate elemende pe script \"$1\" jndr'à 'u file SVG carecate.", "uploaded-hostile-svg": "Acchiate 'nu CSS insecure ndr'à l'elemende de stile d'u file SVG carecate.", "uploaded-event-handler-on-svg": "'A 'mbostazione de le attribute de gestione de l'evende $1=\"$2\" non ge se pò ffà cu le file SVG.", + "uploaded-href-attribute-svg": "le attribbute href <$1 $2=\"$3\"> cu le destinaziune de fore (p.e. http://, javascript:, etc) non ge se ponne mettere jndr'à le file SVG.", "uploadscriptednamespace": "Stu file SVG tène 'nu namespace illegale '$1'", "uploadinvalidxml": "L'XML jndr'à 'u file carecate non ge pò essere analizzate.", "uploadvirus": "Alanga toje, 'u file condiene 'nu virus! Dettaglie: $1", @@ -3490,5 +3493,7 @@ "special-characters-group-khmer": "Khmer", "special-characters-title-endash": "trattine en", "special-characters-title-emdash": "trattine em", - "special-characters-title-minus": "segne mene" + "special-characters-title-minus": "segne mene", + "mw-widgets-titleinput-description-new-page": "'a pàgene non g'esiste angore", + "mw-widgets-titleinput-description-redirect": "redirezionate sus a $1" } diff --git a/languages/i18n/sk.json b/languages/i18n/sk.json index 96d221da65..9c502423e0 100644 --- a/languages/i18n/sk.json +++ b/languages/i18n/sk.json @@ -995,7 +995,8 @@ "prefs-tokenwatchlist": "Token", "prefs-diffs": "Rozdiely", "prefs-help-prefershttps": "Táto voľba sa prejaví pri vašom ďalšom prihlásení.", - "email-address-validity-valid": "Formát e-mailovej adresa vyzerá byť správny", + "prefswarning-warning": "Vykonali ste zmeny v nastaveniach, ktoré zatiaľ nie sú uložené. Ak túto stránku opustíte bez kliknutia na „$1“, vaše nastavenia sa neaktualizujú.", + "email-address-validity-valid": "Formát e-mailovej adresy sa zdá byť správny", "email-address-validity-invalid": "Zadajte platnú e-mailovú adresu", "userrights": "Spravovanie používateľských práv", "userrights-lookup-user": "Spravovať skupiny používateľov", @@ -1068,6 +1069,7 @@ "right-browsearchive": "Hľadať v zmazaných stránkach", "right-undelete": "Obnoviť zmazanú stránku", "right-suppressrevision": "Kontrolovať a obnovovať revízie skryté správcom", + "right-viewsuppressed": "Zobrazovať revízie skryté pred všetkými používateľmi", "right-suppressionlog": "Zobrazovať súkromné záznamy", "right-block": "Blokovať ostatných používateľov", "right-blockemail": "Zablokovať používateľovi posielanie emailu", @@ -1078,6 +1080,7 @@ "right-protect": "Meniť úroveň zamknutia a upravovať kaskádovito zamknuté stránky", "right-editprotected": "Upravovať stránky zamknuté ako „{{int:protect-level-sysop}}“", "right-editsemiprotected": "Upravovať stránky zamknuté ako „{{int:protect-level-autoconfirmed}}“", + "right-editcontentmodel": "Upravovať model obsahu stránky", "right-editinterface": "Upravovať správy používateľského rozhrania", "right-editusercssjs": "Upravovať CSS a JS súbory ostatných používateľov", "right-editusercss": "Upravovať CSS súbory ostatných používateľov", @@ -1150,6 +1153,7 @@ "action-viewmywatchlist": "zobraziť zoznam sledovaných stránok", "action-viewmyprivateinfo": "zobraziť vaše súkromné údaje", "action-editmyprivateinfo": "upraviť vaše súkromné údaje", + "action-editcontentmodel": "upraviť model obsahu stránky", "action-managechangetags": "vytvorte a odstráňte značky z databázy", "nchanges": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}", "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|od poslednej návštevy}}", @@ -1527,6 +1531,7 @@ "unusedimages": "Nepoužité obrázky", "wantedcategories": "Žiadané kategórie", "wantedpages": "Žiadané stránky", + "wantedpages-summary": "Zoznam neexistujúcich stránok, na ktoré smeruje najviac odkazov, s výnimkou stránok, na ktoré odkazujú len presmerovania. Pre zoznam neexistujúcich stránok, na ktoré odkazujú presmerovania, pozri [[{{#special:BrokenRedirects}}|zoznam pokazených presmerovaní]].", "wantedpages-badtitle": "Neplatný názov vo výsledkoch: $1", "wantedfiles": "Žiadané súbory", "wantedfiletext-cat": "Nasledovné súbory sa používajú, ale nie sú k dispozícii. Súbory z cudzích repozitárov môžu byť uvedené aj napriek tomu, že existujú. Takéto falošné poplachy budú prečiarknuté. Okrem toho stránky, ktoré obsahujú vložené súbory, ktoré nie sú k dispozícii sú uvedené na [[:$1]].", @@ -1548,17 +1553,20 @@ "deadendpagestext": "Nasledujúce stránky neodkazujú na žiadne iné stránky na {{GRAMMAR:lokál|{{SITENAME}}}}.", "protectedpages": "Zamknuté stránky", "protectedpages-indef": "Zamknutia iba na neurčito", + "protectedpages-summary": "Táto stránka obsahuje zoznam existujúcich stránok, ktoré sú momentálne zamknuté. Zoznam názvov zamknutých proti vytvoreniu nájdete na stránke [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].", "protectedpages-cascade": "Iba kaskádové zamykanie", "protectedpages-noredirect": "Skryť presmerovania", "protectedpagesempty": "Momentálne nie sú žiadne stránky s týmito parametrami zamknuté.", "protectedpages-timestamp": "Dátum a čas", "protectedpages-page": "Stránka", "protectedpages-expiry": "Koniec platnosti", + "protectedpages-performer": "Zamkol", "protectedpages-params": "Nastavenie zámku", "protectedpages-reason": "Dôvod", "protectedpages-unknown-timestamp": "Neznáme", "protectedpages-unknown-performer": "Neznámy redaktor", "protectedtitles": "Zamknuté názvy", + "protectedtitles-summary": "Táto stránka obsahuje zoznam názvov, ktoré sú momentálne zamknuté proti vytvoreniu. Zoznam existujúcich zamknutých stránok nájdete na stránke [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].", "protectedtitlesempty": "Tieto parametre momentálne nezamykajú žiadne názvy stránok.", "listusers": "Zoznam používateľov", "listusers-editsonly": "Vynechať používateľov bez úprav", diff --git a/languages/i18n/sl.json b/languages/i18n/sl.json index 6a47a44de9..903bce18a5 100644 --- a/languages/i18n/sl.json +++ b/languages/i18n/sl.json @@ -632,6 +632,7 @@ "yourdiff": "Primerjava", "copyrightwarning": "Vsi prispevki k {{GRAMMAR:dajalnik|{{SITENAME}}}} se obravnavajo kot objave pod pogoji $2 (za podrobnosti glej $1). Če niste pripravljeni na neusmiljeno urejanje in prosto razširjanje vašega gradiva, ga ne prispevajte.
\nPoleg tega zagotavljate, da ste prispevke napisali oziroma ustvarili sami ali pa prepisali iz javno dostopnega ali podobnega prostega vira.\n'''Ne dodajajte avtorsko zaščitenega dela brez dovoljenja!'''", "copyrightwarning2": "Vedite, da lahko drugi urejevalci urejajo, spremenijo ali odstranijo kateri koli prispevek k {{GRAMMAR:dajalnik|{{SITENAME}}}}.\nČe niste pripravljeni na neusmiljeno urejanje svojega gradiva, ga ne objavljajte tukaj.
\nPoleg tega jamčite, da ste prispevke napisali oziroma ustvarili sami ali pa prepisali iz vira v javni lasti ali podobnega prostega vira (za podrobnosti glej $1).\n'''Ne objavljajte avtorsko zaščitenega gradiva brez dovoljenja!'''", + "editpage-cannot-use-custom-model": "Modela vsebine strani ni mogoče spremeniti.", "longpageerror": "'''Napaka: Predloženo besedilo je dolgo $1 {{PLURAL:$1|kilobajt|kilobajta|kilobajte|kilobajtov}}, s čimer presega največjo dovoljeno dolžino $2 {{PLURAL:$2|kilobajta|kilobajtov|kilobajtov|kilobajtov}}.'''\nZato ga ni mogoče shraniti.", "readonlywarning": "Opozorilo: Zbirka podatkov je zaradi vzdrževanja začasno zaklenjena, kar pomeni, da sprememb trenutno ne morete shraniti.\nProsimo, prenesite besedilo v urejevalnik in ga dodajte pozneje.\n\nSistemski skrbnik, ki jo je zaklenil, je podal naslednjo razlago: $1", "protectedpagewarning": "'''Opozorilo: Stran je bila zaklenjena in jo lahko urejajo le uporabniki z administratorskimi pravicami.'''\nZadnji vnos v dnevnik je naveden spodaj:", @@ -3331,5 +3332,7 @@ "special-characters-group-khmer": "Kmerski", "special-characters-title-endash": "navaden pomišljaj", "special-characters-title-emdash": "dolgi pomišljaj", - "special-characters-title-minus": "znak za minus" + "special-characters-title-minus": "znak za minus", + "mw-widgets-titleinput-description-new-page": "stran še ne obstaja", + "mw-widgets-titleinput-description-redirect": "preusmeritev na $1" } diff --git a/languages/i18n/sr-ec.json b/languages/i18n/sr-ec.json index 7061a50230..89f4154306 100644 --- a/languages/i18n/sr-ec.json +++ b/languages/i18n/sr-ec.json @@ -3329,5 +3329,7 @@ "special-characters-group-gujarati": "гуџарати", "special-characters-group-thai": "тајландски", "special-characters-group-lao": "лаоски", - "special-characters-group-khmer": "кмерски" + "special-characters-group-khmer": "кмерски", + "mw-widgets-titleinput-description-new-page": "страница још увек не постоји", + "mw-widgets-titleinput-description-redirect": "преусмерава на $1" } diff --git a/languages/i18n/sv.json b/languages/i18n/sv.json index c42aa89791..a3415268cb 100644 --- a/languages/i18n/sv.json +++ b/languages/i18n/sv.json @@ -687,6 +687,7 @@ "yourdiff": "Skillnader", "copyrightwarning": "Observera att alla bidrag till {{SITENAME}} är att betrakta som utgivna under $2 (se $1 för detaljer). Om du inte vill att din text ska redigeras eller kopieras efter andras gottfinnande skall du inte skriva något här.
\nDu lovar oss också att du skrev texten själv, eller kopierade från kulturellt allmängods som inte skyddas av upphovsrätt, eller liknande källor. '''LÄGG INTE UT UPPHOVSRÄTTSSKYDDAT MATERIAL HÄR UTAN TILLÅTELSE!'''", "copyrightwarning2": "Observera att alla bidrag till {{SITENAME}} kan komma att redigeras, ändras, eller tas bort av andra deltagare. Om du inte vill se din text förändrad efter andras gottfinnade skall du inte skriva in någon text här.
\nDu lovar oss också att du skrev texten själv, eller kopierade från kulturellt allmängods som inte skyddas av upphovsrätt, eller liknande källor - se $1 för detaljer.\n'''LÄGG INTE UT UPPHOVSRÄTTSSKYDDAT MATERIAL HÄR UTAN TILLÅTELSE!'''", + "editpage-cannot-use-custom-model": "Innehållsmodellen för denna sida kan inte ändras.", "longpageerror": "'''FEL: Texten som du försöker spara är {{PLURAL:$1|en kilobyte|$1 kilobyte}}, vilket är mer än det maximalt tillåtna {{PLURAL:$2|en kilobyte|$2 kilobyte}}.'''\nDen kan inte sparas.", "readonlywarning": "'''VARNING: Databasen är tillfälligt låst för underhåll. Du kommer inte att kunna spara dina ändringar just nu.\nDet kan vara klokt att kopiera texten till ett textdokument som sparas på din dator tills vidare.'''\n\nAdministratören som låste databasen gav följande förklaring: $1", "protectedpagewarning": "'''Varning: Den här sidan har låsts så att bara användare med administratörsrättigheter kan redigera den.'''\nDen senaste loggposten tillhandahålls nedan som referens:", @@ -3386,5 +3387,7 @@ "special-characters-group-khmer": "Khmer", "special-characters-title-endash": "tankstreck", "special-characters-title-emdash": "långt tankstreck", - "special-characters-title-minus": "minustecken" + "special-characters-title-minus": "minustecken", + "mw-widgets-titleinput-description-new-page": "sidan existerar inte ännu", + "mw-widgets-titleinput-description-redirect": "omdirigerar till $1" } diff --git a/languages/i18n/uk.json b/languages/i18n/uk.json index 3ec0241e12..f1b5c3f323 100644 --- a/languages/i18n/uk.json +++ b/languages/i18n/uk.json @@ -687,6 +687,7 @@ "yourdiff": "Відмінності", "copyrightwarning": "Зверніть увагу, що будь-які додавання і зміни до {{grammar:genitive|{{SITENAME}}}} розглядаються як випущені на умовах ліцензії $2 (детальніше див. $1).\nЯкщо ви не бажаєте, щоб написане вами безжально редагувалось і розповсюджувалося за бажанням будь-кого, не пишіть тут.
\nВи також підтверджуєте, що написане вами тут належить вам або взяте з джерела, що є суспільним надбанням чи подібного вільного джерела.\n'''Не публікуйте тут без дозволу матеріали, захищені авторським правом!'''", "copyrightwarning2": "Будь ласка, зверніть увагу, що всі зміни, внесені вами до {{SITENAME}}, можуть редагуватися, доповнюватися або вилучатися іншими користувачами.\nЯкщо ви не бажаєте, щоб написане вами безжально редагувалось — не пишіть тут.
\nВи також підтверджуєте, що наведене тут написано вами особисто або запозичено з джерела, яке є суспільним надбанням, або подібного вільного джерела (див. $1).
\n'''Не публікуйте тут без дозволу матеріали, захищені авторським правом!'''", + "editpage-cannot-use-custom-model": "Модель вмісту цієї сторінки не може бути змінена.", "longpageerror": "'''Помилка: Поданий вами текст становить $1 {{PLURAL:$1|кілобайт|кілобайти|кілобайтів}}, що більше за встановлену межу у {{PLURAL:$2|кілобайт|кілобайти|кілобайтів}}.'''\nЙого неможливо зберегти.", "readonlywarning": "'''Попередження: База даних заблокована на обслуговування, тому, на даний момент, ви не можете записати ваші зміни.\nМожливо, вам варто скопіювати текст у файл на вашому комп'ютері й зберегти його на пізніше.'''\n\nАдміністратор, що заблокував базу даних, залишив наступне пояснення: $1", "protectedpagewarning": "'''Попередження: Ця сторінка була захищена від змін так, що тільки користувачі з правами адміністратора можуть її редагувати.'''\nОстанній запис журналу наведений нижче для довідки:", @@ -1025,7 +1026,7 @@ "badsig": "Неправильний підпис.\nПеревірте коректність HTML-тегів.", "badsiglength": "Ваш підпис дуже довгий.\nПовинно бути не більше $1 {{PLURAL:$1|символу|символів|символів}}.", "yourgender": "Стать:", - "gender-unknown": "Не визначена", + "gender-unknown": "Згадуючи Вас, програмне забезпечення використовуватиме по змозі гендерно нейтральні слова", "gender-male": "Чоловіча", "gender-female": "Жіноча", "prefs-help-gender": "Задання цього параметру — необов'язкове. Застосовується рушієм у тих звертаннях до користувача, які залежать від статі.\nЦя інформація загальнодоступна.", @@ -1605,7 +1606,6 @@ "nmembers": "$1 {{PLURAL:$1|об'єкт|об'єкти|об'єктів}}", "nmemberschanged": "$1 → $2 {{PLURAL:$2|член|члени|членів}}", "nrevisions": "$1 {{PLURAL:$1|версія|версії|версій}}", - "nviews": "$1 {{PLURAL:$1|перегляд|перегляди|переглядів}}", "nimagelinks": "Використовується на $1 {{PLURAL:$1|1=сторінці|сторінках}}", "ntransclusions": "використовується на $1 {{PLURAL:$1|1=сторінці|сторінках}}", "specialpage-empty": "Запит не дав результатів.", @@ -3536,5 +3536,7 @@ "special-characters-group-khmer": "Кхмерські", "special-characters-title-endash": "коротке тире", "special-characters-title-emdash": "довге тире", - "special-characters-title-minus": "мінус" + "special-characters-title-minus": "мінус", + "mw-widgets-titleinput-description-new-page": "сторінка ще не існує", + "mw-widgets-titleinput-description-redirect": "перенаправлення на $1" } diff --git a/languages/i18n/zh-hans.json b/languages/i18n/zh-hans.json index 0e136c5525..7b1b65da8b 100644 --- a/languages/i18n/zh-hans.json +++ b/languages/i18n/zh-hans.json @@ -2980,7 +2980,7 @@ "watchlistedit-normal-done": "已从你的监视列表删除$1个标题:", "watchlistedit-raw-title": "编辑原始监视列表", "watchlistedit-raw-legend": "编辑原始监视列表", - "watchlistedit-raw-explain": "您的监视列表中的标题在下面显示,同时也可以可以通过编辑这个表去加入以及移除标题;一行一个标题。当完成以后,点击{{int:Watchlistedit-raw-submit}}。您也可以使用[[Special:EditWatchlist|标准编辑器]]。", + "watchlistedit-raw-explain": "您的监视列表中的标题在下面显示,并可通过编辑此表以添加或移除标题;每行一个标题。当完成以后,点击“{{int:Watchlistedit-raw-submit}}”。您也可以[[Special:EditWatchlist|使用标准编辑器]]。", "watchlistedit-raw-titles": "标题:", "watchlistedit-raw-submit": "更新监视列表", "watchlistedit-raw-done": "您的监视列表已经更新。", @@ -3440,5 +3440,7 @@ "special-characters-group-khmer": "高棉语字母", "special-characters-title-endash": "短划线", "special-characters-title-emdash": "长划线", - "special-characters-title-minus": "减号" + "special-characters-title-minus": "减号", + "mw-widgets-titleinput-description-new-page": "页面不存在", + "mw-widgets-titleinput-description-redirect": "重定向至$1" } diff --git a/languages/messages/MessagesBs.php b/languages/messages/MessagesBs.php index 6fda8084a1..e553b7f0cd 100644 --- a/languages/messages/MessagesBs.php +++ b/languages/messages/MessagesBs.php @@ -84,7 +84,7 @@ $specialPageAliases = array( 'Mostlinkedcategories' => array( 'Najviše_povezane_kategorije' ), 'Mostlinkedtemplates' => array( 'Najviše_povezani_šabloni' ), 'Mostrevisions' => array( 'Najviše_uređivane_stranice' ), - 'Movepage' => array( 'PreusmjeriStranicu' ), + 'Movepage' => array( 'Premjesti_stranicu', 'PreusmjeriStranicu' ), 'Mycontributions' => array( 'MojiDoprinosi' ), 'Mypage' => array( 'MojaStranica' ), 'Mytalk' => array( 'MojRazgovor' ), diff --git a/maintenance/convertExtensionToRegistration.php b/maintenance/convertExtensionToRegistration.php index b7fe80b36d..3e86d8a6d8 100644 --- a/maintenance/convertExtensionToRegistration.php +++ b/maintenance/convertExtensionToRegistration.php @@ -31,7 +31,7 @@ class ConvertExtensionToRegistration extends Maintenance { * @var array */ protected $noLongerSupportedGlobals = array( - 'SpecialPageGroups' => 'deprecated', + 'SpecialPageGroups' => 'deprecated', // Deprecated 1.21, removed in 1.26 ); /** diff --git a/maintenance/language/zhtable/simpphrases.manual b/maintenance/language/zhtable/simpphrases.manual index f1ce577772..3477c0a9a6 100644 --- a/maintenance/language/zhtable/simpphrases.manual +++ b/maintenance/language/zhtable/simpphrases.manual @@ -38,7 +38,6 @@ 乾岗 乾巛 乾州 -乾式 乾录 乾律 乾德 diff --git a/maintenance/language/zhtable/toCN.manual b/maintenance/language/zhtable/toCN.manual index 6f2dd39526..a3ea91c74b 100644 --- a/maintenance/language/zhtable/toCN.manual +++ b/maintenance/language/zhtable/toCN.manual @@ -58,7 +58,9 @@ 堂姊 堂姐 學姊 学姐 乾姊 干姐 +清澈 清澈 #分詞用 澈底 彻底 +仲介 中介 卯足 铆足 逕庭 径庭 逕到 径到 @@ -2662,8 +2664,8 @@ A型肝炎 甲型肝炎 電腦程式 计算机程序 應用程式 应用程序 雷射 激光 -鱼雷射 鱼雷射 -魚雷射 鱼雷射 +鱼雷 鱼雷 #分詞用 +魚雷 鱼雷 尖峰時間 高峰时间 尖峰時段 高峰时段 咖哩 咖喱 diff --git a/maintenance/language/zhtable/toTW.manual b/maintenance/language/zhtable/toTW.manual index 6e3a7b50fd..61ffc4ddd6 100644 --- a/maintenance/language/zhtable/toTW.manual +++ b/maintenance/language/zhtable/toTW.manual @@ -165,6 +165,7 @@ 冲着 衝著 干着 幹著 干着急 干著急 +对着干 對著幹 斗着 鬥著 面包着 面包著 徵狀 症狀 diff --git a/maintenance/language/zhtable/tradphrases.manual b/maintenance/language/zhtable/tradphrases.manual index 464f455de0..bc4bff8bb2 100644 --- a/maintenance/language/zhtable/tradphrases.manual +++ b/maintenance/language/zhtable/tradphrases.manual @@ -230,7 +230,6 @@ 乾村沙 乾暖 乾料 -乾敲梆子不賣油 乾支支 乾支剌 乾擦 @@ -262,7 +261,6 @@ 幹人 乾產 乾喬 -夯幹 大目乾連 國之楨榦 唇乾 @@ -278,7 +276,6 @@ 顛乾倒坤 強幹 乾眼 -幹的停當 井幹 乾巴 偎乾 @@ -735,11 +732,9 @@ 臧穀亡羊 種穀 颳雪 -刮風下雪倒便宜 广部 -亂鬨不過來 +亂鬨鬨 斗鬨 -亂鬨 開鬨 花鬨 鬨動 @@ -810,7 +805,7 @@ 印纍綬若 灕湘 灕然 -澤滲灕而下降 +滲灕 裏勾外連 水里溪 二里頭 @@ -932,7 +927,6 @@ 擀麵 過水麵 蕎麥麵 -巧婦做不得無麵餺飥 削麵 小米麵 壯麵 @@ -970,6 +964,7 @@ 麵點師 麵點、 、麵點 +麵製品 冷面相 糞穢衊面 僕僕 @@ -1135,6 +1130,7 @@ 鬆元音 鬆喉 鬆化 +很鬆 囉囉囌囌 囉囌 骨罈 @@ -1303,7 +1299,6 @@ 幹事 幹什麼 幹細胞 -配水幹管 口燥唇乾 舌乾唇焦 不食乾腊 @@ -1313,12 +1308,21 @@ 乾物 乾食 乾鍋 +自乾五 +不乾膠 楨幹 新幹縣 誰幹的 +他幹的 +們幹的 +人幹的 +幹的事 +幹的好事 得力幹將 黑幹將 的幹將 +幹大事 +對着幹 李連杰 周杰 杰倫 @@ -2174,6 +2178,10 @@ 鬥獸 鬥龍 鬥勇 +鬥狗 +鬥蛐 +鬥垮 +鬥敗 石樑 木樑 藏歷史 @@ -2430,8 +2438,6 @@ 母醜 一齣子 齣兒 -獃串了皮 -占便宜的是獃 丰標 丰姿 丰韻 @@ -3524,6 +3530,8 @@ 仲裁制 獨裁制 恒生 +恒基 +恒隆 嚴云農 伊東怜 衛後莊公 @@ -3549,6 +3557,7 @@ 留長髮 髮披肩 髮及腰 +飄髮自由女神 後天 學家 游離 @@ -3656,7 +3665,6 @@ 誇稱 誇讚 讚嘆 -繼承制 布穀鳥 黎克特制 筆桿 @@ -3788,6 +3796,7 @@ 麻將蓆 被廢後 蒸製 +烹製 體徵 綜合徵 价川 @@ -3888,3 +3897,4 @@ 菜餚 梁啓超 改制成 +王添灯 diff --git a/maintenance/language/zhtable/tradphrases_exclude.manual b/maintenance/language/zhtable/tradphrases_exclude.manual index 5be4241d7c..18eab856fc 100644 --- a/maintenance/language/zhtable/tradphrases_exclude.manual +++ b/maintenance/language/zhtable/tradphrases_exclude.manual @@ -685,3 +685,6 @@ 迴向 迴音 美製 +麵灰 +麵價 +承製 diff --git a/resources/src/mediawiki.less/mediawiki.ui/mixins.less b/resources/src/mediawiki.less/mediawiki.ui/mixins.less index 2d68457204..db983a78d7 100644 --- a/resources/src/mediawiki.less/mediawiki.ui/mixins.less +++ b/resources/src/mediawiki.less/mediawiki.ui/mixins.less @@ -33,13 +33,13 @@ // Button styling // ---------------------------------------------------------------------------- -.button-colors(@bgColor) { +.button-colors(@bgColor, @highlightColor) { background: @bgColor; &:hover { // The inner bottom bevel should match the active background color. box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%); - border-bottom-color: mix(#000, @bgColor, 20%); + border-bottom-color: @highlightColor; } &:focus { @@ -55,15 +55,12 @@ &:active, &.mw-ui-checked { - // lessphp doesn't implement shade (https://github.com/leafo/lessphp/issues/528); - // it passes it through, then ResourceLoader drops it. - // background: shade(@bgColor, 20%); - background: mix(#000, @bgColor, 20%); + background: @highlightColor; box-shadow: none; } } -.button-colors(@bgColor) when (lightness(@bgColor) >= 70%) { +.button-colors(@bgColor, @highlightColor) when (lightness(@bgColor) >= 70%) { color: @colorButtonText; border: 1px solid @colorGray12; @@ -86,7 +83,7 @@ } } -.button-colors(@bgColor) when (lightness(@bgColor) < 70%) { +.button-colors(@bgColor, @highlightColor) when (lightness(@bgColor) < 70%) { color: #fff; // border of the same color as background so that light background and // dark background buttons are the same height and width @@ -106,7 +103,7 @@ } } -.button-colors-quiet(@textColor) { +.button-colors-quiet(@textColor, @highlightColor) { // Quiet buttons all start gray, and reveal // constructive/progressive/destructive color on hover and active. color: @colorButtonText; @@ -118,9 +115,7 @@ &:active, &.mw-ui-checked { - // lessphp doesn't implement shade, see above - // color: shade(@textColor, 20%); - color: mix(#000, @textColor, 20%); + color: @highlightColor; } &:disabled { diff --git a/resources/src/mediawiki.less/mediawiki.ui/variables.less b/resources/src/mediawiki.less/mediawiki.ui/variables.less index f6bf382956..8ffc6ed41a 100644 --- a/resources/src/mediawiki.less/mediawiki.ui/variables.less +++ b/resources/src/mediawiki.less/mediawiki.ui/variables.less @@ -21,12 +21,15 @@ // Semantic background colors // Blue; for contextual use of a continuing action @colorProgressive: #347bff; +@colorProgressiveHighlight: #2962CC; // Green; for contextual use of a positive finalizing action @colorConstructive: #00af89; +@colorConstructiveHighlight: #008C6D; // Orange; for contextual use of returning to a past action @colorRegressive: #FF5D00; // Red; for contextual use of a negative action of high severity @colorDestructive: #d11d13; +@colorDestructiveHighlight: #A7170F; // Orange; for contextual use of a potentially negative action of medium severity @colorMediumSevere: #FF5D00; // Yellow; for contextual use of a potentially negative action of low severity @@ -41,6 +44,7 @@ @colorText: @colorGray2; @colorTextLight: @colorGray6; @colorButtonText: @colorGray5; +@colorButtonTextHighlight: @colorGray7; @colorDisabledText: @colorGray12; @colorErrorText: #CC0000; diff --git a/resources/src/mediawiki.skinning/elements.css b/resources/src/mediawiki.skinning/elements.css index 698603467c..cbc97abc91 100644 --- a/resources/src/mediawiki.skinning/elements.css +++ b/resources/src/mediawiki.skinning/elements.css @@ -194,15 +194,13 @@ code { padding: 1px 4px; } -pre, .mw-code { +pre, +.mw-code { color: black; background-color: #f9f9f9; border: 1px solid #ddd; padding: 1em; - /* @noflip */ - direction: ltr; - unicode-bidi: embed; - /* Wrap lines in overflow. T103780 */ + /* Wrap lines in overflow. T2260, T103780 */ white-space: pre-wrap; } diff --git a/resources/src/mediawiki.special/mediawiki.special.version.css b/resources/src/mediawiki.special/mediawiki.special.version.css index b4efa9a58a..5b259e70ab 100644 --- a/resources/src/mediawiki.special/mediawiki.special.version.css +++ b/resources/src/mediawiki.special/mediawiki.special.version.css @@ -1,7 +1,8 @@ /*! * Styling for Special:Version */ -.mw-version-ext-name { +.mw-version-ext-name, +.mw-version-library-name { font-weight: bold; } diff --git a/resources/src/mediawiki.ui/components/buttons.less b/resources/src/mediawiki.ui/components/buttons.less index f88f3ee6b9..53e13b7564 100644 --- a/resources/src/mediawiki.ui/components/buttons.less +++ b/resources/src/mediawiki.ui/components/buttons.less @@ -47,7 +47,7 @@ zoom: 1; // Container styling - .button-colors(#FFF); + .button-colors(#FFF, #CCC); border-radius: @borderRadius; min-width: 4em; @@ -135,10 +135,10 @@ // Styleguide 2.1.1. &.mw-ui-progressive, &.mw-ui-primary { - .button-colors(@colorProgressive); + .button-colors(@colorProgressive, @colorProgressiveHighlight); &.mw-ui-quiet { - .button-colors-quiet(@colorProgressive); + .button-colors-quiet(@colorProgressive, @colorProgressiveHighlight); } } @@ -158,10 +158,10 @@ // // Styleguide 2.1.2. &.mw-ui-constructive { - .button-colors(@colorConstructive); + .button-colors(@colorConstructive, @colorConstructiveHighlight); &.mw-ui-quiet { - .button-colors-quiet(@colorConstructive); + .button-colors-quiet(@colorConstructive, @colorConstructiveHighlight); } } @@ -180,10 +180,10 @@ // // Styleguide 2.1.3. &.mw-ui-destructive { - .button-colors(@colorDestructive); + .button-colors(@colorDestructive, @colorDestructiveHighlight); &.mw-ui-quiet { - .button-colors-quiet(@colorDestructive); + .button-colors-quiet(@colorDestructive, @colorDestructiveHighlight); } } @@ -220,7 +220,7 @@ background: transparent; border: none; text-shadow: none; - .button-colors-quiet(@colorButtonText); + .button-colors-quiet(@colorButtonText, @colorButtonTextHighlight); &:hover, &:focus { diff --git a/resources/src/mediawiki/mediawiki.js b/resources/src/mediawiki/mediawiki.js index ec3c0c3a25..2c88e93654 100644 --- a/resources/src/mediawiki/mediawiki.js +++ b/resources/src/mediawiki/mediawiki.js @@ -595,7 +595,6 @@ /** * Write a message the console's warning channel. - * Also logs a stacktrace for easier debugging. * Actions not supported by the browser console are silently ignored. * * @param {string...} msg Messages to output to console @@ -604,9 +603,6 @@ var console = window.console; if ( console && console.warn && console.warn.apply ) { console.warn.apply( console, arguments ); - if ( console.trace ) { - console.trace(); - } } }; @@ -1357,7 +1353,16 @@ $.each( dependencies, function ( idx, module ) { var state = mw.loader.getState( module ); + // Only queue modules that are still in the initial 'registered' state + // (not ones already loading, ready or error). if ( state === 'registered' && $.inArray( module, queue ) === -1 ) { + // Private modules must be embedded in the page. Don't bother queuing + // these as the server will deny them anyway (T101806). + if ( registry[module].group === 'private' ) { + registry[module].state = 'error'; + handlePending( module ); + return; + } queue.push( module ); if ( async ) { registry[module].async = true; diff --git a/tests/phpunit/data/media/2_webp_a.webp b/tests/phpunit/data/media/2_webp_a.webp new file mode 100644 index 0000000000..8764f066b9 Binary files /dev/null and b/tests/phpunit/data/media/2_webp_a.webp differ diff --git a/tests/phpunit/data/media/2_webp_ll.webp b/tests/phpunit/data/media/2_webp_ll.webp new file mode 100644 index 0000000000..5794bbf27d Binary files /dev/null and b/tests/phpunit/data/media/2_webp_ll.webp differ diff --git a/tests/phpunit/data/media/webp_animated.webp b/tests/phpunit/data/media/webp_animated.webp new file mode 100644 index 0000000000..25c6a4dd6c Binary files /dev/null and b/tests/phpunit/data/media/webp_animated.webp differ diff --git a/tests/phpunit/includes/libs/composer/ComposerLockTest.php b/tests/phpunit/includes/libs/composer/ComposerLockTest.php index b5fd5f6e71..cac3b10145 100644 --- a/tests/phpunit/includes/libs/composer/ComposerLockTest.php +++ b/tests/phpunit/includes/libs/composer/ComposerLockTest.php @@ -27,34 +27,95 @@ class ComposerLockTest extends MediaWikiTestCase { 'wikimedia/cdb' => array( 'version' => '1.0.1', 'type' => 'library', + 'licenses' => array( 'GPL-2.0' ), + 'authors' => array( + array( + 'name' => 'Tim Starling', + 'email' => 'tstarling@wikimedia.org', + ), + array( + 'name' => 'Chad Horohoe', + 'email' => 'chad@wikimedia.org', + ), + ), + 'description' => 'Constant Database (CDB) wrapper library for PHP. Provides pure-PHP fallback when dba_* functions are absent.', ), 'cssjanus/cssjanus' => array( 'version' => '1.1.1', 'type' => 'library', + 'licenses' => array( 'Apache-2.0' ), + 'authors' => array(), + 'description' => 'Convert CSS stylesheets between left-to-right and right-to-left.', ), 'leafo/lessphp' => array( 'version' => '0.5.0', 'type' => 'library', + 'licenses' => array( 'MIT', 'GPL-3.0' ), + 'authors' => array( + array( + 'name' => 'Leaf Corcoran', + 'email' => 'leafot@gmail.com', + 'homepage' => 'http://leafo.net', + ), + ), + 'description' => 'lessphp is a compiler for LESS written in PHP.', ), 'psr/log' => array( 'version' => '1.0.0', 'type' => 'library', + 'licenses' => array( 'MIT' ), + 'authors' => array( + array( + 'name' => 'PHP-FIG', + 'homepage' => 'http://www.php-fig.org/', + ), + ), + 'description' => 'Common interface for logging libraries', ), 'oojs/oojs-ui' => array( 'version' => '0.6.0', 'type' => 'library', + 'licenses' => array( 'MIT' ), + 'authors' => array(), + 'description' => '', ), 'composer/installers' => array( 'version' => '1.0.19', 'type' => 'composer-installer', + 'licenses' => array( 'MIT' ), + 'authors' => array( + array( + 'name' => 'Kyle Robinson Young', + 'email' => 'kyle@dontkry.com', + 'homepage' => 'https://github.com/shama', + ), + ), + 'description' => 'A multi-framework Composer library installer', ), 'mediawiki/translate' => array( 'version' => '2014.12', 'type' => 'mediawiki-extension', + 'licenses' => array( 'GPL-2.0+' ), + 'authors' => array( + array( + 'name' => 'Niklas Laxström', + 'email' => 'niklas.laxstrom@gmail.com', + 'role' => 'Lead nitpicker', + ), + array( + 'name' => 'Siebrand Mazeland', + 'email' => 's.mazeland@xs4all.nl', + 'role' => 'Developer', + ), + ), + 'description' => 'The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software', ), 'mediawiki/universal-language-selector' => array( 'version' => '2014.12', 'type' => 'mediawiki-extension', + 'licenses' => array( 'GPL-2.0+', 'MIT' ), + 'authors' => array(), + 'description' => 'The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.', ), ), $lock->getInstalledDependencies(), false, true ); } diff --git a/tests/phpunit/includes/media/WebPTest.php b/tests/phpunit/includes/media/WebPTest.php new file mode 100644 index 0000000000..d36710a34f --- /dev/null +++ b/tests/phpunit/includes/media/WebPTest.php @@ -0,0 +1,127 @@ +tempFileName = tempnam( wfTempDir(), 'WEBP' ); + } + public function tearDown() { + parent::tearDown(); + unlink( $this->tempFileName ); + } + /** + * @dataProvider provideTestExtractMetaData + */ + public function testExtractMetaData( $header, $expectedResult ) { + // Put header into file + file_put_contents( $this->tempFileName, $header ); + + $this->assertEquals( $expectedResult, WebPHandler::extractMetadata( $this->tempFileName ) ); + } + public function provideTestExtractMetaData() { + return array( + // Files from https://developers.google.com/speed/webp/gallery2 + array( "\x52\x49\x46\x46\x90\x68\x01\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x83\x68\x01\x00\x2F\x8F\x01\x4B\x10\x8D\x38\x6C\xDB\x46\x92\xE0\xE0\x82\x7B\x6C", + array( 'compression' => 'lossless', 'width' => 400, 'height' => 301 ) ), + array( "\x52\x49\x46\x46\x64\x5B\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x8F\x01\x00\x2C\x01\x00\x41\x4C\x50\x48\xE5\x0E", + array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 400, 'height' => 301) ), + array( "\x52\x49\x46\x46\xA8\x72\x00\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x9B\x72\x00\x00\x2F\x81\x81\x62\x10\x8D\x40\x8C\x24\x39\x6E\x73\x73\x38\x01\x96", + array( 'compression' => 'lossless', 'width' => 386, 'height' => 395 ) ), + array( "\x52\x49\x46\x46\xE0\x42\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x81\x01\x00\x8A\x01\x00\x41\x4C\x50\x48\x56\x10", + array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 386, 'height' => 395 ) ), + array( "\x52\x49\x46\x46\x70\x61\x02\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x63\x61\x02\x00\x2F\x1F\xC3\x95\x10\x8D\xC8\x72\xDB\xC8\x92\x24\xD8\x91\xD9\x91", + array( 'compression' => 'lossless', 'width' => 800, 'height' => 600 ) ), + array( "\x52\x49\x46\x46\x1C\x1D\x01\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x1F\x03\x00\x57\x02\x00\x41\x4C\x50\x48\x25\x8B", + array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 800, 'height' => 600 ) ), + array( "\x52\x49\x46\x46\xFA\xC5\x00\x00\x57\x45\x42\x50\x56\x50\x38\x4C\xEE\xC5\x00\x00\x2F\xA4\x81\x28\x10\x8D\x40\x68\x24\xC9\x91\xA4\xAE\xF3\x97\x75", + array( 'compression' => 'lossless', 'width' => 421, 'height' => 163 ) ), + array( "\x52\x49\x46\x46\xF6\x5D\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\xA4\x01\x00\xA2\x00\x00\x41\x4C\x50\x48\x38\x1A", + array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 421, 'height' => 163 ) ), + array( "\x52\x49\x46\x46\xC4\x96\x01\x00\x57\x45\x42\x50\x56\x50\x38\x4C\xB8\x96\x01\x00\x2F\x2B\xC1\x4A\x10\x11\x87\x6D\xDB\x48\x12\xFC\x60\xB0\x83\x24", + array( 'compression' => 'lossless', 'width' => 300, 'height' => 300 ) ), + array( "\x52\x49\x46\x46\x0A\x11\x01\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x2B\x01\x00\x2B\x01\x00\x41\x4C\x50\x48\x67\x6E", + array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 300, 'height' => 300 ) ), + + // Lossy files from https://developers.google.com/speed/webp/gallery1 + array( "\x52\x49\x46\x46\x68\x76\x00\x00\x57\x45\x42\x50\x56\x50\x38\x20\x5C\x76\x00\x00\xD2\xBE\x01\x9D\x01\x2A\x26\x02\x70\x01\x3E\xD5\x4E\x97\x43\xA2", + array( 'compression' => 'lossy', 'width' => 550, 'height' => 368 ) ), + array( "\x52\x49\x46\x46\xB0\xEC\x00\x00\x57\x45\x42\x50\x56\x50\x38\x20\xA4\xEC\x00\x00\xB2\x4B\x02\x9D\x01\x2A\x26\x02\x94\x01\x3E\xD1\x50\x96\x46\x26", + array( 'compression' => 'lossy', 'width' => 550, 'height' => 404 ) ), + array( "\x52\x49\x46\x46\x7A\x19\x03\x00\x57\x45\x42\x50\x56\x50\x38\x20\x6E\x19\x03\x00\xB2\xF8\x09\x9D\x01\x2A\x00\x05\xD0\x02\x3E\xAD\x46\x99\x4A\xA5", + array( 'compression' => 'lossy', 'width' => 1280, 'height' => 720 ) ), + array( "\x52\x49\x46\x46\x44\xB3\x02\x00\x57\x45\x42\x50\x56\x50\x38\x20\x38\xB3\x02\x00\x52\x57\x06\x9D\x01\x2A\x00\x04\x04\x03\x3E\xA5\x44\x96\x49\x26", + array( 'compression' => 'lossy', 'width' => 1024, 'height' => 772) ), + array( "\x52\x49\x46\x46\x02\x43\x01\x00\x57\x45\x42\x50\x56\x50\x38\x20\xF6\x42\x01\x00\x12\xC0\x05\x9D\x01\x2A\x00\x04\xF0\x02\x3E\x79\x34\x93\x47\xA4", + array( 'compression' => 'lossy', 'width' => 1024, 'height' => 752) ), + + // Animated file from https://groups.google.com/a/chromium.org/d/topic/blink-dev/Y8tRC4mdQz8/discussion + array( "\x52\x49\x46\x46\xD0\x0B\x02\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x12\x00\x00\x00\x3F\x01\x00\x3F\x01\x00\x41\x4E", + array( 'compression' => 'unknown', 'animated' => true, 'transparency' => true, 'width' => 320, 'height' => 320 ) ), + + // Error cases + array( '', false ), + array( ' ', false ), + array( 'RIFF ', false ), + array( 'RIFF1234WEBP ', false ), + array( 'RIFF1234WEBPVP8 ', false ), + array( 'RIFF1234WEBPVP8L ', false ), + ); + } + + /** + * @dataProvider provideTestWithFileExtractMetaData + */ + public function testWithFileExtractMetaData( $filename, $expectedResult ) { + $this->assertEquals( $expectedResult, WebPHandler::extractMetadata( $filename ) ); + } + public function provideTestWithFileExtractMetaData() { + return array( + array( __DIR__ . '/../../data/media/2_webp_ll.webp', + array( 'compression' => 'lossless', 'width' => 386, 'height' => 395 ) ), + array( __DIR__ . '/../../data/media/2_webp_a.webp', + array( 'compression' => 'lossy', 'animated' => false, 'transparency' => true, 'width' => 386, 'height' => 395 ) ), + ); + } + + /** + * @dataProvider provideTestGetImageSize + */ + public function testGetImageSize( $path, $expectedResult ) { + $handler = new WebPHandler(); + $this->assertEquals( $expectedResult, $handler->getImageSize( null, $path ) ); + } + public function provideTestGetImageSize() { + return array( + // Public domain files from https://developers.google.com/speed/webp/gallery2 + array( __DIR__ . '/../../data/media/2_webp_a.webp', array( 386, 395 ) ), + array( __DIR__ . '/../../data/media/2_webp_ll.webp', array( 386, 395 ) ), + array( __DIR__ . '/../../data/media/webp_animated.webp', array( 300, 225 ) ), + + // Error cases + array( __FILE__, false ), + ); + } + + /** + * Tests the WebP MIME detection. This should really be a separate test, but sticking it + * here for now. + * + * @dataProvider provideTestGetMimeType + */ + public function testGuessMimeType( $path ) { + $mime = MimeMagic::singleton(); + $this->assertEquals( 'image/webp', $mime->guessMimeType( $path, false ) ); + } + public function provideTestGetMimeType() { + return array( + // Public domain files from https://developers.google.com/speed/webp/gallery2 + array( __DIR__ . '/../../data/media/2_webp_a.webp' ), + array( __DIR__ . '/../../data/media/2_webp_ll.webp' ), + array( __DIR__ . '/../../data/media/webp_animated.webp' ), + ); + } +} + +/* Python code to extract a header and convert to PHP format: + * print '"%s"' % ''.join( '\\x%02X' % ord(c) for c in urllib.urlopen(url).read(36) ) + */ diff --git a/tests/phpunit/includes/specials/SpecialSearchTest.php b/tests/phpunit/includes/specials/SpecialSearchTest.php index 83489c65b7..5482b9753d 100644 --- a/tests/phpunit/includes/specials/SpecialSearchTest.php +++ b/tests/phpunit/includes/specials/SpecialSearchTest.php @@ -136,7 +136,7 @@ class SpecialSearchTest extends MediaWikiTestCase { # Compare :-] $this->assertRegExp( - '/' . preg_quote( $term ) . '/', + '/' . preg_quote( $term, '/' ) . '/', $pageTitle, "Search term '{$term}' should not be expanded in Special:Search " );