Index: branches/wmf/1.18wmf1/extensions/MoodBar/include/MoodBarUtil.php |
— | — | @@ -92,8 +92,8 @@ |
93 | 93 | |
94 | 94 | $topResponders = iterator_to_array( $res ); |
95 | 95 | |
96 | | - // Cache the results in cache for 12 hour |
97 | | - $wgMemc->set( $key, $topResponders, 12 * 60 * 60 ); |
| 96 | + // Cache the results in cache for 2 hours |
| 97 | + $wgMemc->set( $key, $topResponders, 2 * 60 * 60 ); |
98 | 98 | } |
99 | 99 | |
100 | 100 | return $topResponders; |
— | — | @@ -137,4 +137,14 @@ |
138 | 138 | |
139 | 139 | } |
140 | 140 | |
| 141 | + /** |
| 142 | + * Check if MarkAsHelpful extension is enabled |
| 143 | + * @return bool |
| 144 | + */ |
| 145 | + public static function isMarkAsHelpfulEnabled() { |
| 146 | + global $wgMarkAsHelpfulType; |
| 147 | + |
| 148 | + return is_array( $wgMarkAsHelpfulType ) && in_array( 'mbresponse', $wgMarkAsHelpfulType ); |
| 149 | + } |
| 150 | + |
141 | 151 | } |
\ No newline at end of file |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/include/MoodBarHTMLEmailNotification.php |
— | — | @@ -157,13 +157,13 @@ |
158 | 158 | $targetUserName = $this->targetUser->getName(); |
159 | 159 | $links = $this->buildEmailLink(); |
160 | 160 | |
161 | | - //text version |
| 161 | + //text version, no need to escape since client will interpret it as plain text |
162 | 162 | $textBody = wfMessage( 'moodbar-enotif-body' )->params( $targetUserName, |
163 | 163 | $links['feedbackPageUrl'], |
164 | 164 | $links['editorTalkPageUrl'], |
165 | 165 | $this->response, |
166 | 166 | $links['targetUserTalkPageUrl'], |
167 | | - $pageEditor )->escaped(); |
| 167 | + $pageEditor )->text(); |
168 | 168 | |
169 | 169 | //html version, this is a little bit ugly as we have to make wiki link clickable in emails |
170 | 170 | $action = $wgRequest->getVal( 'action' ); |
— | — | @@ -171,7 +171,7 @@ |
172 | 172 | $htmlBody = wfMsgExt( 'moodbar-enotif-body', array( 'parse' ), $targetUserName, |
173 | 173 | $links['feedbackPageUrl'], |
174 | 174 | $links['editorTalkPageUrl'], |
175 | | - '<div style="margin-left:20px; margin-right:20px;">' .$this->response . '</div>', |
| 175 | + '<div style="margin-left:20px; margin-right:20px;">"' .$this->response . '"</div>', |
176 | 176 | $links['targetUserTalkPageUrl'], |
177 | 177 | $pageEditor ); |
178 | 178 | $wgRequest->setVal( 'action', $action ); |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/SpecialFeedbackDashboard.php |
— | — | @@ -63,10 +63,16 @@ |
64 | 64 | |
65 | 65 | // Output HTML |
66 | 66 | $wgOut->setPageTitle( wfMsg( 'moodbar-feedback-title' ) ); |
| 67 | + $wgOut->setRobotPolicy( 'noindex,nofollow' ); |
67 | 68 | $wgOut->addHTML( $this->buildForm( $filterType ) ); |
68 | 69 | $wgOut->addHTML( $this->buildList( $res ) ); |
69 | 70 | $wgOut->addModuleStyles( 'ext.moodBar.dashboard.styles' ); |
70 | 71 | $wgOut->addModules( 'ext.moodBar.dashboard' ); |
| 72 | + // Check for interfaceConcurrency extension, remove check when in core. |
| 73 | + if ( class_exists( 'ApiConcurrency') ) { |
| 74 | + $wgOut->addModules( 'jquery.interfaceConcurrency' ); |
| 75 | + } |
| 76 | + |
71 | 77 | } |
72 | 78 | |
73 | 79 | /** |
— | — | @@ -319,15 +325,25 @@ |
320 | 326 | $responder = User::newFromRow( $response_detail ); |
321 | 327 | |
322 | 328 | if ( $responder && !$responder->isAnon() ) { |
323 | | - $responsetime = MoodBarUtil::formatTimeSince( wfTimestamp( TS_UNIX, $response_detail->mbfr_timestamp ) ); |
| 329 | + $responsetime = MoodBarUtil::formatTimeSince( wfTimestamp( TS_UNIX, $response_detail->mbfr_timestamp ) ); |
| 330 | + $commenter = $feedbackItem->getProperty('user'); |
| 331 | + $permalinkTitle = $commenter->getTalkPage()->getFullText(); |
324 | 332 | |
325 | | - $permalinkTitle = $feedbackItem->getProperty('user')->getTalkPage()->getFullText(); |
326 | | - |
327 | | - $individual_response = wfMsgExt('moodbar-feedback-response-summary', array('parse'), |
328 | | - $responder->getUserPage()->getFullText(), |
329 | | - $responder->getName(), |
330 | | - $permalinkTitle . '#feedback-dashboard-response-' . $response_detail->mbfr_id, |
331 | | - $responsetime); |
| 333 | + if ( property_exists( $response_detail, 'mah_id' ) && intval($response_detail->mah_id ) > 0 ) { |
| 334 | + $individual_response = wfMsgExt('moodbar-feedback-response-helpful-summary', array('parse'), |
| 335 | + $responder->getUserPage()->getFullText(), |
| 336 | + $responder->getName(), |
| 337 | + $permalinkTitle . '#feedback-dashboard-response-' . $response_detail->mbfr_id, |
| 338 | + $responsetime, |
| 339 | + $commenter->getUserPage()->getFullText(), |
| 340 | + $commenter->getName()); |
| 341 | + } else { |
| 342 | + $individual_response = wfMsgExt('moodbar-feedback-response-summary', array('parse'), |
| 343 | + $responder->getUserPage()->getFullText(), |
| 344 | + $responder->getName(), |
| 345 | + $permalinkTitle . '#feedback-dashboard-response-' . $response_detail->mbfr_id, |
| 346 | + $responsetime); |
| 347 | + } |
332 | 348 | $showResponseBox = false; |
333 | 349 | |
334 | 350 | $responseElements = <<<HTML |
— | — | @@ -714,13 +730,13 @@ |
715 | 731 | } |
716 | 732 | |
717 | 733 | /** |
718 | | - * Get the latest response summary for a set of feedback, |
| 734 | + * Get the latest response summary for a set of feedback |
719 | 735 | * @param $res Iterator of Db row with index mbf_latest_response for feedback |
720 | 736 | * @return array |
721 | 737 | */ |
722 | 738 | public static function getResponseSummary( $res ) { |
723 | 739 | $dbr = wfGetDB( DB_SLAVE ); |
724 | | - |
| 740 | + |
725 | 741 | $mbfrIds = array(); |
726 | 742 | |
727 | 743 | foreach ( $res as $row ) { |
— | — | @@ -732,12 +748,24 @@ |
733 | 749 | $response = array(); |
734 | 750 | |
735 | 751 | if ( count( $mbfrIds ) > 0 ) { |
736 | | - $res = $dbr->select( array( 'moodbar_feedback_response', 'user' ), |
737 | | - array( 'mbfr_id', 'mbfr_mbf_id', 'mbfr_timestamp', 'user_id', 'user_name', 'user_real_name' ), |
738 | | - array( 'mbfr_id' => $mbfrIds, 'mbfr_user_id = user_id' ), |
739 | | - __METHOD__ |
740 | | - ); |
741 | 752 | |
| 753 | + $table = array( 'user', 'moodbar_feedback_response' ); |
| 754 | + $select = array( 'mbfr_id', 'mbfr_mbf_id', 'mbfr_timestamp', 'user_id', 'user_name', 'user_real_name' ); |
| 755 | + $conds = array( 'mbfr_id' => $mbfrIds, 'mbfr_user_id = user_id' ); |
| 756 | + $tableJoin = array(); |
| 757 | + |
| 758 | + // Adding markashelpful data if the extension is enabled |
| 759 | + if ( MoodBarUtil::isMarkAsHelpfulEnabled() ) { |
| 760 | + $table[] = 'moodbar_feedback'; |
| 761 | + $table[] = 'mark_as_helpful'; |
| 762 | + // Is there a workaround that does not specify INNER JOIN explicitly? |
| 763 | + $tableJoin['moodbar_feedback'] = array( 'INNER JOIN', 'mbfr_mbf_id = mbf_id' ); |
| 764 | + $tableJoin['mark_as_helpful'] = array( 'LEFT JOIN', "mah_type = 'mbresponse' AND mah_item = mbfr_id AND mah_user_id = mbf_user_id" ); |
| 765 | + $select[] = 'mah_id'; |
| 766 | + } |
| 767 | + |
| 768 | + $res = $dbr->select( $table, $select, $conds, __METHOD__, array(), $tableJoin ); |
| 769 | + |
742 | 770 | foreach ( $res as $row ) { |
743 | 771 | $response[$row->mbfr_mbf_id] = $row; |
744 | 772 | } |
— | — | @@ -745,5 +773,5 @@ |
746 | 774 | |
747 | 775 | return $response; |
748 | 776 | } |
749 | | - |
| 777 | + |
750 | 778 | } |
\ No newline at end of file |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.i18n.php |
— | — | @@ -50,6 +50,7 @@ |
51 | 51 | 'moodbar-privacy' => 'By submitting, you agree to transparency under these $1.', |
52 | 52 | 'moodbar-privacy-link' => 'terms', |
53 | 53 | 'moodbar-privacy-link-title' => 'Terms of Use', |
| 54 | + 'moodbar-fbd-link-title' => 'feedback', |
54 | 55 | 'moodbar-disable-link' => "I'm not interested. Please disable this feature.", |
55 | 56 | 'moodbar-form-title' => 'Because...', |
56 | 57 | 'moodbar-form-note' => '140 character maximum', |
— | — | @@ -61,7 +62,7 @@ |
62 | 63 | 'moodbar-success-title' => 'Thanks!', |
63 | 64 | 'moodbar-error-title' => 'Oops!', |
64 | 65 | 'moodbar-loading-subtitle' => 'We are sharing your feedback…', |
65 | | - 'moodbar-success-subtitle' => 'Sharing your editing experience helps us improve $1.', |
| 66 | + 'moodbar-success-subtitle' => 'Sharing your {{FBD-LINK}} helps us improve $1.', |
66 | 67 | 'moodbar-error-subtitle' => 'Something went wrong! Please try sharing your feedback again later.', |
67 | 68 | 'moodbar-blocked-title' => 'Oops!', |
68 | 69 | 'moodbar-blocked-subtitle' => 'You have been blocked from editing.', |
— | — | @@ -140,6 +141,7 @@ |
141 | 142 | 'moodbar-invalid-item' => 'The system was unable to find the correct feedback item.', |
142 | 143 | 'moodbar-feedback-action-error' => 'An error occurred when trying to perform this action.', |
143 | 144 | 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|responded]] $4 ago', |
| 145 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|responded]] $4 ago and [[$5|$6]] finds it helpful', |
144 | 146 | 'moodbar-feedback-edit-summary' => 'Response to [[Special:FeedbackDashboard/$1|user feedback]]: $2', |
145 | 147 | 'moodbar-feedback-top-responders-title' => 'Top Responders', |
146 | 148 | // Mood types |
— | — | @@ -180,14 +182,14 @@ |
181 | 183 | |
182 | 184 | $4 |
183 | 185 | |
184 | | -View this message on your [$5 talk page] |
| 186 | +View this message on your [$5 talk page]. |
185 | 187 | |
186 | | -What’s a talk page? |
187 | | -Your user talk page is the page that other {{SITENAME}} editors use to communicate with you. You can respond by clicking “Edit”, moving the cursor below the comment, typing your response and four tildes (~~~~) to sign, and saving. All pages in {{SITENAME}} have talk pages, and they’re used for many different purposes. It takes a while to get the hang of it, but is pretty easy once you’re used to it. |
| 188 | +What\'s a talk page? |
| 189 | +Your user talk page is the page that other {{SITENAME}} editors use to communicate with you. You can respond by clicking "Edit", moving the cursor below the comment, typing your response and four tildes (~~~~) to sign, and saving. All pages in {{SITENAME}} have talk pages, and they\'re used for many different purposes. It takes a while to get the hang of it, but is pretty easy once you\'re used to it. |
188 | 190 | |
189 | | -Still confused? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv This video] (watch on [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) gives you a step-by-step overview. |
| 191 | +Still confused? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv This video] (watch on [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) gives you a step-by-step overview of how talk pages work. |
190 | 192 | |
191 | | -Have a nice day, |
| 193 | +Thanks for being part of the community. |
192 | 194 | |
193 | 195 | -- {{SITENAME}}', |
194 | 196 | ); |
— | — | @@ -210,10 +212,10 @@ |
211 | 213 | This is a feature in development. See [[mw:MoodBar 0.1/Design]] for background information.', |
212 | 214 | 'moodbar-trigger-feedback' => 'Link text of the MoodBar overlay trigger. $1 is the SITENAME.', |
213 | 215 | 'moodbar-trigger-editing' => "Link text of the MoodBar overlay trigger. \$1 is the SITENAME. The implied sentence is ''\"Using [Sitename] made me happy/sad/...\"''. See [[mw:MoodBar 0.1/Design]] for background development information.", |
214 | | - 'moodbar-weeks' => 'Full word for "weeks". $1 is the number of weeks. Part of variable $1 in {{msg-mw|Ago}} and variable $4 in {{msg-moodbar|moodbar-feedback-response-summary}}', |
215 | | - 'moodbar-months' => 'Full word for "months". $1 is the number of months. Part of variable $1 in {{msg-mw|Ago}} and variable $4 in {{msg-moodbar|moodbar-feedback-response-summary}}', |
216 | | - 'moodbar-years' => 'Full word for "years". $1 is the number of years. Part of variable $1 in {{msg-mw|Ago}} and variable $4 in {{msg-moodbar|moodbar-feedback-response-summary}}', |
217 | | - 'moodbar-seconds' => 'The phrase "less than 1 minute", Part of variable $1 in {{msg-mw|Ago}} and variable $4 in {{msg-moodbar|moodbar-feedback-response-summary}}', |
| 216 | + 'moodbar-weeks' => 'Full word for "weeks". $1 is the number of weeks. Part of variable $1 in {{msg-mw|Ago}} and variable $4 in {{msg-moodbar|moodbar-feedback-response-summary}} and {{msg-moodbar|moodbar-feedback-response-helpful-summary}}', |
| 217 | + 'moodbar-months' => 'Full word for "months". $1 is the number of months. Part of variable $1 in {{msg-mw|Ago}} and variable $4 in {{msg-moodbar|moodbar-feedback-response-summary}} and {{msg-moodbar|moodbar-feedback-response-helpful-summary}}', |
| 218 | + 'moodbar-years' => 'Full word for "years". $1 is the number of years. Part of variable $1 in {{msg-mw|Ago}} and variable $4 in {{msg-moodbar|moodbar-feedback-response-summary}} and {{msg-moodbar|moodbar-feedback-response-helpful-summary}}', |
| 219 | + 'moodbar-seconds' => 'The phrase "less than 1 minute", Part of variable $1 in {{msg-mw|Ago}} and variable $4 in {{msg-moodbar|moodbar-feedback-response-summary}} and {{msg-moodbar|moodbar-feedback-response-helpful-summary}}', |
218 | 220 | 'moodbar-close' => 'Link text of the close-button. Make sure to include parentheses. |
219 | 221 | |
220 | 222 | See also: |
— | — | @@ -251,6 +253,7 @@ |
252 | 254 | See [[Thread:Support/About MediaWiki:Moodbar-privacy/en (2)/reply (4)|discussion]].', |
253 | 255 | 'moodbar-privacy-link' => 'This is the anchor text being used in the link replacing $1 in the message {{msg-mw|moodbar-privacy}}', |
254 | 256 | 'moodbar-privacy-link-title' => 'This is the title of the anchor link being used for the privacy message', |
| 257 | + 'moodbar-fbd-link-title' => 'This is the link text of <nowiki>{{FBD-LINK}}</nowiki> in {{msg-mw|moodbar-success-subtitle}}. Shown after leaving moodbar feedback.', |
255 | 258 | 'moodbar-form-note-dynamic' => 'Should support plural.', |
256 | 259 | 'moodbar-form-policy-text' => 'Text displayed below the input area. |
257 | 260 | |
— | — | @@ -263,7 +266,9 @@ |
264 | 267 | 'moodbar-loading-title' => 'Title of the screen when the widget is loading.', |
265 | 268 | 'moodbar-success-title' => 'Title of the screen after the feedback was successfully submitted.', |
266 | 269 | 'moodbar-error-title' => 'Title of the screen when after an error occurred and submission aborted.', |
267 | | - 'moodbar-success-subtitle' => 'Subtitle of screen when feedback was successfullyully submitted. $1 is the SITENAME', |
| 270 | + 'moodbar-success-subtitle' => 'Subtitle of screen when feedback was successfullyully submitted. |
| 271 | +* <nowiki>{{FBD-LINK}}</nowiki> Not required, replaced with link to FeedbackDashboard of which {{msg-mw|moodbar-fbd-link-title}} is the link text |
| 272 | +* <nowiki>{{$1}}</nowiki> Not required, Wiki SITENAME', |
268 | 273 | 'moodbar-error-subtitle' => 'Subtitle of screen when an error occurred. $1 is the SITENAME', |
269 | 274 | 'moodbar-blocked-title' => 'Title of the screen after blocked user attempts to post feedback.', |
270 | 275 | 'moodbar-blocked-subtitle' => 'Subtitle of screen after blocked user attempts to post feedback.', |
— | — | @@ -313,7 +318,9 @@ |
314 | 319 | 'moodbar-hidden-footer-without-log' => '* $1 is a link to restore the item displaying {{msg-mw|moodbar-feedback-restore}}', |
315 | 320 | 'moodbar-action-reason' => 'Text for Admin action reason', |
316 | 321 | 'moodbar-action-reason-required' => 'Text explaining admin action reason is required', |
317 | | - 'moodbar-feedback-response-summary' => 'Text providing a summary of a user response, $1 is user page, $2 is user name, $3 is user talk page, $4 is time', |
| 322 | + 'moodbar-feedback-response-summary' => 'Text providing a summary of a user response, $1 is responder user page, $2 is responder user name, $3 is commenter talk page, $4 is time', |
| 323 | + 'moodbar-feedback-response-helpful-summary' => 'Text providing a summary of a user response and indicating that commenter has marked the response as helpful, $1 is responder user page, $2 is responder user name, |
| 324 | +$3 is commenter user talk page, $4 is time, $5 is commenter user page, $6 is commenter user name', |
318 | 325 | 'moodbar-feedback-edit-summary' => 'Auto generated Edit summary for feedback response, $1 is the feedback id and $2 is the response text', |
319 | 326 | 'moodbar-feedback-top-responders-title' => 'The title for Top Responders, which is located below feedback dashboard filter', |
320 | 327 | 'moodbar-type-happy' => '$1 is the username that can be used for GENDER. Message is used on Special:FeedbackDashboard.', |
— | — | @@ -324,7 +331,8 @@ |
325 | 332 | 'moodbar-log-name' => 'Feedback log name', |
326 | 333 | 'moodbar-log-header' => 'Descriptive header text for Feedback log page.', |
327 | 334 | 'moodbar-log-hide' => 'Log Action text for hiding feedback [[$1]] is link to feedback item', |
328 | | - 'moodbar-log-feedback' => 'Log Action text for leaving feedback [[$1]] is link to feedback item', |
| 335 | + 'moodbar-log-feedback' => 'Log Action text for leaving feedback. Parameters: |
| 336 | +* $1 is a link to a feedback item.', |
329 | 337 | 'moodbar-log-restore' => 'Log Action text for restoring feedback [[$1]] is link to feedback item', |
330 | 338 | 'moodbar-log-reason' => '{{optional}} |
331 | 339 | Text for log reason. $1 is moodbar type, $2 is moodbar comment', |
— | — | @@ -624,13 +632,17 @@ |
625 | 633 | /** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) |
626 | 634 | * @author EugeneZelenko |
627 | 635 | * @author Jim-by |
| 636 | + * @author Wizardist |
628 | 637 | * @author Тест |
629 | 638 | */ |
630 | 639 | $messages['be-tarask'] = array( |
631 | 640 | 'moodbar-desc' => 'Дазваляе вызначаным удзельнікам дасылаць іх водгук пра вопыт у рэдагаваньні', |
632 | 641 | 'moodbar-trigger-feedback' => 'Водгук пра рэдагаваньне', |
633 | 642 | 'moodbar-trigger-share' => 'Падзяліцца Вашым вопытам', |
634 | | - 'moodbar-trigger-editing' => 'Выкарыстоўваючы $1…', |
| 643 | + 'moodbar-trigger-editing' => 'Рэдагаваньне {{GRAMMAR:родны|$1}}…', |
| 644 | + 'moodbar-weeks' => '$1 {{PLURAL:$1|тыдзень|тыдні|тыдняў}}', |
| 645 | + 'moodbar-months' => '$1 {{PLURAL:$1|месяц|месяцы|месяцаў}}', |
| 646 | + 'moodbar-years' => '$1 {{PLURAL:$1|год|гады|гадоў}}', |
635 | 647 | 'moodbar-close' => '(зачыніць)', |
636 | 648 | 'moodbar-intro-feedback' => 'Рэдагаваньне {{GRAMMAR:родны|$1}} дало мне…', |
637 | 649 | 'moodbar-intro-share' => 'Мой вопыт на {{GRAMMAR:родны|$1}} даў мне…', |
— | — | @@ -679,11 +691,12 @@ |
680 | 692 | 'moodbar-header-own-talk' => 'Уласная старонка гутарак', |
681 | 693 | 'moodbar-feedback-title' => 'Дошка водгукаў', |
682 | 694 | 'moodbar-feedback-filters' => 'Фільтры', |
683 | | - 'moodbar-feedback-filters-type' => 'Тып:', |
684 | | - 'moodbar-feedback-filters-type-happy' => 'Пахвала', |
685 | | - 'moodbar-feedback-filters-type-confused' => 'Блытаніна', |
686 | | - 'moodbar-feedback-filters-type-sad' => 'Праблемы', |
| 695 | + 'moodbar-feedback-filters-type' => 'Настрой:', |
| 696 | + 'moodbar-feedback-filters-type-happy' => 'Шчасьлівы', |
| 697 | + 'moodbar-feedback-filters-type-confused' => 'Зьбянтэжаны', |
| 698 | + 'moodbar-feedback-filters-type-sad' => 'Смутны', |
687 | 699 | 'moodbar-feedback-filters-username' => 'Імя ўдзельніка:', |
| 700 | + 'moodbar-feedback-filters-my-response' => 'Толькі мае водгукі', |
688 | 701 | 'moodbar-feedback-filters-button' => 'Наладзіць фільтры', |
689 | 702 | 'moodbar-feedback-whatis' => 'Што гэта за магчымасьць?', |
690 | 703 | 'moodbar-feedback-permalink' => 'спасылка сюды', |
— | — | @@ -694,12 +707,14 @@ |
695 | 708 | 'moodbar-feedback-older' => 'Старэйшыя', |
696 | 709 | 'moodbar-feedback-ajaxerror' => 'Узьнікла памылка падчас атрыманьня дадатковых вынікаў.', |
697 | 710 | 'moodbar-user-hidden' => '(Удзельнік схаваны)', |
698 | | - 'moodbar-type-happy' => 'Шчасьлівы', |
699 | | - 'moodbar-type-sad' => 'Смутны', |
700 | | - 'moodbar-type-confused' => 'Зьмешаныя пачуцьці', |
| 711 | + 'moodbar-type-happy' => '{{GENDER:$1|Шчасьлівы|Шчасьлівая}}', |
| 712 | + 'moodbar-type-sad' => '{{GENDER:$1|Смутны|Смутная}}', |
| 713 | + 'moodbar-type-confused' => '{{GENDER:$1|Зьбянтэжаны|Зьбянтэжаная}}', |
701 | 714 | 'moodbar-user-anonymized' => 'Ананімны', |
702 | 715 | 'moodbar-user-ip' => 'ІР-адрас', |
703 | 716 | 'moodbar-user-user' => 'Зарэгістраваны ўдзельнік', |
| 717 | + 'moodbar-response-terms' => 'Дасылаючы, Вы пагаджаецеся на доступ на гэтых $1.', |
| 718 | + 'moodbar-response-link' => 'умовах', |
704 | 719 | ); |
705 | 720 | |
706 | 721 | /** Bulgarian (Български) |
— | — | @@ -783,6 +798,7 @@ |
784 | 799 | 'moodbar-form-title' => 'Peogwir...', |
785 | 800 | 'moodbar-form-note' => "140 arouezenn d'ar muiañ", |
786 | 801 | 'moodbar-form-note-dynamic' => '$1 a chom', |
| 802 | + 'moodbar-form-submit' => 'Kenrannañ an evezhiadennoù', |
787 | 803 | 'moodbar-form-policy-text' => 'En ur gas, $1', |
788 | 804 | 'moodbar-form-policy-label' => 'hor politikerezh', |
789 | 805 | 'moodbar-loading-title' => 'O rannañ...', |
— | — | @@ -836,19 +852,26 @@ |
837 | 853 | 'moodbar-feedback-ajaxerror' => "Ur fazi zo bet en ur glask disoc'hoù all.", |
838 | 854 | 'moodbar-feedback-load-record-error' => 'Ur fazi zo bet en ur gargañ un enrolladenn.', |
839 | 855 | 'moodbar-user-hidden' => '(implijer kuzhet)', |
| 856 | + 'moodbar-feedback-show' => 'Diskouez an evezhiadennoù kuzhet', |
| 857 | + 'moodbar-feedback-hide' => 'Kuzhat an evezhiadennoù', |
840 | 858 | 'moodbar-feedback-action-confirm' => 'Kadarnaat', |
841 | 859 | 'moodbar-feedback-action-cancel' => 'Nullañ', |
| 860 | + 'moodbar-hidden-footer-without-log' => 'Evezhiadenn guzhet $1', |
| 861 | + 'moodbar-action-item' => 'Danvez an evezhiadenn :', |
842 | 862 | 'moodbar-action-reason' => 'Abeg :', |
843 | 863 | 'moodbar-action-reason-required' => 'Merkit un abeg.', |
844 | 864 | 'moodbar-hide-header' => 'Kuzhat an elfenn-mañ evit na vefe ket gwelet', |
845 | 865 | 'moodbar-feedback-response-summary' => '[[$3|Respontet]] eo bet gant [[$1|$2]] $4 zo', |
| 866 | + 'moodbar-feedback-top-responders-title' => 'Responterien bennañ', |
846 | 867 | 'moodbar-type-happy' => '{{GENDER:$1|Laouen}}', |
847 | 868 | 'moodbar-type-sad' => '{{GENDER:$1|Trist}}', |
848 | 869 | 'moodbar-type-confused' => '{{GENDER:$1|Trubuilhet}}', |
849 | 870 | 'moodbar-user-anonymized' => 'Dianavezet', |
850 | 871 | 'moodbar-user-ip' => "Chomlec'h IP", |
851 | 872 | 'moodbar-user-user' => 'Implijer enrollet', |
| 873 | + 'moodbar-log-name' => 'Marilh an evezhiadennoù', |
852 | 874 | 'moodbar-log-hide' => 'en deus kuzhet "[[$1]]"', |
| 875 | + 'moodbar-log-feedback' => 'Soñjoù war ar varrenn imor [[$1]]', |
853 | 876 | 'moodbar-log-restore' => 'zo bet assavet gweleduster [[$1]] gantañ', |
854 | 877 | 'moodbar-response-link' => 'termenoù', |
855 | 878 | 'response-back-text' => 'Distreiñ', |
— | — | @@ -959,6 +982,7 @@ |
960 | 983 | 'moodbar-privacy' => 'Mit dem Speichern erklärst du dich mit diesen $1 einverstanden.', |
961 | 984 | 'moodbar-privacy-link' => 'Bedingungen', |
962 | 985 | 'moodbar-privacy-link-title' => 'Nutzungsbedingungen', |
| 986 | + 'moodbar-fbd-link-title' => 'Rückmeldung', |
963 | 987 | 'moodbar-disable-link' => 'Ich bin nicht interessiert. Bitte diese Funktion deaktivieren.', |
964 | 988 | 'moodbar-form-title' => 'Weil …', |
965 | 989 | 'moodbar-form-note' => 'Maximal 140 Zeichen', |
— | — | @@ -969,7 +993,7 @@ |
970 | 994 | 'moodbar-loading-title' => 'Am senden ...', |
971 | 995 | 'moodbar-success-title' => 'Vielen Dank!', |
972 | 996 | 'moodbar-error-title' => 'Hoppla!', |
973 | | - 'moodbar-success-subtitle' => 'Uns deine Stimmung mitzuteilen hilft uns dabei $1 weiter zu verbessern.', |
| 997 | + 'moodbar-success-subtitle' => 'Uns eine {{FBD-LINK}} zu geben, hilft uns dabei $1 weiter zu verbessern.', |
974 | 998 | 'moodbar-error-subtitle' => 'Es ist ein Fehler aufgetreten. Bitte versuche es später noch einmal, uns deine Rückmeldung mitzuteilen.', |
975 | 999 | 'moodbar-blocked-title' => 'Hoppla!', |
976 | 1000 | 'moodbar-blocked-subtitle' => 'Du wurdest gesperrt und kannst daher keine Bearbeitungen machen.', |
— | — | @@ -1043,6 +1067,7 @@ |
1044 | 1068 | 'moodbar-invalid-item' => 'Das System konnte den richtigen Teil der Rückmeldung nicht finden.', |
1045 | 1069 | 'moodbar-feedback-action-error' => 'Während des Ausführens dieser Aktion ist ein Fehler aufgetreten.', |
1046 | 1070 | 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|antwortete]] vor $4', |
| 1071 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|antwortete]] vor $4 und [[$5|$6]] glaubt, dass die Antwort hilfreich sei', |
1047 | 1072 | 'moodbar-feedback-edit-summary' => 'Antwort zur [[Special:FeedbackDashboard/$1|Rückmeldung]]: $2', |
1048 | 1073 | 'moodbar-feedback-top-responders-title' => 'Benutzer mit den meisten Rückmeldungen', |
1049 | 1074 | 'moodbar-type-happy' => '{{GENDER:$1|Glücklich}}', |
— | — | @@ -1072,7 +1097,7 @@ |
1073 | 1098 | 'moodbar-enotif-subject' => '$1 antwortete auf deine Rückmeldung.', |
1074 | 1099 | 'moodbar-enotif-body' => 'Hallo $1, |
1075 | 1100 | |
1076 | | -Willkommen bei {{SITENAME}} und vielen Dank für deine [$2 Rückmeldung]. Ein anderer {{SITENAME}}-Benutzer, [$3 $6], hinterließ die folgende Antwort: |
| 1101 | +Willkommen bei {{SITENAME}} und vielen Dank für deine [$2 Rückmeldung]. Ein anderer Benutzer, [$3 $6], hinterließ die folgende Antwort: |
1077 | 1102 | |
1078 | 1103 | $4 |
1079 | 1104 | |
— | — | @@ -1081,7 +1106,7 @@ |
1082 | 1107 | Was ist eine Diskussionsseite? |
1083 | 1108 | Eine Diskussionsseite ist eine Seite auf der die Benutzer eines Wikis miteinander kommunizieren, indem sie dort Nachrichten hinterlassen. Es können aktuelle Angelegenheiten diskutiert werden, Hilfestellung gegeben werden, allgemeine Nachrichten oder ein Dankeschön hinterlassen werden. Eine Diskussionsseite kann auch genutzt werden, um einfach Hallo zu sagen. |
1084 | 1109 | |
1085 | | -Wir wünschen dir noch einen schönen Tag, |
| 1110 | +Vielen Dank, das du Teil der Gemeinschaft bist. |
1086 | 1111 | |
1087 | 1112 | -- {{SITENAME}}', |
1088 | 1113 | ); |
— | — | @@ -1106,7 +1131,7 @@ |
1107 | 1132 | 'moodbar-enotif-subject' => '$1 antwortete auf Ihre Rückmeldung.', |
1108 | 1133 | 'moodbar-enotif-body' => 'Hallo $1, |
1109 | 1134 | |
1110 | | -Willkommen bei {{SITENAME}} und vielen Dank für Ihre [$2 Rückmeldung]. Ein anderer {{SITENAME}}-Benutzer, [$3 $6], hinterließ die folgende Antwort: |
| 1135 | +Willkommen bei {{SITENAME}} und vielen Dank für Ihre [$2 Rückmeldung]. Ein anderer Benutzer, [$3 $6], hinterließ die folgende Antwort: |
1111 | 1136 | |
1112 | 1137 | $4 |
1113 | 1138 | |
— | — | @@ -1115,7 +1140,7 @@ |
1116 | 1141 | Was ist eine Diskussionsseite? |
1117 | 1142 | Eine Diskussionsseite ist eine Seite auf der die Benutzer eines Wikis miteinander kommunizieren, indem sie dort Nachrichten hinterlassen. Es können aktuelle Angelegenheiten diskutiert werden, Hilfestellung gegeben werden, allgemeine Nachrichten oder ein Dankeschön hinterlassen werden. Eine Diskussionsseite kann auch genutzt werden, um einfach Hallo zu sagen. |
1118 | 1143 | |
1119 | | -Wir wünschen Ihnen noch einen schönen Tag, |
| 1144 | +Vielen Dank, das Sie Teil der Gemeinschaft sind. |
1120 | 1145 | |
1121 | 1146 | -- {{SITENAME}}', |
1122 | 1147 | ); |
— | — | @@ -1574,6 +1599,7 @@ |
1575 | 1600 | 'moodbar-user-ip' => 'نشانی آیپی', |
1576 | 1601 | 'moodbar-user-user' => 'کاربر ثبت شده', |
1577 | 1602 | 'moodbar-log-name' => 'سیاههٔ بازخورد', |
| 1603 | + 'moodbar-response-link' => 'شرایط', |
1578 | 1604 | 'response-back-text' => 'بازگشت', |
1579 | 1605 | 'response-preview-text' => 'پیشنمایش', |
1580 | 1606 | 'response-ajax-action-head' => 'در حال پاسخ...', |
— | — | @@ -1778,6 +1804,7 @@ |
1779 | 1805 | 'moodbar-privacy' => 'En soumettant, vous acceptez la transparence en accord avec ces $1.', |
1780 | 1806 | 'moodbar-privacy-link' => 'conditions', |
1781 | 1807 | 'moodbar-privacy-link-title' => "Conditions d'utilisation", |
| 1808 | + 'moodbar-fbd-link-title' => 'avis', |
1782 | 1809 | 'moodbar-disable-link' => 'Je ne suis pas intéressé. Désactiver cette fonctionnalité.', |
1783 | 1810 | 'moodbar-form-title' => 'Parce que ...', |
1784 | 1811 | 'moodbar-form-note' => '140 caractères maximum', |
— | — | @@ -1788,7 +1815,7 @@ |
1789 | 1816 | 'moodbar-loading-title' => 'Partager...', |
1790 | 1817 | 'moodbar-success-title' => 'Merci !', |
1791 | 1818 | 'moodbar-error-title' => 'Oups !', |
1792 | | - 'moodbar-success-subtitle' => 'Partager votre expérience nous aide à améliorer $1.', |
| 1819 | + 'moodbar-success-subtitle' => 'Partager votre {{FBD-LINK}} nous aide à améliorer $1.', |
1793 | 1820 | 'moodbar-error-subtitle' => "Quelque chose s'est mal passé ! Essayer de partager vos commentaires plus tard.", |
1794 | 1821 | 'moodbar-blocked-title' => 'Oups !', |
1795 | 1822 | 'moodbar-blocked-subtitle' => 'Vous avez été bloqué en édition.', |
— | — | @@ -1862,6 +1889,7 @@ |
1863 | 1890 | 'moodbar-invalid-item' => 'Le système a été incapable de trouver le commentaire correct.', |
1864 | 1891 | 'moodbar-feedback-action-error' => "Une erreur s'est produite lorsque vous avez essayé d'effectuer cette action.", |
1865 | 1892 | 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|a répondu]] il y a $4', |
| 1893 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|a répondu]] il y a $4 et [[$5|$6]] pense que cela est utile', |
1866 | 1894 | 'moodbar-feedback-edit-summary' => 'Réponse au [[Special:FeedbackDashboard/$1|ressenti utilisateur]]: $2', |
1867 | 1895 | 'moodbar-feedback-top-responders-title' => 'Principaux répondants', |
1868 | 1896 | 'moodbar-type-happy' => '{{GENDER:$1|Heureux|Heureuse}}', |
— | — | @@ -1894,14 +1922,14 @@ |
1895 | 1923 | |
1896 | 1924 | $4 |
1897 | 1925 | |
1898 | | -Afficher ce message sur votre [$5 page de discussion] |
| 1926 | +Afficher ce message sur votre [$5 page de discussion]. |
1899 | 1927 | |
1900 | 1928 | Qu\'est-ce qu\'une page de discussion ? |
1901 | | -Votre page de discussion d\'utilisateur est la page que les autres rédacteurs de {{SITENAME}} utilisent pour communiquer avec vous. Vous pouvez répondre en cliquant "Modifier", déplacer le curseur en dessous du commentaire, taper votre réponse et quatre tildes (~~~~) pour signer, et enregistrer. Toutes les pages de {{SITENAME}} ont des pages de discussion, et elles sont utilisées à de nombreuses fins diverses. Cela prend un certain temps comprendre cela, mais c\'est assez facile une fois que vous y êtes habitué. |
| 1929 | +Votre page de discussion d\'utilisateur est la page que les autres rédacteurs de {{SITENAME}} utilisent pour communiquer avec vous. Vous pouvez répondre en cliquant "Modifier", déplacer le curseur en dessous du commentaire, taper votre réponse et quatre tildes (~~~~) pour signer, et enregistrer. Toutes les pages de {{SITENAME}} ont des pages de discussion, et elles sont utilisées à de nombreuses fins diverses. Cela prend un certain temps comprendre cela, mais c\'est assez facile une fois que vous y êtes habitué. |
1902 | 1930 | |
1903 | | -Encore incertain ? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Cette vidéo] (à voir sur [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) vous donne un aperçu pas à pas. |
| 1931 | +Encore incertain ? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Cette vidéo] (à voir sur [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) vous donne un aperçu pas à pas de la manière dont fonctionnent les pages de discussion. |
1904 | 1932 | |
1905 | | -Bonne journée, |
| 1933 | +Merci de votre participation à cette communauté. |
1906 | 1934 | |
1907 | 1935 | -- {{SITENAME}}', |
1908 | 1936 | ); |
— | — | @@ -2055,6 +2083,7 @@ |
2056 | 2084 | 'moodbar-privacy' => 'Se envía os seus comentarios, acepta publicalos baixo estes $1.', |
2057 | 2085 | 'moodbar-privacy-link' => 'termos', |
2058 | 2086 | 'moodbar-privacy-link-title' => 'Termos de uso', |
| 2087 | + 'moodbar-fbd-link-title' => 'comentarios', |
2059 | 2088 | 'moodbar-disable-link' => 'Non estou interesado. Desactivar esta característica.', |
2060 | 2089 | 'moodbar-form-title' => 'Porque...', |
2061 | 2090 | 'moodbar-form-note' => '140 caracteres como máximo', |
— | — | @@ -2065,7 +2094,7 @@ |
2066 | 2095 | 'moodbar-loading-title' => 'Compartindo...', |
2067 | 2096 | 'moodbar-success-title' => 'Grazas!', |
2068 | 2097 | 'moodbar-error-title' => 'Vaites!', |
2069 | | - 'moodbar-success-subtitle' => 'Compartir a súa experiencia na edición axúdanos a mellorar $1.', |
| 2098 | + 'moodbar-success-subtitle' => 'Ao compartir os seus {{FBD-LINK}} axúdanos a mellorar $1.', |
2070 | 2099 | 'moodbar-error-subtitle' => 'Algo foi mal! Intente compartir os seus comentarios máis tarde.', |
2071 | 2100 | 'moodbar-blocked-title' => 'Vaites!', |
2072 | 2101 | 'moodbar-blocked-subtitle' => 'Foi bloqueado fronte á edición.', |
— | — | @@ -2139,6 +2168,7 @@ |
2140 | 2169 | 'moodbar-invalid-item' => 'O sistema non puido atopar o elemento de valoración correcto.', |
2141 | 2170 | 'moodbar-feedback-action-error' => 'Produciuse un erro ao intentar levar a cabo esta acción.', |
2142 | 2171 | 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|respondeu]] hai $4', |
| 2172 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|respondeu]] hai $4 e [[$5|$6]] pensa que é útil', |
2143 | 2173 | 'moodbar-feedback-edit-summary' => 'Resposta aos [[Special:FeedbackDashboard/$1|comentarios do usuario]]: $2', |
2144 | 2174 | 'moodbar-feedback-top-responders-title' => 'Usuarios que achegaron máis respostas', |
2145 | 2175 | 'moodbar-type-happy' => '{{GENDER:$1|Contento|Contenta}}', |
— | — | @@ -2172,14 +2202,14 @@ |
2173 | 2203 | |
2174 | 2204 | $4 |
2175 | 2205 | |
2176 | | -Lea esta mensaxe na súa [$5 páxina de conversa] |
| 2206 | +Lea esta mensaxe na súa [$5 páxina de conversa]. |
2177 | 2207 | |
2178 | 2208 | Que é unha páxina de conversa? |
2179 | 2209 | A súa páxina de conversa é o lugar onde os editores de {{SITENAME}} se comunican con vostede mediante mensaxes. Pode responder premendo en "Editar" e desprazando o cursor debaixo do comentario; logo escriba a súa resposta e use catro tiles (~~~~) para asinar; finalmente só queda gardar. Todas as páxinas de {{SITENAME}} teñen a súa páxina de conversa asociada e úsanse para moitas cousas. Leva un tempo afacerse a elas, pero é doado unha vez que se usan varias veces. |
2180 | 2210 | |
2181 | | -Aínda ten preguntas? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Este vídeo] (véxao no [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) dá unha guía paso a paso. |
| 2211 | +Aínda ten preguntas? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Este vídeo] (véxao no [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) dá unha guía paso a paso sobre o funcionamento das páxinas de conversa. |
2182 | 2212 | |
2183 | | -Teña un bo día, |
| 2213 | +Grazas por formar parte da comunidade. |
2184 | 2214 | |
2185 | 2215 | -- {{SITENAME}}', |
2186 | 2216 | ); |
— | — | @@ -2229,6 +2259,7 @@ |
2230 | 2260 | |
2231 | 2261 | /** Hebrew (עברית) |
2232 | 2262 | * @author Amire80 |
| 2263 | + * @author Ofekalef |
2233 | 2264 | * @author Ofrahod |
2234 | 2265 | */ |
2235 | 2266 | $messages['he'] = array( |
— | — | @@ -2260,6 +2291,7 @@ |
2261 | 2292 | 'moodbar-privacy' => 'על־ידי שליחה, אתה מסכים לשקיפות לפי $1 הבאים.', |
2262 | 2293 | 'moodbar-privacy-link' => 'התנאים', |
2263 | 2294 | 'moodbar-privacy-link-title' => 'תנאי שימוש', |
| 2295 | + 'moodbar-fbd-link-title' => 'משוב', |
2264 | 2296 | 'moodbar-disable-link' => 'אני לא רוצה. אנא כבו את האפשרות הזאת.', |
2265 | 2297 | 'moodbar-form-title' => 'כי...', |
2266 | 2298 | 'moodbar-form-note' => '140 תווים לכל היותר', |
— | — | @@ -2270,7 +2302,7 @@ |
2271 | 2303 | 'moodbar-loading-title' => 'שיתוף...', |
2272 | 2304 | 'moodbar-success-title' => 'תודה!', |
2273 | 2305 | 'moodbar-error-title' => 'אוי!', |
2274 | | - 'moodbar-success-subtitle' => 'שיתוף חוויית המשתמש שלך עוזר לנו לשפר את $1.', |
| 2306 | + 'moodbar-success-subtitle' => 'שיתוף ה{{FBD-LINK}} שלך עוזר לנו לשפר את $1.', |
2275 | 2307 | 'moodbar-error-subtitle' => 'משהו השתבש! נא לנסות לשתף אותנו במשוב שלך מאוחר יותר.', |
2276 | 2308 | 'moodbar-blocked-title' => 'אוי!', |
2277 | 2309 | 'moodbar-blocked-subtitle' => 'נחסמת מפני עריכה.', |
— | — | @@ -2316,6 +2348,7 @@ |
2317 | 2349 | 'moodbar-feedback-filters-type-sad' => 'עצב', |
2318 | 2350 | 'moodbar-feedback-filters-username' => 'שם משתמש:', |
2319 | 2351 | 'moodbar-feedback-filters-my-response' => 'רק תשובות שלי', |
| 2352 | + 'moodbar-feedback-filters-show-unanswered' => 'הצגת רשומות שלא נענו', |
2320 | 2353 | 'moodbar-feedback-filters-button' => 'הגדרת מסננים', |
2321 | 2354 | 'moodbar-feedback-whatis' => 'מהי התכונה הזו?', |
2322 | 2355 | 'moodbar-feedback-permalink' => 'קישור לכאן', |
— | — | @@ -2344,7 +2377,9 @@ |
2345 | 2378 | 'moodbar-invalid-item' => 'המערכת לא הצליחה למצא את פריט המשוב הנכון.', |
2346 | 2379 | 'moodbar-feedback-action-error' => 'אירעה שגיאה בעת ניסיון לבצע את הפעולה הזאת.', |
2347 | 2380 | 'moodbar-feedback-response-summary' => 'המשתמש [[$1|$2]] [[$3|ענה]] לפני $4', |
| 2381 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|הגיבו]] לפני $4 ו[[$5|$6]] חושבים שזה מועיל.', |
2348 | 2382 | 'moodbar-feedback-edit-summary' => 'תשובה ל[[Special:FeedbackDashboard/$1|משוב ממשתמש]]: $2', |
| 2383 | + 'moodbar-feedback-top-responders-title' => 'העונים הפורים ביותר', |
2349 | 2384 | 'moodbar-type-happy' => '{{GENDER:$1|שמח|שמחה}}', |
2350 | 2385 | 'moodbar-type-sad' => '{{GENDER:$1|עצוב|עצובה}}', |
2351 | 2386 | 'moodbar-type-confused' => '{{GENDER:$1|מבולבל|מבולבלת}}', |
— | — | @@ -2355,6 +2390,7 @@ |
2356 | 2391 | 'moodbar-log-name' => 'יומן משוב', |
2357 | 2392 | 'moodbar-log-header' => 'זהו יומן של פעולות שנעשו על פריטי משוב שרשומים ב[[Special:FeedbackDashboard|לוח הבקרה של המשוב]].', |
2358 | 2393 | 'moodbar-log-hide' => 'הסתיר את [[$1]]', |
| 2394 | + 'moodbar-log-feedback' => 'משוב על סרגל מצב רוח [[$1]]', |
2359 | 2395 | 'moodbar-log-restore' => 'שחזר את הנראוּת של [[$1]]', |
2360 | 2396 | 'moodbar-response-terms' => 'השליחה מהווה הסכמה לשקיפות לפי ה$1 הבאים.', |
2361 | 2397 | 'moodbar-response-link' => 'תנאים', |
— | — | @@ -2366,6 +2402,7 @@ |
2367 | 2403 | 'response-ajax-success-body' => 'תשובתך הוספה.', |
2368 | 2404 | 'response-ajax-error-head' => 'אוי!', |
2369 | 2405 | 'response-ajax-error-body' => 'אירעה שגיאה בהוספת תשובתך.<br />נא לנסות שוב מאוחר יותר.', |
| 2406 | + 'response-concurrency-notification' => 'מישהו התחיל לענות למשוב הזה לפני זמן קצר.', |
2370 | 2407 | 'moodbar-enotif-subject' => 'התקבל מענה מאת $1 למשוב שלך', |
2371 | 2408 | 'moodbar-enotif-body' => 'שלום $1! |
2372 | 2409 | |
— | — | @@ -2373,14 +2410,14 @@ |
2374 | 2411 | |
2375 | 2412 | $4 |
2376 | 2413 | |
2377 | | -אפשר לראות את ההודעה הזאת ב[$5 בדף השיחה שלך] |
| 2414 | +אפשר לראות את ההודעה הזאת ב[$5 בדף השיחה שלך]. |
2378 | 2415 | |
2379 | 2416 | מה זה דף שיחה? |
2380 | | -דף המשתמש שלך הוא הדף שעורכי {{SITENAME}} אחרים משתמשים בו כדי לשוחח אתך. אפשר לענות באמצעות לחיצה על "עריכה", העברת הסמן מתחת להערה, כתיבת התשובה וארבע טילדות (~~~~) כדי לחתום ושמירה. לכל הדפים בדף {{SITENAME}} יש דפי שיחה והם משמשים למטרות שונות רבות. לוקח קצת זמן להתרגל לזה, אבל זה נהיה ממש קל אחרי שמתרגלים. |
| 2417 | +דף המשתמש שלך הוא הדף שעורכי {{SITENAME}} אחרים משתמשים בו כדי לשוחח אתך. אפשר לענות באמצעות לחיצה על "עריכה", העברת הסמן מתחת להערה, כתיבת התשובה וארבע טילדות (~~~~) כדי לחתום ושמירה. לכל הדפים בדף {{SITENAME}} יש דפי שיחה והם משמשים למטרות שונות רבות. לוקח קצת זמן לקלוט את זה, אבל זה נהיה קל למדי אחרי שמתרגלים. |
2381 | 2418 | |
2382 | | -עדיין מבולבלים? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv הסרטון הזה] (שאפשר לראות גם ב־[http://www.youtube.com/watch?v=JdeDLRsB2Es יוטיוב]) נותן מבוא צעד־אחר־צעד. |
| 2419 | +זה עדיין מבלבל? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv הסרטון הזה] (שאפשר לראות גם ב־[http://www.youtube.com/watch?v=JdeDLRsB2Es יוטיוב]) נותן מבוא צעד־אחר־צעד. |
2383 | 2420 | |
2384 | | -יום נעים, |
| 2421 | +תודה על היותך חלק מהקהילה, |
2385 | 2422 | |
2386 | 2423 | -- {{SITENAME}}', |
2387 | 2424 | ); |
— | — | @@ -2497,6 +2534,7 @@ |
2498 | 2535 | 'moodbar-what-link' => 'stronu z funkcijemi', |
2499 | 2536 | 'moodbar-privacy-link' => 'wuměnjenja', |
2500 | 2537 | 'moodbar-privacy-link-title' => 'Wužiwarske wuměnjenja', |
| 2538 | + 'moodbar-fbd-link-title' => 'komentar', |
2501 | 2539 | 'moodbar-disable-link' => 'Njejsym zajimowany. Prošu znjemóžńće tutu funkciju.', |
2502 | 2540 | 'moodbar-form-title' => 'Dokelž...', |
2503 | 2541 | 'moodbar-form-note' => 'Maksimalnje 140 znamješkow', |
— | — | @@ -2566,6 +2604,7 @@ |
2567 | 2605 | 'moodbar-action-reason-required' => 'Prošu podaj přičinu.', |
2568 | 2606 | 'moodbar-feedback-action-error' => 'Při wuwjedźenju tuteje akcije je zmylk wustupił.', |
2569 | 2607 | 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|wotmołwi]] před $4', |
| 2608 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|wotmołwi]] před $4 a [[$5|$6]] ma wotmołwu za pomocliwu', |
2570 | 2609 | 'moodbar-feedback-edit-summary' => 'Wotmołwa na [[Special:FeedbackDashboard/$1|komentar wužiwarja]]: $2', |
2571 | 2610 | 'moodbar-feedback-top-responders-title' => 'Wužiwarjo z najwjace komentarami', |
2572 | 2611 | 'moodbar-type-happy' => '{{GENDER:$1|Zbožowny|Zbožowna}}', |
— | — | @@ -2734,6 +2773,7 @@ |
2735 | 2774 | 'moodbar-privacy' => 'Per submitter, tu accepta que tu contribution essera usate publicamente sub iste $1.', |
2736 | 2775 | 'moodbar-privacy-link' => 'conditiones', |
2737 | 2776 | 'moodbar-privacy-link-title' => 'Conditiones de uso', |
| 2777 | + 'moodbar-fbd-link-title' => 'retroaction', |
2738 | 2778 | 'moodbar-disable-link' => 'Isto non me interessa. Per favor disactiva iste function.', |
2739 | 2779 | 'moodbar-form-title' => 'Perque...', |
2740 | 2780 | 'moodbar-form-note' => 'maximo 140 characteres', |
— | — | @@ -2744,7 +2784,7 @@ |
2745 | 2785 | 'moodbar-loading-title' => 'Invio in curso...', |
2746 | 2786 | 'moodbar-success-title' => 'Gratias!', |
2747 | 2787 | 'moodbar-error-title' => 'Ups!', |
2748 | | - 'moodbar-success-subtitle' => 'Per specificar tu experientia durante le modification, tu nos adjuta a meliorar $1.', |
| 2788 | + 'moodbar-success-subtitle' => 'Relatar le tue {{FBD-LINK}} pote adjutar nos a meliorar $1.', |
2749 | 2789 | 'moodbar-error-subtitle' => 'Un problema ha occurrite! Per favor tenta specificar tu retroaction de novo plus tarde.', |
2750 | 2790 | 'moodbar-blocked-title' => 'Ups!', |
2751 | 2791 | 'moodbar-blocked-subtitle' => 'Le modification ha essite blocate pro te.', |
— | — | @@ -2819,6 +2859,7 @@ |
2820 | 2860 | 'moodbar-invalid-item' => 'Le systema non poteva trovar le elemento de retroaction correcte.', |
2821 | 2861 | 'moodbar-feedback-action-error' => 'Un error occurreva durante le tentativa de exequer iste action.', |
2822 | 2862 | 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|respondeva]] $4 retro', |
| 2863 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|respondeva]] $4 retro e [[$5|$6]] lo trova utile', |
2823 | 2864 | 'moodbar-feedback-edit-summary' => 'Responsa a [[Special:FeedbackDashboard/$1|retroaction de usator]]: $2', |
2824 | 2865 | 'moodbar-feedback-top-responders-title' => 'Top de responditores', |
2825 | 2866 | 'moodbar-type-happy' => '{{GENDER:$1|Felice}}', |
— | — | @@ -2851,14 +2892,14 @@ |
2852 | 2893 | |
2853 | 2894 | $4 |
2854 | 2895 | |
2855 | | -Vide iste message in tu [$5 pagina de discussion] |
| 2896 | +Vide iste message in tu [$5 pagina de discussion]. |
2856 | 2897 | |
2857 | 2898 | Que es un pagina de discussion? |
2858 | | -Tu pagina de discussion personal es le pagina que altere usatores de {{SITENAME}} usa pro communicar con te. Tu pote responder per cliccar sur “Modificar”, displaciar le cursor a sub le commento, digitar tu responsa e quatro tildes (~~~~) pro adjunger un signatura, e cliccar sur Publicar. Tote le paginas in {{SITENAME}} ha paginas de discussion, e illes es usate pro multe e varie scopos. Il prende un tempore familiarisar se con tote isto, ma il es multo facile quando on se ha accostumate. |
| 2899 | +Tu pagina de discussion personal es le pagina que altere usatores de {{SITENAME}} usa pro communicar con te. Tu pote responder per cliccar sur "Modificar", displaciar le cursor a sub le commento, digitar tu responsa e quatro tildes (~~~~) pro adjunger un signatura, e cliccar sur Publicar. Tote le paginas in {{SITENAME}} ha paginas de discussion, e illos es usate pro multe e varie scopos. Il prende un tempore familiarisar se con tote isto, ma il es multo facile quando on se ha accostumate. |
2859 | 2900 | |
2860 | | -Confuse ancora? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Iste video] (reguardar in [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) te da un explication passo a passo. |
| 2901 | +Confuse ancora? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Iste video] (reguardar in [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) te da un explication passo a passo de como functiona le paginas de discussion. |
2861 | 2902 | |
2862 | | -Con salutes, |
| 2903 | +Gratias pro facer parte del communitate. |
2863 | 2904 | |
2864 | 2905 | -- {{SITENAME}}', |
2865 | 2906 | ); |
— | — | @@ -3047,6 +3088,7 @@ |
3048 | 3089 | 'moodbar-what-content' => "Dës Fonctioun ass dofir geduecht fir der Gemeinschaft z'erlaben ze verstoen wéi déi Leit déi Ännerunge maachen de Site erliewen. |
3049 | 3090 | Fir méi Informatiounen, gitt w.e.g. op d'$1.", |
3050 | 3091 | 'moodbar-what-link' => 'Säit vun de Fonctiounen', |
| 3092 | + 'moodbar-privacy' => "Mam Späichere confirméiert Dir datt Dir mat den Transparenz-$1 d'accord sidd.", |
3051 | 3093 | 'moodbar-privacy-link' => 'Bedingungen', |
3052 | 3094 | 'moodbar-privacy-link-title' => 'Benotzungs-Bedingungen', |
3053 | 3095 | 'moodbar-disable-link' => 'Ech sinn net interesséiert. Schalt dës Fonctioun w.e.g. aus.', |
— | — | @@ -3119,6 +3161,7 @@ |
3120 | 3162 | 'moodbar-user-ip' => 'IP-Adress', |
3121 | 3163 | 'moodbar-user-user' => 'Registréierte Benotzer', |
3122 | 3164 | 'moodbar-log-hide' => 'huet [[$1]] verstoppt', |
| 3165 | + 'moodbar-log-feedback' => 'Feedback iwwer MoodBar [[$1]]', |
3123 | 3166 | 'moodbar-response-link' => 'Bedingungen', |
3124 | 3167 | 'response-back-text' => 'Zréck', |
3125 | 3168 | 'response-preview-text' => 'Kucken ouni ofzespäicheren', |
— | — | @@ -3264,6 +3307,7 @@ |
3265 | 3308 | 'moodbar-privacy' => 'Поднесувајќи го ова, се согласувате на транспарентност под следниве $1.', |
3266 | 3309 | 'moodbar-privacy-link' => 'услови', |
3267 | 3310 | 'moodbar-privacy-link-title' => 'Услови на употреба', |
| 3311 | + 'moodbar-fbd-link-title' => 'мислења', |
3268 | 3312 | 'moodbar-disable-link' => 'Не сум заинтересиран. Оневозможи ја функцијава.', |
3269 | 3313 | 'moodbar-form-title' => 'Бидејќи...', |
3270 | 3314 | 'moodbar-form-note' => 'највеќе 140 знаци', |
— | — | @@ -3274,7 +3318,7 @@ |
3275 | 3319 | 'moodbar-loading-title' => 'Споделувам...', |
3276 | 3320 | 'moodbar-success-title' => 'Благодариме!', |
3277 | 3321 | 'moodbar-error-title' => 'Упс!', |
3278 | | - 'moodbar-success-subtitle' => 'Споделувајќи го вашето уредувачко искуство ни помагате да ја подобриме $1.', |
| 3322 | + 'moodbar-success-subtitle' => 'Споделувајќи го вашето {{FBD-LINK}} ни помагате да ја подобриме $1.', |
3279 | 3323 | 'moodbar-error-subtitle' => 'Нешто не е во ред! Обидете се да го споделите вашето мислење подоцна.', |
3280 | 3324 | 'moodbar-blocked-title' => 'Упс!', |
3281 | 3325 | 'moodbar-blocked-subtitle' => 'Блокирани сте од уредување.', |
— | — | @@ -3348,6 +3392,7 @@ |
3349 | 3393 | 'moodbar-invalid-item' => 'Системот не можеше да го најде бараното мислење', |
3350 | 3394 | 'moodbar-feedback-action-error' => 'Настана грешка при обидот да се изврши дејството.', |
3351 | 3395 | 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|одговори]] пред $4', |
| 3396 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|одговори]] пред $4, а [[$5|$6]] го смета одговорот за корисен', |
3352 | 3397 | 'moodbar-feedback-edit-summary' => 'Одговор на [[Special:FeedbackDashboard/$1|искажано мислење]]: $2', |
3353 | 3398 | 'moodbar-feedback-top-responders-title' => 'Најистакнати одговарачи', |
3354 | 3399 | 'moodbar-type-happy' => '{{GENDER:$1|Среќен|Среќна|Среќен}}', |
— | — | @@ -3386,9 +3431,9 @@ |
3387 | 3432 | Што е страница за разговор? |
3388 | 3433 | Вашата страница ра разговор е местото кадешто другите уредници на {{SITENAME}} општат со вас. За да одговорите, стиснете на „Уреди“, ја носите стрелката под коментарот, го пишувате одговорот, ставата четири тилди за да се потпишете (~~~~), па ја зачувувате страницата. Сите страници на {{SITENAME}} имаат свои страници за разговор, и имаат најразлични намени. Може да ви треба некое време за да се привикнете, но потоа ќе ви биде многу лесно. |
3389 | 3434 | |
3390 | | -Сè уште сте збунети? [http://mk.wikipedia.org/wiki/Податотека:Wikipedia_basics_-_Talk_pages.ogv Ова видео] ([http://www.youtube.com/watch?v=JdeDLRsB2Es на YouTube]) ќе ве воведе во нештата чекор по чекор. |
| 3435 | +Сè уште сте збунети? [http://mk.wikipedia.org/wiki/Податотека:Wikipedia_basics_-_Talk_pages.ogv Ова видео] ([http://www.youtube.com/watch?v=JdeDLRsB2Es на YouTube]) ќе ве воведе во страниците за разговор чекор по чекор. |
3391 | 3436 | |
3392 | | -Пријатен ден, |
| 3437 | +Ви благодариме што сте дел од заедницата. |
3393 | 3438 | |
3394 | 3439 | -- {{SITENAME}}', |
3395 | 3440 | ); |
— | — | @@ -3399,6 +3444,9 @@ |
3400 | 3445 | $messages['ml'] = array( |
3401 | 3446 | 'moodbar-trigger-share' => 'താങ്കളുടെ അനുഭവം പങ്ക്വെയ്ക്കുക', |
3402 | 3447 | 'moodbar-trigger-editing' => '$1 തിരുത്തുമ്പോൾ...', |
| 3448 | + 'moodbar-weeks' => '{{PLURAL:$1|ഒരാഴ്ച്ച|$1 ആഴ്ച്ച}}', |
| 3449 | + 'moodbar-months' => '{{PLURAL:$1|ഒരു മാസം|$1 മാസം}}', |
| 3450 | + 'moodbar-years' => '{{PLURAL:$1|ഒരു വർഷം|$2 വർഷം}}', |
3403 | 3451 | 'moodbar-close' => '(അടയ്ക്കുക)', |
3404 | 3452 | 'moodbar-intro-feedback' => '$1 തിരുത്തിയപ്പോൾ എനിക്ക്...', |
3405 | 3453 | 'moodbar-intro-share' => '$1 സംരംഭത്തിലെ എന്റെ അനുഭവം എന്നെ...', |
— | — | @@ -3455,7 +3503,7 @@ |
3456 | 3504 | 'moodbar-header-own-talk' => 'സ്വന്തം സംവാദം താൾ', |
3457 | 3505 | 'moodbar-feedback-filters' => 'അരിപ്പകൾ', |
3458 | 3506 | 'moodbar-feedback-filters-type' => 'തരം:', |
3459 | | - 'moodbar-feedback-filters-username' => 'ഉപയോക്തൃനാമം', |
| 3507 | + 'moodbar-feedback-filters-username' => 'ഉപയോക്തൃനാമം:', |
3460 | 3508 | 'moodbar-feedback-filters-button' => 'അരിപ്പകൾ സജ്ജീകരിക്കുക', |
3461 | 3509 | 'moodbar-feedback-whatis' => 'ഈ സവിശേഷത എന്താണ്?', |
3462 | 3510 | 'moodbar-feedback-permalink' => 'ഇങ്ങോട്ടുള്ള കണ്ണികൾ', |
— | — | @@ -3517,6 +3565,7 @@ |
3518 | 3566 | 'moodbar-privacy' => 'Dengan penyerahan ini, anda bersetuju dengan ketelusan di bawah $1 ini.', |
3519 | 3567 | 'moodbar-privacy-link' => 'syarat-syarat', |
3520 | 3568 | 'moodbar-privacy-link-title' => 'Syarat-Syarat Penggunaan', |
| 3569 | + 'moodbar-fbd-link-title' => 'maklum balas', |
3521 | 3570 | 'moodbar-disable-link' => 'Saya tak minat. Sila matikan ciri ini.', |
3522 | 3571 | 'moodbar-form-title' => 'Kerana...', |
3523 | 3572 | 'moodbar-form-note' => 'maksimum 140 aksara', |
— | — | @@ -3527,7 +3576,7 @@ |
3528 | 3577 | 'moodbar-loading-title' => 'Berkongsi...', |
3529 | 3578 | 'moodbar-success-title' => 'Terima kasih!', |
3530 | 3579 | 'moodbar-error-title' => 'Alamak!', |
3531 | | - 'moodbar-success-subtitle' => 'Berkongsi pengalaman menyunting anda membantu kami meningkatkan $1.', |
| 3580 | + 'moodbar-success-subtitle' => 'Berkongsi {{FBD-LINK}} anda membantu kami meningkatkan $1.', |
3532 | 3581 | 'moodbar-error-subtitle' => 'Ada yang tak kena! Sila cuba berkongsi maklum balas anda kemudian.', |
3533 | 3582 | 'moodbar-blocked-title' => 'Alamak!', |
3534 | 3583 | 'moodbar-blocked-subtitle' => 'Anda disekat daripada menyunting.', |
— | — | @@ -3601,6 +3650,7 @@ |
3602 | 3651 | 'moodbar-invalid-item' => 'Sistem tidak dapat mencari butiran maklum balas yang betul.', |
3603 | 3652 | 'moodbar-feedback-action-error' => 'Ralat berlaku ketika cuba melakukan tindakan ini.', |
3604 | 3653 | 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|membalas]] $4 lalu', |
| 3654 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|membalas]] pada $4 lalu, [[$5|$6]] mendapatinya membantu', |
3605 | 3655 | 'moodbar-feedback-edit-summary' => 'Jawapan kepada [[Special:FeedbackDashboard/$1|maklum balas penggun]]: $2', |
3606 | 3656 | 'moodbar-feedback-top-responders-title' => 'Pembalas Teratas', |
3607 | 3657 | 'moodbar-type-happy' => '{{GENDER:$1|Gembira}}', |
— | — | @@ -3633,14 +3683,14 @@ |
3634 | 3684 | |
3635 | 3685 | $4 |
3636 | 3686 | |
3637 | | -Baca pesanan ini dalam [$5 laman perbincangan] anda |
| 3687 | +Baca pesanan ini dalam [$5 laman perbincangan] anda. |
3638 | 3688 | |
3639 | 3689 | Laman perbincangan itu apa? |
3640 | | -Laman perbincangan pengguna anda ialah laman yang digunakan oleh para penyunting {{SITENAME}} yang lain untuk berhubung dengan anda. Anda boleh membalas dengan mengklik “Sunting”, mengalihkan kursor ke bawah ulasan, menaipkan balasan anda dengan diakhiri empat tanda tilde (~~~~), dan menyimpan. Kesemua laman di {{SITENAME}} ada laman perbincangan yang digunakan untuk pelbagai kegunaan yang berbeza. Mula-mula anda perlu membiasakan diri, tetapi lambat-laun semuanya menjadi mudah. |
| 3690 | +Laman perbincangan pengguna anda ialah laman yang digunakan oleh para penyunting {{SITENAME}} yang lain untuk berhubung dengan anda. Anda boleh membalas dengan mengklik "Sunting", mengalihkan kursor ke bawah ulasan, menaipkan balasan anda dengan diakhiri empat tanda tilde (~~~~), dan menyimpan. Kesemua laman di {{SITENAME}} ada laman perbincangan yang digunakan untuk pelbagai kegunaan yang berbeza. Mula-mula anda perlu membiasakan diri, tetapi lambat-laun semuanya menjadi mudah. |
3641 | 3691 | |
3642 | | -Masih tak faham? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Video ini] (tonton di [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) menunjukkan anda langkah demi langkah. (Bahasa Inggeris sahaja) |
| 3692 | +Masih tak faham? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Video ini] (tonton di [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) menunjukkan anda intisari penggunaan laman perbincangan selangkah demi selangkah. (Bahasa Inggeris sahaja) |
3643 | 3693 | |
3644 | | -Semoga ceria, |
| 3694 | +Terima kasih kerana menyertai komuniti ini. |
3645 | 3695 | |
3646 | 3696 | -- {{SITENAME}}', |
3647 | 3697 | ); |
— | — | @@ -3716,6 +3766,7 @@ |
3717 | 3767 | 'moodbar-privacy' => 'Door op te slaan gaat u akkoord met transparantie onder deze $1.', |
3718 | 3768 | 'moodbar-privacy-link' => 'voorwaarden', |
3719 | 3769 | 'moodbar-privacy-link-title' => 'Gebruiksvoorwaarden', |
| 3770 | + 'moodbar-fbd-link-title' => 'terugkoppeling', |
3720 | 3771 | 'moodbar-disable-link' => 'Ik ben niet geïnteresseerd. Schakel deze functie uit.', |
3721 | 3772 | 'moodbar-form-title' => 'Omdat...', |
3722 | 3773 | 'moodbar-form-note' => 'Maximaal 140 tekens', |
— | — | @@ -3726,7 +3777,7 @@ |
3727 | 3778 | 'moodbar-loading-title' => 'Bezig met delen...', |
3728 | 3779 | 'moodbar-success-title' => 'Bedankt!', |
3729 | 3780 | 'moodbar-error-title' => 'Oeps!', |
3730 | | - 'moodbar-success-subtitle' => 'Door het delen van uw ervaringen bij het bewerken, helpt u mee $1 te verbeteren.', |
| 3781 | + 'moodbar-success-subtitle' => 'Door het delen van uw {{FBD-LINK}} bij het bewerken, helpt u mee $1 te verbeteren.', |
3731 | 3782 | 'moodbar-error-subtitle' => 'Er is iets misgegaan! Probeer later opnieuw uw terugkoppeling te delen.', |
3732 | 3783 | 'moodbar-blocked-title' => 'Oeps!', |
3733 | 3784 | 'moodbar-blocked-subtitle' => 'U bent geblokkeerd en kunt niet bewerken.', |
— | — | @@ -3800,6 +3851,7 @@ |
3801 | 3852 | 'moodbar-invalid-item' => 'Het systeem kon het juiste terugkoppelingsitem niet vinden.', |
3802 | 3853 | 'moodbar-feedback-action-error' => 'Er is een fout opgetreden tijdens het uitvoeren van deze handeling.', |
3803 | 3854 | 'moodbar-feedback-response-summary' => '[[$1|$2]] heeft $4 geleden [[$3|gereageerd]]', |
| 3855 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|antwoordde]] $4 geleden en [[$5|$6]] vindt dit nuttig', |
3804 | 3856 | 'moodbar-feedback-edit-summary' => 'Antwoord op [[Special:FeedbackDashboard/$1|terugkoppeling]]: $2', |
3805 | 3857 | 'moodbar-feedback-top-responders-title' => 'Topbeantwoorders', |
3806 | 3858 | 'moodbar-type-happy' => '{{GENDER:$1|Blij}}', |
— | — | @@ -3812,6 +3864,7 @@ |
3813 | 3865 | 'moodbar-log-name' => 'Terugkoppelingslogboek', |
3814 | 3866 | 'moodbar-log-header' => 'Dit is een logboek met uitgevoerde handelingen op items uit het [[Special:FeedbackDashboard|terugkoppelingsdashboard]].', |
3815 | 3867 | 'moodbar-log-hide' => 'heeft [[$1]] verborgen', |
| 3868 | + 'moodbar-log-feedback' => 'MoodBar-terugkoppeling [[$1]]', |
3816 | 3869 | 'moodbar-log-restore' => 'heeft [[$1]] weer zichtbaar gemaakt', |
3817 | 3870 | 'moodbar-response-terms' => 'Door op te slaan gaat u akkoord met transparantie onder deze $1.', |
3818 | 3871 | 'moodbar-response-link' => 'voorwaarden', |
— | — | @@ -3836,9 +3889,9 @@ |
3837 | 3890 | Wat is een overlegpagina? |
3838 | 3891 | Uw overlegpagina is de pagina waar andere gebruikers van {{SITENAME}} met u kunnen communiceren. U kunt antwoorden door op "Bewerken" te klikken en uw cursor te verplaatsen tot onder de reactie. Daar kunt u weer antwoorden en vier tildes (~~~~) toevoegen als ondertekening. Sla daarna de pagina op. Alle pagina\'s in {{SITENAME}} hebben een overlegpagina en deze worden gebruikt voor veel doeleinden. Het duurt even voordat u het door zult hebben, maar daarna is het vanzelfspreken. |
3839 | 3892 | |
3840 | | -Nog steeds in verwarring? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Deze video] (ook [http://www.youtube.com/watch?v=JdeDLRsB2Es op YouTube] beschikbaar) laat het u stop voor stap zien. |
| 3893 | +Nog steeds in verwarring? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Deze video] (ook [http://www.youtube.com/watch?v=JdeDLRsB2Es op YouTube] beschikbaar) laat u stap voor stap zien hoe overlegpagina\'s werken. |
3841 | 3894 | |
3842 | | -Nog een fijne dag! |
| 3895 | +Bedankt om deel uit te maken van de gemeenschap. |
3843 | 3896 | |
3844 | 3897 | -- {{SITENAME}}', |
3845 | 3898 | ); |
— | — | @@ -4250,6 +4303,7 @@ |
4251 | 4304 | 'moodbar-log-name' => 'Registr dij coment', |
4252 | 4305 | 'moodbar-log-header' => "Cost-sì a l'é ël registr dj'assion fàite ansima ai coment listà an sël [[Special:FeedbackDashboard|cruscòt dij coment]].", |
4253 | 4306 | 'moodbar-log-hide' => 'stërma [[$1]]', |
| 4307 | + 'moodbar-log-feedback' => "Opinion an sla bara d'umor [[$1]]", |
4254 | 4308 | 'moodbar-log-restore' => 'ripristinà la visibilità për [[$1]]', |
4255 | 4309 | 'moodbar-response-terms' => 'An sgnacand, a aceta na trasparensa conforma a coste $1.', |
4256 | 4310 | 'moodbar-response-link' => 'condission', |
— | — | @@ -4464,7 +4518,7 @@ |
4465 | 4519 | 'moodbar-loading-title' => 'Partajare...', |
4466 | 4520 | 'moodbar-success-title' => 'Mulțumesc!', |
4467 | 4521 | 'moodbar-error-title' => 'Ups!', |
4468 | | - 'moodbar-success-subtitle' => 'Împărtășindu-ne experiența dumneavoastră ne ajutați să îmbunătățim $1.', |
| 4522 | + 'moodbar-success-subtitle' => 'Împărtășindu-ne {{FBD-LINK}} ne ajutați să îmbunătățim $1.', |
4469 | 4523 | 'moodbar-error-subtitle' => 'Ceva nu a mers bine! Încercați din nou mai târziu.', |
4470 | 4524 | 'moodbar-blocked-title' => 'Ups!', |
4471 | 4525 | 'moodbar-email-title' => 'Adăugați e-mailul', |
— | — | @@ -4993,6 +5047,7 @@ |
4994 | 5048 | 'moodbar-trigger-feedback' => 'Povratne informacije o urejanju', |
4995 | 5049 | 'moodbar-trigger-share' => 'Delite svoje izkušnje', |
4996 | 5050 | 'moodbar-trigger-editing' => 'Urejanje $1 ...', |
| 5051 | + 'moodbar-seconds' => 'manj kot eno minuto', |
4997 | 5052 | 'moodbar-close' => '(zapri)', |
4998 | 5053 | 'moodbar-intro-feedback' => 'Urejanje $1 me je naredilo ...', |
4999 | 5054 | 'moodbar-intro-share' => 'Moja izkušnja na $1 me je naredila ...', |
— | — | @@ -5012,6 +5067,7 @@ |
5013 | 5068 | 'moodbar-privacy' => 'S potrditvijo se strinjate s preglednostjo pod temi $1.', |
5014 | 5069 | 'moodbar-privacy-link' => 'pogoji', |
5015 | 5070 | 'moodbar-privacy-link-title' => 'Pogoji uporabe', |
| 5071 | + 'moodbar-fbd-link-title' => 'povratne informacije', |
5016 | 5072 | 'moodbar-disable-link' => 'Me ne zanima. Prosim, onemogoči to funkcijo.', |
5017 | 5073 | 'moodbar-form-title' => 'Ker ...', |
5018 | 5074 | 'moodbar-form-note' => 'največ 140 znakov', |
— | — | @@ -5022,7 +5078,7 @@ |
5023 | 5079 | 'moodbar-loading-title' => 'Deljenje ...', |
5024 | 5080 | 'moodbar-success-title' => 'Hvala!', |
5025 | 5081 | 'moodbar-error-title' => 'Ups!', |
5026 | | - 'moodbar-success-subtitle' => 'Deljenje vaše urejevalne izkušnje nam pomaga izboljšati $1.', |
| 5082 | + 'moodbar-success-subtitle' => 'Deljenje vaše {{FBD-LINK}} nam pomaga izboljšati $1.', |
5027 | 5083 | 'moodbar-error-subtitle' => 'Nekaj je šlo narobe! Prosimo, poskusite znova deliti svojo povratno informacijo pozneje.', |
5028 | 5084 | 'moodbar-blocked-title' => 'Ups!', |
5029 | 5085 | 'moodbar-blocked-subtitle' => 'Urejanje vam je preprečeno.', |
— | — | @@ -5068,6 +5124,7 @@ |
5069 | 5125 | 'moodbar-feedback-filters-type-sad' => 'Žalostno', |
5070 | 5126 | 'moodbar-feedback-filters-username' => 'Uporabniško ime:', |
5071 | 5127 | 'moodbar-feedback-filters-my-response' => 'Samo moji odgovori', |
| 5128 | + 'moodbar-feedback-filters-show-unanswered' => 'Prikaži neodgovorjene', |
5072 | 5129 | 'moodbar-feedback-filters-button' => 'Nastavi filtre', |
5073 | 5130 | 'moodbar-feedback-whatis' => 'Kaj je ta funkcija?', |
5074 | 5131 | 'moodbar-feedback-permalink' => 'povezava do sem', |
— | — | @@ -5124,14 +5181,14 @@ |
5125 | 5182 | |
5126 | 5183 | $4 |
5127 | 5184 | |
5128 | | -Oglejte si sporočilo na svoji [$5 pogovorni strani] |
| 5185 | +Oglejte si sporočilo na svoji [$5 pogovorni strani]. |
5129 | 5186 | |
5130 | 5187 | Kaj je pogovorna stran? |
5131 | 5188 | Vaša uporabniška pogovorna stran je stran, kjer se lahko drugi uporabniki {{GRAMMAR:rodilnik|{{SITENAME}}}} sporazumevajo z vami. Odgovorite lahko s klikom na »Uredi stran«. Miškin kazalec postavite pod pripombo, napišete svoj odgovor, se podpišete s štirimi vijugami (~~~~) in stran shranite. Vse strani {{GRAMMAR:rodilnik|{{SITENAME}}}} imajo svojo pogovorno stran. Uporablja se jo za več različnih namenov. Včasih učenje vzame nekaj časa, vendar je uporaba precej preprosta, ko se je navadite. |
5132 | 5189 | |
5133 | | -Ste še negotovi? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Ta video] (na [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTubeu]) vam jih predstavi korak za korakom. |
| 5190 | +Ste še negotovi? [http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv Videoposnetek] (na [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTubu]) vam korak za korakom predstavi delovanje pogovornih strani. |
5134 | 5191 | |
5135 | | -Želimo vam lep dan, |
| 5192 | +Hvala, ker ste del skupnosti, |
5136 | 5193 | |
5137 | 5194 | -- {{SITENAME}}', |
5138 | 5195 | ); |
— | — | @@ -5640,6 +5697,10 @@ |
5641 | 5698 | 'moodbar-trigger-feedback' => 'Phản hồi về sửa đổi', |
5642 | 5699 | 'moodbar-trigger-share' => 'Chia sẻ ấn tượng của bạn', |
5643 | 5700 | 'moodbar-trigger-editing' => 'Việc sửa đổi $1…', |
| 5701 | + 'moodbar-weeks' => '$1 tuần', |
| 5702 | + 'moodbar-months' => '$1 tháng', |
| 5703 | + 'moodbar-years' => '$1 năm', |
| 5704 | + 'moodbar-seconds' => 'ít hơn 1 một', |
5644 | 5705 | 'moodbar-close' => '(đóng)', |
5645 | 5706 | 'moodbar-intro-feedback' => 'Việc sửa đổi $1 làm cho tôi có vẻ…', |
5646 | 5707 | 'moodbar-intro-share' => 'Việc sử dụng $1 làm cho tôi có vẻ…', |
— | — | @@ -5659,6 +5720,7 @@ |
5660 | 5721 | 'moodbar-privacy' => 'Bằng cách gửi thông tin, bạn đồng ý phát hành thông tin này công khai theo các $1 này.', |
5661 | 5722 | 'moodbar-privacy-link' => 'điều khoản', |
5662 | 5723 | 'moodbar-privacy-link-title' => 'Điều khoản sử dụng', |
| 5724 | + 'moodbar-fbd-link-title' => 'phản hồi', |
5663 | 5725 | 'moodbar-disable-link' => 'Thôi, xin tắt tính năng này.', |
5664 | 5726 | 'moodbar-form-title' => 'Bởi vì…', |
5665 | 5727 | 'moodbar-form-note' => 'tối đa 150 ký tự nữa', |
— | — | @@ -5669,7 +5731,7 @@ |
5670 | 5732 | 'moodbar-loading-title' => 'Đang chia sẻ…', |
5671 | 5733 | 'moodbar-success-title' => 'Cám ơn!', |
5672 | 5734 | 'moodbar-error-title' => 'Ôi!', |
5673 | | - 'moodbar-success-subtitle' => 'Việc chia sẻ những ấn tượng về quá trình sửa đổi giúp chúng tôi cải thiện $1.', |
| 5735 | + 'moodbar-success-subtitle' => 'Việc chia sẻ {{FBD-LINK}} giúp chúng tôi cải thiện $1.', |
5674 | 5736 | 'moodbar-error-subtitle' => 'Oái, đã bị trục trặc! Xin vui lòng chia sẻ phản hồi của bạn lát nữa.', |
5675 | 5737 | 'moodbar-blocked-title' => 'Ôi!', |
5676 | 5738 | 'moodbar-blocked-subtitle' => 'Bạn đã bị cấm không được sửa đổi.', |
— | — | @@ -5715,6 +5777,7 @@ |
5716 | 5778 | 'moodbar-feedback-filters-type-sad' => 'Bực mình', |
5717 | 5779 | 'moodbar-feedback-filters-username' => 'Tên người dùng:', |
5718 | 5780 | 'moodbar-feedback-filters-my-response' => 'Chỉ hồi đáp của tôi', |
| 5781 | + 'moodbar-feedback-filters-show-unanswered' => 'Hiện chưa đáp', |
5719 | 5782 | 'moodbar-feedback-filters-button' => 'Áp dụng bộ lọc', |
5720 | 5783 | 'moodbar-feedback-whatis' => 'Tính năng này làm gì?', |
5721 | 5784 | 'moodbar-feedback-permalink' => 'liên kết đến đây', |
— | — | @@ -5742,7 +5805,9 @@ |
5743 | 5806 | 'moodbar-invalid-item' => 'Không tìm thấy khoản mục phản hồi đúng.', |
5744 | 5807 | 'moodbar-feedback-action-error' => 'Có lỗi khi thực hiện tác vụ này.', |
5745 | 5808 | 'moodbar-feedback-response-summary' => '[[$1|$2]] đã [[$3|hồi đáp]] cách đây $4', |
| 5809 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] đã [[$3|hồi đáp]] cách đây $4 và [[$5|$6]] cảm thấy nó có ích', |
5746 | 5810 | 'moodbar-feedback-edit-summary' => 'Đã hồi đáp [[Special:FeedbackDashboard/$1|phản hồi của người dùng]]: $2', |
| 5811 | + 'moodbar-feedback-top-responders-title' => 'Người hồi đáp nhiều nhất', |
5747 | 5812 | 'moodbar-type-happy' => '{{GENDER:$1}}Hài lòng', |
5748 | 5813 | 'moodbar-type-sad' => '{{GENDER:$1}}Bực mình', |
5749 | 5814 | 'moodbar-type-confused' => '{{GENDER:$1}}Bối rối', |
— | — | @@ -5753,6 +5818,7 @@ |
5754 | 5819 | 'moodbar-log-name' => 'Nhật trình phản hồi', |
5755 | 5820 | 'moodbar-log-header' => 'Nhật trình này liệt kê các tác vụ được thực hiện do các khoản mục phản hồi trên [[Special:FeedbackDashboard|bảng điều khiển phản hồi]].', |
5756 | 5821 | 'moodbar-log-hide' => 'đã ẩn [[$1]]', |
| 5822 | + 'moodbar-log-feedback' => 'Phản hồi MoodBar [[$1]]', |
5757 | 5823 | 'moodbar-log-restore' => 'đã phục hồi mức hiển thị của [[$1]]', |
5758 | 5824 | 'moodbar-response-terms' => 'Bằng cách gửi thông tin, bạn đồng ý phát hành thông tin này công khai theo các $1 này.', |
5759 | 5825 | 'moodbar-response-link' => 'điều khoản', |
— | — | @@ -5764,6 +5830,7 @@ |
5765 | 5831 | 'response-ajax-success-body' => 'Đã thêm hồi đáp của bạn.', |
5766 | 5832 | 'response-ajax-error-head' => 'Oái!', |
5767 | 5833 | 'response-ajax-error-body' => 'Xuất hiện lỗi khi thêm hồi đáp của bạn.<br />Xin vui lòng thử lại sau.', |
| 5834 | + 'response-concurrency-notification' => 'Ai đó mới bắt đầu hồi đáp phản hồi này.', |
5768 | 5835 | 'moodbar-enotif-subject' => '$1 đã hồi đáp phản hồi của bạn', |
5769 | 5836 | 'moodbar-enotif-body' => 'Xin chào $1! |
5770 | 5837 | |
— | — | @@ -5778,7 +5845,7 @@ |
5779 | 5846 | |
5780 | 5847 | Vẫn còn thắc mắc? [http://vi.wikipedia.org/wiki/Tập_tin:Wikipedia_basics_-_Talk_pages.ogv Video này] (coi trên [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]) chỉ dẫn từng bước một. |
5781 | 5848 | |
5782 | | -Chúc vui vẻ, |
| 5849 | +Cám ơn bạn tham gia cộng đồng, |
5783 | 5850 | |
5784 | 5851 | {{SITENAME}}', |
5785 | 5852 | ); |
— | — | @@ -5845,6 +5912,7 @@ |
5846 | 5913 | 'moodbar-privacy' => '提交后,您将同意在$1下的透明度。', |
5847 | 5914 | 'moodbar-privacy-link' => '条款', |
5848 | 5915 | 'moodbar-privacy-link-title' => '使用条款', |
| 5916 | + 'moodbar-fbd-link-title' => '反馈', |
5849 | 5917 | 'moodbar-disable-link' => '我不感兴趣,请禁用此功能。', |
5850 | 5918 | 'moodbar-form-title' => '因为……', |
5851 | 5919 | 'moodbar-form-note' => '最多140字', |
— | — | @@ -5855,7 +5923,7 @@ |
5856 | 5924 | 'moodbar-loading-title' => '分享中……', |
5857 | 5925 | 'moodbar-success-title' => '感谢!', |
5858 | 5926 | 'moodbar-error-title' => '糟糕!', |
5859 | | - 'moodbar-success-subtitle' => '分享您的编辑体验,帮助我们改善$1。', |
| 5927 | + 'moodbar-success-subtitle' => '分享您的{{FBD-LINK}},帮助我们改善$1。', |
5860 | 5928 | 'moodbar-error-subtitle' => '出错啦!请重试分享您的反馈意见。', |
5861 | 5929 | 'moodbar-blocked-title' => '糟糕!', |
5862 | 5930 | 'moodbar-blocked-subtitle' => '您已被封禁,不能编辑。', |
— | — | @@ -5930,6 +5998,7 @@ |
5931 | 5999 | 'moodbar-invalid-item' => '本系统无法找到正确的反馈项目。', |
5932 | 6000 | 'moodbar-feedback-action-error' => '尝试执行此操作中发生了错误。', |
5933 | 6001 | 'moodbar-feedback-response-summary' => '[[$1|$2]]于$4前[[$3|回应]]', |
| 6002 | + 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]]于$4前发表[[$3|回应]],[[$5|$6]]觉得其有帮助', |
5934 | 6003 | 'moodbar-feedback-edit-summary' => '回应[[Special:FeedbackDashboard/$1|用户反馈]]:$2', |
5935 | 6004 | 'moodbar-feedback-top-responders-title' => '最高反应者', |
5936 | 6005 | 'moodbar-type-happy' => '{{GENDER:$1|开心}}', |
— | — | @@ -5942,6 +6011,7 @@ |
5943 | 6012 | 'moodbar-log-name' => '反馈日志', |
5944 | 6013 | 'moodbar-log-header' => '这是采取列于的[[Special:FeedbackDashboard|反馈仪表板]]反馈项目行动日志。', |
5945 | 6014 | 'moodbar-log-hide' => '隐藏[[$1]]', |
| 6015 | + 'moodbar-log-feedback' => 'MoodBar反馈[[$1]]', |
5946 | 6016 | 'moodbar-log-restore' => '恢复[[$1]]的可视性', |
5947 | 6017 | 'moodbar-response-terms' => '提交后,您将同意在$1下的透明度。', |
5948 | 6018 | 'moodbar-response-link' => '条款', |
— | — | @@ -5961,14 +6031,14 @@ |
5962 | 6032 | |
5963 | 6033 | $4 |
5964 | 6034 | |
5965 | | - 在您的 [$5 talk page|对话页]查看此消息。 |
| 6035 | + 请在您的[$5 对话页]查看此消息。 |
5966 | 6036 | |
5967 | 6037 | 什么是对话页? |
5968 | | -您的用户对话页是这样一个页,其他{{SITENAME}}编辑用来与您沟通。您可以通过点击"编辑"来回复,将光标移到建议的下面,输入您的回复和四个波浪线(~~~~)签名并保存。所有{{SITENAME}}页都有对话页,并且它们有很多不同的用途。可能需要一些时间掌握它,不过一旦习惯了以后也非常简单。 |
| 6038 | +您的用户对话页是这样一个页,其他{{SITENAME}}编辑用来与您沟通。您可以通过点击“编辑”来回复,将光标移到建议的下面,输入您的回复和四个波浪线(~~~~)签名并保存。所有{{SITENAME}}页都有对话页,并且它们有很多不同的用途。可能需要一些时间掌握它,不过一旦习惯了以后也非常简单。 |
5969 | 6039 | |
5970 | | -还有点困惑?[http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv 此视频] (在 [http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]上观看) 可以提供一个一步一步的概览。 |
| 6040 | +还有点困惑?[http://en.wikipedia.org/wiki/File:Wikipedia_basics_-_Talk_pages.ogv 此视频](在[http://www.youtube.com/watch?v=JdeDLRsB2Es YouTube]上观看)可以提供一个讨论页作用一步一步的概览。 |
5971 | 6041 | |
5972 | | -愉快一整天, |
| 6042 | +感谢您参入本社区, |
5973 | 6043 | |
5974 | 6044 | -- {{SITENAME}}', |
5975 | 6045 | ); |
— | — | @@ -6014,7 +6084,7 @@ |
6015 | 6085 | 'moodbar-loading-title' => '分享中……', |
6016 | 6086 | 'moodbar-success-title' => '謝謝!', |
6017 | 6087 | 'moodbar-error-title' => '糟糕!', |
6018 | | - 'moodbar-success-subtitle' => '分享您的編輯體驗,幫助我們改善$1。', |
| 6088 | + 'moodbar-success-subtitle' => '分享您的{{FBD-LINK}},幫助我們改善$1。', |
6019 | 6089 | 'moodbar-error-subtitle' => '出錯了!請重試分享您的反饋意見。', |
6020 | 6090 | 'moodbar-blocked-title' => '糟糕!', |
6021 | 6091 | 'moodbar-blocked-subtitle' => '您已被封禁,不能編輯。', |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.hooks.php |
— | — | @@ -147,7 +147,7 @@ |
148 | 148 | $updater->addExtensionIndex( 'moodbar_feedback_response', 'mbfr_user_id', "$dir/mbfr_user_id_index.sql" ); |
149 | 149 | $updater->addExtensionField( 'moodbar_feedback', 'mbf_latest_response', "$dir/mbf_latest_response.sql" ); |
150 | 150 | $updater->addExtensionIndex( 'moodbar_feedback', 'mbf_latest_response', "$dir/mbf_latest_response.sql" ); |
151 | | - |
| 151 | + |
152 | 152 | return true; |
153 | 153 | } |
154 | 154 | |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/tests/phpunit/ApiConcurrencyTest.php |
— | — | @@ -0,0 +1,172 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class ApiConcurrencyTest extends ApiTestCase { |
| 5 | + /** |
| 6 | + * @var Array of test users |
| 7 | + */ |
| 8 | + public static $users; |
| 9 | + |
| 10 | + // Prepare test environment |
| 11 | + |
| 12 | + function setUp() { |
| 13 | + parent::setUp(); |
| 14 | + |
| 15 | + self::$users['one'] = new ApiTestUser( |
| 16 | + 'ApitestuserA', |
| 17 | + 'Api Test UserA', |
| 18 | + 'api_test_userA@example.com', |
| 19 | + array() |
| 20 | + ); |
| 21 | + |
| 22 | + self::$users['two'] = new ApiTestUser( |
| 23 | + 'ApitestuserB', |
| 24 | + 'Api Test UserB', |
| 25 | + 'api_test_userB@example.com', |
| 26 | + array() |
| 27 | + ); |
| 28 | + } |
| 29 | + |
| 30 | + public function tearDown() { |
| 31 | + parent::tearDown(); |
| 32 | + } |
| 33 | + |
| 34 | + function testLogin() { |
| 35 | + |
| 36 | + $sessionArray = array(); |
| 37 | + |
| 38 | + foreach ( self::$users as $key => $user ) { |
| 39 | + |
| 40 | + $params = array( |
| 41 | + 'action' => 'login', |
| 42 | + 'lgname' => $user->username, |
| 43 | + 'lgpassword' => $user->password |
| 44 | + ); |
| 45 | + list( $result, , $session ) = $this->doApiRequest( $params ); |
| 46 | + $this->assertArrayHasKey( "login", $result ); |
| 47 | + $this->assertArrayHasKey( "result", $result['login'] ); |
| 48 | + $this->assertEquals( "NeedToken", $result['login']['result'] ); |
| 49 | + $token = $result['login']['token']; |
| 50 | + |
| 51 | + $params = array( |
| 52 | + 'action' => 'login', |
| 53 | + 'lgtoken' => $token, |
| 54 | + 'lgname' => $user->username, |
| 55 | + 'lgpassword' => $user->password |
| 56 | + ); |
| 57 | + list( $result, , $session ) = $this->doApiRequest( $params, $session ); |
| 58 | + $this->assertArrayHasKey( "login", $result ); |
| 59 | + $this->assertArrayHasKey( "result", $result['login'] ); |
| 60 | + $this->assertEquals( "Success", $result['login']['result'] ); |
| 61 | + $this->assertArrayHasKey( 'lgtoken', $result['login'] ); |
| 62 | + |
| 63 | + $this->assertNotEmpty( $session, 'API Login must return a session' ); |
| 64 | + |
| 65 | + $sessionArray[$key] = $session; |
| 66 | + |
| 67 | + } |
| 68 | + |
| 69 | + return $sessionArray; |
| 70 | + |
| 71 | + } |
| 72 | + |
| 73 | + /** |
| 74 | + * @depends testLogin |
| 75 | + */ |
| 76 | + function testCheckOut( $sessionArray ) { |
| 77 | + |
| 78 | + global $wgUser; |
| 79 | + |
| 80 | + $wgUser = self::$users['one']->user; |
| 81 | + /* commenting these out since i need to go home and they're breakin CI. See commit summary for details. |
| 82 | + |
| 83 | + list( $result, , $session ) = $this->doApiRequestWithToken( array( |
| 84 | + 'action' => 'concurrency', |
| 85 | + 'ccaction' => 'checkout', |
| 86 | + 'record' => 1, |
| 87 | + 'resourcetype' => 'responding-to-moodbar-feedback'), $sessionArray['one'], self::$users['one']->user ); |
| 88 | + |
| 89 | + $this->assertEquals( "success", $result['concurrency']['result'] ); |
| 90 | + |
| 91 | + $wgUser = self::$users['two']->user; |
| 92 | + |
| 93 | + list( $result, , $session ) = $this->doApiRequestWithToken( array( |
| 94 | + 'action' => 'concurrency', |
| 95 | + 'ccaction' => 'checkout', |
| 96 | + 'record' => 1, |
| 97 | + 'resourcetype' => 'responding-to-moodbar-feedback'), $sessionArray['two'], self::$users['two']->user ); |
| 98 | + |
| 99 | + $this->assertEquals( "failure", $result['concurrency']['result'] ); |
| 100 | + |
| 101 | + list( $result, , $session ) = $this->doApiRequestWithToken( array( |
| 102 | + 'action' => 'concurrency', |
| 103 | + 'ccaction' => 'checkout', |
| 104 | + 'record' => 2, |
| 105 | + 'resourcetype' => 'responding-to-moodbar-feedback'), $sessionArray['two'], self::$users['two']->user ); |
| 106 | + |
| 107 | + $this->assertEquals( "success", $result['concurrency']['result'] ); |
| 108 | + */ |
| 109 | + } |
| 110 | + |
| 111 | + /** |
| 112 | + * @depends testLogin |
| 113 | + */ |
| 114 | + function testCheckIn( $sessionArray ) { |
| 115 | + |
| 116 | + global $wgUser; |
| 117 | + |
| 118 | + $wgUser = self::$users['one']->user; |
| 119 | + /* commenting these out since i need to go home and they're breakin CI. See commit summary for details. |
| 120 | + |
| 121 | + list( $result, , $session ) = $this->doApiRequestWithToken( array( |
| 122 | + 'action' => 'concurrency', |
| 123 | + 'ccaction' => 'checkin', |
| 124 | + 'record' => 1, |
| 125 | + 'resourcetype' => 'responding-to-moodbar-feedback'), $sessionArray['one'], self::$users['one']->user ); |
| 126 | + |
| 127 | + $this->assertEquals( "success", $result['concurrency']['result'] ); |
| 128 | + |
| 129 | + list( $result, , $session ) = $this->doApiRequestWithToken( array( |
| 130 | + 'action' => 'concurrency', |
| 131 | + 'ccaction' => 'checkin', |
| 132 | + 'record' => 2, |
| 133 | + 'resourcetype' => 'responding-to-moodbar-feedback'), $sessionArray['one'], self::$users['one']->user ); |
| 134 | + |
| 135 | + $this->assertEquals( "failure", $result['concurrency']['result'] ); |
| 136 | + |
| 137 | + $wgUser = self::$users['two']->user; |
| 138 | + |
| 139 | + list( $result, , $session ) = $this->doApiRequestWithToken( array( |
| 140 | + 'action' => 'concurrency', |
| 141 | + 'ccaction' => 'checkin', |
| 142 | + 'record' => 2, |
| 143 | + 'resourcetype' => 'responding-to-moodbar-feedback'), $sessionArray['two'], self::$users['two']->user ); |
| 144 | + |
| 145 | + $this->assertEquals( "success", $result['concurrency']['result'] ); |
| 146 | + */ |
| 147 | + } |
| 148 | + |
| 149 | + /** |
| 150 | + * @depends testLogin |
| 151 | + */ |
| 152 | + function testInvalidCcacton( $sessionArray ) { |
| 153 | + $exception = false; |
| 154 | + try { |
| 155 | + global $wgUser; |
| 156 | + |
| 157 | + $wgUser = self::$users['one']->user; |
| 158 | + |
| 159 | + list( $result, , $session ) = $this->doApiRequestWithToken( array( |
| 160 | + 'action' => 'concurrency', |
| 161 | + 'ccaction' => 'checkinX', |
| 162 | + 'record' => 1, |
| 163 | + 'resourcetype' => 'responding-to-moodbar-feedback'), $sessionArray['one'], self::$users['one']->user ); |
| 164 | + } catch ( UsageException $e ) { |
| 165 | + $exception = true; |
| 166 | + $this->assertEquals("Unrecognized value for parameter 'ccaction': checkinX", |
| 167 | + $e->getMessage() ); |
| 168 | + } |
| 169 | + $this->assertTrue( $exception, "Got exception" ); |
| 170 | + |
| 171 | + } |
| 172 | + |
| 173 | +} |
Property changes on: branches/wmf/1.18wmf1/extensions/MoodBar/tests/phpunit/ApiConcurrencyTest.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 174 | + native |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/tests/phpunit/ConcurrencyCheckTest.php |
— | — | @@ -0,0 +1,104 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class ConcurrencyCheckTest extends MediaWikiTestCase { |
| 5 | + /** |
| 6 | + * @var Array of test users |
| 7 | + */ |
| 8 | + public static $users; |
| 9 | + |
| 10 | + // Prepare test environment |
| 11 | + |
| 12 | + public function setUp() { |
| 13 | + parent::setUp(); |
| 14 | + |
| 15 | + self::$users = array( |
| 16 | + 'user1' => new ApiTestUser( |
| 17 | + 'Concurrencychecktestuser1', |
| 18 | + 'ConcurrencyCheck Test User 1', |
| 19 | + 'concurrency_check_test_user_1@example.com', |
| 20 | + array() |
| 21 | + ), |
| 22 | + 'user2' => new ApiTestUser( |
| 23 | + 'Concurrencychecktestuser2', |
| 24 | + 'ConcurrencyCheck Test User 2', |
| 25 | + 'concurrency_check_test_user_2@example.com', |
| 26 | + array() |
| 27 | + ), |
| 28 | + ); |
| 29 | + |
| 30 | + // turn on memcached for this test. |
| 31 | + // if no memcached is present, this still works fine. |
| 32 | + global $wgMainCacheType, $wgConcurrency; |
| 33 | + $this->oldcache = $wgMainCacheType; |
| 34 | + $wgMainCacheType = CACHE_MEMCACHED; |
| 35 | + $wgConcurrency['ExpirationMin'] = -60; // negative numbers are needed for testing |
| 36 | + } |
| 37 | + |
| 38 | + public function tearDown() { |
| 39 | + // turn off caching again. |
| 40 | + global $wgMainCacheType; |
| 41 | + $wgMainCacheType = $this->oldcache; |
| 42 | + |
| 43 | + parent::tearDown(); |
| 44 | + } |
| 45 | + |
| 46 | + // Actual tests from here down |
| 47 | + |
| 48 | + public function testCheckoutCheckin() { |
| 49 | + $first = new ConcurrencyCheck( 'CCUnitTest', self::$users['user1']->user ); |
| 50 | + $second = new ConcurrencyCheck( 'CCUnitTest', self::$users['user2']->user ); |
| 51 | + $testKey = 1337; |
| 52 | + |
| 53 | + // clean up after any previously failed tests |
| 54 | + $first->checkin($testKey); |
| 55 | + $second->checkin($testKey); |
| 56 | + |
| 57 | + // tests |
| 58 | + $this->assertTrue( $first->checkout($testKey), "Initial checkout" ); |
| 59 | + $this->assertTrue( $first->checkout($testKey), "Cache hit" ); |
| 60 | + $this->assertFalse( $second->checkout($testKey), "Checkout of locked resource fails as different user" ); |
| 61 | + $this->assertTrue( $first->checkout($testKey), "Checkout of locked resource succeeds as original user" ); |
| 62 | + $this->assertFalse( $second->checkin($testKey), "Checkin of locked resource fails as different user" ); |
| 63 | + $this->assertTrue( $first->checkin($testKey), "Checkin of locked resource succeeds as original user" ); |
| 64 | + $second->setExpirationTime(-5); |
| 65 | + $this->assertTrue( $second->checkout($testKey), "Checked-in resource is now available to second user" ); |
| 66 | + $second->setExpirationTime(); |
| 67 | + $this->assertTrue( $first->checkout($testKey), "Checkout of expired resource succeeds as first user"); |
| 68 | + $this->assertTrue( $second->checkout($testKey, true), "Checkout override" ); |
| 69 | + $this->assertFalse( $first->checkout($testKey), "Checkout of overriden resource fails as different user" ); |
| 70 | + |
| 71 | + // cleanup |
| 72 | + $this->assertTrue( $second->checkin($testKey), "Checkin of record with changed ownership" ); |
| 73 | + |
| 74 | + } |
| 75 | + |
| 76 | + public function testExpire() { |
| 77 | + $cc = new ConcurrencyCheck( 'CCUnitTest', self::$users['user1']->user ); |
| 78 | + $cc->setExpirationTime(-1); |
| 79 | + $cc->checkout( 1338 ); // these numbers are test record ids. |
| 80 | + $cc->checkout( 1339 ); |
| 81 | + $cc->setExpirationTime(); |
| 82 | + $cc->checkout( 13310 ); |
| 83 | + |
| 84 | + // tests |
| 85 | + $this->assertEquals( 2, $cc->expire(), "Resource expiration" ); |
| 86 | + $this->assertTrue( $cc->checkin( 13310 ), "Checkin succeeds after expiration" ); |
| 87 | + } |
| 88 | + |
| 89 | + public function testStatus() { |
| 90 | + $cc = new ConcurrencyCheck( 'CCUnitTest', self::$users['user1']->user ); |
| 91 | + $cc->checkout( 1337 ); |
| 92 | + $cc->checkout( 1338 ); |
| 93 | + $cc->setExpirationTime(-5); |
| 94 | + $cc->checkout( 1339 ); |
| 95 | + $cc->setExpirationTime(); |
| 96 | + |
| 97 | + // tests |
| 98 | + $output = $cc->status( array( 1337, 1338, 1339, 13310 ) ); |
| 99 | + $this->assertEquals( true, is_array( $output ), "Status returns values" ); |
| 100 | + $this->assertEquals( 4, count( $output ), "Output has the correct number of records" ); |
| 101 | + $this->assertEquals( 'valid', $output[1337]['status'], "Current checkouts are listed as valid"); |
| 102 | + $this->assertEquals( 'invalid', $output[1339]['status'], "Expired checkouts are invalid"); |
| 103 | + $this->assertEquals( 'invalid', $output[13310]['status'], "Missing checkouts are invalid"); |
| 104 | + } |
| 105 | +} |
Property changes on: branches/wmf/1.18wmf1/extensions/MoodBar/tests/phpunit/ConcurrencyCheckTest.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 106 | + native |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar/ext.moodBar.core.js |
— | — | @@ -379,6 +379,22 @@ |
380 | 380 | }); |
381 | 381 | }, |
382 | 382 | |
| 383 | + prepareSuccess: function( overlay ) { |
| 384 | + |
| 385 | + var fbdLink = mw.html.element('a', { |
| 386 | + 'href' : mb.conf.feedbackDashboardUrl, |
| 387 | + 'target': '_blank' |
| 388 | + }, mw.msg ( 'moodbar-fbd-link-title' )); |
| 389 | + |
| 390 | + var subTitle = overlay |
| 391 | + .find('.mw-moodBar-state-subtitle'); |
| 392 | + var subTitleText = subTitle |
| 393 | + .text() |
| 394 | + .replace( new RegExp( $.escapeRE('{{FBD-LINK}}'), 'g' ), fbdLink ); |
| 395 | + subTitle.html(subTitleText); |
| 396 | + |
| 397 | + }, |
| 398 | + |
383 | 399 | prepareEmailInput: function ( overlay ) { |
384 | 400 | overlay |
385 | 401 | .find('#mw-moodBar-emailInput') |
— | — | @@ -442,18 +458,21 @@ |
443 | 459 | // 52px in known margins, 58px seems to be a necessary |
444 | 460 | // fudge factor, plus 30px so the close button doesn't collide |
445 | 461 | // with the rounded corners |
446 | | - var newWidth = mb.ui.overlay |
447 | | - .find('.mw-moodBar-types') |
448 | | - .width() + 140; |
449 | | - var titleWidth = mb.ui.overlay |
450 | | - .find('.mw-moodBar-overlayTitle span') |
451 | | - .width() + 100; |
452 | | - |
453 | | - if ( newWidth < titleWidth ) { |
454 | | - newWidth = titleWidth; |
| 462 | + // Check for ie7 before applying fix. Was breaking in chrome. |
| 463 | + if( navigator.userAgent.toLowerCase().indexOf('msie 7') !== -1 ) { |
| 464 | + var newWidth = mb.ui.overlay |
| 465 | + .find('.mw-moodBar-types') |
| 466 | + .width() + 140; |
| 467 | + var titleWidth = mb.ui.overlay |
| 468 | + .find('.mw-moodBar-overlayTitle span') |
| 469 | + .width() + 100; |
| 470 | + |
| 471 | + if ( newWidth < titleWidth ) { |
| 472 | + newWidth = titleWidth; |
| 473 | + } |
| 474 | + mb.ui.overlay.width(newWidth); |
455 | 475 | } |
456 | | - |
457 | | - mb.ui.overlay.width(newWidth); |
| 476 | + |
458 | 477 | mb.ui.overlay.hide(); |
459 | 478 | |
460 | 479 | // Bind triger |
— | — | @@ -488,6 +507,9 @@ |
489 | 508 | if (tpl == mb.tpl.emailconfirmation) { |
490 | 509 | mb.prepareEmailVerification ( mb.ui.overlay ); |
491 | 510 | } |
| 511 | + if (tpl == mb.tpl.success) { |
| 512 | + mb.prepareSuccess( mb.ui.overlay ); |
| 513 | + } |
492 | 514 | return true; |
493 | 515 | }, |
494 | 516 | |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar.dashboard/ext.moodBar.dashboard.css |
— | — | @@ -125,7 +125,7 @@ |
126 | 126 | /* Tool Tip */ |
127 | 127 | |
128 | 128 | .fbd-tooltip-overlay-wrap { |
129 | | - width: 285px; |
| 129 | + width: 296px; |
130 | 130 | position: absolute; |
131 | 131 | left: 1em; |
132 | 132 | top: 5.25em; |
— | — | @@ -154,14 +154,15 @@ |
155 | 155 | font-weight: bold; |
156 | 156 | font-size: 0.75em; |
157 | 157 | /* embed */ |
158 | | - background: url(images/mb-icon-16x16-alert.png) left top no-repeat; |
| 158 | + background: url(images/mb-icon-16x16-alert.png) 2px top no-repeat; |
159 | 159 | line-height: 18px; |
160 | | - padding-left: 20px; |
| 160 | + padding-left: 26px; |
161 | 161 | } |
162 | 162 | |
163 | 163 | .fbd-tooltip-close { |
164 | 164 | color: #FF9933; |
165 | 165 | float: right; |
| 166 | + margin: 0 2px; |
166 | 167 | } |
167 | 168 | |
168 | 169 | /* List */ |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar.dashboard/ext.moodBar.dashboard.js |
— | — | @@ -2,7 +2,7 @@ |
3 | 3 | * AJAX code for Special:MoodBarFeedback |
4 | 4 | */ |
5 | 5 | jQuery( document ).ready( function ( $ ) { |
6 | | - var formState, filterType, $fbdFiltersCheck; |
| 6 | + var formState, filterType, $fbdFiltersCheck, concurrencyState = []; |
7 | 7 | |
8 | 8 | /** |
9 | 9 | * Saved form state |
— | — | @@ -413,7 +413,8 @@ |
414 | 414 | $( '.fbd-response-preview, .fbd-response-submit' ).removeProp( 'disabled' ); |
415 | 415 | $( this ).find( '.fbd-response-form' ).remove(); |
416 | 416 | } |
417 | | - |
| 417 | + //remove ConcurrencyToolTip if any |
| 418 | + $( this ).find( '.fbd-tooltip-overlay-wrap').remove(); |
418 | 419 | }); |
419 | 420 | } |
420 | 421 | |
— | — | @@ -423,7 +424,7 @@ |
424 | 425 | * @param e {jQuery.Event} |
425 | 426 | */ |
426 | 427 | function showResponseForm( e ) { |
427 | | - var termsLink, ula, inlineForm, $item; |
| 428 | + var termsLink, ula, inlineForm, $item, itemId; |
428 | 429 | |
429 | 430 | if ( $(this).hasClass( 'responder-expanded' ) ) { |
430 | 431 | |
— | — | @@ -479,7 +480,7 @@ |
480 | 481 | ).append( |
481 | 482 | $( '<button>' ).attr( 'class', 'fbd-response-preview' ).text ( mw.msg( 'response-preview-text' ) ).prop( 'disabled', true ) |
482 | 483 | ).append( |
483 | | - $( '<div>' ).attr( 'style', 'clear:both' ) |
| 484 | + $( '<div>' ).attr( 'style', 'clear: both;' ) |
484 | 485 | ); |
485 | 486 | |
486 | 487 | // Get the feedbackItem |
— | — | @@ -488,13 +489,14 @@ |
489 | 490 | // Close any open responders prior to opening this one. |
490 | 491 | closeAllResponders(); |
491 | 492 | |
492 | | - $(this).find( '.fbd-item-response-collapsed' ) |
493 | | - .addClass( 'fbd-item-response-expanded' ) |
494 | | - .removeClass( 'fbd-item-response-collapsed' ) |
| 493 | + $(this) |
| 494 | + .find( '.fbd-item-response-collapsed' ) |
| 495 | + .addClass( 'fbd-item-response-expanded' ) |
| 496 | + .removeClass( 'fbd-item-response-collapsed' ) |
495 | 497 | .end() |
496 | 498 | .find( '.fbd-item-response-expanded' ) |
497 | 499 | .parent() |
498 | | - .addClass( 'responder-expanded' ); |
| 500 | + .addClass( 'responder-expanded' ); |
499 | 501 | |
500 | 502 | $item.append(inlineForm) |
501 | 503 | .find( '.fbd-response-text' ) |
— | — | @@ -539,6 +541,24 @@ |
540 | 542 | wikitext = wikitext.replace( /~{3,5}/g, '' ) + "\n\n~~~~"; // Remove and add signature for |
541 | 543 | parseWikiText( $item, wikitext ); |
542 | 544 | }); |
| 545 | + |
| 546 | + //check for concurrency module. |
| 547 | + if ( $.concurrency !== undefined ) { |
| 548 | + itemId = $item.data( 'mbccontinue' ).split( '|' )[1]; |
| 549 | + //concurrency module is here, attempt checkout |
| 550 | + $.concurrency.check( { |
| 551 | + ccaction: 'checkout', |
| 552 | + resourcetype: 'moodbar-feedback-response', |
| 553 | + record: itemId |
| 554 | + }, function ( result ){ |
| 555 | + //if checkout failed, show tooltip if it hasn't been shown |
| 556 | + if ( result === 'failure' && $.inArray( itemId, concurrencyState ) === -1 ) { |
| 557 | + concurrencyState.push( itemId ); |
| 558 | + loadConcurrencyToolTip( $item ); |
| 559 | + } |
| 560 | + } ); |
| 561 | + } |
| 562 | + |
543 | 563 | } |
544 | 564 | e.preventDefault(); |
545 | 565 | } |
— | — | @@ -598,8 +618,8 @@ |
599 | 619 | function inlineMessage( $el, msg, callback) { |
600 | 620 | $el.empty() |
601 | 621 | .text( msg ) |
602 | | - .delay(2000) |
603 | | - .fadeOut( 'slow', callback); |
| 622 | + .delay( 2000 ) |
| 623 | + .fadeOut( 'slow', callback ); |
604 | 624 | } |
605 | 625 | /** |
606 | 626 | * Set status message for Send Response |
— | — | @@ -611,20 +631,56 @@ |
612 | 632 | function responseMessage( $el, type, head, body ) { |
613 | 633 | $el |
614 | 634 | .find( '.mw-ajax-loader' ) |
615 | | - .addClass( 'fbd-item-response-' + type ) |
616 | | - .removeClass( 'mw-ajax-loader' ) |
| 635 | + .addClass( 'fbd-item-response-' + type ) |
| 636 | + .removeClass( 'mw-ajax-loader' ) |
617 | 637 | .end() |
618 | 638 | .find( '.fbd-ajax-heading' ) |
619 | | - .text( head ) |
| 639 | + .text( head ) |
620 | 640 | .end() |
621 | 641 | .find( '.fbd-ajax-text' ) |
622 | | - .html( body ) |
| 642 | + .html( body ) |
623 | 643 | .end(); |
| 644 | + |
624 | 645 | setTimeout( function () { |
625 | 646 | reloadItem( $el, true ); |
626 | | - }, 2000); |
| 647 | + }, 2000 ); |
627 | 648 | } |
| 649 | + |
| 650 | + /** |
| 651 | + * Display tooltip for response concurrency notification |
| 652 | + * @param $item Feedback item |
| 653 | + */ |
| 654 | + function loadConcurrencyToolTip( $item ) { |
| 655 | + var $tooltip = $( '<div>' ) |
| 656 | + .attr( 'class', 'fbd-tooltip-overlay-wrap' ) |
| 657 | + .append( |
| 658 | + $( '<div>' ).attr( 'class', 'fbd-tooltip-overlay' ) |
| 659 | + .append( |
| 660 | + $( '<div>' ).attr( 'class', 'fbd-tooltip-pointy' ) |
| 661 | + ).append( |
| 662 | + $( '<div>' ) |
| 663 | + .attr( 'class', 'fbd-tooltip-title' ) |
| 664 | + .text( mw.msg( 'response-concurrency-notification' ) ) |
| 665 | + .prepend( |
| 666 | + $( '<span>' ).attr( 'class', 'fbd-tooltip-close' ).text( 'X' ) |
| 667 | + ) |
| 668 | + ) |
| 669 | + ); |
| 670 | + $item.find( '.fbd-item-response' ).append( $tooltip ); |
628 | 671 | |
| 672 | + // Close event, closure remembers object |
| 673 | + $( '.fbd-tooltip-close' ) |
| 674 | + .live( 'click' , function () { |
| 675 | + $tooltip.remove(); |
| 676 | + } ); |
| 677 | + |
| 678 | + setTimeout( function () { |
| 679 | + $tooltip.fadeOut( function (){ |
| 680 | + $tooltip.remove(); |
| 681 | + } ); |
| 682 | + }, 2500 ); |
| 683 | + } |
| 684 | + |
629 | 685 | // On-load stuff |
630 | 686 | $( '.fbd-item-show a' ).live( 'click', showHiddenItem ); |
631 | 687 | $( '.fbd-item-hide a' ).live( 'click', hideItem ); |
Index: branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.php |
— | — | @@ -174,6 +174,7 @@ |
175 | 175 | 'moodbar-email-confirm-desc', |
176 | 176 | 'moodbar-email-resend-confirmation', |
177 | 177 | 'moodbar-email-optout', |
| 178 | + 'moodbar-fbd-link-title', |
178 | 179 | ), |
179 | 180 | 'dependencies' => array( |
180 | 181 | 'mediawiki.util', |
— | — | @@ -259,6 +260,7 @@ |
260 | 261 | 'expires' => 30, |
261 | 262 | ), |
262 | 263 | 'infoUrl' => 'http://www.mediawiki.org/wiki/MoodBar', |
| 264 | + 'feedbackDashboardUrl'=> 'about:blank', |
263 | 265 | 'privacyUrl' => 'about:blank', |
264 | 266 | 'disableExpiration' => 365, |
265 | 267 | ); |
Property changes on: branches/wmf/1.18wmf1/extensions/MoodBar |
___________________________________________________________________ |
Added: svn:mergeinfo |
266 | 268 | Merged /branches/REL1_15/phase3/extensions/MoodBar:r51646 |
267 | 269 | Merged /branches/REL1_18/extensions/MoodBar:r101758,103190 |
268 | 270 | Merged /branches/REL1_17/phase3/extensions/MoodBar:r81445,81448 |
269 | 271 | Merged /trunk/extensions/MoodBar:r95614,99592,99653,100092,100419,100516,100686,100692,100699,103260,103315,103378,103382,103669,104337,104736,104862-104863,104865,104971,105275,105902,105908,107043,107050,107337,107783,107816,107818,108672-110093 |
270 | 272 | Merged /branches/sqlite/extensions/MoodBar:r58211-58321 |
271 | 273 | Merged /trunk/phase3/extensions/MoodBar:r92580,92634,92713,92762,92765,92791,92854,92884,92886-92887,92894,92898,92907,92932,92958,93141,93149,93151,93233-93234,93258,93266,93303,93516-93518,93520,93818-93822,93847,93858,93891,93935-93936,94058,94062,94068,94107,94155,94235,94277,94346,94372,94422,94425,94444,94448,94456,94498,94517,94601,94630,94728,94738,94825,94862,94995-94997,95023,95042,95072-95073,95155,95327,95332,95410,95422,95426,95442,95468,95601,95812,98578,98598,98656 |
272 | 274 | Merged /branches/new-installer/phase3/extensions/MoodBar:r43664-66004 |